Skip to content

Commit 8f1fc27

Browse files
authored
Update article.md
1 parent 9806e38 commit 8f1fc27

File tree

1 file changed

+38
-38
lines changed

1 file changed

+38
-38
lines changed

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

Lines changed: 38 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -277,9 +277,9 @@ a = c;
277277

278278
Айрыкча кодду тез карап жатканда, муну окууга оңоюраак.
279279

280-
## Modify-in-place
280+
## "Өзгөртүү жана ыйгаруу" оператору
281281

282-
We often need to apply an operator to a variable and store the new result in that same variable.
282+
Биз көп учурда өзгөрмөгө операторду колдонушубуз керек жана жаңы натыйжаны ошол эле өзгөрмөдө сакташыбыз керек.
283283

284284
Мисалы:
285285

@@ -289,24 +289,24 @@ n = n + 5;
289289
n = n * 2;
290290
```
291291

292-
This notation can be shortened using the operators `+=` and `*=`:
292+
Бул жазууну `+=` жана `*=` операторлорунун жардамы менен кыскартууга болот:
293293

294294
```js run
295295
let n = 2;
296-
n += 5; // now n = 7 (same as n = n + 5)
297-
n *= 2; // now n = 14 (same as n = n * 2)
296+
n += 5; // эми n = 7 (n = n + 5 менен бирдей)
297+
n *= 2; // эми n = 14 (n = n * 2 менен бирдей)
298298
299299
alert( n ); // 14
300300
```
301301

302-
Short "modify-and-assign" operators exist for all arithmetical and bitwise operators: `/=`, `-=`, etc.
302+
Кыска "өзгөртүү жана ыйгаруу" операторлору бардык арифметикалык жана биттик операторлор үчүн бар: `/=`, `-=` ж.б.
303303

304-
Such operators have the same precedence as a normal assignment, so they run after most other calculations:
304+
Мындай операторлор кадимки ыйгаруу сыяктуу эле алгачкылыкка ээ, андыктан алар башка көптөгөн эсептөөлөрдөн кийин аткарылат:
305305

306306
```js run
307307
let n = 2;
308308
309-
n *= 3 + 5; // right part evaluated first, same as n *= 8
309+
n *= 3 + 5; // алгач оң бөлүгү эсептелинет, n *= 8 менен бирдей
310310
311311
alert( n ); // 16
312312
```
@@ -315,7 +315,7 @@ alert( n ); // 16
315315

316316
<!-- Can't use -- in title, because the built-in parser turns it into a 'long dash' – -->
317317
318-
Increasing or decreasing a number by one is among the most common numerical operations.
318+
Санды бирге көбөйтүү же азайтуу эң кеңири таралган сандык операциялардын бири болуп саналат.
319319
320320
Ал үчүн атайын операторлор бар:
321321
@@ -335,21 +335,21 @@ Increasing or decreasing a number by one is among the most common numerical oper
335335
```
336336
337337
```warn
338-
Increment/decrement can only be applied to variables. Trying to use it on a value like `5++` will give an error.
338+
Инкремент/декремент өзгөрмөлөргө гана колдонулушу мүмкүн. Аны `5++` сыяктуу мааниде колдонууга аракет кылуу катага алып келет.
339339
```
340340
341-
The operators `++` and `--` can be placed either before or after a variable.
341+
`++` жана `--` операторлору өзгөрмөнүн алдында же өзгөрмөдөн кийин жайгаштырылышы мүмкүн.
342342
343-
- When the operator goes after the variable, it is in "postfix form": `counter++`.
344-
- The "prefix form" is when the operator goes before the variable: `++counter`.
343+
- Оператор өзгөрмөдөн кийин келгенде, ал "постфикс формасында" болот: `counter++`.
344+
- "Префикс формасы" оператор өзгөрмөнүн алдына келгенде болот: `++counter`.
345345
346-
Both of these statements do the same thing: increase `counter` by `1`.
346+
Бул эки нускама тең бирдей нерсени аткарат: `counter` өзгөрмөсүн `1`ге көбөйтөт.
347347
348-
Is there any difference? Yes, but we can only see it if we use the returned value of `++/--`.
348+
Айырмасы барбы? Ооба, бирок биз аны `++/--` кайтарган маанисин колдонсок гана көрө алабыз.
349349
350-
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).
350+
Келгиле, тактап алалы. Белгилүү болгондой, бардык операторлор маанини кайтарышат. Инкремент/декремент да бөтөнчө эмес. Префикс формасы жаңы маанини кайтарат, ал эми постфикс формасы эски маанини кайтарат (санды көбөйтүүгө/азайтууга чейин).
351351
352-
Айырмачылыгын көрүү үчүн, мына мисал:
352+
Айырмасын көрүү үчүн, мисал келтирели:
353353
354354
```js run
355355
let counter = 1;
@@ -358,7 +358,7 @@ let a = ++counter; // (*)
358358
alert(a); // *!*2*/!*
359359
```
360360
361-
In the line `(*)`, the *prefix* form `++counter` increments `counter` and returns the new value, `2`. So, the `alert` shows `2`.
361+
`(*)` сабында *префикс* формасы `++counter` `counter`'ди көбөйтөт жана жаңы `2` маанисин кайтарат. Ошентип, `alert` `2`ни көрсөтөт.
362362

363363
Эми постфикс формасын колдонолу:
364364

@@ -369,53 +369,53 @@ let a = counter++; // (*) ++counter counter++'ка алмашты
369369
alert(a); // *!*1*/!*
370370
```
371371

372-
In the line `(*)`, the *postfix* form `counter++` also increments `counter` but returns the *old* value (prior to increment). So, the `alert` shows `1`.
372+
`(*)` сабында *постфикс* формасы `counter++` да `counter`'ди көбөйтөт, бирок *эски* (көбөйтүүгө чейинки) маанисин кайтарат. Ошентип, `alert` `1`ди көрсөтөт.
373373
374374
Жыйынтыктайлы:
375375
376-
- If the result of increment/decrement is not used, there is no difference in which form to use:
376+
- Эгерде көбөйтүүнүн/азайтуунун натыйжасы колдонулбаса, анда кайсы форманы колдонуунун айырмасы жок:
377377
378378
```js run
379379
let counter = 0;
380380
counter++;
381381
++counter;
382-
alert( counter ); // 2, the lines above did the same
382+
alert( counter ); // 2, жогорудагы саптар бирдей нерсени кылышты
383383
```
384-
- If we'd like to increase a value *and* immediately use the result of the operator, we need the prefix form:
384+
- Эгерде биз маанини көбөйтүүнү *жана* оператордун натыйжасын колдонууну кааласак, бизге префикс формасы керек:
385385
386386
```js run
387387
let counter = 0;
388388
alert( ++counter ); // 1
389389
```
390-
- If we'd like to increment a value but use its previous value, we need the postfix form:
390+
- Эгерде биз маанини көбөйтүүнү, бирок анын мурунку маанисин колдонууну кааласак, бизге постфикс формасы керек:
391391
392392
```js run
393393
let counter = 0;
394394
alert( counter++ ); // 0
395395
```
396396
397-
````smart header="Increment/decrement among other operators"
398-
The operators `++/--` can be used inside expressions as well. Their precedence is higher than most other arithmetical operations.
397+
````smart header="Башка операторлордун арасындагы инкремент/декремент"
398+
`++/--` операторлору туюнтмалардын ичинде да колдонулушу мүмкүн. Алардын алгачкылыгы башка арифметикалык операциялардын көбүнө караганда жогору.
399399
400-
For instance:
400+
Мисалы үчүн:
401401
402402
```js run
403403
let counter = 1;
404404
alert( 2 * ++counter ); // 4
405405
```
406406
407-
Compare with:
407+
Төмөндөгү менен салыштырыңыз:
408408
409409
```js run
410410
let counter = 1;
411-
alert( 2 * counter++ ); // 2, because counter++ returns the "old" value
411+
alert( 2 * counter++ ); // 2, себеби counter++ "эски" маанисин кайтарат
412412
```
413413
414-
Though technically okay, such notation usually makes code less readable. One line does multiple things -- not good.
414+
Техникалык жактан түзүк болгону менен, мындай жазуу адатта коддун окулушун начарлатат. Бир сап көп нерсени аткарса -- бул жакшы эмес.
415415
416-
While reading code, a fast "vertical" eye-scan can easily miss something like `counter++` and it won't be obvious that the variable increased.
416+
Кодду окуп жатканда, тез "вертикалдуу" сканерлөө `counter++` сыяктуу нерселерди оңой эле өткөрүп жибериши мүмкүн жана өзгөрмө жогорулатылганы анык болбойт.
417417
418-
We advise a style of "one line -- one action":
418+
Биз "бир сап -- бир аракет" стилин сунуштайбыз:
419419
420420
```js run
421421
let counter = 1;
@@ -434,19 +434,19 @@ counter++;
434434
435435
- AND(жана) ( `&` )
436436
- OR(же) ( `|` )
437-
- XOR(биттик бөтөнчөлүү же) ( `^` )
437+
- XOR(биттик бөтөнчөлөгөн же) ( `^` )
438438
- NOT(эмес) ( `~` )
439439
- LEFT SHIFT(солго жылдыруу) ( `<<` )
440440
- RIGHT SHIFT(оңго жылдыруу) ( `>>` )
441441
- ZERO-FILL RIGHT SHIFT(нөлдөр менен толтуруу менен оңго жылдыруу) ( `>>>` )
442442
443-
These operators are used very rarely, when we need to fiddle with numbers on the very lowest (bitwise) level. We won't need these operators any time soon, as web development has little use of them, but in some special areas, such as cryptography, they are useful. You can read the [Bitwise Operators](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Expressions_and_Operators#bitwise_operators) chapter on MDN when a need arises.
443+
Биз сандар менен эң төмөнкү (биттик) деңгээлде иштеш керек болгондо бул операторлор өтө сейрек колдонулат. Жакын арада бизге бул операторлордун кереги жок, анткени веб иштеп чыгуучулар аларды аз колдонушат, бирок криптография сыяктуу кээ бир өзгөчө тармактарда алар пайдалуу болот. Зарылчылык жаралганда MDN'деги [Bitwise Operators](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Expressions_and_Operators#bitwise_operators) бөлүмүн окуй аласыз.
444444

445445
## Үтүр
446446

447-
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.
447+
Үтүр оператору `,` эң сейрек кездешүүчү жана адаттан тыш операторлордун бири. Кээде ал кыскараак код жазуу үчүн колдонулат, андыктан эмне болуп жатканын түшүнүү үчүн аны билишибиз керек.
448448

449-
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.
449+
Үтүр оператору бизге бир нече туюнтмаларды үтүр `,` менен бөлүп аткарууга мүмкүндүк берет. Алардын ар бири аткарылат, бирок акыркысынын натыйжасы гана кайтарылат.
450450

451451
Мисалы:
452452

@@ -460,7 +460,7 @@ alert( a ); // 7 (3 + 4 эсептөөсүнүн жыйынтыгы)
460460

461461
Here, the first expression `1 + 2` is evaluated and its result is thrown away. Then, `3 + 4` is evaluated and returned as the result.
462462

463-
```smart header="Comma has a very low precedence"
463+
```smart header="Үтүр өтө төмөн алгачкылыкка ээ"
464464
Please note that the comma operator has very low precedence, lower than `=`, so parentheses are important in the example above.
465465
466466
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`.
@@ -473,10 +473,10 @@ Sometimes, people use it in more complex constructs to put several actions in on
473473
Мисалы:
474474

475475
```js
476-
// three operations in one line
476+
// бир сапта үч операция
477477
for (*!*a = 1, b = 3, c = a * b*/!*; a < 10; a++) {
478478
...
479479
}
480480
```
481481

482-
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.
482+
Мындай трюктар көптөгөн JavaScript фреймворкторунда колдонулат. Ошондуктан биз аларды белгилеп жатабыз. Бирок, адатта, алар коддун окулушун жакшыртпайт, андыктан аларды колдонуудан мурун жакшылап ойлонушубуз керек.

0 commit comments

Comments
 (0)