JavaScript
文章平均质量分 87
慌张的唐同学
这个作者很懒,什么都没留下…
展开
-
JavaScript 原型与原型链
在JavaScript中是使用构造函数来新建一个对象的,每一个构造函数的内部都有一个 prototype 属性,它的属性值是一个对象,这个对象包含了可以由该构造函数的所有实例共享的属性和方法。当使用构造函数新建一个对象后,在这个对象的内部将包含一个指针,这个指针指向构造函数的 prototype 属性对应的值,在 ES5 中这个指针被称为对象的原型。一般来说不应该能够获取到这个值的,但是现在浏览器中都实现了 __proto__ 属性来访问这个属性,但是最好不要使用这个属性,因为它不是规范中规定的。ES5 中原创 2022-04-07 21:04:29 · 897 阅读 · 0 评论 -
JavaScript 防抖(debounce) 和 节流(throttling)
防抖节流转载 2022-03-15 20:05:50 · 616 阅读 · 1 评论 -
JavaScript 正则表达式
什么是正则表达式?正则表达式是描述字符模式的对象,正则表达式是由一个字符序列形成的搜索模式。正则表达式的语法:/正则表达式主体/修饰符(可选)例如:const exp = /abc/i/abc/i就是一个正则表达式,其中abc是一个正则表达式主体(用于正则匹配),i是一个修饰符,表示进行正则匹配是不区分大小写。这个表达式的意思匹配包含了abc的字符串,其中abc不区分大小写。const exp = /abc/iconsole.log(exp.test('abc')) //字符串中包含ab原创 2022-02-26 16:22:35 · 860 阅读 · 0 评论 -
JavaScript call,apply,bind详解及实现
1.前言call,apply,bind这三个方法都是用来改变函数的this指向,如果有对this不熟悉的朋友,可以先看看笔者的这篇博客。call & applycall()语法:function.call(thisArg, arg1, arg2, ...)thisArg可选的。在 function 函数运行时使用的 this 值。请注意,this可能不是该方法看到的实际值:如果这个函数处于非严格模式下,则指定为 null 或 undefined 时会自动替换为指向全局对象,原始值原创 2022-01-27 10:48:16 · 1099 阅读 · 0 评论 -
JavaScript new运算符
1. 初识newnew运算符创建一个用户定义的对象类型的实例或具有构造函数的内置对象的实例。function Car(make, model, year) { this.make = make; this.model = model; this.year = year;}const car1 = new Car('Eagle', 'Talon TSi', 1993);console.log(car1.make);// "Eagle"2. new的实现new关键字会在这段代原创 2022-01-26 20:13:33 · 1287 阅读 · 0 评论 -
JavaScript 作用域与执行上下文
JavaScript的作用域(scope)和执行上下文(execution context)总是纠缠不清,以至于网上出现了大量文章来区分这两个概念。MDN中是这样描述scope的:ScopeThe current context of execution. The context in which values and expressions are “visible” or can be referenced. If a variable or other expression is not “i原创 2022-01-26 17:01:01 · 1126 阅读 · 0 评论 -
JavaScript不同情况下this的指向
1. this是什么?如果学过其他语言,那么可能会想到this是一个指向自己的指针,用于访问自己。但是,JavaScript函数中的this关键字和以上说法略有不同。在绝大多数情况下,函数的调用方式决定了 this 的值(运行时绑定)。this 不能在执行期间被赋值,并且在每次函数被调用时 this 的值也可能会不同。 window.name = 'Niall' let person = { name : 'Horan', sayName: function (){原创 2022-01-26 11:59:29 · 702 阅读 · 0 评论 -
JavaScript async / await详解
本文是笔者阅读MDN:async和await:让异步编程更简单和阮一峰老师的博客之后的学习笔记,如有疑问,欢迎讨论async functions 和 await 关键字是最近添加到JavaScript语言里面的。它们是ECMAScript 2017 JavaScript版的一部分(参见ECMAScript Next support in Mozilla)。简单来说,它们是基于promises的语法糖,使异步代码更易于编写和阅读。通过使用它们,异步代码看起来更像是老式同步代码,因此它们非常值得学习。如.原创 2022-01-24 19:06:52 · 1440 阅读 · 0 评论 -
JavaScript ==,Object.is(), Truthy、Falsy与true、false的区别
1. Truthy:在 JavaScript 中,truthy(真值)指的是在布尔值上下文中,转换后的值为真的值。所有值都是真值,除非它们被定义为 假值(即除 false、0、-0、0n、""、null、undefined 和 NaN 以外皆为真值)。JavaScript 在布尔值上下文中使用强制类型转换(coercion)。JavaScript 中的真值示例如下(将被转换为 true,if 后的代码段将被执行):if (true)if ({})if ([])if (42)if ("foo"原创 2022-01-24 13:12:36 · 578 阅读 · 0 评论 -
JavaScript事件流,事件冒泡和事件捕捉
本文是笔者阅读对JS事件流的深入理解之后的学习记录,@谢小飞系原文作者,感谢!什么是js事件?什么是原生事件和自定义事件?在JavaScript中有一个Event接口,表示在DOM中出现的事件,一些事件是由用户触发的,例如鼠标或键盘事件;而其他事件常由 API 生成,例如指示动画已经完成运行的事件,视频已被暂停等等。事件也可以通过脚本代码触发,例如对元素调用 HTMLElement.click() 方法,或者定义一些自定义事件,再使用 EventTarget.dispatchEvent() 方法将自.原创 2022-01-23 21:28:46 · 727 阅读 · 0 评论 -
手写Promise 理解promise底层原理
本文参考了此博客,在网上浏览了很多关于Promise的相关资料,promise可以说是JavaScript的重难点了,其中,很是感谢阮一峰老师的博客讲解以及MDN上的文档教程如对Promise不太熟悉的同学,可以先浏览Promise工作原理分析,如有不同意见,欢迎讨论,一起进步。Promise基本流程function doSomething(){ var p1 = new Promise(function (resolve, reject) { setTimeout(()=.原创 2022-01-18 20:33:05 · 2441 阅读 · 1 评论 -
Promise工作原理分析
PromisePromise对象用于表示一个异步操作的最终完成(或失败)及其结果值描述一个 Promise 对象代表一个在这个 promise 被创建出来时不一定已知的值。它让您能够把异步操作最终的成功返回值或者失败原因和相应的处理程序关联起来。 这样使得异步方法可以像同步方法那样返回值:异步方法并不会立即返回最终的值,而是会返回一个 promise,以便在未来某个时候把值交给使用者。一个 Promise 必然处于以下几种状态之一:待定(pending): 初始状态,既没有被兑现,也没有被拒绝。原创 2022-01-16 22:46:22 · 632 阅读 · 0 评论