1. Variable (변수)
- 변경될 수 있는 값
- 자바스크립트에서 변수를 만들 때는 let 이라는 키워드 사용 (ES6 에 추가되어진 단어)
- 자바스크립트에서 변수를 선언할 수 있는 키워드는 딱 하나 = let ( 그 전에는 var 씀 )
* var hoisting : hoisiting은 어디에 사용했냐에 상관없이 항상 제일 위로 선언을 끌어올려 주는 것을 말한다.
- 또한 var은 block scope을 철저히 무시한다.
먼저 html에 variable.js 를 연결
콘솔창에 나옴
글로벌한 변수들은 어플리케이션이 실행되는 순간부터 끝날 때까지 항상 메모리에 탑재되어 있기 때문에 최소한으로 쓰는 것이 좋다. 가능하면 클래스나 함수 if 나 for로 필요한 부분에서만 정의해서 쓰는 것이 좋다.
2. Constant
- const
- 바로 한 번 할당하면 값이 절대 바뀌지 않는다.
- 변수를 이용하면 이 변수가 메모리 어딘가에 할당된 박스를 가리키고 있어서 이 포인터를 이용해서 값을 계속 바꿔나갈 수가 있는데 constant는 가리키고 있는 이 포인터가 잠겨 있다. 그래서 값을 선언함과 동시에 할당한 뒤로는 절대 다시는 값을 변경할 수 없다.
* 값이 계속 변경될 수 있는 것을 Mutable data type 이라고 하고
* 값이 변경이 불가능한 것은 Immutable data type이라고 한다.
- favor immutable data type always .. for a few reasons:
- security
- thread safety
- reduce human mistakes
3. Variable Types
- primitive type : = sigle item(더이상 작은 단위로 나누어 질 수 없는 한가지의 아이템), number, string, boolean, null, undefined, symbol
- object type : (싱글 아이템들을 여러개 묶어서 한 단위로 관리할 수 있게 해주는 것) box container
- function : first-class function (프로그래밍 언어에서는 function도 다른 데이터 타입처럼 변수에 할당이 가능하고 또 그렇기 때문에 함수의 파라미터를 인자로도 전달이 되고 함수에 리턴 타입으로도 function을 리턴할 수 있는것이 가능하다)
- number
- 0을 나누어주면 무한대 값이 나온다.
- String
- boolean
- false : 0, null, undefined, NaN, ''
- true : any other value
- null , undefined
- symbol
- 맵 이나 다른 자료구조에서 고유한 식별자가 필요하거나 아니면 동시에 다발적으로 일어날 수 있는 있는 그런 코드에서 우선순위를 주고 싶을 때 정말 고유한 식별자가 필요할 때 쓰여진다.
- 간혹 식별자를 string을 이용해서 쓰는 경우가 있는데 이 string 은 다른 모듈이나 다른 파일에서 동일한 string 을 썼을 때 동일한 식별자로 간주 된다.
하지만 심볼같은 경우에는 동일한것을 이용해서 심볼을 만들었지만 이 두가지의 심볼은 다른 경우이다.
- 이것을 동일한지 아닌지 검사해보면 아니라고 나온다. (주어지는 string에 상관없이 고유한 식별자를 만들 때 사용되어 진다. )
* string 이 똑같다면 동일한 심볼을 만들고 싶을때는? Symbol.for() 사용하면 된다.
* symbol은 바로 출력하게 되면 에러뜬다. => 항상 닷 디스크립션을 이용해서 string으로 변환해서 출력하라!!
4. Dynamic typing : dynamically typed language
'JavaScript' 카테고리의 다른 글
[모던자바스크립트 DeepDive] 34. 이터러블 (0) | 2023.02.04 |
---|---|
[모던자바스크립트-DeepDive]39장 DOM (1) | 2023.02.04 |
[javascript] 웹UI를 만들어보며 공부하는 자바스크립트 문법 (0) | 2022.05.21 |
[javascript]02_ script async 와 defer의 차이점 (0) | 2022.01.06 |
[javascript]01 자바스크립트 실행하기 (0) | 2022.01.06 |