|
1 |
| -# The modern mode, "use strict" |
| 1 | +# Den 'moderne' metode, "use strict" |
2 | 2 |
|
3 |
| -For a long time, JavaScript evolved without compatibility issues. New features were added to the language while old functionality didn't change. |
| 3 | +I lang tid udviklede JavaScript sig uden problemer med kompatibilitet. Nye muligheder blev tilføjet til sproget, men den gamle funktionalitet blev ikke ændret. |
4 | 4 |
|
5 |
| -That had the benefit of never breaking existing code. But the downside was that any mistake or an imperfect decision made by JavaScript's creators got stuck in the language forever. |
| 5 | +Det havde den fordel at gammel kode aldrig fejlede. Man det havde den ulempe at uperfekte beslutninger lavet af skaberne af JavaScript blevet fanget i sproget for evigt. |
6 | 6 |
|
7 |
| -This was the case until 2009 when ECMAScript 5 (ES5) appeared. It added new features to the language and modified some of the existing ones. To keep the old code working, most such modifications are off by default. You need to explicitly enable them with a special directive: `"use strict"`. |
| 7 | +Sådan var det indtil 2009, hvor ECMAScript 5 (ES5) kom frem. Det tilføjede en række nye muligheder til sproget og ændrede nogle af de eksisterende. FOr at holde den gamle kode kørende var de fleste ændringer slået fra som standard. Du skulle aktivt slå dem til med et specielt direktiv kaldet `"use strict"`. |
8 | 8 |
|
9 | 9 | ## "use strict"
|
10 | 10 |
|
11 |
| -The directive looks like a string: `"use strict"` or `'use strict'`. When it is located at the top of a script, the whole script works the "modern" way. |
| 11 | +Direktivet ligner en simpel tekststreng: `"use strict"` eller `'use strict'`. Når den står skrevet øverst i dit script vil hele scriptet virke på "den nye måde". |
12 | 12 |
|
13 |
| -For example: |
| 13 | +For eksempel |
14 | 14 |
|
15 | 15 | ```js
|
16 | 16 | "use strict";
|
17 | 17 |
|
18 |
| -// this code works the modern way |
| 18 | +// Denne kode bruger de nye funktioner i JavaScript |
19 | 19 | ...
|
20 | 20 | ```
|
21 | 21 |
|
22 |
| -Quite soon we're going to learn functions (a way to group commands), so let's note in advance that `"use strict"` can be put at the beginning of a function. Doing that enables strict mode in that function only. But usually people use it for the whole script. |
| 22 | +Du vil snart lære om funktioner, som er en måde at gruppere kommandoer. |
23 | 23 |
|
24 |
| -````warn header="Ensure that \"use strict\" is at the top" |
25 |
| -Please make sure that `"use strict"` is at the top of your scripts, otherwise strict mode may not be enabled. |
| 24 | +I denne sammenhæng skal det dog nævnes at `"use strict"` kan skrives i starten af en funktion (de fleste funktioner, i hvert fald) i stedet for øverst i scriptet. Hvis du gør det, vil strict mode kun være aktiv inde i funktionen. Men, det mest normale er at sætte det for hele ens script. |
26 | 25 |
|
27 |
| -Strict mode isn't enabled here: |
| 26 | + |
| 27 | +````warn header="Sørg for at \"use strict\" er placeret i toppen" |
| 28 | +Du skal sikre dig at `"use strict"` er allerøverst i dit dokument, ellers vil de dele af din kode der er over ikke forholde sig til det. |
| 29 | +
|
| 30 | +strict mode er ikke aktiv her: |
28 | 31 |
|
29 | 32 | ```js no-strict
|
30 |
| -alert("some code"); |
31 |
| -// "use strict" below is ignored--it must be at the top |
| 33 | +alert("noget kode"); |
| 34 | +// "use strict" under bliver ignoreret. Det skal stå øverst. |
32 | 35 |
|
33 | 36 | "use strict";
|
34 | 37 |
|
35 |
| -// strict mode is not activated |
| 38 | +// strict mode bliver ikke aktiveret |
36 | 39 | ```
|
37 | 40 |
|
38 |
| -Only comments may appear above `"use strict"`. |
| 41 | +Kun kommentarer må stå over `"use strict"`. |
39 | 42 | ````
|
40 | 43 |
|
41 |
| -```warn header="There's no way to cancel `use strict`" |
42 |
| -There is no directive like `"no use strict"` that reverts the engine to old behavior. |
43 |
| - |
44 |
| -Once we enter strict mode, there's no going back. |
45 |
| -``` |
46 |
| -
|
47 |
| -## Browser console |
| 44 | +```warn header="Der er ingen måde at fortryde `use strict`" |
| 45 | +Der findes ikke et direktiv i stil med`"no use strict"`, der vil vende tilbage til den gamle måde. |
48 | 46 |
|
49 |
| -When you use a [developer console](info:devtools) to run code, please note that it doesn't `use strict` by default. |
50 |
| -
|
51 |
| -Sometimes, when `use strict` makes a difference, you'll get incorrect results. |
52 |
| -
|
53 |
| -So, how to actually `use strict` in the console? |
54 |
| -
|
55 |
| -First, you can try to press `key:Shift+Enter` to input multiple lines, and put `use strict` on top, like this: |
56 |
| -
|
57 |
| -```js |
58 |
| -'use strict'; <Shift+Enter for a newline> |
59 |
| -// ...your code |
60 |
| -<Enter to run> |
| 47 | +Så snart du har aktiveret strict mode, er der ingen vej tilbage. |
61 | 48 | ```
|
62 | 49 |
|
63 |
| -It works in most browsers, namely Firefox and Chrome. |
64 |
| - |
65 |
| -If it doesn't, e.g. in an old browser, there's an ugly, but reliable way to ensure `use strict`. Put it inside this kind of wrapper: |
66 |
| - |
67 |
| -```js |
68 |
| -(function() { |
69 |
| - 'use strict'; |
70 |
| - |
71 |
| - // ...your code here... |
72 |
| -})() |
73 |
| -``` |
74 |
| - |
75 |
| -## Should we "use strict"? |
76 |
| - |
77 |
| -The question may sound obvious, but it's not so. |
78 |
| - |
79 |
| -One could recommend to start scripts with `"use strict"`... But you know what's cool? |
80 |
| - |
81 |
| -Modern JavaScript supports "classes" and "modules" - advanced language structures (we'll surely get to them), that enable `use strict` automatically. So we don't need to add the `"use strict"` directive, if we use them. |
| 50 | +## Brug altid "use strict" |
82 | 51 |
|
83 |
| -**So, for now `"use strict";` is a welcome guest at the top of your scripts. Later, when your code is all in classes and modules, you may omit it.** |
| 52 | +Forskellene mellem `"use strict"` og "standard" tilstand manger vi stadig at gennemgå. |
84 | 53 |
|
85 |
| -As of now, we've got to know about `use strict` in general. |
| 54 | +I de næste kapitler, efterhånden som vi lærer flere af sprogets muligheder, vil du blive bekendt med forskelle i strict mode. Heldigvis er der ikke så mange og de gør faktisk livet som udvikler bedre. |
86 | 55 |
|
87 |
| -In the next chapters, as we learn language features, we'll see the differences between the strict and old modes. Luckily, there aren't many and they actually make our lives better. |
| 56 | +For nu er det nok, at du kender til det mere generelle: |
88 | 57 |
|
89 |
| -All examples in this tutorial assume strict mode unless (very rarely) specified otherwise. |
| 58 | +1. `"use strict"` er et direktiv der skrifter JavaScrip-motoren til "modern" tilstand og ændrer måden den går til indbyggede muligheder. Det vil vil lære mere om, efterhånden som vi støder på dem. |
| 59 | +2. strict mode aktiveres ved at skrive `"use strict"` i toppen. Der er flere muligeheder i sproget (som klasser og moduler) der aktiverer stricvt mode automatisk. |
| 60 | +3. strict mode understøttes af alle moderne browsere. |
| 61 | +4. Det anbefales altid at starte et script med `"use strict"`. Alle eksempler i denne tutorial regner med at det er gjort. I sjældne tilfælde vil du blive bedt om andet. |
0 commit comments