WEB/JavaScript

[JavaScript][syntax] 변수

bay07 2024. 4. 17. 09:28

▶ JavaScript 문법 학습 

ECMAScript 2015 (ES6) 이후의 명제를 따른다 

* 권장 스타일 가이드

https://standardjs.com/rules-kokr.html

 

▶ 변수 선언 키워드 

식별자(변수명) 작성 규칙

반드시 문자, 달러('$') 또는 밑줄 ('_')로 시작

대소문자를 구분한다

for, if, function 등 예약어 사용 불가 

 

▶ 식별자(변수명) Naming case

캐멀 케이스 (camelCase) 케밥식 (Kebab-Case)
변수, 객체, 함수에 사용됨  
첫 단어는 소문자이고, 두번째 단어부터 대문자 
pinkBeautifulFlower
모든 단어가 소문자로 시작
단어와 단어 사이는 "-"로 연결된다
pink-beautiful-flower
파스칼 케이스 (PascalCase) 대문자 스네이크 케이스 (SNAKE_CASE)
클래스, 생성자에 사용됨 상수에 사용됨
모든 단어가 대문자로 시작
PinkBeautifulFlower
모든 단어가 소문자로 시작
각 단어가 "_"로 연결된다 
pink_beautiful_flower

 

변수 선언 키워드

let ★ 블록 스코프 (block scope)를 갖는 지역변수를 선언한다 
재할당 O
초기값이 없어도 됨. (초기값이 없으면 그냥 undefined가 출력된다)

재선언 X (불가능)
const ★ ★ ★ 블록 스코프(block scope)를 갖는 지역변수를 선언한다 
초기값이 반드시 있어야한다
재할당 X (불가능)
재선언 X (불가능)
var
(옛날 꺼)
ES6 이전에 사용했던 키워드이다 
재할당 O, 재선언 O
함수 스코프 (function scope)를 가진다 
"호이스팅"되는 특성으로 인해 예기치 못한 문제가 발생할 수 있다. 
(따라서 ES6 이후부터는 var 대신 const와 let을 사용하는 것을 권장한다)
변수 선언 시 var, const, let 중 아무것도 안쓰면 자동으로 var로 선언된다.

 

* 블록 스코프 (block scope)

if, for, 함수 등의 중괄호 {} 내부를 가리킨다 

블록 스코프를 가지는 변수는, 블록 바깥에서 접근할 수 없다. 


Q. 어떤 변수 선언 키워드를 사용해야할까?

기본적으로 const 사용을 권장한다

재할당이 필요하다면 그때 let으로 변경해서 사용한다.