You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Egy hosszú ideig a JavaScript kompatibilitási hibák nélkül fejlődött. Új funkciók gyakran jelentek meg, ám a régiek viszont sosem változtak.
3
+
A JavaScript hosszú ideig kompatibilitási nehézségek nélkül fejlődött. A nyelv új elemekkel bővült, a meglévőek pedig változatlanok voltak.
4
4
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.
5
+
A nyelv újabb verziói így kompatibilisek maradtak a korábban írt programokkal, cserébe viszont együtt kellett élni a nyelv tervezésekor hozott rossz döntésekkel.
6
6
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 kapcsolhatjuk be, a `"use strict"`-el.
7
+
Ez volt a tényállás, mígnem 2009-ben megjelent az ECMAScript 5 (ES5), amely nem csak bővítette a nyelvet, hanem néhol meg is változtatta a működését. Annak érdekében, hogy ezek a változások ne okozzanak gondot a régebben írt programokban, e változtatások alapértelmezetten ki vannak kapcsolva, az engedélyezésükhöz pedig egy speciális "use strict" diektívát kell elhelyezni a kódban.
8
8
9
9
## "use strict"
10
10
11
-
Ez a direktíva pontosan úgy néz ki mint egy átlagos szöveg (string) objektum: `"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.
11
+
Ez a direktíva ránézésre egy átlagos szöveg (string): "use strict", vagy 'use strict'. A szkript tetejére helyezve azonban arra utasítja a JS motort, hogy a szkriptet modern üzemmódban futtassa.
12
12
13
13
Példa:
14
14
15
15
```js
16
16
"use strict";
17
17
18
-
//ez a kód a modern úton fog működni
18
+
// a kód modern üzemmódban fog működni
19
19
...
20
20
```
21
21
22
-
Nemsokára külön tanulni fogunk a függvényekről (egy mód JS 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.
22
+
Hamarosan szó lesz a függvényekről (JS parancsok csoportosításának egy módja). Elöljáróban elég annyit megjegyeznünk, hogy a "use strict" egy függvény elején elhelyezve csak az adott függvényen belül engedélyezi a modern üzemmódot. Általában azonban az egész szkriptre szokták használni a "use strict"-et.
23
23
24
24
````warn header="Győződj meg róla, hogy a \"use strict\" mindig a szkript tetején van!"
25
25
Fontos, hogy a `"use strict"` **mindig** a szkript elején legyen, különben a modern mód nem lesz bekapcsolva.
@@ -28,62 +28,61 @@ Ebben a példában a `"use strict" hibás elhelyezkedése miatt a modern mód ne
28
28
29
29
```js no-strict
30
30
alert("valami");
31
-
// a "use strict"-et ignorálja a kód, hacsak nem a szkript, vagy egy függvény legelején van.
32
-
31
+
// az alábbi "use strict" érvénytelen -- a szkript legtetején kell elhelyezni
33
32
"use strict";
34
33
35
-
// a strict mode ki van kapcsolva
34
+
// a strict üzemmód nincs engedélyezve
36
35
```
37
36
38
37
A `"use strict"` felé csak kommenteket szabad tenni.
39
38
````
40
39
41
40
```warn header="A `use strict`-et nem lehet utólag kikapcsolni"
42
-
Nincsen olyan direktíva, mint például egy `"no use strict"`, ami visszaállítaná a motort a régi viselkedési módra.
41
+
Nincsen olyan direktíva, mint például egy "no use strict", ami visszaállítaná a motort az alapértelmezett üzemmódra.
43
42
44
-
Ha egyszer bekapcsoltad a strict modeot, nincs visszaút.
43
+
Ha egyszer bekapcsoltuk a strict üzemmódot, nincs visszaút.
45
44
```
46
45
47
-
## Használat a böngészők consolejain belül
46
+
## Használat a böngésző konzolban
48
47
49
-
Ha a [fejlesztői consolet](info:devtools) használod a kódod futtatására, akkor fontos, hogy az utóbbi alapból nem használ `strict mode`-ot.
48
+
Ha a [fejlesztői konzolt](info:devtools) használod kód futtatására, fontos tudni, hogy alapértelmezetten nem strict üzemmódot használ.
50
49
51
-
Bizonyos alkalmakkor, amikor a `use strict` különbséget tesz, akkor nem kívánt eredményeket kaphatsz.
50
+
Bizonyos esetekben a "use strict" használatával nem várt eredményeket kaphatunk.
52
51
53
-
De akkor hogyan is használjuk helyesen a `use strict`-et a consoleban?
52
+
De egyáltalán hogyan használjuk a use strict-et a konzolban?
54
53
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:
54
+
Először próbáljuk meg a Shift+Enter gombok lenyomásával több sorba írni a kódot, majd a legelejére odatenni a use strict-et. Valahogy így:
56
55
57
56
```js
58
-
'use strict'; <Shift+Enter, hogy új sort kezdj>
57
+
'use strict'; <Shift+Enter, hogy új sort kezdjünk>
59
58
// ...a kódod
60
-
<Nyomd meg az entert a futtatáshoz>
59
+
<Nyomjunk entert a futtatáshoz>
61
60
```
62
61
63
62
Ez a legtöbb böngészőben (mint például a Chrome vagy a Firefox) működik.
64
63
65
-
Ha esetleg mégse (például egy régi böngészőben), akkor van egy csúnya, de megbízható megoldás a `use strict` használatára. Egy ilyesmi kód blokkra lesz szükségünk:
64
+
Ha ez nem működne (például régi böngészőben), akkor egy megbízható megoldás az alábbi konstrukció használata:
66
65
67
66
```js
68
67
(function() {
69
68
'use strict';
70
69
71
-
// ...a kód hátralévő része...
70
+
// ...a futtatandó kódunk...
72
71
})()
73
72
```
74
73
75
74
## Használjuk-e a "use strict"-et?
76
75
77
-
Ez a kérdés, míg először eléggé egyértelműnek hangzik, a valóságban nem az.
76
+
Habár a kérdésegyértelműnek hangzik, nem az.
78
77
79
-
Ugye, egyesek azt ajánlanák, hogy használd előszeretettel a `"use strict"`-et ...De tudod mi itt a menő dolog?
78
+
Okkal gondolhatnánk, hogy mindig érdemes használni a "use strict"-et, de erre nincs szükség.
80
79
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 ilyenek vannak a kódunkban, a `"use strict"`-et nyugodtan nélkülözhetjük.
80
+
A modern JavaScript egyes nyelvi elemei, mint az osztály (class) és a modul (module) - ezeket később részletezzük - alapértelmezetten strict üzemmódban futnak, így ezeknek a nyelvi elemeknek a használatakor a "use strict" elhagyható.
82
81
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.**
82
+
**Egyelőre jó, ha használjuk a "use strict"-et, de később, amikor a kódunk modulokból és osztályokból áll, elhagyhatjuk.**
84
83
85
84
Jelenleg, az alapok miatt jó tudni a `use strict` létezéséről.
86
85
87
86
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
87
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.
88
+
Az ebben a fejezetben lévő példák, ha nincs másként feltüntetve, strict üzemmódot feltételeznek.
0 commit comments