1、JavaScript有几种数据类型? number:数字类型 string:字符串类型 boolean:布尔值类型 undefined:未定义类型 null:空值类型 object:对象类型 symbol:symbol类型 bigint:大数字类型 2、JavaScript最大安全数字与最小安全数字? console.log(Number.MAX_SAFE_INTEGER) // 9007199254740991

console.log(Number.MIN_SAFE_INTEGER) // -9007199254740991 3、深拷贝与浅拷贝的区别?

深拷贝层层拷贝,浅拷贝只拷贝第一层,深层只是引用

在深拷贝中,新对象中的更改不会影响原始对象,而在浅拷贝中,新对象中的更改,原始对象中也会跟着改。

在深拷贝中,原始对象不与新对象共享相同的属性,而在浅拷贝中,它们具有相同的属性。

4、闭包是什么? 闭包是一个能读取其他函数内部变量的函数

优点:使外部能访问到局部的东西 缺点:使用不当容易造成内存泄漏的问题 例子:

function a () { let num = 0

// 这是个闭包 return function () { return ++num } } const b = a() console.log(b()) // 1 console.log(b()) // 2

5、valueOf 与 toString

1、valueOf偏向于运算,toString偏向于显示 2、对象转换时,优先调用toString 3、强转字符串优先调用toString,强转数字优先调用valueOf 4、正常情况下,优先调用toString 5、运算操作符情况下优先调用valueOf