문법 개요
- SyntaxError의 경우 문법이 잘못됐을 때의 에러임
- 문법은 마치 언어처럼 문장을 구성하는 요소가 있듯이 JS 언어 자체의 대한 것임
- 키워드, 변수, 값, 문, 함수, 객체, 배열, 스코프 등의 문법을 지켜야 한다는 것
주석
- 사람이 이해하기 위해 작성하는 코드라고 볼 수 있음
- 과거의 나와도 소통하기 위한 장치라고 볼 수 있음(TS로 가면 좀 더 줄어들 것임)
- 예시
console.log("Hello " + "World");
function Book(title, author) {
}
값 & 식 & 문
- 값은 하나의 값이고 식의 경우 표현식(expression)이라고 하고 값을 생성하고 귀결함
- 값의 경우
1
, '문자열'
, true
, false
, null
, undefined
등이 있음
- 이 때, 값으로 귀결된 식 or 연산식이라함은
1 + 1
, 1 > 2
, '안' + '녕' + '하세요'
등 볼 수 있음
- 식 & 표현식을 그래서 잘 따져서 생각해야함
- 문(statement)의 경우, 어떤 행동을 한다. 흐름을 제어한다고 볼 수 있음
- 중괄호 안에서 돌아가는데 이는 인터프리터에게 명령한다, 그것을 지시문으로 처리한다고 볼 수 있음
- 그 안에서는 표현식, 식이 들어가서 조건이 돌아감, 직접 선언해서 처리할 수도 있음
- 예시
if (식) {
}
for (식) {
}
while (식) {
}
제어문과 블럭
- 제어문에서 바디(몸통) <= 로직(명령) 이를 토대로 흐름을 제어할 수 있다고 봄
- 그래서 그 흐름을 제어하는 영역은 블럭안에 있다고 이야기 하는 것, 아래와 같이 중첩을 해서 그 흐름을 집어넣어서 제어할 수 있음
- if 문과 switch 케이스로 다양하게 가능함
- 그리고 berak를 통해서 강제로 그 흐름을 중단시킬 수 있고 continue를 통해서 그 흐름을 넘어갈 수도 있음(건너뛰기의 효과)
- 예시
for (반복 조건 초기화) {
if (기상상태는 비가온다) {
if (기상상태는 비가 많이 온다) {
} else if (기상상태는 비가 조금 온다) {
}
}
}
switch (기상상태) {
case 비가온다:
[break;]
case 비가 많이 온다:
[break;]
case 비가 조금 온다:
[break;]
[default:
[break;]]
}
let i = 0;
const MAX = 10;
while (i < MAX) {
i++;
if (i % 2 === 0) {
continue;
}
console.log(i);
}
식별자
- 코드내에서 다양한 것을 구분하기 위한 문자열로 변수명도 포함임
- 이 때 주의할 것은 문자열로 구성되어야 하므로,
$
와 _
와 숫자까진 쓸 수 있음
- 하지만 식별자는 일종의 예약어로 볼 수 있음, 그래서 실제 쓰는 예약어들과 겹치지 않게 유의해야함
- 그래서 식별자는 문자열로 시작하고 언어의 내장 예약어와 중복을 피해야함
리터럴
- 리터럴은 데이터를 직접 나타낼 수 있는 값이라고 볼 수 있음
- 아래 모두가 다 리터럴로 볼 수 있음, 이를 통해 아래 예시처럼 쉽게 값을 만들 수 있는 것
- 예시
const obj = {
name: 'jang'
}
123
'jang'
[]
const arr = [1, 2, 3]
use strict
- js를 엄격하게 처리하도록 바꿔주는 구문
- js에서 느슨하게 적용되고 처리되는 부분을 엄격하게 처리되도록 바꿈
- 조용히 무시되는 에러들이 생김
- 단, ECMA 2015에서는 use strict가 기본으로 쓰여짐
- 참고자료