document.writeln('name=' + name);
// name =
document.writeln('notName=' + notName);
// ReferenceError: notName is not defined
“name”在javascript中有一些特殊含义吗? (在IE和FF中查看)
答案 0 :(得分:10)
是否总是在Javascript中定义名为“name”的变量?
没有。但是,在浏览器上有一个名为name
的全局,它是当前窗口的名称。这是浏览器上的JavaScript全局对象是Window对象这一事实的副产品。一点解释:
在JavaScript中,全局变量实际上是属性,称为"全局对象。"在浏览器上,全局对象是页面的Window对象,因此它具有与Window object相关的各种预定义属性(因此也是全局变量),包括但不限于:
name
- 当前窗口的名称title
- 当前窗口的标题status
- 状态区域内容(大多数浏览器忽略它除外)document
- 当前窗口中的文档window
- 返回全局对象的引用(例如,循环引用)setTimeout
- 用于安排稍后发生事情的函数 ......还有很多其他人。它还会获取其中的所有其他内容,例如每个具有id
的DOM元素的属性(属性的名称是id
,其值是对DOM元素),在某些浏览器中,具有name
属性的DOM元素也是如此,依此类推。它非常混乱。
答案 1 :(得分:3)
name
是window
notName
不是,直到定义为
var output = "window.name: " + window.name + "\r\n" + "name: " + name;
alert(output);