a = (b = 'string is truthy'); // b gets string; a gets b, which is a primitive (copy)
a = (b = { c: 'yes' }); // they point to the same object; a === b (not a copy)
(a && b)
논리적으로 (a ? b : a)
곱셈 같은 동작합니다 (예. !!a * !!b
)
(a || b)
논리적으로 (a ? a : b)
그리고 또한 같은 동작합니다 (예. !!a + !!b
)
(a = 0, b)
a
진실하고 암묵적으로 돌아온 다면 돌보지 않기로 짧다b
a = (b = 0) && "nope, but a is 0 and b is 0"; // b is falsey + order of operations
a = (b = "b is this string") && "a gets this string"; // b is truthy + order of ops
JavaScript 연산자 우선 순위 (작업 순서)
쉼표 연산자는 실제로 가장 권한이 적은 연산자이지만 괄호가 가장 권한이 높으며 한 줄 식을 만들 때 직접 사용됩니다.
결국, 하드 코딩 된 값보다는 '썽크'가 필요할 수 있으며, 나에게 썽 크는 함수와 결과 값 (동일한 '사물')입니다.
const windowInnerHeight = () => 0.8 * window.innerHeight; // a thunk
windowInnerHeight(); // a thunk