👓Day 02. 함수와 객체

어제는 기본적인 데이터 타입과, 제어문/반복문을 배웠다면, 오늘은 조금 더 복잡한 데이터와, 조금 더 복잡한 실행 로직에 대한 공부를 해볼 것 같네요

객체 Overview

"객체는 복합된 값입니다. 객체는 여러 가지 값(기본 값이나 다른 객체)를 모아서 이름을 통해 값을 저장하고 가져올 수 있게 합니다. 객체는 프로퍼티의 순서 없는 집합이며 각 프로퍼티에는 이름과 값이 있습니다. 프로퍼티 이름은 보통 문자열이므로 객체가 문자열에 값을 연결한다고 볼 수 도 있습니다. 이렇게 문자열과 값을 연결하는 동작을 표현하는 이름은 다양합니다. 다른 언어에서 기본적인 데이터구조를 '해시', '해시 테이블', '딕셔너리', '연관 배열'같은 이름으로 부르는 데 이미 익숙할 수도 있습니다 .하지만 객체는 단순히 문자열과 값을 연결한 것이 아닙니다. 자바스크립트 객체는 자신만의 프로퍼티를 가지는 것 외에도, '프로토타입'으로 불리는 다른 객체에서 프로퍼티를 상속하기도 합니다. 객체의 메서드는 일반적으로 상속된 프로퍼티이며 이 '프로토타입 상속'이 자바스크립트의 중요한 기능입니다." ... "자바스크립트에서 문자열, 숫자, 심벌, true, false, null, undefined가 아닌 값은 전부 객체입니다. 또한 문자열, 숫자, 불은 객체가 아니지만 불변인 객체처럼 행동할 수도 있습니다." ... "객체는 가변이며 값이 아닌 참조로 조작한다고 설명했습니다. 변수 x가 객체를 참조하고, let y = x라는 코드를 실행한다면, 변수 y는 그 객체의 사본이 아니라 같은 객체를 참조합니다. 변수 y를 통해 객체를 수정하면 그 결과는 변수 x에도 똑같이 적용됩니다." ... "객체를 통해 하는 일은 생성, 검색, 삭제, 테스트, 프로퍼티 열거로 나눌 수 있습니다. 이런 기본적인 동작은 이 장 초반에서 설명합니다." ... "모든 프로퍼티에는 이름과 값 외에도 다음과 같은 세 가지 프로퍼티 속성이 있습니다. (쓰기 가능, 열거 가능, 변경 가능)" 데이비드 플래너건, 한선용, ⌜자바스크립트 완벽 가이드⌟, 프로그래밍 인사이트, 2022, 151~152쪽

🤔 : .... 이게 무슨소리인가 싶죠? 이해가 전혀 가지 않을 것 같습니다. 하지만 걱정마세요 이부분을 이해하는 것은 이 장의 목적이지, 이 장을 시작하는 단계가 아닙니다. 아마 이 모든 내용을 이해하셨다면, 높은 확률로 이번 장은 아예 공부할 필요가 없을거에요. 그래도 객체의 중요한 포인트를 가장 잘 정리했다고 생각해서 가져왔기 때문에, 꼭 한 번 이상 다시 읽어보고 가셨으면 좋겠습니다. 물론 이번 장 역시 기본 문법을 다루는 만큼 기본 문법에 익숙해지는 것에 초점을 맞추셨으면 좋겠습니다.

함수 Overview

"함수는 자바스크립트 프로그램의 기본적인 구성 요소이며 대부분의 프로그래밍 언어에 있는 공통 기능입니다. 함수는 한 번 정의하면 몇 번이고 호출할 수 있는 자바스크립트 코드 블록입니다. 자바스크립트 함수는 매개변수화 됩니다. 함수 정의에는 매개변수라고 불리는 식별자 리스트가 있는데, 이들은 함수 바디에서 로컬 변수처럼 동작합니다. 함수를 호출할 때는 매개변수에 값을 전달하는데 이를 인자라고 합니다. 함수는 보통 인자를 사용해 반환 값을 도출하며, 이 값이 함수 호출 표현식의 값이 됩니다. 매개변수 외에도 각 호출에는 호출 컨텍스트가 존재하며 이것이 this 키워드의 값입니다. 객체 프로퍼티로 할당된 함수를 객체의 메서드라고 부릅니다. 객체를 통해 함수를 호출하면 그 객체가 호출 컨텍스트, 즉 함수의 this 값입니다. 객체를 새로 만들 목적으로 설계한 함수를 생성자라고 부릅니다. " "자바스크립트 함수는 객체이며 프로그램에서 조작할 수 있습니다. 자바스크립트는 함수를 변수에 할당하거나 다른 함수에 전달할 수 있습니다. 함수는 객체이므로 프로퍼티를 정의할 수 있고 함수의 메서드를 호출하는 것도 가능합니다." "자바스크립트 함수는 다른 함수 안에서 정의할 수 있으며, 이렇게 정의된 함수는 자신이 정의된 스코프의 변수에 접근할 수 있습니다. 이런 의미에서 자바스크립트 함수는 클로저 입니다." 데이비드 플래너건, 한선용, ⌜자바스크립트 완벽 가이드⌟, 프로그래밍 인사이트, 2022, 211~212쪽

🤔 : .... 이게 무슨소리인가 싶죠? 22 심지어 여기는 더 심각한 것 같네요.. 자바스크립트에서는 함수가 상대적으로 더 중요합니다(메이저한 언어들 중에서 상대적으로요) 이 역시 지금 알 수 있다기 보단, 이번 주차 끝나고 다시봤을 때 이해가 가는게 목표입니다.

Last updated