변수의 선언
var a = 1
var b = 2
console.log(a) // 1
console.log(a+b) // 3
var a = 2
console.log(a+b) // 4
Variable
변수는var
이라는 키워드로 선언한다.
a
와b
라는 이름의 변수에 각각 1과 2를 할당하고,
하나씩 또는 연산하여 출력할 수 있다.
var
로 선언된 변수는 값을 다시 선언 할 수있다.
var name = '홍길동'
var job = '도사'
console.log(job + ' ' + name) // 도사 홍길동
var
에는number
외에도String
타입도 선언 할 수있다.
변수의 재활용성
console.log(50+100) // 150
console.log((50+100)*10) // 1500
console.log(((50+100)*10)-50) // 1450
console.log((((50+100)*10)-50)/10) // 145
var a = 50
a = a + 100
console.log(a) // 150
a = a * 10
console.log(a) // 1500
a = a - 50
console.log(a) // 1450
a = a / 10
console.log(a) // 145
코드만 놓고보면 문제가 없지만
여기서 50을 다른 수로 바꿔야 할 경우 코드를 네 줄 전부 수정해야 한다.
하지만 a라는 변수에 값을 선언하여 코드를 작성할경우 이후에 값을 바꿔야 할 때
변수 a를 다시 선언하여 코드를 한줄만 수정해도 간단하게 대처 할 수 있다.
변수 var
let
const
의 차이
var
의 경우
var a = "홍길동";
console.log(name); // 홍길동
var a = "전우치";
console.log(name); // 전우치
let
의 경우
let b = 'let' // let
let b = 'let2' // Uncaught SyntaxError: Identifier 'testCase' has already been declared
b = 'let3' // let3
const
의 경우
const c = 'const'
// const
const c = 'const2'
// Uncaught SyntaxError: Identifier 'testCase' has already been declared
c = 'const3'
// Uncaught TypeError:Assignment to constant variable.
var
의 경우는 재할당 재선언이 자유롭다.
let
의 경우에는 재할당은 가능하지만 재선언은 불가능하다.
const
의 경우에는 재할당과 재선언 둘 다 불가능하다.
var a = 1
if(typeof a == 'number' ){
var result1 = true;
let result2 = true;
const result3 = true;
} else {
var result1 = false;
let result2 = false;
const result3 = false;
}
console.log(result1); // true
console.log(result2); // Uncaught ReferenceError: result2 is not defined
console.log(result3); // Uncaught ReferenceError: result3 is not defined
var
의 경우는function scope
를 가지기 때문에
함수 안에서 선언된 값을 함수 밖에서 사용할 수 있다.
let
과const
의 경우에는block scope
를 가지기 때문에
함수 안에서 선언된 값은 함수 밖에서 사용할 수 없다.