자바스크립트 객체 프로퍼티와 메소드들
hasOwnProperty() : 특정 프로퍼티가 해당 객체에 존재하는지 검사한다. 해당 객체엫서 직접 서언된 프로퍼티만 검사하며 프로퍼티 이름이 같아도 상속받은건 false로 반환한다.
propertyIsEnumerable() : 특정 프로퍼티가 해당 객체에 존재하고 열기 가능한지 검사한다. 즉 hasOwnProperty가 TURE고 열거할 수 있는지 검사하는 역할을 하는 메소드다.
- 열거할 수 있는 프로퍼티는 내부적으로 enumerable 플래그가 ture로 설정된 것이 대상이다. 이러한 프로퍼티는 for/in문으로 접근한다.
(Code)
var obj = {name:”김요섭”, age:27}
for(var i in obj){document write(i + “<br>”);
isPrototypeOf() : 특정 객체의 프로토타입 체인에 현재 객체가 존재하는지 검사한다.
isExtensible() : 객체에 새로운 프로퍼티를 추가 가능한지 여부를 반환한다.
참고로 perventExtension() 메소드가 사용된 객체는 새로운 프로퍼티 추가가 불가능하다.
toString() : 이 메소드를 호출한 객체의 문자 값을 반환한다.(이때 어떠한 인수도 전달받지 않는다.)
valueOf() : 특정 객체의 원시타입(primitive type)를 반환한다. 만약 원시타입이 값이 없는 객체라면 객체 자신을 반환한다.
getter & setter
getter : 특정 프로퍼티의 값을 받아오기 위한 메소드
setter : 특정 프로퍼티의 값을 설정하기 위한 메소드
- 다시 강조 : 모든 자바스크립트 객체는 Object 객체와 Object,prototype 객체의 모든 프로퍼티를 상속받는다.
전역객체 : 자바스크립트에 미리 정의된 객체로 전역 프로퍼티나 전역함수를 담는 공간 역할을 한다.
래퍼(Wrapper)객체 : 삿자,문자열,Boolean 등 원시타입의 프로퍼티에 접근하려고 할 때 생성되는 임시 객체다.
표준 객체 : 다른 객체의 기초가 되는 핵심 객체로 Number, Math, Date, String, Array 객체가 있다.
Number 객체 : 보통 자바스크립트에서는 숫자 리터럴로 표현하나 Number 객체 생성이 가능하다. 이때 추가연산이 매우 많으므로 래퍼객체로만 사용한다.
숫자와 관련된 표현 : infinity, NaN, null, undifined
- infinity : 숫자 타입으로 부울 값이 있다.(true를 가짐), 실제 표현은 무한대수다.
- NaN : 숫자 타입이나 부울 값이 없다.(false를 가짐), 실제 표현은 NaN이다.
- null : object로 부울 값이 없다.(false), 실제 표현은 0이 나온다.
- undefined : 타입 자체가 선언이 안되어있다.(undefined 그 자체), 부울 값은 없다.(false), 실제 표현은 NaN이다(뭬야?)
number 관련 메소드
- parseFloat / parseInt : 파싱한 문자열의 숫자부분을 실수/정수로 변환한다. 이때 띄어쓰기 등으로 나뉠 경우 제일 앞의 String 뭉치만 변환한다.
- isNaN : 전달된 값을 확인하여 NaN인지 아닌지 확인한다.
- isFinite : 전달된 값이 유한수인지 검사한다.
- isInteger : 전달된 값이 정수인지 검사한다.
- isSafeInteger : 전달된 값이 안전한 정수인지 검사한다.
안전한 정수는 IEEE 754 표준에서 정의한 64비트 부동소수정수로 정확히 표현되는 정수다. 범위는 2의 53제곱가 마이너스인 값부터 2의 53제곱까지다.
number.prototype 메소드
- toExponential : 지수표기법(1.234e+1 이런식으로 표기한거)으로 반환한걸 문자열로 변환한다.
- toFixed : 소수부분의 자릿수를 받아서 그 자릿수에 맞게 고정한 걸 문자열로 변환한다.
- toPrecision : 가수와 소수부분을 합친 자릿수를 전달받은 값을 고정 후 문자열로 변환한다.
- toString : Number 인스턴스의 값을 해당하는 진법으로 변환한 다음 문자열로 변환한다.
- valueOf : Number 인스턴스가 가지고 있는 값을 반환한다.
- Math객체 : 수학에서 자주 사용하는 상수/함수들을 미리 구현한 내장된 객체로 생성자가 존재하지 않는다!(중요), 따라서 인스턴스를 생성하지 않아도 사용할 수 있다.
- Math메소드에는 min,nax,randim,round,floor,ceil,sin 등등이 있다. 참고로 웹브라우저마다 다른 값이 나올 수도 있으므로 정확도가 요구되는 작업에선 자제해야 한다.
- Date객체 : newDate(), newDate(“날짜를 나타내는 문자열”), newDate(“밀리초”), newDate(년,월,일,시,분,초,밀리초) 식으로 초기화가 가능하다. 단 객체 생성시 어떠한 인수도 전달하지 않으면 현재날짜,시간으로 Date 객체가 생성되니 주의해야 한다.
- Date를 사용할 시 자바스크립트에서는 ISO방식(YYYY-MM-DD THH:MM:SS), Long 날짜 방식(MMM.DD.YYY – 이때 MMM은 영문으로 축약되어 표시됨), Full 날짜 방식(그대로 서술) 방법이 있다.
- Date메소드에는 getDate(일자), getDay(요일), getMonth(월), getFullYear(연도의 4비트로 이루어진 숫자), getHours(현재 시각), getMilliseconds(밀리초), getSeconds(초), getTime(1970년 1월 1일 이후 누적된 시간을 숫자로 환산한 것) 등이 있다.