- 변수(심화) -
"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 연산자를 사용해서 호출
- Computed property -
* 계산된 프로퍼티
* [ ] 괄호 안에 변수를 넣어서 사용한다
- Methods -
* Object.assign() : 객체 복제
* 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 |