head 안에 이런식으로 스크립트를 삽입한다
<script defer src="main.js"></script>
여기서 defer의 자리에 async도 들어갈 수 있지만
이 두 가지 속성에는 미묘한 차이가 있다
async
- 문서 내 순서와 상관없이 먼저 다운로드된 스크립트가 먼저 실행된다
- 순서가 필요한 스크립트에서 문제 발생 가능
defer : 효율적인 방법
- 문서에 추가된 순서대로 스크립트가 먼저 실행된다
- 모든 DOM이 로드된 후에야 실행된다
- DOM을 따라 반드시 순서대로 실행되어야 한다면 <script>
- DOM이나 다른 스크립트에 의존성이 없고, 실행 순서가 중요하지 않은 경우라면 <script async>
- DOM이나 다른 스크립트에 의존성이 있고, 실행 순서가 중요한 경우라면 <script defer>
- 'use strict'; js의 유연성을 제한하여 효율적인 코드 작성에 도움이 됌
변수 선언 방법
let name
var은 더 이상 사용하지 않음
var hoisting : 선언한 곳에 상관없이 선언문을 위로 끌어 올리는 것
- var은 블록 변수의 영향을 받지않음
constants는 값을 변경할 수 없음
`` 이용하면 ${}를 이용해 string 타입 변수 편하게 입력 가능함
Symbol
const symbol1 = Symbol('id');
출력시 symbol1.description으로 출력