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"을 그대로 출력