- js函数有类似javaMethod用法
Math.max.apply(null, [3, 5, 4]); // 5 Math.max.call(null, 3, 5, 4); // 5
- Array map,reduce,filter,sort
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]; var results = arr.map(pow); // [1, 4, 9, 16, 25, 36, 49, 64, 81] console.log(results);
[x1, x2, x3, x4].reduce(f) = f(f(f(x1, x2), x3), x4) var arr = [1, 3, 5, 7, 9]; arr.reduce(function (x, y) { return x + y; }); // 25
var arr = [1, 2, 4, 5, 6, 9, 10, 15]; var r = arr.filter(function (x) { return x % 2 !== 0; }); r; // [1, 5, 9, 15]
var arr = [10, 20, 1, 2]; arr.sort(function (x, y) { if (x < y) { return 1; } if (x > y) { return -1; } return 0; }); // [20, 10, 2, 1] sort默认字符创排序,数字排序需要重写sort 方法
- 闭包: 闭包是由函数以及创建该函数的词法环境组合而成。这个环境包含了这个闭包创建时所能访问的所有局部变量。也就是说返回的函数中存有局部变量。
function makeAdder(x) { return function(y) { return x + y; }; } var add5 = makeAdder(5); var add10 = makeAdder(10); console.log(add5(2)); // 7 console.log(add10(2)); // 12
//嵌套的函数可以访问在其外部声明的变量。也可以借助闭包,同样可以封装一个私有变量。
function inc(init) { let x = init; return { inc: function () { x += 1; return x; } } } let inc5 = inc(5) console.log(inc5.inc())//6 let inc10 = inc(10) console.log(inc10.inc())//11
-
箭头函数内部的
this
是词法作用域,由上下文确定。箭头函数完全修复了this
的指向,这里this指向外部调用对象person。let person = { name : 'lby', getname : function () { let name = () => this.name; return name() } } console.log(person.getname())
转载于:https://www.cnblogs.com/liuboyuan/p/9744069.html