Come padre di un bambino di 6 anni, che attualmente insegna ai bambini piccoli (e un novizio relativo alla programmazione senza educazione formale, quindi saranno necessarie correzioni), penso che la lezione si atterrebbe meglio attraverso il gioco pratico. Se il bambino di 6 anni è pronto a capire cos'è una chiusura, allora è abbastanza grande da provare da solo. Suggerirei di incollare il codice in jsfiddle.net, spiegandone un po 'e lasciandoli soli per creare una canzone unica. Il testo esplicativo che segue è probabilmente più appropriato per un bambino di 10 anni.
function sing(person) {
var firstPart = "There was " + person + " who swallowed ";
var fly = function() {
var creature = "a fly";
var result = "Perhaps she'll die";
alert(firstPart + creature + "\n" + result);
};
var spider = function() {
var creature = "a spider";
var result = "that wiggled and jiggled and tickled inside her";
alert(firstPart + creature + "\n" + result);
};
var bird = function() {
var creature = "a bird";
var result = "How absurd!";
alert(firstPart + creature + "\n" + result);
};
var cat = function() {
var creature = "a cat";
var result = "Imagine That!";
alert(firstPart + creature + "\n" + result);
};
fly();
spider();
bird();
cat();
}
var person="an old lady";
sing(person);
ISTRUZIONI
DATI: i dati sono una raccolta di fatti. Possono essere numeri, parole, misure, osservazioni o anche solo descrizioni di cose. Non puoi toccarlo, annusarlo o assaggiarlo. Puoi scriverlo, parlarlo e ascoltarlo. Puoi usarlo per creare odore e gusto tatto usando un computer. Può essere reso utile da un computer usando il codice.
CODICE: tutto lo scritto sopra è chiamato codice . È scritto in JavaScript.
JAVASCRIPT: JavaScript è una lingua. Come l'inglese o il francese o il cinese sono le lingue. Esistono molte lingue che sono comprese dai computer e da altri processori elettronici. Affinché JavaScript sia compreso da un computer, è necessario un interprete. Immagina se un insegnante che parla solo russo viene a insegnare a lezione a scuola. Quando l'insegnante dice "все садятся", la classe non capisce. Ma per fortuna hai un allievo russo nella tua classe che dice a tutti che questo significa "tutti siediti" - quindi lo fate tutti. La classe è come un computer e l'allievo russo è l'interprete. Per JavaScript l'interprete più comune si chiama browser.
BROWSER: quando ti connetti a Internet su un computer, tablet o telefono per visitare un sito Web, usi un browser. Esempi che potresti conoscere sono Internet Explorer, Chrome, Firefox e Safari. Il browser può capire JavaScript e dire al computer cosa deve fare. Le istruzioni JavaScript sono chiamate funzioni.
FUNZIONE: una funzione in JavaScript è come una fabbrica. Potrebbe essere una piccola fabbrica con solo una macchina all'interno. Oppure potrebbe contenere molte altre piccole fabbriche, ognuna con molte macchine che svolgono lavori diversi. In una vera fabbrica di abbigliamento potresti avere risme di stoffa e bobine di filo in entrata e magliette e jeans che escono. La nostra fabbrica JavaScript elabora solo i dati, non può cucire, praticare un foro o fondere il metallo. Nella nostra fabbrica di JavaScript i dati entrano ed escono i dati.
Tutta questa roba di dati sembra un po 'noiosa, ma è davvero molto bella; potremmo avere una funzione che dice a un robot cosa preparare per cena. Diciamo che invito te e il tuo amico a casa mia. Ti piacciono le cosce di pollo, mi piacciono le salsicce, il tuo amico vuole sempre quello che vuoi e il mio amico non mangia carne.
Non ho tempo per fare shopping, quindi la funzione deve sapere cosa abbiamo in frigo per prendere decisioni. Ogni ingrediente ha un tempo di cottura diverso e vogliamo che tutto sia servito caldo dal robot allo stesso tempo. Dobbiamo fornire alla funzione i dati su ciò che ci piace, la funzione potrebbe "parlare" con il frigorifero e la funzione potrebbe controllare il robot.
Una funzione ha normalmente un nome, parentesi e parentesi graffe. Come questo:
function cookMeal() { /* STUFF INSIDE THE FUNCTION */ }
Si noti che /*...*/
e //
interrompere la lettura del codice dal browser.
NOME: puoi chiamare una funzione praticamente qualunque parola tu voglia. L'esempio "cookMeal" è tipico nell'unire due parole insieme e dare alla seconda una lettera maiuscola all'inizio, ma questo non è necessario. Non può avere uno spazio al suo interno e non può essere un numero da solo.
GENITORI: "Parentesi" o ()
sono la cassetta delle lettere sulla porta della fabbrica della funzione JavaScript o una cassetta postale per la strada per l'invio di pacchetti di informazioni alla fabbrica. A volte la casella postale può essere contrassegnata, ad esempio cookMeal(you, me, yourFriend, myFriend, fridge, dinnerTime)
, nel qual caso sai quali dati devi fornirli.
Bretelle: "Bretelle" che assomigliano a queste {}
sono le finestre colorate della nostra fabbrica. Dall'interno della fabbrica puoi vedere, ma dall'esterno non puoi vedere dentro.
L'ESEMPIO DI LUNGO CODICE SOPRA
Il nostro codice inizia con la parola funzione , quindi sappiamo che è uno! Quindi il nome della funzione canta - questa è la mia descrizione di ciò che la funzione riguarda. Quindi parentesi () . Le parentesi sono sempre lì per una funzione. A volte sono vuoti, e, talvolta, hanno qualcosa in questo si ha una parola in.: (person)
. Dopo questo c'è un tutore come questo {
. Questo segna l'inizio della funzione sing () . Ha un partner che segna la fine di sing () in questo modo}
function sing(person) { /* STUFF INSIDE THE FUNCTION */ }
Quindi questa funzione potrebbe avere qualcosa a che fare con il canto e potrebbe aver bisogno di alcuni dati su una persona. Contiene istruzioni per fare qualcosa con quei dati.
Ora, dopo la funzione sing () , vicino alla fine del codice è presente la riga
var person="an old lady";
VARIABILE: Le lettere var indicano "variabile". Una variabile è come una busta. All'esterno questa busta è contrassegnata come "persona". All'interno contiene un foglietto con le informazioni di cui la nostra funzione ha bisogno, alcune lettere e spazi uniti insieme come un pezzo di spago (si chiama spago) che formano una frase che legge "una vecchia signora". La nostra busta potrebbe contenere altri tipi di cose come numeri (chiamati numeri interi), istruzioni (chiamate funzioni), liste (chiamate matrici ). Poiché questa variabile è scritta al di fuori di tutte le parentesi graffe {}
e poiché puoi vedere attraverso le finestre colorate quando ti trovi all'interno delle parentesi graffe, questa variabile può essere vista da qualsiasi parte del codice. Questa viene definita una "variabile globale".
VARIABILE GLOBALE: la persona è una variabile globale, nel senso che se cambi il suo valore da "una vecchia signora" a "un giovane", la persona continuerà ad essere un giovane fino a quando deciderai di cambiarlo di nuovo e che qualsiasi altra funzione in il codice può vedere che è un giovane. Premi il F12pulsante o osserva le impostazioni Opzioni per aprire la console per sviluppatori di un browser e digita "persona" per vedere qual è questo valore. Digitare person="a young man"
per modificarlo e quindi digitare nuovamente "persona" per vedere che è cambiato.
Dopo questo abbiamo la linea
sing(person);
Questa linea chiama la funzione, come se stesse chiamando un cane
"Vieni a cantare , vieni a prendere una persona !"
Quando il browser ha caricato il codice JavaScript e ha raggiunto questa riga, avvierà la funzione. Ho messo la linea alla fine per assicurarmi che il browser abbia tutte le informazioni necessarie per eseguirlo.
Le funzioni definiscono le azioni - la funzione principale riguarda il canto. Contiene una variabile chiamata firstPart che si applica al canto della persona che si applica a ciascuno dei versi della canzone: "C'era" + persona + "che ha deglutito". Se digiti firstPart nella console, non otterrai una risposta perché la variabile è bloccata in una funzione: il browser non può vedere all'interno delle finestre colorate delle parentesi graffe.
CHIUSURE: Le chiusure sono le funzioni più piccole che si trovano all'interno della grande funzione sing () . Le piccole fabbriche all'interno della grande fabbrica. Ognuno di essi ha le proprie parentesi graffe, il che significa che le variabili al loro interno non possono essere viste dall'esterno. Ecco perché i nomi delle variabili ( creatura e risultato ) possono essere ripetuti nelle chiusure ma con valori diversi. Se digiti questi nomi di variabili nella finestra della console, non otterrai il suo valore perché è nascosto da due livelli di finestre colorate.
Tutte le chiusure sanno quale sia la variabile della funzione sing () chiamata firstPart , perché possono vedere dalle loro finestre colorate.
Dopo le chiusure arrivano le linee
fly();
spider();
bird();
cat();
La funzione sing () chiamerà ciascuna di queste funzioni nell'ordine in cui sono state fornite. Quindi verrà eseguito il lavoro della funzione sing ().