์ „์ฒด ๊ธ€ 21

javascript ๋ฉ”์„œ๋“œ call, apply, bind

*call, apply, bind: ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ๋Š” ์ผ๋ฐ˜์ ์ธ ๋ฐฉ๋ฒ• ์™ธ์—๋„ ํ•จ์ˆ˜๋ฅผ ์–ด๋””์„œ ์–ด๋–ป๊ฒŒ ํ˜ธ์ถœํ–ˆ๋Š”์ง€์™€ ๊ด€๊ณ„์—†์ด this๊ฐ€ ๋ฌด์—‡์ธ์ง€ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Œ *call: ๋ชจ๋“  ํ•จ์ˆ˜์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋ฉฐ this๋ฅผ ํŠน์ •๊ฐ’์œผ๋กœ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Œ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด์„œ call์„ ์‚ฌ์šฉํ•˜๊ณ , this๋กœ ์‚ฌ์šฉํ•  ๊ฐ์ฒด๋ฅผ ๋„˜๊ธฐ๋ฉด ํ•ด๋‹นํ•จ์ˆ˜๊ฐ€ ์ฃผ์–ด์ง„ ๊ฐ์ฒด์˜ ๋ฉ”์„œ๋“œ์ธ ๊ฒƒ์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ call์˜ ์ฒซ๋ฒˆ์งธ ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” this๋กœ ์‚ฌ์šฉํ•  ๊ฐ’์ด๊ณ  ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ์žˆ์œผ๋ฉด ๊ทธ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ํ•จ์ˆ˜๋กœ ์ „๋‹ฌ๋จ const mike = { name: "Mike", }; const tom = { name: "Tom", }; function showThisName(){ console.log(this.name); } //์—ฌ๊ธฐ์„œ this๋Š” window๋ฅผ ๊ฐ€๋ฆฌ..

js 2022.10.31

javascript setTimeout / setInterval

* setTimeout: ์ผ์ • ์‹œ๊ฐ„์ด ์ง€๋‚œ ํ›„ ํ•จ์ˆ˜ ์‹คํ–‰ -2๊ฐœ์˜ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๋ฐ›์Œ fn: ์ผ์ • ์‹œ๊ฐ„์ด ์ง€๋‚œ ๋’ค ์‹คํ–‰ํ•˜๋Š” ํ•จ์ˆ˜ / 3000: ์‹œ๊ฐ„(=3s) function fn(){ console.log(3) } setTimeout(fn,3000); setTimeout(function(){ console.log(3) },3000); //๋™์ผํ•˜๊ฒŒ ๋™์ž‘ -์ธ์ˆ˜๊ฐ€ ํ•„์š”ํ•  ๊ฒฝ์šฐ ์‹œ๊ฐ„ ๋’ค์— , ์ถ”๊ฐ€ํ•ด์„œ ์ ์œผ๋ฉด ๋จ -showName: ํ•จ์ˆ˜ / 3000: ์‹œ๊ฐ„ / 'Mike': ์ธ์ˆ˜. ํ•ด๋‹น ํ•จ์ˆ˜์˜ ์ฒซ๋ฒˆ์งธ ์ธ์ˆ˜๋กœ ์ „๋‹ฌ function showName(name){ console.log(name); } setTimeout(showName,3000,'Mike'); โ—Ž clearTimeout(tId): ์˜ˆ์ •๋œ ์ž‘์—…์„ ์—†์• ์คŒ. ..

js 2022.10.31

javascript ํด๋กœ์ €(Closure)

* Closure(ํด๋กœ์ €): ํ•จ์ˆ˜์™€ ๋ ‰์‹œ์ปฌ ํ™˜๊ฒฝ์˜ ์กฐํ•ฉ - ํ•จ์ˆ˜๊ฐ€ ์ƒ์„ฑ๋  ๋‹น์‹œ์˜ ์™ธ๋ถ€ ๋ณ€์ˆ˜๋ฅผ ๊ธฐ์–ตํ•˜๊ณ  ์ƒ์„ฑ๋œ ์ดํ›„์—๋„ ๊ณ„์†ํ•ด์„œ ์ ‘๊ทผ ๊ฐ€๋Šฅ - ์™ธ๋ถ€ํ•จ์ˆ˜์˜ ์‹คํ–‰์ด ๋๋‚˜์„œ ์™ธ๋ถ€ํ•จ์ˆ˜๊ฐ€ ์†Œ๋ฉธ๋œ ์ดํ›„์—๋„ ๋‚ด๋ถ€ํ•จ์ˆ˜๊ฐ€ ์™ธ๋ถ€ํ•จ์ˆ˜์˜ ๋ณ€์ˆ˜์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Œ * ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ์–ดํœ˜์  ํ™˜๊ฒฝ(Lexical environment)๋ฅผ ๊ฐ–๊ณ  ์žˆ์Œ ์˜ˆ์‹œ1) let one; one = 1; function addOne(num) { console.log(one + num); } addOne(5); //6 ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ์Šคํฌ๋ฆฝํŠธ ๋‚ด์—์„œ ์„ ์–ธํ•œ ๋ณ€์ˆ˜๋“ค์ด Lexical ํ™˜๊ฒฝ์— ์˜ฌ๋ผ๊ฐ - let์œผ๋กœ ์„ ์–ธํ•œ ๋ณ€์ˆ˜ -> one: ์ดˆ๊ธฐํ™”๊ฐ€ ์•ˆ ๋˜์–ด ์žˆ์Œ = >์‚ฌ์šฉ ๋ชปํ•จ - ํ•จ์ˆ˜์„ ์–ธ๋ฌธ -> ๋ณ€์ˆ˜์™€ ๋‹ฌ๋ฆฌ ๋ฐ”๋กœ ์ดˆ๊ธฐํ™” ๋จ -> addOne: fuction..

js 2022.10.28

javascript ๋‚˜๋จธ์ง€ ๋งค๊ฐœ๋ณ€์ˆ˜, ์ „๊ฐœ ๊ตฌ๋ฌธ(Rest parameters, Spread syntax)

* ์ธ์ˆ˜ ์ „๋‹ฌ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ ๋„˜๊ฒจ์ฃผ๋Š” ํ•จ์ˆ˜์˜ ์ธ์ˆ˜ ๊ฐฏ์ˆ˜๋Š” ์ œํ•œ X ์ธ์ˆ˜์˜ ๊ฐฏ์ˆ˜๋Š” ์ •ํ•ด๋†“๊ณ  ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด๋„ ์‹ค์ œ ํ˜ธ์ถœ ์‹œ ์ •ํ™•ํžˆ ๊ทธ ๊ฐฏ์ˆ˜๋ฅผ ๋งž์ถฐ ์ค„ ํ•„์š” X ์•„๋ฌด๊ฒƒ๋„ ์ „๋‹ฌํ•˜์ง€ ์•Š์•„๋„ ๋จ -> undefined๋กœ ๋‚˜์˜ด(์—๋Ÿฌ๋ฐœ์ƒ x) function showName(name){ console.log(name); } showName('Mike'); //'Mike' showName('Mike','Tom'); //'Mike' showName(); //undefined ํ•จ์ˆ˜์˜ ์ธ์ˆ˜๋ฅผ ์–ป๋Š” ๋ฐฉ๋ฒ• 1. arguments๋กœ ์ ‘๊ทผ: ๊ณผ๊ฑฐ ์‚ฌ์šฉ ๋ฐฉ๋ฒ•, ํ™”์‚ดํ‘œ ํ•จ์ˆ˜์—์„œ๋Š” ์‚ฌ์šฉ ๋ถˆ๊ฐ€ 2. ๋‚˜๋จธ์ง€ ๋งค๊ฐœ ๋ณ€์ˆ˜ ์‚ฌ์šฉ: ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ• ์žˆ์Œ 1. arguments - ํ•จ์ˆ˜๋กœ ๋„˜์–ด ์˜จ ๋ชจ๋“  ์ธ์ˆ˜์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Œ - ํ•จ์ˆ˜ ๋‚ด์—์„œ ์ด์šฉ ๊ฐ€๋Šฅ..

js 2022.10.28

javascript ๊ตฌ์กฐ ๋ถ„ํ•ด ํ• ๋‹น(Destructuring assignment)

- Destructuring assignment: ๊ตฌ์กฐ ๋ถ„ํ•ด ํ• ๋‹น ๊ตฌ๋ฌธ์€ ๋ฐฐ์—ด์ด๋‚˜ ๊ฐ์ฒด์˜ ์†์„ฑ์„ ๋ถ„ํ•ดํ•ด์„œ ๊ทธ ๊ฐ’์„ ๋ณ€์ˆ˜์— ๋‹ด์„ ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” ํ‘œํ˜„์‹ - ๋ฐฐ์—ด ๊ตฌ์กฐ ๋ถ„ํ•ด let [x,y] = [1,2]; console.log(x); //1 console.log(y); //2 let user1์€ let users[0] ์š”์†Œ์™€ ๋™์ผ let users = ['Mike', 'Tom', 'Jane']; let [user1, user2, user3] = users; console.log(user1); //'Mike' console.log(user2); //'Tom' console.log(user3); //'jane' split ์ด์šฉํ•ด๋„ ๊ฐ€๋Šฅ let str = "Mike-Tom-Jane"; let [user1, use..

js 2022.10.04

javascript ๋ฐฐ์—ด ๋ฉ”์†Œ๋“œ2(sort, reduce)

- arr.sort(): ๋ฐฐ์—ด ์žฌ์ •๋ ฌ, ์ธ์ˆ˜๋กœ ์ •๋ ฌ ๋กœ์ง์„ ๋‹ด์€ ํ•จ์ˆ˜๋ฅผ ๋ฐ›์Œ ๋ฐฐ์—ด ์ž์ฒด๊ฐ€ ๋ณ€๊ฒฝ ๋˜์–ด์„œ ์ฃผ์˜ ํ•„์š” let arr = [1,5,4,2,3]; arr.sort(); console.log(arr); //(5) [1, 2, 3, 4, 5] let arr = ['a','d','z','c','w']; arr.sort(); console.log(arr); //(5) ['a', 'c', 'd', 'w', 'z'] ์•ž์ž๋ฆฌ ์ˆซ์ž๋ฅผ ์ธ์‹ํ•ด์„œ ๋ฐฐ์—ดํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ˆซ์ž ์ˆœ์„œ๋Œ€๋กœ ๋ฐฐ์—ดํ•  ๊ฒฝ์šฐ fn ์‚ฌ์šฉํ•ด์•ผํ•จ ํ•จ์ˆ˜ ์ด์šฉํ•ด ์–‘์ˆ˜์ธ์ง€ ์Œ์ˆ˜์ธ์ง€ 0 ์ธ์ง€ ํŒ๋‹จ let arr = [27,8,5,13]; arr.sort((a,b) => { return a - b; }); console.log(arr); //(4) [5,8,13,2..

js 2022.10.04

javascript ๋ฐฐ์—ด ๋ฉ”์†Œ๋“œ(Array methods)

- arr.splice(n,m): ํŠน์ • ์š”์†Œ ์ง€์›€ n-> ์‹œ์ž‘ / m -> ๊ฐœ์ˆ˜ let arr = [1,2,3,4,5]; arr.splice(1,2); console.log(arr); //[1,4,5] - arr.splice(n,m,x): ํŠน์ • ์š”์†Œ ์ง€์šฐ๊ณ  ์ถ”๊ฐ€ let arr = [1,2,3,4,5]; arr.splice(1,3,100,200); console.log(arr); //[1,100,200,5] -> m ์ž๋ฆฌ์— 0์ด ๋“ค์–ด๊ฐˆ ๊ฒฝ์šฐ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ๋Š” ์ˆซ์ž ๊ฐฏ์ˆ˜ ์—†์ด x๋ฅผ ์ถ”๊ฐ€ํ•จ let arr = ["๋‚˜๋Š”", "์œถ", "์ž…๋‹ˆ๋‹ค"] arr.splice(1,0,"๋Œ€ํ•œ๋ฏผ๊ตญ", "์‚ฌ๋žŒ"); console.log(arr); //["๋‚˜๋Š”","๋Œ€ํ•œ๋ฏผ๊ตญ","์‚ฌ๋žŒ","์œถ","์ž…๋‹ˆ๋‹ค"] - arr.splice(): ์‚ญ..

js 2022.10.04

javascript ์ˆซ์ž ์ˆ˜ํ•™ method

๊ฐœ๋ฐœํ•˜๋‹ค๋ณด๋ฉด 2์ง„์ˆ˜ , ์ƒ‰์ƒํ‘œํ˜„์„ ์œ„ํ•ด 16์ง„์ˆ˜๊ฐ€ ํ•„์š”ํ•  ๋•Œ ์ƒ๊น€ > 10์ง„์ˆ˜๋ฅผ 2์ง„์ˆ˜, 16์ง„์ˆ˜๋กœ ๋ณ€ํ™˜ - toString : ์ˆซ์ž๋ฅผ ํ•ด๋‹นํ•˜๋Š” ์ง„๋ฒ•์œผ๋กœ ๋ณ€ํ™˜ let num = 10; console.log(num.toString()); //10 console.log(num.toString(2)); //1010 let num2 = 255; console.log(num2.toString()); //255 console.log(num2.toString(16)); //ff (์ƒ‰์ƒ์ฝ”๋“œ) * Math: js์—๋Š” ์ˆ˜ํ•™๊ณผ ๊ด€๋ จ๋œ ํ”„๋กœํผํ‹ฐ์™€ ๋ฉ”์†Œ๋“œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” Math ๋‚ด์žฅ ๊ฐ์ฒด ์กด์žฌ ํ”„๋กœํผํ‹ฐ ์˜ˆ์‹œ) - Math.PI ์›์ฃผ์œจ console.log(Math.PI); //3.141592653589793 - Math.cei..

js 2022.09.01

javascript ์‹ฌ๋ณผ(Symbol)

-symbol: ์œ ์ผํ•œ ์‹๋ณ„์ž๋ฅผ ๋งŒ๋“ค ๋•Œ ์‚ฌ์šฉ. ์œ ์ผ์„ฑ์ด ๋ณด์žฅ ๋จ const a = Symbol(); //new๋ฅผ ๋ถ™์ด์ง€ ์•Š์Œ const b = Symbol(); console.log(a) console.log(b) ๊ฒฐ๊ณผ Symbol() Symbol() ์ผ์น˜ ์—ฐ์‚ฐ์ž๋กœ ํ™•์ธ ์‹œ a == b; false - property key : ์‹ฌ๋ณผํ˜• const id = Symbol('id'); const user = { name : 'Mike', age : 30, [id] : 'myid' } console.log(user) ๊ฒฐ๊ณผ {name: 'Mike', age: 30, Symbol(id): 'myid'} -> Object ์‚ฌ์šฉ ์‹œ const id = Symbol('id'); const user = { name : ..

js 2022.08.31

javascript ๊ฐ์ฒด ๋ฉ”์†Œ๋“œ(Object methods), ๊ณ„์‚ฐ๋œ ํ”„๋กœํผํ‹ฐ(Computed propery)

let n = "name"; let a = "age"; const user = { [n] : "Mike", [a] : 30, [1+4] : 5, }; console.log(user); ๊ฒฐ๊ณผ {5: 5, name: 'Mike', age: 30} 5: 5age: 30 name: "Mike" [[Prototype]]: Object - ์–ด๋–ค๊ฒŒ ํ‚ค๊ฐ€ ๋  ์ง€ ๋ชจ๋ฅผ ๋•Œ ์œ ์šฉ function makeObj(key,val) { return { [key] : val, }; } const obj = makeObj("๋‚˜์ด", 33); console.log(obj); ๊ฒฐ๊ณผ {๋‚˜์ด: 33} -๊ฐ์ฒด ๋ฉ”์†Œ๋“œ const user = { name: "Mike", age:"30", }; const user2 = user; user2.na..

js 2022.08.29