资讯专栏INFORMATION COLUMN

详细解释parseInt

jindong / 462人阅读

摘要:举例,如果以开头,会把的其余部分解析为十六进制的整数。如果以开头,那么允许的一个实现把其后的字符解析为八进制或十六进制的数字。

[‘1’, ‘2’, ‘3’].map(parseInt)结果是什么?

我们先将代码转化成常规的样子,

[‘1’,‘2’,‘3’].map(function(item, index){return parseInt(item,index)})

也就是 结果是[parseInt("1",0), parseInt("2",1), parseInt("3", 2)]

接下来我们就来看看parseInt,parseInt第一个参数是接下来要转化的数据, 第二个参数是转化的基数,这个基数在2~36之间,

当参数 radix 的值为 0,或没有设置该参数时,parseInt() 会根据 string 来判断数字的基数。

举例,如果 string 以 "0x" 开头,parseInt() 会把 string 的其余部分解析为十六进制的整数。如果 string 以 0 开头,那么 ECMAScript v3 允许 parseInt() 的一个实现把其后的字符解析为八进制或十六进制的数字。如果 string 以 1 ~ 9 的数字开头,parseInt() 将把它解析为十进制的整数。

    parseInt("1",0) = parseInt("1", 10) =1
    parseInt("2",1) = NaN
    parseInt("3",2) = NaN? 这个就不是很理解,为什么呢, 接下来我们分析下
parseInt是按照一个个的字符进行解析的,

情况一: 若第一个字符不是数字或者是数字并大于基数则不用进行接下来的操作,结果是NaN:

情况二: 第一个字符为数字且小于基数,则可继续看下一个字符, 判断条件和情况一一致,若不符合条件则结果为parseInt("第一个字符", 基数),否则继续看接下来的字符

综合就是: parseInt("符合条件的字符串", 基数)
例如:parseInt("17",6)=1,parseInt("17",9)=16;当解析17时,1属于6进制范围,7不属于6进制范围,当string的数字小于radix时(7<6),它会只解析到它的上一位,
即 parseInt("17",6) = parseInt("1",6) = 1;

这样我们就很容易明白为啥parseInt("3", 2) = NaN

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/106202.html

相关文章

  • 透彻研究Javascript类型转换

    摘要:注释空数组空对象转换为布尔型也是坑。系统会在自动类型转换的时候调用他们,所以我们通常不需要手动调用他们。严格相等不存在类型转换,对于类型不同的两个值直接返回。 Javascript 中有5种基本类型(不包括 symbol),以及对象类型,他们在不同的运算中会被系统转化为不同是类型,当然我们也可以手动转化其类型。 Javascript 类型转换中的坑极多,就连 Douglas Crock...

    dailybird 评论0 收藏0
  • Java 8 vs. Scala(一): Lambda表达式

    摘要:编程语言将函数作为一等公民,函数可以被作为参数或者返回值传递,因为它被视为对象。是表示已注释接口是函数接口的注释。如果一个函数有一个或多个参数并且有返回值呢为了解决这个问题,提供了一系列通用函数接口,在包里。 【编者按】虽然 Java 深得大量开发者喜爱,但是对比其他现代编程语言,其语法确实略显冗长。但是通过 Java8,直接利用 lambda 表达式就能编写出既可读又简洁的代码。作者...

    yuanxin 评论0 收藏0
  • 【JS. ES5重点笔记】数据类型

    摘要:是最特殊的类型,表示没有意义的数,例如。十六进制数八进制数十进制数十六进制数对于部分情况,和存在分歧。例如,表示希腊字符关于字符串的转换,其实核心就是函数,如果是数字型,还可以添加参数,使之变为二进制八进制十进制十六进制数。 虽然目前已经算是ES6的时代,然是ES5的尾巴仍在众多框架中出现,JS我虽然通过视频等方式学习,曾经做过项目,但是仍对部分细节和原理不了解,通过阅读这本书,希望能...

    Yu_Huang 评论0 收藏0
  • 一些冷门的js操作

    摘要:突然有一天,发现了一些基于很基础的东西的骚操作,就开始怀疑人生如果没有遇到被某些东西打击到或者见识到新的世界,可能永远的,就感叹真好用,我精通,精通。最后,就相当于对每一个元素进行,,,,位操作符基本用法和概念就不说了,自行看文档。 本文来源于我的github 0.前言 大家学习的时候,一开始小白,然后接触到进阶的东西的时候,发现一切得心应手,有的人可能开始说精通了。突然有一天,发现...

    ckllj 评论0 收藏0
  • JavaScript选择题解答(1-20)

    摘要:最近做了个上的的测试题目地址,错了一大堆,感觉的概念还有很多不是很清晰,这里记录一下个人博客文章地址第一题解答这里考的是的用法。如果出现的数字不符合后面输入的进制,则为,所以第二个值为。 最近做了个heroku上的JavaScript的测试(题目地址),错了一大堆,感觉js的概念还有很多不是很清晰,这里记录一下 个人博客文章地址 第一题 What is the result of...

    Worktile 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<