반응형
* 프로토타입 이해
https://tadaktadak-it.tistory.com/80?category=1024177
1. 내장 객체
- 브라우저의 자바스크립트 엔진에서 내장하고 있는 객체
- 우리가 만든 객체가 사용자 정의 객체가 아닌 자바스크립트에서 미리 만들어 놓은 객체를 의미
- 밑에 처럼 내장 객체의 종류는 어마무시하게 많다.
AggragateError, Array, AsyncFunction, Atomics, BigInt, BingInt64Array, BigUinit64Array, Boolean,
DataView, Data, Error, EvalError, FinalizationRegistry, Float32Array, Float64Array, Function,
Generatior, GeneratorFunction, Infinity, Int16Array, Int32Array, Int8Array, IntermalError,
Intl, JSON, Map, NaN, Number, Object, Promise, Proxy, RangeError, Reflect, RegExp, Set,
SharedArrayBuffer, String, Symbol, SyntaxError, TypeError, TypeArray, URIError,
Unit16Array[Translate], Unit32Array[Translate], Unit8Array[Translate],
Unit8ClampedArray[Translate], WeakMap, WeakRef[Translate], WeakSet, WebAssembly,
decodeURI(), decodeURIComponent(), encodeURI(), encodeURIComponent(),
escape()[Translate], eval(), globalThis, isFinite(), inNaN(), null, parseFloat(), parseInt(),
undefined, unescape()[Translate], uneval()
- 주요 내장 객체
- Object : 자바스크립트 최상위(베이스) 객체
- Number : 숫자 관련 객체
- String : 문자 관련 객체
- Array : 배열 관련 객체
2. Object 객체
- 객체 생성
let object = {};
let object = new Object(); - 주요 함수(메소드)
constructor obj.construtor 객체의 생성자 함수(원형)를 나타냄
객체를 만들고 나서 프로퍼티를 추가해도 이 함수는 맨 처음 만든 원형을 나타낸다.hasOwnProperty(name) obj.hasOwnProperty("aaa") 객체가 name 속성을 가지고 있는지 확인 isPrototypeof(object) Object.prototype.isPrototypeof(obj) 객체가 object의 프로토타입인지 검사 propertyIsEnumerable(name) obj.propertyIsEnumerable("aaa") 반복문으로 열거 가능 여부 확인 toString() obj.toString() 객체를 문자열로 변경 valueOf() obj.valueOf() 객체의 값을 표시
<script>
// Object 객체를 생성하는 방법
let obj1 = {};
let obj2 = new Object();
console.log(obj1);
console.log(obj2);
// 프로퍼티는 바뀌지만 객체의constructor은 바뀌지 않는다.
obj1.title = "오브젝트 객체입니다.";
console.log(obj1);
// constructor() 객체의 생성자 함수를 나타낸다.
// 생성자는 객체 그 자체(원형)을 나타낸다.
console.log(obj1.constructor);
// 사용자 객체 Person를 생성
function Person(name) {
this.name = name;
this.age = "";
}
const obj3 = new Person("홍길동");
console.log(obj3);
// 생성자는 객체 그 자체(원형)을 나타낸다.
console.log(obj3.constructor);
obj3.title = "사람 객체입니다.";
console.log(obj3.constructor);
console.log(obj3);
// hasOwnProperty(name) 객체가 name 속성을 가지고 있는지 확인
console.log("====> hasOwnProperty");
console.log(obj3.hasOwnProperty("abc")); // false
console.log(obj3.hasOwnProperty("name")); // true
// isPrototypeof(object) 객체가 object의 프로토타입인지 검사
console.log("====> isPrototypeof(object)");
console.log(Object.prototype.isPrototypeOf(obj1)); // true
console.log(Object.prototype.isPrototypeOf(obj3)); // true
console.log(Person.prototype.isPrototypeOf(obj1)); // false
console.log(Person.prototype.isPrototypeOf(obj3)); // true
// 사용자 객체 Person를 생성
function Student(name) {
this.name = name;
this.age = "";
}
const obj4 = new Student("한국인");
console.log(Person.prototype.isPrototypeOf(obj4)); // true
// toString() 객체를 문자열로 변경
console.log("====> toString()");
console.log(obj3.toString());
// 객체에서는 메소드를 재정의해서 맞게 사용
Person.prototype.toString = function() {
this.age = 50;
return this.name + "," + this.age + "," + this.title;
}
console.log(obj3.toString());
// valueOf() 객체의 값을 표시
console.log("====> valueOf()");
console.log(obj3.valueOf());
console.log(obj3);
</script>
3. Number 객체
- 객체 생성
let num = 1;
let num = new Number(1); - 주요 메소드
toExponential() num1.toExponential() 숫자를 지수 표시로 나타낸 문자열 리턴(유효 숫자의 자리수) toFixed() num1.toFixed() 숫자를 고정 소수점 표시로 나타낸 문자열 리턴(소수점 자릿수) toPrecision() num1.toPrecision() 숫자를 길이에 따라 지수 or 고정 소수점 표시 문자열 리턴 - 주요 속성
MAX_VALUE Number.MAX_VALUE 자바스크립트에서 표현 가능한 최대 숫자 MIN_VALUE Number.MIN_VALUE 자바스크립트에서 표현 가능한 최소 숫자 NaN Number.NaN 숫자가 아님을 표시하는 지시어(Not a Number) POSITIVE_INFINITY Number.POSITIVE_INFINITY 양의 무한대 수 NEGATIVE_INFINITY Number.NEGATIVE_INFINITY 음의 무한대 수
<script>
// Number 객체를 생성하는 방법
let num1 = 1; // 숫자 변수
let num2 = new Number(3.14159); // 숫자 객체
// toExponential() - 숫자를 지수 표시로 나타낸 문자열 리턴(유효 숫자의 자리수)
console.log("================> toExponential")
console.log(num1.toExponential()); // 1e+0
// toFixed() - 숫자를 고정 소수점 표시로 나타낸 문자열 리턴(소수점 자릿수)
console.log("================> toFixed")
console.log(num2.toFixed()); // 3
// toPrecision() - 숫자를 길이에 따라 지수 or 고정 소수점 표시 문자열 리턴
console.log("================> toPrecision")
console.log(num2.toPrecision()); // 3.14159
console.log((123123123123123123123123).toPrecision()); // 1.2312312312312312e+23
// MAX_VALUE - 자바스크립트에서 표현 가능한 최대 숫자
console.log("================> MAX_VALUE")
console.log(Number.MAX_VALUE); // 1.7976931348623157e+308
// MIN_VALUE - 자바스크립트에서 표현 가능한 최소 숫자
console.log("================> MIN_VALUE")
console.log(Number.MIN_VALUE); // 5e-324
// NaN - 숫자가 아님을 표시하는 지시어(Not a Number)
console.log("================> NaN")
console.log(Number.NaN); // NaN
// POSITIVE_INFINITY - 양의 무한대 수
console.log("================> POSITIVE_INFINITY")
console.log(Number.POSITIVE_INFINITY); // Infinity
// NEGATIVE_INFINITY - 음의 무한대 수
console.log("================> NEGATIVE_INFINITY")
console.log(Number.NEGATIVE_INFINITY); // -Infinity
</script>
반응형
'FrontEnd > JavaScript' 카테고리의 다른 글
[JavaScript] JavaScript Array 객체 (0) | 2022.10.04 |
---|---|
[JavaScript] typeof / instanceof, String 객체 (1) | 2022.09.30 |
[JavaScript] JavaScript 객체 (0) | 2022.09.27 |
[JavaScript] 변수의 종류(var, let, const) (0) | 2022.09.27 |
[JavaScript] JavaScript 이벤트 (0) | 2022.09.24 |