FrontEnd_Study/JAVASCRIPT

21장 빌트인 객체 21.01 자바스크립트 객체의 분류 자바스크립트 객체는 다음과 같이 크게 3개로 분류할 수 있다. 표준 빌트인 객체(standard built-in objects/native objects/global objects) ECMAScript 사양에 정의된 객체를 말하며 애플리케이션 전역의 공통 기능을 제공한다. 실행 환경(브라우저 또는 Node.js 환경)에 관계없이 사용할 수 있으며, 별도의 선언 없이 전역 변수처럼 참조할 수 있다. 호스트 객체(host objects) ECMAScript 사양에 정의되어 있지 않지만 자바스크립트 실행 환경에서 추가로 제공하는 객체를 말한다. 사용자 정의 객체(user-defined objects) 기본 제공되는 객체가 아닌 사용자가 직접 정의한 객체를..
20장 strict mode 20.01 strict mode란? function foo() { x = 10; } foo(); console.log(x); // ? 위 코드의 x 변수는 전역 스코프에도 선언이 존재하지 않기 때문에 ReferenceError를 발생시킬 것 같지만 자바스크립트 엔진은 암묵적으로 전역 객체에 x 프로퍼티를 동적 생성하여 전역 변수처럼 사용할 수 있다. 이러한 현상을 암묵적 전역(implicit global) 이라 한다. 위와 같은 오류를 발생시키는 원인을 보완하기 위해 ES5부터 strict mode(엄격 모드)가 추가되었다. strict mode는 자바스크립트 언어의 문법을 좀 더 엄격히 적용하여 오류를 발생시킬 가능성이 높거나 자바스크립트 엔진의 최적화 작업에 문제를 일으킬..
19장 프로토타입 자바스크립트는 클래스 기반 객체지향 프로그래밍 언어보다 효율적이며 더 강력한 객체지향 프로그래밍 능력을 지니고 있는 프로토타입 기반의 객체지향 프로그래밍 언어다. 자바스크립트를 이루고 있는 거의 "모든 것"이 객체 19.01 객체지향 프로그래밍 객체지향 프로그래밍은 실체를 인식하는 사고를 접목하려는 시도에 시작 객체지향 프로그래밍 : 프로그래밍을 명령어 또는 함수의 목록으로 보는 전통적인 명령형 프로그래밍에서 벗어나 여러 개의 독립적 단위, 즉 객체의 집합으로 프로그램을 표현하려는 프로그래밍 패러다임 객체: 속성을 통해 여러 개의 값을 하나의 단위로 구성한 복잡적인 자료구조, 상태 데이터와 동작을 하나의 논리적인 단위로 묶은 복합적인 자료구조 실체는 특징이나 성질을 나타내는 속성(att..
18장 함수와 일급 객체 18.01 일급 객체 일급 객체의 조건 무명의 리터럴로 생성 가능. 즉, 런타임에서 생성 가능 변수나 자료구조(객체,배열)에 저장 가능 함수의 매개변수에 전달 가능 함수의 반환값으로 사용 가능 자바스크립트의 함수는 위의 조건을 만족하는 일급 객체 // 1. 함수는 무명의 리터럴로 생성할 수 있다. // 2. 함수는 변수에 저장할 수 있다. // 런타임(할당 단계)에 함수 리터럴이 평가되어 함수 객체가 생성되고 변수에 할당된다. const increase = function (num) { return ++num; }; const decrease = function (num) { return --num; }; // 2. 함수는 객체에 저장할 수 있다. const auxs = { in..
17장 생성자 함수에 의한 객체생성 생성자 함수란 new 연산자와 함께 호출하여 객체를 생성하는 함수이다 생성자 함수에 의해 생성된 객체를 인스턴스라고 한다 17.01 Object 생성자 함수 new 연산자와 함께 Object 생성자 함수를 호출하면 빈 객체를 생성 특별한 이유가 없다면 객체 리터럴로 객체를 생성하는게 더 유용 유사한 형태로 JavaScript는 Object 생성자 함수, String, Number, Boolean, Function, Array, Date, RegExp, Promise 등 빌트인 생성자 함수를 제공한다. // 빈 객체의 생성 const person = new Object(); // 프로퍼티 추가 person.name = "Lee"; person.sayHello = func..
16장 프로퍼티 어트리뷰트 16.01 내부슬롯과 내부메서드 : ECMAScript 사양에서 이용하는 의사 프로퍼티 (내부슬롯), 의사 메서드 (내부메서드) 로 이중 대괄호([[..]])로 감싸서 표기되어있다. 자바스크립트 내부로직으로 직접적으로 접근할 수 없지만 간접적으로 접근 할 수 있는 수단은 제공 ECMAScript 사양 확인하는 법 : ECMAScript 사양 주소 : https://www.ecma-international.org/publications-and-standards/standards/ecma-262/ 접속 후에 최신본 자료 확인 16.02 프로퍼티 어트리뷰트와 프로퍼티 디스크립터 객체 : 자바스크립트 엔진은 프로퍼티를 생성할 때 프로퍼티 어트리뷰트를 기본값으로 자동 정의 프로퍼티 어트..
15장 let, const 키워드와 블록 레벨 스코프 15.01. var 키워드로 선언한 변수의 문제점 1.변수 중복 선언 허용 2.함수 레벨 스코프 3.변수 호이스팅 15.01.01. 변수 중복 선언 허용 : 이미 선언된 변수에 할당 시 부작용이 발생 된다. var x = 100; // 중복선언 var y; // 초기화문이 없는 변수 선언문은 무시된다. console.log(x); // 100 console.log(y); // 1 15.01.02. 함수 레벨 스코프 : var 키워드로 선언한 변수는 오직 함수의 코드 블록만을 지역 스코프로 인정하므로 함수 외부에서 선언한 변수는 모두 전역 변수가 된다. var i = 10; // for 문에서 선언한 i는 전역 변수다. 이미 선언된 전역 변수 i가 있으..
14장 전역 변수의 문제점 14.01. 변수의 생명 주기 14.01.01 지역 변수의 생명 주기 전역 변수의 생명 주기는 애플리케이션의 생명 주기와 일치 함수 내부에서 선언된 지역 변수의 생명 주기는 함수의 생명 주기와 일치 단, 지역변수가 함수 보다 오래 생존하는 경우도 있다. 일반적으로 함수가 종료되면 함수가 생성한 스코프도 소멸한다. 하지만 누군가가 스코프를 참조하고 있다면 스코프는 해제되지 않고 생존하게 된다. var x = 'global'; function foo(){ console.log(x); // 1 var x = 'local'; } foo(); console.log(x); // global 위의 예제에서 foo 함수 내부에서 선언된 지역 변수 x는 1의 시점에 이미 선언, undefine..
13장 스코프 13.01. 스코프란? : 결론적으로 쉽게 말하자면 스코프는 해당 선언된 변수, 함수 등의 유효 범위이다. 이에 상세하게 분석해본다. 스코프는 자바스크립트를 포함한 모든 프로그래밍 언어의 기본적이며 중요한 개념이며 변수와 함수에 깊은 관련이 있다. var키워드로 선언한 변수와 let 또는 const 키워드로 선언한 변수의 스코프는 다르게 동작한다. 모든 식별자는 자신이 선언된 위치에 의해 다른 코드가 식별자 자신을 참조할 수 있는 유효 범위가 결정된다. 이를 스코프라 한다. 즉, 스코프는 식별자가 유효한 범위이다. function foo() { var x = 'local'; console.log(x); // "local" } foo(); console.log(x); // "global" 위..
12장 함수 12.01. 함수란? 함수는 자바스크립트에서 가장 중요한 핵심 개념이다. 스코프, 실행 컨텍스트, 클로저, 생성자 함수에 의한 객체 생성, 메서드, this, 프로토타입, 모듈화등이 모두 함수와 깊은 관련이 있다. 프로그래밍 언어의 함수는 일련의 과정을 문으로 구현하고 코드 블록으로 감싸서 하나의 실행 단위로 정의한 것이다. >> 함수를 구성하는 3가지는 다음과 같다. 매개변수(parameter): 함수 내부로 입력을 전달받는 변수 인수(argument) : 함수 입력값 반환값(return , value): 함수 출력값 ex) function add (x , y) //매개변수 { return x + y // 반환값 } add(2,5) //함수호출, 인수(2,5) 12.02. 함수를 사용하는 ..
J_hannah
'FrontEnd_Study/JAVASCRIPT' 카테고리의 글 목록