처음으로 적는 자바스크립트 정리입니다. 가장 먼저 다른 프로그래밍 언어와 차별화가 되는 변수형과 데이터 타입에 대해서 정리해보겠습니다!
1. let vs var
- let과 var은 모두 자바스크립트 변수 선언 방식이다.
- 원래는 var만 썻었음
- 이번에 ES6로 넘어오면서 추가된 것이 let
근데 이 var가 굉장히 위험한 놈이다....
*다른 프로그래밍 언어를 배우고 오면 이해가 안 되는 var에서만 되는 것*
- 선언하기 전에 값을 할당하는 것이 가능하다
num = 1;
var num;
//아니 이게 에러가 아니라고???
이것을 var hoisting(호이스팅)이라고 한다
hoisting(끌어올리다)이란 어디에 선언했는지 상관없이 선언한 것을 모두 다 제일 위로 올려주는 것
=> 근데 let은 안됨, let은 무조건 선언 먼저! 그래서 더 안전함
- var은 {}를 무시한다. 모두 다 전역 변수처럼 사용됨
{
num = 1;
var num;
}
console.log(num); //이게 출력이 되네...
=> let은 {} 안의 값은 {} 안에서만 사용 가능하다!
=> 이게 작은 규모의 코드에서는 괜찮을지 몰라도 규모가 커지면 var라는 변수는 어마어마한 장애를 일으킬 수 있다.
=> 그러니까 let만 사용하자!
2. const
- 한번 값이 할당되면 바꿀 수 없는 변수(상수로 만들어 버림)
- 다른 언어에서는 const int 이런 식으로 쓰는 데 자바스크립트는 const 자체가 변수형
- 값이 변경이 안되니 보안상에도 도움이 된다. => 바뀔 필요 없는 건 웬만하면 const로
const num = 1;
num = 2; //이거 안됨, 에러남
3. 자바스크립트의 데이터 타입
- 자바스크립트는 변수에 어떤 것이 들어가든 동적으로 결정해줌
(이거 사실 좀 위험함.... => 그래서 나온 게 타입스크립트 TypeScript)
let a = 1;
let b = 1.2;
let c = 'string';
//알아서 데이터타입 결정!
- 숫자형 타입은 number 이거 하나! (int, double, long 등등 없음!)
- 모든 문자형 타입은 String!
- String에서 사용 가능한 예시
const char = 'c'; //이것도 String
const str = 'string';
console.log(`value: ${str}, type: ${typeof str}`);
console.log('value:'+ str + 'type: ' + typeof str);
//위에 두개가 같은 거임
value: string, type: string // 이렇게 출력
- 문자열을 + 로 연결해서 출력할 수 있다.
- `넣고 싶은 문자열 예시 or ${변수명}` 이렇게 넣어서 출력할 수도 있다
*주의사항*
` 이거 작은따옴표 아님!!!! 1번 왼쪽 위, 탭키 바로 위에 있는 키이다.
- symbol
- 변경 불가능하고, 다른 값과 중복되지 않는 고유한 값!
- 동일한 문자열이나 값을 사용해도 서로 다른 것으로 취급한다.
- Symbol 함수를 호출해서 선언한다.
- 그래서 같은 심볼로 사용하고 싶으면 Symbol.for()을 호출하여 선언하면 된다.
const symbol1 = Symbol('a');
const symbol2 = Symbol('a');
console.log(symbol1 === symbol2); //false
const symbol3 = Symbol.for('a');
const symbol4 = Symbol.for('a');
console.log(symbol3 === symbol4); //true
여기까지 자바스크립트의 데이터 타입과 변수형, 호이스팅 등에 대해서 다루어 보았습니다!