// 1、从对象Object中取值
const obj = {
a: 1,
b: 2,
c: 3,
d: 4,
e: 5,
};
// 常规写法
// const a = obj.a;
// const b = obj.b;
// const c = obj.c;
// const d = obj.d;
// const e = obj.e;
// console.log(a);//1
// 高端写法---------es6解构
const { a, b, c, d, e } = obj;
console.log(a); //1
// 注意,更高端的操作来了,假如你需要的字段并不是a,而是aaa,那么还可以使用es6解构吗?
// 当然可以
const { a: aaa, b: bbb, c: ccc, d: ddd, e: eee } = obj;
console.log(aaa); //1
// 但是需要注意一点,ES6的解构赋值虽然好用。但是要注意解构的对象不能为undefined、null。否则会报错,故要给被解构的对象一个默认值。
// 所以最完美的写法便是:
const { a: aaaa, b: bbbb, c: cccc, d: dddd, e: eeee } = obj || {};
// 2、合并两个数组,合并两个对象
const arr = [1, 2, 3];
const brr = [1, 5, 6];
// 常规写法
// 合并数组-----没有进行数组去重
const crr = arr.concat(brr); //[1,2,3,1,5,6]
// 合并对象
const obj1 = { a: 1 };
const obj2 = { b: 2 };
const objAll = Object.assign({}, obj1, obj2);
console.log(objAll); //{a:1,b:1}
// 高端写法:----------es6的扩展运算符
// 合并数组+数组去重
const arrNew = [1, 2, 3];
const brrnew = [1, 5, 6];
const crrNew = [...new Set([...arrNew, ...brrnew])];
console.log(crrNew); //[1,2,3,5,6]
// 合并对象
const objNew1 = { a: 1 };
const objNew2 = { b: 2 };
const objAllNew = { ...objNew1, ...objNew2 };
console.log(objAllNew); //{a:1,b:1}
// 3、字符串拼接---模板字符串
// 常规写法
const name = "小明";
const score = 59;
let result = "";
if (score > 60) {
result = `${name}的考试成绩及格`;
} else {
result = `${name}的考试成绩不及格`;
}
// console.log(result);//小明的考试成绩不及格
// 注意:这样代码显得太繁琐了,而且没有明白模板字符串的真正用法,在${}中可以放入任意的JavaScript表达式,可以进行运算,以及引用对象属性。
// 高端写法
const resultNew = `${name}${
score > 60 ? "的考试成绩及格" : "的考试成绩不及格"
}`;
console.log(resultNew); //小明的考试成绩不及格
// 4、if中的判断条件
// 常规写法
let type = 1;
if (type == 1 || type == 2 || type == 3 || type == 4) {
//....
}
// 高端写法
const condition = [1, 2, 3, 4];
if (condition.includes(type)) {
//...
}
// 5、关于输入框非空的判断
// 常规写法
let value = "";
if (value !== null && value !== undefined && value !== "") {
//...
}
// 高端写法---ES6中新出的空值合并运算符
if (value ?? "" !== "") {
//...
}
高端ES6,向大咖进阶
于 2021-10-13 19:36:58 首次发布