>  기사  >  웹 프론트엔드  >  JavaScript에서 데이터 유형을 결정하는 방법 요약

JavaScript에서 데이터 유형을 결정하는 방법 요약

高洛峰
高洛峰원래의
2017-01-14 10:19:191052검색

typeof
Typeof는 페이지에 전역 변수가 정의되어 있는지 여부를 확인하는 데 자주 사용됩니다. 다음과 같이 판단한다면:

//haorooms是全局变量
if(haorooms!=undefined){
}//js会报错,说"Uncaught ReferenceError: haorooms is not defined"

해결책은 다음과 같이 작성하는 것입니다:

if(typeof haorooms!=undefined){
}

사용 후 typeof , 오류가 보고되지 않습니다! 이것은 typeof의 응용 프로그램 중 하나입니다!

게다가 typeof는 데이터 유형도 결정할 수 있습니다! 다음과 같습니다:

var haorooms="string"; console.log(haorooms); //string
var haorooms=1; console.log(haorooms); //number
var haorooms=false; console.log(haorooms); //boolean
var haorooms; console.log(typeof haorooms); //undfined
 
var haorooms= null; console.log(typeof haorooms); //object
var haorooms = document; console.log(typeof haorooms); //object
var haorooms = []; console.log(haorooms); //object
var haorooms = function(){}; console.log(typeof haorooms) //function  除了可以判断数据类型还可以判断function类型

물론 typeof의 경우 처음 네 가지 유형 외에도 null, object 및 array가 모든 객체 유형을 반환합니다.

instanceof
이를 사용하여 배열인지 여부를 확인할 수 있습니다.

var haorooms=[];
console.log(haorooms instanceof Array) //返回true

constructor
constructor는 반환된 객체에 해당하는 생성자입니다.
다양한 데이터 유형을 결정하는 방법:

console.log([].constructor == Array);
console.log({}.constructor == Object);
console.log("string".constructor == String);
console.log((123).constructor == Number);
console.log(true.constructor == Boolean);
 
function employee(name,job,born){
  this.name=name;
  this.job=job;
  this.born=born; }
 
var haorooms=new employee("Bill Gates","Engineer",1985);
console.log(haorooms.constructor); //输出function employee(name, jobtitle, born){this.name = name; this.jobtitle = job; this.born = born;}

haorooms.constructor를 출력해 보면 생성자가 반환된 객체에 해당하는 생성자임을 알 수 있습니다.

Object.prototype.toString
앞서 생성자 속성을 사용하여 객체 유형을 결정할 수 있다고 언급했습니다. 다시 Object.protype.toString 메서드에 대해 이야기하겠습니다. 🎜>

이 방법을 사용하면 변수의 기본 유형을 올바르게 결정할 수 있지만, 사용자 정의 유형인 경우 결과는 여전히 [object Object]

기타

jQuery에도 유형 판단 방법이 있습니다.

Object.prototype.toString.apply({}) // "[object Object]"
Object.prototype.toString.apply([]) // "[object Array]"
Object.prototype.toString.apply(NaN)// "[object Number]"
Object.prototype.toString.apply(function(){}) // "[object Function]"


$.isWindow(window) // true

그래서 그 방법의 예는 다음과 같습니다. 다음과 같은 개체를 엽니다.

core.js#479
isWindow: function( obj ) {
  return obj != null && obj == obj.window;
}

당신은 방금 그를 속였습니다.

요약

JavaScript에서 유형을 올바르게 판단하는 것은 정말 번거로운 일입니다. 주의 깊게 연구할 때 다양한 상황에 따라 판단을 설계하는 것도 매우 중요합니다. 물론 isPrototypeOf 메소드 등 이 글에서 소개하지 않은 부분도 많습니다. , 양날의 방법이 너무 많으니 주의해서 사용하시기 바랍니다.

자바스크립트에서 데이터 유형을 결정하는 방법을 요약한 관련 기사를 더 보려면 PHP 중국어 웹사이트를 주목하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.