函数是JavaScript的一等公民
所谓"第一等公民"(first class),指的是函数与其他数据类型一样,处于平等地位,可以赋值给其他变量,也可以作为参数,传入另一个函数,或者作为别的函数的返回值。
经常见的情况
1.数组的sort方法
2.数组的map方法(IE9+支持)
3.数组的forEach方法(IE9+支持)
示例:
1.// 按照数值的大小进行排序。
t.sort(function(a, b) { // 函数式编程。一个函数作为另外一个函数的输入。
return a - b;
});
console.log(t);
2.map
数组的map方法(IE9+支持)
返回新数组
方法接受一个回调函数,回调函数三个参数:当前项、索引、操作的数组
不影响原来的数组
<script>
//map 方法
var t = [ 1, 3, 9, 10, 20 ];
var m = t.map(function(item, index, array){
// item: 就是当前的选项。
// index: 当前选项的索引
// array:当前数组
// return: 返回每个项处理的结果。
return item * 2;
});
console.log(t);//(5) [1, 3, 9, 10, 20]
console.log(m);//(5) [2, 6, 18, 20, 40]
</script>
3.forEach
数组的forEach方法(IE9+支持)
返回值是undefined
不影响原来的数组
<script>
var m = ['22', true, 1, 99, 98];
// 打印m中的每个元素。
m.forEach(function(item, index) {
// item是遍历的每个项。
// index 项对应数组的索引。
console.log('index:' + index + ' ' + item);
});
console.log(m)//(5) ["22", true, 1, 99, 98]
</script>