๋ชฉ๋ก2022/01 (83)
whatisthis?
๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ(OOP) ์ปดํจํฐ ํ๋ก๊ทธ๋จ์ ๋ช ๋ น์ด์ ๋ชฉ๋ก์ผ๋ก ๋ณด๋ ์๊ฐ์์ ๋ฒ์ด๋ ์ฌ๋ฌ ๊ฐ์ ๋ ๋ฆฝ๋ ๋จ์, ์ฆ "๊ฐ์ฒด"๋ค์ ๋ชจ์์ผ๋ก ํ์ ํ๊ณ ์ ํ๋ ๊ฒ. ๊ฐ๊ฐ์ ๊ฐ์ฒด๋ ๋ฉ์์ง๋ฅผ ์ฃผ๊ณ ๋ฐ๊ณ , ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ ์ ์๋ค. - ์ ์ฐํ๊ณ ๋ณ๊ฒฝ์ด ์ฌ์ >> ๋๊ท๋ชจ ์ํํธ์จ์ด ๊ฐ๋ฐ์ ์ฌ์ฉ. - ๊ฐ๋ฐ, ๋ณด์ ์ฉ์ด / ์ง๊ด์ ์ธ ์ฝ๋ ๋ถ์ ๊ฐ๋ฅ. ๐ ์์ฑ์ (Constructor) - new ์ฐ์ฐ์๋ฅผ ๋ถ์ด๊ณ ๊ฐ์ฒด๋ฅผ ํจ์์ฒ๋ผ ํธ์ถํ๋ ๊ฒ. - ์๋ฐ์คํฌ๋ฆฝํธ์๋ class๊ฐ ์์ผ๋ฏ๋ก ๊ทธ ์ญํ ์ ๋์ ํจ. - ์์ฑ์ํจ์๋ ๋๋ฌธ์๋ก ์์ - this๋ ์์ฑ์ ํจ์ ์์ ์ ๊ฐ๋ฆฌํด. >> new๋ก ๊ฐ์ฒด๋ฅผ ๋ง๋ค ๋ ๊ทธ ๊ฐ์ฒด์ ์ ์ฉ๋จ function Person(name, gender) { // ์์ฑ์ํจ์ (๋๋ฌธ์๋ก ์์) this.na..
์์ฑ์(constructor) Date๊ฐ์ฒด๋ฅผ new Date()๋ก ๋ง๋ค๋ฏ์ด, new๋ฅผ ๋ถ์ด๊ณ ๊ฐ์ฒด๋ฅผ ํจ์์ฒ๋ผ ํธ์ถ ํ๋ ๊ฒ์ด ๋ฐ๋ก ์์ฑ์ ํจ์์ด๋ค. - ๋ค๋ฅธ ์ธ์ด์์๋ class(ํด๋์ค)๊ฐ ์กด์ฌํ์ง๋ง, ์๋ฐ์คํฌ๋ฆฝํธ์์๋ ์กด์ฌํ์ง ์์. - ES2015 ์์ ํด๋์ค๊ฐ ์ต์ด๋ก ๋ฑ์ฅํ์ง๋ง, ๋ค๋ฅธ ์ธ์ด์๋ ๋ค๋ฆ. (๊ฒ๋ง ํด๋์ค์ธ ๋๋. ๊ทธ๋๋ก ํ๋กํ ํ์ ์ ๋ฐ๋ฆ) โ ํด๋์ค vs ํ๋กํ ํ์ ์๋ฐ์คํฌ๋ฆฝํธ์๋ ํด๋์ค๋ผ๋ ๊ฐ๋ ์ด ์๊ณ , ๊ธฐ์กด์ ๊ฐ์ฒด๋ฅผ ๋ณต์ฌ(cloning)ํ์ฌ ์๋ก์ด ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ ํ๋กํ ํ์ ๊ธฐ๋ฐ์ ์ธ์ด์ด๋ค. - ํ๋กํ ํ์ ๊ธฐ๋ฐ ์ธ์ด๋ ๊ฐ์ฒด์ ์ํ์ธ ํ๋กํ ํ์ ์ ์ด์ฉํ์ฌ ์๋ก์ด ๊ฐ์ฒด๋ฅผ ์์ฑํจ. - ๊ทธ๋ ๊ฒ ์์ฑ๋ ๊ฐ์ฒด ์ญ์ ๋ ๋ค๋ฅธ ๊ฐ์ฒด์ ์ํ์ด ๋ ์ ์์. ๐ ํ๋กํ ํ์ 1) ํ๋กํ ํ์ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ..
์ซ์(Number) - ์ซ์ ๋ํ ์์ ๋ํผ ๊ฐ์ฒด (new Number()) ๊ฐ ์กด์ฌํ๊ณ , ๋ฉ์๋๋ฅผ ๊ฐ์ง ์ ์๋ค. ๋๋ณด๊ธฐ >> Wrapper Object ์ ๋ํ ๋ด์ฉ์ ์๋ ํฌ์คํ ์ฐธ์กฐ. javaScript. ๋ํผ๊ฐ์ฒด(Wrapper Object) ์๋ฐ์คํฌ๋ฆฝํธ์ DataType์๋ ์ฌ๋ฌ๊ฐ์ง๊ฐ ์กด์ฌํ๋ค. ๋ฐ์ดํฐํ์ ์ ํฌ๊ฒ ๋๊ฐ์ง๋ก ๊ตฌ๋ถํ ์ ์๋๋ฐ, ๊ทธ๊ฒ์ ๋ค์๊ณผ ๊ฐ๋ค. 1) ์์ ๋ฐ์ดํฐํ์ (Primitive Data Type) number string boolean undefined null 2) ๊ฐ์ฒด.. mywebproject.tistory.com let num1 = 0.1; let num2 = 0.2; num1 + num2; // 0.3000000000000004 ์ปดํจํฐ๋ ์์๋ฅผ 2์ง๋ฒ์ผ๋ก ๋ฐ๊ฟ ๊ณ..
์๋ฐ์คํฌ๋ฆฝํธ์ DataType์๋ ์ฌ๋ฌ๊ฐ์ง๊ฐ ์กด์ฌํ๋ค. ๋ฐ์ดํฐํ์ ์ ํฌ๊ฒ ๋๊ฐ์ง๋ก ๊ตฌ๋ถํ ์ ์๋๋ฐ, ๊ทธ๊ฒ์ ๋ค์๊ณผ ๊ฐ๋ค. 1) ์์ ๋ฐ์ดํฐํ์ (Primitive Data Type) number string boolean undefined null 2) ๊ฐ์ฒดํ ๋ฐ์ดํฐํ์ (Object Data Type) object array function date RegExp (์ ๊ทํํ์) ๋ํผ๊ฐ์ฒด (Wrapper Object) ์ด์ค์์ ๊ฐ์ฒดํ ๋ฐ์ดํฐํ์ ์ ๋ฉ์๋ ๋ฑ ๊ฐ์ฒด ์ด์ฉ๋ฐฉ๋ฒ์ ๊ทธ๋๋ก ์ด์ฉํ ์ ์๋ค. ๐ก ๋ํผ๊ฐ์ฒด (Wrapper Object) - Number / String / Boolean - ์์ํ ํ์ ์ (์ผ์์ ์ผ๋ก) ๊ฐ์ฒดํ ์์ผ์ฃผ๋ ๊ฐ์ฒดํ ๋ฐ์ดํฐ ํ์ ์ ์๋ฏธํจ. >> ์ซ์, ๋ฌธ์์ด, Boolean ๋ฑ ์..
๋ฌธ์์ด(String) - ์์๋ฐ์ดํ('') ๋๋ ํฐ๋ฐ์ดํ("") - ๋ฐฑํฑ๊ธฐํธ (``) + ํ ํ๋ฆฟ ${} - ๋ฌธ์์ด๋ ๊ฐ์ฒด์ด๋ค. new String() /// object - ์ฝ์์ new String()์ด๋ผ๊ณ ์น๋ฉด ์ด๋ค ๊ฐ์ฒด๊ฐ ๋์จ๋ค. - ๋ฌธ์์ด์ ๊ฐ์ฒด์ด๊ธฐ ๋๋ฌธ์ (์ ํํ๋, ์์ ๋ํผ) ๋ฉ์๋๊ฐ ์กด์ฌํ๋ค. ๐ ๋ฌธ์์ด์์ ์ค๋ฐ๊ฟํ๋ ๋ฐฉ๋ฒ >> ์๋ฌด๋ฆฌ ๋ฌธ์์ด์ด ๊ธธ๋๋ผ๋ '\n'์ ๋ฃ์ด์ฃผ์ง ์์ผ๋ฉด ํ ์ค๋ก ์ธ์๋จ. ์ฌ๊ธฐ์, '\n'์ ๊ฐํ๋ฌธ์๋ผ๊ณ ํ๋ค. (=ํ์ถ๋ฌธ์) ๊ณต๋ฐฑ๋ฌธ์ NBSP (Non-Breaking Space) ์ค๋ฐ๊ฟ ์๋ ๊ณต๋ฐฑ - ์ค๋ฐ๊ฟ ๋ฐฉ์ง๋ฅผ ์ํด ํ์ถ๋ฌธ์(๊ฐํ๋ฌธ์) Line Feed(LF) \n / ๋ค์ ์ค๋ก ๋์ด๊ฐ Carriage Return(CR) \r / ์ปค์๊ฐ ์ฒซ ๋ฌธ์๋ก ๋์๊ฐ ๊ฐํ๋ฌธ..
๐จ console ๊ฐ์ฒด์ ๋ฉ์๋ - log - dir - count - time - timeEnd ๐ console.log() Web Console์ ๋ฉ์์ง๋ฅผ ์ถ๋ ฅํ๋ console.log๋ ๊ฐ์ฒด / ๋ฌธ์์ด / ์นํ๋ฌธ์์ด ๋ฑ์ ์ถ๋ ฅํ ์ ์๋ค. +) ๋ก๊น ๋์์ธ์ ๋ฐ๋ผ info / warn / error ๋ ์กด์ฌํ๋ค. ___ ๐ console.dir() ๊ฐ์ฒด๋ dir๋ก , ๋๋จธ์ง๋ log๋ก ๋ก๊น ํ๋ฉด ํธํ๋ค. console.dir(document.body); >>> โ console.dir() ๊ณผ์ ์ฐจ์ด์ ์ ๋ฌด์์ผ๊น? - DOM ์์๋ค์ console๋ก ๋ณด๋ผ ๋ ์ฐจ์ด์ ์ด ์๋ค. console.log - element๋ฅผ HTML๊ณผ ๊ฐ์ ํธ๋ฆฌ๊ตฌ์กฐ๋ก ์ถ๋ ฅ. >> DOM์์์ ๋ํด ํน๋ณ ์ฒ๋ฆฌ ์ ๊ณต - ๊ฐ์ฒด๋ฅผ ๋ก๊น ..
javaScript. ์ซ์์ผ๊ตฌ๊ฒ์ -(1) Bulls and Cows (์ซ์์ผ๊ตฌ) - Rule - - ์ซ์ ์ ์ ํ์ : 10ํ ์ด๋ด - 4์๋ฆฌ์ ์ซ์๋ฅผ ์์๋ก ์ ํจ. - 0์์ 9๊น์ง์ ๋ค๋ฅธ ์ซ์๋ก ๊ตฌ์ฑ๋จ. ์ซ์๋ ๋ง์ง๋ง ์์น๊ฐ ํ๋ฆผ = B(๋ณผ) ์ซ์์ ์์น๊ฐ ๋ง์ = S(์คํธ๋ผ mywebproject.tistory.com let list = [0,1,2,3,4,5,6,7,8,9]; let number = []; for(let i=0; i> splice๋ฅผ ํตํด ํ๋๋ฅผ ๋ฝ๋๋ค๋ฉด list ๋ฐฐ์ด์ length๊ฐ ์ค์ด๋ฌ. ์ดํด ๐ป ๋๋ณด๊ธฐ ์๋ฅผ ๋ค๋ฉด, select๋ก ์ฒซ๋ฒ์งธ๋ก 4๋ฅผ ๋ฝ์๋ค๋ฉด splice์ ์ํด list ๋ฐฐ์ด์ [0, 1, 2, 3, 5, 6, 7, 8, 9]๊ฐ ๋ ๊ฒ์ด๊ณ , number ๋ฐฐ์ด์ nu..
Bulls and Cows (์ซ์์ผ๊ตฌ) - Rule - - ์ซ์ ์ ์ ํ์ : 10ํ ์ด๋ด - 4์๋ฆฌ์ ์ซ์๋ฅผ ์์๋ก ์ ํจ. - 0์์ 9๊น์ง์ ๋ค๋ฅธ ์ซ์๋ก ๊ตฌ์ฑ๋จ. ์ซ์๋ ๋ง์ง๋ง ์์น๊ฐ ํ๋ฆผ = B(๋ณผ) ์ซ์์ ์์น๊ฐ ๋ง์ = S(์คํธ๋ผ์ดํฌ) ์ซ์์ ์์น๊ฐ ์ ๋ถ ํ๋ฆฌ๋ฉด = O(์์) ์> 3 5 9 2 5 3 = 1S 1B ์ฝ๋ ์์ฑ ์ ์ ์์ฌ์ฝ๋๋ฅผ ๋จผ์ ์์ฑํด๋ณด์. 1. ๋จผ์ ์ปดํจํฐ๊ฐ ๋๋คํ 4์๋ฆฌ ์ซ์๋ฅผ ์ง ๋ค. - ๋จ, ์ด๋ 0๋ถํฐ 9๊น์ง ์ค๋ณต๋์ง ์๋๋ก ํด์ผํ๋ค. 1-(1). 0๋ถํฐ 9๊น์ง ๋๋ค ์ซ์๊ฐ ๋์ค๊ฒ ํ๋ ค๋ฉด Math.random() // 0๋ถํฐ 1๊น์ง์ค ๋๋ค์ผ๋ก ์ค์ ์ถ๋ ฅํจ Math.floor(Math.random()*10) // 0๋ถํฐ 9๊น์ง ๋๋ค ์ ์ ์ถ๋ ฅ *..
๋ฐ๋ณต๋ฌธ - ํ๋ก๊ทธ๋๋ฐ์์๋ ์ฝ๋๋ฅผ ๋ฐ๋ณตํ ์ผ์ด ๋ง๋ค. - ๋จ์ํ ๊ฐ์ ์ฝ๋๋ฅผ ๋ฐ๋ณตํ๊ธฐ๋ ํ์ง๋ง, ๋ฐ๋ณตํ ๋๋ง๋ค ์ซ์๋ฅผ 1์ฉ ๋ํ๋ ๋ฑ์ ํ๋์ ํ ์๋ ์๋ค. - ๋ํ์ ์ผ๋ก for๊ณผ while์ด ์๋ค. ๐ For for (let i = 0; i < 10 ; i++) { console.log(i); } for (์์ ; ์กฐ๊ฑด ; ๋) { ๋ด์ฉ } ๊ณผ ๊ฐ์ด ๊ตฌ์ฑ๋์ด์๋ค. ์์์ let i =0 ์กฐ๊ฑด์ i < 10์ด๊ณ ๋์ i ++์ด๋ค. ๊ณผ์ ์ ์ดํด๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ๋ค. 1) for๋ฌธ์ ์์ํ๊ธฐ ์ ์ i = 0์ผ๋ก ์์ํ๋ค. (i๋ผ๋ ๋ณ์๋ฅผ ๋ง๋ค๊ณ 0์ผ๋ก ์ด๊ธฐํ) 2) ์กฐ๊ฑด ๋น๊ต. i < 10์ ๋ง์กฑํ๋ฏ๋ก ๋ด์ฉ ์คํ. (console.log) 3) ๋์ธ i++ ๋ฅผ ์คํ. ( i = i + 1 ์ผ๋ก i=1์ด ๋๋ค...
- ํน์ ์กฐ๊ฑด ์๋์๋ง ์ฝ๋๊ฐ ์คํ๋๋๋ก ํ๋ ๊ตฌ๋ฌธ. - if, switch๊ฐ ๋ํ์ ๐ if๋ฌธ if (์กฐ๊ฑด) { ๋ด์ฉ } - ์กฐ๊ฑด์ด true๋ฉด ๋ด์ฉ์ด ์คํ๋๋ค. const a = 30; if(a > 10) { alert('10๋ณด๋ค ํผ'); } ์์์์ฒ๋ผ a>10์ธ ์กฐ๊ฑด์ true์ด๊ธฐ ๋๋ฌธ์, ์ฆ ์กฐ๊ฑด์ ๋ง์กฑํ๋ฏ๋ก alert๋ฌธ์ด ์คํ๋๋ค. ์ถ๊ฐ๋ก, if ๋ฟ๋ง ์๋๋ผ else๋ else if๋ก ์กฐ๊ฑด์ ๊ตฌ์ฒดํํ ์ ์๋ค. if(a > 10) { alert('10๋ณด๋ค ํผ'); } else if (a > 5) { alert('5๋ณด๋ค ํผ'); } else { alert('5๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์'); } - else๋ if์ ์กฐ๊ฑด์ด false์ผ ๋ ์คํ๋๋ค. - else if๋ ์กฐ๊ฑด์..