Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
883 commits
Select commit Hold shift + click to select a range
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
d738e31
Grammar correction
zaks276 Aug 14, 2022
1edb0a3
Merge pull request #3147 from zaks276/patch-1
iliakan Aug 16, 2022
ae6f9d3
Reword sentence on line 268
tangjm Aug 18, 2022
219d101
Fix typo
ani2796 Aug 21, 2022
262a1db
Fix tense
tangjm Aug 22, 2022
bb82d62
Added a missing comma
ChidubemAkpu Aug 23, 2022
ee47fa0
Fixed Grammar issues
TomPadmanathan Aug 24, 2022
355e35d
closes #3162
iliakan Aug 26, 2022
378d5ff
Merge pull request #3161 from BabyM0le/master
iliakan Aug 27, 2022
75da3f7
Merge pull request #3159 from ChidubemAkpu/typo-fix
iliakan Aug 27, 2022
227b338
closes #3158
iliakan Aug 27, 2022
f5685ee
Merge pull request #3157 from tangjm/patch-2
iliakan Aug 27, 2022
a6a8045
Merge pull request #3156 from ani2796/patch-1
iliakan Aug 27, 2022
c9befae
closes #3155
iliakan Aug 27, 2022
9312769
Merge pull request #3154 from tangjm/patch-1
iliakan Aug 27, 2022
53b35c1
closes #3129
iliakan Aug 27, 2022
7267abd
Update article.md
nikandev Aug 28, 2022
c11e773
Clarify instructions of `read` method
0xEddie Aug 28, 2022
e09ea79
Update task.md
0xEddie Aug 28, 2022
a0d6b52
Fix typo
KilianSorel Aug 30, 2022
5abfab9
Minor grammar
davidshq Sep 6, 2022
a6f19fb
Update article.md
davidshq Sep 6, 2022
0c6a4ac
Update article.md
davidshq Sep 6, 2022
131a3a7
Minor grammar
davidshq Sep 6, 2022
11eef4c
👾 add mdn links to Map and Set methods
Rnbsov Sep 6, 2022
82156c4
👾 smth
Rnbsov Sep 6, 2022
5f2b5a8
Update article.md
gleachkr Sep 9, 2022
4a3e70e
Update task.md | Fix grammar
mukulkandhari Sep 9, 2022
0f2d22c
Update solution.md
mukulkandhari Sep 9, 2022
f15700d
Update article.md
gleachkr Sep 10, 2022
026b1c4
Update String type chapter
chilipenko Sep 15, 2022
2672263
Merge pull request #3166 from nikandev/patch-1
iliakan Sep 20, 2022
588e213
Merge pull request #3167 from 0xEddie/master
iliakan Sep 20, 2022
b4bbee6
closes #3168
iliakan Sep 20, 2022
4b5ff83
Merge pull request #3170 from KilianSorel/patch-1
iliakan Sep 20, 2022
55be282
Merge pull request #3174 from davidshq/patch-1
iliakan Sep 20, 2022
83b7de0
Merge pull request #3176 from davidshq/patch-3
iliakan Sep 20, 2022
b0a86b9
minor fixes
iliakan Sep 20, 2022
89e3a75
Merge pull request #3177 from davidshq/patch-4
iliakan Sep 20, 2022
b2586ee
Merge pull request #3178 from Rnbsov/patch-74
iliakan Sep 20, 2022
202e625
Merge pull request #3180 from gleachkr/patch-1
iliakan Sep 20, 2022
42b7197
Merge pull request #3181 from mukulkandhari/patch-2
iliakan Sep 20, 2022
44dc8eb
fix markdown syntax
Sep 21, 2022
bbb50e7
Merge pull request #3175 from davidshq/patch-2
iliakan Sep 21, 2022
c2342c1
minor fixes
iliakan Sep 21, 2022
7c05948
Merge pull request #3187 from chilipenko/patch-1
iliakan Sep 21, 2022
f5511ee
minor fixes
iliakan Sep 21, 2022
712f47e
minor fixes
iliakan Sep 21, 2022
4d59152
Merge pull request #3192 from tianheg/patch-1
iliakan Sep 21, 2022
c990cda
Merge pull request #3182 from mukulkandhari/patch-3
iliakan Sep 21, 2022
e7424d4
typo
joaquinelio Sep 23, 2022
2b022ee
Merge pull request #3194 from joaquinelio/patch-13
iliakan Sep 23, 2022
9e649fb
Update task.md
Sep 23, 2022
ff4ef57
minor fixes
iliakan Sep 24, 2022
dfb97dc
fix a small typo
Sep 24, 2022
a4877df
fix typo
skromez Sep 24, 2022
1575b8a
fix small typo
Sep 24, 2022
86ed165
grammar suggestion
Sep 24, 2022
1b87b89
Omitting parentheses after `new`
web-dev-sam Sep 25, 2022
a965e49
typo
joaquinelio Sep 27, 2022
4c693a2
Update article.md
skromez Sep 27, 2022
1292386
typo
joaquinelio Sep 28, 2022
fe525d2
Change link to the spec
romanstetsyk Sep 28, 2022
f2ef231
Fix typo "stirng" to "string"
ann-kilzer Sep 29, 2022
8d89b7f
ECMA broken link
joaquinelio Sep 29, 2022
24dfb1f
Remove description of inconsistency between Chrome and Firefox
wdscxsj Sep 29, 2022
594bc55
https link
joaquinelio Sep 29, 2022
15ab2fd
Merge pull request #3209 from joaquinelio/patch-18
iliakan Sep 30, 2022
fde193a
Merge pull request #3208 from wdscxsj/patch-1
iliakan Sep 30, 2022
63bc08e
Merge pull request #3207 from joaquinelio/patch-17
iliakan Sep 30, 2022
4d42242
Merge pull request #3206 from ann-kilzer/patch-1
iliakan Sep 30, 2022
dc6e7d1
Merge pull request #3205 from romanstetsyk/master
iliakan Sep 30, 2022
e0621be
Merge pull request #3202 from joaquinelio/patch-15
iliakan Oct 1, 2022
4a9dc8e
Merge pull request #3204 from joaquinelio/patch-16
iliakan Oct 1, 2022
c8b4d34
move Unicode to a separate article
iliakan Oct 1, 2022
98d0c2c
Merge pull request #3201 from MindLaborDev/patch-1
iliakan Oct 1, 2022
b24e3fb
Merge pull request #3200 from digital-bw/patch-4
iliakan Oct 1, 2022
586cc54
Merge pull request #3199 from digital-bw/patch-3
iliakan Oct 1, 2022
2cb64ab
Merge pull request #3198 from skromez/master
iliakan Oct 1, 2022
2180da8
Merge pull request #3197 from digital-bw/patch-2
iliakan Oct 1, 2022
aedeed3
Merge pull request #3195 from digital-bw/patch-1
iliakan Oct 1, 2022
c27a7b4
closes #3185
iliakan Oct 1, 2022
c589176
closes #3183
iliakan Oct 1, 2022
666f356
closes #3190
iliakan Oct 1, 2022
c99d740
closes #3179
iliakan Oct 1, 2022
18b1314
closes #3096
iliakan Oct 2, 2022
f0ce7e9
IE 9
joaquinelio Oct 3, 2022
3a5d32e
Remove typo
aki-mizu Oct 5, 2022
4573d0b
Fix typos
TevaHenry Oct 5, 2022
dca45f7
Unicode art, grammar suggestions
joaquinelio Oct 5, 2022
dc7a157
Update article.md
joaquinelio Oct 5, 2022
87c0ca9
mdn link
joaquinelio Oct 6, 2022
af4843b
👾 smth
Rnbsov Oct 8, 2022
530dc9f
👾 smth
Rnbsov Oct 8, 2022
1d999c7
👾 smth
Rnbsov Oct 8, 2022
429caba
👾 smth
Rnbsov Oct 8, 2022
306a197
Update article.md
joaquinelio Oct 10, 2022
69bfbb0
Update article.md
joaquinelio Oct 10, 2022
b89b938
Update article.md
joaquinelio Oct 10, 2022
455c57a
Update article.md
joaquinelio Oct 10, 2022
6f34912
Update article.md
joaquinelio Oct 10, 2022
bf7d8bb
Merge pull request #3220 from joaquinelio/patch-19
iliakan Oct 10, 2022
7b0f9e5
Content-Length is now a CORS-safelisted response header
wdscxsj Oct 11, 2022
fe8ed87
Fix typo
wdscxsj Oct 12, 2022
75edb67
strict-origin-when-cross-origin is now the default referrerPolicy
wdscxsj Oct 12, 2022
0c5ac0e
typo at String concatenation with binary
adam4nj Oct 13, 2022
ca42edd
Remove a redundant argument
wdscxsj Oct 13, 2022
0487c35
Remove use of error.message in onerror()
wdscxsj Oct 14, 2022
c09efa8
http to https checked links
joaquinelio Oct 14, 2022
2ca8f83
closes #3242
iliakan Oct 18, 2022
245e59e
closes #3239
iliakan Oct 18, 2022
28803aa
Merge pull request #3238 from joaquinelio/pp
iliakan Oct 18, 2022
2f37897
minor fixes
iliakan Oct 18, 2022
f6cb5e9
Merge pull request #3237 from wdscxsj/patch-9
iliakan Oct 18, 2022
321b05e
Merge pull request #3223 from joaquinelio/patch-20
iliakan Oct 18, 2022
508ca01
closes #3229
iliakan Oct 18, 2022
5f91fda
closes #3230
iliakan Oct 18, 2022
aaf3b5b
Merge pull request #3231 from wdscxsj/patch-4
iliakan Oct 18, 2022
91e8edd
Merge pull request #3232 from wdscxsj/patch-5
iliakan Oct 18, 2022
36eb3da
Merge pull request #3233 from wdscxsj/patch-6
iliakan Oct 18, 2022
b0e2e04
Merge pull request #3234 from adam4nj/patch-1
iliakan Oct 18, 2022
a4050f2
Merge pull request #3235 from wdscxsj/patch-7
iliakan Oct 18, 2022
5dff42b
closes #3222
iliakan Oct 18, 2022
0c8e883
typo *udefined
joaquinelio Oct 20, 2022
4edd6b5
Proper Polish language inflection
f6p Oct 20, 2022
094aa10
Add .at( ) to strings summary
joaquinelio Oct 20, 2022
434e637
For the completeness of example.
Vic-Bonlight Oct 28, 2022
b3c7a7f
👾 add run button and remove typo
Rnbsov Oct 29, 2022
515dc44
👾 smth
Rnbsov Oct 29, 2022
78a9566
👾 smth
Rnbsov Oct 29, 2022
9e08049
👾 smth
Rnbsov Oct 29, 2022
1bda839
fix: typo getRangesAt to getRangeAt
leviding Oct 30, 2022
55b6c5e
Update article.md
nikolai-chernolutskii Oct 30, 2022
588117e
Update index.html
Alexandre887 Oct 30, 2022
4943f21
Update article.md
arlgnv Nov 1, 2022
8d185f7
Update article.md
Alexandre887 Nov 4, 2022
c70a3dc
Merge pull request #3218 from aki-mizu/patch-1
iliakan Nov 13, 2022
1fb0500
Merge pull request #3219 from TevaHenry/localstorage-sessionstorage
iliakan Nov 13, 2022
fe3d781
Merge pull request #3227 from Rnbsov/patch-75
iliakan Nov 13, 2022
1b078d0
Merge pull request #3245 from joaquinelio/patch-19
iliakan Nov 13, 2022
294a91e
Merge pull request #3246 from f6p/patch-1
iliakan Nov 13, 2022
083de40
Merge pull request #3247 from joaquinelio/patch-20
iliakan Nov 13, 2022
a4f1afd
Merge pull request #3248 from Victor-Nikliaiev/patch-1
iliakan Nov 13, 2022
fac9385
fixes #3249
iliakan Nov 13, 2022
ffbe0f5
Merge pull request #3251 from Rnbsov/patch-77
iliakan Nov 13, 2022
f47885b
minor fixes
iliakan Nov 13, 2022
7048f44
Merge pull request #3252 from leviding/patch-7
iliakan Nov 13, 2022
2c8f0fc
Merge pull request #3253 from nikolai-chernolutskii/patch-1
iliakan Nov 13, 2022
6fc7ba3
Merge pull request #3254 from Alexandre887/master
iliakan Nov 13, 2022
121141b
minor fixes
iliakan Nov 13, 2022
a665e29
Merge pull request #3255 from alagunoff/patch-1
iliakan Nov 13, 2022
8d9ecb7
Merge pull request #3258 from Alexandre887/patch-1
iliakan Nov 13, 2022
dafc925
the output is 0
joaquinelio Nov 14, 2022
c918da4
map.delete removes the pair key/value
joaquinelio Nov 14, 2022
9f1848c
Update article.md
joaquinelio Nov 14, 2022
d52f318
fix typo on Remainder %
cerealexperiments Nov 15, 2022
e1bec69
Merge pull request #3267 from cerealexperiments/patch-1
iliakan Nov 15, 2022
e912311
Merge pull request #3265 from joaquinelio/patch-20
iliakan Nov 15, 2022
cfc0195
Merge branch 'master' into patch-19
iliakan Nov 15, 2022
33c48a4
Merge pull request #3264 from joaquinelio/patch-19
iliakan Nov 15, 2022
477cb58
Merge pull request #3214 from joaquinelio/patch-17
iliakan Nov 15, 2022
746ad80
closes #3260
iliakan Nov 16, 2022
4e26c7e
Suggestion
bogdanbacosca Nov 26, 2022
657e389
minor code formatting
bogdanbacosca Nov 26, 2022
45a2d14
other code formatting bits
bogdanbacosca Nov 26, 2022
66ad8c1
Revert "minor code formatting"
bogdanbacosca Nov 26, 2022
67fe46f
Merge pull request #3279 from bogdanbacosca/if-else-bogdan
iliakan Nov 30, 2022
cfe2249
Bezier curves: update paused demo on point move
orelby Nov 30, 2022
1ce5644
Merge pull request #3287 from orelby/animation/bezier-curve/update-de…
iliakan Nov 30, 2022
8375316
fix typo, remove pleonasm
a-v-gor Dec 6, 2022
e75f655
small format change
joaquinelio Dec 7, 2022
4a8e8e1
Update article.md
Violet-Bora-Lee Dec 7, 2022
3f305f5
Merge pull request #3292 from a-v-gor/proofreading
iliakan Dec 11, 2022
9a26eb0
Merge pull request #3293 from joaquinelio/patch-19
iliakan Dec 11, 2022
ea7738b
Merge pull request #3295 from Violet-Bora-Lee/patch-4
iliakan Dec 11, 2022
b2e7dbf
grammar & legility (to check)
joaquinelio Dec 12, 2022
ccd0a11
Fix "JavaScript specials" links
odsantos Jan 22, 2023
ae7afcb
update
bogdanbacosca Jan 24, 2023
03b8f2e
Merge pull request #3278 from bogdanbacosca/work
iliakan Jan 24, 2023
cd988dd
Fix a typo
MAHIN0093 Jan 24, 2023
bbf3a44
Update 1-js/05-data-types/04-array/article.md
MAHIN0093 Jan 24, 2023
f489288
Update button to fix horizontal scroll on mobile
marcusicaro Jan 25, 2023
4baa619
fix: add missing word 'to'
JeraldVin Jan 26, 2023
a4e9ba5
Merge pull request #3336 from JeraldVin/patch-1
iliakan Jan 26, 2023
d906956
Merge pull request #3334 from marcusicaro/patch-1
iliakan Jan 26, 2023
f9afaf3
Merge pull request #3330 from odsantos/fix-javascript-specials-links
iliakan Jan 26, 2023
5a3db89
Merge pull request #3332 from MAHIN0093/change
iliakan Jan 26, 2023
9e3fa13
Merge pull request #3302 from joaquinelio/patch-19
iliakan Jan 29, 2023
74970ab
merging all conflicts
iliakan Feb 13, 2023
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
67 changes: 67 additions & 0 deletions 1-js/01-getting-started/1-intro/article.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,26 +24,44 @@ Browser punya engine yang tertanam didalamnya yang disebut "JavaScript virtual m

Tiap engine punya *codename*-nya sendiri. Misalnya:

<<<<<<< HEAD
- [V8](https://en.wikipedia.org/wiki/V8_(JavaScript_engine)) -- di Chrome dan Opera.
- [SpiderMonkey](https://en.wikipedia.org/wiki/SpiderMonkey) -- di Firefox.
- ...Ada juga codename lain seperti "Trident" dan "Chakra" untuk versi berbeda dari IE, "ChakraCore" untuk Microsoft Edge, "Nitro" dan "SquirrelFish" untuk Safari, dll.

Istilah di atas sebaiknya diingat karena akan sering digunakan dalam artikel para developer di internet. Kita akan menggunakannya juga. Misalnya, jika "fitur X didukung V8", kemungkinan ia bisa jalan di Chrome dan Opera.
=======
- [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.
>>>>>>> 9e3fa1351f80cfd6353a778a55b2c86bca9e895f

```smart header="Bagaimana engine bekerja?"

Engine sangat rumit. Tapi basicnya mudah.

<<<<<<< HEAD
1. Engine (tertanam jika ia sebuah browser)bisa membaca ("memparsing") script.
2. Lalu ia mengkonversi ("mengkompilasi") script tersebut menjadi bahasa mesin.
3. Dan kemudian kode mesin berjalan, lumayan cepat.
=======
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.
>>>>>>> 9e3fa1351f80cfd6353a778a55b2c86bca9e895f

Engine melakukan optimisasi di setiap langkah proses. Dia bahkan memperhatikan script yang telah dikompilasi saat sedang berjalan, menganalisa data yang mengalir di dalam, dan melakukan optimisasi ke kode mesin berdasarkan pengetahuan itu.
```

## Apa yang bisa dilakukan *in-browser JavaScript*?

<<<<<<< HEAD
JavaScript modern merupakan bahasa pemrograman yang "aman". Ia tidak menyebabkan akses tingkat-rendah ke memory atau CPU, karena memang awalnya dibuat untuk browser, yang tentunya tidak membutuhkan hal tersebut.
=======
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.
>>>>>>> 9e3fa1351f80cfd6353a778a55b2c86bca9e895f

Kemampuan JavaScript sangat tergantung pada lingkungan tempat ia berjalan. Misalnya, [Node.js](https://wikipedia.org/wiki/Node.js) mendukung function yang memungkingkan JavaScript melakukan baca/tulis file apapun, melakukan permintaan jaringan, dsb.

Expand All @@ -59,14 +77,19 @@ Misalnya, *in-browser JavaScript* mampu:

## Apa yang TIDAK BISA dilakukan *in-browser JavaScript*?

<<<<<<< HEAD
Kemampuan JavaScript yang ada di dalam browser terbatas demi keamanan pengguna. Tujuannya supaya mencegah halaman web berbahya mengakses informasi pribadi atau merusak data pengguna.
=======
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.
>>>>>>> 9e3fa1351f80cfd6353a778a55b2c86bca9e895f

Contoh keterbatasan tersebut meliputi:

- Javascript didalam sebuah halaman web seharusnya tidak dapat membaca/mengubah file didalam hardisk semaunya.

Browser-browser modern memperbolehkan JavaScript mengakses file, tapi aksesnya dibatasi dan tersedia hanya jika pengguna melakukan hal tertentu, misalnya seperti "menjatuhkan" file ke dalam jendela browser atau memilih file via tag `<input>`.

<<<<<<< HEAD
Ada beberapa cara untuk berinteraksi dengan kamera/mikrofon dan perangkat-perangkat lainnya, namun mereka butuh ijin khusus pengguna. Jadi sebuah halaman yang memiliki JavaScript tidak bisa mengaktifkan web-camera, memantau sekeliling dan mengirim informasinya ke [NSA] secara diam-diam(https://en.wikipedia.org/wiki/National_Security_Agency).
- Tab/jendela yang berbeda umumnya tidak ada hubungan sama sekali. Terkadang jendela yang berbeda bisa saling berhubungan juga, misalnya ketika satu jendela menggunakan JavaScript untuk membuka jendela lainnya. Tapi meski demikian, JavaScript dari suatu halaman tak boleh mengakses halaman lainnya jika mereka berasal dari situs yang berbeda (dari domain, protokol, atau port berbeda).

Expand All @@ -78,34 +101,62 @@ Contoh keterbatasan tersebut meliputi:
![](limitations.svg)

Pembatasan macam ini tidak ada jika JavaScript digunakan di luar browser, misalnya di server. Browser-browser modern juga memperbolehkan plugin/ekstensi yang membutuhkan ijin tambahan.
=======
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.
>>>>>>> 9e3fa1351f80cfd6353a778a55b2c86bca9e895f

## Apa yang membuat JavaScript unik?

Paling tidak ada *tiga* hal unik dari JavaScript:

```compare
<<<<<<< HEAD
+ Integrasi penuh dengan HTML/CSS.
+ Hal sederhana diselesaikan dengan sederhana.
+ Dukungan dari mayoritas web browser dan aktif secara default.
=======
+ Full integration with HTML/CSS.
+ Simple things are done simply.
+ Supported by all major browsers and enabled by default.
>>>>>>> 9e3fa1351f80cfd6353a778a55b2c86bca9e895f
```
JavaScript merupakan satu-satunya teknologi browser yang mengkombinasikan ketiga poin di atas.

Itulah yang membuat JavaScript unik. Itulah kenapa JavaScript menjadi alat yang paling sering untuk membuat antarmuka browser.

<<<<<<< HEAD
Katanya, JavaScript juga bisa dipakai untuk membuat aplikasi server, mobile, dsb.
=======
That said, JavaScript can be used to create servers, mobile applications, etc.
>>>>>>> 9e3fa1351f80cfd6353a778a55b2c86bca9e895f

## Bahasa "di atas" JavaScript

Sintaks JavaScript tidak memenuhi kebutuhan setiap orang. Masing-masing orang ingin fitur yang berbeda-beda.

Itu wajar, karena proyek dan persyaratan tiap orang berbeda-beda.

<<<<<<< HEAD
Akhir-akhir ini muncul banyak bahasa baru, yang *ditranspile* (dikonversi) ke JavaScript sebelum dijalankan di browser.
=======
So, recently a plethora of new languages appeared, which are *transpiled* (converted) to JavaScript before they run in the browser.
>>>>>>> 9e3fa1351f80cfd6353a778a55b2c86bca9e895f

Tools modern membuat transpilasi sangat cepat dan transparan, yang memungkinkan para developer menulis kodenya dalam bahasa lain dan mengautokonversi itu "di balik layar".

Contoh bahasa yang dimaksud:

<<<<<<< HEAD
- [CoffeeScript](http://coffeescript.org/) merupakan "syntactic sugar" dari JavaScript. Dia memperkenalkan syntax yang lebih pendek, memungkingkan kita menulis kode lebih bersih dan lebih presisi. Biasanya, Ruby devs menyukainya.
- [TypeScript](http://www.typescriptlang.org/) berfokus pada penambahan "strict data typing" yang menyederhanakan pengembangan dan dukungan sistem yang komplex. Ia dikembangkan oleh Microsoft.
- [Flow](http://flow.org/) juga menambahkan data typing, tapi dalam cara berbeda. Dikembangkan oleh Facebook.
Expand All @@ -114,9 +165,25 @@ Contoh bahasa yang dimaksud:
- [Kotlin](https://kotlinlang.org/docs/reference/js-overview.html) adalah sebuah bahasa pemograman modern, ringkas dan aman yang dapat ditargetkan untuk browser atau Node.

Masih banyak lagi. Tentunya, jika kita menggunakan salah satu bahasa yang ditranspile tersebut, kita sebaiknya juga paham JavaScript untuk mengerti apa yang mereka lakukan.
=======
- [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.
>>>>>>> 9e3fa1351f80cfd6353a778a55b2c86bca9e895f

## Kesimpulan

<<<<<<< HEAD
- JavaScript awalnya diciptakan sebagai bahasa khusus browser, namun sekarang banyak digunakan di lingkungan lain.
- Sekarang, JavaScript mempunyai posisi unik sebagai bahasa browser paling banyak diadopsi dengan integrasi penuh dengan HTML/CSS.
- Ada banyak bahasa yang "ditranspile" ke JavaScript dan menyediakan fitur tertentu. Disarankan untuk mempelajari mereka juga, minimal sebentar, setelah menguasai JavaScript.
=======
- 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.
>>>>>>> 9e3fa1351f80cfd6353a778a55b2c86bca9e895f
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
@@ -1,15 +1,23 @@

# Manual dan spesifikasi

<<<<<<< HEAD
Buku ini adalah *tutorial*. Tujuannya membantu kamu memahami bahasa ini pelan-pelan. Tapi sekali kamu akrab dengan dasarnya, kamu butuh sumber lain.
=======
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.
>>>>>>> 9e3fa1351f80cfd6353a778a55b2c86bca9e895f

## Spesifikasi

[Spesifikasi ECMA-262](https://www.ecma-international.org/publications/standards/Ecma-262.htm) berisi informasi formal, detil, and mendalam tentang JavaScript. Ia mendefisikan bahasa ini.

Tapi karena menjadi formal, ia sulit dipahami di awal. Jadi jika kamu butuh sumber informasi terpercaya tentang detil bahasa, spesifikasi ini tempat yang tepat. Tapi ini bukan untuk penggunaan harian.

<<<<<<< HEAD
Versi spesifikasi baru dirilis tiap tahun. Di antara rilis ini, draft spesifikasi terakhir ada di <https://tc39.es/ecma262/>.
=======
A new specification version is released every year. Between these releases, the latest specification draft is at <https://tc39.es/ecma262/>.
>>>>>>> 9e3fa1351f80cfd6353a778a55b2c86bca9e895f

Untuk membaca tentang fitur terkini, termasuk yang "hampir menjadi standar" (disebut "stage 3"), lihat proposalnya di <https://github.com/tc39/proposals>.

Expand All @@ -19,18 +27,31 @@ Juga, jika kamu dalam pengembangan untuk peramban, maka ada spek lain yang dibah

- **Referensi JavaScript MDN (Mozilla)** ialah manual dengan informasi dan contoh lain. Di sana bagus untuk mendapat informasi mendalam tentang metode, fungsi bahasa, dll.

<<<<<<< HEAD
Kamu bisa cari di <https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference>.

Meski, sering lebih bagus menggunakan pencarian internet. Pakai "MDN [term]" di query, misal <https://google.com/search?q=MDN+parseInt> untuk mencari fungsi `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.
>>>>>>> 9e3fa1351f80cfd6353a778a55b2c86bca9e895f


- **MSDN** – Manual Microsoft dengan banyak informasi, termasuk JavaScript (sering dirujuk sebagai JScript). Jika kamu butuh sesuatu yang spesifik ke Internet Explorer, lebih baik pergi ke: <http://msdn.microsoft.com/>.

Juga, kamu bisa menggunakan pencarian internet dengan frasa seperti "RegExp MSDN" atau "RegExp MSDN jscript".

<<<<<<< HEAD
## Tabel kompatibilitas

JavaScript merupakan bahasa berkembang, fitur baru ditambah secara reguler.
=======
- <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.
>>>>>>> 9e3fa1351f80cfd6353a778a55b2c86bca9e895f

Untuk melihat dukungan mereka pada engine berbasis peramban dan lainnya, lihat:

Expand Down
22 changes: 22 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 @@ Satu IDE meload proyek (yang bisa berupa banyak file), memungkingkan navigasi an

Jika kamu belum memilih satu IDE, pertimbangkan opsi-opsi berikut:

<<<<<<< HEAD
- [Visual Studio Code](https://code.visualstudio.com/) (lintas-platform, gratis).
- [WebStorm](http://www.jetbrains.com/webstorm/) (lintas-platform, berbayar).
=======
- [Visual Studio Code](https://code.visualstudio.com/) (cross-platform, free).
- [WebStorm](https://www.jetbrains.com/webstorm/) (cross-platform, paid).
>>>>>>> 9e3fa1351f80cfd6353a778a55b2c86bca9e895f

Untuk Windows, ada juga "Visual Studio", jangan dipusingkan dengan "Visual Studio Code." "Visual Studio" merupakan editor khusus Windows yang keren dan berbayar, sangat cocok untuk platform .NET. Ia bagus juga untuk JavaScript. Lalu ada juga versi gratisnya [Visual Studio Community](https://www.visualstudio.com/vs/community/).

Expand All @@ -29,18 +34,35 @@ Perbedaan utama antara "editor ringan" dan "IDE" adalah IDE bekerja pada level p

Pada praktiknya, editor ringan bisa punya banyak plugin termasuk syntax analyzers dan autocompleters level direktori, jadi tak ada batasan ketat antara editor ringan dan IDE.

<<<<<<< HEAD
Opsi-opsi berikut patut anda perhatikan:

- [Atom](https://atom.io/) (lintas-platform, gratis).
- [Visual Studio Code](https://code.visualstudio.com/) (lintas-platform, gratis).
- [Sublime Text](http://www.sublimetext.com) (lintas-platform, shareware).
- [Notepad++](https://notepad-plus-plus.org/) (Windows, gratis).
- [Vim](http://www.vim.org/) dan [Emacs](https://www.gnu.org/software/emacs/) sangat keren juga jika kamu tahu cara pakainya.
=======
There are many options, for instance:

- [Sublime Text](https://www.sublimetext.com/) (cross-platform, shareware).
- [Notepad++](https://notepad-plus-plus.org/) (Windows, free).
- [Vim](https://www.vim.org/) and [Emacs](https://www.gnu.org/software/emacs/) are also cool if you know how to use them.
>>>>>>> 9e3fa1351f80cfd6353a778a55b2c86bca9e895f

## Jangan berdebat

Daftar editor di atas merupakan barang yang sudah biasa saya atau teman-teman saya para pengembang profesional gunakan selama ini dengan gembira.

Ada banyak editor bagus lainnya di dunia kita yang besar ini. Silakan pilih satu yang paling kamu suka.

<<<<<<< HEAD
Pilihan editor, sama seperti tool lainnya, bersifat individual dan tergantung pada proyek, kebiasaan, dan preferensi personal.
=======
The choice of an editor, like any other tool, is individual and depends on your projects, habits, and personal preferences.

The author's personal opinion:

- I'd use [Visual Studio Code](https://code.visualstudio.com/) if I develop mostly frontend.
- 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).
>>>>>>> 9e3fa1351f80cfd6353a778a55b2c86bca9e895f
4 changes: 4 additions & 0 deletions 1-js/02-first-steps/01-hello-world/article.md
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,11 @@ File script ditempel ke HTML dengan atribut `src`:
<script src="/path/to/script.js"></script>
```

<<<<<<< HEAD
Di sini, `/path/to/script.js` adalah jalur absolut ke file script dari root sitius. Kamu juga bisa menyediakan jalur relatif dari laman ini. Misalnya, `src="script.js"` berarti file `"script.js"` dalam folder saat ini.
=======
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"`, just like `src="./script.js"`, would mean a file `"script.js"` in the current folder.
>>>>>>> 9e3fa1351f80cfd6353a778a55b2c86bca9e895f

Kamu bisa memasang URL penuh juga. Misalnya:

Expand Down
13 changes: 12 additions & 1 deletion 1-js/02-first-steps/04-variables/3-uppercast-constant/task.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,24 @@ const birthday = '18.04.1982';
const age = someCode(birthday);
```

<<<<<<< HEAD
Di sini kita punya konstan tanggal `birthday` dan `age` dikalkulasi dari `birthday` dengan batuan beberapa kode (tidak tersedia yang pendek-pendek, dan karena detail tidak masalah di sini).
=======
Here we have a constant `birthday` for the date, and also the `age` constant.

The `age` is calculated from `birthday` using `someCode()`, which means a function call that we didn't explain yet (we will soon!), but the details don't matter here, the point is that `age` is calculated somehow based on the `birthday`.
>>>>>>> 9e3fa1351f80cfd6353a778a55b2c86bca9e895f

Apakah tepat menggunakan huruf kapital untuk `birthday`? Untuk `age`? Atau bahkan untuk keduanya?

```js
<<<<<<< HEAD
const BIRTHDAY = '18.04.1982'; // buat huruf kapital?

const AGE = someCode(BIRTHDAY); // buat huruf kapital?
```
=======
const BIRTHDAY = '18.04.1982'; // make birthday uppercase?

const AGE = someCode(BIRTHDAY); // make age uppercase?
>>>>>>> 9e3fa1351f80cfd6353a778a55b2c86bca9e895f
```
Loading