JavaScript-为什么可以';我称之为变量;姓名;?

JavaScript-为什么可以';我称之为变量;姓名;?,javascript,syntax,Javascript,Syntax,为什么不能在JS中调用变量“name” 当我在控制台的新选项卡中键入“name”时,它会返回一个空字符串 我使用Chrome。'name'是依赖于实现的JavaScript对象、方法或属性的预定义名称,您应该避免将其用作变量的名称,虽然它不是保留字,在某些浏览器中可能会起作用,因为window.name是window对象的一个神奇属性,并且只能保存字符串(任何对象,包括数组,都被强制为基元类型,变成类似“[对象对象]”)。在全局范围中定义的变量将成为全局对象的属性,并可能导致冲突 您可以在任何非

为什么不能在JS中调用变量“name”

当我在控制台的新选项卡中键入“name”时,它会返回一个空字符串


我使用Chrome。

'name'是依赖于实现的JavaScript对象、方法或属性的预定义名称,您应该避免将其用作变量的名称,虽然它不是保留字,在某些浏览器中可能会起作用,因为
window.name
window
对象的一个神奇属性,并且只能保存字符串(任何对象,包括数组,都被强制为基元类型,变成类似
“[对象对象]”
)。在全局范围中定义的变量将成为全局对象的属性,并可能导致冲突

您可以在任何非全局范围内使用变量
name
。简单的解决方法是将代码包装在立即调用的函数表达式(IIFE)中


您应该能够调用变量
名称
。在控制台中调用
name
与访问
window
name
属性是一样的。在Chrome中对我来说很好。你用的是什么浏览器?不要创建那么多全局文件,你会没事的。这是正确的答案。我还想添加设置
window.name
自动执行字符串类型的强制转换,因此设置
window.name
将产生类似
window.name=[object htmldevelment]
的结果。我已经添加了此信息。TIL:
窗口。name
只能保存字符串,不能保存其他基元类型。
var wrapper = document.createElement("div");
var name = document.createElement("div");

wrapper.appendChild(name); // TypeError: Failed to execute 'appendChild' on 'Node': parameter 1 is not of type 'Node'.

document.body.appendChild(wrapper);
(function(){

    var wrapper = document.createElement("div");

    var name = document.createElement("div");


    wrapper.appendChild(name); // workd


    document.body.appendChild(wrapper);

}());