剩余参数
const show = (a, b, ...c) => {
console.log(a, b, c);
};
show(1, 2, 3, 4, 5, 22);
运行结果
数组展开
let arr1 = [1, 2, 3];
let arr2 = [4, 5, 6];
let arr = [...arr1, ...arr2];
console.log(arr);
运行结果
json展开
let json = { a: 15, b: 14 };
let json1 = {
...json,
d: 13,
};
console.log(json1);
运行结果
原声对象扩展
Array扩展
map : 映射 一一对应
reduce 缩减 n=>1
filter : 过滤
forEach : 遍历
map
let json = [60, 70, 50, 40, 80];
let arr1 = json.map(item => {
return item > 60 ? '及格' : '不及格';
});
/*
* 简写
*/
let arr2 = json.map(item => (item > 60 ? '及格' : '不及格'));
console.log(arr1);
console.log(arr2);
运行结果
reduce
求和 列入购物车
let arr = [68, 53, 12, 98, 65];
let result = arr.reduce((tmp, item, index) => {
if (index == arr.length - 1) {
return (tmp + item) / arr.length;
} else {
return tmp + item;
}
});
console.log(result);
运行结果
filter
let arr = [68, 53, 12, 98, 65, 55, 66];
let arr2 = arr.filter(item => {
return item % 2 == 0;
});
console.log(arr2);
运行结果
forEach
let arr = [68, 53, 12, 98, 65, 55, 66];
let arr2 = arr.forEach((item, index) => {
console.log(`第${index}个是:${item}`);
});
JSON对象
JSON.stringify()
JSON.parse()
async/await
async function show() {
let a = 2;
let b = 15;
try {
let data = await $.ajax({ url: '1.text' });
let sum = a + b + data[0];
alert(sum);
} catch {
alert('捕获加载失败');
}
}
show();
面向对象模块化
// 有单独的类声明,构造函数声明
class Person {
constructor(name, age) {
this.name = name;
this.age = age;
}
showName() {
alert(this.name);
}
showAge() {
alert(this.age);
}
}
let p = new Person('blue', 18);
p.showName();
p.showAge();
子类继承父类
class 类声明
constructor 构造函数
extends 继承
super 父类/超类
// 有单独的类声明,构造函数声明
class Person {
constructor(name, age) {
this.name = name;
this.age = age;
}
showName() {
alert(this.name);
}
showAge() {
alert(this.age);
}
}
// 子类继承父类
class Worker extends Person {
constructor(name, age, job) {
super(name, age);
this.job = job;
}
showJob() {
alert(this.job);
}
}
let w = new Worker('blue', 18, 'job');
w.showJob();
w.showAge();
ES6模块
webpack 编译