• 前端面试题JavaScript篇——2022-09-09


    每日3题

    31 关于AMD、CMD规范区别说法正确的是?(多选)

    A.AMD规范:是 RequireJS在推广过程中对模块定义的规范化产出的 B.CMD规范:是SeaJS 在推广过程中对模块定义的规范化产出的 C.CMD 推崇依赖前置;AMD 推崇依赖就近 D.CMD 是提前执行;AMD 是延迟执行 E.AMD性能好,因为只有用户需要的时候才执行;CMD用户体验好,因为没有延迟,依赖模块提前执行了

    32 以下代码执行后,控制台中的输出内容为?

    console.log(['1','2','3'].map(parseInt));

      33 以下代码执行后,控制台中的输出内容为?

      const person = { name: "leo" };
      function say(age) {
        return `${this.name} is ${age}`;
      }
      console.log(say.call(person, 5));
      console.log(say.bind(person, 5));
      • 1
      • 2
      • 3
      • 4
      • 5

      公众号【今天也要写bug】,每日更新前端面试

      答案及解析

      31 答案 AB

      • 考察 AMD 和 CMD 规范的了解
      • C. CMD 推崇依赖就近,AMD 推崇依赖前置 D. CMD 是延迟执行,AMD 是提前执行 E. CMD 性能好,因为只有用户需要的时候才执行,AMD 用户体验好,因为没有延迟,依赖模块提前执行了

      32

      // 答案:[1, NaN, NaN]
      // 考察 map 方法和 parseInt 方法
      // map 方法接受两个参数:callback 和 thisArg
      // callback 接受 3 个参数:currentValue、index、array
      // parseInt 接受 2 个参数:string、radix
      
      console.log(["1", "2", "3"].map(parseInt));
      // 此处 parseInt 即为 callback
      // 所以 parseInt 的两个参数为:currentValue、index
      // 等价于:
      console.log(
        ["1", "2", "3"].map((currentValue, index) => parseInt(currentValue, index))
      );
      // currentValue='1'时,index=0,parseInt('1', 0)=1
      // 涉及 parseInt 的特殊情况,当 parseInt 的第二个参数未指定或为0,第二个参数会自行推断
      // 根据推断规则(详见MDN),parseInt('1', 0)=parseInt('1', 10)=1
      
      // currentValue='2'时,index=1,parseInt('2', 1)=NaN,radix 不等于0 且 不在 2~36 之间,则结果为 NaN
      
      // currentValue='3'时,index=2,parseInt('3', 2)=NaN,因为 3 不是有效的 2 进制数
      // 当 radix 是有效的值(2~32),待转换的字符串的每一位必须是有效的 radix 进制数
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
      • 16
      • 17
      • 18
      • 19
      • 20

      33

      // 答案:leo is 5 和 一个函数
      // 考察 call 和 bind 的区别
      // call 和 apply 返回的是指定 this 和参数后调用函数的值(是结果)
      // bind 返回的是指定 this 和参数后的函数的拷贝(是函数)
      const person = { name: "leo" };
      function say(age) {
        return `${this.name} is ${age}`;
      }
      console.log(say.call(person, 5));
      console.log(say.bind(person, 5));
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
    • 相关阅读:
      ObjectARX简单自定义实体的实现
      8种超简单的Golang生成随机字符串方式
      软件设计模式系列之六——单例模式
      深度学习与神经网络入门
      光环:研发云搭建及人才梯队建设——姚冬
      3-1常用排序练习
      《算法通关村——二分查找在旋转数字中的应用》
      Python的web自动化学习(三)Selenium的显性、隐形等待
      SQL奇遇记:解锁 SQL 的秘密
      多个Lib module打包合成一个Aar
    • 原文地址:https://blog.csdn.net/qq_38650754/article/details/126789227