let 关键字
let声明的变量只在所处于的块级有效,使用let关键字声明的变量具有块级作用域,并且没有变量提升,变量具有暂时性死区特性。
const 声明常量,常量就是值(内存地址)不能变化的量。
具有块级作用域,不存在变量提升,声明常量时必须赋值,赋值后不可变。
解构赋值
1.数组解构
let [a,b,c]=[1,2]; //a=1;b=2;c为undefined
2.对象解构
let person = {name:'li',age:18};
let {name,age}=person;//name='li';age=18;
let {name:myname,age:myage}=person;//myname='li';myage=18;
剪头函数
() => {}
const fn = () => {}
函数体只有一句代码,且代码的执行结果就是返回值,可以省略大括号。
如果形参只有一个,可以省略小括号。
剪头函数不绑定this关键字,剪头函数中this,指向的是函数定义位置的上下文this。
剩余参数
剩余参数语法允许我们将一个不定数量的参数表示为一个数组。
function sum (first,...args) {}
剩余参数和解构配合使用
let students = ['li','w','z'];
let [s1,...s2] = students;
ES6的内置对象扩展
Array 的扩展方法
扩展运算符(展开语法)
扩展运算符可以将数组或者对象转换为用逗号分隔的参数序列。
let arr = [1,2,3];
...arr //1,2,3
扩展运算符可以应用于合并数组
方法一
let arr1 = [1,2,3];
let arr2 = [4,5,6];
let arr3 = [...arr1,...arr2];
方法二
arr1.push(...arr2);
将数组或可遍历对象转换为真正的数组
let oDivs = document.getElementsByTagName('div');
oDivs = [...oDivs];
构造函数方法:Array.from()
将类数组或可遍历对象转换为真正的数组
let arrayLike = {
'0' : 'a',
'1' : 'b',
'2' : 'c',
length:3
};
let arr2 = Array.from(arrayLike);//['a','b','c']
方法还可以接受第二个参数,作用类似于数组的map方法,用来对每个元素进行处理,将处理后的值放入返回的数组。
let newAry = Array.from(arrayLike, item=>item*2);
实例方法 find()
用于找出第一个符合条件的数组成员,如果没有找到返回undefined
let ary = [{
id:1,
name:'张三',
},{
id:2,
name:'李四'
}];
let target = art.find((item,index) => item.id == 2);
findIndex()
let arr = [1,5,10,15];
let index = arr.findIndex((value,index) => value>9);
//index为2
includes()
表示某个数组是否包含给定的值,返回布尔值。
[1,2,3].includes(2) //true
String 扩展方法
模板字符串
Es6新增的创建字符串的方式,使用反引号定义。
let name = `张三`;
模板字符串可以解析变量
模板字符串可以换行
模板字符串中可以调用函数
实例方法
startsWith() 表示参数字符串是否在原字符串的头部,返回布尔值。
endsWith() 表示参数字符串是否存在原字符串嗯尾部,返回布尔值。
let str = 'Hello world!';
str.startsWith('Hello'); //true
str.endsWith('!'); //true
replace()
方法表示将原字符串重复n次,返回一个新字符串。
'x'.replace(3) //'xxx'
'hello'.replace(2) //'hellohello'
Set 数据结构
ES6提供了新的数据结构Set。它类似于数组,但是成员的值都是唯一的,没有重复的值。
Set本身是一个构造函数,用来生成Set数据结构。
const s = new Set();
Set函数可以接受一个数组作为参数,用来初始化
const set = new Set([1,2,3,4]);
add(value) 添加某个值,返回Set结构本身。
delete(value) 删除某个值,返回一个布尔值,表示删除是否成功。
has(value) 返回一个布尔值,表示该值是否为Set的成员。
clear() 清除所有成员,没有返回值。
遍历
Set 结构的实例与数组一样,也拥有forEach方法,用于对每个成员执行某种操作,没有返回值。
s.forEach(value => console.log(value));
const s5 = new Set(['a','b','c']);
s5.forEach(value =>{
console.log(value)
});