본문 바로가기
JaveScript

논리연산자(&&, ||)의 단축평가

by 원더링 2022. 6. 22.

▶ 단축 평가가 적용되는 논리 연산자는 &&, ||이다.

 

 

▶ 단축평가란 조건문 밖에서 작동되는 논리 연산자의 경우를 의미한다.

 

 

▶ 보통 조건문 안에서 논리연산자를 사용하면 그 값들은 boolean으로 평가된다.

 

const obj1 = { name: 'hong' };  // true
const obj2 = { name: 'omi', age: 25};  // true
const obj3 = { };  // false


if (obj1 || obj2) {  // true || true = true
    console.log('true: 1, false: 1 or true: 2, false: 0');
};


if (obj1 && obj3) {  // true && false = false
    console.log('true: 1, false: 1 or true: 0, false: 2');
};

 

 

조건문이 아닌 곳에서 논리연산자를 사용하면 단축 평가가 된다.

 

 

&& => 판단한 값이 true이면 그 다음 판단되는 요소를 반환, 판단한 값이 false이면 바로 값을 반환한다.

 

console.log(true && 'hello'); // hello
console.log(false && 'hello'); // false
console.log('hello' && 'bye'); // bye
console.log(null && 'hello'); // null
console.log(undefined && 'hello'); // undefined
console.log('' && 'hello'); // ''
console.log(0 && 'hello'); // 0
console.log(1 && 'hello'); // hello
console.log(1 && 1); // 1

 

 

|| => 판단한 값이 flase이면 그 다음 판단되는 요소를 반환, 판단한 값이 true이면 바로 값을 반환한다.

 

console.log(true || 'hello'); // true
console.log(false || 'hello'); // hello
console.log('hello' || 'bye'); // hello
console.log(null || 'hello'); // hello
console.log(undefined || 'hello'); // hello
console.log(''|| 'hello'); // hello
console.log(0 || 'hello'); // hello
console.log(1 || 'hello'); // 1
console.log(1 || 1); // 1

 

 

 

 

'JaveScript' 카테고리의 다른 글

Nullish Coalescing Operator  (0) 2022.06.22
Optional Chaining Operator  (0) 2022.06.22
Symbol  (0) 2022.06.21
Spread & Rest  (0) 2022.06.20
Map  (0) 2022.06.20