Comprensione JavaScript e tipi di

Comprensione JavaScript e tipi di

  

Problema che si desidera per aggirare il fatto che JavaScript non ha ancora dichiarato i tipi per le sue variabili. Theory codice JavaScript non ha alcun variabili con un tipo dichiarato. La mancanza di variabili digitato è evidente quando si dichiara funzioni. Detto questo, non aver digitato le dichiarazioni di variabili non significa che JavaScript non ha alcun tipo o nessun tipo di sicurezza. Cominciamo con la semplice dichiarazione di una funzione, come illustrato dal seguente esempio.

 Fonte: / website / ROOT / ajaxrecipes / javascript / AddTwoNumbers funzione expectations.html (num1, num2) (return num1 + num2;)

AddTwoNumbers la funzione ha due parametri, num1 e num2, e rappresenta due numeri singoli. Per l'attuazione del AddTwoNumbers, i due numeri vengono sommati e il valore viene restituito. Questo modo di dichiarare e utilizzare una funzione è comune in altri linguaggi di programmazione. Il risultato di aggiungere il numero di num1 e num2 viene restituito al chiamante come segue: assertEquals (4, AddTwoNumbers (2, 2)); La funzione assertEquals viene utilizzata per verificare che quando la AddTwoNumbers funzione viene chiamata con 2 e 2, 4 è generato come conseguenza. Quando si esegue il codice, tutto funziona come previsto, ma potete stare certi che tutto sia corretto?

La risposta è no, non si può stare certi, perché alcune ipotesi fuorvianti vengono effettuate. La funzione AddTwoNumbers dichiara due numeri, ma l'ipotesi che num1 e num2 sono numeri, non è ragionevole. In JavaScript, le variabili non sono tipo dichiarato. Una volta assegnato a un tipo, una variabile è di tipo sicuro, ma non sai quello che il tipo è fino a quando la variabile è assegnato. Pertanto, per quanto riguarda la funzione, i tipi di num1 e num2 non sono noti. Solution un modo più sicuro ad attuare AddTwoNumbers è il seguente.

 Fonte: / website / ROOT / ajaxrecipes / javascript / AddTwoNumbersDisplayTypes funzione expectations.html (num1, num2) (var val1 = parseInt (num1); var val2 = parseInt (num2); if (isNaN (val1) | | isNaN (val2)) ( throw new Error ( "num1, (e / o) num2 non sono né un numero o una stringa");) info ( "AddTwoNumbersDisplayTypes", typeof (num1)); info ( "AddTwoNumbersDisplayTypes", typeof (num2)); return val1 + val2;)

In sede di attuazione modificate, il metodo parseInt, che viene utilizzato per convertire una stringa in un numero, si applica sia num1 e num2. Il risultato di parseInt è un valore intero che consente num1 e num2 da aggiungere insieme. I parametri num1 e num2 sono verificati per essere i numeri utilizzando l'operatore isNaN. Il valore di ritorno di isNaN è un valore vero o falso. Se uno dei valori restituisce false, quindi num1 e num2 non è un numero e viene generata un'eccezione. In questa implementazione modifica, sembrerebbe che ben poco poteva andare storto. Guardando l'attuazione di aggiungere due numeri, ci si potrebbe chiedere come l'uso di un linguaggio dinamico come JavaScript è un vantaggio rispetto all'uso di un altro linguaggio di programmazione.

Il codice aggiuntivo utilizzato per verificare se i tipi corretti vengono utilizzati sarebbe noioso se questo tipo di logica è stata applicata per tutte le funzioni. In altri linguaggi di programmazione come Java e C #, l'aggiunta di due numeri in sicurezza è del tutto banale. Concessa, se avete intenzione di eseguire un gran numero di calcoli numerici, quindi JavaScript non è probabilmente la maggior parte dei linguaggi di programmazione adeguati. Ma quando è necessario scrivere una domanda per ottenere qualcosa, e se non si vuole pasticciare con il basso livello di dettagli, che tipo fa che cosa, JavaScript è la scelta migliore. Modificato il codice sorgente è un esempio di scrittura difensiva codice, che è una buona pratica, ma non prendetelo troppo e lasciare che ti fa paranoico. Volete il codice che fa quello che dovrebbe fare, e quando non si dovrebbe generare errori esplicito in altre parole, si vuole il codice che urla quando si verifica un errore. Il codice che cattura l'urlo dovrebbe poi fare qualcosa con esso. Durante la scrittura di funzioni, l'obiettivo è quello di scrivere un applicazione che ha il codice difensiva adeguata alle attese della funzione. Quando la scrittura di codice in un linguaggio dinamico come JavaScript, le aspettative e le convenzioni giocano un ruolo estremamente importante. Durante la scrittura di codice utilizzando un linguaggio di programmazione come C # o Java, i programmatori sono tenuti a rendere conto di ogni situazione che funziona e non funziona. Let's dunque riscrivere la nostra funzione, oltre ad attuare le nostre aspettative e l'uso di una convenzione. Il primo passo è quello di scrivere i test e pensare a ciò che è e non è appropriato. L'attuazione seguente riflette le nostre aspettative.

 Fonte: / website / ROOT / ajaxrecipes / javascript / classical_add_display_types expectations.html: function () (assertEquals (4, AddTwoNumbersDisplayTypes (2, 2)); assertEquals (4, AddTwoNumbersDisplayTypes ( "2", 2)); try (AddTwoNumbersDisplayTypes (new Object (), 2); testManager.failed (); return;) catch (e) (info ( "classical_add_display_types", "errore di attesa (" + e.toString () + ")");) testManager.success (); ),

I primi due assertEquals chiamate di metodo riflettono l'aspettativa che si possa aggiungere un numero che è una stringa o un valore numerico. L'aspettativa di aggiungere due valori numerici è ovvio, perché in genere si aggiungono due numeri. L'aspettativa di essere in grado di riconoscere due buffer per i numeri è appropriato perché si tratta di moduli HTML. Elementi di form HTML memorizzare i loro valori come buffer. Così, quando l'esecuzione di operazioni matematiche utilizzando dati provenienti da elementi del form HTML, ci aspettiamo che le formule per gestire la conversione da buffer per i valori numerici. Dopo le chiamate ai metodi che implementano le prove delle nostre aspettative, il codice all'interno del blocco eccezione implementa qualcosa che noi non aspettiamo di lavoro.

Chiamando l'aggiunta di un oggetto, in cui una proprietà dell'oggetto potrebbe fare riferimento a un numero, non è qualcosa che ci aspettiamo che la funzione di aggiunta di capire. Qui ci aspettiamo un errore di essere generato. Il codice che non si prevede di lavorare, o almeno ci si può aspettare di fallire, è avvolto in un blocco di eccezioni. Il ruolo delle aspettative è necessaria sia la funzione e il chiamante della funzione, come illustrato nell'esempio. In JavaScript, le funzioni devono soddisfare determinate aspettative, così si dovrebbe osservare i seguenti punti durante la scrittura di loro:

• le variabili non vengono dichiarati utilizzando i tipi, e quando le variabili non sono assegnati sono considerati senza tipo.

• Una volta assegnate, le variabili guardare, sentire, e si comportano come i tipi.

• Quando si implementa funzioni, si sta scrivendo i blocchi di codice che implementano le aspettative.

• Per soddisfare adeguatamente le aspettative, è necessario scrivere i test.

• Quando le aspettative non sono soddisfatte, gli errori devono essere evidenti e la loro messaggi di accompagnamento dovrebbero essere esplicative.

• Se si desidera verificare che tipo di una variabile, utilizzare typeof. Non utilizzare un semplice oggetto o di controllo.

• In caso di applicazione delle aspettative, non essere paranoici e tenta di creare un sistema di tipo per verificare l'esatta posizione di ogni variabile e ogni parametro.

un articolo presentato da Sonja Lande


Disclaimer:Il nostro sito non è responsabile per il contenuto di questo articolo. Webarticles è una risorsa gratuita di informazioni.
Importante: Questo articolo "Understanding JavaScript e tipi" è stato tradotto da un software automatico. Ci dispiace per eventuali errori di ortografia che possono essersi verificati. Grazie per la vostra comprensione.


Online: 215 users browsing the articles directory   


  

|