当前位置:  开发笔记 > 编程语言 > 正文

如何实现javascript数组?

如何解决《如何实现javascript数组?》经验,为你挑选了1个好方法。

即,以下代码如何:

var sup = new Array(5);
sup[0] = 'z3ero';
sup[1] = 'o3ne';
sup[4] = 'f3our';
document.write(sup.length + "
");

输出'5'作为长度,当你所做的就是设置各种元素?

我对此代码的"问题"是,我不理解如何在length不调用getLength()setLength()方法的情况下进行更改.当我执行以下任何操作时:

a.length
a['length']
a.length = 4
a['length'] = 5

在非数组对象上,它的行为类似于dict/associative数组.当我在数组对象上执行此操作时,它具有特殊含义.JavaScript中的哪种机制允许这种情况发生?javascript是否有某种类型的属性系统进行翻译

a.length
a['length']

进入"获取"方法和

a.length = 4
a['length'] = 5

进入"设置"方法?



1> tvanfosson..:

JavaScript中的所有内容都是一个对象.在a的情况下Array,该length属性返回数组的索引项的内部存储区域的大小.一些混淆可能会起作用,因为[]运算符适用于数字和字符串参数.对于数组,如果将其与数字索引一起使用,则返回/设置预期的索引项.如果将它与字符串一起使用,它将返回/设置数组对象上的命名属性 - 除非字符串对应于数值,否则它将返回索引项.这是因为在JavaScript中,数组索引通过隐式toString()调用强制转换为字符串.坦率地说,这只是让你头脑发热并且说"JavaScript,这就是为什么他们会嘲笑你"的那些东西.

浏览器之间的实际底层表示可能不同(或者可能不同).除了使用它时提供的接口之外,我不会依赖任何其他东西.

您可以在MDN上找到有关Javascript数组的更多信息.

推荐阅读
U友50081205_653
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有