일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- spring
- 정보처리기사요약
- typescript
- 자바스크립트
- ReactNative
- 정보처리기사
- CSS
- VUE
- 리액트네이티브
- 자바스크립트 코딩테스트
- 리액트
- 타입스크립트
- Oracle
- Java의정석
- 국비코딩
- php
- 자스코테
- react
- 평일코딩
- 정보처리기사실기요약
- 스프링
- 국비IT
- 정보처리기사정리
- 이안의평일코딩
- 정보처리기사실기정리
- 오라클
- 정보처리기사실기
- 코딩테스트
- javascript
- 자바의정석
- Today
- Total
목록Study/JS Diver (27)
이안의 평일코딩
32 p.594 - String 객체의 메서드는 언제나 새로운 문자열을 반환한다. 문자열은 변경 불가능(immutable)한 원시 값이기 때문에 String 래퍼 객체도 읽기 전용(read only)객체로 제공된다. > String 메서드 - String.prototype.indexOf: 인수로 전달받은 문자열 검색하여 첫 번째 인덱스 반환, 검색 실패시 -1 반환 - String.prototype.includes: ES6에서 도입된 메서드로 문자열 포함 결과를 true 또는 false로 반환한다. if (str.indexOf('Hello') !== -1 { // 문자열 str에 'Hello'가 포함되어 있는 경우에 처리할 내용 } if (str.includes('Hello')) { // 문자열 str에..
28 Number Number 생성자 함수 - Number 생성자 함수의 인수로 숫자를 전달하면서 new 연산자와 함께 호출하면 [[NumberData]] 내부 슬롯에 인수로 전달받은 숫자를 할당한 Number 래퍼 객체를 생성한다. [[PrimitiveValue]]라는 접근할 수 없는 프로퍼티는 [[NumberData]] 내부 슬롯을 가리킨다. 인수를 숫자로 변환할 수 없다면 NaN을 [[NumberData]] 내부 슬롯에 할당한 Number 래퍼 객체를 생성한다. let numbObj = new Number('10'); console.log(numObj); // Number {[[PrimitiveValue]]: 10} numbObj = new Number('Hello'); console.log(num..
p.493 - 자바스크립트에 배열이라는 타입은 존재하지 않는다. 배열은 객체 타입이다. 배열은 배열 리터럴, Array 생성자 함수, Array.of, Array.from 메서드로 생성할 수 있다. 배열의 생성자 함수는 Array이며, 배열의 프로토타입 객체는 Array.prototype이다. 객체 리터럴과 배열 리터럴의 프로토타입 // 1. 배열 리터럴 const arr = [1, 2, 3]; console.log(arr.length); // 3 // 2. Array 생성자 함수 const arr = new Array(10); console.log(arr); // [empty * 10] console.log(arr.length); // 10 // 3. Array.of (전달된 인수를 요소로 갖는 배열)..
25장클래스 p448~ p.448 - 프로토타입 기반 상속은 프로토타입 체인을 통해 다른 객체의 자산을 상속받는 개념이지만 상속에 의한 클래스 확장은 기존 클래스를 상속받아 새로운 클래스를 확장(extends)하여 정의하는 것이다. p.452 - 상속을 통해 클래스를 확장하려면 extends 키워드를 사용하여 상속받을 클래스를 정의한다. // 수퍼(베이스/부모)클래스 class Base {} // 서브(파생/자식)클래스 class Derived extends Base {} - 수퍼클래스와 서브클래스는 인스턴스의 프로토타입 체인뿐만 아니라 클래스 간의 프로토타입 체인도 생성한다. 이를 통해 프로토타입 메서드, 정적 메서드 모두 상속이 가능하다. p.454 - 매개변수 ...을 붙이면 Rest 파라미터가 된..
p.418 - 클래스를 프로토타입 기반 객체 생성 패턴의 단순한 문법적 설탕이라고 보기보다는 새로운 객체 생성 메커니즘으로 보는 것이 좀 더 합당하다. p.419 - 클래스는 class 키워드를 사용하여 정의한다. 클래스 몸체에서 정의할 수 있는 메서드는 constructor(생성자), 프로토타입 메서드, 정적 메서드의 세 가지가 있다. p.421 - 클래스 선언문으로 정의한 클래스는 함수 선언문과 같이 소스코드 평가 과정, 즉 런타임 이전에 먼저 평가되어 함수 객체를 생성한다. p.422 - 클래스 선언문도 변수 선언, 함수 정의와 마찬가지로 호이스팅이 발생한다. 단, 클래스는 let, const 키워드로 선언한 변수처럼 호이스팅된다. var, let, const, function, function*(..
p.389 - 자바스크립트가 렉시컬 스코프를 따르는 프로그래밍 언어이기 때문에 중첩함수가 아니라면 다른 함수의 변수에 접근할 수 없다. p.390 - 렉시컬 환경의 "외부 렉시컬 환경에 대한 참조"에 저장할 참조값, 즉 상위 스코프에 대한 참조는 함수 정의가 평가되는 시점에 함수가 정의된 환경(위치)에 의해 결정된다. 이것이 바로 렉시컬 스코프다. - 함수는 자신의 내부 슬롯 [[Environment]]에 자신이 정의된 환경, 즉 상위 스코프의 참조를 저장한다. p.391 - 함수 객체의 내부 슬롯 [[Environment]]에 저장된 현재 실행 중인 실행 컨텍스트의 렉시컬 환경의 참조가 바로 상위 스코프다. 또한 자신이 호출되었을 때 생성될 함수 렉시컬 환경의 "외부 렉시컬 환경에 대한 참조"에 저장될..
22장 p.343 - this는 자신이 속한 객체 또는 자신이 생성할 인스턴스를 가리키는 자기 참조 변수(self-referencing variable)다. this를 통해 자신이 속한 객체 또는 자신이 생성할 인스턴스의 프로퍼티나 메서드를 참조할 수 있다. - 함수를 호출하면 arguments 객체와 this가 암묵적으로 함수 내부에 전달된다. this가 가리키는 값, 즉 this 바인딩은 함수 호출 방식에 의해 동적으로 결정된다. p.345 - 자바스크립트의 경우 Java와 같이 this에 바인딩되는 객체는 한가지가 아니라 해당 함수 호출 방식에 따라 this에 바인딩되는 객체가 달라진다. 자바스크립트의 경우 함수 호출 방식에 의해 this에 바인딩할 어떤 객체가 동적으로 결정된다. 다시 말해, 함수..
20장 p.314 - 잠재적인 오류를 발생시키기 어려운 개발 환경을 만들기 위한 해결책으로 ES5부터 strict mode(엄격 모드)가 추가되었다. 린트 도구는 strict mode가 제한하는 오류는 물론 코딩 컨벤션을 설정 파일 형태로 정의하고 강제할 수 있기 때문에 더욱 강력한 효과를 얻을 수 있다. 따라서 strict mode보다 린트 도구의 사용을 선호한다. - strict mode를 적용하려면 전역의 선두 또는 함수 몸체의 선두에 'user strict';를 추가한다. 전역에 strict mode를 적용하는 것과 함수 단위로 strict mode를 적용하는 것은 피해야한다. 따라서 strict mode는 즉시 실행 함수로 감싼 스크립트 단위로 적용하는 것이 바람직하다. - strict mode..