JavaScript系列
文章平均质量分 54
lychee z
前端攻城师
展开
-
JS系列-事件循环(浏览器)
首先需要了解同步和异步的概念以及区别:同步指的是当一个进程在执行某个请求时,如果这个请求需要等待一段时间才能返回,那么这个进程会一直等待下去,直到消息返回为止再继续向下执行。异步指的是当一个进程在执行某个请求时,如果这个请求需要等待一段时间才能返回,这个时候进程会继续往下执行,不会阻塞等待消息的返回,当消息返回时系统再通知进程进行处理。而众所周知 js 是单线程运行,因此在代码执行时,会将不同函数的执行上下文压入执行栈中来保证代码能够有序执行。在执行同步代码时,如果遇到异步事件,js 引擎并不会等原创 2022-03-20 23:40:09 · 146 阅读 · 0 评论 -
JS系列-实现promise以及对应方法
在实现之前需要先理解Promise工作的机制,其实Promise就是一个构造函数,内部有三个状态,分别如下所示:pendingresolvedrejected而要想将某个promise实例从初始的pending状态改变为resolved或者rejected状态则必须要通过resolve()或者reject()这两个方法,而需要注意的是promise实例的状态改变是不可逆的,因此在改变为resolved或者rejected之后后续的改变状态的操作会因此而无效在Promsie原型对象中含有then原创 2022-03-10 14:31:31 · 347 阅读 · 0 评论 -
JS系列-this以及手写apply、call、bind函数
文章目录一、this二、手写apply、call、bind1.apply2.call3.bind一、thisthis 是执行上下文中的一个属性,它指向最后一次调用这个方法的对象。在实际开发中,this 的指向可以通过四种调用模式来判断。第一种是函数调用模式,当一个函数不是一个对象的属性时,直接作为函数来调用时,this 指向全局对象第二种是方法调用模式,如果一个函数作为一个对象的方法来调用时,this 指向这个对象第三种是构造器调用模式,如果一个函数用 new 调用时,函数执行前会新创建一个对原创 2022-02-18 23:50:54 · 330 阅读 · 0 评论 -
JS系列-闭包
闭包相关概念在相关的书籍《javascript高级程序设计》中对闭包的描述是这样的:闭包,其实是一种语言特性,它是指的是程序设计语言中,允许将函数看作对象,然后能像在对象中的操作般在函数中定义实例(局部)变量,而这些变量能在函数中保存到函数的实例对象销毁为止,其它代码块能通过某种方式获取这些实例(局部)变量的值并进行应用扩展。简单的写一个代码例子即可了解相关内容:function test(){ var inner = '我是test函数内部的变量'; return function pg(){原创 2022-02-02 21:34:27 · 721 阅读 · 0 评论 -
JS系列-原型链问题
原型与原型链JavaScript中使用构造函数来新建一个对象的,每一个构造函数的内部都有一个prototype属性,它的属性值是一个对象(也叫做`原型对象`),它包含了可以由该构造函数的所有实例共享的属性和方法。当使用构造函数新建一个对象后,在这个对象的内部将包含一个指针,这个指针会指向构造函数的 prototype属性对应的值,在ES5 中这个指针被称为对象的原型对象。一般来说不应该能够获取到这个值的,但是现在浏览器中都实现了_proto_属性来访问这个属性,但是最好不要使用这个属性,因为它不是规范原创 2022-01-19 15:52:36 · 642 阅读 · 0 评论 -
JS系列-for of与for in之间的区别
如今有for-in循环和for-of循环两种增强型循环。for-in是ES5标准,遍历的是key(可遍历对象、数组或字符串的key);for-of是ES6标准,遍历的是value(可遍历对象、数组或字符串的value)for-in代码示例:var arr = [1, 2, 4, 5, 7];for (let index in arr) { console.log(arr[index]);}使用for-in可以遍历数组,但是会存在以下问题:1.index索引为字符串型数字(注意,非原创 2022-01-13 12:00:25 · 381 阅读 · 0 评论