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等数组的方法会修改数组,他们在字符串上是无效的。而且使用这些方法来修改字符串会导致出错:出错的时候没有提示。

转载:http://www.cnblogs.com/zqzjs/p/4811715.html

时间: 2024-07-30 12:50:24

JavaScript权威设计--JavaScript数组(简要学习笔记九)的相关文章

JavaScript权威设计--事件处理介绍(简要学习笔记十七)

1.事件相关概念 事件类型:一个用来说明发生什么类型事件的字符串 事件目标:是发生的事件或与之相关的对象. 事件处理程序(事件监听程序):是处理货响应事件的函数. 事件对象:是与特定事件相关并且包含有关该事件详细信息的对象. 事件传播:是浏览器决定哪个对象触发其事件处理程序的过程. 事件捕获:在容器元素上注册的特定处理程序有机会再事件传播打破真实目标之前拦截它. 阻止标签默认事件的发生   2.Window事件 focus,blur不冒泡.focusin,focusout冒泡. load当文档和

JavaScript权威设计--Window对象(简要学习笔记十三)

1.Window对象是所有客户端JavaScript特性和API的主要接入点. Window对象中的一个重要属性是document,它引用Document对象. JavaScript程序可以通过Document对象和它包含的Element对象遍历和管理文档.   2.URL中的JavaScript 在URL后面跟一个JavaScript:协议限定符.里面的代码会作为JavaScript代码进行运行,需用分号分割. 如: <a href="javascript:alert('OK!')&qu

JavaScript权威设计--JavaScript函数(简要学习笔记十一)

1.函数调用的四种方式 第三种:构造函数调用 如果构造函数调用在圆括号内包含一组实参列表,先计算这些实参表达式,然后传入函数内.这和函数调用和方法调用是一致的.但如果构造函数没有形参,JavaScript构造函数调用的语法是允许省略实参列表和圆括号的. 如: var o=new Object(); //->等价于 var o=new Object;   第四种:使用call()与apply()间接调用(放在后面详细说明)   2.函数的实参与形参--可选形参 先看一个例子: function g

JavaScript权威设计--JavaScript函数(简要学习笔记十)

1.函数命名规范 函数命名通常以动词为前缀的词组.通常第一个字符小写.当包含多个单词时,一种约定是将单词以下划线分割,就像"like_Zqz()". 还有一种就是"likeZqz()".有些些函数是用作内部用的或者为私有函数通常以一条下划线为前缀,就像"_zqzName()".   2.以表达式方式定义的函数 如: var zqz=function (){ return "zhaoqize"; } 在使用的时候必须把它赋值给一

JavaScript权威设计--JavaScript类型,值,变量(简要学习笔记三)

1.负号是一元求反运算 如果直接给数字直接量前面添加负号可以得到他们的负值     2.JavaScript中的运算超出了最大能表示的值不会报错,会显示Infinity. 超出最小也不报错,会显示-Infinity. 运算出的结果如果是个非数字的值得时候,用NaN表示.   3.字符串直接量拆分成数行 ECMAScript3中,字符串直接量必须下载一行中,而在ECMScript中,字符串直接量可以拆分成数行,每行必须以反斜线(\)介绍. 如:"two\lines"       &quo

JavaScript权威设计--JavaScript对象(简要学习笔记七)

1.with语句 语法: width(object){ statement } with语句可用于临时扩展作用域链.作用域链可以按序检索的对象列表,通过它可以进行变量名解析. with将object添加到作用域链的头部,然后执行内部statement,最后把作用域链回复到原始状态.   但是:with语句要尽量避免使用.有with代码的语句难以优化,且运行的更慢. 在对象嵌套跟多层次的时候通常会使用with来优化. 如: document.forms[0].address.value //->

JavaScript权威设计--JavaScript脚本化文档Document与CSS(简要学习笔记十五)

1.Document与Element和TEXT是Node的子类. Document:树形的根部节点 Element:HTML元素的节点 TEXT:文本节点   >>HtmlElement与HtmlDocument a:HtmlElement对象表示HTML中的一个个元素. b:HtmlDocument对象表示 HTML 文档树的根.HTMLDocument 接口对 DOM Document 接口进行了扩展,定义 HTML 专用的属性和方法.   >>HTML的DOM对象 a:DOM

JavaScript权威设计--JavaScript表达式与运算符(简要学习笔记五)

1.3种原始表达式     1.直接量:    1.23    //数字直接量                         "hello"    //字符串直接量                         ...     2.保留字构成的原始表达式:         true    //返回布尔值:真         false    //假         null    //返回一个值:空     3.变量:         i    //返回变量i的值        

JavaScript权威设计--JavaScript表达式与运算符,语句(简要学习笔记六)

1.delete是一元操作符,用来删除对象属性或者元素. var a={ x:1, y:2 } delete a.x; //删除x属性 "x"in a //false:a对象中已经不存在x属性 alert(a.x) //undefined;这里还是存在"东西"的 就如: var b=[1,2,3]; delete b[0]; b.length //3:还是3,虽然上面已经删除了b[0]   2.void运算符 void忽略操作的值,因此在操作数具有辅助作用的时候使用