前端面试整理-JS部分

Crystalの前端面试整理-JS部分

Q:

  • [20200330] typeof 的原理,与 instanceOf 、 Object.prototype.toString.call() 的区别
  • [20200401] 手写一个快速排序
  • [20200401] 0.1 + 0.2 === 0.3 吗?为什么?
  • [20200401] 实现一个算法,来完成字符串相加,比如 “111” + ”2222“ = ”2333“
  • [20200401] 深度拷贝

A:

  • [20200330] typeof 的原理,与 instanceOf 、 Object.prototype.toString.call() 的区别
  • typeof
    JS在底层存储变量的时候,会在变量的机器码的低位1-3位存储其类型信息
    000:对象
    010:浮点数
    100:字符串
    110:布尔
    1:整数
    对于undefined 和 null 来说,信息存储有点特殊
    null 所有的机器码都为0,所以会被认为是object
    undefined用-2^30整数来表示
    use: typeof function() {}
    能快速检查undefined,string,number,boolean类型;
    当类型为object,null,array时都会返回object,无法区分

  • instanceOf
    use:“str” instanceof String
    能检测number, function, object类型
    不能检测number,boolean,string类型

  • Object.prototype.toString.call()
    use: Object.prototype.toString.call(“str”)
    能准确的判断所有的类型。写法相对繁琐
    后续可参考资料:简书

猜你喜欢

转载自blog.csdn.net/baidu_33591715/article/details/105196713