Study/JavaScript

비교(2)__일치연산자 심화

더 멋진 세상을 꿈꾸는 개발자 2020. 4. 14. 16:57

# 비교(2)__일치연산자 심화

## null

    alert(null == undefined);   //ture
    alert(null === undefiend);   //false


**null** 은 값이 없다 라는 의미.
**undefined** 값이 정의되지 않았다. 라는 의미. 

null 과 undefined는 의미론적으로는 비슷해보이나, 
아주 중요한 차이가 있다. 

undefined = 그냥 값이 없는 상태. **프로그래머가 의도하지 않은 상황**
null = 값이 없는데, 이건 프로그래머가 의도적으로 값이 없다고 정의한 상태.  **프로그래머가 의도한 상황**


## true/false는 무엇인가? (boolean)


**data type**
    true / false     //boolean
    -1, 0, 1, 2, 3...   //number
    "a", "b", "c" ...    //string
    undefined   // undefined
    null    //null


자바스크립트에서는 숫자 1 을 true로 간주한다.
그리고 숫자 1이 아닌 숫자를 false로 간주.

    alert(true == 1);    //true
    alert(true === 1);    //false
    alert(true == '1');    //true
    alert(true === '1');    //false
    alert(0 === -0);     //true
    alert(NaN === NaN);    //false


## 부정과 부등호

### !=
**!**는 부정을 의미한다. 
'같다'의 부정은 '같지 않다'이다. 이것을 기호로는 !=으로 표시한다.


    alert(1!=2);    //true
    alert(1!=1);    //false
    alert("one"!=="two");    //true
    alert("one"!="one");    //false

### !==

'!==' 는 '!=' 와 '=='의 관계와 같다. 정확하게 같지 않다는 의미이다. 


### >

숫자들을 비교할 때 사용함.

    alert(10>1);    //true
    alert(10>10);    //false


### >=

좌항이 우항보다 크거나 같다.   <=은 반대의 의미. 

    alert(10>=20);    //false
    alert(10>=1);    //true