当运行带有终端节点的sample.js文件时
var name = 12;
console.log( typeof name )
//number
但在浏览器控制台中有所不同
var name = 12;
console.log( typeof name )
//string
为什么有区别?!
答案 0 :(得分:5)
name
是window
和字符串的属性。
在控制台中设置name
时,实际上是在设置window.name
的值,该值将转换为字符串,如文档中所述:
window.name将使用toString方法将所有值转换为它们的字符串表示形式。
这种情况尤其发生,因为您要这样设置名称:
var name = 12;
在浏览器中使用var name =
且没有其他任何作用域与编写window.name =
相同。
但是,如果要使用const
或let
来声明name
,则name
不适用于全局范围,即window
,它将是预期的类型:
const name = 4;
console.log(typeof name)