ES6学习笔记
- 块级作用域let和const,其中const声明的变量不得改变值。
解构赋值:从数组或对象中提取值,赋值到对应位置的变量,有点像批量赋值。比如
let [a, b, c] = [1, 2, 3] ```给abc分别赋值为1、2、3 1234567891011121314151617181920+ 字符串新增的方法:+ 支持超出\uFFFF的unicode码点,用大括号将码点括起来即可;+ 新增方法codePointAt()+ 新增String.fromCodePoint(0x20BB7)用于返回码点对应的字符串,支持了超出\uFFFF的unicode码点。+ **for**(let a **of** 'who'),for...of语法用于遍历超出\uFFFF的unicode码点的字符串+ includes()、startsWith()、endsWith()+ 'who'.repeat(3):重复三次who,结果为whowhowho+ 补全:'who'.padStart(6, 'ab')结果为 'abawho','who'.padEnd(6, 'ab')结果为 'whoaba'+ 支持模板字符串+ 函数+ 增加了函数的默认值设置,如function(x =9,y)+ rest参数,比如:function z(a,...numbers),numbers是一个数组类型的变量,但是调用z函数时可以这样调用:let a=1;z(a,2,3);...numbers必须是最后一个参数,即不能把a放到...numbers的后边+ 扩展运算符:调用一个多个入参的函数时,可以传入“...数组”的形式充当入参,...数组将转换为以逗号分隔的参数,扩展运算费使用的是for...of的方式将数组进行遍历的比如:```javascriptfunction test(a,b,c){return a+b+c;}let numbers = [1, 2, 3];console.log(test(...numbers));//打印出来是6- 箭头函数
- 绑定this:::运算符会自动将左边的对象,作为上下文环境(即this对象),绑定到右边的函数上面。比如:x::y等同于y.bind(x)
对象
- 对象的属性简写、方法名字简写
对象的属性名、方法名可以是表达式
12345678910111213141516var birth = '2000/01/01';let propKey = 'foo';var Person = {name: '张三',//等同于birth: birthbirth,//等同于hello: function ()...hello() { console.log('我的名字是', this.name); },//等同于foo:true,abc:123[propKey]:true,['a' + 'bc']: 123,//方法名也可以是表达式['h' + 'ello']() {return 'hi';}};Object.is(a,b)
- Object.assign(targetObject,srcObject1,srcObject2)
- 遍历对象属性的方法:for…in、Object.keys(obj)、Object.getOwnPropertyNames(obj)、Object.getOwnPropertySymbols(obj)、Reflect.ownKeys(obj)
- Symbol:新类型Symbol用于表示独一无二的属性名。let s = Symbol(‘s’);s.toString();不能与其他类型进行计算;
- 数组
- Array.from可以将类似于数组的对象转换为数组,也可以将set、map转换为数组
- Array.from(对象或集合,箭头函数用于过滤第一个参数的值),比如
javascript Array.from([1,2,3],x=>x.x)
,返回的值是1,4,9
- Set、WeakSet
- Map,允许对象作为key存储到map中,当想批量往map中放入值时:可以通过构造函数传入入参,任何具有iterator接口的数据结构都可以作为数组构造函数的入参
- Proxy、Reflect
- Promise
- for…of循环可以使用的范围包括数组、Set 和 Map 结构、某些类似数组的对象(比如arguments对象、DOM NodeList 对象)、后文的 Generator 对象,以及字符串。
Comments