ECMAScript 2023 ์ดํด๋ณด๊ธฐ ๐ ์คํฐ๋์ ๋ถ์ ๋ธ๋ก๊ทธ๋ฅผ ๋ณด๋ ์ค ์๊ฒ ๋์ด ์๋ก ์ถ๊ฐ๋ ์๋ฐ์คํฌ๋ฆฝํธ ๋ฌธ๋ฒ๋ค์ ๊ณต๋ถํ๋ฉฐ ๋ด ๋ธ๋ก๊ทธ์๋ ์ ๋ฆฌํ๊ณ ์ถ์ด ์ํด๋ฅผ ๊ตฌํ๊ณ ๐ ๋๋ ๋ถ์ํด๋ณด๊ฒ ๋์๋ค. toSorted, toReversed, with, findLast, findLastIndex, toSpliced ... 1. to ~ โ toSorted ์๋ฐ์คํฌ๋ฆฝํธ๋ ๋ฉ์๋๋ง๋ค mutation ์ ๋ํ ์ผ๊ด์ฑ์ด ์๋ค. ์๋ฅผ ๋ค๋ฉด sort() ๊ณผ reverse() ๋ ์๋ณธ์ ๋ฐ๊ฟ๋ฒ๋ฆฌ๊ณ , filter ๋ ์๋ณธ์ ๋ณํ๊ฐ ์๋ค. ์๋ก ์๊ธด toSorted ๋ฉ์๋๋ ์๋ณธ์ ๋ณํ๊ฐ ์๋ค ์ด๋ ๊ฒ sort ๋ฅผ ์ฌ์ฉํ๋ฉด ์๋ณธ ๋ฐฐ์ด์ด ๋ณํ๊ฐ ๋๋ค ์๋ก์๊ธด toSorted๋ฅผ ์ด์ฉํ๋ฉด, ์๋ณธ ๋ฐฐ์ด์ ๊ทธ๋๋ก ์ ์ง๊ฐ ๋๋ ๊ฒ์ ๋ณผ ..
javascript
Javascript Closure ์ค๋ช
๊ณผ ์์ ํด๋ก์ ๋ "ํจ์์ ํจ์๊ฐ ์ ์ธ๋ ์ดํ์ (lexical) ํ๊ฒฝ"์ ์กฐํฉ์ ๋งํฉ๋๋ค. ์ฝ๊ฒ ๋งํด, ์ด๋ค ํจ์(outer) ๋ด๋ถ์ ์ ์ธ๋ ํจ์(inner)๊ฐ ๋ฐ๊นฅ ํจ์(outer)์ ์ง์ญ๋ณ์(outerVariable)๋ฅผ ์ฐธ์กฐํ๋ ๊ฒ์ด ํจ์(outer)๊ฐ ์ข
๋ฃ๋ ์ดํ์๋ ๊ณ์ ์ ์ง๋๋ ํ์์ ๋งํฉ๋๋ค. ํต์์ ์ผ๋ก "์ธ๋ถํจ์์ ๋ณ์์ ์ ๊ทผํ ์ ์๋ ๋ด๋ถํจ์"๋ฅผ ํด๋ก์ ธ ํจ์๋ผ ๋ถ๋ฆ
๋๋ค. ์ธ๋ถํจ์์ ์คํ์ด ์ข
๋ฃ๋ ํ์๋, ํด๋ก์ ธ๋ ์ธ๋ถํจ์์ ์ค์ฝํ๋ฅผ ์ฐธ์กฐํ ์ ์์ต๋๋ค. ํด๋ก์ ์ฌ์ฉ ์์ ์ปค๋ง: ํจ์ ํ๋๊ฐ n๊ฐ์ ์ธ์๋ฅผ ๋ฐ๋ ๋์ n๊ฐ์ ํจ์๋ฅผ ๋ง๋ค์ด ๊ฐ๊ฐ ์ธ์๋ฅผ ๋ฐ๊ฒ ํ๋ ๋ฐฉ๋ฒ์
๋๋ค. ํด๋ก์ ๋ชจ๋: ๋ณ์๋ฅผ ์ธ๋ถ ํจ์ ์ค์ฝํ ์์ชฝ์ ๊ฐ์ถ์ด, ๋ณ์๊ฐ ํจ์ ๋ฐ์์ ๋
ธ์ถ๋..
setTimeout() X์ด ํ์ ์ฝ๋๋ฅผ ์คํํด์ค๋๋ค. setTimeout(function(){ ์คํํ ์ฝ๋~ }, ๊ธฐ๋ค๋ฆด์๊ฐ); // ์๊ฐ์ ms ๋จ์ ํ์ด์ง ๋ฐฉ๋ฌธ 5์ด ํ์ ๋ฅผ ์จ๊ธฐ๊ธฐ 5์ด ์ด๋ด ๊ตฌ๋งค์ ์ฌ์ํ ์ฆ์ ํ์ด๋จธ ์ญ์ ํ์ด๋จธ๋ฅผ ์ญ์ ํ๊ณ ์ถ์ผ๋ฉด var ํ์ด๋จธ = setInterval(์ด์ฉ๊ตฌ); ์ด๋ ๊ฒ ๋ณ์์ ์ ์ฅํด๋ ๋ค์ ํ์ด๋จธ ์ญ์ ํ๊ณ ์ถ์ ๋ clearTimeout(ํ์ด๋จธ) ์ด ์ฝ๋ ์คํ ์ ๊ทํํ์์ผ๋ก includes '๋ฌธ์'.includes('์ฐพ์๋จ์ด') /์ ๊ท์/.test(์ ๊ท์์ผ๋ก ๊ฒ์ฌํด๋ณผ๋ฌธ์) ์์ abcdef๋ผ๋ ๋ฌธ์์ abc๋ผ๋ ๋จ์ด๊ฐ ์๋์ง /abc/.test('abcdef') ๋ค์ด์์ผ๋ฉด true, ์์ผ๋ฉด false ์ถ๊ฐ ์ ๊ทํํ์ /[a-d]/.test('aefg') //tru..