解析JavaScript的隱式類型轉換
阿新 • • 發佈:2019-05-17
bin typeof 基本類 引用類型 scrip pac follow one 根據 avaScript的數據類型分為六種,分別為null,undefined,boolean,string,number,object。object是引用類型,其它的五種是基本類型或者是原始類型。我們可以用typeof方法打印來某個是屬於哪個類型的。不同類型的變量比較要先轉類型,叫做類型轉換,類型轉換也叫隱式轉換。隱式轉換通常發生在運算符加減乘除,等於,還有小於,大於等。。
typeof ‘11‘ //string
typeof(11) //number
‘11‘ < 4 //false
基本類型的轉換
下面先講加減乘除:
1.字符串加數字,數字就會轉成字符串。
2.數字減字符串,字符串轉成數字。如果字符串不是純數字就會轉成NaN。字符串減數字也一樣。兩個字符串相減也先轉成數字。
3.乘,除,大於,小於跟減的轉換也是一樣。
//隱式轉換 + - * == /
// +
10 + ‘20‘ //2010
// -
10 - ‘20‘ //-10
10 - ‘one‘ //NaN
10 - ‘100a‘ //NaN
// *
10*‘20‘ //200
‘10‘*‘20‘ //200
// /
20/‘10‘ //2
‘20‘/‘10‘ //2
‘20‘/‘one‘ //NaN
再來看看一組 == 的。
1.undefined等於null
2.字符串和數字比較時,字符串轉數字
3.數字為布爾比較時,布爾轉數字
4.字符串和布爾比較時,兩者轉數字
// == undefined == null; //true ‘0‘ == 0; //true,字符串轉數字 0 == false; //true,布爾轉數字 ‘0‘ == false; //true,兩者轉數字 null == false; //false undefined == false; //false
引用類型的轉換
基本類型間的比較相對簡單。引用類型和基本類型的比較就相對復雜一些,先要把引用類型轉成基本類型,再按上述的方法比較。引用類型轉布爾全是true。比如空數組,只要是對象就是引用類型,所以[]為true。引用類型轉數字或者字符串就要用valueOf()或者toString();對象本身就繼承了valuOf()和toString(),還可以自定義valueOf()和toString()。根據不同的對象用繼承的valueOf()轉成字符串,數字或本身,而對象用toString就一定轉為字符串。一般對象默認調用valueOf()。
1.對象轉數字時,調用valueOf();
2.對象轉字符串時,調用toString();
本次給大家推薦一個免費的學習圈,裏面概括移動應用網站開發,css,html,webpack,vue node angular以及面試資源等。**獲取資料
解析JavaScript的隱式類型轉換