4/25 TIL

이세영·2024년 4월 25일
0
post-custom-banner

오늘 배운 내용

  1. var, let, const의 차이점

var

  1. var는 ES5까지 JavaScript에서 변수를 선언하기 위해 사용된 키워드입니다.
  2. var로 선언된 변수는 함수 스코프(function-scoped)를 가집니다. 즉, 함수 내에서 선언된 var 변수는 함수 전체에서 접근 가능합니다.
  3. var로 선언된 변수는 호이스팅이 발생합니다. 호이스팅은 변수를 선언하기 전에도 해당 변수를 참조할 수 있게 하는 JavaScript의 행동입니다. 단, 선언 전에 접근하면 undefined가 됩니다.
  4. var로 선언된 변수는 같은 스코프 내에서 재선언이 가능합니다.

let

  1. let은 ES6(ES2015)에서 도입되어 변수를 선언하기 위해 사용되는 키워드입니다.
  2. let으로 선언된 변수는 블록 스코프(block-scoped)를 가집니다. 즉, 선언된 블록({}) 내에서만 접근 가능합니다.
  3. let으로 선언된 변수는 호이스팅이 발생하지만, var와 달리 초기화 전까지 임시적 사각지대(TDZ: Temporal Dead Zone)에 있어 접근할 수 없습니다.
  4. 같은 스코프 내에서 let으로 선언된 변수를 재선언할 수 없습니다.

TDZ > 참조 에러(ReferenceError)가 발생해 접근 x

const

  1. const도 ES6(ES2015)에서 도입되었으며, 변수를 상수로 선언하기 위해 사용됩니다.
  2. const로 선언된 변수는 let처럼 블록 스코프(block-scoped)를 가집니다.
  3. const로 선언된 변수는 반드시 선언 시 초기화가 필요합니다.
  4. const로 선언된 변수는 재할당이 불가능합니다. 그러나 객체나 배열을 const로 선언한 경우, 객체 내부의 속성이나 배열의 요소는 변경할 수 있습니다.

※ 호이스팅 :: 변수나 함수의 선언을 해당 스코프의 최상단으로 끌어올리는 행위를 말합니다

  1. 함수 내 신택스 에러 수정하기
    함수 내에서 sum / 2 = answer;의 신택스 에러를 해결하는 방법을 배웠습니다. 변수 할당 시 변수는 항상 왼쪽에 위치해야 한다는 것을 확인했습니다. 따라서 answer = sum / 2;로 수정해야 합니다.

  2. 배열의 평균값 계산하기
    정수 배열의 원소 평균값을 반환하는 solution 함수를 작성하는 방법을 배웠습니다. 배열의 원소를 순회하며 합계를 구하고, 원소의 개수로 나누어 평균값을 계산하는 방식을 확인했습니다.

  3. 배열 순회 시 인덱스 범위 오류
    배열을 순회할 때 i < numbers.length와 i <= numbers.length의 차이를 배웠습니다. i <= numbers.length 사용 시 배열의 범위를 벗어나는 인덱스에 접근하게 되어 오류가 발생한다는 것을 이해했습니다.

  4. .length 속성의 용도
    JavaScript에서 배열의 .length 속성이 배열의 길이, 즉 배열이 담고 있는 원소의 개수를 나타낸다는 것을 배웠습니다. 이를 통해 배열의 모든 원소를 안전하게 순회하고, 배열의 길이를 쉽게 알 수 있습니다.

오늘 생긴 문제

  1. 함수 내에서 잘못된 변수 할당
    sum / 2 = answer;와 같이 잘못된 변수 할당으로 인해 발생한 신택스 에러를 해결해야 했습니다. 적절한 변수 할당 방법을 이해하고, answer = sum / 2;로 코드를 수정하여 문제를 해결했습니다.

  2. 배열 순회 시 인덱스 범위 오류
    배열을 순회할 때 i <= numbers.length를 사용하면 배열의 범위를 벗어나는 인덱스에 접근하는 오류가 발생합니다. 이를 i < numbers.length로 수정함으로써 배열의 모든 원소에 안전하게 접근할 수 있는 방법을 배웠습니다.

profile
블로그 관리 하루에 한번씩 도전!
post-custom-banner

0개의 댓글