다음은 자바스크립트 논리 연산자의 특이한 내부 동작이다. 100 || 200의 경우 100은 0이 아니기 때문에 true이다.
따라서 두 번째 피연산자의 결과와 상관 없이 true이기 때문에 연산을 더 이상하지 않고, 첫 번째 피연산자를 return한다.
즉 연산이 더 이상할 필요가 없으면 하지 않고, 논리 연산의 결과로 피연산자를 반환한다.
그 이유는 논리 연산은 결과를 true, false로 변환하지 않고 값에 의한 평가를 하기 때문이다.
<!DOCTYPE html> <html> <head> <title>논리 연산자 테스트</title> <meta charset="UTF-8"> </head>
<body> <script> alert(100 || 200); alert(0 || 100); alert(100 && 200); alert(0 && 200); </script> </body> </html> |
alert 결과 : 100, 100, 200, 0 |
다음은 잘못된 비교 연산자 사용의 예이다. 아래의 예시의 결과를 예측해보자.
<!DOCTYPE html> <html> <head> <title>비교 연산자 테스트</title> <meta charset="UTF-8"> </head>
<body> <script> alert(30 > 20 > 10); </script> </body> </html> |
false |
'JavaScript' 카테고리의 다른 글
자바스크립트 (JavaScript) - 7 : 변수 2 (Variable) (0) | 2016.07.18 |
---|---|
자바스크립트 (JavaScript) - 6 : 변수 1 (Variable) (0) | 2016.07.18 |
자바스크립트 (JavaScript) - 4 : 부울 자료형 1 (Boolean) (0) | 2016.07.18 |
자바스크립트 (JavaScript) - 3 : 주석, 문자열, 숫자 (0) | 2016.07.18 |
자바스크립트 (JavaScript) - 2 : 자바스크립트 기본 문법 (키워드, 식별자) (0) | 2016.07.18 |