본문 바로가기
WEB/Javascript

Javascript(호이스팅, 생성자)

by 요섹남 2022. 4. 4.

- 변수(심화) -

"let, const" VS "var"

 

* var 는 한번 선언된 변수를 다시 선언할 수 있다

ex) var name = 'Mike'; // Mike          let name = 'Mike'; // Mike

     var name = 'Jane'; // Jane          let name = 'Jane'; // error!

 

* var 는 선언하기 전에 사용할 수 있다(호이스팅 hoisting)

ex) console.log(name); // undefined 선언은 호이스팅 되지만 할당은 되지 않는다

    var name = 'Mike';

코드가 실제로 이동하진 않지만 최상위로 끌어올려진 것 처럼 동작한다

 

호이스팅 : 스코프 내부 어디서든 변수 선언은 최상위에 선언된 것 처럼 행동

 

TDZ(Temporal Dead Zone) : let, const는 TDZ의 영향을 받는다

(1) 할당을 하기전에는 사용할수 없다

(2) 잠재적인 버그를 줄일수 있다

 

* 변수의 생성과정 "선언 단계 -> 초기화 단계 -> 할당 단계"

1. var 는 "선언 + 초기화 단계가 동시에 진행(undefined의 이유) -> 할당 단계"

2. let 은 "선언 단계 -> 초기화 단계 -> 할당 단계"

3. const 는 "선언 + 초기화 + 할당" 동시에 진행

 

* var : 함수 스코프(function-scoped)    let, const : 블록 스코프(block-scoped)

코딩앙마 님의 강의 영상 입니다

1. 스코프란? 함수가 실행될때 함수 내에서 변수에 접근할 수 있는 범위를 가리킨다

2. 함수스코프 = 새로운 함수가 생성될때마다 새로운 스코프가 발생한다
- 함수 몸체에 선언한 변수는 해당 함수 안에서만 접근할 수 있음

3. 블록스코프 = 블록스코프는 말 그래도 블록 { } 이 생성될 때마다 새로운 스코프가 형성되는 것을 의미

 

* let, const 는 예측가능한 값을 가져올수 있고 잠재적인 버그를 줄일수 있기 때문에 추천한다

 

- 생성자 -

* 첫 글자는 대문자로 쓴다

* new 연산자를 사용해서 호출

생성자를 생성하고 new 연산자를 사용해서 호출한 모습

 

- Computed property -

* 계산된 프로퍼티

* [ ] 괄호 안에 변수를 넣어서 사용한다

- Methods - 

* Object.assign() : 객체 복제

user 에 info1,2 의 내용을 복제할 수 있다

* Object.keys() : 키 배열 반환

코딩앙마 님의 강의 영상 입니다

* Object.values() : 값 배열 반환

* Object.entries() : 키/값 배열 반환

키와 값을 쌍으로 묶어서 배열로 만들어준다

* Object.fromEntries() : 키/값 배열을 객체로

키와 값을 쌍으로 배열로 만들어주면 객체로 만들어준다

'WEB > Javascript' 카테고리의 다른 글

DOM 이란  (0) 2022.08.29
Javascript(렉시컬 환경, 클로저)  (0) 2022.04.25
Javascript(구조 분해 할당, 나머지 매개변수, 전개 구문)  (0) 2022.04.17
Javascript(Object, method, array)  (0) 2022.04.01
Javascript(변수, 문법)  (0) 2022.04.01