250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- ipad
- front-end
- MAC
- jQuery
- 개발자
- javascript
- iOS 개발자
- php
- HTML
- CSS
- keyframes
- 프론트엔드
- effect
- html5
- xcode
- IOS
- iPhone
- css3
- image
- 자바스크립트
- hover
- button
- 비전공자
- 풀스택
- 백엔드
- Animation
- SWIFT
- 애니메이션
- 비전공 개발자
- react
Archives
- Today
- Total
비전공자 개발일기
Javascript 본문
728x90
SMALL
1. 자바스크립트로 태그 선택하기
메소드 | 의미 | 결과 |
document.getElementById("id") | HTML id속성으로 태그 선택 | id에 해당하는 태그 하나 |
document.getElementByClassName("class") | HTML class속성으로 태그 선택 | class에 해당하는 태그 모음 (HTMLCollection) |
document.getElementByTagName("tag") | HTML 태그 이름으로 태그 선택 | tag에 해당하는 태그 모음 (HTMLCollection) |
document.querySelector("CSS 선택자") | CSS 선택자로 태그 선택 | CSS 선택자에 해당하는 태그 중 가장 첫번째 태그 하나 |
document.querySelectorAll("CSS 선택자") | CSS 선택자로 태그 선택 | CSS 선택자에 해당하는 태그 모음 (NodeList) |
2. 유사 배열
- 배열과 유사한 객체 ex) HTMLCollection, NodeList, DOMTokenList, ...
- 숫자 형태의 indexing이 가능
- length 속성이 있음
- 배열의 기본 메소드를 사용할 수 없음
- Array.isArray(유사배열)의 리턴값은 false
3. 이벤트와 이벤트 핸들링, 그리고 이벤트 핸들러
- 이벤트: 웹 페이지에서 발생하는 대부분의 일(사건)들 ex) 버튼 클릭, 스크롤, 키보드 입력 ...
- 이벤트 핸들링: 자바스크립트를 통해 이벤트를 다루는 일
- 이벤트 핸들러: 이벤트가 발생했을 때 일어나야하는 구체적인 동작들을 표현한 코드(이벤트 리스너)
4. 이벤트 핸들러를 등록하는 2가지 방법
- 자바스크립트로 해당 DOM 객체의 이벤트 프로퍼티에 등록
const btn = document.querySelecto('#myBtn')
//btn.onclick = function() {
// console.log("HELLO!")
//}
---------------------------------------------------------------
// element.addEventListener(event, handler)
btn.addEventListener('click', function event() {
console.log("HELLO")
}
)
---------------------------------------------------------------
function event() {
console.log("HELLO")
}
btn.addEventListener('click', event)
---------------------------------------------------------------
// element.removeEventListener(event, handler)
btn.removeEventListener('click', event)
- HTML 태그의 이벤트 속성에 바로 표시
<button id = "myBtn" onclick = "console.log("HELLO!")"> 클릭 </button>
5. console.log( ) vs console.dir( )
- log의 경우에는 해당 자료형 vs dir의 경우 문자열 표시 형식 (출력하는 자료형이 다름)
- log는 값 자체, dir은 객체의 속성
- log는 여러 값을 쉼표로 구분해서 전달하면 전달받은 모든 값을 출력하는 반면, dir은 여러 값을 전달하더라도 첫번째 값만 출력
- (DOM객체를 다룰때) log는 HTML 형태로 출력, dir은 대상을 객체 형태로 출력
6. 요소 노드에 대한 이동 속성
속성 | 유형 | 결과 |
element.chlidren | 자식 요소 노드 | element의 자식 요소 모음(HTMLCollection) |
element.firstElementChild | 자식 요소 노드 | element의 첫번째 자식 요소 하나 |
element.lastElementChild | 자식 요소 노드 | element의 마지막 자식 요소 하나 |
element.parentElement | 부모 요소 노드 | element의 부모 요소 하나 |
element.previousElementSibling | 형제 요소 노드 | element의 이전(previous) 혹은 좌측(left)에 있는 요소 하나 |
element.nextElementSibling | 형제 요소 노드 | element의 다음(enxt) 혹은 우측(right)에 있는 요소 하나 |
7. 모든 노드에 대한 이동 속성
속성 | 유형 | 결과 |
node.childNodes | 자식 노드 | node의 자식 노드 모음(NodeList) |
node.firstChild | 자식 노드 | node의 첫번째 자식 노드 하나 |
node.lastChild | 자식 노드 | node의 마지막 자식 노드 하나 |
node.parentNode | 부모 노드 | node의 부모 요소 하나 |
node.previousSibling | 형제 노드 | node의 이전(previous) 혹은 좌측(left)에 있는 노드 하나 |
node.nextSibling | 형제 노드 | node의 다음(enxt) 혹은 우측(right)에 있는 요소 하나 |
8. element.innerHTML
const myTag = document.querySelector("#list")
console.log(myTag.innerHTML)
- 요소 노드 내부의 HTML 코드를 문자열로 리턴(내부에 있는 줄 바꿈이나 들여쓰기 모두 포함)
- 내부의 HTML 자체를 수정할 때 자주 활용(내부에 있던 값을 완전히 새로운 값으로 교체)
9. element.outerHTML
const myTag = document.querySelector("#list")
console.log(myTag.outerHTML)
- 요소 노드 자체의 전체적인 HTML 코드를 문자열로 리턴(내부에 있는 줄 바꿈이나 들여쓰기 모두 포함)
- 새로운 값을 할당할 경우 요소 자체가 교체됨
10. element.textContent
const myTag = document.querySelector("#list")
console.log(myTag.textContent)
- 요소 안의 내용들 중에서 HTML 태그 부분을 제외하고 텍스트만 리턴(내부에 있는 줄 바꿈이나 들여쓰기 모두 포함)
- 내부의 값을 완전히 새로운 값으로 교체
- 텍스트만 다루기때문에 특수문자도 텍스트로 처리
11. 요소 노드 다루기
- 요소 노드 만들기: document.createElement('태그이름')
- 요소 노드 꾸미기: element.textContent, element.innerHTML, ...
- 요소 노드 추가 혹은 이동하기: element.prepend, element.append, element.after, element.before
- 요소 노드 삭제하기: element.remove()
12. HTML 속성 다루기
- 속성에 접근하기: element.getAttribute('속성')
- 속성 추가(수정)하기: element.setAttribute('속성', '값')
- 속성 제거하기: element.removeAttribute('속성')
13. 스타일 다루기
- style 프로퍼티 활용하기: element.style.styleName = 'value';
- class 변경을 통해 간접적으로 스타일 적용하기: element.className, element.classList
메소드 | 내용 | 참고사항 |
classList.add | 클래스 추가하기 | 여러 개의 값을 전달하면 여러 클래스 추가 가능 |
classList.remove | 클래스 삭제하기 | 여러 개의 값을 전달하면 여러 클래스 삭제 가능 |
classList.toggle | 클래스 없으면 추가, 있으면 삭제 | 하나의 값만 적용하고, 두번째 파라미터로 추가 또는 삭제 기능을 강제할 수 있음 |
14. 이벤트(자주 사용되는 것)
- 마우스 이벤트
이벤트 타입 | 설명 |
mousedown | 마우스 버튼을 누르는 순간 |
mouseup | 마우스 버턴을 눌렀다 떼는 순간 |
click | 왼쪽 버튼을 클릭한 순간 |
dblclick | 왼쪽 버튼을 빠르게 두 번 클릭한 순간 |
contextmenu | 오른쪽 버튼을 클릭한 순간 |
mousemove | 마우스를 움직이는 순간 |
mouseover | 마우스 포인터가 요소 위로 올라온 순간 |
mouseout | 마우스 포인터가 요소에서 벗어나는 순간 |
mouseenter | 마우스 포인터가 요소 위로 올라온 순간(버블링이 일어나지 않음) |
mouseleave | 미우스 포인터가 요소에서 벗어나는 순간(버블링이 일어나지 않음) |
- 키보드 이벤트
이벤트 타입 | 설명 |
keydown | 키보드의 버튼을 누르는 순간 |
keypress | 키보드의 버튼을 누르는 순간('a', '5' 등 출력이 가능한 키에서만 동작, Shift, Esc등 키에서는 반응없음) |
keyup | 키보드의 버튼을 눌렀다 떼는 순간 |
- 포커스 이벤트
이벤트 타입 | 설명 |
focusin | 요소에 포커스가 되는 순간 |
focusout | 요소로부터 포커스가 빠져나가는 순간 |
focus | 요소에 포커스가 되는 순간(버블링이 일어나지 않음) |
blur | 요소로부터 포커스가 빠져나가는 순간(버블링이 일어나지 않음) |
- 입력 이벤트
이벤트 타입 | 설명 |
change | 입력된 값이 바뀌는 순간 |
input | 값이 입력되는 순간 |
select | 입력 양식의 하나가 선택되는 순간 |
submit | 폼을 전송하는 순간 |
- 스크롤 이벤트
이벤트 타입 | 설명 |
scroll | 스크롤 바가 움직일 때 |
- 윈도우 창 이벤트
이벤트 타입 | 설명 |
resize | 윈도우 사이즈를 움직일 때 발생 |
15. 이벤트 객체 속성(자주 사용되는 것)
- 공통 속성
속성 | 설명 |
type | 이벤트 이름('click', 'keydown', 등) |
target | 이벤트가 발생한 요소 |
currentTarget | 이벤트 핸들러가 등록된 요소 |
timeStamp | 이벤트 발생 시각(페이지가 로드된 이후부터 경과한 밀리초) |
bubbles | 버블링 단계인지를 판단하는 값 |
- 마우스 이벤트
속성 | 설명 |
button | 누른 마우스의 버튼(0: 왼쪽 1: 가운데(휠), 2: 오른쪽) |
clientX, clientY | 마우스 커서의 브라우저 표시 영역에서의 위치 |
pageX, pageY | 마우스 커서의 문서 영역에서의 위치 |
offsetX, offsetY | 마우스 커서의 이벤트 발생한 요소에서의 우치 |
screenX, screenY | 마우스 커서의 모니터 화면 영역에서의 위치 |
altKey | 이벤트가 발생할 때 alt키를 눌렀는지 |
ctrlKey | 이벤트가 발생할 때 ctrl키를 눌렀는지 |
shiftKey | 이벤트가 발생할 때 shift키를 눌렀는지 |
metaKey | 이벤트가 발생할 때 meta키를 눌렀는지(window키) |
- 키보드 이벤트
속성 | 설명 |
key | 누른 키가 가지고 있는 값 |
code | 누른 키의 물리적인 위치 |
altKey | 이벤트가 발생할 때 alt키를 눌렀는지 |
ctrlKey | 이벤트가 발생할 때 ctrl키를 눌렀는지 |
shiftKey | 이벤트가 발생할 때 shift키를 눌렀는지 |
metaKey | 이벤트가 발생할 때 meta키를 눌렀는지(window키) |
728x90
LIST
'Javascript' 카테고리의 다른 글
Javascript (0) | 2021.08.13 |
---|---|
Javascript (0) | 2021.08.12 |
Javascript - 팩토리얼, 팰린드롬 (0) | 2021.08.10 |
Javascript (0) | 2021.08.09 |
Javascript - 피보나치 수열 (0) | 2021.08.09 |