let
{
let message = "안녕하세요.";
alert(message); // 안녕하세요.
}
alert(message); // ReferenceError: message is not defined
- 위의 예제와 같이 블록 {…} 안에서 let을 사용하여 선언한 변수는 블록 안에서만 사용 가능하다 !
{
let message = "안녕하세요.";
alert(message); // 안녕하세요.
}
{
let message = "안녕히 가세요.";
alert(message); // 안녕히 가세요.
}
// 재선언 불가
let message = "안녕하세요.";
alert(message);
let message = "안녕히 가세요."; // SyntaxError: Identifier 'message' has already been declared
alert(message);
- 이미 선언된 변수와 동일한 이름을 가진 변수를 선언한 경우 SyntaxError: Identifier 'message' has already been declared 에러가 발생한다. → 재선언이 불가능하다 !
let message = "안녕하세요.";
alert(message);
message = "안녕히 가세요.";
alert(message);
- let은 업데이트가 가능하다 !
이 외 if, for, while에서도 블록 안에서만 접근가능하다.
const
: const 선언도 선언된 블록 범위 내에서만 접근 가능하다 ! ( let과 동일 )
- const는 업데이트도, 재선언도 불가능하다.
const greeting = {
message: "say Hi",
times: 4
}
greeting = {
words: "Hello",
number: "five"
} // error: Assignment to constant variable.
greeting.message = "say Hello instead";
console.log(greeting.message)
var
: 전역 범위 혹은 함수 범위로 지정된다 .
{var str = "hey hi";}
function newFunction() {
var hello = "hello";
}
console.log(str) // 전역 범위로 정상작동 !
console.log(hello); // error: hello is not defined
- 재선언가능, 업데이트 가능하다 !
✔ var의 문제점 : 같은 변수명으로 재선언이 가능하기 때문에, 변수가 이미 정의되어 있다는 사실을 인식하지 못할 경우, 기존 변수가 재정의 되어 뜻밖의 출력 결과를 발생시킬 수 있음 !
'[NodeJS] 노드' 카테고리의 다른 글
| [NodeJS] 비밀번호 암호화하기-bcrypt 모듈 (0) | 2024.06.03 |
|---|---|
| [Express] express-async-handler (0) | 2024.06.03 |
| RESTful API (0) | 2024.05.28 |
| 블로킹과 논블로킹 (0) | 2024.05.27 |
| 버퍼와 스트림 (0) | 2024.05.23 |