【JS】{} + [] === 0 为 true ?

我们用【F12】打个浏览器的控制台,在 console 面板里面输入下面的代码并回车

{ } + [ ] === 0 
// true

为什么是 true ?其实上面的代码在js的执行里会被拆成如下的代码显示

{};
+[] === 0 
// true

{} 对出现在语句最右侧的时候会被当成代码块执行,请看下面的代码

{ a = 1 } + [ ] + a === 1
// true

看到了么,{} 并不是作为一个对象来使用的,当然你会发现下面的写法也是对的

{ a: 1 } + [ ] === 0 
// true

But,但是,请注意!下面的写法会报错

{ a: 1, b: 2 } + [ ] === 0 
// Uncaught SyntaxError: Unexpected token :

Why? 以内 {} 不是对象,上面的代码会被翻译成下面这样

{ 
  a: 1, 
  b: 2 
}; 
+[ ] === 0 
// Uncaught SyntaxError: Unexpected token :

PS:JS 竟然还有 a:1 这种写法 Orz

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容