javascript轉換成整數方法有:1、使用parseInt()方法,語法格式「parseInt(字串,要解析的數字的基數)」;2、使用Math.trunc()方法,語法格式為「Math.trunc(數值)」。
本教學操作環境:windows7系統、javascript1.8.5版、Dell G3電腦。
本文將會列舉並說明JavaScript 把一個number(或numerical的物件)轉換成一個整數相關方法。
parseInt的語法如下:parseInt(string, radix)
參數string的表示要解析的字串,也可以是一個對象,會自動調用物件的toString函數得到要解析的字串。
parseInt的第二個參數,可以指定要解析的數字的基數,注意該值介於 2 ~ 36 之間,如果該參數小於 2 或大於 36,則 parseInt() 將傳回 NaN。例如下面的程式碼,結果為8,這樣可以很方便的把其他的進位的數字轉換為10進位的數字:
parseInt(10,8) // 结果为8
當參數radix 的值為0,或沒有設定該參數時,parseInt() 會根據string 來判斷數字的基數。
舉例,如果 string 以 "0x" 開頭,parseInt() 會把 string 的其餘部分解析為十六進位的整數。如果 string 以 0 開頭,那麼 ECMAScript v3 允許 parseInt() 的一個實作把其後的字元解析為八進位或十六進位的數字。如果 string 以 1 ~ 9 的數字開頭,parseInt() 將把它解析為十進制的整數。
註解
1. 只有字串中的第一個數字會被傳回。什麼意思呢,如果輸入的字串是"123abc","123,123",那麼結果就是123,parseInt方法會自動忽略後面的非數字部分。
2. 輸入字串開頭和結尾的空格是允許的。
3. parseFloat 也具備以上兩個特徵,不過本文不重點敘述。
Math.trunc() 方法會將數字的小數部分去掉,只保留整數部分。例如以下程式碼:
Math.trunc(13.37) // 13 Math.trunc(42.84) // 42 Math.trunc(0.123) // 0 Math.trunc(-0.123) // -0 Math.trunc("-1.123") // -1 Math.trunc(NaN) // NaN Math.trunc("foo") // NaN Math.trunc() // NaN
當傳入的型別不是數字的時候,會自動做癮式轉換。但是如果是一個非numerical的參數的時候,回傳NaN。
IE瀏覽器並不支援這個方法,所以可以考慮polyfill:
Math.trunc || (Math.trunc = function(v){ return v < 0 ? Math.ceil(v) : Math.floor(v); // 使用Math.floor和Math.ceil方法 }) // 或者 if (!Math.trunc) { Math.trunc = function(v) { v = +v; if (!isFinite(v)) return v; return (v - v % 1) || (v < 0 ? -0 : v === 0 ? v : 0); // 返回: // 0 -> 0 // -0 -> -0 // 0.2 -> 0 // -0.2 -> -0 // 0.7 -> 0 // -0.7 -> -0 // Infinity -> Infinity // -Infinity -> -Infinity // NaN -> NaN // null -> 0 }; }
對於numerical的物件n,可以透過如下的方式來轉換為整數:
~~n 雙重位元取反(Double bitwise NOT)
n | n 位元或運算(Bitwise OR)
n | 0 和0的位元或運算(Bitwise OR with 0)
n << 0 位元左移運算0位元( Bitwise left shift)
n >> 0 位元右移運算0位元(Bitwise right shift)
n & n 為與運算(Bitwise AND)
例如程式碼如下:
~~1.23 // 1 -1.2 | -1.2 // - 1 -1.2 | 0 // - 1 3.4 >> 0 // 3 3.2 << 0 // 3 5.5 & 5.5 // 5 ~~"1.2" // 1.2
注意,從上面可以看出,位元運算下字串會自動轉換數字。
【推薦學習:javascript進階教學】
以上是javascript轉換成整數方法有哪些?的詳細內容。更多資訊請關注PHP中文網其他相關文章!