デフォルトパラメータのピットについて
1016 ワード
シナリオ:mongodbクエリーの結果を時間でフィルタします.2つのパラメータ
JavascriptのES 6の新しいプロパティを使用して、メソッドパラメータにデフォルト値を直接割り当てます.
これは問題ありません.問題は、このメソッドを使用するときに渡されるパラメータの問題です.
問題が発生しました.クライアントから送信された値が空の場合start_timeまたはend_timeは である.例えばstart_time私たちは、彼女の最後の値は であるべきだと考えています.しかし、彼女の値は です.
結論として、パラメータが
したがって、次のように使用する必要があります.
start_time
and end_time
です.この2つのパラメータを送信しない場合は、デフォルト値を使用します.start_time = new Date(0); // 1970
end_time = new Date(); //
JavascriptのES 6の新しいプロパティを使用して、メソッドパラメータにデフォルト値を直接割り当てます.
search(start_time=new Date(0), end_time=new date()) {
... //
}
これは問題ありません.問題は、このメソッドを使用するときに渡されるパラメータの問題です.
let start_time = ;
let end_time = ;
search(start_time, end_time);
問題が発生しました.
""
すなわち空文字new Date(0)
""
、すなわち空の文字列結論として、パラメータが
undefined
の場合にのみデフォルトパラメータが使用されるしたがって、次のように使用する必要があります.
let start_time = || undefined;
let end_time = || undefined;
search(start_time, end_time);