μ΄λ»κ² 보면, Number
λ μμ±μ ν¨μμ΄κΈ°λ νμ§λ§, νμ€ λΉνΈμΈ κ°μ²΄μ΄κΈ°λ ν©λλ€.
μ΄λ κ² λ κ°μ λ°©λ²μΌλ‘ μ¬μ©ν μ μλ μ΄μ λ, Number
μ체μ κ΄ν μ μ λ©μλμ νλ‘νΌν°λ€μ μ 곡νμ¬ μ«μ νμ
μ κ°μ νΈλ€λ§νλ λ° λμμ μ£ΌκΈ° μν¨μ
λλ€.
console.log(new Number(123)) // Number {123}
console.log(new Number(true)) // Number {1}
console.log(new Number(undefined)) // Number {NaN}
console.log(new Number(null)) // Number {0}
μ μμ μ, μμ±μ ν¨μμΈ λ§νΌ κ° μμ κ°μ²΄λ‘ λμ΅λλ€.
μ΄λ₯Ό κΊΌλ΄κΈ° μν΄μλ .valueOf
λ©μλλ₯Ό μ¬μ©ν΄μΌ ν©λλ€.
console.log(new Number(123).valueOf()) // 123
μ΄λ νΉμ΄ν μ μ, new
ν€μλλ₯Ό μ¬μ©νμ§ μμλ new
μμ±μ ν¨μλ₯Ό νΈμΆν μ μμ΅λλ€.
μ΄λμ λ°νκ°μ, μΈμ€ν΄μ€κ° μλ μ«μκ° κ·Έλλ‘λ₯Ό λ°νν©λλ€.
Number(1234) // 1234
μ¬μ€ λΆλμμμ μ°μ μ°μ°μ λ¬Έμ μ μ ν΄κ²°νκΈ° μν΄ λμ¨ λ§€μ° μμ μ«μμ΄μ§λ§...
κ°λ λ§μ μ£μ§μΌμ΄μ€λ€μ΄ μ‘΄μ¬νμ¬, μ¬μ€μ μλ²½ν κ²μ¦μλ μ’ λ λ€λ₯Έ λ°©μμ μ°μ°μ΄ νμν μΉκ΅¬μ
λλ€.
μ°Έκ³ λ‘, Number.EPSILON
κ°μ ν¬κΈ°λ 2.220446049250313e-16
μ
λλ€.
console.log(1.15 + 1.1 < 2.25 + Number.EPSILON) // false
μ± μμλ λ€μκ³Ό κ°μ΄ μ¬μ©νλ€κ³ λμ μμ΅λλ€.
const isEqual = (a, b) => Math.abs(a - b) < Number.EPSILON;
console.log(isEqual(1.15 + 1.1, 2.25))
μλ°μ€ν¬λ¦½νΈμμ νν κ°λ₯ν κ°μ₯ ν¬κ³ μμ κ°μ μλ―Έν©λλ€.
console.log(Number.MAX_VALUE) // 1.7976931348623157e+308
console.log(Number.MIN_VALUE) // 5e-324
μλ°μ€ν¬λ¦½νΈμμ μμ νκ² νν κ°λ₯ν κ°μ₯ ν° μ μλ₯Ό μλ―Έν©λλ€.
console.log(Number.MAX_SAFE_INTEGER) // 9007199254740991
console.log(Number.MIN_SAFE_INTEGER) // -9007199254740991
ν΄λΉ κ°μ΄ Infinity
, -Infinity
κ° μλμ§λ₯Ό νλ³ν©λλ€.
console.log(Number.isFinite(1/0)) // false;
ν΄λΉ κ°μ΄ μ μμΈμ§λ₯Ό νλ³νλ€μ!
μ΄λ, νλ³ μ μ묡μ λ³νμ μΌμ΄λμ§ μμ΅λλ€.
console.log(Number.isInteger(0.5 + 0.5)) // true;
console.log(Number.isInteger(false)) // false;
console.log(Number.isInteger(true)) // false;
console.log(Number.isInteger(Infinity)) // false;
μ΄ μΉκ΅¬λ λ§μ΄ μ°λ νΈμ΄μ£ .
Number
κ° μλ κ²°κ³Ό κ°μ΄λ, λμ€μ μΈμλ‘ μ λ¬ λ°μ κ°μ΄ NaN
ν κ°μ΄λ©΄ λ¬Έμ κ° λ°μν΄μ, λ°©μ΄ μ½λμ©μΌλ‘ λ§μ΄ μ¬μ©ν©λλ€.
function add(a, b) {
if (Number.isNaN(a) || Number.isNaN(b)) return;
return a + b;
}
Number.MIN_SAFE_INTEGER
<= value <= Number.MAX_SAFE_INTEGER
μ μ ν¨ν μ μκ°μΈμ§λ₯Ό νλ³ν©λλ€.
λ€λ§... μμ λ λΆλμμμ κ³μ°μ λν νκ³κ° μλ λ©μλμ λλ€ π
Number.isSafeInteger(Number.MAX_SAFE_INTEGER - 0.1); // true
μ§μ νκΈ°λ²μ λ§μΆ κ²°κ³Ό κ°μ λ°νν©λλ€.
μΈμλ‘, λͺ λ²μ§Έ μμμ κΉμ§ νκΈ°ν κ²μΈμ§λ₯Ό μ ν©λλ€.
μ΄λ, μ£Όμν μ μ λνΌ κ°μ²΄λ‘μμ Number
μ νμ©ν κ²½μ°μ, μ«μ νμ
μ κ°μ΄ μ μ νμ
μ΄λΌλ©΄, λ€μ .
μ μμμ μΌλ‘ ν΄μνκΈ° λλ¬Έμ μλ¬κ° νμλ©λλ€.
ν΄κ²°λ°©λ²μΌλ‘λ μ«μ λ€μ 곡백(' ')μ μ
λ ₯νκ±°λ ()
μΌλ‘ μ«μλ₯Ό κ°μΈμ£Όλ©΄ λ©λλ€.
console.log(21312.toExponential(6)) // Uncaught SyntaxError: Invalid or unexpected token
console.log((21312).toExponential(6)) // 2.131200e+4
console.log(21312.12324765.toExponential(6)) // 2.131212e+4
μ΄ μμ λΆλμμμ μ μ λλ‘ ν΄μνμ§ λͺ»νλ μ€λ₯κ° μμ΅λλ€...!
console.log((1.255).toFixed(2)) // 1.25 (1.26μ΄ κΈ°λκ°)
μ 체 μλ¦ΏμκΉμ§ μ ν¨νλλ‘ λλ¨Έμ§ μλ¦Ώμλ₯Ό λ°μ¬λ¦Όν©λλ€.
λ§μ½ ννν μ μλ€λ©΄ μ§μ νκΈ°λ²μΌλ‘ κ²°κ³Όλ₯Ό λ°νν©λλ€.
μ΄λ, μΈμμΈ μ 체 μλ¦Ώμλ₯Ό μλ΅νλ©΄ κΈ°λ³Έκ°μΌλ‘ 0μ΄ μ λ¬λ©λλ€.
(12345.6789).toPrecision(); // "12345.6789"
(12345.6789).toPrecision(1); // "1e+4"
(12345.6789).toPrecision(3); // "1.23e+4"
(12345.6789).toPrecision(5); // "12346"
(12345.6789).toPrecision(6); // "12345.7"
λ§ κ·Έλλ‘ λ¬Έμμ΄λ‘ λ°νν©λλ€.
"" + [λ¬Έμκ°]
κ³Ό λμΌν κ²°κ³Όλ₯Ό λ³μ΅λλ€.
(10).toString(); // "10"
(Infinity).toString(); // "Infinity"
(NaN).toString(); // "NaN"
μκ°λ³΄λ€ λΉν©μ€λ¬μ μ κ² κ°μμ.
μ μ΄λ κ² μ λλ κ² λ§μ...?
κ·Έλμ μ¬μ€ μ΄ ννΈμμ κΌ μκ³ λμ΄κ°μΌ ν κ² μμ΅λλ€.
λ°λ‘, μλ°μ€ν¬λ¦½νΈμμ μ°μ μ°μ°μλ νμ λΆλ μμμ μ΄ λ°©ν΄νλ€λ μ¬μ€μ
λλ€.
λ°λΌμ λ§μ½ μνλ κ²°κ³Όκ° μ λλ‘ λμ€μ§ μλλ€λ©΄, μ€λ§...?λΌλ μμ¬μ κΌ ν΄μΌ ν΄μ.
κ·Έ μ€λ§κ°... μ λ§ λͺ μκ°μ μ΄λ¦΄ μ μλ΅λλ€. π
κ·ΈλΌ, λ€λ€ μ¦κ±°μ΄ 곡λΆνμκΈΈ λ°λΌμ. μ΄μ!