2016-05-25 5 views
0

Warum wird eine gute Übung nicht void (0), wenn eine Funktion nichts explizit zurückgibt?Verwendung von void (0), wenn Funktion nichts zurückgibt

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

Diese sehr viel helfen würde, wenn stopft debuggen.

Danke.

+0

Ich könnte zu stark vereinfachend sein, aber 'void (0)' wird als 'undefiniert' ausgewertet. Eine Funktion, die ohne eine explizite return-Anweisung (oder einfach mit return; ') definiert wird, gibt implizit 'undefined' zurück, so dass die explizite Rückkehr redundant ist. Werfen Sie einen Blick auf http://stackoverflow.com/questions/20915450/why-javascript-functions-always-return-a-value. –

+0

yeap, aber ich denke nicht, dass dies redundant ist, denn Debugging wäre, denkst du nicht? Funktionen geben immer etwas zurück, also würde das helfen, ich weiß nicht, vielleicht liege ich falsch. –

+0

'function someFunc (a) {}' und 'function someFunc (a) {return; } 'und' function someFunc (a) {return void (0); } 'sind alle funktional gleichwertig. Ich denke, sobald Sie wissen, dass es so funktioniert, können Sie bequem bei der kürzesten Version bleiben, ohne explizite Rückmeldung. –

Antwort

0

Da void(0) zu undefined aufgelöst wird, könnte die Frage genauso gut sein "warum ist es keine gute Idee, undefined von einer Funktion zurückzugeben?". Die Verwendung von void(0) als Alternative zu undefined ist wahrscheinlich eine relativ schlechte Idee, weil sie komplexer ist als undefined und weniger explizit. Unser Ziel als Programmierer ist es, einfachen, lesbaren Code für andere zu lesen und sinnvoll zu machen.

Es ist eine schlechte Idee, undefined explizit aus einer Funktion aus dem gleichen Grund zurückzugeben, führt es unnötige Komplexität ein. typeof undefined ergibt undefined. Dies macht das Schreiben von Tests schwieriger und gibt Ihnen weniger Einblick in den Zweck einer Funktion, als beispielsweise das Zurückgeben von false.

+0

Ich bin nicht geduldig seine Verwendung, aber ich denke, ein Grund 'void (0)' besteht besteht darin, immer eine wahre 'undefined' zurückgeben, da in einigen Kontexten Sie den Wert von' undefined' überschreiben können. –

+0

ich denke du liegst falsch Himmel, ist besser void (0) wegen inkompatibler Probleme mit älteren Browsern mit undefined, wie Cory sagte. –

+0

'void (0)' ist äquivalent zu 'undefined', wenn Sie einen Wert zurückgeben. Wenn einer dieser Variablen eine Variable zugewiesen wird, können beide durch einen beliebigen Wert überschrieben werden. – Himmel

Verwandte Themen