let/sonst
let:定以后可以修改的变量
const:定以后不能再修改的常量
//JS var i = 10; i = 100;//ES6 let i = 10; i = 100; //true const j =20; j = 200; //flase
多行字符串/模板变量
//JS
var name = 'zhangsan', age = 20, html = '';
html += '<div>';
html += '<p>' + name + '</p>';
html += '<p>' + age + '</p>';
html += '</div>';//ES6const name = 'zhangsan', age = 20;const html = `<div>
<p>${name}</p>
<p>${age}</p>
</div>`; //使用反引号
console.log(html);解构赋值
//JS
var obj = {a:200,b:300} var a = obj.a var b = obj,b var arr = ['xxx', 'yyy', 'zzz'] var x = arr[0]//ES6
const obj = {a:10, b:20, c:30} const {a, c} = obj //取a,c两个属性
console.log(a) console,log(c) const arr = ['xxx', 'yyy', 'zzz'] const [x, y, z] = arr console.log(x); console.log(y); console.log(z);块级作用域
//JS
var obj = {a:100, b:200} for(var item in obj){ console.log(item)
} console.log(item) //b//ES6
const obj = {a:100, b:200} for(let item in obj){ console.log(item)
} console.log(item) //undefined函数默认参数
//JS
function(a,b){ if(b = null){
b = 0
}
}//ES6
function(a, b=0){ //如果b为空,默认b等于0
}箭头函数
//JS
var arr = [1, 2, 3]
arr.map(function(item){ return item+1
})//ES6
const arr = [1, 2, 3]
arr.map(item => item+1) //函数只有一个参数,函数里只有一行
arr.map((item, index) => { //函数有多个参数,函数里有多行
console.log(index) return item + 1
})箭头函数解决了JS中this是window全局变量的问题
箭头函数作为普通函数的一个补充,将this指向了函数体之外最近一层的this,而不是向普通JS一样将this指向window变量。
function fn(){ console.log('real',this) //{a:100}
var arr = [1,2,3] //普通JS
arr.map(function (item){ console.log('js',this) //window
return item + 1
}) //箭头函数
arr.map(item => { console.log('es6',this) //{a:100}
return item + 1
})
}
fn.call({a:100}) //将{a:100}设置为this
作者:Disiye
链接:https://www.jianshu.com/p/7602fd40e6a0