当我试图理解为什么Java中的![]扩展名是false时,我陷入了困境。我知道[]被认为是真实的,并且!truefalse,但我想更深入地探讨。

根据Spec,一元NOT运算符的工作方式如下:
Let oldValue be ToBoolean(GetValue(expr)).If oldValue is true, return false.

然后,我试图理解GetValue([]),而现在一切都变得模糊了。 Spec sec-8.7.1

GetValue([])是否仅返回[].valueOf()

最佳答案

用普通值(不是Reference)调用的GetValue仅返回该普通值-在您的情况下为数组。否则,它将评估对标识符(在变量范围内)或属性(在对象中)的引用,但是在您的示例中情况并非如此。

关于javascript - Ecmascript:`GetValue([])`的结果是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49468453/

10-12 13:14