1. Js的基本数据类型
-
null -
undefined -
string -
symbol -
bigint -
boolean -
number -
object
Es6 新增了symbol和bigint两种类型,symbol一般常用可以结合redux的action的type进行使用;bigint是大数处理,一般除非项目中涉及到很大的数才会用到。
2. 数据类型检测的方式有哪些
-
typeof , 但是在判断Array null为object -
instanceof , 通过prototype 判断构造函数 -
construct,通过构造函数来判断 -
Object.prototype.toString()
一般项目中常用的判断方式可能是使用typeof,typeof null === "object" 是一个历史遗留问题.
3 null 和 undefined 区别
两者都是基本数据类型 undefined 在 JavaScript 中不是一个保留字,这意味着可以使用 undefined 来作为一个变量名,但是这样的做法是非常危险的,它会 影响对 undefined 值的判断。我们可以通过一些方法获得安全的 undefined 值,比如说 void 0。
但是现在大多数浏览器应该是都无法使用undefined作为一个变量名。
5 intanceof 操作符的实现原理及实现
intanceof 是判断构造函数的prototype是否存在于对象的原型链上,一直找到Object.prototype.
知道了原理,实现就很简单了,就是无限循环递归
function myInstanceOf(left:object, right:object) {
// Object.getPrototypeOf() 返回对象的原型
const leftPrototype = Object.getPrototypeOf(left);
const rightPrototype = right.prototype;
while(leftPrototype) {
if(leftPrototype === rightPro