js诡辩
{}+[] // 0
[]+{} // [object Object]
代码1的为0的原因是,解释器把开头检测到的{}当做了代码块出来,然后实际运行的是+[]
。这种运行结果只在特定的情况下产生,运算时添加一个括号就是代码2的结果({}+[]) // [object Object]
({}+[]).length // 15
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。
{}+[] // 0
[]+{} // [object Object]
代码1的为0的原因是,解释器把开头检测到的{}当做了代码块出来,然后实际运行的是+[]
。这种运行结果只在特定的情况下产生,运算时添加一个括号就是代码2的结果({}+[]) // [object Object]
({}+[]).length // 15
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。