Como verificar se um objeto é um array em JavaScript?
Olá a todos! Comecei a estudar JavaScript recentemente e me deparei com uma situação confusa. Preciso verificar se uma variável é um array, mas estou obtendo resultados estranhos.
Aqui está o 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"
```
O operador `typeof` retorna "object" tanto para array quanto para objeto comum. Por causa disso, não consigo distinguir um array de um objeto. Tentei verificar com `arr instanceof Array` — parece funcionar, mas ouvi dizer que esse método pode falhar se o array foi criado em outro frame ou iframe.
Também vi que alguns usam `Array.isArray()`, mas não entendo por que esse método é melhor ou pior que outras abordagens. Talvez existam outras formas?
Preciso de uma solução confiável que funcione em qualquer ambiente — no navegador, no Node.js, e que não quebre ao trabalhar com diferentes janelas ou frames.