开发者社区> 好程序员> 正文

好程序员web前端培训分享关于parseInt函数的一切

简介:
+关注继续查看

  好程序员web前端培训分享关于parseInt函数的一切,关于JS的手动类型转换,parseInt是我们最早接触的函数之一。
  接下来我们详细的总结一下它的用法,你可以点击收藏,以备不时之需。
parseInt()
作用是将参数(通常为字符串)强制转换为整数。
它有两个参数,第二个可以省略,我们先展示常见的用法

  1. 转换规则:依次将字符串中从左到右的数字部分转为整数,一旦转换失败,返回NaN。
    (1) 参数是字符串类型:

var a = parseInt(‘10’); //将字符串转成整数类型console.log(a); // 10var b = parrseInt(‘10true’); //将有效数字部分转为整数,提取开头数字部分console.log(b); // 10var c = parseInt(‘10true20’); //只将开头有效部分转为整数console.log(c); //10var d = parseInt(‘045zoo’); //开头部分转为整数,数字前面的0省略console.log(d); //45var f = parseInt(‘34.5’); //整数部分,小数点非数字部分,舍去console.log(f); //34var g = parseInt(‘a3’); //若不是以数字开头,转为NaN(Not a Number 不是数字)的特殊数值console.log(g); //NaN
(2) 参数是数字类型:
var a = parseInt(3.4); //依然转为数字,但是取整console.log(a); //3
(3) 其它数据类型:只要开头不包含有效数字,结果都转为NaN
var a = parseInt(true);
console.log(a); //NaN
var b = parseInt(null);
console.log(b); //NaN
var c = parseInt(undefined);
console.log(c); //NaN
var d = parseInt([]);
console.log(d); //NaN
var e = parseInt({});
console.log(e); //NaN

接下来,我们看第二个参数的用法
第二个参数:表示进制,范围2~36(用来说明第一个参数的进制规则)
var a = parseInt(‘99’,10); // 如果字符串为十进制内容,该参数可省略 console.log(a); // 99
var a = parseInt(‘1001’,2); // ‘1001’ 符合二进制规则, 转为十进制整数 console.log(a); // 9
var a = parseInt(‘1001’,10); // ‘1001’同样符合十进制, 转为十进制整数 console.log(a); // 1001
var b = parseInt(‘234’,2); //‘234’不符合二进制的规则 console.log(b); // NaN
var b = parseInt(‘abcde’,2); //‘abcde’不符合二进制的规则 console.log(b); // NaN
var c = parseInt(‘1022’,2); //‘10’部分属于二进制,但‘22’不是,将开头有效的部分提取并转成十进制 console.log(c); //2

一些特殊说明
如果以0x或0X开头,即使不说明进制规则,也能识别
var e = parrseInt(‘0xa’); //0x是十六进制的表示方法,a是十六进制中的10,转换成整数后自动切换为十进制console.log(e); //10
尽量不使用出现e的数字,由于只能识别开头部分,会造成结果混乱
此时应使用parseFloat方法替代
parseInt("6.022e23", 10); // 返回 6parseInt(6.022e2, 10); // 返回 602
非常大或非常小的数字
parseInt(4.7 * 1e22, 10); // 非常大的数值变成 4parseInt(0.00000000000434, 10); // 非常小的数值变成 4
在最新的ES5规范中,以0开头的数字,已经不能再被识别为八进制了。
parseInt("011"); //会当成10进制转换为 11parseInt("011", 8) //指定了8进制,结果为 9
总结:
以上测试均来自最新版的chrome浏览器,并不能确保所有浏览器行为一致。为了保证开发中不出现意外,建议使用parseInt方法时,一律带上第二个参数!

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
9月28日云栖精选夜读 | 程序员面试最常见问题TOP 48
同学,你会手写二叉树吗?近来正值秋招季节,很多编程面试都要求手写数据结构手推机器学习算法。各位同学为了面试也会刷各种编程题,其中数据结构与排序搜索算法又是最为基础的内容。在本文中,我们为各位读者准备了 48 道基础面试题,它可以帮助我们更深地理解数据结构。
2675 0
十分钟上线-基于函数计算开发 Restful web api & asp.net core web app
.NET Core是一个开源通用的开发框架,支持跨平台, 阿里云函数计算推出了 dotnetcore2.1 runtime, 使用 C# 编写 serverless 函数, 除了很好地支持通常意义上的函数外, 还可以基于函数计算开发 asp.
4812 0
好程序员教程分享webpack打包文件太大怎么办
好程序员教程分享webpack 打包文件太大怎么办,webpack 把我们所有的文件都打包成一个 JS 文件,这样即使你是小项目,打包后的文件也会非常大。下面就来讲下如何从多个方面进行优化。 去除不必要的插件 刚开始用 webpack 的时候,开发环境和生产环境用的是同一个 webpack 配置文件,导致生产环境打包的 JS 文件包含了一大堆没必要的插件,比如HotModuleReplacementPlugin, NoErrorsPlugin复制代码这时候不管用什么优化方式,都没多大效果。
1771 0
和表值函数连接引发的性能问题
原文:和表值函数连接引发的性能问题     最近调优过程中遇到一个问题,就是表值函数作为连接中的一部分时,可能会引起麻烦,本文会简单阐述表值函数是什么,以及为什么使用表值函数进行连接时会引发性能问题。 表值函数     SQL Server中提供了类似其他编程语言的函数,而函数的本质通常是一段代码的封装,并返回值。
950 0
好程序员web前端教程分享3种方法实现CSS隐藏滚动条并可以滚动内容
好程序员web前端教程分享3种方法实现CSS隐藏滚动条并可以滚动内容,隐藏滚动条的同时还需要支持滚动,我们经常在前端开发中遇到这种情况,最容易想到的是加一个iscroll插件,但其实现在CSS也可以实现这个功能,我已经在很多地方使用了,下面一起看看这三种方法。
1357 0
VB编程:取整函数Int、CInt、Fix区别
VB编程:取整函数Int、CInt、Fix区别
73 0
JavaScript parseInt() 函数
原文:JavaScript parseInt() 函数 parseInt(string, radix) string:必需。要被解析的字符串 radix:可选。表示要解析的数字的基数。该值介于 2 ~ 36 之间。
683 0
xcode反汇编调试iOS模拟器程序(五)调试objc_msgSend函数
反汇编调试objective-c,遇到最多的就是objc_msgSend这函数了,本节主要讲讲它的实现以及调试过程的一些技巧。 以UIWebView为例子,看看它在loadRequest时做了什么。
1101 0
从零开始学 Web 之 JavaScript(三)函数
大家好,这里是「 Daotin的梦呓 」从零开始学 Web 系列教程。此文首发于「 Daotin的梦呓 」公众号,欢迎大家订阅关注。在这里我会从 Web 前端零基础开始,一步步学习 Web 相关的知识点,期间也会分享一些好玩的项目。
1277 0
+关注
333
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载