미누에요
[JavaScript] 단축 평가(Short Circuit Evaluation) 본문
728x90
반응형
SMALL
표현식을 평가하는 도중에 평가 결과가 확정된 경우, 나머지 평가 과정을 생략하는 것을 말한다.
'Human' && 'Animal' // "Human"
위 코드를 보면 두 문자열을 && 연산을 수행하고 있다.
'Human'은 Truthy 값이므로, && 연산자 앞의 값이 true이다. AND 연산은 나머지 하나의 값에 따라 true이거나 false가 정해진다.
따라서 위 값은 'Animal'에 의해 true or false가 정해진다.
따라서 결과는 "Human" 이 되는 것이다.
'Human' || 'Animal'; // 'Human'
위 코드는 OR 연산을 수행한다.
아까와 똑같이 'Human'을 Truthy 값으로 보면 결론적으로 true로 평가된다.
그리고 OR 연산은 두 값 중 하나만 true이면 true이다. 결론적으로 위 코드는 'Human', 즉 || 연산자 앞의 값에 따라 결과가 정해진다.
이러한 방식을 우리는 단축평가(short-circuit evaluation)이라 한다.
단축 평가 표현식 | 평가 결과 |
true || anything | true |
false || anything | anything |
true && anything | anything |
false && anything | false |
이러한 단축 평가는 보통 if문을 대체하는 데 사용된다.
var isdone = true;
var message = '';
if(done) message = '완료';
// 위 if문을 대체 가능
message = done && '완료';
console.log(message); // 완료
728x90
반응형
LIST
'JavaScript' 카테고리의 다른 글
[JavaScript] 함수 선언(Function Declaration), 함수 선언문, 함수 표현식, Function 생성자 함수, 화살표 함수(Arrow Function) (0) | 2025.01.21 |
---|---|
[JavaScript] 원시 타입(primitive type)과 객체 타입(object type) (0) | 2025.01.21 |
[JavaScript] 명시적 타입 변환(explicit coercion), 암묵적 타입 변환(implicit coercion) (0) | 2025.01.20 |
[JavaScript] JavaScript의 데이터 타입(Data Type) (0) | 2025.01.19 |
[JavaScript] Ajax의 원리(The principles of Ajax) (0) | 2025.01.18 |