본문 바로가기

JavaScript30

[JavaScript]클로저(closure) (1) 클로저란 - 자신을 포함하고 있는 외부함수보다 내부함수가 더 오래 유지되는 경우, 외부 함수 밖에서 내부함수가 호출되더라도 외부함수의 지역 변수에 접근할 수 있는 함수를 클로저라 한다. - 간단히 말해 자신이 생성될 때의 환경을 기억하는 함수라고 말할 수 있다. function outer(){ var name = 'wangi'; console.log(name) return function inner(){ const age = 26 console.log(age, name) // outer함수가 끝났음에도 불구하고 접근 가능 } } var a = outer() // wangi a() // 26wangi (2) 특징 - 클로저는 객체의 메서드에서도 사용할 수 있다. - 동일한 외부함수 안에서 만들어진 .. 2023. 10. 18.
[JavaScript] 실행 컨텍스트(Execute Context) (1) 실행 컨텍스트란 - scope, hoisting, this 등의 동작원리를 담고 있는 javascript의 핵심 원리이다. - 즉, 실행 가능한 코드가 실행되기 위해 필요한 환경이다. - LIFO 구조이다. - 실행 컨텍스트의 종류는 전역, 함수, eval - 전역 컨텍스트는 측정 함수가 실행되지 않는 한 모든 스크립트는 전역 컨텍스트에서 실행된다. 전역 객체로 window가 할당된다. - 함수 컨텍스트는 함수가 실행될 때마다 실행 컨텍스트가 생성되고, 함수가 동작이 끝나면 삭제된다. 호출이 되어야지만 생성이 된다. var x = 'xxx'; function foo () { var y = 'yyy'; function bar () { var z = 'zzz'; console.log(x + y + z.. 2023. 10. 17.
[JavaScript] this (1) this란 - 함수를 호출하는 객체에 대한 참조를 의미한다. - 어떻게 호출되는지에 따라 바인딩되는 것이 동적으로 결정된다. (2) 호출 방법 - 전역에서의 this - 전역에서의 this는 기본적으로 window 객체이다. console.log(this); // window - 일반 함수의 this - 일반 함수에서의 this는 window이다. 단 strict mode에서는 undefined이다. function a() { console.log(this); } a(); // window function b() { 'use strict' console.log(this); } b(); // undefined - 메서드의 this var a = 'wangi'; var b = { a: 'eddy', .. 2023. 10. 17.
[JavaScript] Strict mode (1) Strict mode란 - 암묵적 전역이 발생하면 오류가 자주 일어나므로 키워드를 사용하지 않았을 때 에러를 발생시켜 주는 방법이다. - 즉, 엄격하게 문법 검사를 하겠다 라고생각하면된다. (2) Strict mode 선언 - 스크립트의 시작 혹은 함수의 시작 부분에 "use strict"를 선언하면 활성화가 된다. 'use strict'; // 스크립트 전체에 strict mode가 적용된다. function foo() { x = 10; // error x의 키워드를 작성하지않았다. } foo(); function foo() { 'use strict'; // 함수 몸체의 선두에 추가하면 해당 함수와 중첩된 내부 함수에 strict mode가 적용된다. x = 10; // error x의 키워드를.. 2023. 10. 16.