TIL 32 / 33일차 : JS_기본 문법 복습

minjun kim·2024년 11월 4일
0

01. 변수 선언 매커니즘

1-1. 왜 변수가 필요할까?

📟 데이터 저장 및 관리의 필요성 !!

변수 는 프로그래밍에서 데이터를 저장하고,
그 값을 쉽게 관리하고 재사용할 수 있도록 해줍니다.

사용자로부터 받은 입력을 처리 or 계산 결과를 다시 사용

이런 상황에 변수 없이는 각 단계마다 데이터를 반복적으로 처리해야 한다.
효율적인 데이터 관리를 위해선 변수 선언 메커니즘은 필수라 볼 수 있다.

let number = 50; // 사용자 수를 저장
number = number + 5; // 새로운 사용자 추가
// number += 5;
console.log("총 합계는: " + number); // 출력: 총 합계는: 55

📟 프로그램의 복잡성 관리

변수가 없다면 직접 값을 기입 하게 되었을 때,
코드의 복잡성 이 증가하고, 오류 가능성이 높아진다.

그리고 프로그램의 확장성유지보수성 이 떨어질 수 있다.
변수를 사용하는 이유를 정리하면

코드의 가독성이 높아지고, 수정이 필요할 때 적은 변경으로 원하는 결과를 얻는다.
결국 변수를 지정해 한번만 바꿔도 여러가지를 바꿀 수 있는
효율 있는 작업을 위해 변수의 지정은 매우 중요하다.

📟 재사용성 및 유지보수 향상

변수를 통해 정의된 데이터 값을 여러 위치에서 재사용하는 것
이것이 코드의 재사용성 을 높일 수 있다.

한 함수에서 계산한 결과를 다른 함수에도 활용이 가능하다!
특히 큰 프로그램이나 복잡한 시스템에 큰 이점이 될 수 있다

아래 예시 코드를 보면

let price = 10000;
let tax = 0.1;
let totalPrice = price + (price * tax); // 세금 계산
console.log(`${totalPrice}`) // 총 가격 콘솔

이런식으로 프로그램의 유연성 효율성 확장성 들을
동시에 증진시킬 수 있기에

데이터의 중요성과 처리 과정에서 변수의 역할은 필수적이라 할 수 있다.

2. 변수의 종류와 변수를 분류하는 기준

constlet 이 존재한다.

2-1. const 상수 선언의 중요성

const 를 사용하여 상수를 선언하게 되면
값이 변경되지 않는 변수 를 명확하게 표현할 수 있다.

코드의 안정성 을 높이고, 값이 변경되었을 때 발생하는 버그를 예방 할 수 있다.
그래서 초기에 변수를 지정할 때 const 로 스타트하는 것도 도움이 된다.

const noneChange = 100;
// noneChange = 150; // TypeError : Assignment to constant variable.

2-2. 블록스코프와 안전한 프로그래밍

const블록 스코프를 가지기 때문에
선언된 블록 내에서만 유효 합니다.

스코프를 이해해야 하는 이유는?
예측 가능한 코드를 작성하는데 큰 도움이 된다.

if (true) {
	const study = 'react';
  	console.log(study); // 'study'
}

console.log(study); // ReferenceError: temp is not defined

2-3. let 변수의 유연한 관리

위에서 const 가 존재했고, 이번엔 let 이라는 변수이다.

let 을 사용하면 변수의 값을 필요에 따라 유연하게 변경할 수 있다.
계산이나 조건에 따라 변할 수 있는 값을 사용해야 하는 순간 적합하다.

예시로 const 로 아래 계산이 작성되었다면
할당 된 값은 절대 바꿀 수 없다.

let goal = 5;
goal += 2;
console.log(goal); // 7

2-4. 블록 스코프의 이점

let 또한 블록 스코프를 따르는데,
이는 변수를 블록 내에서만 사용하다록 하면서 외부에서의 접근제한하고,

변수의 충돌을 방지하여 프로그램의 안전성을 높일 수 있다.
우리가 알고 있는 for 문에서도 let을 자주 볼 수 있는데,

사실은 블록 스코프로서 let을 사용한 예시라고 이해하면 좋다.

for (let i = 0; i < 10; i++) {
	console.log(i); // 0 ~ 9
}

// console.log(i); // ReferenceError: i is not defined

2-5. const 와 let?

둘 중 무엇으로 선언해야 한다면 익숙한 let 을 떠오르기 쉽상이다.
그러나 const 는 재할당이 불가하기 때문에

오히려 개발을 처음 시작하고 있다면 const 로 변수를 선언해
어느 부분에서 재할당이 필요한지 눈으로 볼 필요가 있다.

그러고 나서 재할당이 정말 필요하면 let 으로 변경해주면 된다.

3. var의 사용이 위험한 이유

var 가 왜 위험한지 선언 방식을 알아보자

3-1. 함수 스코프를 가지는 var

var 는 함수 스코프를 가지며, 함수 내부 어디에서든지 접근 할 수 있다.
이러한 특징 때문에 예상치 못한 상황이 발생할 수 있는데,

바로 예상치 못한 범위에서 변수가 접근 가능하게 되어 문제를 일으킨다.
그래서 var 를 사용할 순간이 생긴다면 신중해야 한다...

또한 var 는 선언 전에도 참조할 수 있는 호이스팅 현상 때문에
코드를 더더욱 혼란스럽게 만들 수 있다.

console.log(myVar); // undefined, not ReferenceError
var myVar = 10; // 에러가 아닌 undefined가 나오는 모습이다..

3-2. var를 사용하면 안되는 이유

위에서 말한 것처럼 var 는 예상치 못한 범위에서 사용될 수 있어
프로그램에서 버그를 초래할 가능성이 아주아주 높다.

블록 스코프를 가지는 let const 를 사용해 이러한 문제를 해결해
더 안전한 코드 작성과 혼란스럽지 않은 코드를 쓸 수 있다.

아래 예시를 살펴보자

if (true) {
	var whyIsItPossible = "Is it real?";
}

console.log(whyIsItPossible); // "Is it real?";

또한 코드의 가독성유지보수성 저하시키는데

var 를 사용하면서 호이스팅 함수 스코프 특성은
코드의 가독성 을 떨어뜨리고, 유지보수를 어렵게 한다.

현대적인 자바스크립트 개발에서는
let const 를 사용해 변수의 범위와 재할당 가능성을 명확히 구분하는 것이 권장된다.

참고로 const let 도 호이스팅은 된다!

var 처럼 초기값을 undefined로 미리 할당하지 않는 점에서
이미 가독성과 유지보수 측면에서 훨씬 도움이 된다.

논리적인 흐름에서 벗어나지 않는 const let 사용을 한번 더 인지하자.

0개의 댓글

관련 채용 정보