設置預設值 這是被廣泛流傳的js技巧之一,這種編碼應該說是很壞的習慣。 ||的問題 js是一種弱類型的編程語言,代表著傳入的變數並不清楚作為何種類型使用。 這樣的定義在js是不存在的, 對js來說傳入的任意參數都應該考慮不同類型的結果 ,而不是單單考慮一種情況。若傳入0、false等,||所要實現默 ...
設置預設值
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
)
function doSomething(s)
{
if(s==null)
{
s="abc";
}
}
或者,ES6下
function doSomething(s="abc")
{
}