Variable2

변수의 두 번째 시간!
딜레이없이 바로 가겠다.

1. String

우리가 콘솔에 무엇인가를 출력할 때
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)이라고 부름.

2. 나머지

2-1) boolean

boolean에서 false를 의미하는 친구들을 알아보자.
false : 0, null, NaN, undefined, ''(빈 문자열)
true : 그 외

Q. null과 undefined의 차이가 무엇인가요??
A. null우리가 직접 null이라고 할당해야하고,
undefined은 선언시에 우리가 할당하지 않으면 자동으로 지정된다.

2-2) symbol

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}`);:

2.5. BigInt

BigInt는 말 그대로 큰 수 출력할 수 있게 해줌 (근데 잘 안쓰임)
백문이 불여일견!

숫자 뒤에 n만 붙이면 댐.

3. Dynamic typing

JS는 dynamically typed language라고 불리는데,
(C, C++, Java는 statically typed language)

자 이게 무슨말일까?

변수를 선언 시 어떤 type인지 선언하지 않고
run-time때 할당값에 따라 type이 변경됨.
(run-time: 프로그램이 돌아갈 때)

경험상 run-time 때 에러가 발생하면 좀 많이 빡치던데
이런 단점 때문에 TypeScript가 출현한 거임.


3.25. 보충

변수랑 불변수 알았지?

  • Variable(r/w): 메모리에 읽고 쓰기 가능.
  • Const(r): 메모리에서 읽기만 가능.

또 메모리에 값이 저장되는 방법 알았지?

  • primitive: 자체가 저장
  • object: 너무 커서 메모리에 모두 올릴 수 없음.
    따라서 reference(실제로 obj를 가리킴)가 저장됨

해당 Post는 유튜브 드림코딩 by 엘리님의 JS 강의영상을 보고 작성했습니다. 틀린 부분? 있을 수 있지. 혹 읽으시다가 '엥 이새기 잘못알고 있는데?' 하는 부분이 있다면 Comment 남겨주세요. 저의 JS 스승님으로 모시겠습니다. 더 정확하고 재밌게 공부하시려면 아래 링크 참조해주세요!

드림코딩 by 엘리 | Variable

좋은 웹페이지 즐겨찾기