forEach和map方法的区别
forEach没有返回值,可以改变原数组
map返回新的数组,不会改变原数组
字面量创建对象和构造函数创建对象的区别
主要区别在原型链和继承上
字面量创建的对象如果想在原型上挂载新方法就会挂载到Object的原型对象上,会影响所有Object的实例。
使用构造函数创建就可以将方法挂载到构造函数的原型对象上,只有这个构造函数创建的实例受到影响
typeof和instanceof的区别
typeof通过判断数据底层二进制的前三位来判断数据类型,返回字符串:返回值有number、string、boolean、function、undefined、object六个
000:对象, 010浮点数, 100:字符串, 110布尔, 1整数
其中null底层二进制全为0,所以会判断为Object
如何区分object和null?
直接比较:使用严格相等运算符 ===
来比较一个值是否等于 null
,因为 null
只会与 undefined
以及它自己相等。
使用 instanceof
运算符:这个运算符可以用来检查一个对象是否是特定构造函数的实例。由于 null
不是任何构造函数的实例,因此可以通过 instanceof
来判断。
instanceof通过原型链来判断对象是否为某个构造函数的实例,底层通过原型链向上查找,返回布尔值,
具体的对比原理?对象的__proto__指向的原型对象是与构造函数的原型对象否相同
cors中间件的原理
通过配置响应头,包括Access-Control-Allow-Origin
、Access-Control-Allow-Methods
、Access-Control-Allow-Headers
等。
vue3响应式的原理
除了使用proxy代理和diff算法的更新,其他和vue2一样