์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ธฐ์ดˆ 3. ์—ฐ์‚ฐ์ž | boolean์˜ ๋ชจ๋“ ๊ฒƒ && ์—ฐ์‚ฐ์ž

    false: 0, -0, ' ', null, undefined true: -1, 'hello', [ ] 0 ๋˜๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์—†๊ฑฐ๋‚˜ ๋น„์–ด์žˆ๋Š” ๊ฒƒ๋“ค์€ ๋ชจ๋‘ false์ด๋‹ค. ๊ทธ ์™ธ์—๋Š” ๋ชจ๋‘ true let num; // undefined if (num) { console.log('true'); } num && console.log(num); // &&์—ฐ์‚ฐ์ž๋Š” ์•ž์ด true์—ฌ์•ผ ๋’ค๊ฐ€ ์‹คํ–‰๋œ๋‹ค. let obj = { name: 'ellie', }; if (obj) { console.log(obj.name); } obj && console.log(obj.name); ์ฐธ๊ณ  youtube ๋“œ๋ฆผ์ฝ”๋”ฉ by ์—˜๋ฆฌ https://www.youtube.com/watch?v=SswrP0JLNGY&list=PLv2d7VI9OotTV..

    ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ธฐ์ดˆ 2. ํ•จ์ˆ˜ | ํ•จ์ˆ˜ ์ •์˜, ํ˜ธ์ถœ, ๊ทธ๋ฆฌ๊ณ  ์ฝœ๋ฐฑํ•จ์ˆ˜

    ๋ฐ˜๋ณต์ ์œผ๋กœ ์ˆ˜ํ–‰๋˜๋Š” ์ผ๋“ค์€ ํ•จ์ˆ˜๋กœ ์ž‘์„ฑํ•˜์—ฌ ์žฌ์‚ฌ์šฉ์„ฑ์„ ๋†’์ธ๋‹ค! // ํ•จ์ˆ˜ ์„ ์–ธ function add(a, b) { return a + b; } // ํ•จ์ˆ˜ ํ˜ธ์ถœ const sum = add(3, 4); ํ•จ์ˆ˜์˜ ์ด๋ฆ„์„ ์ž‘์„ฑํ•  ๋•Œ๋Š” ์˜๋ฏธ ์žˆ๋Š” ์ด๋ฆ„์„ ์‚ฌ์šฉํ•  ๊ฒƒ function add(num1, num2) { return num1 + num2; } const doSomething = add; // add์˜ ref๋ฅผ ๋ณต์‚ฌํ•˜์—ฌ ํ• ๋‹น const result = doSomething(2, 3); const result2 = add(2, 3); // result์™€ result2๋Š” ๊ฐ™์€ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ํ•จ์ˆ˜๋„ object์˜ ํ•œ ์ข…๋ฅ˜์ด๋‹ค. add(ํ•จ์ˆ˜์ด๋ฆ„)์—๋Š”, ํ•จ์ˆ˜ ์ž์ฒด๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” reference๊ฐ€ ๋‹ด๊ฒจ์žˆ๋‹ค. fun..

    ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ธฐ์ดˆ 1. ๋ณ€์ˆ˜ | primitive ํƒ€์ž…๊ณผ object์˜ ์ฐจ์ด์ 

    1. primitive type // number, string, boolean, null, undefined, symbol let age = 2; let num = '2'; ๋‹ด์„ ์ˆ˜ ์žˆ๋Š” ๊ฐ€์žฅ ์ž‘์€ ๋‹จ์œ„์˜ ๋ฐ์ดํ„ฐ๋“ค ๋ณ€์ˆ˜ ์ด๋ฆ„ ์ง€์ • ์‹œ ์˜๋ฏธ ์žˆ๋Š” ์ด๋ฆ„์œผ๋กœ ์ง€์ •ํ•˜๊ธฐ (number โžก age) let number = 2; let number2 = number; primitive ์„ ์–ธ ์‹œ ๊ฐ ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น 2. object type primitive ์ด์™ธ์˜ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋“ค ์ตœ์†Œํ•œ 1~2๊ฐ€์ง€์˜ ๋ฐ์ดํ„ฐ๋ฅผ ํ•œ ๊ตฐ๋ฐ์— ๋ฌถ์–ด๋†“์€ ๊ฒƒ ํ•จ์ˆ˜๋„ ํฌํ•จ key์™€ value๋กœ ๊ตฌ์„ฑ let obj = { name: 'ellie', age: 5, } obj.name; // obj๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ๊ณณ์˜ name์ด๋ผ๋Š” ๊ฐ’์„ ์ฐพ๋Š”๋‹ค ๊ฐ key๋งˆ๋‹ค..

    ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํ•จ์ˆ˜ ๊ธฐ๋ณธํŽธ

    1. ํ•จ์ˆ˜ ์„ ์–ธ & ํ˜ธ์ถœ // ํ•จ์ˆ˜ ์„ ์–ธ function doSomething() { console.log('hello'); } // ํ•จ์ˆ˜ ํ˜ธ์ถœ doSomething(); 2. ๊ฐ’์„ ๋ฆฌํ„ดํ•˜๋Š” ํ•จ์ˆ˜ function add(a, b) { // js๋Š” ๋”ฐ๋กœ ํƒ€์ž…์„ ์„ ์–ธํ•˜์ง€ ์•Š์•„๋„ ๋จ! const sum = a + b; return sum; // ๋”ํ•œ ๊ฒฐ๊ณผ๋ฅผ return ํ‚ค์›Œ๋“œ๋ฅผ ํ™œ์šฉํ•ด์„œ ์ „๋‹ฌ } add(1, 2); // ๋ฅผ ํ†ตํ•ด ํ˜ธ์ถœ๋งŒ ํ•˜๊ฒŒ ๋˜๋ฉด, ์•„๋ฌด๊ฒƒ๋„ ์ผ์–ด๋‚˜์ง€ ์•Š์Œ // ํ•จ์ˆ˜๊ฐ€ ์ „๋‹ฌํ•œ ๊ฐ’์„ ๋ณ€์ˆ˜์— ํ• ๋‹นํ•œ ํ›„ ์ถœ๋ ฅ! const result = add(1, 2); console.log(result); 3. ํ•จ์ˆ˜๋ฅผ ์ธ์ž๋กœ ์ „๋‹ฌ function doSomething(add) { console.log(add); ..

    JavaScript async์™€ await, ์œ ์šฉํ•œ Promise APIs

    1. async ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๋Š” ์ฝ”๋“œ๋ฅผ ๋น„๋™๊ธฐ์  ์ฒ˜๋ฆฌํ•˜์ง€ ์•Š์œผ๋ฉด, js ์—”์ง„์€ ๋™๊ธฐ์ ์ธ ์ฒ˜๋ฆฌ๋ฅผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋งŒ์•ฝ ๊ทธ ๋’ค๋กœ ์›น ํŽ˜์ด์ง€์˜ UI๋ฅผ ํ‘œ์‹œํ•˜๋Š” ์ฝ”๋“œ๊ฐ€ ์žˆ๋‹ค๋ฉด, ์‚ฌ์šฉ์ž๋Š” ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๋Š” ์ฝ”๋“œ๊ฐ€ ๋‹ค ์ˆ˜ํ–‰๋  ๋•Œ๊นŒ์ง€ ๋นˆ ํŽ˜์ด์ง€๋งŒ์„ ๋ณด๊ฒŒ ๋œ๋‹ค. ๋น„๋™๊ธฐ์ ์ธ ์ฒ˜๋ฆฌ๊ฐ€ ํ•„์š”ํ•˜๋‹ค. async ํ‚ค์›Œ๋“œ: ์ฝ”๋“œ๋ธ”๋Ÿญ์ด ์ž๋™์œผ๋กœ Promise๋กœ ๋ณ€ํ™˜๋œ๋‹ค. // clear style of using promise :) async function fetchUser() { // do network request in 10 secs... return 'ellie'; } const user = fetchUser(); user.then(console.log); console.log(user); 2. await await์€ async๊ฐ€ ๋ถ™์€ ..

    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..