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 메서드에 대해 이야기하겠습니다. 🎜>
기타
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 중국어 웹사이트를 주목하세요!