作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 JavaScript 中有以下 switch 语句:
switch(scrollable.direction){
case "top" :
break;
case "left" :
break;
case "right" :
scrollable.select("."+lineCssClass).invoke("setStyle", {float: "right"});
break;
case "bottom" :
alert("Bottom scrolling not implemented yet ! Sorry !");
return;
}
(“调用”位是 prototype.js,但它与问题无关)
它在函数内部。我希望如果该值为 "bottom"
,则显示一条消息并且方法执行停止。
问题是如果值是例如"top"
,break
被执行,但是执行跳转到了return;
语句,而不是退出switch语句。
我实际上通过在返回后添加一个额外的 break;
解决了这个问题,这实际上是死代码,因为它永远不会被执行。
但我很想知道为什么它首先执行“return”?
编辑:对不起,“返回”实际上并没有执行。我正在使用 Firebug 单步执行代码,它实际上踩到了并突出显示了“return”行,但它没有被执行。
我的代码中还有其他问题导致它无法按预期工作,我错误地归咎于此。
最佳答案
我敢打赌,您的 scrollable.direction
给您的值不是真正的方向。
在您的 switch 语句中添加一个 default
子句(顺便说一句,您应该经常这样做)以检查它
switch(scrollable.direction){
/*...*/
case "bottom" :
alert("Bottom scrolling not implemented yet ! Sorry !");
return;
default:
console.log(scrollable.direction, 'is not a direction');
break;
}
关于javascript - JavaScript switch 语句中的 Firebug 调试令人困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8422784/
很抱歉新手的问题,但是: 我最近才发现“=”运算符不只是处理对象/等等。值(value),也是引用。这很酷,但我认为这对变量来说是不一样的,它不会在存储整数或 float 的变量之间创建引用。后来我觉
我是一名优秀的程序员,十分优秀!