CoffeeScript online - IDE, editor, compilatore, interprete

RSS

Compila CoffeeScript 2 in JavaScript online ed eseguilo subito: visualizza il JavaScript generato e l'output della console fianco a fianco.

CoffeeScript 2.7 · Funziona nel tuo browser, quindi il tuo codice non raggiunge mai i nostri server.
main.coffeeCoffeeScript
Output

            
        
Ctrl/⌘ + Enter per eseguire

Funzionalità del compilatore CoffeeScript online (IDE, editor e interprete)

Scrivi, esegui e testa codice CoffeeScript online gratis. Questa pagina è al tempo stesso IDE CoffeeScript online, editor di codice, compilatore e interprete: scrivi il codice, premi Esegui e vedi subito l'output. Tutto funziona nel tuo browser, senza nulla da installare e senza creare un account.

  • Esecuzione immediata: CoffeeScript 2.7, con output in meno di un secondo dopo il primo caricamento.
  • Editor di codice: evidenziazione della sintassi, numeri di riga, corrispondenza e chiusura automatica delle parentesi.
  • Errori chiari: messaggi di errore e avvisi compaiono nel pannello di output, come sul tuo computer.
  • Schermo intero: Ctrl/⌘ + Shift + F, dimensione del carattere regolabile, layout affiancato o impilato e pannelli ridimensionabili.
  • Salvataggio automatico: il tuo codice resta nel browser; scaricalo come main.coffee o copialo con un clic.
  • Sperimenta in sicurezza: un limite di tempo e un pulsante Interrompi fermano i cicli infiniti.
  • Privato: il runtime CoffeeScript funziona sul tuo dispositivo, quindi il codice non viene mai caricato.
  • Modalità scura e scorciatoie da tastiera: Ctrl/⌘ + Enter esegue il codice.
  • Gratis: nessuna registrazione, nessun limite di utilizzo.

Impara altri linguaggi di programmazione

How to use the online CoffeeScript compiler

  1. Write or paste CoffeeScript into the editor. Reset example restores the starter code with functions, a comprehension and a small class hierarchy.
  2. Press Run or use Ctrl + Enter (⌘ + Enter on a Mac).
  3. The official CoffeeScript compiler turns your code into JavaScript. If there is a syntax error, the message shows its line and column, and nothing runs.
  4. If compilation succeeds, the JavaScript runs in your browser's JavaScript engine. console.log output appears in the Output panel, with objects and arrays pretty-printed as JSON. Open Generated JavaScript under the output to see the compiled code.
  5. Choose a time limit of 5, 15 or 60 seconds, or press Stop to end a run early.

Use Copy or main.coffee to save your source. The layout button switches between side-by-side and stacked panes.

Compiling and running both happen in a Web Worker in your browser, and your code is never sent to a server. The editor auto-saves your last code in your browser, separately for each compiler.

About CoffeeScript 2

CoffeeScript is a small language that compiles to JavaScript. Its syntax is inspired by Ruby and Python: indentation instead of braces, optional parentheses, -> for functions and implicit returns. Several of its ideas, such as arrow functions, classes, destructuring and string interpolation, later became standard JavaScript.

This page uses CoffeeScript 2.7 in bare mode, so the output is not wrapped in an extra function. CoffeeScript 2 generates modern ES2015+ code. Its classes become JavaScript classes, => becomes an arrow function, and any function that contains await becomes an async function.

What's supported

  • The full CoffeeScript 2 language: classes with extends and super, @ shorthand, string interpolation with "#{...}", ranges like [1..5], destructuring, splats, the existential operator ?, and async/await.
  • Standard JavaScript built-ins such as Math, JSON, Array methods and Promise.

Limitations:

  • No DOM: the code runs in a worker, so document and window are unavailable.
  • No require, import or npm packages, and no Node.js APIs.
  • No input box. Define your test data in the code.

Worked example: comprehensions and @

evens = (n for n in [1..10] when n % 2 is 0)
console.log evens                    # [2, 4, 6, 8, 10]

class Basket
  constructor: (@owner) ->
    @items = []
  addAll: (list) ->
    list.forEach (item) => @items.push item
    this

basket = new Basket('Ada').addAll ['tea', 'milk']
console.log "#{basket.owner} has #{basket.items.length} items"

(@owner) in the constructor stores the argument as this.owner. The callback uses =>, so @items still refers to the basket. With a thin arrow -> it would refer to something else and the call would fail. Open Generated JavaScript to see how the comprehension becomes a loop and the class becomes an ES class.

Common pitfalls

  • Whitespace is significant. Indentation defines blocks, so a misaligned line changes the meaning or fails to compile.
  • Implicit returns. A function returns the value of its last expression. A loop at the end of a function collects its results into an array. Add an explicit return if you do not want that.
  • in vs of. for x in array loops over values, while for key, value of object loops over properties. This is the reverse of what a JavaScript developer might expect.
  • Comprehensions need parentheses when you assign or print them. Without them, evens = n for n in list assigns each item to evens in turn, so you end up with the last item instead of an array.
  • No var or let. Assigning to a name that already exists in an outer scope updates that variable instead of creating a new one.
  • is, isnt, and, or and not are aliases, and == compiles to the strict ===.

CoffeeScript or TypeScript today?

For new projects, most teams pick TypeScript or modern JavaScript, because they offer static types and wider editor and library support. CoffeeScript is still useful for maintaining existing codebases, such as older Ruby on Rails applications, and for quick, concise scripts. When you migrate, the generated JavaScript is a good starting point. Tidy it with the JavaScript formatter, or try the result in the online TypeScript compiler.

Frequently asked questions

Can I convert CoffeeScript to JavaScript here?

Yes. Run your code, open Generated JavaScript and copy the output. It is produced by the official CoffeeScript 2.7 compiler in bare mode.

Why does my function return an array I did not expect?

Because of implicit returns. If a loop is the last expression in a function, its results are collected and returned. End the function with return or another value to avoid this.

Where can I run the JavaScript directly?

Use the online JavaScript compiler, or browse all online compilers.

Aggiornato

Copiato negli appunti