一.什么是ES6
ES6是ECMAScript 6 的简称,ECMAScript就是JavaScript中的语法规范。
二.新增关键字
1.let关键字
let声明的变量仅仅在自己的块级作用域起作用,出了这个块级作用域就不起作用。
var关键字声明变量。无论声明在何处,都会被视为声明在函数的最顶部,不在函数内即在全局作用域的最顶部。
这就导致了在使用var声明变量时,由于变量提升和作用域的原因,在很多情况下就会引起一些误解。这也是var的不足之处,而let就没有这方面的问题。
使用let的注意事项:1.同一个块级作用域内,不允许重复声明同一个变量。
2.函数内不能用let重新声明函数的参数
2.const关键字
const和 let一样,也是用来声明变量的,但是const是专门用于声明一个常量的。
特点:
1.不可修改
2.只在块级作用域起作用
3.不存在变量提升,必须先声明后使用
4.不可重复声明同一个变量
5.声明后必须要赋值
三.解构赋值
ES6允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构赋值
1.数组的解构赋值
var [a,b,c] =[1,2,3];
consoLe.log(a);// a的值为1
consoLe.log(b);// b的值为2
consoLe.log(c);// c的值为3
注意:不完全解构时,赋值不成功,变量的值为undefined
允许设置默认值
var [a,b,c=3] =[1,2];
consoLe.log(a);// a的值为1
consoLe.log(b);// b的值为2
consoLe.log(c);// c的值为3
2.对象的解构赋值
var { a,b,c } = {"a": 1,"c": 3, "b":2};
console.log(a);//结果:a的值为1
console.log(b);//结果:b的值为2
console.log(c);//结果:c的值为3
对象属性b和属性c的位置进行了调换,但这并不会影响赋值的结果,变量b和变量c的值不会改变。
对象的解构赋值不会受到属性的排列次序影响(数组则会受影响),它是跟属性名关联起来的,变量名要和属性名一致,才会成功赋值。
赋值不成功为undefined,同样可以指定默认值
3.字符串的解构赋值
var [a,b,c,d,e,f] ="我就是前端君";
console.log(a);//我
console.log(b);//就
console.log(c);//是
console.log(d);//前
console.log(e);//端
console.log(f);//君
在解构赋值的过程中,字符串被转换成了一个类似数组的对象
四.字符串的用法
1.模版字符串
模板字符串使用反引号 (` `) 来代替普通字符串中的用双引号和单引号。模板字符串可以包含特定语法(${expression})的占位符。
举个栗子,假如我们要拼接一段话:大家好,我是亚亚,我来自河南,我今年22岁了,我的爱好是狼人杀。
const Person = {
name: "亚亚",
age: 22,
hometown: "河南",
hobby: "狼人杀"
}
`大家好,我是${Person.name},我来自${Person.hometown},
我今年${Person.age}岁了,我的爱好是${Person.hobby}。 `
另外{}内可以写一些表达式,比如:判断是否成年
const Person = {
name: "亚亚",
age: 22,
hometown: "河南",
hobby: "狼人杀"
}
`大家好,我是${Person.name},我来自${Person.hometown},
我今年${Person.age}岁了,我的爱好是${Person.hobby},
我已经是${Person.age > 18 ? '成年人' : '未成年'}了。。
2.repeat函数
将目标字符串重复N次,返回一个新的字符串,不影响目标字符串。
3.includes函数
判断字符串中是否含有指定的子字符串,返回true表示含有和false表示未含有。
4.startsWith函数
判断指定的子字符串是否出现在目标字符串的开头位置,第二个参数选填,表示开始搜索的位置。
5.endsWith函数
判断子字符串是否出现在目标字符串的尾部位置,第二个参数选填,表示针对前N个字符。
6.string.raw函数
返回字符串最原始的样貌,即使字符串中含有转义符,它都视而不见,直接输出。
五.数组的用法
1.Array.of函数
将一组值,转换成数组。
2.Array.from函数
可以将类似数组的对象或者可遍历的对象转换成真正的数组。
3.find函数
找出数组中符合条件的第一个元素。
4.findIndex函数
返回符合条件的第一个数组成员的位置下标。
5.fill函数
用指定的值,填充到数组。
let arr = [1,2,3];
arr.fi11(4);//结果:[4,4,4]
fill( )函数提供了一些参数,用于指定填充的起始位置和结束位置。
let arr = [1,2,3];
arr.fi11(4,1,3);//结果:[1,4,4]
上面的代码中第2个参数和第3个参数的意思是:从位置1的元素开始填充数字4,截止到位置3之前,所以是位置1和位置2的元素被数字4填充了,得到的结果:[1,4,4]。(位置从0开始)
6.entries函数
数组的键值对进行遍历,返回一个遍历器,可以用for..of对其进行遍历。
7.keys函数
对数组的索引键进行遍历,返回一个遍历器。
8.values函数
对数组的元素进行遍历,返回一个遍历器。