
前端工程师3——ES6
文章平均质量分 95
努力成为一名优秀的前端工程师
ChrisP3616
C2在读硕士
展开
-
ES6 (一)let/const/变量提升/块级作用域/顶层对象
2.1 ES6 (一)let/const/变量提升/块级作用域/顶层对象文章目录2.1 ES6 (一)let/const/变量提升/块级作用域/顶层对象1. let 命令基本用法不存在变量提升暂时性死区不允许重复声明2. 块级作用域为什么需要块级作用域?ES6 的块级作用域块级作用域与函数声明3. const 命令基本用法本质ES6 声明变量的六种方法4. 顶层对象的属性5. globalThis 对象1. let 命令基本用法ES6 新增了let命令,用来声明变量。它的用法类似于var,但是所原创 2021-08-01 10:54:29 · 240 阅读 · 1 评论 -
ES6 (二)变量的解构赋值、圆括号、变量赋值的用途
ES6 (二)变量的解构赋值文章目录ES6 (二)变量的解构赋值1. 数组的解构赋值基本用法默认值2. 对象的解构赋值简介==默认值==注意点3. 字符串的解构赋值4. 数值和布尔值的解构赋值5. 函数参数的解构赋值6. 圆括号问题不能使用圆括号的情况(1)变量声明语句(2)函数参数(3)赋值语句的模式可以使用圆括号的情况7. 变量赋值的用途**(1)交换变量的值****(2)从函数返回多个值****(3)函数参数的定义****(4)提取 JSON 数据**==**(5)函数参数的默认值**====**(原创 2021-08-01 15:09:57 · 235 阅读 · 1 评论 -
ES6 (三)字符串的扩展、模板字符串、模板编译、标签模板
ES6 (三)字符串的扩展、模板字符串、模板编译、标签模板文章目录ES6 (三)字符串的扩展、模板字符串、模板编译、标签模板1. 字符的 Unicode 表示法2. 字符串的遍历器接口3. 直接输入 U+2028 和 U+20294. JSON.stringify() 的改造5. 模板字符串6. 实例:模板编译(==Review==)7. ==标签模板==8. 模板字符串的限制1. 字符的 Unicode 表示法ES6 加强了对 Unicode 的支持,允许采用\uxxxx形式表示一个字符,其中xxx原创 2021-08-01 20:56:22 · 1242 阅读 · 1 评论 -
ES6 (四)字符串的新增方法、Unicode正规化、字符串替换、正则表达式替换
ES6 (四)字符串的新增方法、Unicode正规化、字符串替换、正则表达式替换文章目录ES6 (四)字符串的新增方法、Unicode正规化、字符串替换、正则表达式替换1. String.fromCodePoint()2. String.raw()3. 实例方法:codePointAt()4. 实例方法:normalize()5. 实例方法:includes(), startsWith(), endsWith()6. 实例方法:repeat()7. 实例方法:padStart(),padEnd()8. 实原创 2021-08-02 11:30:49 · 1502 阅读 · 1 评论 -
ES6 (五)正则的扩展RegExp、u修饰符、y修饰符、后行断言/先行断言、具组名匹配、遍历器转为数组
ES6 (五)正则的扩展RegExp、u修饰符、y修饰符、后行断言/先行断言、具组名匹配、遍历器转为数组文章目录ES6 (五)正则的扩展RegExp、u修饰符、y修饰符、后行断言/先行断言、具组名匹配、遍历器转为数组1. RegExp 构造函数2. 字符串的正则方法3. u 修饰符(Unicode模式)4. RegExp.prototype.unicode 属性5. y 修饰符(粘连修饰符)6. RegExp.prototype.sticky 属性7. RegExp.prototype.flags 属性8原创 2021-08-02 14:57:56 · 745 阅读 · 1 评论 -
ES6 (六)数值的扩展、数值分隔符、isInteger、EPILON、MAX_SAFE_INTEGER、Math扩展、BigInt
ES6 (六)数值的扩展、数值分隔符、isInteger、EPILON、MAX_SAFE_INTEGER、Math扩展、BigInt文章目录ES6 (六)数值的扩展、数值分隔符、isInteger、EPILON、MAX_SAFE_INTEGER、Math扩展、BigInt1. 二进制和八进制表示法2. 数值分隔符3. Number.isFinite(), Number.isNaN()4. Number.parseInt(), Number.parseFloat()5. Number.isInteger()原创 2021-08-02 20:21:06 · 1130 阅读 · 1 评论 -
ES6 (七)函数的扩展、函数参数默认值、单独作用域、rest参数(…变量名)、箭头函数、尾调用优化(尾递归优化、柯里化、ES6函数默认值、蹦床函数)
ES6 (七)函数的扩展、单独作用域、rest参数(…变量名)、箭头函数、尾调用优化(尾递归优化、柯里化、ES6函数默认值、蹦床函数)文章目录ES6 (七)函数的扩展、单独作用域、rest参数(…变量名)、箭头函数、尾调用优化(尾递归优化、柯里化、ES6函数默认值、蹦床函数)1. 函数参数的默认值基本用法与解构赋值默认值结合使用参数默认值的位置函数的 length 属性==作用域==(最后的例子)应用2. rest 参数(==...变量名==)3. 严格模式(立即执行函数)4. name 属性5. ==箭原创 2021-08-03 13:14:02 · 481 阅读 · 1 评论 -
一文读懂浅拷贝和深拷贝
一文读懂浅拷贝和深拷贝先上结论:在 javascript 中有不同的方法来复制对象,如果你还不熟悉这门语言的话,复制对象时就会很容易掉进陷阱里,那么我们怎样才能正确地复制一个对象呢?读完本文,希望你能明白:什么是深/浅拷贝,他们跟赋值有何区别?深/浅拷贝的实现方式有几种?一、数据类型数据分为基本数据类型(String, Number, Boolean, Null, Undefined,Symbol)和对象数据类型。1、基本数据类型的特点:直接存储在栈(stack)中的数据2、引用数据原创 2021-08-03 14:35:14 · 252 阅读 · 1 评论 -
ES6 (八)数组的扩展、扩展运算符…(转为数组)、Array.from转为数组、Array.of、copyWithin、find、fill、includes、flat、数组的空位、sort
ES6 (八)数组的扩展、扩展运算符…(转为数组)、Array.from转为数组、Array.of、copyWithin、find、fill、includes、flat、数组的空位、sort文章目录ES6 (八)数组的扩展、扩展运算符…(转为数组)、Array.from转为数组、Array.of、copyWithin、find、fill、includes、flat、数组的空位、sort1. 扩展运算符含义替代函数的 apply 方法扩展运算符的应用**(1)复制数组****(2)合并数组****(3)与解原创 2021-08-03 15:44:34 · 477 阅读 · 1 评论 -
ES6 (九)对象的扩展、属性的简洁表示法、属性的可枚举性和遍历(遍历顺序)、super关键字、对象的扩展运算符
ES6 (九)对象的扩展、属性的简洁表示法、属性的可枚举性和遍历(遍历顺序)、super关键字、对象的扩展运算符文章目录ES6 (九)对象的扩展、属性的简洁表示法、属性的可枚举性和遍历(遍历顺序)、super关键字、对象的扩展运算符1. 属性的简洁表示法2. 属性名表达式3. 方法的 name 属性4. 属性的可枚举性和遍历可枚举性==属性的遍历==5. super 关键字6. 对象的扩展运算符解构赋值扩展运算符1. Object.is()对象(object)是 JavaScript 最重要的数据结构。原创 2021-08-03 21:53:38 · 177 阅读 · 1 评论 -
ES6 (十)对象的新增方法、Object.is()、Object.assign()、Object.getOwnPropertyDescriptors()、__proto__属性
ES6 (十)对象的新增方法、Object.is()、Object.assign()、Object.getOwnPropertyDescriptors()、__proto__属性,Object.setPrototypeOf(),Object.getPrototypeOf()、Object.keys(),Object.values(),Object.entries()Object.keys()文章目录ES6 (十)对象的新增方法、Object.is()、Object.assign()、Object.get原创 2021-08-03 22:03:53 · 658 阅读 · 1 评论 -
ES6 (十一)运算符的扩展、设置默认值||、链判断运算符?.、Null 判断运算符??、逻辑赋值运算符||= &&= ??=
ES6 (十一)运算符的扩展、设置默认值||、链判断运算符?.、Null 判断运算符??、逻辑赋值运算符||= &&= ??=1. 指数运算符**ES2016 新增了一个指数运算符(**)。2 ** 2 // 42 ** 3 // 8==这个运算符的一个特点是右结合,而不是常见的左结合。==多个指数运算符连用时,是从最右边开始计算的。// 相当于 2 ** (3 ** 2)2 ** 3 ** 2// 512上面代码中,首先计算的是第二个指数运算符,而不是第一个。指数运原创 2021-08-04 12:25:12 · 626 阅读 · 1 评论 -
ES6 (十二)Symbol
ES6 (十二)Symbol文章目录ES6 (十二)Symbol1. 概述2. Symbol.prototype.description3. 作为属性名的 Symbol4. 实例:消除魔术字符串5. 属性名的遍历6. Symbol.for(),Symbol.keyFor()7. 实例:模块的 Singleton 模式8. 内置的 Symbol 值Symbol.hasInstanceSymbol.isConcatSpreadableSymbol.speciesSymbol.matchSymbol.repla原创 2021-08-04 14:02:12 · 125 阅读 · 1 评论 -
ES6 (十三)Set 和 Map 数据结构、WeakSet 和 WeakMap、WeakRef、FinalizationRegistry
ES6 (十三)Set 和 Map 数据结构、WeakSet 和 WeakMap、WeakRef、FinalizationRegistry文章目录ES6 (十三)Set 和 Map 数据结构、WeakSet 和 WeakMap、WeakRef、FinalizationRegistry1. Set基本用法Set 实例的属性和方法遍历操作**(1)`keys()`,`values()`,`entries()`****(2)`forEach()`****(3)遍历的应用**2. WeakSet含义语法3. Ma原创 2021-08-04 17:17:44 · 389 阅读 · 1 评论 -
ES6 (十四)Proxy、get、set、construct、getPrototypeof、ownKeys、preventExtensionsthis问题
ES6 (十四)Proxy、get、set、construct、getPrototypeof、ownKeys、preventExtensionsthis问题文章目录ES6 (十四)Proxy、get、set、construct、getPrototypeof、ownKeys、preventExtensionsthis问题1. 概述2. Proxy 实例的方法get()set()apply()has()construct()deleteProperty()defineProperty()getOwnPrope原创 2021-08-05 17:06:47 · 247 阅读 · 1 评论 -
ES6 (十五)Reflect是为了完成默认行为、Proxy是拦截、Reflect搭配Proxy
ES6 (十五)Reflect是为了完成默认行为、Proxy是拦截、Reflect搭配Proxy文章目录ES6 (十五)Reflect是为了完成默认行为、Proxy是拦截、Reflect搭配Proxy1. 概述2. 静态方法Reflect.get(target, name, receiver)Reflect.set(target, name, value, receiver)Reflect.has(obj, name)Reflect.deleteProperty(obj, name)Reflect.con原创 2021-08-05 21:57:49 · 292 阅读 · 1 评论 -
ES6 (十六)Promise对象、结合Ajax(XMLHttpRequest)、`resolve`或`reject`位置、then方法(返回新的Promise对象)、catch()(吃掉错误)
ES6 (十六)Promise对象、结合Ajax(XMLHttpRequest)、resolve或reject位置、then方法(返回新的Promise对象)、catch()(Promise吃掉错误)、Promise.allSettled()、Promise.resolve()文章目录ES6 (十六)Promise对象、结合Ajax(XMLHttpRequest)、`resolve`或`reject`位置、then方法(返回新的Promise对象)、catch()(Promise吃掉错误)、Promise原创 2021-08-06 15:39:42 · 673 阅读 · 1 评论 -
ES6 (十七)Iterator 和 for...of 循环(为遍历对象而设计的,不适用于遍历数组)
ES6 (十七)Iterator 和 for…of 循环(为遍历对象而设计的,不适用于遍历数组)文章目录ES6 (十七)Iterator 和 for...of 循环(为遍历对象而设计的,不适用于遍历数组)1. Iterator(遍历器)的概念2. 默认 Iterator 接口3. 调用 Iterator 接口的场合**(1)解构赋值****(2)扩展运算符****(3)yield\*****(4)其他场合**4. 字符串的 Iterator 接口5. Iterator 接口与 Generator 函数6.原创 2021-08-06 21:12:12 · 148 阅读 · 1 评论 -
ES6 (十八)Generator 函数的语法、状态机、遍历对象生成函数、yield、不包括return 返回的、yield* 表达式
ES6 (十八)Generator 函数的语法、状态机、遍历对象生成函数、yield、不包括return 返回的、yield* 表达式文章目录ES6 (十八)Generator 函数的语法、状态机、遍历对象生成函数、yield、不包括return 返回的、yield* 表达式1. 简介基本概念yield 表达式与 Iterator 接口的关系2. next 方法的参数3. for...of 循环(不包括return 返回的)4. Generator.prototype.throw()5. Generato原创 2021-08-07 14:09:44 · 226 阅读 · 1 评论 -
ES6 (十九)Generator 函数的异步应用、JavaScript的异步编程、Thunk 函数(自动流程管理)、Thunkify 模块、 co 模块
ES6 (十九)Generator 函数的异步应用、JavaScript的异步编程、Thunk 函数(自动流程管理)、Thunkify 模块、 co 模块文章目录ES6 (十九)Generator 函数的异步应用、JavaScript的异步编程、Thunk 函数(自动流程管理)、Thunkify 模块、 co 模块1. 传统方法2. 基本概念异步回调函数Promise3. Generator 函数协程协程的 Generator 函数实现Generator 函数的数据交换和错误处理异步任务的封装4. Thu原创 2021-08-07 15:53:56 · 191 阅读 · 1 评论 -
ES6 (二十)async 函数(Generator 函数)、返回值是 Promise(可以直接使用then)、await、错误处理(async的难点)、await并发
ES6 (二十)async 函数(Generator 函数)、返回值是 Promise(可以直接使用then)、await、错误处理(async的难点)、await并发文章目录ES6 (二十)async 函数(Generator 函数)、返回值是 Promise(可以直接使用then)、await、错误处理(async的难点)、await并发1. 含义(1)内置执行器。(2)更好的语义。(更直白)(3)更广的适用性。(4)返回值是 Promise。(可以直接使用then)2. 基本用法3. 语法返回 Pr原创 2021-08-08 14:12:44 · 336 阅读 · 1 评论 -
ES6 (二十一)Class 的基本语法、constructor 方法、static关键字(静态方法)、私有方法和私有属性#
ES6 (二十一)Class 的基本语法、constructor 方法、static关键字(静态方法)、私有方法和私有属性#文章目录ES6 (二十一)Class 的基本语法、constructor 方法、static关键字(静态方法)、私有方法和私有属性#1. 简介类的由来constructor 方法类的实例取值函数(getter)和存值函数(setter)属性表达式Class 表达式注意点**(1)严格模式****(2)不存在提升****(3)name 属性****(4)Generator 方法****原创 2021-08-08 16:16:36 · 503 阅读 · 1 评论 -
ES6 (二十二)Class 的继承、extends关键字、super 关键字(函数调用(constructor)、对象(父类原型对象))、原型对象(原型链)、Mixin 模式
ES6 (二十二)Class 的继承、extends关键字、super 关键字(函数调用(constructor)、对象(父类原型对象))、原型对象(原型链)、Mixin 模式文章目录ES6 (二十二)Class 的继承、extends关键字、super 关键字(函数调用(constructor)、对象(父类原型对象))、原型对象(原型链)、Mixin 模式1. 简介2. Object.getPrototypeOf()3. super 关键字(函数调用(constructor)、对象(父类原型对象))4.原创 2021-08-08 21:17:03 · 383 阅读 · 3 评论 -
ES6 (二十三)Module 的语法、静态加载、export`和`import、export default、import动态加载
ES6 (二十三)Module 的语法、静态加载、export和import、export default、import动态加载文章目录ES6 (二十三)Module 的语法、静态加载、export`和`import、export default、import动态加载1. 概述2. 严格模式3. export 命令4. import 命令5. 模块的整体加载6. export default 命令7. export 与 import 的复合写法8. 模块的继承9. 跨模块常量10. import()简介适原创 2021-08-09 21:24:17 · 759 阅读 · 1 评论 -
ES6 (二十四)Module 的加载实现、defer、async、CommonJS 模块、ES6模板、Node.js 的模块加载方法、package.json、循环加载
ES6 (二十四)Module 的加载实现、defer、async、CommonJS 模块、ES6模板、Node.js 的模块加载方法、package.json、循环加载文章目录ES6 (二十四)Module 的加载实现、defer、async、CommonJS 模块、ES6模板、Node.js 的模块加载方法、package.json、循环加载1. 浏览器加载传统方法加载规则2. ES6 模块与 CommonJS 模块的差异3.✔ Node.js 的模块加载方法概述package.json 的 main原创 2021-08-10 16:19:52 · 592 阅读 · 2 评论 -
ES6 (二十五)编程风格、箭头函数绑定this、Map & Object、export default、ESLint
ES6 (二十五)编程风格、箭头函数绑定this、Map & Object、export default、ESLint文章目录ES6 (二十五)编程风格、箭头函数绑定this、Map & Object、export default、ESLint1. 块级作用域**(1)let 取代 var****(2)全局常量和线程安全**2. 字符串3. 解构赋值4. 对象5. 数组6. 函数7. Map 结构8. Class9. 模块10. ESLint 的使用本章探讨如何将 ES6 的新语法,运用原创 2021-08-10 22:48:07 · 603 阅读 · 3 评论 -
ES6 (二十六)读懂 ECMAScript 规格、Record 和 field、相等运算符、数组的空位
ES6 (二十六)读懂 ECMAScript 规格、Record 和 field、相等运算符、数组的空位文章目录ES6 (二十六)读懂 ECMAScript 规格、Record 和 field、相等运算符、数组的空位1. 概述2. 术语抽象操作Record 和 field[[Notation]]Completion Record3. 抽象操作的标准流程4. 相等运算符5. [数组的空位](https://blog.youkuaiyun.com/qq_43456781/article/details/119351721原创 2021-08-11 15:04:31 · 1059 阅读 · 1 评论 -
ES6 (二十七)异步遍历器、Async Iterator、异步 Generator 函数、yield* 语句
ES6 (二十七)异步遍历器、Async Iterator、异步 Generator 函数、yield* 语句文章目录ES6 (二十七)异步遍历器、Async Iterator、异步 Generator 函数、yield* 语句1. 同步遍历器的问题2. 异步遍历的接口 Async Iterator3. for await...of4. 异步 Generator 函数5. yield* 语句1. 同步遍历器的问题《遍历器》一章说过,Iterator 接口是一种数据遍历的协议,只要调用遍历器对象的nex原创 2021-08-11 21:36:26 · 429 阅读 · 2 评论 -
ES6 (二十八)ArrayBuffer/内存、TypedArray视图、小端字节序、溢出/有符号8位数范围、DataView、Web Worker改进sharedArryByffer、Atomics
ES6 (二十八)ArrayBuffer(内存)、视图(读写内存)、TypedArray视图(简单)、小端字节序(一个数字代表1字节=4位)、溢出(有符号8位数范围)、8位1字节、DataView视图(复杂)、Web Worker改进(SharedArrayBuffer)、Atomics 对象文章目录ES6 (二十八)ArrayBuffer(内存)、视图(读写内存)、TypedArray视图(简单)、小端字节序(一个数字代表1字节=4位)、溢出(有符号8位数范围)、==8位1字节==、DataView视图原创 2021-08-12 22:10:56 · 1169 阅读 · 1 评论 -
ES6 (二十九)ES6最新提案、do、throw、函数部分执行、管道运算符|>、柯里化、::、Realm API
ES6 (二十九)ES6最新提案、do、throw、函数部分执行、管道运算符|>、柯里化、::、Realm API文章目录ES6 (二十九)ES6最新提案、do、throw、函数部分执行、管道运算符|>、柯里化、::、Realm API1. do 表达式2. throw 表达式3. 函数的部分执行语法注意点4. 管道运算符5. Math.signbit()6. 双冒号运算符7. Realm API8. `#!`命令9. import.meta10. JSON 模块1. do 表达式本质上原创 2021-08-13 10:33:57 · 744 阅读 · 1 评论 -
ES6 (三十)装饰器Decorator、core-decorators.js、Mixin、Trait
ES6 (三十)装饰器Decorator、core-decorators.js、Mixin、Trait文章目录ES6 (三十)装饰器Decorator、core-decorators.js、Mixin、Trait1. 类的装饰2. 方法的装饰3. 为什么装饰器不能用于函数?4. core-decorators.js**(1)@autobind****(2)@readonly****(3)@override****(4)@deprecate (别名@deprecated)****(5)@suppressWa原创 2021-08-13 16:49:48 · 757 阅读 · 2 评论