Java Script -5

김정현·2024년 3월 28일
0

JavaScript

목록 보기
6/10

내장 객체

연산자

instanceof : 객체의 출처를 체크 (프로토타입 체인)

function Person(name, age) {
    this.name = name;
    this.age = age;
}

const p1 = new Person("이이름", 40);

p1 instanceof Person;

-> true

코어 객체

-내장 생성자 함수 객체
-내장 객체
1.Math - 수학 관련 편의 메서드가 있는 객체

JSON(JavaScript Objdet Notation) - 자바스크립트 객체 표기법

{
	"이름": "값",
    "이름": "값",
    ...
}
  • .parse(): JSON 문자열 -> 자바스크립트 객체 변환

  • .stringify(): 자바스크립트 객체 -> JSON 문자열로 변환

호스트 객체 : 실행 환경에 따른 객체
-웹 브라우저 객체 - 웹브라우저의 기능과 관련된 객체
window
location 객체 - 브라우저의 주소와 관련된 기능, 정보
history 객체 - 브라우저의 방문 기록과 기능
screen 객체 - 화면 정보
navigator 객체 - 브라우저 환경 정보

document 객체 - 웹 문서를 다루는 객체

REPL(Read Evaluate Print Loop) - 명령행

내장 생성자

자바 스크립트에 처음부터 포함된 내장 생성자

1.object 일반 객체

object.prototype

prototype
.toLocaleStirng()

Locale: 지역화
지역화에 맞게 변경

Object.getOwnPropertyDescriptor()
Object.getOwnPropertyDescriptors()
-> 상태 확인 가능

데이터 프로퍼티

  • value: 값
  • writable: false -> 값 변경
const person ={
name: "김이름",
age: 30 
};


Object.defineProperty(person, 'name', {writable: false});
 -> 변경 불가
  • enumerable: false -> 열거 불가
const person ={
    name: "김이름",
    age: 30,
    showInfo : function() {
    }
};


Object.defineProperty(person,'showInfo',{enumerable: false});

for (const key in person) {
    console.log(key);
}
=>제외하면 함수는 출력되지 않음
  • configurable: false -> 설정 변경 불가, 삭제 불가
    false로 설정 되어 있어도 예외(writable이 true일 경우 단 한 번만 false로 변경 가능)

-> 변경
Object.defineProperty
.defineProperties

참고) 속성 : 통제 기능 포함

  • Object.preventExtensions(); -> 새로운 속성 추가 불가

  • Object.seal(); -> 객체 밀봉, 삭제 불가, 속성 추가 불가

  • Object.freeze(); -> 객체 동결, 삭제 불가, 속성 추가 불가, 값 변경 불가

접근자 프로퍼티

값을 직접 변경하는것은 좋지 않은 방법.

  • 함수 형태: 단축 표현법
    -set 함수명 - 값을 변경하는 접근자 속성
    -get 함수명 = 값을 조회하는 접근자 속성
const schedule = {
    _year : 2024,
    _month : 3,
    _day : 28,
    set year(year) {
        this._year = year;
    },
    get year() {
        return this._year;
    },
    set month(month) {
        this._month = month;
    },
    get month() {
        return this._month;
    },set day(day) {
        this._day = day;
    },
    get day() {
        return this._day;
    },
}

이렇게 접근자 프로퍼티를 사용할경우 함수 내부에서 값을 처리할 수 있는 로직을 생성할 수 있다.

-enumerable
-configurable

  • Object.setPrototypeOf(objA, objB);
    : A에 B를 상속시킨다.
const objA = {a:1, b:2};
const objB = {c:3, d:4};


Object.setPrototypeOf(objA, objB);

objA.c 
->3
const person = {
	name: "이이름",
    age: 40
};

const person2 = person;  //얕은 복사, 주소 복사

person === person2
->true
const person3 = Objcet.assign({}, person);

person3 === person;
->false

전개 연산자 ...:

깊은 복사 가능

const person = {
	name: "이이름",
    age: 40
};


const person2 = {...person};

person === person2; 
->false


const person2 = { ...person, age: 30};
//일부 값만 변경하고 싶을때

참고)
entries: 이름-값 쌍 조회

Map.Entry: 이름-값의 쌍

2.String 문자열 객체

wrapper 생성자 객체

indexOf(...) : 문자열의 위치 번호 (0부터 시작 - 좌 -> 우)

lastIndexOf(...) : 문자열의 위치 번호 (우 -> 좌), 해당 문자열을 찾지 못할경우 -1 을 반환

3.Number 숫자 객체

wrapper 생성자 객체

NaN: Not a Number - 숫자가 아니다.
isNaN(...) : 숫자가 아니면 true, 숫자이면 false

참고) 원시 타입, 원시 값 - 재료가 되는 값
(숫자, 문자, 논리값, undefined, null, .. )

typeof num1 === number : 숫자 판별가능

parse: 변환

parseInt() : 문자열, 실수 => 정수로 변환
parseFloat() :문자열 -> 실수로 변환

4.Boolean 논리값 객체

함수처럼 사용했을 경우 : 값에 대한 평가 -> 실제 논리값으로 변경

5.Array 배열 학습 URL

 new Array -> const 변수 = [...]   

배열 x
배열객체 o

6.Date 날짜와 시간을 다루는 객체

const date = new Date();
생성한 날짜와 시간을 저장함

년도: getFullYear()
월: getMonth() / 0~11, 0->1월
일: getDate()
요일: getDay() 0~6 / 0 - 일요일
시간: getHours()
분: getMinutes()
초: getSeconds()

set도 가능

-getTime() : -1970.1.1 자정 -> 1000분의1초 단위로 카운트 수치 ->Epoch Time -> 초단위 -> Timestamp

Date.parse(문자열 날짜): 문자열 날짜 -> Date객체로 변환

Date.now(): 현재시각의 Epoch Time

달력

1) 이번 달이 몇일로 끝나는지?
-다음달 1일 -1일 차감 -> 현재 달의 마지막 날짜

2) 이번 달 1일이 몇요일에 시작하는지?
-getDay(): 0~6

7.Function 함수 객체

8.RegExp 정규표현식 객체

9.Error 오류 객체

try {

} catch(e) {

}

0개의 댓글