一些‘優雅’的js寫法

Creabine發表於2016-10-14

最近在用Vue,讀了一下官網的demo原始碼,頓時覺得同樣是javascript,我寫的簡直是一坨屎…..之前拼了老命一直在實現邏輯,看了這個demo的程式碼之後,才真的認識到什麼叫做‘優雅的程式碼’,以後要多讀讀高手的程式碼。同時也意識到自己的不足:之前看《javascript高階程式設計》的時候看到的許多陣列和物件的方法,我都只是看了一眼,潛意識中認為很少用,沒有認真理解記憶。其實那只是我不會用而已,人家一行我要寫好多個if,else順帶好多bug。果然基礎還是要牢固,以後要慢慢接近‘優雅’。

所以,在這裡記下我看到的,之前自己不知道的寫法,遇到多少就記錄多少,今天是第一個。對於這些新方法的理解也會標註出來,但是這些理解未必正確,如果您看到了錯誤,請不吝賜教,謝謝。

1.賦值的方法

這裡在賦值的時候使用了 && 操作符,關於&&操作符有個特性(短路操作):在A&&B中,當A為true,則返回B;A為false時A&&B必定為false,所以直接返回A。根據這個特性,可以看出下邊兩句的區別

this.str = "CH";
var str = this.str && this.str.toLowerCase();   //輸出  "ch"
this.str = null;
var str = this.str && this.str.toLowerCase();   //輸出  null
//相當於
if(this.str){  //當this.str字串存在,則把他轉為小寫賦值給str
    str = this.str.toLowerCase();
}else{    //否則把他自己賦值給str
    str = this.str;
}

相關文章