为什么在定义之前浏览器中的长度等于0?

时间:2017-01-20 00:55:24

标签: javascript

我希望javascript中未定义变量的值在记录时表现如下:

enter image description here

但是在jsfiddle上,它显示length在定义之前是0。

enter image description here

经过更多的研究。它似乎在chrome中默认为0。

enter image description here

当我希望它产生与任何其他randomWord

一样的错误时

enter image description here

当我在本地节点中运行相同的命令时,它似乎表现得如我所料。抛出错误的长度:

enter image description here

在这些情况下,为什么长度等于0

3 个答案:

答案 0 :(得分:3)

length is a predefined global variable in browsers:

  

返回窗口中的帧数(<frame><iframe>元素)

答案 1 :(得分:1)

如果您没有限定length属性,那么JS将上层次结构,看看层次结构中的某个人是否具有属性length,而window恰好是该属性。因此,它没有未定义。它是定义的。

window.length相同。

答案 2 :(得分:0)

试试这个:console.log("length" in window),然后你会知道它是否在全局对象中定义。