在许多情况下,如果您将它们遗漏,JavaScript解析器将为您插入分号.我的问题是,你把它们遗弃了吗?
如果您不熟悉规则,则会在Mozilla网站上对分号插入进行描述.这是关键点:
如果第一至第n 个 JavaScript程序形式的令牌是语法上有效,但第一至第n + 1个ST令牌是不与存在n之间的换行符个令牌和第n + 1个ST令牌,则解析器尝试将所述n之间的虚拟分号令牌之后再次解析程序次和第n + 1个ST令牌.
这种描述可能不完整,因为它没有解释@ Dreas的例子.任何人都有完整规则的链接,或者看看为什么这个例子得到一个分号?(我在JScript.NET中尝试过.)
此stackoverflow问题是相关的,但仅涉及特定方案.
除了主观视觉感知和在同一行上有多个语句的情况之外,还有任何理由在JavaScript语句结尾处使用分号吗?
看起来有大量证据表明使用分号是高度可选的,仅在少数特定情况下是必需的.
当我移动物体时,它很慢并且不会在对角线上移动,只能向上,向下,向右和向左移动.
我该如何解决这个问题,这是一个好的开始方式,还是我应该这样做?
var canvas = document.getElementById("canvas");
var ctx = canvas.getContext('2d');
canvas.width = 600;
canvas.height = 600;
var object = {
height: 40,
width: 40,
x: 10,
y: 10,
color: "#FF0000"
}
document.addEventListener('keydown', function(event) {
//left
if(event.keyCode == 37) {
object.x -= 1;
}
//top
else if(event.keyCode == 38) {
object.y -= 1;
}
//right
else if(event.keyCode == 39) {
object.x += 1;
}
//bottom
else if(event.keyCode == 40) {
object.y += 1;
}
});
function renderCanvas(){
ctx.fillStyle = "#000000";
ctx.fillRect(0, …Run Code Online (Sandbox Code Playgroud) 我仍然是编码和javascript的新手,但我将下面的代码编写为三向随机函数.一切似乎都运行良好,除了无论我运行多少次代码,返回都是插入的"c".我想知道是否有人可以给我一些关于如何解决这个问题的快速建议.谢谢.
var random = function() {
var randomizer = function() {
Math.random() * 100
}
if (randomizer <= 33) {
var compDecision = "a"
}
else if (randomizer > 67) {
var compDecision = "b"
}
else if (33 < randomizer <= 67) {
var compDecision = "c"
}
document.write(compDecision)
}
Run Code Online (Sandbox Code Playgroud)