เขียนที่จุดเริ่มต้น:
เมื่อวานนี้ฉันพบว่าไม่มีคำถามง่าย ๆ ไม่ได้รับคำตอบ อาจเป็นเพราะฉันประหม่าเกินไปและฉันรู้สึกว่าฉันแค่ร้องไห้อย่างโง่เขลา ต่อมาฉันคิดถึงมันและฉันควรบันทึกไว้อย่างระมัดระวังเพื่อที่ฉันจะได้ประทับใจ การปฏิวัติยังไม่ประสบความสำเร็จและยังคงต้องทำเพื่อให้แข็งแกร่ง!
1. JS หกประเภทข้อมูลหลัก ๆ
หมายเลข: ตัวเลขจำนวนเต็มหมายเลขจุดลอยตัว ฯลฯ
สตริง: คำพูดเดี่ยวหรือคู่เพื่อแสดง
บูลีน: ส่งคืนจริงและเท็จค่าทั้งสองนี้ไม่จำเป็นต้องสอดคล้องกับ 1 และ 0
วัตถุ: วัตถุคุณสามารถเรียกใช้ตัวดำเนินการใหม่ตามด้วยชื่อของประเภทวัตถุที่จะสร้างเพื่อสร้าง
NULL: มีชนิดข้อมูลที่มีค่าเพียงหนึ่งชนิดการพูดแบบมีเหตุผลค่า NULL แสดงถึงตัวชี้วัตถุเปล่า
ไม่ได้กำหนด: ไม่ได้กำหนด เมื่อตัวแปรถูกประกาศโดยใช้ VAR แต่ไม่ได้เริ่มต้นค่าของตัวแปรจะไม่ได้กำหนด
2. การตัดสินประเภทข้อมูลประเภทข้อมูล
Typeof สามารถแก้ปัญหาการตัดสินของประเภทข้อมูลส่วนใหญ่และค่าการส่งคืนเป็นสตริงซึ่งระบุประเภทของตัวถูกดำเนินการ
// ตัดสินว่าตัวแปร num เป็นประเภทตัวเลขถ้า (typeof num == 'number') {return true;}ผลการส่งคืน:
var a = "hling"; console.log (a); // stringvar a = 1; console.log (a); // numbervar a = false; console.log (a); // booleanvar a; console.log (typeof a); // undfinedvar a = null; console.log (typeof a); // ObjectVar a = เอกสาร; console.log (typeof a); // ObjectVar a = []; console.log (a); // ObjectVar a = function () {}; console.log (typeof a) // ฟังก์ชั่นนอกเหนือจากการกำหนดชนิดข้อมูลคุณยังสามารถกำหนดประเภทฟังก์ชั่นนอกเหนือจากสตริงสี่ประเภทจำนวนบูลีนและไม่ได้กำหนด, โมฆะ, วัตถุและอาร์เรย์ส่งคืนวัตถุทุกประเภท! - -
สำหรับประเภทฟังก์ชั่นฟังก์ชั่นจะถูกส่งกลับเช่น typeof (วันที่), typeof (eval) ฯลฯ
3. วิธี JS ในการกำหนดประเภทอาร์เรย์
1) อินสแตนซ์ของ
InstanceOF ใช้เพื่อพิจารณาว่าตัวแปรเป็นอินสแตนซ์ของวัตถุหรือไม่ มันเป็นสูตรการดำเนินการไตรภาค ตัวดำเนินการนี้มีส่วนเกี่ยวข้องกับวัตถุที่มุ่งเน้นใน JavaScript เพื่อให้เข้าใจสิ่งนี้คุณต้องเข้าใจวัตถุที่มุ่งเน้นในจาวาสคริปต์ก่อน เพราะผู้ปฏิบัติงานนี้ตรวจพบว่าห่วงโซ่ต้นแบบของวัตถุชี้ไปที่วัตถุต้นแบบของตัวสร้างหรือไม่
อินสแตนซ์ของ B? Alert ("true"): Alert ("False") // โปรดทราบว่าค่า B เป็นประเภทข้อมูลที่คุณต้องการตัดสินมันเป็นสตริงเช่นอาร์เรย์ตัวอย่าง:
var arr = [1,2,3,1]; การแจ้งเตือน (อินสแตนซ์ arr ของอาร์เรย์); // จริง
2) ตัวสร้าง
คำจำกัดความในคำจำกัดความของ W3C: คุณสมบัติคอนสตรัคเตอร์ส่งคืนการอ้างอิงไปยังฟังก์ชันอาร์เรย์ที่สร้างวัตถุนี้
var arr = []; arr อินสแตนซ์ของอาร์เรย์; // true arr.constructor == array; // จริง
วิธีการตัดสินประเภทต่าง ๆ คือ:
console.log ("String" .constructor == String); console.log ((123) .constructor == number); console.log (false.constructor == บูลีน); console.log ([]. constructor == array); console.log (}. constructorวิธีการทั่วไป:
ฟังก์ชั่น isarray (วัตถุ) {return object && typeof object === 'Object' && array == Object.constructor;}3) การตัดสินลักษณะ
Object.isarray () เพื่อพิจารณาวัตถุประสงค์คือเพื่อตรวจจับได้อย่างถูกต้องว่าค่าเป็นอาร์เรย์หรือไม่ IE9+, Firefox 4+, Safari 5+, Opera 10.5+ และ Chrome ทั้งหมดใช้วิธีนี้ อย่างไรก็ตามไม่ได้รับการสนับสนุนก่อน IE8
ฟังก์ชั่น isarray (object) {return object && typeof object === 'Object' && typeof object.length === 'number' && typeof object.splice === 'ฟังก์ชั่น' && // เพียงแค่กำหนดว่าคุณสมบัติความยาวนั้นสามารถระบุได้สำหรับอาร์เรย์4) Object.prototype.toString.call
Object.prototype.toString.call (value) == '[อาร์เรย์วัตถุ]'
การอภิปรายสั้น ๆ ข้างต้นเกี่ยวกับการตัดสินประเภทข้อมูล JS และการตัดสินอาร์เรย์เป็นเนื้อหาทั้งหมดที่ฉันแบ่งปันกับคุณ ฉันหวังว่าคุณจะให้ข้อมูลอ้างอิงและฉันหวังว่าคุณจะสนับสนุน wulin.com มากขึ้น