본문 바로가기

프로그래밍 언어/JavaScript

[JavaScript] 변수/변수 명명 규칙/호이스팅(hoisting)

변수란?

  • 변수는 값을 담기 위해 이름을 붙인 상자
  • 변수는 컴퓨터의 메모리에 일정한 크기의 영역으로 생성됨

변수 선언

  • let
    • 모던한 변수 선언 키워드
  • var
    • 오래된 변수 선언 키워드
    • 잘 사용하지 않음
  • const

let과 비슷하지만, 변수의 값을 변경할 수 없음

변수 = 값

  • 프로그램에서 = 연산자는 오른쪽 값을 왼쪽 변수에 대입하겠다는 것
  • 대입을 하면 변수에 저장된 값이 새로운 값으로 바뀜

변수 선언 생략

  • x = 2
    • 변수를 선언하지 않은 상태에서 값을 대입하면 JS엔진이 그 변수를 자동으로 전역 변수로 선언함
    • 변수를 선언하지 않고 변수를 사용하는 행위는 버그의 원인이 될 수 있으므로 반드시 선언을 하자
    • ECMA5부터 추가된 Strict 모드를 활용하면 선언하지 않은 변수에 값을 대입했을 때 오류가 발생하여, 선언하지 않은 변수를 찾아낼 수 있음

변수 끌어올림(호이스팅)과 변수 중복 선언

  • 프로그램은 작성한 순서에 따라 윗줄부터 차례대로 실행되는 것이 원칙이지만, 변수 선언은 이 원칙을 따르지 않음
console.log(x); //undefined (오류가 발생하지 않음)
var x;
  • 호이스팅(hoisting)
    • 변수 선언의 끌어올림, 프로그램 중간에서 변수를 선언하더라도 변수가 프로그램 첫머리에 선언된 것처럼 다른 문장 앞에 생성됨
    • 단, 선언과 동시에 대입하는 코드는 끌어올리지 않음
    • 호이스팅은 다른 언어에는 없는 JS만의 고유한 특징
console.log(x); //undefined
var x = 5;
console.log(x); //5

변수의 명명 규칙

  • 식별자
    • 변수, 함수, 라벨 이름 등 사용자가 정의하는 이름
    • 알파벳, 숫자, 밑줄, 달러기호$만 사용할 수 있음
    • 첫 글자로 숫자 사용 불가
    • 예약어를 식별자로 사용 불가
    • 객체 이름 사용 불가
  • 많이 사용하는 표기법 3가지
    • 캐멀 표기법
      • 두 번째 이후 단어의 첫 글자를 대문자로 표기하고 나머지는 소문자로 표기 
      • newName
    • 파스칼 표기법
      • 각 단어의 첫 글자만 대문자로 표기
        • NewName
    • 밑줄 표기법(스네이크 표기법)
      • 모든 단어를 소문자로 표기하고 단어와 단어를 밑줄로 구분
        • new_name
  • 일반적으로 사용하는 표기법
    • 루프 카운터 변수 이름은 i, j, k 등을 사용
    • 상수는 대문자로 표현
      • MAX_SIZE
    • 논리값을 표현하는 변수에는 이름 앞에 is를 붙임
      • isMouseDown
    • 생성자 이름은 파스칼 표기법을 사용

 

이 글은 모던 자바스크립트 입문(이소 히로시)을 참고하여 작성되었습니다.