๐Ÿชด ์„ฑ์žฅ์ผ์ง€

์ฑ… ํ–‰๋ณตํ•œ ์ด๊ธฐ์ฃผ์˜์ž(์›จ์ธ ๋‹ค์ด์–ด)์˜ ๋‚ด์šฉ์— ์ž๊ทน๋ฐ›์•„ ์‹œ์ž‘ํ•˜๋Š” ์†Œ๋ฐ•ํ•œ ์„ฑ์žฅ๊ธฐ๋ก

์‚ด์•„์žˆ๋Š” ๊ฝƒ๊ณผ ์ฃฝ์€ ๊ฝƒ์€ ์–ด๋–ป๊ฒŒ ๊ตฌ๋ณ„ํ•˜๋Š”๊ฐ€?
์„ฑ์žฅํ•˜๊ณ  ์žˆ๋Š” ๊ฒƒ์ด ์‚ด์•„ ์žˆ๋Š” ๊ฒƒ์ด๋‹ค.
์ƒ๋ช…์˜ ์œ ์ผํ•œ ์ฆ๊ฑฐ๋Š” ์„ฑ์žฅ์ด๋‹ค!

๐ŸŒณ ํ‚ค์›Œ๋“œ

BigInt ์ž๋ฃŒํ˜•

  • ๊ธธ์ด์— ์ƒ๊ด€์—†์ด ์ •์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. -(2e53 - 1)์—์„œ (2e53 - 1)๊นŒ์ง€ ์™ธ์˜ ๊ฐ’๋“ค์„ ํ‘œํ˜„ ๊ฐ€๋Šฅ
// ๋์— n์„ ๋ถ™์—ฌ ํ‘œํ˜„
const bigInt = 1234567890123456789012345678901234567890n;

typeof ํŠน์ด์‚ฌํ•ญ

typeof Math; // "object" (1)

typeof null; // "object" (2)

typeof alert; // "function" (3)
  1. Math๋Š” ์ˆ˜ํ•™ ์—ฐ์‚ฐ์„ ์ œ๊ณตํ•˜๋Š” ๋‚ด์žฅ ๊ฐ์ฒด์ด๊ธฐ ๋•Œ๋ฌธ
  2. null์€ ๋ณธ๋ž˜ null์ด๋ผ๋Š” ๋ณธ์—ฐ์˜ ์ž๋ฃŒ๊ฐ’์ด ์žˆ์ง€๋งŒ, ๊ณผ๊ฑฐ์˜ ์˜ค๋ฅ˜๋กœ ๊ฐ์ฒด๋กœ ๋‚˜์˜ด. ํ•˜์œ„ ํ˜ธํ™˜์„ฑ ๋ฌธ์ œ๋กœ ๊ทธ๋Œ€๋กœ ๋‚จ๊ฒจ๋‘ .
  3. alert๊ฐ€ ํ•จ์ˆ˜๋Š” ๋งž์ง€๋งŒ, ํ•จ์ˆ˜์˜ ์ž๋ฃŒํ˜•์€ ๊ฐ์ฒด. ์ด๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๊ณผ๊ฑฐ์˜ ์˜ค๋ฅ˜์ด๋ฉฐ ํ•˜์œ„ ํ˜ธํ™˜์„ฑ ๋ฌธ์ œ๋กœ ๊ทธ๋Œ€๋กœ ๋‚จ๊ฒจ๋‘ .(์˜คํžˆ๋ ค ์‹ค๋ฌด์—์„œ ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉ๋˜๊ธฐ๋„ ํ•จ)

setInterval๊ณผ setTimeout์„ ๋ฉˆ์ถ”๋Š” ๋ฐฉ๋ฒ•(feat.์•„์ด๋””)

์•„์ด๋””๋Š” ํƒ€์ด๋จธ์— ๋Œ€ํ•œ ๋ฐ˜ํ™˜๊ฐ’์œผ๋กœ ์ด ๊ฐ’์„ ํ†ตํ•ด ํƒ€์ด๋จธ๋ฅผ ์ทจ์†Œํ•  ์ˆ˜ ์žˆ์Œ.(๋ฐ˜๋“œ์‹œ ๊ฐ™์€ ํ•จ์ˆ˜์—ฌ์•ผํ•จ)
๋‹จ, setTimeout์˜ ๊ฒฝ์šฐ ๋น„๋™๊ธฐ ํ•จ์ˆ˜๊ฐ€ ์ข…๋ฃŒ๋˜๊ธฐ ์ „์— ์ทจ์†Œ๋ฅผ ํ•ด์•ผ ์˜๋ฏธ๊ฐ€ ์žˆ์Œ.

let ์•„์ด๋”” = setInterval(ํ•จ์ˆ˜, ๋ฐ€๋ฆฌ์ดˆ);
clearInterval(์•„์ด๋””);

let ์•„์ด๋”” = setTimeout(ํ•จ์ˆ˜, ๋ฐ€๋ฆฌ์ดˆ);
clearTimeout(์•„์ด๋””);

addEventListener์™€ removeEventListener

์ด๋ฒคํŠธ๋ฅผ ๋“ฑ๋กํ•  ๋•Œ์˜ ํ•จ์ˆ˜์™€ ์ด๋ฒคํŠธ๋ฅผ ์ œ๊ฑฐํ•  ๋•Œ์˜ ํ•จ์ˆ˜๋Š” ๋ฐ˜๋“œ์‹œ ๊ฐ™์€ ํ•จ์ˆ˜์—ฌ์•ผํ•จ.
๊ณ ์ฐจํ•จ์ˆ˜์ธ ๊ฒฝ์šฐ๊ฐ€ ํ—ท๊ฐˆ๋ฆฌ๊ฒŒ ๋˜๋Š”๋ฐ, ํ•จ์ˆ˜๋Š” ์ฐธ์กฐํ˜• ๋ณ€์ˆ˜์ด๊ธฐ ๋•Œ๋ฌธ

const test = (value) => () {
  console.log('๊ณ ์ฐจํ•จ์ˆ˜', value);
}
ํƒœ๊ทธ.addEventListener('click', test(1));

// ์ด๋ฒคํŠธ๋ฅผ ์—†์•จ ๋•Œ, ํ‹€๋ฆฐ ์˜ˆ์‹œ
ํƒœ๊ทธ.removeEventListener('click', test(1)); // test(1) !== test(1)์ด๊ธฐ ๋•Œ๋ฌธ! ๊ฐ™์€ ํ•จ์ˆ˜๊ฐ€ ์•„๋‹˜!

//ํ•ด๊ฒฐ๋ฒ•
const test1 = test(1);
ํƒœ๊ทธ.addEventListener('click', test1);
ํƒœ๊ทธ.removeEventListener('click', test1);

flag ๋ณ€์ˆ˜

๋งˆ์น˜ ๊นƒ๋ฐœ์„ ๊ฝ‚์•˜๋‹ค ๋นผ๋Š” ๊ฑฐ ๊ฐ™์€ ์—ญํ• ์„ ํ•˜์—ฌ ๋ถ™์—ฌ์ง„ ์ด๋ฆ„

let clickable = true;
const clickBtn = () => {
  if (clickable) {
    ์–ด์ฉŒ๊ตฌ ์ €์ฉŒ๊ตฌ
    clickable = false;
  }
  ์–ด์ฉŒ๊ตฌ ์ €์ฉŒ๊ตฌ
  clickable = true;
}
// flag ๋ณ€์ˆ˜๊ฐ€ true, false๊ฐ’์„ ์™”๋‹ค๊ฐ”๋‹คํ•˜๋ฉฐ ํŠน์ • ์ด๋ฒคํŠธ ๋ฐœ์ƒ์„ ์กฐ์œจํ•˜๋Š” ์‹์œผ๋กœ ์‚ฌ์šฉ