이번에 배워볼 주제는 JavaScript의 객체입니다!
1. 객체
객체는 객체지향언어인 C++에서도 자주 쓰는 용어인데요
객체란, 실생활에서 우리가 인식할 수 있는 사물입니다.
예를 들어, 고양이는 하나의 객체(cat)입니다.
고양이라는 객체의 property에는 name,age,weight이라는 특성을 가질 수 있고,
고양이라는 객체의 method에는 eat(), sleep(), play()라는 행동을 가질 수 있습니다.
객체란, 이름과 값으로 구성된 property의 정렬되지 않은 집합입니다. 이 property의 값으로 함수가 올 수 있는데 이를 method라고 합니다.
객체의 선언
let gggangdori={
name:"깡돌이",
family:"말티즈",
age:10, // property
bark:function(){ // method
console.log("warwar");
}
};
console.log(gggangdori.name+"<br>"+gggangdori["age"]);
gggangdori.bark();
객체의 사용
const type = "1253";
const gggangdori={
name:"깡돌이",
[type]:"말티즈",
age:10, // property
bark:function(){ // method
console.log("warwar");
}
};
console.log(gggangdori.name+"<br>"+gggangdori["age"]);
gggangdori.bark();
gggangdori.name, gggangdori['name']
// "깡돌이"
gggangdori[type], gggangdori['1252'], gggangdori.1252
// "말티즈"
2. 상속
상속이란, 새로운 클래스에스 기존 클래스의 모든 property와 method를 사용할 수 있는 것을 의미합니다.
C++,C#과 같은 클래스 기반의 객체 지향 언어와 달리 JS는 프로토 타입의 객체 지향 언어입니다.
JS의 모든 객체는 프로토타입이라는 객체를 가지고 있습니다. 모든 객체는 그들의 프로토타입으로부터 property 와 method를 상속받습니다.
Property의 생성
function dog(name,family,age){ //매게변수 name,family,age 받음
this.name=name;
this.family=family;
this.age=age;
this.type="dog"; //이 property는 모든 dog프로토타입이 가짐
}
var myDog=new dog("gggangdori","말티즈",10); //이 객체는 dog라는 프로토타입 가짐
document.write(myDog.name,myDog.family,myDog.age);
myDog.bark=function(){ //method 선언
document.write("War War");
}
myDog.bark(); //method 실행
document.write(myDog.type);
dog.prototype.need="feed"; //이렇게 property 선언 가능
document.write(myDog.need);
3. 전역 객체
전역 객체란, JS에 미리 정의된 객체로, 전역 프로퍼티나 전역 함수를 담는 공간 역할을 합니다.
전역 객체 그 자체는 전역 범위에서 this연산자를 통해 접근할 수 있습니다.
그 종류로는 다음과 같이 있습니다.
1. Number 객체
- var x = 0.3*10+0.2*10 ; 부동소수점의 경우, 오차 발생하므로 정수의 형태로 변환하여 계산 후 다시 실수로 변환해줌
- var x = 0xAB ; 16진법 / JS는 기본적으로 10진법을 사용하여 수 계산
- var x = Infinity ; 무한대
- var x = 100-'abc' ; NaN 반환
- var x= new Number(100) ; Number 객체 x 생성
1.5 Number 메소드
- Number.parseFloat ; 문자열을 파싱하여, 문자열에 포함된 숫자 부분을 실수 형태로 반환
ex) Number.parseFloat("12 34 56문자열") ; 12 반환
- Number.parseInt ; 문자열을 파싱하여, 문자열에 포함된 숫자 부분을 정수 형태로 반환
- Number.isNaN() ; 전달된 값이 NaN인지 아닌지를 검사
- Number.isFinite() ; 전달된 값이 유한한 수인지 아닌지를 검사
- Number.isInteger() ; 전달된 값이 정수인지 아닌지를 검사
- Number.toString() ; Number인스턴스 값을 문자열로 반환
ex) var num = 255; num.toString(16); -> 255를 16진수로 표현
- Number.toPrecision(6) ; 소수점 6자리까지 표현
2. Math 객체
1. Math.min(), Math.max()
2. Math.random() ; 0이상 1미만의 무작위 수 반환
3. Math.round() ; 소수점 첫자리에서 반올림 / Math.floor() ; 내림 / Math.ceil() ; 올림
4. Math.sin() ; 사인 함수값 반환
3. Date 객체
1. var date = new Date() ; 현재 날짜, 시간 반환 ex) Mon May 16 2022 08:44:24 GMT+0900 (한국 표준시)
2. var date = new Date("2022-05-16T08:44:24") ; ISO 날짜 양식
3. var date = new Date("May 19 2022") ; Long 날짜 양식
4. var date = new Date("2022/05/19") ; Short 날짜 양식
3.5 Date 메소드
1. getFullYear() ; 연도 반환 ex) date.getFullYear()
2. getDate() ; 날짜 반환
3. getDay() ; 요일 반환
4. getTime() ; 시간 반환
4. String 객체
문자열의 표현 ; 큰따옴표/작은따옴표 이용해 표현 ex) var str="string"
1. indexOf ; 특정 문자나 문자열이 처음으로 등장하는 위치 반환 / lastIndexOf() ; 마지막 위치 반환
ex) str.indexOf('a')
2. slice(시작 index, 끝 index) ; 문자열 추출
ex) str.slice(2,6) ; 인덱스=2~5 반환
http://tcpschool.com/javascript/js_standard_stringMethod
5. Array 객체
'WebProgramming > JS' 카테고리의 다른 글
[JS] 원시 데이터, 참조형 데이터 / 얕은 복사와 깊은 복사 (0) | 2022.06.11 |
---|---|
[JS] 메소드(String, Math, Array, Object) (0) | 2022.06.10 |
[JS] 생성자 함수(Prototype), Class 상속 (0) | 2022.06.06 |
[JS] 함수 (0) | 2022.06.04 |
[웹 프로그래밍] JS 작성 툴 (Node.js, NVM, NPM) (0) | 2022.06.04 |
[JS] JS 작성 팁 (0) | 2022.05.29 |
[JS] JavaScript 기본 문법 / 표기법, 데이터 종류, 변수 (0) | 2022.05.26 |
JavaScript 기본 문법 (0) | 2022.05.06 |