JavaScriptでデータの種類を判断する方法のまとめ
3078 ワード
typeof typeof用の比較的多い場合は、あるグローバル変数が不在であると判断し、あるページがグローバル変数を定義している場合です.もしあなたが次のように判断したら:
また、typeofはデータタイプの判断も可能です.以下のとおりです
instance ofは配列かどうかを判定します.
Object.prototype.toStringの前に述べたように、construct属性を使って物件の種類を判定することができます.Object.protype.toStringという方法について説明します.
他のjQueryにもタイプ判定の方法があります.
結び目はJavaScriptの中でタイプを正確に判断して、よく研究する時、本当に面倒くさいことです.状況によって判断式を設計するのはとても重要です.私達も一番簡潔な方法で正しいタイプを判断するべきです. isPrototypeOf この方法は、JavaScriptは多くの歴史的な風呂敷を持っている言語ですが、常に進歩しています.それを使う時、注意してください.多すぎる方法は両面の刃です.注意して使ってください.
//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については、前の4つのタイプを除いて、null、オブジェクト、配列が戻ってくるのはすべてobjectタイプです.instance ofは配列かどうかを判定します.
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;}
harooms.co nstructorを出力することによって、constructorはオブジェクトに戻るための構造関数であることが分かります.Object.prototype.toStringの前に述べたように、construct属性を使って物件の種類を判定することができます.Object.protype.toStringという方法について説明します.
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]"
このような方法で変数の基本型を正確に判断できますが、自分のタイプであれば本当のタイプは分かりません.結果はそのまま「object Object」です.他のjQueryにもタイプ判定の方法があります.
$.isWindow(window) // true
どうやって作ったのですか
core.js#479
isWindow: function( obj ) {
return obj != null && obj == obj.window;
}
このようなObjectを開く:
var fakeWindow;
fakeWindow = {};
fakeWindow.window = fakeWindow;
$.isWindow(fakeWindow) // true
彼をだましたのです.結び目はJavaScriptの中でタイプを正確に判断して、よく研究する時、本当に面倒くさいことです.状況によって判断式を設計するのはとても重要です.私達も一番簡潔な方法で正しいタイプを判断するべきです. isPrototypeOf この方法は、JavaScriptは多くの歴史的な風呂敷を持っている言語ですが、常に進歩しています.それを使う時、注意してください.多すぎる方法は両面の刃です.注意して使ってください.