最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

解析JavaScript中点号“.”的多义性_javascript技巧

来源:懂视网 责编:小采 时间:2020-11-27 21:16:39
文档

解析JavaScript中点号“.”的多义性_javascript技巧

解析JavaScript中点号.的多义性_javascript技巧:点号「.」在JavaScript中有两种语义 语义1、表示算术中的小数点(浮点数),如 2.5 语义2、取对象属性、方法,如 [].push(2) 这几乎没有任何难理解的地方,但下面这个问题则很有趣。 代码如下:// 这行代码会如何执行 1.toString(); Firebu
推荐度:
导读解析JavaScript中点号.的多义性_javascript技巧:点号「.」在JavaScript中有两种语义 语义1、表示算术中的小数点(浮点数),如 2.5 语义2、取对象属性、方法,如 [].push(2) 这几乎没有任何难理解的地方,但下面这个问题则很有趣。 代码如下:// 这行代码会如何执行 1.toString(); Firebu

点号「.」在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。

文档

解析JavaScript中点号“.”的多义性_javascript技巧

解析JavaScript中点号.的多义性_javascript技巧:点号「.」在JavaScript中有两种语义 语义1、表示算术中的小数点(浮点数),如 2.5 语义2、取对象属性、方法,如 [].push(2) 这几乎没有任何难理解的地方,但下面这个问题则很有趣。 代码如下:// 这行代码会如何执行 1.toString(); Firebu
推荐度:
标签: js javascript javas
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top