zoukankan      html  css  js  c++  java
  • JS中Number()、parseInt()和parseFloat()

    三者的作用:
    Number(): 可以用于任何数据类型转换成数值;
    parseInt()、parseFloat(): 专门用于把字符串转换成数值;

    一、Number()

    (1)如果是Boolean值,true和false将分别转换为1和0。
    (2)如果是数字值,只是简单的传入和返回。
    (3)如果是null值,返回0。
    (4)如果是undefined,返回NaN。
    (5)如果是字符串,遵循下列规则:

    • 如果字符串截去开头和结尾的空白字符后,不是纯数字字符串,那么最终返回结果为NaN。
    • 如果是字符串中只包含数字(包括前面带正号或负号的情况),则将其转换为十进制数值,即“1”变成1,“123”会变成123,而“011”会变成11(前导的零被忽略了);
    • 如果字符串中包含有效的浮点格式,如“1.1”,则将其转换为对应的浮点数值(同样也会忽略前导零);
    • 如果字符串中包含有效的十六进制格式,例如”0xf”,则将其他转换为相同大小的十进制整数值;
    • 如果字符串是空的(不包含任何字符),则将其转换为0;
    • 如果字符串中包含除上述格式之外的字符,则将其他转换成NaN.

    (6)如果是对象,则调用对象的valueOf()方法,然后依照前面的规则转换返回的值。如果转换的结果是NaN,则调用的对象的toString()方法,然后再次依照前面的规则转换返回的字符串值。

    var num1=Number("Hello World");  //NaN
    
    var num2=Number("");             //0
    
    var num3=Number("000011");       //11
    
    var num4=Number(true);           //1
    
    var num5=Number("num123")       //NaN

    二、parseInt()

    parseInt()函数可以将字符串转换成一个整数,与Number()函数相比,parseInt()函数不仅可以解析纯数字字符串,也可以解析以数字开头的部分数字字符串(非数字部分字符串在转换过程中会被去除)。
    (1)如果第一个字符不是数字字符或者负号,parseInt()就会返回NaN; 也就是说,用parseInt()转换空字符串会返回NaN。
    (2)如果第一个字符是数字字符,parseInt()会继续解析第二个字符,直到解析完所有后续字符或者遇到了一个非数字字符。
    (3)如果字符串以”0x”开头且后跟数字字符,就会将其当作一个十六进制整数。
    (4)如果字符串以”0”开头且后跟数字字符,就会将其当作一个八进制整数。
    (5)parseInt()函数增加了第二参数用于指定转换时使用的基数(即多少进制)。
    (6)当parseInt()函数所解析的是浮点数字符串时,取整操作所使用的方法为“向下取整”。

    var num1=parseInt("num123");    //NaN
    var num2=parseInt("");          //NaN
    var num3=parseInt("123.45")     //123
    var num4=parseInt("101010",2)   //42
    var num5=parseInt("123num")     //123
    var num6=parseInt("0xff")       //255

    三、parseFloat( )

    与parseInt()一样,parseFloat()也可以解析以数字开头的部分数字字符串(非数字部分字符串在转换过程中会被去除)。与parseInt()不同的是,parseFloat()可以将字符串转换成浮点数;但同时,parseFloat()只接受一个参数,且仅能处理10进制字符串。
    (1)字符串中的第一个小数点是有效的,而第二个小数点就是无效的了,因此它后面的字符串将被忽略。
    (2)如果字符串包含的是一个可解析为整数的数(没有小数点,或者小数点后面都是零),parseFloat()会返回整数。

    var num1=parseFloat("1234blue");    //1234
    
    var num2=parseFloat("0xA");         //0
    
    var num3=parseFloat("0908.5");      //908.5
    
    var num4=parseFloat("3.125e7");     //31250000
    
    var num5=parseFloat("123.45.67")    //123.45
    
    var num6=parseFloat("")             //NaN
    
    var num7=parseFloat("num123")       //NaN

    参考资料:

    https://blog.csdn.net/m0_38099607/article/details/72638678

  • 相关阅读:
    Proj THUDBFuzz Paper Reading: The Art, Science, and Engineering of Fuzzing: A Survey
    Proj THUDBFuzz Paper Reading: A systematic review of fuzzing based on machine learning techniques
    9.3 付费代理的使用
    11.1 Charles 的使用
    第十一章 APP 的爬取
    10.2 Cookies 池的搭建
    10.1 模拟登录并爬取 GitHub
    11.5 Appium 爬取微信朋友圈
    11.4 Appium 的基本使用
    11.3 mitmdump 爬取 “得到” App 电子书信息
  • 原文地址:https://www.cnblogs.com/fmyao/p/12574849.html
Copyright © 2011-2022 走看看