var name = 'Park'
var name = 'Kim'
let age = 20;
age = 30;
(선언된 객체 내부 값은 변경 가능)
const people = { name : "Kim" }
people.name = 'Park'
console.log(people.name)
// Park
변경 불가능한 객체 생성 - Object.freeze(변수명)
const people = { name : "Kim"}
Object.freeze(people);
people.name = 'Park'
console.log(people.name)
// Kim
전역 변수 : 모든 곳에서 쓸 수 있는 변수
직관적으로 전역변수임을 알 수 있는 window 방식이 더 선호됨.
: 변수,함수 선언을 변수 범위 맨위로 끌고오는 현상
즉, 스코프 내부 어디서든 변수 선언은 최상위에서 선언된 것 처럼 행동한다.
function 함수() {
var 이름 = 'Kim';
}
var 나이 = 30;
이런 코드의 경우 자바스크립트는 다음과 같이 선언을 맨 위로 올려서 해석함
var 나이;
function 함수() {
var 이름 = 'Kim';
}
나이 = 30;
ex)
console.log(나이) // undefined
var 나이 = 30;
console.log(나이) // 30
https://www.youtube.com/watch?v=ocGc-AmWSnQ&list=PLZKTXPmaJk8JZ2NAC538UzhY_UNqMdZB4
var: 선언 및 초기화 단계 -> 할당 단계
var의 경우 선언과 초기화가 함께 이루어지기 떄문에 할당자를 호출하면 undefined가 나옴
let: 선언 2.초기화 3.할당
선언은 이루어지지만 실제 초기화 단계를 거치면서 error 발생
const: 선언 + 초기화 + 할당이 동시에 이루어짐