前端面试题
文章平均质量分 80
收集本人觉得比较好的面试题,也方便日后阅读
Penk是个码农
工作了那么多年,之前一直没写博客,一个怕误导别人,一个怕发布一些垃圾文章影响IT环境。
现在开始逐渐写一些文章,一方面是自己记录知识点,一方面是希望能帮助一些有需要的人。
有错误的或者好的建议,大大们就不要吝啬笔墨,望共同进步 ;)
展开
-
web前端面试-- 模块化的几种规范CMD、COMMONJS、AMD、ESM以及UMD模块化解决方案,export *的写法
JavaScript 目前有四种模块规范:CMD、COMMONJS、AMD 和 ESM。CMD 是 JavaScript 最早的模块规范,它使用 require 函数来导入模块。CMD 模块是 JavaScript 最早的模块规范,但它存在一些缺陷,比如模块的导入顺序不受控制,模块的依赖关系无法被管理,等等。COMMONJS 是 JavaScript 模块的另一种,它使用 require 函数来导入模块。COMMONJS 模块在解决CMD。原创 2023-12-13 18:48:05 · 1542 阅读 · 0 评论 -
web前端面试--浏览器兼容性问题、HTML5新标签、CSS媒体查询、CSS-hack、浏览器厂商前缀、优雅降级、渐进增强、
不同浏览器或者相同浏览器不同的版本内核,都可能引起兼容性问题,不只是dom,还有css以及js。原创 2022-08-22 15:48:47 · 3017 阅读 · 0 评论 -
web前端面试-- window.innerWith、window.outerWidth、clientWidth、offsetWidth、scrollWidth的区别
它是元素内容区域的宽度,可以通过CSS的width属性来设置。例如,如果一个div元素的宽度为200px,内边距为10px,那么它的clientWidth就是200px - 2 * 10px = 180px。原创 2023-11-06 18:01:57 · 1099 阅读 · 0 评论 -
web前端面试-- IEEE754标准JS精度丢失问题0.1+0.2!=0.3、0.2+0.3==0.5 十进制转二进制讲解
IEEE754标准下,浮点数是用二进制进行存储运算的,部分十进制小数转成二进制是一个无限循环的数值,运算的时候会造成精度丢失。在浏览器环境中以IEEE754存储的0.1、0.2、0.3 咱们可以直接在控制台打印出来。好家伙,不按套路出牌,之前也没深究,但是既然重新学习一下,就记录一下,免得又忘记了。面试官是问你0.1+0.2,或者0.2+0.3的问题吗?不是的,要是下次有个作妖的问你,0.x+0.y呢?方法:小数乘2取整,直到没有小数位置,正向排列。方法:整数除2取余,直到整数倒叙排列。web前端面试--原创 2023-10-19 21:51:06 · 565 阅读 · 0 评论 -
web前端面试-- 手写原生Javascript方法(new、Object.create)
通过Object.create,可以联想到之前讲的JS的。web前端面试-- 手写原生Javascript方法(new、Object.create)原创 2023-10-18 16:49:39 · 287 阅读 · 0 评论 -
web前端面试-- http的各个版本的区别(HTTP/0.9、HTTP/1.0、HTTP/1.1、HTTP/2.0、HTTP/3.0)
它引入了持久连接的概念,允许多个请求/响应通过同一个连接进行传输,减少了连接建立的开销。它支持多种HTTP方法(GET、POST等),引入了请求头和响应头的概念,还支持状态码和错误处理。HTTP/1.0是一个非持久连接的协议,每个请求/响应都需要建立一个新的连接。HTTP/3基于QUIC协议,采用了UDP传输,相比于TCP传输,具有更好的性能和可靠性。它解决了HTTP/2中的一些性能问题,并提供了更快的加载速度。HTTP/2采用了二进制协议,引入了头部压缩、多路复用和服务器推送等新特性,提高了性能和效率。原创 2023-10-18 10:26:01 · 792 阅读 · 0 评论 -
web前端面试-- 在 JavaScript 中 bind , apply 和 call 的区别
在 JavaScript 中, bind , apply 和 call 都是用于改变函数执行上下文的方法。这些方法允许您在 JavaScript 中更灵活地控制函数的执行上下文。原创 2023-10-12 12:08:48 · 225 阅读 · 0 评论 -
web前端面试-- js深拷贝的一些bug,特殊对象属性(RegExp,Date,Error,Symbol,Function)处理,循环引用weekmap处理
web前端面试-- js深拷贝的一些bug,特殊对象属性(RegExp,Date,Error,Symbol,Function)处理,循环引用weekmap处理。在JavaScript中,深拷贝和浅拷贝是两种不同的对象复制方式。浅拷贝是指将一个对象的引用复制给另一个对象,这意味着两个对象将共享相同的内存地址。当修改其中一个对象时,另一个对象也会受到影响。深拷贝是指创建一个新的对象,并将原始对象的所有属性逐个复制到新对象中。这意味着两个对象是完全独立的,修改其中一个对象不会影响另一个对象。原创 2023-10-11 10:58:11 · 1083 阅读 · 0 评论 -
web前端面试-- js 如何快速交换2个变量的值
在JavaScript中,您可以使用多种方法快速交换两个变量的值。这些方法都可以快速交换两个变量的值。原创 2023-10-11 10:21:17 · 309 阅读 · 2 评论 -
web前端面试--递归(斐波那契数列),附带带缓存的优化版本
斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家莱昂纳多·斐波那契(Leonardo Fibonacci)以兔子繁殖为例子而引入,故又称“兔子数列”,其数值为:1、1、2、3、5、8、13、21、34……在数学上,这一数列以如下递推的方法定义:F(0)=1,F(1)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 2,n ∈ N*)。原创 2023-08-11 09:42:58 · 694 阅读 · 0 评论 -
web前端面试--节流的原理以及实现(附带源码)
web前端面试--节流的原理以及实现(附带源码)。限制单位时间内可以执行操作的次数。一开始,只要触发了,就开始计时,在单位时间内,无论再次触发也不会执行操作,只有等到单位时间结束,执行了操作,才会开始新的一轮。原创 2022-11-23 02:38:56 · 435 阅读 · 0 评论 -
web前端面试--防抖的原理以及实现(附带源码)
防抖就是单位时间内,如果只有一个操作,时间到了就执行;如果在单位时间内,你又操作了,那就需要重新计时,以保证最后一次操作是使用者本身已经确定完毕的。原创 2022-11-11 20:24:08 · 791 阅读 · 1 评论 -
web前端面试--路由中history与hash的区别(附带源码)
history和hash都是利用浏览器的两种特性实现前端路由;代码示例用原生HTML,不用vue框架实现。- hash 能兼容到IE8, history 只能兼容到 IE10,histroy兼容性不好。- hash本来是拿来做页面定位的,如果拿来做路由的话,原来的锚点功能就不能用了。- 如果后台没有配置,刷新可能导致404。(后面源码可重现)- hash 的传参是基于 url 的,如果要传递复杂的数据,会有体积的限制,而history模式不仅可以在url里放参数,还可以将数据存放在一个特定的对象中。原创 2022-11-10 20:39:52 · 546 阅读 · 0 评论 -
web前端面试--(JS)箭头函数和普通函数的区别
从网上找到一些箭头函数跟普通函数的区别,咋们现在来进行认证,打横线就是错误的地方,所以说网上的东西未必都是对的,要多探讨一下...:)原创 2022-09-02 12:26:50 · 1133 阅读 · 0 评论