iframe ์ผ๋ก ๋ถ๋ฌ์ค๋ฉด ๋ฆฌ์์ค๋ฅผ ๋๋ฒ ๋ถ๋ฌ์ค๊ฒ ๋๋ค.
์๊ณ ๋ฆฌ์ฆ ์์ญ!
๋ฐ์ ์๊ฐ์ ์ค์ด๋ ค๋ฉด ๋ธ๋ผ์ฐ์ ์ ๋ ๋๋ง ๋ฐฉ์์ ์ดํดํ๊ณ ์์ด์ผ ํ๋ค. reflow, repaint
MDN JavaScript ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ
ํด์ ๊ฐ ๊ฐ์ฅ ์ด๋ ค์ด ๋ถ๋ถ์ด๋ค.
reference counting ๋ฐฉ์์ ํตํด์ ์ถ์ ํจ. ์ด๋ค ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ฐ๋ฆฌํค๋ ๋ณ์๊ฐ ํ๋๋ ์์ผ๋ฉด ๋ฉ๋ชจ๋ฆฌ ํด์ .
var me = { age: 30 }; // ์ฐธ์กฐ ์นด์ดํ
1๊ฐ
var you = me; // 2๊ฐ
me = null; // 1๊ฐ
you = null; // 0๊ฐ - ํด์ ๋๋ค.
// ๋ฉ๋ชจ๋ฆฌ ๋์ : ์ฌ์ฉํ์ง ์์ง๋ง ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌ๋์ด ์๋ ๊ฒฝ์ฐ..
var x = {
y: {
z: 1
}
};
// x ์ฐธ์กฐ ๊ฐ์ฒด๋ฅผ object1, y ์ฐธ์กฐ ๊ฐ์ฒด๋ฅผ object2
var a = x; // object1 ๊ฐ์ฒด์ ์ฐธ์กฐ ์นด์ดํธ : 2 ( x, a )
x = 1; // object1 ๊ฐ์ฒด์ ์ฐธ์กฐ ์นด์ดํธ : 1 ( a )
var b = a.y; // object2 ๊ฐ์ฒด์ ์ฐธ์กฐ ์นด์ดํธ : 2 ( y, b )
a = 2; // object1 ๊ฐ์ฒด์ ์ฐธ์กฐ ์นด์ดํธ : 0
// y ๋๋ฌธ์ x๋ ๋ฐ๋ผ๋ณด๋ ๋
์์ด ์์์๋ ๋ฉ๋ชจ๋ฆฌ์ ๋จ์์๊ฒ ๋๋ค.
// ์ ์ญ ๋ณ์๋ฅผ ์ฌ์ฉํ๋ฉด ํ๋ก๊ทธ๋จ ์ข
๋ฃ ์ ๊น์ง ๊ณ์ ๋ฉ๋ชจ๋ฆฌ์ ๋จ์์๊ฒ ๋๋ฏ๋ก, ์ต๋ํ ์ฌ์ฉํ์ง ๋ง์.
๋ฐฐ์ด์ด๋ ๊ฐ์ฒด๋ ๋ถ๋ณํ๋ ๊ฒ ์ฒ๋ผ ๋ค๋ฃจ๊ธฐ.
์๊ฒฉ ๋ชจ๋(strict mode)๋ก ์ฌ์ฉํ๊ธฐ.
์ผ์น ์ฐ์ฐ์ == ๋์ ===๋ก ์ฌ์ฉํ๊ธฐ.
CSS ์์ ๋งํ๋ 1px ์ ์ค ๊ธฐ๊ธฐ์๋ ๋ช ๊ฐ์ pixel์ด ๋ค์ด๊ฐ์๋์ง๋ฅผ ๋ํ๋ธ ๋น์จ. ๋ ํฐ๋ ๋์คํ๋ ์ด์ ์ฌ์ง์ ๋ฃ์ผ๋ฉด ์์์ง๊ธฐ ๋๋ฌธ์, ๊ฐ๋ก ์ธ๋ก ๊ฐ 2๋ฐฐ ์ฌ์ด์ฆ์ ์ด๋ฏธ์ง๋ฅผ ๋ฃ์ด์ ๋์ํด์ผ ํฉ๋๋ค.
JPG : ๊ฐ์ฅ ์ฉ๋์ด ์์ง๋ง ํ์ง๋ ์ข์์ ๋ง์ด ์ฌ์ฉํฉ๋๋ค. ๊ทธ์น๋ง ํฌ๋ช
ํ๊ฐ ๋ถ๊ฐ๋ฅํ ํฌ๋งท์
๋๋ค.
GIF : ์์ง์ด๋ ์ด๋ฏธ์ง๋ฅผ ํํํ ์ ์๊ณ , ํฌ๋ช
๋ ํํ์ด ๊ฐ๋ฅํฉ๋๋ค. ๊ทธ์น๋ง ํ์ง์ด ์ข์ง ์์ต๋๋ค.
PNG : ์ฉ๋์ด ๋น๊ต์ ํฐ ํธ์ด์ง๋ง ํฌ๋ช
ํํ์ด ๊ฐ๋ฅํฉ๋๋ค.
SVG : ๋ฒกํฐ ์ด๋ฏธ์ง๋ก ๊นจ์ง์ง ์๋๋ค๋ ์ฅ์ ์ด ์์ต๋๋ค.
margin ๊ฒน์นฉ ํ์์ ๋งํฉ๋๋ค. ํ์ ์์์ margin-bottom๊ณผ margin-top์ด ๊ฒน์ณ์ ๋ ํฐ ์ชฝ๋ง ๋จ๊ฑฐ๋, window ๋งจ ์์ ์๋ ์์์ margin-top ์ด ์ ์ฉ๋์ง ์๋ ํ์์ ๋งํฉ๋๋ค. ๋ถ๋ชจ ์์๊ฐ์๋ margin ๊ฒน์นจ์ด ์ผ์ด๋๊ธฐ๋ ํฉ๋๋ค. ์์์ display: inline-block์ ๋ฃ๊ฑฐ๋, ๋ถ๋ชจ์ overflow:hidden ์์ฑ์ ์ฃผ๋ ๋ฑ์ ๋ฐฉ๋ฒ์ผ๋ก ํด๊ฒฐํ ์ ์์ต๋๋ค.
์ด๋ฒคํธ ์์์ ๋ถ๋ชจ ์์์ ์ค ์ด๋ฒคํธ ํธ๋ค๋ฌ๋ฅผ ๋ถ์์ ๋, ์์ ์์์ ๋ฐ๋ก ์ด๋ฒคํธ ํธ๋ค๋ฌ๋ฅผ ๋ถ์ด์ง ์์๋ ๋ฒ๋ธ๋ง์ ์ํด ์ด๋ฒคํธ๊ฐ ์ ํ๋์ด ์์ ์์์ ์ด๋ฒคํธ๊ฐ ์ผ์ด๋ฌ์ ๋ ๋์ํ๋ ๊ฒ์ ๋งํฉ๋๋ค. ๊ทธ๋์ event handler ํจ์์ event.target ์ classList๋ฅผ ๊ฒ์ฌํ์ฌ ์ด๋ฒคํธ๊ฐ ์ผ์ด๋ ์์์ ๋ฐ๋ผ ๋ค๋ฅธ ๋์์ด ์ผ์ด๋๊ฒ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.
๋ธ๋ผ์ฐ์ ๋ ์ด๋ฒคํธ๊ฐ ์ผ์ด๋ฌ์ ๋, ์ด๋ฒคํธ์ ์ง์์ง๋ฅผ ์ฐพ์ ์บก์ณ๋ง, ๋ฒ๋ธ๋ง์ ๋จ๊ณ๋ฅผ ๊ฑฐ์น๋ฉด์ ์ด๋ฒคํธ๋ฅผ ์ ํํฉ๋๋ค. ๊ทธ๋์ ํด๋น ํน์ฑ์ ์ด์ฉํ์ฌ ๋ถ๋ชจ ์์์ ์ด๋ฒคํธ ํธ๋ค๋ฌ๋ฅผ ๋ถ์ฌ์ ์์ ์์์ ์ด๋ฒคํธ๋ฅผ ์ปจํธ๋กคํ ์ ์์ต๋๋ค. ํ๋์ ์ด๋ฒคํธ ํธ๋ค๋ฌ๋ง ์ฌ์ฉํ๋ฉด ๋๊ธฐ ๋๋ฌธ์ ๊ด๋ฆฌ๊ฐ ๊ฐํธํ๋ค๋ ์ฅ์ ์ด ์์ต๋๋ค.
ํด๋ก์ ธ๋ ์ธ๋ถ์์ ์ ๊ทผํ ์ ์๋ ํจ์ ๋ด๋ถ์ ๊ณต๊ฐ์ ์ ๊ทผํ๊ธฐ ์ํ ๋ฐฉ๋ฒ์ ์๋ฏธํฉ๋๋ค. ์ด๋ค ๋ณ์๋ฅผ ์บก์ํ, ์๋ํ๊ธฐ ์ํด์ ์ฌ์ฉํ๋ฉฐ, ์๋ํ ํด๋น ๋ณ์์ ๊ฐ์ ๊ฐ์ ธ์ฌ ์ ์๋ getter ํจ์๋ฅผ ํจ์์ return ๊ฐ์ผ๋ก ์ฃผ์ด ์ฌ์ฉํฉ๋๋ค. ํ์์ ๋ฐ๋ผ ๋ณ์์ ๊ฐ์ ์ค์ ํ๋ setter ํจ์๋ ์ด์ฉํ ์ ์์ต๋๋ค.
์ ์ญ ๊ณต๊ฐ์ ํจ์๊ฐ ๊ณ์ ์กด์ฌํ๋ ๊ฒ์ ์๋๋ผ์ ๋ฉ๋ชจ๋ฆฌ ํจ์จ์ด ์ข๋ค๊ณ ํ๋ค. ํ์ง๋ง ๋ฉ๋ชจ๋ฆฌ ์ต์ ํ ์ธก๋ฉด์์๋ ์ข์ง ์๋ค.
function Car(){};
1. var car = Car();
2. var car = new Car();
1 ๋ฒ์ Car ํจ์๊ฐ ์ผ๋ฐ ํจ์๋ก ์คํ๋์ด ์คํ๋ ๋ค์ Return ๊ฐ์ด car ๋ณ์์ ํ ๋น๋ฉ๋๋ค. 2๋ฒ์ Car ๊ฐ ์์ฑ์ ํจ์๋ก ์คํ๋์ด ํจ์ ๋ด์ ๋ฐ๋ก return ๋ฌธ์ด ์๊ฑฐ๋ ์์๊ฐ์ return ํ๋ค๋ฉด instance๊ฐ ์์ฑ๋์ด car์ ํ ๋น๋ฉ๋๋ค. object ๋ฅผ return ํ๋ ๊ฒฝ์ฐ์๋ ํด๋น object๊ฐ ํ ๋น๋ฉ๋๋ค.