모던 자바스크립트 딥다이브(05장)

조아라·2024년 9월 28일
1
post-thumbnail

5-1 값

값은 식(표현식)이 평가되어 생성된 결과를 말한다.

var sum = 10 + 20;
// 변수에는 10 + 20이 평가되어 생성된 숫자 30이 할당된다

5-2 리터럴

리터럴은 사람이 이해할 수 있는 문자 또는 약속된 기호를 사용해 값을 생성하는 표기법.

5-3 표현식

값으로 평가 될 수 있는 문이다. 즉, 표현식이 평가되면 새로운 값을 생성하거나 기존값을 참조함.

var score = 100; // 리터럴 : 100
var score = 50 + 50; // 리터럴과 연산자. 값 100 생성. 표현식.
score; // →100

변수 식별자를 참조하면 변수 값을 평가된다. 
식별자 참조는 값을 생성하지않지만 값으로 평가되므로 표현식이다.
(값으로 평가될 수 있는 문은 모두 표현식이다.)
  • 리터럴 표현식
10
'Hello'
  • 식별자 표현식
sum
person.name
arr[1]
  • 연산자 표현식
10 + 20
sum = 10
sum !== 10
  • 함수/메서드 호출 표현식(선언이 이미 있다고 가정)
square()
person.getName()

표현시근 값으로 평가된다. 이때 표현식과 표현식이 평가된 값은 동등한 관계, 즉 동치다. 1 + 2가 평가되어 값3을 생성한다면 1 + 2와 3은 동치다. 따라서 표현식은 값처럼 사용 될 수 있다.

산술 연산자 +의 좌항과 우하에는 숫자 값이 위치해야 한다.
숫자값으로 평가 될 수 있는 표현식이라면 숫자 값 대신 사용 가능.

var x = 1 + 2;
x + 3;

5-4 문

문은 프로그램을 구성하는 기본단위이자 최소 실행 단위다. 문의 집합으로 이루어진 것이 바로 프로그램이며, 문을 작성하고 순서에 맞게 나열하는 것이 프로그래밍이다. 문은 여러 토큰으로 구성된다. 토큰이란 문법적인 의미를 갖고 문법적으로 더 이상 나눌 수 없는 코드의 기본 요소를 말한다. 문은 명령문이라고 부르며 컴퓨터에 내리는 명령이다. 문이 실행되면 명령이 실행된다.

  • 문의 구분
  1. 변수 선언문
var x;
  1. 할당문
x = 5;
  1. 함수 선언문
function foo() {}
  1. 조건문
if (x > 1) { console.log(x) };
  1. 반복문
for (var i = 0; i < 2; i++) { console.log(i); }

5-5 세미콜론과 세미콜론 자동 삽입 기능

세미콜론은 문의 종료를 말한다. 세미콜론으로 문이 종료한 위치를 파악하고 순차적으로 하나씩 문을 실행한다. 0개 이상의 문을 중괄호로 묶은 코드 블록({ ... }) 뒤에는 세미 콜론을 붙이지 않는다. 예를 들어 if문, for문, 함수 등의 코드 블록 뒤에는 세미 콜론을 붙이지 않는다.

function foo() {
  return
  {}
  // ASI의 동작 결과 : return; {};
  // 개발자의 예측 : return {};
}

console.log(foo()); // undefined

var bar = function () {}
(function() {}) ();
// ASI의 동작 결과 : var bar = function () {}(function() {})();
// 개발자의 예측 : var bar = function () {}; (function() {} ();
// TypeError: ... is not a function

5-6 표현식인 문과 표현식이 아닌 문

var x; // 변수 선언문은 값으로 평가 될 수 없음. 표현식 아님.

x = 1 + 2;
// 1, 2, 1 + 2, x = 1 + 2 모두 표현식. 완전한 문.

표현식인 문과 표현식이 아닌 문을 구별하는 가장 간단한 방법은 변수에 할당해 보는 것이다.

var foo = var x; // SyntaxErro: Unexpected token var
var x; // 변수 선언문은 표현식이 아닌 문
x = 100; // 할당문은 표현식. 완전한 문

var foo = x = 100;
console.log(foo); //100
profile
끄적 끄적 배운 걸 적습니다 / FRONT-END STUDY VELOG

0개의 댓글