【问题标题】:Is variable called "name" always defined in Javascript?是否总是在 Javascript 中定义名为“名称”的变量?
【发布时间】:2014-10-25 13:07:45
【问题描述】:
document.writeln('name=' + name); 
// name =

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

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

【问题讨论】:

标签: javascript


【解决方案1】:

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

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

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

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

...还有很多其他的。在某些浏览器上,它还会获取所有其他类型的东西,例如每个具有 id 的 DOM 元素的属性(该属性的名称是 id,它的值是对 DOM 元素的引用)对于具有 name 属性的 DOM 元素也是如此,依此类推。太乱了。

【讨论】:

【解决方案2】:

namewindow 的属性

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-06-15
    • 1970-01-01
    • 1970-01-01
    • 2023-02-23
    • 1970-01-01
    • 1970-01-01
    • 2011-03-30
    • 1970-01-01
    相关资源
    最近更新 更多