Perché un'espressione per una funzione Javascript che restituisce void viene ancora eseguita? [chiuso]

-3

Sono così confuso su come funziona Void operator (in javascript) e qual è il suo ruolo. come ho letto, Void è un operatore che valuta un'espressione senza restituire un valore , ma eseguendo lo script ad esempio:

<html>
 <head>

 </head>
 <body>

  <a href="javascript:void(alert(1+1))">Click me!</a>

 </body>
</html>

Dopo aver fatto clic sul link, il browser mostra il valore 2, che non deve essere mostrato poiché l'espressione valutata ( alert(1+1) ) non deve restituire un valore a causa dell'essere un operando dell'operatore Void . < br> Qualcuno può chiarirlo per favore?

    
posta Mehdi 29.06.2016 - 01:30
fonte

1 risposta

4

I valori di ritorno e gli effetti collaterali sono due cose diverse. void elimina il valore restituito, non ha alcun effetto sugli effetti collaterali :

This operator allows inserting expressions that produce side effects into places where an expression that evaluates to undefined is desired.

alert() produce una finestra come un effetto collaterale, non un valore di ritorno. 1+1 è un'espressione che fa restituisce un valore, ma quel valore di ritorno è gestito da alert() , non dall'operatore void .

Tieni presente che alert() potrebbe non restituire un valore normalmente, non in Firefox 47, rendendo il wrapper ridondante void in questo caso particolare.

    
risposta data 29.06.2016 - 16:46
fonte

Leggi altre domande sui tag