연산시 주의할 점
문자열 + 숫자열 = 문자열
``안에 들어갈 시 띄어쓰기 칸 띄우기 기호 등 편하게 사용 가능
2**3 -> 2의 3제곱
b=++a;
a 연산 후 대입
b=a++;
대입 후 a 연산
||(or) 하나라도 true시 연산 종료
&&(and) 하나라도 false시 연산 종료
==(loose equality)
'5'==5 -> true
===(strict equality) : type 까지 비교
'5'==5 -> false
const 1 = {name: '태희'};
const 2 = {name: '태희'};
const 3 = 1; 의 형식일때
1==2 or 1===2 -> false(reference가 다름)
1===3 -> true(reference가 같음)
default parameter(default 매개변수)
function showMessage(message, from ='unknown'){
console.log(${message} by ${from}
);
}
- 매개변수가 입력되지 않았을때 출력할 값을 정할 수 있다
기본 함수 선언 방법
function square(number) {
return number * number;
}
함수 표현식(익명)
const square = function (number) {
return number * number;
}
함수 표현식(이름 지정) -> 자신을 참조할 수 있다
const factorial = function fac(n) {
return n < 2 ? 1 : n * fac(n - 1);
}
함수 표현식에서는 호이스팅이 일어나지 않기에 함수 표현식보다 아래에 있는 코드에서만 함수를 사용할 수 있다
Early return, Early exit를 하라 ~
- 안 좋은 예제
function upgradeUser(user){
if(user.point>10){
//upgrade user
}
}- 좋은 예제
function upgradeUser(user){
if(user.point<=10){
return;
}
//upgrade user
}
화살표 함수(Arrow Function)
- (매개변수) => { 본문 }의 꼴로 이루어짐
- 매개변수가 하나뿐인 경우 괄호 생략 가능
- 매개변수가 없을 경우에는 괄호 필수
- 본문이 return [식 or 값] 뿐인 경우 중괄호와 return 키워드 생략 가능
- 위에서 return 할 값이 객체인 경우에는 괄호 필수
let 1 = function (a) {
return function (b) {
return c;
}
};
let 1 = a => function (b) {
return c;
};
let 1 = a => (b) => {
return c;
};
let 1 = a => b => c;
//이런식으로 생략할 수 있다