TIL/JavaScript 22

7. Object.create()

Object.create 사용법 - Object.create(연결시킬 객체의 프로토타입) - ex) const PersonProto = { calcAge(){ console.log(2037 - this.birthYear) } } const p1 = Object.create(PersonProto); - PersonProto와 p1이 prototypal inheritance로서 연결되어 있음 - 이 때, p1은 현재 빈 객체 cf> new Person() vs Object.create() 1) 연결시킬 prototype를 정할 수 있음 const p1 = new Person()의 경우에 p1은 Person의 프로토타입과 자동으로 연결되지만, Object.create는 연결시킬 프로토타입 객체를 정할 수 있음

TIL/JavaScript 2023.01.02

6. Static Method

static method - 프로토타입에 정의된 것이 아닌, constructor에 정의된 method - 따라서, static method는 instance가 사용 불가함, inherit되지 않음 - ex) Array.from은 Array.from(...) 은 사용할 수 있지만, [1,2,3,4,5].from(...) 은 사용 불가 - ex2) Number.parseInt(12.3)은 되지만, 12.parseInt(...)은 사용 불가 - 사용법 - class Person{ constructor(age){ this.age = age; } printAge(){ // instance method : prototype에 추가돼 instance가 사용 가능 console.log(this.age) } stati..

TIL/JavaScript 2023.01.02

5. Getter & Setter

get - method 앞에 'get' 입력 - ex) get latest(){ return this.movements.slice(-1).pop(); } console.log(account.latest) // account 배열의 마지막 요소 return set - 사용 방법은 get과 같음 - set latest(mov){ // set은 인자 1개 필요 this.movements.push(mov); } - account.latest = 50 // property처럼 사용 - console.log(account.movements) // [... ,50] setter - property에 값을 할당하려고 할 때 실행되는 method - ex) constructor(age) this.age = age; se..

TIL/JavaScript 2023.01.02

2. OOP in JS & new operator

OOP in js - traditional oop - class에서 객체가 인스턴스화됨(객체가 만들어짐) instantiation class ----------------> instance - js - 객체는 프로토타입 객체와 연결됨 - 특정 프로토타입에 연결된 객체는 프로토타입 객체에 있는 메소드에 접근해 사용할 수 있음 - 이를 prototypal inheritance(delegation)라 함 prototypal inheritance classv*2); // Array.prototype.map이 정의되어 있기 때문에, 객체 num은 Array.prototype에 접근해 프로토타입 내부에 있는 map 메소드 접근 가능 cf> new operator - const jonas = new Person('J..

TIL/JavaScript 2022.12.24

1. OOP's principle

OOP 정의 - 객체에 기반한 프로그래밍 패러다임 특성 - Abstraction (추상화) - 사용자가 기능을 사용할 때 기능 수행에 필요없는 상세 사항은 무시, 즉, 사용자는 오직 기능 수행에 필요한 것들만 알아도 사용하는 데 문제없도록 - ex) 핸드폰을 예시로 들면, 사용자가 핸드폰과 상호작용할 때 핸드폰의 전압, 온도 등은 사용자 입장에서는 몰라도 크게 상관 X 사용자에게 필요한 것은 배터리 양, 볼륨 등만 알아도 사용에는 문제없음 - ex2) 우리는 특정 함수를 사용할 때, 그 함수에 대해서 완벽하게 몰라도 사용에는 문제 없음 - Encapsulation (캡슐화) - class 외부에서 class 내부의 속성, 메소드에 접근 불가함 - class 내부에서는 접근 가능함 - 외부의 접근을 허용하..

TIL/JavaScript 2022.12.24

setTimeout & setInterval

setTimeout(callbackFn, time(ms 단위), 첫 callbackFn의 인자) - time에 입력한 시간이 지나면, callback 함수 실행 - ex) setTimeout( () => console.log('hi') , 3000); - 3초 후, callbackFn 실행 - ex2) setTimeout( (ing1, ing2) => console.log(`${name}, ${score}`), 3000, 'kim', '80') - 3초 후, kim과 80 출력 - cf> clearTimeout을 통해 중단 가능 형식 - clearTimeout(timer의 이름) ex) const time = setTimeout( (ing1, ing2) => console.log(`${name}, ${s..

TIL/JavaScript 2022.12.16

Date object & method

date - 생성 - 1. const now = new Date() // 현재 시간 표시 - 2. new Date('(시간을 나타내는 문자열)') - ex) - A. new Date('(Fri Dec 16 2022 18:02:55 GMT+0900 (한국 표준시))') // new Date()의 결과 삽입 - B. console.log(new Date('December 24, 2015')) - 3. 연, 월, 일, 시, 분, 초 입력 - new Date(2037, 10, 19, 15, 23, 5) - cf> js에서 월은 0부터 시작, 즉 위 10은 10월이 아닌 11월을 의미함 - cf2> 일을 잘못 입력했을 경우, js 자체에서 수정해줌 - ex) new Date(2037, 10, 31, ..) // ..

TIL/JavaScript 2022.12.16

Numeric Separator & bigInt

numeric separator - 정의 - 큰 수를 보다 쉽게 표기 - ex) const diameter = 287_460_000_000 console.log(diameter) // 287460000000 - cf> 하지만, 문자열과 섞일 시 주의! - Number('230_000') // NaN bigInt 자료형 - 일반적으로, number는 64bit 2진수로 표기 - 그 중 53개는 숫자 저장, 나머지는 부호나 소수점 등 표기 즉, 일반적으로 2 ** 53 - 1까지 표현 가능, 이는 NUMBER.MAX_SAFE_INTEGER에 저장되어 있음 - 그 한계를 극복하기 위해, ES6부터 bigint자료형 등장 - 사용법 : 숫자 뒤에 n 붙이기 ex) console.log(48393859304580..

TIL/JavaScript 2022.12.16