ประเภทของ
เมื่อใช้ typeof บ่อยขึ้นจะต้องพิจารณาว่าตัวแปรทั่วโลกมีอยู่หรือไม่หากหน้ากำหนดตัวแปรทั่วโลก หากคุณตัดสินต่อไปนี้:
// Harooms เป็นตัวแปรระดับโลกถ้า (harooms! = undefined) {} // js จะรายงานข้อผิดพลาดที่กล่าวว่าทางออกคือการเขียนดังนี้:
if (typeof haorooms! = undefined) {}หลังจากใช้ typeof จะไม่มีข้อผิดพลาด! นี่คือหนึ่งในประเภทของแอปพลิเคชัน!
นอกจากนี้ Typeof ยังสามารถตัดสินประเภทข้อมูล! ดังนี้:
var harooms = "String"; console.log (Harooms); // Stringvar harooms = 1; console.log (Harooms); // numbervar harooms = false; console.log (Harooms); // Booleanvar Harooms; console.log (harooms typeof); // undfinedvar harooms = null; console.log (harooms typeof); // ObjectVar Harooms = เอกสาร; console.log (harooms typeof); // ObjectVar harooms = []; console.log (Harooms); // ObjectVar harooms = function () {}; console.log (typeof harooms) // ฟังก์ชั่นนอกเหนือจากการตัดสินชนิดข้อมูลคุณยังสามารถตัดสินประเภทฟังก์ชั่นเห็นได้ชัดว่าสำหรับ typeof ยกเว้นสี่ประเภทแรก Null, Object, และ Array ส่งคืนวัตถุทุกประเภท
ตัวอย่าง
สามารถใช้เพื่อตรวจสอบว่าเป็นอาร์เรย์หรือไม่
var harooms = []; console.log (harooms อินสแตนซ์ของอาร์เรย์) // return true
ตัวสร้าง
ตัวสร้างเป็นตัวสร้างที่ส่งคืนตัวสร้างที่สอดคล้องกันของวัตถุ
วิธีตัดสินประเภทข้อมูลต่าง ๆ :
console.log ([]. constructor == array); console.log ({}. constructor == Object); console.log ("String" .constructor == String); console.log ((123) .constructor == number); console.log this.job = งาน; this.born = เกิด; } var haorooms = พนักงานใหม่ ("Bill Gates", "วิศวกร", 1985); console.log (harooms.constructor); // ฟังก์ชั่นเอาท์พุทพนักงาน (ชื่อ, jobtitle, เกิด) {this.name = name; this.jobtitle = Job; this.born = เกิด;}โดยการส่งออก haorooms.constructor จะเห็นได้ว่าตัวสร้างจะส่งคืนตัวสร้างที่สอดคล้องกับวัตถุ
Object.prototype.toString
เรากล่าวถึงก่อนหน้านี้ว่าเราสามารถใช้แอตทริบิวต์ตัวสร้างเพื่อกำหนดประเภทวัตถุ พูดคุยเกี่ยวกับวิธีการ object.protype.toString
Object.prototype.toString.apply ({}) // "[วัตถุวัตถุ]" Object.prototype.toString.apply (] // "[อาร์เรย์วัตถุ]" object.prototype.toString.apply (NAN) // "[วัตถุวัตถุ]"การใช้วิธีนี้เราสามารถตัดสินรูปแบบพื้นฐานของตัวแปรได้อย่างถูกต้อง แต่ถ้าเป็นประเภทที่กำหนดเองเราไม่สามารถรู้ประเภทจริงได้เนื่องจากผลลัพธ์จะยังคงเป็น [วัตถุวัตถุ]
อื่น
jQuery ยังมีวิธีการตัดสินประเภทต่อไปนี้เป็นตัวอย่าง
$ .ISWINDOW (หน้าต่าง) // จริง
ทำอย่างไร
core.js#479iswindow: ฟังก์ชั่น (obj) {return obj! = null && obj == obj.window;}เปิดวัตถุเช่นนี้:
var fakeWindow; fakeWindow = {}; fakeWindow.window = fakeWindow; $. isWindow (fakeWindow) // trueคุณโกหกเขา
สรุป
ใน JavaScript คุณต้องตัดสินประเภทอย่างถูกต้อง เมื่อคุณศึกษาพวกเขาอย่างระมัดระวังมันเป็นปัญหาจริงๆ การออกแบบการตัดสินของคุณเป็นสิ่งสำคัญมากตามสถานการณ์ที่แตกต่างกัน เราต้องคิดเกี่ยวกับวิธีการตัดสินประเภทที่ถูกต้องในวิธีที่ง่ายที่สุด แน่นอนว่ายังมีอีกหลายสิ่งที่ยังไม่ได้รับการแนะนำในบทความนี้ ตัวอย่างเช่นวิธี isprototypeof JavaScript เป็นภาษาที่มีภาระทางประวัติศาสตร์มากมาย แต่ก็มีการปรับปรุงอย่างต่อเนื่อง เมื่อใช้งานคุณควรให้ความสนใจกับใบมีดสองด้านมากเกินไป อย่าลืมใช้พวกเขาอย่างระมัดระวัง