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

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM