🎈 变量声明
- 多个变量的声明,可以简写
// 非效率写法letx; lety; letz=520; // 效率写法letx, y, z=520;
🎈 三元运算符
- 在条件判断时,可以使用三元运算符增加效率
letnum1=520; letnum2=1314; // 非效率写法if (num1>num2) { // ...} else { // ...} // 效率写法letresult=num1>num2?true : false;
🎈 解构赋值
- 变量赋值
leta, b, c; // 非效率写法a=1; b=2; c=3; // 效率写法let [a, b, c] = [1, 2, 3];
🎈 解构交换
- 交换两个变量
letx='极客飞兔', y='程序员'; // 非效率写法consttemp=x; x=y; y=temp; // 效率写法[x, y] = [y, x];
🎈 箭头函数
- 函数的简写方式
// 非效率写法functionadd(num1, num2) { returnnum1+num2; } // 效率写法constadd= (num1, num2) =>num1+num2;
🎈 字符串模版
// 非效率写法console.log('极客飞兔的年龄 '+age+' 他的身高 '+height); // 效率写法console.log(`极客飞兔的年龄 ${age}他的身高 ${height}`);
🎈 多值匹配
- 判断某个值是否等于某个多个值中的一个
// 非效率写法if (value===1||value==='飞兔'||value===2||value==='程序员') { // ...} // 效率写法一if ([1, '飞兔', 2, '程序员'].indexOf(value) >=0) { // ...} // 效率写法二if ([1, '飞兔', 2, '程序员'].includes(value)) { // ...}
🎈 ES6对象简写
letfirstname='极客'; letlastname='飞兔'; // 非效率写法letuserinfo= {firstname: firstname, lastname: lastname}; // 效率写法letuserinfo= {firstname, lastname};
🎈 字符串转数字
// 非效率写法lettotal=parseInt('520'); letaverage=parseFloat('13.14'); // 效率写法lettotal=+'520'; letaverage=+'13.14';
🎈 次方相乘
// 非效率写法constpower=Math.pow(2, 5); // 效率写法constpower=2**5;
🎈 数组合并
letarr1= [520, 1314]; // 非效率写法letarr2=arr1.concat([1225, 1115]); // 效率写法letarr2= [arr1, 1225, 1115];
🎈 查找数组最大值最小值
constarr= [520, 1314, 1115, 1225]; // 效率写法Math.max(arr); Math.min(arr);
🎈 获取字符串字符
letstr='https://autofelix.blog.csdn.net/'; // 非效率写法str.charAt(10); // 效率写法str[10];
🎈 并&&操作
functionfn() { returntrue; } letflag=true; // 非效率写法if (flag) { fn(); } // 效率写法flag&&fn();
🎈 数组排序
constarr= [40, 2, 1, 5, 99, 111]; // 从小到大arr.sort((a, b) =>a-b); // [1, 2, 5, 40, 99, 111]// 从大到小arr.sort((a, b) =>b-a); // [111, 99, 40, 5, 2, 1]
🎈 数组过滤
- 从数组中过滤假数值
constarr= [3, '1', '', 0, false, null, undefined]; arr.filter(Boolean); // [3, '1']
🎈 for循环
letarr= ['极客飞兔', 520, 1314, '程序员'] // 非效率写法for (vari=0; i<arr.length; i++) {} // 效率写法for (constiinarr) {} // 效率写法for (constiofarr) {}
🎈 判断奇偶
- 使用& 1 判断奇偶数
// 非效率写法if(value/2==0) { // 是偶数} else { // 是奇数} // 效率写法2&1; // 0 返回0表示偶数3&1; // 1 返回1表示奇数
🎈 数组去重
constarray= [5,4,7,8,9,2,7,5]; // 效率的两种写法array.filter((item,idx,arr) =>arr.indexOf(item) ===idx); constnonUnique= [newSet(array)];
🎈 IF检查
// 非效率写法if (result===true) // 效率写法if (result)
🎈 合并对象
constuser= { name: '极客飞兔', gender: '男'}; constcollege= { primary: '清华大学', secondary: '社会大学'}; constskills= { java: 'JAVA', php: 'PHP', python: 'PYTHON'}; constsummary= {user, college, skills};
🎈 可选链
constuser= { employee: { name: "极客飞兔" } }; // 可选链user.employee?.name; user.employ?.name; user.employ.name;
🎈 字符串重复
// 非效率写法letstr=''; for(leti=0; i<5; i++) { str+='autofelix '; } // 效率写法'autofelix '.repeat(5);
🎈 默认值
letuser; letname=getUserName(); // 非效率写法if (name!==null&&name!==undefined&&name!=='') { user=name; } else { user='极客飞兔'; } // 效率写法letuser=getUserName() ||'极客飞兔';
🎈 双波浪线运算符
// 非效率写法constfloor=Math.floor(6.8); // 6// 效率写法constfloor=~~6.8; // 6
🎈 移除对象属性
letobj= {x: 45, y: 72, z: 68, p: 98}; // 非效率写法deleteobj.x; deleteobj.p; console.log(obj); // {y: 72, z: 68}// 效率写法let {x, p, newObj} =obj; console.log(newObj); // {y: 72, z: 68}