偏僻知识点

  1. true/false和数字类型进行==的时候,只有0,1能转换成true/false,其余的都是返回都是false。
    原因是因为:boolean == number 会将boolean值转换为number
console.log(true == 1) // true
console.log(false == 0) // true
console.log(true == -1 || true == 2) // false
console.log(false == -1 || false == -1) // false
console.log(undefined == false) // false, 会类型转换
  1. console.log(typeof null) // object
    console.log(null instanceof Object) // false
    
  2. includes和indexOf的区别

    includes能区别NaN,indexOf不能区别NaN

    const arr = [NaN];
    arr.includes(NaN); // true
    arr.indexOf(NaN); // -1
    

4.react和vue中使用index作为key的危害

  • 如果只是单纯的展示,没有任何的不好
  • 如果有逆序的删除或者添加,会增加不必要的DOM更新
  • 如果对于有输入DOM的,则会产生渲染错误,实例如下
  1. Object.keys等排序问题
    如果名称是number,会根据数据大小进行排序
const obj = {
  30: 0,
  20: 20,
  10: 10,
}

Object.keys(obj); // [10, 20 , 30]

如果是字符串,会根据添加进来的顺序进行排序

posted @ 2022-11-07 14:55  卿六  阅读(18)  评论(0编辑  收藏  举报