🗃️javascript/이론정리

js 개발 이론정리(1)[async, defer, 데이터 타입]

하얀성 2023. 4. 2. 20:32

병렬적으로 html을 실행함과 동시에 js 파일을 다운받고 있다가. 파일 다운이 완료되면 html 코드읽기 잠시 멈추고 js 파일을 실행한다. 그리고 다시 html 코드를 읽는다.

 

ㅡ> 먼저 다운된 js 파일이 먼저 실행되기 때문에 

더 큰용량의 파일이 먼저 실행되어야 하는 경우 문제가 발생.


병렬적으로 둘다 읽어가다가 html 코드 읽기가 완료된 후에, 다운받은 js파일 실행.

ㅡ> 다 다운 받은 후에 순서에 맞게 js 파일 실행. 


< 'use strict'; >

use strict는 다른 언어에서는 비상식적인 js만의 방식들을 차단시켜서 코드의 안정성을 높인다.

코드가 효율적이기 때문에 엔진의 코드 읽는 속도 또한 빨라진다.


<var >

 

var의 사용은 이제 용납되지 않는다.

 

원인1. var hoisting : var을 어디에 선언 했든, 선언을 가장 맨위로 끌어주는 것. 

원인2. { }(블럭)을 무시하고 무조건 global 변수처럼 사용된다.

이 말도 안되는 코드가 성립되는게 var 이다.

< const >

- 상수값으로서 값 고정됨.

 

1. 안전성 증가.

2. thread의 동시 사용 때에, 값 변경을 하게 되는데 그것을 막게끔 해줌.

 


< 문자열 안에서 변수, 상수, 함수 쓰는 법 >

 

`${변수명 or 함수명 } `  


<boolean>

 

null은 아무값도 못오게

undefined는 아예 선언하지 않으면 된다.


<Symbol>

같은 문자열 구분할 때 사용.  출력을 원한다면.. 변수명 뒤에 .description을 추가.


<Dynamic typing>

길고 깊은 프로젝트 진행시 이러한 타입의 변경은 위에서 오류가 없던 같은 코드에게

아래에서 에러를 선사한다.

그래서 타입이 정해져서 쓰이는 자바스크립트가 Typescript.


immutable data(변환 불가) : primitive types, frozen objects(object.freeze())

mutable data(변환 가능) : object


코테 풀면서 막연히 써오기만한 내용들 정리가 가능했다. 와우

 

출처: https://www.youtube.com/watch?v=OCCpGh4ujb8&list=PLv2d7VI9OotTVOL4QmPfvJWPJvkmv6h-2&index=3