Cómo verificar si un objeto es un array en JavaScript
¡Hola a todos! Acabo de empezar a aprender JavaScript y me encontré con una situación confusa. Necesito verificar si una variable es un array, pero obtengo resultados extraños.
Aquí está el código:
```javascript
let arr = [1, 2, 3];
let obj = {name: "John"};
let str = "hello";
console.log(typeof arr); // "object"
console.log(typeof obj); // "object"
console.log(typeof str); // "string"
```
El operador `typeof` devuelve "object" tanto para un array como para un objeto normal. Debido a esto, no puedo distinguir un array de un objeto. Intenté verificar con `arr instanceof Array` — parece funcionar, pero he oído que este método puede fallar si el array fue creado en otro frame o iframe.
También vi que algunos usan `Array.isArray()`, pero no entiendo por qué este método es mejor o peor que otros enfoques. ¿Quizás hay otras formas?
Necesito una solución confiable que funcione en cualquier condición — en el navegador, en Node.js, y que no se rompa al trabajar con diferentes ventanas o frames.