Amazon Ads

2013年11月19日 星期二

【筆記】JavaScript中的神奇毛毛蟲 (~~)

「~~」就是指鍵盤上方數字鍵「1」右邊的那顆鍵,今天在看學習jQuery的好網站-30 Days to Learn jQuery的教學影片中,使用到這一個運算子,讓原本對JavaScript就不熟的拜歐,更加驚嘆它的高深莫測 。

在影中講到「~~」的功能是把boolean轉成number:
var a = ~~true;
console.log(a); // 結果為1
var b = ~~false;
console.log(b); // 結果為0

知道「~~」意義之後,我們可以這樣運用,在下列程式碼中,判斷calc字串若等於「add」的話,val就加1,否則就減1,通常功力比較淺的拜歐,就會這樣寫:
 var calc = 'add';
 var val = 0;
 if(calc === 'add'){
  val += 1;
 }else{
  val -= 1;
 }
 console.log(val);//結果為1
這樣的可讀性高,但看起來不酷XD,若使用「~~」,可以這樣寫:
var calc = 'add';
var val = 0;

val += ~~(calc === 'add') || -1;
//如果calc不等於'add',則||前面的結果為0,val就變成加「-1」
console.log(val);  //結果為1
嗯,這樣酷多了。