ES6特性
容易的就不讲,讲难理解一点的
1、解构
// 用于数组, 会将等号后面的值和等号前面的一一对应放入变量,和位置相关 let a = 1; let b = 2; let [a, b] = [b, a]; console.log(a); // 2 console.log(b); // 1 // 用于对象,会将等号后面的值赋给等号前面相同变量的值,和名称相关 let {name, age'} = {age: 20, name: '张三'} // name = 张三 // age = 20
2、模块化 export 和 import 是配合使用的,用于导入或导出函数、变量或类等
// export // 写法一 export function a() { console.log('我是a函数') } export function b() { console.log('我是b函数') } export const name = '张三'; export const age = 20; // 写法二 function a() { console.log('我是a函数') } function b() { console.log('我是b函数') } let name = '张三'; let age = 20; // 导出时可以用as 取别名 export {a as fa, b, name, age}; // 一个文件模块中可以有一个default, 并且最多只能有一个 export default function () { console.log('我是默认函数') }
// import // 这样会将所有函数、变量等都导出到all这变量上 import all from 'common.js'; // 可以选择性导出, 名称要和export导出的名称相同 import {a, name} from 'common.js'; // 导出时可以取别名 import {a as fa, name} from 'common.js';
3、箭头函数
// 箭头函数其实就是一个没有函数名称的匿名函数,特点是:1、没有自己this指向,普通函数this指向运行时对象,箭头函数this指向上级作用域,即window 2、没有构造方法,也就是不能使用new // 没有参数 () => { console.log('我是没有参数的箭头函数') } // 只有一个参数,可以省略小括号 e => { console.log('只有一个参数的箭头函数') } // 函数主体只有一条语句可以省略大括号 e => console.log('只有一条语句')
4、rest
只要你不觉得尴尬,那尴尬的就是别人