Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1323 commits
Select commit Hold shift + click to select a range
bfba392
fix
iliakan Oct 10, 2019
8ae8e50
fix
iliakan Oct 10, 2019
7418213
re-import images from Sketch (no changes)
iliakan Oct 10, 2019
6d44c1e
fixes
iliakan Oct 10, 2019
9fe85ae
debugging
iliakan Oct 10, 2019
662f519
Update solution.md
iliakan Oct 10, 2019
a7e2c43
minor
iliakan Oct 11, 2019
db0407b
Merge pull request #1420 from paroche/patch-49
iliakan Oct 11, 2019
c3fadb7
minor
iliakan Oct 11, 2019
c9eea4d
fixes
iliakan Oct 11, 2019
59b5530
fixes
iliakan Oct 11, 2019
dacfefc
fixes
iliakan Oct 11, 2019
f49e438
fixes
iliakan Oct 11, 2019
33642d3
fixes
iliakan Oct 11, 2019
3cc9734
fixes
iliakan Oct 11, 2019
773cc06
fixes
iliakan Oct 11, 2019
3073a5c
fixes
iliakan Oct 11, 2019
7460eeb
fixes
iliakan Oct 11, 2019
c63ce10
Grammar issues fix
sudhirkumarojhaa Oct 12, 2019
c6568ab
minor
Violet-Bora-Lee Oct 12, 2019
36cf0f7
minor (#1446)
lex111 Oct 12, 2019
86912bc
Update article.md
paroche Oct 13, 2019
8baaa2f
Update article.md
paroche Oct 13, 2019
9244339
Merge pull request #1450 from paroche/patch-57
iliakan Oct 13, 2019
4be5963
Merge pull request #1447 from paroche/patch-53
iliakan Oct 13, 2019
79a6361
Correct
sudhirkumarojhaa Oct 13, 2019
5899172
Merge pull request #1445 from sudhirkumarojhaa/master
iliakan Oct 13, 2019
eeead38
Fix minor typo
zdzc Oct 13, 2019
fb96a76
Update solution.md
Violet-Bora-Lee Oct 13, 2019
776438d
Fix minor typo (#1452)
lex111 Oct 13, 2019
a0bfa92
Fix header level
lex111 Oct 13, 2019
effb5b9
minor
Violet-Bora-Lee Oct 13, 2019
aeb5593
Update article.md
iliakan Oct 14, 2019
149e8ea
Merge pull request #1454 from Violet-Bora-Lee/patch-42
iliakan Oct 14, 2019
5fe6977
Merge pull request #1453 from Violet-Bora-Lee/patch-41
iliakan Oct 14, 2019
650e788
elks -> elk
iliakan Oct 14, 2019
816b29f
Update task.md
hrodward Oct 14, 2019
64d9b6f
Update article.md
paroche Oct 15, 2019
297cbfb
Update article.md
paroche Oct 15, 2019
f09f188
Update article.md
paroche Oct 15, 2019
c2d8a8b
Merge pull request #1458 from javascript-tutorial/paroche-patch-2
paroche Oct 15, 2019
6da81c5
Update task.md
hrodward Oct 15, 2019
43e092a
Update article.md
paroche Oct 15, 2019
0e695a4
Merge pull request #1459 from hrodward/patch-2
iliakan Oct 15, 2019
13ca92d
Merge pull request #1456 from hrodward/patch-1
iliakan Oct 15, 2019
1fcefe3
Update solution.md
Violet-Bora-Lee Oct 15, 2019
87c7b45
Merge pull request #1461 from Violet-Bora-Lee/patch-44
iliakan Oct 15, 2019
b5a0865
minor
iliakan Oct 15, 2019
9ce9fb9
minor
iliakan Oct 16, 2019
c3e18bc
minor
iliakan Oct 16, 2019
cb5f45b
minor
iliakan Oct 16, 2019
f38d8c9
Update task.md
paroche Oct 16, 2019
dd76698
Update article.md
paroche Oct 16, 2019
3009d16
Merge pull request #1462 from javascript-tutorial/paroche-patch-3
iliakan Oct 16, 2019
8d41acb
Update article.md
hrodward Oct 16, 2019
f2e6a18
Update article.md
hrodward Oct 16, 2019
95f61ee
Merge pull request #1463 from hrodward/patch-3
iliakan Oct 16, 2019
ba22101
Update article.md
hrodward Oct 16, 2019
994c76b
Update article.md
hrodward Oct 16, 2019
e014aa4
Update article.md
hrodward Oct 16, 2019
bb97418
fixes #1469
iliakan Oct 17, 2019
23e9175
Update article.md
iliakan Oct 17, 2019
3a90d94
Merge pull request #1464 from hrodward/patch-5
iliakan Oct 17, 2019
615609e
Merge pull request #1467 from hrodward/patch-7
iliakan Oct 17, 2019
5197701
Merge pull request #1466 from hrodward/patch-6
iliakan Oct 17, 2019
bb2a259
Merge pull request #1465 from hrodward/patch-4
iliakan Oct 17, 2019
da8af69
Update article.md
hrodward Oct 17, 2019
6a8b314
Update article.md
iliakan Oct 17, 2019
ee80b55
add test case for debounce
dagolinuxoid Oct 17, 2019
32f8f0e
Merge pull request #1474 from dagolinuxoid/patch-2
iliakan Oct 17, 2019
eb2b6c9
Update article.md
paroche Oct 17, 2019
4452139
Update article.md
paroche Oct 18, 2019
33e4cc2
Update article.md
paroche Oct 18, 2019
81a2503
Update article.md
hrodward Oct 18, 2019
5ac537f
Update article.md
hrodward Oct 18, 2019
a2b45a8
Update task.md
hrodward Oct 18, 2019
2ffc997
Update solution.md
hrodward Oct 18, 2019
01352c1
minor
iliakan Oct 18, 2019
a52a643
minor
iliakan Oct 18, 2019
ee6f0ac
minor
iliakan Oct 18, 2019
d5f4fe9
minor
iliakan Oct 19, 2019
58c91c3
minor changes in grammar
Darryl1702 Oct 19, 2019
5b795f7
minor
Darryl1702 Oct 19, 2019
e8d86d9
minor
Darryl1702 Oct 19, 2019
a960984
minor
Darryl1702 Oct 19, 2019
7d1e1ba
Update article.md (#1478)
lex111 Oct 19, 2019
501bdf6
Merge pull request #1480 from hrodward/patch-12
iliakan Oct 19, 2019
edfc79d
Merge pull request #1479 from hrodward/patch-11
iliakan Oct 19, 2019
6634181
Merge pull request #1477 from hrodward/patch-10
iliakan Oct 19, 2019
3483424
Merge pull request #1476 from hrodward/patch-9
iliakan Oct 19, 2019
1fe192d
Merge pull request #1475 from javascript-tutorial/paroche-patch-3
iliakan Oct 19, 2019
f75439f
Merge pull request #1485 from Ghost-017/patch-7
iliakan Oct 19, 2019
f0e848a
minor
iliakan Oct 19, 2019
4088e5d
Merge pull request #1482 from Ghost-017/patch-4
paroche Oct 19, 2019
15d0394
Update article.md
paroche Oct 20, 2019
79e2447
Update article.md
paroche Oct 20, 2019
676ffb7
Update article.md
paroche Oct 20, 2019
8826f07
Update article.md
paroche Oct 20, 2019
ebd69e2
Merge pull request #1486 from javascript-tutorial/paroche-patch-4
iliakan Oct 20, 2019
4c9c943
Merge pull request #1484 from Ghost-017/patch-6
iliakan Oct 20, 2019
30e3fa7
minor
iliakan Oct 20, 2019
aae1e26
Update article.md
Darryl1702 Oct 20, 2019
14e82d1
minor
Darryl1702 Oct 20, 2019
74ad826
Update article.md
hrodward Oct 21, 2019
cc3c01b
Update task.md
hrodward Oct 21, 2019
cd97f84
Update article.md
hrodward Oct 21, 2019
5c6be4c
Update article.md
hrodward Oct 21, 2019
8c1b767
Update article.md
hrodward Oct 21, 2019
3c8ae30
Update article.md
hrodward Oct 21, 2019
906dd13
Update task.md
hrodward Oct 21, 2019
7500898
Update task.md
hrodward Oct 21, 2019
c0fd76b
Update task.md
hrodward Oct 21, 2019
89c4a0f
Update article.md
hrodward Oct 21, 2019
4bb52fb
Update task.md
hrodward Oct 21, 2019
2d77eb7
Merge pull request #1483 from Ghost-017/patch-5
iliakan Oct 21, 2019
2cbed98
minor
iliakan Oct 21, 2019
77e9317
Merge pull request #1487 from hrodward/patch-13
iliakan Oct 21, 2019
ea50619
Merge pull request #1488 from hrodward/patch-14
iliakan Oct 21, 2019
ddf9d1e
Merge pull request #1489 from hrodward/patch-15
iliakan Oct 21, 2019
5db94bb
Merge pull request #1490 from hrodward/patch-16
iliakan Oct 21, 2019
e577658
Merge pull request #1491 from hrodward/patch-17
iliakan Oct 21, 2019
e5674cf
Merge pull request #1493 from hrodward/patch-19
iliakan Oct 21, 2019
e661044
Merge pull request #1494 from hrodward/patch-20
iliakan Oct 21, 2019
50aa158
Merge pull request #1495 from hrodward/patch-21
iliakan Oct 21, 2019
5aea931
Merge pull request #1496 from hrodward/patch-22
iliakan Oct 21, 2019
040aea0
Merge pull request #1497 from hrodward/patch-23
iliakan Oct 21, 2019
7a6a566
minor
iliakan Oct 21, 2019
09d2e96
Update article.md
paroche Oct 21, 2019
7a0fbdb
Update article.md
paroche Oct 21, 2019
88cd022
Update article.md
lex111 Oct 21, 2019
dd52fb9
Fixed object variable user.go() to be obj.go()
moonarian Oct 21, 2019
022c037
Update article.md
paroche Oct 22, 2019
00d3f99
Merge pull request #1499 from javascript-tutorial/paroche-patch-5
paroche Oct 22, 2019
f430bea
Update article.md
paroche Oct 22, 2019
0932380
Update article.md
paroche Oct 22, 2019
d0b95aa
Update 1-js/08-prototypes/01-prototype-inheritance/article.md
hrodward Oct 22, 2019
6219338
Update article.md
hrodward Oct 22, 2019
a04d80c
Update article.md
hrodward Oct 22, 2019
9151079
Fixed object variable user.go() to be obj.go() (#1498)
lex111 Oct 22, 2019
01bb684
Merge pull request #1471 from hrodward/patch-8
iliakan Oct 22, 2019
c07eb5c
Update article.md
paroche Oct 22, 2019
29ea890
Merge branch 'master' into patch-18
lex111 Oct 22, 2019
2e5fa78
minor
iliakan Oct 22, 2019
00ebc81
Update article.md
hrodward Oct 22, 2019
33cca1b
Fix confusion in the task
lex111 Oct 22, 2019
b6404a6
Update article.md
hrodward Oct 23, 2019
ab55453
Update article.md
hrodward Oct 23, 2019
6f8ad3c
Update article.md
hrodward Oct 23, 2019
ad939bb
Update article.md
hrodward Oct 23, 2019
cc3795f
Update article.md
paroche Oct 24, 2019
f6ead73
Update article.md
paroche Oct 24, 2019
c8e062f
Update article.md
paroche Oct 24, 2019
f954987
Update article.md
paroche Oct 24, 2019
a2d32ad
Update article.md (#1506)
lex111 Oct 24, 2019
c4914ae
Update article.md
hrodward Oct 24, 2019
eb2b327
Update task.md
hrodward Oct 24, 2019
fab771f
Update article.md (#1511)
lex111 Oct 24, 2019
373a305
Update article.md (#1510)
lex111 Oct 24, 2019
31d96a3
Update article.md (#1509)
lex111 Oct 24, 2019
7f28d56
Update article.md (#1507)
lex111 Oct 24, 2019
0007368
Update article.md
hrodward Oct 25, 2019
7df2a19
Update article.md (#1517)
lex111 Oct 25, 2019
072fa7d
minor
iliakan Oct 25, 2019
ead158a
Update article.md
hrodward Oct 25, 2019
9909b90
minor
iliakan Oct 25, 2019
c62c84c
Merge pull request #1492 from hrodward/patch-18
iliakan Oct 25, 2019
321519e
Merge pull request #1518 from hrodward/patch-22
iliakan Oct 25, 2019
86891b9
Merge pull request #1514 from hrodward/patch-32
iliakan Oct 25, 2019
fac4413
Merge pull request #1504 from hrodward/patch-24
iliakan Oct 25, 2019
8d3fbcc
Fix typo.
carsca Oct 25, 2019
a0168c7
Update article.md
hrodward Oct 25, 2019
f2501bc
fix typo (#1520)
lex111 Oct 25, 2019
2bd1854
Update solution.md
hrodward Oct 25, 2019
d048324
Merge pull request #1505 from hrodward/patch-25
iliakan Oct 26, 2019
ec91bab
Merge pull request #1521 from hrodward/patch-24
iliakan Oct 26, 2019
db1e31b
Merge pull request #1519 from hrodward/patch-22
iliakan Oct 26, 2019
70ca842
minor
iliakan Oct 26, 2019
2a82d42
Update article.md
hrodward Oct 28, 2019
6a9bfe1
Update article.md
hrodward Oct 28, 2019
e70f039
string outputs without quotes
lumosmind Oct 28, 2019
bfb9b89
Update article.md
Violet-Bora-Lee Oct 28, 2019
b5725a8
'str' inside of 'start'
lumosmind Oct 28, 2019
8f85ab4
Update article.md (#1525)
lex111 Oct 28, 2019
e15a63c
Update article.md (#1526)
lex111 Oct 28, 2019
c06f0dd
string outputs without quotes (#1527)
lex111 Oct 28, 2019
2774d33
Update article.md (#1528)
lex111 Oct 28, 2019
4159a65
'str' inside of 'start' (#1529)
lex111 Oct 28, 2019
07a21c8
add attribute defination to arr.find()
lumosmind Oct 28, 2019
7371945
Missed function expression semicolon
iArazar Oct 28, 2019
24a6d29
Update article.md
Violet-Bora-Lee Oct 28, 2019
83cdced
fix a minor bug in the example
TomSssM Oct 28, 2019
634531a
Array type variables also supports values()
lumosmind Oct 28, 2019
d5195b5
closes #1524 #716
iliakan Oct 29, 2019
9fb2076
correction for code template consistency
lumosmind Oct 29, 2019
00bacf6
Removed extra "and" in a sentence
yogain123 Oct 29, 2019
3e48d52
Update article.md
hrodward Oct 29, 2019
54717a1
Update solution.md
hrodward Oct 29, 2019
b32ce2c
coding style conflict with the tutorial itself
lumosmind Oct 29, 2019
95495bd
linked list must end with 'null'
lumosmind Oct 29, 2019
2fd1a4e
removes russian text chunk from english text
TobiObeck Oct 29, 2019
d8958e2
Update article.md (#1533)
lex111 Oct 29, 2019
23778ed
removes russian text chunk from english text (#1544)
lex111 Oct 29, 2019
0998fce
Removed extra "and" in a sentence (#1537)
lex111 Oct 29, 2019
7510263
correction for code template consistency (#1536)
lex111 Oct 29, 2019
97cd2fc
function declaration vs function call conflict
lumosmind Oct 29, 2019
c5c94bc
closes #1547
iliakan Oct 29, 2019
e8947f7
Merge pull request #1546 from lumosmind/patch-14
iliakan Oct 29, 2019
bb3f9aa
Merge pull request #1543 from lumosmind/patch-12
iliakan Oct 29, 2019
2964aa0
Merge pull request #1542 from lumosmind/patch-11
iliakan Oct 29, 2019
8d45a7c
Merge pull request #1539 from hrodward/patch-35
iliakan Oct 29, 2019
77eedd8
Merge pull request #1538 from hrodward/patch-34
iliakan Oct 29, 2019
726f2a8
Merge pull request #1535 from lumosmind/patch-7
iliakan Oct 29, 2019
d4eaaf4
Merge pull request #1534 from TomSssM/patch-1
iliakan Oct 29, 2019
be6856d
closes #1532
iliakan Oct 29, 2019
4d02719
Merge pull request #1531 from iArazar/patch-1
iliakan Oct 29, 2019
601d958
Merge pull request #1530 from lumosmind/patch-5
iliakan Oct 29, 2019
028b408
Update article.md
hrodward Oct 29, 2019
ccccf10
Update article.md
hrodward Oct 30, 2019
c72735d
Update article.md
hrodward Oct 30, 2019
04893ae
arrow function instead of function
lumosmind Oct 30, 2019
aecf899
code non-compatible with clarification drawing
lumosmind Oct 30, 2019
80b6da1
code non-compatible with clarification drawing
lumosmind Oct 30, 2019
71fb491
minor
iliakan Oct 30, 2019
df58d3f
Merge pull request #1513 from hrodward/patch-31
lex111 Oct 30, 2019
1257501
Update article.md
hrodward Oct 31, 2019
5f37ad1
Update article.md
hrodward Oct 31, 2019
563d0a4
Update task.md
hrodward Oct 31, 2019
487c317
fix mini typo
richardzhanghub Oct 31, 2019
1bc2c9a
fix mini typo (#1559)
lex111 Oct 31, 2019
2a6d840
Fix syntax error
ogaclejapan Nov 1, 2019
107e5df
Merge pull request #1561 from ogaclejapan/fix-syntax
iliakan Nov 1, 2019
f3e4541
Merge pull request #1558 from hrodward/patch-36
iliakan Nov 1, 2019
b8dcadf
Merge pull request #1557 from hrodward/patch-35
iliakan Nov 1, 2019
eebbaa2
Merge pull request #1556 from hrodward/patch-31
iliakan Nov 1, 2019
80f3954
Merge pull request #1555 from lumosmind/patch-20
iliakan Nov 1, 2019
06c9dfe
Merge pull request #1554 from lumosmind/patch-19
iliakan Nov 1, 2019
24d3bec
Merge pull request #1553 from lumosmind/patch-18
iliakan Nov 1, 2019
7fcd048
Merge pull request #1551 from hrodward/patch-34
iliakan Nov 1, 2019
b2305ce
Merge pull request #1550 from hrodward/patch-22
iliakan Nov 1, 2019
81f171e
wrapper instead of helper
lumosmind Nov 2, 2019
da15e57
bug fix on the server
TomSssM Nov 2, 2019
a967ad0
closes #1560
iliakan Nov 2, 2019
ad08b46
fixes #1563
iliakan Nov 2, 2019
7f5fced
Merge pull request #1564 from lumosmind/patch-23
iliakan Nov 2, 2019
6732cef
fix
iliakan Nov 2, 2019
d4fd448
Merge pull request #1566 from TomSssM/tomsssm-patch-2
iliakan Nov 2, 2019
611fefd
fixes #1569
iliakan Nov 3, 2019
3ffa0be
minor fixes
Violet-Bora-Lee Nov 3, 2019
ec21af8
Merge pull request #1570 from Violet-Bora-Lee/master
iliakan Nov 3, 2019
5de15a7
merging all conflicts
iliakan Nov 4, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1 change: 1 addition & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
* text=auto eol=lf
*.svg binary
24 changes: 23 additions & 1 deletion 1-js/01-getting-started/1-intro/article.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,23 @@ Keling, JavaScript-da nima muhimligini, u bilan nimaga erisha olishimizni va qan

*JavaScript* dastlab *"veb-sahifalarni jonlantirish"* uchun yaratilgan edi.

<<<<<<< HEAD
Ushbu tilda dasturlar *skript* deb nomlanadi. Ular veb-sahifani HTML-da yozilishi mumkin va sahifa brauzer tomonidan yuklanganidan keyin ular avtomatik ravishda amalga oshiriladi.
=======
The programs in this language are called *scripts*. They can be written right in a web page's HTML and run automatically as the page loads.
>>>>>>> ec21af8aef6930388c06ee4cd8f8f6769f9d305b

Skriptlar oddiy matn sifatida taqdim etiladi va amalga oshiriladi. Ularni ishga tushirish uchun maxsus tayyorgarlik yoki kompilatsiya kerak emas.

Shu jihatdan, JavaScript [Java] (https://en.wikipedia.org/wiki/Java_(programming_language)) tilidan juda farq qiladi.

<<<<<<< HEAD
```smart header="Nega <u>Java</u>Script?"
JavaScript yaratilganda, u dastlab "LiveScript" nomi bilan taqdim etilgan edi. Ammo Java o'sha paytlarda juda mashhur edi, shuning uchun Java tilining "ukasi" sifatida yangi tilni taqdim etish g'oyasi JS mashhur bo'lishga yordam beradi deb hisoblangan .
=======
```smart header="Why is it called <u>Java</u>Script?"
When JavaScript was created, it initially had another name: "LiveScript". But Java was very popular at that time, so it was decided that positioning a new language as a "younger brother" of Java would help.
>>>>>>> ec21af8aef6930388c06ee4cd8f8f6769f9d305b

Ammo, rivojlanish jarayonida, JavaScript [ECMAScript] (http://en.wikipedia.org/wiki/ECMAScript) deb ataladigan o'z xususiyatiga ega to'liq mustaqil tilga aylangan va hozirda Java tiliga hech qanday aloqasi yo'q.
```
Expand Down Expand Up @@ -70,7 +79,7 @@ Examples of such restrictions include:
There are ways to interact with camera/microphone and other devices, but they require a user's explicit permission. So a JavaScript-enabled page may not sneakily enable a web-camera, observe the surroundings and send the information to the [NSA](https://en.wikipedia.org/wiki/National_Security_Agency).
- Different tabs/windows generally do not know about each other. Sometimes they do, for example when one window uses JavaScript to open the other one. But even in this case, JavaScript from one page may not access the other if they come from different sites (from a different domain, protocol or port).

This is called the "Same Origin Policy". To work around that, *both pages* must contain a special JavaScript code that handles data exchange.
This is called the "Same Origin Policy". To work around that, *both pages* must agree for data exchange and contain a special JavaScript code that handles it. We'll cover that in the tutorial.

This limitation is, again, for the user's safety. A page from `http://anysite.com` which a user has opened must not be able to access another browser tab with the URL `http://gmail.com` and steal information from there.
- JavaScript can easily communicate over the net to the server where the current page came from. But its ability to receive data from other sites/domains is crippled. Though possible, it requires explicit agreement (expressed in HTTP headers) from the remote side. Once again, that's a safety limitation.
Expand All @@ -92,9 +101,13 @@ JavaScript - bu uchta narsani birlashtirgan yagona brauzer texnologiyasidir.

Bu JavaScript-ni noyob qiladi. Shuning uchun u brauzer interfeyslarini yaratishda eng keng tarqalgan vositadir.

<<<<<<< HEAD
Yangi texnologiyani o'rganishni rejalashtirayotib, uning istiqbollarini tekshirish ham muhimdir. Keling, zamonaviy tendentsiyalarga o'taylik.

## JavaScript "ustidan" qo'llanadigan tillar
=======
That said, JavaScript also allows to create servers, mobile applications, etc.
>>>>>>> ec21af8aef6930388c06ee4cd8f8f6769f9d305b

JavaScript-ning sintaksisi hammaning ehtiyojlariga mos kelmaydi. Turli odamlar turli xususiyatlarni xohlashadi.

Expand All @@ -110,9 +123,18 @@ Bunday tillarning namunalari:
- [TypeScript] (http://www.typescriptlang.org/) murakkab tizimlarni ishlab chiqish, soddalashtirish va qo'llab-quvvatlash uchun "strict data typing"ni qo'shishga qaratilgan. Microsoft tomonidan ishlab chiqilgan.
- [Dart] (https://www.dartlang.org/) brauzer bo'lmagan muhitda (mobil ilovalar kabi) ishlaydigan o'z dvigateliga ega bo'lgan mustaqil til. Bu dastlab JavaScript uchun zaxira sifatida Google tomonidan taklif etildi, lekin hozirgi paytda, brauzerlar shu tilni ham JS-ga transpilatsiya bo'lishini talab qilishadi.

<<<<<<< HEAD
Bundan ham ko'proq tillar mavjud. Albatta, biz bu tillardan birini ishlatsak ham, biz nima qilayotganimizni tushunish uchun JavaScript-ni bilishimiz kerak.

## Xulosa
=======
- [CoffeeScript](http://coffeescript.org/) is a "syntactic sugar" for JavaScript. It introduces shorter syntax, allowing us to write clearer and more precise code. Usually, Ruby devs like it.
- [TypeScript](http://www.typescriptlang.org/) is concentrated on adding "strict data typing" to simplify the development and support of complex systems. It is developed by Microsoft.
- [Flow](http://flow.org/) also adds data typing, but in a different way. Developed by Facebook.
- [Dart](https://www.dartlang.org/) is a standalone language that has its own engine that runs in non-browser environments (like mobile apps), but also can be transpiled to JavaScript. Developed by Google.

There are more. Of course, even if we use one of transpiled languages, we should also know JavaScript to really understand what we're doing.
>>>>>>> ec21af8aef6930388c06ee4cd8f8f6769f9d305b

- JavaScript dastlab brauzer tili sifatida yaratilgan, ammo hozirgi paytda ko'pgina boshqa muhitlarda ham qo'llanilmoqda.
- Bugun JavaScript HTML/CSS bilan to'la integratsiyalashgan va eng keng tarqalgan brauzer tili hisoblanadi.
Expand Down
42 changes: 42 additions & 0 deletions 1-js/01-getting-started/2-manuals-specifications/article.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@

# Manuals and specifications

This book is a *tutorial*. It aims to help you gradually learn the language. But once you're familiar with the basics, you'll need other sources.

## Specification

[The ECMA-262 specification](https://www.ecma-international.org/publications/standards/Ecma-262.htm) contains the most in-depth, detailed and formalized information about JavaScript. It defines the language.

But being that formalized, it's difficult to understand at first. So if you need the most trustworthy source of information about the language details, the specification is the right place. But it's not for everyday use.

A new specification version is released every year. In-between these releases, the latest specification draft is at <https://tc39.es/ecma262/>.

To read about new bleeding-edge features, including those that are "almost standard" (so-called "stage 3"), see proposals at <https://github.com/tc39/proposals>.

Also, if you're in developing for the browser, then there are other specs covered in the [second part](info:browser-environment) of the tutorial.

## Manuals

- **MDN (Mozilla) JavaScript Reference** is a manual with examples and other information. It's great to get in-depth information about individual language functions, methods etc.

One can find it at <https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference>.

Although, it's often best to use an internet search instead. Just use "MDN [term]" in the query, e.g. <https://google.com/search?q=MDN+parseInt> to search for `parseInt` function.


- **MSDN** – Microsoft manual with a lot of information, including JavaScript (often referred to as JScript). If one needs something specific to Internet Explorer, better go there: <http://msdn.microsoft.com/>.

Also, we can use an internet search with phrases such as "RegExp MSDN" or "RegExp MSDN jscript".

## Compatibility tables

JavaScript is a developing language, new features get added regularly.

To see their support among browser-based and other engines, see:

- <http://caniuse.com> - per-feature tables of support, e.g. to see which engines support modern cryptography functions: <http://caniuse.com/#feat=cryptography>.
- <https://kangax.github.io/compat-table> - a table with language features and engines that support those or don't support.

All these resources are useful in real-life development, as they contain valuable information about language details, their support etc.

Please remember them (or this page) for the cases when you need in-depth information about a particular feature.
Original file line number Diff line number Diff line change
Expand Up @@ -12,14 +12,12 @@ An IDE loads the project (which can be many files), allows navigation between fi

If you haven't selected an IDE yet, consider the following options:

- [WebStorm](http://www.jetbrains.com/webstorm/) for frontend development. The same company offers other editors for other languages (paid).
- [Netbeans](http://netbeans.org/) (free).
- [Visual Studio Code](https://code.visualstudio.com/) (cross-platform, free).
- [WebStorm](http://www.jetbrains.com/webstorm/) (cross-platform, paid).

All of these IDEs are cross-platform.
For Windows, there's also "Visual Studio", not to be confused with "Visual Studio Code". "Visual Studio" is a paid and mighty Windows-only editor, well-suited for the .NET platform. It's also good at JavaScript. There's also a free version [Visual Studio Community](https://www.visualstudio.com/vs/community/).

For Windows, there's also "Visual Studio", not to be confused with "Visual Studio Code." "Visual Studio" is a paid and mighty Windows-only editor, well-suited for the .NET platform. A free version of it is called [Visual Studio Community](https://www.visualstudio.com/vs/community/).

Many IDEs are paid but have a trial period. Their cost is usually negligible compared to a qualified developer's salary, so just choose the best one for you.
Many IDEs are paid, but have a trial period. Their cost is usually negligible compared to a qualified developer's salary, so just choose the best one for you.

## Lightweight editors

Expand All @@ -33,21 +31,12 @@ In practice, lightweight editors may have a lot of plugins including directory-l

The following options deserve your attention:

- [Visual Studio Code](https://code.visualstudio.com/) (cross-platform, free) also has many IDE-like features.
- [Atom](https://atom.io/) (cross-platform, free).
- [Visual Studio Code](https://code.visualstudio.com/) (cross-platform, free).
- [Sublime Text](http://www.sublimetext.com) (cross-platform, shareware).
- [Notepad++](https://notepad-plus-plus.org/) (Windows, free).
- [Vim](http://www.vim.org/) and [Emacs](https://www.gnu.org/software/emacs/) are also cool if you know how to use them.

## My favorites

The personal preference of the author is to have both an IDE for projects and a lightweight editor for quick and easy file editing.

I'm using:

- As an IDE for JS -- [WebStorm](http://www.jetbrains.com/webstorm/) (I switch to one of the other JetBrains offerings when using other languages)
- As a lightweight editor -- [Sublime Text](http://www.sublimetext.com) or [Atom](https://atom.io/).

## Let's not argue

The editors in the lists above are those that either I or my friends whom I consider good developers have been using for a long time and are happy with.
Expand Down
Binary file removed 1-js/01-getting-started/3-devtools/safari.png
Binary file not shown.
Binary file removed 1-js/01-getting-started/3-devtools/safari@2x.png
Binary file not shown.
Original file line number Diff line number Diff line change
Expand Up @@ -50,11 +50,11 @@ Open Preferences and go to the "Advanced" pane. There's a checkbox at the bottom

Now `key:Cmd+Opt+C` can toggle the console. Also, note that the new top menu item named "Develop" has appeared. It has many commands and options.

## Multi-line input

```smart header="Multi-line input"
Usually, when we put a line of code into the console, and then press `key:Enter`, it executes.

To insert multiple lines, press `key:Shift+Enter`.
To insert multiple lines, press `key:Shift+Enter`. This way one can enter long fragments of JavaScript code.
```

## Summary

Expand Down
Binary file added 1-js/01-getting-started/4-devtools/safari.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added 1-js/01-getting-started/4-devtools/safari@2x.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
10 changes: 4 additions & 6 deletions 1-js/02-first-steps/01-hello-world/article.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Hello, world!

The tutorial that you're reading is about core JavaScript, which is platform-independent. Later on, you'll learn about Node.js and other platforms that use it.
This part of the tutorial is about core JavaScript, the language itself.

But we need a working environment to run our scripts and, since this book is online, the browser is a good choice. We'll keep the amount of browser-specific commands (like `alert`) to a minimum so that you don't spend time on them if you plan to concentrate on another environment (like Node.js). We'll focus on JavaScript in the browser in the [next part](/ui) of the tutorial.

Expand Down Expand Up @@ -46,7 +46,7 @@ The `<script>` tag contains JavaScript code which is automatically executed when
The `<script>` tag has a few attributes that are rarely used nowadays but can still be found in old code:

The `type` attribute: <code>&lt;script <u>type</u>=...&gt;</code>
: The old HTML standard, HTML4, required a script to have a `type`. Usually it was `type="text/javascript"`. It's not required anymore. Also, the modern HTML standard, HTML5, totally changed the meaning of this attribute. Now, it can be used for JavaScript modules. But that's an advanced topic; we'll talk about modules in another part of the tutorial.
: The old HTML standard, HTML4, required a script to have a `type`. Usually it was `type="text/javascript"`. It's not required anymore. Also, the modern HTML standard totally changed the meaning of this attribute. Now, it can be used for JavaScript modules. But that's an advanced topic; we'll talk about modules in another part of the tutorial.

The `language` attribute: <code>&lt;script <u>language</u>=...&gt;</code>
: This attribute was meant to show the language of the script. This attribute no longer makes sense because JavaScript is the default language. There is no need to use it.
Expand All @@ -60,7 +60,7 @@ Comments before and after scripts.
//--></script>
```

This trick isn't used in modern JavaScript. These comments hid JavaScript code from old browsers that didn't know how to process the `<script>` tag. Since browsers released in the last 15 years don't have this issue, this kind of comment can help you identify really old code.
This trick isn't used in modern JavaScript. These comments hide JavaScript code from old browsers that didn't know how to process the `<script>` tag. Since browsers released in the last 15 years don't have this issue, this kind of comment can help you identify really old code.


## External scripts
Expand All @@ -73,9 +73,7 @@ Script files are attached to HTML with the `src` attribute:
<script src="/path/to/script.js"></script>
```

Here, `/path/to/script.js` is an absolute path to the script file (from the site root).

You can also provide a relative path from the current page. For instance, `src="script.js"` would mean a file `"script.js"` in the current folder.
Here, `/path/to/script.js` is an absolute path to the script from the site root. One can also provide a relative path from the current page. For instance, `src="script.js"` would mean a file `"script.js"` in the current folder.

We can give a full URL as well. For instance:

Expand Down
18 changes: 12 additions & 6 deletions 1-js/02-first-steps/03-strict-mode/article.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ For a long time, JavaScript evolved without compatibility issues. New features w

That had the benefit of never breaking existing code. But the downside was that any mistake or an imperfect decision made by JavaScript's creators got stuck in the language forever.

This was the case until 2009 when ECMAScript 5 (ES5) appeared. It added new features to the language and modified some of the existing ones. To keep the old code working, most modifications are off by default. You need to explicitly enable them with a special directive: `"use strict"`.
This was the case until 2009 when ECMAScript 5 (ES5) appeared. It added new features to the language and modified some of the existing ones. To keep the old code working, most such modifications are off by default. You need to explicitly enable them with a special directive: `"use strict"`.

## "use strict"

Expand All @@ -19,9 +19,7 @@ For example:
...
```

We will learn functions (a way to group commands) soon.

Looking ahead, let's just note that `"use strict"` can be put at the start of most kinds of functions instead of the whole script. Doing that enables strict mode in that function only. But usually, people use it for the whole script.
We will learn functions (a way to group commands) soon. Looking ahead, let's note that `"use strict"` can be put at the beginning of the function body instead of the whole script. Doing that enables strict mode in that function only. But usually, people use it for the whole script.


````warn header="Ensure that \"use strict\" is at the top"
Expand Down Expand Up @@ -53,9 +51,17 @@ For the future, when you use a browser console to test features, please note tha

Sometimes, when `use strict` makes a difference, you'll get incorrect results.

Even if we press `key:Shift+Enter` to input multiple lines, and put `use strict` on top, it doesn't work. That's because of how the console executes the code internally.
You can try to press `key:Shift+Enter` to input multiple lines, and put `use strict` on top, like this:

```js
'use strict'; <Shift+Enter for a newline>
// ...your code
<Enter to run>
```

It works in most browsers, namely Firefox and Chrome.

The reliable way to ensure `use strict` would be to input the code into console like this:
If it doesn't, the most reliable way to ensure `use strict` would be to input the code into console like this:

```js
(function() {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
First, the variable for the name of our planet.
## The variable for our planet

That's simple:

Expand All @@ -8,7 +8,7 @@ let ourPlanetName = "Earth";

Note, we could use a shorter name `planet`, but it might be not obvious what planet it refers to. It's nice to be more verbose. At least until the variable isNotTooLong.

Second, the name of the current visitor:
## The name of the current visitor

```js
let currentUserName = "John";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@ We generally use upper case for constants that are "hard-coded". Or, in other wo

In this code, `birthday` is exactly like that. So we could use the upper case for it.

In contrast, `age` is evaluated in run-time. Today we have one age, a year after we'll have another one. It is constant in a sense that it does not change through the code execution. But it is a bit "less of a constant" than `birthday`, it is calculated, so we should keep the lower case for it.
In contrast, `age` is evaluated in run-time. Today we have one age, a year after we'll have another one. It is constant in a sense that it does not change through the code execution. But it is a bit "less of a constant" than `birthday`: it is calculated, so we should keep the lower case for it.
Loading