Avatar ·

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.