《JavaScript权威指南》速查学习笔记(三)

这两天主要的学习内容是数组和函数。说实话,这两章的内容远比我想象的要复杂的多。数组方面的话,确实和C也有很多的区别,特别是字符串处理方面。

字符串处理方面,需要专门的进行学习,后期将专门写一篇文章,进行字符串知识的总结。

函数这一章,还是有很多细节方面的东西,我没有钻的太深,毕竟钻牛角尖就不对了,先要有一个知识框架。

同时,还有传值调用和引用调用的使用方法,这本书并没有介绍。

当然,后面的函数式编程就直接略过,之后有需要、接触了学习了函数式编程之后,再专门写一篇关于函数式编程的学习笔记。(想起了《黑客与画家》里面的lisp。。蛋疼菊紧啊。。。)

 

 

第七章:数组

①稀疏数组:

稀疏数组就是包含从0开始的不连续索引的数组。空的位置的元素为undefined。

简而言之,对待稀疏数组就和对待常规数组一样,只不过他们包含了一些undefined

值。

 

②数组元素的添加和删除

我们可以直接赋值:

a=[];

a[0]=’123’;

同时,我们可以用push(),pop()实现栈的效果。

shift(),unshift()两个,和push(),pop()类似,不过是从队首操作(shift()是删除)

Delete运算符可以删除元素,不过索引不会变,会留下undefined

 

③数组方法:

Join();

连接元素,返回字符串,括号中带入的字符即为连接符。

Sort();

方法,返回的是数组。括号中输入的是比较函数;

比较函数:带有两个参数,如果参数一应该在前,则需要返回<0的值;反之,则需要返回>0的值。

这里可以使用匿名函数,类似于a.sort(function(a,b){return a-b});这样的

Concat():

返回一个新数组,将原来的所有的各种表格打散成单个元素,再依次构成数组。

Slice():

切分数组,返回值为数组。

若是两个参数,则把参数作为索引,返回索引之间的数组。(从0开始)

若是一个参数,则是返回从索引开始,到末尾数组。

若参数为负数,则代表的是倒数的索引。

Splice():

注意和楼上的兄弟区分。Splice()会修改数组本身

对于a.splice(**)

如果有一个参数,那么返回从0到参数-1的闭位置,a变为剩下的数组

如果有两个参数,第二个数就指的是删除的元素的个数,第一个数是起点索引。A变为删除后剩下的,返回的是删除的数组。

forEach():

遍历数组,为每个元素调用指定的函数。指定的函数可以最多带三个参数,三个参数分别代表:数组元素、元素的索引、数组本身。例如:

 

Var data=[1,2,3,4,5];

Var sum=0;

Data.forEach(function(value){sum+=value;})

Data.forEack(function(v,I,a){a[i]=v+1;});

 

map():

将调用map的数组的每一个元素依次传递给里面的函数,并返回一个数组,该数组即为原数组每个元素依次带入函数后的值。

B=a.map(function(x){return x*x;});

 

filter():

最多带两个参数,第一个参数是依次的每个元素,第二个参数是索引的值。

该方法返回一个数组。依次将数组每个元素带入函数,如果返回为真,则返回的数组中插入该元素,如果不然,则不插入。

 

Every(),some()

Every()类似于数学逻辑中的“所有”,some类似于数学逻辑中的存在

该方法返回布尔值。方法带入的语句为一个带有一个参数的返回布尔值的函数。

如果数组所有元素函数都返回真,则every为真。Some同理。

 

reduce(),reduceRight()

indexOf(),lastIndexOf()

返回带入参数元素的第一次(最后一次)的索引。

 

④字符串相关专题

略,后期专门写一篇文章来总结。

 

 

 

第八章:函数

①传值调用和引用调用

这里转载一篇文章。

https://www.cnblogs.com/chenwenhao/p/7009606.html

②标识符arguments

在js的函数中,我们写函数时,不需要指定函数有多少参数。

Arguments标识符,在函数中,代表的是传递进来的实参的整个对象的引用。

③callee和caller

Callee指的是当前正在执行的函数,可用于匿名函数的递归。

④函数的作用域

⑤call(),apply(),bind()

没学懂。

⑥函数式编程


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值