const, let은 자바스크립트 ES6(ECMA 2015)부터 생긴 구문이다. 익스플로러 호환성 문제 때문에 아직도 대다수 웹에서는 var 변수만 사용된다. const 선언할 때 바로 값을 넣어줘야 한다. 한번 넣은 값은 바꿀 수 없는 상수이다. const mouse_1 = '서울쥐'; mouse_1 = '귀촌쥐';//Error let 선언과 값 정의를 따로 할 수 있다. 넣은 값은 이후 얼마든 바꿀 수 있다. 대신 선언을 다시 할 수 없다. let mouse_2; mouse_2 = '시골쥐'; mouse_2 = '상경쥐'; let mouse_2 = '서울쥐';//Error var 값을 자유롭게 변경할 수 있다. 다시 선언할 수 있다. var mouse_3 = '청계천쥐'; mouse_3 = '잠적쥐'..
버블링이란? 클릭한 지점이 하위 엘리먼트라고 하여도, 그것을 감싸고 있는 상위 엘리먼트까지 올라가면서 이벤트 리스너가 있는지 찾는 과정 설명 html div1 div2 div3 css #div1 { width: 150px; height: 150px; border: 1px solid blue; } #div2 { width: 100px; height: 100px; border: 1px solid blue; position: absolute; top: 30px; left: 30px; } #div3 { width: 50px; height: 50px; border: 1px solid blue; position: absolute; top: 25px; left: 25px; } javascript let div = d..
DOMContentLoaded 와 Load 차이 DOM Tree 분석이 끝나면 DOMContentLoaded 이벤트 발생 모든 자원이 다 받아져서 브라우저에 화면 표시까지 다 끝나는 시점에 Load 발생 DOMContecLoaded 이후에 동작하도록 구현하는 것이 성능에 유리하다. DOMContentLoaded 이벤트를 사용하는 이유 a a 위와 같은 이유 때문에 script문을 body 태그를 닫기 전에 삽입한다. DOMContentLoaded 이벤트 이후에 동작하도록 구현 function init(){ ... } document.addEventListener("DOMContentLoaded", () => { let div = document.querySelector("div"); init(); });..
객체 선언 let obj = {name:"seogineer", age:20}; console.log(obj.name); //seogineer console.log(obj["name"]); //seogineer 객체 추가/삭제 obj["name"] = "seo"; console.log(obj); // { name: 'seo', age: 20 } obj.job = "developer" console.log(obj); // { name: 'seo', age: 20, job: 'developer' } 객체 탐색 //value값이 숫자인 key만 출력 const data = { "debug": "on", "window": { "title": "Sample Konfabul..
배열 선언 //배열 선언 let arr = [1, 2, 3, "hello", null, true, []]; 배열 길이 //배열의 길이 arr.length; //결과:7 원소 추가 //배열 원소 추가 arr[2] = 99; //[ 1, 2, 99, 'hello', null, true, [] ] arr.push(3); //[ 1, 2, 99, 'hello', null, true, [], 3 ] 배열과 관련된 함수들 //indexOf(): 배열에 특정 값이 있는지 확인 arr.indexOf(99); //2 //join(): 배열을 문자열로 반환 arr.join(); //1,2,99,hello,,true,,3 arr.join(''); //1299hellotrue3 ar..
appendChild(노드) 자식 노드의 뒤에 노드가 삽입됨. 소스코드 let el = document.getElementById('form'); let input = document.getElementById('param1'); el.appendChild(input); 결과 insertBefore(노드, 기준 노드) 기준 노드의 앞에 노드가 삽입됨. 소스코드 let el = document.getElementById('form'); let input = document.getElementById('param1'); el.insertBefore(input, el.childNodes[4]); // el.childNodes[4] 앞에 input이 삽입..
parentElement 부모 element를 가져온다. parentNode 부모 element를 가져온다. 소스코드 button let el = document.getElementById('param1').parentElement; console.log(el); let el2 = document.getElementById('param1').parentNode; console.log(el2); 결과 차이점 parentElement: 부모 element 노드를 반환. 부모 element 노드가 더이상 없을 경우 null 반환한다. parentNode: 종류에 상관없이 부모 노드를 반환. parentElement는 까지 거슬러 올라가고, document까지 가고 싶지 않을 때 사..
querySelector('.클래스명') HTML에서 해당 클래스명를 사용하는 첫번째 요소를 찾음. getElementById('id') HTML에서 해당 id를 가지고 있는 요소를 찾음 소스코드 button let el = document.getElementById('param1'); let el2 = document.querySelector('.param'); console.log("document.getElementById('param1') : ", el); console.log("document.querySelector('param') : ", el2); 결과 참조 https://www.w3schools.com/..
Ajax(Asynchronous Javascript And XML) 웹페이지에서 데이터를 갱신할 때, 웹페이지 전체를 새로고침 없이 데이터를 갱신할 수 있는 기술 XMLHttpRequest 객체를 사용해서 서버와 통신한다. XML, Plain Text, JSON 포맷의 데이터를 주고 받을 수 있다. HttpRequest 만드는 방법 open(param1, param2, param3) param1(필수): HTTP 요구 방식(request method), GET, POST, HEAD 중 하나의 방식을 사용(대문자 사용 필수). param2(필수): 요청하는 URL. param3(선택): 비동기식(Asynchronous) 여부, true가 기본값. send("data") POST 방식으로 요청한 경우 서버로..