一、Array
1. 定义一个Array
let a = ['a', 'b']let a = new Array('a', 'b')
2. var a = new Array(3)与var a = new Array(3,3)的区别
new Array(3)生成一个长度为3的空数组,new Array(3,3)生成一个第0项和第一项都是3,长度为2的数组
3. var a = [1, 2, 3] 与 var obj = { 0: 1, 1: 2, 2: 3, length: 3}的区别
a中的__proto__指向 Array.prototype,而obj中的 __proto__ 指向Object.prototype
image.png
4. 伪数组
形如{0:1, 1:2, 2:3, 3:4, length:4},但__proto__不指向Array.prototype的对象。在JS中,已知唯一的一个伪数组是函数参数[arguments]
5.foreach()
a.foreach(function(x,y){}),foreach()接收两个参数,第一个是数组的value,第二个是数组的key。
6.sort(),sort是原地排序,会改变原值
-
sort()函数默认从小到大排序 -
sort(function(x,y){return x-y})从小到大排序 -
sort(function(x,y){return y-x})从大到小排序
7.join()
-
a.join()默认用逗号连接
-
a.join("方方")用括号里的内容连接
8.concat()
-
a.concat(b)连接两个数组,并返回一个新的数组
-
var b = a.concat([])用来复制一个数组。因为concat()会返回一个新的数组,所以b不等于a
9.map()
map()会对数组中的每一个元素执行括号内的函数并返回结果。
注:返回的数组中的元素取决于括号内函数的返回值,与原数组的元素没有关系
10.filter()
filter(fn)用括号内的函数对数组内容进行筛选,返回true的留下,false被筛选掉
11.reduce()
a.reduce(functin(prev, curr){ return prev+curr}, 0),reduce()接收两个参数,第一个参数是函数(该函数接收两个参数,第一个参数是上一次运算的结果,第二个参数是当前的数组元素),第二个参数是运算的初始值,即prev的初始值。
-
reduce()的一些神奇操作
二、Function
1. 声明函数
(1) var f = function(){} //具名函数
(2) function(){} //匿名函数
(3) var f = new Function('param1', 'param2',...,'functionBody') //用构造函数来声明








网友评论