document.writeln('name=' + name);
// name =
document.writeln('notName=' + notName);
// ReferenceError: notName is not defined
“名称”在 javascript 中有什么特殊含义吗?(在 IE 和 FF 中检查)
document.writeln('name=' + name);
// name =
document.writeln('notName=' + notName);
// ReferenceError: notName is not defined
“名称”在 javascript 中有什么特殊含义吗?(在 IE 和 FF 中检查)
Javascript 中总是定义名为“name”的变量吗?
不。但是,在浏览器上有一个全局调用name
,它是当前窗口的名称。这是浏览器上的 JavaScript 全局对象是 Window 对象这一事实的副产品。一点解释:
在JavaScript中,全局变量实际上是性能的一种叫做“全局对象。” 在浏览器上,全局对象是页面的 Window 对象,因此它具有与它是Window 对象相关的各种预定义属性(因此是全局对象),包括但不限于:
name
- 当前窗口的名称title
- 当前窗口的标题status
- 状态区内容(除了大多数浏览器忽略它)document
- 当前窗口中的文档window
- 对全局对象的引用(例如,循环引用)setTimeout
- 用于安排稍后发生的事情的功能...还有许多其他人。它还可以获得各种其他的东西,例如每个具有 的 DOM 元素id
的属性(属性的名称是id
,其值是对 DOM 元素的引用),在某些浏览器上,DOM 也是如此具有name
属性的元素,等等。它非常混乱。
name
是一个属性 window
notName
不是,直到它被定义为这样
var output = "window.name: " + window.name + "\r\n" + "name: " + name;
alert(output);