ES6 新特性_01
let 声明变量
let 用来声明变量,它的用法类似于 var,但是所声明的变量,只在 let 命令所在的代码块内有效。它有以下特点:
不会被声明提前,
不允许提前使用未声明的变量
添加块级作用域,
避免块内的变量影响外部
console.log(a);
输出:ReferenceError: a is not defined.
console.log(b);
输出:1
箭头函数
简化一切回调函数、匿名函数自调,以下几种情况都可以进行简化:
1.所有匿名函数(回调/自调)都可去 function,加 =>
2.如果参数只有一个,可继续省略 ()
3.如果函数体只有一句话,可省略 {},如果唯一的一句话是 return,可省略 return
var f=()=>5;
等同于
var f=function();
var sum=(num1)=>num1;
等同于
var sum=function(num1);
模板字符串
增强版的字符串,用反引号 ` 标识。它可以当作普通字符串使用,也可以用来定义多行字符串,或者在字符串中嵌入变量。需要注意:
1.用反引号 `` 包裹字符串模板,支持换行且不会和 "" 或 '' 冲突。
2.如果动态生成的内容或者 js 表达式,必须用 ${} 包裹。
普通字符串:
`In JavaScript '\n' is a line-feed.`
多行字符串:
`In JavaScript this is not legal.`
字符串中嵌入变量:
var name="Bob",time="today";
`Hello $, How are you $?`
解构
按照一定模式,从数组或对象中提取值,对多个变量进行赋值。有三种方式进行解构:
数组解构(下标对下标):
var date=[2018,6,19];
var [y,m,d]=date;
console.log(y,m,d);
输出:2018 6 19
对象解构(属性对属性):
var config={
ip:"xxx",
port:"xxx",
db:"xxx",
user:"root",
pwd:"123456"
}
var =config;
参数解构(原理同对象解构):
定义函数时:
function fun()
调用时:
fun()
fun()
for of
简化 for 循环,例如:
for(var p of products){
p 会依次取出 products 中的每个商品
}
promise
代替异步调用中的回调函数,避免产生回调地狱,当异步调用需要先后执行时,就使用 promise 函数,需要以下两步:
定义函数时:
function prev(){
return new promise(function(open)=>{
//封装原来任务的代码
//决定何时打开开关: open()
})
}
调用时:
prev().then(next)
next 一定会等待 prev 执行完,open() 后才能执行。
关注文教Crazy,持续更新,敬请期待!
领取专属 10元无门槛券
私享最新 技术干货