杭州某x面经

124 阅读1分钟

js

  1. 如何判断对象是数组
  • Array.isArray()
    let arr = [1,2,3,4]
    console.log(Array.isArray(arr))
  • instanceof
    let arr = [1,2,3,4]
    console.log(arr instanceof Array); // true 
  • 对象的constructor属性
    let arr = [1,2,3,4]
    console.log(arr.constructor===Array)
  • 使用原型对象属性
    function isArrayFn(o) {
        return Object.prototype.toString.call(o) === '[object Array]';
    }
    var arr = [1, 2, 3, 1];
    console.log(isArrayFn(arr));// true 
  1. 如何判断一个空的对象
  • for...in...循环
    let obj ={
        a:1
    }
    let emptyObj={
    
    }
    for(let key in obj){
        console.log(true)// true
    }
    for(let key in emptyObj){
        console.log(true)// 不输出
    }
  • JSON.stringify
    let emptyObj={
    
    }
    console.log(JSON.stringify(emptyObj)==="{}")//true
    
  • Object.keys()
    let emptyObj={
    
    }
    console.log(Object.keys(emptyObj).length==0)//true
  1. 数组去重
  • set
    [...new Set(array)]
     function dedupe(array) {
         return Array.from(new Set(array))
     }
     dedupe([1,3,4,1])//[1,3,4]