Consigli per l'apprendimento Javascript con una precedente conoscenza del C ++? [chiuso]

2

Recentemente mi sono interessato all'apprendimento di Javascript per lo sviluppo web. Attualmente conosco HTML, CSS e C ++ per principianti / intermedi. Comprendo il polimorfismo, l'ereditarietà e tutte queste cose divertenti. Qualcuna di queste competenze sarà trasferita su Javascript? In quali modi chiave JavaScript differisce da C ++?

    
posta Zach Latta 07.06.2012 - 10:35
fonte

3 risposte

6

La differenza principale che rende JavaScript molto diverso rispetto ad altre lingue con sintassi C come la funzione è l'ambito della funzione, rispetto all'ambito del blocco. Questo porta a un riferimento dinamico questo . Anche l'ereditarietà è diversa e il sistema di tipo dinamico e non statico potrebbe causare confusione, ma fondamentalmente è come aggiungere nuove funzionalità. Naturalmente, questo ha anche alcune implicazioni sulla struttura del projekct e così via.

Raccomando JavaScript le parti buone (O'Reilly), Modelli JavaScript (O'Reilly) e Segreti del ninja JavaScript ( Manning).

Ma a parte questo, JavaScript può essere davvero divertente e una volta ottenuta l'idea, potresti dare un'occhiata a CoffeeScript.

    
risposta data 07.06.2012 - 10:46
fonte
5

Sono in una situazione simile, vengo su javascript dal mondo C #. Sono ancora un noob con javascript, ma posso condividere parte della mia esperienza personale con te.

Prima di tutto ecco un link da qualcuno con più conoscenze di me, che indirizza in modo specifico la tua domanda: "JavaScript Jump Start per programmatori C ++" link

Le tue conoscenze ti aiuteranno a capire Javascript più velocemente, ma fai attenzione, sono lingue molto diverse e alcune delle cose a cui sei abituato potrebbero diventare caveat.

Ecco alcune cose che mi hanno fatto soffrire fino ad ora:

Javascript è tipizzato dinamicamente, non tipizzato staticamente. Per questo motivo, i refusi nei nomi delle proprietà sono diventati un problema per me ... E a volte devi usare il debugger per vedere se stai usando le proprietà giuste dai parametri.

È interpretato, non compilato. Ciò significa che troverai molti degli errori solo in fase di esecuzione. E potrebbe accadere che il tuo codice venga eseguito solo parzialmente quando si verifica un errore.

Stai molto attento quando usi la parola chiave "this", non si comporta come sei abituato. Ecco un articolo che descrive in dettaglio: link

C'è anche molta estraneità nei confronti dei valori "falsy" e "truthy" (vedi questo: link ).

Questo è un grande argomento, e sono sicuro che la risposta non è completa, quindi invito altri a modificarlo.

    
risposta data 07.06.2012 - 10:45
fonte
0

Conosci i modelli di progettazione?

La ragione è che questo aiuta davvero nella transizione. Potrebbe essere utile rendersi conto che i seguenti schemi hanno un'importanza specifica in JavaScript:

Namespace (Module) Pub-Sub (osservatore).

È importante comprendere il Pattern del modulo in JavaScript e in che modo si riferisce specificamente allo scope globale. Vorrei comunicare che le variabili dei membri privati e il design classico orientato agli oggetti sono diversi.

JS è flessibile perché non ha una classe. In JS ... sono tutti solo oggetti, in fase di esecuzione, che operano sul DOM (importante). Gli oggetti JavsScript sono essenzialmente uno in comune con la nozione di JSON, "scoperto" da Douglas Crockford. È un esperto.

JSON è un formato di trasferimento oggetto JavaScript utilizzato nelle applicazioni AJAX. È possibile passare questi oggetti ... dappertutto, riguardo node.js

L'ereditarietà è diversa in JavaScript. Un presentatore molto bravo lo ha definito come: "JavaScript è amichevole con te - Non ti urlerà contro errori durante." e "L'ereditarietà è come uno zaino, ci metti solo delle cose" - submariam divenkat su RWX.

MVC è anche molto importante a mio modesto parere. Mi piace backbone.js ce ne sono altri.

È un'ottima lingua lo consiglio vivamente! È stato fantastico dalla mia transizione da c ++; e sicuramente mi manchi arduino.

pace ~

    
risposta data 08.06.2012 - 20:05
fonte

Leggi altre domande sui tag