2023-01-06
자바스크립트 기본 상식
자바스크립트의 기본 상식인 표현식과 문, 변수, 런타임 환경 등을 알아보자!
값
값이란 표현식이 평가되어 생성된 결과를 말한다. 평가란 식을 해석해서 값을 생성
하거나 참조
하는 것을 말한다.
아래는 식을 평가해 숫자 값 40을 생성하는 코드다.
표현식
표현식은 값으로 평가될 수 있는 문
을 말한다. 개념적으로 두 가지 범주로 나뉘어 지는데,
예로 변수에 값을 할당하는 것(참조), 평가되면 어떤 값으로 이행하는 것(생성)으로 볼 수 있다.
즉, 표현식이 평가되면 값을 생성하거나 참조한다.
문
문은 프로그램을 구성하는 기본단위이자 최소 실행 단위
다.
명령문이라고도 하며 선언문, 할당문, 조건문, 반복문 등으로 구분할 수 있다.
표현식과 문을 구별하는 방법은 변수에 할당해 보는 것이다. 표현식은 값으로 평가되므로 변수에 할당할 수 있기 때문이다.
리터럴
사람이 이해할 수 있는 문자 또는 약속된 기호를 사용해 값을 생성하는 표기법이다.
문자는 숫자, 글자(한글, 영어 등)를 뜻하고 약속된 기호란 []
, {}
, “”
등을 말한다.
아래는 간단한 리터럴 예이다.
변수
하나의 값을 저장하기 위해 확보한 메모리 공간을 식별하기 위해 붙인 이름
을 말한다.
변수는 컴파일러나 인터프리터에 의해 메모리 주소로 치환되어 실행된다.
변수에 값을 입력하는 것을 할당
이라 하고 읽는 것을 참조
라 한다.
변수는 식별자
라고도 하는데 값이 위치한 메모리 주소를 구별하기 때문이다.
변수 선언
메모리 공간을 확보하고 주소를 연결해 값을 저장할 수 있게 준비하는 변수 생성을 말한다.
선언된 메모리 공간은 해제되기 전까지 보호되므로 안전하게 사용할 수 있다.
var
, let
, const
키워드를 사용해 변수를 선언한다.
ReferenceError
는 선언하지 않은 식별자를 참조하려 했지만,
자바스크립트 엔진이 해당 식별자를 찾을 수 없을 때 발생한다.
변수 네이밍 규칙
식별자는 아래와 같이 몇가지 네이밍 규칙이 있다.
- 예약어는 식별자로 사용할 수 없다. 예약어란 이미 사용되고 있거나 사용될 예정인 단어를 말한다.
예로await
,break
,continue
등 - 숫자로 시작하는 것을 허용하지 않는다.
- 특수문자를 제외한 문자, 숫자, 언더바, 달러 기호를 사용할 수 있다.
런타임 환경
JavaScript 코드가 실행되는 환경
을 의미하며 웹 브라우저
, Node.js
가 있다.
JavaScript는 브라우저
에서만 동작하는 프로그래밍 언어였으나,
다른 환경에서도 JavaScript 동작을 지원하기 위해 Node.js
가 개발 되었다.
Node.js
JavaScript V8 엔진기반으로 자바스크립트 런타임 환경이다.
다양한 플랫폼에 적용할 수 있지만 일반적으로 서버를 실행하는데 많이 사용된다.
브라우저
HTML, CSS, JavaScript를 실행해 웹페이지를 화면에 렌더링하는 것이 주된 목적인 런타임 환경이다.
브라우저 종류에 따라 다른 JavaScript 엔진이 내장되어 있는데, 구글 크롬을 기준으로 V8 엔진 기반으로 동작한다.
두 런타임 환경의 차이점
- DOM API:
브라우저는 HTML 및 XML 문서를 조작하기 위한 DOM API를 제공하지만,
Node.js는 DOM을 조작할 필요가 없기 때문에 제공하지 않는다. - 파일 시스템:
브라우저는 사용자 컴퓨터 보안을 위해 파일 시스템을 제공하지 않는다.
Web API인 FileReader 객체를 통해 지정한 파일을 읽는 것은 가능하다.
Node.js는 리소스에 대한 전체 액세스 권한이 있다.
평가와 실행
자바스크립트 엔진은 평가 단계에서 선언된 변수, 함수를 먼저 실행한다. 그리고 할당은 런타임에 실행된다.