javaScript基礎用Number()把其它類型轉換為Number類型


js在做加法運算時會隱式調用Number()方法

一:基本類型

字符串

把字符串轉換為數字,只要字符串中包含任意一個非有效數字字符(第一個點除外)結果都是NaN,空字符串會變為數字零

console.log(Number("12.5")); //12.5
console.log(Number("12.5px")); //NAN
console.log(Number("12.5.5px"));//NAN
console.log(Number(""));//0

布爾

console.log(Number(true));//1
console.log(Number(false));//0
console.log(isNaN(false));//false可以轉為0 是有效數字

null和undefined

console.log(Number(null));//0
console.log(Number(undefined));//NaN

二:引用數據類型

把引用數據類型轉換為數字是先把它基於toString()轉換為字符串,再轉換為數字

console.log(Number({num:"10"}));//NaN
console.log(Number({}));//NaN  ({num:"10"}).toString();是"[object Object]" 是非有效數字字符所以是NaN
console.log(Number([]));//0 [].toString()是""所以轉為數字是0
console.log(Number([12]));//12 [12].toString()是"12"所以轉為數字是12
console.log(Number([12,23]));//NaN [12].toString()是"12,23"里面的","是非有效數字字符所以是NaN

相關面試題

let a=10+null+true+[]+undefined+'騰訊'+null+[]+10+false;
console.log(a)//結果是字符串: "11undefined騰訊null10false"
上面的面試題會隱式調用Number(),null變為數字是0,true是1,[]變為數字,先要經歷變為空字符串,遇到字符串,啥也別想了,直接變為字符串拼接.所以結果是字符串"11undefined騰訊null10false"
當去掉undefined前面的[]結果就變成了NaN騰訊null10false


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM