js基礎_強制型別轉換-string
強制型別轉換
指將一個數據型別強制轉換為其它的資料型別
型別轉換主要是將其它的資料型別轉換為:String、Number、Boolean
[========]
將其它的資料型別轉為String
①方式1
呼叫被轉資料型別的toString()方法。
該方法不會影響到原變數的型別,因為它會將轉換的結果返回,只有通過返回值來重新賦值。
比如: a=a.toString();
注意:null和undefined這兩個值沒有tostring()方法,如果呼叫tostring()方法會報錯。所以方式1有侷限性。
②方式2
呼叫String()函式,並將被轉換的資料作為引數傳遞給函式。
比如: a=String(a);
注意:使用String()函式做強制型別轉換時,對於Number、Boolean實際上就是呼叫toString()方法,但是對於null和undefined這兩個值就不會呼叫toString()方法,它會將null直接轉換為”null”,將undefined直接轉換為”undefined”。
[========]
將其他的資料型別轉換為Number
①轉換方式一
使用Number()函式。
比如:a=Number(a);
字串轉換為數字的轉換情況:
1,如果是純數字的字串,則直接轉換成數字。
2,如果字串中有非數字的字元,則轉換成NaN。
3,如果字串是一個空串或者全是空格的字串則轉換成0
布林值轉數字
true轉成1
false轉成0
Null轉數字
null轉成0
Undefined轉數字
undefined轉成NaN
方式一會有侷限性,比如:”10px”+10的話,做不到,因為前面一坨被轉為了NaN了。
②轉換方式二
這種方式專門用來處理字串
parseInt():把一個字串轉換為一個整數。
parseFloat():把一個字串轉換為一個浮點數。
parseInt():可以將一個字串中的有效整數內容取出來,然後轉換為Number,它是從左往右開始讀的,直到遇到第一個非數字的字元時結束。
比如:var a=”123px”;
a=parseInt(a);—->結果:”123”
注意:如果對非String型別使用parseInt()或者parseFloat(),它會先將其轉換為String然後再操作。比如 var a=true;a=parseInt(a);——->結果Nan
[========]
將其它資料型別轉換為Boolean
使用Boolean()函式
數值型別轉布林
除了0和NaN,其餘都為true(值)
字串轉為Boolean
除了空串,其餘都為true(值)
比如:var a=””;a=Boolean(a);console.log(a);//結果為false
null 和Undefined 轉為 Boolean
都會轉成false
Object 轉為 Boolean
都會轉成true
方式二
為任意型別的值做兩次非運算,即可將其轉換為布林值。
原理和Boolean()函式一樣