JS | 변수 / 표현식과 문 / 데이터 타입
변수
- 변수는 하나의 값을 저장하기 위해 확보한 메모리 공간의 주소로 치환되어 실행된다.
- 변수는 어떤 값을 구별해서 식별할 수 있으므로 식별자라고도 한다.
- 메모리 주소에 변수 이름(식별자)를 붙이고 메모리에는 값이 담긴다.
- 변수를 선언하고 값을 할당하지 않으면 undefined라는 값이 할당되어 초기화 된다.
- 변수 선언은 런타임 이전에 실행되므로 참조가 먼저되고 선언이 그 후가 되어도 변수 호이스팅이 일어나 정상적으로 동작을 수행한다.
- 값의 할당은 런타임에 실행된다.
console.log(score); //undefined
score = 80;
var score;
console.log(score); //80
- 식별자는 특수문자나 숫자로 시작할 수 없으며 대소문자를 구분한다.
- 주석이 필요하지 않을정도로 명확한 네이밍이 필요하다.
표현식과 문
- 리터럴(literal)은 사람이 이해할 수 있는 문자 또는 약속된 기호를 사용해 값을 생성하는 표기법을 말한다.
- 값으로 평가될 수 있는 문은 모두 표현식(expression)이다.
- 문(statement)은 프로그램을 구성하는 기본 단위이자 최소 실행 단위다. ex) 선언문, 할당문, 조건문, 반복문...
- 문은 여러 토큰으로 구성되며, 토큰이란 문법적으로 더 이상 나눌 수 없는 코드의 기본 요소를 의미한다.
- 세미콜론 자동 삽입 기능(ASI)이 있어 생략이 가능하다. 다만 동작이 정확하지 않을 수 있다.
데이터 타입
-
자바스크립트는 크게 원시 타입과 객체 타입으로 분류할 수 있다.
-
원시 타입: number, string, boolean, undefined, null, symbol
-
객체 타입: 객체, 함수, 배열 등
-
Infinity: 양의 무한대, -Infinity: 음의 무한대, NaN: 산술 연산 불가(not-a-number)
-
템플릿 리터럴은 백틱(``)을 사용해 표현한다.
- 멀티라인 문자열이 가능하다.
- ${}으로 표현식을 삽입할 수 있다. 결과는 문자열로 타입이 강제변환된다.
-
null은 이전에 할당되어 있던 값에 대한 참조를 명시적으로 제거한다.
-
Symbol 값은 다른 값과 중복되지 않는 유일무이한 값이다. 따라서 주로 이름이 충돌할 위험이 없는 객체의 유일한 프로퍼티 키를 만들기 위해 사용한다.
-
데이터 타입이 필요한 이유
- 값을 저장할 때 확보해야하는 메모리 공간의 크기를 결정
- 값을 참조할 때 한 번에 읽어 들여야 할 메모리 공간의 크기를 결정
- 메모리에서 읽어 들인 2진수를 어떻게 해석할지 결정
-
자바스크립트는 동적 타입언어다.
-
변수는 선언이 아닌 할당에 의해 타입이 결정되고 재할당에 의해 변수의 타입은 언제든지 동적으로 변할 수 있다.
-
동적 타입 언어는 유연성은 높지만 신뢰성은 떨어진다.
-
변수 사용할 때 주의할 사항
- 변수는 최소한으로 사용한다.
- 변수의 유효 범위(스코프)는 최대한 좁게 만든다.
- 전역 변수는 최대한 사용하지 않는다.
- 상수를 사용해 값의 변경을 억제한다.(const)
- 변수의 목적이나 의미를 파악할 수 있도록 네이밍한다.
[출처]
모던자바스크립트 Deep Dive
Author And Source
이 문제에 관하여(JS | 변수 / 표현식과 문 / 데이터 타입), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@mogooee/DeepDive1저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)