[JavaScript30] 7. Array Cardio Practice (2) | .some(), .every(), .find() and [...SPREADS]
๐ ์๊ตฌ์ฌํญ ์ฃผ์ด์ง data๋ค์ ๊ฐ์ง๊ณ , ์กฐ๊ฑด์ ๋ง๋ ๊ฒฐ๊ด๊ฐ์ console ์ฐฝ์ ๋์ด๋ค. ๐ป ์์ค์ฝ๋ ๋จผ์ , ์ฃผ์ด์ง data๋ ๋ค์๊ณผ ๊ฐ๋ค. const people = [ { name: 'Wes', year: 1988 }, { name: 'Kait', year: 1986 }, { name: 'Irv', year: 1970 }, { name: 'Lux', year: 2015 } ] const comments = [ { text: 'Love this!', id: 523423 }, { text: 'Super good', id: 823423 }, { text: 'You are the best', id: 2039842 }, { text: 'Ramen is my fav food ever', id: 123523 }..
[JavaScript30] 6. AJAX Type Ahead with fetch() | fetch(), Spread Operator, RegExp
๐ ์๊ตฌ์ฌํญ input์ฐฝ์ ๋ฌธ์๋ฅผ ์ ๋ ฅํ๋ฉด, ์ผ์นํ๋ city๋ state์ ๊ฐ์ ํ๋จ์ ์ถ๋ ฅํ๋ค. โจ ๊ฒฐ๊ณผํ๋ฉด ๐ป ์์ค์ฝ๋ ๐ ๋ด๊ฐ ์์ฑํ ์ฝ๋ ๋ฉฐ์น ๊ฐ ์ด๊ฒ์ ๊ฒ ์ฐพ์๋ณด๋ฉด์ ํค๋งธ๋๋ฐ, json ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์์ city, state, population ๋ฐ์ดํฐ๋ฅผ ๋ฝ์๋ด๊ณ if๋ฌธ์ผ๋ก ์กฐ๊ฑด์ ์ฃผ๋ ๊ฒ๊น์ง ์์ฑํ๋ค. ๊ทธ๋ฐ๋ฐ ๋ด๊ฐ ์ด ์ฝ๋๋ ํ li์์ ์ถ์ถ๋ ๋ชจ๋ object๊ฐ ๋ค์ด๊ฐ๋(;;;) ๋ฌธ์ ๊ฐ ์์๋ค. ๊ฒฐ๋ก ์ ์ ๋ฐ์ ์ผ๋ก ์๋ฒฝํ๊ฒ ์์ฑํ์ง ๋ชปํ๋ค. ๊ทธ๋์ ๊ฐ์๋ฅผ ๋ณด๊ณ ๋ฐ๋ผ ์ณ๋ณด๋ฉด์ ์์ฑ์์ผ๋ณธ ๋ค์, ๊ฐ์ธ์ ์ผ๋ก ๋ค์ ํ ๋ฒ ํ์ด๋ณด๊ธฐ๋ก ํ๋ค. ๐ค ๊ฐ์ ๋ ๊ฐ์ ์ฝ๋ HTML Filter for a city or a state JS const endpoint = "https://gist.githubuserco..
[JavaScript30] 5. Flexbox + JavaScript Image Gallery
๐ ์๊ตฌ์ฌํญ panel๋ค์ ๋ด๊ณ ์๋ div๋ ํ๋ฉด์ ๊ฝ ์ฑ์ฐ๊ณ , ์ฒ์์๋ ๊ฐ๊ฐ์ panel๋ค์ด ํ๋ฉด์ ์ฐจ์งํ๋ ๋น์จ์ด ๋์ผํ๋ค. ๊ฐ panel๋ค์ ํด๋ฆญํ๋ฉด ํด๋ฆญ๋ ์์๊ฐ ์ฐจ์งํ๋ ๋น์จ, ํฐํธ ๋ฑ์ด ๋ณํํ๊ณ ์์๋ ํ ์คํธ๊ฐ ๋ํ๋๋ค. ํด๋ฆญ๋ panel์ ๋ค์ ํ ๋ฒ ํด๋ฆญํ๋ฉด ์ ์ฉ๋์๋ ํจ๊ณผ๋ค์ด ์ด๊ธฐํ ๋๋ค. ์์ ๋์๋ค์ ๊ณ์ํด์ ๋ฐ๋ณตํ๋ค. โจ ๊ฒฐ๊ณผํ๋ฉด ๐ป ์์ค์ฝ๋ ๐ ์ฃผ์ด์ง HTML Hey Let's Dance Give Take Receive Experience It Today Give All You can Life In Motion ๐ ๋ด๊ฐ ์์ฑํ ์ฝ๋ CSS html { box-sizing: border-box; background: #ffc600; font-family: "helvetica neue..
[JavaScript30] 4. Array Cardio Practice (1)
๐ ์๊ตฌ์ฌํญ ์ฃผ์ด์ง data๋ค์ ๊ฐ์ง๊ณ , ์กฐ๊ฑด์ ๋ง๋ ๊ฒฐ๊ด๊ฐ์ console ์ฐฝ์ ๋์ด๋ค. ๐ป ์์ค์ฝ๋ ๋จผ์ , ์ฃผ์ด์ง data๋ ๋ค์๊ณผ ๊ฐ๋ค. // Some data we can work with const inventors = [ { first: 'Albert', last: 'Einstein', year: 1879, passed: 1955 }, { first: 'Isaac', last: 'Newton', year: 1643, passed: 1727 }, { first: 'Galileo', last: 'Galilei', year: 1564, passed: 1642 }, { first: 'Marie', last: 'Curie', year: 1867, passed: 1934 }, { first: 'Johan..
[JavaScript30] 3. CSS Variables | CSS ๋ณ์, setProperty()
๐ ์๊ตฌ์ฌํญ spacing, blur, base color์ ๋ํ input์ ๋ง์ฐ์ค๋ก ์กฐ์ ํ๋ฉด, ํด๋นํ๋ ๊ฐ์ผ๋ก CSS ์์๊ฐ ์ ๋ฐ์ดํธ ๋๋ค. css variable์ ์ฌ์ฉํ๋ค. ์์ ์ด๋ฒคํธ๋ ๋ง์ฐ์ค๊ฐ ์์ง์์ ๋ฐ๋ผ ์ค์๊ฐ์ผ๋ก ๋ฐ์๋์ด์ผ ํ๋ค. โจ ๊ฒฐ๊ณผํ๋ฉด ๐ป ์์ค์ฝ๋ ๐ ๋ด๊ฐ ์์ฑํ ์ฝ๋ HTML, CSS Update CSS Variables with JS ... css variable์ ์ฌ์ฉ์ ์ํด :root์ ๊ฐ๊ฐ base variable์ ์ ์ธํด ์ฃผ์๊ณ , ํ์ํ ์์์ ํด๋น css variable์ ์ฌ์ฉํ์ฌ ๊ฐ์ ๋์ ํด ์ฃผ์๋ค. JS "use strict"; // root์ ์ ์ธ๋ css variable์ ์ ์ดํ๊ธฐ ์ํด ์ ์ธ let root = document.querySelector(":roo..
[JavaScript30] 2. Clock | setInterval(), transform, transition
๐ ์๊ตฌ์ฌํญ ํ์ฌ ์๊ฐ์ ๋ง๊ฒ ์๊ณ๋ฅผ ๋์์ํจ๋ค. ์ด ๋, ๋ฐ๋์ ํ ์ชฝ ๋์ ๊ฐ์ด๋ฐ์ ๊ณ ์ ๋์ด ์๊ณ ๋ฐฉํฅ์ผ๋ก ์์ง์ฌ์ผ ํ๋ค. โจ ๊ฒฐ๊ณผํ๋ฉด ๐ป ์์ค์ฝ๋ ๐ TIL setInterval() setInterval()์ ์ผ์ ํ ์๊ฐ ๊ฐ๊ฒฉ์ผ๋ก ํน์ ์ฝ๋๋ธ๋ก์ ๋ฐ๋ณต์ ์ผ๋ก ์คํํ๋ ํจ์์ด๋ค. setInterval(() => { console.log('Hello'); }, 3000); ์์ ๊ฐ์ด ์์ฑํ๋ฉด, 3์ด์ ํ ๋ฒ์ฉ Hello๊ฐ ์ฝ์์ ์ฐํ๊ฒ ๋๋ค. ์ฐธ๊ณ ๋ก ์ง์ ํ๋ ํจ์๋ ๊ผญ ์ต๋ช ์ผ ํ์๋ ์๊ณ , ํจ์์ ์ด๋ฆ์ ๋ถ์ฌํ๊ฑฐ๋ ๋ค๋ฅธ ๊ณณ์์ ํจ์๋ฅผ ์ ์ํ๊ณ ์ฐธ์กฐ(reference)๋ฅผ ์ ๋ฌํ ์๋ ์๋ค. ๋, ํ์ํ ๋งค๊ฐ๋ณ์๋ฅผ ์ ๋ฌํ ์๋ ์๋ค. function print(string) { console.log(`Hel..
[JavaScript30] 1. Drum Kit | data-*, audio, transitionend
๐ ์๊ตฌ์ฌํญ ํค๋ณด๋๋ฅผ ๋๋ ์ ๋, ๋๋ฆฐ ํค์์ ํด๋น ์ค๋์ค ์๋ฆฌ๊ฐ ์ฌ์๋๊ฒ ํ๋ค. ๋๋ฆฐ ํค ์์์ playing ํด๋์ค๋ฅผ ์ถ๊ฐํ์ฌ ํน์ css๋ฅผ ์ ์ฉํ๋ค. ๋ชจ๋ ์ด๋ฒคํธ๊ฐ ๋๋๋ฉด, playing ํด๋์ค๋ฅผ ์ ๊ฑฐํ์ฌ ์ด๊ธฐ ์ํ๋ก ๋ณต๊ตฌํ๋ค. โจ ๊ฒฐ๊ณผํ๋ฉด ๐ป ์์ค์ฝ๋ document.addEventListener("keydown", playSound); // ํค ๋๋ ธ์ ๋ const keys = document.querySelectorAll(".key"); // ์ด๋ฒคํธ ๋๋ฌ์ ๋ keys.forEach((key) => key.addEventListener("transitionend", removePressed)); // Key๊ฐ ๋๋ ธ์ ๋ ๋์ํ๋ ํจ์ function playSound(e) { const aud..
์๋ฐ์คํฌ๋ฆฝํธ ๊ธฐ์ด 4. ํด๋์ค | ํด๋์ค ์์ ์ ์ฝ๋ฐฑ ํจ์ ์ต์ข ์ ๋ฆฌ
class Counter { constructor() { // object๊ฐ ๋ง๋ค์ด์ง๋ ์๊ฐ ํ ์ผ this.counter = 0; } increase() { // ํด๋์ค ๋ด ํจ์ ์ ์ธ์ function ํค์๋ ํ์ x this.counter++; console.log(this.counter); } } const coolCounter = new Counter(); coolCounter.increase(); // 1 coolCounter.increase(); // 2 coolCounter.increase(); // 3 coolCounter.increase(); // 4 coolCounter.increase(); // 5 class Counter { constructor() { // object๊ฐ ๋ง๋ค์ด์ง๋..