Desktop Screenshot

Javascript Info | The Modern JavaScript Tutorial

Modern JavaScript Tutorial: simple, but detailed explanations with examples and tasks, including: closures, document and events, object oriented programming and more...

RELATED DOMAINS javascript.xn--3ds443g iconjavascript.xn--3ds443g
Registrant Name:
Registrant Org:
Registrant Mail:
Registrant Country:
Created Date:
Updated Date:
Expires Date:
The Modern JavaScript TutorialENARعربيENEnglishESEspañolFRFrançaisIDIndonesiaITItalianoJA日本語KO한국어RUРусскийTRTürkçeUKУкраїнськаZH简体中文We want to make this open-source project available for people all around the world. Help to translate the content of this tutorial to your language!BuyEPUB/PDFSearchSearchTutorial mapLight themeDark themeShareعربيEnglishEspañolFrançaisIndonesiaItaliano日本語한국어РусскийTürkçeУкраїнська简体中文The Modern JavaScript TutorialHow it's done now. From the basics to advanced topics with simple, but detailed explanations.SearchLast updated on June 25, 2022BuyEPUB/PDFShare:18002 ★githubDiscord ChatTable of contentsMain course contains 2 parts which cover JavaScript as a programming language and working with a browser. There are also additional series of thematic articles.Part 1The JavaScript languagePart 2Browser: Document, Events, InterfacesPart 3Additional articlesThe JavaScript languageHere we learn JavaScript, starting from scratch and go on to advanced concepts like OOP.We concentrate on the language itself here, with the minimum of environment-specific notes.An introductionAn Introduction to JavaScriptManuals and specificationsCode editorsDeveloper consoleJavaScript FundamentalsHello, world!Code structureThe modern mode, "use strict"VariablesData typesInteraction: alert, prompt, confirmType ConversionsBasic operators, mathsComparisonsConditional branching: if, '?'Logical operatorsNullish coalescing operator '??'Loops: while and forThe "switch" statementFunctionsFunction expressionsArrow functions, the basicsJavaScript specialsMore…Code qualityDebugging in the browserCoding StyleCommentsNinja codeAutomated testing with MochaPolyfills and transpilersObjects: the basicsObjectsObject references and copyingGarbage collectionObject methods, "this"Constructor, operator "new"Optional chaining '?.'Symbol typeObject to primitive conversionData typesMethods of primitivesNumbersStringsArraysArray methodsIterablesMap and SetWeakMap and WeakSetObject.keys, values, entriesDestructuring assignmentDate and timeJSON methods, toJSONMore…Advanced working with functionsRecursion and stackRest parameters and spread syntaxVariable scope, closureThe old "var"Global objectFunction object, NFEThe "new Function" syntaxScheduling: setTimeout and setIntervalDecorators and forwarding, call/applyFunction bindingArrow functions revisitedMore…Object properties configurationProperty flags and descriptorsProperty getters and settersPrototypes, inheritancePrototypal inheritanceF.prototypeNative prototypesPrototype methods, objects without __proto__ClassesClass basic syntaxClass inheritanceStatic properties and methodsPrivate and protected properties and methodsExtending built-in classesClass checking: "instanceof"MixinsError handlingError handling, "try...catch"Custom errors, extending ErrorPromises, async/awaitIntroduction: callbacksPromisePromises chainingError handling with promisesPromise APIPromisificationMicrotasksAsync/awaitGenerators, advanced iterationGeneratorsAsync iteration and generatorsModulesModules, introductionExport and ImportDynamic importsMiscellaneousProxy and ReflectEval: run a code stringCurryingReference TypeBigIntBrowser: Document, Events, InterfacesLearning how to manage the browser page: add elements, manipulate their size and position, dynamically create interfaces and interact with the visitor.DocumentBrowser environment, specsDOM treeWalking the DOMSearching: getElement*, querySelector*Node properties: type, tag and contentsAttributes and propertiesModifying the documentStyles and classesElement size and scrollingWindow sizes and scrollingCoordinatesMore…Introduction to EventsIntroduction to browser eventsBubbling and capturingEvent delegationBrowser default actionsDispatching custom eventsUI EventsMouse eventsMoving the mouse: mouseover/out, mouseenter/leaveDrag'n'Drop with mouse eventsPointer eventsKeyboard: keydown and keyupScrollingForms, controlsForm properties and methodsFocusing: focus/blurEvents: change, input, cut, copy, pasteForms: event and method submitDocument and resource loadingPage: DOMContentLoaded, load, beforeunload, unloadScripts: async, deferResource loading: onload and onerrorMiscellaneousMutation observerSelection and RangeEvent loop: microtasks and macrotasksAdditional articlesList of extra topics that assume you've covered the first two parts of tutorial. There is no clear hierarchy here, you can read articles in the order you want.Frames and windowsPopups and window methodsCross-window communicationThe clickjacking attackBinary data, filesArrayBuffer, binary arraysTextDecoder and TextEncoderBlobFile and FileReaderNetwork requestsFetchFormDataFetch: Download progressFetch: AbortFetch: Cross-Origin RequestsFetch APIURL objectsXMLHttpRequestResumable file uploadLong pollingWebSocketServer Sent EventsMore…Storing data in the browserCookies, document.cookieLocalStorage, sessionStorageIndexedDBAnimationBezier curveCSS-animationsJavaScript animationsWeb componentsFrom the orbital heightCustom elementsShadow DOMTemplate elementShadow DOM slots, compositionShadow DOM stylingShadow DOM and eventsRegular expressionsPatterns and flagsCharacter classesUnicode: flag "u" and class \p{...}Anchors: string start ^ and end $Multiline mode of anchors ^ $, flag "m"Word boundary: \bEscaping, special charactersSets and ranges [...]Quantifiers +, *, ? and {n}Greedy and lazy quantifiersCapturing groupsBackreferences in pattern: \N and \k<name>Alternation (OR) |Lookahead and lookbehindCatastrophic backtrackingSticky flag "y", searching at positionMethods of RegExp and StringMore…ShareTutorial mapCommentsread this before commenting…If you have suggestions what to improve - please submit a GitHub issue or a pull request instead of commenting.If you can't understand something in the article – please elaborate.To insert few words of code, use the <code> tag, for several lines – wrap them in <pre> tag, for more than 10 lines – use a sandbox (plnkr, jsbin, codepen…)©2007—2022 Ilya Kantorabout the projectcontact usterms of usageprivacy policy
Server Type: cloudflare
Http Code: 200
viewport width=device-width, initial-scale=1, user-scalable=yes, minimum-scale=1.0
apple-mobile-web-app-capable yes
msapplication-TileColor #222A2C
msapplication-TileImage /img/favicon/tileicon.png
og:title The Modern JavaScript Tutorial
og:image:type image/png
og:image:width 1200
og:image:height 630
fb:admins 100001562528165
twitter:card summary
twitter:title The Modern JavaScript Tutorial
twitter:site @iliakan
twitter:creator @iliakan
description Modern JavaScript Tutorial: simple, but detailed explanations with examples and tasks, including: closures, document and events, object oriented programming and more.
HOST TYPE CLASS TTL EXTRA A 299 IN : A 299 IN : NS 21599 IN : NS 21599 IN :
HTTP/1.1 200 OK
Date: Sat, 25 Jun 2022 18:45:03 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: keep-alive
x-frame-options: sameorigin
ETag: W/"c558-Enc2jyUvX1q/x/3kn9uu5trsdU4"
X-Content-Type-Options: nosniff
CF-Cache-Status: DYNAMIC
Expect-CT: max-age=604800, report-uri=""
Report-To: {"endpoints":[{"url":"https:\/\/\/report\/v3?s=lc9m8c26I9TkazbmOTubtwJaAUWTtAVd8dK8Sxt2JhwCayjZB4zoShwa4INn0YzMTnLycK16vAJifYCQiV9VGMldSlF2SbkZU0KlsX3O3IgV4%2BiZIUQNf7GfL0v%2FpbZEgg%3D%3D"}],"group":"cf-nel","max_age":604800}
NEL: {"success_fraction":0,"report_to":"cf-nel","max_age":604800}
Server: cloudflare
CF-RAY: 720fdba6886450dc-IST
Content-Encoding: gzip
alt-svc: h3=":443"; ma=86400, h3-29=":443"; ma=86400