前端

56 阅读1分钟

值类型与引用类型有什么区别?

  • 值类型:String,Number,Boolean,Symbol
  • 引用类型:JSON,Array,null
    let a1 = 100;
    let b1 = a1;
    b1 = 200;
    console.log(a1);

    let a2 = { age:18 };
    let b2 = a2;
    b2.age = 20;
    console.log(a2);

使用==和使用===

  • 当判断一个object是不是等于null的时候,才使用==,其他时候都使用===
  • if(obj == null){}

truly变量和falsely变量

  • truly:当一个变量两次取反之后,依然全等于true,那这个变量就是trule变量
  • falsely:当一个变量两次取反之后,依然全等于false,那这个变量就是falsely变量
  • 除了数字0 NaN 空字符串 null undefined是falsely变量,其他全是truly变量。
    console.log(!!""===false);
    console.log(!!NaN===false);
    console.log(!!0===false);
    console.log(!!null===false);
    console.log(!!undefined===false);

深拷贝

  • JSON.parse(JSON.stringify(obj)):不能存放函数、时间对象、正则...
  • 递归:没有考虑循环引用
  • lodash.cloneDeep推荐,工作中没必要重复造轮子