이전 장에서는 해당 책의 1장에 해당하는 자바스크립트의 좋은 점들과 왜 자바스크립트를 사용해야 하는 가에 대해서 정리해보았다.(책에 나온 그대로 정리한 것이므로 모든 내용은 저작권법에 따라 해당 책에 있음을 알려드립니다.) - 이 부분은 기본 프로그래밍을 해본 사람이라면 넘어가도 좋다. (나도 이 장은 매우 지루하게 읽...었다. 기본적이지만 다른 문법과 비슷하기도 하고 바로 보면 알 수 있는 부분이 있다. 객체나 함수 부분이 더 중요하므로 여기는 단어의 배열로 남겨둔다)
이전 글 보기 : [코딩] 자바스크립트의 핵심 가이드(1)
2장. 자바스크립트의 좋은 문법들
공백(whitespace)
-
문자를 구분하는 형태나 주석을 취할 수 있음(주석 역시 공백임)
주석
-
가독성을 높이기 위해 충분히 사용되는 것이 좋음, 쓸모없는 주석은 없느니만 못함.
-
/**/나 //를 사용할 수 있지만, //를 권장한다 (/**/를 사용하여 코드를 블록 주소로 주석화하면 구문 오류가 발생한다고 함)
예시) 블록 주석의 구문 발생
/*
var rm_a = /a*/.match(5);
*/
이름(Name)
-
다른 언어와 마찬가지로 하나의 문자나 그 뒤를 이어서 하나 이상의 문자, 숫자, _가 붙는 문자열로 문장, 변수, 매개변수, 속성명, 연산자, 라벨 등에 사용함
-
예약어는 이름이 될 수 없고, 의외로(undefined, NaN, infinity는 예약어가 아님) -> 그러나 이름으로 쓰지 마!
숫자(Numbers)
-
숫자형은 하나만 존재 - 64비트 부동 소수점형식을 지님(자바의 double형) - short형을 사용해서 오버플로우가 발생하는 일이 전혀 없음
-
정수 - 0을 제외한 숫자, 소수 - .숫자, 지수 - e/E +- 숫자 로 표현함, 음수는 -숫자를 붙이면 됨
-
NaN - 수치 연산을 해서 정상적인 값을 얻지 못할 때의 값(자신 포함 어떤 값과도 같지 않음. isNaN()을 통하여 확인해야 함)
문자열(Strings)
- "", ''로 만들 수 있다.
- 유니코드 16비트 문자 셋이었을 때 개발했기 때문에 모든 문자가 16비트 유니코드임
- 문자타입은 별도로 없음. 특수 문자를 나타내기 위해 \를 사용함
- 문자열 길이 -> "seven".length로 사용할 수 있음
- 문자열은 immutable임(다른 변수에 저장한다는 말) -> 문자열 + 연산자로 연결하는 새로운 문자열을 생성하는 것임
- 문자열 메소드는 다음 8장에서 살펴보자 :)
문장(Statements)
- 하나의 컴파일 단위에는 실행을 위한 문장들이 포함돼 있음
- 웹 브라우저에서 각각의 <script>태그는 컴파일되어 즉시 실행되는 하나의 컴파일 단위임
- 링커가 없기 때문에 자바스크립트는 모든 문장을 공통적인 전역 이름 공간에 한데 몰아 넣음 (var 문은 함수 내부에서 사용될 떄 함수의 private 변수를 정의함 -> ECMAScript 6부터는 let으로 local variable 용으로 사용할 수 있음)
- if, switch / while, for, do -> break , return ,throw로 실행 흐름을 벗어날 수 있음
- false, null, undefined, 빈 문자열 ' ', 숫자 0, NaN --> 거짓 (그 외는 모두 참)
- for 문 활용
for(myvar in obj){
if(obj.hasOwnProperty(myvar){
...
}
}
표현식(Expressions)
- 리터럴 값(문자열이나 수샂), 변수,내장값들(true, false, null, undefined, NaN, infinity 등)
- new 키워드에 의한 호출 표혀식
- delete 키워드 다음에 나오는 세부 지정 표현식
- 괄호로 쌓인 표현식
- 전치 연산자 다음에 이어지는 표혆식 등
- 이항 연산자의 표현식
- ? 삼항 연산자의 표현식
- 호출
- 세부지정(. 또는 [])
리터럴(Literals)
- 배열 : [, ]
- 정규표현식
- 객체 리터럴 : { 이름 or 문자열 : 표현식, ~ }
함수(Functions)
- 함수값을 정의함
'코딩 이것저것' 카테고리의 다른 글
[코딩] 모던 자바스크립트 입문: 8.11. ECMAScript6 추가된 기능 (0) | 2020.05.12 |
---|---|
[코딩] 자바스크립트 핵심 가이드(4) (0) | 2020.05.11 |
[코딩]자바스크립트 핵심 가이드(3) (0) | 2020.05.05 |
[코딩] 자바스크립트 핵심가이드(1) (0) | 2020.05.02 |
댓글