javascript使用中为什么10..toString()正常而10.toString()出错呢_javascript技巧

这个问题是在著名的问答网站——stackoverflow上看到的。
之前也看到过JavaScript的这个问题,但是没有深入了解,今天在StackOverflow上看到了答案,感觉不错,记下来分享给大家。

问题的描述是这样的

复制代码 代码如下:

console.log(10..toString());//10
console.log(10.toString());//SyntaxError: Unexpected token ILLEGAL

为什么前者正常,而后者报错呢。

原因就是,在JavaScript中,数字后面的"."操作符是的意义是不确定。因为它既可能是一个浮点数的标志,又可能是取一个对象的属性的运算符。但是JavaScript的解释器把他当做了浮点数的标志,所以上面的代码和下面的是等价的

复制代码 代码如下:

console.log((10.).toString());//正常
console.log((10.)toString());//这样的话,当然就报错了(完)^_^

时间: 2024-09-16 13:17:33

javascript使用中为什么10..toString()正常而10.toString()出错呢_javascript技巧的相关文章

JavaScript中的object转换成number或string规则介绍_javascript技巧

在JavaScript程序编写过程中,根据不同的上下文,JS会自动将object转换成number或者string后再处理.这种自动转换的规则如下: object自动转换成string的规则: 1.如果object所属类覆写了toString()方法,则调用该方法.如果toString()调用的返回结果为Primitive(string.number.boolean.undefined.null),则将该Primitive值转换成string后返回. 2.如果object所属类没有覆写toStr

JavaScript组成、引入、输出、运算符基础知识讲解_javascript技巧

javascript简介: JavaScript 是属于网络的脚本语言! JavaScript 被数百万计的网页用来改进设计.验证表单.检测浏览器.创建cookies,以及更多的应用. JavaScript 是因特网上最流行的脚本语言. 下文重点给大家介绍js组成,引入,输出,运算符基础知识,具体详解如下所示: JavaScript组成: ECMAscript 浏览器对象模型 BOM 文档对象模型 DOM // ecmascript bom dom dom (文档对象模型) 用来访问和操纵htm

javascript 10进制和62进制的相互转换_javascript技巧

function string10to62(number) { var chars = '0123456789abcdefghigklmnopqrstuvwxyzABCDEFGHIGKLMNOPQRSTUVWXYZ'.split(''), radix = chars.length, qutient = +number, arr = []; do { mod = qutient % radix; qutient = (qutient - mod) / radix; arr.unshift(char

javascript字符串拆分成单个字符相加和不超过10,求最终值第1/2页_javascript技巧

首先把你的生日列出来 比如 1987 12 25 然后一位位的相加 1+9+8+7+1+2+2+5=35 把得出的数字再拆分 再加 3+5=8 得出的数字8 就是最后的结果,如果超过10的话就在拆分再加 1 肾脏 2 眼睛 3 才华天赋 4 良性基因 5 友情 6 慈善之心 7 亲情 8 健康和寿命 9 爱情 10 恭喜你 你拥有纯净的灵魂 最适合典当cloeft的示例 [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行] 帅青蛙的示例 [Ctrl+A 全选 注:如需引入外部Js需刷新才能

JavaScript格式化日期时间的方法和自定义格式化函数示例_javascript技巧

很多时候,我们可以利用JavaScript中Date对象的内置方法来格式化,如: 复制代码 代码如下: var d = new Date();console.log(d); // 输出:Mon Nov 04 2013 21:50:33 GMT+0800 (中国标准时间)console.log(d.toDateString()); // 日期字符串,输出:Mon Nov 04 2013console.log(d.toGMTString()); // 格林威治时间,输出:Mon, 04 Nov 20

javascript中负数算术右移、逻辑右移的奥秘探索_javascript技巧

javascript中负数的算术右移和逻辑右移都十分的让人迷惑,特别是逻辑右移>>>,你会发现即使一个很小的负数,右移之后,也会得到一个无比巨大的数,这是为什么呢? 原来在逻辑右移中符号位会随着整体一起往右移动,这样就是相当于无符号数的移动了,最后得到的就是一个正数,因为符号位不存在了.首先逻辑右移产生的一定是32位的数,然后负数的符号位为1,这意味着从第32位到符号位的位置全部由1填充,这样的数能不大吗例如-1,逻辑右移0位表现形式就是1111 1111 1111 1111 1111

《JavaScript高级编程》学习笔记之object和array引用类型_javascript技巧

本文给大家分享我的javascript高级编程学习笔记之object和array引用类型,涉及到javascript引用类型相关知识,大家一起看看把. 1. Object类型      大多数引用类型值都是Object类型的实例:而且Object也是ECMAScript中使用最多的一个类型.      创建Object实例有如下两种方式: new操作符后跟Object构造函数: var person=new Object( ); person.name="webb"; person.a

javascript中的Base64、UTF8编码与解码详解_javascript技巧

Base64编码说明 Base64编码要求把3个8位字节(3*8=24)转化为4个6位的字节(4*6=24),之后在6位的前面补两个0,形成8位一个字节的形式. 如果剩下的字符不足3个字节,则用0填充,输出字符使用'=',因此编码后输出的文本末尾可能会出现1或2个'='. base64编码库:(已验证可用) 复制代码 代码如下: var base64 = (function(){     var keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmn

JavaScript实现动态添加,删除行的方法实例详解_javascript技巧

本文实例讲述了JavaScript实现动态添加,删除行的方法.分享给大家供大家参考.具体如下: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <title>增加Table行</title> </head> <script language="javascript