sunshine
管理员
管理员
  • 最后登录2023-10-30
  • 发帖数170
  • 社区居民
阅读:7477回复:0

[javascript]js 中的特殊变量name 即:window.name的问题

楼主#
更多 发布于:2018-07-27 20:15
js中定义变量,变量名的规则,不能是关键字,首字母不能为数字等。大家注意到的是关键字,for,switch,if,function等。但是有一个变量名为name的,也是被window对象使用了。window自带属性name;
所以,如果变量名命名为name,可能会导致程序出错。请看以下代码:
<script type="text/javascript">
    var name;
    name = null;
    console.log(name == null); //false
    var bj;
    bj = null;
    console.log(bj == null); //true
</script>

为什么,变量名为name, 打印出来就是false呢???
然后,做了一个测试:

var name;
name = null;
console.log(typeof name); //string
console.log(name); //"null"

,又做了一个测试:


var name;
name = 5;
console.log(typeof name); //string
console.log(name); //"5"

二个测试下来,发现不管定义什么,name最后,都会转成字符串。所以出现了上面的情况。

最后,查阅文档发现,window.name此属性只能保存字符串。如下图,所以,大家在命名时,注意下,最好不要用name.
游客


返回顶部

公众号

公众号