Avatar ·

如何在 JavaScript 中检查对象是否为数组?

大家好!我刚开始学习 JavaScript,遇到了一个问题:我需要编写一个函数,它接受某个参数,并根据它是数组还是普通对象执行不同的操作。但我不知道如何正确检查。 我尝试过使用 typeof,但它对数组和普通对象都返回 "object"。例如: ```javascript const arr = [1, 2, 3]; const obj = { name: 'John' }; console.log(typeof arr); // "object" console.log(typeof obj); // "object" ``` 我还尝试过通过 `arr instanceof Array` 检查,但听说如果数组是在另一个窗口或 frame 中创建的,这种方法可能不起作用。另外我在网上看到建议使用 `arr.constructor === Array`,但也不确定其可靠性。 请问,检查变量是否为数组的最正确且通用的方法是什么?需要该方法在所有现代浏览器和环境中(包括 Node.js)都能工作。