挑戰常規--不要使用||賦予默認值

設置默認值

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 undefinedcode

function doSomething(s)
{
    if(s==null)
    {
        s="abc";
    }
}

或者,ES6下io

function doSomething(s="abc")
{
  
}
相關文章
相關標籤/搜索