JavaScript短路表示式
JavaScript標準的概念中,並沒有短路表示式概念。
只是程式碼實際表現和我們們平常說的“短路”類似,所以就有了這麼一個名字。
下面就對它做一下簡單介紹,需要的朋友可以做一下參考。
短路表示式:作為"&&"和"||"操作符的運算元表示式,這些表示式在進行求值時,只要最終的結果已經可以確定是真或假,求值過程便告終止,這稱之為短路求值。這是這兩個操作符的一個重要屬性。
程式碼例項:
[JavaScript] 純文字檢視 複製程式碼foo = foo||bar;
上面程式碼表達的意思與下面的程式碼等效:
[JavaScript] 純文字檢視 複製程式碼//如果foo存在,值不變,否則把bar的值賦給foo if(!foo) foo = bar;
在javascript的邏輯運算中,0、""、null、false、undefined、NaN都會判定為false,而其他都為true。所以在上式的foo = foo||bar;中,||先計算第一個運算數,如果可以被轉換成true,也就是表示foo已經存在有值,那麼返回左邊這個表示式的值,否則計算第二個運算數bar。另外,即使||運算子的運算數不是布林值,仍然可以將它看作布林OR運算,因為無論它返回的值是什麼型別,都可以被轉換為布林值。
當然,使用如下做法會更加嚴謹:
[JavaScript] 純文字檢視 複製程式碼if(foo) //不夠嚴謹 if(!!foo) //更為嚴謹,!!可將其他型別的值轉換為boolean型別
下面是幾個測試程式碼:
[JavaScript] 純文字檢視 複製程式碼執行程式碼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
- JavaScript表示式JavaScript
- javascript-函式表示式JavaScript函式
- 【JavaScript】正規表示式JavaScript
- javascript正規表示式JavaScript
- javascript–正規表示式JavaScript
- JavaScript 正規表示式JavaScript
- JavaScript正規表示式(2)JavaScript
- JavaScript建立正規表示式JavaScript
- JavaScript的正規表示式JavaScript
- JavaScript正規表示式 手冊JavaScript
- 淺談JavaScript正規表示式JavaScript
- JavaScript中正規表示式的使用JavaScript
- JavaScript匹配中文正規表示式JavaScript
- javascript正規表示式總結JavaScript
- Omi教程 - 傳遞javascript表示式JavaScript
- 初學JavaScript正規表示式JavaScript
- 16、JavaScript-正規表示式JavaScript
- javascript正規表示式小技巧JavaScript
- JavaScript表示式和運算子(轉)JavaScript
- JavaScript函式宣告和函式表示式區別JavaScript函式
- PLSQL Language Reference-PL/SQL語言基礎-表示式-短路計算SQL
- javascript 的函式宣告與表示式對比JavaScript函式
- javascript正規表示式 | 知識梳理JavaScript
- JavaScript正規表示式進階指南JavaScript
- 聊聊JavaScript和Scala的表示式 ExpressionJavaScriptExpress
- JavaScript正規表示式方法總結JavaScript
- JavaScript匹配註釋正規表示式JavaScript
- JavaScript學習1:正規表示式JavaScript
- Javascript正規表示式詳解(一)JavaScript
- Javascript校驗與正規表示式JavaScript
- JavaScript 立即執行函式表示式 ( IIFE ) 用例JavaScript函式
- 詳解javascript立即執行函式表示式(IIFE)JavaScript函式
- ABAP mesh表示式, JavaScript和Scala的 expressionJavaScriptExpress
- JavaScript基礎-06-正規表示式JavaScript
- JavaScript RegExp(正規表示式) 物件JavaScript物件
- 《JavaScript 闖關記》之正規表示式JavaScript
- 系統認識JavaScript正規表示式JavaScript