• js数据类型转换


    JavaScript 中,变量可以赋予任何类型的值。但是运算符对数据类型是有要求的,如果运算符发现,运算子的类型与预期不符,就会自动转换类型。数据类型除了可以自动转换以外,还可以手动强制转换。
     
    数据类型的转换
    • 强制转换
    • 隐式转换
    typeof 判断数据类型
    typeof操作符是用来检测变量的数据类型。对于值或变量使用typeof 操作符会返回如下字符串。
    1 var type=typeof "aaa";
    2 console.log(type);

    一:强制转换


    1、 强制转换为 - 字符串
    1).String() String(数据)
    1 var num=10;
    2 var a=num.toString(2);
    3 console.log(a);
    4 console.log(typeof num);
    5 console.log(typeof a);
    2).toString()  .toString(进制)
    可以将任意数字转换为任意进制
    toString 可以将任意数字转换为任意进制,进制必须大于等于2,小于等于36;
    最小是2进制,最大是36进制,因为数字(10)字母(26)共36个;
    1 var color=2552 var c=color.toString(16);
    3 console.log(c); // ff
    3).toFixed()

    3).toFixed()   .toFixed(小数点后几位);

    将数值转换为字符串,并按照小数点四舍五入,保留位数,但是有精度误差。
    1 var num=10.35;
    2 var a=num.toFixed(1);3 console.log(a); //10.3
    1 var num=0.5‐0.2;
    2 console.log(num==0.3);
    3 console.log(0.3‐0.2==0.1);
    2、强制转换为 - 数值
    Number()
    Number(数据)
    NaN 非数值 类型是number
    1) 纯字符---》 NaN
    1 var str="你好";
    2 var num=Number(str);
    3 console.log(num); //NaN
    2) 纯数字---》数字
    1 var str="你好";
    2 var num=Number(str);
    3 console.log(num);
    3) 部分数字,部分字符---》NaN
    1 var str="12";
    2 var num=Number(str);
    3 console.log(num);
    4) 布尔值---》数字 true--->1 false--->0
    1 var str="1a";
    2 var num=Number(str);
    3 console.log(num);
    5) undefined---》NaN
    1 var b=false;
    2 var num=Number(b);
    3 console.log(num);
    6) null---》0
    1 var a;
    2 var num=Number(a); 3 console.log(num);
     
    3、强制转换为 - 整数
    1)parseInt(str)
    a:纯字符---》 NaN
    1 var str="你好";
    2 var num=parseInt(str);
    3 console.log(num); //NaN
    b:纯数字---》数字
    1 var str="20";
    2 var num=parseInt(str);
    3 console.log(str); // num :20
    c:部分数字,部分字符---》 通过parseInt转换数值可以从开始转换到字符前为止变成数值,如果第一位是字符,返回NaN
    1 var str1="16a";//部分数值部分字符 按照10进制转换16
    2 var num=parseInt(str1);
    3 console.log(num1);
    4 var str2="a16";//部分数值部分字符 NaN
    5 var num=parseInt(str2);
    6 console.log(num2);

    d:布尔值---》NaN

    1 var str=false;
    2 var num=parseInt(str);
    3 console.log(num);
    e:undefined---》NaN
    1 var str;
    2 var num=parseInt(str);
    3 console.log(num);
    f:null---》NaN
    1 var str=null;
    2 var num=parseInt(str); 3 console.log(num);
    2)parseInt(字符,进制)
    可以将指定进制方式字符串转换为10进制,是toString()逆转换
    例1:parseInt(str,2); 将2进制字符串转换为10进制数值
    1 var str="1010";
    2 var num=parseInt(str,2);
    3 // num :10

    例2:parseInt(str,16); 将16进制字符串转换为10进制数值

    1 var str="FF";
    2 var num=parseInt(str,16);
    3 console.log(num);
    4 // #FF0000
    4、强制转换为 - 小数
    parseFloat() 可以保留小数位
    强转小数和parseInt类似
    1 var str1=25.541;
    2 var str2=25.541;
    3 var num1=parseInt(str1);
    4 var num2=parseFloat(str2);
    5 console.log(num1); //25
    6 console.log(num2); //25.541
    5、强制转换为 - 布尔值
    boolen()
    1) 转换为false有:
    "" 0 false,undefined,null,NaN,转换为布尔值都会变成false
     
    a:“”引号中间没有空格
    1 var str1="";
    2 var b=Boolean(str1);
    3 console.log(b); //false

    b: 0

    1 var str2=0;
    2 var b=Boolean(str2);
    3 console.log(b); //false
    c: false
    1 var str3=false;
    2 var b=Boolean(str3);
    3 console.log(b); //false
    d: underfind
    1 var str4;
    2 var b=Boolean(str4);
    3 console.log(b); //false
    e: null
    1 var str5=null;
    2 var b=Boolean(str5);
    3 console.log(b); //false
    f:NaN
    1 var str6=NaN;
    2 var b=Boolean(str6);
    3 console.log(b); //false
    2) 除此之外转换都是:true
    1 var str="aaa";
    2 var b=Boolean(str);
    3 console.log(b); //str
     
    二:隐式转换

    • j类型不同,弱类型语言会自动将数据转换为对应的类型
    • 当数据类型不相同时,做数据的运算,就会自动将两端的数据转换为相同类型然后运算,这是隐式转换
    • 隐式转换遵从与 String() Number() Boolean()
    例:加法运算:都转换为字符串运算
    1 var a=6;
    2 var b="a";
    3 var c=true;
    4 console.log(a+b); //6a
    5 //这里将a隐式转换为字符串,并且相加首尾相连6 console.log(a+c); // 7
    例:减法运算:都转换为数值
    1 var a=6;
    2 var b="a";
    3 console.log(a‐b);
    4 //减法会隐式转换将a和b都转换为数值 NaN 6‐NaN

      

  • 相关阅读:
    移动端 推送的那些东西
    git 常用命令
    顶部提示 先下移出来 再上移出去
    ViewPager 高度自适应
    进制转换
    Android 适配
    适配三星Galaxy S8及S8+ 屏幕比例为 18.5:9
    dpi dp px 换算关系
    资源前缀及代码分析总结
    判断是否快速点击或者滑动
  • 原文地址:https://www.cnblogs.com/moon-lee/p/12556773.html
Copyright © 2020-2023  润新知