JavaScript中將字符串轉換為數(shù)字的七種方法總結
1. 使用 parseInt()
parseInt()解析一個字符串并返回一個整數(shù)。允許空格。僅返回第一個數(shù)字。
這種方法雖然有一個限制。如果您解析十進制數(shù),它將四舍五入到最接近的整數(shù)值,并將該值轉換為string??赡苄枰褂?code>parseFloat()方法進行文字轉換。
myString = '129' console.log(parseInt(myString)) // expected result: 129 a = 12.22 console.log(parseInt(a)) // expected result: 12
2. 使用 Number()
Number()可用于將 JavaScript 變量轉換為數(shù)字。我們可以用它來轉換字符串太數(shù)字。
如果該值不能轉換為數(shù)字,NaN則返回。
Number("10"); // returns 10Number(" 10 "); // returns 10Number("10.33"); // returns 10.333. 使用一元運算符 (+)
一元加號運算符 ( +) 在其操作數(shù)之前并計算其操作數(shù),但如果尚未將其轉換為數(shù)字,則嘗試將其轉換為數(shù)字。
const x = 25; const y = -25; console.log(+x); // expected output: 25 console.log(+y); // expected output: -25 console.log(+''); // expected output: 0
4.使用parseFloat()
parseFloat()解析一個字符串并返回一個數(shù)字。允許空格。僅返回第一個數(shù)字。
parseFloat("10"); // returns 10
parseFloat("10.33"); // returns 10.33
parseFloat("10 20 30"); // returns 10
parseFloat("10 years"); // returns 10
parseFloat("years 10"); // returns NaN5. 使用 Math.floor()
該Math.floor()函數(shù)返回小于或等于給定數(shù)字的最大整數(shù)。這對于十進制數(shù)字可能有點棘手,因為它將最接近的整數(shù)的值返回為Number。
str = '1222' console.log(Math.floor(str)) // returns 1222 a = 12.22 Math.floor(a) // expected result: 12
6.乘以數(shù)字
將字符串值乘以1不會改變值,并且默認情況下它會轉換為數(shù)字。
str = '2344' console.log(str * 1) // expected result: 2344
7. 雙波浪號 (~~) 運算符
我們可以使用雙波浪號運算符將字符串轉換為數(shù)字。
str = '1234' console.log(~~str) // expected result: 1234 negStr = '-234' console.log(~~negStr) // expected result: -234
這是性能方面提到的方式的比較。
補充:js 強制轉換 為數(shù)字類型
/* * 將其他的數(shù)據(jù)類型轉換為Number * 轉換方式一: * 使用Number()函數(shù) * - 字符串 --> 數(shù)字 * 1.如果是純數(shù)字的字符串,則直接將其轉換為數(shù)字 * 2.如果字符串中有非數(shù)字的內容,則轉換為NaN * 3.如果字符串是一個空串或者是一個全是空格的字符串,則轉換為0 * - 布爾 --> 數(shù)字 * true 轉成 1 * false 轉成 0 * * - null --> 數(shù)字 0 * * - undefined --> 數(shù)字 NaN * * 轉換方式二: * - 這種方式專門用來對付字符串 * - parseInt() 把一個字符串轉換為一個整數(shù) * - parseFloat() 把一個字符串轉換為一個浮點數(shù) */ var a = "123"; //調用Number()函數(shù)來將a轉換為Number類型 a = Number(a); a = false; a = Number(a); a = null; a = Number(a); a = undefined; a = Number(a); a = "123567a567px"; //調用parseInt()函數(shù)將a轉換為Number /* * parseInt()可以將一個字符串中的有效的整數(shù)內容去出來, * 然后轉換為Number */ a = parseInt(a); /* * parseFloat()作用和parseInt()類似,不同的是它可以獲得有效的小數(shù) */ a = "123.456.789px"; a = parseFloat(a); /* * 如果對非String使用parseInt()或parseFloat() * 它會先將其轉換為String然后在操作 */ a = true; a = parseInt(a); a = 198.23; a = parseInt(a); console.log(typeof a); console.log(a); /* * 在js中,如果需要表示16進制的數(shù)字,則需要以0x開頭 * 如果需要表示8進制的數(shù)字,則需要以0開頭 * 如果要要表示2進制的數(shù)字,則需要以0b開頭 * 但是不是所有的瀏覽器都支持 * */ //十六進制 a = 0x10; a = 0xff; a = 0xCafe; //八進制數(shù)字 a = 070; //二進制數(shù)字 //a = 0b10; //向"070"這種字符串,有些瀏覽器會當成8進制解析,有些會當成10進制解析 a = "070"; //可以在parseInt()中傳遞一個第二個參數(shù),來指定數(shù)字的進制 a = parseInt(a,10); console.log(typeof a); console.log(a);
總結
到此這篇關于JavaScript中將字符串轉換為數(shù)字的七種方法的文章就介紹到這了,更多相關js字符串轉換為數(shù)字內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
javascript實現(xiàn)checkbox全選的代碼
本文給大家分享的是js實現(xiàn)checkbox的全選的代碼,在網(wǎng)頁制作中很常用的js代碼,供大家學習參考。2015-04-04
js實現(xiàn)內容顯示并使用json傳輸數(shù)據(jù)
這篇文章主要為大家詳細介紹了js實現(xiàn)內容顯示并使用json傳輸數(shù)據(jù)的方法,感興趣的小伙伴們可以參考一下2016-03-03
JavaScript中的finally()方法和Filter()方法詳解
finally是 JavaScript 構造中使用的方法try-catch,Filter() 是 JavaScript 中的一種方法,可以通過處理數(shù)組輕松提供過濾后的輸出數(shù)據(jù),本文就給大家詳細的介紹一下JavaScript中的finally()方法和Filter()方法,需要的朋友可以參考下2023-08-08

