首页 > 解决方案 > 无法在javascript中初始化数组

问题描述

我在 js 文件中有一个全局数组:var buttonsClicked;我在$(document).ready(function (). 后来我调用了数组buttonsClicked的push方法,但我得到了Uncaught TypeError: Cannot read property 'push' of null

var buttonsClicked;

$(document).ready(function () {

    buttonsClicked = new Array();
}

function f() {
    buttonsClicked.push("some string");
}

当用户从前端触发一些按钮时,稍后会调用 f() 方法。我不知道为什么这个数组是空的,即使 new Array() 似乎被调用了。在浏览器控制台中,该数组也为空。

标签: javascript

解决方案


使用现代浏览器——至少用于开发——这样你就可以const在重新定义buttonsClicked. 更改代码如下:

const buttonsClicked = [];

function f() {
  buttonsClicked.push("some string");
}

此时,如果您尝试在代码的任何部分覆盖buttonsClicked,您将收到错误,并且您将看到分配它的位置。如果这没有发生,将添加字符串“some string”。


推荐阅读