JS | 변수 / 표현식과 문 / 데이터 타입

2921 단어 JavaScriptJavaScript

변수

  • 변수는 하나의 값을 저장하기 위해 확보한 메모리 공간의 주소로 치환되어 실행된다.
  • 변수는 어떤 값을 구별해서 식별할 수 있으므로 식별자라고도 한다.
  • 메모리 주소에 변수 이름(식별자)를 붙이고 메모리에는 값이 담긴다.
  • 변수를 선언하고 값을 할당하지 않으면 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)

  • 템플릿 리터럴은 백틱(``)을 사용해 표현한다.

    1. 멀티라인 문자열이 가능하다.
    2. ${}으로 표현식을 삽입할 수 있다. 결과는 문자열로 타입이 강제변환된다.
  • null은 이전에 할당되어 있던 값에 대한 참조를 명시적으로 제거한다.

  • Symbol 값은 다른 값과 중복되지 않는 유일무이한 값이다. 따라서 주로 이름이 충돌할 위험이 없는 객체의 유일한 프로퍼티 키를 만들기 위해 사용한다.

  • 데이터 타입이 필요한 이유

    1. 값을 저장할 때 확보해야하는 메모리 공간의 크기를 결정
    2. 값을 참조할 때 한 번에 읽어 들여야 할 메모리 공간의 크기를 결정
    3. 메모리에서 읽어 들인 2진수를 어떻게 해석할지 결정
  • 자바스크립트는 동적 타입언어다.

  • 변수는 선언이 아닌 할당에 의해 타입이 결정되고 재할당에 의해 변수의 타입은 언제든지 동적으로 변할 수 있다.

  • 동적 타입 언어는 유연성은 높지만 신뢰성은 떨어진다.

  • 변수 사용할 때 주의할 사항

    1. 변수는 최소한으로 사용한다.
    2. 변수의 유효 범위(스코프)는 최대한 좁게 만든다.
    3. 전역 변수는 최대한 사용하지 않는다.
    4. 상수를 사용해 값의 변경을 억제한다.(const)
    5. 변수의 목적이나 의미를 파악할 수 있도록 네이밍한다.

[출처]
모던자바스크립트 Deep Dive

좋은 웹페이지 즐겨찾기