今天寫了一個圖片輪播的小demo,用到了判斷
先試了一下if else,代碼如下:
if(n >= count-1){ n =0; }else{ n ++; }
隨后代碼寫完了,准備優化一下代碼,將此段改成了三目運算符的寫法
n = n >= (count-1) ? n=0 : n++
結果完全不同
隨后研究了一下這兩者的區別,總結為一句話:三目運算有返回值,if else沒有返回值
做了如下測試:
var n=1; if(n>1){ n=0; }else{ n++; } console.log(n);
輸出結果:2
三目運算如下:
var n=1; n = n>1?0 : n++; console.log(n);
輸出結果為:1
插入一段其他內容:++n和n++的區別:簡單地說,都是 n 自加1。區別是,n++是執行完后面的語句才加1;而++n 就先做 n+1才執行后面的語句
那么對於++n呢
if else 語句
var n=1; if(n>1){ n=0; }else{ ++n; } console.log(n); 輸出結果:2
三目運算結果
var n=1; n = n>1?0 : ++n;
console.log(n); 輸出結果為:2
可以看出if else和三目運算的區別了吧~~~
n++和++n在此驗證中,沒有任何區別,因為if else都是計算結果之后的,不會返回n,沒有任何返回值
但是對於三目運算,n++返回的n值為n本身,++n返回的n值為n+1之后的結果
---恢復內容結束---