객체
- 객체
- 객체란 name과 value로 구성된 프로퍼티의 정렬되지 않은 집합
- 객체 property 참조
- 객체명.프로퍼티명
- 객체명[”프로퍼티명”]
- 객체 메소드 참조
- 객체명.메소드명()
- 예시
-
var person = { name: "홍길동", // 이름 프로퍼티를 정의함. birthday: "030219", // 생년월일 프로퍼티를 정의함. pId: "1234567", // 개인 id 프로퍼티를 정의함. fullId: function() { // 생년월일과 개인 id를 합쳐서 주민등록번호를 반환함. return this.birthday + this.pId; } }; person.name; // 홍길동 person["name"]; // 홍길동 person.fullId(); // 0302191234567 person.fullId; // function () { return this.birthday + this.pId; }
-
- 객체의 생성 방법 3가지
- 리터럴 표기
-
var 객체이름 = { 프로퍼티1이름: 프로퍼티1의값, 프로퍼티2이름: 프로퍼티2의값, ... }; //예시 var kitty = { name: "나비", family: "코리안 숏 헤어", age: 1, weight: 0.1 };
-
- 생성자 함수 (new 연산자 사용)
- JS 제공 생성자나 사용자가 작성하여 사용 가능
- 예시
- var day = new Date();
- document.write("올해는 " + day.getFullYear() + "년입니다.");
- Object.create()
-
Object.create(프로토타입객체[, 새로운객체의프로퍼티1, 새로운객체의프로퍼티2, ...]); //예시 var obj = Object.create(null, { // null 프로토타입을 사용하여 새로운 객체를 만들고 x: { value: 100, enumerable: true }, // x좌표를 나타내는 열거할 수 있는 프로퍼티와 y: { value: 200, enumerable: true } // y좌표를 나타내는 열거할 수 있는 프로퍼티를 추가함. }); obj.x; // x좌표 obj.y; // y좌표 Object.getPrototypeOf(obj); // 객체의 프로토타입을 반환해 줌.
-
- 리터럴 표기
- this 키워드
- 객체 프로퍼티 삭제
- delete 객체명.프로퍼티명;
- 프로퍼티 삭제시 값 뿐만 아니라 프로퍼티 그 자체가 삭제
- 객체 프로퍼티 순회
- for - in 문 사용
- for (var 변수명 in 객체) { … }
- Object.keys(객체명) 메소드 사용
- 열거할 수 있는 프로퍼티 이름 배열에 담아 반환
- 예시
- Object.defineProperty(myDog, 'color', {enumerable : false} );
- document.write(Object.keys(myDog) + "<br>"); // name, age
- Object.getOwnPropertyNames(객체명) 메소드 사용
- 모든 프로퍼티 이름 배열에 담아 반환
- for - in 문 사용
- Math 객체
- Math 메소드 종류
- Math.min, max()
- Math.random()
- Math.round()
- Math.floor()
- 전달받은 값과 같거나 작은 수 중에서 가장 큰 정수 반환(소수점→ 정수 변환시 사용, 내림)
- Math.ceil()
- 전달받은 값과 같거나 큰 수중에서 가장 작은 정수 반환(소수점→ 정수 변환시 사용, 올림)
- Math.sin() - 사인 함수값 반환
- Math 메소드 종류
- Date 객체
- Date 객체 초기화
- new Date()
- new Date(”날짜 문자열”)
- new Date(밀리초)
- ex) new Date(80000000); // 1970년 1월 1일 0시부터 해당 밀리초만큼 지난 날짜
- new Date(년, 월, 일, 시, 분, 초, 밀리초)
- 년, 월, 일 만 인자로 전달도 가능
- Date 메소드
- Date.now()
- var 변수명 = new Date();
- 변수명.getFullYear()
- getDate(), getDay(), getTime()
- Date 객체 초기화
- String 객체
- 문자열 길이
- 문자열.length;
- String 메소드
- 위치 찾기
- indexOf(’찾는문자’)
- lastIndexOf(’찾는문자’)
- 지정된 위치의 문자 반환
- charAt(인덱스)
- 문자열 추출
- slice(시작인덱스, 끝인덱스)
- substring(시작인덱스, 끝인덱스)
- substr(시작인덱스, 끝인덱스)
- 문자열 분리, 배열로 반환
- split(구분자)
- split(””) - 한문자씩 나눔
- 문자열 결합
- concat(문자열1, 문자열2,…)
- 대소문자 변환
- toUpperCase()
- toLowerCase()
- 공백 제거
- trim()
- 위치 찾기
- 문자열 길이
- Array 객체
- Array 메소드
- Array.isArray()
- Array.from(객체들) - 배열처럼 변환
- Array.of(n) - n개의 배열 요소를 가지는 배열 생성
- 원본 배열 변경 메소드
- push(값) - 마지막 요소 추가
- push(인덱스, 값) - 인덱스 위치 요소 추가
- pop() - 마지막 요소 제거 후 반환
- shift() - 첫 요소 제거 후 반환
- unshift(값) - 가장 앞에 요소 추가
- reverse() - 순서 반대로
- sort()
- splice(새로운요소삽입할시작인덱스, 제거할요소의개수, 넣을값들) - 기존 요소 제거 후 새로운 요소 추가
- push(값) - 마지막 요소 추가
- 참조 메소드 (원본 변경 X)
- join() - 배열의 모든 요소를 하나의 문자열로 반환
- slice(시작인덱스, 끝인덱스) - 추출하여 새로운 배열 반환
- slice(시작인덱스) - 시작부터 끝까지 반환
- concat(배열) - 배열들 합쳐서 새로운 배열 반환
- toString() - 배열의 모든 요소 하나의 문자열로 반환
- 원본 배열 반복적 참조 메소드
- 배열명.forEach(함수명) - 각 배열요소마다 함수 호출
- .map(함수명) - 각 배열요소마다 반복적으로 명시된 콜백함수 실행 후 새로운 배열에 담아 반환
- .filter(함수명) - 각 배열요소마다 함수 실행후 결과값이 true인 요소들만 새로운 배열에 담아 반환
- .every(함수명) - 각 배열요소마다 함수 실행후 모든 결과값이 true일 때 true 반환
- .some(함수명) - 각 배열요소마다 함수 실행후 결과값 하나라도 true면 true 반환
- .reduce(함수명) - 두개의 인수를 전달받고 실행 → 반환된 결과값과 세번째 요소를 전달받고 실행 → 반복 …
- .reduceRight(함수명) - reduce의 반대, 마지막 요소부터
- Array 메소드
- Document 객체
- Document 객체
- Document 객체는 웹페이지 그 자체를 의미
- 웹페이지의 HTML 요소에 접근하고자 할 때는 반드시 Document 객체부터 시작해야 함
- Document 메소드
- HTML 요소의 선택
- document.getElementsByTagName(태그이름)
- 해당 태그이름의 요소 모두 선택
- .getElementById(아이디)
- 해당 아이디의 요소를 선택
- .getElementsByClassName(클래스이름)
- 해당 클래스에 속한 요소 모두 선택
- .getElementsByName(name속성값)
- 해당 name 속성값을 가지는 요소 모두 선택
- .querySelectorAll(선택자)
- 해당 선택자로 선택되는 요소 모두 선택
- document.getElementsByTagName(태그이름)
- HTML 요소의 생성
- document.createElement(HTML요소)
- 해당 HTML 요소 생성
- .write(텍스트)
- HTML 출력 스트림을 통해 텍스트 출력
- document.createElement(HTML요소)
- HTML 이벤트 핸들러 추가
- document.getElementById(아이디).onclick = function(){ 실행할코드 }
- 마우스 클릭 이벤트와 연결될 이벤트 핸들러 코드를 추가
- document.getElementById(아이디).onclick = function(){ 실행할코드 }
- HTML 객체의 선택
- document.anchors
- name 속성을 가지는 <a> 요소 모두 반환
- .body
- <body> 요소 반환
- .cookie
- HTML 문서의 쿠키 반환
- .domain
- HTML 문서가 위치한 서버의 도메인 네임 반환
- .forms
- <form> 요소 모두 반환
- .images
- <img> 요소 모두 반환
- .links
- href 속성을 가지는 <area> 요소와 <a> 요소 모두 반환
- 등등..
- document.anchors
- HTML 요소의 선택
- Document 객체
- DOM 요소의 선택
- 특정 HTML 요소 선택 방법
- HTML 태그 이름을 이용한 선택
- var 변수명 = document.getElementsByTagName(”태그이름”);
- 해당 태그의 모든 요소 선택됨
- 변수명.style.color = “red” 같이 변경 가능
- 아이디를 이용한 선택
- var 변수명 = document.getElementById(”아이디명”)
- 해당 아이디명 요소 선택됨
- 클래스를 이용한 선택
- var 변수명 = document.getElementsByClassName(”클래스명”)
- 해당 클래스명인 요소 선택
- name 속성을 이용한 선택
- var 변수명 = document.getElementsByName(”name속성값”)
- 해당 name 속성값인 요소 선택
- CSS 선택자를 이용한 선택
- var 변수명 = document.querySelectorAll(”태그명.클래스명”)
- 해당 클래스명 요소에서 해당 태그 요소만을 선택
- HTML 객체 집합을 이용한 선택
- var 변수명 = document.객체명;
- 예시
- var title = document.title; //<titile> 요소 선택
- document.write(title);
- HTML 태그 이름을 이용한 선택
- DOM 요소의 내용 변경
- innerHTML 프로퍼티 이용
- 예시
- var str = document.getElementById(”text”);
- str.innerHTML = “내용변경”;
- 예시
- 속성값 변경
- 예시
- var link = document.getElementById(”link”)
- link.href = “/js/intro”;
- link.innerHTML = “내용변경”;
- 예시
- innerHTML 프로퍼티 이용
- DOM 요소의 스타일 변경
- style 프로퍼티 이용
- 예시
- var str = document.getElementById(”text”);
- function changeRedColor() { str.style.color = “red”;}
- 예시
- style 프로퍼티 이용
- 특정 HTML 요소 선택 방법
728x90
'JS & TS > JavaScript' 카테고리의 다른 글
[JavaScript] 이벤트 (0) | 2025.03.22 |
---|---|
[JavaScript] 노드, 브라우저 객체 모델(BOM) (0) | 2025.03.22 |
[JavaScript] 함수, 변수/함수 범위, 매개변수/인수 (0) | 2025.03.22 |
[JavaScript] 배열 (0) | 2025.03.22 |
[JavaScript] 조건문, 반복문, 기타 제어문 (0) | 2025.03.22 |