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. 【iOS】file not found: .../Build/Products/Debug-iphonesimulator file not found

    今天又遇到了这个问题: ld: file not found: /Users/***/Library/Developer/Xcode/DerivedData/***-dfscappaygvbougtb ...

  2. Intellij IDEA 中 使用 Git

    前一段时间使用 Microsoft 的 Visual Studio Code 中使用 Git 对前端项目进行项目代码的开发提交. 使用后感觉挺好的,用的多了也觉得挺简单方便的. 现在需要在 Intel ...

  3. tensorflow学习笔记——常见概念的整理

    TensorFlow的名字中已经说明了它最重要的两个概念——Tensor和Flow.Tensor就是张量,张量这个概念在数学或者物理学中可以有不同的解释,但是这里我们不强调它本身的含义.在Tensor ...

  4. ByteBuf

    ByteBuf readerIndex ,读索引 writerIndex ,写索引 capacity ,当前容量 maxCapacity ,最大容量,当 writerIndex 写入超过 capaci ...

  5. nginx基本运维及常用配置

    nginx基本运维及常用配置 ========================================================== 基本运维 nginx 的启动 nginx -c /p ...

  6. jQuery插件之路(二)——轮播

    还记得以前刚接触前端的时候,浏览各大网站,很多都少不了的有个轮播的效果,那个时候自己是一个彻彻底底的小白,想着这些图片滚动起来还真是有意思,是什么让这些图片在一个方向上连续的滚动呢.后来慢慢的接触多了 ...

  7. 学习TensorFlow的第一天

    https://www.cnblogs.com/wangxiaocvpr/p/5902086.html

  8. react学习(一)--JSX简介

    由于在中国银联实习的项目要用到react,所以不得不硬着头皮把react学习一下.这是要往全栈发展吗0.0 正文: 一个最简单的React例子如下, ReactDOM.render( <h1&g ...

  9. Spark 系列(九)—— Spark SQL 之 Structured API

    一.创建DataFrame和Dataset 1.1 创建DataFrame Spark 中所有功能的入口点是 SparkSession,可以使用 SparkSession.builder() 创建.创 ...

  10. Spring 5 新功能:函数式 Web 框架

    英文:ARJEN POUTSMA 译文:debugging, 达尔文, 混元归一, leoxu, xufuji456 链接:oschina.net/translate/new-in-spring-5- ...