《JavaScript面向对象编程指南》一个例子中这个条件判断是什么意思?

我想知道这个 (i * j) % 8 ? 条件判断是怎么回事?是说如果(i * j) % 8的余数是0的话,就是false,不是0的话就是true吗?多谢!

var res = '\n', i, j;
for(i = 1; i <= 7; i++) {
  for(j = 1; j <= 15; j++) {
    res += (i * j) % 8 ? ' ' : ' * ';
  }
  res += '\n';
}
阅读 3.5k
3 个回答

是的。(i * j) % 8的结果转布尔类型做判断。像if(*)一样有隐式类型转换。

三目运算符,

三元表达式,和隐式类型转换

res += (i * j) % 8 ? ' ' : ' * ';

// 等同于

var str = ' ';
    
if ((i * j) % 8 !== 0) {
    str = ' * ';
}

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