js中的parseInt()方法总结

w3School中定义

定义和用法
parseInt() 函数可解析一个字符串,并返回一个整数。
语法

parseInt(string, radix)
参数 描述
string 必需。要被解析的字符串。
radix 可选。表示要解析的数字的基数。该值介于 2 ~ 36 之间。如果省略该参数或其值为 0,则数字将以 10 为基础来解析。如果它以 “0x” 或 “0X” 开头,将以 16 为基数。如果该参数小于 2 或者大于 36,则 parseInt() 将返回 NaN。

解析规则

  1. string头尾部空格将被自动除去
parseInt("    011      ",2)      //3
  1. string不是字符串,则将其转换为字符串再解析
parseInt(11,2)       //3
parseInt(011,2)      //NaN  011转换成string是9,而9对于二进制是非法字符
parseInt(011)        //9
parseInt(1.11,10)    //1
  1. 如果radix不是数值,会被自动转为一个整数。这个整数只有在2到36之间,才能得到有意义的结果,超出这个范围,则返回NaN。如果第二个参数是0、undefined和null则直接忽略。如:
parseInt('10', 37) // NaN
parseInt('10', 1) // NaN
parseInt('10', 0) // 10
parseInt('10', null) // 10
parseInt('10', undefined) // 10
  1. 两个参数都存在的情况下,以radix为基数解数数析string。如:
parseInt("011",2)      //3
parseInt("011",10)     //11
parseInt("011",16)     //17
  1. 如果字符串包含对于指定进制无意义的字符,则返回NaN
parseInt('1546', 2) // 1
parseInt('546', 2) // NaN
  1. 第二个参数radix省略时,默认为10进制解析,以0x开头时以16进制解析。以0开头时ES5规定按照10进制解析。如:
parseInt("11")         //11
parseInt("011")        //11,目前chrome、firefox、ie中的结果都是11,若想用8进制解析,请加上第二个参数!
parseInt("0x11")       //17
  1. string解析成整数的时候,是一个个字符依次转换,当遇到不能转换成数字的字符时将停止解析,只返回前面解析的结果。如:
parseInt("11ww")       //11
parseInt("011ww")      //11
parseInt("0x11ww")     //17
parseInt("0ww")        //0, 解析成parseInt("0",10)
//如果存在参数radix时则按该参数值为基数解析
parseInt("011w",10)       //11, 直接按10进制解析
parseInt("0xww",10)       //0, 直接按10进制解析,遇到非数字则停止
  1. string的第一个字符不能被转换成数字(后面跟着数字的正负号除外),结果返回NaN
parseInt("ww")         //NaN, 解析成parseInt("",10);
parseInt("0xww")       //NaN, 解析成parseInt("",16)
parseInt("+11")       //11
  1. 自动转为科学计数法的数字,parseInt会将科学计数法的表示方法视为字符串。如:
parseInt(1000000000000000000000.5) // 1, 等同parseInt('1e+21') 
parseInt(0.0000008)                // 8, 等同于parseInt('8e-7')

存在问题

parseInt("1111111111111111111111", 10) //1.1111111111111111e+21, 22位
parseInt(1111111111111111111111, 10)   //1, 22位
parseInt(111111111111111111111, 10)    //111111111111111110000, 21位
parseInt(11111111111111111111, 10)     //11111111111111110000,20位
parseInt(1111111111111111111, 10)      //1111111111111111200, 19位
parseInt(111111111111111111, 10)       //111111111111111100, 18位
parseInt(11111111111111111, 10)        //11111111111111112, 17位
parseInt(1111111111111111, 10)         //1111111111111111, 16位

解释
JavaScript的数值有多种表示方法,可以用字面形式直接表示,也可以采用科学计数法表示,下面是两个科学计数法的例子。
以下两种情况,JavaScript会自动将数值转为科学计数法表示,其他情况都采用字面形式直接表示。

//1.小数点前的数字多于21位。
1234567890123456789012    // 1.2345678901234568e+21
123456789012345678901     // 123456789012345680000
//2.小数点后的零多于5个。 
0.0000003   // 3e-7
0.000003    // 0.000003
/*
*结果如下:
*/
1111111111111111111111 自动转化为 1.1111111111111111e+21
parseInt(1.1111111111111111e+21, 10) -> 1

参考链接

js 的数值限制可能引起的问题
浅谈 js中parseInt函数的解析

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,340评论 5 467
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,762评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,329评论 0 329
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,678评论 1 270
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,583评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 47,995评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,493评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,145评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,293评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,250评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,267评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,973评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,556评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,648评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,873评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,257评论 2 345
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,809评论 2 339

推荐阅读更多精彩内容

  • 原文作者:justjavac原文地址:http://justjavac.com/javascript/2014/0...
    飞鱼YE阅读 482评论 0 2
  • 第三章 基本概念 本章基本内容 语法 数据类型 流控制语句 理解函数 (一)语法 区分大小写在JS里面变量,函数名...
    我拥抱着我的未来阅读 434评论 0 0
  • 最近开始学习的JS,做这个笔记只是为了记录一下自己的学习情况,也算是督促自己每天多看点书。基本都是书上的内容整理了...
    丨ouo丨阅读 272评论 2 1
  • 六十四岁阿姨不相信大福山的大夫非要到门楼卫生院。腰疼不敢起坐,x线检查全部腰椎增生,间隙狭窄。阿姨老骥伏枥仍在工作...
    房勇中医阅读 197评论 0 2
  • 韩非知游说之难,故其所著《说难》对于游说之难阐述十分详尽。 《说难》中讲到游说之人要以游说对象的角度出发,换位思考...
    罗衍阅读 1,908评论 1 3