1、JavaScript有几种数据类型
1.String 字符串类型
2.Number 数字类型
3.Object 对象类型
4.Boolean 布尔值类型
5.undefined 未定义类型
6.null 空
7.symbol 简单类型
8.bigInt 最大类型
2、JavaScript最大安全数字与最小安全数字?
Number.MAX_SAFE_INTEGER = 2^53 -1 = 9007199254740991
console.log(Number.MAX_SAFE_INTEGER)
// 9007199254740991
Number.MIN_SAFE_INTEGER = -(2^53-1) = -9007199254740991
console.log(Number.MIN_SAFE_INTEGER)
// -9007199254740991
3、 深拷贝和浅拷贝的区别
补充:深拷贝是层层拷贝,浅拷贝只拷贝一层
深拷贝:对象A被拷贝了之后,生成对象B,在修改对象A的时候, 对象B 并未跟着一同改变,则是深拷贝;
浅拷贝:对象A被拷贝了之后,生成对象B,在修改对象A的时候,对象B 跟着一同改变,则是浅拷贝;
4、 闭包是什么
闭包是一个作用域(函数)可以 访问另一个作用域(函数)的私有变量 优点:有效的避免变量污染的问题,且能使外部访问到内部变量; 缺点:使用不当容易造成内存泄漏的问题;
function a(){
let num = 0;
// 这是一个闭包,去访问上面的num
return function(){
return ++num;
}
}
const b = a();
console.log('a',a());
console.log('b1',b());//1
console.log('b2',b());//2
5、 原型链是什么(简约版)
1)构造函数的property和实例的_proto_指向的是同一个地方;
2)构造函数中所有创建的对象(Object)和函数(Function)都是这个构造函数的实例
3)__proto__的路径叫原型链
4)property和constructor是成对出现的
5)Object.property不是原型链的终点,因为在Object.property中还有一层__proto__指向null
6)property和__proto__指向的对象叫做原型对象
原型链的详细版: 第一位大佬:
第二位大佬:
在浏览文章的过程中,发现了作者@Sunshine_Lin本文也是跟着大佬的题目一道一道做的喔