console.log( true || true); //true
console.log( true || false); // true
console.log( false || false); //false
console.log( false || true); //true
result = value1 || value2 || value3;
console.log( 1 || 0 ); // 1 (1은 truthy임)
console.log( null || 1 ); // 1 (1은 truthy임)
console.log( null || 0 || 1 ); // 1 (1은 truthy임)
console.log( undefined || null || 0 ); // 0 (모두 falsy이므로, 마지막 값을 반환함)
이런 OR의 추가 기능을 이용하면 여러 용도로 OR 연산자를 활용 가능
let firstName = "";
let lastName = "";
let nickName = "바이올렛";
alert( firstName || lastName || nickName || "익명"); // 바이올렛
true || console.log("not printed");
false || console.log("printed");
console.log( true && true ); // true
console.log( false && true ); // false
console.log( true && false ); // false
console.log( false && false ); // false
result = value1 && value2 && value3;
가장 왼쪽 피연산자부터 시작해 오른쪽으로 나아가며 피연산자를 평가
각 피연산자는 불린형으로 변환됨. 변환 후 값이 false이면 평가를 멈추고 해당 핀연산자의 변환 전 원래 값을 반환
피 연산자 모두가 평가되는 경우 (모든 피연산자가 true로 평가되는 경우)엔 마지막 피연산자가 반환
정리해 보자면 이렇습니다. AND 연산자는 첫 번째 falsy를 반환합니다. 피연산자에 falsy가 없다면 마지막 값을 반환합니다.
console.log( 1 && 2 && null && 3 ); // null
console.log( 1 && 2 && 3 ); // 마지막 값, 3
result = !value;
NOT 연산자는 인수를 하나만 받고, 다음 순서대로 연산을 수행합니다.
console.log( !true ); // false
console.log( !0 ); // true
console.log( !!"non-empty string" ); // true
console.log( !!null ); // false
위 내용은 koa.javascript 사이트에서 공부한 내용 정리