2016-05-25 9 views
0

関数が何も明示的に返さないときに、良い練習ではないのはなぜvoid(0)ですか?関数が何も返さないときにvoid(0)を使う

function someFunc(a) { 
    // do some stuffs 
    return void(0); 
} 

これはデバッグ時に非常に役立ちます。

ありがとうございました。

+0

私は単純すぎるかもしれませんが、 'void(0)'は 'undefined'と評価されます。明示的なreturn文(または単に 'return;')なしで定義された関数は、暗黙的に 'undefined'を返します。したがって、明示的な戻りは冗長です。 http://stackoverflow.com/questions/20915450/why-javascript-functions-always-return-a-valueをご覧ください。 –

+0

yeapだが、これは重複しているとは思わないが、原因はデバッグだと思う?関数は常に何かを返すので、これは助けになるだろう、わからない、多分私は間違っている。 –

+0

'関数someFunc(a){}'と 'function someFunc(a){return; } 'と' function someFunc(a){return void(0);}を返します。 } 'はすべて機能的に同等です。私はそれがどのように動作するかを知ると、明示的な返信文を使わずに、最短のバージョンを快適に使用することができます。 –

答えて

0

void(0)undefinedに解決されるため、「なぜundefinedを関数から返すのは良い考えではないのですか?」 undefinedの代わりにvoid(0)を使用すると、おそらく比較的難しい考えです。なぜなら、それはundefinedよりも複雑であまり明確ではないからです。プログラマーとしての私たちの目標は、他の人が読んで理解するためのシンプルで読みやすいコードを作ることです。

同じ理由から、undefinedを関数から明示的に返すことは悪い考えであり、不必要な複雑さをもたらします。 typeof undefinedundefinedと評価されます。これにより、筆記テストがより難しくなり、関数の目的について、たとえばfalseを返すよりも少ない洞察が得られます。

+0

私はその使用法を否定していませんが、 'void(0)'が存在する理由の1つは、 'undefined'を常に上書きできるということです。 –

+0

私はあなたが間違っていると思うHimmel、ボールド(0)を使用する方が良いです.Cory氏によると、未定義の古いブラウザでは互換性のない問題があるためです。 –

+0

'void(0)'は、値を返すときに 'undefined'と同等です。これらの変数のいずれかが変数に割り当てられている場合は、両方の変数を任意の値で上書きできます。 – Himmel

関連する問題