CoffeeScript

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 26. februar 2016; checks kræver 25 redigeringer .
CoffeeScript
Sprog klasse

multi-paradigme :

objektorienteret , imperativ , funktionel , aspektorienteret , prototypisk
Dukkede op i 13. december 2009
Forfatter Jeremy Ashkenas
Filtypenavn _ .coffee
Frigøre 2.7.0 [1]  (24. april 2022 ) ( 2022-04-24 )
Blev påvirket JavaScript , Python , Ruby , Haskell , Erlang
påvirket MoonScript , LiveScript
Licens MIT-licens [2]
Internet side coffeescript.org
OS på tværs af platforme

CoffeeScript ( ['kɔ:fɪ skrɪpt] ; coffee script ) er et programmeringssprog oversat til JavaScript . CoffeeScript tilføjer syntaktisk sukker i stil med Ruby , Python , Haskell og Erlang for at forbedre kodelæsbarheden og reducere kodestørrelsen. CoffeeScript giver dig mulighed for at skrive mere kompakt kode sammenlignet med JavaScript [3] . JavaScript -koden modtaget ved oversættelse fra CoffeeScript består fuldt ud JavaScript Lint -testen .

Historie

Sprogets skaber er Jeremy Ashkenas .

Oprindeligt blev compileren skrevet i Ruby , men i version 0.5, som blev udgivet den 21. februar 2010 , blev compileren implementeret i selve CoffeeScript.

CoffeeScript er blevet hilst velkommen af ​​Ruby -fællesskabet. Native CoffeeScript-understøttelse er blevet tilføjet til Ruby on Rails - webframeworket siden version 3.1.

Implementering

Sprogets officielle hjemmeside har en "prøv coffeescript" sektion, der giver dig mulighed for at køre programmer på det online [4] . I modsætning til for eksempel Try Ruby [5] vil der ikke være nogen anmodninger til serveren, koden kompileres og udføres direkte i browseren.

Eksempler

Variabler

CoffeeScript:

alder = 2 mand = sandt navn = "Matvey"

JavaScript:

lad alder = 2 , mand = sand , navn = "Matvey" ;

Funktioner

CoffeeScript:

sige = ( tale ) -> alarmerende tale sig "Hej verden!"

JavaScript ved hjælp af ECMAScript 2015:

const say = tale => alarm ( tale ); sige ( 'Hej verden!' );

JavaScript:

var sige = funktion ( tale ) { advarsel ( tale ); }; sige ( "Hej verden!" );

Klasser og objekter

CoffeeScript:

klasse Menneskelig konstruktør: (@navn) -> klasse Baby forlænger Menneske sig : (msg) -> advarsel " #{ @name } siger ' #{ msg } '" sigHej : -> @say ( 'hej' ) mat = ny Baby ( "Matvey" ) mat . sig hej ()

JavaScript ved hjælp af ECMAScript 2015:

klasse Menneske { konstruktør ( navn ) { dette . navn = navn ; } } class Baby udvider Human { say ( msg ) { alert ( ` $ { this . name } siger ' $ { msg } '` ); } sigHej () { dette . sige ( 'hej!' ); } } const mat = new Baby ( 'Matt' ); mat . sig hej ();

En analog i JavaScript (nemlig en analog, ikke et kompileringsresultat):

funktion Menneske ( navn ){ dette . navn = navn ; } funktion Baby ( navn ){ Menneske . kalde ( dette , navn ); } baby . prototype = Objekt . oprette ( Human.prototype ) ; _ baby . prototype . say = function ( msg ){ advarsel ( dette .navn + ' siger ' + besked ) ; }; baby . prototype . sayHi = funktion (){ denne . sige ( 'hej!' ); }; baby . prototype . konstruktør = Menneske ; var matt = new Baby ( "Matt" ); mat . sig hej ();

Bemærk: i JavaScript, når der arbejdes med "klasser" (konstruktør + prototyper + funktioner til nedarvning og blanding), bruges der ofte indpakninger (MooTools, AtomJS og andre). JavaScript-analogi med AtomJS-klasseindpakning:

var Human = Class ({ initialize : function ( name ) { this . name = name ; } }); var Baby = Class ({ Extends : Human , say : function ( msg ) { alert ( this . name + ' says ' + msg ); }, sayHi : function () { this . say ( 'hello' ); } } ) ; var matt = new Baby ( "Matt" ); mat . sig hej ();

Et eksempel på en CoffeeScript-klasse med forskellige slags egenskaber.

klasse Test sig = (msg) -> advarsel msg # privat metode @echo = (msg) -> konsol . log msg # statisk metode, skrevet til Test setHi : (msg) -> # dynamisk metode, skrevet til Test.prototype @hi = -> msg # dynamisk metode, skrevet til testinstans

Se også

Noter

  1. 2.7.0 . Arkiveret fra originalen den 23. juni 2022. Hentet 23. juni 2022.
  2. Coffeescript Open Source-projektet på Open Hub: Licenser-side - 2006.
  3. Eksempel på titelsiden på den officielle hjemmeside . Dato for adgang: 18. januar 2012. Arkiveret fra originalen 9. juni 2017.
  4. Prøv CoffeeScript . coffeescript.org. Dato for adgang: 4. januar 2016. Arkiveret fra originalen 9. juni 2017.
  5. Prøv Ruby: lær det grundlæggende om Ruby-sproget i din browser. . tryruby.org. Dato for adgang: 4. januar 2016. Arkiveret fra originalen 28. september 2011.

Litteratur

Links

Relaterede projekter: