Summary
- 함수 (화살표 함수, this)
- 연산자
- 조건문 (if, switch)
1. 함수
1-1. Key Points
- function으로 선언
return을 사용하지 않고 함수를 호출하면 undefined가 반환된다
return은 함수를 종료시킨다 (뒤에 console.log 명령이 있어도 표시되지 않는다)
- 참조하는 객체가 있는 함수를 method라고 한다
1-2. 화살표 함수 (패턴 중요!)
- () => {}
- 화살표함수는 익명함수이다. 변수에 할당해 사용하기 때문에 항상 '함수 표현'이고, 호이스팅이 일어나지 않는다
const hello = () => {return 'hello'}
const hello = () => 'hello'
- 객체데이터를 반환하려면
const hello = () => ({})
화살표함수 생김새와 같아서 ()로 묶어서 객체라는 것을 표시한다
- 매개변수를 1개만 사용할 때 소괄호 생략 가능
function hello(message) {return `hello ${message}`}
const hello = message => `hello ${message}`
- 함수에서 key, value가 서로 이름이 같으면 1번만 써도 된다
1-3. this (화살표 함수의 존재 이유)
- 일반함수에서 this는 this가 호출되는 위치에서 정의된다. 즉 선언위치, 정의위치가 다르다
- 화살표함수 안에서 this를 사용하면 선언위치에서 정의된다
userB.getAge.call(userA)
- 콜백에 this를 사용할 때 화살표함수를 사용한다
2. 연산자
2-1. 비교
- a > b
- a >= b
- a < b
- a <= b
2-2. 논리
- 형변환 다시 정확히.. truthy, falsy, 어느값 반환하는지 정리!
- a && b
가장 먼저 찾은 falsy를 반환, falsy가 없으면 마지막 값 반환
- a || b
가장 먼저 찾은 truthy를 반환, 없으면 마지막 값 반환
- !a
a가 truthy면 false로, falsy면 true로 바뀜 (-y 아닌 것에 주의)
2-3. 삼항
- 1항(조건) ? 2항 : 3항
a ? hello() : null
a가 truthy? falsy? true면 hello함수 실행, false면 null
3. if statement
- if 조건은 truthy, falsy로 판단! (falsy 몇가지 빼고는 truthy)
- falsy 값
0
-0
0n
""
null
undefined
NaN
4. switch statement
- 조건이 어떠한 값으로 딱 떨어질 때 사용
- switch문은 if문으로 바꿈이 가능하지만, if문은 switch문으로 바꿀 수 없는 경우가 있다. if문이 더 상위 개념
- if문의 else if, else는 switch문에서 default