js 数组赋值问题 :值传递还是引用?
来源:互联网 发布:python教程书籍下载 编辑:程序博客网 时间:2024/04/29 02:40
JavaScript有许多批量创建数组的方法,为了衡量它们的性能,我分别使用不同的方法创建一个长度为100000的数组,且键和值相等。同时,我定义了下面这个函数用来测量创建数组所耗费的时间:
以下为常用的几个创建数组的方法以及它们所耗费的时间:
这里用到了一个{ length: 100000 }伪数组,NodeList和arguments都是伪数组(array-like object),它们都不是真正意义上的数组,而是带有”length属性”并且同时具备”索引属性”的对象,不能直接使用数组的那些方法,而apply和call却可以接受这种伪数组。我们平时在用的Array.prototype.slice( arguments)就是基于这个原理。
这里把长度为100000的伪数组传递给Array函数,构造出了一个长度为100000的数组,然后再用map赋值。有同学可能要问了,为什么不直接Array(100000)生成数组,这是因为通过Array(100000)生成的数组每个值都为undefined,无法通过map遍历。
比较下来,发现还是最原始的for循环直接赋值的速度最快,其他几个方法速度都差不多。
但for循环写起来实在麻烦,一句话就能搞定的事需要三句才能搞定。
所以,如果对性能没有太大要求的话(毕竟在实际开发中也不会有100000那么大的数组),使用apply和Array.from最方便。
阅读全文
0 0
- js 数组赋值问题 :值传递还是引用?
- JS数组赋值的引用传递
- jquery解决js对象、数组赋值时的引用传递
- JS 参数传递到底是值传递还是引用传递?
- JS到底是值传递还是引用传递
- js数组引用传递
- js数组引用传递
- js值传递和引用传递问题
- 值传递还是引用传递
- 值传递还是引用传递?
- 值传递还是引用传递
- JS是按值传递还是按引用传递
- JS是按值传递还是按引用传递
- JS是按值传递还是按引用传递?
- JS是按值传递还是按引用传递
- js传参是按值传递还是按引用传递?
- java参数传递。传递值还是引用问题
- 关于是值传递还是引用传递的问题
- Android实用功能(一)CollapsingToolbarLayout实现标题栏的伸缩
- html5之ArrayBuffer:类型化数组
- 管理知识体系之-平等
- 电信云堤上层流量清洗功能,全面保障服务器不被DDoS攻击。
- centos 桥式连接
- js 数组赋值问题 :值传递还是引用?
- 如何取得用户参数文件中的parameters
- 有输入框时退出Activity导致前一个界面的布局被顶上去问题
- MySQL基本的增删改查
- 变量提升—函数内部中数据初始化问题
- YOLO算法的调整与优化
- Spring @Import注解
- Less的条件表达式
- vi 编辑器的使用 习题