var
var는 선언하기 전에 사용할 수 있다. (호이스팅)
할당은 호이스팅 되지 않는다. undefined
let
let과 const도 호이스팅 되지만, var처럼 동작하지 않는다.
Temporal Dead Zone 때문에 TDZ의 영향을 받아 할당하지 않으면 선언되지 않음
변수의 생성 과정
var
1. 선언 및 초기화 단계
ㄴ 동시에 진행되기 때문에, 할당 전 호출하면 undefined 나옴
2. 할당 단계
let
1. 선언 단계
2. 초기화 단계
const
1. 선언 + 초기화 + 할당 단계
ㄴ 선언하면서 바로 할당 필요
스코프
var : 함수스코프
ㄴ 함수 내에서 선언된 변수는 함수 내에서만 사용 가능
let, const : 블록스코프
ㄴ 선언된 블록 내에서만 사용 가능
생성자 함수
리터럴된 객체를 여러개 사용해야할 때
생성자 함수 생성 규칙
첫 글자를 대문자로
function User(name, age) {
}
//생성자 함수
function User(name, age){
this.name = name;
this.age = age;
}
//생성자 함수 호출 시
let user1 = new User('Mike', 30);
let user2 = new User('Jane', 22);
let user3 = new User('Tom', 17);
console.log(user1);
console.log(user2);
console.log(user3);
ㄴ 생성자 함수호출 시 매게변수는 재료, 만들어지는 생성되는 객체들은 와플!
생성자 함수 메소드
//생성자 함수
function User(name, age){
this.name = name;
this.age = age;
this.sayName = function(){
console.log(this.name);
}
}
//생성자 함수 호출 시
let user1 = new User('Mike', 30);
let user2 = new User('Jane', 22);
let user3 = new User('Tom', 17);
let user5 = new User('Han', 40);
user5.sayName(); //생성자함수의 sayName 메소드 호출
'JS' 카테고리의 다른 글
#자바스크립트 스터디 6 - 배열메소드2 (0) | 2023.11.02 |
---|---|
#자바스크립트 스터디 5 - 배열메소드1 (0) | 2023.10.31 |
#자바스크립트 스터디 4 - Math 메소드, 문자열 메소드 (0) | 2023.10.31 |
#자바스크립트 스터디 3 - 객체 메소드(assign, keys 등), Symbol 데이터 (0) | 2023.10.29 |
#자바스크립트 스터디 1 - 변수 & 함수 & 객체 & 배열 (0) | 2023.10.27 |