논리적 인 무효 할당, ES2020 + 솔루션
신규 사업자는 현재 브라우저에 추가되고 ??=
, ||=
하고 &&=
. 이 게시물은에 초점을 맞출 것입니다 ??=
.
왼쪽이 정의되어 있지 않은지 확인하고 이미 정의 된 경우 단락을 검사합니다. 그렇지 않으면 오른쪽이 왼쪽 변수에 할당됩니다.
방법 비교
// Using ??=
name ??= "Dave"
// Previously, ES2020
name = name ?? "Dave"
// Before that (not equivalent, but commonly used)
name = name || "Dave" // name ||= "Dave"
기본 예
let a // undefined
let b = null
let c = false
a ??= true // true
b ??= true // true
c ??= true // false
// Equivalent to
a = a ?? true
객체 / 배열 예
let x = ["foo"]
let y = { foo: "fizz" }
x[0] ??= "bar" // "foo"
x[1] ??= "bar" // "bar"
y.foo ??= "buzz" // "fizz"
y.bar ??= "buzz" // "buzz"
x // Array [ "foo", "bar" ]
y // Object { foo: "fizz", bar: "buzz" }
?? = 브라우저 지원 2020 년 7 월-.03 %
?? = Mozilla 문서
|| = 모질라 문서
&& = Mozilla 문서