데이터 유형을 판단하는 몇 가지 방법
typeof
판단 함수는function이고 판단 문자열은string이며 판단 대상, 수조,null는object로 되돌아온다.console.log(typeof 1) // "number"
console.log(typeof 'dfjidf') // "string"
console.log(typeof true) // "boolean"
console.log(typeof undefined) // "undefined"
console.log(typeof window.hhhhhhh) // "undefined"
console.log(typeof function(){}) // "function"
console.log(typeof null) // "object"
console.log(typeof []) // "object"
console.log(typeof {}) // "object"
console.log(typeof new Date()) // "object"
console.log(typeof new RegExp()) // "object"
console.log(typeof new Error()) // "object"
console.log(typeof [])
console.log(typeof [].length) // "number"
console.log(typeof {})
console.log(typeof {}.length) // "undefined"
console.log(typeof [])
console.log(typeof [].length) // "number"
console.log(typeof {})
console.log(typeof {length:0}.length) // "number"
2. 대상 유형을 알고 있으면: instanceof를 사용할 수 있습니다
console.log( {} instanceof Object) // true
console.log( [] instanceof Object) // true
console.log( [] instanceof Array) // true
console.log( 'fuifh' instanceof String) // false
console.log( new String('fuifh') instanceof String) // true
console.log( null instanceof Object) // false
console.log( function () {} instanceof Function) // true
console.log( new RegExp() instanceof RegExp) // true
console.log( new Date() instanceof Date) // true
// instanceof true
function Person () {
}
function Man () {
}
Man.prototype = new Person // Man Person
var p = new Man ()
console.log(p.constructor === Man) // false
console.log(p.constructor === Person) // true
console.log(p instanceof Man) // true
console.log(p instanceof Person) // true
3. 대상의 constructor에 따라 판단: constructor
console.log( {}.constructor === Object) // true
console.log( [].constructor === Object) // false
console.log( [].constructor === Array) // true
console.log( 'fuifh'.constructor === String) // true
console.log( (new String('fuifh')).constructor === String) // true
console.log( (function () {}).constructor === Function) // true
console.log( (new RegExp()).constructor === RegExp) // true
console.log( (new Date()).constructor === Date) // true
console.log( null.constructor === Object) // ,null constructor
function Person () {
}
function Man () {
}
var p = new Man ()
console.log(p.constructor === Man) // true
console.log(p.constructor === Person) // false
console.log(p instanceof Man) // true
console.log(p instanceof Person) // false
function Person () {
}
function Man () {
}
Man.prototype = new Person // Man Person
var p = new Man ()
console.log(p.constructor === Man) // false
console.log(p.constructor === Person) // true
console.log(p instanceof Man) // true
console.log(p instanceof Person) // true
construtor의 문제를 해결하는 것은 일반적으로 대상의 constructor가 수동으로 자신을 가리키도록 하는 것이다.
function Person () {
}
function Man () {
}
Man.prototype = new Person
var p = new Man ()
p.constructor = Man // Man, constructor
console.log(p.constructor === Man) //true
console.log(p.constructor === Person) //false
console.log(p instanceof Man) // true
console.log(p instanceof Person) // true
4.prototype과call/apply를 결합하여 사용하면 예에서의call을 apply로 바꿀 수 있다
console.log(Object.prototype.toString.call('fhakfk') === "[object String]") // true
console.log(Object.prototype.toString.call([1,432,564]) === "[object Array]") // true
console.log(Object.prototype.toString.call({}) === "[object Object]") // true
console.log(Object.prototype.toString.call(undefined)) // "[object Undefined]"
console.log(Object.prototype.toString.call(null)) // "[object Null]"
console.log(Object.prototype.toString.call(new Date())) // "[object Date]"
console.log(Object.prototype.toString.call(function () {})) // "[object Function]"
console.log(Object.prototype.toString.call(true)) // "[object Boolean]"
5、jQuery.type() 또는 $.type()
jQuery.type( null ) === "null"
jQuery.type( undefined ) === "undefined"
jQuery.type() === "undefined"
jQuery.type( window.hhhhhh) === "undefined"
jQuery.type( true ) === "boolean"
jQuery.type( 3 ) === "number"
jQuery.type( "jfdsfi" ) === "string"
jQuery.type( function(){} ) === "function"
jQuery.type( [] ) === "array"
jQuery.type( new Date() ) === "date"
jQuery.type( new Error() ) === "error" // as of jQuery 1.9
jQuery.type( /test/ ) === "regexp"
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.