
변수는 메모리에 값을 저장하는 공간을 의미. 변수를 선언할 때는 var, let, 또는 const 키워드를 사용.
var는 함수 스코프를 가지며, let과 const는 블록 스코프를 가진다.
변수를 선언할 때는 변수명을 지정해야 하며, 변수명은 일반적으로 카멜 케이스(camelCase) 규칙을 따른다.
위의 예시에서 age와 name은 변수이다.
age는 숫자 값 25를 저장하고, name은 문자열 값 "John"을 저장.
변수는 선언 이후에 값을 변경할 수 있다.
이제 age는 26, name은 "Jane"으로 변경.
상수는 변수와 마찬가지로 값을 저장하지만, 한 번 할당된 값을 변경할 수 없다는 점에서 차이가 있다.
상수를 선언할 때는 const 키워드를 사용하며, 선언과 동시에 값을 할당해야 한다.
상수명은 일반적으로 대문자와 언더스코어를 사용하는 스네이크 케이스(SNAKE_CASE) 규칙을 따른다.
위의 예시에서 PI와 API_URL은 상수. 상수는 값을 재할당할 수 없으므로 아래와 같은 코드는 에러를 발생.
상수는 변하지 않는 값을 저장할 때 유용하게 사용.
예를 들어, 수학적 상수, API 엔드포인트 URL, 설정 값 등을 상수로 선언하여 코드의 가독성과 유지보수성을 높일 수 있다.
변수와 상수는 자바스크립트 프로그래밍에서 매우 중요한 역할.
변수는 값을 저장하고 필요에 따라 변경할 수 있는 유연성을 제공하는 반면, 상수는 값을 한 번 할당하면 변경할 수 없는 불변성을 보장.
적절한 변수와 상수의 사용은 코드의 가독성, 유지보수성, 그리고 안정성을 향상시키는 데 도움을 준다.
자바스크립트에서 변수의 스코프는 변수가 선언된 위치에 따라 결정.
var 키워드로 선언된 변수는 함수 스코프를 가지며, 함수 내에서 선언된 변수는 함수 내에서만 접근할 수 있다.
반면에 let과 const 키워드로 선언된 변수는 블록 스코프를 가지므로, 블록({}) 내에서만 접근할 수 있다.
또한, 자바스크립트에서는 호이스팅(Hoisting)이라는 개념이 있다.
호이스팅은 변수와 함수의 선언이 해당 스코프의 맨 위로 끌어올려지는 것을 의미.
단, var 키워드로 선언된 변수는 호이스팅 시 undefined 값으로 초기화되지만, let과 const 키워드로 선언된 변수는 호이스팅 시 초기화되지 않고 일시적 사각지대(Temporal Dead Zone)에 놓이게 된다.
자바스크립트에서 변수는 값이 할당되는 방식에 따라 메모리에 저장된다.
원시 타입(숫자, 문자열, 불리언, null, undefined)의 값은 변수에 직접 저장되는 반면, 객체와 배열과 같은 참조 타입의 값은 힙(Heap) 메모리에 저장되고 변수에는 해당 메모리의 주소가 저장된다.
위의 예시에서 num과 str은 각각 숫자 값 10과 문자열 값 "Hello"를 직접 저장합니다. 반면에 obj와 arr은 각각 객체와 배열이 저장된 힙 메모리의 주소를 저장.
상수는 변하지 않는 값을 저장할 때 유용할 뿐만 아니라, 코드의 의도를 명확하게 전달하는 데에도 도움을 준다.
상수로 선언된 값은 변경되지 않을 것이라는 것을 개발자에게 명시적으로 알려주므로, 코드의 가독성과 유지보수성을 높일 수 있다.
또한, 상수를 사용하면 실수로 인한 값의 변경을 방지할 수 있다.
예를 들어, 특정 값을 여러 곳에서 사용할 때 상수로 선언하면 실수로 값을 변경하는 일을 막을 수 있다.
위의 예시에서 MAX_SIZE 상수는 최대 크기를 나타내며, 여러 곳에서 사용될 수 있다.
상수를 사용하면 코드의 의도가 명확해지고, 실수로 인한 값의 변경을 방지할 수 있다.
이와 같이 변수와 상수는 자바스크립트 프로그래밍에서 중요한 역할을 하며, 스코프, 호이스팅, 메모리 할당 등의 개념과 함께 이해하는 것이 중요하다.
또한, 상수를 적절히 사용하면 코드의 가독성, 유지보수성, 그리고 안정성을 향상시키는 데 도움이 된다.