英文:
Uncaught SyntaxError: Unexpected token 'function'
问题
我看到很多类似的问题,但似乎没有一个能帮助我解决问题。
我得到这个错误 Uncaught SyntaxError: Unexpected token 'function' recipes: 163
,指向我的函数 startTimer(),请参见下面的代码。
我看不出我的函数有什么问题,也不知道还能在哪里找了,我已经尝试了一切。
我希望我的 img 标签每 3 秒更改一次 src,就像在我的 ASP.NET MVC 项目中使用 js 的幻灯片一样。
<details>
<summary>英文:</summary>
I've seen many questions like this but none seem to be helping me with my issue.
I get this error `Uncaught SyntaxError: Unexpected token 'function' recipes: 163` which is pointing on my function startTimer(), see code below.
I dont see anything wrong with my function and I don't know where to look anymore, I've tried everything.
I want my img tag to change src every 3 second, just like a slideshow using js in my ASP.NET MVC project.
<div id="image-slideshow" onload="startTimer()">
<img id="image-changer" src="@Model[0].Image" />
</div>
@section Scripts{
<script>
var index = 0;
var images = [];
images[0] = @Model[0].Image;
images[1] = @Model[1].Image;
images[2] = @Model[2].Image;
images[3] = @Model[3].Image;
images[4] = @Model[4].Image;
function changePic() {
document.getElementById("image-changer").src = images[index];
console.log(index);
index > 4 ? index = 0 : index++;
}
function startTimer() {
setInterval(changePic(), 3000);
}
</script>
}
I've tried to pinpoint what this unexpected error means but I cannot see any problems with the function.
</details>
# 答案1
**得分**: 1
在JavaScript中,[三元运算符](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Conditional_Operator)期望的是表达式,而不是语句。
`index = 0` 是一个语句。
因此,如果你想要有条件地赋值给 `index`,你有两种选项:
### 使用三元运算符进行赋值
```javascript
index = index > 4 ? 0 : index + 1;
这样做是因为0
是一个表达式,index + 1
也是一个表达式。
使用if
进行赋值
if (index > 4) {
index = 0;
} else {
index++;
}
英文:
In JavaScript, the ternary operator expects expressions, not statements.
index = 0
is a statement.
So if you want to conditionally assign index
, you have 2 options:
Assign using ternary
index = index > 4 ? 0 : index + 1;
This works because 0
is an expression and index + 1
is an expression.
Assign using if
if (index > 4) {
index = 0;
} else {
index++;
}
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论