JavaScript中Array.prototype.map使用的一个注意事项
来源:互联网 发布:魔兽争霸源码 编辑:程序博客网 时间:2024/06/01 09:01
首先看一段JS代码:
console.log(Array(10).map(function(){return "A"}));
有人会任务这行代码将输出10个A. 实际上它输出的是一个空数组,也就是说下面代码是成立的
Array(10).map(function(){return "A"}).join("") === ""
看上去map没有生效,针对这个原因找了一下Array.prototype.map在ECMA 262-5规范中的定义
"Array.prototype.map ( callbackfn [ , thisArg ] )callbackfn应该是个函数,它接受三个参数。 map 按照索引的升序,对数组里
存在的每个元素调用一次 callbackfn,并用结果构造一个新数组。 callbackfn 只
被实际存在的数组元素调用;它不会被缺少的数组元素调用。"
规定里面map只对存在的元素调用,而Array(10)中的元素其实尚未真实存在.所以才出现了上面的情况.
类似的还有其他一些Array.prototype上的函数也有类似问题,如forEach filter some every等.
0 0
- JavaScript中Array.prototype.map使用的一个注意事项
- Javascript中Array.prototype.map()详解
- Javascript中Array.prototype.map()详解
- JavaScript 中 Array.forEach方法使用注意事项
- Array.prototype.map()的用法
- js Array.prototype.map()使用实例
- JavaScript中数组Array.prototype的常用的方法总结
- JavaScript学习--Item14 使用prototype的几点注意事项
- prototype.js中hide()和show()的一个注意事项
- 了解Array.prototype.map()
- Array.prototype.map()详解
- JavaScript中prototype和proto的使用
- Hive 中 Array、Map、Struct 的使用
- hive中map、struct、array的使用
- JavaScript的Prototype使用
- 浅谈javascript的Array.prototype.slice.call
- 浅谈javascript的Array.prototype.slice.call
- javascript的Array.prototype.slice.call
- Xcode编译IPA时候出现意外退出
- Hibernate缓存之EHCache
- JAVA多线程与队列
- 编译原理作业:编写一个程序,使之将一个C程序除注释之外的所有保留字全部大写
- 数据仓库架构发展
- JavaScript中Array.prototype.map使用的一个注意事项
- java设计模式—Decorator模式
- 关于SDK更新遇到Failed to fetch URL http://dl-ssl.google.com/android refused问题的解决办法
- 软件开发文档范例
- Maven 插件 Mojo
- web.xml 详细介绍
- 关于一个大型web系统架构设计和技术选型的讨论摘录
- 黑马程序员——第5天——(面向对象)构造函数,构造代码块,this关键字
- 35特殊字符匹配表情的工具类