Promise
-------------
resolve 成功回调 reject 失败回调 链式结构是重点
Promise.prototype.then()
Promise对象含有then方法,then()调用后返回一个Promise对象,
意味着实例化后的Promise对象可以进行链式调用,而且这个then()方法可以接收两个函数
,一个是处理成功后的函数,一个是处理错误结果的函数
Promise.all() 所有操作成功返回成功,否则失败
Promise.race() 只返回最快的操作结果
对象合并
-------------
$.extend()
var obj1 = {'a': 1};
var obj2 = {'b': 1};
var c = $.extend(obj1, obj2);
obj1 和 c 被修改
var obj1={'a':1};
var obj2={'b':2,'c':3};
for(var key in obj2){
if(obj2.hasOwnProperty(key)===true){
obj1[key]=obj2[key];
}
}
console.log(obj1); //{'a':1,'b':2,'c':3};
assign()
var o1 = { a: 1 };
var o2 = { b: 2 };
var o3 = { c: 3 };
var obj = Object.assign(o1, o2, o3);
console.log(obj); // { a: 1, b: 2, c: 3 }
console.log(o1); // { a: 1, b: 2, c: 3 }, 目标对象自身也会改变。 assign方法 合并指向第一个对象 后边的对象不会改变
扩展运算符 ...
-------------
合并数组
var arr1 = ['a', 'b'];
var arr2 = ['c'];
var arr3 = ['d', 'e'];
var arrAdd = [...arr1, ...arr2, ...arr3]
解构赋值
const [first, ...rest] = [1, 2, 3, 4, 5];
first // 1
rest // [2, 3, 4, 5]
const [first, ...rest] = [];
first // undefined
rest // []
let arrayLike = {
'0': 'a',
'1': 'b',
'2': 'c',
length: 3 //需要指定长度
};
let arr = [...arrayLike]; //['a','b','c']
arr (a,b,c) {
return a + b + c;
}
arr(...[1,2,3]) // 6
reduce()
-------------
接受一个函数,返回一个值。该方法会从一个累加值开始,不断对累加值和
数组中的后续元素调用该函数,直到数组中的最后一个元素,最后返回得到的累加值。
var numbers = [65, 44, 12, 4];
function getSum(total, num) {
return total + num;
}
function myFunction(item) {
document.getElementById("demo").innerHTML = numbers.reduce(getSum);
}
join()
-------------
把数组中的所有元素放入一个字符串,传入指定符号分割字符串。
var arr1 = [1,2,3];
var arr2 = [1,2,3];
arr1.join() // "123"
arr2.join(".") // "1.2.3"
删除数组元素
-------------
pop()
删除数组末尾的元素
shift()
删除数组第一个元素
pop() 和 shift() 方法都将删掉的元素作为方法的 返回值返回
splice()
第一个传入的参数 指定下标
第二个传入的参数 删除数量
var nums = [1,2,3,100,200,4,5];
nums.splice(3,2); //1,2,3,4,5