Front-end/JavaScript 5

closure

자신을 포함하고 있는 외부함수보다 내부함수가 더 오래 유지되는 경우, 외부 함수 밖에서 내부함수가 호출되더라도 외부함수의 지역 변수에 접근할 수 있는데 이러한 함수를 클로저(Closure)라고 부른다. 클로저에 의해 참조되는 외부함수의 변수 즉 outerFunc 함수의 변수 x를 자유변수(Free variable)라고 부른다. 클로저라는 이름은 자유변수에 함수가 닫혀있다(closed)라는 의미로 의역하면 자유변수에 엮여있는 함수라는 뜻이다. 실행 컨텍스트의 관점에 설명하면, 내부함수가 유효한 상태에서 외부함수가 종료하여 외부함수의 실행 컨텍스트가 반환되어도, 외부함수 실행 컨텍스트 내의 활성 객체(Activation object)(변수, 함수 선언 등의 정보를 가지고 있다)는 내부함수에 의해 참조되는 한..

Callback

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374"use strict"; // js는 동기적이다.// 호이스팅이 된 후부터 하나하나 실행되기 때문.// 호이스팅: var, 함수선언문이 자동적으로 제일 먼저 실행되는 것. console.log("1");setTimeout(() => console.log("1.5"), 1000);console.log("2");console.log("3"); // 동기 함수function printImmediately(print) { print();} printImmediatel..

Promise

123456789101112131415161718192021222324252627282930313233343536373839404142434445"use strict"; // Promise// state: pending(대기중) -> fulfilled(완료) or rejected// Producer(Promise object) vs Consumer // 1. Producer // Promise는 클래스이기 때문에 생성해야 함.// Promise 가 생성되는 순간, executor는 바로 실행된다... 주의!!const promise = new Promise((resolve12, reject12) => { // Promise 에서는 무거운 동작(네트웍, 파일 읽기 등)을 하는 것이 좋다 // ㄴ 무거운 작..

JSON basic (기능, object 전환)

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 //JSON : JavaScript Object Notation // 서버에서 클라이언트로 데이터를 보낼 때 사용하는 양식. // 1. Object to JSON // stringfy(obj) let json = JSON.stringify(true); console.log(json); json = JSON.stringify(["gom", "tang"]); console.log(json); // function, Symbole 은 json에 포함되지 않는다. const bear = { name: "gom", size: "big", Symbol: Symbol("id"),..