this指向-箭头函数this指向详解
一、思考: 1.为什么不能使用箭头函数来定义methods? 答:因为箭头函数没有自己的作用域,绑定的是父级作用域的上下文, 如果使用箭头函数,那么在获取data里面的数据的时候,this指向window导致访问失败 原因:这跟this的绑定规则有关,在箭头函数中不绑定this,但是如果箭头函数使用了this,会往上层作用域去找,注意:methods对象并不是作用域(所有的对象都没有作用域) 2.不使用箭头函数的情况下,this到底指向...
js 如何判断对象自身为空
前言 如何判断一个对象为空是我们在开发中经常会遇到的问题,今天我们来聊聊几种经常使用的方法,以及在不同的场景下我们如何去使用。 1\. JSON.stringify 方法可以使对象序列化,转为相应的 JSON 格式。 缺点:如果存在 、任意的函数以及 symbol 值,在序列化过程中会被忽略(出现在非数组对象的属性值中时)或者被转换成 (出现在数组中时)。 如下示例: 2\. for in 配合 hasOwnProperty 使用 对当...
能说说你对宏任务 和 微任务 的理解吗
一、背景 js 是一种单线程语言,只有一条通道,那么在任务多的情况下,就会出现堵塞,这种情况下就产生了 多线程,那么就产生了同步任务和异步任务。 同步任务: 在主线程上排队执行的任务,只有前一个任务执行完毕,才能执行后一个任务。是 由 js 执行栈/回调栈执行 的 异步任务: 不进入主线程、而进入任务队列的任务,当主线程中的任务运行完成了,才会从任务队列中取出异步任务,放入主线程中执行 二.宏任务和微任务 微任务和宏任务都是异步任务,它...
请自信的大声告诉面试官forEach跳不出循环
如果面试官,或者有人问你foreach怎么跳出循环,请你大声的告诉ta,跳不出!!!!!!!!!! 为什么呢? 先看看foreach大体实现。 两个输出的结果是一样的没啥问题,这就是foreach的大体实现,既然都知道了它的实现,那么对它为什么跳不出循环♻️应该都知道了,再不清楚的话,再看一下下面的例子。 在demo2函数里面调用demo函数,demo函数的return能阻止demo2函数下面的执行吗?很明显不行啊,demo函数里的re...
面试官:tree-shaking的原理是什么?
前言 在前端面试的过程中, 一直是考察面试者能力的一个重点,而在我们常用的项目打包工具中,无论是 还是 ,都具备一项很强大的能力—— ,所以面试官也常常会问到 的原理是什么,这时我们该如何回答呢?其实核心原理就是 。 在前端开发中,其实 的应用有很多,比如我们前端项目的打包工具 、代码检查工具 ,代码转换工具 都依赖了 的语法分析和转换能力。 AST简单介绍 是 的缩写,这玩意儿的全称叫 ,它可以用来描述我们代码的 。 举个例子: 我这...
2023前端面试题总结:JavaScript篇完整版
JavaScript有哪些数据类型,它们的区别? 1. (数字): 用于表示数值,可以是整数或浮点数。例如:42、3.14。 2. (字符串): 用于表示文本数据,可以用单引号、双引号或反引号括起来。例如:"Hello"、'World'、 。 3. (布尔): 用于表示逻辑值,只有两个可能的值:true和false。 4. (未定义): 表示变量声明了但没有赋值,或者访问不存在的属性时返回的值。 5. (空值): 表示一个空值或者不存在...
for in 和 for of 的区别
在对数组或对象进行遍历时,我们经常会使用到两种方法: 和 ,那么这两种方法之间的区别是什么呢?让我们来研究研究 简单来说就是它们两者都可以用于遍历,不过 遍历的是数组的索引( ),而 遍历的是数组元素值( ) 先说说 for in 更适合遍历对象,当然也可以遍历数组,但是会存在一些问题, 比如: 索引为字符串型数字,不能直接进行几何运算 遍历顺序有可能不是按照实际数组的内部顺序 使用 会遍历数组所有的可枚举属性,包括原型,如果不想遍历原...
浅析 Map 和 WeakMap 区别以及使用场景
📢 愿你我一起在这肆意生活里大放光彩 📢 在阅读红宝书时遇到了 这个关键字,第一次见感觉没啥用,是我见识浅了,其实还是有点用的,有多大我不知道(快跑) 希望这一篇文章能让你对 有更好的理解,或者能够帮你理解 和 这篇文章会先从 再到 一、为什么是 Map ? 1\. 传统对象结构 本质上是一个键值对的集合。和传统对象结构相比,传统的对象只能用 字符串作为键名 ,这就在使用上造成了很大的限制了。这也是新增 的原因之一。 在上面的代码中...
必备八股文——HTML&CSS
src和href的区别 和 都是用来加载外部资源,区别如下 src 当浏览器解析到该元素时,会暂停其他资源的加载和处理,直到该资源加载完成。 它会将资源内容嵌入到当前标签所在的位置,将其指向的资源下载应用到文档内,如 脚本等。常用在 、 、 等标签。 href 指向外部资源所在的位置,和当前元素位置建立链接,当浏览器解识别到它指向的位置,将其下载的时候不会阻止其他资源的加载解析。常用在 、 标签。 HTML5新增特性 新增语义化标签,...