Avatar ·

Como verificar corretamente se uma variável é um array em JavaScript?

Olá a todos! Comecei a estudar JavaScript recentemente e me deparei com um problema. Preciso verificar se uma variável é um array, mas não tenho certeza de como fazer isso corretamente. Eu sei que existe o operador `typeof`, mas ele não funciona para arrays — ele retorna `"object"`. Por exemplo: ```javascript const arr = [1, 2, 3]; console.log(typeof arr); // "object" — inútil! ``` Tentei usar `instanceof Array`, mas me disseram que não é confiável, especialmente se o código trabalha com diferentes frames ou janelas (iframes). Também vi alguém verificando com `Array.isArray()`, mas não entendo por que esse método é melhor. Além disso, me confunde que em alguns projetos antigos usam `Object.prototype.toString.call(arr) === '[object Array]'`. Isso é legado ou uma abordagem moderna? Por favor, me digam qual método é considerado correto em 2024? Quero escrever código que funcione tanto no navegador quanto no Node.js, e que não quebre no futuro. Agradeço por exemplos com explicações.