14. let, const and a Block-level Scope

1. Problems with Variables declared with the var keyword

ES5까지 변수를 선언할 수 있는 유일한 키워드는 var 하나였다. var 키워드로 선언된 변수는 다른 언어와는 구별되는 특징을 가진다.

13. Problems with Global Variables

1. Life Cycle of a Variable

변수는 선언에 의해 생성되고 할당을 통해 값을 가진다. 생성된 변수는 언젠가는 소멸한다. 변수가 생성되고 소멸되는 주기를 변수의 생명 주기라고 한다.

변수가 생성된다는 것은 메모리 공간을 차지하는 것이고, 소멸됨은 차지하던 메모리가 해제되는 것이다.

조금 더 정확히 말하면 변수가 소멸된다는 것은 등록된 식별자가 소멸한다는 것이다. 이때 식별자와 값의 바인딩이 해제된다. 어떤 지역 스코프가 사라질 때 그 스코프에 등록된 식별자들이 소멸된다.

12. Scope

The scope determines the extent to which the identifier can be referenced. A scope is a data structure that keeps the binding of identifiers and values, and is managed by the JavaScript engine.

11. Function

What is a Function?

수학에서 함수는 input을 받아 output을 내보내는 일련의 과정(series of processes)을 정의한 것이다.

프로그래밍 언어에서 함수는 input을 받아 output을 내보내는 일련의 과정을 문(statement)들로 구현하고 코드 블록으로 감싸서 하나의 실행 단위로 정의한 것이다.

함수의 구성 요소로는,

  • parameter(매개변수) : input을 함수 내부로 전달받는 변수
  • argument(인수) : input
  • return value(반환값) : output

함수는 식별자로 함수명을 사용한다.

함수는 함수를 정의함으로써 생성된다. 생성된 함수를 실행시키기 위해서는 함수를 호출해야한다.

10. Comparing primitive and objects

Difference between primitive type and object type

Primitive Type Object Type
immutable value mutable value
stored as value itself stored as reference value (memory address of an object)
Pass by value Pass by reference

9. Object Literal

What is Object?

JavaScript is an object-based programming language and almost “everything” that makes up JavaScript is an object. The rest of the values (functions, arrays, regular expressions, etc.) are all objects except primitive types.

Object / reference type is a complex data structure that consists of several types of values (primitive type values or other objects) in a single unit.

Primitive value Object
immutable value mutable value
pass by value pass by reference

Object is a set of properties that consist of keys and values.

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×