자바스크립트 | 구독자 14명 | 브다닷펄

"var"를 쓸지 "let"를 쓸지 고민하는 당신께!!

일단 아래 코드를 돌려봅시다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
function test()
{
    var arr = new Array();
    arr.push(0);
    arr.push(1);
    arr.push(2);
    arr.push(3);
 
    for (var i = 0; i < arr.length++i)
    {
        var item = arr[i];
        let item2 = arr[i];
 
        setTimeout(function ()
        {
            console.log("var : " + item);
            console.log("let : " + item2);
        }, (i * 10));
    }
}
 
test();
cs



img/21/09/12/17bd563b2221d63d.png














3줄 요약 : 

1. 다른 언어의 var에 더 가까운건 let다.

2. 그러니 가급적 let 사용해라

3. 이건 자바스크립트의 빡침의 빙산의 일각이다.




좀더 자세하게 설명하자면....


만약 사용의도가 각각의 아이템에 접근하려는 것이면 let를 써야 하고

변수 자체에 접근(참조 변수의 경우 변수 모니터링이 필요한 경우가 있는데 그런경우를 말합니다.) 하려면 var을 써야합니다.

(원래 이럴때는 전역변수를 선언해서 쓰는게 정석입니다만....)



다른 언어를 하다 오신 분들이 "var는 변수선언이구나!"로 퉁쳐서 이해하다보면 가끔 문제가 생기는데...

가장 쉽게 보는게 위의 예제입니다.

그건 let에 가깝습니다.(emc6 부터 사용)

var는 다른 언어를 하는 사람이 자스할때 생기는 오묘한 빡침의 이유중하나일 뿐이죠 ㅎㅎㅎ



왜 var이 이렇게 동작하느냐 하는건.......호이스팅을 포함한 몇가지 자스의 특징때문인데.....

파고들어가면 복잡하니 3줄 요약만 보시면됩니다 ㅎㅎㅎㅎ

루리웹 오른쪽
루리웹 유머
루리웹 뉴스 베스트
PC/온라인
비디오/콘솔
모바일

루리웹 유저정보 베스트