변수의 두 번째 시간!
딜레이없이 바로 가겠다.
우리가 콘솔에 무엇인가를 출력할 때
String이면 '+'기호로 더해서 출력하곤 했었다..
let name ='0woy'; console.log('hello '+name);
output : hello 0woy
그런데 항상 + 를 붙이기엔 넘 귀찮다고 생각이 들던 찰나, 콜롬버스의 구대륙 발견처럼 우리는 ESC 아래있는 ` 기호를 사용하게 된다.
How to use?
console.log(`hello ${name}`);
output : hello 0woy
이 친구의 이름은 백틱인데, `` 안에 있는 내용은 띄어쓰기도 포함해서 출력해주기 때문에 이렇게 편안할 수가 없다.
그리고 ``, $,{}을 이용하여 {}안에 있는 변수가 자동적으로 붙여져서 나오는 것을 template literals(string)이라고 부름.
boolean에서 false를 의미하는 친구들을 알아보자.
false : 0, null, NaN, undefined, ''(빈 문자열)
true : 그 외
Q. null과 undefined의 차이가 무엇인가요??
A. null은 우리가 직접 null이라고 할당해야하고,
undefined은 선언시에 우리가 할당하지 않으면 자동으로 지정된다.
symbol은 고유식별자를 부여해주는데, 동시다발로 발생하는 코드에서 우선순위를 주고 싶을 때 사용하는 type.
const symbol1 = Symbol('id'); const symbol2 = Symbol('id'); console.log(symbol1 === symbol2);
output : false
Q. 동일한 문자열일 경우 동일한 우선순위를 부여해주고 싶을 경우엔 어떻게 하나요??
A.Symbol for('id');
, for을 붙이면 됨.
간혹 식별자를 string을 이용해서 부여하는 경우가 있는데, 이는 식별대상이 동일한 문자열일 경우 동일한 우선순위를 가지게 됨.(Symbol for와 같은 역할?)
Symbol을 console에 출력하고 싶은 경우
Error!
console.log(`value: ${symbol1}`);
Correct!
console.log(`value: ${symbol1.description}`);
:
BigInt는 말 그대로 큰 수 출력할 수 있게 해줌 (근데 잘 안쓰임)
백문이 불여일견!
숫자 뒤에 n만 붙이면 댐.
JS는 dynamically typed language라고 불리는데,
(C, C++, Java는 statically typed language)
자 이게 무슨말일까?
변수를 선언 시 어떤 type인지 선언하지 않고
run-time때 할당값에 따라 type이 변경됨.
(run-time: 프로그램이 돌아갈 때)
경험상 run-time 때 에러가 발생하면 좀 많이 빡치던데
이런 단점 때문에 TypeScript가 출현한 거임.
변수랑 불변수 알았지?
- Variable(r/w): 메모리에 읽고 쓰기 가능.
- Const(r): 메모리에서 읽기만 가능.
또 메모리에 값이 저장되는 방법 알았지?
- primitive: 값 자체가 저장
- object: 너무 커서 메모리에 모두 올릴 수 없음.
따라서 reference(실제로 obj를 가리킴)가 저장됨
해당 Post는 유튜브 드림코딩 by 엘리님의 JS 강의영상을 보고 작성했습니다. 틀린 부분? 있을 수 있지. 혹 읽으시다가 '엥 이새기 잘못알고 있는데?' 하는 부분이 있다면 Comment 남겨주세요. 저의 JS 스승님으로 모시겠습니다. 더 정확하고 재밌게 공부하시려면 아래 링크 참조해주세요!