javascript101之条件代码

条件代码

有时候一块代码只有在一定条件下才能运行。流程控制--通过if 和else 块--让你在一定条件满足的情况下运行代码。

// Flow control
var foo = true;
var bar = false;
if ( bar ) {
  // this code will never run
  console.log( "hello!" );
}
if ( bar ) {
  // this code won't run
} else {
  if ( foo ) {
  // this code will run
  } else {
  // this code would run if foo and bar were both false
  }
}

虽然没有严格要求单行if语句周围的花括号一贯使用它们,即使它们没有严格要求,这使得大大代码更易读。 记住在单独的if/else语句块中,不要多次定义同名的功能,这样不会达到预期的效果。

真值和假值(的事情)

为了成功使用流程控制,理解什么样的值是真值,什么样的值是假值,是非常重要的。有时候看起来有些值可以用这种方法评估,实际上用了别的方法

// Values that evaluate to true
"0";
"any string";
[]; // an empty array
{}; // an empty object
1; // any non-zero number

// Values that evaluate to false
""; // an empty string
NaN; // JavaScript's "not-a-number" variable
null;
undefined; // be careful -- undefined can be redefined!
0; // the number zero


三元运算符的条件变量赋值

有时候变量的设置依赖于某些条件。一个if/else语句也能工作,但在很多情况下,三元运算符显得更方便。三元运算符测试一个条件:当条件为真时返回某个值,否则返回另一个值。

三元运算符:

// set foo to 1 if bar is true;
// otherwise, set foo to 0
var foo = bar ? 1 : 0;

然而三元运算符可以不用把返回值赋给一个变量,但不鼓励这样做。

开关语句

相比使用if/else语句块,有些情况下使用开关语句更有用。开关语句探测变量的值或表达式,根据值运行不同的语句块。

// A switch statement
switch ( foo ) {
  case "bar":
    alert( "the value was bar -- yay!" );
    break;
  case "baz":
    alert( "boo baz :(" );
    break;
  default:
    alert( "everything else is just ok" );
}

在javascript中开关语句地位有所下降, 因为相同的行为往往可以通过创建一个对象,它具有更多的潜在重用或测试功能。

var stuffToDo = {
  "bar": function() {
    alert( "the value was bar -- yay!" );
  },
  "baz": function() {
    alert( "boo baz :(" );
  },
  "default": function() {
    alert( "everything else is just ok" );
  }
};

if ( stuffToDo[ foo ] ) {
  stuffToDo[ foo ]();
} else {
  stuffToDo["default"]();
}

对象在 类型对象部分中进一步涵盖。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值