es6 总结知识点
1. let 和 const
只在代码块中有效 {} js块级作用域。
const 定义的对象是可以改变其属性的
const a =[], b={} ; a.push(1); b.a=1; // a [1] b {a:1}
块级作用域 let const 的特点
{ let a="outer_a", b="outer_b"; if (true){ let a = "inside_a"; b = "inside_b"; } console.log(a,b)//outer_a inside_b }
2. 字符串扩展 includes() 代替 indexof();
let s = 'Hello world!'; s.includes('o') // true
3. 箭头函数
var a = (val)=> val; var b = (a,b)=>{ if(a>b){ return a} }
4. 函数默认值 (必须在后面开始往前 中间不能穿插没有默认值的情况 )
参数默认值不是传值的,而是每次都重新计算默认值表达式的值。
(a,b=1,c) ❌
var fun = (a=1,b=2,c=a+b)=>{ console.log(a,b,c) } fun() //1 2 3 fun(2) //2,2,4
5.数组的扩展
5.1 扩展运算符 ... (该运算符主要用于函数调用)
将数组转为 逗号隔开的 序列。
...[1,2,3] //1,2,3 [...[1,2,3,4],..[5,6,7]] //[1,2,3,4,5,6,7]; [...[[12],3],[4]] // [ [1,2],3,4 ] [...[], 1] // [1]
//可以转化伪数组
[...arguments] Array.prototype.slice.call(arguments) //效果一样
//合并数组
a.concat(b)
[...a,...b]
5.2 代替 apply 方法 的 参数
fun(null,array) es6写法 fun(...array)
5.3 解构赋值
const [first,...array] = [1,2,3]; console.log(first) // 1 console.log(array) //[2,3] const [first1,...array1] = []; console.log(first1) // undefined console.log(array1) //[] const [first2,...array2] = [1]; console.log(first1) // 1 console.log(array2) //[]
扩展符号 赋值只能在最后面一位(只能有一个并且在最后),否则报错 Uncaught SyntaxError: Rest element must be last element
//字符串操作 "hello".split("") // ["h","e","l","l","o"] [..."hello"] // ["h","e","l","l","o"]
5.4 Array.from(); 将2种对象转为数组;
5.4.1: array-like-object: 不是数组,但是有 length 属性,且属性值为非负 Number 类型 ( arguments ,nodeList )
5.4.2: 可遍历对像
5.5 Array.of(); 将一组值转换为数组 总是返回参数组成的数组,,和Array()有一定差别。
Array(1) // [empty] Array.of(1) // [1]
i
6 对象的扩展
6.1 对象属性和方法的简写
var x=1; var obj = {x} //{"x":1} var objFun = { method:function(){return true;} , methods(){return true;} }
7 Set和Map
Set:类似于数组,但是成员是唯一的。Set 本身是构造函数 用来生成 Set 数据结构。
const s = new Set([1,2,3,1,2,3]); [...s] //[1,2,3] 对对象无效。 [...new Set(array)] //简单去重
Set内部判断相等用的是“===” (但是有一个点是 NaN Set认为相等) 所以 由于两个空对象 是不相等的。 Set 视为2个值
7.1 Set 的方法
var s = new Set([1,2]); s.add({}) //返回set本身; s.add({}) s.delete(1) //返回布尔值 是否成功 true s.delete({}) //false s.has(2) //返回布尔值 是否包含 true s.has({}) //false s.clear() //清除所有成员没有返回
7.2 Set遍历操作 keys(); values(); entries(); forEach()
7.3 WeakSet :成员只能是对象;不能遍历;
8. Map: 键值对集合,传统的键都只能是字符串; Map的键可以是对象

浙公网安备 33010602011771号