JavaScript

this ๋ž€? this๋ž€ ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์—์„œ ์‚ฌ์šฉํ•˜๋Š” ํ‚ค์›Œ๋“œ์ด๋ฉฐ ์ด๋•Œ this๋Š” ํ•ด๋‹น ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ์˜ this๋Š” ์กฐ๊ธˆ ๋‹ค๋ฅด๋‹ค. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ this๋Š” ์ž์‹ ์ด ์†ํ•œ ๊ฐ์ฒด ๋˜๋Š” ์ž์‹ ์ด ์ƒ์„ฑํ•  ์ธ์Šคํ„ด์Šค๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ์ž๊ธฐ ์ฐธ์กฐ ๋ณ€์ˆ˜์ด๋‹ค. this๋ฅผ ํ†ตํ•ด ์ž์‹ ์ด ์†ํ•œ ๊ฐ์ฒด๋‚˜ ์ƒ์„ฑํ•  ์ธ์Šคํ„ด์Šค์˜ ํ”„๋กœํผํ‹ฐ๋‚˜ ๋ฉ”์„œ๋“œ๋ฅผ ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ๋‹ค. this์˜ ๋ฐ”์ธ๋”ฉ function sayName() { const name = 'yunCow' console.log(this.name) } sayName(); // ? ์ฝ”๋“œ๋งŒ ๋”ฑ ๋ดค์„๋• console.log์— 'yunCow'๋ฅผ ๋ณด์—ฌ์ค„ ๊ฒƒ์œผ๋กœ ๋ณด์ธ๋‹ค. ํ•˜์ง€๋งŒ ๊ทธ๋ ‡์ง€ ์•Š๋‹ค. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ์˜ this๊ฐ€ ์ฐธ์กฐํ•˜๋Š” ๊ฒƒ์€ ํ•จ์ˆ˜์˜ ํ˜ธ์ถœ ๋ฐฉ์‹์—..
์Šค์ฝ”ํ”„ ์ฒด์ธ์ด๋ž€? ์Šค์ฝ”ํ”„ ์ฒด์ธ์€ ์Šค์ฝ”ํ”„๋“ค์ด ๊ณ„์ธต์ ์œผ๋กœ ์—ฐ๊ฒฐ๋œ ๊ฒƒ์„ ์Šค์ฝ”ํ”„ ์ฒด์ธ์ด๋ผ ํ•œ๋‹ค. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—”์ง„์€ ์Šค์ฝ”ํ”„ ์ฒด์ธ์„ ํ†ตํ•ด ๋ณ€์ˆ˜๋ฅผ ์ฐธ์กฐํ•˜๋Š” ์ฝ”๋“œ์˜ ์Šค์ฝ”ํ”„์—์„œ ์‹œ์ž‘ํ•ด์„œ ์ƒ์œ„ ์Šค์ฝ”ํ”„ ๋ฐฉํ–ฅ์œผ๋กœ ์ด๋™ํ•˜๋ฉฐ ์„ ์–ธ๋œ ๋ณ€์ˆ˜๋ฅผ ๊ฒ€์ƒ‰ํ•œ๋‹ค. ์ด๋Ÿฐ ๋ฐฉ์‹์œผ๋กœ ์›€์ง์ด๊ธฐ์— ์ƒ์œ„ ์Šค์ฝ”ํ”„์—์„œ ์„ ์–ธํ•œ ๋ณ€์ˆ˜๋ฅผ ํ•˜์œ„ ์Šค์ฝ”ํ”„์—์„œ๋„ ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ๋‹ค. ( ์‹คํ–‰ ์ปจํ…์ŠคํŠธ์˜ ๋ ‰์‹œ์ปฌ ํ™˜๊ฒฝ์„ ๋‹จ๋ฐฉํ–ฅ์œผ๋กœ ์—ฐ๊ฒฐ ) ์Šค์ฝ”ํ”„ ์ฒด์ธ์€ ์‹ค์ฒด๊ฐ€ ์กด์žฌํ•˜๋ฉฐ, ๋ ‰์‹œ์ปฌ ํ™˜๊ฒฝ์— ๋Œ€ํ•ด ์•Œ์•„์•ผ ํ•˜๋Š”๋ฐ ๊ต‰์žฅํžˆ ๊นŠ์€ ๋ถ€๋ถ„์ด๋ฏ€๋กœ ๋”ฐ๋กœ ์ฒœ์ฒœํžˆ ์•Œ์•„๋ณด๋Š”๊ฒƒ์„ ์ถ”์ฒœํ•œ๋‹ค. ๊ฐ„๋‹จํ•˜๊ฒŒ ๋ณ€์ˆ˜ ์„ ์–ธ์‹œ ๋ณ€์ˆ˜ ์‹๋ณ„์ž๊ฐ€ ๋ ‰์‹œ์ปฌ ํ™˜๊ฒฝ์— key๋กœ ๋“ฑ๋ก์ด ๋˜๊ณ  ๋ณ€์ˆ˜ ํ• ๋‹น์ด ๋˜๋ฉด ๋ ‰์‹œ์ปฌํ™˜๊ฒฝ์˜ ๋ณ€์ˆ˜ ์‹๋ณ„์ž์— ํ•ด๋‹นํ•˜๋Š” ๊ฐ’์„ ๋ณ€๊ฒฝํ•œ๋‹ค. const foo = () => { console.log('์ „์—ญ ํ•จ์ˆ˜ fo..
์Šค์ฝ”ํ”„๋ž€ ? ๐Ÿ•ถ ์Šค์ฝ”ํ”„๋ž€, ๋ชจ๋“  ์‹๋ณ„์ž(๋ณ€์ˆ˜,ํ•จ์ˆ˜,ํด๋ž˜์Šค ๋“ฑ)๋Š” ์„ ์–ธ๋œ ์œ„์น˜์— ๋”ฐ๋ผ ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ๋Š” ์œ ํšจ๋ฒ”์œ„๊ฐ€ ๊ฒฐ์ •๋˜๋Š”๋ฐ ์ด ๋ง์€ ์ฆ‰, ์Šค์ฝ”ํ”„๋Š” ์‹๋ณ„์ž๊ฐ€ ์œ ํšจํ•œ ๋ฒ”์œ„๋ผ ํ•  ์ˆ˜ ์žˆ๋‹ค. ์Šค์ฝ”ํ”„์˜ ์ข…๋ฅ˜ ์Šค์ฝ”ํ”„๋Š” ์ „์—ญ ์Šค์ฝ”ํ”„(global scope)์™€ ์ง€์—ญ ์Šค์ฝ”ํ”„(local scope)๊ฐ€ ์žˆ๋‹ค. ์Šค์ฝ”ํ”„๋Š” ์‹๋ณ„์ž๋ฅผ ์„ ์–ธํ•  ๋•Œ ์ •ํ•ด์ง€๋ฉฐ ์ด๋Ÿฐ ๊ฐœ๋…์„ ๋ ‰์‹œ์ปฌ ์Šค์ฝ”ํ”„๋ผ ํ•œ๋‹ค. ํ•จ์ˆ˜๋Š” ์ „์—ญํ•จ์ˆ˜์˜ ๋‚ด๋ถ€์—๋„ ์ •์˜ํ•  ์ˆ˜ ์žˆ๋‹ค. ํ•จ์ˆ˜์˜ ๋‚ด๋ถ€์—์„œ ์ •์˜๋œ ํ•จ์ˆ˜๋ฅผ ์ค‘์ฒฉ ํ•จ์ˆ˜๋ผ ํ•˜๋ฉฐ ์ค‘์ฒฉํ•จ์ˆ˜๋ฅผ ํฌํ•จํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ์™ธ๋ถ€ ํ•จ์ˆ˜๋ผ๊ณ  ํ•œ๋‹ค. ํ•จ์ˆ˜๊ฐ€ ์ค‘์ฒฉ๋  ๋•Œ ์ง€์—ญ์Šค์ฝ”ํ”„๋„ ์ค‘์ฒฉ๋  ์ˆ˜ ์žˆ๋‹ค. ์ฆ‰, ์™ธ๋ถ€ ํ•จ์ˆ˜์˜ ์ง€์—ญ ์Šค์ฝ”ํ”„์™€ ์ค‘์ฒฉ ํ•จ์ˆ˜์˜ ๋‚ด๋ถ€์˜ ์ง€์—ญ ์Šค์ฝ”ํ”„๋Š” ๊ณ„์ธต์  ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์ด๋•Œ ์™ธ๋ถ€ ํ•จ์ˆ˜์˜ ์ง€์—ญ์Šค์ฝ”ํ”„๋ฅผ ์ค‘์ฒฉ ํ•จ์ˆ˜์˜ ์ƒ์œ„ ์Šค์ฝ”ํ”„๋ผ ํ•œ๋‹ค. var ..
์ค‘๋ณต์š”์†Œ ์ œ๊ฑฐ๋ฐฉ๋ฒ• 3๊ฐ€์ง€ ๐Ÿ™‹‍โ™‚๏ธ Set indexOf ์™€ filter ์ด์šฉ forEach ์™€ includes ์ด์šฉ ( ์œ„ 3๊ฐ€์ง€ ๋ฐฉ๋ฒ•๋ง๊ณ ๋„ ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•์ด ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค! ) Set const test = [1, 2, 3, 3, 3]; const setTest = new Set(test); const setTest2 = [...setTest]; console.log(setTest); //Set = {1,2,3} console.log(setTest2); // [1,2,3]; ์ค‘๋ณต๊ฐ’์ด ์žˆ๋Š” ๋ฐฐ์—ด์„ Set ๊ฐ์ฒด๋กœ ๋งŒ๋“  ํ›„ ์Šคํ”„๋ ˆ๋“œ์—ฐ์‚ฐ์ž(...)๋ฅผ ์ด์šฉํ•ด ๋ฐฐ์—ด์— ์ „๊ฐœํ•ด์ค€๋‹ค. Set ๊ฐ์ฒด๋ฅผ ๋ฐฐ์—ด๋กœ ๋ณ€ํ™˜ํ• ๋•Œ ์Šคํ”„๋ ˆ๋“œ ์—ฐ์‚ฐ์ž๋ง๊ณ  Array.from() ๋กœ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค. indexOf, filter const test ..
sort? ์ •๋ ฌ ๋ฉ”์†Œ๋“œ ์•„๋‹Œ๊ฐ€?๐Ÿค” ๋ผ๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค๊ฐ€ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ๋ฌธ์ œ ํ’€๋‹ค๊ฐ€ ๋จธ๋ฆฟ์†์— ๋ฌผ์Œํ‘œ๋กœ ๊ฐ€๋“์ฐผ๋‹ค. ์ƒ๊ฐ๋ณด๋‹ค sort๋Š” ๋ณต์žกํ•œ ํ•จ์ˆ˜์˜€๊ณ  ์˜ค๋ฆ„์ฐจ์ˆœ ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜๋Š” ๋ฒ•๋งŒ ์•Œ์•˜๋Š”๋ฐ ์•„์ง ์•Œ์ญ๋‹ฌ์ญํ•˜์ง€๋งŒ ๊ทธ๋ž˜๋„ ๊ธฐ์กด๋ณด๋‹ค๋Š” ๋งŽ์ด ์•Œ๊ฒŒ๋๋‹ค! sort๋Š” compareFunction ๋ผ๋Š” ์ฝœ๋ฐฑํ•จ์ˆ˜๋ฅผ ์ธ์ž๋กœ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š”๋ฐ ์ด๋Š” ๋ฒ•์น™์ด ์žˆ๋‹ค. sort๋Š” ๋น„๊ตํ•  ๋•Œ ๊ธฐ๋ณธ์ ์œผ๋กœ a์™€ b ๋ฅผ ๋น„๊ตํ•˜๋ฉด a์˜ ์œ ๋‹ˆ์ฝ”๋“œ(U+0061), b์˜ ์œ ๋‹ˆ์ฝ”๋“œ(U+0062) ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋น„๊ตํ•˜๊ฒŒ ๋œ๋‹ค. ์ฆ‰ a - b ๋ฅผ ํ•˜๊ฒŒ๋œ๋‹ค๋ฉด ์Œ์ˆ˜๊ฐ€ ๋‚˜์˜ค๊ฒŒ ๋˜๊ณ  b๋Š” a ๋ณด๋‹ค ํฐ ์š”์†Œ๋กœ ํ™•์ธ๋œ๋‹ค. compareFunction ๋‚˜๋Š” ์œ„์— MDN์— ์ ํ˜€์žˆ๋Š” ๋‚ด์šฉ์ด ์ดํ•ด๊ฐ€ ์•ˆ๊ฐ”๋‹ค. (ํ˜น์‹œ ์‰ฝ๊ฒŒ ์„ค๋ช…๊ฐ€๋Šฅํ•˜์‹  ๋ถ„ ๋Œ“๊ธ€๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค.) compareFuncti..
const number = 12345; const test = number.toString(); console.log(typeof test); // type = string toString์€ ์ˆซ์žํƒ€์ž…์„ ๋ฌธ์ž์—ด๋กœ ๋ณ€๊ฒฝํ•ด์ค€๋‹ค. ๋ฌธ์ž์—ด ๋ณ€๊ฒฝ ๋ง๊ณ ๋„ ํ•œ๊ฐ€์ง€์˜ ์‚ฌ์šฉ๋ฒ•์ด ๋” ์žˆ๋Š”๋ฐ ๋ฐ”๋กœ ์ˆซ์ž๋ฅผ ์›ํ•˜๋Š” ์ง„๋ฒ•์œผ๋กœ ๋ณ€๊ฒฝ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. const number = 12; const test = number.toString(2); console.log(typeof test, test); // console.log(string 1100); ํƒ€์ž…์€ ๋™์ผํ•˜๊ฒŒ string์œผ๋กœ ๋ณ€๊ฒฝ๋˜๋ฉฐ ํ•ด๋‹น ์ˆซ์ž๋ฅผ 2์ง„๋ฒ•์œผ๋กœ ๋ณ€๊ฒฝํ•ด์„œ value๋ฅผ ๋ฑ‰๋Š”๋‹ค. ๋งค๊ฐœ๋ณ€์ˆ˜(radix) ๋Š” ์„ ํƒ์‚ฌํ•ญ์ด๋ฉฐ ์ง„๋ฒ•์˜ ๋ณ€ํ™”๊ฐ€ ํ•„์š”ํ• ๋•Œ์™€ ํ•„์š”ํ•˜์ง€ ์•Š์„๋•Œ๋ฅผ ๊ตฌ๋ถ„ํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋ฉด..
substr โŒ // substr(startIndex,length) const str = "์•ˆ๋…•ํ•˜์„ธ์š”"; const substrTest = str.substr(0, 3); console.log(substrTest); //console.log(์•ˆ๋…•ํ•˜) substr์€ ์‚ฌ์‹ค ์‚ฌ์šฉ์„ ๊ถŒํ•˜์ง€ ์•Š๋Š”๋‹ค. ์ด์œ ๋Š” substr()์ด ํฌํ•จ๋œ ECMA-262 ํ‘œ์ค€ ๋ถ€๋ก์— ๋ณธ ๋ถ€๋ก์ด ํฌํ•จํ•œ ๋ชจ๋“  ์–ธ์–ด ๊ธฐ๋Šฅ๊ณผ ํ–‰๋™์€ ํ•˜๋‚˜ ์ด์ƒ์˜ ๋ฐ”๋žŒ์งํ•˜์ง€ ์•Š์€ ํŠน์ง•์„ ๊ฐ–๊ณ  ์žˆ์œผ๋ฉฐ ์‚ฌ์šฉ์ฒ˜๊ฐ€ ์—†์–ด์งˆ ๊ฒฝ์šฐ ๋ช…์„ธ์—์„œ ์ œ๊ฑฐ๋œ๋‹ค๊ณ  MDN ์‚ฌ์ดํŠธ์—์„œ ์นœ์ ˆํžˆ ๊ฒฝ๊ณ ๋ฅผ ๋‚ด๋ณด๋‚ด๊ณ  ์žˆ๊ธฐ๋•Œ๋ฌธ์ด๋‹ค. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต ์ค‘ ๋ฐœ๊ฒฌํ•˜๊ณ  ๋ณ€๊ฒฝํ•˜์˜€๋Š”๋ฐ ์ž˜๋งŒ ์“ฐ๋ฉด ์œ ์šฉํ• ๊ฑฐ ๊ฐ™์€๋ฐ ์กฐ๊ธˆ ์•„์‰ฝ๊ธด ํ•˜๋‹ค. ์‚ฌ์šฉ๋ฒ•์€ ๊ฐ„๋‹จํ•˜๋‹ค. substr(์‹œ์ž‘ํ• ์ธ๋ฑ์Šค, ๊ธธ์ด) ๋ฅผ ์ž…๋ ฅํ•ด์ฃผ๋ฉด ๊ฐ„..
๋ฐ˜๋ณต๋ฌธ์ด๋ž€ ? ๐Ÿคท‍โ™‚๏ธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์—์„œ ๋ฐ˜๋ณต๋ฌธ์ด๋ž€ ์ฃผ์–ด์ง„ ํšŸ์ˆ˜๋งŒํผ ๋ช…๋ น์„ ๋ฐ˜๋ณตํ•˜์—ฌ ์ˆ˜ํ–‰ํ•˜๋„๋ก ์ œ์–ดํ•˜๋Š” ์‹คํ–‰๋ฌธ์ด๋‹ค. ์—ฌ๋Ÿฌ ๋ฐ˜๋ณต๋ฌธ์ด ์žˆ์ง€๋งŒ ์ด ๊ธ€์—์„œ๋Š” ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” for, for...of, for...in ์— ๋Œ€ํ•ด ์ž‘์„ฑํ•˜๊ณ ์ž ํ•œ๋‹ค. for โ™ป for(์ดˆ๊ธฐํ™”์‹; ์กฐ๊ฑด์‹; ์ฆ๊ฐ์‹) { ์‹คํ–‰๋ฌธ; } // ex) for (i = 0; i < 10; i++) { console.log(i); } // console.log(0,1,2,3,4,5,6,7,8,9) for...in ๐Ÿšฉ const num = { one: 1, two: 2, three: 3, four: 4, five: 5, }; for (number in num) { console.log(number); } // console.log(one,two,thr..
YunCow
'JavaScript' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก