2024 高频前端面试题汇总之js篇(一)

前言

📢最近准备春招啦了,所以整理了一些前端高频大厂面试题,分享给大家,如有问题欢迎留言指正,面试专栏我会长期更新,欢迎大家点赞🤞、收藏📌,关注➕,感谢!
2024 高频前端面试题汇总之CSS篇(一)

2024 高频前端面试题汇总之CSS篇(二)

1. js数组上有哪些方法?

  1. Array.from() 将伪数组转换为真数组
  2. Array.of() 将一组值转换为数组

2. js字符串上有哪些方法?

  1. 添加元素:concat() 拼接
  2. 删除元素:splice() 方法和数组一样的,substring(),substr()
vbscript 复制代码
const str = 'Mozilla';
console.log(str.substring(1, 3));
// Expected output: "oz"
console.log(str.substring(2));
// Expected output: "zilla"
  1. 改:replace() trimRight trimLeft trim padStart padEnd toUpperCase toLowerCase
  2. 查:indexOf includes lastIndexOf find endsWith startWith
  3. 转换: split

3. 谈谈js中的类型转换机制

类型转换机制是一种类型转换为另一种类型,分别有隐式类型转换和显示类型转换这俩种转换。 说到类型转换我们要聊到的是有哪些数据类型

简单数据类型:Number string boolean null undefined symbol Bigint

复杂数据类型:[] {} Data Regexp(正则) map set 函数 通常开发过程中,会用到一些显示类型转换的手段来完成逻辑开发 Number() ...等一些 在V8执行过程中还存在另一种类型转换 --- 隐式类型转换

通常发生在 比较运算符 和 算术运算符

== != < > if while

4. [] == ![] 对这个理解

这个问题首先我们要理解对象数据类型转换的顺序

\] == !\[\] 在这里我们要看逻辑运算符的`==`和`!`俩的优先级谁的大 当然是!的优先级大 当`[]`转为简单数据类型 ```markdown 1. **对`!`后面的操作数转换成布尔值** 1. **将这个布尔值取反** ``` 在这里我们就要用到`valueof`讲对象转换为布尔值时为`false` 则这里取反 为`true`所有 `![]`为true 等号的左边我们就要用到数据类型转换的`ToPrimitive`函数 ,它有两种方法将引用数据类型转换为number 和string `[]`经过`ToPrimitive`会被转换成字符串`""`。再将等号两边的字符串`""`和布尔值`false`转换成数字 `0` ,得到 `0 == 0` 。打印得到 `true`。 所有总结 ```ini [] == ![] [] == !true // 将空数组这个对象类型转换成布尔值 [] == false // ! 运算符对 true 进行取反 '' == false // 对 [] 进行 ToPrimitive 操作,返回一个空对象 0 == 0 // 将等号两边都转换成数字类型 ``` # 5. == 和 === 的区别? `==` 存在隐式类型转换 比较最后的数值 `===` 比较数值 还比较数据类型 还比较存储位置 # 6. 说说你对闭包的理解 * 是什么 当一个函数中的内部函数被拿到函数外部调用,又因为在js中内层作用域总是能访问外层作用域的,那么内部函数存在对外部函数中变量的引用,这些变量的集合称之为闭包 * 使用场景: 1. 创建私有变量 (全局变量不易维护) 2. 延长变量的生命周期 3. 实现柯里化(颗粒) * 缺点:会造成内存泄漏 对闭包不理解的可以看看[深入理解 JavaScript 中的调用栈、作用域链和闭包](https://juejin.cn/post/7299859799779590195 "https://juejin.cn/post/7299859799779590195") # 7. 什么是柯里化? * 是什么 将一个接受多个参数的函数转变成多个只接受一个参数的函数 如觉得本文对你有帮助的话,欢迎点赞❤❤❤,写作不易,持续输出的背后是无数个日夜的积累,**您的点赞是持续写作的动力,感谢支持**!

相关推荐
张晓~183399481211 小时前
数字人源码部署流程分享--- PC+小程序融合方案
javascript·小程序·矩阵·aigc·文心一言·html5
爱喝水的小周1 小时前
AJAX vs axios vs fetch
前端·javascript·ajax
Jinxiansen02111 小时前
unplugin-vue-components 最佳实践手册
前端·javascript·vue.js
几道之旅1 小时前
介绍electron
前端·javascript·electron
周胡杰1 小时前
鸿蒙arkts使用关系型数据库,使用DB Browser for SQLite连接和查看数据库数据?使用TaskPool进行频繁数据库操作
前端·数据库·华为·harmonyos·鸿蒙·鸿蒙系统
31535669131 小时前
ClipReader:一个剪贴板英语单词阅读器
前端·后端
玲小珑1 小时前
Next.js 教程系列(十一)数据缓存策略与 Next.js 运行时
前端·next.js
qiyue771 小时前
AI编程专栏(三)- 实战无手写代码,Monorepo结构框架开发
前端·ai编程
轻语呢喃2 小时前
React智能前端:从零开始的识图学单词项目(一)
javascript·react.js·aigc
断竿散人2 小时前
JavaScript 异常捕获完全指南(下):前端框架与生产监控实战
前端·javascript·前端框架