在变量中实现if命令

时间:2014-09-03 13:12:22

标签: javascript variables inline-if

这是我的代码:

var a=false;
var b=false;
var c=true;
var d=false;
//
var x = a ? a : (b ? b : (c ? c: false)) ;
//
for(i=0;i<11;i++){
    document.write(x);
}

内联if命令检查哪个变量(a,b,c) true 然后等于 x 到那个
并且在循环中它将写入10次 有两个假设:

  • 首先:如果命令循环10次,它将执行 x 的最终值
  • :如果命令只是一次进入 x ,并且循环 x 将只是一个包含<的变量,它将执行强>真

    哪一个是真的?
    感谢

1 个答案:

答案 0 :(得分:2)

它包含一个拼写错误,确定它应该看起来像:

var x = a ? a : (b ? b : (c ? c: false)) ;

所以你可以测试它:

var a=false;
var b=false;
var c=false;
var d=false;

var x = a ? a : (b ? b : (c ? c: "everything false")) ;


function runTest(){
    for(i=0;i<11;i++){
        console.log(x);
    }   
}

所以当你运行Test()时会记录“所有错误” 在控制台中更改变量b = true,例如没有刷新页面,所以你的场景和runTest()它仍然会打印“一切都是假的”

所以答案是

一旦x被赋予表达式,x是表达式的结果而不是表达式本身,当你稍后打印x时,它仍然是相同的结果,即使结果是表达式现在会有所不同(因为一些gobal变量已经改变)

让x始终为“最新”使其成为一个函数

x = function () {
  return a ? a : (b ? b : (c ? c: false)) ;
}

然后它会在每次通话时评估