[JS] ์๋ฉด ์ ์ฉํ ์๋ฐ์คํฌ๋ฆฝํธ ์ต์ ๋ฌธ๋ฒ
Numeric Separators
์ซ์๋ฅผ ์
๋ ฅํ ๋ ์ธ๋์ค์ฝ์ด _
๋ฅผ ์ด์ฉํด ์ซ์๋ฅผ ๊ตฌ๋ถํด์ ๊ฐ๋
์ฑ์ ๋์ผ ์ ์๋ค. KRW ํํ์ฒ๋ผ ์๋ฆฌ์๊ฐ ๋ง์ ์ซ์๋ฅผ ์์ฑํ ๋ ์ ์ฉ
const cost = 100_000_000;
console.log(cost); // 100000000
_
์ธ๋๋ฐ ํ๊ฐ๋ง ์ฌ์ฉ ๊ฐ๋ฅ ex)100__000
โ- ์ซ์ ๋ง์ง๋ง์ ์ฌ์ฉ ๋ถ๊ฐ ex)
100_;
โ - ๊ฐ์ฅ ์ ์ซ์๊ฐ 0์ผ๋ ์ฌ์ฉ ๋ถ๊ฐ ex)
0_1;
โ
replaceAll
replaceAll(substr, newSubstr)
replaceAll(substr, replacerFunction)
๋ฌธ์์ด์์ ์ํ๋ ๋ถ๋ถ์ "๋ชจ๋" ์ง์ ํ ๋ฌธ์๋ก ๋ณ๊ฒฝํ ์ ์๋ค. ์ ๊ท์๋ ์ฌ์ฉ ๊ฐ๋ฅ.
const sayHello = 'Hello, John';
sayHello.replaceAll('John', 'Smith'); // Hello, Smith
sayHello.replaceAll('John', () => 'Smith'); // Hello, Smith
Exponentiation assignment (์ง์ํ ๋น)
ES2016์ Math.pow()
์ ๋์ผํ ์์
์ ์ํํ๋ **
๊ฑฐ๋ญ์ ๊ณฑ ์ฐ์ฐ์๊ฐ ์ถ๊ฐ๋๋ค.
2 ** 3; // 8
Math.pow(2, 3); // 8
๊ฑฐ๋ญ์ ๊ณฑ ํ๋ ค๋ ๊ฐ์ด ์ฌ๋ฌ๊ฐ๋ผ๋ฉด ๊ฐ์ฅ ์ค๋ฅธ์ชฝ๋ถํฐ ๊ณ์ฐํ๋ ํน์ง์ด ์๋ค.
๐ก ๊ฑฐ๋ญ์ ๊ณฑ์ ์ ์ธํ ๋ชจ๋ ์ฐ์ ์ฐ์ฐ์๋ ์ข(ๅทฆ) ๊ฒฐํฉ์ฑ์ ๊ฐ์ง๋ค. ๊ฑฐ๋ญ์ ๊ณฑ, ํ ๋น ์ฐ์ฐ์, ์ผํญ ์ฐ์ฐ์๋ ์ฐ(ๅณ) ๊ฒฐํฉ์ฑ์ ๊ฐ์ง๋ค. ๋ ์ฐ์ฐ์์ ์ฐ์ ์์๊ฐ ๋ค๋ฅด๋ฉด ๊ฒฐํฉ์ฑ๊ณผ ์๊ด์์ด ์ฐ์ ์์๊ฐ ๋์ ์ฐ์ฐ์๊ฐ ๋จผ์ ์คํ๋๋ค. ํํ์์ ํ๊ฐ ์ญ์ ๊ฒฐํฉ์ฑ๊ณผ ๋ฌด๊ดํ๊ฒ ํญ์ ์ผ์ชฝ์์ ์ค๋ฅธ์ชฝ์ผ๋ก ์งํ๋๋ค.
- ์ข๊ฒฐํฉ์ฑ(์ผ์ชฝ → ์ค๋ฅธ์ชฝ) : (a ์ฐ์ฐ์1 b) ์ฐ์ฐ์2 c
- ์ฐ๊ฒฐํฉ์ฑ(์ค๋ฅธ์ชฝ → ์ผ์ชฝ) : a ์ฐ์ฐ์1 (b ์ฐ์ฐ์2 c)
2 ** 3 ** 2; // 512
// 2 ** (3 ** 2)์ ๊ฐ์
๊ฑฐ๋ญ์ ๊ณฑ ์ฐ์ฐ์๋ ๋ฑํธ =
์ ํจ๊ป ์ฌ์ฉํ์ฌ ์๋ก์ด ๊ฐ์ ๋ฐํํ๋๋ก ํ ์๋ ์๋ค.
let a = 1.5;
a **= 2;
// a = a * a์ ๊ฐ์
let b = 4;
b **= 3;
// b = b * b * b์ ๊ฐ์
Nullish coalescing operator (๋ ๋ณํฉ ์ฐ์ฐ์)
??
์ผ์ชฝ์ ์๋ ๊ฐ์ด null
ํน์ undefined
๋ฉด ??
์ค๋ฅธ์ชฝ์ ์๋ ๊ฐ์ ๋ฐํํ๊ณ , ๊ทธ๋ ์ง ์๋ค๋ฉด ์ผ์ชฝ ๊ฐ์ ๋ฐํํ๋ ๋
ผ๋ฆฌ ์ฐ์ฐ์.
const printMessage = (text) => {
const message = text ?? 'RightExpression';
console.log(message);
};
printMessage(undefined); // '**Right**Expression'
printMessage(null); // '**Right**Expression'
printMessage('LeftExpression'); // '**Left**Expression'
printMessage(''); // ''
์ผ์ชฝ ๊ฐ์ด falsy
์ด๋ฉด(0
-0
''
NaN
๋ฑ) ์ค๋ฅธ์ชฝ ๊ฐ์ ๋ฐํํ๋ ||
OR ์ฐ์ฐ์์ ๋ค๋ฅธ์ ์ฃผ์.
Logical Assignment Operators (ES2021)
ํน์ ๋ณ์์ ์ฐธ/๊ฑฐ์ง ์ฌ๋ถ์ ๋ฐ๋ผ &&=
||=
??=
์ฐ์ฐ์๋ก ์ํ๋ ๊ฐ์ ํ ๋นํ ์ ์๋ค.
&&=
: ๋ณ์๊ฐ truthy์ผ ๋||=
: ๋ณ์๊ฐ falsy์ผ ๋??=
: ๋ณ์๊ฐ nullish(null | undefined
) ์ผ ๋
๋ณ์๊ฐ truthy ์ผ ๋ &&=
// old JS
let a = 1;
if (a) {
a = 2;
}
// new JS
let a = 1;
a &&= 2; // ๋ณ์ a๊ฐ true๋ผ๋ฉด 2 ํ ๋น
let a = 1;
let b = 0;
a &&= 2;
console.log(a); // 2 (๋ณ์ a๊ฐ true์ด๋ฏ๋ก 2 ํ ๋น)
b &&= 2;
console.log(b); // 0 (๋ณ์ b๊ฐ true๊ฐ ์๋๋ฏ๋ก ๊ฐ ๋ณํ ์์)
๋ณ์๊ฐ falsy ์ผ ๋ ||=
// old JS
let a = false;
if (!a) {
a = true;
}
// new JS
let a = false;
a ||= true; // ๋ณ์ a๊ฐ false๋ผ๋ฉด true ํ ๋น
document.getElementById('lyrics').textContent ||= 'No lyrics.';
// #lyrics ์๋ฆฌ๋จผํธ์ ์ฝํ
์ธ ๊ฐ ๋น๋ฌธ์์ด(false)์ด๋ฉด 'No lyrics' ํ ๋น
const a = { duration: 50, title: '' };
a.duration ||= 10;
console.log(a.duration); // 50 (duration ์์ฑ์ด false๊ฐ ์๋๋ฏ๋ก ๊ฐ ๋ณํ ์์)
a.title ||= 'title is empty';
console.log(a.title); // title is empty (title ์์ฑ์ด false์ด๋ฏ๋ก ๊ฐ ์
๋ฐ์ดํธ)
๋ณ์๊ฐ nullish ์ผ ๋ ??=
// old JS
let a = undefined;
if (a === undefined) {
a = 'hello';
}
// new JS
let a = undefined;
a ??= 'hello';
๊ธ ์์ ์ฌํญ์ ๋ ธ์ ํ์ด์ง์ ๊ฐ์ฅ ๋น ๋ฅด๊ฒ ๋ฐ์๋ฉ๋๋ค. ๋งํฌ๋ฅผ ์ฐธ๊ณ ํด ์ฃผ์ธ์
'๐ช Programming' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JS] ์ด๋ฒคํธ ์ ํ(์บก์ฒ๋ง, ๋ฒ๋ธ๋ง) / ์ด๋ฒคํธ ์์ / ๋ฐ์ดํฐ ์์ฑ (0) | 2024.04.25 |
---|---|
[HTML/CSS] ์๋งจํฑ ํ๊ทธ Semantic Tag (0) | 2024.04.25 |
[JS] ์๋ฐ์คํฌ๋ฆฝํธ ์ต์ ๋ ์ฒด์ด๋ (0) | 2024.04.25 |
[Git] ๋ณ๊ฒฝํ ์ํ ์์ ์ ์ฅ ํ ๋ธ๋์น ์ด๋ ๋ฐฉ๋ฒ โ Git Stash (0) | 2024.04.25 |
[JS] console.log ์ฝ์ ๋ก๊ทธ ๋ ์ ์ฌ์ฉํ๊ธฐ (0) | 2024.04.25 |
๋๊ธ
์ด ๊ธ ๊ณต์ ํ๊ธฐ
-
๊ตฌ๋
ํ๊ธฐ
๊ตฌ๋ ํ๊ธฐ
-
์นด์นด์คํก
์นด์นด์คํก
-
๋ผ์ธ
๋ผ์ธ
-
ํธ์ํฐ
ํธ์ํฐ
-
Facebook
Facebook
-
์นด์นด์ค์คํ ๋ฆฌ
์นด์นด์ค์คํ ๋ฆฌ
-
๋ฐด๋
๋ฐด๋
-
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
-
Pocket
Pocket
-
Evernote
Evernote
๋ค๋ฅธ ๊ธ
-
[JS] ์ด๋ฒคํธ ์ ํ(์บก์ฒ๋ง, ๋ฒ๋ธ๋ง) / ์ด๋ฒคํธ ์์ / ๋ฐ์ดํฐ ์์ฑ
[JS] ์ด๋ฒคํธ ์ ํ(์บก์ฒ๋ง, ๋ฒ๋ธ๋ง) / ์ด๋ฒคํธ ์์ / ๋ฐ์ดํฐ ์์ฑ
2024.04.25 -
[HTML/CSS] ์๋งจํฑ ํ๊ทธ Semantic Tag
[HTML/CSS] ์๋งจํฑ ํ๊ทธ Semantic Tag
2024.04.25 -
[JS] ์๋ฐ์คํฌ๋ฆฝํธ ์ต์ ๋ ์ฒด์ด๋
[JS] ์๋ฐ์คํฌ๋ฆฝํธ ์ต์ ๋ ์ฒด์ด๋
2024.04.25 -
[Git] ๋ณ๊ฒฝํ ์ํ ์์ ์ ์ฅ ํ ๋ธ๋์น ์ด๋ ๋ฐฉ๋ฒ — Git Stash
[Git] ๋ณ๊ฒฝํ ์ํ ์์ ์ ์ฅ ํ ๋ธ๋์น ์ด๋ ๋ฐฉ๋ฒ — Git Stash
2024.04.25