![](https://img-blog.csdnimg.cn/20190927151026427.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
ES6-ES13
文章平均质量分 86
ES6-ES13知识点
大富翁 chen
好好学习!天天开心!
展开
-
ES13 学习
这其实有点像一些其他的如C#和Java等面向对象的编程语言的静态构造函数的用法。这是因为CommonJS模块的require()是同步加载,如果有顶层await ,就没法处理加载了。findLast() / findLastIndex() 根据需要进行选择,前者是正着进行查找,后者是倒着进行查找。一般情况下,我们都是一个静态属性搭配一个get() ,这样能保证我们能访问到属性。引入顶层await ,也需要使用异步导出或者在动态导入的时候直接await 等待。at 函数来索引元素。原创 2024-04-06 09:00:59 · 1342 阅读 · 0 评论 -
ES12 学习
的,这意味着只要持有对象的引用,它就不会被垃圾回收。使用any 时如果先返回一定是fulfilled 状态的Promise 对象,如果该模块所有的Promise 对象都为rejected 状态,那么将执行catch()。现在我们要执行一个登录任务:设计一个登录 – 会员联盟系统,其中包括商超1,商超2,商超3,只要注册了一家的会员就能在另外两家商超使用会员,不然跳转到注册页面。并返回一个全新的字符串。同样的,使用普通的Map 数据机构,下面的代码中obj 不会被回收,因为m1 总的引用数 >0。原创 2024-04-05 21:23:59 · 871 阅读 · 0 评论 -
ES11 学习
标准用法的import 导入的模块是静态的,会使所有被导入的模块,在加载时就被编译(无法做到按需编译降低首页加载速度)。Promise.allSettled() 返回一个在所有给定的promise 都已经fulfilled 或rejected 后的promise ,并带有一个对象数组,每个对象表示对应的promise 结果。之前学习的Promise.all 只有在所有的Promise 都已经fulfilled 或rejected 才会执行then() ,否则将执行catch()。否则返回左侧的操作数。原创 2024-04-05 16:22:07 · 679 阅读 · 0 评论 -
ES10 学习
trimStart() 和trimEnd() 方法在实现与trimLeft() 和trimRight() 相同。为Symbol 对象添加了只读属性description ,该对象返回包含Symbol 描述的字符串。Object.fromEntries() 方法允许你轻松地将键。这点内容在ES6 学习部分已经提前学过了。原创 2024-04-05 08:40:31 · 305 阅读 · 0 评论 -
ES9学习 -- 对象的剩余参数与扩展运算符 / 正则扩展 / Promise.finally / 异步迭代
我们之前学习Promise 时,当对象调用resolve 时会执行某些程序,调用reject 时会执行某些程序,执行这些程序之前我们要呈现加载中的状态,待到执行了程序之后我们再关闭加载的状态,这时就出现一个问题,我们想在成功或者不成功时都调用某个程序,我们需要怎么写呢?JS正则表达式可以返回一个匹配的对象,一个包含匹配字符串的类数组,比如:以Y-MM-DD的格式解析日期,这样的代码可读性很差,并且在改变正则表达式的结构的时候很有可能就会改变匹配对象的索!我们也可以把上面异步遍历器执行代码换成下面的代码。原创 2024-04-03 21:08:43 · 1637 阅读 · 0 评论 -
ES8 学习 -- async 和 await / 对象方法扩展 / 字符串填充
该方法可以用来复制对象,当对象中存在拦截属性的方法时,我们使用object.assign() 就不灵了(object.assign() 只能复制属性和简单方法,具有拦截属性的方法就不能被复制)。拦截属性函数中我们一般不会去拦截对象的现有属性,比如说下面的代码中我们使用get() 获取this.name ,当程序运行时会不断调用get() ,程序一直在循环进行,但是得不到结果;如果某块代码出现错误时,代码就会直接跳到catch() 处,而不会继续执行下面的代码。// 这段代码是在 1s 之后才出现的!原创 2024-04-02 19:34:02 · 1103 阅读 · 0 评论 -
ES7 新特性
如果仅仅查找数据是否在数组中,建议使用includes();如果是查找数据的索引位置,建议使用indexOf() 更好一些.原创 2024-04-01 17:35:56 · 145 阅读 · 0 评论 -
ES6学习(五)-- Module 语法
我们之前学习的都是将 虽然写在html 标签之前,但是却能推后执行。使用async 时,js 代码加载完毕但是DOM还未渲染完全就会出现访问时找不到节点的问题;defer 则是等到DOM 全部都渲染完毕之后再进行js 代码的执行,所以比较来说更靠谱一点。原创 2024-04-01 17:27:42 · 1199 阅读 · 0 评论 -
ES6学习(四)-- Reflect / Promise / Generator 函数 / Class
of 循环不会遍历得到return 的结果,因为res3 = {value: ‘ccc’,done: true},根据迭代器的知识判断为true 时程序就停止了,不会得到return 的值。这也是Promise这个名字的由来,它的英语意思是“承诺”,一旦承诺成效,就不得再改变了。Reflect可以用于获取目标对象的行为,它与Object类似,但是更易读,为操作对象提供了一种更优雅的方式。意思是:就是当.then()前的方法执行完后再执行then()内部的程序,这样就避免了,数据没获取到等的问题。原创 2024-03-31 09:30:02 · 498 阅读 · 0 评论 -
ES6 学习(三)-- Symbol / Iterator 迭代器 / Set 结构 / Map 结构
对象是无序列非线性的,但是我们自己学习数组的设计(使用Array.prototype[Symbol.Iterator]最为该对象的[Symbol.Iterator],同时添加属性数作为长度),这样可以为线性对象也就添加了Iterator接口。Proxy如其名,它的作用是在对象和和对象的属性值之间设置一个代理,获取该对象的值或者设置该对象的值,以及实例化等等多种操作,都会被拦截住,经过这一层我们可以统一处理,我们可以认为它就是"代理器"Set 结构类似于数组,但成员的值都是唯一的,没有重复的值。原创 2024-03-28 22:09:30 · 1001 阅读 · 1 评论 -
ES6 学习(二)-- 字符串 / 数组 / 对象 / 函数扩展
之前所说的arguments 是类数组结构,不能使用filter() 等方法,但是现在可以使用Array.from() 将类数组结构转换成真数组,就可以使用相关数组方法来。标签中间的内容如果想要是可变的,还需要将kerwin 换成变量,使用字符串拼接的方法进行书写,这种写法实在是很麻烦,现在可以采用一种新方法。// [‘安庆’,‘安阳’,‘鞍山’,‘北京’,·‘保定’,‘包头’]数组上传到页面中会强行的转换成字符串的形式,数据会被 “,” 隔开;如果返回对象时需要注意: 使用( ) 将返回的对象括起来。原创 2024-03-26 22:02:53 · 997 阅读 · 0 评论 -
ES6 学习(一)-- 基础知识
const 声明常量一般是不可以被再次赋值的,但是如果const 定义的常量是一个对象(复杂数据类型),那么该变量只是存储了一个地址信息,通过obj.xxx 还是可以进行修改的。如果不想要该变量被修改就需要使用到freeze(),但是该函数只能冻住第一层属性,如果属性值是复杂数据类型,那么还是能够进行修改的。在代码块中使用let 变量定义之前变量是不可用的且该变量是存在的,此时我们把这块内容称作暂存/时性死区。const 声明的是常量,需要在声明时就赋值,后期值不可以修改;而let 声明变量则是局部变量;原创 2024-03-26 21:13:20 · 1161 阅读 · 0 评论