Day8부터는 자바스크립트 기초를 다뤘기에 크게 정리할 필요성을 느끼지 못했다. 그러나 너무 기초를 만만하게 보고 자만한 것 같아 정신을 고쳐먹고 늦었지만 TIL을 작성하려고 한다...
📖 자바스크립트 문법
1. 연산자
- 산술 연산자 (이항 산술 연산자) :
+
, -
, *
, /
, %
, **
- 증감 연산자 (단항 산술 연산자) :
++
, --
- 전치 연산: 연산 먼저 진행
- 후치 연산: 연산은 나중에 진행
- 단항 부정 연산자 :
-
- 대입 연산자 :
=
- 복합 대입 연산자 :
+=
, -=
, *=
, /=
, %=
, **=
- 비교 연산자 :
==
, ===
, !=
, !==
, >
, >=
, <
, <=
==
, !=
: 형변환 후 비교
===
, !==
: 형변환 없이 비교
- 삼항 연산자 (조건 연산자) :
비교 ? 참 : 거짓
- Falsy값 = 0, NaN, 빈 문자열, null, undefined
- 논리 연산자 :
&&
(and), ||
(or), !
(not)
2. 조건문
3. 반복문
- 종류
- do...while
- while
- for
- for...in : 인덱스로 접근
- for...of : 값으로 접근
- continue, break
🦾 자바스크립트 함수
1. 함수 종류
함수 표현식
const func = function() { ... }
const func = function f() { ... }
- 기명 함수는 let으로 선언? const로 선언?
- 문법적으로는 let이든 const든 상관없음
- 관용적으로 많이 사용하는 건 const (함수 재할당 케이스가 별로 없음)
함수 선언식
function func() { ... }
화살표 함수
const func = () => { ... }
2. 함수의 매개변수
- 매개변수와 인자의 개수가 일치하지 않아도 됨
- 매개변수 개수 > 인자 개수 : 인자를 차례로 넣다가 인자가 없으면 undefined
- 매개변수 개수 < 인자 개수 : 매개변수만큼만 인자넣고, 나머지 인자는 arguments 객체로 접근 가능
- 함수의 매개변수는 arguments라는 객체에 저장됨
- 단, 화살표 함수는 불가
- 유사 객체 배열이기 때문에 for of로 접근 가능
function sum() {
console.log(arguments[0] + arguments[1]);
}
- ES6부터 나머지 매개변수 사용 가능 (화살표 함수도 가능)
function sum(...args) {
console.log(args[0] + args[1]);
}
sum(10, 20);
3. 스코프
함수 레벨 스코프
블록 레벨 스코프
- 참조 범위가 블록(
{ }
)
- let, const