Today I Learn : 2024-06-07
# 화살표 함수 (arrow function)
- 함수 표현식보다 단순하고 간결한 문법으로 함수를 만드는 방법
let func = (arg1, arg2, ... argN) => { return expression; }
// 또는
let func = (arg1, arg2, ... argN) => expression
let func = function(arg1, arg2, ... argN) {
return expression;
}
# 재귀와 스택 (recursion & stack)
참고 ) https://ko.javascript.info/recursion
재귀와 스택
ko.javascript.info
- 문제해결을 하다보면 함수에서 다른 함수를 호출할 때 자기 자신을 호출하는 것을 재귀라고 한다.
예시 ) x를 n제곱해 주는 함수 pow(x, n) 함수를 만들 때 2가지 방법으로 생각해보자.
① for 문
function pow(x, n) {
let result = 1;
for(let i = 0; i < n; i++) {
result = result * x;
}
}
pow(2, 2); // 4
pow(2, 3); // 8
pow(2, 4); // 16
②
# 객체
참고 ) https://ko.javascript.info/object
객체
ko.javascript.info
- 객체는 중괄호 { ... } 를 이용해 만들 수 있다.
- 중괄호 안에는 키(key) : 값(value) 쌍으로 구성된 프로퍼티를 넣을 수 있다.
- 키(key) : 문자형, 값(value) : 모든 자료형
- 객체형은 원시형과 달리 다양한 데이터를 담을 수 있다.
1. 빈 객체를 만드는 방법
// 1. 객체 생성자 문법
let user = new Object();
// 2. 객체 리터럴 문법
let user = {};
2. 리터럴과 프로퍼티
- 중괄호({ ... }) 안에는 '키 : 값' 쌍으로 구성된 프로퍼티가 들어간다.
- 프로퍼티 키는 프로퍼티 이름 or 식별자 라고도 부른다.
let user = { // 1) 객체
name: 'kim', // 2) 첫 번째 프로퍼티 - 키: name, 값: 'kim'
age: 30 // 3) 두 번째 프로퍼티 - 키: age, 값: 30
}
3. 표기법
- 표기법을 이용하여 프로퍼티 값을 읽거나 추가, 삭제가 가능하다.
- 프로퍼티 값엔 모든 자료형이 올 수 있다.
(1) 점 표기법 (dot notation)
① 프로퍼티 값 얻기
console.log(user.name); // 'kim'
console.log(user.age); // 30
② 프로퍼티 값 추가
user.isAdmin = true; // 불린형 프로퍼티 추가
③ 프로퍼티 값 삭제
delete user.age; // delete 연산자를 사용하여 age 프로퍼티를 삭제
참고 ) 프로퍼티 이름이 여러 단어를 조합해서 만든 이름일 때
→ 프로퍼티 이름을 따옴료(" ")로 묶어준다.
let user = { nickName: 'kim', age: 30, "likes birds": true }
(2) 대괄호 표기법 (square bracket notation)
- 프로퍼티의 이름이 여러 단어인 경우 점 표기법으로는 프로퍼티의 값을 불러올 수 없을 때 사용
예 )
// syntax error
user.like birds = true;
- 점은 키가 유효한 변수 식별자인 경우에만 사용할 수 있다.
- 유효한 변수 식별자엔 공백이 없어야 된다.
- 대괄호 표기법은 키에 어떤 문자열이 있던지 상관없이 동작한다.
① 프로퍼티 값 얻기
console.log(user["likes birds"]); // true
② 프로퍼티 값 추가
user["likes birds"] = true;
③ 프로퍼티 값 삭제
delete user["likes birds"];
'TIL' 카테고리의 다른 글
[멋쟁이사자처럼 - 프론트엔드 스쿨 TIL] JavaScript (15) (0) | 2024.06.18 |
---|---|
[멋쟁이사자처럼 - 프론트엔드 스쿨 TIL] JavaScript (14) (0) | 2024.06.18 |
[멋쟁이사자처럼 - 프론트엔드 스쿨 TIL] JavaScript (8) (0) | 2024.06.06 |
[멋쟁이사자처럼 - 프론트엔드 스쿨 TIL] JavaScript (7) (0) | 2024.06.04 |
[멋쟁이사자처럼 - 프론트엔드 스쿨 TIL] JavaScript(4) (1) | 2024.06.04 |