[CS, Javascript] JS의 변수

insung·2024년 7월 1일

변수 (variable)

  • 값을 저장하는 저장소
  • 저장소와 저장소를 가르키는 식별자인 이름으로 구성된 형태

자바스크립트에서의 변수 종류

var : ES6이전까지 사용

let : ES6에서 새롭게 추가됨, 변수를 계속 변경 가능, 블록스코프 내에서만 유효

const : ES6에서 새롭게 추가됨, 변수를 한번 정의하면 변경할 수 없음, 블록스코프 내에서만 유효

변수 이해하기

  • 유효 범위
    • 전역 변수
      • 함수의 외부에서 선언된 변수, 해당 웹페이지의 어디서든 참조 가능
    • 지역 변수
      • 함수의 내부에서 선언된 변수, 함수 내부에서만 변수를 참조할 수 있음

      • ES6에서 const, let이 추가되면서 지역 스코프가 함수 스코프와 블록스코프로 세분화됨
        - 블록 스코프
        - 함수의 중괄호 {} 내부의 영역을 유효 범위로 함
        - 함수 스코프
        - if else문, for문, while문 등 중괄호 내부의 영역을 유효 범위로 함

        var number = 1 // 전역 스코프
        function test() {
        	// {} 내부에 있는 변수들은 지역 스코프 임
        	const msg = "hello"; // 지역 스코프 중 함수 스코프
        	
        	for (let i =0; i<5; i++) // 블록 스코프 
        	 {
        		console.log('hello')
        	}
        }
  • 값의 변화
    • 정적 변수
      • 보통 상수 형태를 띄며 한번 선언되면 이후 값이 잘 변경되지 않음
    • 동적 변수
      • 함수나 계산등에 따라 값의 변경이 가능한 변수 형태
  • 값의 개수
    • 스칼라 변수
      • 하나의 값만 가지는 변수
    • 오브젝트 변수
      • 배열 등 하나의 변수명에 대응하는 값이 여러개인 변수

변수 활용하기

  • var는 중복 선언과 스코프의 모호성 같은 문제가 있기 때문에 사용을 자제하는 것이 좋다
    • let, const가 추가된 이유임
  • var를 쓰지 않는 이유
    • 변수 호이스팅
      • var로 선언된 변수는 함수 혹은 전역스코프의 맨 위로 호이스팅 됨
      • 변수 선언 이전에 접근이 가능하다는 문제
    • 블록 스코프의 미지원
      • var는 함수 스코프를 가지며 블록스코프는 지원하지 않음
    • 재선언 허용
      • var로 선언된 변수는 다시 선언해도 에러가 발생되지 않음

변수만들기 규칙

  1. 문자, 숫자, _ , $로 구성
  2. 숫자로 시작할 수 없다
  3. 대소문자를 구별
  4. 예약어는 사용 금지
profile
안녕하세요 프론트엔드 관련 포스팅을 주로 하고 있습니다

0개의 댓글