Study/Javascript (44) 썸네일형 리스트형 모던 자바스크립트 Deep Dive 12장 함수 12.1 함수란?프로그래밍 언어의 함수는 일련의 과정을 문으로 구현하고 코드 블록으로 감싸서 하나의 실행 단위로 정의한 것이다.함수는 "입력(input)"을 받아 "출력(output)"을 내보낸다. 이때 함수 내부로 입력을 전달받은 변수를 매개변수(parameter), 입력을 인수(argument), 출력을 반환값(return value)이라 한다. 또한 함수는 값이며, 여러 개 존재할 수 있으므로 특정 함수를 구별하기 위해 식별자인 함수 이름을 사용할 수 있다. 함수는 함수 정의(function definition)를 통해 생성한다. 12.2 함수를 사용하는 이유함수는 필요할 때 여러 번 호출할 수 있다. 몇 번이든 호출할 수 있으므로 코드의 재사용이라는 측면에서 매우 유용하다. 코드의 중복.. 모던 자바스크립트 Deep Dive 11장 원시 값과 객체의 비교 테이터 타입을 원시 타입과 객체 타입으로 구분하는 이유는 무엇일까???원시 타입의 값, 즉 원시 값은 변경 불가능한 값이다. 이에 비해 객체(참조) 타입의 값, 즉 객체는 변경 가능한 값이다.원시 값을 변수에 할당하면 변수(확보된 메모리 공간)에는 실제 값이 저장된다. 이에 비해 객체를 변수에 할당하면 변수(확보된 메모리 공간)에는 참조 값이 저장된다.원시 값을 갖는 변수를 다른 변수에 할당하면 원본의 윈시 값이 복사되어 전달된다. 이를 값에 의한 전달이라 한다. 이에 비해 객체를 가리키는 변수를 다른 변수에 할당하면 원본의 참조 값이 복사되어 전달된다. 이를 참조에 의한 전달이라 한다. 11.1 원시 값 11.1.1 변경 불가능한 값 원시타입이 값, 즉 원시 값은 변경 불가능한 값이다. 다시 말해,.. 모던 자바스크립트 Deep Dive 10장 객체 리터럴 10.1 객체란?자바스크립트는 객체 기반의 프로그래밍 언어이며, 자바스크립트를 구성하는 거의 "모든 것"이 객체다. 원시 값을 제외한 나머지 값(함수, 배열, 정규 표현식 등)은 모두 객체다. 객체 타입은 다양한 타입의 값(원시 값 또는 다른 객체)을 하나의 단위로 구성한 복합적인 자료구조이다. 또한 원시 타입의 값, 즉 원시 값은 변경 불가능한 값이지만 객체 타입의 값, 즉 객체는 변경 가능한 값이다. 객체는 0개 이상의 프로퍼티로 구성된 집합이며, 프로퍼티는 키(key)와 값(value)으로 구성된다. 자바스크립트에서 사용할 수 있는 모든 값은 프로퍼티 값이 될 수 있다. 자바스크립트의 함수는 일급 객체이므로 값으로 취급할 수 있다. 따라서 함수도 프로퍼티 값으로 사용할 수 있다. 프로퍼티 값이 함수.. 모던 자바스크립트 Deep Dive 9장 타입 변환과 단축 평가 9.1 타입 변환이란? 개발자가 의도적으로 값의 타입을 변환하는 것을 명시적 타입 변환 또는 타입 캐스팅이라 한다.var x = 10;// 명시적 타입 변환// 숫자를 문자열로 타입 캐스팅한다.var str = x.toString();console.log(typeof str, str); // string 10// x 변수의 값이 변경된 것은 아니다.console.log(typeof x, x); // number 10 개발자의 의도와는 상관없이 표현식을 평가하는 도주에 자바스크립트 엔진에 의해 암묵적으로 타입이 자동변환되기도 한다. 이를 암묵적 타입 변환 또는 타입 강제 변환이라 한다.명시적 타입 변환이나 암묵적 타입 변환이 기존 원시 값을 직접 변경하는 것은 아니다. var x = 10;// .. 모던 자바스크립트 Deep Dive 8장 제어문 제어문은 조건에 따라 코드 블록을 실행(조건문)하거나 반복 실행(반복문)할 때 사용한다. 일반적으로 코드는 위에서 아래 방향으로 순차적으로 실행된다. 제어문을 사용하면 코드의 실행 흐름을 인위적으로 제어할 수 있다. 하지만 코드의 실행 순서가 변경된다는 것은 단순히 위에서 아래로 순차적으로 진행하는 직관적인 코드의 흐름을 혼란스럽게 만든다. 따라서 제어문은 코드의 흐름을 이해하기 어렵게 만들어 가독성을 해치는 단점이 있다. 가독성이 좋지 않은 코드는 오류를 발생시키는 원인이 된다. 고차 함수(forEach, map, filter, reduce)를 사용한 함수형 프로그래밍 기업에서는 제어문의 사용을 억제하여 복잡성을 해결하려고 노력한다. 8.1 블록문블록문은 0개 이상의 문을 중괄호로 묶은 것으로, .. 모던 자바스크립트 Deep Dive 7장 연산자 연산자는 하나 이상의 표현식을 대상으로 산술, 할당, 비교, 논리, 타입, 지수 연산 등을 수행해 하나의 값을 만든다. 이때 연산의 대상을 피연산자라 한다. 피 연산자는 값으로 평가될 수 있는 표현실이어야 한다. 그리고 피연산자와 연산자의 조합으로 이뤄진 연산자 표현식도 값으로 평가될 수 있는 표현식이다. 7.1 산술 연산자산술 연산자는 피연산자를 대상으로 수학적 계산을 수행해 새로운 숫자 값을 만든다. 산술 연산이 불가능한 경우, NaN을 반환한다. 7.1.1 이항 산술 연산자이항 산술 연산자는 2개의 피연산자를 산술 연산하여 숫자 값을 만든다.모든 이항 산술 연산자는 피연산자의 값을 변경하는 부수 효과가 없다. 다시 말해, 어떤 산술 연산을 해도 피연산자의 값이 바뀌는 경우는 없고 언제나 새로.. 모던 자바스크립트 Deep Dive 6장 데이터 타입 데이터 타입(줄여서 '타입'이라고도 한다)은 값의 종류를 말한다. 자바스크립트의 모든 값은 데이터 타입을 갖는다. 자바스크립트(ES6)는 7개의 데이터 타입을 제공한다. 7개의 데이터 타입은 원시 타입(primitive type)과 객체 타입(object/reference type)으로 분류할 수 있다. 구분데이터 타입설명원시 타입숫자 타입숫자. 정수와 실수 구분없이 하나의숫자 타입만 존재문자열 타입문자열불리언 타입논리적 참(true)과 거짓(false)undefined 타입var 키워드로 선언된 변수에 암묵적으로 할당되는 값null 타입값이 없다는 것을 의도적으로 명시할 때 사용하는 값심벌 타입ES6에서 추가된 7번째 타입객체 타입객체, 함수, 배열 등 6.1 숫자 타입ECMAScript 사양에 .. 모던 자바스크립트 Deep Dive 5장 표현식과 문 5.1 값값은 식(표현식)이 평가되어 생성된 결과를 말한다.모든 값은 데이터 타입을 가지며, 메모리에 2진수, 즉 비트(bit)의 나열로 저장된다. 변수는 하나의 값을 저장하기 위해 확보한 메모리 공간 자체 또는 그 메모리 공간을 식별하기 위해 붗인 이름이라고 했다. 따라서 변수에 할당되는 것은 값이다.var sum = 10 + 20;// 변수에는 10 +20이 평가되어 생성된 숫자 값이 30이 할당된다. 5.2 리터럴리터럴은 사람이 이해할 수 있는 문자 또는 약속된 기호를 사용해 값을 생성하는 표기법을 말한다.리터럴은 값을 생성하기 위해 미리 약속한 표기법이라고 할 수 있다.리터럴을 사용하면 다음과 같이 다양한 종류(data type)의 값을 생성할 수 있다.리터럴예시비고정수 리터럴100 부동소수점 리.. 이전 1 2 3 4 5 6 다음