数据类型的转换

1.其他数据类型转换为String

  • toString()函数

         除了null,undefined,其他三种基本数据类型的变量均有一个toString()方法                  

         如果这个值为number类型,那么tostring()可以接受一个参数(2、8、10、16),默认转化为10进制

  • String()函数  包装器、转换器

            可以将其他任意基本数据类型的值转换为字符串,包括null,undefined

  • 拼接空字符串        +""    

2.其他数据类型转换为Boolean

  • Boolean()   包装器

        任意其他数据类型都可以转换为布尔类型

Booleantruefalse
String非空字符串'   '空字符串
Number任何非00/NaN
Object任何对象null
Undefined不适用undefined
  • 使用两次逻辑非(!!)转换

3.其他数据类型转换为Number

  • Number()    包装器、转换器

           1) 如果转换的值是null,undefined,boolean,number

                Number(true);                    //1
                Number(false);                  //0
                Number(null);                    //0
                Number(undefined);         //NaN
                Number(10);                     //10 如果是数字值,原样输出

             2)  如果转换的值是string

                Number("123");      //如果仅包含数值,转换为对应的数值
                Number("234.1");    //解析为对应的小数        
                Number("+12.1");    //首位为符号位,其余为为数值,转换为对应的数值    
                Number("1+2.3");    // NaN 符号位出现在其他位置,解析为NaN    
                Number("0xa");       //10 如果仅包含十六进制格式,转为为对应的十进制的值
                Number("010");       //10【注意】不会当做八进制被解析,结果为10。    
                Number("");             // 0  空字符串被转换为0
                Number("123ac");    // NaN 包含其他字符: NaN                
                Number(“ 12 ");        //12

  • parseInt()函数

            1)如果转换的值是null,undefined,boolean,均转换为NaN

            2)如果转换的值是Number    Number(整数)

            3)如果转换的值是string    Number(整数)

  • parseFloat()函数

           1)如果转换的值是null,undefined,boolean,均转换为NaN

           2)如果转换的值是Number    Number(浮点型)

           3)如果转换的值是string    Number(浮点型)

  •  +,将不是number的数据转换为number类型

4.注意

            1)加法 +(m + n)
                当m,n不为String,Object类型的时候,先将m,n转换为Number类型,然后再进行计算
                当m,n有一个为String,无论另一个操作数为何(但不为对象)都要转换为String,然后再进行拼接
                当m,n 有一个为对象,如果该对象既重写toString,又重写了valueOf方法,先调用valueOf方法获取返回值,将该返回值和另外一个操作数进行运算。如果该对象没有重写valueOf方法,将调用toString方法获取返回值,将该返回值和另外一个操作数进行运算。
            2)默认情况下,ECMAScript会将小数点后带有6个零以上的浮点数转化为科学计数法。
            3)在进行算术计算时,所有以八进制十六进制表示的数值都会被转换成十进制数值。
            4)保存浮点数需要的内存是整数的两倍,因此ECMAScript会不失时机将浮点转换为整数
            5)避免测试某个特定的浮点数值,是使用IEEE754数值的浮点计算的通病
                例如:    
                0.1+0.2    //结果不是0.3,而是0.30000000000000004   

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值