node.JS)04.18(node.JS 기초, 변수 선언( const, let, var )
Programming/JS

node.JS)04.18(node.JS 기초, 변수 선언( const, let, var )

728x90

 

목차

     


     

    2022.04.11 - [Programming/BACKEND] - boot)04.11(모바일웹으로 )

     

    node.JS

    • 톰캣서버가 아닌 익스프레스 서버 사용. 
    • 기존 JS는 한계가 있어서 발전된 프레임워크
    • 자바스크립트는 웹브라우저에서 실행되는 반면, nodeJS는 웹브라우저를 이용하지 않고 JS 실행이 가능함!
    • nodeJS는 쉽게말해 서버가 아닌 실행기임

     

    1. 다운로드 및 설치

    왼쪽의 추천버전을 다운로드

    다운받은 파일을 실행하면

    체크할것

    설치가 완료되면 cmd창이 실행된 뒤 파워셀이 실행된다.

     

    설치가 정상적으로 되었는지 확인하고,

    npm을 최신버전으로 업데이트 한 뒤,

    npm버전도 확인을 한다.

     


     

    2. 노드.JS 기초

    편한 위치에 폴더를 생성하고 vsCode에서 생성한 폴더를 지정.

    폴더를 하나 더 생성한다.

     

    2.1. console.log

    그리고 아래와 같이 html파일을 생성

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
        <script type="text/javascript">
            document.write("<h2>브라우저에서 자바스크립트를 실행하여 body에 출력한다</h2>");
            console.log("브라우저에서 자바스크립트를 싱행하여 콘솔에 출력한다.")
        </script>
    </head>
    <body>
    </body>
    </html>

    live 실행하면

     

    var a = "Hello World & Node.js";
    console.log(a);
    console.log(a);
    console.log(a);
    console.log(a);
    console.log(a);

     


     

    1.3. 변수 선언

    • 자바스크립트의 버전에 따라 사용하는 변수선언이 많이 달라지고 있다.
    • 브라우저를 대상으로 하는 ES2015버전 이전에는 var로 변수선언이 많이 되었지만 이후부터 'const 또는 let 변수를 많이 사용'한다.

     

    1.3.1. const  변수 ( 상수형 변수 )

    // 상수형 변수 선언 const
    // 변수 생성과 함께 반드시 초기값이 있어야 하며, 이후 저장된 값의 변경이 불가능하다.
    const y = 3;
    console.log(y);
    //y = '홍길동' //에러 - const 변수는 최소 1회만 값을 할당할 수 있다.

     

    1.3.2. var과 const의 차이점

    • 블록 스코프( { } ) : 
      • 'var변수'는 ({ }, 지역변수)와 상관없이 값에 접근이 가능하다.
        다만, 함수의 시작과 끝을 구분짓는 중괄호( { } )는 영향을 받아서 함수를 벗어나면 변수로 인식되지 못한다.
      • 반면 'const 변수(상수)'는 블록영역에 영향을 받아 접근이 구분된다.
    //var과 const의 차이점
    // - 블록스코프 : var변수는 ({}, 지역변수)와 상관없이 값에 접근이 가능하다.
    if(true){
        var a =3;
    }
    console.log(a);
    // 다만 함수의 시작과 끝을 구분짓는 중괄호({, })는 영향을 받아서 함수를 벗어나면 변수로 인식되지 못한다.
    
    
    //반면 const 변수(상수)는 블록영역에 영향을 받아 접근이 구분된다.
    if(true){
        const b =3;
    }
    //console.log(b); //에러 발생

     

    • 'const 변수'는 '상수형 변수'라고 부른다.
      한 번 할당된 값은 '변경할 수 없으며', 상수 선언 초기화가 없어도 에러가 발생한다.
    //const 변수는 상수형 변수라고 부른다.
    // 한번 할당된 값은 변경할 수 없으며, 상수 선언 초기화가 없어도 에러가 발생한다.
    const a1 = 0;
    //a1 = 1;   //에러
    //const c; //에러 : 초기화되지 않은 상수형 변수

     

    1.3.3. let 변수 

    • 값을 변경할 수 있는 변수를 사용하려면, 앞에서 사용한 'var변수'나, 서버프로그래밍에서 주로 사용하는 'let 변수'를 사용한다.
    • var과 let변수의 차이는 다소 많지는 않으며, 명백히 다른 점이 있지만 현재 사용상 구분할 일이 그렇게 많지 않다.
    • 버전업과 제작자 사이에서 있을 수 있는 차이와 그의 차이점은 아래에 설명한다.
    let b1 = 0;
    b1 = 1; 	//정상 실행됨.

     

    1.3.4. const, let, var 의 차이점

    • 자바스크립트 변수 생성은 '선언', '할당(초기값 대입)', '사용'의 단계로 구분된다.
    • 'const'와 'let'은 그 사용영역이 구분되어 사용해야 하지만, 'var'은 그 구분이 비교적 자유로운 편.
    • 'const'와 'let'은 반드시 선언 후 사용해야 하며, 'var'은 선언 없이 사용가능하다.
      따라서 선언과 할당없이 사용되는 변수는 모두 'var변수'이다.
      선언과 할당없이 사용된 var변수의 최초값은 'undefined'이다.

    1.3.4.1. const

    • '선언과 함께 초기화'되며, 새로운 값으로 '재할당 되지 못하는 변수'
    • 변수 선언 후 반드시 초기값이 할당되어야 한다.
    • 스코프 안에서 같은 이름의 변수를 '중복선언시 에러'를 발생시킨다.
    • 중괄호 영역(스코프)에 영향을 받아 스코프를 벗어나면 변수가 인식되지 못한다.
      에러내용 ( 변수이름 is not defined )
    if(true){
        const a = 123;
        //const a = 123;    // 에러
    }
    // console.log(a);  	// 에러

     

    1.3.4.2. let

    • 재할당이 가능한 변수.
    • const와 같이 반드시 선언 후 사용해야 한다.
    • 스코프 안에서 같은 이름의 변수를 중복선언할 경우 에러를 발생시킨다.
    let b = 456;
    //let b = 789; 	// 에러발생
    • 초기값 할당 없이 선언된 변수의 최초값은 'undefined'이다
    • 중괄호 영역(스코프)에 영향을 받아 스코프를 벗어나면 변수가 인식되지 못한다.
      에러내용 ( 변수이름 is not defined)
    if(true){
        let c = 123;
    }
    //console.log(c);   // 에러

     

    1.3.4.3. var

    • 선언, 할당, 사용이 위치와 상관없이 자유롭다.
    • 스코프에 상관없이 값의 접근이 가능하다.
    • 같은 스코프 안에서 중복선언도 가능. 이때 마지막에 대입된 값을 현재값으로 인식한다.
    var i = 10;
    var i = 20;
     
    • 이와 같은 특성으로 구조가 복잡한 함수내에서는 현재 값을 유추하는데 다소 불편함이 있다.
    • 값의 변경이 자유로워서 의도한 값의 저장 및 유지가 실패할 가능성이 있다.
    • 함수의 영역을 벗어나는 스코프에만 영향을 받는다.
    •  

    1.3.5. 변수 선언과 종류에 따른 사용의 방향

    • 변수 선언에는 '기본적으로 const를 사용'하고, 재할당이 필요한 경우에 한해 'let을 사용하는 것을 권장'한다.
      • 객체를 재할당하는 경우는 생각보다 흔하지 않으므로, 객체 변수 또한 'const를 사용'하는 것을 권장.
      • const를 사용하면 의도치 않은 재할당을 방지해 주기 때문에 데이터의 안전을 보장받을 수 있다.
    • 재할당이 필요한 경우에 한정해 'let을 사용'한다. 이때, 변수의 스코프(영역)은 최대한 좁게 만드는 것을 권장.
      • 재할당이 필요없는 상수와 객체에만 const를 사용한다.

     

    300x250