목록전체 글 (59)
얼레벌레
객체는 상태를 나타내는 프로퍼티와 동작을 나타내는 메서드를 묶은 복합적인 자료구조임. 따라서 프로퍼티를 참조하고 변경할 수 있어야 하는데 이 때 자신이 속한 객체를 가리키는 식별자를 참조할 수 있도록 도와주는 것이 this this 자신이 속한 객체 또는 자신이 생성할 인스턴스를 가리키는 자기 참고 변수(self-referencing variable) → this를 통해 자신이 속한 객체 또는 자신이 생성할 인스턴스의 프로퍼티나 메서드를 참조할 수 있다. ❗️ this 바인딩은 함수 호출 방식에 의해 동적으로 결정된다. // 전역에서 this = 전역 객체 window console.log(this); // window // 일반 함수 내부의 this = 전역 객체 window // strict mode..

개발자의 의도와 상관없이 발생한 암묵적 전역으로 오류 발생 가능 => strict mode 사용 strict mode 적용 시 전역의 선두(스크립트 전체에 적용) 또는 함수 몸체의 선두(해당 함수와 중첩 함수에 적용)에 'use strict'; 추가 ✔️ strict mode는 - 함수 단위로 적용 X - 스크립트 전체에 적용 X ⇨ 즉시 실행 함수로 감싼 스크립트 단위에 적용하는 것이 바람직함! 🔻 strict mode를 통해 발생되는 에러 ▪️ 암묵적 전역 ReferenceError ▪️ 변수, 함수, 매개변수의 삭제 SyntaxError ▪️ 매개변수 이름의 중복 SyntaxError ▪️ with문의 사용 SyntaxError 🔻 strict mode 적용에 의한 변화 ▪️ 일반 함수의 this ..
생성자 함수 : new 연산자와 함께 호출해 객체(인스턴스)를 생성하는 함수 - Object, String, Number, Boolean, Function, Array, RegExp, Date 생성자 함수 등이 있음 → 객체 생성❗️ new Object() /* 빈 객체 생성 */ new String() /* String 생성자 함수에 의한 String 객체 생성 */ new Number() /* Number 생성자 함수에 의한 Number 객체 생성 */ const a=new Boolean(true); typeof a; /* object */ ✅ 생성자 함수는 별다른 이유가 없다면 잘 사용하지 않음 ❗️ 객체 리터럴에 의한 객체 생성 방식은, 구조가 동일함에도 같은 프로퍼티와 메서드를 기술해야 함 > ..
백준 #18870 좌표압축 문제 수직선 위에 N개의 좌표 X1, X2, ..., XN이 있다. 이 좌표에 좌표 압축을 적용하려고 한다. Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족하는 서로 다른 좌표의 개수와 같아야 한다. X1, X2, ..., XN에 좌표 압축을 적용한 결과 X'1, X'2, ..., X'N를 출력해보자. 입력 첫째 줄에 N이 주어진다. 둘째 줄에는 공백 한 칸으로 구분된 X1, X2, ..., XN이 주어진다. 출력 첫째 줄에 X'1, X'2, ..., X'N을 공백 한 칸으로 구분해서 출력한다. 제한 1 ≤ N ≤ 1,000,000 -109 ≤ Xi ≤ 109 예제 입력 1 복사 5 2 4 -10 4 -9 예제 출력 1 복사 2 3 0 3 1 예제 입력 2 복사 6..
자바스크립트에는 개발자가 직접적으로 접근하지 못하는, 엔진의 내부 조직인 내부 슬롯과 내부 메서드가 존재함 - 내부 슬롯과 내부 메서드는 이중 대괄호([[...]])로 감싸져 있는 것들에 해당함 - 간접적으로 일부는 접근 가능 (ex) [[prototype]] → __proto__로 접근 가능 프로퍼티 어트리뷰트 * js엔진은 프로퍼티 생성 시 프로퍼티 상태를 나타내는 프로퍼티 어트리뷰트를 기본값으로 자동 정의 ✔️ 프러퍼티 상태 - 프로퍼티 값([[Value]]), 값의 갱신 가능 여부([[Writable]]), 열거 가능 여부([[Enumerable]]), 재정의 가능 여부([[Configurable]]) ⇨ Object.getOwnPropertyDescriptor(s)() : 프로퍼티 어트리뷰트를 ..