整理一下2023年前端的面试题(持续更新)

457 阅读3分钟

写在前面:

我本人是一个低学历的“前端开发者”这里不称作自己为前端开发工程师是因为不断的看文章,不断的问一些同事问题才发现自己真的会的太少了。我大概不到五年的工作经验,当时毕业以后就开始自学前端,学习了html、css、js后就信心满满的去找了第一份工作,坐标武汉,3000的月薪让当年的我美滋滋。 很庆幸公司使用的技术栈是React,也是在这里第一份工作就使用了React,后面不断的学习不断的进步,也终于得到了更好的发展,原本以为后面可以靠着工作经验,得到更高的薪资,结果就是今年来从大厂离职以后,两个月都没有找到理想的工作,我一度想放弃前端这个岗位,但是我还想继续再试一下,这里也给像我一样的同学们一个建议,不断的学习才是我们通往高薪的唯一道路,所谓的八股文,在我看来不是面试官的故意刁难,只是我们如果理解透彻底层原理,基础扎实,这些都是我们不断高薪的垫脚石。 废话不多说,我会将自己面试里遇到的问题,和在网上看到的一些问题,掰开了揉碎了,尽量用最基础的知识去理解他们,让我们一起进步。(题目可能涉及很多基础知识,大佬可以一笑而过)

js基础

- JS的数据类型

其实js的数据类型分为两种,一种为基本数据类型,另一种为引用数据类型

image.png

是不是这里就突然发现了不同?ES6 中新增了一种 Symbol

  • Symbol 。这种类型的对象永不相等,即始创建的时候传入相同的值,可以解决属性名冲突的问题,做为标记。
console.log(Symbol('foo') === Symbol('foo'));
// Expected output: false
  • BigInt 是一种内置对象,它提供了一种方法来表示大于 2^53 - 1 的整数。这原本是 Javascript 中可以用Number表示的最大数字。BigInt 可以表示任意大的整数。

了解完了数据类型的种类,那么你知道**基本数据类型和引用数据类型的区别**吗?

  1. 声明变量时不同的内存分配
  • 基本数据类型由于占据的空间大小固定且较小,会被存储在当中,也就是变量访问的位置
  • 引用数据类型存储在当中,变量访问的其实是一个指针,它指向存储对象的内存地址
  1. 复制变量时结果也不一样
  • 基本数据类型复制后2个变量是独立的,因为是把值拷贝了一份
  • 引用数据类型则是复制了一个指针,2个变量指向的值是该指针所指向的内容,一旦一方修改,另一方也会受到影响
  1. 参数传递不同
  • 基本数据类型把变量里的值传递给参数,之后参数和这个变量互不影响
  • 引用数据类型(这里拿函数举例):虽然函数的参数都是按值传递的,但是引用值传递的值是一个内存地址,实参和形参指向的是同一个对象,所以函数内部对这个参数的修改会体现在外部

想想面试官如果面试到js的数据类型,你真的会回答吗?相信你回答到这里,面试官会很满意你对js数据类型的理解(如有错误与不足欢迎大佬指正)