首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 开源 FAQ 第二书店 博文视点 程序员
频道: 研发 数据库 中间件 信息化 视频 .NET Java 游戏 移动 服务: 人才 外包 培训
    图书品种:235680
       
热门搜索: ASP.NET Ajax Spring Hibernate Java

2.6 条件语句

此前介绍给大家的语句都是相对比较简单的声明或运算,而脚本的真正威力体现在它们还可以根据人们给出的各种条件做出判断和决策。JavaScript脚本需要使用条件语句(conditional statement)来做出判断和决策。

在解释脚本时,浏览器将依次执行这个脚本中的各条语句,而我们可以在这个脚本中用条件语句来设置一个条件,只有满足了这一条件才能让更多的语句得到执行。最常见的条件语句是if语句,下面是if语句的基本语法:

条件必须放在if后面的圆括号中。条件的求值结果永远是一个布尔值,即只能是true或false。花括号中的语句——不管它们有多少条,只有在给定条件的求值结果是true的情况下才会得到执行。因此,在下面这个例子中,alter消息永远也不会出现:

因为1不可能大于2,所以上面这个条件的值永远是false。

在这条if语句中,我是故意把所有的东西都放在花括号里的。这并不是JavaScript的一项语法要求——这么做只是为了让代码更容易阅读和理解。

事实上,if语句中的花括号本身并不是必不可少的。如果if语句中的花括号部分只包含着一条语句的话,那就根本用不着使用花括号,而且这条if语句的全部内容可以写在同一行上:

不过,因为花括号可以提高脚本的可读性,所以在if语句中使用花括号通常是个好主意。

if语句还可以用else来扩展。包含在else子句中的语句会在给定条件的值为false时得到执行:

因为给定条件“1>2”的值是false,所以我们将看到如下所示的结果。

2.6.1 比较操作符

JavaScript还提供了许多几乎只能用在条件语句里的操作符,其中包括诸如大于(>)、小于(<)、大于或等于(>=)、小于或等于(<=)之类的比较操作符。

如果想比较两个值是否相等,可以使用“等于”比较操作符。这个操作符由两个等号构成(==)。别忘了,单个等号(=)是用于完成赋值操作的。如果你在条件语句的某个条件里使用了单个等号,那么只要相应的赋值操作取得成功,那个条件的求值结果就将是true。

下面是一个错误地进行“等于”比较的例子:

上面这条语句的错误之处在于,它是把变量your_mood赋值给变量my_mood,而不是在比较它们是否相等。因为这种赋值操作总会成功,所以这个条件语句的结果将永远是true。

下面才是进行“等于”比较的正确做法:

这次,条件语句的结果是false。

JavaScript还提供了一个用来进行“不等于”比较的操作符,它由一个感叹号和一个等号构成(!=)。

2.6.2 逻辑操作符

JavaScript允许我们把条件语句里的操作组合在一起。例如,如果想检查某个变量——不妨假设这个变量的名字是num,它的值是不是在5~10之间,我将需要进行两次比较操作:首先,比较这个变量是否大于或等于5;然后,比较这个变量是否小于或等于10。这两次比较操作叫作逻辑操作数(operand)。下面是把这两个逻辑操作数组合在一起的具体做法:

在这里使用了“逻辑与”操作符,它由两个“&”字符构成(&&),它是一个逻辑操作符。

逻辑操作符的操作对象是布尔值。每个逻辑操作数返回一个布尔值true或者是false。“逻辑与”操作只有在它的两个操作数都是true时才会是true。

“逻辑或”操作符由两个垂直线字符构成(||)。只要它的操作数中有一个是true,“逻辑或”操作就将是true。如果它的两个操作数都是true,“逻辑或”操作也将是true。只有当它的两个操作数都是false时,“逻辑或”操作才会是false。

JavaScript还提供了一个“逻辑非”操作符,它由一个感叹号(!)单独构成。“逻辑非”操作符只能作用于单个逻辑操作数,其结果是把那个逻辑操作数所返回的布尔值取反:如果那个逻辑操作数所返回的布尔值是true,“逻辑非’操作符将把它取反为false:

请注意,为避免产生歧义,在上面这条语句中把逻辑操作数放在了括号里——我想让“逻辑非”操作符作用于括号里的所有内容。

我们可以用“逻辑非”操作符把整个条件语句的结果颠倒过来。在下面的例子里,我特意使用了一对括号来确保 “逻辑非”操作符将作用于两个逻辑操作数的组合结果:

查看所有评论(0)条】

最近评论



正在载入评论列表...
热点评论