Learning Log/JavaScript

[javascript] 모던 자바스크립트 딥다이브 스터디 1강 변수/표현식과 문

자척개 2023. 7. 18. 17:38
반응형

 

https://www.inflearn.com/course/모던-자바스크립트-딥다이브

 

[무료] 모던 자바스크립트 딥다이브 스터디 - 인프런 | 강의

《모던 자바스크립트 딥다이브》 책 내용을 그대로 따라가는 스터디 영상입니다. 함께 공부하면 훨씬 쉬워질 거에요!, 혼자가 외롭다면 시간차 스터디는 어때요?함께하는 모던 자바스크립트 스

www.inflearn.com

인프런에서 강의를 듣고 정리하는 글입니다.

 

1강 변수 / 표현식과 문

1. 변수

* 변수

- 변수는 하나의 값을 저장하기 위한 수단

- 객체나 배열 같은 자료구조를 사용하면 여러 개의 하나로 그룹화해서 하나의 값처럼 사용할 수 있다

 

* 변수 선언

- var을 이용해 변수 선언을 하면 값을 할당하지 않아도 undefined가 기본 값이 된다

- 변수 선언을 하지 않고 변수에 접근하려하면 참조 에러가 발생한다

var score;		// 변수 선언

 

* 변수 선언문

console.log(score);		// undefined
var score;				// 변수 선언문

실행 컨텍스트

호이스팅 : console.log로 score을 출력했을 때 참조 에러가 뜨지 않는 건 위에서 score을 한번 선언했기 때문에 호이스팅이 일어나서 undefined로 결과가 출력된다 => 변수 선언문이 코드의 선두로 끌어올려진 것처럼 동작

 

* 변수 선언과 값의 할당

- 할당 연산자(=)를 사용한다

- 주의!! 변수 선언은 런타임 이전, 값의 할당은 런타임에 실행된다

var score = 80;

// 참고
var score;
console.log(score);		// undefined
score = 80;
var score;
console.log(score);		// 80

// 80이라는 값을 할당 후 변수 선언을 다시하고 난 후에 console을 찍어보면 undefined가 나온다고 생각할 수 있으나, 
// 호이스팅으로 인해 두 번째 선언한 score이 위로 끌어올려져 값을 할당한 이후에 score에 영향을 주지 않음

 

* 변수명 선언

- '-', 예약어, 첫 글자를 숫자로 변수명에 사용할 수 없다

- 소문자, 대문자가 구분된다

 

* 네이밍 컨벤션

- camelCase => firstName

- snake_case => first_name

- PascalCase => FirstName


2. 표현식과 문

* 값 = 식이 평가되어 생성된 결과

 

* literal : 문자로 값을 생성하는 표기법

- 정수 리터럴, 문자 리터럴, 객체 리터럴 등이 있다

ex. 숫자 3 => 컴퓨터에 의해 11로 이해되어 값으로 저장

 

* 표현식

- 값으로 평가될 수 있는 문은 표현식이다 => 표현식은 값처럼 사용 가능

- 함수는 기본적으로 undefined를 반환하기 때문에 표현식

 

* 문

- 문은 선언문, 할당문, 반복문, 조건문 등을 말한다

- 표현식과 달리 값으로 평가되는 것이 아니다

- 문 중에 표현식이 되는 것이 있고 아닌 것이 있다

   - 변수 선언문은 표현식이 아닌 문이다

   - 할당문은 그 자체가 표현식이기도 하다 => 약간 애매함,,,

   - 표현식이 아닌 문은 값처럼 사용할 수 없다

// 변수 선언문
var x;

// 표현식 문(할당문)
x=5;

// 함수 선언문이자 표현식
function foo () {}

// 조건문
if(x>1) {console.log(x);}

// 반복문
for(let i=0; i<2; i++) {console.log(i)}

 

반응형