javascript/๐ study39 [3์ฃผ์ฐจ ์คํฐ๋]19์ฅ-ํ๋กํ ํ์ ํ๋กํ ํ์ ์๋ฐ์คํฌ๋ฆฝํธ๋ ๋ช ๋ นํ, ํจ์ํ, ํ๋กํ ํ์ ๊ธฐ๋ฐ ๊ฐ์ฒด์งํฅ์ ์ง์ํ๋ ๋ฉํฐ ํจ๋ฌ๋ค์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด js ์์ ์์ ํ์ ๊ฐ์ ์ ์ธํ ๋๋จธ์ง ๊ฐ๋ค์ ๋ชจ๋ ๊ฐ์ฒด ์์๊ณผ ํ๋กํ ํ์ ์์(inheritance)์ ํตํด ๊ฐ์ฒด์ ํ๋กํผํฐ, ๋ฉ์๋๋ฅผ ๋ค๋ฅธ ๊ฐ์ฒด๊ฐ ์์๋ฐ์ ๊ทธ๋๋ก ์ฌ์ฉํ ์ ์๊ฒ ๋จ. JavaScript๋ ํ๋กํ ํ์ ์ ๊ธฐ๋ฐ์ผ๋ก ์์์ ๊ตฌํํ์ฌ ๋ถํ์ํ ์ค๋ณต์ ์ ๊ฑฐ. ํ๋กํ ํ์ ์ฌ์ฉx function Circle(radius){ this.radius = radius; this.getArea = function () { return Math.PI * this.radius ** 2; }; } const circle1 = new Circle(1); const circle2 = new Circle(2.. 2022. 2. 14. [3์ฃผ์ฐจ ์คํฐ๋]18์ฅ-ํจ์์ ์ผ๊ธ๊ฐ์ฒด ํจ์์ ์ผ๊ธ ๊ฐ์ฒด ๋ค์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ๊ฐ์ฒด๋ฅผ ์ผ๊ธ ๊ฐ์ฒด ๋ผ๊ณ ํ๋ค. 1.๋ฌด๋ช ์ ๋ฆฌํฐ๋ด๋ก ์์ฑ ๊ฐ๋ฅ (= ๋ฐํ์์ ์์ฑ ๊ฐ๋ฅ) 2.๋ณ์๋ ์๋ฃ๊ตฌ์กฐ์ ์ ์ฅ ๊ฐ๋ฅ 3.ํจ์์ ๋งค๊ฐ๋ณ์๋ก ์ ๋ฌ ๊ฐ๋ฅ 4 ํจ์์ ๋ฐํ๊ฐ์ผ๋ก ์ฌ์ฉ ๊ฐ๋ฅ ์๋ฐ์คํฌ๋ฆฝํธ์ ํจ์๋ ์ผ๊ธ ๊ฐ์ฒด ํจ์๊ฐ์ฒด์ ํ๋กํผํฐ ํจ์๊ฐ์ฒด๋ ์ผ๋ฐ ๊ฐ์ฒด์ ์๋ ๊ณ ์ ์ ํ๋กํผํฐ๋ฅผ ๊ฐ์ง๋๋ค. arguments, caller, length, name, __proto__ arguments ํ๋กํผํฐ ๋ชจ๋ ์ธ์๋ ์๋ฌต์ ์ผ๋ก arguments ๊ฐ์ฒด์ ํ๋กํผํฐ๋ก ๋ณด๊ด๋๋ค. ์๋ฐ์คํฌ๋ฆฝํธ์์ ํจ์์ ๋งค๊ฐ๋ณ์์ ์ธ์์ ๊ฐ์๊ฐ ์ผ์นํ๋ ์ง ํ์ธ ํ์ง ์์ arguments ๊ฐ์ฒด๋ length ํ๋กํผํฐ๊ฐ ์๋ ์ ์ฌ ๋ฐฐ์ด ๊ฐ์ฒด ์ด๋ฏ๋ก ์ํ ๊ฐ๋ฅ(iterable)ํ๋ค ๊ฐ๋ณ ์ธ์ ํจ์๋ฅผ ๊ตฌ.. 2022. 2. 14. [3์ฃผ์ฐจ ์คํฐ๋] 17์ฅ-์์ฑ์ ํจ์ ์์ฑ์ ํจ์์ ์ํ ๊ฐ์ฒด ์์ฑ Object ์์ฑ์ ํจ์ new์ฐ์ฐ์์ ํจ๊ป Object ์์ฑ์ ํจ์๋ฅผ ํธ์ถํ๋ฉด ๋น ๊ฐ์ฒด๋ฅผ ์์ฑํ์ฌ ๋ฐํํจ Object ์์ฑ์ ํจ์ ์ด์ธ์๋ String, Number, Boolean, Function, Array, Date, RegExp, Promise ๋ฑ ๋นํธ์ธ ์์ฑ์ ํจ์๋ฅผ ์ ๊ณต // ๋น ๊ฐ์ฒด์ ์์ฑ const person = new Object(); // ํ๋กํผํฐ ์ถ๊ฐ person.name = 'Lee'; person.sayHello = function () { console.log('Hi! My name is ' + this.name); }; console.log(person); // {name: "Lee", sayHello: ƒ} pe.. 2022. 2. 14. [3์ฃผ์ฐจ ์คํฐ๋] 16์ฅ ํ๋กํผํฐ, ์ดํธ๋ฆฌ๋ทฐํธ ํ๋กํผํฐ ์ดํธ๋ฆฌ๋ทฐํธ ๋ด๋ถ์ฌ๋กฏ๊ณผ ๋ด๋ถ ๋ฉ์๋ ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ ๊ตฌํ ์๊ณ ๋ฆฌ์ฆ์ ์ค๋ช ํ๊ธฐ์ํด ECMAScript ์ฌ์์์ ์ฌ์ฉํ๋ ์์ฌ ํ๋กํผํฐpseudo property์ ์์ฌ ๋ฉ์๋pseudo method ECMAScript ์ฌ์์์ ์ด์ค๋๊ดํธ ([[ ... ]])๋ก ๊ฐ์ผ์ด๋ฆ๋ค์ด ๋ด๋ถ ์ฌ๋กฏ๊ณผ ๋ด๋ถ ๋ฉ์๋ ๊ฐ๋ฐ์๊ฐ ์ง์ ์ ๊ทผํ ์ ์๋ ๊ณต๊ฐ๋ ํ๋กํผํฐ๋ ์๋ ์ผ๋ถ์ ํํ์ฌ ๊ฐ์ ์ ์ผ๋ก ์ ๊ทผํ ์ ์๋ ์๋จ์ด ์ ๊ณต๋จ ex) ๋ชจ๋ ๊ฐ์ฒด๋ [[Prototype]]์ด๋ผ๋ ๋ด๋ถ ์ฌ๋กฏ์ ๊ฐ์ต๋๋ค. [[Prototype]]์ ๊ฒฝ์ฐ, proto๋ฅผ ํตํด ๊ฐ์ ์ ์ผ๋ก ์ ๊ทผ ํ ์ ์์ต๋๋ค. ํ๋กํผํฐ ์ดํฐ๋ฆฌ๋ทฐํธ, ํ๋กํผํฐ ๋์คํฌ๋ฆฝํฐ ๊ฐ์ฒด ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ ํ๋กํผํฐ๋ฅผ ์์ฑํ ๋ ํ๋กํผํฐ์ ์ํ๋ฅผ ๋ํ๋ด๋ ํ๋กํผํฐ ์ดํธ๋ฆฌ๋ทฐํธ๋ฅผ .. 2022. 2. 14. [2์ฃผ์ฐจ ์คํฐ๋]15์ฅ-let const ๋ธ๋ก ์ค์ฝํ let, const ํค์๋์ ๋ธ๋ก ๋ ๋ฒจ ์ค์ฝํ var ํค์๋ ๋ณ์ ๋ฌธ์ ์ ์ค๋ณต์ ์ธ ํ์ฉ ํจ์๋ ๋ฒจ ์ค์ฝํ var ํค์๋๋ก ์ ์ธํ ๋ณ์๋ ์ค๋ก์ง ํจ์ ์ค์ฝํ ๋ด์์๋ง ์ง์ญ ์ค์ฝํ๋ก ์ธ์ ๋ฉ๋๋ค. var x = 1; if (true) { // x๋ ์ ์ญ ๋ณ์๋ค. ์ด๋ฏธ ์ ์ธ๋ ์ ์ญ ๋ณ์ x๊ฐ ์์ผ๋ฏ๋ก x ๋ณ์๋ ์ค๋ณต ์ ์ธ๋๋ค. // ์ด๋ ์๋์น ์๊ฒ ๋ณ์๊ฐ์ด ๋ณ๊ฒฝ๋๋ ๋ถ์์ฉ์ ๋ฐ์์ํจ๋ค. var x = 10; } console.log(x); // 10 ๋ณ์ ํธ์ด์คํ var ํค์๋ ์ด์ฉ์ ํธ์ด์คํ ์ ์ํด ํ ๋น ์ด์ ์ ์ฐธ์กฐ ๊ฐ๋ฅ // ์ด ์์ ์๋ ๋ณ์ ํธ์ด์คํ ์ ์ํด ์ด๋ฏธ foo ๋ณ์๊ฐ ์ ์ธ๋์๋ค(1. ์ ์ธ ๋จ๊ณ) // ๋ณ์ foo๋ undefined๋ก ์ด๊ธฐํ๋๋ค. (2. ์ด๊ธฐํ ๋จ๊ณ) console.log(foo.. 2022. 2. 6. [2์ฃผ์ฐจ ์คํฐ๋]14์ฅ-์ ์ญ๋ณ์ ๋ฌธ์ ์ ์ ์ญ ๋ณ์์ ๋ฌธ์ ์ ๋ณ์์ ์๋ช ์ฃผ๊ธฐ ์ ์ญ ๋ณ์์ ์๋ช ์ฃผ๊ธฐ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์๋ช ์ฃผ๊ธฐ์ ๊ฐ๋ค ์ง์ญ ๋ณ์์ ์๋ช ์ฃผ๊ธฐ๋ ํจ์์ ์๋ช ์ฃผ๊ธฐ์ ์ผ์นํ๋ค. ๋จ, ๋๊ตฐ๊ฐ ์ค์ฝํ๋ฅผ ์ฐธ์กฐํ๊ณ ์์ผ๋ฉด ์ค์ฝํ๋ ์๋ฉธํ์ง ์๊ณ ์์กด (ํด๋ก์ ๊ฐ๋ ) ํธ์ด์คํ ์ ์ค์ฝํ ๋จ์๋ก ๋์ํ๋ค. var x = 'global'; function foo() { console.log(x); // undefined var x = 'local'; } foo(); console.log(x); // global ์ ์ญ ๊ฐ์ฒด ์ ์ญ ๊ฐ์ฒด๋ ์ฝ๋๊ฐ ์คํ ๋๊ธฐ ์ด์ ๋จ๊ณ์ ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ ์ํด ์ด๋ค ๊ฐ์ฒด ๋ณด๋ค๋ ๋จผ์ ์์ฑ๋๋ ํน์ํ ๊ฐ์ฒด ๋ธ๋ผ์ฐ์ ์์๋ window๊ฐ ์ ์ญ๊ฐ์ฒด, node.js์์๋ global ์ด ์ ์ญ๊ฐ์ฒด .. 2022. 2. 6. ์ด์ 1 2 3 4 5 6 7 ๋ค์