js数据类型的转换

数据类型的转换

转换为数值型

字符型转换为数值型

a = Number(a);//强制转换 纯数字字符 =>数字; 纯字母字符 => NaN; 带字母字符 => NaN; null => 0; undefined => NaN; true => 1; false => 0 (NaN 含义是非数值,它的类型是 number )

    NaN 非数值 数值类型 
    var a  = "a";//字符串中只要含有非数字就会转换为NaN,否则就会转换为数值
    a = parseInt(a);//转换为整型数值,从开始向后转换,遇到字符停止(如果开始是数值就可以转换)
    从第一位开始检查,是数字就转换,知道一个不是数字的内容
开头就不是数字,那么直接返回 NaN
    var a = "101011";
    a = parseInt(a,2);//将字符按照指定的进制类型转换,第二个是进制类型
    a = parseFloat(a);//转换为浮点数
    从第一位开始检查,是数字就转换,知道一个不是数字的内容
开头就不是数字,那么直接返回 NaN

    
布尔型转换为数值型

var a = true; a = Number(a);//强制转换为数值

对象型转换为数值型

console.log(Number({a:1}));//NaN

其他转为数值型

​ undefined null
​ var a = undefined; //NaN

var a = null;
a = Number(a); //0

``

转换为字符型

数值转换为字符

a = String(a); //强制转换为字符串

    var a =2.556;
    a = a.toString(2);//转换为2进制
    a = a.toString(36);//将数值按照指定的进制类型转换为字符串,进制2 到 36之间
    var a = "4.15"
     a = a.toFixed(2);//保留小数点后两位
    a = a.toFixed(1);//保留小数点后一位,四舍五入,保留一位有误差
    保留一位小数时候,保留一位小数误差最大,十进制转二进制,二进制会取相近的数值,再转到十进制
    先除100 取整再乘100
    eg var a=3.15;
     a=a.toFixed(1);
     console.log(a);3.1 注:数值后面的小数点越多,保留一位小数的精度越高
    console.log(0.1+0.2 != 0.3);
    解决办法
    1.限制精确位数
	可以限制保留几位小数的方式来避免误差  const num=(0.1+0.2).toFixed(2);
    a = a.toPrecision(2);//保留多少位数值
    var num = new Number(13.3714);
    var a = num.toPrecision();13.3714
    var b = num.toPrecision(2);13
    var c = num.toPrecision(3);13.4
    var d = num.toPrecision(10);13.37140000
    a = a.toExponential(2);//保留2位小数 科学计数法
    var num = 5.56789;
	var n=num.toExponential(3);5.568e+0
    a = a.toLocaleString();//本地字符串 
    var d=new Date();
	var n=d.toLocaleString();
	n 输出结果:2020/10/8 下午7:30:43
	toLocaleString() 方法可根据本地时间把 Date 对象转换为字符串,并返回结果。
    科学计数法:绝对值大于10的数记成a*10(n)次方 a大于等于1小于10
布尔值,undefined,null转字符
    布尔值 undefined null
    转换为字符串toString()
    "true" "false"
    "undefined"
    "null"
    //toString 是对象的方法 undefined null不能转换,String所有都可以转
对象转字符
     var a = {a:1,b:2};
     var a = {a:2,c:4};
     a = String(a);
     console.log(a);//[object Object] [对象 对象类型] 
    //任何对象转换字符串都为[object Object]

转换为布尔值

6种false方式

"",0,undefined,null,false,NaN 都是false 除此之外都是true
var a =" ";// 空格字符串 true
// var a = “”;
// if(!a){
// a 有6种取值才能运行if("",0,undefined,null,false,NaN)
// }//遇到! 需要将值转换为布尔值取反(遇到! 优先转换布尔值,没遇到! 优先转换为字符)
``

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值