04장. 변수

3739 단어 JavaScriptJavaScript

Day1

포스팅방법/학습방법
모던 자바스크립트 딥다이브 책을 보고 정리한 내용입니다.
Day1 학습내용을 1일 뒤/3일 뒤/6일 뒤/13일 뒤에 복습합니다.
(유튜버 토리파님 방법, 1/4/7/14 공부법)
6/17, 6/19, 6/22, 6/29에 복습

  • 검정 텍스트 : 책 1회독 후 주제만 보고 생각나는 내용적기
  • 청록 텍스트 : 복기 시 빠뜨린 내용 보충
  • 빨강 텍스트 : 복기 시 틀린 내용 수정

4.1 변수란 무엇인가? 왜 필요한가?

  • 변수는 값을 저장할 수 있는 메모리 공간 그 자체이며, 변수는 메모리 공간을 찾아갈 수 있는 주소값을 가진다. (또한, 메모리 공간을 식별하기 위해 붙인 이름을 말한다.)
  • 변수가 필요한 이유는 값을 할당하고, 재사용하기 위해서이다. 값을 할당하지 않으면, 값을 참조할 수 없다.
  • 10+20 을 계산한다고 했을 때, 10, 20, 30 은 각각 임의의 메모리 공간에 저장되고, 계산결과를 변수에 할당하여야 값 30 을 참조할 수 있다.
  • 메모리 1셀은 1바이트(8비트)이다. 컴퓨터는 데이터를 2진수로 저장한다.
  • 자바스크립트는 메모리 주소를 가지고 메모리에 직접 접근 불가함.(시스템 에러, 코드 실행 후 임의의 주소값 부여)
  • 변수는 하나의 값을 저장하며, 여러개의 값을 저장할 때는 리스트(array) 등 다른 개체자료구조를 이용한다.

4.2 식별자

  • 변수를 식별자(identifier)라고도 부른다. 다른 개체(변수/함수/객체 등)와 식별할 수 있도록 구분지어 주는 것이다. 고유한 이름을 말함.
  • 식별자는 값이 아니라 메모리 주소를 기억하고 있다.
  • 식별자는 메모리 주소에 붙인 이름.

4.3 변수 선언

  • 값을 저장하는 메모리 공간 확보 / 메모리 공간 주소를 변수이름과 연결
  • var 키워드를 이용하여 변수를 선언한다.
var score; //변수 선언
  • var 키워드가 한계를 가져서(스코프? 함수레벨 스코프, 전역변수 선언), ES6에서는 let, const 가 추가되었다.
  • 변수 선언 시, 값을 할당하지 않으면 undefined 라는 값으로 초기화된다.
  • 선언되지 않은 변수를 참조하면, Reference에러를 일으킨다.

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

  • 변수선언은 1. 선언 / 2. 초기화 과정을 거친다.
  • 자바스크립트는 코드를 한줄 한줄 읽는 인터프리터 방식이다. 그런데, 한줄 한줄 읽기 전에 코드 평가과정을 거친다. 한줄 한줄 순차적으로 실행되는 시점을 런타임이라고 함, 변수 선언은 런타임 이전에 실행.
  • 코드 평가과정을 진행하면서 변수선언문이 있는지 먼저 확인한 후, 변수선언문을 모두 실행한 뒤, 다시 처음부터 코드를 한줄 한줄 실행한다.
  • 이것을 변수 호이스팅이라 한다.
  • 변수 뿐만 아니라 모든 식별자(변수, 함수, 클래스 등)는 호이스팅 됨.
console.log(score); //undefined

var score; //변수선언 먼저 실행됨

4.5 값의 할당

var score = 100;
  • 우항에 있는 값을 좌항의 변수에 할당(대입) 한다.
  • 변수에 값을 따로 할당하지 않아도, 이미 undefined라는 값으로 할당된다.
  • 변수선언과 값의 할당을 한줄로 한다고 하더라도, 변수선언 > 값의 할당 초기화 과정을 알아서 나누어 실행한다.
console.log(score); // undefined

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

console.log(score); // 80

4.6 값의 재할당

var score = 100;

score = 200;
  • 100이 메모리 공간에 저장 > 변수 score에 할당 > 100이 있는 메모리공간 자리를 지우고 200으로 바꾸는 것이 아니라, 다른 임의의 공간에 200을 저장한 뒤, 변수를 재할당

  • 값을 재할당할 수 없어서 변수에 저장된 값을 변경할 수 없다면 변수가 아니라 상수(constant)라 함.

4.7 식별자 네이밍 규칙

  • 변수 이름 정하기 규칙
  • 변수명은 영문, 숫자, _(언더바), $(달러) 표시 사용가능
  • 변수는 숫자로는 시작할 수 없음
  • 예약어는 식별자로 사용할 수 없음
  • 변수명에 한글, 일본어 등도 가능하긴 함
  • 변수명은 의미가 잘 전달되도록 지어야 함
  • 관습이 있음
  • firstName(? 방식, 카멜 케이스) : 변수명, 함수명에 주로 사용
  • first_name(? 방식, 스네이크 케이스)
  • FirstName(? 방식, 파스칼 케이스) : 생성자 함수, 클래스 등에 사용
  • strFirstName(? 방식, 헝가리언 케이스) : 타입을 같이 적는 방식

좋은 웹페이지 즐겨찾기