JavaScript权威设计--JavaScript数组(简要学习笔记九)

1.数组的创建
如:
var a=[1.1,null,"a"];
var b=[1, ,3];    //中间的那个元素是undefined
var  c=[ , , ]   
这里c.length你是不是以为是3?
哈哈,长度应该是2.因为数组直接量的语法允许有可选的结尾逗号。
 
2.数组索引的其他种类
a[-1.23]=true    //创建一个名为-1.23的属性
a["1000"]=0    //如果是字符串,它就转换为数组的索引
a[1.000]    //和a[1]相等
JavaScript中没有数组越界的概念,只会得到undefined值。
 
3.数组长度的特殊行为
a=[1,2,3,4];
a.length    //4
a.length=3    //现在a=[1,2,3]
a.length=0    //现在a=[];
设置length属性为一个小鱼当前长度的非负整数时,当前数组中那些索引值大于或等于n的元素将从中删除
 
4.forEach()和相关的便利方法使得数组拥有简单而强大的函数式编程风格。
如:
var data=[1,2,3,4,5]    
var sumOf=0;
data.forEach(function(x){    //把每个元素传递给此函数
    sumOf+=x*x;
})
sumOf    //55
 
5.JavaScript不支持真正的多位数组,可以用数组的数组来近似。
 
6.数组与其他JS对象一样拥有toString()方法。
如:
[1,2,3].toString()    //生成'1,2,3'
["a","b","c"].toString()    //生成'a,b,c'
 
 
7.ECMAScript5定义了9个新的数组方法来遍历,映射,过滤,检测,简化和搜索数组。
一:forEach
 
二:marp()方法将调用的数组的每个元素传递给指定的函数,并返回一个数组
如:
a=[1,2,3];
b=a.map(function(x){
    return x*x;
})
//b是[1,2,9]
 
三:filter()
 
四:every()和some()
every()用法:
a=[1,2,3];
a.every(function(x){
    x<10;
})
//返回true,所有值小于10
 
some()用法:
a=[1,11,12];
a.some(function(x){
    x<10;
})
//返回true,只要有一个小于10即可返回true
 
五:reduce()和reduceRight()
 
六:indexOf()和lastIndexOf()
 
8.字符串当做数组看待时,他们是只读的。
如push,sort等数组的方法会修改数组,他们在字符串上是无效的。而且使用这些方法来修改字符串会导致出错:出错的时候没有提示。
 
 
 
 
 
 
 

posted on 2015-09-15 22:29 qize 阅读(...) 评论(...) 编辑 收藏

导航

公告