以下行是做什么的?
(flag)?flag=false:flag=true;
在这段代码中:
var flag = true;
function resize() {
if(flag) {
document.getElementById("centerimg").style.width = "150%";
document.getElementById("centerimg").style.height = "150%";
document.getElementById("center").style.left = 120+"px";
} else {
document.getElementById("centerimg").style.width = "100%";
document.getElementById("centerimg").style.height = "100%";
document.getElementById("center").style.left = 190.5+"px";
}
(flag)?flag=false:flag=true;
}
答案 0 :(得分:4)
就像你写的那样:
if(flag){
flag = false;
}else{
flag = true;
}
答案 1 :(得分:1)
询问标志是否为true,如果flag为true,则将其更改为false,如果该标志为false,则将其更改为true。
答案 2 :(得分:1)
它正在使用所谓的三元运算符。它遵循与if-else语句相同的逻辑,只是一个更精简的版本。标准格式为condition ? true block : false block
(flag)
正在检查布尔条件 - 在这种情况下,它会查看flag
是否评估为true
。在。。之间 ?和:是布尔条件为真时要执行的操作 - 在这种情况下将flag
设置为false。如果条件为假,则会发生以下情况: - flag
为真。
因此,如果我们写这个缩写,它最终会成为
if (flag) {
flag = false;
} else {
flag = true
}
可以进一步缩短为flag = !flag
(flag
等于flag
的反面)
答案 3 :(得分:0)
答案 4 :(得分:0)
它使用JavaScript条件(或三元)运算符来翻转标志。这是if语句的快捷方式。见Conditional (ternary) Operator
如果flag为true,则将flag设置为false。否则,将flag设置为true。