변수는 메모리의 위치값을 저장하는 값입니다.
하나의 값을 저장하기 위해 확보한 메모리 공간 자체 또는 그 메모리 공간을 식별하기 위해 붙인 이름 이 변수입니다.
근데 자스에서는 이 메모리에 직접 접근 할 수 없어요.
그러니 이 변수를 통해서 대신 접근하는 거죠.
식별할 수 있는 고유 이름을 변수 이름 혹은 변수명 (보통 변수명이라 하지 않나)
저장된 값을 변수 값 이라 합니다.
값을 저장하는 것을 할당 (대입,저장) 값을 읽는 것을 참조
코드는 컴퓨터에게 내리는 명령이지만,
개발자를 위한 문서이기도 하다...
개발자의 의도를 나타내는 명확한 네이밍은 코드를 이해하기 쉽게 만들며, 이는 협업과 품질 향상에 도움을 준다. 변수 이름은 첫 아이 이름을 짓듯이 심사숙고해서 지어야 한다.
LLM아 해줘
변수명을 식별자라고도 한답니다.
식별자는 변수에만 국한되지 않습니다.
변수,함수,클랙스 등의 이름은 모두 식별자입니다.
즉 메모리 상에 존재하는 어떤 값을 식별할 수 있는 이름은 모두 식별자입니다.
변수 선언은 변수를 만드는거죠.
var,let,const 등 변수를 선언할 때 쓰는 키워드가 있습니다.
var 말고는 없었는데 ES6에서 생겼대요.
var의 치명적인 단점을 해결한게 let이고, const는 상수다.
까지만 압니다.
근데 자스는 좀 특이한 성질이 있는데요,
var 키워드로 변수 선언을 할 때 undifined라는 값으로 암묵적으로 할당되어 초기화 됩니다.
싱기하져? 그래서 쓰레기값이 안 나와요 ㄷㄷ
그 유명한 호이스팅.
자스에서 변수 선언은 소스코드가 한 줄씩 순차적으로 실행되는 시점, 즉 런타임이 아니라 그 이전 단계에서 먼저 실행됩니다링.
모든 선언문에 해당합니다. 모든
그럼 궁금증이 하나 들 것 같은데,
var score=50;
이런건 어떻게 할까요?
변수의 선언은 런타임전이니까 score라는 변수의 값은 50을 가지고 런타임에 들어갈까요?
정답은 때앵~~~
값의 선언만 런타임 이전에 이루어지고 값의 할당은 그 이후 런타임에 이루어집니다.
그리고 이게 좀 웃긴건데,
처음에 var 키워드로 값을 선언하면 undifined로 초기화 된다 했잖아요?
그럼 그 값에 다른 값을 넣으면
그 변수가 참조하는 메모리 주소에 다시 새로운 값을 넣을까요?
아니래요 ㅠ ㅠ;;
다른 위치에 값을 할당하고 그 주소를 변수가 참조하게 된답니다...
왜이렇게 했을까용? 궁금하네요.
상수는 한 번만 할당할 수 있는 변수입니다.
당연하져?
식별자는 다음과 같은 네이밍 규칙을 준수해야 합니다.
예약어는 따로 적진 않을게욥
그리고 카멜 케이스, 스네이크 케이스, 파스칼 케이스, 헝가리언 케이스
이 4개가 자주 쓰입니다.

보통은 변수나 함수의 이름에는 카멜 케이스
생성자 함수, 클래스 이름에는 파스칼 케이스를 쓴다네요.
근데 요즘은... 모르겠다... 걍 조직 마음인듯