点号「.」在JavaScript中有两种语义
语义1、表示算术中的小数点(浮点数),如 2.5
语义2、取对象属性、方法,如 [].push(2)
这几乎没有任何难理解的地方,但下面这个问题则很有趣。
// 这行代码会如何执行 1.toString();
Firebug 中如下
这里的点号表达的是上述的语义1,因此点号后面必须跟一个数字,这里跟的是toString,报语法错了。
解决方法很简单,如加个小括号
(1).toString();
还可以这么写,但难理解些
1..toString();
之所以浏览器中都能运行,是因为各浏览器JS引擎都把“1..toString()”理解成了 “1.0.toString()”。这里第一个点号是语义1,第二个点号是语义2。
还有更奇怪的写法,竟然也没有报错
1 .toString(); // 注意点号前面有一个空格
显然,这里的点号是语义2,即JS引擎会忽略点运算符前边的空格,其实无论前后的空格都会忽略。如下
1 . toString(); // 点号前后都有一个空格 1 . toString(); // 点号前后各有两个空格 1 .toString(); // 点号前有一个tab 1 . toString(); // 点号前后各有一个tab
JS引擎不但会忽略空格,也会忽略tab。
相关:
http://bonsaiden.github.io/JavaScript-Garden/
相关推荐
主要介绍了JavaScript中点号“.”的多义性。需要的朋友可以过来参考下,希望对大家有所帮助
org.mozilla.javascript-1.7.2.jar资源包
实施面试JavaScript考察题 .docx实施面试JavaScript考察题 .docx实施面试JavaScript考察题 .docx实施面试JavaScript考察题 .docx实施面试JavaScript考察题 .docx实施面试JavaScript考察题 .docx实施面试JavaScript...
第4节 JavaScript操作符.rar第4节 JavaScript操作符.rar第4节 JavaScript操作符.rar第4节 JavaScript操作符.rar第4节 JavaScript操作符.rar第4节 JavaScript操作符.rar第4节 JavaScript操作符.rar第4节 JavaScript...
第10节 JavaScript内置对象.rar第10节 JavaScript内置对象.rar第10节 JavaScript内置对象.rar第10节 JavaScript内置对象.rar第10节 JavaScript内置对象.rar第10节 JavaScript内置对象.rar第10节 JavaScript内置对象....
org.mozilla.javascript
Javascript参考手册.chm
JavaScript语言精粹(JavaScript.The.Good.Parts).pdf 加强对javascript的认识。下载有益!
Oreilly.JavaScript.Pocket.Reference.2nd.Edition.chm
JavaScript参考教程.doc JavaScript参考教程.doc JavaScript参考教程.doc
高性能 JavaScript 优化 [高性能JavaScript编程].(High.Performance.JavaScript).Nicholas.C.Zakas.文字版
JavaScript语言精粹(JavaScript.The.Good.Parts)JavaScript语言精粹(JavaScript.The.Good.Parts)
SitePoint.Simply.JavaScript.Jun.2007.pdf SitePoint.Simply.JavaScript.Jun.2007.pdf
• Emprise JavaScript Charts - Emprise 是一个100% 纯 JavaScript 图表解决方案,并不需要任何 JavaScript 框架. • PlotKit - PlotKit 是一个 图表和图像的Javascript 库. PlotKit 和 MochiKit javascript 库...
Head Frist JavaScript 程序设计.pdf 一本简单有趣的JavaScript入门教程
Simplifying.JavaScript.2018.4Simplifying.JavaScript.2018.4Simplifying.JavaScript.2018.4
[高性能JavaScript编程].(High.Performance.JavaScript).Nicholas.C.Zakas.文字版.rar
javascript 纯学习目的...............