Es6开发中常用属性
1.块级作用域变量let
与const
2.使用反引号(``)不怕字符串中出现的引号;不怕换行,反引号包起来的字符串可以随便换行;使用${}
将变量或表达式包起来直接放在字符串中,不用写很多+
3.遍历字符串 使用for...of
代替for
循环
4.includes()
,startsWidth()
,endsWidth()
不用使用indexOf()
判断字符串中是否包含某个值了,使用includes()
var string = 'string' string.includes('i', 0) // true
includes
第二个参数表示查找的起始索引。
还可以使用startsWidth()
和endsWidth()
判断字符串是否以某些字符开始或结尾。
5.箭头函数
代码更加简洁-》静态绑定this
箭头函数中,this
指向的是定义箭头函数的对象中的this
。
与普通函数的区别:
1.箭头函数是匿名函数,不能作为构造函数,不能使用New,箭头函数没有prototype
(原型)
2.箭头函数不绑定arguments,取而代之的是reset参数...解决
3.箭头函数不绑定this,会捕获其上下文的this,作为自己的this
4.箭头函数在用apply()或者call()调用一个函数时,只传入了一个参数,对this没影响,任何方法都改变不了其指向,如 call() , bind() , apply()
5.箭头函数不能当做Generator函数,不能使用yield关键字
6.数组
1. 使用Array.from()
把类数组对象转为数组
一般来说,含有length
属性的对象就可以当作类数组对象。平时获取多个DOM对象后,不能使用数组中的很多方法。我们可以使用Array.from
方便的转换为数组
var divs = Array.from(document.querySelectorAll('div')) divs.forEach((value, index) => {})
2. 和字符串的includes
方法一样,看数组中是否有给定值
7.对象
1. 使用Object.assign()
合并多个对象
2. Object.keys()
: 属性名组成的数组
Object.values()
: 属性值组成的数组
Object.entries
: ["key", "value"]
组成的数组
var john = { name: 'John', age: 12 } Object.keys(john) // ["name", "age"] Object.values(john) // ["John", 12] Object.entries(john) // [["name", "John"], ["age", 12]]
9...运算符
1. 读取的时候就是把数组或者对象给扩展开来
var a = [...[1,2,3], 4] // 把数组的每一项都展出来 a // [1, 2, 3, 4] var obj = { name: 'John', age: 12 } var newObj = {...obj, job: 'teacher'} // 把某个属性展出来 newObj // {name: "John", age: 12, job: "teacher"}
2. 用作赋值的时候,是用作解构赋值,含义就是把等号右边表达式的剩余属性或数组项都放到...
后面的变量里
var a, b [a, ...b] = [1, 3, 5] a // 1 b // [3, 5] var c, d { name, ...d} = {name: 'John', age: 12, job: 'teacher'} name // "John" 是一个属性的值 d //{ c, ...restD } = {name: 'John', age: 12, job: 'teacher'} 是一个对象
后续继续补充------