자바스크립트 논리값

(2022-09-23)

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


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

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

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

  ㅇ 위 경우 이외 모든 경우에는, true로 취급
     -  true
     -  `0 이외 모든` 숫자
     -  `빈 문자열 이외 모든` 문자열 
     -  `null 이외 모든` 객체
     -  `모든` 심볼


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

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

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


3. [자바스크립트]  삼항 연산자조건 연산자 (삼항 연산자) : ` ? : `
     -  [조건식] ? [참일 경우 반환값] : [거짓일 경우 반환값] 
        . 조건식이 true이면, 2번째 피연산자를 값으로 반환, false이면 3번째 피연산자 반환


4. [자바스크립트]  논리연산자(&&,||)에서 숏컷(지름길)단락 평가 참조논리 표현식에서, 왼쪽->오른쪽 순으로 평가하나,
     - 평가 결과가 중도에 결정되면, 나머지 표현식은 평가하지 않고 건너뛰는 것

  ㅇ &&
     - 例) age >= 18 && console.log("게임 허용");  // 성인이면(true), 게임 허용
        . (true) && 반환값 : 첫째 피연산자가 true이면, 둘째 피연산자가 평가됨
     - 例) "cat" && "dog"  // 둘째 피연산자를 평가하며, "dog"을 그대로 출력

  ㅇ ||
     - 例) age >= 18 || console.log("게임 불가");  // 미성년이면(false), 게임 불가
        . (false) || 반환값 : 첫째 피연산자가 false이면, 둘째 피연산자가 평가됨
     - 例) "cat" && "dog"  // 첫째 피연산자를 평가하며, "dog"을 그대로 출력

JS 변수,타입,논리식
   1. JS 변수,타입   2. JS 타입 구분   3. JS 타입 변환   4. JS 논리값 타입 평가  


Copyrightⓒ written by 차재복 (Cha Jae Bok)               기술용어해설 후원
"본 웹사이트 내 모든 저작물은 원출처를 밝히는 한 자유롭게 사용(상업화포함) 가능합니다"