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

时间:2014-10-25 13:07:46

标签: javascript

document.writeln('name=' + name); 
// name =

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

“name”在javascript中有一些特殊含义吗? (在IE和FF中查看)

2 个答案:

答案 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)

namewindow

的属性

notName不是,直到定义为



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