2 javadeep javadeep 于 2014.11.10 12:04 提问

javascript中,name和names作为数组名,数组长度为什么不一样?
enter code here<head>
    <meta http-equiv="Content-Type"content="text/html";charset="utf-8">
    <script type="text/javascript">
        var names = ['张三','李四','王五','赵六'];
        var locals = ['张三','李四','王五','赵六'];

        document.write(names.length+',');
        document.write(locals.length);
    </script>
</head>

运行结果是:4,4

enter code here<head>
    <meta http-equiv="Content-Type"content="text/html";charset="utf-8">
    <script type="text/javascript">
        var name = ['张三','李四','王五','赵六'];
        var local = ['张三','李四','王五','赵六'];

        document.write(name.length+',');
        document.write(local.length);
    </script>
</head>

运行结果是:11,4
为什么会这样?name和names作为数组名到底有什么区别?

1个回答

chinmo
chinmo   Rxr 2014.11.10 13:11

这个应该是关键字造成影响了吧
var name = ['张三','李四','王五','赵六'];
for(i=0;i<name.length;i++){
document.writeln(name[i]);
}

你会发现返回的是:
张 三 , 李 四 , 王 五 , 赵 六

逐个分开的

然后你再输出这个看:

document.write(window.name)
你就知道返回的是 张三,李四,王五,赵六

这样你应该知道是关键字造成的了吧

因为正好window对象 有这么一个属性

javadeep
javadeep 哦,var name=[...];这句并没有定义name数组,而是将(张三,...,赵六)作为字符串赋值给window的name属性,所以name.length是一个字符串的长度,不是数组长度!soga,thank u!
大约 3 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!