Skip to content

Commit cdbf7b8

Browse files
committed
merging all conflicts
2 parents cc3612a + 3d7abb9 commit cdbf7b8

File tree

95 files changed

+2269
-400
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

95 files changed

+2269
-400
lines changed

.github/FUNDING.yml

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
github: iliakan

1-js/01-getting-started/3-code-editors/article.md

+19
Original file line numberDiff line numberDiff line change
@@ -29,16 +29,35 @@ Windows үчүн Visual Studio да бар (Visual Studio Code менен чат
2929

3030
Иш жүзүндө "жеңил" редакторлор көптөгөн плагиндерге, анын ичинде директория деңгээлиндеги синтаксис анализаторлору жана автокошумчалоолору ээ болушу мүмкүн, ошондуктан "жеңил" редактор менен IDE ортосунда катуу чеги жок.
3131

32+
<<<<<<< HEAD
3233
Төмөнкү варианттар сиздин көңүлүңүздү бурууга татыктуу:
3334
- [Atom](https://atom.io) (кроссплатформалуу, акысыз)
3435
- [Sublime Text](http://www.sublimetext.com) (кроссплатформалуу, шарттуу акысыз).
3536
- [Notepad++](https://notepad-plus-plus.org/) (Windows, акысыз).
3637
- [Vim](http://www.vim.org/) жана [Emacs](https://www.gnu.org/software/emacs/) кантип колдонгонун билсеңиз, алар да жакшы.
3738

3839
## Жаңжалдашпайлы
40+
=======
41+
There are many options, for instance:
42+
43+
- [Sublime Text](https://www.sublimetext.com/) (cross-platform, shareware).
44+
- [Notepad++](https://notepad-plus-plus.org/) (Windows, free).
45+
- [Vim](https://www.vim.org/) and [Emacs](https://www.gnu.org/software/emacs/) are also cool if you know how to use them.
46+
>>>>>>> 3d7abb9cc8fa553963025547717f06f126c449b6
3947
4048
Жогоруда саналган редакторлор авторго көптөн бери белгилүү жана кесиптештеринин көптөгөн жакшы пикирлерине ээ болушкан.
4149

4250
Албетте, башка көптөгөн сонун редакторлор бар. Сизге эң жактырганын тандаңыз.
4351

52+
<<<<<<< HEAD
4453
Башка куралды сыяктуу эле редакторду тандоо жеке иш болуп саналат жана долбоорлоруңузга, адаттарыңызга жана жеке каалоолоруңузга жараша болот.
54+
=======
55+
There are other great editors in our big world. Please choose the one you like the most.
56+
57+
The choice of an editor, like any other tool, is individual and depends on your projects, habits, and personal preferences.
58+
59+
The author's personal opinion:
60+
61+
- I'd use [Visual Studio Code](https://code.visualstudio.com/) if I develop mostly frontend.
62+
- Otherwise, if it's mostly another language/platform and partially frontend, then consider other editors, such as XCode (Mac), Visual Studio (Windows) or Jetbrains family (Webstorm, PHPStorm, RubyMine etc, depending on the language).
63+
>>>>>>> 3d7abb9cc8fa553963025547717f06f126c449b6

1-js/02-first-steps/04-variables/article.md

+57
Original file line numberDiff line numberDiff line change
@@ -88,16 +88,26 @@ let user = 'Жакыя'
8888
*!*var*/!* message = 'Салам';
8989
```
9090

91+
<<<<<<< HEAD
9192
`var` ачкыч сөзү `let` менен *дээрлик* бирдей. Ал өзгөрмөнү жарыялайт, бирок бир аз башкача, "эскирген" жол менен.
9293

9394
`let` жана `var` ортосунда назик айырмачылыктар бар, бирок алар биз үчүн азырынча маанилүү эмес. Биз аларды <info:var> бөлүмүндө кененирээк карап чыгабыз.
95+
=======
96+
The `var` keyword is *almost* the same as `let`. It also declares a variable but in a slightly different, "old-school" way.
97+
98+
There are subtle differences between `let` and `var`, but they do not matter to us yet. We'll cover them in detail in the chapter <info:var>.
99+
>>>>>>> 3d7abb9cc8fa553963025547717f06f126c449b6
94100
````
95101
96102
## Жашоодогу аналогия
97103
98104
Эгерде өзгөрмөнү берилмелер үчүн уникалдуу аталышы бар "куту" катары элестетсек, биз "өзгөрмө" түшүнүгүн оңой эле түшүнө алабыз.
99105
106+
<<<<<<< HEAD
100107
Мисалы үчүн, `message` өзгөрмөсүн `"билдирүү"` деп аталган жана анын ичиндеги `"Салам!"` мааниси бар куту катары элестетүүгө болот.
108+
=======
109+
For instance, the variable `message` can be imagined as a box labelled `"message"` with the value `"Hello!"` in it:
110+
>>>>>>> 3d7abb9cc8fa553963025547717f06f126c449b6
101111
102112
![](variable.svg)
103113
@@ -150,12 +160,21 @@ let message = "Ошол"; // SyntaxError: 'message' has already been declared
150160
Ошондуктан, биз өзгөрмөнү бир гана жолу жарыялап, ага `let`'сиз кайрылышыбыз керек.
151161
````
152162

163+
<<<<<<< HEAD
153164
```smart header="Функционалдуу тилдер"
154165
Өзгөрмө маанилерин өзгөртүүгө тыюу салган [Scala](http://www.scala-lang.org/) же [Erlang](http://www.erlang.org/) сыяктуу [функционалдуу](https://en.wikipedia.org/wiki/Functional_programming) программалоо тилдери бар экенин белгилей кетүү кызык.
166+
=======
167+
```smart header="Functional languages"
168+
It's interesting to note that there exist so-called [pure functional](https://en.wikipedia.org/wiki/Purely_functional_programming) programming languages, such as [Haskell](https://en.wikipedia.org/wiki/Haskell), that forbid changing variable values.
169+
>>>>>>> 3d7abb9cc8fa553963025547717f06f126c449b6
155170
156171
Мындай тилдерде бир жолу "кутуда" сакталган маани түбөлүккө ошол жерде калат. Эгер башка нерсени сактоо керек болсо, тил бизди жаңы кутуча түзүүгө (жаңы өзгөрмө жарыялоого) мажбурлайт. Биз эски өзгөрмөнү колдоно албайбыз.
157172
173+
<<<<<<< HEAD
158174
Бир караганда бул бир аз кызыктай көрүнгөнү менен, бул тилдер олуттуу иштеп чыгууга жөндөмдүү. Мындан тышкары, бул чектөө кээ бир артыкчылыктарды берген параллелдүү эсептөөлөр сыяктуу аймактар бар. Мындай тилди үйрөнүү (сиз аны жакында колдонууну пландабасаңыз да) акыл-эсти кеңейтүү үчүн сунушталат.
175+
=======
176+
Though it may seem a little odd at first sight, these languages are quite capable of serious development. More than that, there are areas like parallel computations where this limitation confers certain benefits.
177+
>>>>>>> 3d7abb9cc8fa553963025547717f06f126c449b6
159178
```
160179

161180
## Өзгөрмөлөрдү атоо [#variable-naming]
@@ -197,15 +216,24 @@ let my-name; // атта '-' дефисти коюуга болбойт
197216
`apple` жана `APPLE` деп аталган өзгөрмөлөр -- бул эки башка өзгөрмө.
198217
```
199218

219+
<<<<<<< HEAD
200220
````smart header="Латын эмес тамгаларга уруксат берилет, бирок сунушталбайт"
201221
Каалаган тилди, анын ичинде кирил тамгаларын же жадаганда иероглифтерди колдонууга болот:
222+
=======
223+
````smart header="Non-Latin letters are allowed, but not recommended"
224+
It is possible to use any language, including Cyrillic letters, Chinese logograms and so on, like this:
225+
>>>>>>> 3d7abb9cc8fa553963025547717f06f126c449b6
202226
203227
```js
204228
let аталыш = '...';
205229
let 我 = '...';
206230
```
207231
232+
<<<<<<< HEAD
208233
Техникалык жактан бул жерде ката жок. Мындай аттарга уруксат берилген, бирок өзгөрмө аттарында англис тилин колдонуу боюнча эл аралык келишим бар. Кичинекей скрипт жазып жатсак да, анын алдында өмүрү узун болушу мүмкүн. Башка өлкөлөрдөн келгендер аны бир нече жолу окууга туура келиши мүмкүн.
234+
=======
235+
Technically, there is no error here. Such names are allowed, but there is an international convention to use English in variable names. Even if we're writing a small script, it may have a long life ahead. People from other countries may need to read it sometime.
236+
>>>>>>> 3d7abb9cc8fa553963025547717f06f126c449b6
209237
````
210238

211239
````warn header="Резервделген аттар"
@@ -260,11 +288,19 @@ const myBirthday = '18.04.1982';
260288
myBirthday = '01.01.2001'; // ката, константаны өзгөртүүгө болбойт!
261289
```
262290
291+
<<<<<<< HEAD
263292
Эгерде программист өзгөрмө эч качан өзгөрбөйт деп ишенсе, ал муну кепилдей алат жана аны `const` аркылуу жарыялоо менен ар бирине так кабарлай алат.
293+
=======
294+
When a programmer is sure that a variable will never change, they can declare it with `const` to guarantee and communicate that fact to everyone.
295+
>>>>>>> 3d7abb9cc8fa553963025547717f06f126c449b6
264296
265297
### Баш тамгадагы константалар
266298
299+
<<<<<<< HEAD
267300
Скрипт аткарылганга чейин белгилүү болгон эстеп калууга кыйын маанилер үчүн константаларды тергеме ат катары колдонуу тажрыйбасы кеңири таралган.
301+
=======
302+
There is a widespread practice to use constants as aliases for difficult-to-remember values that are known before execution.
303+
>>>>>>> 3d7abb9cc8fa553963025547717f06f126c449b6
268304
269305
Мындай константалардын аталыштары баш тамгалар жана ылдыйкы сызыкчалар менен жазылат.
270306
@@ -289,15 +325,23 @@ alert(color); // #FF7F00
289325
290326
Качан константа үчүн баш тамгаларды колдонушубуз керек жана качан аны кадимкидей аташыбыз керек? Келгиле, бул маселени чечели.
291327
328+
<<<<<<< HEAD
292329
"Константа" болуу жөн гана өзгөрмөнүн мааниси эч качан өзгөрбөй турганын билдирет. Бирок аткарылганга чейин белгилүү болгон константалар бар (кызыл түстүн он алтылык мааниси сыяктуу) жана скрипттин аткарылышы учурунда *эсептелүүчү*, бирок алар башында жарыялангандан кийин өзгөрбөй турган константалар да бар.
330+
=======
331+
Being a "constant" just means that a variable's value never changes. But some constants are known before execution (like a hexadecimal value for red) and some constants are *calculated* in run-time, during the execution, but do not change after their initial assignment.
332+
>>>>>>> 3d7abb9cc8fa553963025547717f06f126c449b6
293333
294334
Мисалы үчүн:
295335
296336
```js
297337
const pageLoadTime = /* веб-баракчаны жүктөөгө сарпталган убакыт */;
298338
```
299339
340+
<<<<<<< HEAD
300341
`pageLoadTime` константасынын мааниси баракчаны жүктөөдөн мурун белгилүү эмес, андыктан ал кадимкидей аталат. Бирок ал дагы эле константа, анткени жарыялангандан кийин өзгөрбөйт.
342+
=======
343+
The value of `pageLoadTime` is not known before the page load, so it's named normally. But it's still a constant because it doesn't change after the assignment.
344+
>>>>>>> 3d7abb9cc8fa553963025547717f06f126c449b6
301345
302346
Башкача айтканда, баш тамгалар менен аталган константалар "катуу коддолгон" маанилер үчүн тергеме ат катары гана колдонулат.
303347
@@ -307,18 +351,31 @@ const pageLoadTime = /* веб-баракчаны жүктөөгө сарпта
307351
308352
Өзгөрмөнүн аталышы ал сактаган берилмелерди сыпаттаган таза, анык мааниге ээ болушу керек.
309353
354+
<<<<<<< HEAD
310355
Өзгөрмөлөрдү атоо -- бул программалоодогу эң маанилүү жана татаал көндүмдөрдүн бири. Өзгөрмөлөрдүн аттарына тез караш кайсы кодду башталгыч же тажрыйбалуу иштеп чыгуучу жазганын көрсөтө алат.
311356
312357
Чыныгы долбоордо көп убакыт нөлдөн толугу менен өзүнчө бир нерсени жазууга эмес, учурдагы код базасын өзгөртүүгө жана кеңейтүүгө жумшалат. Бир аз убакытка башка бир нерсе кылгандан кийин кодго кайтып келгенде, жакшы белгиленген маалыматты табуу далай жеңил болот. Же, башкача айтканда, өзгөрмөлөр жакшы аттарга ээ болгондо.
358+
=======
359+
Variable naming is one of the most important and complex skills in programming. A glance at variable names can reveal which code was written by a beginner versus an experienced developer.
360+
361+
In a real project, most of the time is spent modifying and extending an existing code base rather than writing something completely separate from scratch. When we return to some code after doing something else for a while, it's much easier to find information that is well-labelled. Or, in other words, when the variables have good names.
362+
>>>>>>> 3d7abb9cc8fa553963025547717f06f126c449b6
313363
314364
Сураныч, өзгөрмөнү жарыялоодон мурун анын туура аталышы жөнүндө ойлонууга убакыт бөлүңүз. Ушундай кылыңыз, ошондо сиз сыйланасыз.
315365
316366
Бир нече жакшы эрежелер:
317367
368+
<<<<<<< HEAD
318369
- `userName` же `shoppingCart` сыяктуу окууга оңой аттарды колдонуңуз.
319370
- Эмне кылып жатканыңызды так билбесеңиз, `a`, `b`, `c` сыяктуу кыскартуулардан же кыска аталыштардан алыс болуңуз.
320371
- Аттарды максималдуу түрдө сыпаттоочу жана кыска кылыңыз. Жаман аттардын мисалдары: `data` жана `value`. Мындай ысымдар эч нерсени айтпайт. Аларды коддун контекстинен өзгөрмө кандай маалыматтарды сактай турганы анык болсо гана колдонсо болот.
321372
- Колдонулган терминдер боюнча командаңыз менен макулдашыңыз. Эгер сайтка кирүүчү "user" деп аталса, анда аны менен байланышкан өзгөрмөлөрдү, мисалы, `currentVisitor` же `newManInTown` эмес, `currentUser` же `newUser` деп аташыбыз керек.
373+
=======
374+
- Use human-readable names like `userName` or `shoppingCart`.
375+
- Stay away from abbreviations or short names like `a`, `b`, and `c`, unless you know what you're doing.
376+
- Make names maximally descriptive and concise. Examples of bad names are `data` and `value`. Such names say nothing. It's only okay to use them if the context of the code makes it exceptionally obvious which data or value the variable is referencing.
377+
- Agree on terms within your team and in your mind. If a site visitor is called a "user" then we should name related variables `currentUser` or `newUser` instead of `currentVisitor` or `newManInTown`.
378+
>>>>>>> 3d7abb9cc8fa553963025547717f06f126c449b6
322379
323380
Жөнөкөй угулабы? Чынында эле ошондой, бирок тажрыйбада түшүнүктүү жана кыска өзгөрмө аттарын түзүү -- бул сейректик. Алга.
324381

1-js/02-first-steps/05-types/article.md

+8
Original file line numberDiff line numberDiff line change
@@ -92,13 +92,17 @@ const bigInt = 1234567890123456789012345678901234567890n;
9292
9393
`BigInt` сандары сейрек талап кылынгандыктан, биз аларды бөлөк <info:bigint> бөлүмүндө караштырабыз. Ушунчалык чоң сандар керек болгондо аны окуңуз.
9494
95+
<<<<<<< HEAD
9596
```smart header="Шайкештик көйгөйлөрү"
9697
Азыркы учурда `BigInt` Firefox/Chrome/Edge/Safari браузерлеринде колдоого алынат, бирок IE'де - жок.
9798
```
9899

99100
я Браузердин кайсы версиялары колдоого алынарын билүү үчүн [*MDN* BigInt шайкештик жадыбалын](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/BigInt#Browser_compatibility) карап көрсөңүз болот.
100101

101102
## Сап (string)
103+
=======
104+
## String
105+
>>>>>>> 3d7abb9cc8fa553963025547717f06f126c449b6
102106
103107
JavaScript'те сап тырмакчага алынышы керек.
104108

@@ -222,7 +226,11 @@ alert(age); // "undefined"
222226

223227
## typeof оператору [#type-typeof]
224228

229+
<<<<<<< HEAD
225230
`typeof` оператору аргументинин түрүн кайтарат. Бул ар кандай түрдөгү маанилерди башкача иштеткибиз келгенде же жөн гана тез текшерүүнү каалаганыбызда пайдалуу.
231+
=======
232+
The `typeof` operator returns the type of the operand. It's useful when we want to process values of different types differently or just want to do a quick check.
233+
>>>>>>> 3d7abb9cc8fa553963025547717f06f126c449b6
226234
227235
`typeof x` чалуусу түрү аталышы менен сапты кайтарат:
228236

1-js/02-first-steps/07-type-conversions/article.md

+4
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,11 @@ alert(typeof value); // string
3434

3535
## Санга айландыруу
3636

37+
<<<<<<< HEAD
3738
Сандарга айландыруу математикалык функцияларда жана туюнтмаларда автоматтык түрдө ишке ашат.
39+
=======
40+
Numeric conversion in mathematical functions and expressions happens automatically.
41+
>>>>>>> 3d7abb9cc8fa553963025547717f06f126c449b6
3842
3943
Мисалы, бөлүү `/` сандар эместерге колдонулганда:
4044

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

+15-1
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,14 @@
5050
Мисалы үчүн:
5151
5252
```js run
53+
<<<<<<< HEAD
5354
alert( 5 % 2 ); // 1, 5ти 2ге бөлүүнүн калдыгы
5455
alert( 8 % 3 ); // 2, 8ди 3кө бөлүүнүн калдыгы
56+
=======
57+
alert( 5 % 2 ); // 1, the remainder of 5 divided by 2
58+
alert( 8 % 3 ); // 2, the remainder of 8 divided by 3
59+
alert( 8 % 4 ); // 0, the remainder of 8 divided by 4
60+
>>>>>>> 3d7abb9cc8fa553963025547717f06f126c449b6
5561
```
5662
5763
### Даражага көтөрүү **
@@ -68,7 +74,11 @@ alert( 2 ** 3 ); // 2³ = 8
6874
alert( 2 ** 4 ); // 2⁴ = 16
6975
```
7076

77+
<<<<<<< HEAD
7178
Математикадагыдай эле, даражага көтөрүү операторун бөлчөктүк сандар үчүн да колдонууга болот.
79+
=======
80+
Just like in maths, the exponentiation operator is defined for non-integer numbers as well.
81+
>>>>>>> 3d7abb9cc8fa553963025547717f06f126c449b6
7282

7383
Мисалы, чарчы тамыр бул ½ даражага көтөрүүсү:
7484

@@ -80,7 +90,11 @@ alert( 8 ** (1/3) ); // 2 (1/3 даражасы кубдук тамыр мене
8090

8191
## Бинардык + менен саптарды кошуу
8292

93+
<<<<<<< HEAD
8394
Келгиле, мектеп арифметикасынын алкагына кирбеген JavaScript операторлорунун өзгөчөлүктөрү менен таанышалы.
95+
=======
96+
Let's meet the features of JavaScript operators that are beyond school arithmetics.
97+
>>>>>>> 3d7abb9cc8fa553963025547717f06f126c449b6
8498
8599
Адатта, плюс оператору `+` сандарды кошот.
86100
@@ -308,7 +322,7 @@ let n = 2;
308322
309323
n *= 3 + 5; // алгач оң бөлүгү эсептелинет, n *= 8 менен бирдей
310324
311-
alert( n ); // 16
325+
alert( n ); // 16
312326
```
313327
314328
## Инкремент/декремент

0 commit comments

Comments
 (0)