JS变量声明时使用name作为变量名自动转化为字符串

版权声明:本文为博主原创文章,未经博主允许不得转载。如有错误,欢迎评论指正,谢谢! https://blog.csdn.net/z_e_n_g/article/details/81455248

在JS中,定义一个全局数组的时候,如果使用的数组名为 name ,那么定义的数组将自动转化为字符
就像下面的代码,不论你给name赋什么类型的值,最后输出都是 string

var name = ["aaa","bbb","ccc"];
conlose.log(typeof name);

JS中,数组属于object类型,说以上面语句输出应该是object,但是实际上输出了 string

这是为什么呢?

因为window对象中有一个属性是 window.name
window.name 是一个字符串
所以但你声明name变量的时候,相当于给window.name赋值,所以只能为字符串

这种情况出现在定义全局变量时,在函数或对象的局部作用于中定义时不受影响

猜你喜欢

转载自blog.csdn.net/z_e_n_g/article/details/81455248