当我试图理解为什么Java中的![]
扩展名是false
时,我陷入了困境。我知道[]
被认为是真实的,并且!true
是false
,但我想更深入地探讨。
根据Spec,一元NOT运算符的工作方式如下:Let oldValue be ToBoolean(GetValue(expr)).If oldValue is true, return false.
然后,我试图理解GetValue([])
,而现在一切都变得模糊了。 Spec sec-8.7.1GetValue([])
是否仅返回[].valueOf()
?
最佳答案
用普通值(不是Reference)调用的GetValue
仅返回该普通值-在您的情况下为数组。否则,它将评估对标识符(在变量范围内)或属性(在对象中)的引用,但是在您的示例中情况并非如此。
关于javascript - Ecmascript:`GetValue([])`的结果是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49468453/