1. 程式人生 > >賦值語句中||與&&的理解與妙用

賦值語句中||與&&的理解與妙用

一、 宣告變數a a = 1 || 100; a = 0 || 100;

1、上述程式碼在JavaScript(弱型別的解釋型語言)中,結果如下: a = 1 || 100;  //1 a = 0 || 100;  //100

2、上述程式碼在C、Java等(強型別編譯型語言)中,結果如下: a = 1 || 100;  //1 a = 0 || 100;  //0

以 a = b || c為例: 在JavaScript中,如果b不為0、undefined、null、false,則a = b,“||”後面的不執行 如果b為0、undefined、null、false,則a = c

在強型別語言中:”b || c“是一個表示式,只會返回true或者false,然後再賦給a

二、 申明變數a a = 0 && 100; a = 1 && 100; a = 2 && 100; 在JS中,結果為0、100、100 在JAVA、C中,結果為0,、1、1

以a = b && c為例: 在js中,如果b為0、undefined、null、false,則a = b,“&&”後面的不執行 如果b不為0、undefined、null、false,則a = c

在強型別語言中:返回表示式b && c的結果,true或者false

根據以上的特性,可以寫一些非常簡潔的JS語句。 1、下面是函式的預設引數寫法,如果沒有傳參,則num等於100. function f(num) { num = num || 100; alert(num) } 2、如果func1返回false,則執行func2,a等於func2的返回值,如果返回true則不執行func2. a = func1() || func2();

3、如果func1返回false,則不執行func2,如果返回true則執行func2,a等於func2的返回值。 a = func1() && func2();

4、a = func1() || b等等

根據自己的需要,編排變數以及函式到"||"、"&&"表示式中,可以省去很多繁瑣的判斷語句與大括號。