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

  • 相关阅读:
    window.open()被浏览器拦截问题汇总
    如何快速判断页面是服务端渲染还是客户端渲染
    前端标注软件-pxcook像素大厨使用心得
    nodejs 实践:express 最佳实践(四) express-session 解析
    webpack 精华文章
    数据库 join
    $.ajax 中的contentType
    nodejs 实践:express 最佳实践(二) 中间件
    漂亮的代码6:增加字符串后的数字
    走马观花看语言总纲
  • 原文地址:https://www.cnblogs.com/matthew9298-Begin20160224/p/6344488.html
Copyright © 2011-2022 走看看