function doSomething(s) { s=s||"abc"; console.log(s); }
這是被普遍流傳的js技巧之一,這種編碼應該說是很壞的習慣。編程
js是一種弱類型的編程語言,表明着傳入的變量並不清楚做爲什麼種類型使用。編程語言
function doSomething(String s) { }
這樣的定義在js是不存在的,對js來講傳入的任意參數都應該考慮不一樣類型的結果,而不是單單考慮一種狀況。若傳入0、false等,||所要實現默認值的功能徹底錯誤的編碼
console.log(0||"a"); //結果爲a console.log(false||"a"); //結果爲a
應該使用if null
(更嚴格來說if undefined
)code
function doSomething(s) { if(s==null) { s="abc"; } }
或者,ES6下io
function doSomething(s="abc") { }