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/02-first-steps/04-variables/article.md
+47Lines changed: 47 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -93,16 +93,26 @@ let user = 'John'
93
93
*!*var*/!* message ='Hello';
94
94
```
95
95
96
+
<<<<<<< HEAD
96
97
Ключовата дума `var` е почти същото като на `let`. То също декларира променлива, но е малко по-различен, от стила на "старата школа".
97
98
98
99
Има тънки различия между `let` и `var`, но засега те не ни засягат. Ще ги разгледаме подробно в главата <info:var>.
100
+
=======
101
+
The `var` keyword is *almost* the same as `let`. It also declares a variable but in a slightly different, "old-school" way.
102
+
103
+
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>.
104
+
>>>>>>> 540d753e90789205fc6e75c502f68382c87dea9b
99
105
````
100
106
101
107
## Аналогия в реалния живот
102
108
103
109
Лесно можем да схванем концепцията на "променливата", ако я представим като "кутия" с данни, с уникално именуван стикер върху нея.
104
110
111
+
<<<<<<< HEAD
105
112
Например, променливата `message` можем да си въобразим като кутия, наименуван като `"message"`, със стойност `"Hello!"` в нея:
113
+
=======
114
+
For instance, the variable `message` can be imagined as a box labelled `"message"` with the value `"Hello!"` in it:
115
+
>>>>>>> 540d753e90789205fc6e75c502f68382c87dea9b
106
116
107
117

108
118
@@ -228,15 +238,23 @@ Variables named `apple` and `APPLE` are two different variables.
228
238
```
229
239
230
240
````smart header="Non-Latin letters are allowed, but not recommended"
241
+
<<<<<<<HEAD
231
242
It is possible to use any language, including cyrillic letters, Chinese logograms and so on, like this:
232
243
>>>>>>>5dff42ba283bce883428c383c080fa9392b71df8
244
+
=======
245
+
It is possible to use any language, including Cyrillic letters, Chinese logograms and so on, like this:
246
+
>>>>>>>540d753e90789205fc6e75c502f68382c87dea9b
233
247
234
248
```js
235
249
let имя = '...';
236
250
let 我 = '...';
237
251
```
238
252
253
+
<<<<<<<HEAD
239
254
Технически няма грешка тука, такива имена са позволени, но има международна традиция да се използва английския език при писане на имена на променливи. Дори ако пишем малък скрипт, това може да има дълъг живот за напред. На хората от други страни може да им се наложи да ги прочетат някое време.
255
+
=======
256
+
Technically, there is no error here. Such names are allowed, but there is an international convention to use English in variable names. Evenif we're writing a small script, it may have a long life ahead. People from other countries may need to read it sometime.
myBirthday = '01.01.2001'; // грешка, стойността не може да се промени
291
309
```
292
310
311
+
<<<<<<< HEAD
293
312
<<<<<<< HEAD
294
313
Когато програмистите са сигурни в това, че стойността на променливата никога няма да се промени, тогава те могат да ги декларират с `const` за да са гарантирани в това и ясно да съобщават този факт с всички.
295
314
296
315
### Константи с главна буква
297
316
=======
298
317
When a programmer is sure that a variable will never change, they can declare it with `const` to guarantee and clearly communicate that fact to everyone.
318
+
=======
319
+
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.
320
+
>>>>>>> 540d753e90789205fc6e75c502f68382c87dea9b
299
321
300
322
### Uppercase constants
301
323
>>>>>>> 5dff42ba283bce883428c383c080fa9392b71df8
302
324
325
+
<<<<<<< HEAD
303
326
Има широко разпространена практика да се използват константи като псевдоними за трудно запомнящи се стойности, които са известни преди изпълнението.
327
+
=======
328
+
There is a widespread practice to use constants as aliases for difficult-to-remember values that are known before execution.
329
+
>>>>>>> 540d753e90789205fc6e75c502f68382c87dea9b
304
330
305
331
Такива константи се назовават с главни букви и подчертаване.
306
332
@@ -325,7 +351,11 @@ alert(color); // #FF7F00
325
351
326
352
Кога трябва да използваме главни букви за константа и кога трябва да я наименуваме нормално? Нека да поясним това.
327
353
354
+
<<<<<<< HEAD
328
355
Това, че "константа", просто означава, че стойността на променливата никога не се променя. Но има константи, които са известни с приоритет преди изпълнението (като шестнадесетична стойност за червено) и има константи, които се *изчисляват* по време на изпълнение, по време на екзекуция на скрипта, но не се променят след първоначалното им присвояване.
356
+
=======
357
+
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.
358
+
>>>>>>>540d753e90789205fc6e75c502f68382c87dea9b
329
359
330
360
<<<<<<<HEAD
331
361
Например:
@@ -337,7 +367,11 @@ For instance:
337
367
const pageLoadTime = /* времето, което се е заредил уеб страницата */;
338
368
```
339
369
370
+
<<<<<<<HEAD
340
371
Стойността на „pageLoadTime“ не е известна преди зареждането на страницата, така че се наименуван нормално. Но тя все още е константа, защото не се променя след присвояването.
372
+
=======
373
+
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.
374
+
>>>>>>> 540d753e90789205fc6e75c502f68382c87dea9b
341
375
342
376
<<<<<<< HEAD
343
377
С други думи, константи наименувани с главна буква се използват само като псевдоними за "hard-coded" (или кодирани ръчно) стойности.
@@ -351,18 +385,31 @@ In other words, capital-named constants are only used as aliases for "hard-coded
351
385
352
386
Името на променливата трябва да има чисто и очевидно значение, описващо данните, което съхранява.
353
387
388
+
<<<<<<< HEAD
354
389
Наименуването на променливите е едно от най-важните и сложни умения в програмирането. Бърз поглед към имената на променливите може да разкрие кой код е написан от начинаещ или опитен разработчик.
355
390
356
391
В реален проект по-голямата част от времето се изразходва за модифициране и разширяване на съществуваща кодова база, а не за писане на нещо напълно отделно от нулата. Когато се върнем към някакъв код, след като направим нещо друго за известно време, е много по-лесно да намерим информация, която е добре етикетирана. Или с други думи, когато променливите имат добри имена.
392
+
=======
393
+
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.
394
+
395
+
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.
396
+
>>>>>>>540d753e90789205fc6e75c502f68382c87dea9b
357
397
358
398
Моля, отделете време за размисъл за правилното име за променливата, преди да я декларирате. Ако направите това, ще ви се отплати щедро.
359
399
360
400
Някои добри правила за да следваме са:
361
401
402
+
<<<<<<<HEAD
362
403
- Използвайте лесно четими имена за човека като `userName` или `shoppingCart`.
363
404
- Стойте далеч от съкращения или кратки имена като `a`, `b`, `c`, освен ако наистина знаеш какво правиш.
364
405
- Направете имената максимално описателни и кратки. Примери за лоши имена са `data` и `value`. Такива имена не казват нищо. Добре е да ги използвате само ако контекстът на кода прави изключително очевидно към кои данни или стойности реферират променливите.
365
406
- Съгласете се за условията в рамките на вашия екип и в собствения си ум. Ако посетителят на сайта се нарича `user`, тогава трябва да назовем подобни променливи `currentUser` или `newUser` вместо `currentVisitor` или `newManInTown`.
407
+
=======
408
+
- Use human-readable names like `userName` or `shoppingCart`.
409
+
- Stay away from abbreviations or short names like `a`, `b`, and `c`, unless you know what you're doing.
410
+
- 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.
411
+
- 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`.
412
+
>>>>>>>540d753e90789205fc6e75c502f68382c87dea9b
366
413
367
414
Звучи просто? Наистина е така, но създаването на описателни и кратки имена на променливи на практика не е така. Пробвайте го.
Тъй като номерата на BigInt рядко са необходими, ние не ги обхващаме тук, а им посвещаваме отделна глава <info:bigint>. Прочетете го, когато имате нужда от толкова големи числа.
110
110
111
+
<<<<<<< HEAD
111
112
```smart header="Проблеми със съвместимостта"
112
113
В момента `BigInt` се поддържа в Firefox / Chrome / Edge / Safari, но не и в IE.
113
114
```
114
115
115
116
Можете да проверите [таблицата за съвместимост на BigInt](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/BigInt#Browser_compatibility), за да знаете кои версии на браузърите се поддържат.
Copy file name to clipboardExpand all lines: 1-js/03-code-quality/06-polyfills/article.md
+14Lines changed: 14 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -15,7 +15,11 @@ The JavaScript language steadily evolves. New proposals to the language appear r
15
15
So it's quite common for an engine to implement only part of the standard.
16
16
>>>>>>> 5dff42ba283bce883428c383c080fa9392b71df8
17
17
18
+
<<<<<<< HEAD
18
19
Добър ресурс, където може да видите кои свойства на езика се поддържат към настоящия момент е <https://kangax.github.io/compat-table/es6/> (доста е голям, а ние имаме да учим още много).
20
+
=======
21
+
A good page to see the current state of support for language features is <https://compat-table.github.io/compat-table/es6/> (it's big, we have a lot to study yet).
22
+
>>>>>>> 540d753e90789205fc6e75c502f68382c87dea9b
19
23
20
24
Като програмисти, бихме искали да използваме най-новите налични функции. Колкото повече добри неща - толкова по-добре!
21
25
@@ -106,13 +110,17 @@ JavaScript е силно динамичен език, скриптовете м
106
110
=======
107
111
JavaScript is a highly dynamic language. Scripts may add/modify any function, even built-in ones.
108
112
113
+
<<<<<<< HEAD
109
114
Two interesting polyfill libraries are:
110
115
- [core js](https://github.com/zloirock/core-js) that supports a lot, allows to include only needed features.
111
116
- [polyfill.io](https://polyfill.io/) service that provides a script with polyfills, depending on the features and user's browser.
112
117
>>>>>>> 5dff42ba283bce883428c383c080fa9392b71df8
113
118
114
119
- [core js](https://github.com/zloirock/core-js), който поддържа много, позволява да се включват само необходимите функции.
115
120
- [polyfill.io](http://polyfill.io) услуга, която предоставя скрипт с полифили, в зависимост от функциите и браузъра на потребителя.
121
+
=======
122
+
One interesting polyfill library is [core-js](https://github.com/zloirock/core-js), which supports a wide range of features and allows you to include only the ones you need.
123
+
>>>>>>> 540d753e90789205fc6e75c502f68382c87dea9b
116
124
117
125
## Обобщение
118
126
@@ -132,7 +140,13 @@ Just don't forget to use a transpiler (if using modern syntax or operators) and
132
140
For example, later when you're familiar with JavaScript, you can setup a code build system based on [webpack](https://webpack.js.org/) with the [babel-loader](https://github.com/babel/babel-loader) plugin.
133
141
>>>>>>> 5dff42ba283bce883428c383c080fa9392b71df8
134
142
143
+
<<<<<<< HEAD
135
144
Добри ресурси, които показват текущото състояние на поддръжка за различните нови функции:
145
+
=======
146
+
Good resources that show the current state of support for various features:
147
+
- <https://compat-table.github.io/compat-table/es6/> - for pure JavaScript.
148
+
- <https://caniuse.com/> - for browser-related functions.
149
+
>>>>>>> 540d753e90789205fc6e75c502f68382c87dea9b
136
150
137
151
- <https://kangax.github.io/compat-table/es6/> - за чист JavaScript.
138
152
- <https://caniuse.com/> - за функции, свързани с браузъра.
0 commit comments