[JavaScript] 01. Varaible & 02. Constructor

SSOYEONG·2022년 7월 20일
0

자바스크립트 기초

목록 보기
1/11
post-thumbnail

01. 변수

도입

  • let, const, var를 비교하자

var와 let

  • var는 한 번 선언된 변수를 다시 선언할 수 있다.
var name = 'Mike';
console.log(name);	// Mike
var name= 'Jane';
console.log(name);	// Jane
  • let은 오류 발생
let name = 'Mike';
console.log(name);	// Mike
let name= 'Jane';
console.log(name);	// error!
  • var는 선언하기 전에 사용할 수 있다.
  • 코드가 실제로 이동하진 않지만 var name;이 최상위로 올라간 것처럼 동작 -> 호이스팅
  • 할당이 아니고 선언만 된 것처럼
var name; 	// 호이스팅
console.log(name);	// undefined. 할당이 아니고 선언만 됨
name = 'Mike';
  • let일 경우 에러 발생
  • 왜? Temporal Dead Zone

TDZ

  • 호이스팅은 스코프 단위로 일어난다.
  • age의 경우 에러 발생

변수의 생성과정

  1. 선언 단계
  2. 초기화 단계
  3. 할당 단계
  • var는 선언과 초기화가 함께 이루어짐
  • 그래서 할당하지 않으면 undefined 상태
  • let은 3단계로 이루어짐. 에러 발생
  • const는 선언과 할당이 동시에 이루어져야 한다.

var : 함수 스코프
let, const: 블록 스코프

const age = 30;
if(age>19) {
  var txt = 'adult';
}
console.log(txt); 	// 'adult'
  • var를 사용하였을 경우 문제 없음
  • 그러나 let과 const일 경우 if문 내에서만 사용해야 한다. -> 블록 스코프
  • var보다는 let과 const를 사용하자

02. 생성자

객체 리터럴

let user = {
  name: 'Mike',
  age: 30,
}

생성자 함수

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', 20);
let user3 = new User('Tom', 10);
uer3.sayName();		// 'Tom'

References
https://youtu.be/4_WLS9Lj6n4
해당 포스팅은 [코딩앙마 - 자바스크립트 중급 강좌 : 140분 완성]을 수강하며 작성하였습니다.

profile
Übermensch

0개의 댓글