在 javascript 中,使用 number() 函數(shù)將值轉(zhuǎn)換為數(shù)值型:字符串:number(string) 解析數(shù)字部分為數(shù)字。布爾值:true/false 轉(zhuǎn)換為 1/0。對(duì)象:如果有 valueof 或 tostring 方法,則調(diào)用獲取數(shù)字值。特殊情況:空值(空字符串、空數(shù)組、null、undefined)返回 0;infinity/-infinity 返回相應(yīng)數(shù)字;nan 返回 nan。
如何將 JavaScript 值轉(zhuǎn)換為數(shù)值型
在 JavaScript 中,將值轉(zhuǎn)換為數(shù)值型涉及使用內(nèi)置函數(shù) Number()。此函數(shù)接受各種類型的值,包括字符串、布爾值和對(duì)象,并返回它們的數(shù)值等價(jià)物。
轉(zhuǎn)換字符串
要將字符串轉(zhuǎn)換為數(shù)字,可以使用 Number(string) 語法。函數(shù)將字符串中的數(shù)字部分解析為數(shù)字,而忽略任何非數(shù)字字符。
const numStr = '123.45'; const num = Number(numStr); // 結(jié)果:123.45
登錄后復(fù)制
轉(zhuǎn)換布爾值
布爾值 true 和 false 分別轉(zhuǎn)換為數(shù)字 1 和 0。
const bool = true; const num = Number(bool); // 結(jié)果:1
登錄后復(fù)制
轉(zhuǎn)換對(duì)象
如果對(duì)象具有 valueOf 或 toString 方法,則 Number() 函數(shù)將調(diào)用該方法以獲取數(shù)字值。否則,它將返回 NaN(非數(shù)字)。
const obj = { valueOf() { return 10; } }; const num = Number(obj); // 結(jié)果:10
登錄后復(fù)制
特殊情況
如果值為空字符串 (”)、空數(shù)組 ([])、null 或 undefined,Number() 函數(shù)將返回 0。
如果值是 Infinity 或 -Infinity,Number() 函數(shù)將返回相應(yīng)的數(shù)字。
如果值是無效數(shù)字 (NaN),Number() 函數(shù)將返回 NaN。
注意:
Number() 函數(shù)不會(huì)改變?cè)贾怠K冀K返回一個(gè)新的數(shù)值。
如果無法轉(zhuǎn)換值,Number() 函數(shù)將返回 NaN。因此,在使用轉(zhuǎn)換后的值之前,建議檢查它是否為 NaN。