자바스크립트 논리값

(2019-04-11)

자바스크립트 논리표현식 평가

1. 자바스크립트 논리표현식 평가 규칙

  ㅇ false 로 취급하는 경우
     - false
     - null (빈 객체)
        . null 이외 객체 모두를 true로 취급
     - undefined (미정의 변수)
     - 빈 문자열 ('')
     - 숫자 영 (0)
     - 숫자 특수 기호 NaN

     * 즉, if (변수 또는 표현식) => false 이려면,
        . ① false, ② null, ③ undefined, ④ '', ⑤ 0, ⑥ NaN => 6개 모두 가능
           .. 즉, false, null, undefined, "", 0, NaN 은 모두 false로 해석


  ㅇ 위 경우 이외 모든 경우에는, true로 취급


2. 자바스크립트 연산자비교연산자 (`==`, `===`)의 비교

  ㅇ `==`  :  (표준 동등 연산자, standard equality operator)
     - 아래와 같이, 형변환 및 비교 과정을 함께 수행함
        . 타입이 같고, 값도 같으면 => true
        . 타입이 같고, 값이 틀리면 => false
        . undefined,null은 같은 것으로 봄 (undefined == null) => true
        . 문자열,수치가 함께 있으면, 수치로 형변환한 다음에, 비교 함
        . 논리값일 때, true는 수치 1, false는 수치 0 으로 형변환한 다음에, 비교 함
        . 객체 타입과 원시 타입이 함께 있으면,
          객체를 toString(),valueOf() 메소드형변환한 다음에, 비교 함

  ㅇ `===` :  (완전 일치 연산자, strict equality operator)
     - 형변환을 수행하지 않고, 엄격한 비교 과정을 수행함
        . 따라서, 위 표준동등연산자에서 true 이라도,
                  완전일치연산자에서는 대부분 false 로 평가됨


3. 논리연산자(&&,||)에서 숏컷

  ㅇ (true) && 반환값
     - 例) age >= 18 && console.log("게임 허용"); // 성인이면, 게임 허용

  ㅇ (false) || 반환값 
     - 例) age >= 18 || console.log("게임 불가"); // 미성년이면, 게임 불가


[JS 변수,타입] 1. JS 변수,타입 2. JS 타입 구분 3. JS 타입 변환 4. JS 논리값 5. 변수 호이스팅

 
        최근수정     요약목록     참고문헌