반응형
# 리터럴
리터럴 literal은 사람이 이해할 수 있는 문자 또는 약속된 기호를 사용해 값을 생성하는 표기법이다.
- 숫자 10을 입력하면 컴퓨터가 이해할 수 있는 기호로 변경되는 것을 말한다.
# 표현식이란
-식별자, 리터럴로 이루어진 값을 평가할 수 있는 문법
문(statement)은 프로그램을 구성하는 기본 단위이자 최소 실행단위다.
문은 토큰으로 나뉘며, 토큰이란 문법적인 의미를 가지면서, 문법적으로 더이상 나눌수 없는 코드 최소 요소를 의미한다.
# 데이터 타입
자바스크립트는ES6는 7개의 데이터 타입을 제공한다.
- 숫자타입 : 모든 숫자는 실수로 처리된다.
- 문자열타입
- 불리언타입
- undefined 타입 : 예를 들어 var 키워드로 선언한 변수가 있으면 암묵적으로 undefined로 초기화 된다. 변수 선언 후에 값을 할당하게 되면 기존 undefined 값은 쓰레기 값(garbage)로 버려진다.
- null 타입 : 프로그래밍 언어에서 null 변수에 값이 없다는 것을 의도적으로 명시하는 것이다. 변수 값이 없으니 참조하던 값을 더 이상 참조하지 않겠다는 의미가 된다.
- symbol 타입
- object 타입 (객체, 함수, 배열 등)
# 데이터 타입이 필요한 이유
- 데이터 타입에 따른 메모리 공간 확보와 참조를 용이하게 한다.
- 값을 저장할 때 확보해야 하는 메모리 공간 크기를 결정
- 값을 참조할 때 한번에 읽어 들여야 할 메모리 공간의 크기 결정
- 메모리에서 읽어 들인 2진수를 어떻게 해석할지 결정하기 위함
# JS 동적타이핑
C에서는 int형 변수를 선언하면 int 4byte에 해당하는 변수만 할당이 가능하다. 이를 정적 타이핑이라 한다. 선언시에 변수 타입이 결정되는 것이다. 반면 자바스크립트 변수는 선언이 아닌 할당에 의해 타입이 결정(type inference)된다. 그리고 재할당에 의해 변수의 타입은 언제든지 변경이 될 수 있다.
동적 타이핑 언어는 유연성은 높지만 신뢰성은 떨어진다.
프로그램의 신뢰성을 올리기 위해서는
- 변수는 꼭 필요한 경우에 한해 제한적으로 사용한다.
- 변수의 유효범위(scope)를 최대한 좋게 만들어 변수 부작용을 최소화 한다.
- 전역변수는 최대한 사용하지 않는다.
- 변수보다는 상수를 사용해 값의 변형을 억제한다.
- 변수의 이름은 변수의 목적과 의미를 파악할 수 있도록 Naming 한다.
#연산자
- 비교연산자(===)는 (==)연산자가 값만 비교한다면, 값과 타입을 같이 비교한다.
- NaN은 자신과 일치하지 않는 유일한 값이다. => 빌트인 함수 isNaN() 사용
- typeof null의 타입연산자 결과값은 object다. JS 버전1의 버그가 아직 남아있다.
참조 : 모던 자바스크립트 Deep Dive : 자바스크립트의 기본 개념과 동작 원리 ~
반응형
'Programming > JavaScript' 카테고리의 다른 글
JavaScript global variable을 최소로 사용해야 하는 이유 (0) | 2021.10.27 |
---|---|
JavaScript 기초 문법 #6 프로퍼티, 함수 일급객체, 프로토타입, 빌트인 객체, this, 실행 컨텍스트, 렉시컬 스코프, 클로저 (0) | 2021.10.25 |
JavaScript 기초 문법 #5 let, const 변수 (0) | 2021.10.20 |
JavaScript 기초 문법 #4 함수 스코프, 전역변수 문제점 (0) | 2021.10.20 |
JavaScript 기초 문법 #3 제어문, 객체, 함수 (0) | 2021.10.14 |
JavaScript 기초 문법 #2 제어문, 객체 (0) | 2021.10.14 |
댓글