JavaScript

자바스크립트 (JavaScript) - 5 : 부울 자료형 2 (Boolean)

n.han 2016. 7. 18. 12:50

다음은 자바스크립트 논리 연산자의 특이한 내부 동작이다. 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