javascript中型別轉換
javascript是一種弱型別的語言,變數和型別無關,所以有時需要我們進行型別轉換
一、數字型轉換(number)
兩種方法:
number: 型別轉化走的是v8引擎最底層機制的轉化規則
parseFloat、parseInt:是提供額外的方法轉化規則
number
先將參考型別轉化為字串(tostring)方法,在把字串轉化為數字
字串 => 數字:非有效數字轉化為字串
布林值 => 數字 :1或0
null => 數字 : 0;
underfined => 數字 :NaN,
‘ ’ => 數字 :0
物件 => 數字:先把物件轉化成為字串,在轉化成為數字
【】 => 數字 :0
Number(10); // 10
Number('10'); // 10
Number(null); // 0
Number(''); // 0
Number(true); // 1
Number(false); // 0
Number([]); //
0 Number([1,2]); // NaN
Number('10a'); // NaN
Number(undefined); // NaN
parseint() parsefloat(【va】,【進制】),對字串從左到右依次查找有效的數字字符,知道遇到非有效字串,停止查找,把找到的當做數字回傳,
如果不是字串,先轉化為字串在使用此方法
let str = '12.5px'
parseInt(str) // 12
parseFloat(str)// 12.5
parseFloat(true)// NaN
isNaN判斷數字型別:
如果當前型別為數字型別,回傳false,否則回傳true
二、字串型別轉換(string)
原始型別,使用tostring方法()就是之前是什么樣子 在外層包一層引號
數字 => 字串:包裹一層引號,
NaN => 字串: 'NaN' ,
true => 字串: 'true' ,
null => 字串: 'null' (瀏覽器會報錯(禁止你使用)—— 通常可以進行轉換)
undefined => 字串:'undefined' (瀏覽器會報錯(禁止你使用)—— 通常可以進行轉換)
Object => 字串: '[object,Object]' ,
普通物件轉化的結果為 “ [object,object] ”,因為Object.prototype.toString 方法不是轉化為字串的,而是用來檢測資料型別的,
String(123); // "123"
String(true); // "true"
String(null); // "null"(報錯) String(undefined);// "undefined"(報錯) String([1,2,3]) // "1,2,3"
String({}); // "[object Object]"
三、布爾型別轉換(boolean)
1:‘ ’,
2:underfined,
3:NaN,
4:null,
5:false,
6: 0 ,
上面6個值在轉換成為布林值的時候為false,其他型別都是true
Boolean('') // false
Boolean(undefined) // false
Boolean(null) // false
Boolean(NaN) // false
Boolean(false) // false
Boolean(0) // false
Boolean({}) // true
Boolean([]) // true
四、原始型別的轉換
轉化原始型別分為兩種情況:轉化為字串型別或其他原始型別,
如果已經是原始型別,不需要再進行轉化,
如果轉字串型別,就呼叫內置函式中的 toString() 方法,
如果是其他基本型別,則呼叫內置函式中的 valueOf() 方法,
如果回傳的不是原始型別,則會繼續呼叫 toString() 方法,
如果還沒有回傳原始型別,則報錯,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/267136.html
標籤:其他
上一篇:理解javascript類陣列
