
ES6
文章平均质量分 81
es6
南初️
这个作者很懒,什么都没留下…
展开
-
ES6---编程风格
ES6---编程风格一、块级作用域1. let 取代 var2. 全局常量和线程安全二、字符串三、解构赋值四、对象五、数组六、函数七、Map 结构八、Class九、模块一、块级作用域1. let 取代 varES6 提出了两个新的声明变量的命令:let和const。其中,let完全可以取代var,因为两者语义相同,而且let没有副作用。2. 全局常量和线程安全在let和const之间,建议优先使用const,尤其是在全局环境,不应该设置变量,只应设置常量。const优于let有几个原.原创 2022-01-24 16:52:37 · 155 阅读 · 4 评论 -
ES6---Module 的加载实现
ES6---Module 的加载实现一、浏览器加载加载规则二、ES6 模块与 CommonJS 模块的差异一、浏览器加载HTML 网页中,浏览器通过< script >标签加载 JavaScript 脚本。由于浏览器脚本的默认语言是 JavaScript,因此type="application/javascript"可以省略。默认情况下,浏览器是同步加载 JavaScript 脚本,即渲染引擎遇到< script>标签就会停下来,等到执行完脚本,再继续向下渲染。如果是.原创 2022-01-24 16:22:22 · 420 阅读 · 4 评论 -
ES6---Module 的语法
ES6---Module 的语法一、概述二、export 命令三、import 命令四、模块的整体加载五、export default 命令一、概述JavaScript 一直没有模块(module)体系,无法将一个大程序拆分成互相依赖的小文件,再用简单的方法拼装起来。模块加载方案,最主要的有 CommonJS 和 AMD 两种。前者用于服务器,后者用于浏览器。ES6 在语言标准的层面上,实现了模块功能,而且实现得相当简单,完全可以取代 CommonJS 和 AMD 规范,成为浏览器和服务器通用.原创 2022-01-24 10:45:00 · 510 阅读 · 4 评论 -
ES6---Class的继承
ES6---Class的继承一、简介二、Object.getPrototypeOf()三、super 关键字四、类的 prototype 属性和__proto__属性五、实例的__ proto __ 属性一、简介Class 可以通过extends关键字实现继承。 class Point{ } class getColor extends Point{ }上面代码定义了一个Color类,该类通过extends关键字,继承了.原创 2022-01-20 23:42:50 · 895 阅读 · 4 评论 -
ES6---Class 的基本语法
ES6---Class 的基本语法一、简介二、不可枚举性三、constructor 方法四、类的实例五、取值函数(getter)和存值函数(setter)六、属性表达式七、Class 表达式八、静态方法九、静态属性十、私有方法和私有属性十一、注意点1. 严格模式2. 不存在提升3. name 属性4. this 的指向一、简介js中,生成实例对象的传统方法是通过构造函数。 //传统类的写法 //直接定义构造函数 function Point(x,y){ .原创 2022-01-19 23:32:19 · 699 阅读 · 4 评论 -
ES6---async函数
ES6---async函数一、基本用法promise异步编程 + async函数async函数多种使用形式(1)函数声明(2)函数表达式(3)对象的方法(4)箭头函数二、async函数返回值三、Promise 对象的状态变化四、await 命令五、错误处理六、async函数使用注意点七、async 函数的实现原理八、按顺序完成异步操作一、基本用法async函数处理异步编程,类似状态机。封装多个promise进行异步编程。async函数就是将 Generator 函数的星号(*)替换成asyn.原创 2022-01-17 20:00:00 · 2569 阅读 · 5 评论 -
ES6---promise源码
function Promise(executor) { let self = this; // 保存成功的值和失败的原因 self.value = undefined; self.reason = undefined; // 专门存成功的回调 self.onResolvedCallbacks = []; // 专门存失败的回调 self.onRejectedCallbac...原创 2022-01-14 18:51:35 · 290 阅读 · 3 评论 -
ES6---Promise对象
ES6---Promise对象一、Promise 的含义Promise对象两个特点二、Promise 基本用法三、用Promise对象实现的 Ajax 操作四、Promise异步加载图片五、Promise.prototype.then()---添加状态改变时的回调函数六、Promise.prototype.catch()---指定发生错误时的回调函数七、Promise.prototype.finally()八、Promise.all()---合并多个 Promise 实例九、Promise.race()-.原创 2022-01-14 16:25:06 · 783 阅读 · 3 评论 -
ES6---Generator函数
ES6---Generator函数一、简介二、yield 表达式三、next 方法的参数四、for...of 循环五、Generator函数异步操作的同步化表达六、Generator.prototype.throw()---函数体外抛出错误七、Generator.prototype.return()---返回给定的值八、next()、throw()、return() 的共同点1. next()是将yield表达式替换成一个值2. throw()是将yield表达式替换成一个throw语句3. return.原创 2022-01-14 00:01:01 · 893 阅读 · 4 评论 -
ES6---箭头函数
ES6---箭头函数一、基本用法二、箭头函数的写法1. 没有返回值(1)不带参数(2)带参数2. 有返回值3. 对象上的函数es6缩写三、箭头函数可以与变量解构结合使用四、箭头函数简化回调函数五、rest 参数与箭头函数六、计时器里面的箭头函数的使用七、箭头函数使用注意点八、箭头函数不适用场景九、箭头函数嵌套问题一、基本用法特点:保证上下文this指针一致ES6 允许使用“箭头”(=>)定义函数。如果箭头函数不需要参数或需要多个参数,就使用一个圆括号代表参数部分。 var f.原创 2021-12-24 22:41:48 · 1452 阅读 · 3 评论 -
ES6--遍历器(Iterator )
ES6--遍历器(Iterator )一、Iterator(遍历器)的概念二、遍历器的作用三、Iterator 的遍历过程四、自己模拟遍历器接口实现1. 普通实现2. 类部署 Iterator 接口的写法(es6 部署遍历器 class,等价es5 函数)3. 模拟es5 的函数类写法 去部署一个遍历器五、默认 Iterator 接口1. Iterator接口的目的2. 原生具备 Iterator 接口的数据结构如下。例子:数组的Symbol.iterator属性六、部署对象的遍历器接口1. 为什么对.原创 2021-12-08 13:46:59 · 2035 阅读 · 4 评论 -
ES6--字符串新增的方法
ES6--字符串新增的方法一、子串的识别(1)includes():返回布尔值,判断是否找到参数字符串。(2)startsWith():返回布尔值,判断参数字符串是否在原字符串的头部。(3)endsWith():返回布尔值,判断参数字符串是否在原字符串的尾部。二、字符串重复--repeat()三、字符串补全(1)padStart:返回新的字符串,表示用参数字符串从头部(左侧)补全原字符串。(1)padEnd:返回新的字符串,表示用参数字符串从尾部(右侧)补全原字符串。四、String.fromCodePo.原创 2021-12-07 19:14:09 · 1075 阅读 · 3 评论 -
ES6--Map数据结构
ES6--Map数据结构一、Map的基本用法创建map结构二、Maps 和 Objects 的区别三、实例的属性和操作方法1. size 属性2. Map.prototype.set(key, value)3. Map.prototype.get(key)4. Map.prototype.has(key)5. Map.prototype.delete(key)6. Map.prototype.clear()四、 map集合的遍历方法1. Map.prototype.keys():返回键名的遍历器。2. M.原创 2021-12-06 21:30:39 · 2007 阅读 · 4 评论 -
ES6--顶层对象的属性
顶层对象的属性顶层对象在浏览器环境指的是window对象,在Node中指的是global对象,ES5中,顶层对象的属性与全局变量是等价的。 window.a = 1; console.log(a);//1 a = 2; console.log(window.a);//2 顶层对象的属性赋值与全局变量的赋值,是同一件事。ES6 为了改变这个,一方面规定,为了保持兼容性,var命令和function命令声明的全局变量,依旧是顶层对象的属性;另一方面规定,let命令.原创 2021-12-24 22:42:04 · 194 阅读 · 3 评论 -
ES6--块级作用域
ES6--块级作用域一、为什么需要块级作用域?二、ES6 的块级作用域(1)let为js新增了块级作用域(2)ES6 允许块级作用域的任意嵌套(3)内层作用域可以定义外层作用域的同名变量三、块级作用域与函数声明一、为什么需要块级作用域?ES5 只有全局作用域和函数作用域,没有块级作用域,这带来很多不合理的场景。(1)内层变量可能会覆盖外层变量。 var tmp = new Date(); function f() { console.log(tmp); .原创 2022-01-14 16:29:55 · 1119 阅读 · 3 评论 -
ES6--暂时性死区
暂时性死区只要块级作用域内存在let命令,它所声明的变量就“绑定”这个区域,不再受外部的影响。 var tmp = 123; if (true) { tmp = 'abc';//Cannot access 'tmp' before initialization在初始化之前无法访问“tmp” let tmp; } 上述代码存在全局变量tmp,但是块级作用域内let又声明了一个局部变量tmp,导致后者绑定这个块级作用域,所以在let声明变.原创 2022-01-14 16:29:35 · 368 阅读 · 3 评论 -
ES6--数值的扩展
ES6--数值的扩展一、二进制和八进制表示法二、Number.isFinite(), Number.isNaN()三、Number.parseInt(), Number.parseFloat()四、Number.isInteger()---判断一个数值是否为整数五、Math 对象的扩展1.Math.trunc()--去除一个数的小数部分,返回整数部分2.Math.sign() --判断一个数到底是正数、负数、还是零3.Math.cbrt()--计算一个数的立方根4.Math.fround()--返回一个数.原创 2021-03-23 17:52:30 · 389 阅读 · 3 评论 -
ES6--正则的扩展
ES6--正则的扩展一、RegExp 构造函数二、字符串方法中的正则使用1.replace()2.search()3.split()4.match()三、U修饰符四、s修饰符一、RegExp 构造函数 let reg = new RegExp('/\d+/','g'); //等价于 let regd = /\d+/g; //获取当前正则对象的修饰符 console.log(reg.fla.原创 2021-03-23 17:12:26 · 406 阅读 · 2 评论 -
ES6--Set数据结构
ES6--Set 和 Map 数据结构一、基本用法二、Set 中的特殊值三、Set 实例的属性和方法1. Set 结构的实例有以下属性。(1)Set.prototype.constructor:构造函数,默认就是Set函数。(2)Set.prototype.size:返回Set集合大小。2. Set 实例的方法(1)四个操作方法a.Set.prototype.add(value):添加某个值,返回 Set 结构本身。b.Set.prototype.delete(value):删除某个值,返回一个布尔值,表.原创 2021-04-02 13:35:29 · 175 阅读 · 2 评论 -
ES6---Symbol
ES6---Symbol一、第七种数据类型--Symbol二、Symbol类型的转化三、Symbol.prototype.description--直接获取字符串值Symbol变量直接转为字符串四、作为属性名的Symbol1. 直接作为属性名2. 对象属性字面量--对象的属性是变量3. 通过原生js操作对象属性赋值五、消除魔术字符串六、Symbol.for(),Symbol.keyFor()1.Symbol.for()2.Symbol.keyFor()一、第七种数据类型–SymbolES6 引入.原创 2021-03-31 16:34:48 · 374 阅读 · 3 评论 -
Es6--对象的新增方法
es6--对象的新增方法一、Object.is() ---比较两个值是否严格相等二、Object.assign()---对象合并1. 浅拷贝2. 同名属性的替换3. 数组的处理4. 取值函数的处理5. Object.assign()方法的应用(1)给对象添加属性(2)给对象添加方法(3)克隆对象(4)合并多个对象三、Object.getOwnPropertyDescriptors()---返回某个对象属性的描述对象自己实现getOwnPropertyDescriptors()方法四、__proto__属性.原创 2021-03-31 16:33:16 · 1107 阅读 · 3 评论 -
ES6--对象的扩展
ES6--对象的扩展一、对象的属性、方法简写1.属性的简写2.方法的简写二、setter、getter访问器1.针对属性获取或设置2.对象获取值的方法二三、属性名表达式对象的常规属性定义四、方法的 name 属性获取get、set访问器的name属性。五、使用原生js设置getter、setter访问器设置多个属性设置单个属性六、属性的可枚举性和遍历七、属性的遍历(1)for...in(2)Object.keys(obj)(3)Object.getOwnPropertyNames(obj)(4)Objec.原创 2021-03-30 15:21:13 · 536 阅读 · 3 评论 -
ES6--数组的扩展
ES6--数组的扩展一、扩展运算符1.类数组也可以使用扩展运算符2.复习call,apply3.扩展运算符替换apply方法获取数组中的最大值二、扩展运算符的应用1. 复制数组(1)ES5---concat()方法(2)ES6---扩展运算符2. 合并数组(1)ES5---合并数组(2)ES6---合并数组3. 与解构赋值结合4. 字符串转为数组5. 实现了 Iterator 接口的对象6. Map 和 Set 结构三、Array.from() --将类数组转化为数组。四、区分类点和对象点五、Array..原创 2021-03-25 21:19:20 · 267 阅读 · 2 评论 -
ES6--函数的扩展
ES6--函数的扩展一、函数参数的默认值1. 与解构赋值默认值结合使用2. 参数默认值的位置3. 函数的 length 属性4. 函数的作用域二、函数的rest 参数三、ES6的严格模式四、函数的name属性五、自己实现map映射方法一、函数参数的默认值ES6 允许为函数的参数设置默认值,即直接写在参数定义的后面。 function method(x,y=10){ console.log(x, y); } method(20);//20 10参数变.原创 2021-03-24 23:14:12 · 387 阅读 · 3 评论 -
ES6--字符串的扩展
es6--字符串的扩展以及新增的方法一、字符串遍历--for...of二、模板字符串--`${}`1. 基本用法(1)普通字符串(2)多行字符串(3)字符串插入变量和表达式。2. 标签模板3. 应用一、字符串遍历–for…ofES6 为字符串添加了遍历器接口,使得字符串可以被for…of循环遍历。 let str = 'abcdef'; for(let char of str) { console.log(char);//a b .原创 2021-03-22 21:51:43 · 474 阅读 · 2 评论 -
ES6--变量的解构赋值
es6--变量的解构赋值一、数组的解构赋值二、扩展运算符(...values)--拆分集合的三、对象的解构赋值1.缩写2.数组和对象解构赋值混用3.对象解构赋值的默认值四、字符串的解构赋值五、数值和布尔型的解构赋值六、函数参数的解构赋值七、圆括号问题1. 不能使用圆括号的情况(1)变量声明语句(2)函数参数(3)赋值语句的模式2. 可以使用圆括号的情况赋值语句的非模式部分,可以使用圆括号。八、解构赋值用途变量的解构赋值即就是按照相同的结构对应给值。ES6 允许按照一定模式,从数组和对象中提取值,对.原创 2021-03-19 13:30:01 · 587 阅读 · 3 评论 -
ES6--let 和 const 命令
一、let命令用来声明变量。它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效。 let a = 10;let声明的变量不能重名。 let a = 10; let a = 20; console.log(a);2.let命令在计时器中的用法 for(var i = 0;i<10;i++) { setTimeout(function(){ console.log(i);/原创 2021-03-19 13:29:51 · 194 阅读 · 2 评论