ES6 함수의 추가 기능
·
JavaScript
ES6 이전의 모든 함수는 일반 함수로서 호출할 수 있는 것은 물론 생성자 함수로서 호출할 수 있다 ES6 함수의 구분 constructor prototype super arguments 일반 함수 O O X O 메서드 X X O O 화살표 함수 X X X X 메서드 ES6 사양에서 메서드는 메서드 축약 표현으로 정의된 함수만을 의미한다 const obj={ x:1, //메서드인 foo와 일반함수인 bar foo(){return this.x}, bar: function(){return this.x} } console.log(obj.foo()); console.log(obj.bar()); 생성자 함수로서 호출 new obj.foo() -> TypeError new obj.bar() -> bar {} 생성자..
클래스
·
JavaScript
클래스는 프로토타입의 문법적 설탕인가? * 문법적 설탕 : Syntax Sugar https://en.wikipedia.org/wiki/Syntactic_sugar Syntactic sugar - Wikipedia From Wikipedia, the free encyclopedia Jump to navigation Jump to search Programming language syntax designed for ease of use In computer science, syntactic sugar is syntax within a programming language that is designed to make things easier to read or to e en.wikipedia.org - 프로..
클로저(Closure)
·
JavaScript
클로저 함수를 일급 객체로 취급하는 함수형 프로그래밍 언어(하스켈,리스프,얼랭 등) 에서 사용되는 중요한 특성이다. *MDN 클로저 정의: 클로저는 함수와 그 함수가 선언된 렉시컬 환경과의 조합이다. 함수 중첩 const x=1; function outerFunc(){ const x=10; function innerFunc(){ console.log(x) //10 } innerFunc() } outerFunc() ------------------------------- 중첩 X const x=11; function outerFunc(){ const x=5; innerFunc() } function innerFunc(){ console.log(x) //11 } outerFunc() 렉시컬 스코프 -함수를 ..
this / 실행 컨텍스트
·
JavaScript
this this는 자신이 속한 객체 또는 자신이 생성할 인스턴스를 가리키는 자기 참조 변수(self-referencing variable)다. this를 통해 자신이 속한 객체 또는 자신이 생성할 인스턴스의 프로퍼티나 메서드를 참조할 수 있다. this는 자바스크립트 엔진에 의해 암묵적으로 생성된다. this 바인딩은 this와 this가 가리킬 객체를 바인딩하는 것이다. 전역에서 this는 -> window(전역 객체)를 가리킨다. 일반 함수 내부에서 this는 -> window를 가리킨다. 메서드 내부에서 thos는 메서드를 호출한 객체를 가리킨다. 메서드 내부에서의 this ==> {name: "Lee", getName: f} const person = { name: 'Lee', getName()..
strict mode / 빌트인 객체
·
JavaScript
strict mode function foo(){ x=10; } foo() console.log(x) 결과는? 10이 출력된다. 키워드 없이 그냥 선언된 변수 x는 자바스크립트 엔진이 어디서 변수가 선언됬는지 찾다가 x변수가 선언된것이 없기에 암묵적으로 전역 객체에 x 프로퍼티를 생성한다. 이렇게 생성된 x는 전역변수로 사용할 수 있고 이것을 '암묵적 전역' 이라고 한다. 'use strict'; ~~ JS파일에 최상단에서 볼 수 있는 문구다. 'use strict' -> 스크립트 전체에 strict mode가 적용되서 ES-lint와 같이 에러를 잡아주는 역할을 한다. 작업시 최상단에 입력해두고 작업하길 바란다. 빌트인 객체 표준 빌트인 객체 ECMAScript 사양에 정의된 객체를 말하며 애플리케이션..
함수와 일급 객체
·
JavaScript
일급객체 무명의 리터럴로 생성할 수 있다. 즉 , 런타임에 생성이 가능하다. 변수나 자료구조에 저장할 수 있다. 함수의 매개변수에 전달할 수 있다. 함수의 반환값으로 사용할 수 있다. (함수형 프로그래밍 = 함수의 매개변수에 전달, 반환값 사용) const increase=function (num){ return ++num; } const decrease=function (num){ return --num; } const auxs={increase,decrease} console.log(auxs); 함수가 일급 객체 -> 함수를 객체와 동일하게 사용가능 함수 객체의 프로퍼티 arguments,caller,length,name,prototype 프로퍼티는 모두 일반 객체에는 없는 함수 객체 고유의 데이터 ..