JavaScript
변수와 생성자 함수
쭈녁
2024. 1. 5. 16:10
변수
호이스팅 :
스코프 내부 어디서든 변수 선언은 최상위에서 선언된 것로 인식된다.
TDZ :
변수에 값을 할당하기 전엔 사용할 수 없다.
let은 스코프 단위에 적용되는 변수이다. 때문에 아래 코드는 애러가 발생한다. 이는 let 변수는 호이스팅이 되지 않는 것이 아니라 showAge()라는 function의 스코프 안에서만 유효하기 때문에 로그에 age 가 인식 되지 않는 것이다.
let age = 30;
function printAge(){
console.log(age);
let age = 20;
}
showAge()
//30
var 생성 과정:
- 선언 + 초기화
- 할당
let 생성 과정
- 선언
- 초기화
- 할당
let은 var와 다르게 선언과 초기화가 분리되어 있다.
var는 변수 선언과 동시에 초기화 되지만 let은 변수 이름이 먼저 선언되고
값을 초기화하는 코드를 만났을 때 초기화 된다.
const 선언 과정
- 선언 + 초기화 + 할당
예시 코드)
let name;
name = 'kim';
var age;
num = 30;
const gender;
gender = 'male'; //SyntaxError 발생 선언될 때 값이 할당되어야
var : 함수 스코프
- JS에서 함수는 일급객체이기 때문에 var 변수도 실행 단계에서 생성 된다.
- 블록 외부에서도 유효하지만 함수 내에 선언되면 벗어날 수 없다.
let, const : 블록 스코프
- 함수내부, if문, for문 while문 등 내부에서만 유효하다(블록내에선 지역변)
생성자 함수
객체 리터럴
//객체 리터럴
let user = {
name : 'A',
age : 20,
}
//생성자 함수
function User(name , age){ //첫글자를 대문자
this.name = name;
this.age = age;
}
let user1 = new User('A',2);
Conputed property
let a = 'age';
cosnt user = {
name : 'A',
[a] : 20,
[5+5] : 10,
}
{name: 'a', age:20, 10:10}