parseInt原来是这样用的

本文涉及的产品
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: 原文:parseInt原来是这样用的  今天在群里无意中看到了这样一个问题,突然发现不会,结果运行一看,懵逼了,不知道为什么???(结果是啥?自己去试试看)        现在我们还是先来复习一下parseInt()这个知识点吧!      parseInt() 函数可解析一个字符串,并返回一个整数。
原文: parseInt原来是这样用的

  今天在群里无意中看到了这样一个问题,突然发现不会,结果运行一看,懵逼了,不知道为什么???(结果是啥?自己去试试看)

  

 

  现在我们还是先来复习一下parseInt()这个知识点吧!

  

  parseInt() 函数可解析一个字符串,并返回一个整数。 

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

  当忽略参数 radix , JavaScript 默认数字的基数如下:

    如果 string 以 "0x" 开头,parseInt() 会把 string 的其余部分解析为十六进制的整数

    如果 string 以 0 开头,那么 ECMAScript v3 允许 parseInt() 的一个实现把其后的字符解析为八进制或十六进制的数字。

    如果 string 以 1 ~ 9 的数字开头,parseInt() 将把它解析为十进制的整数。

  提示和注释

  注意: 只有字符串中的第一个数字会被返回。

  注意: 开头和结尾的空格是允许的。

  注意:如果字符串的第一个字符不能被转换为数字,那么 parseFloat() 会返回 NaN。

  注意:在字符串以"0"为开始时旧的浏览器默认使用八进制基数。ECMAScript 5,默认的是十进制的基数。

  下面来看具体的实例吧:

  

  下面再来一个稍微难点的:

  

  很奇怪有木有,其实是这样的,当小数点后的0的个数小于等于5个时,会采用字面量形式直接表示,当小数点后0的个数大于5个时,会采用科学计数法来表示,即:0.000005不会采用科学计数法,而0.0000005则会转换为5e-7,parseInt方法不会将"e"视为数字,因此只是将5转换为10进制,还是5。

  同理,当小数点前数字位数为21及以下的时候,会采用字面量形式直接表示,而当小数点前数字位数大于21的时候。会采用科学计数法,因此6000000000000000000000会转换为科学计数法,为6e+21,将6转换为10进制还是6

 

   

  为什么会这样?其实是这样的,第一个中,会将2进制的11转换为10进制,自然就是3了。第二个中,会先将011按八进制来解析,就是9了,而二进制中不存在9,因此为NaN

至于第三个嘛,会将011按八进制解析为9,parseInt() 将把它解析为十进制的整数,自然就是9了

  好了,就说到这里了,至于开篇讲到的那个问题,我也不知道为什么???

 

  这里再来一波,懵逼了有木有?自己解决去吧。

  

 

 

  

 

目录
相关文章
|
5月前
|
JavaScript 前端开发 API
URLSearchParams
【6月更文挑战第4天】
35 1
|
6月前
parseInt和parseFloat
parseInt和parseFloat
29 0
|
6月前
|
网络协议 算法 Java
记录一道算法题-split和Integer.parseInt()
记录一道算法题-split和Integer.parseInt()
54 0
|
JavaScript 前端开发 索引
[‘1‘, ‘2‘, ‘3‘].map(parseInt)
[‘1‘, ‘2‘, ‘3‘].map(parseInt)
113 0
[‘1‘, ‘2‘, ‘3‘].map(parseInt)
|
前端开发 索引
复习下 [1,2,3].map(parseInt)
今天继续来聊一个面试题,平时上班太忙的同学可以活动活动脑子。 这个题目只有一行代码,但是知识点不只一个。 当然我们的目的不在于做题,而在于解题的过程。 通过一步一步的分析,得出合理的答案。
99 0
复习下 [1,2,3].map(parseInt)
java86-Interage方法compareto,parseint,intvalue
java86-Interage方法compareto,parseint,intvalue
113 0
java86-Interage方法compareto,parseint,intvalue
|
Web App开发 JavaScript 前端开发
面试题:['1', '2', '3'].map(parseInt) 输出什么?
面试题:['1', '2', '3'].map(parseInt) 输出什么?
263 0
面试题:['1', '2', '3'].map(parseInt) 输出什么?
|
程序员 数据安全/隐私保护
问题 E: Double Password
ICPC总部的一台电脑有一个四位数字的密码保护——为了登录,你通常需要准确地猜出这四位数字。然而,实现密码检查的程序员在计算机上留下了一个后门——有第二个四位数字的密码。如果程序员输入一个四位数的密码序列,并且输入的每一个数字的位置至少与两个相同位置的密码中的一个匹配,那么这个四位数的密码序列将使程序员登录计算机。给定这两个密码,计算可以输入登录计算机的不同四位数字序列的数量。
159 0
|
前端开发 JavaScript 索引
关于面试题:[1, 2, 3].map(parseInt)问题的剖析
最近有小伙伴在公号中咨询了胡哥这道面试题,窃以为是比较有意思的一道面试题,于此分享给各位小伙伴。先把答案给了各位,和你理解的一样吗?!
126 0