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
Copy file name to clipboardexpand all lines: 1-js/01-getting-started/3-code-editors/article.md
+19
Original file line number
Diff line number
Diff line change
@@ -29,16 +29,35 @@ Windows үчүн Visual Studio да бар (Visual Studio Code менен чат
29
29
30
30
Иш жүзүндө "жеңил" редакторлор көптөгөн плагиндерге, анын ичинде директория деңгээлиндеги синтаксис анализаторлору жана автокошумчалоолору ээ болушу мүмкүн, ошондуктан "жеңил" редактор менен IDE ортосунда катуу чеги жок.
31
31
32
+
<<<<<<< HEAD
32
33
Төмөнкү варианттар сиздин көңүлүңүздү бурууга татыктуу:
-[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
39
47
40
48
Жогоруда саналган редакторлор авторго көптөн бери белгилүү жана кесиптештеринин көптөгөн жакшы пикирлерине ээ болушкан.
41
49
42
50
Албетте, башка көптөгөн сонун редакторлор бар. Сизге эң жактырганын тандаңыз.
43
51
52
+
<<<<<<< HEAD
44
53
Башка куралды сыяктуу эле редакторду тандоо жеке иш болуп саналат жана долбоорлоруңузга, адаттарыңызга жана жеке каалоолоруңузга жараша болот.
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).
Copy file name to clipboardexpand all lines: 1-js/02-first-steps/04-variables/article.md
+57
Original file line number
Diff line number
Diff line change
@@ -88,16 +88,26 @@ let user = 'Жакыя'
88
88
*!*var*/!* message ='Салам';
89
89
```
90
90
91
+
<<<<<<< HEAD
91
92
`var` ачкыч сөзү `let` менен *дээрлик* бирдей. Ал өзгөрмөнү жарыялайт, бирок бир аз башкача, "эскирген" жол менен.
92
93
93
94
`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
94
100
````
95
101
96
102
## Жашоодогу аналогия
97
103
98
104
Эгерде өзгөрмөнү берилмелер үчүн уникалдуу аталышы бар "куту" катары элестетсек, биз "өзгөрмө" түшүнүгүн оңой эле түшүнө алабыз.
99
105
106
+
<<<<<<< HEAD
100
107
Мисалы үчүн, `message` өзгөрмөсүн `"билдирүү"` деп аталган жана анын ичиндеги `"Салам!"` мааниси бар куту катары элестетүүгө болот.
108
+
=======
109
+
For instance, the variable `message` can be imagined as a box labelled `"message"` with the value `"Hello!"` in it:
110
+
>>>>>>> 3d7abb9cc8fa553963025547717f06f126c449b6
101
111
102
112

103
113
@@ -150,12 +160,21 @@ let message = "Ошол"; // SyntaxError: 'message' has already been declared
150
160
Ошондуктан, биз өзгөрмөнү бир гана жолу жарыялап, ага `let`'сиз кайрылышыбыз керек.
151
161
````
152
162
163
+
<<<<<<< HEAD
153
164
```smart header="Функционалдуу тилдер"
154
165
Өзгөрмө маанилерин өзгөртүүгө тыюу салган [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
155
170
156
171
Мындай тилдерде бир жолу "кутуда" сакталган маани түбөлүккө ошол жерде калат. Эгер башка нерсени сактоо керек болсо, тил бизди жаңы кутуча түзүүгө (жаңы өзгөрмө жарыялоого) мажбурлайт. Биз эски өзгөрмөнү колдоно албайбыз.
157
172
173
+
<<<<<<< HEAD
158
174
Бир караганда бул бир аз кызыктай көрүнгөнү менен, бул тилдер олуттуу иштеп чыгууга жөндөмдүү. Мындан тышкары, бул чектөө кээ бир артыкчылыктарды берген параллелдүү эсептөөлөр сыяктуу аймактар бар. Мындай тилди үйрөнүү (сиз аны жакында колдонууну пландабасаңыз да) акыл-эсти кеңейтүү үчүн сунушталат.
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
159
178
```
160
179
161
180
## Өзгөрмөлөрдү атоо [#variable-naming]
@@ -197,15 +216,24 @@ let my-name; // атта '-' дефисти коюуга болбойт
197
216
`apple` жана `APPLE` деп аталган өзгөрмөлөр -- бул эки башка өзгөрмө.
198
217
```
199
218
219
+
<<<<<<< HEAD
200
220
````smart header="Латын эмес тамгаларга уруксат берилет, бирок сунушталбайт"
201
221
Каалаган тилди, анын ичинде кирил тамгаларын же жадаганда иероглифтерди колдонууга болот:
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
202
226
203
227
```js
204
228
let аталыш = '...';
205
229
let 我 = '...';
206
230
```
207
231
232
+
<<<<<<< HEAD
208
233
Техникалык жактан бул жерде ката жок. Мындай аттарга уруксат берилген, бирок өзгөрмө аттарында англис тилин колдонуу боюнча эл аралык келишим бар. Кичинекей скрипт жазып жатсак да, анын алдында өмүрү узун болушу мүмкүн. Башка өлкөлөрдөн келгендер аны бир нече жолу окууга туура келиши мүмкүн.
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.
Эгерде программист өзгөрмө эч качан өзгөрбөйт деп ишенсе, ал муну кепилдей алат жана аны `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
264
296
265
297
### Баш тамгадагы константалар
266
298
299
+
<<<<<<< HEAD
267
300
Скрипт аткарылганга чейин белгилүү болгон эстеп калууга кыйын маанилер үчүн константаларды тергеме ат катары колдонуу тажрыйбасы кеңири таралган.
301
+
=======
302
+
There is a widespread practice to use constants as aliases for difficult-to-remember values that are known before execution.
303
+
>>>>>>> 3d7abb9cc8fa553963025547717f06f126c449b6
268
304
269
305
Мындай константалардын аталыштары баш тамгалар жана ылдыйкы сызыкчалар менен жазылат.
270
306
@@ -289,15 +325,23 @@ alert(color); // #FF7F00
289
325
290
326
Качан константа үчүн баш тамгаларды колдонушубуз керек жана качан аны кадимкидей аташыбыз керек? Келгиле, бул маселени чечели.
291
327
328
+
<<<<<<< HEAD
292
329
"Константа" болуу жөн гана өзгөрмөнүн мааниси эч качан өзгөрбөй турганын билдирет. Бирок аткарылганга чейин белгилүү болгон константалар бар (кызыл түстүн он алтылык мааниси сыяктуу) жана скрипттин аткарылышы учурунда *эсептелүүчү*, бирок алар башында жарыялангандан кийин өзгөрбөй турган константалар да бар.
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
293
333
294
334
Мисалы үчүн:
295
335
296
336
```js
297
337
const pageLoadTime = /* веб-баракчаны жүктөөгө сарпталган убакыт */;
298
338
```
299
339
340
+
<<<<<<< HEAD
300
341
`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
301
345
302
346
Башкача айтканда, баш тамгалар менен аталган константалар "катуу коддолгон" маанилер үчүн тергеме ат катары гана колдонулат.
Өзгөрмөнүн аталышы ал сактаган берилмелерди сыпаттаган таза, анык мааниге ээ болушу керек.
309
353
354
+
<<<<<<< HEAD
310
355
Өзгөрмөлөрдү атоо -- бул программалоодогу эң маанилүү жана татаал көндүмдөрдүн бири. Өзгөрмөлөрдүн аттарына тез караш кайсы кодду башталгыч же тажрыйбалуу иштеп чыгуучу жазганын көрсөтө алат.
311
356
312
357
Чыныгы долбоордо көп убакыт нөлдөн толугу менен өзүнчө бир нерсени жазууга эмес, учурдагы код базасын өзгөртүүгө жана кеңейтүүгө жумшалат. Бир аз убакытка башка бир нерсе кылгандан кийин кодго кайтып келгенде, жакшы белгиленген маалыматты табуу далай жеңил болот. Же, башкача айтканда, өзгөрмөлөр жакшы аттарга ээ болгондо.
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
313
363
314
364
Сураныч, өзгөрмөнү жарыялоодон мурун анын туура аталышы жөнүндө ойлонууга убакыт бөлүңүз. Ушундай кылыңыз, ошондо сиз сыйланасыз.
315
365
316
366
Бир нече жакшы эрежелер:
317
367
368
+
<<<<<<< HEAD
318
369
- `userName` же `shoppingCart` сыяктуу окууга оңой аттарды колдонуңуз.
319
370
- Эмне кылып жатканыңызды так билбесеңиз, `a`, `b`, `c` сыяктуу кыскартуулардан же кыска аталыштардан алыс болуңуз.
320
371
- Аттарды максималдуу түрдө сыпаттоочу жана кыска кылыңыз. Жаман аттардын мисалдары: `data` жана `value`. Мындай ысымдар эч нерсени айтпайт. Аларды коддун контекстинен өзгөрмө кандай маалыматтарды сактай турганы анык болсо гана колдонсо болот.
321
372
- Колдонулган терминдер боюнча командаңыз менен макулдашыңыз. Эгер сайтка кирүүчү "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
322
379
323
380
Жөнөкөй угулабы? Чынында эле ошондой, бирок тажрыйбада түшүнүктүү жана кыска өзгөрмө аттарын түзүү -- бул сейректик. Алга.
`BigInt` сандары сейрек талап кылынгандыктан, биз аларды бөлөк <info:bigint> бөлүмүндө караштырабыз. Ушунчалык чоң сандар керек болгондо аны окуңуз.
94
94
95
+
<<<<<<< HEAD
95
96
```smart header="Шайкештик көйгөйлөрү"
96
97
Азыркы учурда `BigInt` Firefox/Chrome/Edge/Safari браузерлеринде колдоого алынат, бирок IE'де - жок.
97
98
```
98
99
99
100
я Браузердин кайсы версиялары колдоого алынарын билүү үчүн [*MDN* BigInt шайкештик жадыбалын](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/BigInt#Browser_compatibility) карап көрсөңүз болот.
100
101
101
102
## Сап (string)
103
+
=======
104
+
## String
105
+
>>>>>>> 3d7abb9cc8fa553963025547717f06f126c449b6
102
106
103
107
JavaScript'те сап тырмакчага алынышы керек.
104
108
@@ -222,7 +226,11 @@ alert(age); // "undefined"
222
226
223
227
## typeof оператору [#type-typeof]
224
228
229
+
<<<<<<< HEAD
225
230
`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
226
234
227
235
`typeof x` чалуусу түрү аталышы менен сапты кайтарат:
0 commit comments