회고/Techit Frontend School 10기

[멋쟁이 사자처럼 프론트엔드 스쿨] 25일차 TIL - 변수, var, 명명, 전역 객체, strict mode, 호이스팅

kelly09 2024. 5. 30. 00:43

🍰 자바스크립트 이틀 차 진도!

🍴 변수

: 데이터 저장할 때 쓰는 '이름이 붙은 저장소'

  • 선언과 할당 구분
  • 나눠서 쓰는 일은 잘 없음
  • var, let, const

🍴 const

: 변수를 상수로 선언, 변수에 할당된 값이 변경될 수 없음

🍴 명명 규칙

  1. 변수 명에는 문자, 숫자, $, _만 가능
  2. 첫 글자는 숫자 사용 불가
  3. 카멜 표기법을 흔히 사용

🍴 엄격 모드

  • ES5에 추가됨
  • 코드 실행을 엄격하게 제한해서 잠재적인 오류 발생시키기 어려운 개발 환경 만들기 위해
  • ES6에 도입된 클래스모듈은 기본적으로 strict mode 적용됨
  • "use strict";를 코드 맨 위 혹은 함수 맨 위에 추가하여 활성화

🍴 전역 객체

: 가장 최상위의 객체. 어디서나 사용 가능한 변수/함수 만들 수 있음

자바스크립트가 실행되는 환경에 따라 다름

  • 브라우저 환경 - window
  • Node.js 환경 - global
  • 기본 프로퍼티와 메서드 제공(Math, Date, parseInt 등)
  • 이전 버전과의 호환성으로 인해 JS가 제거할 수 없는 실수로 간주됨
  • 성능에 부정적인 영향
  • 문제 발생 소지 있기 때문에 사용 지양

🍴 legacy var

  • var는 블록 스코프가 없음. 
  • 변수의 중복 선언 허용.
  • 선언하기 전에 사용 가능.

🍴 호이스팅(hoisting)

: 변수가 끌어올려 지는 현상

  • 선언은 호이스팅 되지만 할당은 호이스팅 되지 않음

🍴 스코프 체이닝(Scope Chaining)

: 자바스크립트에서 변수 검색 시 사용되는 메커니즘 설명하는 개념

  • 특정 변수를 찾기 위해 중첩된 함수 스코프를 따라 올라가며 검색 수행하는 방식