일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Algorithm
- Python
- 함수
- Javascript
- 자바스크립트
- 정렬
- let
- Interview
- 프로퍼티
- 실행 컨텍스트
- Deep Dive
- frontend
- nft
- Execution context
- 백준
- 클로저
- 리액트
- blockchain
- 알고리즘
- 딥다이브
- BOJ
- var
- 솔리디티
- Queue
- react
- 블록체인
- solidity
- git pull
- 파이썬
- 변수
- Today
- Total
목록분류 전체보기 (80)
공부하자
17.1 Object 생성자 함수 new 연산자와 함께 Object 생성자 함수를 호출하면 빈 객체를 생성하여 반환한다. 빈 객체를 생성한 이후 프로퍼티 또는 메서드를 추가하여 객체를 완성할 수 있다. // 빈 객체의 생성 const person = new Object(); // 프로퍼티 추가 person.name = 'Lee'; persone.sayHello = function () { console.log('Hi! My name is ' + this.name); }; console.log(person); // {name: "Lee", sayHello: f} person.sayHello(); // Hi! My name is Lee 생성자 함수란 new 연산자와 함께 호출하여 객체(인스턴스)를 생성하는 ..
16.1 내부 슬롯과 내부 메서드 내부 슬롯과 내부 메서드는 자바스크립트 엔진의 구현 알고리즘을 설명하기 위해 ECMAScript 사양에서 사용하는 의사 프로퍼티(pseudo property)와 의사 메서드(pseudo method)다. ECMAScript 사양에 등장하는 이중 대활호([[...]])로 감싼 이름들이 내부 슬롯과 내부 메서드다. 내부 슬롯과 내부 메서드는 자바스크립트 엔진의 내부 로직이므로 직접적으로 접근하거나 호출할 수 있는 방법을 제공하지 않는다. 하지만 일부 내부 슬롯과 내부 메서드에 한하여 간접적으로 접근할 수 있는 수단을 제공한다. 예를 들어, 모든 객체는 [[Prototype]]이라는 내부 슬롯을 갖는다. 직접 접근할 수 는 없지만 ``__proto__``를 통해 간접적으로 접..
혼자서 프로젝트를 진행하다 다음과 같은 오류를 만났다. Unexpected token '
15.1 var 키워드로 선언한 변수의 문제점 [변수 중복 선언 허용] var x = 1; var y = 1; // var 키워드로 선언된 변수는 같은 스코프 내에서 중복 선언을 허용한다. // 초기화문이 있는 변수 선언문은 자바스크립트 엔진에 의해 var 키워드가 없는 것처럼 동작한다. var x = 100; // 초기화문이 없는 변수 선언문은 무시된다. var y; console.log(x); // 100 console.log(y); // 1 [함수 레벨 스코프] var 키워드로 선언한 변수는 오로지 함수의 코드 블록만을 지역 스코프로 인정한다. 따라서 함수 외부에서 var 키워드로 선언한 변수는 코드 블록 내에서 선언해도 모두 전역 변수가 된다. var x = 1; if (true) { // x는 ..
14.1 변수의 생명 주기 변수는 선언에 의해 생성되고 할당을 통해 값을 갖는다. 변수에는 생명 주기가 있다. 생명 주기가 없다면 한번 선언된 변수는 프로그램을 종료하지 않는 한 영원히 메모리 공간을 점유하게 된다. 변수는 자신이 자신이 선언된 위치에서 생성되고 소멸한다. function foo() { var x = 'local'; console.log(x); // local return x; } foo(); console.log(x); // ReferenceError: x is not defined 전역 변수의 생명 주기는 애플리케이션의 생명 주기와 같고, 함수 내부에서 선언된 지역 변수는 함수가 호출되면 생성되고 함수가 종류되면 소멸한다. 즉, 지역 변수의 생명 주기는 함수의 생명 주기와 일치한다. ..
12.5 함수 호출 함수는 함수를 가리키는 식별자와 한 쌍의 소괄호인 함수 호출 연산자로 호출한다. [매개 변수와 인수] 함수를 실행하기 위해 필요한 값을 함수 외부에서 함수 내부로 전달할 필요가 있는 경우, 매개변수를 통해 인수를 전달한다. 인수는 값으로 평가될 수 있는 표현식이어야 하고, 함수를 호출할 때 지정하며, 개수와 타입에 제한이 없다. 매개변수는 함수를 정의할 때 선언하며, 함수가 호출되면 함수 몸체 내에서 암묵적으로 생성되고 일반 변수와 마찬가지로 undefined로 초기화된 후 인수가 순서대로 할당된다. [인수 확인] function add(x, y) { return x + y; } console.log(add(2)); // NaN console.log(add('a', 'b')) // '..
12.1 함수란? 프로그래밍 언어의 함수는 일련의 과정을 문(statement)으로 구현하고 코드 블록으로 감싸서 하나의 실행 단위로 정의한 것이다. 프로그래밍 언어의 함수도 수학의 함수처럼 입력을 받아서 출력을 내보낸다. 이때 함수 내부로 입력을 전달받는 변수를 매개변수(parameter), 입력을 인수(argument), 출력을 반환값(return value)이라 한다. 또한 함수는 값이며, 여러 개 존재할 수 있으므로 특정 함수를 구별하기 위해 식별자인 함수 이름을 사용할 수 있다. 함수는 함수 정의를 통해 생성된다. 함수 정의만으로 함수가 실행되는 것은 아니다. 수학의 함수처럼 미리 정의된 일련의 과정을 실행하기 위해 필요한 입력, 즉 인수를 매개변수를 통해 함수에 전달하면서 함수의 실행을 명시적..
원시 타입과 객체 타입 차이점 3가지 원시 타입의 값 즉, 원시 값은 변경 불가능한 값이다. 이에 비해 객체(참조) 타입의 값, 즉 객체는 변경 가능한 값이다. 원시 값을 변수에 할당하면 변수(확보된 메모리 공간)에는 실제 값이 저장된다. 이에 비해 객체를 변수에 할당하면 변수(할당된 메모리 공간)에는 참조 값이 저장된다. 원시 값을 갖는 변수를 다른 변수에 할당하면 원본의 원시 값이 복사되어 전달된다. 이를 값에 의한 전달이라 한다. 이에 비해 객체를 가리키는 변수를 다른 변수에 할당하면 원본의 참조 값이 복사되어 전달된다. 이를 참조에 의한 전달이라 한다. 11.1 원시 값 [변경 불가능한 값] 원시 값은 변경 불가능한 값이다. 값을 변경할 수 없다는 건 구체적으로 어떤 것을 의미하는 걸까? 그 전에..