Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
2665 commits
Select commit Hold shift + click to select a range
422ef44
Fix outdated note in 1.99.04 (Reference Type)
vsemozhetbyt Nov 5, 2020
e25caae
Correct solution explanation in 1.99.04 (Reference Type)
vsemozhetbyt Nov 5, 2020
bf3c878
Fix link in 2.1.5 (Node properties...)
vsemozhetbyt Nov 5, 2020
b589f38
Merge pull request #2210 from leviding/patch-27
iliakan Nov 9, 2020
9e99c36
Merge pull request #2249 from vsemozhetbyt/patch-9
iliakan Nov 9, 2020
bd23930
Update article.md
leviding Nov 9, 2020
8f91294
Fix typos in 2.1.4 (Searching elements)
vsemozhetbyt Nov 9, 2020
a914bad
fix typo in 06-promisify article.md
ZhaoMuwei Nov 10, 2020
27f6935
Merge pull request #2250 from odsantos/fix-regexp-char-class-typo
iliakan Nov 10, 2020
fd6861e
Merge pull request #2251 from johnjacobkenny/patch-1
iliakan Nov 10, 2020
12a5cb0
Merge pull request #2252 from vsemozhetbyt/patch-10
iliakan Nov 10, 2020
ca9a022
Revert "Fix a typo in 1.11.3 (Promises chaining)"
iliakan Nov 10, 2020
032e18b
Merge pull request #2278 from javascript-tutorial/revert-2252-patch-10
iliakan Nov 10, 2020
2ff5eeb
Merge pull request #2255 from vsemozhetbyt/patch-11
iliakan Nov 10, 2020
48b111d
Merge pull request #2257 from vsemozhetbyt/1.11.8
iliakan Nov 10, 2020
96b9854
Merge pull request #2258 from vsemozhetbyt/patch-12
iliakan Nov 10, 2020
f782e9c
Merge pull request #2259 from satyambnsal/master
iliakan Nov 10, 2020
eba2280
Merge pull request #2260 from vsemozhetbyt/patch-13
iliakan Nov 10, 2020
21d44a0
Merge pull request #2261 from wam/change-var-to-let-in-regexp-sticky-…
iliakan Nov 10, 2020
e9a528f
Merge pull request #2262 from vsemozhetbyt/patch-14
iliakan Nov 10, 2020
bbe7e05
Merge pull request #2266 from vsemozhetbyt/1.99.1
iliakan Nov 10, 2020
876fded
Merge pull request #2270 from vsemozhetbyt/patch-15
iliakan Nov 10, 2020
2f4c29c
Merge pull request #2271 from vsemozhetbyt/patch-16
iliakan Nov 10, 2020
26b393a
Merge pull request #2272 from vsemozhetbyt/patch-17
iliakan Nov 10, 2020
a4194ce
look like ninja code
lumosmind Nov 10, 2020
211db88
Fix typo in 2.1.6 (Attributes and properties)
vsemozhetbyt Nov 10, 2020
59a2f34
Fix a typo in 1.11.3 (Promises chaining)
vsemozhetbyt Nov 10, 2020
7cb6387
Merge pull request #2281 from vsemozhetbyt/patch-10
iliakan Nov 11, 2020
29a7b66
Update article.md
iliakan Nov 11, 2020
fab613d
Merge pull request #2280 from vsemozhetbyt/patch-11
iliakan Nov 11, 2020
fd08e1c
Merge pull request #2279 from lumosmind/patch-53
iliakan Nov 11, 2020
22cf4b6
Merge pull request #2277 from ZhaoMuwei/patch-1
iliakan Nov 11, 2020
5607c77
Merge pull request #2276 from vsemozhetbyt/patch-18
iliakan Nov 11, 2020
5d7cba3
Merge pull request #2275 from leviding/patch-30
iliakan Nov 11, 2020
32d4f13
Merge pull request #2205 from vsemozhetbyt/patch-8
iliakan Nov 11, 2020
ad4bd59
Merge pull request #2204 from vsemozhetbyt/patch-7
iliakan Nov 11, 2020
611236f
Merge pull request #2203 from leviding/patch-25
iliakan Nov 11, 2020
331fafd
Merge pull request #2202 from leviding/patch-24
iliakan Nov 11, 2020
6df0982
FIX: minor typo error
leviding Nov 13, 2020
806e371
Update article.md
leviding Nov 13, 2020
fb43e39
Update article.md
leviding Nov 13, 2020
d977582
Update article.md
leviding Nov 13, 2020
ee2bc1c
Update article.md
leviding Nov 13, 2020
26d449c
Minor grammar alteration.
joneskj55 Nov 13, 2020
99e59ba
Update article.md
iliakan Nov 15, 2020
7a67741
Update article.md
leviding Nov 15, 2020
75e10e2
Update article.md
leviding Nov 15, 2020
cb62d6d
Update article.md
leviding Nov 15, 2020
a39f437
Update article.md
leviding Nov 15, 2020
5b63e81
Update article.md
leviding Nov 15, 2020
358c389
Update article.md
leviding Nov 15, 2020
80eb70f
Update article.md
leviding Nov 15, 2020
adf83c6
Update article.md
leviding Nov 15, 2020
9b3b10f
Update README.md
leviding Nov 16, 2020
6db57d9
Update article.md
leviding Nov 16, 2020
891495c
Promise.any
lumosmind Nov 17, 2020
15780b3
Update task.md
leviding Nov 17, 2020
a81bb4a
Fix typo in 2.2.5 (Dispatching custom events)
vsemozhetbyt Nov 17, 2020
149f63e
FIX: minor typo error, missing "alert( "
leviding Nov 18, 2020
1ba96d4
missssing
joaquinelio Nov 18, 2020
5aeb8fe
Update article.md
leviding Nov 18, 2020
ee8f6d1
Update article.md
joaquinelio Nov 18, 2020
3709b0b
Update article.md
leviding Nov 18, 2020
cd052d1
Update article.md
leviding Nov 18, 2020
0437d57
Fix typo in 2.3.3 (Moving the mouse...)
vsemozhetbyt Nov 18, 2020
5e9937a
Rephrase sentence.
odsantos Nov 18, 2020
0b401e6
Updated article.md
patrikbego Nov 19, 2020
565fef8
Include missing fileServer
manjufy Nov 19, 2020
fa4b19e
Rephrased for better clarity.
patrikbego Nov 19, 2020
1feed09
Rephrased for clarity.
patrikbego Nov 19, 2020
e289aba
Update 1-js/11-async/05-promise-api/article.md
lumosmind Nov 20, 2020
0bdacaf
Fis typo in 2.5.2 (Scripts: async, defer)
vsemozhetbyt Nov 22, 2020
2f0c37d
fixes
iliakan Nov 22, 2020
23da191
minor fixes
iliakan Nov 22, 2020
3cb134f
Merge pull request #2307 from vsemozhetbyt/patch-11
iliakan Nov 23, 2020
bd44850
fix nested markdown
joaquinelio Nov 24, 2020
1e590d6
Merge pull request #2310 from joaquinelio/patch-3
iliakan Nov 24, 2020
58136cb
Update article.md
paroche Nov 24, 2020
dcb3758
Merge pull request #2311 from javascript-tutorial/paroche-patch-20
paroche Nov 24, 2020
865c329
Further minor changes to punctuation and wording
paroche Nov 24, 2020
ac92672
And a little more
paroche Nov 24, 2020
54378cb
Correct subhead in 3.1 (Popups and window methods)
vsemozhetbyt Nov 24, 2020
246c6c4
Merge branch 'master' into patch-1
iliakan Nov 24, 2020
501adfd
Merge pull request #2187 from vsemozhetbyt/patch-1
iliakan Nov 24, 2020
c066fea
Merge pull request #2191 from vsemozhetbyt/patch-2
iliakan Nov 24, 2020
50a20d1
Merge pull request #2298 from manjufy/patch-1
iliakan Nov 24, 2020
f7b2208
Fix typo in 2.3.1 (Mouse events)
vsemozhetbyt Nov 17, 2020
b7a7e68
Fix typo in 2.99.2 (Selection and Range)
vsemozhetbyt Nov 23, 2020
a9d2363
Merge pull request #2296 from odsantos/update-strings
iliakan Nov 24, 2020
dd02130
Merge pull request #2295 from vsemozhetbyt/patch-10
iliakan Nov 24, 2020
aacdf01
Merge pull request #2192 from vsemozhetbyt/patch-3
iliakan Nov 24, 2020
7211729
Merge pull request #2193 from vsemozhetbyt/patch-4
iliakan Nov 24, 2020
445d2c8
minor fixes
iliakan Nov 24, 2020
79710c4
Update article.md
patrikbego Nov 24, 2020
50c3e3d
Merge pull request #2199 from vsemozhetbyt/patch-6
iliakan Nov 25, 2020
9700f82
Merge pull request #2283 from leviding/patch-31
iliakan Nov 25, 2020
47ca608
Update README.md
iliakan Nov 25, 2020
31d9441
Update README.md
iliakan Nov 25, 2020
865174e
Merge pull request #2285 from joneskj55/patch-1
iliakan Nov 25, 2020
b8fb9d4
Merge pull request #2300 from patrikbego/patch-1
iliakan Nov 25, 2020
a2494a7
Merge pull request #2290 from vsemozhetbyt/patch-7
iliakan Nov 25, 2020
fbe2050
Merge pull request #2291 from vsemozhetbyt/patch-8
iliakan Nov 25, 2020
ba277aa
Merge pull request #2292 from joaquinelio/patch-2
iliakan Nov 25, 2020
0e79e06
example is fixed and summary is extended
lumosmind Nov 25, 2020
5f04058
Summary section is fixed
lumosmind Nov 25, 2020
2554d3d
Merge pull request #2293 from leviding/patch-33
iliakan Nov 25, 2020
b73c2a4
typo
lumosmind Nov 25, 2020
947afdd
Merge pull request #2297 from patrikbego/patch-2
iliakan Nov 25, 2020
36c0702
Merge pull request #2309 from vsemozhetbyt/patch-11
iliakan Nov 25, 2020
b3974b3
Merge pull request #2313 from vsemozhetbyt/patch-12
iliakan Nov 25, 2020
193e174
Fix possible typos in 4.1 (ArrayBuffer, binary arrays)
vsemozhetbyt Nov 25, 2020
a0b0d43
Merge pull request #2315 from vsemozhetbyt/patch-1
iliakan Nov 25, 2020
0eef950
minor fixes
iliakan Nov 25, 2020
0ac7894
minor fixes
iliakan Nov 25, 2020
fee6657
minor fixes
iliakan Nov 25, 2020
6ec4c4f
minor fixes
iliakan Nov 25, 2020
91da65d
Fix typos in 4.3 (Blob)
vsemozhetbyt Nov 25, 2020
2793f33
Fix typo in 5.2 (FormData)
vsemozhetbyt Nov 26, 2020
ae6f990
Add missing parenthesis in 5.6 (Fetch API)
vsemozhetbyt Nov 27, 2020
b79964a
Fix typos in 5.8 (XMLHttpRequest)
vsemozhetbyt Nov 28, 2020
513d36e
Expand a note in 5.8 (XMLHttpRequest)
vsemozhetbyt Nov 28, 2020
0f0a0c5
Replace deprecated property in 5.9 (Resumable file upload)
vsemozhetbyt Nov 28, 2020
c828fe3
Fix typo in 5.11 (WebSocket)
vsemozhetbyt Nov 29, 2020
e558805
fixes #2326
iliakan Nov 29, 2020
d2ebb42
Merge pull request #2288 from lumosmind/patch-54
iliakan Nov 29, 2020
b852cfe
Update article.md
joaquinelio Nov 29, 2020
ebd774d
Update 7-animation/2-css-animations/article.md
iliakan Nov 29, 2020
00f138c
Merge pull request #2140 from peachesontour/patch-14
iliakan Nov 29, 2020
6f7d9cf
minor fixes
iliakan Nov 29, 2020
8e6ace0
Merge pull request #2325 from vsemozhetbyt/patch-7
iliakan Nov 29, 2020
59c5400
Merge pull request #2324 from vsemozhetbyt/p5.9
iliakan Nov 29, 2020
277374f
Merge pull request #2323 from vsemozhetbyt/patch-6
iliakan Nov 29, 2020
4697b7b
Merge pull request #2322 from vsemozhetbyt/patch-5
iliakan Nov 29, 2020
8b98721
Merge pull request #2321 from vsemozhetbyt/patch-4
iliakan Nov 29, 2020
d05bbe0
Merge pull request #2320 from vsemozhetbyt/patch-3
iliakan Nov 29, 2020
574dd84
closes #2319
iliakan Nov 29, 2020
361c702
Merge pull request #2316 from vsemozhetbyt/patch-2
iliakan Nov 29, 2020
9065fd3
Merge pull request #2302 from patrikbego/patch-3
iliakan Nov 29, 2020
e1a3f63
Merge pull request #2327 from joaquinelio/patch-4
iliakan Nov 29, 2020
b1bee55
Fix typo in 1.99.1 (Proxy and Reflect)
vsemozhetbyt Nov 29, 2020
34e711c
Fix typo, add info in 1.11.5 (Promise API)
vsemozhetbyt Nov 29, 2020
5aebb89
Fix typos in 1.5.8 (WeakMap and WeakSet)
vsemozhetbyt Nov 29, 2020
00d2f33
Fix typo and ambiguity in 5.12 (Server Sent Events)
vsemozhetbyt Nov 30, 2020
79f3caf
Fix for issue #2314
joneskj55 Dec 1, 2020
6abb98b
Fix possible typos in 6.1 (Cookies, document.cookie)
vsemozhetbyt Dec 1, 2020
7ffb6ce
fix typo "colector" => "collector"
FantasqueX Dec 2, 2020
fd85fc5
Fix possible typos in 6.3 (IndexedDB)
vsemozhetbyt Dec 2, 2020
5c0ea29
Update article.md
Heikrana Dec 3, 2020
21dc138
Fix typo in 7.1 (Bezier curve)
vsemozhetbyt Dec 3, 2020
634e066
Update 1-js/02-first-steps/08-operators/article.md
Heikrana Dec 3, 2020
3d86152
Update article.md
Heikrana Dec 3, 2020
0928178
Fix typo in 7.2 (CSS-animations)
vsemozhetbyt Dec 3, 2020
d4c23dc
Fix bug: Clock can't be stopped when 'Start' clicked while running
PGlivicky Dec 4, 2020
6118cc0
Add a missing bracket in the solution description
PGlivicky Dec 4, 2020
268159c
Fix typo.
odsantos Dec 4, 2020
44f4795
selection
iliakan Dec 4, 2020
e112b8b
Merge pull request #2349 from odsantos/fix-arrays-typos
iliakan Dec 5, 2020
f274f4d
Merge pull request #2347 from PGlivicky/fix-clock-setinterval-solution
iliakan Dec 5, 2020
b65c625
Merge pull request #2343 from vsemozhetbyt/patch-11
iliakan Dec 5, 2020
ff40f49
Merge pull request #2342 from vsemozhetbyt/patch-10
iliakan Dec 5, 2020
3d4a6e9
Fix typos in 7.3 (JavaScript animations)
vsemozhetbyt Dec 5, 2020
441e720
Fix typo in 6.2 (LocalStorage, sessionStorage)
vsemozhetbyt Dec 1, 2020
9fab25a
Merge pull request #2329 from vsemozhetbyt/patch-2
iliakan Dec 5, 2020
75302a6
Merge pull request #2330 from vsemozhetbyt/patch-3
iliakan Dec 5, 2020
386870d
minor fixes
iliakan Dec 5, 2020
38407b1
Merge pull request #2351 from vsemozhetbyt/7.3
iliakan Dec 5, 2020
b563d4d
Merge pull request #2331 from vsemozhetbyt/patch-4
iliakan Dec 5, 2020
528b7c5
Merge pull request #2332 from vsemozhetbyt/patch-5
iliakan Dec 5, 2020
762162f
Merge pull request #2334 from joneskj55/patch-1
iliakan Dec 5, 2020
ad1df4e
Merge pull request #2336 from vsemozhetbyt/patch-6
iliakan Dec 5, 2020
59acd01
Merge pull request #2337 from vsemozhetbyt/patch-7
iliakan Dec 5, 2020
0db83b2
Merge branch 'master' into patch-1
iliakan Dec 5, 2020
d319026
Merge pull request #2338 from FantasqueX/patch-1
iliakan Dec 5, 2020
2741d5e
Merge pull request #2340 from vsemozhetbyt/patch-8
iliakan Dec 5, 2020
5ce6ce9
minor fixes
iliakan Dec 5, 2020
6d9ab12
fixes #2333
iliakan Dec 5, 2020
75a56da
fixes #2318
iliakan Dec 5, 2020
a964025
closes #2317
iliakan Dec 5, 2020
08cc593
minor fixes
iliakan Dec 5, 2020
6daaaa2
Update article.md
iliakan Dec 5, 2020
63d0f05
closes #2244
iliakan Dec 5, 2020
ec4dcb2
closes #2353
iliakan Dec 5, 2020
0585eda
closes #2248
iliakan Dec 5, 2020
211e209
closes #2225
iliakan Dec 5, 2020
b55c226
Fix typo in 8.2 (Custom elements)
vsemozhetbyt Dec 5, 2020
e8d29cb
closes #2173
iliakan Dec 6, 2020
bb5c89a
Merge pull request #2354 from vsemozhetbyt/patch-1
iliakan Dec 6, 2020
e194ec2
Fix typo in 8.3 (Shadow DOM)
vsemozhetbyt Dec 6, 2020
433ef6d
Merge pull request #2355 from vsemozhetbyt/patch-1
iliakan Dec 6, 2020
eb81e52
Fix possible typos in 1.3.6 (Polyfills and transpilers)
vsemozhetbyt Dec 6, 2020
f30b4f2
Merge pull request #2356 from vsemozhetbyt/patch-1
iliakan Dec 6, 2020
68dfa95
minor fixes
iliakan Dec 6, 2020
59a579f
Sync examples from 2 commits in 8.5 (Shadow DOM slots...)
vsemozhetbyt Dec 6, 2020
c56e6a5
Merge pull request #2357 from vsemozhetbyt/patch-1
iliakan Dec 6, 2020
76b42c3
Fix typo in 8.5 (Shadow DOM slots...)
vsemozhetbyt Dec 6, 2020
1e4b9e4
Merge pull request #2359 from vsemozhetbyt/patch-1
iliakan Dec 7, 2020
0936245
Merge pull request #2341 from vsoni101/patch-1
iliakan Dec 7, 2020
79c9513
closes #2358
iliakan Dec 7, 2020
adab443
Fixed small typo
RapTho Dec 7, 2020
5be2c04
Fix typo in 9.1 (Patterns and flags)
vsemozhetbyt Dec 7, 2020
e87f130
Merge pull request #2362 from vsemozhetbyt/patch-1
iliakan Dec 7, 2020
2cf95d8
Fix some issues in 9.2 (Character classes)
vsemozhetbyt Dec 7, 2020
7c73f64
Replace unicode with Unicode all over the book
vsemozhetbyt Dec 7, 2020
633db6f
Merge pull request #2364 from vsemozhetbyt/unicode
iliakan Dec 7, 2020
907e6c8
Fix "polyfills" typo
odsantos Dec 7, 2020
6a61c04
Fix confusing wording in 9.6 (Word boundary: \b)
vsemozhetbyt Dec 7, 2020
935ed85
Fix typo in 9.7 (Escaping, special characters)
vsemozhetbyt Dec 7, 2020
4a3d842
Fix typo in 9.8 task solution (Sets and ranges [...])
vsemozhetbyt Dec 8, 2020
b19312e
Update support note in 9.8 (Sets and ranges [...])
vsemozhetbyt Dec 8, 2020
6567009
Fix typos in 9.10 (Greedy and lazy quantifiers)
vsemozhetbyt Dec 8, 2020
f2f6500
Fix typos in 9.11 (Capturing groups)
vsemozhetbyt Dec 9, 2020
276f48d
Fix typos in 9.13 (Alternation (OR) |)
vsemozhetbyt Dec 9, 2020
6fc5b2c
Correct example in 9.14 (Lookahead and lookbehind)
vsemozhetbyt Dec 9, 2020
20916d9
Make solution in 9.14 safer
vsemozhetbyt Dec 9, 2020
ec15bd2
Fix typo in 1.99.1 (Proxy and Reflect)
jasonvitagendev Dec 10, 2020
e5d1c02
Fix typo, clarify wording in 9.15 (Catastrophic backtracking)
vsemozhetbyt Dec 10, 2020
4512a02
Update support note in 9.15 (Catastrophic backtracking)
vsemozhetbyt Dec 10, 2020
04ce728
Fix typo in 9.16 (Sticky flag "y"...)
vsemozhetbyt Dec 10, 2020
a8c22e9
Fix typo in 9.17 (Methods of RegExp and String)
vsemozhetbyt Dec 10, 2020
eb5e7da
Fixed typo
RapTho Dec 13, 2020
ba5ebbc
Merge pull request #2363 from vsemozhetbyt/patch-2
iliakan Dec 13, 2020
94c829e
Merge pull request #2384 from RapTho/master
iliakan Dec 13, 2020
92cdba0
Merge pull request #2383 from vsemozhetbyt/patch-12
iliakan Dec 13, 2020
16fda1b
Merge pull request #2381 from vsemozhetbyt/patch-11
iliakan Dec 13, 2020
19d1e33
Merge pull request #2379 from vsemozhetbyt/patch-10
iliakan Dec 13, 2020
27c3030
minor fixes
iliakan Dec 13, 2020
f716a91
minor fixes
iliakan Dec 13, 2020
4e1ab89
Merge pull request #2378 from vsemozhetbyt/patch-9
iliakan Dec 13, 2020
6fee9f0
Merge pull request #2377 from jasonvitagendev/master
iliakan Dec 13, 2020
c59c9e8
Merge pull request #2376 from vsemozhetbyt/patch-8
iliakan Dec 13, 2020
093dfe4
Merge pull request #2375 from vsemozhetbyt/patch-7
iliakan Dec 13, 2020
aae708d
Merge pull request #2374 from vsemozhetbyt/patch-6
iliakan Dec 13, 2020
e1cb0f8
Merge pull request #2373 from vsemozhetbyt/9.11
iliakan Dec 13, 2020
a1736bd
Merge pull request #2372 from vsemozhetbyt/9.10
iliakan Dec 13, 2020
985dedb
Merge pull request #2371 from vsemozhetbyt/patch-5
iliakan Dec 13, 2020
76f0732
Merge pull request #2370 from vsemozhetbyt/patch-4
iliakan Dec 13, 2020
0543fee
Merge pull request #2369 from vsemozhetbyt/patch-3
iliakan Dec 13, 2020
fd2e83c
Merge pull request #2368 from vsemozhetbyt/patch-1
iliakan Dec 13, 2020
9b68941
Merge pull request #2366 from odsantos/fix-polyfills-typo
iliakan Dec 13, 2020
8bc2e92
minor fixes
iliakan Dec 13, 2020
c275ba4
closes #2382
iliakan Dec 13, 2020
37e51e0
Typo "in any *of* language"
heypano Dec 13, 2020
23e85b3
Merge pull request #2385 from heypano/patch-1
iliakan Dec 13, 2020
2b79ab1
minor fixes
iliakan Dec 14, 2020
a43c18f
minor fixes
iliakan Dec 15, 2020
1af33d1
Give me five
joaquinelio Dec 20, 2020
5a14316
Update article.md
joaquinelio Dec 20, 2020
fc3f811
Merge pull request #2399 from joaquinelio/patch-2
iliakan Dec 20, 2020
13da056
closes #2401
iliakan Dec 22, 2020
47113ee
merging all conflicts
iliakan Dec 28, 2020
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
55 changes: 54 additions & 1 deletion 1-js/01-getting-started/1-intro/article.md
Original file line number Diff line number Diff line change
@@ -1,21 +1,32 @@
# En introduksjon til JavaScript

Let's see what's so special about JavaScript, what we can achieve with it, and which other technologies play well with it.
Let's see what's so special about JavaScript, what we can achieve with it, and what other technologies play well with it.

La oss se litt nærmere på hva som er så spesielt med JavaScript, hva vi kan oppnå ved å bruke det, og hvilke andre teknologier som passer godt sammen med det.

<<<<<<< HEAD
## Hva er JavaScript?

*JavaScript* var egentlig ment for å *"gi hjemmesider mer liv"*.
=======
*JavaScript* was initially created to "make web pages alive".

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.
>>>>>>> 13da056653754765b50aa5a9f706f84a4a0d6293

Programmer skrevet i JavaScript kalles for *scripts*. De kan skrives rett inn i en nettsides's HTML og kjører automatisk så fort siden blir lastet.

Scripts er utdelt og kjørt som ren tekst. De trenger altså ingen forberedelser eller å bli kompilert for å kjøre.

Med dette øyemed, er JavaScript veldig annerledes fra et annet språk kalt [Java](https://en.wikipedia.org/wiki/Java_(programming_language)).

<<<<<<< HEAD
```smart header="Why <u>Java</u>Script?"
Når JavaScript ble skapt, hadde det i utgangspunktet navnet: "LiveScript". Men Java var veldig populært på den tiden, så det ble bestemt at å presentere et nytt programmeringsspråk som en "lillebror" til Java ville være en god ide.
=======
```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.
>>>>>>> 13da056653754765b50aa5a9f706f84a4a0d6293

Men etterhvert som det utviklet seg ble JavaScript et helt uavhengig programmeringsspårk med sitt eget sett med spesifikasjoner kalt [ECMAScript](http://en.wikipedia.org/wiki/ECMAScript), og nå har det ingenting med Java å gjøre i det hele tatt.
```
Expand All @@ -27,9 +38,15 @@ Nettleseren har en innebygget motor som noenganger blir kalt for en "JavaScript
Different engines have different "codenames". For example:
Det finnes flere forskjellige motorer som har skilles fra hverandre med forskjellige "kodenavn". For eksempel:

<<<<<<< HEAD
- [V8](https://en.wikipedia.org/wiki/V8_(JavaScript_engine)) -- i Chrome og Opera.
- [SpiderMonkey](https://en.wikipedia.org/wiki/SpiderMonkey) -- i Firefox.
- ...Det er også andre kodenavn som "Trident" og "Chakra" for forskjellige versjoner av IE, "ChakraCore" for Microsoft Edge, "Nitro" og "SquirrelFish" for Safari, osv.
=======
- [V8](https://en.wikipedia.org/wiki/V8_(JavaScript_engine)) -- in Chrome and Opera.
- [SpiderMonkey](https://en.wikipedia.org/wiki/SpiderMonkey) -- in Firefox.
- ...There are other codenames like "Chakra" for IE, "ChakraCore" for Microsoft Edge, "Nitro" and "SquirrelFish" for Safari, etc.
>>>>>>> 13da056653754765b50aa5a9f706f84a4a0d6293

Begrepene ovenfor er gode å huske fordi de ofte brukt i artikler skrevet av utviklere på nettet. Vi vil bruke de også. For eksempel, hvis "en funksjon x er støttet av v8", vil den sannsynlig fungere i Chrome og Opera.

Expand All @@ -41,8 +58,12 @@ Motorer er kompliserte. Men det grunnleggende er ganske lett.
2. Så konverterer den ("kompilerer") scriptet til maskin språk
3. Og så kjører maskin koden, veldig raskt.

<<<<<<< HEAD
Motoren tar ibruk optimaliseringer til hver eneste steg i prosessen. Passer til og med på det kompilerte scriptet imens det kjører, analyserer data som flyter gjennom det, og legger så til optimaliseringer til maskin koden basert på denne kunnskapen.
Når dette gjøres, kjører scripts rimelig fort.
=======
The engine applies optimizations at each step of the process. It even watches the compiled script as it runs, analyzes the data that flows through it, and further optimizes the machine code based on that knowledge.
>>>>>>> 13da056653754765b50aa5a9f706f84a4a0d6293
```

## Hva kan JavaScript gjøre i nettleseren?
Expand All @@ -69,17 +90,29 @@ Eksempler på slike begrensninger inkluderer:

- JavaScript på en nettside kan ikke lese/skrive vilkårlige filer på en harddisk, kopiere eller kjøre programmer. Det har ingen direkte tilgang til funksjoner som er tilknyttet operativsystemet (OS).

<<<<<<< HEAD
Moderne nettlesere tillater det til å behandle filer, men denne adgangen er begrenset og kun gitt hvis brukeren gjennomfører utvalgte hendelser, som å "slippe" en fil over et nettleservindu eller velger det via en `<input>` tag.
=======
- JavaScript on a webpage may not read/write arbitrary files on the hard disk, copy them or execute programs. It has no direct access to OS functions.
>>>>>>> 13da056653754765b50aa5a9f706f84a4a0d6293

Det finnes måter å interragere med kamera og mikrofon og andre enheter, men disse krever at brukeren gir eksplisitt tillatelse. Så en JavaScript-akrivert side kan ikke på en lumsk måte aktivere webkameraet, se seg rundt og sende informasjonen om dette til [PST](https://no.wikipedia.org/wiki/Politiets_sikkerhetstjeneste).

- Forskjellige paneler/vinduer i en nettleser vet i utgangspunktet ingenting om hverandre. Noenganger gjør de det, for eksempel når et vindu bruker JavaScript til å åpne et annet vindu. Men selv i dette tilfellet, JavaScript fra en side til en kan ikke aksessere et annet vindu hvis det kommer fra forskjellige sider (fra et annet domene, protokoll eller port).

<<<<<<< HEAD
Dette er kalt "Same Origin Policy". For å jobbe rundt dette, må *begge sidene* inneholde en spesiell JavaScript kode som behandler denne utvekslingen av data.
=======
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.
>>>>>>> 13da056653754765b50aa5a9f706f84a4a0d6293

Denne begrensningen er, igjen satt på plass med brukerens trygghet i tankene. En side fra `http://hvilkensomhelstside.no` som en bruker har åpnet kan overhodet ikke være i stand til å aksessere et annet panel med URL'en `http://gmail.com` og stjele informasjon derfra.

<<<<<<< HEAD
- JavaScript kan med letthet kommunisere med en tjener over nettet hvor den nåværende siden kom fra. Men dets egenskap til å motta data fra andre sider/domener er veldig tungvint, men det er mulig, dette krever eksplisitt tillatelse (uttrykt via HTTP headere) fra den eksterne siden. Igjen, dette er sikkerhetsbegrensning.
=======
![](limitations.svg)
>>>>>>> 13da056653754765b50aa5a9f706f84a4a0d6293

![](limitations.svg)

Expand All @@ -96,9 +129,13 @@ Dette er de *tre* minst gode ting om JavaScript:
```
JavaScript er den eneste nettleser teknologien som kombinerer disse tre tingene.

<<<<<<< HEAD
Dette er det som gjør JavaScript unikt. Dette er grunnen til at JavaScript er det mest utstrakte verktøyet for utvikling av grensesnitt i nettleseren.

Imens du har planer om å lære deg en teknologi, er det gunstig å sjekke dens perspektiver. Så la oss fortsette til de moderne trendene som påvirker den, inkluderende nye språk og ny nettleser-funksjonalitet.
=======
That said, JavaScript also allows to create servers, mobile applications, etc.
>>>>>>> 13da056653754765b50aa5a9f706f84a4a0d6293

## Språk "via" JavaScript

Expand All @@ -112,15 +149,31 @@ Moderne verktøy gjør transpileringen veldig rask og forutsigbar, faktisk så l

Dette er eksempler på slike språk:

<<<<<<< HEAD
- [CoffeeScript](http://coffeescript.org/) er en "syntaktisk sukker" for JavaScript. Det introduserer kortere syntax, som lar oss skrive klarer og mer presis kode. Ruby utviklere er vanligvis mer glad i dette.
- [TypeScript](http://www.typescriptlang.org/) er konsentrert rundt å legge til "streng datatyping" for å gjøre utvikling og drifting av komplekse systemer lettere. TypeScript er utviklet av Microsoft.
- [Dart](https://www.dartlang.org/) er et selvstendig språk som har sin egen motor som kjører ukjente miljøer for nettleseren (som mobilapplikasjoner). Det var i utgangspunktet lagt frem av Google som en erstatter for JavaScript, men foreløpig krever nettlesere at Dart transpileres til JavaScript akkurat som de andre nevnt ovenfor.

Det finnes flere selvfølgelig. Men selv om vi bruker noen av disse språkene, er det lurt av oss å kjenne JavaScript for å vite hva vi egentlig driver med.
=======
- [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.
- [Brython](https://brython.info/) is a Python transpiler to JavaScript that enables the writing of applications in pure Python without JavaScript.

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.
>>>>>>> 13da056653754765b50aa5a9f706f84a4a0d6293

## Summary
## Oppsummering

<<<<<<< HEAD
- JavaScript var i utgangspunktet skapt som et kun-nettleser språk, men finnes også i mange andre miljøer i tillegg.
- Idag, har JavaScript en unik position som det mest brukt nettleser språket med full integrasjon mot HTML/CSS.
- Det finnes mange språk som blir "transpilert" til JavaScript og som gir utvalgte funksjoner. Det er anbefalt å ta en kikk på de, ihvertfall ganske kort, etter at du mestrer 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 with full integration in 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.
>>>>>>> 13da056653754765b50aa5a9f706f84a4a0d6293
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 @@ -8,7 +8,7 @@ To see errors and get a lot of other useful information about scripts, "develope

Most developers lean towards Chrome or Firefox for development because those browsers have the best developer tools. Other browsers also provide developer tools, sometimes with special features, but are usually playing "catch-up" to Chrome or Firefox. So most developers have a "favorite" browser and switch to others if a problem is browser-specific.

Developer tools are potent; they have many features. To start, we'll learn how to open them, look at errors, and run JavaScript commands.
Developer tools are potent, they have many features. To start, we'll learn how to open them, look at errors, and run JavaScript commands.

## Google Chrome

Expand All @@ -29,10 +29,15 @@ The exact look of developer tools depends on your version of Chrome. It changes
- Here we can see the red-colored error message. In this case, the script contains an unknown "lalala" command.
- On the right, there is a clickable link to the source `bug.html:12` with the line number where the error has occurred.

Below the error message, there is a blue `>` symbol. It marks a "command line" where we can type JavaScript commands. Press `key:Enter` to run them (`key:Shift+Enter` to input multi-line commands).
Below the error message, there is a blue `>` symbol. It marks a "command line" where we can type JavaScript commands. Press `key:Enter` to run them.

Now we can see errors, and that's enough for a start. We'll come back to developer tools later and cover debugging more in-depth in the chapter <info:debugging-chrome>.

```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`. This way one can enter long fragments of JavaScript code.
```

## Firefox, Edge, and others

Expand All @@ -50,12 +55,6 @@ 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

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`.

## Summary

- Developer tools allow us to see errors, run commands, examine variables, and much more.
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.
12 changes: 12 additions & 0 deletions 1-js/02-first-steps/01-hello-world/1-hello-alert/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<!DOCTYPE html>
<html>

<body>

<script>
alert( "I'm JavaScript!" );
</script>

</body>

</html>
2 changes: 2 additions & 0 deletions 1-js/02-first-steps/01-hello-world/1-hello-alert/solution.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@

[html src="index.html"]
Loading