일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
- 정리
- 기능구현
- 3일차
- 목표 변경
- 4일차
- 커밋
- docker-compose.yml
- docker
- 정규표현식
- pull request
- 메모리 영역
- GIT
- fork
- 도커
- 우아한테크코스
- 과제
- 7일차
- merge
- 리팩토링
- AR필터
- Til
- 승인 대기
- 우테코
- 5일차
- 6일차
- Access Denied
- string 메서드
- 프리코스
- COMMIT
- 1주차 끝
- Today
- Total
목록JavaScript Deep Dive (21)
수레바퀴아래서
여러 값을 순차적으로 나열한 자료구조. 요소에는 인덱스를 통해서 접근한다. arr.length → length 프로퍼티를 갖는다 typeof arr // object 구분 객체 배열 구조 프로퍼티 키와 프로퍼티 값 인덱스와 요소 값의 참조 프로퍼티 키 인덱스 값의 순서 X O length 프로퍼티 X O 자바스크립트 배열은 메모리 주소의 공간이 일렬로 나열된 배열이 아니며 값의 타입이 다 같은 배열이 아니다. → 일반 배열과 다르게 특정 요소를 검색, 삽입 또는 삭제하는 경우 효율적이지 않다. → Js에서 배열은 해시테이블로 구현된 객체이므로 인덱스로 요소에 접근하는 경우 일반적인 배열에 비해 느릴수 밖에 없다. 그러나 특정 요소의 검색 삽입 삭제에서는 빠른 성능을 기대해 볼 만 하다. 일반 객체보다는 ..
ES6 이전의 모든 함수는 일반 함수로서 호출할 수 있는 것은 물론 생성자 함수로서 호출할 수 있다. ES6 이전의 모든 함수는 callable 이면서 constructor이다!!! ES6 함수의 구분 constructor prototype super arguments 일반 함수 O O X O 메서드 X X O O 화살표 함수 X X X X 일반 함수 : 함수 선언문 혹은 함수 표현식으로 정의한 함수(constructor) 화살표 함수 : non-constructor 메서드 : 메서드 축약 표현으로 정의된 함수! ※표준 빌드인 객체가 제공하는 프로토타입 메소드와 정적 메소드는 모두 non-constructor이다! String.prototype.toUpperCase.prototype; // undefin..
Js는 프로토타입 기반 프로그래밍이다 클래스와 생성자 함수는 모두 프로토타입 기반의 인스턴스를 생성하지만 정확히 동일하게 동작하진 않음 차이점 클래스는 new 연산자 없으면 에러, 생성자 함수는 new 연산자가 없으면 일반 함수로서 호출 클래스는 extends와 super 키워드 제공, 생성자 함수는 지원하지 않는다 클래스 내의 모든 코드에는 암묵적으로 strict mode 지정, 생성자 함수는 암묵적으로 지정되지 않음 클래스의 constructor, 프로토타입 메서드, 정적 메서드는 모두 프로퍼티 어트리뷰트 [[Enumerable]]의 값이 false → 열거 되지 않는다 클래스 정의 // 클래스 선언문 class Person{} // 익명 클래스 표현식 const Person = class {}; /..

클로저와 데코레이터 : 클로저는 함수가 렉시컬 스코프를 기반으로 상태를 유지하는 데 사용되며, 데코레이터는 함수의 동작을 확장하거나 수정하는 데 사용 A closure is the combination of a function and the lexical environment within which that function was declared.(클로저는 함수와 그 함수가 선언된 렉시컬 환경과의 조합이다.) // innerFunc()의 상위 스코프는 outerFunc()의 스코프 // innerFunc에서 outerFunc의 x에 접근 가능!! const x=1; function outerFunc(){ const x=10; function innerFunc(){ console.log(x); // 10 ..
자신이 속한 객체를 가리키는 식별자를 참조할 수 있기 위해 this : 자신이 속한 객체 또는 자신이 생성할 인스턴스를 가리키는 자기 참조 변수. 자신이 속한 객체 또는 자신이 생성할 인스턴스의 프로퍼티나 메서드를 참조할 수 있다. 자바나 C++ 에서는 언제나 클래스가 생성하는 인스턴스를 가리키지만 Js에서는 함수가 호출되는 방식에 따라 this에 바인딩될 값이 동적으로 결정 // this 어디서든지 참조 가능 // 전역에서 this는 전역 객체 window를 가리킴 console.log(this); function square(num){ // 일반 함수 내부에서 this는 전역 객체 window를 가리킴 console.log(this); // window return num*num; } square(2..
strict mode 변수를 선언할 때 키워드(var,let,const)를 붙이지 않고 선언시 암묵적 전역과 같은 오류를 발생 시킬수 있음(ESLint와 같은 린트 도구를 사용해도 가능) strict mode 를 쓰려면'use strict'; 를 맨위에 추가해주면 된다. 전역에 strict mode를 적용하는 것은 피하자: 전역에 적용한 strict mode는 스크립트 단위로 적용됨 함수 단위로 strict mode를 쓰는 것도 피하자 결론 : strict mode는 즉시 실행 함수로 감싼 스크립트 단위로 적용하는 것이 바람직하다 Js 객체의 분류 표준 빌트인 객체 호스트 객체 사용자 정의 객체
Js : 명령형, 함수형, 프로토타입 기반 객체지향 프로그래밍을 지원하는 멀티 패러다임 프로그래밍. 클래스와 생성자 함수는 모두 프로토타입 기반의 인스턴스를 생성하지만, 동일하게는 동작 X 클래스는 생성자 함수보다 엄격하며 생성자 함수에서 제공하지 않는 기능도 제공 프로토타입을 기반으로 상속을 구현한다! function Circle(radius){ this.radius = radius; } // Circle 생성자 함수가 생성한 모든 인스턴스가 // getArea 메서드를 공유하여 사용 가능하게 함 Circle.prototype.getArea = function(){ return Math.PI*this.radius**2; }; // create instance const c1 = new Circle(1)..
만족해야 하는 조건 무명의 리터럴로 생성할 수 있다. 런타임에서 생성가능 변수나 자료구조(객체,배열 등)에 저장 가능 함수의 매개변수에 전달할 수 있다. 함수의 반환값으로 사용할 수 있다. 함수 객체의 프로퍼티 arguments 프로퍼티 arguments arguments 프로퍼티의 값 : arguments 객체 순회 가능한 유사 배열 객체 함수 내부에서 지역 변수 처럼 사용 → 외부 사용 불가능 Symbol프로퍼 → 객체를 순환 가능한 이터러블로 만든다 caller 프로퍼티 caller 함수 자신을 호출한 함수를 가리킴 but 표준화될 예정도 없는 프로퍼티이므로 있다는 정도로 패스 브라우저와 Node.js 환경에서 서로 다르게 나옴→48장 모듈 참고 length 프로퍼티 length 함수를 정의할 때 ..