Js中的Number

關於Number的經常運用要領和注重點

NaN

NaN 是代表非数字的特別屬性

NaN 注重點

NaN不是一個數 然則屬於number範例

typeof NaN //"number"

NaNNaN不相等

NaN == NaN //false

什麼時刻會湧現NaN

数字和 NaN 舉行運算

1 [+ - * /] NaN = NaN

無效數學運算中

"a" - 1 || "a" * 1 || "a" / 1 = NaN  

数字 + undefined

1 + undefined = NaN

– 在舉行運算的時刻會 - * / 都邑默許的挪用 Number 要領 碰到沒法轉換的都是 NaN
– 由於 + 在JS中不僅僅是數學運算, 碰到字符串的時刻屬於字符串拼接 其他時刻也會默許挪用 Number 舉行轉換
– 消除数字和 NaN 舉行運算以外 也只要 数字 + undefined = NaN 細緻的看Number()的轉換規則

Number()

Number() 要領把值轉換為数字

對字符串舉行轉換

Number('66') //66
Number('66px') //NaN

對字符串舉行轉換的時刻只要 都是 数字才會轉換成数字 反之

對布爾值舉行轉換 truefalse

Number(true) //1
Number(false) //0

對布爾值舉行轉換的時刻 true = 1 false = 0

nullundefined

Number(null) // 0
Number(undefined) //NaN

nullundefined 的區分請看 null和undefined的區分 阮先生的這篇文章細緻的引見了

''[]

Number('') //0
Number([]) //0

[] 轉換為数字 起首挪用數組的 toString 要領把 [] -> ''

isNaN(), Number.isNaN()

isNaN()是ES5要領 Number.isNaN()是ES6在 Number 對象上新增添要領

isNaN() 檢測一個值是不是為NaN 會先挪用Number() 將非數值的值轉為數值,再舉行推斷

isNaN(NaN) //true
isNaN(1) //false
isNaN('1px') //true

Number.isNaN()只要關於NaN才返回true,非NaN一概返回false

isNaN(undefined) //true
Number.isNaN(undefined) //false 不會挪用 Number
isNaN("NaN") // true
Number.isNaN("NaN") // false

Number.isInteger()

Number.isInteger() 推斷一個數值是不是為整數。

Number.isInteger(11) // true
Number.isInteger(11.0) // true
Number.isInteger(11.1) // false

假如參數不是數值 都返回 false

Number.isInteger(null) //false
Number.isInteger(true) //false
Number.isInteger('') //false

parseInt(), Number.parseInt() parseFloat(), Number.parseFloat()

去掉非数字部份 返回数字部份
parseInt() 碰到的第一個非数字住手

parseInt('12px') // 12
parseInt('px12') //NaN

parseFloat() 比擬 parseInt() 能夠多辨認一個 .

parseFloat('12.333px') // 12
parseFloat('px12.333') //NaN

Number.parseInt() Number.parseFloat() 是 ES6 將全局要領parseInt()parseFloat(),移植到Number對象上面,行動完整堅持穩定。

toFixed()

toFixed()保存小數點後幾位

1.14432.toFixed(2) // "1.14"
1.14532.toFixed(2) // "1.15"

toFixed()運用四舍五入法

Math 對象

Math是一個對象,內里供應了許多操縱数字的相干要領

Math.abs()

Math.abs() 獵取絕對值

Math.abs(-1) //1
Math.abs(-true) //1

Math.ceil()

Math.ceil 向上取整

Math.ceil(12.000001) //13
Math.ceil(-12.6) //-12

Math.floor()

Math.floor 向下取整

Math.floor(12.6) //12
Math.floor(-12.6) //-13

Math.round()

Math.round() 四舍五入

Math.round(12.5) //13
Math.round(12.4) //12
Math.round(-12.4) //12
Math.round(-12.5) //12
Math.round(-12.6) //13

Math.max(), Math.min()

Math.max()取一組數的最大值

Math.max(12, 23, 13, 24, 23, 24, 25, 34, 15); //34

Math.min 取一組數的最小值

Math.min(12, 23, 13, 24, 23, 24, 25, 34, 15); //12

Math.random()

Math.random 獵取[0-1]之間的隨機小數

Math.random() //0.8184921957461317
Math.random() //0.351685690699056
Math.random() //0.4972569148842041

Math.trunc()

Math.trunc() 用於去除一個數的小數部份 返回整數

Math.trunc(1.23456) //1
Math.trunc(1.23456) //1
Math.trunc('3.43') //3
Math.trunc(true) //1
Math.trunc(NaN) //NaN
Math.trunc(undefined) //NaN

經由過程上面列子 很明顯的是Math.trunc() 要領 碰到非数字會默許挪用Number()舉行轉換

Math.sign()

Math.sign() 推斷一個數是正數、負數、照樣零。會默許挪用Number()舉行轉換
– 參數為正數 返回 1
– 參數為負數 返回 -1
– 參數為 0 返回 0
– 參數為-0 返回 -0
– 其他值 返回 NaN

Math.sign(6) // 1
Math.sign(-6) // -1
Math.sign(0) // 0
Math.sign(-0) // -0
Math.sign(null) // 0 
Math.sign(undefined) //NaN
Math.sign(NaN) // NaN

總結

– 獵取指定範圍內的隨機整數 代碼片斷-獵取指定範圍內的隨機整數

更多關於 ES6 Number 的擴大 還正在進修中 阮一峰ES6教程-數值的擴大

    原文作者:HaiWeiLian
    原文地址: https://segmentfault.com/a/1190000015270084
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞