자바스크립트에서의 변수
: 변수 (variable)은 하나의 값을 저장하기 위해 확보한 메모리 공간 자체, 또는 그 메모리 공간을 식별하기 위해 붙인 이름
그래서?
할당 : 변수에 값을 저장하는 것(assignment)
참고: 변수에 저장된 값을 읽어들이는 것 (reference)
선언 : 변수명을 자바스크립트 엔진에 알리는 것 (declaration)
변수 선언은 var,let,const로 할 수 있고 ES6에서 let과 const가 추가 되었다.
자바스크립트에서 변수 선언은 선언 => 초기화 단계를 거쳐 수행된다.
var 는..ES6이전에 나온 js문법, 지금은 되도록 쓰지 말자!
ES6이후에 위 문제 보완을 위해 let,const가 추가 되었다.
var키워드를 사용한 변수선언은 선언, 초기화 단계가 동시에 진행되어서 암뭄적으로 undefind를할당해 초기화한다.
자바스크립트 엔진은 소스코드를 한줄씩 실행하기에 앞서, 변수 선언을 포함한 모든 선언문을 찾아내 먼저 실행한다.
=> 변수선언이 어디에 있든 상관없이 다른 코드보다 먼저 실행되는 트징은 호이스팅이라고 한다.
let
변수명을 중복으로 선언을 불가능하지만, 재할당은 가능하다 (중요!)
재할당을 해 주어야 하는 데이터등에 선언 해 주면 좋다.
const
const는 반드시 선언과 초기화를 동시에 진행되어야 한다.
const name;을 하면 Syntax에러가 난다는 소리다. let과 마찬가지로 재선언이 불가능하며, 나아가 재할당도 불가능하다
바뀌지 않는 상수를 선언할 때 사용 해 주는 것이 좋다.
정리
1. 변수의 스코프는 최대한 좁게 만드는 것
2. var => let => const 순으로 추천
변경되지 않는값 이라면 웬만해서는 const를 사용해서 변수를 선언하는 것이 좋다.
js의 언어타입은 "원시값"과 "객체"로 나뉜다.
1.boolean 타입
논리요소를 나타냄, true 와 false 두가지 값을 가질 수 있음
2.Null
null하나의 값만 가질 수 있다.
4.Number
말 그대로 숫자, 우리가 일반적으로 알고 있는 숫자와 그 성격이 동일하다. 숫자를 이용하여 덧셈, 뺄셈 ,곱셈, 나눗셈 등의 연산을 할 수 있다.
String
텍스트 데이터를 나타내는데 사용한다.
Symbol
변경 불가능한 원시타입의 값이다. 이름의 충돌 위험이 없는 유일한 객체의 Property Key를 만들기 위해 사용한다. 고유한 식별자를 만들 수 있다.
출력할 때 그냥은 출력이 안되고 .description을 해야 한다.
// 5. Dynamic typing: dynamically typed langauge
let text = 'hello';
console.log(text.charAt(0)); // h
console.log(`value: ${text}, type: ${typeof text}`);
text = 1;
console.log(`value: ${text}, type: ${typeof text}`);
text = '7' + 5;
console.log(`value: ${text}, type: ${typeof text}`);
text = '8' / 2
console.log(`value: ${text}, type: ${typeof text}`);
console.log(text.charAt(0)); // error!!
참고
var, let, const의 차이 ⏤ 변수 선언 및 할당, 호이스팅, 스코프
드림코딩) 데이터타입, data types, let vs var, hoisting | 프론트엔드 개발자 입문편 (JavaScript ES5+)