数值转换 Number() parseInt() parseFloat()

Number()可以转换任何对象,后两者是针对字符串转数值
Number()
  1. Boolean类型。true -> 1 false -> 0
  2. undefined -> NaN
  3. null -> 0
  4. number类型

    有效的八进制,则输出对应的十进制
    有效的十六进制,还是输出对应的十进制
    

    这里写图片描述

  5. 字符串

     -->仅包含数字,转换成数字 
    Number('01113444')  ->  1113444(前面的0忽略)
    Number('011') -> 11 (不会转换成8进制)
    
     -->有效的浮点数,转换成对应的浮点值 
     Number('01.189') -> 1.189   
     Number('1.20') -> 1.2 (前后0 都忽略)
    
     --> 有效的16进制,转换成对应的10进制
     Number( '0xa') -> 10
    
     --> 空字符串(不包含任何字符) 
     Number('') -> 0
     Number('    ')  -> 0
    
     --> 其他管他是啥,都是NaN 
     Numer('we121') -> NaN
    

6.对象 先调用valueOf,如果是NaN 再调用toString() (还在研究)


parseInt 和 parseFloat 相似

<相同点>:

  1. parseInt(undefined || null) -> NaN
    parseFloat(undefined || null) -> NaN

    这里写图片描述
    讲道理,这样写没有意义。设定的时候parseInt和parseFloat设定的时候是string,我就想试试看 有没有人跟我一样闲….

  2. 可以解析8进制和16进制

    --> 以0开头,满足8进制,都将从8进制数字转换成10进制(默认),不是8进制,那就不是咯。。
    parseInt(011) -> 9  
    parseInt(099) -> 99  
    parseInt(01299) -> 1299
    
    那么  parseInt('010') ->????
    答案 是 不确定......可能是10 也可能是 8...
    <span style="color:red;">注</span>:旧浏览器由于使用旧版本的ECMAScript(ECMAScript版本小于ECMAScript 5,当字符串以"0"开头时默认使用八进制,ECMAScript 5使用的是十进制),所以都有可能咯,看浏览器咯       
    
    --> 以0x开头,满足16进制的格式,都将从16进制数字转换成10进制的(默认),不是16进制,那就不是咯。。
    parseInt(0xa) -> 10 
    parseInt(0xgg) 就报错咯
    

    所以呀!
    parseFloat(01.22) 试试 就报错了~
    parseFloat(‘01.22’) -> 1.22 就没错

  3. 可以指定转换的基数

    parseInt(string, radix) || parseFloat(string, radix)  
    parseInt('011', 8) -> 9
    



<不同点>:

  1. 如果第一个字符不是数字或者负号,parseInt返回NaN

    特殊的:<b style="color:green">parseInt('') -> NaN </b> 
            parseInt('js121') -> NaN
    

    如果第一个字符不是数字、负号或者. ,parseFloat返回NaN

     parseFloat('.11')  -> 0.11
    

    2.parseFloat忽略前导零和后面的0

    parseFloat('011.1000') -> 11.1
    

先写这么多,再补充

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值