You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
alert( undefined||null||0 ); // 0 (모두 falsy이므로, 마지막 값을 반환함)
98
98
```
99
99
100
-
위에서 소개한 자바스크립트에서만 제공하는 OR 연산자의 추가 기능을 이용하면 다양한 용도로 OR 연산자를 활용할 수 있습니다.
100
+
이런 OR 연산자의 추가 기능을 이용하면 여러 용도로 OR 연산자를 활용할 수 있습니다.
101
101
102
102
1.**변수 또는 표현식으로 구성된 목록에서 첫 번째 truthy 얻기**
103
103
104
-
여러 변수가 있는데 이 변수들은 날짜 정보를 담고 있거나 `null` 혹은 `undefined`일 수 있다고 가정해 봅시다. 이들 중 실제 날짜 데이터가 들어 있는 첫 번째 변수는 어떻게 찾을 수 있을까요?
104
+
여러 변수가 있는데 이 변수들은 특정 정보를 담고 있거나 `null` 혹은 `undefined`일 수 있다고 가정해 봅시다. 이들 중 실제 유효한 데이터가 들어 있는 첫 번째 변수는 어떻게 찾을 수 있을까요?
105
105
106
106
OR `||`을 이럴 때 활용할 수 있습니다.
107
107
@@ -119,11 +119,11 @@ alert( undefined || null || 0 ); // 0 (모두 falsy이므로, 마지막 값을
119
119
`currentUser`와 `defaultUser` 둘 다 falsy였다면 `"unnamed"`가 출력되었을 겁니다.
120
120
2.**단락 평가**
121
121
122
-
피연산자엔 값뿐만 아니라 임의의 표현식이 올 수도 있습니다. 위에서 설명해 드린 바와 같이 OR`||`은 왼쪽부터 시작해서 오른쪽으로 평가 및 테스트를 진행하고, truthy를 만나면 평가를 중지하고 그 값을 반환합니다. 왼쪽부터 연산을 시작해 truthy에 도달한 순간 평가를 멈추기 때문에 모든 피연산자를 평가하지 않고 짧게 연산을 끝마칩니다. 이런 과정을 "단락 평가(short circuit evaluation)"라고 부르죠.
122
+
피연산자엔 값뿐만 아니라 임의의 표현식이 올 수도 있습니다. 위에서 설명해 드린 바와 같이 OR`||`은 왼쪽부터 시작해서 오른쪽으로 평가를 진행하고, truthy를 만나면 평가를 멈춘 후 그 값을 반환합니다. truthy를 만난 순간 평가를 멈추기 때문에 모든 피연산자를 평가하지 않고 짧게 연산을 끝마칩니다. 이런 프로세스를 '단락 평가(short circuit evaluation)'라고 부릅니다.
123
123
124
-
두 번째 피연산자가 변수 할당과 같은 부수적인 효과(side effect)를 가지는 표현식 일 때 단락 평가가 어떻게 동작하는지 명확히 볼 수 있습니다.
124
+
단락 평가의 동작 방식은 두 번째 피연산자가 변수 할당과 같은 부수적인 효과(side effect)를 가지는 표현식 일 때 명확히 볼 수 있습니다.
125
125
126
-
아래 예시에서 `x`의 값은 아직 할당되지 않은 상태입니다.
126
+
아래 예시에서 `x`엔 값이 아직 할당되지 않은 상태입니다.
127
127
128
128
```js run no-beautify
129
129
let x;
@@ -133,7 +133,7 @@ alert( undefined || null || 0 ); // 0 (모두 falsy이므로, 마지막 값을
133
133
alert(x); // 표현식 (x = 1)이 평가되지 않았기 때문에 x는 undefined입니다.
134
134
```
135
135
136
-
위 예시에서 첫 번째 인수가 `false`라면, `||`는 두 번째 인수를 평가하기 때문에 x에 값이 할당됩니다.
136
+
첫 번째 인수가 `false`라면, 두 번째 인수가 평가되기 때문에 `x`에 값이 할당됩니다.
137
137
138
138
```js run no-beautify
139
139
let x;
@@ -143,11 +143,11 @@ alert( undefined || null || 0 ); // 0 (모두 falsy이므로, 마지막 값을
143
143
alert(x); // 1
144
144
```
145
145
146
-
위 두 예시에서 할당은 복잡하지 않고 간단한 부수 효과였습니다. 평가가 진행되지 않으면 그 효과를 알 수 없는 기타 부수 효과가 있을 수도 있죠.
146
+
위 두 예시에서 살펴본 할당 연산은 복잡하지 않고 간단한 부수 효과입니다. 그런데 평가가 진행되지 않으면 그 효과가 드러나지 않는 부수 효과가 있을 수도 있습니다.
147
147
148
-
OR을 이런 식으로 활용하면 "`if` 조건문을 더 짧게" 대체할 수 있습니다. 첫 번째 피연산자를 불린값으로 변환하고, 그 값이 false 라면 두 번째 피연산자를 평가하도록 만들 수 있죠.
148
+
OR을 이런 식으로 활용하면 `if` 조건문을 '짧게' 줄일 수 있습니다. 첫 번째 피연산자를 평가했을 때 `false`면 두 번째 피연산자를 평가하도록 만들 수 있죠.
149
149
150
-
코드 이해도 측면에서 "평범한"`if`문을 사용하는 것이 좋긴 하지만, 가끔은 OR을 사용한 대안이 편리할 수 있습니다.
150
+
코드 이해도 측면에서 '평범한'`if`문을 사용하는 것이 좋긴 하지만, 가끔은 OR을 사용한 대안이 편리할 수 있습니다.
0 commit comments