변수(variable)

이름이 붙은 값으로, 변수라는 이름이 암시하듯 언제든 값이 변할 수 있습니다.

ES5 버전 이하 부터는 var 키워드만 사용할 수 있었는데, ES6 이후 부터는 let(변수) 과 const(상수)를 사용합니다.

var varTmp = 'varVariable';
let letTmp = 'letValue';
const CONST_TMP = 'constVariable';

변수에 따로 초깃값을 지정하지 않을 경우 'undefined' 값이 할 당 됩니다. 상수 값인 const 경우 네이밍을 대문자와 밑줄만을 사용하는 관례가 있습니다. 상수에 비해 변수는 생각의외로 꼭 필요한 상황이 적습니다.

  • 변수보다 상수를 자주 사용하는 습관을 가지는 것이 좋습니다.
  • 바뀌는 값보단 고정된 값이 제어하기 편하고 에러를 방지할 수 있기 때문입니다.

식별자(identifier)

변수와 상수, 함수 이름을 식별자(identifier)라 부릅니다. 그리고 식별자에는 규칙이 존재합니다.

  • 반드시 글자나 달러 기호($), 밑줄(_)로 시작해야 한다.
  • 글자와 숫자, 달러기호, 밑줄만 쓸 수 있다.
  • 유니코드 식별자도 가능하다.
  • 예약어는 식별자로 사용이 불가능 하다.

식별자 표기법

카멜 케이스(camel case)

varTmp, letTmp 등 카멜 케이스는 띄어쓰기를 대문자로 작성하여 표기합니다.

스네이크 케이스(snake case)

var_tmp, let_tmp 등 띄어쓰기를 밑줄(_) 로 작성하여 표기합니다.

식별자 표기 방침

  • 식별자는 대문자로 시작해서는 안된다. 예외의 경우는 존재한다.
  • 밑줄 한 개 또는 두 개 시작하는 식별자는 아주 특별한 상황, 또는 '내부' 변수에서만 사용한다.
  • 제이쿼리를 사용할 경우, 달러 기호로 시작하는 식별자는 보통 제이쿼리 객체라는 의미이다.

리터널(literal)

리터널이라는 단어는 값을 프로그램 안에서 직접 지정한다는 의미를 가지고 있습니다.
리터럴은 값을 만드는 방법 이며, 자바스크립트는 작성자가 제공한 리터널 값을 받아 데이터를 생성합니다.

let identifier_1 = "literal_1"

위의 코드를 보면 identifier_1 은 변수를 가리키는 식별자이며,
그 옆에 "literal_1"은 문자열 리터널인 동시에 identifier_1에 할당하는 값입니다.

원시 타입(Primitive Type)

원시 값(primitive)이란 객체가 아니면서 메서드도 가지지 않는 데이터입니다. 원시 값은 하나의 값만 나타낼 수 있는 '불변성'을 가지고 있으며, 새로운 값을 직접 할당 하기 전까지는 이미 생성한 원시 값은 객체,배열,함수와는 달리 변형 할수 없습니다.

// 원시 값
let foo = 5;

// 원시 값을 변경해야 하는 함수 정의
function addTwo(num) {
   num += 2;
  console.log("1# num: " + num); // #1
}
// 같은 작업을 시도하는 다른 함수
function addTwo_v2(foo) {
   foo += 2;
  console.log("2# foo: " + foo); // #2
}

// 원시 값을 인수로 전달해 첫 번째 함수를 호출
addTwo(foo);
// 현재 원시 값 반환
console.log("3# : " + foo);   // #3

// 두 번째 함수로 다시 시도
addTwo_v2(foo);
console.log("4# : " + foo);   // #4

// 원시 값에 직접 할당
foo = 8;
console.log("5# : " + foo);   // #5

// return 
1# num: 7   3# : 5   2# foo: 7   4# : 5   5# : 8

원시 타입은 다음과 같이 6가지가 존재합니다.

  • 숫자(Number)
  • 문자열(String)
  • 불리언(boolean)
  • null
  • undefined
  • 심볼(Symbol) - ES6

+ Recent posts