컴퓨터는 실제로 1과 0밖에 모름
1과 0은 각각 참과 거짓에 대응됨
JS에도 true와 false로 나타내는 불값(boolean)이라는 자료형이 있음
영국의 수학자 조지 불(Georg Boole)에서 따온 이름
true
와 false
를 입력함true;
false;
> 5 > 3 // true
> 5 >= 4 // true
> 5 <= 3 // false
연산자 | 이름 | 의미 | true 반환 |
---|---|---|---|
== | Equal | 같음 | 피연산자(operands)의 값이 동일한 경우 |
!= | Not equal | 같지않음 | 피연산자(operands)의 값이 동일하지 않은 경우 |
=== | Strict equal | 피연산자의 값과 자료형(type)이 모두 동일한 경우 | |
!== | Strict not equal | 피연산자가 같은 타입이지만 값이 다르거나, 다른 자료형(type)인 경우 | |
> | Greater than | 초과 | 좌측의 피연산자가 우측의 피연산자보다 값이 큰 경우 |
>= | Greater than or equal | 이상 | 좌측의 피연산자가 우측 피연산자보다 값이 크거나 같은 경우 |
< | Less than | 미만 | 좌측 연산자의 값이 더 큰 경우 |
<= | Less than or equal | 이하 | 좌측 피연산자의 값이 더 크거나 같은 경우 |
false
반환> NaN == NaN // false
> NaN >= NaN // false
> NaN <= NaN // false
> NaN != NaN // true
> true > false // true
> true >= false // true
> true <= false // false
str.charCodeAt()
메서드 사용> 'b' > 'a' // true;
> 'b'.charCodeAt() // 98
> 'a'.charCodeAt() // 97
> '@'.charCodeAt() // 64
> '3' > 5 // false
> '3' < 5 // true
> NaN > 5 // false
> NaN < 5 // false
> true > 0 // true
> true == 1 // true
> true === 1 // false
> true < 1 // false
연산자 | 이름 | 사용 | 의미 |
---|---|---|---|
&& | Logical AND | 표현1 && 표현2 | 표현1이 false로 변환될 수 있으면 false 반환 그렇지 않으면 표현2를 반환 따라서 불값과 함께 사용되는 경우 두 피연산자 모두 true를 반환하면 true 반환 그 외의 경우에서는 false를 반환 |
` | ` | Logical OR | |
! | Logical NOT | !표현 | 피연산자가 true로 변활될 수 있으면 false 반환 피연산자가 true로 변환될 수 없는 경우 true 반환 |
!
연산자를 연달아 두번 사용해서 다른 자료형을 불값으로 변환 가능함 > !true; // false
> !false; // true
> !!true; // true
> !!false; // false
> !!''; // false
> !!0; // false
> !!NaN; // false
> !!null; // false
> !!undefined; // false
// ! 연산자를 사용해서 다른 자료형을 불 값으로 형변환해보자
> !!'a' // true
> Boolean('a') // true
> !!'a' // true
document.all
)false
, ''
(빈문자열), 0
, NaN
, undefined
, null
, document.all
typeof null
을 했을 때 결괏값이 null
이 아니라 obejct
null
이 나와야 하지만 언어가 만들어진 초창기 실수 때문에 obejct
가 됨typeof null
식을 사용하는 모든 곳에 영향이 가기 때문에 바꿀 수 없게 됨null
인지 확인하기 위해서는 something === null
과 같이 비교 연산자를 통해 확인해야 함> typeof null; // object
> null == false; // false
> null == 0; // false
> null == NaN; // false
> null == undefined; // true
> null === undefined; // false
> typeof undfefined // undefined
> undefined == false // false
> undefined == 0 // false
> undefined == Nan // false
> undefined == null // true
> undefined === null // false