前端面试
糊涂面疙瘩
这个作者很懒,什么都没留下…
展开
-
从头认识JavaScript的事件循环模型
1. JS的运⾏机制 介绍 众所周知JavaScript是⼀⻔单线程的语⾔,所以在JavaScript的世界中默认的情况下同⼀个时间节点只能做⼀件事情,这样的设定就造成了JavaScript这⻔语⾔的⼀些局限性,⽐如在我们的⻚⾯中加载⼀些远程数据时,如果按照单线程同步的⽅式运⾏,⼀旦有HTTP请求向服务器发送,就会出现等待数据返回之前⽹⻚假死的效果出现。因为JavaScript在同⼀个时间只能做⼀件事,这就导致了⻚⾯渲染和事件的执⾏,在这个过程中⽆法进⾏。显然在实际的开发中我们并没有遇⻅过这种情况。 关于同原创 2022-01-13 16:26:01 · 355 阅读 · 0 评论 -
谈谈你对生命周期的理解?在created和mounted这两个生命周期中请求数据有什么区别呢?
一、什么是生命周期? 我理解的生命周期就是:从出生到死亡的过程 二、生命周期有哪些? Vue生命周期总共可以分为8个阶段:创建前后, 载入前后,更新前后,销毁前销毁后 生命周期 描述 beforCreate 组件实例被创建之前 Created 组件梳理被创建完成 beforMount 组件被挂载之前 Mounted 组件挂载完成 beforeUpdate 组件数据更新之前 Updated 件数据更新之完成 beforeDestroy 组件被销毁之前 Destro原创 2021-11-24 16:49:11 · 2993 阅读 · 0 评论 -
vue中为什么不建议v-if 和v-for一起使用?
一、作用 v-if 指令用于条件性地渲染一块内容。这块内容只会在指令的表达式返回 true值的时候被渲染 v-for 指令基于一个数组来渲染一个列表。v-for 指令需要使用 item in items 形式的特殊语法,其中 items 是源数据数组或者对象,而 item 则是被迭代的数组元素的别名 在 v-for 的时候,建议设置key值,并且保证每个key值是独一无二的,这便于diff原创 2021-11-03 17:21:00 · 237 阅读 · 0 评论 -
JS 字符串的常用操作方法有哪些?
操作方法 我们也可将字符串常用的操作方法归纳为增、删、改、查 1. 增 这里增的意思并不是说直接增添内容,而是创建字符串的一个副本,再进行操作 除了常用+以及${}进行字符串拼接之外,还可通过 concat concat 用于将一个或多个字符串拼接成一个新字符串 let stringValue = "hello "; let result = stringValue.concat("world"); console.log(result); // "hello world" console.log原创 2021-08-10 14:20:32 · 405 阅读 · 0 评论 -
vue的响应式原理是怎样实现的?
Vue 的异步更新机制的核心是利用了浏览器的异步任务队列来实现的,首选微任务队列,宏任务队列次之。 当响应式数据更新后,会调用 dep.notify 方法,通知 dep 中收集的 watcher 去执行 update 方法,watcher.update 将 watcher 自己放入一个 watcher 队列(全局的 queue 数组)。 然后通过 nextTick 方法将一个刷新 watcher 队列的方法(flushSchedulerQueue)放入一个全局的 callbacks 数组中。 如果此时浏览器原创 2021-07-23 17:18:47 · 227 阅读 · 0 评论 -
Vue 的异步更新机制是如何实现的?
响应式的核心是通过 Object.defineProperty 拦截对数据的访问和设置 响应式的数据分为两类: 2.1:对象,循环遍历对象的所有属性,为每个属性设置 getter、setter,以达到拦截访问和设置的目的,如果属性值依旧为对象,则递归为属性值上的每个 key 设置 getter、setter 2.1.1访问数据时(obj.key)进行依赖收集,在 dep 中存储相关的 watcher 2.1.2设置数据时由 dep 通知相关的 watcher ..原创 2021-07-18 15:07:16 · 674 阅读 · 0 评论 -
call与apply与bind的用法和区别
call与apply与bind 1.call:函数名.call(this的指向,参数1,参数2) function fun(){ console.log(this); } fun();//window fun.call(document); fun.call(1); //Number {1} fun.call("1"); //String {"1"} var name = "杜甫"; //window.nam原创 2021-06-08 17:40:33 · 64 阅读 · 0 评论