เพื่อตรวจสอบว่าตัวแปรเป็น array ใช้ instanceof Syntax:
variable instanceof Array
ตัวอย่าง
ตัวอย่างตรวจสอบตัวแปร "sports" ว่าเป็น array หรือไม่:
<html>
<body>
<script>
var sports = ["tennis", "football", "cricket"];
if (sports instanceof Array) {
alert('Array!');
} else {
alert('Not an array');
}
</script>
</body>
</html>
วิธีที่แนะนำในปัจจุบัน (ES5+)
// Array.isArray() - มาตรฐาน แนะนำมากที่สุด
Array.isArray(sports) // true
Array.isArray([]) // true
Array.isArray({}) // false
Array.isArray(null) // false
// instanceof - มีข้อจำกัดใน cross-frame/iframe contexts
sports instanceof Array // true (แต่ล้มเหลวถ้ามาจาก iframe อื่น)
ความแตกต่าง
| วิธี | ข้อดี | ข้อเสีย |
|---|---|---|
Array.isArray() | ทำงานถูกต้องข้าม frame/iframe, มาตรฐาน ES5+ | - |
instanceof Array | รองรับเก่า, เข้าใจง่าย | ล้มเหลวกับ cross-frame arrays |
Object.prototype.toString.call(arr) === '[object Array]' | ทำงานทุกกรณี, รองรับเก่ามาก | verbose |
แนะนำ: ใช้ Array.isArray() เสมอ