超级基础却又超级容易出错的前端面试题(2)

2020-06-15  本文已影响0人  Mr哎呦喂

一、 拓展运算符和解构赋值是深拷贝还是浅拷贝?

正确答案:当对象或者数组的值是基本类型的时候是深拷贝,引用类型则是浅拷贝.

面试中经常会问到这个问题,对于不细心的同学来说,平时根本没有注意这个细节,导致被问到时一脸懵,可以自己写个例子试一下

const a = {
      name: 'name',
      age: 18,
      marriage: false,
      addr: { province: 'sichuan', city: 'chengdu' }
    }

let { name, age, marriage, addr } = a

name = 'myname'
age = 26
marriage = true
addr.province = 'shanghai'
addr.city = 'shanghai'

console.log(name, age, marriage, addr) 
console.log(a)

输出结果

// myname 26 true {province: "shanghai", city: "shanghai"}
// { name: "name", age: 18, marriage: false, addr: {province: "shanghai", city: "shanghai"} }

二、typeof 各种类型的值的返回结果 ?


        null == undefined;
        0.1 + 0.2 == 0.3;
        typeof NaN;
        typeof Function;
        typeof Object;
        typeof {};
        'a'+1;
        'a'-1;
        Function instanceof Object;
        Object instanceof Function;

正确答案:true false number function function Object 'a1' NaN true true

这个题的易错点在于typeof的返回值以及instance的原理,直接附上MDN的权威链接,做错的仔细研究一下吧

typeof参考链接
instanceof参考链接

相关知识点:

      typeof null === 'object';
      typeof NaN === 'number';
特殊
上一篇 下一篇

猜你喜欢

热点阅读