大厂前端面试题
前言
想进
数据类型
S 数据类型分为两大类,九个数据类型:
原始类型
对象类型
其中原始类型又分为七种类型,分别为:
- boolean
- number
- string
- undefined
- null
- symbol
- bigint
对象类型分为两种,分别为:
- Object
- Function
其中 Object 中又包含了很多子类型,比如 Array、RegExp、Math、Map、Set 等等,也就不一一列出了。
原始类型存储在栈上,对象类型存储在堆上,但是它的引用地址还是存在栈上。
注意:以上结论前半句是不准确的,更准确的内容我会在闭包章节里说明。
常见考点
- JS 类型有哪些?
- 大数相加、相乘算法题,可以直接使用 bigint,当然再加上字符串的处理会更好。
- NaN 如何判断
另外还有一类常见的题目是对于对象的修改,比如说往函数里传一个对象进去,函数内部修改参数。
function test(person) {
person.age = 26
person = {}
return person
}
const p1 = {
age: 25
}
这类题目我们只需要牢记以下几点:
- 对象存储的是引用地址,传来传去、赋值给别人那都是在传递值(存在栈上的那个内容),别人一旦修改对象里的属性,大家都被修改了。
- 但是一旦对象被重新赋值了,只要不是原对象被重新赋值,那么就永远不会修改原对象。