본문 바로가기

JavaScript31

17 생성자 함수에 의한 객체 생성 생성자 함수(constructor)new 연산자와 함꼐 호출하여 객체(인스턴스)를 생성하는 함수 여러가지 빌트인 생성자 함수// String 생성자 함수에 의한 String 객체 생성const strObj = new String('Lee');console.log(typeof strObj); // objectconsole.log(strObj); // String {"Lee"}// Number 생성자 함수에 의한 Number 객체 생성const numObj = new Number(123);console.log(typeof numObj); // objectconsole.log(numObj); // Number {123}// Boolean 생성자 함수에 의한 Boolean 객체 생성co.. 2024. 9. 25.
Longest Substring Without Repeating Characters (Medium) 문제Given a string s, find the length of the longest substring without repeating characters. Example 1:Input: s = "abcabcbb" Output: 3 Explanation: The answer is "abc", with the length of 3. Example 2: Input: s = "bbbbb" Output: 1 Explanation: The answer is "b", with the length of 1. Example 3: Input: s = "pwwkew" Output: 3 Explanation: The answer is "wke", with the length of 3. Notice that the an.. 2024. 9. 23.
16 프로퍼티 어트리뷰트 내부 슬롯과 내부 메서드는 JS엔진의 내부 로직이므로 직접적으로 접근하거나 호출할 수 있는 방법을 제공하지 않는다.단, 일부에 한하여 간접적으로 접근할 수 있는 수단을 제공.[[Prototype]] 내부 슬롯의 경우, __proto__를 통해 간접적으로 접근 가능. JS엔진은 프로퍼티를 생성할 때 프로퍼티의 상태를 나타내는 프로퍼티 어트리뷰트를 기본값으로 자동 정의.프로퍼티 상태란 : 프로퍼티의 값(value), 값의 갱신 가능 여부(writerble), 열거 가능 여부(enumerable),재정의 가능 여부(configurable)를 말한다.# [[Value]], [[Writable]], [[Enumerable]], [[Configurable]]Object.getOwnPropertyDescriptor .. 2024. 9. 23.
15 let, const 키워드와 블록 레벨 스코프 let중복 선언하면 문법 에러(SyntaxError)let으로 선언한 변수는 모든 코드 블록(함수, if, for, while, try/catch)를 지역 스코프로 인정하는블록 레벨 스코프(block-level scope)를 따른다let foo = 1; // 전역 변수{ let foo = 2; // 지역 변수 let bar = 3; // 지역 변수}console.log(foo); // 1console.log(bar); // ReferenceError var와 다르게 변수 호이스팅이 발생하지 않는 것처럼 동작함console.log(foo); // ReferenceErrorlet foo; 선언 단계와 초기화 단계가 분리되어 진행된다.런타임 이전에 JS 엔진에 의해 암묵적으로 선언 단계가 실행되지만,.. 2024. 9. 23.
14 전역 변수의 문제점 지역 변수의 생명 주기변수는 자신이 선언된 위치에서 생성되고 소멸한다.함수 내부에 선언한 지역변수는 함수가 호출된 직후에 함수 몸체 코드가 실행되기 이전에 먼저 실행됨지역 변수의 생명 주기는 함수의 생명 주기와 일치 변수의 생명 주기는 메모리 확보(allocate)된 시점부터 해제(release)되어 가용 메모리 풀(memory pool)에 반환되는 시점까지다. 지역 변수는 함수가 생성한 스코프에 등록된다.변수는 자신이 등록된 스코프가 소멸(메모리 해제)될 때까지 유효하다.누군가 스코프를 참조하고 있으면, 소멸하지 않고 생존 호이스팅은 변수 선언이 스코프의 선두로 끌어 올려진 것처럼 동작하는 JS 고유의 특징이다var x = 'global';function foo() { console.log(x); .. 2024. 9. 20.
13 스코프 스코프(scope - 유효범위) : 매개변수는 함수 몸체 내부에서만 참조할 수 있다.매개변수를 참조할 수 있는 유효범위, 매개변수의 스코프가 함수 몸체 내부로 한정되어 있기 때문.var var1 = 1; // 코드 가장 바깥 영역에서 선언한 변수if (true) { var var2 = 2; // 코드 블록 내에서 선언한 변수 if (true) { var var3 = 3; // 중첩된 코드 블록 내에서 선언한 변수 }}function foo() { var var4 = 4; // 함수 내에서 선언한 변수 function bar() { var var5 = 5; // 중첩된 함수 내에서 선언한 변수 }}console.log(var1); // 1console.log(var2); // 2c.. 2024. 9. 20.