es6-learn

E6的块级绑定

所声明的变量在指定的作用域外无法访问

let var const
不变量提升,块级作用域 变量提升 不变量提升,块级作用域
重复禁止声明 重复禁止声明
let 声明的变量成为window的属性 设置完成后不能被改变
JS所声明的常量对象属性的值可以改变

暂时性死区:

在使用let 或者const 声明的变量,在达到声明处之前访问变量都是无法访问的,访问会导致一个引用错误

ES6模块

由于JS共享一切的特性,容易产生命名冲突.安全等问题,代码的模块划分很有必要

模块加载方式 JS脚本加载方式
严格模式下运行
模块顶级作用域创建的变量不会自动添加到全局作用域中
顶级作用域this 为undefinde
对于需要让模块外部访问的代码内容,模块必须导出他们

导出的方式

export 相对应的导入
导出的函数,类必修有名字 export {aaa}; import {aaa} from xxx;
命名空间导入:完全导入一个模块,import * as example from “./example.js”; example.sum()
重命名导出: export { sum as add }; 重命名导入 import { add as sum } from “./example.js”;

默认导出

导出默认值 导入默认值
export default xxx; import sum from “./example.js”;

加载模块

script 外部加载 script 脚本加载
type=”module” src=”example.js”
script 行内加载
import {sum} from ‘’
按顺序执行加载,像应用了defer 的script

函数

剩余参数…arg,扩展运算符

箭头函数–解决this 的追踪问题

箭头函数 普通函数
没有this super argument ,没有this 绑定
不能被new 调用
不能更改this,没有arguments 对象

Set 和Map

set weakSet
不包含重复值的有序列表 自动解除set中得引用,如果其他引用没有了
new set([arr]) set.size set.add(value) set.has(value) set.delete(value) set.clear(); 初始化只能接受对象得值
forEach((value,key,ownset)=>{}) 按顺序处理每一项 无size ,forEach,迭代器得方法也没有
转换为数组:let set = new Set([1, 2, 3, 3, 3, 4, 5]), array = […set];
Map weakMap
键值对有序列表,键和值都是任意类型得
map.set(“”,””) map.get(“”) map.size
has() delete() clear
初始化:let map = new Map([[“name”, “Nicholas”], [“age”, 25]]); 双数组
forEach

es6-learn
http://example.com/2019/03/23/旧的/es6-learn/
作者
chen heng cheng
发布于
2019年3月23日
许可协议