모던 자바 스크립트 DeepDive(1)

samuel Jo·2022년 7월 7일
0

딥다이브

목록 보기
1/34

chapter4

변수

4-1) 변수란??

컴퓨터는 cpu에서 연산을 하고, 메모리에 저장

메모리는 데이터를 저장할 수 있는 메모리 셀의 집합체

변수

하나의 값을 저장하기위해 확보한 메모리 공간 자체 또는 (메모리) 공간을 식별하기 위한 이름
수학에서의 변수는 변경 가능한 수라고 칭하지만 이 공간에 저장된 값은 '변경'될 수 있기때문에 수학적 정의와 상통하는 면이 있음
var 점수;
점수=IH;
//var 점수=IH;
var score;
score=IH;
//var score=IH;

위 두줄 코드와 밑에 코드는 동일하다.

점수와 score는 각각 undefined라는값이 암묵적 할당되어 초기화된다.

변수를 선언할때 선언과 초기화를 거친다.

변수선언의 실행시점과 변수 호이스팅

위사진을 보면 console.log(score)를 먼저 작성한뒤 var score;로 변수를 선언해줬는데 일반적으로 생각해보면 score가 선언되기전에 변수를 참조하는 코드가 있다면 , 참조에러(ReferrenceError)가 나와야 할 것 같지만, 소스코드가 런타임 이전단계에 변수선언이 실행된다 이게 변수 호이스팅이라 불리운다. (자바스크립트 고유 특징.)

고로 다시써보자면

var score;
console.log(score);

이렇게 실행 된다는 점이다.

23장2절에 소스코드의 평가와 실행(p.362)참고

위에서도 작성했듯

var score=80; //변수의 선언과 값의 할당을 동시에 해준다.
4-10예제

console.log(score) // undefined

score=80; //값의 할당
var score; //값의 선언 

console.log(score);// 무엇이 나올지 유추해보자.

4-6) 값의 재할당

var score=80; // 변수 선언과 값의 할당
score = 90; // 값의 재할당 

var 키워드는 값을 무제한 재할당이 가능하다.

let 키워드로는 변수 중복 선언이 불가하지만, 재할당은 가능하다.

const도 let과 마찬가지로 재선언이 불가하며, 더 나아가 재할당도 불가하다. 재할당의 경우, 원시 값은 불가능하지만, 객체는 가능하다. const 키워드는 재할당을 금지할 뿐, ‘불변’을 의미하지 않는다.


추가적으로 선언과 할당을 동시에 해줘야한다.

var,let,const는 뒤에나오는 15장 참조(p.208)

4-7) 식별자 네이밍 규칙

출처 https://www.w3bai.com/ko/js/js_reserved.html#gsc.tab=0

예약어로는 식별자로 사용불가.

profile
step by step

0개의 댓글