如何将JS文件中的数组传递至另一个JS文件?
当然有可行的办法啦!根据你的项目环境,我整理了几种常用的实现方案,你可以按需选择:
方案1:全局变量(适合传统无模块化的小型项目)
如果你的项目还没用到模块化方案,最简单的方式就是把数组挂载到浏览器的全局对象window上。只要保证文件1在文件2之前加载,文件2就能直接访问这个全局变量:
// 文件1.js var array = ["random", "Stuff"]; window.sharedArray = array; // 把数组挂载到全局
// 文件2.js console.log(window.sharedArray); // 就能拿到 ["random", "Stuff"] 啦
⚠️ 小提醒:这种方式虽然简单,但容易造成全局命名空间污染,大型项目里尽量少用哦。
方案2:ES模块(现代前端项目首选)
现在主流的前端项目都支持ES模块了,这是最规范的模块化方案,完全不会有全局污染的问题:
首先在文件1里导出数组:
// 文件1.js export const array = ["random", "Stuff"];
然后在文件2里导入这个数组:
// 文件2.js import { array } from './文件1.js'; // 注意路径要正确 console.log(array);
最后别忘了在HTML引入脚本时加上type="module",告诉浏览器这是ES模块:
<script type="module" src="文件1.js"></script> <script type="module" src="文件2.js"></script>
这种方式支持tree-shaking,代码更干净,是现代项目的首选方案。
方案3:CommonJS模块(Node.js或旧版打包项目)
如果你的项目是Node.js环境,或者用了Webpack、Browserify这类支持CommonJS的打包工具,可以用这种方式:
文件1导出数组:
// 文件1.js // 方式1:直接导出整个数组 module.exports = ["random", "Stuff"]; // 方式2:导出单个变量(更灵活) exports.array = ["random", "Stuff"];
文件2导入:
// 文件2.js // 对应方式1 const array = require('./文件1.js'); // 对应方式2 const { array } = require('./文件1.js'); console.log(array);
方案4:localStorage/sessionStorage(适合跨页面或持久化需求)
如果需要数组在页面刷新后还能保留,或者在同一个域名的不同页面间共享,可以用浏览器的本地存储:
文件1把数组存到localStorage(注意要转成字符串,因为localStorage只能存字符串):
// 文件1.js var array = ["random", "Stuff"]; localStorage.setItem('sharedArray', JSON.stringify(array));
文件2读取并转成数组:
// 文件2.js const storedStr = localStorage.getItem('sharedArray'); const array = JSON.parse(storedStr); console.log(array);
⚠️ 注意:这种方式存储的数据是公开的,不要用来存敏感信息;而且如果数组里有函数、Symbol这类无法序列化的内容,JSON.stringify会丢失哦。
内容的提问来源于stack exchange,提问作者The Cool Man
相关产品推荐
相关产品推荐

