zoukankan      html  css  js  c++  java
  • ['1', '2', '3'].map(parseInt) 输出答案和解析

    根据题目可以了解到这道题主要考我们的是对map函数和parseInt函数的熟悉程序,所以我们先来了解这两个函数

    map

    根据MDN上对于map的解释:map() 方法创建一个新数组,其结果是该数组中的每个元素都调用一个提供的函数后返回的结果。

    上面的话读起来可能比较晦涩,我个人理解其实就是遍历数组,对数组的每一项进行遍历并做数据处理。这道题的关注重点就是在于map对于数组处理的方法,所以我们着重看下在MDN对于map参数的解释:

    • callback
      生成新数组的元素的函数,使用三个参数:
      • currentValue
        callback数组中正在处理的当前元素
      • index |可选
        callback 数组中正在处理的当前元素的索引。
      • array |可选
        map 方法调用的数组。

    这样的解释就很明白了,map方法的参数是一个回调函数,这个函数会有三个参数:当前元素、当前元素的下标和当前数组。所以这道题可以转换成一下写法:

    	parseInt('1',0,['1','2','3'])
        parseInt('2',1,['1','2','3'])
        parseInt('3',2,['1','2','3'])
    

    parseInt

    MDN上对于parseInt的解释非常清晰,parseInt(string, radix) 将一个字符串 string 转换为 radix 进制的整数, radix 为介于2-36之间的数。第一个参数大家都知道,我们着重看下第二个参数,第二个参数标识进制,默认是10进制的,如果第一个字符不能被转换成数字,parseInt返回NaN。

    • 另外关于在基数为 undefined,或者基数为 0 或者没有指定的情况下,JavaScript 作如下处理:
      • 如果字符串 string 以"0x"或者"0X"开头, 则基数是16 (16进制).
      • 如果字符串 string 以"0"开头, 基数是8(八进制)或者10(十进制),那么具体是哪个基数由实现环境决定。ECMAScript 5 规定使用10,但是并不是所有的浏览器都遵循这个规定。因此,永远都要明确给出radix参数的值。
      • 如果字符串 string 以其它任何值开头,则基数是10 (十进制)。

    所以我们可以得到上面的代码精简并输出是

    	parseInt('1',0)   // 10进制  输出1
        parseInt('2',1)   // 1进制   输出NaN
        parseInt('3',2)  // 2进制  输出NaN
    
    • 所以这道题我们得到答案是 [1, NaN, NaN]
  • 相关阅读:
    velocity模板引擎学习(2)-velocity tools 2.0
    silverlight: http请求的GET及POST示例
    职责链(Chain of Responsibility)模式在航空货运中的运用实例
    H2 Database入门
    velocity模板引擎学习(1)
    Struts2、Spring MVC4 框架下的ajax统一异常处理
    企业应用通用架构图
    nginx学习(2):启动gzip、虚拟主机、请求转发、负载均衡
    nginx学习(1):编译、安装、启动
    eclipse/intellij Idea集成jetty
  • 原文地址:https://www.cnblogs.com/lideyao/p/12024285.html
Copyright © 2011-2022 走看看