面试中常见手写js题目
功夫不负有心人,只要基础打的牢,一切梦想都可以成真。面试高峰期已经度过,可是我还在被窝刷着面试题,虽然说是为了生活,但是我更多的还是在学习中寻找快乐。最近写了一下常见的面试手写题目,这里就列举5个常见的JavaScript手写功能,有的是在学习中自己写的,也算是学习的笔记吧,如果有不对的地方,欢迎评论区指正。
1、防抖和节流1.1、防抖函数防抖,指的是在触发函数之后,函数在指定时间之内只会执行一次,如果在规定时间之内再次触发函数,就会重新计算函数的执行时间。简单来说,就是如果多次触发函数,每次间隔的时间不超过规定时间,他只会执行最后一次。
代码实现
函数逻辑:设置一个定时器,当重复调用函数的时候,每一次都会清除定时器,然后重新定时,在规定时间内没有重复调用,就会执行剩下的逻辑。
12345678910111213141516// fnc是想要要执行的函数,delay是防抖规定的时间function debounce(fnc,delay){ // 定义一个定时timer let timer = null; // 闭包函数确保timer不会被销毁 return functi ...
npm run XXX 到底发生了什么
运行npm run XXX 的时候到底发生了什么?相信这个问题在前端面试的时候经常遇到,虽然我没有面试,但是在刷面试题的时候,突然遇到问个问题,一开始还没咋留意,想想无非就是找到package.json文件里的scripts找到对应的命令去执行,就比如我们在运行npm run serve的时候,就是在执行vue-cli-service-serve这条命令。
12345678{ 'name': 'h5', 'version': '1.0.0', 'private': true, scripts: { 'serve': 'vue-cli-service-serve' }}
这点常识学习过前端的人应该都知道,我觉得这就是所谓答案了吧,但是我发现我还是太天真了,真的所有东西都太片面了,想要真正了解一个东西的作用,不能光从他带来的结果分析,要从整件事情的过程全面分析,完完全全的了解他的机制以及目的才能真正了解他的作用 ...
Vue 响应式原理
Vue 视图更新原理Vue 的视图更新原理主要涉及的是响应式相关API Object.defineProperty 的使用,它的作用是为对象的某个属性对外提供 get、set 方法,从而实现外部对该属性的读和写操作时能够被内部监听,实现后续的同步视图更新功能
一、实现响应式的核心API:Object.definePropertyObject.defineProperty的用法介绍:MDN-Object.defineProperty,下面是模拟 Vue data 值的更新对API接口进行初步了解
1234567891011121314151617181920// 模拟 Vue 中的 dataconst data = {}// 对外不可见的内部变量let _myName = 'Yimwu'// 响应式监听 data 中的 nameObject.defineProperty(data, "name", { // 使用 data.name 时 get 方法被调用,返回内部存储变量值 get: () => & ...