js
文章平均质量分 84
阿深的进步嗷嗷
这个作者很懒,什么都没留下…
展开
-
5.面试题
then方法必定会返回一个新的Promise可理解为后续处理也是一个任务新任务的状态取决于后续处理:若没有相关的后续处理,新任务的状态和前任务一致,数据为前任务的数据若有后续处理但还未执行,新任务挂起。若后续处理执行了,则根据后续处理的情况确定新任务的状态后续处理执行无错,新任务的状态为完成,数据为后续处理的返回值后续处理执行有错,新任务的状态为失败,数据为异常对象后续执行后返回的是一个任务对象,新任务的状态和数据与该任务对象一致。原创 2024-01-02 10:39:57 · 885 阅读 · 0 评论 -
4.async和await
有了Promise,异步任务就有了一种统一的处理方式有了统一的处理方式,ES官方就可以对其进一步优化ES7推出了两个关键字async和await,用于更加优雅的表达Promise。原创 2024-01-02 10:34:36 · 325 阅读 · 0 评论 -
3.Promise的静态方法
邓嫂出门时,给邓哥交待了几个任务:做饭可交给电饭煲完成洗衣服可交给洗衣机完成打扫卫生可交给扫地机器人完成邓哥需要在所有任务结束后给邓嫂汇报工作,哪些成功了,哪些失败了为了最大程度的节约时间,邓哥希望这些任务同时进行,最终汇总结果统一处理每个任务可以看做是一个返回Promise的函数如何利用这三个函数实现邓哥的要求呢?原创 2024-01-02 10:31:33 · 334 阅读 · 0 评论 -
2.Promise链式调用
若没有相关的后续处理,新任务的状态和前任务一致,数据为前任务的数据。后续执行后返回的是一个任务对象,新任务的状态和数据与该任务对象一致。后续处理执行无错,新任务的状态为完成,数据为后续处理的返回值。若后续处理执行了,则根据后续处理的情况确定新任务的状态。后续处理执行有错,新任务的状态为失败,数据为异常对象。由于链式任务的存在,异步代码拥有了更强的表达力。then方法必定会返回一个新的Promise。若有后续处理但还未执行,新任务挂起。后续处理也是一个任务。原创 2024-01-02 10:23:31 · 366 阅读 · 0 评论 -
1.Promise基础
邓哥心中有很多女神,他今天下定决心,要向这些女神表白,他认为,只要女神够多,根据概率学原理,总有一个会接收他稳妥起见,邓哥决定使用的方式进行表白:先给第1位女神发送短信,然后等待女神的回应,如果成功了,就结束,如果失败了,则再给第2位女神发送短信,依次类推邓哥的女神一共有4位,名字分别是:李建国、王富贵、周聚财、刘人勇发短信是一个重复性的劳动,邓哥是个程序员,因此决定用函数封装这个动作有了这个函数后,邓哥于是开始编写程序发送短信了该程序完成后,邓哥内心是崩溃的这一层一层的回调嵌套,形成了传说中的「原创 2023-09-07 16:07:07 · 46 阅读 · 0 评论 -
正则表达式
[a-zA-Z]\d{3}/ // 匹配1个字母,后面跟上连续的3个数字,{3}是量词,应用的规则是\d。/\d[a-zA-Z]|[a-zA-Z]\d/ // 匹配以1个数字紧跟一个字母,或者一个字母紧跟一个数字。/([a-zA-Z]\d){3}/ // {3}是量词,应用的规则是 [a-zA-Z]\d。// 将字符串中匹配正则的部分传入到回调函数的参数中,将函数的返回结果进行替换。/\d[a-zA-Z]/ // 匹配以1个数字紧跟一个字母。// reg是正则对象,str是字符串。原创 2023-09-07 15:37:08 · 30 阅读 · 0 评论 -
图解 JavaScript 事件循环
不过,请想像一下,如果我们正在执行一个耗时30秒的任务,在此任务期间,我们得等待30秒才能进行其它任何操作(默认情况下,JavaScript在浏览器的主线程上执行,所以整个用户界面都停滞了)。就会被添加到调用栈中。在本例中,没有其他函数被调用,这意味着当回调函数成为队列中的第一项时,调用栈是空的。,也就意味着之前所有被调用的函数都返回了它们的值,并且都已经从栈中弹出,那么队列中的。被返回后,事件循环看到调用栈是空的,之后回调函数被添加到调用栈。回调函数被添加到调用栈,被调用,并返回一个值,并从栈中弹出。原创 2023-09-07 15:38:33 · 57 阅读 · 0 评论 -
图解 JavaScript 生成器和迭代器
每当我问人们有关生成器函数的问题时,得到的回复基本上都是:“我曾看到过一次,没搞明白,然后就再也没有看到过”,“哦,天哪,我读过很多有关生成器函数的博客文章,但依然还没有搞明白”,“我是搞明白了,但是为什么有人会用它啊?不过,试想一下,假如我们有成千上万的数据,或者可能是一个传入的流,为了只找到一个值,我们需要解析。我们在前面看到的是:如果调用生成器函数,返回的是一个生成器对象,那么如何调用这个生成器函数呢?的模型:当我们调用一个函数时,它将一直运行,直到完成为止(好吧,除非某处出错了)。原创 2023-09-07 15:39:22 · 53 阅读 · 0 评论 -
ES6严格模式
严格模式是从ES5开始新增的一种方式,是采用具有限制性JavaScript变体的一种方式,从而使代码隐式地脱离“马虎模式/稀松模式/懒散模式“(sloppy)模式。设立"严格模式"的目的,主要有以下几个:消除Javascript语法的一些不合理、不严谨之处,减少一些怪异行为;消除代码运行的一些不安全之处,保证代码运行的安全;提高编译器效率,增加运行速度;为未来新版本的Javascript做好铺垫。“严格模式”体现了Javascript。原创 2023-08-01 17:58:48 · 172 阅读 · 1 评论 -
JS事件循环
根据 W3C 官方的解释,每个任务有不同的类型,同类型的任务必须在同一个队列,不同的任务可以属于不同的队列。具体做法是当某些任务发生时,比如计时器、网络、事件监听,主线程将任务交给其他线程去处理,自身立即结束任务的执行,转而执行后续代码。每个任务都有一个任务类型,同一个类型的任务必须在一个队列,不同类型的任务可以分属于不同的队列。在 Chrome 的源码中,它开启一个不会结束的 for 循环,每次循环从消息队列中取出第一个任务执行,而其他线程只需要在合适的时候将任务加入到队列末尾即可。原创 2023-08-01 17:57:50 · 33 阅读 · 1 评论 -
JS深浅拷贝
在堆中重新分配内存,并且把源对象所有属性都进行新建拷贝,以保证深拷贝的对象的引用图不包含任何原有对象或对象图上的任何对象,拷贝后的对象与原来的对象是完全隔离,互不影响。:在堆中重新分配内存,并且把源对象所有属性都进行新建拷贝,以保证深拷贝的对象的引用图不包含任何原有对象或对象图上的任何对象,拷贝后的对象与原来的对象是完全隔离,互不影响。方法把字符串解析成对象,一去一来,新的对象产生了,而且对象会开辟新的栈,实现深拷贝。当对象的属性值对应的是一个对象时,该方法拷贝的是对象的属性的引用,而不是对象本身。原创 2023-08-01 17:55:41 · 45 阅读 · 1 评论 -
尺寸和位置
在JavaScript中操作DOM节点使其运动的时候,常常会涉及到各种宽高以及位置坐标等概念,如果不能很好地理解这些属性所代表的意义,就会在书写代码时遇到不小的问题。而由于这些属性概念较多,加上浏览器之间实现方式不同,常常会造成概念混淆。本章,我们就一起来总结一下使用JavaScript操作DOM时,尺寸和宽高相关的属性。主要分为以下两部分:DOM对象相关尺寸和位置属性只读属性和属性和属性clientTop和clientLeft属性offsetLeft和。原创 2023-08-01 17:54:27 · 58 阅读 · 1 评论 -
WebAPI
和标准库不同,WebAPI 是提供的一套 API,用于操作浏览器窗口和界面WebAPI 中包含两个部分:BOM:Browser Object Model,浏览器模型,提供和浏览器相关的操作DOM:Document Object Model,文档模型,提供和页面相关的操作。原创 2023-08-01 17:29:57 · 78 阅读 · 1 评论 -
JS标准库
如果尝试着把原始类型(number、string、boolean)当做对象使用,JS会自动将其转换为对应包装类的实例。原创 2023-08-01 17:24:56 · 80 阅读 · 1 评论 -
ES语言提升
es6原创 2023-08-01 17:11:37 · 103 阅读 · 1 评论 -
JS 基础
js基础原创 2023-08-01 17:09:41 · 200 阅读 · 1 评论