본문 바로가기

자바스크립트-스터디[2021-10-05~완료]

(36)
18장 함수와 일급 객체 function multi(x,y){ console.log(arguments); return x*y; } multi(); multi(1); multi(2,3); multi(2,3,4); Symbol(Symbol.iterator) multi(2,3,4); Arguments(3) [2, 3, 4, callee: ƒ, Symbol(Symbol.iterator): ƒ] 0: 2 1: 3 2: 4 callee: ƒ multi(x,y) arguments: null caller: null length: 2 name: "multi" prototype: {constructor: ƒ} [[FunctionLocation]]: VM240:1 [[Prototype]]: ƒ () [[Scopes]]: Scopes[1] lengt..
[27.8] 배열 메서드 배열에서 결과물을 반환하는 패턴이 두 가지이다. 원본을 변경 시키는 것 원본을 변경시키지 않는 것 원본 배열(배열 메서드)를 호출한 배열 원본 배열을 직접 변경하지 않고 새로운 배열을 생성하여 반환하는 메서드 원본 배열을 직접 변경하는 경우 외부 상태를 직접 변경하는 부수 효과가 있으므로 주의하라 concat 1. Array.isArray 생성자 함수의 정적 메서드 2. Array.prototype.indexOf 3. Array.prototype.push push메서드는 인수로 전달 받은 모든 값을 원본 배열의 마지막 요소에 추가하고 변경된 length 프로퍼티 값을 반환한다. 3. Array.prototype.pop pop메서드는 원본 배열의 마지막 요소를 제거하고 그 제거한 요소를 반환한다. 빈 배열..
16장 프로퍼티 어트리뷰트 16.1 내부 슬롯과 내부 메서드 자바스크립트 엔진의 구현 알고리즘을 설명하기 위해 ECMA Script 사양에서 사용하는 pseudo property, pseudo method다. [[ ]] 이중 대괄호 로 감싼 이름들이 내부 슬롯, 내부 메서드다. ECMA Script 사양에 정의된 대로 구현되어 자바스크립트 엔진에서 내부 슬롯, 내부 메서드는 실제로 동작함. 하지만 개발자가 직접 접근할 수 있도록 외부에 공개된 객체의 프로퍼티는 아니다. 내부 슬롯, 내무 메서드에 직접적으로 접근, 호출을 불가능하다. 하지만 간접적으로 접근 할 수 있다. 내부 슬롯 내부 메서드 모든 객체는 [[Prototype]] 라는 내부 슬롯을 갖는다 __proto__를 통해 접근 할 수 있다 [[Get]] 내부 메서드 [[Se..
[27장] 배열 10주차 데브워니 : 27장 배열 27.1 ~ 27.7 (14p) 널두 : 27장 배열 27.8 (19p) 노아 : 27장 배열 27.9 (22p) kei : 28장 Number(8p) + MDN 문서 참조 27.1 배열이란 여러 개의 값을 순차적으로 나열한 자료 구조. 요소: 배열이 가지고 있는 값을 요소 element라고 한다 배열의 값 : 원시값, 객체, 함수, 배열... 자바스크립트의 모든 값이 배열의 요소가 될 수 있다. 인덱스: 배열의 요소는 배열에서 자신의 위치를 나타내는 0 이상의 정수 인덱스를 갖는다. 인덱스는 배열의 요소에 접근할 때 사용한다. 대부분의 프로그래밍 언어에서 인덱스는 0부터 시작한다. 요소에 접근할 때는 대괄호 표기법을 사용한다. arr[0] arr[1] arr[2] 배열..
25장 클래스 2021-12-18 발표자 17장 생성자 함수에 의한 객체 생성(14p) : 널두 25장 클래스.1~5(17p) : 데브워니 25장 클래스.6~7(11p) : 노아 25장 클래스.8(20p) : kei 1. 클래스는 프로토타입의 문법적 설탕인가 자바스크립트는 프로토타입 기반의 객체 지향 언어(=클래스가 필요 없는). 자바스크립트는 강력한 객체지향 프로그래밍 능력을 가짐. var Person = (function(){ function Person(name){ this.name = name; }//생성자 함수 end Person.prototype.sayHi = function(){ console.log('안녕하세요 내 이름은 ' + this.name): }//프로토타입 메서드 end return Person..
[24 클로저] 1. 렉시컬 스코프 상위 스코프를 기억한다. 이를 저장한다. 2. 함수 객체의 내부 슬롯 [[Environment]] 함수가 정의된 환경 호출되는 환경 다르다 렉시컬 스코프가 가능하려면 자신이 정의된 환경. 함수 정의가 위치하는 스코프보다 상위 스코프를 기억해야한다. 함수는 [[Environment]] 에 자신이 정의된 환경, 상위 스코프의 참조를 저장한다. 함수 정의 평가 -> 함수 객체 생성 할 때 자신의 정의된 환경에 의해 결정된 상위 스코프 주소를 함수 객체 자신의 내부 슬롯에 저장한다. 함수 정의 평가 상위 함수가 평가 또는 실행되고 있는 시점 현재 실행 중인 실행 컨텍스트는 상위 함수의 실행 컨텍스트 아직 내가 실행 안됐다. 전역 정의된 함수 선언문 함수 정의가 평가되는 시점 전역 코드가 평가..
[26.4~26.5장] ES6함수 추가 기능 26.4 REST 파라미터 1. 기본문법 REST 파라미터: 매개변수 앞에 ... 점 세개를 붙여서 정의한 매개변수 일반 매개변수와 Rest 파라미터는 함께 사용할 수 있다. function ff(a, b, ...c){ console.log(a); console.log(b); console.log(c); } Rest 파라미터는 먼저 선언된 매개변수에 할당된 인수를 제외한 나머지 인수를 배열로 할당한다. 마지막에 전달을 안해도 [ ] 배열이 생기네 Rest 파라미터를 맨 앞에 두면 안됨. 맨 마지막에! Rest 파라미터는 단 하나만 선언 가능 Rest 파라미터는 함수 정의 시 선언한 매개변수 개수를 나타내는 함수 객체의 length 프로퍼티 영향을 주지않는다? 뭔말이야 줄어드는데?? 2. Rest 파라미터..
22장 this 1. this 키워드 function Person1(){ console.log('pp ',this); this.age=0; setInterval(function gg(){ this.age++; console.log('this>> ',this);},2000); } const p1 = new Person1(); function Person1(){ let self = this; console.log('pp this ',this); console.log('pp self ',self); self.age=0; setInterval(function gg(){ this.age++; console.log('self>> ',self);},2000); } 바인딩? 식별자와 값을 연결하는 과정 변수 선언? 변수 이름 == 식..