javascript配列、対象とNullのtypeofは同じobjectで、解決方法を区別します.
2852 ワード
JSではtypeofが多く使われていますが、配列、対象とNullの区別ができない問題に対して、サイの本を見たら解決方法があります.
実はどこでこのような話を聞いたことがありますか?JavaScriptの中ではすべて対象です.今は私も経験があります.下を見てみます.
document.writeln(typeof "abc"); //string
document.writeln(typeof 123); //number
document.writeln(typeof true); //boolean
document.writeln(typeof eval); //function
document.writeln(typeof []); //object
document.writeln(typeof null); //object
document.writeln(typeof {}); //object
基本的なデータタイプはほとんど出てきましたが、配列、対象とnullは区別できません.どうやって破れますか?実はどこでこのような話を聞いたことがありますか?JavaScriptの中ではすべて対象です.今は私も経験があります.下を見てみます.
Object.prototype.toString.call()
//ECMA 5.1
//[object Undefined]
これはどう使いますか?直接例をあげるObject.prototype.toString.call([]) == "[object Array]"
Object.prototype.toString.call({}) == "[object Object]"
Object.prototype.toString.call(null) == "[object Null]"
以上ははっきりと区別しました.JavaScriptの中ではすべて対象が完全にここに現れています.基礎データの種類を試してみます.Object.prototype.toString.call(123) == "[object Number]"
Object.prototype.toString.call("arr") == "[object String]"
Object.prototype.toString.call(true) == "[object Boolean]"
結果はtrueのはずです.このように証明されています.問題は解決されました.他にも直接コードをつける方法がありますので、ひそかに試してみてください.(typeof arr == "object") && (arr.constructor == Array)
(typeof arr == "object") && (arr instanceof Array)