这个奇怪的javascript表达式的解释是什么?
在JavaScript中,以下代码行给出的答案为1这个奇怪的javascript表达式的解释是什么?,javascript,Javascript,在JavaScript中,以下代码行给出的答案为1 + ! {} [true] 我不明白怎么回事 任何大师的解释都是值得赞赏的。{}是一个空对象 所以{}[0]或者{}[true]或者{}[1]等等。。是否未定义 添加将{}[0]强制转换为布尔值,返回相反的值。(undefined变为false,因此返回true) 添加+将其转换为int,因此true变成1我试图通过代码来解释它 var emptyObject = {}; valueOfUndefinedKey = emptyObje
+ ! {} [true]
我不明白怎么回事
任何大师的解释都是值得赞赏的。
{}
是一个空对象
所以{}[0]
或者{}[true]
或者{}[1]
等等。。是否未定义
添加
将{}[0]
强制转换为布尔值
,返回相反的值。(undefined
变为false
,因此返回true
)
添加
+
将其转换为int
,因此true
变成1
我试图通过代码来解释它
var emptyObject = {};
valueOfUndefinedKey = emptyObject['key_not_exists'],
itsNot = !valueOfUndefinedKey ,
finalConvertedNumber = +itsNot ;
console.log(
emptyObject,
valueOfUndefinedKey,
itsNot,
finalConvertedNumber
)
哪张照片
Object {}
undefined
true
1
+!{}[0]
让我试着去理解它的意思…@elclars哦,我喜欢那段视频。相关:没有几分钟,这个谜题就解决了。我爱你们“如此”的社区。非常感谢。问题是否从[0]更改为[true]?否,{}
不是未定义的。这是一个空的物体。@RomainBraun:事实上,这比看起来更复杂。我已经发布了一个解释:加上一个+铸造技巧。我刚读完这篇文章就需要它。