条件语句
在您编写代码时,经常需要根据不同的条件完成不同的行为。可以在代码中使用条件语句来完成这个任务。
在 网页特效 中,我们可以使用下面几种条件语句:
if 语句
在一个指定的条件成立时执行代码。
if...else 语句
在指定的条件成立时执行代码,当条件不成立时执行另外的代码。
if...else if....else 语句
使用这个语句可以选择执行若干块代码中的一个。
switch 语句
if 语句
如果希望指定的条件成立时执行代码,就可以使用这个语句。
语法:
if (条件)
{
条件成立时执行代码
}
注意:请使用小写字母。使用大写的 if 会出错!
实例 1
<script type="text/javascript">
//write a "good morning" greeting if
//the time is less than 10var d=new date()
var time=d.gethours()if (time<10)
{
document.write("<b>good morning</b>")
}
</script>实例 2
<script type="text/javascript">
//write "lunch-time!" if the time is 11var d=new date()
var time=d.gethours()if (time==11)
{
document.write("<b>lunch-time!</b>")
}
</script>
注意:请使用双等号 (==) 来比较变量!
注意:在语法中没有 else。仅仅当条件为 true 时,代码才会执行
一、使用常见的三元操作符
复制代码 代码如下:
<html>
<body><script type="text/javascript">
var d = new date()
var time = d.gethours()if (time < 10)
{
document.write("<b>早安</b>")
}
else
{
document.write("<b>祝您愉快</b>")
}
</script>
<p>本例演示 if...else 语句。</p>
<p>如果浏览器时间小于 10,那么会向您问“早安”,否则会向您问候“祝您愉快”。</p>
</body>
</html>
if (foo) bar(); else baz(); ==> foo?bar():baz();
if (!foo) bar(); else baz(); ==> foo?baz():bar();
if (foo) return bar(); else return baz(); ==> return foo?bar():baz();
对于以上使用三元操作符来优化if语句你肯定不会陌生,或许你经常使用它。
二、使用and(&&)和or(||)运算符
复制代码 代码如下:
if (foo) bar(); ==> foo&&bar();
if (!foo) bar(); ==> foo||bar();
老实说,我并没有这样去写过代码,这种写法我在学习《鸟哥的 linux 私房菜》时看到过,但我并没想到在js中实现它。
三、省略大括号{}
复制代码 代码如下:
if (foo) return bar(); else something(); ==> {if(foo)return bar();something()}
这种写法你我都很熟悉,但我建议在代码优化的时候这样做,或者交给uglifyjs帮你去解决。毕竟少一个大括号,代码的可阅读性并不高。
写到这里,我想到jquery之父在《精通 javascript》中的一个获取html元素属性的方法。
复制代码 代码如下:
function getattr(el, attrname){
var attr = {'for':'htmlfor', 'class':'classname'}[attrname] || attrname;
};
如果我们不这样写,可能我们需借助于两个if语句来进行处理,而上面的代码不仅简洁有效,而且可阅读性强。