Javascript 为什么“closed”是一个保留字?

Javascript 为什么“closed”是一个保留字?,javascript,arrays,reserved-words,Javascript,Arrays,Reserved Words,好吧,在今天下午费尽心思之后;我开始意识到为什么我的数组没有定义。尽管单词“closed”不是一个保留的JS单词;似乎它在别处是某种保留字,因此数组不能称为“closed” 我的问题是,;如果Javascript没有保留这个词-什么是?浏览器?操作系统?我读到应该避免使用它作为变量/对象的命名约定,但我不明白还有什么其他的尝试使用它 如有任何见解,将不胜感激 <html> <head> </head> <body> <script&g

好吧,在今天下午费尽心思之后;我开始意识到为什么我的数组没有定义。尽管单词“closed”不是一个保留的JS单词;似乎它在别处是某种保留字,因此数组不能称为“closed”

我的问题是,;如果Javascript没有保留这个词-什么是?浏览器?操作系统?我读到应该避免使用它作为变量/对象的命名约定,但我不明白还有什么其他的尝试使用它

如有任何见解,将不胜感激

<html>
<head>
</head>
<body>
    <script>
    var greatArray = [];
    var closed = [];

    alert(greatArray.length);
    alert(closed.length);
</script>
</body>
</html>

与其说Javascript保留了它,不如说它是因为Javascript的使用位置而保留的。考虑这一点:

if (myWindow.closed)
因此,必须避免使用closed作为全局变量的名称。不过,您可以将其用作局部变量

正如T.J.Crowder所提到的:
它是窗口上的预定义属性,不能重新定义,而且由于窗口上的所有属性都是全局属性,所以它不是。你有什么问题?关闭不是一个问题。请发布您的代码。您完全可以使用.vol7ron-更正-这是一个错误。具有讽刺意味的是,您的示例确实允许保留字,例如window.else是有效的Javascript。必须避免将window.closed作为自己变量的名称。还有一个不使用globals的好理由。使用closed not作为全局变量没有任何问题。@RobertRossmann:从ES5开始,是的。在此之前,您不能使用保留字作为文字属性名。如果myWindow.closed实际上是一个非常糟糕的示例,因为它没有演示如何使用全局属性名。答案也没有真正回答这个问题,答案是:它是窗口上的预定义属性,您无法重新定义,而且因为窗口上的所有属性都是全局属性。。。。