💻 DEV/JavaScript 9

[Deep Dive] 12장 함수

12.1 함수란? 매개변수parameter : 함수 내부로 입력을 전달받는 변수 인수 argument : 입력 반환 값 return value : 출력 12.2 함수를 사용하는 이유 💡 코드의 재사용 → 유지보수의 편의성, 코드의 신뢰성, 코드의 가독성. 12.3 함수리터럴 💡 함수는 객체이며, 일반 객체는 호출할 수 없지만 함수는 호출할 수 있다. 12.4 함수 정의 함수 정의 : 함수를 호출하기 이전에 인수를 전달받을 매개변수와 실행할 문들, 그리고 반환할 값을 지정하는 것 12.4.1 함수 선언문 함수 선언문은 함수 이름을 생략할 수 없다. function add(x,y) { return x+y; } 함수 선언문은 표현식이 아닌 문이라서 변수에 할당할 수 없다. ..????? 12.4.2 함수 표현..

💻 DEV/JavaScript 2021.11.15

[Deep Dive] 11장 원시 값과 객체의 비교

11.0 원시타입과 객체타입 원시타입의 값 변경 불가능한 값 변수에 할당 → 확보된 메모리공간에는 실제 값이 저장 객체(참조)타입의 값 변경 가능한 값 변수에 할당 → 확보된 메모리공간에는 참조 값이 저장됨 값에 의한 전달 원시 값을 갖는 변수를 다른 변수에 할당하면 원본의 원시 값이 복사되어 전달됨 참조에 의한 전달 객체를 가리키는 변수를 다른 변수에 할당하면 원본의 참조 값이 복사되어 전달됨 (참조 값이 복사되고 객체는 복사되지 않음) 11.1 원시 값 11.1.1 변경 불가능한 값 💡 변경 불가능하다는 것은 변수가 아니라 값 자체이다. 변수는 재할당을 통해 얼마든지 변수값을 교체할 수 있다. 상수(const) 재할당이 금지된 변수, 값을 저장하기 위한 메모리 공간이 필요(변수), 한번만 할당이 허용..

💻 DEV/JavaScript 2021.11.15

[Deep Dive] 10장 객체 리터럴

10.1 객체란? 자바스크립트는 객체object 기반의 프로그래밍 언어이다. 원시타입의 값 : 단 하나의 값, 변경 불가능한 값 객체 타입의 값 : 다양한 타입의 값(원시 값 또는 다른 객체)을 하나의 단위로 구성한 복합적인 자료구조, 변경 가능한 값 프로퍼티property : 객체의 상태를 나타내는 값(data) 메서드method : 함수인 프로퍼티 (일반함수와 구분), 프로퍼티(상태 데이터)를 참조하고 조작할 수 있는 동작 (behavior) 10.2 객체 리터럴에 의한 객체 생성 객체 생성법 객체리터럴 : 보편적인 방법 Object 생성자 함수 생성자 함수 (new) Object.create 메서드 클래스 (ES6) 10.3 프로퍼티 💡 객체는 프로퍼티의 집합이며, 프로퍼티는 키와 값으로 구성된다...

💻 DEV/JavaScript 2021.11.15

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

9.1 타입 변환이란? 명시적 타입변환explicit coercion , 타입 캐스팅type casting : 개발자가 의도적으로 값의 타입을 변환하는 것 암묵적 타입 변환implicit coercion, 타입 강제 변환 type coercion : 개발자의 의도와는 상관없이 표현식을 평가하는 도중에 자바스크립트 엔진에 의해 암묵적으로 타입이 자동 변환되는 것 기존의 원시 값을 직접 변경하는 것은 아니며, 기존 원시 값을 사용해 다른 타입의 새로운 원시 값을 생성한다. 즉, 암묵적 타입 변환은 기존 변수 값을 재할당하여 변경하는 것이 아니며, 자바스크립트 엔진은 표현식을 에러 없이 평가하기 위해 피연산자의 값을 암묵적 타입 변환해 새로운 타입의 값을 만들어 단 한 번 사용하고 버린다. 9.2 암묵적 타입..

💻 DEV/JavaScript 2021.11.04

[모던자바스크립트 Deep Dive] 08장 제어문 control flow statement

8.1 블록문 block statement, compound statement 문의 종료를 의미하는 자체 종결성을 갖기 때문에 끝에는 세미콜론을 붙이지 않는다. // 블록문 { var foo = 10; } // 제어문 var x = 1; if (x < 10) { x++; } // 함수 선언문 function sum (a,b) { return a + b; } 8.2 조건문 conditional statement 8.2.1 if... else 문 if 문의 조건식이 불리언 값이 아닌 값으로 평가되어지면 자바스크립트 엔진에 의해 암묵적 타입변환이 이루어진다. 0은 false로 취급된다. 논리적 참, 거짓으로 실행할 코드 블록을 결정한다. 8.2.2 switch문 switch문의 표현식은 boolean 값보다는..

💻 DEV/JavaScript 2021.11.04

[모던자바스크립트 Deep Dive] 07장 연산자 operator

7.0 들어가며 연산자operator 란? 연산자operator : 하나 이상의 표현식을 대상으로 산술, 할당, 비교, 논리, 타입, 지수 연산 등을 수행해 하나의 값을 만든다. 피연산자 : 연산의 대상, 값으로 평가될 수 있는 표현식 7.1 산술 연산자 7.1.1 이항 산술 연산자 2개의 피연산자를 산술 연산하여 숫자 값을 만든다. 피연산자의 값이 바뀌지 않고 새로운 값을 만든다. 7.1.2 단항 산술 연산자 1개의 피연산자를 산술 연산하여 숫자 값을 만든다. 단항 산술 연산자 종류 1 ) ++, - -연산자 ++, - - 연산자는 피연산자의 값을 변경하는 암묵적 할당이 이뤄진다. 증가/감소(++/- -)연산자는 위치에 의미가 있다. x++; // x = x + 1; x--; // x = x - 1; ..

💻 DEV/JavaScript 2021.11.04

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

6.0 데이터 타입 data type이란? 데이터 타입data type : 값의 종류 원시타입(primitive type) : 변경불가능한 값 (리터럴을 통해 값 생성 - 심벌 제외) 숫자 타입 (정수, 실수 구분 없음) 문자열 타입 불리언 타입 (true, false) undefined 타입 (var 키워드로 선언된 변수에 암묵적으로 할당되는 값) null 타입 ( 값이 없다는 것을 의도적으로 명시할 때) 심벌 타입 (ES6에서 추가된 7번째 타입) 객체 타입(object/reference type) 객체 함수 배열 etc.. 6.1 숫자 타입 console.log(1 === 1.0); // true 숫자 타입은 모두 실수로 처리된다. 숫자타입의 특별한 값 //숫자 타입의 세 가지 특별한 값 conso..

💻 DEV/JavaScript 2021.11.04

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

5.1 값 값value : 식(표현식expression)이 평가evaluate되어 생성된 결과 평가 : 식을 해석해서 값을 생성하거나 참조하는 것을 의미 // 10 + 20은 ***평가***되어 숫자 값 30을 생성한다. 10 + 20; 변수에 할당되는 것은 값이다. 변수 : 하나의 값을 저장하기 위해 확보한 메모리 공간 자체 또는 그 메모리 공간을 식별하기 위해 붙인 이름 5.2 리터럴 literal 리터럴 : 사람이 이해할 수 있는 문자(아라비아 숫자, 알파벳, 한글 등) 또는 약속된 기호('', "", ., [], {}, // 등)를 사용해 값을 생성하는 표기법notation 자바스크립트 엔진은 코드가 실행되는 시점인 런타임에 리터럴을 평가해 값을 생성한다. 리터럴 예시 1 ) 문자열 리터럴 'He..

💻 DEV/JavaScript 2021.11.04

[모던자바스크립트 Deep Dive] 04장 변수

4.1 변수란 무엇인가? 왜 필요한가? 10 + 20 컴퓨터는 CPU를 사용해 연산하고, 메모리를 사용해 데이터를 기억한다. 메모리는 데이터를 저장할 수 있는 메모리 셀의 집합체이다. 각 셀은 고유의 메모리 주소를 가진다. 위 예제의 숫자 값 10과 20은 메모리 상의 임의의 위치(메모리 주소)에 기억(저장)되고 CPU는 이 값을 읽어들여 연산을 수행한다. 연산 결과로 생성된 숫자 값 30도 메모리 상의 임의의 위치에 저장된다. *메모리에 저장되는 모든 값은 2진수로 저장된다. CPU가 연산해서 만들어낸 숫자 값 30을 재사용하기 위해선?? 재사용하고 싶다면, 메모리주소를 통해 연산 결과 30이 저장된 메모리 공간에 직접 접근하는 것 외에는 방법이 없지만, 치명적인 오류를 발생시킬 가능성이 높은 매우 위..

💻 DEV/JavaScript 2021.11.04