Object. prototype. toString 으로 대상 유형 을 판단 합 니 다.

2455 단어
때때로 우 리 는 자 바스 크 립 트 대상 의 유형 을 판단 해 야 한다. 자주 사용 하 는 방법 은 연산 자 typeof 이다. 예 를 들 어:
typeof null
// "object"
typeof []
// "object"
typeof 3
// "number"
typeof true
// "boolean"
typeof JSON.parse
// "function"

그러나 한계 가 있 습 니 다. 바로 기본 적 인 유형 만 판단 할 수 있 고 더 구체 적 인 유형 은 구분 할 수 없습니다. 예 를 들 어 위의 null 과 [], 유형 은 모두 object 입 니 다.어 떡 하지?Object 원형 에 toString 방법 이 있 습 니 다. 대상 의 유형 이름 을 되 돌려 줄 수 있 습 니 다. 구체 적 인 유형 을 판단 할 수 있 습 니 다.아래 의 예 들 을 보 세 요.

Object.prototype.toString.call([])
// "[object Array]"
Object.prototype.toString.call(function(){})
// "[object Function]"
Object.prototype.toString.call({})
// "[object Object]"
Object.prototype.toString.call(null)
// "[object Null]"
Object.prototype.toString.call(undefined)
// "[object Undefined]"
Object.prototype.toString.call(true)
// "[object Boolean]"
Object.prototype.toString.call('')
// "[object String]"
Object.prototype.toString.call(1.2)
// "[object Number]"
Object.prototype.toString.call(NaN)
// "[object Number]"
Object.prototype.toString.call(Infinity)
// "[object Number]"
Object.prototype.toString.call(/./g)
// "[object RegExp]"
Object.prototype.toString.call()
// "[object Undefined]"
Object.prototype.toString.call(void 0)
// "[object Undefined]"

Object.prototype.toString.call(window)
// "[object global]"
Object.prototype.toString.call(document)
// "[object HTMLDocument]"
Object.prototype.toString.call(document.location)
// "[object Location]"
Object.prototype.toString.call(document.location.href)
// "[object String]"

Object.prototype.toString.call(Object)
// "[object Function]"
Object.prototype.toString.call(Object.prototype)
// "[object Object]"
Object.prototype.toString.call(Object.prototype.toString)
// "[object Function]"

Object.prototype.toString.call(Date)
// "[object Function]"
Object.prototype.toString.call(Date())
// "[object String]"
Object.prototype.toString.call(new Date())
// "[object Date]"

Object.prototype.toString.call(Math)
// "[object Math]"
Object.prototype.toString.call(Math.abs)
// "[object Function]"

Object.prototype.toString.call(Symbol())
// "[object Symbol]"

Object.prototype.toString.call(JSON)
// "[object JSON]"

좋은 웹페이지 즐겨찾기