Flow(一)—— JavaScript静态类型检查器

2020-11-30
阅读 3 分钟
2.2k
目录Flow概述Flow VS. TypeScriptFlow安装Flow使用1.在文件开头要使用注释2.在代码中使用类型注解3.在package.json中添加,4.初始化flow5.执行flow命令进行检查6.关闭flow命令Flow编译1.官网提供flow-remove-typesnpm环境yarn环境2.BabelFlow开发工具插件VSCode —— Flow Language Support(Flow 官方提供的)其他的编辑...

JavaScript类型系统

2020-11-30
阅读 4 分钟
2.1k
目录类型系统类型安全 —— 强类型 VS. 弱类型两者之间的区别类型检查 —— 静态类型 VS. 动态类型两者之间的区别JavaScript类型系统的特征为什么JS是弱类型且动态类型呢?为什么需要类型检查呢?弱类型的不足强类型的优势JavaScript自有类型系统问题的解决方案关于查资料对于编译型语言和解释型语言的知识点补充编译型语言...

Rollup —— 适合框架和类库使用的模块打包器

2020-11-26
阅读 5 分钟
4.8k
目录Rollup概述Rollup vs Webpack快速上手配置文件插件rollup-plugin-jsonrollup-plugin-node-resolve(加载npm模块)rollup-plugin-commonjsCode Splitting(代码拆分)Dynamic Imports(动态导入)多入口打包amd输出格式要注意什么?指令参数参考大全这篇文章目前旨在简单了解Rollup是什么并且如何上手操作,之后会再...

JavaScript异步编程

2020-11-19
阅读 2 分钟
2.2k
目录JavaScript采用单线程模式工作的原因单线程的优势和弊端同步模式与异步模式同步模式异步模式同步模式API和异步模式API的特点实现JavaScript异步编程的几种方式回调函数 —— 所有异步编程方案的根基Promise —— 更优的异步编程解决方案Generatorasync/await —— 异步操作的终极解决方案JavaScript采用单线程模式工作的原...

nodemon —— Node服务自动重启实时刷新

2020-11-19
阅读 1 分钟
3.6k
目录起步使用nodemon作用就是实时更新,不用每次都运行一个node <filename>了起步github-nodemonnpm-nodemon {代码...} 使用 {代码...} 举个例子: {代码...} {代码...} 修改00.js,无需重启 {代码...} {代码...}

ES6-ES10知识整合合集

2020-11-12
阅读 2 分钟
6.2k
目录ECMAScriptES2015新特性的分类ES6-ES10学习版图基本语法链接整合历经两个月,终于把所有的ES6-ES10的知识点都发布完成了,这里进行一个小的整合,以后方便查阅资料用。这些东西打印出来A4纸也有120多页,一本小书的样子( ̄▽ ̄)/。有些东西遇到了网上查和自己整理一遍感觉还是不一样的,也希望自己可以慢慢有一种写...

ES6(十七)—— Symbol

2020-11-12
阅读 2 分钟
1.8k
目录简介为什么要有这个数据类型作用如果想用toString方法,又怕和原生的冲突,可以用Symbol更适合做私有属性,因为普通的遍历是访问不到的目前最主要的作用就是为对象添加独一无二的属性名使用symbol取值ES6-ES10学习版图简介一种全新的原始数据类型,js的基本数据类型。**不那么深入,就先简单记个笔记为什么要有这个...

ES10 —— stringify,flat,trimStart,matchAll,fromEntries,BigInt...

2020-11-12
阅读 5 分钟
1.8k
目录JSONstringifyArrayflatflatMapStringtrimStart(trimLeft) / trimEnd(trimRight)matchAllES5方法一: RegExp.prototype.exec() with /g方法二:String.prototype.match() with /g方法三:String.prototype.replace()ES10的matchAllObjectfromEntries例子一例子二try.catchSymbolSymbol.prototype.descriptionBigIntE...

ES9(五) —— Unicode Property Escapes

2020-11-12
阅读 2 分钟
2k
目录Unicode PropertyUnicode ScriptUnicode BlockES6-ES10学习版图了解这个新的知识点,需要对文本的编码非常熟悉,不然意识不到这个功能的意义。对于文本的编码需要了解两个概念:字符编码和文件编码。字符编码包括 ASCII 和 Unicode文件编码包括 UTF-8、GBK等。字符编码和文件编码的关系可以用一句话来概括:文件编码...

ES9(四) —— RegExp-dotAll...

2020-11-10
阅读 2 分钟
1.6k
RegExpRegExp 在ES9中新增dotAll(点匹配)判断有没有开启dotAllnamed captured groups(命名分组捕获)ES5ES9loodbehind assert(后行断言)先行断言后行断言ES6-ES10学习版图RegExp 在ES9中新增dotAll命名分组捕获后行断言dotAll(点匹配)正则中的点就是dotAll,都是匹配任意字符,但是很多字符是无法匹配的。例如:...

ES9(三) —— Object.rest.spread

2020-11-07
阅读 2 分钟
1.9k
目录Spread属于浅拷贝,但是并不是引用,修改值原对象不会改变。如果有相同的元素就进行替换可以合并多个对象解决了Object.assign()的整体替换丢失元素的缺陷restES6-ES10学习版图之前的rest只是应用于数组中,ES9给Object也新增了rest和spread方法。巧了,这两个方法的符号都是 —— ... (俗称三个点)Spread展开操作符...

ES9(二) —— Promise.finally

2020-11-07
阅读 1 分钟
1.7k
目录Promise是如何“兜底”操作的?想了解全部的Promise?ES6-ES10学习版图Promise是如何“兜底”操作的?使用Promise.finally,无论执行then还是catch,都会执行finally里面的函数体。例如一个弹窗:可以用resolve和reject分别保存变量的值,但是最后用finally去控制弹窗的弹出。下面看代码的例子: {代码...} 想了解全部的Pr...

ES9(一) —— For await of

2020-11-05
阅读 3 分钟
7.3k
目录问es9中异步操作集合是如何遍历的?如何可以解决这种问题?最终的解决方式-for-await-offor-of和for-await-of的区别自定义数据结构的异步遍历如何实现?ES6-ES10学习版图问:ES9中异步操作集合是如何遍历的?数组中的元素都是promise对象,那么是没有办法遍历的。 {代码...} 这种遍历就是不管三七二十一,首先遍历出...

ES8(五) —— 尾逗号合法

2020-11-05
阅读 1 分钟
2k
目录介绍好处注意ES6-ES10学习版图介绍函数定义参数和调用函数的参数中添加尾逗号合法,这个在ES2015中是不合法的。函数定义参数添加 {代码...} 函数调用参数添加 {代码...} 对象中的尾逗号会自动忽略 {代码...} 数组中的尾逗号会自动忽略 {代码...} 好处处理数据不必再手动处理最后一个逗号的问题函数参数尾逗号报错不...

ES8(四) —— Object.getOwnPropertyDescriptor()

2020-11-03
阅读 3 分钟
2.5k
目录ES8如何获取Object的描述符设置描述符使用defineProperty()获取单个属性的描述符 —— Object.getOwnPropertyDescriptor()获取所有属性里面的数据描述符 —— Object.getOwnPropertyDescriptors()描述符描述符参考可以拷贝getter和setter属性ES6-ES10学习版图ES8如何获取Object的描述符Object.getOwnPropertyDescriptor(...

ES8(三) —— String Padding

2020-11-03
阅读 2 分钟
1.8k
目录对String补白的方式padStartpadEndES6-ES10学习版图ES5对String补白的方式补白即格式化,例如将数字都输出成两位数,前面0补位例子一: {代码...} padStart用另一个字符串填充当前字符串(如果需要的话,会重复多次),从头补白(也就是左侧)第一个参数是目标长度,要输出的位数第二个参数是占位内容,默认是空格返回...

ES8(二) —— Object (keys、values、entries)

2020-11-02
阅读 2 分钟
2.2k
目录ES8新增对对象快速遍历的方法Object.keys()返回一个数组条件筛选Object.values()Object.entries()可以把对象变成可遍历的对象可以传到Map中变成一个map对象进行操作ES6-ES10学习版图ES8新增对对象快速遍历的方法Object.keys()参数是目标对象返回的是指定对象的键组成的数组返回一个数组ES5 {代码...} ES8 {代码...} ...

ES8(一) —— async&await

2020-11-02
阅读 4 分钟
2.4k
目录async和普通函数的区别awaitasync/await处理多回调异步async和await必须配合使用关于await使用中错误的处理M1:try-catchM2:.catchM3:两个返回值(参考node)ES6-ES10学习版图async和普通函数的区别 {代码...} await下面函数如何可以按照顺序执行? {代码...} 使用await {代码...} await promise 是一个表达式,后...

Parcel —— 零配置的模块打包工具

2020-11-01
阅读 3 分钟
3.4k
目录Parcel概述Parcel的背景Parcel的特点快速上手HMR —— 模块热替换零配置自动安装依赖支持其他类型资源模块支持动态导入之后自动分包生产模式运行打包Parcel概述是一款完全零配置的前端应用打包器,其提供了近乎傻瓜式的使用体验。我们只需要使用它提供的简单的几个命令就可以直接构建前端应用程序了。Parcel的背景Parc...

ES7 (一) —— includes

2020-11-01
阅读 1 分钟
1.6k
目录数组如何判断元素是否存在?Array.prototype.includesES6-ES10学习版图数组如何判断元素是否存在?ES5 filter {代码...} ES6 用find {代码...} ES7 includesArray.prototype.includesArray.prototype.includes()方法用来判断一个数组是否包含一个指定的值,根据情况,如果包含则返回 true,否则返回false。 {代码......

ES7(二) —— pow

2020-10-25
阅读 1 分钟
1.9k
目录数学运算Math:pow乘方运算ES7中的乘方如何简写呢?ES6-ES10学习版图数学运算Math:pow乘方运算ES5 pow {代码...} ES7中的乘方如何简写呢?ES7 ** {代码...} ES6-ES10学习版图

ES6(十六)—— Modules

2020-09-28
阅读 3 分钟
1.6k
目录模块这里,先简简单单讲些语法吧export、import导出单个变量导出多个变量导出数组整合导出默认导出导出函数导出对象导出类多变量多类导出ES6-ES10学习版图模块这里,先简简单单讲些语法吧export、import使用export、import语法,记得要进行babel编译导出单个变量 {代码...} 导出多个变量 {代码...} 导出数组 {代码.....

ES6(十五)—— lterator

2020-09-27
阅读 5 分钟
1.6k
目录ES6如何让不支持遍历的结构可遍历?将所有的作者名称取出来for-of需要Object.entries进行转化规定可迭代协议 —— 去找对象上面有没有Symbol.iterator属性迭代器协议 —— 怎么个迭代方式?返回无参函数next,next返回一个对象包含done和value属性Generator 和 lterator 结合使用案例ES6-ES10学习版图ES6如何让不支持遍...

ES6(十四)—— Generator

2020-09-26
阅读 8 分钟
1.5k
目录Generator是做什么的ES6如何让遍历“停”下来Basic Syntax —— 基础语法Senior Syntax —— 高级语法next添加参数return控制结束throw抛出异常控制Generator异步方案案例抽奖数3的倍数小游戏使用Generator函数实现Iterator方法ES6-ES10学习版图Generator是做什么的控制循环流程用的最重要的作用是解决异步编程嵌套层级较...

ES6(十三)—— Rroxy

2020-09-25
阅读 7 分钟
1.8k
目录ProxyBasic Syntax(基本用法)Schema Validation —— 只读Schema Validation —— 校验Schema Validation —— 监控上报Schema Validation —— 唯一只读idRevocable Proxies —— 撤销代理Proxy VS Object.defineProperty()proxy监视的操作更广Proxy更好的支持数组对象的监视如何使用Proxy对数组进行监视?Proxy是以非侵入...

ES6(十二)—— Reflect

2020-09-22
阅读 7 分钟
4k
Reflect反射,什么是反射机制?Reflect简介为什么要用Reflect?Reflect API.apply().construct().defineProperty().deleteProperty().get().getOwnPropertyDescriptor().getPrototypeOf().has().isExtensible() —— 是否可扩展.ownKeys() —— 判断对象自身属性.preventExtensions() —— 是否可扩展.set() —— 写数据.setProt...

深度剖析:手写一个Promise源码

2020-09-20
阅读 22 分钟
1.5k
目录一、Promise核心逻辑实现二、在 Promise 类中加入异步逻辑三、实现 then 方法多次调用添加多个处理函数四、实现then方法的链式调用五、then方法链式调用识别 Promise 对象自返回六、捕获错误及 then 链式调用其他状态代码补充捕获执行器的错误then执行的时候报错捕获错误之后的链式调用异步状态下链式调用七、将then...

ES6(十一)—— Promise(更优的异步编程解决方案)

2020-09-20
阅读 10 分钟
3.8k
目录说到Promise就不得不说道说道这 —— 回调地狱Promise —— 解决回调地狱Promise语法规范Promise的状态Promise基本用法Promise初体验Promise的本质Promise链式调用常见误区链式调用的理解Promise.prototype.then()Promise异常处理then中回调的onRejected方法Promise.prototype.catch()(推荐).catch形式和前面then里面...

ES6(十)—— Destructure(解构)

2020-09-19
阅读 3 分钟
2k
DestructureArray-Destructure基本用法跳过赋值变量、可以是任意可遍历的对象左边可以是对象属性rest变量默认值 & 当解构赋值值不够的情况Object-Destructure基本用法可以换变量名默认值rest运算符嵌套对象ES6-ES10学习版图解构赋值:使用数组索引去使用变量,不如直接赋值一个变量,但是也不适合用let声明很多变量A...

ES6(九)—— String

2020-09-18
阅读 3 分钟
1.5k
目录TemplateString Literals(字符串字面量)字符串换行包含变量或者表达式Tag Literals(标签字面值)有逻辑运算字符串的扩展方法ES6-ES10学习版图TemplateString Literals(字符串字面量)用来解决字符串拼接问题,从 ES6 开始可以这样定义字符串了。 {代码...} 在这里你可以任意插入变量或者表达式,只要用 ${} 包起...