non so a quale ringuaggio stai facendo riferimento,
però se fai riferimento a javascript (ma vale per molti linguaggi di scripting. Es anche per il php), la risposta è che succede quel che descrivi, perché si tratta di linguaggi "non-tipizzati": questo significa che non c'è bisogno di dichiarare il tipo di variabili, ma il tipo delle variabili viene scelto e/o convertito in automatico.
Insomma non hai bisogno di dichiare
String saluto;
saluto="ciao";
come ad esempio in Java.
Semplicemente scrivi:
saluto=ciao;
e l'interprete ti crea una variabile di tipo stringa con valore "ciao".
(se vuoi:
var saluto="ciao";
ma questo riguarda l'ambito della variabile, che è tutt'altro discorso).
Nel tuo caso 1:
sta sia per l'intero 1
sia per il booleano true (1 e true sono sinonimi).
Quindi:
- la tua funzione ti restituisce 1
- 1 viene convertito in true
- quando una condizione è true il contenuto dell'if viene eseguito.
Spero di essere stato chiaro.
Qualche risorsa:
variabili:
http://www.html.it/javascript/javasc...ascript_19.htm
uso dell'if:
http://www.html.it/javascript/javasc...ascript_29.htm
valori di ritorno:
http://www.html.it/javascript/javasc...ascript_29.htm
ambito delle funzioni:
http://www.html.it/javascript/javasc...ascript_25.htm
![]()

Rispondi quotando