![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ES6
小生听雨园
Fly Higher
展开
-
ES6新特性——11.模块化实现
ES6的模块自动开启严格模式,不管你有没有在模块头部加上use strict;。模块中可以导入和导出各种类型的变量,如函数,对象,字符串,数字,布尔值,类等。每个模块都有自己的上下文,每一个模块内声明的变量都是局部变量,不会污染全局作用域。每一个模块只加载一次(是单例的), 若再去加载同目录下同文件,直接从内存中读取。1.构成export和importexport: 命令用于规定模块的对外接口。import:命令用于输入其他模块提供的功能一个模块就是一个独立的文件。该文件内部的所有变量,外部原创 2021-06-22 11:31:15 · 74 阅读 · 0 评论 -
ES6新特性——10.class
ES5:function Person(name, age){ this.name = name; this.age = age;}Person.prototype.sayName = function(){ return this.name}ES6:class Person{ //实例化的时候会立即调用 constructor(name, age){ this.name = name; this.age = age; } //后面没有逗号,因为这是方法 sayName原创 2021-06-22 10:09:12 · 80 阅读 · 0 评论 -
ES6新特性——9.async
1.语法语法:async function name([param[, param[, ... param]]]) { statements }name: 函数名称。param: 要传递给函数的参数的名称。statements: 函数体语句。async 函数返回一个 Promise 对象,可以使用 then 方法添加回调函数。async function helloAsync(){ return "helloAsync"; } console.log(helloAsy原创 2021-06-21 22:40:46 · 136 阅读 · 0 评论 -
ES6新特性——8.Promise
Promise1.Promise相当于一个容器,保存着未来才会结束的事件(异步操作的结果)各种异步操作都可以用同样的方法来处理特点:对象的状态不受外界影响,处理异步操作有三个状态 Pending(进行),Resolved(成功), Rejectd(失败)一但状态改变。就不会再变, 任何时候都可以得到这个结果let pro = new Promise(function(resolved, rejected ))1.2封装const getJson = function(url){原创 2021-06-21 22:01:33 · 90 阅读 · 0 评论 -
ES6新特性——7.迭代器,生成器
迭代器1.1创建迭代器是一种新的遍历机制, 两个核心,1.迭代器是一个接口, 能快捷访问数据, 通过Symbol.iterator来创建迭代器2.迭代器是用于遍历数据结构的指针const items = ['one', 'two', 'thr']const ite = items[Symbol.iterator()]console.log(ite.next()) //{value:'one', done:false}done如果为false, 遍历继续,如果为true,表示遍历完成 生原创 2021-06-20 21:26:08 · 124 阅读 · 2 评论 -
ES6新特性——6.数组扩展功能
1.将伪数组转换成数组1.1Array.from伪数组:argumentsES5:let arr = [].slice.call(arguments)ES6:let arr = Array.from(arguments)from可以接受第二个参数,来对每一个元素进行处理let liContent = Array.from(li, ele => ele.textContent)1.2扩展运算符<ul> <li>1</li> <li&原创 2021-06-20 12:20:50 · 103 阅读 · 0 评论 -
ES6新特性——5.symbol / set() / map()
1.symbol表示独一无二的值原始数据类型symbol表示独一无二的值最大的用途用来定义对象的私有变量const name = Symbol('name');const name2 = Symbol('name')console.log(name === name2) -> falselet s1 = Symbol('s1');console.log(s1)//let obj = {}//obj[s1] = 'xs' 或者像下面那样写let obj = { [s1]: 'x原创 2021-06-20 10:07:00 · 214 阅读 · 0 评论 -
ES6新特性——4.扩展对象功能
1.扩展功能属性的简洁表示法const name = '张三';const age = 19;const person = { name, //等同于name:name age, // 方法也可以简写 sayName() { console.log(this.name); }}person.sayName();//等同于:const person = { name:name, //等同于name:name age:ag原创 2021-06-19 21:33:22 · 90 阅读 · 0 评论 -
ES6新特性——3.解构赋值
解构赋值1.1数组模型解构基本let [a, b, c] = [1, 2, 3];// a = 1// b = 2// c = 3可嵌套let [a, [[b], c]] = [1, [[2], 3]];// a = 1// b = 2// c = 3可忽略let [a, , b] = [1, 2, 3];// a = 1// b = 3不完全解构let [a = 1, b] = []; // a = 1, b = undefined剩余运算符let [a, .原创 2021-06-19 20:50:19 · 77 阅读 · 0 评论 -
ES6新特性——2.函数
1.函数1.1函数默认值es5: function add(a,b){ a = a || 10; b = b || 20; return a + b } es6: function add(a=10, b=20){ return a + b }1.2函数默认表达式可以是一个函数function add(a, b=getVal(5)){ return a + b}function getVal(val){ return val + 1}add(20)1.原创 2021-06-19 20:37:38 · 178 阅读 · 0 评论 -
ES6新特性——1.let , const && 模板字符串
1.let const1.1.let1.1.1let代码块内有效{ let a = 30; var b = 20;}console.log(a); //a is not definedconsole.log(b); //201.1.2 不存在变量提升var命令会出现变量提升,变量可以在声明之前使用,值为undefinedlet命令必须在声明之后使用,否则报错ReferenceErrorconsole.log(f)let f = 45; //报错1.1.3不可以重复原创 2021-06-19 16:44:26 · 114 阅读 · 0 评论