数组语法错误,新手
Array syntax error newbie
我在这个错误中丢失了。我试着写一个函数,并在这个函数中写一个数组。在外部js文件中。这将是一个随机的图像加载函数,但我不断得到一个错误的数组,不能找出原因。
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"扔我它加载ok,但它只打印出文本在变量,而不是实际的文件!运行的时候是"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]
}
变量名应该保持一致。您创建了新的Array imgs(局部变量),但是您向添加了img(默认为全局变量,因为您没有将其声明为局部变量)。
还需要注意的是,在Javascript中,如果var
语句不是函数的第一行,那么添加它并没有太大的意义。这是因为吊装。实际上,Javascript将把var
移到第一行,并将变量设置为undefine
。这可能会影响程序的工作方式,也可能不会影响您认为它应该如何工作,因此最好在函数的顶部添加所有var
。Javascript有函数作用域,没有块作用域。
(还要注意maximum
是一个比maxium
更有意义的变量名)
// This adds to the newly created array:
function randImg(){
var img = new Array(), // Note: img NOT imgs
maximum; // Even if a var is below this line, Javascript hoists it here
img[0] = "banner1.png";
img[1] = "banner2.png";
img[2] = "banner3.png";
maximum = img.length;
}
,你可以使用.push()
如果你只是添加到数组的末尾(就像你所做的)
function randImg(){
var img = new Array(), // Note: img NOT imgs
maximum;
img.push("banner1.png");
img.push("banner2.png");
img.push("banner3.png");
maximum = img.length;
}
或
function randImg(){
var img = new Array(), // Note: img NOT imgs
maximum;
img.push("banner1.png").push("banner2.png").push("banner3.png)";
maximum = img.length;
}
或者更好的是,使用[]
来初始化一个空数组,或者使用[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)];
}
…下面是randImg()
相关文章:
- Node.js v6.2.0类扩展不是函数错误
- Jquery菜单操作不稳定,定位不正确,存在一般错误
- document.open/document.write没有正确地清除chrome中的文档——这是chrome的错误吗
- 试图在引导模式内动态生成图表,得到offsetWidth错误
- 为什么会出现错误;未捕获的类型错误:undefined不是函数;
- 我如何修复包含在captcha的addthis中的错误
- 同样,同样的错误'ahorcado.js:26未捕获类型错误:无法读取属性'beginPath'
- 未捕获错误:[$injector:modulerr](新手)
- 对于Javascript MVC中的新手来说,几乎没有错误
- JavaScript 和 if-else 函数的新手.(控制台日志中没有错误消息)
- 节点和续集的新手,并获得“未处理的拒绝类型错误:Vacation.create 不是一个函数”
- JavaScript新手,但我的函数在Firefox中运行错误
- 新手需要帮助:服务器错误
- AngularJS新手错误
- 新手jquery语法错误
- 数组语法错误,新手
- 我仍然是JS的新手,不能看到我在这个基本计算脚本上的错误
- PHP表单错误,新手
- Mozilla SDK的新手;url未定义”;错误
- web开发新手,遇到错误(jsfiddle)