자바스트립트는 프로토타입 기반의 언어(prototype based language) 이다. 어떤 객체의 프로토타입에서 복제하여 참조함으로써 클래스 기반언어의 상속과 같은 효과를 낸다. prototype prototype은 객체이다. 인스턴스의 생성자의 원형 객체를 나타낸다. function Person(name) { this.name = name; } Person.prototype.callName = function () { return "my name is " + this.name; }; const julie = new Person("julie"); julie.callName = function () { return "call me " + this.name; }; console.log(julie.cal..
this this는 함수를 호출될 때 결정된다. 어떤 상황에서 this를 사용하느냐에 따라 값이 달라진다. 함수와 객체의 메서드를 구분하는 거의 유일한 기능이라고 한다. 전역공간에서 this 런타임 환경에 따라 달라진다. 브라우저 환경에서는 window, Node.js 환경에서는 global을 의미한다. 자바스크립트에 변수는 특정 객체의 프로퍼티로 동작한다. 전역 변수를 선언하면 자바스크립트 엔진은 이를 전역 객체의 프로퍼티로 할당한다. 함수 호출 this는 전역객체를 가리킨다. 객체의 메서드 호출 this는 객체(호출 주체)를 가리킨다. 생성자 함수에서 this 생성될 인스턴스를 가리킨다. 클래스 생성자 함수에서 this는 그 클래스의 인스턴스를 가리킨다고 이해했다. 정리 this의 챕터를 이해해 보려..
자바스크립트에서 없음을 나타내는 값은 undefined, null이 있다. 이 둘의 차이점에 대해 정리해보려고 한다. undefined 값이 지정될 것이라고 예상되는 상황인데도 불구하고 값이 지정되지 않았을 때, 자바스크립트 엔진은 undefined를 반환한다. 아래와 같은 상황일 때, undefined를 반환한다. undefined는 원시값이다. 값을 대입하지 않은 변수 객체 내부의 프로퍼티가 없는데 접근할 경우 return 문이 없거나 호출되지 않는 함수의 실행결과 값을 대입하지 않은 변수에 undefined가 할당된다고 이해하기 보다는 그 변수에 접근할 때, 할당되어 있지 않으면 undefined를 리턴하는 개념이다. 명시적으로 undefined 값을 할당해 줄 수도 있고, 값을 비워두면 undef..
Optional chaining (?) 값이 존재하지 않을 때, 그 값을 호출하면 에러가 발생하면서 어플리케이션이 중단된다. null이나 undefined일 경우 그 값을 호출 하면 에러가 발생하는데 그 때 에러를 발생시키지 않고 undefined 값을 리턴해주는 역할을 한다. const pet = { age: 2, dog: { name: "lili", }, }; const catName = pet.cat?.name; console.log(catName); //undefined 위와 같은 예시에서 pet.dog.name을 호출하면 lili가 출력되나 존재하지 않는 값인 cat.name을 호출할 경우 에러를 발생한다. 이때 cat이 존재하는지 ?를 붙여서 확인할 수 있다. 존재하지 않기 때문에 undefi..
- Total
- Today
- Yesterday
- 운영체제
- Spring
- 내부코드
- 객체지향
- 회고
- React
- 글쓰기미션
- 우테코수업
- CS
- python
- TIL
- DB
- 코드스쿼드
- Transaction
- java
- 알고리즘
- JS
- 인증
- 카카오
- OS
- JPA
- javascript
- 우아한테크코스
- 네트워크
- 개발공부일지
- TCP/IP
- 월간회고
- 모의면접준비
- 학습로그
- 마스터즈코스
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |