Skip to content

Commit 5d2a526

Browse files
JiSopViolet-Bora-Lee
authored andcommitted
[논리 연산자] || 연산자의 단락평가 수정 #548
- || 연산자 단락평가 설명 틀린부분 수정 - || 연산자 단락평가 실행 예시 수정 - 기존 라인 변경 없이 불필요한 공백 제거
1 parent b8921b1 commit 5d2a526

File tree

1 file changed

+11
-11
lines changed
  • 1-js/02-first-steps/11-logical-operators

1 file changed

+11
-11
lines changed

1-js/02-first-steps/11-logical-operators/article.md

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# 논리 연산자
22

3-
자바스크립트엔 세 종류의 논리 연산자 `||`(OR), `&&`(AND), `!`(NOT)이 있습니다.
3+
자바스크립트엔 세 종류의 논리 연산자 `||`(OR), `&&`(AND), `!`(NOT)이 있습니다.
44

55
연산자에 '논리'라는 수식어가 붙긴 하지만 논리 연산자는 피연산자로 불린형뿐만 아니라 모든 타입의 값을 받을 수 있습니다. 연산 결과 역시 모든 타입이 될 수 있습니다.
66

@@ -31,8 +31,8 @@ alert( false || false ); // false
3131

3232
피연산자가 불린형이 아니면, 평가를 위해 불린형으로 변환됩니다.
3333

34-
예를 들어, 연산 과정에서 숫자 `1``true`로, 숫자 `0``false`로 바뀌죠.
35-
34+
예를 들어, 연산 과정에서 숫자 `1``true`로, 숫자 `0``false`로 바뀌죠.
35+
3636
```js run
3737
if (1 || 0) { // if( true || false ) 와 동일하게 동작합니다.
3838
alert( 'truthy!' );
@@ -103,7 +103,7 @@ alert( undefined || null || 0 ); // 0 (모두 falsy이므로, 마지막 값을
103103

104104
`firstName`, `lastName`, `nickName`이란 변수가 있는데 이 값들은 모두 옵션 값이라고 해봅시다.
105105

106-
OR `||`을 사용하면 실제 값이 들어있는 변수를 찾고, 그 값을 보여줄 수 있습니다. 변수 모두에 값이 없는 경우엔 `익명`를 보여줍시다.
106+
OR `||`을 사용하면 실제 값이 들어있는 변수를 찾고, 그 값을 보여줄 수 있습니다. 변수 모두에 값이 없는 경우엔 `익명`를 보여줍시다.
107107

108108
```js run
109109
let firstName = "";
@@ -116,20 +116,20 @@ alert( undefined || null || 0 ); // 0 (모두 falsy이므로, 마지막 값을
116116
```
117117

118118
모든 변수가 falsy이면 `"익명"`이 출력되었을 겁니다.
119-
119+
120120
2. **단락 평가**
121121

122122
OR 연산자 `||`가 제공하는 또 다른 기능은 '단락 평가(short circuit evaluation)'입니다.
123-
124-
위에서 설명해 드린 바와 같이 OR`||`은 왼쪽부터 시작해서 오른쪽으로 평가를 진행하는데, truthy를 만나면 나머지 값들은 건드리지 않은 채 평가를 멈춥니다. 이런 프로세스를 '단락 평가'라고 합니다.
123+
124+
위에서 설명해 드린 바와 같이 OR`||`은 왼쪽부터 시작해서 오른쪽으로 평가를 진행하는데, truthy를 만나면 나머지 값들은 건드리지 않은 채 평가를 멈춥니다. 이런 프로세스를 '단락 평가'라고 합니다.
125125

126126
단락 평가의 동작 방식은 두 번째 피연산자가 변수 할당과 같은 부수적인 효과(side effect)를 가지는 표현식 일 때 명확히 볼 수 있습니다.
127127

128-
아래 예시를 실행하면 첫 번째 메시지는 출력되지만, 두 번째 메시지는 출력되지 않습니다.
128+
아래 예시를 실행하면 두 번째 메시지만 출력됩니다.
129129

130130
```js run no-beautify
131-
*!*true*/!* || alert("printed");
132-
*!*false*/!* || alert("not printed");
131+
*!*true*/!* || alert("not printed");
132+
*!*false*/!* || alert("printed");
133133
```
134134

135135
첫 번째 줄의 `||` 연산자는 `true`를 만나자마자 평가를 멈추기 때문에 `alert`가 실행되지 않습니다.
@@ -153,7 +153,7 @@ alert( true && false ); // false
153153
alert( false && false ); // false
154154
```
155155

156-
아래는 `if`문과 AND 연산자를 함께 활용한 예제입니다.
156+
아래는 `if`문과 AND 연산자를 함께 활용한 예제입니다.
157157

158158
```js run
159159
let hour = 12;

0 commit comments

Comments
 (0)