Skip to content

Commit dbedf38

Browse files
authored
Translated operators article.md
1 parent 2cc3b71 commit dbedf38

File tree

1 file changed

+58
-58
lines changed

1 file changed

+58
-58
lines changed

1-js/02-first-steps/07-operators/article.md

Lines changed: 58 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ Prieš tęsiant, išsiaiškinkime įprastinę terminologiją.
2626
alert( y - x ); // 2, binarinis minusas atima vertes
2727
```
2828

29-
Formaliai aukščiau esančiame pavyzdyje mes turime du skirtingus operatorius, kurie dalinasi tuo pačiu simboliu: neigimo operatorių, t.y. unarinį operatorių, kuris pakeičia simbolį, ir atimties operatorių, t.y. binarinį operatorių, kuris atima vieną skaičių iš kito.
29+
Formaliai aukščiau esančiame pavyzdyje mes turime du skirtingus operatorius, kurie dalinasi tuo pačiu simboliu: neigimo operatoriumi, t.y. unariniu operatoriumi, kuris pakeičia simbolį, ir atimties operatoriumi, t.y. binarinu operatoriumi, kuris atima vieną skaičių iš kito.
3030

3131
## Eilutės sujungimas, binarinis +
3232

@@ -56,7 +56,7 @@ Tačiau pastebėkite, kad operacijos vyksta iš kairės į dešinę. Jeigu pirmi
5656

5757

5858
```js run
59-
alert(2 + 2 + '1' ); // "41" and not "221"
59+
alert(2 + 2 + '1' ); // "41" bet ne "221"
6060
```
6161

6262
Eilutės sujungimas ir konversija yra ypatinga binarinio pliuso savybė `+`. Kiti aritmetiniai operatoriai veikia tik su skaičiais ir visada konvertuoja savo operandus į skaičius.
@@ -125,15 +125,15 @@ Kodėl unariniai pliusai pritaikomi vertėms pirmiau nei binarinis? Kaip pamatys
125125

126126
## Operatorių pirmenybė
127127

128-
Jeigu išraiška turi daugiau operatorių nei vieną, jų vykdymo tvarką yra nustatoma pagal jų *pirmenybę*, arba kitaip sakant, iš ankto numatytąjį operatorių prioritetą.
128+
Jeigu išraiška turi daugiau operatorių nei vieną, jų vykdymo tvarka yra nustatoma pagal jų *pirmenybę*, arba kitaip sakant, iš ankto numatytąjį operatorių prioritetą.
129129

130130
Dar mokykloje sužinojome, kad daugyba tokioje išraiškoje `1 + 2 * 2` turėtų būti suskaičiuojama prieš sudėtį. Tai ir yra pirmenybė. Yra tariama, kad daugyba turi *aukštesnį prioritetą* negu sudėtis.
131131

132132
Skliausteliai perrašo bet kokią pirmenybę, tad jeigu mums netinka numatyta tvarka, mes galime juos panaudoti, kad tai pakeistume. Pavyzdžiui rašydami `(1 + 2) * 2`.
133133

134134
JavaScript turi daug operatorių. Kiekvienas operatorius turi atitinkamą pirmenybės numerį. Tas kas turi aukštenį numerį įvykdomas pirmiau. Jeigu prioritetas vienodas, įvykdymo eilė yra iš kairės į dešinę.
135135

136-
Štai ištrauka iš [pirmenybės lenteltės](https://developer.mozilla.org/en/JavaScript/Reference/operators/operator_precedence) (jums nereikia šito prisiminti, bet žinokite, kad unariniai operatoriai yra aukščiau už atitinkamus binarinius operatorius):
136+
Štai ištrauka iš [pirmenybės lentelės](https://developer.mozilla.org/en/JavaScript/Reference/operators/operator_precedence) (jums nereikia šito prisiminti, bet žinokite, kad unariniai operatoriai yra aukščiau už atitinkamus binarinius operatorius):
137137

138138
| Pirmenybė | Pavadinimas | Ženklas |
139139
|------------|------|------|
@@ -148,7 +148,7 @@ JavaScript turi daug operatorių. Kiekvienas operatorius turi atitinkamą pirmen
148148
| 3 | asignavimas | `=` |
149149
| ... | ... | ... |
150150

151-
Kaip matome, "unarinis pliusas" turi `16` pirmenybę, kuri yra didesnė nei "sudėties" `13` (binarinis pliusas). Dėl tos priežasties, išraiškoje `"+apples + +oranges"`, unariniai pliusai suveikia pirmiau už sudėtį.
151+
Kaip matome, "unarinis pliusas" turi pirmenybę `16`, kuri yra didesnė nei "sudėties" `13` (binarinis pliusas). Dėl tos priežasties, išraiškoje `"+apples + +oranges"`, unariniai pliusai suveikia pirmiau už sudėtį.
152152

153153
## Asignavimas
154154

@@ -179,7 +179,7 @@ alert( c ); // 4
179179
Sujungti į grandinę asignavimai įvertinami iš dešinės į kairę. Visų pirmą įvykdoma dešiniausiai esanti išraiška `2 + 2` ir priskiriama kintamiesiems esantiems dešinėje: `c`, `b` ir `a`. Galų gale visi kintamieji dalinasi viena verte.
180180

181181
````smart header="Užduoties operatorius `\"=\"` grąžina vertę"
182-
Operatorius visada grąžina vertę. Tai yra akivaizdu tokiems kaip sudėtis `+` arba daugyba `*`. Bet asignavimas taip pat seka šita taisykle.
182+
Operatorius visada grąžina vertę. Tai yra akivaizdu tokiems atvejams kaip sudėtis `+` arba daugyba `*`. Bet asignavimas taip pat seka šita taisykle.
183183

184184
Šaukimas `x = value` įrašo `value` į `x` *ir tada ją grąžina*.
185185

@@ -199,12 +199,12 @@ alert( c ); // 0
199199

200200
Pavyzdyje aukščiau, išraiškos `(a = b + 1)` rezultatas yra vertė, kuri buvo priskirta `a` (tai yra `3`). Vėliau ji naudojama tolesniuose vertinimuose.
201201

202-
Kodas yra juokingas, juk taip? Turėtume suprasti kaip jis veikia, nes kartais tokius dalykus randame JavaScript bibliotekose, bet patys tokių geriau nerašykite. Tokie triukai tikrai nepaverčia kodo aiškesniu ir įskaitomesniu.
202+
Koks juokingas kodas, juk taip? Turėtume suprasti kaip jis veikia, nes kartais tokius dalykus randame JavaScript bibliotekose, bet patys tokių geriau nerašykite. Tokie triukai tikrai nepaverčia kodo aiškesniu ir įskaitomesniu.
203203
````
204204

205205
## Liekana %
206206

207-
Liekanos operatorius `%`, nepaisant jo išvaizdos, jis nėra susijęs su procentais.
207+
Liekanos operatorius `%`, nepaisant jo išvaizdos, nėra susijęs su procentais.
208208

209209
Šios išraiškos `a % b` rezultatas yra liekana po sveikų skaičių dalybos `a``b`.
210210

@@ -235,7 +235,7 @@ Operatorius veikia ir su trupmenomis.
235235
Pavyzdžiui:
236236

237237
```js run
238-
alert( 4 ** (1/2) ); // 2 (laipsnis 1/2 yra taip pat kaip traukti iš šaknies, tai matematika)
238+
alert( 4 ** (1/2) ); // 2 (laipsnis 1/2 yra taip pat kaip traukti iš šaknies, tai paprasta matematika)
239239
alert( 8 ** (1/3) ); // 2 (laipsnis 1/3 taip pats kaip kubinė šaknis)
240240
```
241241

@@ -271,13 +271,13 @@ Operatoriai `++` ir `--` gali būti dedami tiek prieš, tiek ir po kintamojo.
271271
- Kai operatorius eina po kintamojo, jis yra "priedėlio formoje" (ang. "postfix form"): `counter++`.
272272
- "Priešdėlio forma" (ang. "prefix form") yra tada kai operatorius eina prieš kintamąjį: `++counter`.
273273
274-
Both of these statements do the same thing: increase `counter` by `1`.
274+
Abu šie teiginiai daro tą patį: padidina `counter` vienu `1`.
275275
276-
Is there any difference? Yes, but we can only see it if we use the returned value of `++/--`.
276+
Ar yra koks nors skirtumas? Taip, bet jį galime pamatyti tik naudodami grąžintą vertę iš `++/--`.
277277
278-
Let's clarify. As we know, all operators return a value. Increment/decrement is no exception. The prefix form returns the new value while the postfix form returns the old value (prior to increment/decrement).
278+
Pasiaiškinkime. Kaip žinoma, visi operatoriai grąžina vertę. Padidinimas/sumažinimas ne išimtis. Priešdėlio forma grąžina naują vertę kai tuo tarpu priedėlio forma grąžina senąją formą (prieš padidinimą/sumažinimą).
279279
280-
To see the difference, here's an example:
280+
Tam kad pamatytume skirtumą, pavyzdys:
281281
282282
```js run
283283
let counter = 1;
@@ -286,64 +286,64 @@ let a = ++counter; // (*)
286286
alert(a); // *!*2*/!*
287287
```
288288
289-
In the line `(*)`, the *prefix* form `++counter` increments `counter` and returns the new value, `2`. So, the `alert` shows `2`.
289+
Eilėje `(*)`, *priešdėlio* forma `++counter` padidina `counter` ir grąžina vertę `2`. Tad `alert` parodo `2`.
290290
291-
Now, let's use the postfix form:
291+
Dabar patikrinkime priedėlio formą:
292292
293293
```js run
294294
let counter = 1;
295-
let a = counter++; // (*) changed ++counter to counter++
295+
let a = counter++; // (*) pakeitėme ++counter į counter++
296296
297297
alert(a); // *!*1*/!*
298298
```
299299
300-
In the line `(*)`, the *postfix* form `counter++` also increments `counter` but returns the *old* value (prior to increment). So, the `alert` shows `1`.
300+
Eilutėje `(*)`, *priedėlio* forma `counter++` taip pat padidina `counter`, bet grąžina *senąją* vertę (dar prieš padidinimą. Tad `alert` parodo `1`.
301301
302-
To summarize:
302+
Apibendrintai:
303303
304-
- If the result of increment/decrement is not used, there is no difference in which form to use:
304+
- Jeigu padidinimo/sumažinimo rezultatas nėra naudojamas, nėra jokio skirtumo kokią formą naudoti:
305305
306306
```js run
307307
let counter = 0;
308308
counter++;
309309
++counter;
310-
alert( counter ); // 2, the lines above did the same
310+
alert( counter ); // 2, abi eilės viršuje padarė tą patį
311311
```
312-
- If we'd like to increase a value *and* immediately use the result of the operator, we need the prefix form:
312+
- Jeigu norime padidinti vertę *ir* iš karto panaudoti operatoriaus rezultatą, mums reikia priešdėlio formos:
313313
314314
```js run
315315
let counter = 0;
316316
alert( ++counter ); // 1
317317
```
318-
- If we'd like to increment a value but use its previous value, we need the postfix form:
318+
- Jeigu norime padidinti vertę, bet naudoti jos senąją formą, mums reikia priedėlio formos:
319319
320320
```js run
321321
let counter = 0;
322322
alert( counter++ ); // 0
323323
```
324324
325-
````smart header="Increment/decrement among other operators"
326-
The operators `++/--` can be used inside expressions as well. Their precedence is higher than most other arithmetical operations.
325+
````smart header="Padidinimas/sumažinimas tarp kitų operatorių"
326+
Operatoriai `++/--` gali būti naudojami su išraiškomis. Pirmumas yra aukštesnis už didelę dalį kitų aritmetinių veiksmų.
327327
328-
For instance:
328+
Pavyzdžiui:
329329
330330
```js run
331331
let counter = 1;
332332
alert( 2 * ++counter ); // 4
333333
```
334334
335-
Compare with:
335+
Palyginkite tai su:
336336
337337
```js run
338338
let counter = 1;
339-
alert( 2 * counter++ ); // 2, because counter++ returns the "old" value
339+
alert( 2 * counter++ ); // 2, nes counter++ grąžina *senąją* vertę
340340
```
341341
342-
Though technically okay, such notation usually makes code less readable. One line does multiple things -- not good.
342+
Nors techniškai viskas yra gerai, bet tokie žymėjimai dažniausiai padaro kodą sunkiau įskaitomu. Viena eilutė atlieka daug veiksmų -- negerai.
343343
344-
While reading code, a fast "vertical" eye-scan can easily miss something like `counter++` and it won't be obvious that the variable increased.
344+
Skaitant kodą, greitas "vertikalus" skanavimas akimis gali praleisti tokį užrašą kaip `counter++` ir nebus pilnai aišku, kad kintamasis padidėjo.
345345
346-
We advise a style of "one line -- one action":
346+
Mes patariame naudoti "viena eilutė -- vienas veiksmas" stilių:
347347
348348
```js run
349349
let counter = 1;
@@ -352,13 +352,13 @@ counter++;
352352
```
353353
````
354354
355-
## Bitwise operators
355+
## Bitų operatoriai
356356
357-
Bitwise operators treat arguments as 32-bit integer numbers and work on the level of their binary representation.
357+
Bitų (ang. bitwise) operatoriai su argumentais elgiasi kaip su 32-bit sveikaisiais skaičias ir dirba jų binarinio pateikimo lygyje.
358358
359-
These operators are not JavaScript-specific. They are supported in most programming languages.
359+
Tokie operatoriai nėra specifiniai vien JavaScript kalbai. Jie yra palaikomi didžiojoje dalyje programinių kalbų.
360360
361-
The list of operators:
361+
Operatorių sąrašas:
362362
363363
- AND ( `&` )
364364
- OR ( `|` )
@@ -368,77 +368,77 @@ The list of operators:
368368
- RIGHT SHIFT ( `>>` )
369369
- ZERO-FILL RIGHT SHIFT ( `>>>` )
370370
371-
These operators are used very rarely. To understand them, we need to delve into low-level number representation and it would not be optimal to do that right now, especially since we won't need them any time soon. If you're curious, you can read the [Bitwise Operators](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Operators/Bitwise_Operators) article on MDN. It would be more practical to do that when a real need arises.
371+
Šie operatoriai naudojami labai retai. Kad juos suprastume, mums reikia pasinerti į žemo-lygio skaičių taikimą ir tai daryti šiuo metu nebūtų optimalu, juolabiau, kad mums jų greitu laiku neprireiks. Jeigu jums įdomu, galite daugiau paskaityti apie [Bitwise Operators](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Operators/Bitwise_Operators) MDN straipsnyje. Daug praktiškiau tai padaryti kai iškils tikras poreikis.
372372
373-
## Modify-in-place
373+
## Keitimas vietoje (ang. Modify-in-place)
374374
375-
We often need to apply an operator to a variable and store the new result in that same variable.
375+
Mums dažnai tenka kintamajam pritaikyti operatorių ir tuo pačiu patalpinti naują rezultatą į tą patį kintamajį.
376376
377-
For example:
377+
Pavyzdžiui:
378378
379379
```js
380380
let n = 2;
381381
n = n + 5;
382382
n = n * 2;
383383
```
384384
385-
This notation can be shortened using the operators `+=` and `*=`:
385+
Šis užrašas gali būti sutrumpintas naudojant operatorius `+=` ir `*=`:
386386
387387
```js run
388388
let n = 2;
389-
n += 5; // now n = 7 (same as n = n + 5)
390-
n *= 2; // now n = 14 (same as n = n * 2)
389+
n += 5; // dabar n = 7 (tas pats kaip n = n + 5)
390+
n *= 2; // dabar n = 14 (tas pats kaip n = n * 2)
391391
392392
alert( n ); // 14
393393
```
394394
395-
Short "modify-and-assign" operators exist for all arithmetical and bitwise operators: `/=`, `-=`, etc.
395+
Trumpieji "keitimo-ir-priskyrimo" operatoriai egzistuoja visiems aritmetiniams ir bitų operatoriams: `/=`, `-=` ir t.t.
396396
397-
Such operators have the same precedence as a normal assignment, so they run after most other calculations:
397+
Tokie operatoriai turi tokį patį pirmumą kaip ir įprastiniai asignavimai, tad jie dažniausiai vykdomi po didžiosios dalies kitų skaičiavimų:
398398
399399
```js run
400400
let n = 2;
401401
402402
n *= 3 + 5;
403403
404-
alert( n ); // 16 (right part evaluated first, same as n *= 8)
404+
alert( n ); // 16 (pirma įvykdoma dešinė pusė, tas pats kaip būtų n *= 8)
405405
```
406406
407-
## Comma
407+
## Kablelis
408408
409-
The comma operator `,` is one of the rarest and most unusual operators. Sometimes, it's used to write shorter code, so we need to know it in order to understand what's going on.
409+
Kablelio operatorius `,` yra vienas iš rečiausių ir neįprasčiausių operatorių. Kartais jis naudojamas, kad sutrumpintume kodą, tad turime apie jį žinoti, kad suprastume kas vyksta.
410410
411-
The comma operator allows us to evaluate several expressions, dividing them with a comma `,`. Each of them is evaluated but only the result of the last one is returned.
411+
Kablelio operatorius leidžia įvertinti kelias išraiškas, atskirdamas jas kableliu `,`. Kiekviena jų įvykdoma, tačiau grąžinamas tik rezultatas iš paskutinės išraiškos.
412412
413-
For example:
413+
Pavyzdžiui:
414414
415415
```js run
416416
*!*
417417
let a = (1 + 2, 3 + 4);
418418
*/!*
419419
420-
alert( a ); // 7 (the result of 3 + 4)
420+
alert( a ); // 7 (3 + 4 rezultatas)
421421
```
422422
423-
Here, the first expression `1 + 2` is evaluated and its result is thrown away. Then, `3 + 4` is evaluated and returned as the result.
423+
šiuo atveju išraiška `1 + 2` yra įvertinama, bet jos rezultatas išmetamas. Tada įvertinama `3 + 4` ir grąžinamas jos rezultatas.
424424
425-
```smart header="Comma has a very low precedence"
426-
Please note that the comma operator has very low precedence, lower than `=`, so parentheses are important in the example above.
425+
```smart header="Kablelis turi labai žemą prioritetą"
426+
Atkreipkite dėmesį, kad kablelio operatorius turi labai žemą prioritetą, žemesnį nei `=`, dėl to skliausteliai yra labai svarbūs kaip pavyzdyje aukščiau.
427427
428-
Without them: `a = 1 + 2, 3 + 4` evaluates `+` first, summing the numbers into `a = 3, 7`, then the assignment operator `=` assigns `a = 3`, and the rest is ignored. It's like `(a = 1 + 2), 3 + 4`.
428+
Be jų: `a = 1 + 2, 3 + 4` pirma įvertina `+` susumuodamas visus skaičius į `a = 3, 7`, o tada užduoties operatorius `=` priskiria `a = 3`, o visa kita yra ignoruojama. Panašiai lyg tai būtų `(a = 1 + 2), 3 + 4`.
429429
```
430430
431-
Why do we need an operator that throws away everything except the last expression?
431+
Kam mums reikalingas operatorius, kuris išmeta viską išskyrus paskutinę išraišką?
432432
433-
Sometimes, people use it in more complex constructs to put several actions in one line.
433+
Kartais žmonės jį naudoja sudėtingesniuose konstruktuose, kad sudėtų kelis veiksmus į vieną eilę.
434434
435-
For example:
435+
Pavyzdžiui:
436436
437437
```js
438-
// three operations in one line
438+
// trys operacijos vienoje eilutėje
439439
for (*!*a = 1, b = 3, c = a * b*/!*; a < 10; a++) {
440440
...
441441
}
442442
```
443443
444-
Such tricks are used in many JavaScript frameworks. That's why we're mentioning them. But usually they don't improve code readability so we should think well before using them.
444+
Tokie triukai dažnai naudojami JavaScript struktūrose (ang. frameworks). Dėl to juos ir paminėjome. Bet dažniausiai jie nepalengvina kodo skaitymo tad turėtume gerai pagalvoti prieš juos naudodami.

0 commit comments

Comments
 (0)