Vanlia javascript๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ํ๋ ์์ํฌ๋ฅผ ์ฐ์ง ์์ ์์ ์๋ฐ์คํฌ๋ฆฝํธ์ด๋ค.
๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์์ผ๋ ์๋๋ ๋น์ฐ ๋น ๋ฅด๋ค. ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์์ด์ ๋๋ฒ๊น
ํ ๋๋ ํธํ๋ค.
์ฒ์ ๊ฐ๋ฐ์ ์์ํ๋ฉด์ ๋ฐ๋ก ์ ์ด์ฟผ๋ฆฌ๋ฅผ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ๊ทธ๊ฒ ์ ์ผ ์ต์ํ๋ค. ๊ทธ๋ฐ๋ฐ ๋ช๋
์ ๋ถํฐ ์ ์ด์ฟผ๋ฆฌ๋ฅผ ์ง์ํ์๋ ๊ธ์ ๋ง์ด ๋ดค๋๋ฐ ์
๋ฌด์ ์ผ๋ก๋ ์์ง ์ฐ๊ธฐ๋๋ฌธ์ ๋์ง ๋ชปํ๋คใ
ใ
์ด๋ฒ์ ๊ฐ์ธ์ ์ผ๋ก ํ๋ก์ ํธ๋ฅผ ํ๋๋ฐ ์ ์ด์ฟผ๋ฆฌ๋ก ๋น ๋ฅด๊ฒ ๋ง๋ค๊ณ ๋ฐ๋๋ผjs๋ก ๋ฐ๊พธ๋๊ฑธ ํ๋ ค๊ณ ํ๋๋ฐ.. ์ฒ์๋ถํฐ ๋ฐ๋๋ผjs๋ก ํ๋๊ฒ ๋ซ๋ค๊ณ ํ๋จ์ด ๋์ด์ ์์ํด๋ดค๋ค!
์ ์ด์ฟผ๋ฆฌ๋ ์
๋ ํฐ๊ฐ ๋๋ฌด ํธํ์ด์ ์ฒ์์ ์คํฌ๋ฆฝํธ๋ฅผ ์์ฑํ์ ๋, document.querySelector~ ๋ฅผ ์ฐ๋๊ฒ ์ ์์ด ์๋๋ค.
๊ทธ๋ฆฌ๊ณ click์ด๋ฒคํธ ์ค๋๋ addEventListener()๋ฅผ ์ฐ๋๊ฑฐ๋.. querySelectorAll์์ click์ด๋ฒคํธ ์ค๋ ์ ์ด์ฟผ๋ฆฌ๋์ ๋ค๋ฅด๊ฒ nodeList๋ก ๋ฐํ๋๊ธฐ ๋๋ฌธ์ for๋ฌธ์ด๋ foreach๋ฌธ์ผ๋ก ๋๋ ค์ผํ๋๊ฑฐ๋ ๊ท์ฐฎ์๋ค.
์ ์ด์ฟผ๋ฆฌ๋ก ํ์ค์ ๋๋๋๊ฑธ ๋์ค์ด์ ์ฐ๊ฒ๋๋๊ฒ ์ซ ๊ท์ฐฎ์์ง๋ง ํ๋ค๋ณด๋ฉด ์ ์์ด ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ฒ์์ js๋ฅผ ์์ฑํ๋๋ฐ "addeventlistener is not a function" ์ด๋ฐ ์ค๋ฅ๊ฐ ๋ ์ ๊ฒ์ํด๋ณด๋, window.onload ์์ ์คํฌ๋ฆฝํธ๋ฅผ ๋ฃ์ผ๋ผํด์ ์ด๊ฑด ํด๊ฒฐ๋๋ค. body ํ๊ทธ์์์ ๋งจ ๋ฐ์ ์คํฌ๋ฆฝํธ๋ฅผ ๋ถ๋ฅด๋ฉด dom์์ฑํ๊ณ ๊ทธ๋ค์์ ์ซ ๋ฆ๊ฒ ๋ถ๋ฌ์ง๋๊ฑฐ ์๋๊ฐ?.. ๋ญ๊ฐ ๋ฌธ์ ์ง ๋ชจ๋ฅด๊ฒ ๋ค! ์ผ๋จ์ ์ด๋ ๊ฒ ํด๊ฒฐ๋์ผ๋ ๋์ค์ ๋ ์์ธํ ์ฐพ์๋ด์ผ๊ฒ ๋ค.
Vanila JS vs jQuery
// jQuery
const test = $('.test-class');
// javascript
const test = document.querySelector('.test-class');
// jQuery
test.addClass('add-class');
test.removeClass('add-class');
// javascript
test.classList.add('add-class');
test.classList.remove('add-class');
// jQuery
const testList = $('.test-class');
testList.click(function(){
console.log('test');
});
// javascript
const testList = document.querySelectorAll('.test-class');
for( const test of testList ){
inputNumber.addEventListener('keyup', function(){
console.log('click test');
});
}
์ ์ด์ฟผ๋ฆฌ๋ฅผ ์ง์ํ๋ ์ด์ ๋ ๋ฐ๋๋ผjs๊ฐ ๋น ๋ฅด๊ธฐ ๋๋ฌธ์ด๋ค. ๊ทธ๋ฆฌ๊ณ ์์js๋ก๋ง ์์ฑ์ ํด๋ณด๊ณ ์ถ์๊ณ ์์ฆ ํ์ฌ ์ฑ์ฉ๊ณต๊ณ ๋ฅผ ๋ณด๋ฉด ์ ์ด์ฟผ๋ฆฌ๊ฐ ๋ณ๋ก ์์ด์ ๊ทธ ์ถ์ธ๋ฅผ ๋ฐ๋ฅด๋๊ฒ ๋ง๋ค๊ณ ์๊ฐํ๋ค.
๊ทธ๋ฐ๋ฐ ์๋ ์์ ํ๋ก์ ํธ๋ค๋ณด๋, ํจ์ฌ ๋น ๋ฅด๋ค๋ผ๋๊ฑธ ๋ชป๋๊ผ์ด์ ์์ฝ๊ธด ํ์ง๋ง.. ์ ์ด์ฟผ๋ฆฌ๋ก ๋จผ์ ์์ฑํ๊ณ ์ฑ๋ฅ ํ
์คํธ ํ๋ค์์ ๋ฐ๋๋ผjs๋ก ๋ฐ๊ฟ๋ณผ๊ป ๊ทธ๋ฌ๋.. ๋์ค์ ํ๋ก์ ํธ ํ๊ฒ๋๋ค๋ฉด ๊ทธ๋ ๊ฒ ํด๋ด์ผ๊ฒ ๋ค!