JS数据类型转换

JS数据类型转换

强制转换

主动将数据的类型强制转换为某种类型
1.强转字符串
 String(数据)  能够将任何类型的值转换为字符串。
    var num=null;
    var a=String(num);
    console.log(a);---->null
    console.log(typeof num);---->object
    console.log(typeof a);---->string

 数据.toString(进制)  强制转换为字符串  null和undefined是不能转换的
 toString可以将任何数字转换为任意进制,进制必须大于等于2并且小于等于36
 也就是最小是2进制,最大是36进制,因为数字字母就36个
    var num=10;
    var a=num.toString(2);
    console.log(a);---->1010
    console.log(typeof num);---->number
    console.log(typeof a);---->string

 toFixed(小数点后几位) 
 将数值转换为字符串,并且按照小数点四舍五入保留位数,但是有精度误差
    var num=10.35;
    var a=num.toFixed(1);
    console.log(a);

注意:任何数据都需要转换为二进制,但是原生js二进制小数转换以后恢复到数值时,是有误差的
    例如:
    var num=0.5-0.2;
    console.log(num==0.3);---->true
    console.log(0.3-0.2==0.1);---->false

2.强转数值

    Number(数据)
    NaN  非数值   类型是number
    var str="你好";---->纯字符 NaN
    var str="12";---->纯数字  数字
    var str="1a";--->部分数字,部分字符 还是NaN

    布尔值--->数字  true--->1   false--->0
        eg  var b=false;
            var num=Number(b);
            console.log(num);
    undefined--->NaN  
    null--->0
    
3.强转为整数 (将字符串转化为整型)
    parseInt(字符,进制)  可以将指定进制方式字符串转换为10进制数值,是toString()逆转换
    纯字符---> NaN
        var str="你好";
        var num=parseInt(str);
        console.log(num);---->NaN
    纯数字---> 数字
    部分数字,部分字符---> 通过parseInt转换数值可以从开始转换到字符前为止变成数值,如果第一位是字符,返回NaN
      eg var str="16a";    16
         var num=Number(str);
        var str="a16";    NaN
    布尔值强转数值整型,会变成NaN
    undefined--->NaN  
    null--->NaN

    var num=parseInt(str);如果第二个没有填值,则表示10进制数值转换
    eg: 
        var str="1010";   纯数字--->整数
        var num=parseInt(str,2);//将2进制字符串转换为数值
        console.log(num);---->num:10

    var num=16711680(红色)
    document.documentElement.style.backgroundColor="#"+(num.toString(16))


4.强转为小数
parseFloat(); 强转小数和parseInt类似,只不过可以保留小数位

5.转换为布尔值
Boolean(数据),将一个值转换为其对应的Boolean值。
"" 0 false,undefined,null,NaN  转换为布尔值都会变成false,除此之外转换都是true

隐式转换

    var a="1";
    var b=3;
    console.log(b+a);----->13(黑色字符型)
    console.log(b-a);----->2(蓝色数值型)
如果正常来说 两个不同类型的数据相加就会报错,但是现在没有报错,这种情况只可能发生再弱类型语句中,类型不相同,弱类型语言会自动将数据转换为对应的类型
 隐式转换:当数据类型不相同时,做数据的运算,就会自动将两端的数据转换为相同类型然后运算
 隐式转换遵从与 String() Number() Boolean()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值