-
[NodeJS] var, const, let, template stringNodeJS/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