if if then then else 除非三元运算符

if 构造的最基本实例评估条件并根据条件结果执行一些代码。如果条件返回 true,则执行条件内的代码。

counter = 10
if counter is 10
  console.log 'This will be executed!'

if 构造可以用 else 语句来丰富。只要不满足 if 条件,else 语句中的代码就会执行。

counter = 9
if counter is 10
  console.log 'This will not be executed...'
else
  console.log '... but this one will!'

if 构造可以使用 else 链接,对链接的数量没有任何限制。返回 true 的第一个条件将运行其代码并停止检查:此后将不再评估该点以下的条件,并且不会执行带有这些条件的代码块。

if counter is 10
  console.log 'I counted to 10'
else if counter is 9
  console.log 'I counted to 9'
else if counter < 7
  console.log 'Not to 7 yet'
else
  console.log 'I lost count'

if 的另一种形式是 unless。与 if 不同,unless 只有在条件返回 false 时才会运行。

counter = 10
unless counter is 10
  console.log 'This will not be executed!

if 语句可以放在一行中,但在这种情况下,then 关键字是必需的。

if counter is 10 then console.log 'Counter is 10'

另一种语法是 Ruby-like:

console.log 'Counter is 10' if counter is 10

最后两个代码块是等效的。

三元运算符是 if / then / else 构造的压缩,可以在为变量赋值时使用。分配给变量的最终值将是在符合 if 条件的 then 之后定义的值。否则,将分配 else 之后的值。

outcome = if counter is 10 then 'Done counting!' else 'Still counting'