함수 다루기
this
- 함수를 호출한 객체를 가리키는 키워드(메서드 내부에서 호출되는 편), 함수가 호출될 때 어떤 객체가 그 함수를 호출했는지에 따라 상대적으로 값이 변하게 됨
- arrow function에서는 this가 함수가 선언되기 직전 유효한 this 값과 동일하게 됨<선언과 동시에 실행되기 때문이라고 추측>
- 객체 내부에서 메소드를 만들 때 메소드가 속해 있는 객체의 프로퍼티가 필요한 상황에서 사용 가능
함수
- 선언: function 키워드를 사용하는 방식이 가장 일반적
- 표현식: 함수를 값으로 다루는 방식(변수에 할당하여 선언 가능)
- 형태: 변수에 할당하여, 객체의 메소드로, 콜백 함수로, 고차 함수로 사용 가능
- 파라미터의 기본값: 기본값이 있는 파라미터는 호출할 때 전달되는 arguments가 없는 경우 사용
- arguments 객체: 함수를 호출할 때 전달한 아규먼트들을 배열의 형태로 모아둔 유사 배열 객체(함수 호출 시 전달되는 아규먼트의 개수가 불규칙적일 때 활용 가능)
- rest parameter: 파라미터 앞에 온점 세 개를 붙여 여러 개로 전달되는 아규먼트들을 배열(배열의 메소드를 자유롭게 사용할 수 있음)로 다루기 가능
- arrow function: 익명 함수를 좀 더 간결하게 표현할 수 있도록 하는 함수 선언 방식, arguments 객체가 없고 this가 가리키는 값이 일반 함수와 다름
자바스크립트의 문법과 표현
문장(statements)
- 어떤 동작이 일어나도록 작성된 최소한의 코드 덩어리
- 선언문, 할당문, 조건문, 반복문(동작을 수행함)
- 표현식인 문장과 표현식이 아닌 문장으로 나뉨
표현식(expressions)
표현식이면서 문장, 문장이면서 표현식인 경우
조건 연산자(Conditional operator)
- 조건 ? truthy 할 때 표현식 : falsy 할 때 표현식
- 삼항 연상자(Ternary operator)라고도 함