|
1 |
| -# The modern mode, "use strict" |
| 1 | +# A modern mód, "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 | +Egy hosszú ideig a JavaScript kompatibilitási hibák nélkül fejlődött. Új dolgok funkciók folyamatosan jöttek be, a régiek viszont sosem változtak. |
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 | +Ennek nagy előnye volt, hogy a kódot bármikor is írták mindig helytálló maradt, ám viszont azzal hogy a régi dolgok sosem változtak azzal az a nagy baj, hogy bármilyen imperfekciót is ejtettek a JavaScript készítői, az örökre a nyelvben ragadt. |
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 | +Ez volt a helyzet, míg 2009-ben meg nem jelent az ECMAScript 5 (ES5). Az ES5 sok új funkciót hozott a JS-be és sok régit is megváltoztatott. Ahoz hogy a régi kód továbbá is működőképes maradhasson, ezeknek a változtatásoknak nagy részét alapból kikapcsolták. Ezeket a funciókat egy különleges diretívával kapcsolhattad be, a `"use strict"`-el. |
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 | +Ez a direktíva pontosan úgy néz ki mint egy átlagos szöveg: `"use strict"`, vagy `'use strict'`. Mikor ezt a direktívát a szkript tetejére hejezed, akkor az a szkriptet arra utasítja, hogy a "modern módon" működjön. |
12 | 12 |
|
13 |
| -For example: |
| 13 | +Példa: |
14 | 14 |
|
15 | 15 | ```js
|
16 | 16 | "use strict";
|
17 | 17 |
|
18 |
| -// this code works the modern way |
| 18 | +// ez a kód a modern úton fog működni |
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 | +Nemsokára külön tanulni fogunk a függvényekről (egy mód parancsok csoportosítására), de előre lefektethetjük, hogy a `"use strict"`-et tudjuk használni függvények elején. Ezzel azt érhetjük el, hogy csak azon a függvényen belül fusson modern módon a kód. De általában az egész szkriptre szokták használni a `"use strict"`-et. |
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 | +````warn header="Győződj meg róla, hogy a \"use strict\" mindig a szkript tetején van!" |
| 25 | +Fontos, hogy a `"use strict"` **mindig** a szkript elején legyen, különben a modern mód nem lesz bekapcsolva. |
26 | 26 |
|
27 |
| -Strict mode isn't enabled here: |
| 27 | +Ebben a példában a `"use strict" hibás elhelyezkedése miatt a modern mód nem lesz bekapcsolva`: |
28 | 28 |
|
29 | 29 | ```js no-strict
|
30 | 30 | alert("some code");
|
31 |
| -// "use strict" below is ignored--it must be at the top |
| 31 | +// a "use strict"-et ignorálja a kód, hacsak nem a szkript, vagy egy függvény legelején van. |
32 | 32 |
|
33 | 33 | "use strict";
|
34 | 34 |
|
35 |
| -// strict mode is not activated |
| 35 | +// a strict mode ki van kapcsolva |
36 | 36 | ```
|
37 | 37 |
|
38 |
| -Only comments may appear above `"use strict"`. |
| 38 | +A `"use strict"` felé csak kommenteket szabad tenni. |
39 | 39 | ````
|
40 | 40 |
|
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. |
| 41 | +```warn header="A `use strict`-et nem lehet utólag kikapcsolni" |
| 42 | +Nincsen olyasmi direktíva, mint például egy `"no use strict"`, ami visszaállítani a motort a régi viselkedési módra. |
43 | 43 |
|
44 |
| -Once we enter strict mode, there's no going back. |
| 44 | +Ha egyszer bekapcsoltad a strict modeot, nincs visszaút. |
45 | 45 | ```
|
46 | 46 |
|
47 |
| -## Browser console |
| 47 | +## Használat a böngészők konzoljain belül |
48 | 48 |
|
49 |
| -When you use a [developer console](info:devtools) to run code, please note that it doesn't `use strict` by default. |
| 49 | +Ha a [fejlesztői consolet](info:devtools) használod kód futtatására, akkor fontos, hogy az alapból nem használ `strict mode`-ot. |
50 | 50 |
|
51 |
| -Sometimes, when `use strict` makes a difference, you'll get incorrect results. |
| 51 | +Bizonyos alkalmakkor, amikor a `use strict` különbséget tesz, akkor nem kívánt eredményeket kaphatsz. |
52 | 52 |
|
53 |
| -So, how to actually `use strict` in the console? |
| 53 | +De, akkor hogyan is használjuk helyesen a `use strict`-et a consoleban? |
54 | 54 |
|
55 |
| -First, you can try to press `key:Shift+Enter` to input multiple lines, and put `use strict` on top, like this: |
| 55 | +Először is, megpróbálhatod a `Shift+Enter` gombok lenyomásával több sorba írni a kódot, majd az egész legetetejére odatenni a `use strict`-et. Az utóbbi valahogy így fog kinézni: |
56 | 56 |
|
57 | 57 | ```js
|
58 |
| -'use strict'; <Shift+Enter for a newline> |
59 |
| -// ...your code |
60 |
| -<Enter to run> |
| 58 | +'use strict'; <Shift+Enter, hogy új sort kezdj> |
| 59 | +// ...a kódod |
| 60 | +<Nyomd meg az entert a futtatáshoz> |
61 | 61 | ```
|
62 | 62 |
|
63 |
| -It works in most browsers, namely Firefox and Chrome. |
| 63 | +Ez a legtöbb böngészőben (mint például a Chrome vagy a Firefox) működik. |
64 | 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: |
| 65 | +Ha esetleg mégse (például egy régi böngészőben), akkor van egy csúnya, de megbízható megoldsé a `use strict` használatára. Egy ilyesmi kód blokkra lesz szükségünk: |
66 | 66 |
|
67 | 67 | ```js
|
68 | 68 | (function() {
|
69 | 69 | 'use strict';
|
70 | 70 |
|
71 |
| - // ...your code here... |
| 71 | + // ...a kód hátralévő része... |
72 | 72 | })()
|
73 | 73 | ```
|
74 | 74 |
|
75 |
| -## Should we "use strict"? |
| 75 | +## Használjuk-e a "use strict"-et? |
76 | 76 |
|
77 |
| -The question may sound obvious, but it's not so. |
| 77 | +Ez a kérdés, míg először eléggé egyértelműnek hangzik, a valóságban nem az. |
78 | 78 |
|
79 |
| -One could recommend to start scripts with `"use strict"`... But you know what's cool? |
| 79 | +Ugye, azt egyesek azt ajánlanák, hogy használd előszeretettel a `"use strict"`-et ...De tudod mi itt a menő dolog? |
80 | 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. |
| 81 | +A modern JavaScript támogat olyanokat mint például a "class"-ek és a "module"-ok (majd azokat is tanulni fogjuk), amik automatikusan engedélyezik a `"use strict"`-et. Tehát ha ilyenekn vannak a kódunkban, a `"use strict"`-et nyugodtan nélkülözhetjük. |
82 | 82 |
|
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.** |
| 83 | +**Tehát egyelőre a `"use strict";` az csak egy kis extra a szkriptjeink elején. Később, amikor a kódunk tele lesz modulokkal és classokkal, már nyugodtan kihagyhatjuk a `"use strict"`-et.** |
84 | 84 |
|
85 |
| -As of now, we've got to know about `use strict` in general. |
| 85 | +Jelenleg, az alapok miatt jó tudni a `use strict` létezéséről. |
86 | 86 |
|
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. |
| 87 | +A következő fejezetekben tanulunk majd egy kicsit a nyelvi funckiókról és az új és régi módok közti különbségekről. Szerencsénkre az utóbbiakból nincsen sok, és azok amik vannak azok is csak a mi dolgunkat fogják könnyíteni. |
88 | 88 |
|
89 |
| -All examples in this tutorial assume strict mode unless (very rarely) specified otherwise. |
| 89 | +Az ebben a fejezetben lévő példák mind elvárják a "strict" mode használatát, hacsak ennek az állításnak hamisságát nem fejeztük ki előre. |
0 commit comments