본문 바로가기

JavaScript

[JS] 모던 자바스크립트 - 01. 변수, 네이밍 컨벤션, 표현식과 문

728x90
반응형

변수


: 하나의 값을 저장하기 위해 확보한 메모리 공간 자체 또는 그 메모리 공간을 식별하기 위해 붙인 이름
: 값의 위치를 가리키는 상징적인 이름

 

- 변수명 : 메모리 공간에 저장된 값을 식별할 수 있는 고유한 이름

- 변수 값 : 변수에 저장된 값

- 할당(assignment) : 변수에 값을 저장하는 것

- 참조(reference) : 변수에 저장된 값을 읽어 들이는 것 

- 식별자(identifier) : 메모리 상에 존재하는 어떤 값을 구별해서 식별할 수 있는 고유한 이름, 값이 아닌 메모리 주소를 기억

- 선언(declaration) : 변수를 생성하는 것. 값을 저장하기 위한 메모리 공간을 확보하고 변수 이름과 확보된 메모리 공간의 주소를 연결해서 값을 저장할 수 있게 준비하는 것

- 상수(constant) : 변하지 않는 값. 값을 재할당 할 수 없는 값. 값을 한 번만 할당할 수 있는 변수

 

식별자 네이밍 규칙 

1. 특수문자를 제외한 문자, 숫자, 언더스코어(_), 달러 기호($)를 포함할 수 있다.

2. 특수문자를 제외한 문자, 숫자, 언더스코어(_), 달러 기호($)로 시작해야 한다. 숫자로 시작해서는 안 된다.

3. 예약어(프로그래밍 언어에서 사용되고 있거나 사용될 예정인 단어, ex) await, break, function 등)는 식별자로 사용할 수 없다. 

 

네이밍 컨벤션

: 하나 이상의 영어 단어로 구성된 식별자를 만들 때 가독성 좋게 단어를 한눈에 구분하기 위해 규정한 명명 규칙

 

1. 카멜 케이스 (camelCase)

2. 스테이크 케이스 (snake_case)

3. 파스칼 케이스 (PascalCase)

4. 헝가리언 케이스 (typeHungarianCase)

 

ex) 헝가리언 케이스

var strFirstName; // type + identifier
var $element = documnet.getElementById('myId'); // DOM 노드
var observable$ = fromEvent(document, 'click'); // RxJS 옵저버블

 

일반적으로 자바스크립트에서는 변수나 함수의 이름에 카멜 케이스 / 생성자 함수, 클래스의 이름에는 파스칼 케이스를 사용

 

 

표현식과 문


- 리터럴(literal) : 사람이 이해할 수 있는 문자(아라비아 숫자, 알파벳, 한글 등) 또는 약속된 기호(' ', " ", [ ], { },  // 등)를 사용해 값을 생성하는 표기법. 리터럴은 그 자체로 표현식

3 // 숫자 리터럴
'hello' // 문자열 리터럴
true // 불리언 리터럴
{ name : 'Lee', address : 'Seoul' } // 객체 리터럴
function() {} // 함수 리터럴

토큰(token) : 문법적인 의미를 가지며, 문법적으로 더 이상 나눌 수 없는 코드의 기본 요소. 키워드, 식별자, 연산자, 리터럴, 세미콜론(;), 마침표(.) 등의 특수기호.

- 문(statement) : 프로그램을 구성하는 기본 단위이자 최소 실행 단위. 선언문, 할당문, 조건문, 반복문 등.

표현식(expression) : 값으로 평가될 수 있는 문(statement). 리터럴, 식별자, 연산자, 함수 호출 등의 조합으로 이루어질 수 있음

- 값(value) : 표현식(expression)이 평가(evaluate)되어 생성된 결과 

 

 

표현식인 문과 표현식이 아닌 문

문에 표현식이 포함되는 개념. 다소 헷갈릴 수 있는 이 두 가지를 구분하기 위해서는 변수에 할당해보면 알 수 있다.

 

변수 선언문은 표현식이 아닌 문.

할당문은 표현식인 문. 값으로 평가 가능.

 

- 표현식이 아닌 문(변수 선언문)은 값처럼 사용할 수 없음.

// 표현식이 아닌 문은 값처럼 사용 불가능
var foo = var x; //SyntaxError : Unexpected token var

- 표현식인 문(할당문)은 값처럼 사용할 수 있음.

// 표현식인 문은 값처럼 사용 가능
var foo = x = 100;
console.log(foo); // 100

 

 

 

 

 

출처 : 모던 자바스크립트 Deep Dive - 자바스크립트의 기본 개념과 동작 원리

728x90
반응형