zoukankan      html  css  js  c++  java
  • 理解Js的parseInt(转)

    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

  • 相关阅读:
    linux驱动开发学习一:创建一个字符设备
    如何高效的对有序数组去重
    找到缺失的第一个正整数
    .NET不可变集合已经正式发布
    中国人唯一不认可的成功——就是家庭的和睦,人生的平淡【转】
    自己动手搭建 MongoDB 环境,并建立一个 .NET HelloWorld 程序测试
    ASP.NET MVC 中如何用自定义 Handler 来处理来自 AJAX 请求的 HttpRequestValidationException 错误
    自己动手搭建 Redis 环境,并建立一个 .NET HelloWorld 程序测试
    ServiceStack 介绍
    一步一步实战扩展 ASP.NET Route,实现小写 URL、个性化 URL
  • 原文地址:https://www.cnblogs.com/matthew9298-Begin20160224/p/6344488.html
Copyright © 2011-2022 走看看