乐趣区

关于前端:前端面试整理自用

  • 判断变量的数据类型

    • 根本数据类型 (Sring,Number,Undefined,Null,Boolean) 应用 typeof 进行判断,console.log(typeof ‘123’) => String,这之中 null 不能应用 typeof 判断数据类型,因为 typeof 的判断根据是将数据转为二进制,如果前三位为 000 则判为 Object 类型,null 示意的是空,二进制 000000 会被判断为 Object。
    • data insanceof type,通过 instanceof 来判断变量是不是某一类型的数据,判断的依据是通过变量的结构原型。限度比拟多,须要是通过结构原型形式申明的变量才能够 let a = new String(),还要求在同一个全局 window 下。
    • 最精确的判断形式 Object.prototype.toString.call,通过查找原型链来检索变量的数据类型。
  • 数组的罕用办法(abc 默认为字符串类型)

    • [a,b,c].join(‘,’),将数组转为字符串应用,元素之间应用 , 隔开。‘a,b,c’
    • ‘a,b,c’.split(‘,’),将字符串通过字符宰割为数组。[a,b,c]
    • [a,b].push(‘c’),将元素增加在数组的最初一个。[a,b,c]
    • [a,b].unshift(‘c’),将元素增加到数组的最后面。[c,a,b]
    • [a,b,c].pop(),将数组的最初一个元素移除。移除后数组的后果[a,b],该办法会返回被移除的元素 ‘c’
    • [a,b,c].shift(),将数组的第一个元素删除。移除后数组的后果[b,c],该办法会返回被移除的元素 ‘a’
    • [a,b,c].reverse(),将数组中元素的程序反转。反转后 [c,b,a]
    • [b,a,c].sort(),给数组中的元素进行排序,排序完结的后果,[a,b,c]
    • [a].concat([b,c]),将两个数组进行链接,后果为 [a,b,c]
    • [a,b,c].splice(2,1),用于增加或者删除数组中的元素,这个办法会扭转原数组,参数的准则是包头不包尾,原数组操作后[a,b]。该办法能够有第三个参数,能够在删除的地位插入新的元素,[a,b,c].splice(2,1,250), 操作完结后原数组会变成 [a,b,250]
    • [a,b,c].slice(1,3),用于提取数组中对应的元素,办法执行结束之后会返回 [b,c],该办法不会扭转原数组
  • 数组的罕用遍历形式(abc 默认为字符串类型)

    • forEach 在遍历的时候能够间接操作原数组,然而要审慎操作原数组可能会引起有限循环,该办法无返回值。
    • map 在遍历数组的时候不能够间接对数组自身进行操作,map 在执行完结会有返回值。
    • filter 在遍历数组的时候会依据条件对数组的元素进行筛选,返回符合条件的元素。
    • find 遍历数组的时候会返回代码块中符合条件为 true 的元素,只会返回符合条件的第一个。
    • findIndex 同 find,会返回符合条件的第一个元素的下标。
    • some 遍历数组,依据判断条件进行含糊判断,有真则真,返回布尔值。(可用于优化性能)
    • every 遍历数组,依据判断条件进行含糊判断,有假则假,返回布尔值。(可用于优化性能)
    • reduce 遍历数组进行累加计算,
退出移动版