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