前端JS面试题
文章平均质量分 53
关于前端面试题的精细讲解与总结
临在❀
这个作者很懒,什么都没留下…
展开
-
前端缓存方法有哪些?cookie有哪些属性?
Cookies 是由浏览器存储的小型数据片段,并与特定的网站关联。选择何种缓存方法取决于应用的具体需求,例如数据的大小、持续时间、是否需要离线访问等。以上只是一些常见的与 Cookie 相关的面试题。当然,面试时的问题可能会根据公司、职位和面试官的经验而有所不同。每个 Cookie 都有一个唯一的名称,以区分同一域名下的其他 Cookie。如果未设置,默认为’/',即该域名下的所有路径都可以访问。:指定哪个域名下的页面可以访问该 Cookie。:这是一个相对较新的属性,用于声明 Cookie。原创 2023-09-04 15:25:17 · 1030 阅读 · 0 评论 -
js取整的方法,parseInt第二个参数是什么,数组转字符串的方法,parseInt的用法
是 JavaScript 中的一个内置函数,它可以解析一个字符串并返回一个整数。它的常见用途是从字符串中提取数字,尤其是当字符串开始于数字但可能包含后续的非数字字符时。注意:始终指定基数可以避免混淆,因为某些字符串(如以"0x"开头的字符串)可能被解析为其他进制。,表示进制,表示要解析的数字的基数。基数可以是2-36之间的任何整数。:与0进行按位或操作可以取整,但只适用于32位整数。:将数组转换为由逗号分隔的字符串。希望这些信息能帮助你更好地理解。:将字符串转换为整数。原创 2023-09-04 14:59:37 · 404 阅读 · 0 评论 -
ts的理解,type和interface区别,泛型怎么理解
在 TypeScript 中,type和interface都用于定义自定义类型,但它们有一些不同之处,适用于不同的场景。interface。原创 2023-07-31 16:54:52 · 288 阅读 · 0 评论 -
js取整的方法,parseInt第二个参数是什么
需要根据具体的需求选择适合的取整方法。而对于数值的取整操作,可以使用 Math.floor、Math.ceil 或 Math.round 函数。使用 parseInt 函数:parseInt 函数可以将字符串转换为整数,并进行取整操作。使用 Math.floor 函数:Math.floor 函数可以向下取整为最接近的整数。使用 Math.round 函数:Math.round 函数可以进行四舍五入取整操作。使用 Math.ceil 函数:Math.ceil 函数可以向上取整为最接近的整数。原创 2023-09-04 14:02:41 · 262 阅读 · 0 评论 -
分页怎么实现,假如不给你total值,你可以实现分页吗,你觉得一个分页组件的核心要素是什么
估算总页数:如果你有一定的数据量信息,但无法准确获得总数,你可以通过估算总页数来实现分页导航。然后在分页导航上展示这个估算的总页数,并允许用户通过导航按钮切换不同的“估算页”。通过不断加载数据的方式,实现逐步展示数据的效果。值的情况下,你可以按照固定的页大小加载数据,并且不显示分页导航。需要注意的是,这些近似的分页实现方式可能无法提供精确的分页导航和确切的总页数信息。使用固定的页大小:假设每页显示固定数量的数据,比如每页显示10条数据。当前页数:记录当前所处的页码,即当前显示的是第几页的数据。原创 2023-09-04 14:00:12 · 370 阅读 · 0 评论 -
请你说说instanceof 与 typeof的区别
需要注意的是,变量的类型和是否是特定类的实例是不同的概念。变量的类型表示变量所包含的值的类型,而是否是特定类的实例表示一个对象的创建方式和对象的原型链。运算符时,它会检查对象是否是目标类的实例或其父类的实例。时,建议使用相等运算符(===)进行检查,而不是依赖于。无法与任何构造函数进行比较,也无法被视为任何类的实例。运算符检查的是变量是否是特定类的实例。是一个特殊的原始值,它被认为不是对象的实例。不属于任何类或构造函数的实例,所以。不是对象,它没有原型链,因此。运算符检查的是变量的类型,而。原创 2023-05-12 19:21:06 · 1189 阅读 · 0 评论 -
forEach和map有什么区别,使用场景?
都是数组的常用方法,但它们有不同的目的和用法。当选择使用哪个方法时,考虑你的需求。当你想对数组的每个元素执行某些操作,并且不需要返回任何值时,使用。不直接改变原始数组,但可以在回调中更改原始数组"的意思。在这个例子中,我们明确地使用了数组的索引来修改原始数组。当你需要基于现有数组的每个元素创建一个新数组时,使用。遍历数组时,它不会自动更改数组的内容。如果你想根据当前数组生成一个新数组,则使用。的回调函数中,你可以手动修改原始数组。尽管我们尝试将每个项乘以2,但原始数组。因此,数组的内容已经更改。原创 2023-08-26 15:59:33 · 1140 阅读 · 0 评论 -
柯里化详解
柯里化(Currying)是一种函数式编程技术,它将一个接受多个参数的函数转换为一系列接受单一参数的函数。柯里化的主要目的是让函数更易于复用和组合。通过柯里化,你可以创建一些预先填充了部分参数的函数变体,并在后续调用中重用它们。这种特性使得柯里化函数非常适合用于创建可配置的函数和简化代码。提高函数的复用性:通过创建部分应用的函数变体,可以重用某些已经设置好的参数,从而减少重复代码。函数组合:柯里化有助于组合多个简单的函数以创建更复杂的函数。这使得代码更具可读性和可维护性。延迟计算。原创 2023-05-14 20:01:11 · 556 阅读 · 0 评论 -
内存泄漏的场景
例如,当 DOM 元素引用了一个 JavaScript 对象,该对象又引用了 DOM 元素,这就形成了一个循环。第三方库:当使用第三方库来处理 DOM 操作时,库可能会在内部保存对 DOM 元素的引用。在这种情况下,手动清理事件监听器和库中的引用可能是有必要的。老旧浏览器:在较旧的浏览器中,如 IE6 和 IE7,事件监听器的自动清除可能不会像现代浏览器那样有效。在这些浏览器中,手动移除事件监听器可能仍然是一种实践。在现代浏览器中,当元素被销毁时,与其关联的事件监听器通常会被自动清除,从而避免内存泄漏。原创 2023-05-13 00:59:51 · 119 阅读 · 0 评论 -
前端面试高频手写代码题
第三种方法通过正则表达式(捕获组,匹配不在集合中的字符)解析标准的query-string键值对字符串,然后巧妙地利用 string.replace方法的第二个参数可以作为回调函数进行一些操作,得到最终结果,写起来是最简洁的,但是写正则真的是头疼。第一种方法主要是利用字符串分割和数组操作,拿到关键的字符串,再做一下类型转换,组成最终的结果。第二种方法利用了 Web API 提供的 URL 和 URLSearchParams 对象实现的,用起来非常简单,缺点是兼容性不是很完美,不兼容IE系列浏览器。原创 2023-04-13 21:24:33 · 769 阅读 · 0 评论 -
深浅拷贝--指针指向的是内存地址
obj3指向的这块内存区,后面obj2.y = 9;了之后,obj 与obj2里面的y都改变了,因为obj与obj2指向的连续的内存区改变了,里面已经不包括{z:2}了,本来{z:2}要被内存释放掉的,但是被obj3指到到了,所以obj3还保存着{z:2},并且obj3还往里面加了个x:0。obj指向的是一块连续的内存区,内存区的内容是{ x:1,y:{z:2}}obj3指向的是一块内存区,内容是{z:2}考察的点是:深浅拷贝–指针指向的是内存地址。obj2指向的也是这块内存区。原创 2023-04-13 01:22:48 · 70 阅读 · 0 评论 -
VDOM(虚拟DOM)真的很快吗?
Virtual DOM,虚拟DOM。数据驱动视图,技术方案:VDOM。原创 2023-04-06 03:22:10 · 426 阅读 · 0 评论 -
javaScript基础面试题 ---this指向+原型的考题
实际上,我们正在访问 Foo 函数上的静态方法 getName,因此我们直接调用了 Foo.getName,输出 2。Foo()函数里面的getName = function () {console.log(1)}前面没有this,所以它还是个全局变量,没有挂的元素构造函数Foo()上,所以要去函数原型上找,原型上的是3,所以输出3。不是4就是5,最后一个函数使用的是函数声明的方式,倒数第二个函数使用的是声明变量的方式,声明变量>函数声明,所以两者共存的时候,优先使用声明变量,所以不是5而是4。原创 2023-04-01 05:29:36 · 404 阅读 · 0 评论 -
javascript的严格模式与有什么特点?
严格模式创设额外的作用域,正常模式下,eval作用域取决于它处于全局作用域还是函数作用域。严格模式下,eval语句本身就是一个作用域,不再生成全局变量,生成的变量只能用于eval内部。弊端:代码不易阅读,易混淆,程序在查找变量值时,先从指定的对象里找,那些不是指定对象的变量查找起来会很慢。1、正常模式下,对一个对象的只读属性进行赋值,不会报错,只会默默地失败;2、严格模式下,对一个使用getter方法读取的属性进行赋值,会报错。使用了with之后,在with里面x就专指o里面的x。4、删除不可删除的属性。原创 2023-03-29 04:16:50 · 135 阅读 · 0 评论 -
Js中for in 和for of的区别
1原创 2023-03-13 17:30:02 · 319 阅读 · 0 评论 -
什么时候不能使用箭头函数?
1原创 2023-03-13 05:03:00 · 50 阅读 · 0 评论 -
防抖和节流
在这种情况下,由于timer变量始终不为null,节流函数中的条件if (timer) return将一直成立。当定时器触发并执行完毕后,将timer设置为null,表示当前没有活动的定时器。这一行是为了确保在每次执行完fn函数后,节流函数可以继续在下一个延迟周期正常工作。这样,当新的事件触发时,节流函数将正确地控制fn函数的执行频率。防抖,就是防止抖动,“你先抖动着,啥时候停了,再执行下一步”例如:一个搜索输入框,在输入停止之后,再触发搜索。“别急,一个一个来,按时间节奏来,插队无效”原创 2023-03-13 03:03:09 · 95 阅读 · 0 评论 -
javaScript基础面试题 ---宏任务微任务
JS是单线程语言,先执行同步任务,再执行事件循环,事件循环里面包括微任务、宏任务。微任务执行了完了之后,才执行宏任务。微任务:Promise.then。宏任务:setTimeout原创 2023-03-06 10:09:36 · 667 阅读 · 0 评论 -
slice、splice、split 三者的区别
slice、splice、split 三者的区别原创 2023-03-03 08:37:48 · 531 阅读 · 0 评论 -
javaScript基础面试题 --- JS作用域
JS作用域原创 2023-03-06 12:35:03 · 1192 阅读 · 0 评论 -
javaScript基础面试题 --数据类型和考题
数据类型 和 考题原创 2023-03-05 21:52:13 · 177 阅读 · 0 评论 -
javaScript基础面试题 --- == 与 ===有什么不同?
==会做隐式转换,通过ValueOf做,==比较的是值,而===比较的不仅是值还有数据类型原创 2023-03-06 09:17:03 · 70 阅读 · 0 评论 -
javaScript基础面试题 ---null 与 undefined
null 与 undefined区别原创 2023-03-05 22:13:45 · 337 阅读 · 0 评论 -
javaScript基础面试题 --- 深拷贝和浅拷贝
深拷贝、浅拷贝原创 2023-03-08 02:02:14 · 142 阅读 · 0 评论 -
javaScript基础面试题 --- sort()背后的原理是什么
sort()背后的原理是什么原创 2023-03-08 01:51:25 · 332 阅读 · 0 评论 -
javaScript基础面试题 ---call、apply、bind三者的异同 - 改变this的方法,apply和call最初设计的时候为什么要设计这两个,为什么apply参数是数组call不是
可以改变函数体内的this指向语法:函数.call()、函数.apply()、函数.bind()原创 2023-03-08 01:28:34 · 99 阅读 · 0 评论 -
javaScript基础面试题 --- JS继承有哪些
JS继承原创 2023-03-08 01:21:19 · 273 阅读 · 0 评论 -
javaScript基础面试题 --- 原型链
如果原型上也没有这个属性,则继续查找原型的原型,如此类推,直至原型链的顶端(null)。当查询一个对象的属性时,JavaScript 会首先检查对象自身是否有这个属性。如果沿着原型链都没有找到该属性,那么返回 undefined。如果对象本身没有该属性,那么 JS 会查找该对象的原型。4、原型链的顶端是null。1、原型可以解决什么问题。函数有prototype。对象有__proto__对象共享属性和共享方法。原创 2023-03-08 01:05:46 · 306 阅读 · 0 评论 -
javaScript基础面试题 ---闭包
闭包原创 2023-03-07 22:23:02 · 1421 阅读 · 0 评论 -
javaScript基础面试题 --- new操作符具体做了什么?
当我们使用new操作符调用函数时,背后发生了很多事情。这里是简单的newprototypethis现在,让我们尝试写一个简化版本的new操作符,我们称之为create这个create函数是new操作符的简化实现,它尝试模仿new的基本行为。然而,要注意,真实的new操作符比这个简化版要复杂得多,处理了更多的边缘情况和特性。但这个简化版本为你提供了一个对new的基本理解。这里的Constructor其实是外部传递过来的一个函数参数,是构造函数。原创 2023-03-07 17:35:49 · 117 阅读 · 0 评论 -
javaScript基础面试题 --- 给字符串新增方式实现功能
1原创 2023-03-07 17:16:05 · 78 阅读 · 0 评论 -
javaScript基础面试题---找出多维数组最大值
1原创 2023-03-07 15:57:15 · 103 阅读 · 0 评论 -
JavaScript中数组去重的5种方法是什么
l原创 2023-03-07 15:49:59 · 358 阅读 · 0 评论 -
JS基础面试题 --- slice是干嘛的,splice是否会改变原数组
参数可以写slice(3)、slice(1,3)、slice(-3)-3就是倒数第三个,(1,3)就是1,2不包括3。不改变原数组,返回的是一个新的数组。返回:删除的元素 会改变原数组。1、slice是来截取的。原创 2023-03-07 15:40:14 · 558 阅读 · 0 评论 -
JS面试题 ---判断变量是不是数组
l原创 2023-03-07 15:35:06 · 47 阅读 · 0 评论 -
javaScript基础面试题 ---对象考点
对象原创 2023-03-07 12:15:12 · 271 阅读 · 0 评论 -
javaScript基础面试题 -- 延迟加载JS有哪些方式?defer async
defer与async的区别原创 2023-03-05 08:25:12 · 3192 阅读 · 0 评论