首页
首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
每日一题
青天诀
创建于2022-10-12
订阅专栏
每日一道前端面试题,附带详细答案解析,在题目中学习前端知识点,记忆更牢固,理解更深刻。
等 19 人订阅
共27篇文章
创建于2022-10-12
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
【第27题】chatGPT实现一个带并发限制的异步调度器Scheduler
面试题目(抖音) 答案解析 这道题目是在面试抖音的时候遇到的,后面搜索了下,找到了chatGPT的实现方案,看了下还是很牛批的。
【第26题】console的异步性怎么理解?
面试题目(字节): 答案解析: console我一直以为是同步执行的,直到在一本书上看到,才了解到console本身有异步的特性。虽然在平常开发中经常使用console,但是真的没有意识到它的异步性。
【第25题】node模块的循环加载
这个题目涉及node模块的缓存知识,第一次加载某个模块时,Node会缓存该模块。以后再加载该模块,就直接从缓存取出该模块的module.exports属性。 上面代码中,连续三次使用require命令,加载同一个模块。第二次加载的时候,为输出的对象添加了一个message属性。…
【第24题】三条路径理清原型链(定格记忆篇)
原型和原型链,是javascript这门语言中的重要概念,同时也是面试过程中的必考知识点。小编对它也是日常迷惑,每次都需要查资料、重新理逻辑,近日重新换了个角度思考,对原型和原型链有了更加深刻的认识和理解。 有一些比较重要的知识点,往往容易被忽略,清醒的认识下面的几个点,对于后…
【第23题】排列组合
高中的时候数学课上(或者小学奥数)学的排列组合,大家还记得吗?排列比较简单,就不提了。那么,组合怎么用程序来实现呢? 针对这道题目,组内同事分别给出了以下的解法。 1. 暴力破解法 2. 标准答案 3. 高性能解法 第二种解法和第三种解法,思想大致一样。下面主要针对第三种解法进…
【第22题】理解 JS 模块化
这道题目主要考察对JS模块化发展历程的了解,以及发展中出现的一些规范和技术的掌握。 模块化是每一种语言膨胀的毕竟之路,JS 也不例外,从原来的不支持模块化,到现在支持模块化,经历了一个曲折的过程。 它可以帮助开发者拆分和组织代码,方便复用功能,降低项目开发的复杂度,提高可维护性…
【第21题】数组随机排序的三种方法
给定一个数组,对其进行随机排序。示例如下: 这道题目在面试中也是常考的,变相考察思维逻辑、数组操作API的熟练程度等方面,题目难度为Easy。 我能想到的应用场景就是:接口返回若干道题目,希望每次进入页面,题目的展示顺序是随机的。 下面用三种方法,实现数组随机排序,三种方法各有…
【第20题】npm run xxx 的执行过程
面试题目(字节): 答案解析: 以npm run start为例 最常见的就是"start": "vue-cli-service serve", 执行过程: npm会创建一个shell脚本; 在she
【第19题】vue for循环中key有什么作用
题目描述: 答案解析: 这道题目实际考察的是对虚拟dom对象中diff算法的理解。 diff算法的本质是:找出新旧两个虚拟dom对象之间的差异,目的是尽可能复用节点,提高性能。 key的主要作用就是在
H5页面不同屏幕适配:纯CSS方案
我正在参加「掘金·启航计划」 背景 UI给出的设计稿,一般是以iphone6屏幕大小为准,也就是宽高为375 * 667,激进一些的还会使用414 * 736的设计稿。在其他不同尺寸的屏幕上适配的问题
node实例推导浏览器的渲染机制
浏览器的渲染原理是每个前端开发工程师的必修课,网络上也有很多这方面的文章,但大多数只是告诉你浏览器表现就是这样的,并没有一个直观的认识,让人读完就瞬间忘却。 所以小编决定通过node实践来模拟浏览器渲染时的一些场景,对市面上的文章的一些观点进行验证,希望能够加深自己的认识。 三…
完爆scroll事件,交叉观察器 IntersectionObserver 在千万级PV页面中的应用实践
网页开发时,常常需要判断某个元素是否进入了"视口"(viewport),即用户能不能看到它,然后执行相应的逻辑。 常见的方法是监听scroll事件,调用元素的getBoundingClientRect方法,得到它对应于视口左上角的坐标,再判断是否在视口之内。这种方法的缺点是,由…
Vue scoped与深度选择器deep的原理
JS引入模块化概念后,变得更易于开发维护,但是css样式由于其特殊性,一直没有实现模块化,scoped的出现就是为了实现样式模块化,其本质利用属性选择器实现的一种伪模块化,并非真正意义上的模块化,但这已经让css模块化前进了一大步,要知道JS的模块化也是以这种方式开始的,比如早…
第14题 - new操作符内部实现原理
new 操作符经常被用到,用面向对象语言们通用的观点来看:new 是用来实例化一个类,从而在内存中分配一个实例对象。 如果该函数没有返回值或者返回值不是对象,则返回创建的对象,如果返回值是对象,则直接返回该对象。 Person本身是一个普通函数,当通过new来创建对象时,Per…
第13题- 链式调用和argument
arguments对象是函数(非箭头)内部都可以访问到的局部变量,该对象是一个类数组对象,具有数组的length,索引特性。 以上两种实现方式,涉及的知识点基本一样,欢迎读者留言其他实现方式。
第12题-无处不在的排序算法
这道题目实际就是数组排序的变种。只要将数组排序好,就能找到对应的值。下面列出能想到的一些方案: 1. Array.prototype.sort() 利用 JavaScript 标准库中提供的 sort()方法,对数组元素进行从大到小排序。 由于不同的 JavaScript 引擎…
【前端名狮】变量提升和函数提升
1. 变量提升 在ES6之前,JavaScript没有块级作用域(一对花括号{}即为一个块级作用域),只有全局作用域和函数作用域。变量提升即将变量声明提升到它所在作用域的最开始的部分。下面两个示例包含了变量提升的两种情况(全局作用域和函数作用域): 2. 函数提升 js中创建函…
第10题- 你不知道的delete操作符
在 JavaScript 中 delete 操作符用于删除对象的某个属性,与直观的看法不同,delete操作符与直接释放内存无关,内存管理是通过断开引用来间接完成的。 delete成功删除的时候返回 true,否则返回 false。可删除对象如下描述:
第9题-[1,2,3]map(parseInt)的结果是什么?
this:可选。对象作为该执行回调时使用,传递给函数,用作 "this" 的值。如果省略了 thisValue ,"this" 的值为 "undefined"。 parseInt() 函数可解析一个字符串,并返回一个整数。 string必需。要被解析的字符串。 radix 可选…
第8题-浏览器HTTP请求并发数和TCP连接的关系
浏览器对并发请求的数目限制是针对域名的,即针对同一域名(包括二级域名)在同一时间支持的并发请求数量的限制。如果请求数目超出限制,则会阻塞。因此,网站中对一些静态资源,使用不同的一级域名,可以提升浏览器并行请求的数目,加速界面资源的获取速度。 在HTTP/1.0中,一个http请…
下一页