typeof return object
ประเภทข้อมูลทั้งหมดในจาวาสคริปต์เป็นวัตถุอย่างเคร่งครัด แต่ในการใช้งานจริงเรายังมีประเภทที่แตกต่างกัน หากคุณต้องการตรวจสอบว่าตัวแปรเป็นอาร์เรย์หรือวัตถุมันไม่สามารถจัดการกับ typeof ได้หรือไม่เพราะมันส่งคืนวัตถุทั้งหมด
การคัดลอกรหัสมีดังนี้:
var o = {'ชื่อ': 'Lee'};
var a = ['reg', 'blue'];
document.write ('o typeof คือ' + typeof o);
document.write ('<br />');
document.write ('a typeof คือ' + typeof a);
ดำเนินการ:
การคัดลอกรหัสมีดังนี้:
o typeof เป็นวัตถุ
ประเภทของวัตถุ
ดังนั้นเราสามารถยอมแพ้วิธีนี้เท่านั้น เราต้องตัดสินว่ามีสองวิธีสำหรับอาร์เรย์หรือวัตถุ
ก่อนอื่นให้ใช้ typeof เพื่อเพิ่มแอตทริบิวต์ความยาว
อาร์เรย์มีแอตทริบิวต์ความยาววัตถุไม่ได้และอาร์เรย์ typeof และวัตถุทั้งสองกลับวัตถุดังนั้นเราจึงสามารถตัดสินด้วยวิธีนี้
การคัดลอกรหัสมีดังนี้:
var o = {'ชื่อ': 'Lee'};
var a = ['reg', 'blue'];
var getDatatype = function (o) {
if (typeof o == 'object') {
if (typeof o.length == 'number') {
กลับ 'อาร์เรย์';
}อื่น{
กลับ 'วัตถุ';
-
}อื่น{
return 'param ไม่ใช่ประเภทวัตถุ';
-
-
การแจ้งเตือน (getDatatype (O)); // วัตถุ
การแจ้งเตือน (getDatatype (a)); // อาร์เรย์
การแจ้งเตือน (getDatatype (1)); // param ไม่ใช่ประเภทวัตถุ
การแจ้งเตือน (getDatatype (true)); // param ไม่ใช่ประเภทวัตถุ
การแจ้งเตือน (getDatatype ('a')); // param ไม่ใช่ประเภทวัตถุ
ประการที่สองใช้อินสแตนซ์ของ
ใช้อินสแตนซ์เพื่อตรวจสอบว่าตัวแปรเป็นอาร์เรย์เช่น:
การคัดลอกรหัสมีดังนี้:
var o = {'ชื่อ': 'Lee'};
var a = ['reg', 'blue'];
การแจ้งเตือน (อาร์เรย์อินสแตนซ์); // จริง
การแจ้งเตือน (o อินสแตนซ์ของอาร์เรย์); // เท็จ
คุณสามารถตรวจสอบได้ว่าเป็นของวัตถุ
การคัดลอกรหัสมีดังนี้:
var o = {'ชื่อ': 'Lee'};
var a = ['reg', 'blue'];
การแจ้งเตือน (วัตถุอินสแตนซ์ของ); // จริง
การแจ้งเตือน (o อินสแตนซ์ของวัตถุ); // จริง
แต่อาร์เรย์ก็เป็นของวัตถุดังนั้นทั้งสองอย่างข้างต้นจึงเป็นจริง ดังนั้นเมื่อเราใช้อินสแตนซ์ของเพื่อตรวจสอบว่าชนิดข้อมูลเป็นวัตถุหรืออาร์เรย์เราควรตัดสินอาร์เรย์ก่อนและตัดสินวัตถุในที่สุด
การคัดลอกรหัสมีดังนี้:
var o = {'ชื่อ': 'Lee'};
var a = ['reg', 'blue'];
var getDatatype = function (o) {
ถ้า (o อินสแตนซ์ของอาร์เรย์) {
กลับ 'อาร์เรย์'
} อื่นถ้า (o อินสแตนซ์ของวัตถุ) {
กลับ 'วัตถุ';
}อื่น{
return 'param ไม่ใช่ประเภทวัตถุ';
-
-
การแจ้งเตือน (getDatatype (O)); // วัตถุ
การแจ้งเตือน (getDatatype (a)); // อาร์เรย์
การแจ้งเตือน (getDatatype (1)); // param ไม่ใช่ประเภทวัตถุ
การแจ้งเตือน (getDatatype (true)); // param ไม่ใช่ประเภทวัตถุ
การแจ้งเตือน (getDatatype ('a')); // param ไม่ใช่ประเภทวัตถุ
หากคุณไม่จัดลำดับความสำคัญอาร์เรย์ตัวอย่างเช่น:
การคัดลอกรหัสมีดังนี้:
var o = {'ชื่อ': 'Lee'};
var a = ['reg', 'blue'];
var getDatatype = function (o) {
ถ้า (o อินสแตนซ์ของวัตถุ) {
กลับ 'วัตถุ'
} อื่นถ้า (o อินสแตนซ์ของอาร์เรย์) {
กลับ 'อาร์เรย์';
}อื่น{
return 'param ไม่ใช่ประเภทวัตถุ';
-
-
การแจ้งเตือน (getDatatype (O)); // วัตถุ
การแจ้งเตือน (getDatatype (a)); // วัตถุ
การแจ้งเตือน (getDatatype (1)); // param ไม่ใช่ประเภทวัตถุ
การแจ้งเตือน (getDatatype (true)); // param ไม่ใช่ประเภทวัตถุ
การแจ้งเตือน (getDatatype ('a')); // param ไม่ใช่ประเภทวัตถุ
จากนั้นอาร์เรย์ก็จะถูกตัดสินว่าเป็นวัตถุ