重学 ES6
文章目录
块级作用域变量
let word1 = 'hello'
const word2 = 'world'
let 用于声明变量 const 用于声明常量,常量一旦声明便无法更改
使用 let 和 const 声明的变量是有块级作用域(函数体,判断体,循环体等)
因此建议使用 es6 语法中 let const 来定义变量
模板字符串代替字符串拼接
const a = 'hello'
const b = 'world'
// in ES5
const c = a + ' ' + b
// in ES6 used 模板字符串
const d = `${a} ${b}`
padStart()、padEnd()
新的字串填充方法,可以从start位置或是end位置,开始填充到指定数字长度,被填充的内容为第二个参数。
let astring = 'moment'
console.log(astring.padStart(10,'m'))
// 'mmmmmoment'
console.log('abc'.padStart(10, "foo"))
// "foofoofabc"
console.log('abc'.padEnd(10, "foo"))
// 'abcfoofoof'
解构赋值
// in ES5
let firstName = personalInformation.firstName
let lastName = personalInformation.lastName
let city = personalInformation.city
// in ES6 used 对象解构赋值
let { firstName: fn, lastName: ln, city: ct } = personalInformation
从 personalInformation 对象中读取 firstName , lastName , city 几个属性,并用 fn , ln , ct 几个别名作为解构赋值后新变量的名字,如果未声明别名,默认使用 firstName , lastName , city 作为解构后的变量名
// in ES6 used 数组解构赋值
let [firstName, lastName, city] = ['Dylan', 'Israel', 'Austin']
使用数组解构赋值时默认为按照数组顺序,逐一读取
加强循环
最早的数组遍历方式
var a = ["a", "b", "c"];
for(var index = 0;index < a.length;index++){
console.log(a[index]);
}
自从ES5发布以后,可以用内建的forEach来遍历数组
var a = ["a", "b", "c"];
a.forEach(function(element) {
console.log(element);
});
推荐在循环普通对象属性的时候,使用 for…in 在遍历数组的时候的时候使用 for…of
for…in循环出的是key ,for…of循环出的是value
for…of 不能循环普通的对象 需要通过和 Object.keys() 搭配使用