摘要: 作用域 作用域可以理解为JS引擎执行代码的时候,查找变量的规则。 从确定变量访问范围的阶段的角度,可以分为2类,词法作用域和动态作用域。js是词法作用域。 从变量查找的范围的角度,可以分为3类,全局作用域、函数作用域和块级作用域。 词法作用域 词法作用域是在词法分析阶段就确定的作用域,变量的访问访问 阅读全文
posted @ 2022-09-06 09:39 笔下洛璃 阅读(82) 评论(0) 推荐(0) 编辑
摘要: 事件循环概述 事件循环是用来实现异步特性的。 事件循环中的几个概念: 主线程: 理解为同步任务的先进先出,一旦调用,同步任务就执行。 执行栈: 先入后出的数据结构,一个任务来到栈底就立即执行,然后释放。 任务队列: 包括宏任务队列和微任务队列,当执行栈空的时候,就会从任务队列中,取任务来执行。 宏任 阅读全文
posted @ 2022-09-05 09:25 笔下洛璃 阅读(1380) 评论(0) 推荐(0) 编辑
摘要: async和await在干什么? async声明一个函数是异步的,async声明的函数返回值是promise对象。 await只能用在async声明的函数内部,用于等待一个异步方法执行完成。 async的作用 async函数返回的是一个promise对象,在最外层又不能使用await去等待获取其返回 阅读全文
posted @ 2022-09-02 09:39 笔下洛璃 阅读(109) 评论(0) 推荐(0) 编辑
摘要: 异步编程发展 异步编程经历了 callback、promise、async/await、generator四个阶段,其中promise和async/await使用最为频繁,而generator因为语法晦涩难懂,很少使用。 本文主要讲述promise如何使用。 promise语法 promise的三种 阅读全文
posted @ 2022-08-31 10:09 笔下洛璃 阅读(87) 评论(0) 推荐(0) 编辑
摘要: 箭头函数与普通函数的区别 1、语法上更加简洁、清晰 基本语法: // 关于箭头函数的参数 // 如果箭头函数没有参数,直接写一个括号即可 let fun1 = () => { console.log('111') }; // 如果箭头函数只有一个参数,可以省略括号 let fun2 = name = 阅读全文
posted @ 2022-08-29 09:01 笔下洛璃 阅读(112) 评论(0) 推荐(0) 编辑
摘要: null和undefined的区别 undefined: 字面意思是未定义的值,语义是希望表示一个变量最原始的状态,而非人为操作的结果。这种原始状态会在以下四个场景中出现: 声明了一个变量但没有赋值 访问对象上不存在的属性 函数定义了形参,但是没有传递实参 使用void对表达式求值 null: 字面 阅读全文
posted @ 2022-08-26 08:55 笔下洛璃 阅读(650) 评论(0) 推荐(0) 编辑
摘要: this的指向问题 全局作用域下的this指向 无论是否是严格模式,全局作用域下的this始终指向window 函数内部的this 严格模式下: function test() { 'use strict' console.log(this) } test(); // undefined windo 阅读全文
posted @ 2022-08-25 09:08 笔下洛璃 阅读(52) 评论(0) 推荐(0) 编辑
摘要: JS数据结构之 Map Map介绍 Map(映射)是ES6引入的一种数据结构。这是一种存储键值对列表很方便的方法,类似于其他编程语言的哈希表。 HashMap(哈希表),也叫做散列表。是根据关键码值 key -> value而直接进行访问的数据结构。它通过把关键码值映射到表中一个位置来访问记录,有一 阅读全文
posted @ 2022-08-24 09:01 笔下洛璃 阅读(1552) 评论(0) 推荐(0) 编辑
摘要: JS数组去重的十种方法 1、利用ES6 Set数据类型去重(ES6中最常用) function unique (arr) { return Array.from(new Set(arr)) } var arr = [1,1,'true','true',true,true,15,15,false,fa 阅读全文
posted @ 2022-08-23 08:56 笔下洛璃 阅读(204) 评论(0) 推荐(1) 编辑
摘要: 变量提升、作用域、arguments、instanceOf 变量提升 JS是单线程语言,所以执行肯定是顺序执行。但并不是逐行分析和执行,而是一段一段地分析执行,会先进行编译阶段然后才是执行阶段。在编译阶段,代码真正执行前的几毫秒,会检测到所有的变量和函数声明,所有这些函数和变量声明都被添加到名为Le 阅读全文
posted @ 2022-08-22 08:41 笔下洛璃 阅读(28) 评论(0) 推荐(0) 编辑