javascript之数据类型(二)

借鉴阮一峰前辈:http://javascript.ruanyifeng.com/grammar/number.html

查看书籍:javascript高级程序设计第三版

一、Boolean类型

boolean类型的字面值只有true和false,但是ECMAscript中所有类型的值都与这两个boolean值等价的值。要将一个值转换为其对应的boolean的值,可以调用转型函数boolean()。

数据类型转换为true的值转换为false的值
Booleantruefalse
String任何非空字符串”“(空字符串)
Number任何非0数字值0和NaN
Object任何对象 
Null null
Undefined undefined
二、Number类型

JavaScript内部,所有数字都是以64位浮点数形式储存,即使整数也是如此。所以11.0是相同的,是同一个数。

 

  • 十进制:没有前导0的数值。
  • 八进制:有前缀0o\0O的数值,或者有前导0、且只用到0-7的七个阿拉伯数字的数值。
  • 十六进制:有前缀0x0X的数值。
  • 二进制:有前缀0b0B的数值。

 1.parseInt()将字符串转换为整数

    console.log(parseInt(undefined));   //NaN
    console.log(parseInt(null));        //NaN    
    console.log(parseInt(123));     //123
    console.log(parseInt(1.23));    //1
    console.log(parseInt('123'));    //123
    console.log(parseInt('   123')); //123
    console.log(parseInt('1.23'));   //1
    console.log(parseInt('123abcd'));//123
    console.log(parseInt('123e2'));  //123
    console.log(parseInt('123px'));  //123

由上段代码:

(1)undefined和null都被转为NaN

(2)如果传入不是字符串,先转为字符串,再转换。

(3)字符串转为整数的时候,是一个个字符依次转换,如果遇到不能转为数字的字符,就不再进行下去,返回已经转好的部分。

    console.log(parseInt(''));        //NaN
    console.log(parseInt('abcd123')); //NaN
    console.log(parseInt('+123'));    //123

由上段代码:

(4)如果字符串的第一个字符不能转化为数字(后面跟着数字的正负号除外),返回NaN

parseInt()方法还可以接收第二个参数,表示被解析的值的进制,返回该值对应的十进制数。

    console.log(parseInt(123,undefined));     //123
    console.log(parseInt(123,null));    //123
    console.log(parseInt(123,0));       //123
    console.log(parseInt(123,1));       //NaN
    console.log(parseInt('123',37));    //NaN
    console.log(parseInt('123',2));     //1
    console.log(parseInt('321',2));     //NaN
    console.log(parseInt('123',8));     //83
    console.log(parseInt('123',16));    //291

由上段代码:

(5)参数为0,undefined,null时,直接忽略

(6)第二个参数在2~36之间,超出范围会返回NaN

(7)如果字符串中的第一个数值可以转化,并且该数值超过进制本身值时,会返回NaN

(8)如果字符串中的第一个数值可以转化,并且该数值没超过进制本身值时,会转化到能转化的那一位

2.parseFloat() 将一个字符串转为浮点数

    console.log(parseFloat(1.23));          //1.23
    console.log(parseFloat('1.23'));        //1.23
    console.log(parseFloat('123e-2'));      //1.23
    console.log(parseFloat('0.123e2'));     //12.3

(1)如果字符串符合科学计数法,则会进行相应的转换。

(2)其他与parseInt差不多 

 3.Number()把非数值转换为数值

    console.log(Number(true));              //1
    console.log(Number(false));             //0
    console.log(Number(null));              //0
    console.log(Number(""));                //0
    console.log(Number(undefined));         //NaN
    console.log(Number("hello world!!!"));  //NaN
    console.log(Number("000011"));          //11
    console.log(Number({}));                //NaN

由上段代码:

(1)false,null,”“都被转换为0

(2)true转换为1

(3)只包含数字,前导0被忽略。

(4)undefined和非空串都被转换为NaN

(5)如果是对象,则调用对象的valueOf()方法,然后依照前面的规则转换返回的值。如果转换的结果是NaN,则调用对象的toString()方法,然后再依照前面的规则转换返回的字符串值。(这里没有代码实例)

转载于:https://my.oschina.net/wyc1219/blog/823695

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值