call和apply

call 和 apply共同点最主要的作用,是改变 this 的指向共同点是,都能够改变函数执行时的上下文为何要改变执行上下文?A 对象有一个方法,而 B 对象因为某种原因,也需要用到同样的方法,那么这时候我们是单独为 B 对象扩展一个方法呢,还是借用一下 A 对象的方法呢?当然是借用 A 对象的啦


队列

js是单线程语言,对于异步操作只能先把它放在一边,按照某种规则按先后顺序放进一个容器(其实就是存入宏观任务和微观任务队列中),先处理同步任务,再处理异步任务。异步任务分为 [ 宏观任务队列、微观任务队列 ]按照规定,能发起宏观任务的方法有:script(整体代码)、setTimeout、setInt


箭头函数与普通函数

箭头函数与普通函数(function)的区别是什么?构造函数(function)可以使用 new 生成实例,那么箭头函数可以吗?为什么?箭头函数是普通函数的简写,可以更优雅的定义一个函数,和普通函数相比,有以下几点差异:函数体内的 this 对象,就是定义时所在的对象,而不是使用时所在的对象;不可以


常见问题(三)

下面代码中 a 在什么情况下会打印 1?var a = ?;if(a == 1 && a == 2 && a == 3){ console.log(1);}从该代码当中,不难看出。变量a,必然不是一个字面量,比如数值或字符串,因为 a 不能同时等于多个值。。具体的看一


常见问题(二)

简述浏览器缓存读取规则浏览器缓存可以优化性能,比如直接使用缓存而不发起请求,或者发起了请求但后端存储的数据和前端一致,则使用缓存从而减少响应数据。缓存位置Service workerService worker是运行在浏览器背后的独立线程,一般可以用来实现缓存功能。使用Service worker的


操作题(一)

某公司 1 到 12 月份的销售额存在一个对象某公司 1 到 12 月份的销售额存在一个对象里面 如下:{1:222, 2:123, 5:888},请把数据处理为如下结构:[222, 123, null, null, 888, null, null, null, null, null, null,


Map查询问题

Map查询let map = new Map();map.set({key: '这是key'}, {value: '这是value'});console.log(map);let keyObject = {key: "这是key"};map.set(keyObject);// u


instanceof 和 typeof

typeof 实现原理一个 js 的变量,在它的底层实现中,它的类型信息是怎么实现的呢其实,js 在底层存储变量的时候,会在变量的机器码的低位1-3位存储其类型信息000:对象010:浮点数100:字符串110:布尔1:整数但是,对于 undefined 和 null 来说,这两个值的信息存储是有点


JavaScript常见问题(一)

防抖和节流的区别及实现防抖触发高频事件后 n 秒内函数只会执行一次,如果 n 秒内高频事件再次被触发,则重新计算时间。function debounce(fn, timing) { let timer; return function() { clearTimeout(timer);