반응형

# 자바스크립트 학습

# 오브젝트(Object)

## 프로퍼티 (Property)

  • 프로퍼티의 형태
{name: value}	// 이름: 값
  • name에 프로퍼티의 이름(키)를 작성하며, 따옴표 작성은 생략 가능하다.
var book = {
	title: "책",
    point: 123
};

// 따옴표 작성 생략의 경우, 자바스크립트가 따옴표를 작성하지 않아도 문자열로 간주하기 때문
  • value에 자바스크립트에서 지원하는 타입을 작성한다.
{a: 123, b: "ABC", c: true, d: {}}
{book: function(){코드}}
var book = {
	title: "책",
    point: {
    	ten: 10,
        bonus: 200,
        promotion: function(){}
    }
};
  • 오브젝트(Object)를 객체라고 부르기도 하지만, 여기서 오브젝트는 프로퍼티라는 실체가 있는 것을 의미.

## 프로퍼티의 추가, 변경

  • 오브젝트에 프로퍼티 추가, 변경
var obj = {};
obj.abc = 123;
obj 오브젝트에 프로퍼티 이름으로 abc가 없으면 abc:123이 추가되고,
abc가 있다면 프로퍼티 값이 123으로 변경된다.
  • 작성방법
1. 점과 프로퍼티 이름 사용
var book = {};
book.title = "JS책";
log(book);

=>
{title: JS책}


2. 대괄호 사용
var book ={};
book["title"] = "JS책";
log(book);

=>
{title: JS책}


3. 변수 이름 사용
var book = {title: "JS책"};
var varName = "title";
book[varName] = "HTML책";
log(book);

=>
{title: HTML책}

## Object 프로퍼티 값 추출

  • 오브젝트에서 프로퍼티 값 추출
var obj = {book: "책"}	// 일떄..
var value = obj.book;	// obj.book 시 value 에 "책"이 할당된다.
						// 만약 obj에 book 없을 경우 value에 undefined를 반환한다.
var obj = {book: "책"};
log(obj.book);
log(obj["sports"]);

=>
책
undefined

sports라는 프로퍼티 이름이 없으므로 undefined 반환

## for ~ in

  • 오브젝트에서 프로퍼티를 열거한다. (처음부터 끝까지 모두 읽음)
var sports = {
	soccer : "축구".
    baseball : "야구"
};
for (var item in sports) {
	log(item);
    log(sports[item]);
};

=>
soccer
축구
baseball
야구

# 빌트인(Built-in)

  • 값 타입, 연산자, 오브젝트를 자바스크립트 코드를 처리하는 영역에 사전에 만들어 놓은 것.
  • 사전 처리하지 않고 즉시 사용 가능하다.
  • 빌트인 값 타입 : Undefined, Null, Boolean, Number, String, Object
  • 빌트인 연산자(Opeartor) : +, -, *, /, %, ++, --, new 등

## 빌트인 오브젝트

  • 빌트인 오브젝트의 형태
빌트인 Number 오브젝트	(object)

=>
123과 같은 숫자, 상수, 지수를 처리하기 위한 오브젝트
(오직 Number를 위한 프로퍼티와 함수가 있다.)


빌트인 String 오브젝트 (object)

=>
오직 string을 위한 프로퍼티와 함수가 있다.

...
  • 대문자 Object는 키-값으로 데이터를 저장하는데 중점, 소문자 object는 데이터를 처리하는데 중점을 둔 것

 ## 빌트인 오브젝트의 유형

  • Number 오브젝트 : 123과 같이 숫자, 상수, 지수를 처리하기 위한 오브젝트
  • String 오브젝트 : "abc"와 같이 문자열을 처리하기 위한 오브젝트로, 문자열을 분리, 연결할 수 있다.
  • Boolean 오브젝트 : 단지 true, false를 처리하기 위한 오브젝트
  • Object 오브젝트 : {key: value} 형태로 프로퍼티를 처리하기 위한 오브젝트
  • Array 오브젝트 : [1, 2, "가나다"] 형태의 데이터를 처리하기 위한 오브젝트
  • Function 오브젝트 : function abc() {} 형태의 함수를 지원하기 위한 오브젝트
  • Math 오브젝트 : abs(), round() 등의 수학 계산용 함수를 지원하는 오브젝트
  • Date 오브젝트 : 연월일, 시분초, 밀리초 등의 시간 값을 구하고 설정할 수 있는 오브젝트
  • JSON 오브젝트 : 서버와 통신하는 데이터 형태를 지원하는 오브젝트
[{"key": "value"}] 형태
  •  RegExp 오브젝트 : ^, $와 같은 정규 표현식을 지원하는 오브젝트
  • 글로벌(Global) 오브젝트 : 소스 파일 전체에서 하나만 존재, 모든 코드에서 공유 및 접근이 가능하다. 

## 빌트인 Number 오브젝트

  • 숫자 처리를 위한 오브젝트
  • 숫자 처리를 위한 함수와 프로퍼티가 포함되어 있고, 함수를 호출하여 숫자 처리를 하게 되고, 프로퍼티 키로 값을 구하게 된다.

## 빌트인 오브젝트의 프로퍼티 리스트

  • 프로퍼티 리스트의 경우 전체적으로 보고 파악하는 것이 중요, 그 후 개별적으로 접근
new Number()	: 인스턴스 생성
Number 함수
Number()		: 숫자 값으로 변환하여 반환
Number prototype
constructor		: 생성자
toString()		: 숫자 값을 문자열로 변환
toLocaleString(): 숫자 값을 지역화 문자로 변환
valueOf()		: 프리미티브 값 반환
toExponential()	: 지수 표기로 변환
toFixed()		: 고정 소숫점 표기로 변환
toPrecision()	: 고정 소숫점 또는 지수 표기로 변환

## Number() // Number 함수

  • 파라미터 : 소괄호() 안에 작성하는 것으로, 변환할 값opt (선택 입력사항)
  • 반환 : 함수가 실행 된 후, 함수에서 반환한 값(변환 한 값)
  • 파라미터 값을 Number 타입으로 변환한다.
  • 파라미터 값이 String 타입이라도 값이 숫자이면 변환 가능하다.
1. 문자열을 숫자로 변환
log(Number("123") + 500);
log(Number("ABC"));		// 숫자로 변환 불가능 하므로 Not A Number 반환

=>
623
NaN		// 변환을 했는데 결괏값이 NaN인 경우, 변환 하려고 했는데 파라미터 값이 NaN인 경우.
log(Number(0x14));
log(Number(true));
log(Number(null));
log(Number(undefined));

=>
20	// 0x는 16진수*1+4 = 20
1
0
NaN	// 숫자로 변환할 수 없거나, 변환 했는데 그 결과가 Number 아닌 경우

## Number 상수

  • 상수는 값을 변경, 삭제할 수 없다.
  • 영문 대문자 사용이 관례이다.
  • Number.MAX_VALUE 형태로 값을 사용한다.
상수 이름
Number.MAX_VALUE 1.7976931348623157 * 10 (308승)
Number.MIN_VALUE 5 * 10(-324승)
Number.NaN Not-a-Number
Number.POSITIVE_INFINITY Infinity
Number.NEGATIVE_INFINITY -Infinity

 

반응형

+ Recent posts