https://www.inflearn.com/course/모던-자바스크립트-딥다이브
인프런에서 강의를 듣고 정리하는 글입니다.
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)}
'Learning Log > JavaScript' 카테고리의 다른 글
[javascript] 모던 자바스크립트 딥다이브 스터디 3강 제어문/타입변환과 단축평가 (0) | 2023.07.23 |
---|---|
[javascript] 모던 자바스크립트 딥다이브 스터디 2강 데이터 타입/연산 (0) | 2023.07.20 |
[javascript] 한 자릿수 날짜 입력 시 두 자리로 만들기 (0) | 2023.06.07 |
[javascript] template literal (0) | 2023.01.15 |
[javascript] 이벤트 버블링, 이벤트 캡쳐, 이벤트 위임 (0) | 2023.01.13 |