Meme's IT

[JS] JavaScipt의 변수 본문

FrontEnd/JavaScript

[JS] JavaScipt의 변수

Memez 2023. 10. 24. 09:22

# 변수명 작성 규칙

  • 반드시 문자, 달러($), 밑줄(_)로 시작
  • 대소문자 구문
  • 예약어(for, if, function) 사용 불가
  • 카멜 케이스(camelCase): 변수, 객체, 함수
  • 파스칼 케이스(PascalCase): 클래스, 생성자
  • 대문자 스네이크 케이스(SNAKE_CASE): 상수

 

 


# 변수 선언 키워드

1. let

  • 블록 스코프(block scope)를 갖는 지역 변수를 선언
  • 재할당 가능
  • 재선언 불가능
  • 초기값 없이 선언 가능
let number = 10
number = 20		// 재할당 가능

let num = 10
let num = 20	// 재선언은 불가능

재선언 불가능

 

2. const

  • 블록 스코프를 갖는 지역변수를 선언
  • 재할당, 재선언 둘 다 불가능
  • 초기값 반드시 필요
const number= 10
number = 20		// 재할당 불가능

const num = 10
const num = 20 	// 재선언 불가능

const cnt  // 초기값 없이 안됨

재할당 불가능
초기값 없으면 안됨

 

블록 스코프(block scope)란?

 

그럼 어떤 변수를 써야하나요?

기본적으로는 const 사용 (재할당, 재선언이 있는 코드는 좋은 코드가 아님)

재할당이 필요할 때에만 let 사용

 

 

3. var

  • 옛날에 쓰던 키워드
  • 재할당, 재선언 모두 가능
  • 호이스팅 현상으로 인해 쓰지 않는 것 추천
더보기

# 호이스팅이란?

변수를 선언 이전에 참조할 수 있는 현상

변수 선언 이전에 위치에서 호출시 undefined → 유지보수가 어려움

console.log(name)  // undefined → 선언 이전에 참조

var name = '용복' // 이제 선언
  • 함수 스코프를 가짐(함수 내부 외부만 다르고, 반복문 등은 그냥 다같이 씀)
더보기

# 함수 스코프

함수의 중괄호 내부를 가리킴

function foo() {
	var x = 1
    console.log(x) // 1
}

console.log(x) // ReferenceError
  • 만약에 변수 선언 키워드를 안쓰면 자동으로 var가 붙음

'FrontEnd > JavaScript' 카테고리의 다른 글

[JS] 조건문과 반복문  (0) 2023.10.24
[JS] 연산자  (0) 2023.10.24
[JS] 데이터 타입  (0) 2023.10.24
[JS] JavaScript와 DOM  (0) 2023.10.23
[JS] JavaScript 개요  (0) 2023.10.23