2-3 ์ˆซ์ž

Nomade_Simiaยท2021๋…„ 11์›” 14์ผ
0

[You don't know JS] ๋ฐฐ์›€ ์ผ์ง€

๋ชฉ๋ก ๋ณด๊ธฐ
5/6

๐Ÿ“Œ์ด๋ฒˆ์—๋Š” ์ˆซ์ž์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž


ํ”ํžˆ ์šฐ๋ฆฌ๊ฐ€ ์ˆซ์žํ˜• ํƒ€์ž…์„ ๋– ์˜ฌ๋ฆฌ๋ฉด ์ •์ˆ˜, ์ž์—ฐ์ˆ˜, ์‹ค์ˆ˜, ๋ณต์†Œ์ˆ˜ ๋“ฑ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ํ˜•ํƒœ๋ฅผ ๋– ์˜ฌ๋ฆฐ๋‹ค.

double, int, float

๊ทธ๋Ÿผ JS๋Š” ์–ด๋–จ๊นŒ?
๋†€๋ž๊ฒŒ๋„ JS์— ์กด์žฌํ•˜๋Š” ์ˆซ์žํƒ€์ž…์€ number ์˜ค์ง ํ•œ๊ฐœ์ด๋‹ค. ์ฆ‰, number๊ฐ€ ์ •์ˆ˜ ๋ถ€๋™ ์†Œ์ˆ˜์  ์ˆซ์ž๋ฅผ ๋ชจ๋‘ ์•„์šฐ๋ฅธ๋‹ค.

๐Ÿ’ก JS์—๋Š” ์ง„์ •ํ•œ ์ •์ˆ˜๊ฐ€ ์—†๋‹ค๋Š” ์ด์œ ๋กœ ์˜ค๋žซ๋™์•ˆ ์š•์„ ๋จน์—ˆ๋‹ค! ๋”ฐ๋ผ์„œ JS์—์„œ ์ •์ˆ˜๋Š” ๋ถ€๋™ ์†Œ์ˆ˜์ ์ด ์—†๋Š” ๊ฐ’์ด๋‹ค. (ex 42.0 === 42)

ํ˜„๋Œ€์˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋Š” "IEEE 754 ํ‘œ์ค€(๋ถ€๋™ ์†Œ์ˆซ์  ํ‘œ์ค€)์„ ๋”ฐ๋ฅธ๋‹ค. JS์˜ number๋„ ์ด๋ฅผ ๋”ฐ๋ฅด๋ฉฐ ๊ทธ์ค‘์—์„œ๋„ ์ •ํ™•ํžˆ "๋ฐฐ ์ •๋„" ํ‘œ์ค€ ํฌ๋งท(64๋น„ํŠธ ๋ฐ”์ด๋„ˆ๋ฆฌ)์„ ์‚ฌ์šฉํ•œ๋‹ค.
.
.
.

๐Ÿ“Ž์ˆซ์ž ๊ตฌ๋ฌธ


JS์—์„œ ๋ณ€์ˆ˜์— ์ˆซ์ž๋ฅผ ๋Œ€์ž…ํ•˜๋Š” ๋ฌธ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

1๏ธโƒฃ JS์˜ ์ˆซ์ž ๋ฆฌํ„ฐ๋Ÿด์€ 10์ง„์ˆ˜ ๋ฆฌํ„ฐ๋Ÿด๋กœ ํ‘œ์‹œํ•œ๋‹ค.

2๏ธโƒฃ ์†Œ์ˆ˜์  ์•ž ์ •์ˆ˜๊ฐ€ 0์ด๋ฉด ์ƒ๋žต ๊ฐ€๋Šฅํ•˜๋‹ค.

3๏ธโƒฃ ์†Œ์ˆ˜์  ์ดํ•˜๊ฐ€ 0์ผ๋•Œ๋„ ์ƒ๋žต ๊ฐ€๋Šฅํ•˜๋‹ค.


๐Ÿ’ป code

var a = 42;
var b = 42.3;

var a = 0.42;
var b = .42;

var a = 42.0;
var b = 42.;
/* 
42.๊ณผ ๊ฐ™์ด ํ‘œํ˜„ํ•˜๋Š” ๊ฒƒ์€ ํ‹€๋ฆฐ ํ‘œํ˜„์€ ์•„๋‹ˆ์ง€๋งŒ ๋‹ค๋ฅธ์‚ฌ๋žŒ์ด ์ฝ”๋“œ๋ฅผ ์ฝ์„๋•Œ
ํ˜ผ๋™ํ•  ์ˆ˜ ์žˆ์œผ๋‹ˆ ์œ„์™€ ๊ฐ™์€ ํ‘œํ˜„์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ์ข‹์€ ์ƒ๊ฐ์ด ์•„๋‹ˆ๋‹ค!
*/

var a = 42.300;
var b = 42.0;

a;// 42.3
b;// 42

4๏ธโƒฃ ์•„์ฃผ ํฌ๊ฑฐ๋‚˜ ์•„์ฃผ ์ž‘์€ ์ˆซ์ž๋Š” ์ง€์ˆ˜ํ˜•์œผ๋กœ ํ‘œ์‹œํ•˜๋ฉฐ, toExponential()๋ฉ”์„œ๋“œ์˜ ๊ฒฐ๊ณผ๊ฐ’๊ณผ ๊ฐ™๋‹ค.


๐Ÿ’ป code

var a = 5E10;
a;// 50000000000;
a.toExponential(); // 5e+10

var b = a * a;
b;// 2.5e+21

var c = 1 / a;
c; // 2e-11

5๏ธโƒฃ ์ˆซ์ž ๊ฐ’์€ number ๊ฐ์ฒด ๋ž˜ํผ๋กœ ๋ฐ•์‹ฑํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— number.prototype ๋ฉ”์„œ๋“œ๋กœ ์ ‘๊ทผ ํ•  ์ˆ˜ ์žˆ๋‹ค.

๐Ÿ’ก ๊ฐ์ฒด ๋ž˜ํผ๋ž€? "์›์‹œ ํƒ€์ž…์˜ ๊ฐ’์„ ๊ฐ์‹ธ๋Š” ํ˜•ํƒœ์˜ ๊ฐ์ฒด๋‹ค. number, string, boolean, symbol ๊ฐ๊ฐ์˜ ๋ฐ์ดํ„ฐ ํƒ€์ž…์— ๋Œ€์‘ํ•˜๋Š” Number, String, Boolean, Symbol์ด ์ œ๊ณต๋œ๋‹ค. ์ด๋Š” JS๊ฐ€ ์•Œ์•„์„œ ์ฒ˜๋ฆฌ ํ•ด์ค€๋‹ค.


๐Ÿ’ป code

var a = 42.59;

a.toFixed(0); // "43"
a.toFixed(1); // "42.6"
a.toFixed(2); // "42.59"
a.toFixed(3); // "42.590"
a.toFixed(4); // "42.5900"

์‹ค์ œ๋กœ๋Š” ์ˆซ์ž ๊ฐ’์„ ๋ฌธ์ž์—ด ํ˜•ํƒœ๋กœ ๋ฐ˜ํ™˜ํ•˜๋ฉฐ ์›๋ž˜ ๊ฐ’์˜ ์†Œ์ˆ˜์  ์ดํ•˜ ์ˆซ์ž๋ณด๋‹ค ๋”๋งŽ์€ ์ž๋ฆฟ์ˆ˜๋ฅผ ์ง€์ •ํ•˜๋ฉด 0์ด ์šฐ์ธก์— ๋ถ™๋Š”๋‹ค. toPrecision()๋„ ๊ธฐ๋Šฅ์€ ๋น„์Šทํ•˜์ง€๋งŒ ์œ ํšจ ์ˆซ์ž ๊ฐœ์ˆ˜๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.


๐Ÿ’ป code

var a = 42.59;

a.toPrecision(1); // "4e+1"
a.toPrecision(2); // "43"
a.toPrecision(3); // "42.6"
a.toPrecision(4); // "42.59"
a.toPrecision(5); // "42.590"
a.toPrecision(6); // "42.5900"

๐Ÿ”ฅ ์ด๋•Œ ๋ณ€์ˆ˜์˜ ํ”„๋กœํผํ‹ฐ์— ์ ‘๊ทผํ•  ๋•Œ์—” ๊ฐ์ฒด ๋ž˜ํผ๊ฐ€ ์ž„์‹œ๋กœ ์ƒ์„ฑ๋˜๋Š” ๊ฒƒ์ด๋‹ค. ๋”ฐ๋ผ์„œ ์›์‹œ ํƒ€์ž…์ด ํ”„๋กœํผํ‹ฐ๊ฐ€ ์ฝ๊ธฐ ์ „์šฉ ๊ฐ’์ฒ˜๋Ÿผ ์กด์žฌํ•˜๋ฉฐ ์ง€์†๋˜์ง€ ์•Š๋Š”๋‹ค!
๋˜ํ•œ ๊ฐ์ฒด ๋ž˜ํผ๋Š” ์›์‹œ ํƒ€์ž…๊ณผ ๋™๋“ฑํ•œ ๊ฐ’์ด์ง€๋งŒ ์ผ์น˜ํ•˜์ง€ ์•Š๋Š”๋‹ค.


๐Ÿ’ป code

var a = 1
var b = new Number(a);

a == b; // true
a === b; // false

var s = "test-test";
s.len = 4; // new String(s).len = 4
console.debug(s.len); // undefined

var s = "test-test";
s.length = 4;
console.debug(s.length); // 9

/*
์œ„์—์„œ ์•Œ ์ˆ˜ ์žˆ๋Š” ์‚ฌ์‹ค์€ 1๋ฒˆ์งธ ์ค„์˜ s๋Š” ์›์‹œ ํƒ€์ž… ๋ณ€์ˆ˜ ์ด์ง€๋งŒ 
๋‘๋ฒˆ์งธ ์ค„์˜ s๋Š” ์ „ํ˜€ ๋‹ค๋ฅธ ๊ฐ์ฒด๋ฅผ ๋ถˆ๋Ÿฌ์˜จ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค?
*/

์ž ๊ทธ๋Ÿผ ๋‹ค์Œ ๋ฌธ๋ฒ•์ค‘ ์ž˜๋ชป๋œ ๊ฒƒ์„ ๊ณจ๋ผ๋ณด์ž!


๐Ÿ’ป code

42.toFixed(3);
(42).toFixed(3);
0.42.toFixed(3);
42..toFixed(3);
42 .toFixed(3);

์ •๋‹ต์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค.


๐Ÿ’ป code

42.toFixed(3); // SyntaxError
(42).toFixed(3); // "42.000"
0.42.toFixed(3); // "0.420"
42..toFixed(3); // "42.000"
42 .toFixed(3); // "42.000"

์–ด? 1๋ฒˆ์€ ์™œ ๋ฌธ๋ฒ• ์˜ค๋ฅ˜์ง€ ๋ฒ„๊ทผ๊ฐ€? ๐Ÿคฎ

42.toFixed(3)์—์„œ ๋ฌธ๋ฒ•์˜ค๋ฅ˜๊ฐ€ ๋‚œ ์ด์œ ๋Š” .์ด toFeixed()์— ์ ‘๊ทผํ•˜๋Š” ์—ฐ์‚ฐ์ž๊ฐ€ ์•„๋‹ˆ๋ผ 42.์˜ ๋ถ€๋™์†Œ์ˆ˜์ ์„ ๋‚˜ํƒ€๋‚ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

6๏ธโƒฃ ํฐ ์ˆซ์ž๋Š” ๋ณดํ†ต ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ง€์ˆ˜ํ˜•์œผ๋กœ ํ‘œํ˜„ํ•œ๋‹ค.


๐Ÿ’ป code

var oneThousand = 1E3; // 1 * 10^3
var oneMillionOneHundredThousand = 1.1E6; // 1.1 * 10^6

7๏ธโƒฃ ์ˆซ์ž ๋ฆฌํ„ฐ๋Ÿด์€ 2์ง„, 8์ง„, 16์ง„ ๋“ฑ ๋‹ค๋ฅธ ์ง„๋ฒ•์œผ๋กœ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๋‹ค.


๐Ÿ’ป code

0xf3; // 243์˜ 16์ง„์ˆ˜
0Xf3; // ์œ„์™€ ๊ฐ™์Œ
0363; // 243์˜ 8์ง„์ˆ˜ (ES6 + ์—„๊ฒฉ๋ชจ๋“œ์—์„œ๋Š” ์‚ฌ์šฉํ•˜์ง€ ๋ชปํ•œ๋‹ค.)

//ES6

0o363; // 243์˜ 8์ง„์ˆ˜
0O363; // ์œ„์™€ ๊ฐ™์Œ
0b11110011; // 243์˜ 2์ง„์ˆ˜
0B11110011; // ์œ„์™€ ๊ฐ™์Œ

/*
๋˜๋„๋ก์ด๋ฉด 0x, 0b, 0o์™€ ๊ฐ™์ด ์†Œ์ˆ˜์ ์œผ๋กœ ํ‘œ๊ธฐํ•˜์ž....
๋Œ€๋ฌธ์ž๋กœ ํ‘œ๊ธฐํ•˜๋ฉด ๊ฐ€๋…์„ฑ๋„ ๋–จ์–ด์ง€๊ณ  ๋ˆˆ์•„ํ”„๋‹ค
*/

.
.
.

๐Ÿ“Ž์ž‘์€ ์†Œ์ˆ˜๊ฐ’


JS์—์„œ ๋„๋ฆฌ ์•Œ๋ ค์ง„ ์ด์ง„ ๋ถ€๋™ ์†Œ์ˆ˜์  ์ˆซ์ž์˜ ๋ถ€์ž‘์šฉ ๋ฌธ์ œ๋‹ค.
(์‚ฌ์‹ค ์ด๋Š” IEEE 754 ํ‘œ์ค€์„ ๋”ฐ๋ฅด๋Š” ๋ชจ๋“  ์–ธ์–ด์—์„œ ๊ณตํ†ต์ ์ธ ๋ฌธ์ œ๋‹ค. ๋„ˆ๋ฌด JS๋งŒ ๋ญ๋ผ ๊ทธ๋Ÿฌ์ง€ ๋ง์ž๐Ÿ˜ญ)


๐Ÿ’ป code

0.1 + 0.2 === 0.3; // false

์—ฅ ์ˆ˜์‹๋งŒ ๋ณด๋ฉด true๊ฐ€ ์ •์ƒ์ด์ง€ ์•Š์€๊ฐ€? ๊ทผ๋ฐ ๊ฐ’์€ false๋‹ค.

์ด๋Š” ์‰ฝ๊ฒŒ ๋งํ•˜๋ฉด ์ด์ง„ ๋ถ€๋™ ์†Œ์ˆ˜์ ์œผ๋กœ ๋‚˜ํƒ€๋‚ธ 0.1๊ณผ 0.2๋Š” ์›๋ž˜์˜ ์ˆซ์ž์™€ ์ผ์น˜ํ•˜์ง€ ์•Š๋Š”๋‹ค. ๊ทธ๋ž˜์„œ ๋‘˜์€ ๋”ํ•œ ๊ฐ’์€ ์ •ํ™•ํžˆ 0.3์ด ์•„๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ๋Š” 0.30000000000000004์— ๊ฐ€๊น๋‹ค.

๊ทธ๋ž˜๋„ ์•ˆ์‹ฌํ•ด๋„ ์ข‹๋‹ค. ๋งŽ์€ JSํ”„๋กœ๊ทธ๋žจ์€ ๋ณดํ†ต ์ „์ฒด์ˆ˜(0, ์ •์ˆ˜)๋งŒ์„ ๊ทธ๊ฒƒ๋„ ๊ธฐ๊ป ๋ฐฑ๋งŒ์ด๋‚˜ ์กฐ ๋‹จ์œ„ ๊ทœ๋ชจ์˜ ์ˆซ์ž๋ฅผ ๋‹ค๋ฃฌ๋‹ค.

๊ทธ๋ ‡๋‹ค๋ฉด ์œ„ ์ˆ˜์‹์€ ์–ด๋–ป๊ฒŒ ๋น„๊ตํ•ด์•ผ ํ• ๊นŒ?

๊ฐ€์žฅ ์ผ๋ฐ˜์ ์ธ ๋ฐฉ๋ฒ•์€ ๋ฏธ์„ธํ•œ ๋ฐ˜์˜ฌ๋ฆผ ์˜ค์ฐจ๋ฅผ ํ—ˆ์šฉ ๊ณต์ฐจ๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.
์ด๋ ‡๊ฒŒ ๋ฏธ์„ธํ•œ ์˜ค์ฐจ๋ฅผ '๋จธ์‹  ์ž…์‹ค๋ก '์ด๋ผ๊ณ  ํ•˜๋Š”๋ฐ, JS์˜ ๋จธ์‹  ์ž…์‹ค๋ก ์€ 2^-52(2.220446049250313e-16)์ด๋‹ค.

ES6๋ถ€ํ„ฐ๋Š” Number.EPSILON์œผ๋กœ ๋ฏธ๋ฆฌ ์ •์˜๋˜์–ด์žˆ๊ณ  ์ด์ „ ๋ธŒ๋ผ์šฐ์ €๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํด๋ฆฌํ•„(์›น ๊ฐœ๋ฐœ์—์„œ ๊ธฐ๋Šฅ์„ ์ง€์›ํ•˜์ง€ ์•Š๋Š” ์›น ๋ธŒ๋ผ์šฐ์ € ์ƒ์˜ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ๋œปํ•œ๋‹ค.)์„ ๋Œ€์‹  ์‚ฌ์šฉํ•œ๋‹ค.


๐Ÿ’ป code

if(!Number.EPSILON){
  Number.EPSILON = Math.pow(2,-52);

์ž ๊ทธ๋Ÿฌ๋ฉด ๋งŒ๋“ค์–ด ๋ณด์ž!


๐Ÿ’ป code

function Equal(x, y){
  return Math.abs(x - y) < NUMBER.EPSILON;
}

var a = 0.1 + 0.2;
var b = 0.3;
Equal(a,b); // true
Equal(0.0000001, 0.0000002); // false

.
.
.

๐Ÿ“Ž์•ˆ์ „ํ•œ ์ •์ˆ˜์˜ ๋ฒ”์œ„


์ˆซ์ž๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ๋ฐฉ์‹์ด ์ด๋ ‡๋‹ค๋ณด๋‹ˆ ์ •์ˆ˜๋Š” Number.MAX_VALUE๋ณด๋‹ค ํ›จ์”ฌ ์ž‘์€ ์ˆ˜์ค€์—์„œ ์•ˆ์ „ ๋ฒ”์œ„๊ฐ€ ์„ค์ •๋˜์–ด ์žˆ๋‹ค.

์ด ๊ฐ’์€ ES6์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ •์˜ ๋˜์–ด์žˆ๋‹ค.

  • Number.MAX_SAFE_INTEGER โ†”๏ธ 9007199254740991
  • Number.MIN_SAFE_INTEGER โ†”๏ธ -9007199254740991

์„ธ ์ž๋ฆฌ ์ฝค๋งˆ๋ฅผ ์ฐ์–ด๋ณด๋ฉด ์–ผ์ถ” 9์ฒœ ์กฐ๊ฐ€ ๋„˜๋Š”๋‹ค. (์•„์ฃผ ๋ˆ๋‚ด์ฃผ๊ฒŒ ์—ฌ์œ ๋กญ๋‹ค!๐Ÿคค)

JS์—์„œ ์•„์ฃผ ํฐ ์ˆซ์ž๋ฅผ ๋งˆ์ฃผํ• ๋•Œ๋Š” DB์—์„œ 64๋น„ํŠธ๋กœ ๋œ ID๋ฅผ ์ฒ˜๋ฆฌํ• ๋•Œ๊ฐ€ ๋Œ€๋ถ€๋ถ„์ด๋‹ค. ๊ทธ๋Ÿด๋•Œ๋Š” stringํƒ€์ž…์œผ๋กœ ์ €์žฅํ•˜์ž ์•„๋‹˜ ํฐ ์ˆ˜ ์œ ํ‹ธ๋ฆฌํ‹ฐ ์‚ฌ์šฉ์„ ๊ถŒํ•œ๋‹ค.
.
.
.

๐Ÿ“Ž์ •์ˆ˜ ํ™•์ธ


ES6๋ถ€ํ„ฐ๋Š” Number.isInteger()๋กœ ์–ด๋–ค ๊ฐ’์˜ ์ •์ˆ˜ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•œ๋‹ค.


๐Ÿ’ป code

Number.isInteger(42); // true
Number.isInteger(42.000); // true
Number.isInteger(42.3); // false

ES6 ์ด์ „์„ ์œ„ํ•œ ํด๋ฆฌํ•„์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.


๐Ÿ’ป code

if (!Number.isInteger){
  Number.isInteger = function(num){
  	return typeof num == "number" && num % 1 == 0;
  };
}

์•ˆ์ „ํ•œ ์ •์ˆ˜ ์—ฌ๋ถ€๋Š” ES6๋ถ€ํ„ฐ Number.isSafeInteger()๋กœ ์ฒดํฌํ•œ๋‹ค.


๐Ÿ’ป code

Number.isSafeInteger(Number.MAX_SAFE_INTEGER); //true
Number.isSafeInteger(Math.pow(2, 53)); // false
Number.isSafeInteger(Math.pow(2, 53) -1); // true

ํด๋ฆฌํ•„์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.


๐Ÿ’ป code

if(!Number.isSafeInteger){
  Number.isSafeInteger = function(num){
    return Number.isInteger(num) && Math.abs(num) <= Number.MAX_SAFE_INTEGER;
  };
}

.
.
.

๐Ÿ“Ž์ •์ˆ˜ ํ™•์ธ


์ •์ˆ˜์˜ ์•ˆ์ „ ๋ฒ”์œ„๊ฐ€ 9์ฒœ ์กฐ (53๋น„ํŠธ)์— ์ด๋ฅด์ง€๋งŒ (๋น„ํŠธ ์—ฐ์‚ฐ์ฒ˜๋Ÿผ) 32๋น„ํŠธ ์ˆซ์ž์—๋งŒ ๊ฐ€๋Šฅํ•œ ์—ฐ์‚ฐ์ด ์žˆ์œผ๋ฏ€๋กœ ์‹ค์ œ ๋ฒ”์œ„๋Š” ํ›จ์”ฌ ์ค„์–ด๋“ ๋‹ค.

๋”ฐ๋ผ์„œ ์ •์ˆ˜์˜ ์•ˆ์ „๋ฒ”์œ„๋Š” Math.pow(-2,31)์—์„œ Math.pow(2, 31) -1 ๊นŒ์ง€์ด๋‹ค.

a|0๊ณผ ๊ฐ™์ด ์“ฐ๋ฉด "์ˆซ์ž ๊ฐ’ -> 32๋น„ํŠธ ๋ถ€ํ˜ธ ์žˆ๋Š” ์ •์ˆ˜"๋กœ ๊ฐ•์ œ ๋ณ€ํ™˜ํ•œ๋‹ค. ์ด๋Š” 32๋น„ํŠธ ์ •์ˆ˜๊ฐ’์—๋งŒ ์“ธ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ€๋Šฅํ•œ ๋ฐฉ๋ฒ•์ด๋‹ค. 0๊ณผ OR์˜ ์—ฐ์‚ฐ์€ ๋ณธ์งˆ์ ์œผ๋กœ NOOP๋น„ํŠธ ์—ฐ์‚ฐ๊ณผ ๊ฐ™๋‹ค.

๐Ÿ’ก NAN, Infinity ๋“ฑ ์ผ๋ถ€ ํŠน์ˆ˜ ๊ฐ’์€ 32๋น„ํŠธ์—์„œ ์•ˆ์ „ํ•˜์ง€ ์•Š๋‹ค. ์ด๋“ค์„ ๋น„ํŠธ ์—ฐ์‚ฐ ํ•˜๋ฉด ToInt32(๊ฐ•์ œ๋ณ€ํ™˜) ์ถ”์ƒ ์—ฐ์‚ฐ์„ ํ†ตํ•ด ๋น„ํŠธ ์—ฐ์‚ฐ ๋ณธ์—ฐ์˜ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ๊ฑ€๊ณผ๋Š”+0์ด ๋œ๋‹ค.

.
.
.

๐Ÿšช ๋งˆ์น˜๋ฉฐ


์˜ค๋Š˜์€ JS๊ฐ€ ์ˆซ์ž๋ฅผ ๋‹ค๋ฃจ๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์›Œ ๋ณด์•˜๋‹ค.
ํ™•์‹คํžˆ ๋‹ค๋ฃจ๋Š” ๋น„์ค‘์ด ์ปค ๋‹ค๋ฅธ ์›์‹œํƒ€์ž…๋ณด๋‹ค ํ›จ์”ฌ ๋‚ด์šฉ์ด ๋งŽ๊ณ  ์ฃผ์˜ ํ•  ์ ์ด ๋งŽ์•˜๋‹ค.

ํŠนํžˆ ์ˆซ์ž ํƒ€์ž…์€ ์ฝ”๋”ฉํ•˜๋ฉด์„œ ์“ธ์ผ์ด ๋งŽ๊ธฐ ๋•Œ๋ฌธ์— ์ž˜ ์ˆ™์ง€ํ•  ํ•„์š”๊ฐ€ ์žˆ๋‹ค!๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅ
(์•ˆ๊ทธ๋Ÿผ ์˜ค๋ฅ˜ ๋ฟœ์œผ๋‹ˆ๊นŒ..... JS๋Š” ์˜ค๋ฅ˜๋ฟœ์–ด๋„ ์‹คํ–‰๋˜๋‹ˆ๊นŒ....๐Ÿคฎ๐Ÿคฎ๐Ÿคฎ๐Ÿคฎ๐Ÿคฎ)
.
.
.

๐Ÿ“ฌ์ฐธ๊ณ 


๐Ÿ“ฆ ๊ฐ์ฒด ๋ž˜ํผ๋ž€?
https://developerntraveler.tistory.com/24

๐Ÿ“ฆ ํด๋ฆฌํ•„์ด๋ž€?
https://ko.wikipedia.org/wiki/%ED%8F%B4%EB%A6%AC%ED%95%84_(%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D)

profile
์ฝ”๋”ฉ ์ž˜ํ•˜๊ณ  ์‹ถ์€ ์ฝ”๋”ฉ๋ชฝํ‚ค

0๊ฐœ์˜ ๋Œ“๊ธ€