자바스크립트 10

모던 자바스크립트 Deep Dive 10장 객체 리터럴

스터디를 진행하면서 책을 읽고 내용과 떠오르는 생각, 용어들을 정리하고 있습니다. 문제 되는 부분이나 틀린 부분이 있다면 편하게 말씀해 주세요. 10장 객체 리터럴 10.1 객체란? 자바스크립트는 객체(object) 기반의 프로그래밍 언어이며, 원시 값을 제외한 자바스크립트를 구성하는 거의 모든 것 (함수, 배열, 정규 표현식 등) 이 객체다. 객체 타입은 다양한 타입의 값을 하나의 단위로 구성한 복합적인 자료구조(data structure)다. 원시 값은 변경 불가능한 값(immutable value)이지만 객체 타입의 값은 변경 가능(mutable value)하다. 객체는 0개 이상의 프로퍼티로 구성된 집합이며, 프로퍼티는 키와 값으로 구성된다. 이는 콜론( : )으로 구분한다. var human =..

모던 자바스크립트 Deep Dive 9장 타입 변환과 단축 평가

스터디를 진행하면서 책을 읽고 내용과 떠오르는 생각, 용어들을 정리하고 있습니다. 문제 되는 부분이나 틀린 부분이 있다면 편하게 말씀해 주세요. 9장 타입 변환과 단축 평가 9.1.1 타입 변환이란? 자바스크립트의 모든 값은 타입이 있다. 개발자가 의도적으로 타입을 변환하는 것을 '명시적 타입 변환' 또는 '타입 캐스팅'이라 한다. 아래 코드 예시는 숫자 11을 문자열 11로 명시적 타입 변환한 것이다. var x = 11; var str = x.toString(); 표현식을 평가하는 도중에 자바스크립트 엔진에 의해 암묵적으로 타입이 자동변환 되기도 하는데 이를 '암묵적 타입 변환' 또는 '타입 강제 변환'이라 한다. 아래 코드 예시는 숫자와 문자열을 연산하여 문자열로 강제 형 변환한 것이다. var s..

모던 자바스크립트 Deep Dive 8장 제어문

스터디를 진행하면서 책을 읽고 내용과 떠오르는 생각, 용어들을 정리하고 있습니다. 문제 되는 부분이나 틀린 부분이 있다면 편하게 말씀해 주세요. 8장 제어문 조건에 따라 코드 블록을 실행(조건문)하거나 반복 실행(반복문)할 때 사용한다. 8.1 블록문 블록문은 0개 이상의 문을 중괄호로 묶은 것으로 자바스크립트는 블록문을 하나의 실행 단위로 취급한다. 블록문의 끝에는 세미콜론을 붙이지 않는다.(블록문 자체가 하나의 종결을 의미하기 때문) 블록 내에 일반적인 구문을 넣으면 블록이 종료되면서 undefined를 반환하고 종료되나 key와 value를 넣게 되면 자바스크립트 엔진은 해당 블록은 객체라고 판단하고 해당 객체를 반환하는 기현상이 발생한다..; { let num = 10; } // undefined..

모던 자바스크립트 Deep Dive 7장 연산자

스터디를 진행하면서 책을 읽고 내용과 떠오르는 생각, 용어들을 정리하고 있습니다. 문제 되는 부분이나 틀린 부분이 있다면 편하게 말씀해 주세요. 7장 연산자 연산자는 하나 이상의 표현식을 대상으로 연산을 수행해 하나의 값을 만든다. 이때 연산의 대상을 피대상자라 한다. 7.1 산술 연산자 수학적 계산을 수행해 새로운 숫자 값을 만들고 연산이 불가능할 경우, NaN을 반환한다. 7.1.1 이항 산술 연산자( +, -, / ) 이항 산술 연산자는 2개의 피연산자를 연산하여 새로운 값을 만든다. 7.1.2 단항 산술 연산자( ++, -- ) 단항 산술 연산자는 1개의 피연산자를 산술 하여 값을 만드는데 피연산자의 값을 변경하는 부수 효과가 있다. 1개의 피연산자를 대상으로 연산하는 것이니 결괏값을 해당 피연산..

모던 자바스크립트 Deep Dive 6장 데이터 타입

스터디를 진행하면서 책을 읽고 내용과 떠오르는 생각, 용어들을 정리하고 있습니다. 문제 되는 부분이나 틀린 부분이 있다면 편하게 말씀해 주세요. 6장 데이터 타입 자바스크립트의 모든 값은 데이터 타입을 갖는다. 데이터 타입은 6가지의 기본형과 1가지의 참조형으로 분류할 수 있다. 구분 데이터 타입 설명 원시 타입 ( 기본형 ) 숫자 타입 정수와 실수 구분 없이 하나의 숫자 타입만 존재 문자열 타입 문자열 불리언 타입 참과 거짓 undefined 타입 선언시 암묵적으로 자동할당 되는 빈 값 null 타입 의도적으로 할당하여 명시하는 빈 값 심벌 타입 ES6에서 추가된 7번째 타입 객체 타입 ( 참조형 ) 객체, 함수, 배열 등 ES11부터 새로운 원시값인 Bigint가 추가되었다. const theBigg..

모던 자바스크립트 Deep Dive 5장 표현식과 문

스터디를 진행하면서 책을 읽고 내용과 떠오르는 생각, 용어들을 정리하고 있습니다. 문제 되는 부분이나 틀린 부분이 있다면 편하게 말씀해 주세요. 5장 표현식과 문 5.1 값 용어의 의미를 정확히 설명할 수 없다면 개념을 제대로 이해하지 못한 경우가 많다. 값(value)은 식(표현식)이 평가(evaluate)되어 생성된 결과를 말한다. 모든 값은 데이터 타입을 가지며, 이에 따라 다르게 해석될 수 있다. 예를 들어 이진수 01000001은 숫자 65에 해당하지만 문자 'A'로도 해석할 수 있다. 변수는 하나의 값을 저장하기 위해 확보한 메모리 공간, 또는 해당 공간을 식별하기 위해 붙인 이름이다. var sum = 10 + 20; 10 + 20은 30으로 sum이라는 변수에 최종 할당되는 값은 30이다...

모던 자바스크립트 Deep Dive 4장 변수

스터디를 진행하면서 책을 읽고 내용과 떠오르는 생각, 용어들을 정리하고 있습니다. 문제 되는 부분이나 틀린 부분이 있다면 편하게 말씀해 주세요. 4장 변수 4.1 변수란 무엇인가? 왜 필요한가? 컴퓨터가 계산(평가 evaluation)을 하려면 먼저 10, 20, +,- 같은 기호(리터럴과 연산자)의 의미를 알고 있어야 하고 기호로 이루어진 식(표현식 expression)의 의미도 해석할 수 있어야 한다. ※ 리터럴이란? 문자 그대로인 값 그 자체. 즉 10은 10이라는 숫자 리터럴이고, "안녕하세요"는 문자 리터럴이다. ※ 연산자란? : 연산 실행에 있어서 수학적 논리적인 움직임을 지시하는 것. 흔히 아는 +, - , x 같은 기호들을 의미한다. ※ 표현식이란? : 주로 식별자, 연산자, 리터럴 등으로..

모던 자바스크립트 Deep Dive 3장 자바스크립트 개발 환경과 실행 방법

스터디를 진행하면서 책을 읽고 내용과 떠오르는 생각, 용어들을 정리하고 있습니다. 문제 되는 부분이나 틀린 부분이 있다면 편하게 말씀해 주세요. 3장 자바스크립트 개발 환경과 실행 방법 3.1 자바스크립트 실행 환경 모든 브라우저는 자바스크립트 엔진을 내장하고 있다. 브라우저에서 동작하는 코드는 Node.js 환경에서도 동일하게 동작한다. 그런데 브라우저와 Node.js는 용도가 다르다. 브라우저는 화면에 렌더링 하는 것이 주된 목적이지만, Node.js는 브라우저 외부에서 실행환경을 제공하는 것이 주된 목적이다. 따라서 같은 자바스크립트 기반이라도 ECMAScript 이외에 추가 기능은 호환되지 않는다. 브라우저는 클라이언트 사이드 Web API를 지원하고, Node.js는 Node.js 고유의 API..

모던 자바스크립트 Deep Dive 2장 자바스크립트란?

스터디를 진행하면서 책을 읽고 내용과 떠오르는 생각, 용어들을 정리하고 있습니다. 문제 되는 부분이나 틀린 부분이 있다면 편하게 말씀해 주세요. 2장 자바스크립트란? 2.1 자바스크립트의 탄생 자바스크립트는 넷스케이프사에서 웹페이지의 보조적인 기능을 수행하기 위해 브라우저에서 동작하는 경량 프로그래밍 언어를 도입하기로 하였고, 브렌던 아이크가 개발하였다. 2.2 자바스크립트의 표준화 마이크로소프트사와의 대립 경쟁관계로 인해 브라우저에 따라 웹페이지가 정상적으로 동작하지 않는 크로스 브라우징 이슈가 발생하기 시작하였고, 결과적으로 모든 브라우저에서 정상적으로 동작하는 웹페이지를 개발하기가 어려워졌다. 2.3 자바스크립트 성장의 역사 초창기에 브라우저는 서버로부터 전달받은 HTML과 CSS를 단순히 렌더링 ..

모던 자바스크립트 Deep Dive 1장 프로그래밍

스터디를 진행하면서 책을 읽고 내용과 떠오르는 생각, 용어들을 정리하고 있습니다. 문제 되는 부분이나 틀린 부분이 있다면 편하게 말씀해 주세요. 1장 프로그래밍 1.1 프로그래밍이란? 프로그래밍이란 일종의 커뮤니케이션이다. 이를 위해 무엇을 실행하고 싶은지 정의할 필요가 있다. 즉, 프로그래밍이란 정확하고 상세하게 요구사항을 설명하는 작업이며, 이때 요구되는 것이 문제 해결 능력이다. 1.2 프로그래밍 언어 정의된 문제 해결 방안은 약속된 구문(syntax : 문법)으로 구성된 프로그래밍 언어를 사용하여 작성한 후 컴퓨터가 이해할 수 있는 일종의 번역기를 통해 전달한다. 이런 번역기를 컴파일러 혹은 인터프리터라고 한다. 1.3 구문과 의미(Syntax & Semantics) 프로그래밍 학습은 일반적으로 ..