CoffeeScript: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
LauBot (discussione | contributi)
m Bot: rimuovo parametro ridondante (valore uguale alla proprietà P856 su Wikidata)
m Elimino wikilink da parametri editore, città, anno di {{Cita libro}} come da manuale
 
(7 versioni intermedie di 6 utenti non mostrate)
Riga 1:
{{Linguaggio di programmazione
|autore = Jeremy Ashkenas
|immagine = CoffeeScript-logo.svg
|data = 13 dicembre 2009
|versione = 2.5.1 rilasciata il 31 gennaio 2020
Line 6 ⟶ 7:
|paradigmi = Funzionale, imperativo, scripting
|tipizzazione = Inesistente
|estensione = <code>.coffee</code>, <code>.litcoffee</code>
|influenzato_da = [[JavaScript]], [[Perl]], [[Haskell (linguaggio di programmazione)|Haskell]], [[Python]], [[YAML]], [[Ruby (linguaggio di programmazione)|Ruby]]
|ha_influenzato = [[MoonScript]], [[JavaScript]]
|sistema_operativo = Cross-Platform
|licenza = MIT
}}
 
'''CoffeeScript'''&nbsp;è un linguaggio di programmazione che si [[transcompila]] in [[JavaScript]]. Esso aggiunge lo&nbsp;[[zucchero sintattico]]&nbsp;ispirato da [[Ruby (linguaggio di programmazione)|Ruby]], [[Python]] e [[Haskell (linguaggio di programmazione)|Haskell]]&nbsp;nel tentativo di accrescere la leggibilità e concisione di JavaScript.<ref name="thelittlebookoncoffeescript">{{Cita libro|titolo=The Little Book on CoffeScript|anno=2012|url=https://archive.org/details/littlebookoncoff0000macc|autore=Alex MacCaw|editore=[[O'Reilly Media]]|data=January 2012|isbn=978-1-4493-2105-5}}</ref>&nbsp;Specifiche funzionalità aggiuntive includono la [[comprensione di lista]]&nbsp;e la [[ricerca di corrispondenza]].
 
Il supporto di CoffeeScript è incluso nella versione 3.1 di [[Ruby on Rails]].<ref>, Joshua.</ref>&nbsp;Nel 2011, [[Brendan Eich]] fece riferimento a CoffeeScript come un'influenza nei suoi pensieri sul futuro di JavaScript.<ref>Eich, Brendan.</ref>
Line 30 ⟶ 31:
 
=== Test d'intervallo ===
Per calcolare l'indice di massa corporea, qualcuno potrebbe scrivere (in JavaScript):<syntaxhighlight lang="javascript" line="1">
varlet mass = 72;
varlet height = 1.78;
varconst BMI = mass / (height ** height2);
if (18.5 < BMI && BMI < 25) && alert('You are healthy!');
</syntaxhighlight>Con CoffeeScript l'intervallo è direttamente descritto:<syntaxhighlight lang="coffeescript">
mass = 72
Line 73 ⟶ 74:
person = "Ivan"
personCheck()
</syntaxhighlight>Questo altererebbecodice mostrerà a schermo "No person" se la variabile fosseè&nbsp;<code>null</code> o&nbsp;<code>undefined</code> e "Have person" se cic'è fossepresente qualcosa.
 
=== Funzioni e jQuery ===
Line 84 ⟶ 85:
// Initialization code goes here
})
</syntaxhighlight>In CoffeeScript, la parola chiave <code>function</code> è sostituita dal simbolo&nbsp;<code>-></code>&nbsp;, e viene usata l'indentazione invece che le parentesi graffe, come in altri linguaggi [[off-side rule]]&nbsp;come [[Python]] e [[Haskell (linguaggio di programmazione)|Haskell]]. Inoltre, le parentesi possono essere generalmente omesse, usando invece il livello d'[[indentazione]] per denotare una funzione o blocco. Quindi, l'equivalente CoffeeScript del frammento sopra è:<syntaxhighlight lang="coffeescript">
$(document).ready ->
# Initialization code goes here
Line 120 ⟶ 121:
* {{Cita pubblicazione|nome=Patrick|cognome=Lee|data=14 maggio 2014|titolo=CoffeeScript in Action|edizione=First|editore=[[Manning Publications]]|p=432|isbn=978-1-61729-062-6|url=https://www.amazon.com/dp/1617290629}}
* {{Cita pubblicazione|nome=Geoffrey|cognome=Grosenbach|data=12 maggio 2011|titolo=Meet CoffeeScript|edizione=First|editore=[[PeepCode]]|url=https://peepcode.com/products/coffeescript|urlmorto=sì|urlarchivio=https://web.archive.org/web/20110616014711/http://peepcode.com/products/coffeescript|dataarchivio=16 giugno 2011}}
* {{Cita pubblicazione|nome=Mark|cognome=Bates|data=31 maggio 2012|titolo=Programming in CoffeeScript|edizione=First|editore=[[Addison-Wesley]]|p=350|isbn=0-321-82010-X|url=http://my.safaribooksonline.com/book/-/9780132946155|accesso=12 luglio 2016|dataarchivio=10 giugno 2016|urlarchivio=https://web.archive.org/web/20160610180706/http://my.safaribooksonline.com/book/-/9780132946155|urlmorto=sì}}
* {{Cita pubblicazione|nome=Alex|cognome=MacCaw|data=31 gennaio 2012|titolo=The Little Book on CoffeeScript|edizione=First|editore=[[O'Reilly Media]]|p=62|isbn=978-1-4493-2105-5|url=https://arcturo.github.com/library/coffeescript/|accesso=30 aprile 2019|dataarchivio=2 gennaio 2012|urlarchivio=https://web.archive.org/web/20120102011208/http://arcturo.github.com/library/coffeescript/|urlmorto=sì}}
* {{Cita pubblicazione|nome=Trevor|cognome=Burnham|data=3 agosto 2011|titolo=CoffeeScript: Accelerated JavaScript Development|edizione=First|editore=[[Pragmatic Bookshelf]]|p=138|isbn=978-1-934356-78-4|url=https://pragprog.com/book/tbcoffee/coffeescript|accesso=30 aprile 2019|urlarchivio=https://web.archive.org/web/20190303003953/https://pragprog.com/book/tbcoffee/coffeescript|dataarchivio=3 marzo 2019|urlmorto=sì}}
 
== Voci correlate ==
* [[Haxe]]
* [[DARTDart (linguaggio di programmazione)]]
* [[TypeScript]]
 
== Collegamenti esterni ==
* {{Collegamenti esterni}}
* [http://coffeescript.org/ Sito ufficiale]
* [https://github.com/jashkenas/coffeescript coffee-script] su GitHub
* [http://rapydscript.pyjeon.com/ RapydScript] {{Webarchive|url=https://web.archive.org/web/20160405144723/http://rapydscript.pyjeon.com/ |date=5 aprile 2016 }}, un traduttore con una sintassi più Pythonic
* [https://ckknight.github.io/gorillascript/ GorillaScript], che offre controlli di tipi aggiuntivi e zucchero sintattico per pattern JS comuni come callback in linea
 
{{Controllo di autorità}}
{{Portale|Informatica}}
 
[[Categoria:Linguaggi di programmazione]]