Promise ๊ฐ๋ ๋ถํฐ ํ์ฉ๊น์ง
โ Promise - js์์ ์ ๊ณตํ๋ฉฐ, ๋น๋๊ธฐ๋ฅผ ๊ฐํธํ๊ฒ ์ฒ๋ฆฌํ ์ ์๋๋ก ๋์์ฃผ๋ object - ์ ํด์ง ๊ธฐ๋ฅ ์ํ ํ ์ฑ๊ณต ์ ์ฑ๊ณต ๋ฉ์์ง์ ๊ฒฐ๊ณผ๊ฐ ์ ๋ฌ - ๊ธฐ๋ฅ ์ํ ์ ๋ฌธ์ ๋ฐ์ ์ ์๋ฌ ์ ๋ฌ - ๋น๋๊ธฐ์ ์ธ ๊ฒ์ ์ํํ๊ธฐ ์ํด Callbackํจ์ ๋์ ์ ์ ์ฉํ๊ฒ ์ฌ์ฉ ๊ฐ๋ฅ โ Point - 1. State: process๊ฐ heavyํ operation์ ์ํ ์ค์ธ์ง, ๊ธฐ๋ฅ ์ํ์ ์ฑ๊ณต/์คํจ ํ๋์ง - 2. Producer(์ ๋ณด์ ๊ณต์) / Consumer(์ ๋ณด์ฌ์ฉ์)์ ์ฐจ์ด์ Promise๋ class โก new ํค์๋๋ฅผ ํตํด ์์ฑํ ์ ์๋ค. ์์ฑ์: executor๋ผ๋ ์ฝ๋ฐฑํจ์ ์ ๋ฌ executor ์์์๋ ๋ค์ resolve์ reject ์ฝ๋ฐฑํจ์ ์ ๋ฌ resolve: ๊ธฐ๋ฅ ์ ์ ์ํ ํ ..
๋น๋๊ธฐ ์ฒ๋ฆฌ์ ์์, ์ฝ๋ฐฑ ์ดํดํ๊ธฐ
1. ๋๊ธฐ์ ๋น๋๊ธฐ 1-1. synchronous javascript๋ synchronous(๋๊ธฐ์ )์ด๋ค. hoisting์ด ๋ ์ดํ๋ถํฐ, ์ฝ๋๊ฐ ์์ฑํ ์์์ ๋ง์ถฐ์ ํ๋์ฉ ๋๊ธฐ์ ์ผ๋ก ์คํ๋๋ค. hoisting: var, function ์ ์ธ๋ค์ด ์๋์ ์ผ๋ก ์ต์๋จ์ผ๋ก ์ฌ๋ผ๊ฐ๋ ๊ฒ ์ ํด์ง ์์์ ๋ง๊ฒ ์ฝ๋๊ฐ ์คํ๋๋ ๊ฒ console.log('1'); console.log('2'); console.log('3'); 1-2. asynchronous ์ธ์ ์ฝ๋๊ฐ ์คํ๋ ์ง ์์ธกํ ์ ์๋ ๊ฒ setTimeout์ ๋ธ๋ผ์ฐ์ API์ด๋ฏ๋ก, ๋ธ๋ผ์ฐ์ ์๊ฒ ์์ฒญ์ ๋ณด๋ด๊ฒ ๋๋ค. ์๋ต์ ๊ธฐ๋ค๋ฆฌ์ง ์๊ณ ๋ฐ๋ก console.log('3')์ผ๋ก ๋์ด๊ฐ๊ฒ ๋๋ค. console.log('1'); setTimeout(functio..
JSON ๊ฐ๋ ์ ๋ฆฌ
- HTTP Client์ Server๊ฐ ์ด๋ป๊ฒ Hypertext๋ฅผ ์ฃผ๊ณ ๋ฐ์ผ๋ฉฐ ํต์ ํ ์ ์๋์ง ์ ์ํ ๊ฒ Client๊ฐ data request, Server๋ ์ ์ ํ response ์ ์ก - AJAX (Asynchronous JavaScript And XML) HTTP๋ฅผ ์ด์ฉํด์ Server๋ก๋ถํฐ data ๋ฐ์์ฌ ๋ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ ์นํ์ด์ง์์ ๋์ ์ผ๋ก Server์ data ์ฃผ๊ณ ๋ฐ์ ์ ์๋ ๊ธฐ์ ex) XHR (XMLHttpRequest), fetch() API - XML Mark up ์ธ์ด ์ค ํ๋ HTML๊ณผ ๊ฐ์ด data๋ฅผ ํํํ ์ ์๋ ํ ๊ฐ์ง ๋ฐฉ๋ฒ ๋ถํ์ํ ํ๊ทธ๋ค์ด ๋ง์ด ๋ค์ด๊ฐ์ ํ์ผ ํฌ๊ธฐ๊ฐ ์ปค์ง๊ณ , ๊ฐ๋ ์ฑ์ด ๋๋น ์ง๋ค. - JSON (JavaScript Object Notation) { ke..
์ ์ฉํ 10๊ฐ์ง ๋ฐฐ์ด ํจ์๋ค
// Q1. make a string out of an array { const fruits = ['apple', 'banana', 'orange']; const result = fruits.join(' '); console.log(result); } // Q2. make an array out of a string { const fruits = '๐, ๐ฅ, ๐, ๐'; const result = fruits.split(', '); console.log(result); } // Q3. make this array look like this: [5, 4, 3, 2, 1] { const array = [1, 2, 3, 4, 5]; const result = array.reverse(); console.log..
๋ฐฐ์ด ๊ฐ๋ ๊ณผ APIs
Object - ์๋ก ์ฐ๊ด๋ ํน์ง๊ณผ ํ๋๋ค์ ๋ฌถ์ด๋๋ ๊ฒ ์๋ฃ๊ตฌ์กฐ - ๋น์ทํ type์ object๋ค์ ๋ฌถ์ด๋๋ ๊ฒ(dynamically typed language) - ๋ค๋ฅธ ์ธ์ด์ ๊ฒฝ์ฐ์๋ ๋์ผํ type์ object๋ง์ ๋ฌถ์ ์ ์๋ค. 1. Declaration const arr1 = new Array(); const arr2 = [1, 2]; 2. Index position const fruits = ['๐', '๐']; console.log(fruits); // ['๐', '๐'] console.log(fruits.length); // 2 console.log(fruits[0]); // ๐ console.log(fruits[1]); // ๐ console.log(fruits[2]); // und..
Object
1. Literals and properties const obj1 = {}; // 'object literal' syntax const obj2 = new Object(); // 'object constructor' syntax function print(person) { console.log(person.name); console.log(person.age); } const ellie = { name: 'ellie', age: 4 }; print(ellie); // js๋ object๋ฅผ ์ ์ํ ํ์๋ property ์ถ๊ฐ ๊ฐ๋ฅ ellie.hasJob = true; console.log(ellie.hasJob); // true // property ์ญ์ ๋ํ ๊ฐ๋ฅ delete ellie.hasJob; ..
ํด๋์ค์ ์ค๋ธ์ ํธ์ ์ฐจ์ด์
class - ์ฐ๊ด์๋ data๋ค์ ํ๊ณณ์ ๋ฌถ์ด๋๋ ์ปจํ ์ด๋ - ์์ฑ(fields), ํ๋(methods) - data class: ๊ด๋ จ์๋ data(field)๋ง ์ ์๋ ํด๋์ค - ์บก์ํ: ํด๋์ค ๋ด์์ ๋ด๋ถ์ ์ผ๋ก ๋ณด์ฌ์ง๋ ๋ณ์, ์ธ๋ถ์์ ๋ณด์ฌ์ง๋ ๋ณ์๋ฅผ ๋๋ - ์์๊ณผ ๋คํ์ฑ 1. Class ๋ถ์ด๋นต์ ๋ง๋ค ์ ์๋ ํ template(ํ)๋ง ์ ์, ์ค์ data๋ ๋ค์ด์์ง ์๋ค. ํ ๋ฒ๋ง ์ ์ธํ๋ค. 2. Object ํด๋์ค๋ฅผ ์ด์ฉํด์ ์ค์ data๋ฅผ ๋ฃ์ด์ ๋ง๋๋ ๊ฒ ํด๋์ค๋ฅผ ์ด์ฉํด์ ์์ฑ๋ ์๋ก์ด instance ์ฌ๋ฌ ๋ฒ ์์ฑ๋ ์ ์๋ค. 3. javascript์ class ES6์ ๋์ ๋์๋ค ๊ธฐ์กด์ prototype์ ๊ธฐ๋ฐ์ผ๋ก ๋ฌธ๋ฒ๋ง ์ถ๊ฐ๋์๋ค. (syntactical sugar) 4. Clas..
Function
1. Function - ์ฌ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ค. - ํ ๊ฐ์ง์ task๋ฅผ ์ํํ๊ฑฐ๋ value๋ฅผ ๊ณ์ฐํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ค. - object์ ์ผ์ข ์ด๋ค. 1-1. Function declaration function name(param1, param2) { body... return; } 2. Parameters premitive parameters: ๋ฉ๋ชจ๋ฆฌ์ value๊ฐ ๊ทธ๋๋ก ์ ์ฅ, value๊ฐ ์ ๋ฌ object parameters: ๋ฉ๋ชจ๋ฆฌ์ reference๊ฐ ์ ์ฅ, reference๊ฐ ์ ๋ฌ 3. Default parameters (added in ES6) function showMessage(message, from = 'unknown') { // from์ด undefined์ผ ๋, default ๊ฐ ๋ช ..