본문 바로가기

반응형

전체 글

(401)
[javascript html 캔버스] 그림판 HTML 삽입 미리보기할 수 없는 소스 이거 보임? 그럼 캔버스 못 씀
[DOM] insertBefore "지정한 위치(기준 노드) 앞에 노드를 추가한다." insertBefore(새로만든 노드, 기준 노드) insertBefore() 메서드는 기준노드의 앞에 새로만든 노드를 추가할 때 사용한다. 즉, 라는 부모 태그가 있고, 그 안의 자식노드로 가 있다고 가정 할 때, 새로 만든 노드가 이라는 노드라면, 다음과 같은 형태가 되는 것이다. // 부모 자식(새로 생성한 노드) 자식(기준 노드) 참고로, insertBefore(1인자, 2인자 ) 에서 1 인자 자리에 기존에 존재하고 있었던 노드를 입력하면, 그 노드는 삭제 되고, 똑같이 생겼지만 새로 생성된 노드가 기준 노드의 앞에 생성된다. insertBefore(새로만든 노드, 기준노드) 사용 예시 기준노드 //부모 노드 const $ul = document.querySelector('ul'); //새로생성..
[DOM] createDocumentFragment "빈 노드 객체를 생성한다." createDocumentFragment DeocumentFragment 노드는 , , text 등과 같이 DOM 노드에 속한다. 하지만 기존 DOM 노드와는 다르게 분류되어 정의되어 있으며 부모노드가 존재하지 않고, 브라우저 렌더링 시에도 DOM 트리에 포함되지 않는다. 즉, 다음과 같이 생성해서 부모 노드의 자식 노드로 추가한다고 해도 막상 브라우저에 렌더링된 요소들을 살펴보면 존재하지 않는다. createDocumentFragment 의 필요성? 보통 우리가 crateElement 로 만든 새로운 요소들을 부모 노드에 추가하려고 하면, 리플로우와 리페인트 라는 과정을 거친다. 이 과정을 단순하게 말하면, 브라우저를 다시 렌더링 하는 것인데, 추가되는 요소가 많을 수록 다시 렌더링 되는 횟수 또한 n..
[DOM] createElement, createTextNode, appendChild createElement "요소 노드를 생성한다. " 새로운 요소노드를 생성한다. 여기서 요소노드는 흔히 말하는 HTML 태그를 의미한다. 이 때 생성된 요소 노드는 DOM의 어떠한 노드에도 속하지 않는다(즉, 연결점이 없다). //document 에 li 라는 이름의 태그(요소노드)를 생성 const $li = document.createElement('li'); createTextNode " 텍스트 노드를 생성한다. " 텍스트 노드는 DOM 트리에서 자식 노드가 존재하지 않는 리프 노드(잎파리) 이다. 단, 텍스트노드로 생성할 시에는 DOM의 어떠한 노드에도 속하지 않는 상태로 생성된다. // document 에 '안녕하세요' 라는 텍스트 노드를 생성 const $text = document.crea..
[DOM] insertAdjacentHTML 메서드 innerHTML 과 insertAdjacentHTML 우리가 흔히 문자열을 태그 내에 넣을 때 사용하는 innerHTML 프로퍼티와 마찬가지로 HTML 태그에 문자열을 삽입할 수 있는 메서드이다. 다만 차이점과 강점이있다면 insertAdjacentHTML 은 태그 내 요소를 삭제하지 않는다는 것이며, 문자열을 삽입할 위치를 지정할 수 있고, 기존 태그 내의 모든 요소를 삭제하고 다시 재렌더링하는 innerHTML 보다 성능상 이점이 높다는 점이 강점이다. 따라서 단순한 문자열을 삽입하고 끝내는 용도가 아니고, 반복적으로 문자열을 삽입하는 경우에는 insertAdjacentHTML 을 활용하는 것이 좋다. insertAdjacentHTML 형식 insertAdjacentHTML 메서드는 인자를 두 개 ..
[javascript] this(2) - this 바인딩의 강제 설정 보호되어 있는 글입니다.
[javascript] 배열과 객체의 구조분해할당 구조분해할당 구조분해 할당은 배열이나 객체의 각 구성 요소 및 프로퍼티를 주어진 변수에 나눠서 할당하는 방법이다. 즉, 주어진 자료구조를 분해해서 새로운 변수에 할당하는 방식이다. 여기서 오해하면 안 되는 것은 구조분해할당은 기존의 변수나 객체의 값을 복사하여 새로운 변수에 할당하는 것이지 기존 변수나 객체를 삭제하는 것이 아니다. 그래서 구조분해할당을 한 이후에도 기존 데이터는 그대로 사용이 가능하다. 구조분해할당은 배열과 객체 모두에서 가능하지만, 조금 차이가 있다. 우선 배열의 경우에는 요소가 새로운 변수에 할당되는 순서가 정해져 있는 반면에, 새롭게 할당하려고 하는 변수의 이름은 마음대로 지어도 되지만, 객체의 경우에는 할당하고자 하는 변수의 이름이 객체 내의 프로퍼티 키의 이름과 동일해야 한다...
[javascript] getAttribute 와 setAttribute 그리고 classList.add... element . getAttribute (요소가 가진 속성명) 이 메서드는 접근한 요소가 가진 속성이 저장하고 있는 값을 가져온다. 글로 쓰면 이해가 어렵기 때문에 코드로 정리해보면 다음과 같다. //js const ball = document.querySelector('.ball') ball.getAttribute('class') //-> div 태그가 가진 속성인 class가 가진 값인 'ball'을 가져온다. ㄴ요소(element) //출력결과) ball 다시 정리해서 말하면, getAttribute는 지정한 요소가 가진 속성이 가진 값을 가져오는 메서드 이다. element . setAttribute (요소가 가진 속성명, 그 속성에 추가할 값) 이 메서드는 요소가 가진 속성에 기존 값을 버리고..

반응형