![](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和import export: 命令用于规定模块的对外接口。 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 · 135 阅读 · 0 评论 -
ES6新特性——8.Promise
Promise 1.Promise 相当于一个容器, 保存着未来才会结束的事件(异步操作的结果) 各种异步操作都可以用同样的方法来处理 特点: 对象的状态不受外界影响,处理异步操作有三个状态 Pending(进行),Resolved(成功), Rejectd(失败) 一但状态改变。就不会再变, 任何时候都可以得到这个结果 let pro = new Promise(function(resolved, rejected )) 1.2封装 const getJson = function(url){原创 2021-06-21 22:01:33 · 89 阅读 · 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 · 119 阅读 · 2 评论 -
ES6新特性——6.数组扩展功能
1.将伪数组转换成数组 1.1Array.from 伪数组:arguments ES5: 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 · 99 阅读 · 0 评论 -
ES6新特性——5.symbol / set() / map()
1.symbol表示独一无二的值 原始数据类型symbol表示独一无二的值 最大的用途用来定义对象的私有变量 const name = Symbol('name'); const name2 = Symbol('name') console.log(name === name2) -> false let s1 = Symbol('s1'); console.log(s1) //let obj = {} //obj[s1] = 'xs' 或者像下面那样写 let obj = { [s1]: 'x原创 2021-06-20 10:07:00 · 212 阅读 · 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 · 89 阅读 · 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 · 76 阅读 · 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 · 174 阅读 · 0 评论 -
ES6新特性——1.let , const && 模板字符串
1.let const 1.1.let 1.1.1let代码块内有效 { let a = 30; var b = 20; } console.log(a); //a is not defined console.log(b); //20 1.1.2 不存在变量提升 var命令会出现变量提升,变量可以在声明之前使用,值为undefined let命令必须在声明之后使用,否则报错ReferenceError console.log(f) let f = 45; //报错 1.1.3不可以重复原创 2021-06-19 16:44:26 · 108 阅读 · 0 评论