자바스크립트 — 문법

chrisjune
chrisjune
Published in
4 min readMay 6, 2019

더글라스 크락포드의 자바스크립트 핵심가이드를 정리한 문서입니다.

총 10장으로 이루어진 책으로 한 장씩 정리하여 포스팅 할 예정입니다.

본 책은 자바스크립트의 좋은 점만을 정리한 책으로, 나쁜 점을 잊어야 할 수고를 덜 수 있습니다.

0. 철도 다이어그램.

이 책에서는 문법을 설명하기 위하여 철도 다이어그램을 도입하였습니다.

  1. 왼쪽에서 오른쪽으로 이동
  2. 이동시, 도형안의 리터럴이나 사각형안에 있는 설명 또는 규칙을 마주침
  3. 트랙을 따라 가는 경로는 어떤 경로도 유효함
  4. 트랙을 따라가지 않는 경로는 모두 무효함
  5. 양 끝에 세로막대 하나를 가진 다이어그램은 한쌍의 토큰 사이에 공백을 허용함
  6. 세로막대 두개를 가진 다이어그램은 공백을 허용하지 않음
https://i.stack.imgur.com/iWHq7.gif
  1. 공백

문자를 구분하는 형태이며, 주석 또한 공백입니다.

/**/ 주석은 정규식에서 구문오류 발생할 수 있기 때문에 인라인 주석을 권장합니다

// bla bla bla/* bla bla bla 
bla bla bla */

2. 변수명

문자로 시작해야하고, 이후부터는 문자, 숫자, _ 가 가능합니다

예약어는 사용이 불가능합니다

sample_var1 = 1;

3. 숫자

정수와 실수의 구분이 없고, 내부적으로 64bit의 float 형식을 취하고 있습니다. 자바에서 double과 동일합니다

NaN(Not A Number), 정상 숫자가 아닐때 표현 하는 값입니다. isNaN() 이라는 내장함수로 값 평가를 boolean 형태로 받을 수 있습니다.

4. 문자열

‘’ or “” 사이의 문자들의 조합이며, 모든 문자는 16 bit unicode 입니다. string과 byte 등의 타입 구분이 없습니다. 문자열은 + 연산자로 concatenation이 가능합니다.

var c = 'c';
var a = "a";
var t = 't';
var cat = c + a + t;

5. 문장

모든 실행 문장을 공통 전역공간(namespace)에서 사용합니다.

  • var: 함수 내부에서 사용될 때 함수의 private 변수를 정의합니다
  • break, return ,throw: 로직을 exit 하는 문장이며, 역할은 다른 언어와 동일합니다
  • if: 조건문으로 사용되며, 블록은 새로운 유효범위를 생성하지 않는 것에 유의해야 합니다. = 는 할당할 때 사용하며 동등연산자는 ===를 사용합니다.
var a = 1;
if (a === 1) {
console.log('A is one');
}
  • switch: 조건을 여러가지 값으로 평가할 때사용하며 case 표현식은 상수일 필요가 없습니다.
  • for: 반복문 또는 객체를 나열하는 문장입니다.
// 반복문
var i = 0
for (i=0;i<10;i++){
console.log(i)
// 객체를 나열
var person = {
fname = 'Junyeong',
lname = 'Choi'
}
for (info in person){
console.log(person[info])
}
  • return: 함수를 호출한 곳으로 돌아가며, 표현식이 없을 경우 undefined를 반환합니다.
  • try-catch와 while의 문법은 다른 언어와 동일합니다

6. 리터럴

리터럴은 데이터를 표현하는 방식 그 자체를 의미합니다.

객체 리터럴은 객체를 표현하는 방식과 객체를 의미합니다. 키와 값으로 구성되어있으며 생성하자마자 Object라는 내장객체를 부모로 가지고 있습니다.

var person = {
fname = 'Junyeong',
lname = 'Choi',
gender = 'male'
}

--

--