다음 책들과 MDN의 내용을 모아 자바스크립트 핵심 위주로 정리해 보았습니다. 여러 권의 책을 한 글로 훑어볼 수 있도록 최대한 간결하게 정리하겠습니다.
모던 자바스크립트 Deep Dive - 이웅모
You Don’t Know JS - Kyle Simson
자바스크립트는 왜 그 모양일까?(How JavaScript Works) - Douglas Crockford
자바스크립트 완벽 가이드(JavaScript: The Definitive Guide 7/E) - David Flanagan
프로그래밍은 프로그래밍 언어를 사용해 컴퓨터에게 실행을 요구하는 일종의 커뮤니케이션이다. 프로그래밍 언어는 구문(Syntax)과 의미(Semantics)의 조합으로 표현된다.
이웅모 , 『모던 자바스크립트 Deep Dive』, 위키북스(2020), p4.
프로그래밍의 목적은 요구사항을 분석해서 의미 있는(Semantic) 프로그래밍 언어의 문법(Syntax)으로 표현, 문제를 해결하는 것이다
문법적으로는 문제가 없지만, 의미는 없는 코드를 작성하지 않도록 주의하자
const number = "string" // 작동에는 문제가 없지만 협업에는 문제가 될 수 있다.
// 한 줄 주석
/*
* 여러 줄 주석
* 여러 줄 주석
*/
나쁜 코드에 주석을 달지 마라. 새로 짜라.
- 브라이언 W. 커니핸, P.J.플라우거
로버트 C. 마틴, 『Clean Code 클린 코드』, 인사이트(2013), p68.
12
1.2
"hello world"
true
식별자는 코드의 일부이지만 문자열은 데이터이기 때문에, 식별자와 문자열은 다릅니다. JavaScript에서 식별자를 문자열로 변환하는 방법은 없지만, 어떤 경우 문자열을 분석해 식별자로 사용할 수 있습니다.
mdn, 식별자
as
const
export
null
void
async
if
while
await
...
예약어를 사용하는 것은 메모리가 부족하던 1950년대와 1960년대에서부터 비롯된 잘못된 기능 중 하나입니다. …불안정한 예약어 전략은 언어에 새로운 기능을 깔끔하고 직관적으로 추가하기 어렵게 만들기 때문에, 언어 설계자에게도 좋지 않습니다. 다음 세대 언어에서는 예약어를 사용하지 않았으면 합니다.
더글러스 크락포드, 『자바스크립트는 왜 그 모양일까?』, 인사이트(2020), p12.
다른 프로그래밍 언어와 마찬가지로 자바스크립트 역시 세미콜론(;)을 사용해 문을 구분합니다. …세미콜론이 반드시 필요하지 않은 경우라도 세미콜론을 써서 문이 끝났음을 명확히 표시하는 프로그래머가 많고, 이 책에서도 그 관습을 따릅니다. 반대로 세미콜론을 가능한 한 생략하며 꼭 필요한 때만 쓰는 사람도 있습니다.
데이비드 플래너건 , 『자바스크립트 완벽 가이드』, 인사이트(2022), p22.
to make the language more approachable and convenient, JavaScript is able to automatically insert semicolons when consuming the token stream, so that some invalid token sequences can be "fixed" to valid syntax. This step happens after the program text has been parsed to tokens according to the lexical grammar.
언어를 더욱 접근하기 쉽고 편리하게 만들기 위해 JavaScript는 토큰 스트림을 사용할 때 자동으로 세미콜론을 삽입하여 일부 유효하지 않은 토큰 시퀀스를 유효한 구문으로 "고정"할 수 있습니다. 이 단계는 프로그램 텍스트가 어휘 문법(lexical grammar)에 따라 토큰으로 구문 분석(parse)된 이후에 발생합니다.
mdn - Lexical grammar
References
데이비드 플래너건 , 『자바스크립트 완벽 가이드』, 인사이트(2022)
더글러스 크락포드 , 『자바스크립트는 왜 그 모양일까?』, 인사이트(2020)
카일 심슨 , 『You Don’t Know JS - 타입과 문법, 스코프와 클로저』, 한빛미디어(2017)
이웅모 , 『모던 자바스크립트 Deep Dive』, 위키북스(2020)
박연오님의 블로그 - 자바스크립트, 세미콜론을 써야 하나 말아야 하나
Feross Aboukhadijeh - Never Use Semicolons
mdn - Lexical grammar