반응형

자바스크립트 개발 환경 Microsoft Visual Studio 2015 버전 HTML 기능 및 Chrome을 이용하고 있습니다.





자바스크립트에서 null과 undefined는 엄연히 다르다.


결론부터 말하자면

undefined와 null은 값은 같으나 타입이 다르다.





자바스크립트에서 null은 "nothing"을 의미한다.


즉, 아무것도 존재하지 않는다라는 의미이다.


하지만 자바스크립트에서 null의 type은 object임을 알고 있어야 한다. 


예를들어보자.


var y = { first: "a", second: "b" };

y = null; 


이라고 했을 때 값은 null이 되지만 여전히 타입은 object이다.







자바스크립트에서 undefined도 마찬가지로 "nothing"을 의미한다.


이때 null과 다른점은 type도 undefined로 같다는 것이다.


var y = { first: "a", second: "b" };

y = undefined; 


라고 했을 때 값은 undefined이고 타입도 undefined가 됨을 알 수 있다.




1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<!DOCTYPE html>
<html>
    <head>
        <title>test title</title>
    </head>
 
    <body>
        <h2> JavaScript </h2>
 
        <p id="xId">x의 타입은 ?? </p>
        <button type="button" onclick="getX()"><< click >></button>
 
        <p id="yId">y의 타입은 ?? </p>
        <button type="button" onclick="getY()"><< click >></button>
 
        <p id="xy">x와 y의 관계는? </p>
        <button type="button" onclick="getXY()"><< click >></button>
 
        <script>
 
            var x;
            var y = { first: "a", second: "b" };
            y = null;
 
            function getX() {
                document.getElementById("xId").innerHTML = typeof (x);
            }
 
            function getY() {
                document.getElementById("yId").innerHTML = typeof (y);
            }
 
            function getXY(){
                document.getElementById("xy").innerHTML =
                    "y의 값과 x의 값이 같나? :: " + (y == x) + "<br>" + 
                    "y와 x의 값과 타입이 같나? :: " + (y === x) + "<br>";
            }
 
        </script>
    </body>
</html>
 
//                                                       This source code Copyright belongs to Crocus
//                                                        If you want to see more? click here >>
Crocus



클릭하시면 결과 화면을 확인 할 수 있습니다.





















반응형