| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
- 이벤트
- react
- 공식문서
- 개발 공부
- JavaScript
- 모던 자바스크립트 딥 다이브
- 코딩테스트
- 패스트캠퍼스
- 프로그래머스
- Github
- 국비지원교육
- 내일배움카드
- 비전공자
- useMemo
- 입문
- 모던 딥 다이브 자바스크립트
- 리액트
- 자료구조
- CSS
- next.js
- useRef
- 메가바이트스쿨
- 알고리즘
- styled-components
- GIT
- TypeScript
- MegabyteSchool
- 개발자취업부트캠프
- 자바스크립트
- 프론트엔드
- Today
- Total
개발 기록 남기기✍️
자바스크립트 중급 (1) - TDZ, 생성자 함수, 객체 메소드, 계산된 프로퍼티 본문
이번 포스트도 역시나 코딩앙마님의 강의를 보고 작성했습니다.
[자바스크립트 중급 강좌 : 140분 완성 - YouTube](https://www.youtube.com/watch?v=4_WLS9Lj6n4&t=5204s)
1. TDZ
: Temporal Dead Zone
: 스코프의 시작 지점부터 초기화 시작 지점까지의 구간
let age = 30;
function showAge(){
console.log(age); // TDZ
let age = 20; // 선언 및 초기화 시작
}; // 블록 스코프 범위
showAge(); // Error
let과 cons`는 hoisting이 되지만, TDZ 구간에 의해 메모리에 할당되지 않아 참조 에러가 발생한다.
변수의 생성 과정
- 선언 단계
- 초기화 단계 (`undefined` 할당)
- 할당 단계
- `var` : 선언 + 초기화 -> 할당 / 함수 스코프
- `let` : 선언 -> 초기화 -> 할당 / 블록 스코프
- `const` : 선언 + 초기화 + 할당 / 블록 스코프
2. 생성자 함수
생성자 함수를 사용하여 일관성 있게 객체를 생성할 수 있다. ex) 고객 정보
보통 첫 글자는 대문자로 선언한다.
function User(name, age){
// this = {}
this.name = name;
this.age = age;
// return this;
};
let user1 = new User('Mike', 30);
let user2 = new User('Jane', 14);
let user3 = new User('Tom', 20);
console.log(user1); // User{name : 'Mike', age : 30}
console.log(user2); // User{name : 'Jane', age : 14}
console.log(user3); // User{name : 'Tom', age : 20}
생성자 함수는 new 생성자를 사용해서 호출한다.
new 연산자를 사용하면 User 함수 내부에 매개변수 값을 배열 형식으로 할당하며, 코드 실행 후에 User{name : 'Mike', age : 30} 형식을 반환한다.
new 연산자를 사용하면 따로 코드를 작성하지 않아도 User 함수 내부에서 함수 맨 처음과 맨 마지막에 자동으로 알고리즘을 실행한다.
✔️ new를 사용하지 않으면 User 함수는 return하는 것이 없기 때문에 undefined로 뜬다.
3. 객체 method, 계산된 프로퍼티
let a = 'age';
const user = {
name : 'Mike',
[a] : 30, // age : 30
}
const hello = {["안녕"+"하세요"] : 'Hello'};
console.log(hello); // {안녕하세요 : 'Hello'};
변수를 [ ]로 묶어주면 변수에 할당된 값이 반환된다. 이를 computed property(계산된 프로퍼티) 라고 한다.
Object.keys()
객체의 key로 이루어진 배열 반환
let user = {
name : 'Mike',
age : 20,
gender : 'male'
};
let keys = Object.keys(user);
console.log(keys); // ['name', 'age', 'gender']
Object.values()
객체의 value로 이루어진 배열 반환
let user = {
name : 'Mike',
age : 20,
gender : 'male'
};
let vals = Object.values(user);
console.log(vals); // ['Mike', 20, 'male']
Object.entries()
객체를 배열로 만들어준다.
객체의 키와 값을 [key, value]의 배열로 반환한다.
let user = {
name : 'Mike',
age : 20,
gender : 'male'
};
let ents = Objct.entries(user);
console.log(ents); // [['name', 'Mike'], ['age', 20], ['gender', 'male']]
Object.fromEntries()
2차원으로 구성된 배열의 키 값 쌍 목록을 객체로 바꾼다.
let user = [['name', 'Mike'], ['age', 20], ['gender', 'male']]
let ents = Objct.fromEntries(user);
console.log(ents); // {name : 'Mike', age : 20, gender : 'male'}'Front-End > JavaScript' 카테고리의 다른 글
| 자바스크립트 중급 (3) - 문자열 Method, 배열 Method (1) | 2022.12.05 |
|---|---|
| 자바스크립트 중급 (2) - Symbol, 수학 Method (0) | 2022.12.05 |
| 자바스크립트 기초 (5) - 객체, 객체 method, this, 배열 (0) | 2022.12.05 |
| 자바스크립트 기초 (4) - 함수의 기초, 함수 표현식, 화살표 함수 (0) | 2022.12.05 |
| 자바스크립트 기초 (3) - 반복문, switch문 (0) | 2022.12.05 |