Skip to content
This repository has been archived by the owner on Nov 21, 2018. It is now read-only.

Commit

Permalink
Merge pull request #24 from michaelmcmillan/gh-pages
Browse files Browse the repository at this point in the history
Oversettelse av ES6-siden
  • Loading branch information
michaelmcmillan committed Feb 15, 2015
2 parents f98befa + 9363e0c commit 7f0d1a6
Showing 1 changed file with 66 additions and 65 deletions.
131 changes: 66 additions & 65 deletions es6.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,70 +3,71 @@ layout: default
title: ES6
---

# ES6 on io.js

io.js is built against modern versions of [V8](https://code.google.com/p/v8/).
By keeping up-to-date with the latest releases of this engine we ensure new
features from the [JavaScript ECMA-262
specification](http://www.ecma-international.org/publications/standards/Ecma-262.htm)
are brought to io.js developers in a timely manner, as well as continued
performance and stability improvements.

Version {{ iojs_version }} of io.js ships with V8 {{ v8_version }}, which
includes ES6 features well beyond version 3.26.33 that will be shipped with
joyent/node@0.12.x.

## No more --harmony flag

On joyent/node@0.12.x (V8 3.26), the `--harmony` runtime flag enabled all
**completed**, **staged** and **in progress** ES6 features together, in bulk
(with the exception of nonstandard/non-harmonious semantics for `typeof` which
were hidden under `--harmony-typeof`). This meant that some really buggy or even
broken features like
[proxies](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Proxy)
were just as readily available for developers as
# ES6 i io.js

io.js bruker moderne versjoner av [V8](https://code.google.com/p/v8/).
Ved å holde prosjektet oppdatert med de siste versjonene av V8 sørger
vi for at nye funksjoner fra [JavaScript
ECMA-262 spesifikasjonen](http://www.ecma-international.org/publications/standards/Ecma-262.htm)
er tilgjengelig for io.js utviklere innen rimelig tid. I tillegg vil sikkerhets-
og ytelesesforbedringer komme raskt.

Versjon {{ iojs_version }} av io.js kommer med V8 {{ v8_version }}, denne
inkluderer ES6-funksjoner godt forbi versjon 3.28.73 som vil bli levert med
Node.js™ 0.12.x.

## Slutt på --harmony-flagget

Med Node.js™@0.12.x (V8 3.28+) aktiverte `--harmony`-flagget alle
**completed**, **staged** og **in progress** ES6-funksjoner sammen
(med unntak av `proxies` som
ble skjult ved bruk av `--harmony-proxies`). Dette resulterte i at ustabile eller
til og med ødelagte funksjoner som
[Arrow Functions](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions)
var like tilgjengelig for utviklere som
[generators](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/function*),
which had very little or even no known-issues. As such, it was best practice to
either enable only certain features by using specific runtime harmony feature
flags (e.g. `--harmony-generators`), or simply enable all of them and then use a
restricted subset.
som hadde veldig få eller ingen kjente problemer. Følgelig var det sikrest
å aktivere enten et fåtall funksjoner ved å bruke spesifikke harmony-flagg (f.eks.
`--harmony-generators`), eller aktivere dem alle og deretter bare bruke
en begrenset delmengde.

With io.js@1.x (V8 4.1+), all that complexity goes away. All harmony features
are now logically split into three groups for **shipping**, **staged** and **in
progress** features:
Med io.js@1.x (V8 4.1+) forsvinner all denne kompleksiteten. Alle harmony-funksjoner
er nå logisk fordelt inn i tre grupper for **shipping**, **staged** og **in
progress** funksjoner:

* All **shipping** features, the ones that V8 has considered stable, like <a
* Alle **shipping** funksjoner, som V8 har vurdert som stabile, for eksempel <a
href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/function*">generators</a>,
<a
href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/template_strings">templates</a>,
<a
href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/New_in_JavaScript/ECMAScript_6_support_in_Mozilla#Additions_to_the_String_object">new
string methods</a> and many others are turned **on by default on io.js** and
do **NOT** require any kind of runtime flag.
* Then there are **staged** features which are almost-completed features that
haven't been completely tested or updated to the latest spec yet and
therefore are not considered stable by the V8 team (e.g. there might be some
edge cases left to discover). This is probably the equivalent of the state of
string methods</a> og mange flere er nå skrudd **på som standard i io.js** og
krever **INGEN** flagg.
* Deretter er det **staged** funksjoner, som er nesten fullførte funksjoner som ikke
har blitt fullstendig testet eller oppdatert i henhold til den siste spesifikasjonen
enda. Følgelig er de ikke ansett som stabile av V8 laget (f.eks. kan det være
noen 'edge cases' som ikke har blitt oppdaget). Dette er mest sannsynlig
ekvivalent med tilstanden til
<a
href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/function*">generators</a>
on 3.26. These are the "use at your own risk" type of features that now
require a runtime flag: `--es_staging` (or its synonym, `--harmony`).
* Finally, all **in progress** features can be activated individually by their
respective harmony flag (e.g. `--harmony_arrow_functions`), although this is
highly discouraged unless for testing purposes.
i 3.26. Disse er "bruk på egen risiko" funksjoner som nå krever flagget
: `--es_staging` (eller synonymet, `--harmony`).
* Avsluttende kan alle **in progress** funksjoner bli aktivert individuelt
av deres respektive harmony-flagg (f.eks. `--harmony_arrow_functions`), selv om
dette ikke er anbefalt - ved mindre det brukes til testing.

## Which ES6 features ship with io.js by default (no runtime flag required)?
## Hvilke ES6-funksjoner følger med io.js som standard (uten å bruke flagg)?

* Block scoping
* <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/let">let</a>
* <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/const">const</a>
* `function`-in-blocks

As of v8 3.31.74.1, block-scoped declarations are <a
href="https://groups.google.com/forum/#!topic/v8-users/3UXNCkAU8Es">intentionally
implemented with a non-compliant limitation to strict mode code</a>. Developers
should be aware that this will change as v8 continues towards ES6 specification
compliance.
Fra og med v8 3.31.74.1, er block-scoped declarations <a
href="https://groups.google.com/forum/#!topic/v8-users/3UXNCkAU8Es">forsettlig
implementert med en ikke-kompatibel begrensning til strict modus kode.</a>
Utviklere bør være klar over at dette vil endres i takt med V8 sin implementasjon
av ES6-spesifikasjonen.

* Collections
* <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map">Map</a>
Expand All @@ -80,30 +81,30 @@ compliance.
* <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol">Symbols</a>
* <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/template_strings">Template strings</a>

You can view a more detailed list, including a comparison with other engines, on the <a href="https://kangax.github.io/compat-table/es6/">compat-table</a> project page.
Du kan se en mer detaljert liste med sammenligning opp mot andre motorer på
<a href="https://kangax.github.io/compat-table/es6/">compat-table</a> prosjektsiden.

## Which ES6 features are behind the --es_staging flag?
## Hvilke ES6-funksjoner ligger i --es_staging-flagget?

* <a href="https://github.com/lukehoban/es6features#classes">Classes</a> (strict mode only)
* <a href="https://github.com/lukehoban/es6features#enhanced-object-literals">Object literal extensions</a></li>
* <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol">`Symbol.toStringTag`</a> (user-definable results for `Object.prototype.toString`)

## I have my infrastructure set up to leverage the --harmony flag. Should I remove it?

The current behaviour of the `--harmony` flag on io.js is to enable **staged**
features only. After all, it is now a synonym of `--es_staging`. As mentioned
above, these are completed features that have not been considered stable yet. If
you want to play safe, especially on production environments, consider removing
this runtime flag until it ships by default on V8 and, consequently, on io.js.
If you keep this enabled, you should be prepared for further io.js upgrades to
break your code if V8 changes their semantics to more closely follow the
standard.

## How do I find which version of V8 ships with a particular version of io.js?

io.js provides a simple way to list all dependencies and respective versions
that ship with a specific binary through the `process` global object. In case of
the V8 engine, type the following in your terminal to retrieve its version:
## Jeg bruker --harmony-flagg i produksjon. Burde jeg fjerne det?

Den nåværende oppførselen til `--harmony`-flagget i io.js er å kun aktivere
**staged** funksjoner. Tross alt er nå dette synonymt med `--es_staging`.
Som nevnt overfor are dette fullførte funksjoner som enda ikke er ansett
som stabile enda. Hvis du ønsker å være på den sikre siden, kanskje spesielt
med tanke på produksjonsmiljøer, bør du vurdere å fjerne dette flagget inntil
det leveres som standard av V8 og io.js. Hvis du fortsetter å ha flagget aktivert
bør du være forberedt på at nyere io.js oppgraderinger kan ødelegge koden din
dersom V8 endrer semantikken sin til å være mer lik standarden.

## Hvordan finner jeg ut hvilken versjon av V8 en gitt io.js versjon har?
io.js har en enkel måte å liste alle avhengigheter/dependencies og versjoner
av en gitt binær med det globale objektet `process`. For å finne V8 versjonen
kan du skrive følgende i terminalen:

```
iojs -p process.versions.v8
Expand Down

0 comments on commit 7f0d1a6

Please sign in to comment.