언젠가는 펼쳐 볼 아카이브
Javascript 이론 공부 - 3 본문
1) 리터럴이란?
- 코드에서 값을 나타내는 법을 의미
ex) 템플릿 리터럴 : `${value}`;
2) 함수
/* 함수 종류 */
// 1. 함수 표현식
const name = function() { }
// 2. 함수 선언문
function name () { }
// 3. 화살표 함수
const name => () => { }
// 4. 생성자 함수
const object = new functon ();
- 어떤 언어이든 작은 "함수"는 작은 단위의 일들을 묶는 것이 좋음 (물론 매개 변수의 이름도 의미있게 지어야함)
- 함수의 이름은 함수코드가 있는 " 주소값"을 참조 하고 있음
- 함수에서 return을 명시적으로 하지 않으면 자동으로 undefined가 반환됨
: "return;" 의 의미도 return undefined와 같음
- 함수의 매개변수 값은 무조건 undefined이고, 기본 값(default parameters)을 정할 수 있음
: 매개변수의 정보는 함수 내부에서 접근이 가능한 arguments 객체에 저장됨
: 기본값이 선언되어있을때, 함수 호출시 아무런 값이 없으면 기본값으로 들어감.
// 매개변수 기본값은 아래처럼 선언함
function(a = 123, b =234) {
...
}
- 함수도 "객체"이기 때문에 변수로 할당&재할당이 가능함
- 함수는 "first-class object"임.
- First-class object란? (참고 : https://ko.wikipedia.org/wiki/%EC%9D%BC%EA%B8%89_%EA%B0%9D%EC%B2%B4)
: 모든 연산이 가능한 일반 객체
> 매개변수로 전달 가능함
> 함수의 반환 값이 될 수 있음
> 할당 명령문( "=", "+=")이 가능함
> 동일 비교 대상 가능
- 고차 함수(Higher-order function)
: 인자로 함수를 받거나, 함수를 반환하는 함수 (함수 호출 기다려!)
ex) 콜백 함수
// 콜백함수 예시
const add = (a, b) => a + b;
const multiply = (a, b) => a * b;
function cal(a, b, action) {
if (a < 0 || b < 0) {
return;
}
let result = action(a, b);
return result;
}
cal(1, 2, add); // 콜백함수 형태로 함수 주소를 전달함
3) 클래스
- 객체를 생성할 수 있는 template
class hello {
constructor(my, name) {
static WORLD = "Hello! World!";
#name;
this.#name = name;
this.my = my;
}
get sayName() {
console.log(`${WOLRD} ${this.#name}`);
}
static makeEmoji() {
console.log("^ㅁ^");
}
...
}
- 자바스크립트에는 priavate 키워드가 없는 대신, "#"을 사용
- 클래스로 생성한 객체는 인스턴스라고 부름
- 클래스 내부엔 인스턴스 레벨 속성과 클래스 레벨 속성이 있음
- 인스턴스 레벨 속성 : 객체 생성시마다 모든 객체에 동일하게 다 들어있음
- 클래스 레벨 속성 : 클래스에 딱 한번만 정의됨.
'IT > Javascript' 카테고리의 다른 글
Javascript 이론 공부 - 6 (0) | 2023.09.06 |
---|---|
Javascript 이론 공부 - 5 (0) | 2023.08.30 |
Javascript 이론 공부 - 4 : Array (1) | 2023.08.24 |
Javascript 이론 공부 - 2 (0) | 2023.08.16 |
Javascript 이론 공부 - 1 (0) | 2023.08.14 |