js 利用||和&&賦值小技巧
對於需要返回boolean型別數值的地方,比如if判斷,邏輯運算子,js物件會預設轉換為boolean型別資料。null,undefined,0,”“返回false,其他返回true。
同時,對於||與&&又有這樣的特性:
var a = b || c;
b預設值 | c預設值 | a取值 |
---|---|---|
true | true | b |
true | false | b |
false | true | c |
false | false | c |
var a = b && c;
b預設值 | c預設值 | a取值 |
---|---|---|
true | true | c |
true | false | c |
false | true | b |
false | false | b |
根據這兩個特性,可以利用||與&&進行賦值。在某些情況下,可以簡化程式碼,甚至是增加可讀性。
下面給出的幾組程式碼內的b與c的賦值是等效的。
var b;
if(b != null){
b = b;
}else {
b = 2;
}
var c = c || 2;
var b;
if(b){
b = 1;
}else {
b = 2;
}
var c = (c && 1) || 2;
var b;
if(b){
if(1 == 1){
b = 1;
}else {
b = 2;
}
}else {
b = 3;
}
var c = (c && ((1 == 1 && 1) || 2)) || 3;
var b;
if(2 > 1){
b = 1;
}else if(3 > 1){
b = 2;
}else {
b = 3;
}
var c = ((2 > 1) && 1) || ((3 > 1) && 2) || 3;
var b;
if(2 > 1){
b = 1;
}else if((1 == 1 || 1 == 2) && 3 == 3){
b = 2;
}else {
b = 3;
}
var c = ((2 > 1) && 1) || (((1 == 1 || 1 == 2) && 3 == 3) && 2) || 3;
簡單說一下技巧,就是if->值 用&&,else用||,if中內容多的可以將內容都寫進括號裡。
在實際使用中,只有最簡單的邏輯判斷使用這種方法有實際意義,這會使程式碼更簡潔。事實上,很多知名的js框架都充滿了這種用法。至於後面那些個寫法,別用!!!寫出來容易被打。
相關文章
- jquery取值和賦值(包含部分是原生js的取值和賦值)jQuery賦值JS
- JS解構賦值JS賦值
- web中,利用反射給物件賦值Web反射物件賦值
- js小技巧JS
- ES6小技巧 - 使用解構賦值設定函式引數預設值賦值函式
- 常被新手忽略的值賦值和引用賦值(偏redux向)賦值Redux
- 微信小程式app.js給全域性變數globalData賦值微信小程式APPJS變數LDA賦值
- php變數賦值給jsPHP變數賦值JS
- 【js】中的小技巧JS
- 微信小程式--data的賦值與取值微信小程式賦值
- js基礎-20-js物件賦值時的key值問題JS物件賦值
- JQuery給textarea取值和賦值jQuery賦值
- 問題分享:Js引用型別賦值JS型別賦值
- JS 中賦值語句的祕密JS賦值
- Vue.js - 陣列和物件的賦值動態變化 & 克隆Vue.js陣列物件賦值
- 【c++】深賦值與淺賦值C++賦值
- php之普通變數賦值、物件賦值、引用賦值的區別PHP變數賦值物件
- JS中的變數賦值深入理解JS變數賦值
- 你真的理解js的賦值語句麼JS賦值
- Java的Monad和懶賦值Java賦值
- JavaScript 解構賦值小括號的應用JavaScript賦值
- js 陣列去重小技巧JS陣列
- 變數的賦值 指標間接賦值變數賦值指標
- c#小灶——常量、變數和賦值C#變數賦值
- Verilog連續賦值、過程賦值、過程連續賦值總結賦值
- 「譯」靜態單賦值小冊 - 1. 介紹賦值
- C# 可以利用反射給只讀屬性賦值嗎?C#反射賦值
- Golang 中使用 JSON 的小技巧GolangJSON
- js實用的十個小技巧JS
- javascript變數賦值或者重新賦值注意事項JavaScript變數賦值
- 陣列賦值陣列賦值
- 解構賦值賦值
- PLSQL Language Reference-PL/SQL語言基礎-變數賦值-使用賦值語句賦值SQL變數賦值
- 整明白 Golang struct 例項化和賦值GolangStruct賦值
- java裡面給物件賦值,慎用賦值符號(=) (轉)Java物件賦值符號
- js獲取 陣列最大/小值JS陣列
- vue js 部分使用小技巧(持續更新)VueJS
- JS 中可以提升幸福度的小技巧JS