自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

關(guān)于if語(yǔ)句的幾種優(yōu)化

開(kāi)發(fā) 前端 后端
本文主要介紹了幾種優(yōu)化IF語(yǔ)句的方法,一起來(lái)看。

UglifyJS是一個(gè)對(duì)javascript進(jìn)行壓縮和美化的工具,在它的文檔說(shuō)明中,我看到了幾種關(guān)于if語(yǔ)句優(yōu)化的方法。

盡管我還沒(méi)使用它去做一些嘗試性的測(cè)試,但從這里可以看到它的確對(duì)js作了美化的工作。也許有人認(rèn)為if語(yǔ)句就那么簡(jiǎn)單,能優(yōu)化到什么程度?但是看看以下的幾種方式,你也許會(huì)改變看法。

一、使用常見(jiàn)的三元操作符

  1. if (foo) bar(); else baz(); ==>   
  2. foo?bar():baz();   
  3. if (!foo) bar(); else baz(); ==>  
  4. foo?baz():bar();   
  5. if (foo) return bar(); else return baz(); ==>   
  6. return foo?bar():baz(); 

對(duì)于以上使用三元操作符來(lái)優(yōu)化if語(yǔ)句你肯定不會(huì)陌生,或許你經(jīng)常使用它。

二、使用and(&&)和or(||)運(yùn)算符

  1. if (foo) bar(); ==> foo&&bar();   
  2. if (!foo) bar(); ==> foo||bar(); 

老實(shí)說(shuō),我并沒(méi)有這樣去寫(xiě)過(guò)代碼,這種寫(xiě)法我在學(xué)習(xí)《鳥(niǎo)哥的 Linux 私房菜》時(shí)看到過(guò),但我并沒(méi)想到在js中實(shí)現(xiàn)它。

三、省略大括號(hào){}

  1. if (foo) return bar();   
  2. else something(); ==>   
  3. {if(foo)return bar();  
  4. something()} 

這種寫(xiě)法你我都很熟悉,但我建議在代碼優(yōu)化的時(shí)候這樣做,或者交給UglifyJS幫你去解決。畢竟少一個(gè)大括號(hào),代碼的可閱讀性并不高。

寫(xiě)到這里,我想到j(luò)Query之父在《精通 JavaScript》中的一個(gè)獲取HTML元素屬性的方法。

  1. function getAttr(el, attrName)  
  2. {   
  3. var attr = {'for':'htmlFor''class':'className'}[attrName] || attrName;   
  4. }; 

如果我們不這樣寫(xiě),可能我們需借助于兩個(gè)if語(yǔ)句來(lái)進(jìn)行處理,而上面的代碼不僅簡(jiǎn)潔有效,而且可閱讀性強(qiáng)。

仔細(xì)想想,好些時(shí)候我們都能找到解決問(wèn)題的有效途徑,但關(guān)鍵在于我們是否用心去尋找一種更好的途徑。

UglifyJS詳情請(qǐng)查看:https://github.com/mishoo/UglifyJS

【編輯推薦】

  1. 淺談C/C++中的static和extern關(guān)鍵字
  2. 淺談C/C++中的順序點(diǎn)和副作用
  3. C/C++是程序員必須掌握的語(yǔ)言嗎?
  4. C/C++中內(nèi)存區(qū)域劃分大總結(jié)
  5. C/C++中的指針的應(yīng)用及注意問(wèn)題
責(zé)任編輯:于鐵 來(lái)源: Denis' Blog
相關(guān)推薦

2019-12-17 10:16:34

MySQLSQL優(yōu)化數(shù)據(jù)庫(kù)

2021-02-14 14:06:24

SQL數(shù)據(jù)庫(kù)面試

2011-05-25 10:03:00

JavaScriptwith

2009-01-14 09:28:12

OracleSQL10g

2009-04-09 13:14:09

Oracle分頁(yè)查詢(xún)CBO

2011-07-03 18:44:45

網(wǎng)站優(yōu)化

2010-07-26 16:39:57

SQL Server

2010-05-27 15:34:30

MySQL語(yǔ)句優(yōu)化

2010-05-31 10:26:27

2017-08-07 15:52:33

Oracleonnect by優(yōu)化

2010-04-13 15:04:16

Oracle優(yōu)化

2013-03-27 11:33:32

iOS開(kāi)發(fā)iOSjson解析方式

2024-03-14 08:17:33

JVMJava對(duì)象

2018-03-14 13:57:19

云計(jì)算

2009-12-10 17:02:50

PHP站點(diǎn)性能

2018-03-09 12:00:11

云計(jì)算公共云企業(yè)

2011-03-31 11:14:51

Sql語(yǔ)句優(yōu)化

2022-07-06 05:59:40

數(shù)據(jù)庫(kù)mysql

2009-12-17 13:46:01

Ruby表單語(yǔ)句

2010-09-07 15:12:25

SQL語(yǔ)句優(yōu)化
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)