,当我把console.log
在浏览器控制台其中有未申报的,将返回未捕获的ReferenceError任何变量:变量没有定义。但是当我在浏览器控制台把console.log(name)
返回空和未定义。看到下面的图片。任何想法,为什么发生这种情况..奇怪的问题
我在Chrome和Firefox开发者工具进行了测试。
注:我使用clear()来清除控制台
,当我把console.log
在浏览器控制台其中有未申报的,将返回未捕获的ReferenceError任何变量:变量没有定义。但是当我在浏览器控制台把console.log(name)
返回空和未定义。看到下面的图片。任何想法,为什么发生这种情况..奇怪的问题
我在Chrome和Firefox开发者工具进行了测试。
注:我使用clear()来清除控制台
name
是一个全局变量这是在window
对象。所以当你登录时,它会发现全局的,这个值是空字符串(""
)。
console.log(name);
console.log(window.name);
什么是一个全局对象,在这种情况下,你在你的控制台打印window.name。
尝试检查这种方式,在控制台中键入下面的代码:
window.name = 'stackoverflow';
然后再次尝试做的console.log(名称),你会看到这个时候你看到“计算器”。所以基本上你在你的控制台打印的名字,是窗口名称...
有关window.name更多信息,请访问以下链接:
https://developer.mozilla.org/en-US/docs/Web/API/Window/name
这是发生了什么事时,您键入声明console.log(name)
:
name
。window
对象是否具有名为的属性,因为在浏览器中,全局范围由window
对象表示。window.name
或者只是name
应该返回姓名未定义。window
对象具有一组预定义/本机属性,名称就是其中之一。window.name
缺省值为“”(空字符串),因此它将一个空字符串记录到控制台。现在,这是发生了什么事,当你键入console.log(name100)
:
和以前一样(name100而不是名称)。
和以前一样(name100代替名字)。
您还没有声明name100,它既不是窗口对象的本地属性,所以它只是返回name100 is not defined
。
如果是随窗口对象,你可以检查此链接,你想检查属性:
'name'is不是未定义它的'“”(空字符串)。 'undefined'是'console.log'本身的rturned值(注意空行和'''undefined'前面)! –