无法在javascript中初始化数组

无法在javascript中初始化数组,javascript,Javascript,我在js文件中有一个全局数组:var按钮单击

我在js文件中有一个全局数组:
var按钮单击$(document)中实例化了它。ready(function()
。稍后我调用数组按钮的push方法clicked,但我得到了
未捕获的TypeError:无法读取null的属性“push”

var buttonsClicked;

$(document).ready(function () {

    buttonsClicked = new Array();
}

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

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

使用现代浏览器–至少用于开发–这样您就可以使用
const
,并在重新定义
按钮时捕获错误。按如下所示更改代码:

const buttonsClicked = [];

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

此时,如果您试图在代码的任何部分中覆盖单击的
按钮
,您将得到一个错误,您将看到分配它的位置。如果没有发生这种情况,字符串“some string”将添加。

发布完整代码?我刚刚编辑了问题。我无法发布整个js文件,因为它太大了。
f()方法是call later
,这是问题的关键-张贴您如何尝试使用它。在html文件中,我有如下内容:
在单击按钮之前,您似乎要在某个地方用
null
覆盖
按钮单击
变量。如果根本找不到该变量,则错误消息会略微失真不同:“未捕获的TypeError:无法读取未定义的属性或方法‘push’。”