ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [NodeJS] var, const, let, template string
    NodeJS/Basic 2022. 9. 14. 16:55

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

    // VAR_CONST_LET.js
    
    // 변수선언 var
    var x = 3;
    console.log(x);
    x = '홍길동';
    console.log(x);
    
    // 상수형 변수 선언 const
    // 변수의 생성과 함께 반드시 초기값이 있어야 하며 이후 저장된 값의 변경이 불가능함
    const y = 3;
    console.log(y);
    // y = '홍길동'; // 오류: const 변수는 한번 정해논 값을 변경할 수 없는 변수
    // var와 const의 두 번째 차이점
    
    // 블록스코프: var 변수는 영역({},지역변수)과 상관없이 값이 접근 가능
    if(true){
        var a = 3;
    }
    console.log(a);
    // 다만 함수의 시작과 끝을 구분 짓는 중괄호({,})는 영향을 받아서 함수를 벗어나면 인식되지 못함
    // 반면 const 변수(상수)는 블록영역에 영향을 받아 접근 구분됨
    if(true){
        const b = 3;
    }
    console.log(b); // error
    // const 변수는 상수형 변수라고 부름
    // 한번 할당된 값은 변경할 수 없으며 상수선언 초기화가 없어도 오류 발생
    const a1 = 0;
    // a1 = 1; // error
    // const c; // error: 초기화되지 않은 상수형 변수
    
    // var을 사용하지 않는 조건하에서 값을 변경할 수 있는 변수를 사용하려면 
    // 서버프로그램에서 주로 사용하는 let 변수를 사용함. 
    let b1 = 0;
    b1 = 1; // 정상 실행

     

    const, let, var의 차이점

    -자바스크립트의 변수 생성은 선언, 할당(초기값 대입), 사용의 단게로 구분됨. const와 let은 그 사용영역이 구분되어 사용해야 하지만 var는 비교적 자유로움.

    -const와 let변수는 반드시 선언 후 사용해야하며 var는 선언없이 사용될 수 있음. 따라서 선언과 할당없이 사용된 변수는 모두 var변수임. 선언과 할당없이 사용된 var 변수와 최초값은 undefined임.

     

    const

    -선언과 함께 값이 초기화되며 새로운 값으로 재할당이 되지 못하는 변수

    -변수 선언 후 반드시 초기값이 할당되어야 함

    -스코프(중괄호로 묶인 영역) 안에서 같은 이름의 변수를 중복선언 시 오류 발생

    -스코프에서 영향을 받아 스코프를 벗어나면 변수가 인식되지 못함

    -오류내용: 변수이름 is not defined

     

    let

    -재할당이 가능한 변수

    -const와 같이 반드시 선언 후 사용

    -스코프 안에서 같은 이름의 변수를 중복선언 시 오류 발생

    -초기값 할당 없이 선언된 변수의 최초값은 undefined

    -중괄호 영역(스코프)에 영향을 받아 스코프를 벗어나면 변수가 인식되지 못함

    -오류내용: 변수이름 is not defined

     

    var

    -선언, 할당, 사용이 위치와 상관없이 자유로움

    -스코프에서 상관없이 값의 접근이 가능함

    -같은 스코프 안에서 중복 선언이 가능함. 이 때 마지막에 대입된 값을 현재값으로 인식함

    -이와 같은 특성으로 구조가 복잡한 함수내에서는 현재값을 유추하는데 다소 불편함이 있음

    -값이 변경이 자유로워서 의도한 값의 저장 및 유지가 실패할 가능성이 있음

    -함수의 영역을 벗어나는 스코프에서만 영향 받음

     

    변수 선언과 선언키워드별 사용 방향

    1. 변수 선언에는 기본적으로 const를 사용하고 재할당이 필요한 경우에 한정해 let을 사용하는 것을 권장

    -객체를 재할당하는 경우는 생각보다 흔하지 않으므로 객체 변수 또한 const를 사용하는 것을 권장하며 const를 사용하면 의도치 않은 재할당을 방지해주기 때문에 데이터의 안전을 보장 받을 수 있음

    2. 재할당이 필요한 경우 한정해 let을 사용. 이 때 변수의 스코프는 최대한 좁게 만드는 것을 권장. 재할당이 필요 없는 상수와 객체에만 const를 사용함


    // 문자열들의 '+'  연산
    // 기존의 연산과 출력 방법
    const num1 = 1;
    const num2 = 2;
    const result = 3;
    const string1 = num1 + ' 더하기 ' + num2 + ' 는 \'' + result + '\'';
    console.log(string1);

     

    template string을 사용하는 연산

    -jsp  페이지에서  EL 문법을 사용한것과 비슷하게 문자열과 변수값을 하나의 문장안에서 같이 표현하는 문법
    -전체문자열은 `(그레이브-틸드기호아래에 있는 작은 따옴표하고 비슷한 기호)로 묶고 그 안에 어퍼스토피(작은따옴표)와 큰따옴표를 자유롭게 사용하며, ${ } 를 이용하여 변수의 값을 문자열 안에 삽입

    const num3 = 1;
    const num4 = 2;
    const result2 = 3;
    const string2 = `${num3} 더하기 ${num4} 는 "${result2}"`;
    console.log(string2);
    console.log();
    
    // 기존의  EL 문법처럼 중괄호안에서는 각 변수들간의 연산도 가능합니다
    const num5 = 2000;
    const num6 = 3;
    const text = `${num5} 원짜리 모자를 ${num6}개 구입하여, ${num5*num6}원을 지출하였습니다`;
    console.log(text);

    'NodeJS > Basic' 카테고리의 다른 글

    [NodeJS] Promise, Await  (0) 2022.09.14
    [NodeJS] Arrow Function  (0) 2022.09.14
    [NodeJS] Array  (0) 2022.09.14
    [NodeJS] Object  (0) 2022.09.14
    [NodeJS] 설치, 콘솔실행  (0) 2022.09.14

    댓글

Designed by Tistory.