一个JS多元运算符的问题

clipboard.png

求解console中为什么要这样写,多谢大侠们

阅读 4.8k
2 个回答

先说下,我不是搞js的,但我的直觉告诉应该这样理解:

console.log(f ? (b ? "FizzBuzz" : "Fizz") : (b ? "Buzz" : i))

所以我觉得没有什么为什么,就是写的人懒,没有考虑过可阅读性。

你也可以不这么写啊

for(var i=1;i<=100;i++){
    var f = i%3 == 0,
        b = i%5 == 0;
    if(f){
        if(b){
            console.log("FizzBuzz");
        }else{
            console.log("Fizz");
        }    
    }else{
       if(b){
           console.log("Buzz");
       }else{
           console.log(i);
       }
    }
}

回过头来,是不是发现上面写法读起来好像容易点,但是行数有点多~

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题