변수
변수는 하나의 값을 저장하기 위해 확보한 메모리 공간 자체 또는 그 메모리 공간을 식별하기 위해 붙인 이름을 말한다. 값의 위치를 가리키는 상징적인 이름이다. 변수는 값이 아니라 메모리 주소를 기억하고 있다.
변수를 사용하려면 반드시 선언이 필요하다. 변수를 선언할 때는 var, let, const 키워드를 사용한다.
자바스크립트 엔진은 변수 선언을 다음과 같은 2단계에 거처 수행한다
1)선언단계: 변수 이름을 등록해서 자바스크립트 엔진에 변수의 존재를 알린다.
2) 초기화 단계: 값을 저장하기 위한 메모리 공간을 확보하고 암묵적으로 undefined를 할당해 초기화한다.
식별자 네이밍 규칙
1. 식별자는 특수문자를 제외한 문자, 숫자, 언더스코어(_), 달러($) 기호를 포함할 수 있다
2. 단, 식별자는 특수문자를 제외한 문자, 언더스코어(_), 달러($) 기호로 시작해야 한다.
숫자로 시작하는 것은 허용하지 않는다.
3. 예약어는 식별자로 사용할 수 없다.
4. 대소문자를 구별한다.
네이밍 컨벤션
1. 카멜 케이스 : firstName
2. 스네이크 케이스: first_name
3. 파스칼 케이스: FirstName
4. 헝가리언 케이스 : strFirstName
값
값은 식(표현식)이 평가되어 생성된 결과를 말한다.
//10+20은 평가되어 숫자 값 30을 생성한다.
10+20; //30
//변수에는 10+20이 평가되어 생성된 숫자 값 30이 할당된다.
var sum = 10 + 20;
리터럴
리터럴은 사람이 이해할 수 있는 문자 또는 약속된 기호를 사용해 값을 생성하는 표기법을 말한다.
//숫자 리터럴 3
3
//문자열 리터럴
'Hello'
//객체 리터럴
{name: 'kim', address:'seoul'}
//배열 리터럴
[1,2,3]
//함수 리터럴
function() {}
//정규표현식 리터럴
/[A-Z]+/g
표현식 (Expression)
표현식은 값으로 평가될 수 있는 문이다. 즉 표현식이 평가되면 새로운 값을 생성하거나 기존 값을 참조한다.
표현식과 값은 동치이다. 따라서 표현식은 값처럼 사용할 수 있다. 이것은 문법적으로 값이 위치할 수 있는 자리에는 표현식도 위치할 수 있다는 것을 의미한다.
//리터럴 표현식
10
//식별자 표현식(선언이 이미 존재한다고 가정)
total
person.address
arr[2]
//연산자 표현식
1 + 2
total = 20
total !== 20
//함수/메서드 호출 표현식(선언이 이미 존재한다고 가정)
sum()
person.getAddress()
문 (Statement)
문은 프로그램을 구성하는 기본 단위이자 최소 실행 단위다. 문은 여러 토큰으로 구성된다. 토큰이란 문법적인 의미를 가지며, 문법적으로 더 이상 나눌 수 없는 코드의 기본 요소를 의미한다.
//문
var sum = 1 + 2;
//토큰
var
sum
=
1
+
2
;
문은 명령문이라고도 부른다. 즉, 문은 컴퓨터에 내리는 명령이다. 문은 선언문, 할당문, 조건문, 반복문 등으로 구분할 수 있다.
//변수 선언문
var x;
//할당문
x = 5;
//함수 선언문
function foo () {}
//조건문
if (x > 1) { console.log(x); }
//반복문
for (var i = 0; i < 2; i++) { console.log(i); }
표현식인 문과 표현식이 아닌 문을 구별하는 가장 간단하고 명료한 방법은 변수에 할당해 보는 것이다.
//변수 선언문은 표현식이 아닌 문이다.
var x;
//할당문은 그 자체가 표현식이지만 완전한 무이기도 하다. 즉, 할당문은 표현식인 문이다.
x = 100;
//표현식이 아닌 문은 값처럼 사용할 수 없다.
var foo = var x; //SyntaxError: Unexpected token var
//표현식인 문은 값처럼 사용할 수 있다.
var foo = x = 100;
console.log(foo); //100
'Javascript > javascript Core' 카테고리의 다른 글
[Javascript 강의] 5강 제어문 (0) | 2021.09.14 |
---|---|
[Javascript 강의] 4강 연산자 (0) | 2021.09.12 |
[Javascript 강의] 3강 데이터 타입 (0) | 2021.09.12 |
[Javascript 강의] 1강 Javascript 란? (0) | 2021.09.11 |
javascript 연산자 이해하기 (0) | 2021.08.29 |