<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<head><meta forua="true" http-equiv="Cache-Control" content="max-age=0" /></head>
<card title="【JS】关于if简写语句优化的方法 - 参考UglifyJS的压缩结果" id="card1">
<p> 游客</p><p>
标题:【JS】关于if简写语句优化的方法 - 参考UglifyJS的压缩结果<br/>
正文:<br/>
UglifyJS是一个对javascript进行压缩和美化的工具，在它的文档说明中，我看到了几种关于if语句优化的方法。尽管我还没使用它去做一些尝试性的测试，但从这里可以看到它的确对js作了美化的工作。也许有人认为if语句就那么简单，能优化到什么程度？但是看看以下的几种方式，你也许会改变看法。一、使用常见的三元操作符if (foo) bar(); else baz(); ==&amp;gt; foo?bar():baz();<br/>if (!foo) bar(); else baz(); ==&amp;gt; foo?baz():bar();<br/>if (foo) return bar(); else return baz(); ==&amp;gt; return foo?bar():baz();对于以上使用三元操作符来优化if语句你肯定不会陌生，或许你经常使用它。脚本之家给出的例子：代码如下:<br/>&amp;lt;script&amp;gt;<br/>var i=9<br/>var ii=(i&amp;gt;8)?100:9;<br/>alert(ii);<br/>&amp;lt;/script&amp;gt;<br/>输出结果：100二、使用and(&amp;amp;&amp;amp;)和or(||)运算符if (foo) bar(); ==&amp;gt; foo&amp;amp;&amp;amp;bar();<br/>if (!foo) bar(); ==&amp;gt; foo||bar();老实说，我并没有这样去写过代码，这种写法我在学习《鸟哥的 Linux 私房菜》时看到过，但我并没想到在js中实现它。三、省略大括号{}if (foo) return bar(); else something(); ==&amp;gt; {if(foo)return bar();something()}这种写法你我都很熟悉，但我建议在代码优化的时候这样做，或者交给UglifyJS帮你去解决。毕竟少一个大括号，代码的可阅读性并不高。写到这里，我想到jQuery之父在《精通 JavaScript》中的一个获取HTML元素属性的方法。function getAttr(el, attrName){<br/>var attr = {'for':'htmlFor', 'class':'className'}[attrName] || attrName;<br/>};如果我们不这样写，可能<br/><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=1157&amp;Page=1">[&lt;&lt;]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=1157&amp;Page=1">[[1]]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=1157&amp;Page=2">[2]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=1157&amp;Page=3">[3]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=1157&amp;Page=3">[&gt;&gt;]</a><br/>
<br/>
<a href="wap.asp?act=Com&amp;id=1157">查看评论(0)</a><br/>
<a href="wap.asp?act=AddCom&amp;inpId=1157">发表评论</a><br/><br/>

<br/>

<br/>
<a href="http://camnpr.com/wap.asp">首页</a>
</p>
</card>
</wml>