称为“名称”的变量总是在 Javascript 中定义吗?

IT技术 javascript
2021-02-02 22:05:46
document.writeln('name=' + name); 
// name =

document.writeln('notName=' + notName); 
// ReferenceError: notName is not defined

“名称”在 javascript 中有什么特殊含义吗?(在 IE 和 FF 中检查)

2个回答

Javascript 中总是定义名为“name”的变量吗?

不。但是,在浏览器上有一个全局调用name,它是当前窗口的名称。这是浏览器上的 JavaScript 全局对象是 Window 对象这一事实的副产品。一点解释:

在JavaScript中,全局变量实际上是性能的一种叫做“全局对象。” 在浏览器上,全局对象是页面的 Window 对象,因此它具有与它是Window 对象相关的各种预定义属性(因此是全局对象),包括但不限于:

  • name - 当前窗口的名称
  • title - 当前窗口的标题
  • status - 状态区内容(除了大多数浏览器忽略它)
  • document - 当前窗口中的文档
  • window - 对全局对象的引用(例如,循环引用)
  • setTimeout - 用于安排稍后发生的事情的功能

...还有许多其他人。它还可以获得各种其他的东西,例如每个具有 的 DOM 元素id的属性(属性的名称是id,其值是对 DOM 元素的引用),在某些浏览器上,DOM 也是如此具有name属性的元素,等等。它非常混乱。

值得指出的是,window.name它可以用于存储(这是一种古老的方法),并且可以将其保持在 30 到 60MB 之间。资料来源:michalbe.blogspot.com/2013/03/...
2021-03-20 22:05:46

name 是一个属性 window

notName 不是,直到它被定义为这样

var output = "window.name: " + window.name + "\r\n" + "name: " + name;
alert(output);