強制數據類型轉換
1.強制轉換為數字
parseInt(string, radix) 將數據轉換為整數返回
? ? ? ? ? ? - 第一個參數接受的是個字符串也就是我們要轉換的數據
? ? ? ? ? ? - 第二個參數 基數,也可以理解為 標注出我們要轉換的這個字符串是幾進制的數字

parseFloat(string) 轉換成浮點數(也就是小數)
????????從左往右依次轉換,一個一個轉,當遇到自己無法轉換的字符,就停止轉換。
? ? ? ? ? ? ? ? var? num = '1a2.a3';
? ? ? ? ? ? ? ? var num2 = parseFloat(num);
? ? ? ? ? ? ? ? console.log(num2);? ? ? ? ? ? ? ? ? ? //? ? NaN? ??不是一個數字
Number(val) 將數據轉換成數字
? ??字符串類型,使用 Number() 轉換時,規(guī)則如下:
? ? ? ? ? ? ? ? 1.當整段字符串都復合數字規(guī)則時,轉換為數字返回
? ? ? ? ? ? ? ? 2.空字符串,直接返回 0
? ? ? ? ? ? ? ? 3.其余情況,直接返回 NaN
Number 耿直 必須得是全數字,如果含有非數字型字符,那就返回NaN
? ? ? ? var? num = '12.3';
? ? ? ? var num2 = Number(num);
? ? ? ? console.log(num2);? ? ? ? ? ? ? ? ??//? ? NaN
布爾值類型,使用 Number() 轉換時,true 返回 1,false 返回 0
????????null,使用 Number() 轉換時 返回 0
? ??????undefined,使用 Number() 轉換時 返回 NaN
? ??????對象類型,使用 Number() 轉換時,調用的對象的toString()方法,然后再次依照前面字符串的轉換規(guī)則進行轉換
NaN 和 isNaN
在使用 NaN 時,要注意 NaN 不等于任何值,包括它自己,也就是 NaN 不等于 NaN。
? ? ? ? ? ? -?它不是數字的數字類型!
? ? ? ? ? ? - 當我們要檢測一條數據是否是 NaN 時,可以使用 isNaN(val) 來進行檢測, 在 isNaN 方法中,傳入的數據能被轉換成 合法數字時,
? ? ? ? ? ? ??就會返回 false,當傳入的數據不能被轉換成 合法數字( 也就是NaN) 時,isNaN 就會返回 true
isNaN 在判斷之前 會給 字符串轉成數字( 調用Number方法)
? ? ? ? ? ?console.log(isNaN('123'))
? ? ? ? ? ?console.log(isNaN('123a'));
2. String(val) 轉換成字符串
????????- 數字類型,直接轉換數據類型原樣返回
????? ? - undefined ,直接返回字符串 undefined
????? ? - null,直接返回字符串 null
????? ? - 布爾值,直接返回字符串 true 或者 false
????? ? - 函數,直接把整個函數變成字符串 返回
????? ? - 對象,直接調用對象的 toString 方法
3.Boolean(val) 轉換成布爾值
????? ? - 數字類型:非零的合法數字轉換為 true, 零代表 false, NaN 代表 false
????? ? - 字符串類型:空字符串轉換為false,非空字符串轉換為true
????? ? - null:轉換為false
????? ? - 對象:轉換為true
隱式類型轉換
????????隱式數據類型轉換,也就是說這個轉換過程不受我們強制, js 偷偷自己轉的
