关于ES6的新特性

let

变量不能重复声明

块级作用域

不存在变量提升

不影响作用域链

 

const

一定要赋初始值

一般常量使用大写

常量的值不能修改

块级作用域

对于数组和对象的元素修改,不算对常量的修改,不会报错

 

解构赋值

 

模板字符串 ··

内容中可以直接出现换行符

变量拼接

  let love='想';
            let out=`${love}我的最爱`;
            console.log(out);
 
简化对象写法
ES6允许在大括号里面直接写入变量和函数,作为对象的属性和方法
 
箭头=>定义函数   
this是静止的,始终指向函数声明时所在作用域下的this的值
不能作为构造实例化对象
不能使用arguments变量
箭头函数的简写:
1)省略小括号,当形参只有一个的时候
2)省略花括号,当代码体只有一条语句的时候
箭头函数适合与this无关的回调,定时器,数组的方法回调。
 
rest参数,用于获取参数的实参
...args
rest参数必须要放到参数最后
 
...扩展运算法能将数组转化为逗号分割的参数序列
应用:
数组合并
数组克隆
将伪数组转换为真正的数组
 
数据类型symbol
1)Symbol的值是唯一的,用来解决命名冲突的问题
2)Symbol值不能与其他数据进行运算
3)Symbol定义的对象属性不能使用for..in循环遍历,但是可以使用Reflect.ownkeys来获取对象的所有键名
USONB
symbol内置值,扩展对象功能
 
迭代器(Iterator)
任何数据结构只要部署lterator接口,就可以完成遍历操作。
 
生成器,ES6提供的一种异步解决方案
函数代码分隔符  function * gen(){
yield ‘zz’;
}
 
promise异步解决方案
使用promise读取文件

 

 

set(集合)

 5) clear 

 

Map键值对的集合,但是键的范围不限于字符串

升级版的对象

 

 class类

get和set

 get用于动态计算

set设置,增加控制和判断

 

数值扩展

Number.EPSILON是JavaScript的最小精度

二进制与八进制,十六进制   0b,0o,0x

Number.isFinite

Number.isNaN

Math.trunc 将小数部分抹掉

Math.sign 判断一个数是正数还是负数还是0

 

Object.is  判断两个值是否完全相等

Object.assign 对象的合并

 

ES6的模块化

 

 

 

 ES6模块化语法

export  分别暴露,统一暴露,默认暴露

 

 

babel对ES6模块化代码转换

 

 

posted @ 2021-04-15 22:41  kyrie_226  阅读(44)  评论(0编辑  收藏  举报