[JS Deep Dive] 28장 - Number
·
Deep Dive 정리
1. Number 생성자 함수new 연산자와 함께 호출하여 number 인스턴스를 생성할 수 있다. new 연산자를 사용하지 않고 Number 생성자 함수를 호출하면 Number 인스턴스가 아닌 숫자 반환숫자가 아닌 값을 전달하면 인수를 숫자로 강제 변환한 후 [[NumberData]] 내부 슬롯에 변환된 숫자를 할당한 Number 래퍼객체를 생성한다. -> 만약에 숫자로 변환할 수 없다면 NaN 을 [[NumberData]] 내부슬롯에 할당한 Number 래퍼객체 생성함const numObj = new Number('10');vondolr.loh(numObj);//Number {[PimitiveValue]]:10}const textObj = new Number('Hello');vondolr.loh(te..
[JS Deep Dive] 27장 - 배열 (3)-스택, 큐 자료구조
·
Deep Dive 정리
1. 스택구조push 메서드와 pop 메서드를 통해 쉽게 구현 가능스택은 한 방향으로 데이터를 넣고 뺄 수 있는 자료구조먼저 들어간 자료가 나중에 나오는 후입선출 자료구조로, LIFO(Last In First Out) 방식언제나 가장 마지막에 밀어넣은 최신 데이터를 먼저 취득한다. 스택은 top에 바로 접근 가능하기 때문에 삽입, 삭제의 시간 복잡도는 O(1). top은 가장 끝쪽에 위치한 데이터를 가리키며 push는 top에 새로운 데이터를 추가하고, pop은 top을 추출📌 스택 활용 예시후입선출 특징으로 여러 분야에서 활용웹 브라우저 방문기록(뒤로가기)실행 취소(undo)역순 문자열 만들기후위 표기법 계산 //생성자함수const Stack = (function () { function Stack..
[JS Deep Dive] 27장 - 배열 (2)
·
Deep Dive 정리
1. 배열 메서드원본 배열을 직접 변경하는 메서드 mutator method  // mutator원본 배열을 직접 변경하지 않고 새로운 배열을 생성하여 반환하는 메서드 accessor method // no mtator 2.  concatconcat : no mutator 원본배열을 직접 변경하지 않고 새로운 배열을 생성하여 반환(/push:mutator)const arr = [1,2];const result = arr.concat(3);console.log(arr) //[1,2]console.log(result)//[1,2,3] 3. Array.prototype.indexOf->원본 배열에서 인수로 전달된 요소를 검색하여 인덱스 반환-> 원본 배열에 인수로 전달한 요소와 중복되는 요소가 여러 개 있다면..
[JS Deep Dive] 27장 - 배열 (1)
·
Deep Dive 정리
1. 배열이란?여러 개의 값을 순차적으로 나열한 자료구조 2. 배열의 특징요소 : 배열이 가지고 있는 값 -> 자바스크립트의 모든 값(원시값, 객체, 함수, 배열 등) 은 배열의 요소가 될 수 있다. 인덱스 : 배열에서 자신의 위치를 나타내는 값 -> 배열의 요소에 접근할 때 사용한다.length 프로퍼티 : 배열은 요소의 개수, 즉 배열의 길이를 나타내는 Length 프로퍼티를 가진다. 배열은 '객체'타입이다.const arr = ['hi','bye','long']arr[0] // 'hi'arr.length //3//대괄호 내에 요소의 인덱스 지정 //인덱스는 0부터 시작 순서와 Length 프로퍼티 를 가지고 있기 때문에순차적 요소 접근, 역순 접근, 특정 위치부터 접근할수도 있다.  3. 배열의 생..
[JS Deep Dive] 24장 - 클로저(Closure)
·
Deep Dive 정리
1. 클로저란?함수형 프로그래밍의 핵심이 되는 요소함수가 선언된 렉시컬 환경 과의 조합을 말한다.  function outer() { var outerVar = "외부 변수"; function inner() { console.log(outerVar); // 외부 변수에 접근 가능 } return inner;}const innerFunc = outer();innerFunc(); // "외부 변수" 출력  2. 렉시컬 환경(Lexical Environment)자바스크립트에서 함수가 선언되면, 그 함수의 렉시컬 환경이라는 특별한 구조가 만들어진다.📍 렉시컬 환경은 함수가 선언될 때 어떤 변수가 어디에 있는지를 저장하고 관리 하는 일종의 '지도' 역할을 한다..
[JS Deep Dive] 22장 - this
·
Deep Dive 정리
1. this 키워드 메서드가 속한 객체를 가리키는 특수한 참조자  객체(Object) 안에 있는 메서드(Method)는 그 객체의 프로퍼티에 접근할 수 있다.그런데 메서드가 프로퍼티에 접근하려면, 자신이 어느 객체에 속해 있는지 알아야 그 객체의 프로퍼티를 제대로 참조할 수 있다.우리는 이 객체를 this 키워드를 통해 가리키게 된다.   2. 동작원리이해하기(1) 객체리터럴방식우리는 객체리터럴방식으로 JS에서 객체를 생성하였다.객체리터럴방식은 중괄호{} 를 사용하여 객체를 정의하고 그 안에 프로퍼티와 메서드를 바로 정의하는 방식이었는데이 방식을 사용하여 메서드 내부에서 객체를 가리키는 식별자를 바로 참조할 수 있다.   const circle = { radius:5, //프로퍼티: 객체 고유의 ..
[JS Deep Dive] 20장 - strict mode
·
Deep Dive 정리
1. strict mode 의 배경function hihilong() { x=10;}hihilong();console.log(x);//? 이걸 생각해보자. hihilong 함수 내에서 선언하지 않은 x 변수에 값 10을 할당을 해버렸다.  이때 x 변수를 찾아야 x 에 값을 할당할 수 있는 것이기 때문에 자바스크립트 엔진은 x 변수가 어디에서 선언이 되었는지를 스코프체인을 통해 검색을 하기 시작한다 (-위로 올라가면서 찾는 것임!)  그런데 이때 hihilong 함수의 스코프에는 x 변수의 '선언' 이 없으므로... 검색이 실패를 할 섯이다. 따라서 자바스크립트 엔진은 x 변수가 어디에 선언이 되었는지를 검색하기 위해서 hihilong 삼수 컨텍스트의 상위스코프에서 x 변수의 선언을 검색핮ㄴ다.  그런데..
[JS Deep Dive] 19장 - 프로토타입
·
Deep Dive 정리
1. 객체지향 프로그래밍독립적인 단위, 즉 객체의 집합으로 프로그램을 표현하려는 프로그래밍 패러다임속성을 통해 실체를 인식하거나 구별할 수 있다. 상태 데이터와 상태 데이터를 조작할 수 있는 동작을 하나의 논리적 단위로 묶어 생각한다. 객체 : 속성을 통해 여러 개의 값을 하나의 단위로 구성한 복합적인 자료구조프로퍼티 : 객체의 상태 데이터메서드 : 객체의 동작추상화 : 다양한 속성 중에서 프로그램에 필요한 속성만 간추려내어 표현하는 것  2. 상속과 프로토타입상속 : 어떤 객체의 프로퍼티나 메서드를 다른 객체가 상속받아 그대로 사용할 수 있는 것을 의미한다. => 자바스크립트는 프로토타입을 기반으로 상속을 구현하여 불필요한 중복을 제거할 수 있다.  => 상속은 코드의 재사용 관점에서 매우 유용하다. ..
[JS Deep Dive] 21장 - 빌트인객체
·
Deep Dive 정리
표준빌트인객체, 호스트객체, 사용자 정의 객체가 존재함표준빌트인객체: ECMAScript 사양에 정의된 객체이고 애플리케이션 전역의 공통 기능 제공호스트객체: ECMAScript 사양에 정의되어있지 않지만 자바스크립트 실행환경에서 추가로 제공하는 객체사용자정의객체: 사용자가 직접 정의한 객체1. 표준 빌트인 객체 Math, Reflect, JSON 제외 모든 표준 빌트인 객체는 인스턴스를 생성할 수 있는 생성자 함수 객체생성자 함수 객체 (String, Number, Boolean, Function, Array, Data) 는 프로토타입 메서드와 정적 메서드 제공생성자 함수 객체가 아닌 표준빌트인 객체(Math, Reflect, JSON) 는 정적 메서드만 제공 프로토타입 메서드=> 객체 인스턴스에서 호..
[JS Deep Dive] 18장 - 함수와 일급객체
·
Deep Dive 정리
1. 일급객체의 조건무명의 리터럴로 생성할 수 있다. 즉 런타임에 생성 가능변수나 자료구조에 저장할 수 있다.함수의 매개변수에 전달할 수 있다.함수의 반환값으로 사용할 수 있다. 자바스크립트의 함수는 모두 만족하므로... 일급객체다!   함수가 일급객체다... 라는 것은 함수를 객체와 동일하게 사용할 수 있다는 의미이다. 객체는 값이기 때문에 함수는 값과 동일하게 취급할 수 있다.  따라서... 함수는 값을 사용할 수 있는 어디서든지 리터럴로 정의할 수 있고 런타임에 함수 객체로 평가된다. 하지만 일급객체로서 함수가 가지는 가장 큰 특징은 일반 객체와 같이 함수이ㅡ 매개변수에 전달할 수 있으며 함수의 반환값으로도 사용할수도 있다는 것이다.   2. 함수 객체의 프로퍼티함수는 객체이므로 프로퍼티를 가진다...
하이롱하이롱
'Deep Dive 정리' 카테고리의 글 목록 (2 Page)