사칙연산 가능
console.log(1);
console.log(1+1); //2
console.log(4-1); //3
console.log(2*2); //4
'', "" 짝을 이룬 따옴표 안의 문자열
console.log('1'+'1'); //11 문자와 문자를 결합한 형태
var
은 변수 선언 방식에 큰 단점을 가지고 있다.
변수를 한 번 더 선언했음에도 불구하고, 에러가 나지 않으며 다른 값이 출력된다.
코드량이 많아진다면 자칫 헷갈려 엉뚱한 변수의 값이 바뀔 우려가 있을 것이다.
var name = 'hello'
console.log(name) // hello
var name = 'javascript'
console.log(name) // javascript
그래서 ES6 이후 추가된 변수 선언 방식이 let
과 const
이다.
let: 변수 재선언은 불가능하나 재할당이 가능하다.
const: immutable한 변수이므로 변수 재선언, 재할당 모두 불가능하다. (상수라고 보면됨)
let name = 'hello'
console.log(name) // hello
let name = 'javascript'
console.log(name)
// Uncaught SyntaxError: Identifier 'name' has already been declared
name = 'react'
console.log(name)
//Uncaught TypeError: Assignment to constant variable.
또한, var
은 선언 단계와 초기화 단계가 한 번에 이루어진다.
하지만 let
의 경우 선언 단계와 초기화 단계가 분리되어 진행된다.
// 선언 단계와 초기화 단계가 동시에 실행되기 때문에 에러가 나지 않음.
console.log(a); // undefined
var a;
console.log(a); // undefined
a = 1; // 할당문에서 할당 단계가 실행된다.
console.log(a); // 1
// 변수가 선언되었으나 초기화(메모리 공간 확보와 undefined로 초기화)되지 않았다.
// 따라서 변수 선언문 이전에 변수를 참조할 수 없음.
console.log(a); // ReferenceError: a is not defined
let a; // 변수 선언문에서 초기화 단계가 실행된다.
console.log(a); // undefined
a = 1; // 할당문에서 할당 단계가 실행된다.
console.log(a); // 1