본문 바로가기
코딩 이것저것

[코딩] 자바스크립트 핵심 가이드(2)

by 글쓰는 홍차 2020. 5. 5.

이전 장에서는 해당 책의 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) 

  • 함수값을 정의함 

댓글