ํฐ์คํ ๋ฆฌ ๋ทฐ
์ฝ๋
export class InstantSearch {
constructor(configuration) {
this.DEFAULT_DELAY_TIME = 500;
(...)
this.delayTime = (configuration.delayTime === null || configuration.delayTime === undefined) ? this.DEFAULT_DELAY_TIME = 500 : configuration.delayTime;
}
๋ถ๋ชจ ์ปดํฌ๋ํธ์์ ๊ฐ์ฒด๋ฅผ ํตํด state ๊ฐ์ ์ ๋ฌ ๋ฐ์ ํด๋น ๊ฐ์ฒด ๋ด ํ๋กํผํฐ ๊ฐ์ผ๋ก ์๊ฐ ๊ฐ์ด ์ค์ ๋์ด ์์ง ์๋ค๋ฉด ์์ฑ์ ํจ์ ๋ด ์ธ์คํด์ค์ ๊ธฐ๋ณธ ์๊ฐ์ ๋ณ์์ ํ ๋นํด์ฃผ๋ ๊ณผ์ ์ ์ผํญ ์ฐ์ฐ์๋ฅผ ํตํด ๊ตฌํํ์๋ค.
(์ฐธ๊ณ ๋ก delayTime์ Input Value ์ด๋ฒคํธ ์ฒ๋ฆฌ๋ฅผ ์ํ ๋ณ์์ด๋ค)
๋ฌผ๋ก ์ผํญ ์ฐ์ฐ์๋ฅผ ํตํด ์์ ๊ฐ์ด ์ฝ๋๋ฅผ ์์ฑํ์ฌ๋ ๋ก์ง์๋ ๋ฌธ์ ๋ ์์ผ๋, ์ฐ์ฐ์น ์๊ฒ ๋ค๋ฅธ ๋ถ๊ป์ ๋(null) ๋ณํฉ ์ฐ์ฐ์์ ๋ํด์ ์ ๋ฆฌํ ๋ธ๋ก๊ทธ ๋ด์ฉ์ ๋ณด๊ณ , ํด๋น ๋ฌธ๋ฒ์ ์ฌ์ฉํ๋ค๋ฉด ์ฝ๋๋ฅผ ๋์ฑ ๋ช ํํ๊ณ ๊น๋ํ๊ฒ ์์ฑํ ์ ์์ ๊ฒ ๊ฐ์ ๋ฆฌํฉํ ๋ง ํด๋ณด์๋ค.
Nullish coalescing operator
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Operators/Nullish_coalescing_operator
The nullish coalescing operator (??) is a logical operator that returns its right-hand side operand when its left-hand side operand is null or undefined, and otherwise returns its left-hand side operand.
null ๋ณํฉ ์ฐ์ฐ์๋ ES2020์ ์ถ๊ฐ๋ ์ต์ ๋ฌธ๋ฒ์ด๋ค.
๋ฆฌํฐ๋ด ??๋ฅผ ์ฌ์ฉํ๋ฉด ์งง์ ๋ฌธ๋ฒ์ผ๋ก ์ฌ๋ฌ ํผ์ฐ์ฐ์ ์ค ๊ทธ ๊ฐ์ด ํ์ ๋์ด ์๋ ๋ณ์๋ฅผ ์ฐพ์ ์ ์๋ค.
์๋ ์์๋ฅผ ์ดํด๋ณด์.
a ?? b
a !== null && a !== undefined
=> a
else
=> b
์ฆ, ์์ ์๋ ๋ณ์(left)๊ฐ null๋ ์๋๊ณ undefined๋ ์๋ ๊ฒฝ์ฐ์ a์ ๊ฐ์ ํ ๋น, ๊ทธ ์ธ์๋ b์ ๊ฐ์ ํ ๋นํ๋๋ก ๋์ํ๋ค.
๊ต์ฅํ ๊ฐ๋จํ ์์ผ๋ก ๊ฐ์ ํ ๋น์ ํ ์ ์์ง๋ง ์ฐ์ฐ์ ์ฐ์ ์์๊ฐ 5๋ก ๊ฝค ๋ฎ๊ธฐ ๋๋ฌธ์ ๋ณต์กํ ์ฐ์ฐ์์์ ์ ์ํ๋ฉฐ ์ฌ์ฉํด์ผ ํ ๊ฒ ๊ฐ๋ค.
๋ฆฌํฉํ ๋ง
export class InstantSearch {
constructor(configuration) {
this.DEFAULT_DELAY_TIME = 500;
(...)
// this.delayTime = (configuration.delayTime === null || configuration.delayTime === undefined) ? this.DEFAULT_DELAY_TIME = 500 : configuration.delayTime;
this.delayTime = configuration.delayTime ?? this.DEFAULT_DELAY_TIME;
}
'JS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์ฟผ๋ฆฌ ๋ฌธ์์ด ์ธ์ฝ๋ฉํ๊ธฐ(ํ๊ธ ์ฃผ์ ๊นจ์ง ํ์)_encodeURI (0) | 2021.12.24 |
---|---|
์ซ์๋ฅผ ์ํ ๋ฌธ์์ด๋ก ์์ _Array.prototype.toLocaleString (0) | 2021.12.24 |
[์ ๋ ฌ]๊ฐ์ฅ ํฐ ์_Array.prototype.sort()์ ๋ํ ๊ณ ์ฐฐ (0) | 2021.10.10 |
event target ํฌ์ปค์ฑํ๊ธฐ (0) | 2021.10.09 |
๋ถ๋๋ฌ์ด ์ ๋๋ฉ์ด์ ํจ๊ณผ_RequestAnimationFrame ๊ตฌํํด๋ณด๊ธฐ (0) | 2021.10.09 |