【ES6知识点】

一文搞懂ES6
ES6笔记
ES6笔记大全(一篇学完ES6)
ES6笔记(纯干货)

let和const

let用来声明变量,const用来声明常量,变量初始化之后可以重新赋值,常量一旦初始化,就不能重新赋值,否则会报错。

const

const为了一旦初始化就不希望重新赋值的情况而设计的。
1.const一旦声明需立即赋值。
2.const赋值的常量,允许在不重新赋值的情况下,修改它。一般针对引用类型值。
3.不知道使用const还是let建议先使用const,便于之后修改。

const、var和let的区别

1.var可以重复声明,const和let不行,会报错。
2.let和const是不存在变量提升的。
3.let和const存在暂时性死区。 暂时性死区:只要作用域中存在let或者const,它们所声明的变量或者常量会自动绑定该区域,而不受外部区域影响。
4.let和const声明的函数和变量和常量不会变成window对象的属性和方法。

块级作用域

var没有作用域,作用域链:内层作用域->外层作用域->全局作用域。函数需要调用才形成函数作用域。
有哪些块级作用域,{ },for{ },do{ } while(),if(){ }, switch ( ){ },要和let和const配合。

模板字符串

1.书写方式 ${ }
2.注意事项
a. 模板字符串中,所有的空格、换行、缩进都会被保留在输出之中。
b. \n可以进行换行
c. \用来进行转译,输出特殊字符,比如`;\
d. 只要最终结果是得到一个值,就能放入模板字符串中。

箭头函数

1.箭头函数的结构: let/const 变量名 = ( 参数 )=> {函数体};
2.箭头函数的注意事项
a. 单个参数是可以省略圆括号的。let/const 变量名 = 参数 => {函数体};
b. 单行函数体可以同时省略花括号和return;
c. 多行函数体不能化简。
d. 如果箭头函数返回的是单行对象,可以在{ }加上( )。

3.箭头函数的this指向问题:箭头函数没有自己的this,需要通过作用域链向外层寻找。
4. 不适用箭头函数的场景:
a. 作为构造函数
b. 需要this指向调用对象的时候
c. 需要使用arguments的时候,箭头函数没有arguments。

数组解构赋值

1.const[a, b, c]=[1, 2 ,3] 不想取的用逗号直接跳过。
2.数组解构赋值的默认值:const[a=1,b=2] = [1]。数组解构的默认值如果的表达式,默认值表达式是惰性求值,只有当默认值生效,函数才会执行。
3.数组解构赋值的应用
a. 常见类数组的解构赋值
b. 函数参数的解构赋值
c. 变量值的交换

对象解构赋值

1.结构相匹配,属性名相同的完成赋值。eg : {username: username, age:age} = {username:叶文, age:27}。
2.对象解构赋值的注意事项
a.对象解构赋值的默认值和默认值如果是表达式与数组的解构赋值类似。
b.把一个已经声明的变量用于解构赋值,那整个赋值需要在圆括号中进行。
c.可以取到继承的属性。
其他数据类型的解构赋值
1.字符串既可以按照数组类型进行解构赋值,也可以按照字符串类型进行结构赋值,用数组的方法对字符串进行结构赋值是利用字符串的下标来进行结构匹配的。

对象字面量的简洁表示法
1.键名和常量或者变量的名字一样,只用写一个。

方括号语法

1.方括号语法可以写在对象的字面量中。
2.属性名字不符合JS命名规范,需要用obj[ ] 来进行访问,不能使用点语法。
3.方括号语法中只要最终结果是得到一个值,就能放入方括号中。

函数参数的默认值注意事项
1.函数的默认值只有在不传递参数或者明确传递参数为undefined时才会生效。
2.默认值参数如果是表达式,表达式会惰性求值。
3.函数参数的默认值,最好从函数参数的右边开始设置。
剩余参数
1.剩余参数永远是个数组,即使没有值,也是一个空数组
2.(参数1, 参数2, …剩余参数名)=>{ },打印剩余参数时,不用添加…。

剩余参数的注意事项
1.函数参数只有一个剩余参数,圆括号也不能被省略。
2.使用剩余参数替代arguments获取实际参数值。
3.剩余参数只能放着在参数末尾。
剩余参数的应用
1.数组的reduce方法:reduce() 方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。
2.剩余参数不一定要作为函数参数使用,可以结合解构赋值使用。
展开运算符
1.展开运算符是把数组转化为参数列表的形式。
数组展开运算符的应用
1.复制数组
2.合并数组
3.将字符串转为数组
4.将类数组转化为数组
对象展开运算符的注意事项
1.空对象的展开,是没有任何效果
2.非对象展开的如果不是对象,则会将其自动转化为对象,再将其的属性罗列出来。数字,布尔值,undefined,null因为没有自己的属性值,所以展开为空。字符串和数字在对象中展开,会将其下标作为属性值,罗列开来。
3.不会展开对象中的对象属性。

Set

1.Set是一系列无序,没有重复值的数据集合。
2.Set中不能有重复值。
3.Set没有下标去标识每一个值,所以Set是无序的。
4.Set通过构造函数来创建new Set( ),可以通过add()方法向Set里面添加值。

Set实例的方法和属性

1.add方法,用于在Set中添加值;
2.delete方法,用于在Set中删除值;
3.clear方法,用于清除Set中的所有值;
4.forEach方法,用于遍历set中的所有值 ;s.forEach(function(value,key,set){}
5.has方法,用户检测set是否含有某个值
6.size属性,表示set有几个值。

Set的注意事项

1.Set去重以===为判断条件,NaN除外,Set中,NaN等于NaN。
2.Set的使用场景:
a. 数组或者字符串去除。
b. 只需遍历而不需要通过下标访问数组的时候。
c. 为了使用set提供的属性或者方法的时候。

Set的应用

1.数组去重
2.字符串去重
3.存放DOM元素

Map

1.map和对象都是键值对的集合
2.对象一般用字符串当做键名;基本数据类型和引用数据类型都能作为map的键名。

Map实例的方法和属性

1.set方法,用于在map中添加键值对。
2.get用于在map中得到键值对
3.delete、has、clear方法与set一样。
4.forEach方法用于遍历map,其中value是值,key是属性名。

Map的注意事项

1.map的参数可以传入数组(必须是二维数组)&#x

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值