国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

Javascript優化技巧之短路表達式詳細介紹

2024-05-06 16:17:45
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了Javascript優化技巧之短路表達式詳細介紹,本文講解了什么是短路表達式,并給出了一些示例,需要的朋友可以參考下
 

什么是短路表達式?

短路表達式:作為"&&"和"||"操作符的操作數表達式,這些表達式在進行求值時,只要最終的結果已經可以確定是真或假,求值過程便告終止,這稱之為短路求值。這是這兩個操作符的一個重要屬性。

一個最簡單的例子:

 

復制代碼代碼如下:

foo = foo||bar;

 

這行代碼是什么意思?答案:

 

復制代碼代碼如下:

//如果foo存在,值不變,否則把bar的值賦給foo
if(!foo)
    foo = bar;

 

在javascript的邏輯運算中,0、""、null、false、undefined、NaN都會判定為false,而其他都為true。所以在上式的foo = foo||bar;中,||先計算第一個運算數,如果可以被轉換成true,也就是表示foo已經存在有值,那么返回左邊這個表達式的值,否則計算第二個運算數bar。

另外,即使||運算符的運算數不是布爾值,仍然可以將它看作布爾OR運算,因為無論它返回的值是什么類型,都可以被轉換為布爾值。

當然,使用如下做法會更加嚴謹:

 

復制代碼代碼如下:

if(foo)      //不夠嚴謹
 
if(!!foo)    //更為嚴謹,!!可將其他類型的值轉換為boolean類型

 

可以測試一下:

復制代碼代碼如下:

var foo;
var number = 1;
var string = "string";
var obj = {};
var arr = [];
 
 
console.log(typeof(foo));  // undefined
console.log(typeof(number));  //number
console.log(typeof(string));  //string
console.log(typeof(obj));  //object  
console.log(typeof(arr));  //object
 
console.log(typeof(!!foo));  // boolean
console.log(typeof(!!number));  //boolean
console.log(typeof(!!string));  //boolean
console.log(typeof(!!obj));  //boolean
console.log(typeof(!!arr));  //boolean

 

利用這一點可以很好的符合,優化javascript工程一文中提到的,使腳本少運行或者不運行,以達到優化javascript的目的。但是需要注意的是,這樣寫幫我們精簡了代碼的同時,也帶來了代碼可讀性的降低的缺點。所以比較好的做好是添加是適當的注釋。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 南丹县| 宕昌县| 惠州市| 汉阴县| 顺平县| 万山特区| 石阡县| 吉安县| 怀来县| 易门县| 麦盖提县| 阳高县| 崇义县| 堆龙德庆县| 胶州市| 大兴区| 五华县| 霍邱县| 东乌珠穆沁旗| 伊川县| 容城县| 赫章县| 清水县| 寿阳县| 阿坝| 岐山县| 聊城市| 大同县| 壶关县| 棋牌| 峡江县| 屏东县| 密山市| 志丹县| 神农架林区| 仁怀市| 宜宾县| 上饶县| 天全县| 崇信县| 子长县|