2023-01-06

자바스크립트 기본 상식

자바스크립트의 기본 상식인 표현식과 문, 변수, 런타임 환경 등을 알아보자!

값이란 표현식이 평가되어 생성된 결과를 말한다. 평가란 식을 해석해서 값을 생성하거나 참조하는 것을 말한다.
아래는 식을 평가해 숫자 값 40을 생성하는 코드다.

10 + 30 // 40

표현식

표현식은 값으로 평가될 수 있는 을 말한다. 개념적으로 두 가지 범주로 나뉘어 지는데,
예로 변수에 값을 할당하는 것(참조), 평가되면 어떤 값으로 이행하는 것(생성)으로 볼 수 있다.
즉, 표현식이 평가되면 값을 생성하거나 참조한다.

문은 프로그램을 구성하는 기본단위이자 최소 실행 단위다.
명령문이라고도 하며 선언문, 할당문, 조건문, 반복문 등으로 구분할 수 있다.
표현식과 문을 구별하는 방법은 변수에 할당해 보는 것이다. 표현식은 값으로 평가되므로 변수에 할당할 수 있기 때문이다.

리터럴

사람이 이해할 수 있는 문자 또는 약속된 기호를 사용해 값을 생성하는 표기법이다.
문자는 숫자, 글자(한글, 영어 등)를 뜻하고 약속된 기호란 [], {}, “” 등을 말한다.
아래는 간단한 리터럴 예이다.

"lol" // 문자
function (){} // 함수
{} // 객체
[] // 배열
true, false // 불리언
100, 10.5 // 정수, 부동소수
// ...etc

변수

하나의 값을 저장하기 위해 확보한 메모리 공간을 식별하기 위해 붙인 이름을 말한다.
변수는 컴파일러나 인터프리터에 의해 메모리 주소로 치환되어 실행된다.
변수에 값을 입력하는 것을 할당이라 하고 읽는 것을 참조라 한다.
변수는 식별자라고도 하는데 값이 위치한 메모리 주소를 구별하기 때문이다.

변수 선언

메모리 공간을 확보하고 주소를 연결해 값을 저장할 수 있게 준비하는 변수 생성을 말한다.
선언된 메모리 공간은 해제되기 전까지 보호되므로 안전하게 사용할 수 있다.
var, let, const 키워드를 사용해 변수를 선언한다.
ReferenceError는 선언하지 않은 식별자를 참조하려 했지만,
자바스크립트 엔진이 해당 식별자를 찾을 수 없을 때 발생한다.

변수 네이밍 규칙

식별자는 아래와 같이 몇가지 네이밍 규칙이 있다.

런타임 환경

JavaScript 코드가 실행되는 환경을 의미하며 웹 브라우저, Node.js가 있다.
JavaScript는 브라우저에서만 동작하는 프로그래밍 언어였으나,
다른 환경에서도 JavaScript 동작을 지원하기 위해 Node.js가 개발 되었다.

Node.js

JavaScript V8 엔진기반으로 자바스크립트 런타임 환경이다.
다양한 플랫폼에 적용할 수 있지만 일반적으로 서버를 실행하는데 많이 사용된다.

브라우저

HTML, CSS, JavaScript를 실행해 웹페이지를 화면에 렌더링하는 것이 주된 목적인 런타임 환경이다.
브라우저 종류에 따라 다른 JavaScript 엔진이 내장되어 있는데, 구글 크롬을 기준으로 V8 엔진 기반으로 동작한다.

두 런타임 환경의 차이점

평가와 실행

자바스크립트 엔진은 평가 단계에서 선언된 변수, 함수를 먼저 실행한다. 그리고 할당은 런타임에 실행된다.

참조

모던 자바스크립트 Deep Dive - 위키북스
DMN - 표현식과 연산자