Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
371 views
in Technique[技术] by (71.8m points)

直接访问1.b会报错,但是为什么let a = 1;a.b不会报错呢?

使用1.b 的时候,因为number 会有小数点与属性两个重合,JS会优先认定为是小数点导致报错,但是为什么在使用变量的时候,却不会报错呢?

有相关的规范或者文档可以参考下吗?


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

这很直观了呀。
就对于解释器而言 1.b 中的点只会认为是小数点,而不认为是属性值
let a=1;a.b中的点必然是取属性,a此时会被转换为Number对象,对对象取属性。


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...