![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
笔记
文章平均质量分 87
qq_42349946
这个作者很懒,什么都没留下…
展开
-
JS事件循环Event Loop
在浏览器的事件循环中,首先大家要认清楚 3 个角色:函数调用栈、宏任务(macro-task)队列和微任务(micro-task)队列。常见的 macro-task 比如: setTimeout、setInterval、 setImmediate、 script(整体代码)、I/O 操作等。常见的 micro-task 比如: process.nextTick、Promise、MutationObserver 等注意:script(整体代码)它也是一个宏任务;此外,宏任务中的 setImmediate原创 2020-09-10 11:00:47 · 79 阅读 · 0 评论 -
JS异步
异步在实现上,依赖一些特殊的语法规则。从整体上来说,异步方案经历了如下的四个进化阶段:回调函数 —> Promise —> Generator —> async/await。1、promisePromise 会接收一个执行器,在这个执行器里,我们需要把目标的异步任务给”填进去“。在 Promise 实例创建后,执行器里的逻辑会立刻执行,在执行的过程中,根据异步返回的结果,决定如何使用 resolve 或 reject 来改变 Promise实例的状态。 Promise 实例有三种状原创 2020-09-08 11:18:10 · 120 阅读 · 0 评论 -
JS执行上下文与调用栈
1、执行上下文的分类执行上下文主要分为三类:全局上下文 —— 全局代码所处的环境,不在函数中的代码都在全局执行上下文中函数上下文 —— 在函数调用时创建的上下文Eval 执行上下文 —— 运行 Eval 函数中的代码时所创建的环境2、全局上下文的创建和组成当我们的 JS 脚本跑起来之后,第一个被创建的执行上下文就是全局上下文。当我们的脚本里一行代码也没有的时候里,全局上下文里会比较干净,只有两个东西:1.全局对象(浏览器里是 Window, Node 环境下是 Global)2.this原创 2020-09-07 20:59:11 · 182 阅读 · 0 评论 -
JS this指向问题
作用 & 意义this关键字具有一种指向作用,类似于指针的作用,可以为你的变量或方法提供一个指向。a.如果是一般函数,this指向全局对象window;b.在严格模式下"use strict",为undefined.c.对象的方法里调用,this指向调用该方法的对象.d.构造函数里的this,指向创建出来的实例.多数情况下,this 指向调用它所在方法的那个对象。当调用方法没有明确对象时,this 就指向全局对象。在浏览器中,指向 window;在 Node 中,指向 Global。(原创 2020-09-03 17:05:13 · 144 阅读 · 0 评论 -
JS内存管理机制
基本类型和引用类型JS 中的数据类型,整体上来说只有两类:基本类型和引用类型。其中基本类型包括:Sting、Number、Boolean、null、undefined、Symbol。这类型的数据最明显的特征是大小固定、体积轻量、相对简单,它们被放在 JS 的栈内存里存储。而排除掉基本类型,剩下的数据类型就是引用类型,比如 Object、Array、Function 等等。这类数据比较复杂、占用空间较大、且大小不定,它们被放在 JS 的堆内存里存储。栈是线性表的一种,而堆则是树形结构。垃圾回收机制原创 2020-09-03 10:25:01 · 348 阅读 · 0 评论 -
JAVASCRIPT闭包
一、JS编译原理var name = 'huiru'编译阶段:这时登场的是一个叫 编译器 的家伙。编译器会找遍当前作用域,看看是不是已经有一个叫 name 的家伙了。如果有,那么就忽略 var name 这个声明,继续编译下去;如果没有,则在当前作用域里新增一个 name。然后,编译器会为引擎生成运行时所需要的代码,程序就进入了执行阶段执行阶段:这时登场的就是大家常常听到的 JS 引擎 了。JS 引擎在执行代码的时候,仍然会找遍当前作用域,看看是不是有一个叫 name 的家伙。如果能找到,那原创 2020-09-02 21:19:10 · 86 阅读 · 0 评论 -
JAVASCRPT继承方法
一、原型链继承// 原型链继承 function Person(){ this.name = 'huiru'; } Person.prototype.getName = function(){ console.log(this.name); } function Child(){ } Child.prototype = new Perso原创 2020-09-01 17:08:54 · 91 阅读 · 0 评论 -
JAVASCRIPT原型与原型链
一、普通对象与函数对象凡是通过 new Function() 创建的对象都是函数对象,其他的都是普通对象。二、构造函数实例的构造函数属性(constructor)指向构造函数。若person1 和 person2 都是构造函数 Person 的实例,则这两个实例都有一个 constructor (构造函数)属性,该属性(是一个指针)指向 Person。三、原型对象在 JavaScript 中,每当定义一个对象(函数也是对象)时候,对象中都会包含一些预定义的属性。其中每个函数对象都有一个protot原创 2020-09-01 11:24:13 · 82 阅读 · 0 评论 -
JAVASCRIPT常用位运算
1.取整// 异或运算取整::位运算只对整数有效,遇到小数时,会将小数部分舍去,只保留整数部分。//所以,将一个小数与0进行或运算,等同于对该数去除小数部分,即取整数位。12.9 ^ 0 // 12-12.9 ^ 0 // -12// 双否定位操作符取整~~4.9 // 4~~(-4.9) // -4// 左移0位,就相当于将该数值转为32位整数,等同于取整,对于正数和负数都有效。13.5 << 0 // 13-13.5 << 0 // -13// 或运算原创 2020-08-31 11:09:37 · 204 阅读 · 0 评论 -
JAVASCRIPT数据类型判断
JS基本数据类型String、Number、Boolean、Null、Undefined、Symbol(ES6)、Object其中分为基本数据类型和引用数据类型:基本数据类型:String、Number、boolean、null、undefined引用数据类型:Object。里面包含的 function、Array、Date。判断数据类型一般有四种方法:1....原创 2020-08-31 10:49:55 · 94 阅读 · 0 评论 -
JAVASCRIPT 装箱 / 拆箱 & 类型转换
众所周知,object类型才有方法,但基本类型也可以调用方法,比如toString()、toFixed(),这就涉及到了JavaScript的装箱。装箱的概念:把基本类型转化为相应的对象。而装箱又分为显式与隐式。隐式装箱:1.读取基本类型的值,后台创建一个临时的该基本类型所对应的对象。2.对基本类型调用方法,实际是在该基本类型的对象上调用方法。3.执行方法后该对象立马销毁。显式装箱:用内置对象例如Number、Boolean、String、Object等 对基本类型进行显式装箱。拆箱的概念:原创 2020-08-28 16:37:50 · 346 阅读 · 0 评论 -
JAVASCRIPT常用设计模式
单例模式单例模式的定义:保证一个类仅有一个实例,并提供一个访问它的全局访问点。实现的方法为先判断实例存在与否,如果存在则直接返回,如果不存在就创建了再返回,这就确保了一个类只有一个实例对象。适用场景:一个单一对象。比如:弹窗,无论点击多少次,弹窗只应该被创建一次。因为单体模式是只实例化一次,所以下面的实例是相等的。class CreateUser { constructor(name) { this.name = name; this.getName();原创 2020-08-28 15:48:12 · 61 阅读 · 0 评论 -
8.11作业帮hr面
对前两次面试官的评价,他们的面试侧重点是什么为什么做前端做过最自豪的事情是什么还投了哪些公司如何选择地区很多问题都不太记得了,hr小哥声音太太太太温柔了,我爱了????原创 2020-08-11 20:36:54 · 455 阅读 · 0 评论 -
8.5作业帮前端二面
1.自我介绍2.vue的优点3.还知道哪些框架4.如何解决浏览器适配问题5.MVVM模型(问的很详细)6.闭包的理解,闭包的优点7.知道哪些设计模式8.js的几种继承方式9.事件循环机制10.代码一:链表倒数第N个(改成递归怎么写)11.代码二:两个字符串A,B,判断A是否是B的子串,不能使用高级api12.最近看了什么书13.职业规划...原创 2020-08-05 12:10:34 · 759 阅读 · 0 评论 -
你不知道的JAVASCRIPT:this和对象原型
this 实际上是在函数被调用时发生的绑定,它指向什么完全取决于函数在哪里被调用。寻找调用位置就是寻找“函数被调用的位置”,但是做起来并没有这么简单,因为某些编程模式可能会隐藏真正的调用位置。最重要的是要分析调用栈(就是为了到达当前执行位置所调用的所有函数)。我们关心的调用位置就在当前正在执行的函数的前一个调用中。3.因此,如果你想要分析 this 的绑定,使用开发者工具得到调用栈,然后找到栈中第二个元素,这就是真正的调用位置。4.绑定规则独立函数调用:是无法应用其他规则时的默认规则。t..原创 2020-07-03 11:43:27 · 114 阅读 · 0 评论 -
你不知道的JAVASCRIPT:作用域和闭包
LHS 和 RHS 的含义是“赋值操作的左侧或右侧”并不一定意味着就是“=赋值操作符的左侧或右侧”。赋值操作还有其他几种形式,因此在概念上最好将其理解为“赋值操作的目标是谁(LHS)”以及“谁是赋值操作的源头(RHS)”。如果查找的目的是对变量进行赋值,那么就会使用 LHS 查询;如果目的是获取变量的值,就会使用 RHS 查询。如果 RHS 查询在所有嵌套的作用域中遍寻不到所需的变量,引擎就会抛出ReferenceError异常。值得注意的是,ReferenceError 是非常重要的异常类型。严格模式原创 2020-06-30 16:05:51 · 130 阅读 · 0 评论