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正規表示式(2)JavaScript
- JavaScript建立正規表示式JavaScript
- JavaScript匹配中文正規表示式JavaScript
- JavaScript正規表示式 手冊JavaScript
- JavaScript RegExp(正規表示式) 物件JavaScript物件
- 淺談JavaScript正規表示式JavaScript
- JavaScript函式宣告和函式表示式區別JavaScript函式
- javascript 的函式宣告與表示式對比JavaScript函式
- 聊聊JavaScript和Scala的表示式 ExpressionJavaScriptExpress
- javascript正規表示式 | 知識梳理JavaScript
- JavaScript正規表示式進階指南JavaScript
- JavaScript正規表示式迷你書-筆記JavaScript筆記
- ABAP mesh表示式, JavaScript和Scala的 expressionJavaScriptExpress
- JavaScript基礎-06-正規表示式JavaScript
- 系統認識JavaScript正規表示式JavaScript
- 《JavaScript 闖關記》之正規表示式JavaScript
- 20個稀奇古怪的 JavaScript 表示式JavaScript
- JavaScript正規表示式學習筆記(一)JavaScript筆記
- JavaScript權威指南(4)——表示式和運算子JavaScript
- Javascript學習筆記——4.11 賦值表示式JavaScript筆記賦值
- JS正規表示式精簡教程(JavaScript RegExp 物件)JSJavaScript物件
- 一篇文章搞定 javascript 正規表示式JavaScript
- JavaScript正規表示式備忘單附例項JavaScript
- 【收藏】常用JavaScript正規表示式彙編與示例JavaScript
- JavaScript學習系列部落格_35_JavaScript 正規表示式的使用JavaScript
- 你不知道的JavaScript--Item7 函式和(命名)函式表示式JavaScript函式
- 密碼強度的正規表示式(JavaScript)總結密碼JavaScript
- JavaScript權威指南(10)——正規表示式的模式匹配JavaScript模式
- JavaScript 字元表示方式JavaScript字元
- 表示式
- 一次性搞懂JavaScript正規表示式之方法JavaScript
- 一篇文章搞懂JavaScript正規表示式之方法JavaScript
- 一次性搞懂JavaScript正規表示式之引擎JavaScript