ES6 新增的主要特性

1. let、const

用 let 代替 var 来声明变量,新增 const 声明常量。

  • 在ES6之前,JS 只有全局作用域和函数内的局部作用域。let、const 声明的变量、常量都只在 let、const 命令所在的代码块内有效,形成块级作用域
{ 
  var x = 1;    
  let y = 2;
  const z = 3;
}
// 这里可以使用 x 变量,但是不能使用 y变量和 z 常量 
  • var 存在声明提升,let、const 没有声明提升。
console.log(a)  //  undefined
console.log(b)  //  报错:b is not defined
console.log(c)  //  报错:c is not defined
var a = 1
let b = 2
const c = 3

JavaScript 声明提升

  • const 声明时必须进行初始化,且初始化后基本数据类型的值后不能再更改,引用数据类型的话可以更改值,不能更改引用地址。

JavaScript 数据类型

2. 模板字符串

ES5拼接字符串写法:

let str = '你好,我叫'+ name +',今年'+ age + '岁。'

ES6模板字符串写法:

let str = `你好,我叫${name},今年${age}`

3. 箭头函数

省去 function 关键字,只需要=>

  • 箭头函数只能用赋值式写法,不能用声明式写法。

函数声明

  • 如果函数只有一个参数,可以省略圆括号;如果函数没有参数,就用空的圆括号。
  • 如果函数内部只有一条语句,可以不加花括号;如果这一条是 return 语句,还可以省去 return 关键字。
  • 箭头函数默认绑定外层 this;不能用call方法修改里面的this。

不同场景的 this 指向

call、apply、bind

let fn1 = (a,b)=>{
  return a+b
}
let fn2 = a => a+2
// 等同于下面的两个函数
let fn1 = function(a,b){
  return a+b
}
let fn2 = function(a){
  return a+2
}

4. 函数参数默认值

5. 展开运算符

6.乘方运算符

7. 增强对象属性:数组解构、变量互换、属性简写

8. 类

ES5中的类

9.模块

你可能感兴趣的:(JavaScript,javascript,es6)