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反射物件賦值
- ES6小技巧 - 使用解構賦值設定函式引數預設值賦值函式
- 常被新手忽略的值賦值和引用賦值(偏redux向)賦值Redux
- 【js】中的小技巧JS
- js基礎-20-js物件賦值時的key值問題JS物件賦值
- 問題分享:Js引用型別賦值JS型別賦值
- JS 中賦值語句的祕密JS賦值
- Vue.js - 陣列和物件的賦值動態變化 & 克隆Vue.js陣列物件賦值
- JS中的變數賦值深入理解JS變數賦值
- js 陣列去重小技巧JS陣列
- 微信小程式--data的賦值與取值微信小程式賦值
- php之普通變數賦值、物件賦值、引用賦值的區別PHP變數賦值物件
- 口算技巧|和值大小不輸方法技巧K
- Verilog連續賦值、過程賦值、過程連續賦值總結賦值
- JavaScript 解構賦值小括號的應用JavaScript賦值
- 利用js正規表示式校驗正數、負數、和小數JS
- js獲取 陣列最大/小值JS陣列
- c#小灶——常量、變數和賦值C#變數賦值
- vue js 部分使用小技巧(持續更新)VueJS
- JS 中可以提升幸福度的小技巧JS
- 變數的賦值 指標間接賦值變數賦值指標
- 「譯」靜態單賦值小冊 - 1. 介紹賦值
- js資料型別賦值,淺拷貝,深拷貝JS資料型別賦值
- 白 - 許可權提升和漏洞利用技巧
- Python 賦值與運算子和連線符Python賦值
- 整明白 Golang struct 例項化和賦值GolangStruct賦值
- js開發實戰優化小技巧001JS優化
- 解構賦值賦值
- python小技巧:獲取列表最大值以及位置Python
- 提高程式碼顏值的幾個小技巧
- Docker配置容器位置和小技巧Docker
- 【Python】直接賦值,深拷貝和淺拷貝Python賦值
- Mac小技巧:利用終端輕鬆製作出下雪效果Mac
- 利用Bootstrap Paginator外掛和knockout.jsbootJS
- JavaScript 連等賦值JavaScript賦值
- 物件賦值轉換物件賦值