Skip to content

平常工作中由于不是主要做前端,经常忘记es6的一些内容,总是写代码的时候再去查,比较影响效率,这里把自己写代码中经常使用到的ES6的一些特性做一下梳理,方便记忆和查阅。

画板

简介

ES6, 全称ECMAScript 6.0,是 JavaScript 的下一个版本标准,2015.06 发版。

ES6 主要是为了解决 ES5 的先天不足,比如 JavaScript 里并没有类的概念,但是目前浏览器的 JavaScript 是 ES5 版本,大多数高版本的浏览器也支持 ES6,不过只实现了 ES6 的部分特性和功能。

一、let const

let

  • 只在let命令所在的代码内有效
  • 不存在变量提升

const

const声明变量后无法改变(const不是保证值不变,只是保证变量存储的内存地址不变)

二、解构赋值

方便了复杂对象中数据字段获取。

javascript
//数组结构
let [a, b, c] = [1, 2, 3];
// a = 1
// b = 2
// c = 3

//对象结构
let { foo, bar } = { foo: 'aaa', bar: 'bbb' };
// foo = 'aaa'
// bar = 'bbb'

三、字符串拓展方法

javascript
includes():返回布尔值,判断是否找到参数字符串。
startsWith():返回布尔值,判断参数字符串是否在原字符串的头部。
endsWith():返回布尔值,判断参数字符串是否在原字符串的尾部。
let string = "apple,banana,orange";
string.includes("banana");     // true
string.startsWith("apple");    // true
string.endsWith("apple");      // false
string.startsWith("banana",6)  // true

四、对象

1、拓展运算符(...)用于取出参数对象所有可遍历属性然后拷贝到当前对象。
2、Object.assign(target, source_1, ···)
用于将源对象的所有可枚举属性复制到目标对象中。

javascript
let target = {a: 1};
let object2 = {b: 2};
let object3 = {c: 3};
Object.assign(target,object2,object3);
// 第一个参数是目标对象,后面的参数是源对象
target;  // {a: 1, b: 2, c: 3

Object.is(value1, value2)
用来比较两个值是否严格相等,与(===)基本类似。

五、箭头函数

箭头函数提供了一种更加简洁的函数书写方式。基本语法是:

javascript
var f = v => v;
//等价于
var f = function(a){
return a;
}
f(1);  //1

箭头函数体中的 this 对象,是定义函数时的对象,而不是使用函数时的对象。

javascript
function fn(){
  setTimeout(()=>{
  // 定义时,this 绑定的是 fn 中的 this 对象
  console.log(this.a);
  },0)
}
var a = 20;
// fn 的 this 对象为 {a: 19}
fn.call({a: 18});  // 18

六、export 与 import

基本用法
模块导入导出各种类型的变量,如字符串,数值,函数,类。

  • 导出的函数声明与类声明必须要有名称(export default 命令另外考虑)。
  • 不仅能导出声明还能导出引用(例如函数)。
  • export命令可以出现在模块的任何位置,但必需处于模块顶层。
  • import命令会提升到整个模块的头部,首先执行。