개발/Javascript

Javascript 변수, 상수 (공부_6)

kobeay 2024. 7. 31. 00:04

이번 시간에는 자바스크립트의 변수, 상수 선언 방법과 ES6 이전, 이후 문법에 대해 간단하게 공부를 했다.

그리고 스코프, 식별자 이름, 네이밍 규칙, 호이스팅, Strcit Mode에 대해 공부했다.

 

 

변수

  • let 이라는 예약어 (또는 키워드)로 변수 선언
  • 예약어 : 프로그래밍 문법으로 사용하고 있는 키워드
  • let 키워드는 ES6에서 나왔고 ES6 이전에는 var 키워드만 사용
let teacher = '코비';
console.log(teacher);
teacher = '홍길동';
console.log(teacher);
// 변수값을 변경할 수 있고 똑같은 이름의 변수 선언 불가능

 

 

 

 

상수

  • const를 사용하여 상수 선언
  • 한 번 할당한 값을 바꿀 수 없음
  • let 키워드와 똑같이 ES6에 새로 생김
const username = '홍길동';
console.log(username);

 

※ 팁 ※

---> 자바스크립트 프로그래밍시 성능에서 이점을 얻기 위해 let보다는 const를 사용하면 좋음

(단, 값이 바뀔 수 있는 경우에는 let 쓸 것!)

 

 

 

 

ES

  • ECMAScript의 약자
  • 브라우저에서 동작하는 자바스크립트라는 언어를 만들 때 변수는 어떻게 선언하고 함수는 어떻게 선언하는지 브라우저에서 동작하는 자바스크립트 문법을 표준화하기 위해 만들어짐
  • ES6 이전에는 var 키워드를 사용했고 이후에는 let, const를 사용함

 

 

 

스코프 (Scope)

  • 변수나 함수를 사용할 수 있는 영역

 

 

전역 스코프

  • 자바스크립트 최상단에 선언한 변수의 영역
  • 전역 스코프에 선언된 변수를 전역 변수라고 함
// 전역 스코프
let name = '홍길동';	// 전역 변수
let age = 45;	// 전역 변수

function printPerson() {
	console.log('name: ${name}, age: ${age}');
}

 

 

블록 스코프

  • 블록 {} 으로 묶인 영역
  • 블록 안에 선언된 변수는 블록 안에서만 접근 가능
{
  let a = '변수';
  console.log(a);
  {
    // 블록 안에 블록을 쓸 수 있음
    let c = 'c변수';
    let a = '변수2'; // 블록 안에서 다른 변수값으로 변경 가능
    console.log(c);
    console.log(a);
  }
}

 

 

 

식별자 이름

  • 변수와 상수,  함수 이름을 식별자라고 부름
  • 식별자는 반드시 글자나 달러 기호($), 밑줄(_)로 시작
  • 예약어 사용 불가능
let 2number = 2;	// X - 식별자 맨 앞에 숫자가 올 수 없음
let $number = 2;	// O
let _number = 2;	// O
let number2 = 2;	// O

 

★ 중요

---> 식별자 이름을 지을 때 의미 있는 이름을 명사로 짓기!!

 

 

 

 

네이밍 규칙

  • 카멜 케이스 (Camel Case)
    currentTempC, anldentifierName 등과 같이 중간중간 대문자가 있는 형식, 낙타의 혹처럼 보이는 것
  • 스네이크 케이스 (Snake Case)
    current_temp_c, an_identifier_name 등과 같은 것, 카멜 케이스보다 조금 덜 쓰임
  • 케밥 케이스 (Kebab Case)
    current-temp-c, an-identifier-name
  • 파스칼 케이스 (Pascal Case)
    CurrentTempC, AnIdentifierName

 

 

 

호이스팅 (hoisting)

  • 브라우저에서 자바스크립트 코드가 실행되기 전에 변수나 함수의 선언이 파일의 최상단으로 끌어 올려짐
  • var, function을 쓸 경우 호이스팅 발생
console.log(sum(1, 2));
function sum(num1, num2) {
  return num1 + num2;
}
// 호이스팅에 의해 값이 3이 출력 됨

 

 

 

Strict Mode

  • 암시적 전역 변수와 묵인했던 여러 가지 이상한 문법을 허용하지 않음
'use strict'; // strict를 사용해서 이상한 문법을 막음
number = 2; // 자바스크립트에서는 이렇게 선언하고 쓸 수 있음 (= 잘못된 방법)
console.log(nubmer);

 

 

 

정리

  • 변수를 선언할 때 let 키워드 사용
  • 상수를 선언할 때 const 키워드 사용
  • 변수나 함수를 쓸 수 있는 영역을 스코프라 하고 전역 스코프, 블록 스코프 두 가지가 있음
  • var, function을 쓸 경우 호이스팅이 발생됨
  • Strict Mode를 사용해서 이상한 문법을 막을 수 있음