๐ปStudy/JavaScript (5) ์ธ๋ค์ผํ ๋ฆฌ์คํธํ ๊ธฐ๋ณธ ํ์ ๊ณผ ํ์ค ๋ฉ์๋ / ์ฐ์ฐ์ * ๊ธฐ๋ณธ ํ์ ๊ณผ ํ์ค ๋ฉ์๋ ์๋ฐ์คํฌ๋ฆฝํธ๋ ๊ธฐ๋ณธ ํ์ (์ซ์, ๋ฌธ์์ด, ๋ถ๋ฆฐ๊ฐ)์ ๋ํด ๊ฐ๊ฐ ํธ์ถ ๊ฐ๋ฅํ ํ์ค ๋ฉ์๋๋ฅผ ์ ์ํ๊ณ ์๋ค. ๊ธฐ๋ณธ ํ์ ์ด ๋ฉ์๋๋ฅผ ํธ์ถํ ๊ฒฝ์ฐ์๋, ๋ฉ์๋ ์ฒ๋ฆฌ ์๊ฐ์ ๊ฐ์ฒด๋ก ๋ณํ๋ ํ ํ์ค ๋ฉ์๋๋ฅผ ํธ์ถํ๋ค. ๋ฉ์๋ ํธ์ถ์ด ๋๋๋ฉด ๋ค์ ๊ธฐ๋ณธ๊ฐ์ผ๋ก ๋์์จ๋ค. ์ด๋ฌํ ๋ฐฉ์์ผ๋ก ๊ธฐ๋ณธ ํ์ ์ ๊ฐ์ฒด๊ฐ ์๋์๋ ๊ฐ ํ์ ๋ณ๋ก ํธ์ถ ๊ฐ๋ฅํ ํ์ค ๋ฉ์๋๋ค์ ๋ง์น ๊ฐ์ฒด์ฒ๋ผ ํธ์ถํ ์ ์๋ค. var num = 0.5; console.log(num.toExponential(1)); // 5.0e-1 console.log("stringtest".charAt(0)); // s * ์ฐ์ฐ์ 1. + ์ฐ์ฐ์ ๋ํ๊ธฐ ์ฐ์ฐ, ๋ฌธ์์ด ์ฐ๊ฒฐ ์ฐ์ฐ ๋ ๊ฐ์ง ์ํ์ ํ๋ค. ์ซ์+์ซ์์ผ ๊ฒฝ์ฐ ๋ํ๊ธฐ ์ฐ์ฐ, ๋๋จธ์ง ๊ฒฝ์ฐ์.. ๋ฐฐ์ด ๋ฐฐ์ด์ ๊ฐ์ฒด์ ํ ์ข ๋ฅ๋ก์, C๋ ์๋ฐ์๋ ๋ค๋ฅด๊ฒ ๊ธธ์ด๋ฅผ ์ง์ ํ์ง ์์๋ ๋๋ฉฐ ๋ฐ์ดํฐ ํ์ ์ ์์ ๋กญ๋ค. * ๋ฐฐ์ด ๋ฆฌํฐ๋ด์ ํตํ ๋ฐฐ์ด ์์ฑ var Arr = ['a', 'b', 'c', 1, true]; console.log(Arr[0]); // a console.log(Arr[7]); // undefined console.log(Arr.length); //5 console.log(Arr); ๋ฌธ์์ด, ๋๋ฒ, boolean ๊ฐ์ด ์ ๋ถ ์๋ ๋ฐฐ์ด์ ๋๊ดํธ([])๋ฅผ ํตํด ์๋ก ์์ฑํ์๋ค. ๋ฐฐ์ด์ ์ธ๋ฑ์ค๋ก ์ ๊ทผํ ์ ์์ผ๋ฉฐ, ์ ์๋์ง ์์ ์ธ๋ฑ์ค์ ๊ฐ์ ์ถ๋ ฅํ๊ณ ์ ํ๋ฉด undefined์ด ์ถ๋ ฅ๋๋ค. ๊ฐ์ฒด์์ ํฌํจํ์ง ์์ ๊ฐ์ฒด ํ๋กํผํฐ์ ์ ๊ทผํ์ ๋ undefined๊ฐ ์ถ๋ ฅ๋๋ ๊ฒ๊ณผ ๋์ผํ ์ํฉ์ธ๋ฐ, ๋ฐฐ์ด ์ญ์ .. ํ๋กํ ํ์ ์๋ฐ์คํฌ๋ฆฝํธ์ ๋ชจ๋ ๊ฐ์ฒด๋ ์์ ์ ๋ถ๋ชจ ์ญํ ์ ํ๋ ๊ฐ์ฒด์ ์ฐ๊ฒฐ๋์ด ์๊ณ , ์ด๊ฒ์ ํ๋กํ ํ์ ๊ฐ์ฒด ๋๋ ํ๋กํ ํ์ ์ด๋ผ๊ณ ๋ถ๋ฅธ๋ค. ๊ฐ์ฒด๋ ์์ ์ ๋ถ๋ชจ ๊ฐ์ฒด์ ํ๋กํผํฐ๋ฅผ ์์ ์ ๊ฒ์ฒ๋ผ ์ฌ์ฉํ ์ ์๋ค. (์์์ ๊ฐ๋ ๊ณผ ์ ์ฌํจ) var obj = { name : 'hello', age : 30 } console.log(obj.toString()); console.dir(obj); obj ๊ฐ์ฒด์ toString() ์ด๋ผ๋ ๋ฉ์๋๊ฐ ์์ง๋ง ์๋ฌ๊ฐ ๋ฐ์ํ์ง ์๋ ์ด์ ๋, obj ๊ฐ์ฒด์ ํ๋กํ ํ์ ์ toString()์ด ์ด๋ฏธ ์ ์๋์ด ์๊ธฐ ๋๋ฌธ์ด๋ค. console.dir(obj)์ ์ถ๋ ฅ๋ฌผ์ ๋ณด๋ฉด _proto_ ์์ toString์ด ์ ์๋์ด ์์์ ํ์ธํ ์ ์๋ค. ๊ทธ ์ธ์๋ valueOf ๋ฑ ๊ธฐ๋ณธ ๋ด์ฅ ๋ฉ์๋๋ฅผ ๊ฐ.. ์๋ฐ์คํฌ๋ฆฝํธ์ ๋ฐ์ดํฐ ํ์ 1. ๊ธฐ๋ณธ ํ์ 1) ์ซ์ (Number) 2) ๋ฌธ์์ด (String) 3) ๋ถ๋ฆฐ๊ฐ (Boolean) 4) undefined 5) null 2. ์ฐธ์กฐ ํ์ 1) ๊ฐ์ฒด (1) ๋ฐฐ์ด (Array) (2) ํจ์ (Function) (3) ์ ๊ทํํ์ ์๋ฐ์คํฌ๋ฆฝํธ๋ ๋์จํ ํ์ ์ฒดํฌ ์ธ์ด์ด๊ธฐ ๋๋ฌธ์ int, char ๋ฑ ๋ณ์์ ๋ฐ์ดํฐ ํ์ ์ ์ง์ ํ๋ ์๊ฒฉํ ํ์ ์ฒดํฌ ์ธ์ด์๋ ๋ค๋ฅด๋ค. var๋ผ๋ ํค์๋๋ก ๋ณ์๋ฅผ ์ ์ธํ๊ณ , ์ฌ๊ธฐ์ ์ด๋ค ํ์ ์ ๋ฐ์ดํฐ๋ผ๋ ์ ์ฅํ ์ ์๋ค. ๋ณ์๋ฅผ ์ ์ธํ๊ณ ์๋ฌด ๊ฒ๋ ๋์ ํ์ง ์์ผ๋ฉด undefined ํ์ ์ด๋ค. 1. ๊ธฐ๋ณธ ํ์ 1) ์ซ์ (Number) - ๋ชจ๋ ์ซ์๋ฅผ 64๋นํธ ๋ถ๋ ์์์ ํํ๋ก ์ ์ฅํ๊ณ , ์ด๋ C์ธ์ด์ double ํ์ ๊ณผ ์ ์ฌํ๋ค. 2) ๋ฌธ์์ด (String) - .. ์๋ฐ์คํฌ๋ฆฝํธ์ ๊ฐ์์ ํต์ฌ ๊ฐ๋ * ์๋ฐ์คํฌ๋ฆฝํธ์ ๊ฐ์์ ์๊ฐ ์คํฌ๋ฆฝํธ ์ธ์ด์ธ ์๋ฐ์คํฌ๋ฆฝํธ๋ ์ด์ฐฝ๊ธฐ์๋ ์น ํ์ด์ง ์ ์์์ ๋ณด์กฐ์ ์ธ ๊ธฐ๋ฅ์ ์ํํ๊ธฐ ์ํด ์ฃผ๋ก ์ฌ์ฉ๋์๋ค. ํ์ง๋ง ์น์ด ๋ฐ์ ํ๋ฉด์, ์๋ฒ์์ ๋ด๋นํ๋ ์ญํ ๋ค์ ์๋น ๋ถ๋ถ ์น ๋ธ๋ผ์ฐ์ ๊ฐ ๋ด๋นํ ์ ์๊ฒ ๋์๊ณ ์ด๋ฌํ ๋ณํ์ ๋ฐ๋ผ ์๋ฐ์คํฌ๋ฆฝํธ์ ์ค์์ฑ์ด ์ปค์ง๊ณ ์๋ค. ํนํ Node.js์ ๋ฑ์ฅ์ผ๋ก ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์ด์ฉํ ์๋ฒ ๊ฐ๋ฐ์ด ํ๋ฐํด์ง๊ณ ์๋ค. ์ด๋ฌํ ๋ณํ์ ๋ฐ๋ผ ์๋ฐ์คํฌ๋ฆฝํธ๋ ํ์ฌ ์ธ๊ณ์ ์ผ๋ก ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋๋ ์ธ์ด ์ค ํ๋๊ฐ ๋์๋ค. ํนํ ์น ๊ฐ๋ฐ์๋ค์ jQuery๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด ์๋ฐ์คํฌ๋ฆฝํธ ํต์ฌ ๊ธฐ๋ฅ์ ๋์ฑ ๊ด์ฌ์ ๊ฐ์ง๊ณ ์๋ค. => ๊ธฐ์กด์ ์ฃผ๋ก ํด๋ผ์ด์ธํธ ์ธ์ด๋ก ์ฌ์ฉ๋๋ ์๋ฐ์คํฌ๋ฆฝํธ๊ฐ ์๋ฒ ๊ฐ๋ฐ์๋ ์ด์ฉ๋จ์ผ๋ก์จ ๊ทธ์ ๋ํ ๊ด์ฌ์ด ์ปค์ง๊ณ ์๋ค. ๋ค์ ๋งํด ์๋ฐ์คํฌ๋ฆฝ.. ์ด์ 1 ๋ค์