parseInt() 方法首先查看位置 0 处的字符,判断它是否是个有效数字;如果不是,该方法将返回 NaN,不再继续执行其他操作。但如果该字符是有效数字,该方法将查看位置 1 处的字符,进行同样的测试。这一过程将持续到发现非有效数字的字符为止,此时 parseInt() 将把该字符之前的字符串转换成数字。

一、语法

parseInt(stringradix)

参数 描述
string 必需。要被解析的字符串。
radix

可选。表示要解析的数字的基数。该值介于 2 ~ 36 之间 或者为 0。

如果省略该参数或其值为 0,则数字将以 10 为基础来解析。如果它以 “0x” 或 “0X” 开头,将以 16 为基数。

如果该参数小于2 且不为0 ,或者大于 36,则 parseInt() 将返回 NaN。

二、"string" 参数应用的详细规则  (以 10进制为例

1、如果都是字母, 返回:NaN

parseInt("abc", 10)  //返回 NaN
 
 
2、如果都是数字,则返回整数

parseInt("123", 10)   //返回 123

3、如果字母和数字都存在

(1)、以数字开头,则取截止到第一个字母出现之前的所有数字进行转换

parseInt("12x2bc", 10)   // 返回:12

(2)、如果参数“string”,以字母开头,直接返回NaN (10进制中字母不是一个有效的的表示)

parseInt("df2bc", 10)  //返回 NaN

三、使用 parseInt() 来解析不同的字符串实例

parseInt("10");            //返回 10

parseInt("19",10);        //返回 19 (10+9)

parseInt("11",2);        //返回 3 (2+1)

parseInt("17",8);        //返回 15 (8+7)

parseInt("1f",16);        //返回 31 (16+15) f -> 1, 2, 3 ... 9, 10(a), 11(b), 12(c), 13(d), 14(e), 15(f)

parseInt("010");        //未定:返回 10 或 8

无聊个人注明怎么计算进制~~~~~~啦啦啦啦~~~~~
这里我用(n)[2] 表示2进制 2进制用2代表满位,如同十进制的10为满位。
(17)[8] --->(17分开来是1和7,8进制的1和7分别对应1->001,7->111)[2]---> (1111)[2] ---> (2的3次方 + 2的2次方 + 2的1次方 + 2的0次方)[10] = (8+4+2+1)[10] = (15)[10]

注意16进制后面10用A代替1A==10+16=26------A=16 1=10
            A1==10*16+1=161

四、js中使用parseint需要注意的地方

1、在没有指定radix或者radix为0的情况下,parseInt会按十进制进行转换。然而,如果string的值以“0x”开头,parseInt会按十六进制进行转换;

2、parseInt 会先调用 toString 方法,看如下几个parseInt的返回值

alert(0.000001);  // 弹出 0.000001
alert(0.0000001);  // 弹出1e-7

parseInt(0.000001)   // 返回0

parseInt(0.0000001)  // 返回1

parseInt('0.000001')   // 返回0
parseInt('0.0000001')  // 返回0

巧用:parseInt(x.style.marginLeft, 10);这个去掉后面的px

转:http://www.studyofnet.com/news/941.html

理解Js的parseInt(转)的更多相关文章

  1. 怎么理解js中的事件委托

    怎么理解js中的事件委托 时间 2015-01-15 00:59:59  SegmentFault 原文  http://segmentfault.com/blog/sunchengli/119000 ...

  2. 简单理解js的this

    js的this是什么?关于这个东西,博客园里面有太多的解释了,不过,本人看了一下,感觉对this解释的有点复杂了,因此,本人在此给this一个简单易于理解的定义. this其实是js的一个对象,至于是 ...

  3. 从一个简单例子来理解js引用类型指针的工作方式

    <script> var a = {n:1}; var b = a; a.x = a = {n:2}; console.log(a.x);// --> undefined conso ...

  4. 深入理解js——prototype原型

    之前(深入理解js--一切皆是对象)中说道,函数也是一种对象.它也是属性的集合,你也可以对函数进行自定义属性.而JavaScript默认的给了函数一个属性--prototype(原型).每个函数都有一 ...

  5. 如何理解js

    1.js/dom功能 2.performance 3.code organization 4.tools and flow 如何理解js代码,代码即业务. 如何快速理解代码业务.

  6. 理解JS闭包

    从事web开发工作,尤其主要是做服务器端开发的,难免会对客户端语言JavaScript一些概念有些似懂非懂的,甚至仅停留在实现功能的层面上,接下来的文章,是记录我对JavaScript的一些概念的理解 ...

  7. 全面理解js面向对象

    前言 当今 JavaScript 大行其道,各种应用对其依赖日深.web 程序员已逐渐习惯使用各种优秀的 JavaScript 框架快速开发 Web 应用,从而忽略了对原生 JavaScript 的学 ...

  8. js对象详解(JavaScript对象深度剖析,深度理解js对象)

    js对象详解(JavaScript对象深度剖析,深度理解js对象) 这算是酝酿很久的一篇文章了. JavaScript作为一个基于对象(没有类的概念)的语言,从入门到精通到放弃一直会被对象这个问题围绕 ...

  9. 好程序员web前端分享如何理解JS的单线程

    好程序员web前端分享如何理解JS单线程,JS本质是单线程的.也就是说,它并不能像JAVA语言那样,两个线程并发执行. 但我们平时看到的JS,分明是可以同时运作很多任务的,这又是怎么回事呢? 首先,J ...

随机推荐

  1. Android的简述2

    android提供了三种菜单类型,分别为options menu,context menu,sub menu. options menu就是通过按home键来显示,context menu需要在vie ...

  2. 对JAVA Bean使用PropertyDescriptor反射调用JAVA方法低耦合

    对于符合JAVA Bean规范的bean,调用其方法应优先使用java.beans.PropertyDescriptor获取Method进行方法调用,以获得更大的可维护性. public void g ...

  3. 激活函数、正向传播、反向传播及softmax分类器,一篇就够了!

    1. 深度学习有哪些应用 图像:图像识别.物体识别.图片美化.图片修复.目标检测. 自然语言处理:机器创作.个性化推荐.文本分类.翻译.自动纠错.情感分析. 数值预测.量化交易 2. 什么是神经网络 ...

  4. Filebeat6.3文档—Log input配置

    Filebeat6.3文档-Log input配置 paths 日志加载的路径.例如加载某一子目录级别下面路径的日志:/var/log/*/*.log.这表示会去加载以.log结尾的/var/log下 ...

  5. 8、大型项目的接口自动化实践记录----DB分别获取预期结果、实际结果

    上一篇实现数据分离升级版--从DB获取数据,以及对应的请求实现,作为一个case,还缺少了预期结果与实际结果的获取及对比.因为前面的文章已经说过接口返回值的获取及对比,所以这篇不说这块了,这篇说一下D ...

  6. 用html和css写一个头部header和左侧菜单栏menu-bar固定的的页面

    这个页面header部分是100%的宽度,60px的高度,左侧是刚好一屏的高度,180的宽度,右侧的部分把剩余的空间占满,刚开始的时候还没怎么接触这样的页面,以为使用js读取浏览的可视化宽高,然后在做 ...

  7. 使用富文本编辑器Kindeditor

    今天在做需求的时候,遇到有一个字段,需要保存带有格式的内容,决定使用富文本框编辑器Kindeditor来实现,解决方法如下: 登录官网下载控件包: http://kindeditor.net/down ...

  8. 基于Starling的mask实现

    作为一个从c++转过来的程序员,flash原生的自定义mask实在是太好用,能方便实现各种效果,比如新手引导的高亮.viewport效果等.可惜starling的显示对象并不支持mask特性,查阅go ...

  9. Starling 环形进度条实现

    项目初期想实现这个效果来着,查了很多资料(包括式神的<神奇的滤镜>),也没找到完美的实现方法,,当时时间紧迫,就找了传统的进度条来代替实现. 最近偶然心血来潮,查了各方面资料,终于找到实现 ...

  10. Java.基础 -------- 一个Java源文件中可以有很多类,但只能有一个类是public的

    一个Java源文件中可以有很多类,但只能有一个类是public的        Java程序是从一个public类main函数开始执行的,只能有一个public是为了给类装载器提供方便,一个publi ...