1️⃣ 내부 스크립트
<script></script>
2️⃣ 외부 스크립트
외부 js 파일 생성 후
<script src="./script.js"></script>
➡️ head
<html lang="en">
<head>
<script src="/1021/script.js"></script> <!-- 여기에 위치 -->
</head>
<body></body>
</html>
➡️ end of the body
<html lang="en">
<head>
</head>
<body>
<div></div>
<script src="/1021/script.js"></script> <!-- 여기에 위치 -->
</body>
</html>
➡️ with async ⭐
➡️ with defer ⭐
실무에서는 defer를 DOM 전체가 필요한 스크립트나 실행 순서가 중요한 경우에 적용하고, async는 방문자 수 카운터나 광고 관련 스크립트처럼 독립적인 스크립트나 실행 순서가 중요하지 않은 경우에 적용합니다.
출처 javascript.info
➡️ 변수: 변할 수 있는 값
키워드: 특별한 목적을 가지고 설계된 예약 단어
var
문제점:
- 자바스크립트는 사용 공간을 공유하기 때문에, 변수명이 같을 경우 값을 변경할 가능성이 있다.
let
➡️ 상수: 변하지 않는 값
// 예시
const a = [10]
a.push(10)
console.log(a) // [10, 20]
문자, 숫자, 논리, undefined, null, symbol
객체, 배열, 함수
🤔 왜 기본 자료형과 참조 자료형으로 구분했을까?
➡️ 기본 자료형은 값을 복사할 때 값 자체가 들어감
➡️ 참조 자료형은 주소를 참조함
얕은 복사
깊은 복사
기본형 데이터와의 차이는 참조형 데이터 안에 있는 기본형 데이터를 저장하기 위해 기본형 데이터의 주소를 담은 공간을 새로 생성했다는 점이다.
1. 스크립트 작성 시 아무 생각 없이 하단에 작성했었는데 명확한 이유를 알게 되었다.
2. defer와 async를 상황에 맞게 사용해 더 효율적으로 JS를 가져와야겠다.
3. 깊은 복사와 얕은 복사 또한 이유는 명확히 모르던 채로 결과만 알고 있었는데 그렇게 되는 과정과 언제 얕은 복사를 사용해야 하는지, 깊은 복사가 왜 안전한지 알게 되었다.