Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
857 commits
Select commit Hold shift + click to select a range
e9dfecc
Merge pull request #2986 from Rnbsov/patch-37
iliakan May 3, 2022
254f82f
Merge pull request #2985 from Rnbsov/patch-36
iliakan May 3, 2022
7af623e
Merge pull request #2984 from Rnbsov/patch-35
iliakan May 3, 2022
5015a76
Merge pull request #2963 from Luca1152/patch-2
iliakan May 3, 2022
e27d5ca
Merge pull request #2962 from Luca1152/patch-1
iliakan May 3, 2022
b60f9fc
Merge pull request #2960 from Rnbsov/patch-26
iliakan May 3, 2022
54c3fb9
Merge pull request #2959 from Rnbsov/patch-25
iliakan May 3, 2022
a3a1492
Merge pull request #2958 from pavansuthar/pavan-patch-01
iliakan May 3, 2022
c01efda
minor fixes
iliakan May 3, 2022
e74245e
Merge pull request #2957 from TimothyRuszala/patch-1
iliakan May 3, 2022
206485f
Merge pull request #2956 from leviding/patch-43
iliakan May 3, 2022
1dcf503
add commas
Rnbsov May 6, 2022
1402f70
remove one extra break line
Rnbsov May 6, 2022
d1f5023
Grammatical fix.
rebeccacremona May 6, 2022
3be0d3e
remove one extra break line
Rnbsov May 7, 2022
5fcdfc7
smth
Rnbsov May 7, 2022
2f56ecf
add a missed break line
Rnbsov May 7, 2022
d84ebc2
remove extra break lines
Rnbsov May 7, 2022
060d8fe
remove another one extra break line
Rnbsov May 7, 2022
35d465c
add comma
Rnbsov May 7, 2022
5fa8679
add dot
Rnbsov May 7, 2022
598ca68
👾 Update summary section
Rnbsov May 9, 2022
fcfc47a
minor improvements
OmerBaddour May 9, 2022
12d8d59
Update jsdoc link
erickyellott May 10, 2022
f26d06b
Polyfill article tweaks
erickyellott May 11, 2022
f7d079c
Small grammatical tweaks to garbage collection
erickyellott May 11, 2022
023b9d5
Merge pull request #3003 from yellottyellott/garbage-collection
iliakan May 12, 2022
e00e87c
Merge pull request #3001 from yellottyellott/yellottyellott-polyfill
iliakan May 12, 2022
012343b
Merge pull request #2990 from Rnbsov/patch-40
iliakan May 12, 2022
b80af11
Merge pull request #2998 from OmerBaddour/master
iliakan May 12, 2022
8b66d02
Merge pull request #2991 from rebeccacremona/rebeccacremona-patch-1
iliakan May 12, 2022
9aee5fc
Merge pull request #2993 from Rnbsov/patch-42
iliakan May 12, 2022
cff1531
Merge pull request #2999 from yellottyellott/patch-1
iliakan May 12, 2022
e5fc2f1
Merge pull request #2997 from Rnbsov/patch-44
iliakan May 12, 2022
89684c6
minor fixes
iliakan May 12, 2022
2281506
integrates #2996
iliakan May 12, 2022
79b9b84
closes #2988
iliakan May 12, 2022
b70d332
👾 smth
Rnbsov May 12, 2022
2901e0c
Merge pull request #2992 from Rnbsov/patch-41
iliakan May 12, 2022
88ce8fa
👾 smth
Rnbsov May 12, 2022
98e7e6b
minor fixes
OmerBaddour May 12, 2022
576005b
minor fixes
OmerBaddour May 13, 2022
fb31361
rephrase
joaquinelio May 13, 2022
ad50be1
👾 just add missed break line
Rnbsov May 14, 2022
bb14500
✅ fixed a typo
Rnbsov May 14, 2022
a85e802
👾 remove one extra break line
Rnbsov May 14, 2022
60209e6
👾 just add another one missed break line
Rnbsov May 14, 2022
9cceef1
👾 smth
Rnbsov May 15, 2022
38f5cad
Update about.md (change "data" field to "value")
May 16, 2022
98be74f
⚡ placed missed break line
Rnbsov May 17, 2022
212c527
⚡ add missed break line and remove extra one
Rnbsov May 17, 2022
98899d8
⚡ add missed one
Rnbsov May 17, 2022
f2a4aff
Update article.md
super-salad May 19, 2022
df1523a
👾 add information about test functions to summary section
Rnbsov May 21, 2022
ef5bb39
👾 smth
Rnbsov May 21, 2022
d5e8b6d
minor fixes
iliakan May 21, 2022
1dc7900
👾smth
Rnbsov May 21, 2022
6d723f4
👾 update `JSdoc` github link
Rnbsov May 22, 2022
1c439bf
just add a comma
imzero9 May 22, 2022
d2e7ac4
typo
joaquinelio May 23, 2022
1d6dc01
minor change
joaquinelio May 23, 2022
2efe0dc
Merge pull request #3022 from joaquinelio/patch-14
iliakan May 23, 2022
825cf30
👾fix typo
Rnbsov May 23, 2022
c7cc166
👾 add clarifying example
Rnbsov May 23, 2022
741db31
Update article.md
IamRahulShaw May 25, 2022
95163bb
👾 fix typo
Rnbsov May 27, 2022
293c9b7
👾 smth
Rnbsov May 27, 2022
15ed0d0
👾 add missed break line
Rnbsov May 27, 2022
070b777
👾 smth
Rnbsov May 27, 2022
7dd8d4c
👾 just update link
Rnbsov May 27, 2022
5f28cbb
Add an absent importance value for a closure task
alfemy Jun 2, 2022
41da5cd
updated solution.md
jarede-dev Jun 5, 2022
0ece900
add a method to remove style property
Jun 6, 2022
61888a2
👾 fix typo
Rnbsov Jun 7, 2022
d9ab4cf
👾 smth
Rnbsov Jun 7, 2022
fec6e3d
👾 smth
Rnbsov Jun 7, 2022
a794212
fix: typo
tanishk15sharma Jun 8, 2022
00689d3
Merge pull request #3042 from tanishk15sharma/patch-1
iliakan Jun 8, 2022
ec84c3f
difference, is different
joaquinelio Jun 8, 2022
e8853e6
Update article.md
joaquinelio Jun 9, 2022
e740893
👾 add break line
Rnbsov Jun 10, 2022
c5dd0c1
Update article.md
josephharkins Jun 10, 2022
c794919
Spelling error
josephharkins Jun 12, 2022
5ff69b0
Grammer fix
josephharkins Jun 12, 2022
28bcd0d
Fix link to MDN bitwise operator docs in (2.18)Javascript specials
nalinipradash Jun 12, 2022
d9f4ff6
Merge pull request #3053 from nintendoit/patch-1
iliakan Jun 12, 2022
ca4c4bb
Merge pull request #3040 from Rnbsov/patch-59
iliakan Jun 12, 2022
08d5c71
Merge pull request #3051 from josephharkins/josephharkins-patch-2
iliakan Jun 12, 2022
669e6fc
Merge pull request #3049 from josephharkins/josephharkins-patch-1
iliakan Jun 12, 2022
8ddceab
Merge pull request #3048 from Rnbsov/patch-64
iliakan Jun 12, 2022
7bb6066
Merge pull request #3046 from joaquinelio/patch-15
iliakan Jun 12, 2022
8473bb1
Merge pull request #3043 from joaquinelio/patch-14
iliakan Jun 13, 2022
099881d
Merge pull request #3038 from webFardin/master
iliakan Jun 13, 2022
7a23653
Merge pull request #3015 from super-salad/patch-1
iliakan Jun 13, 2022
5fc0a63
Merge pull request #3037 from jarede-dev/patch-1
iliakan Jun 13, 2022
51c7474
minor fixes
iliakan Jun 13, 2022
248fe0d
Merge pull request #3034 from alfemy/master
iliakan Jun 13, 2022
e4d8547
Merge pull request #3029 from Rnbsov/patch-58
iliakan Jun 13, 2022
05a2b8d
Merge pull request #3028 from Rnbsov/patch-57
iliakan Jun 13, 2022
0934030
Merge pull request #3027 from Rnbsov/patch-56
iliakan Jun 13, 2022
9e72417
Merge pull request #3026 from IamRahulShaw/patch-1
iliakan Jun 13, 2022
7e19bb6
Fixed setTimeout() issue
Jun 13, 2022
da645b5
Merge pull request #3016 from Rnbsov/patch-50
iliakan Jun 13, 2022
dd0ac42
Merge pull request #3017 from Rnbsov/patch-51
iliakan Jun 13, 2022
48106d7
Merge pull request #3018 from Rnbsov/patch-52
iliakan Jun 13, 2022
fff1f64
Merge pull request #3020 from Nayoung-Gu/patch-1
iliakan Jun 13, 2022
dc4d32d
Merge pull request #3021 from joaquinelio/patch-13
iliakan Jun 13, 2022
97202cb
Merge pull request #3023 from Rnbsov/patch-53
iliakan Jun 13, 2022
c028189
Merge pull request #3025 from Rnbsov/patch-55
iliakan Jun 13, 2022
bebcbfa
minor fixes
iliakan Jun 13, 2022
c3b904d
minor fixes
iliakan Jun 14, 2022
2e52d03
Fix typo in text
smith558 Jun 15, 2022
acac4dc
Update article.md
Binu42 Jun 16, 2022
250f9a3
Clarify confusing point
smith558 Jun 16, 2022
556bd7f
Fix grammar and phrasing
smith558 Jun 16, 2022
098f43f
Update text
smith558 Jun 16, 2022
392b191
Merge pull request #3008 from Rnbsov/patch-45
iliakan Jun 18, 2022
82f42cf
Merge pull request #3010 from Rnbsov/patch-47
iliakan Jun 18, 2022
d859d47
Merge pull request #3011 from Rnbsov/patch-48
iliakan Jun 18, 2022
d6ea9ca
Merge pull request #3012 from AmirHasanzade/patch-1
iliakan Jun 18, 2022
325ba6d
Merge pull request #3013 from Rnbsov/patch-49
iliakan Jun 18, 2022
47fec27
Merge pull request #3054 from webFardin/patch-4
iliakan Jun 18, 2022
d81a142
Merge pull request #3056 from smith558/patch-1
iliakan Jun 18, 2022
c08dec6
Merge pull request #3057 from Binu42/patch-1
iliakan Jun 18, 2022
9787f36
Merge pull request #3058 from smith558/patch-2
iliakan Jun 18, 2022
77d8c73
closes #3059
iliakan Jun 18, 2022
964c7db
Merge pull request #3060 from smith558/patch-4
iliakan Jun 18, 2022
8b295f6
closes #3062
iliakan Jun 18, 2022
02b43db
Merge pull request #3005 from joaquinelio/patch-11
iliakan Jun 18, 2022
7febbb9
Merge pull request #2989 from Rnbsov/patch-39
iliakan Jun 18, 2022
c3b5dc1
Merge pull request #3004 from OmerBaddour/master
iliakan Jun 18, 2022
25952f0
Merge pull request #2902 from jeffchase/patch-1
iliakan Jun 18, 2022
727786b
Fix typo
smith558 Jun 18, 2022
ed4a212
closes #3035
iliakan Jun 19, 2022
787638b
👾 smth
Rnbsov Jun 19, 2022
7c3e3e4
Fix language errors and fix broken link
peterhauke Jun 19, 2022
965bd68
Merge pull request #3064 from smith558/patch-1
iliakan Jun 19, 2022
bb6667a
closes #3061
iliakan Jun 19, 2022
2daedb8
closes #3019
iliakan Jun 19, 2022
6d3d668
minor fixes
iliakan Jun 19, 2022
531dced
Merge pull request #3065 from Rnbsov/patch-65
iliakan Jun 19, 2022
903bbbd
fixes #3032
iliakan Jun 19, 2022
4910751
minor fixes
iliakan Jun 19, 2022
7964b11
Merge pull request #3069 from peterhauke/patch-1
iliakan Jun 19, 2022
b2f547f
A typo fix `updateneeded` in IndexedDB
weilonge Jun 20, 2022
04c113c
👾 smth
Rnbsov Jun 20, 2022
3e72030
👾 some change to summary section
Rnbsov Jun 20, 2022
d74b37c
Fixed a typo
Jun 21, 2022
81fb2ab
Add separation between primitives and objects to the summary
chilipenko Jun 21, 2022
b30b705
WebSocket, Eng grammar
joaquinelio Jun 21, 2022
07727ee
"and" instead of "/" just to match previous line
joaquinelio Jun 22, 2022
dde15c9
Improve English language/correct grammar
peterhauke Jun 22, 2022
a134d67
Fix one more missing word
peterhauke Jun 22, 2022
759a730
Merge pull request #3077 from joaquinelio/linky
iliakan Jun 23, 2022
fd1278e
Merge pull request #3075 from chilipenko/1-02-05-data-types-separation
iliakan Jun 23, 2022
2293559
Merge pull request #3074 from webFardin/patch-5
iliakan Jun 23, 2022
23047ab
Merge pull request #3073 from Rnbsov/patch-70
iliakan Jun 23, 2022
c29689a
minor fixes
iliakan Jun 23, 2022
3035448
Merge pull request #3070 from weilonge/patch-1
iliakan Jun 23, 2022
45ba0d1
Merge pull request #3078 from joaquinelio/patch-11
iliakan Jun 23, 2022
72892df
Fixed typo
josephharkins Jun 23, 2022
7d9ca8b
closes #3039, #3082
iliakan Jun 26, 2022
f16e0c8
minor fixes
iliakan Jun 26, 2022
2fa4644
promise grammar sugestions
joaquinelio Jun 26, 2022
30a5d5e
Merge pull request #3083 from joaquinelio/patch-11
iliakan Jun 26, 2022
f569591
docs: add output comment in Symbols article
radlinskii Jun 27, 2022
c20debc
closes #3014
iliakan Jun 28, 2022
8b00668
Merge pull request #3084 from radlinskii/patch-1
iliakan Jun 28, 2022
d8597dd
Merge pull request #3081 from josephharkins/master
iliakan Jun 28, 2022
8ffd3f4
minor fixes
iliakan Jun 28, 2022
fe1c4a2
minor fixes
iliakan Jun 29, 2022
2bea6d7
Update article.md
printfinn Jul 1, 2022
d399df7
Remove language style improvements
peterhauke Jul 2, 2022
79b7f7c
update integers range in Data types chapter
chilipenko Jul 2, 2022
8b805b9
several fixes in Number chapter
chilipenko Jul 2, 2022
6726909
fixed incorrect apostrophe mark
chilipenko Jul 2, 2022
e2fc41e
fixed wikipedia link to IEEE-754 standard
chilipenko Jul 2, 2022
4b6654c
minor fixes
iliakan Jul 6, 2022
393efb7
fix: changed 'template' to '<custom-menu>'
Aleksey28 Jul 7, 2022
3b219ad
Merge pull request #3079 from peterhauke/patch-1
iliakan Jul 9, 2022
30b7e1d
Update article.md
leviding Jul 10, 2022
eedb3f3
Merge pull request #3088 from printfinn/patch-1
iliakan Jul 10, 2022
994eeb4
Merge pull request #3094 from leviding/patch-1
iliakan Jul 10, 2022
4124357
Merge pull request #3090 from Aleksey28/shadow
iliakan Jul 10, 2022
1375004
Merge pull request #3089 from chilipenko/fix-range-for-number-type
iliakan Jul 10, 2022
82ed8f1
minor fixes
iliakan Jul 10, 2022
9cd5bc5
Fix Typo
icarrington Jul 11, 2022
a04ee52
Removed Atom (Sunsetted) From List Of Code Editors
nayanadasgupta Jul 12, 2022
5dacac7
Merge pull request #3095 from icarrington/new_branch
iliakan Jul 13, 2022
55d806d
Merge pull request #3098 from nayanadasgupta/3097-remove-atom-from-li…
iliakan Jul 13, 2022
dc9683e
misspell
joaquinelio Jul 13, 2022
a89d952
Removed incorrect info on tail recursion
jbritton6 Jul 13, 2022
18cecd3
Additional info on tail-recursion definition
jbritton6 Jul 13, 2022
0d7f954
Update index.html
iwanderer Jul 14, 2022
0004be1
Update article.md
xmready Jul 14, 2022
374d0b3
add runs buttons
Rnbsov Jul 15, 2022
7000ede
Merge pull request #3104 from xmready/master
iliakan Jul 15, 2022
410279a
Update precedence for ??, It's 3 instead of 4
san1811 Jul 16, 2022
9cba389
Fix typo in pointercancel section
dreamleak Jul 16, 2022
1bbb11c
Update article.md
xmready Jul 18, 2022
52a6df9
feat: type conversion for string with whitespace
leviding Jul 20, 2022
69d180e
Update the operator precedence table
romanstetsyk Jul 21, 2022
2118abb
Update article.md
bhushan Jul 25, 2022
e850873
docs: fix typo (missing verb)
kushanksriraj Jul 27, 2022
f505ecb
Update conditions for choosing between toString and valueOf
chilipenko Jul 28, 2022
abaaae5
Add Number.isNaN and Number.isFinite
chilipenko Aug 1, 2022
5a43f6f
Correcting for correct precedence number
LarsiParsii Aug 2, 2022
187dee3
Fixed a typo
gionathas Aug 5, 2022
b693927
fix: typo
leviding Aug 5, 2022
f54a20a
fix: typo
leviding Aug 7, 2022
03dfa1d
Fix typos in array methods article.md
psychemist Aug 7, 2022
9c0337d
fix: shash -> backslash
leviding Aug 7, 2022
35e2ed2
FIX: "ReferenceError: arr is not defined"
rmarasigan Aug 8, 2022
49af0be
Correct the English and made minor improvements
peterhauke Aug 8, 2022
ebe29f2
Update article.md (fix '??' and '||' operators precedence number)
Aug 9, 2022
7df4cbb
Add Number.isNaN and Number.isFinite to the summary
chilipenko Aug 11, 2022
91ec60d
Commentary in the wrong line
betofc89 Aug 11, 2022
03c5ceb
fix: typo
leviding Aug 13, 2022
4935538
Edit precedence of `??` and `||`
SUPERustam Aug 13, 2022
b923029
Merge pull request #3146 from SUPERustam/patch-1
iliakan Aug 14, 2022
e6b86f9
Merge pull request #3108 from dreamleak/patch-1
iliakan Aug 14, 2022
313b174
Merge pull request #3110 from xmready/patch-1
iliakan Aug 14, 2022
5d57a04
closes #3111
iliakan Aug 14, 2022
caaa05b
Merge pull request #3113 from leviding/patch-2
iliakan Aug 14, 2022
15dacc1
Merge pull request #3117 from romanstetsyk/master
iliakan Aug 14, 2022
e82267e
Merge pull request #3118 from bhushan/patch-1
iliakan Aug 14, 2022
c7da1a0
closes #3119
iliakan Aug 14, 2022
ed1b44e
Merge pull request #3120 from kushanksriraj/patch-1
iliakan Aug 14, 2022
f0f4366
Merge pull request #3121 from chilipenko/patch-1
iliakan Aug 14, 2022
962fa79
closes #3122
iliakan Aug 14, 2022
3bfb6cd
Merge pull request #3125 from chilipenko/patch-2
iliakan Aug 14, 2022
8d4df20
minor fixes
iliakan Aug 14, 2022
422bc3b
Merge pull request #3128 from LarsiParsii/patch-1
iliakan Aug 14, 2022
e76420a
Merge pull request #3130 from gionny96/patch-1
iliakan Aug 14, 2022
f9e0a8b
Merge pull request #3131 from leviding/patch-3
iliakan Aug 14, 2022
bc0b21c
Merge pull request #3133 from leviding/patch-4
iliakan Aug 14, 2022
2dbb4f5
Merge pull request #3134 from 110nard0/patch-1
iliakan Aug 14, 2022
12cc61f
Merge pull request #3135 from leviding/patch-5
iliakan Aug 14, 2022
d98cf52
Merge pull request #3136 from rmarasigan/patch-1
iliakan Aug 14, 2022
eee5b94
Merge pull request #3139 from peterhauke/patch-3
iliakan Aug 14, 2022
1eb3a57
Merge pull request #3140 from vcodepro/master
iliakan Aug 14, 2022
2f9a190
Merge pull request #3142 from betofc89/patch-1
iliakan Aug 14, 2022
6a18f47
Merge pull request #3145 from leviding/patch-6
iliakan Aug 14, 2022
4f3b02f
Merge pull request #3107 from san1811/patch-1
iliakan Aug 14, 2022
fb76d3b
Merge pull request #3105 from Rnbsov/patch-73
iliakan Aug 14, 2022
01f6378
Merge pull request #3103 from iwanderer/patch-1
iliakan Aug 14, 2022
4a98342
Merge pull request #3101 from jbritton6/patch-1
iliakan Aug 14, 2022
cbd7d78
Merge pull request #3100 from joaquinelio/patch-11
iliakan Aug 14, 2022
72aa4f0
minor fixes
iliakan Aug 14, 2022
515d406
merging all conflicts
iliakan Aug 15, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -21,3 +21,4 @@ sftp-config.json
Thumbs.db


/svgs
71 changes: 70 additions & 1 deletion 1-js/01-getting-started/1-intro/article.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,20 +29,40 @@

من الجيد تذكر المصطلحات الواردة أعلاه لأنها مستخدمة في مقالات المطورين على الإنترنت. سنستخدمهم أيضًا. على سبيل المثال ، إذا كانت "الميزة إكس مدعومة بواسطة في8" ، فمن المحتمل أنها تعمل في كروم و أوبرا.

<<<<<<< HEAD
```smart header="كيف تعمل المحركات؟"

المحركات معقدة. ولكن الأساسيات بسيطه .
=======
- [V8](https://en.wikipedia.org/wiki/V8_(JavaScript_engine)) -- in Chrome, Opera and Edge.
- [SpiderMonkey](https://en.wikipedia.org/wiki/SpiderMonkey) -- in Firefox.
- ...There are other codenames like "Chakra" for IE, "JavaScriptCore", "Nitro" and "SquirrelFish" for Safari, etc.

The terms above are good to remember because they are used in developer articles on the internet. We'll use them too. For instance, if "a feature X is supported by V8", then it probably works in Chrome, Opera and Edge.
>>>>>>> 72aa4f0b9783a38155dd766ef50f025e672cfcee

١. يقرأ ("يحلّل") المحرك (المثبت إذا كان متصفحًا) السكريبت.

٢. ثم يحول ("يترجم") السكربت الى لغة الآلة.

<<<<<<< HEAD
٣. وبعد ذلك يتم تشغيل رموز الآلة، بسرعة كبيرة.
=======
1. The engine (embedded if it's a browser) reads ("parses") the script.
2. Then it converts ("compiles") the script to machine code.
3. And then the machine code runs, pretty fast.
>>>>>>> 72aa4f0b9783a38155dd766ef50f025e672cfcee

يطبق المحرك التحسينات في كل خطوة من العملية. حتى أنه يراقب النص المترجم أثناء تشغيله ، ويحلل البيانات التي تتدفق من خلاله ، ويزيد من تحسين رموز الآلة بناءً على تلك المعرفة.
```

<<<<<<< HEAD
## ما الذي يمكن أن يفعله جافا سكريبت في المتصفح؟
=======
## What can in-browser JavaScript do?

Modern JavaScript is a "safe" programming language. It does not provide low-level access to memory or the CPU, because it was initially created for browsers which do not require it.
>>>>>>> 72aa4f0b9783a38155dd766ef50f025e672cfcee

جافا سكريبت الحديثة هي لغة برمجة "آمنة". لا توفر وصولاً منخفض المستوى إلى الذاكرة أو وحدة المعالجة المركزية، لأنه تم إنشاؤها في البداية للمتصفحات التي لا تتطلب ذلك.

Expand All @@ -59,14 +79,19 @@
- الحصول على ملفات تعريف الارتباط وتعيينها ، وطرح الأسئلة على الزائر ، وإظهار الرسائل.
- تذكر البيانات الموجودة على جانب العميل ("التخزين المحلي").

<<<<<<< HEAD
## ما الذي لا يمكن لجافا سكريبت في المتصفح فعله؟
=======
JavaScript's abilities in the browser are limited to protect the user's safety. The aim is to prevent an evil webpage from accessing private information or harming the user's data.
>>>>>>> 72aa4f0b9783a38155dd766ef50f025e672cfcee

إمكانيات جافا سكريبت في المتصفح محدودة من أجل سلامة المستخدم. الهدف هو منع صفحة ويب شريرة من الوصول إلى المعلومات الخاصة أو الإضرار ببيانات المستخدم.

من أمثلة هذه القيود:

- جافا سكريبت على صفحة الويب قد لا تقرأ/تكتب ملفات عشوائية على القرص الصلب أو تنسخها أو تنفذ برامج. ليس لديها وصول مباشر إلى وظائف نظام التشغيل.

<<<<<<< HEAD
تسمح المتصفحات الحديثة له بالعمل مع الملفات ، ولكن الوصول محدود ويتم توفيره فقط إذا قام المستخدم بإجراءات معينة ، مثل "إسقاط" ملف في نافذة المتصفح أو تحديده عبر علامة `<input>`.

هناك طرق للتفاعل مع الكاميرا / الميكروفون والأجهزة الأخرى ، لكنها تتطلب إذنًا صريحًا من المستخدم. لذلك قد لا تعمل الصفحة التي تم تمكين جافا سكريبت فيها بشكل خفي على تمكين كاميرا الويب ومراقبة المناطق المحيطة وإرسال المعلومات إلى [آن آس أيه](https://ar.wikipedia.org/wiki/وكالة_الأمن_القومي_الأمريكية)
Expand All @@ -80,35 +105,63 @@
![](limitations.svg)

لا توجد مثل هذه الحدود إذا تم استخدام جافا سكريبت خارج المتصفح ، على سبيل المثال على الخادم. تسمح المتصفحات الحديثة أيضًا الإضافات التي قد تطلب تصريحات ممتدة.
=======
There are ways to interact with the 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 page 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 agree for data exchange and must contain 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`, for example, 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.

![](limitations.svg)

Such limitations do not exist if JavaScript is used outside of the browser, for example on a server. Modern browsers also allow plugins/extensions which may ask for extended permissions.
>>>>>>> 72aa4f0b9783a38155dd766ef50f025e672cfcee

## ما الذي يجعل جافا سكريبت فريدًا؟

هناك على الأقل *ثلاثة* أشياء رائعة حول جافا سكريبت:

```compare
<<<<<<< HEAD
+ تكامل تام مع HTML / CSS.
+ الأشياء البسيطة تتم ببساطة.
+ مدعوم من قبل جميع المتصفحات الرائدة وتمكينه تلقائيا.
=======
+ Full integration with HTML/CSS.
+ Simple things are done simply.
+ Supported by all major browsers and enabled by default.
>>>>>>> 72aa4f0b9783a38155dd766ef50f025e672cfcee
```

جافا سكريبت هي تقنية المتصفح الوحيدة التي تجمع بين هذه الأشياء الثلاثة.

هذا ما يجعل جافا سكريبت فريدًا. هذا هو السبب في أنها الأداة الأكثر انتشارًا لإنشاء واجهات المتصفح.

<<<<<<< HEAD
ومع ذلك، تسمح جافا سكريبت أيضًا بإنشاء خوادم وتطبيقات الجوال، إلخ.
=======
That said, JavaScript can be used to create servers, mobile applications, etc.
>>>>>>> 72aa4f0b9783a38155dd766ef50f025e672cfcee

## لغات "فوق" جافا سكريبت

لا تتناسب القواعد اللغوية لجافا سكريبت مع احتياجات الجميع. الناس المختلفون يريدون ميزات مختلفة.

هذا أمر متوقع ، لأن المشاريع والمتطلبات تختلف من شخص لآخر.

<<<<<<< HEAD
ظهرت في الآونة الأخيرة عدد كبير من اللغات الجديدة ، والتي *تم تحويلها* إلى جافا سكريبت قبل تشغيلها في المتصفح.
=======
So, recently a plethora of new languages appeared, which are *transpiled* (converted) to JavaScript before they run in the browser.
>>>>>>> 72aa4f0b9783a38155dd766ef50f025e672cfcee

الأدوات الحديثة تجعل الترجمة سريعة وشفافة للغاية ، مما يسمح للمطورين في الواقع بالتشفير بلغة أخرى وتحويلها تلقائيًا "خلف الكواليس".

أمثلة على هذه اللغات:

<<<<<<< HEAD
- [كوفي سكريبت](http://coffeescript.org/) هو "سكر نحوي" لجافا سكريبت. إنه يقدم بناء جمل أقصر ، مما يسمح لنا بكتابة كود أكثر وضوحًا ودقة. عادة ،مطورو روبي يحبونها.
- [تايب سكريبت](http://www.typescriptlang.org/) يركز على إضافة "كتابة بيانات صارمة" لتبسيط تطوير ودعم الأنظمة المعقدة. تم تطويره بواسطة ميكروسوفت.
- [فلو](http://flow.org/) يضيف أيضًا كتابة البيانات ، ولكن بطريقة مختلفة. تم تطويره بواسطة فايسبوك.
Expand All @@ -117,9 +170,25 @@
- [كوتلن](https://kotlinlang.org/docs/reference/js-overview.html) هي لغة برمجة حديثة وموجزة وآمنة يمكنها استهداف المتصفح أو نود.

هناك أكثر. بالطبع ، حتى لو استخدمنا إحدى اللغات المترجمة ، يجب أن نعرف أيضًا جافا سكريبت لفهم ما نقوم به حقًا.
=======
- [CoffeeScript](https://coffeescript.org/) is "syntactic sugar" for JavaScript. It introduces shorter syntax, allowing us to write clearer and more precise code. Usually, Ruby devs like it.
- [TypeScript](https://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](https://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.
- [Brython](https://brython.info/) is a Python transpiler to JavaScript that enables the writing of applications in pure Python without JavaScript.
- [Kotlin](https://kotlinlang.org/docs/reference/js-overview.html) is a modern, concise and safe programming language that can target the browser or Node.

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

## ملخص

<<<<<<< HEAD
- تم إنشاء جافا سكريبت في البداية كلغة للمتصفح فقط ، ولكنها تُستخدم الآن في العديد من البيئات الأخرى أيضًا.
- تتمتع جافا سكريبت اليوم بمكانة فريدة باعتبارها لغة المتصفح الأكثر استخدامًا مع تكاملها التام مع HTML / CSS.
- هناك العديد من اللغات التي يتم "تحويلها" إلى جافا سكريبت وتوفر ميزات معينة. يوصى بإلقاء نظرة عليهم ، على الأقل لفترة وجيزة ، بعد إتقان جافا سكريبت.
- هناك العديد من اللغات التي يتم "تحويلها" إلى جافا سكريبت وتوفر ميزات معينة. يوصى بإلقاء نظرة عليهم ، على الأقل لفترة وجيزة ، بعد إتقان جافا سكريبت.
=======
- JavaScript was initially created as a browser-only language, but it is now used in many other environments as well.
- Today, JavaScript has a unique position as the most widely-adopted browser language, fully integrated with HTML/CSS.
- There are many languages that get "transpiled" to JavaScript and provide certain features. It is recommended to take a look at them, at least briefly, after mastering JavaScript.
>>>>>>> 72aa4f0b9783a38155dd766ef50f025e672cfcee
21 changes: 21 additions & 0 deletions 1-js/01-getting-started/2-manuals-specifications/article.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,23 @@

هذا الكتاب هو _دورة تعليمية_. يهدف الى تعليمك اللغه تدريجيا. و لكن إذا كنت علي علم بالأساسيات فسوف تحتاج إلى مصدر آخر.

<<<<<<< HEAD
## الوصف
=======
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 resources.
>>>>>>> 72aa4f0b9783a38155dd766ef50f025e672cfcee

[وصف The ECMA-262](https://www.ecma-international.org/publications/standards/Ecma-262.htm) يحتوي على المعلومات الأكثر عمقاً وتفصيلاً ورسميةً عن جافا سكريبت. وهي تقوم بتعريف اللغة.

و لكن كونها بهذه الرسمية، تجعل فهمها من أول مرة صعبا. لذلك إذا كنت تريد مصدر المعلومى الأكثر وثوقاً عن تفاصيل اللغة، الوصف هو المكان الصحيح. لكنها ليست للإستعمال اليومي.

نسخة وصف جديدة تُصدر كل عام. فيما بين هذه الإصدارات، آخر مسودة وصف توجد في <https://tc39.es/ecma262/>.

<<<<<<< HEAD
لكي تقرأ عن خصائص التطور الحاد الجديد، بما فى ذلك "المعايير التقريبية" (ما يسمي "المرحلة 3")، انظر للمقترحات في <https://github.com/tc39/proposals>.
=======
A new specification version is released every year. Between these releases, the latest specification draft is at <https://tc39.es/ecma262/>.
>>>>>>> 72aa4f0b9783a38155dd766ef50f025e672cfcee

أيضاً، إذا كنت تطور من أجل المتصفح، إذا هناك مواصفات أخرى مشمولة في [الجزء الثاني](info:browser-environment) من الدورة التعليمية.

Expand All @@ -20,18 +28,31 @@

يمكن أن تجدها في <https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference>.

<<<<<<< HEAD
أيضاً، غالباً ما يكون من الأفضل استخدام البحث عبر الإنترنت بدلاً من ذلك. فقط استخدم "[مصطلح] MDN" للإستعلام، مثال <https://google.com/search?q=MDN+parseInt> لتبحث عن دالة `parseInt`.

=======
You 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 the `parseInt` function.
>>>>>>> 72aa4f0b9783a38155dd766ef50f025e672cfcee

## جدول التوافق

جافا سكريبت لغة فى سياق متطور، تضاف إليها خصائص جديدة بانتظام.


<<<<<<< HEAD
لتَّـحَقّـق من الدعم ما بين المتصفحات والمحركات الأخرى، انظر:

- <http://caniuse.com> - جدول الدعم لكل خاصية، مثال: لترى أيًا من المحركات يدعم دوال التشفير الحديث: <http://caniuse.com/#feat=cryptography>.
- <https://kangax.github.io/compat-table> - جدول بمواصفات ومحركات اللغة وقابلية دعم كل محرك لكل خاصية.
=======
- <https://caniuse.com> - per-feature tables of support, e.g. to see which engines support modern cryptography functions: <https://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.
>>>>>>> 72aa4f0b9783a38155dd766ef50f025e672cfcee

كل هذه المصادر مفيدة في تطوير الحياة الواقعية، لأنها تحتوي علي معلومات قيّمة عن تفاصيل ودعم اللغة.

Expand Down
11 changes: 11 additions & 0 deletions 1-js/01-getting-started/3-code-editors/article.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,13 @@

إذا لم تقم باختيار IDE بعد، ففكر في الخيارات التالية:

<<<<<<< HEAD
- [فيجوال ستديو كود](https://code.visualstudio.com/) (يعمل على أكثر من نظام تشغيل، مجاني).
- [ويب ستورم](http://www.jetbrains.com/webstorm/) (يعمل على أكثر من نظام تشغيل، مدفوع).
=======
- [Visual Studio Code](https://code.visualstudio.com/) (cross-platform, free).
- [WebStorm](https://www.jetbrains.com/webstorm/) (cross-platform, paid).
>>>>>>> 72aa4f0b9783a38155dd766ef50f025e672cfcee

بالنسبة للويندوز، يمكن استخدام برنامج فيجوال ستديو، لايجب الخلط بينه وبين الفيجوال ستديو كود، فيجوال ستديو هو محرر مدفوع يعمل على نظام ويندوز فقط، ومناسب تماماً لبيئة الـ.NET. أنه أيضاً جيد لجافا سكريبت. كما يوجد إصدار مجاني منه [Visual Studio Community](https://www.visualstudio.com/vs/community/).

Expand All @@ -35,7 +40,13 @@
- [Notepad++](https://notepad-plus-plus.org/) (الويندوز، مجاني).
- [Vim](http://www.vim.org/) و [Emacs](https://www.gnu.org/software/emacs/) رائعة إذا كنت تعرف كيفية استخدامها.

<<<<<<< HEAD
## دعونا لا نتشاجر
=======
- [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.
>>>>>>> 72aa4f0b9783a38155dd766ef50f025e672cfcee

المحررات أعلاه هي التي نقوم باستخدامها أنا وأصدقائي، والذين أعتقد أنهم مطورون جيدون يستخدمونها منذ وقت طويل وتسعدهم.

Expand Down
4 changes: 4 additions & 0 deletions 1-js/01-getting-started/4-devtools/article.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,11 @@

يفضل معظم المطورون العمل على متصفِّحي Chrome أو FireFox لاحتوائهما على أفضل أدوات المطوّر. توفر المتصفِّحات الأخرى أيضًا مجموعة أدوات للمطوّر والتي من الممكن أن تحتوي على مزايا خاصة. لكن عادةً ما تحاول اللحاق بمتصفِّحي Chrome و FireFox الأفضل من هذه الناحية. يفضل المطوّرون بشكل عام العمل على متصفِّح واحد وينتقلون إلى متصفِّح آخر عندما تكون المشكلة التي يعملون عليها محدَّدة بهذا المتصفِّح.

<<<<<<< HEAD
بناءً على ذلك، نجد أنَّ أدوات المطور مهمة للغاية لما تمتلكه من مزايا تساعدك أثناء مسيرتك في تطوير الويب عبر JavaScript. سنتعلم في البداية طريقة فتحها، واستخدامها لاستكشاف الأخطاء، وتشغيل تعليمات JavaScript ضمنها.
=======
Developer tools are potent; they have many features. To start, we'll learn how to open them, look at errors, and run JavaScript commands.
>>>>>>> 72aa4f0b9783a38155dd766ef50f025e672cfcee

أدوات المطور قوية, لديها العديد من الميزات. للبدء, سنتعلم كيفية فتحها ، والنظر في الأخطاء ، وتشغيل أوامر جافا سكريبت.

Expand Down
Loading