Javascript 数组语法错误新手
我在这个错误中迷失了方向。我正在尝试编写一个函数,并在该函数中编写一个数组。在外部js文件中。这将是一个随机的图像加载函数,但我一直得到一个数组错误,无法找出原因Javascript 数组语法错误新手,javascript,Javascript,我在这个错误中迷失了方向。我正在尝试编写一个函数,并在该函数中编写一个数组。在外部js文件中。这将是一个随机的图像加载函数,但我一直得到一个数组错误,无法找出原因 function randImg(){ var imgs = new Array(); img[0]="banner1.png"; img[1]="banner2.png"; img[2]="banner3.png"; var maxium = img.length; } 我在var im
function randImg(){
var imgs = new Array();
img[0]="banner1.png";
img[1]="banner2.png";
img[2]="banner3.png";
var maxium = img.length;
}
我在var imgs线上得到错误信息。有什么想法吗
这是我调用变量“img”的新代码,它让我感觉不舒服。它加载了好的,但它只打印变量中的文本,而不是实际的文件!?所以在运行时,应该说“banner1.png”或“banner3.png”?有什么想法吗
function randImg(){
var banner = new Array();
banner[0] = "banner1.png";
banner[1] = "banner2.png";
banner[2] = "banner3.png";
var maxImg = banner.length;
var randNum = Math.floor(Math.random()*maxImg);
return banner[randNum];
}
定义数组及其元素的更好方法:
var img = [
"banner1.png",
"banner2.png",
"banner3.png",
"banner4.png"
]
这是您可能需要的功能:
function randImg(){
var img = [
"banner1.png",
"banner2.png",
"banner3.png",
"banner4.png"
]
var maxImg = img.length;
var randNum = Math.floor(Math.random()*maxImg)
return img[randNum]
}
定义数组及其元素的更好方法:
var img = [
"banner1.png",
"banner2.png",
"banner3.png",
"banner4.png"
]
这是您可能需要的功能:
function randImg(){
var img = [
"banner1.png",
"banner2.png",
"banner3.png",
"banner4.png"
]
var maxImg = img.length;
var randNum = Math.floor(Math.random()*maxImg)
return img[randNum]
}
变量名应该是一致的。您创建了新数组imgs(局部变量),但添加到了img(默认为全局变量,因为您没有将其声明为局部变量) 另外,请注意,在Javascript中,添加不是函数第一行的
var
语句没有太大意义。这是因为吊装。基本上,Javascript会将您的var
移动到第一行,将变量设置为undefine
。这可能会影响程序的工作方式,也可能不会影响程序的工作方式,因此最好在函数顶部添加所有var
s。Javascript具有函数作用域,而不是块作用域
(还要注意,maxium
是一个比maxium
更有意义的变量名)
如果您只是添加到数组的末尾(就像您正在做的那样),则可以使用.push()
或
或者更好的方法是,只需使用[]
初始化空数组,或者使用[a,b,c,…]
初始化包含元素的数组。另外,为什么要使用var
两次
function randImg(){
var img = ["banner1.png","banner2.png","banner3.png"], // note comma
maximum = img.length;
}
最后,实现函数的名称
var randImg = function() {
var img = ["banner1.png","banner2.png","banner3.png"];
return img[Math.floor(Math.random()*img.length)];
}
您的变量名应该是一致的。您创建了新数组imgs(局部变量),但添加到了img(默认为全局变量,因为您没有将其声明为局部变量) 另外,请注意,在Javascript中,添加不是函数第一行的
var
语句没有太大意义。这是因为吊装。基本上,Javascript会将您的var
移动到第一行,将变量设置为undefine
。这可能会影响程序的工作方式,也可能不会影响程序的工作方式,因此最好在函数顶部添加所有var
s。Javascript具有函数作用域,而不是块作用域
(还要注意,maxium
是一个比maxium
更有意义的变量名)
如果您只是添加到数组的末尾(就像您正在做的那样),则可以使用.push()
或
或者更好的方法是,只需使用[]
初始化空数组,或者使用[a,b,c,…]
初始化包含元素的数组。另外,为什么要使用var
两次
function randImg(){
var img = ["banner1.png","banner2.png","banner3.png"], // note comma
maximum = img.length;
}
最后,实现函数的名称
var randImg = function() {
var img = ["banner1.png","banner2.png","banner3.png"];
return img[Math.floor(Math.random()*img.length)];
}
我没有看到
var-img
在任何地方。我应该指出,我只在外部js文件上得到这个错误,但如果在内部使用它,我没有这个错误。我没有看到var-img
在任何地方。我应该指出,我只在外部js文件上得到这个错误,但如果在内部使用它,我没有这个错误error您为什么要将函数文本指定给变量而不是普通函数定义?@icktoofay-因为我不知道OP想在哪里使用函数,所以它更灵活。正式禁止在非功能块(如if)中使用函数声明。但是,所有浏览器都允许使用这些函数,并以不同的方式对其进行解释。是否有任何理由将函数文字指定给变量而不是普通的函数定义?@icktoofay-因为我不知道OP希望在哪里使用该函数,所以它更灵活。正式禁止在非功能块(如if)中使用函数声明。然而,所有浏览器都允许它们,并以不同的方式对它们进行解释。