-
Javascript ES5+TIL(Today I Learned) 2021. 10. 26. 17:46
var hoisting(hoisting = 끌어올려주다)이란
어디에 선언했던간에 항상 제일 위로 선언을 끌어올려주는것을 의미하다.
var은 block scope을 철저히 무시한다.
빠르고 작게 만들어야 하는 프로젝트에선 var의 사용이 어느정도 괜찮았지만
대규모 프로젝트에선 var의 사용은 위험하다.
그렇기 때문에 let이 출시되었다(since ES6)
const는 웬만해선 값이 설정된 순간부터 변경되어선 안되는 값들이다.(Immutable(=변경이 불가능한) data라고 부른다.)
- 보안상의 장점
- 쓰레드 안정성
- 사람의 실수를 줄여줌
Dynamic typing : dynamically typed language
자바스크립트는 데이터타입을 선언하지 않아도 변수를 선언할 수 있는 장점이 있다(C와 JAVA와의 차이점)
반면에 Typescript에서는 let a: number = 12;와 같이 number를 함께 선언해줘야 한다.
자바스크립트는 런타임 방식의 출력이기 때문에 중간에 데이터 타입이 변경되는 선언을 하게되면 오류가 발생할 수 있다. 때문에 타입스크립트가 출시되었다.
const infinity = 1 / 0; //Infinity가 출력
const negativeInfinity = -1 / 0; //negativeInfinity가 출력
const nAn = 'not a number' / 0; //NaN이 출력
최근 자바스크립트는 변수에 값 끝에 n을 붙이면 아주 큰 값을 선언할 수 있게 되었는데, 현재 이 기능이 적용된 브라우저는 chrome, firefox..등 최신 브라우저에서만 지원된다.
Symbol을 이용하면 서로다른 변수명에 같은 값을 선언해도 서로 다른 값으로 인식하게 해주는 기능이다.
Symbol.for을 이용하면 서로다른 변수명에 같은 값일 때 같은 값으로 인식하게 해준다.
symbol 변수 값은 출력할 때 symbol.description으로 변경(String 값으로 변경)해서 선언해줘야 오류가 나지 않는다.
'TIL(Today I Learned)' 카테고리의 다른 글
Web Socket 과 HTTP 통신의 차이, Socket.io패키지, 네임스페이스 (0) 2021.10.28 javascript ES5+ operator, if, for loop (0) 2021.10.27 클라우드 컴퓨팅 (0) 2021.10.25 Javascript ES5+, nodejs (0) 2021.10.24 정처기가 끝나고.. 또 다른 시험 중.. (0) 2021.10.21