Show tasksThe JavaScript languageAn introductionAn Introduction to JavaScriptManuals and specificationsCode editorsDeveloper consoleJavaScript FundamentalsHello, world!Show an alertShow an alert with an external scriptCode structureThe modern mode, "use strict"VariablesWorking with variablesGiving the right nameUppercase const?Data typesString quotesInteraction: alert, prompt, confirmA simple pageType ConversionsBasic operators, mathsThe postfix and prefix formsAssignment resultType conversionsFix the additionComparisonsComparisonsConditional branching: if, '?'if (a string with zero)The name of JavaScriptShow the signRewrite 'if' into '?'Rewrite 'if..else' into '?'Logical operatorsWhat's the result of OR?What's the result of OR'ed alerts?What is the result of AND?What is the result of AND'ed alerts?The result of OR AND ORCheck the range betweenCheck the range outsideA question about "if"Check the loginNullish coalescing operator '??'Loops: while and forLast loop valueWhich values does the while loop show?Which values get shown by the "for" loop?Output even numbers in the loopReplace "for" with "while"Repeat until the input is correctOutput prime numbersThe "switch" statementRewrite the "switch" into an "if"Rewrite "if" into "switch"FunctionsIs "else" required?Rewrite the function using '?' or '||'Function min(a, b)Function pow(x,n)Function expressionsArrow functions, the basicsRewrite with arrow functionsJavaScript specialsCode qualityDebugging in the browserCoding StyleBad styleCommentsNinja codeAutomated testing with MochaWhat's wrong in the test?Polyfills and transpilersObjects: the basicsObjectsHello, objectCheck for emptinessSum object propertiesMultiply numeric property values by 2Object references and copyingGarbage collectionObject methods, "this"Using "this" in object literalCreate a calculatorChainingConstructor, operator "new"Two functions – one objectCreate new CalculatorCreate new AccumulatorOptional chaining '?.'Symbol typeObject to primitive conversionData typesMethods of primitivesCan I add a string property?NumbersSum numbers from the visitorWhy 6.35.toFixed(1) == 6.3?Repeat until the input is a numberAn occasional infinite loopA random number from min to maxA random integer from min to maxStringsUppercase the first characterCheck for spamTruncate the textExtract the moneyArraysIs array copied?Array operations.Calling in an array contextSum input numbersA maximal subarrayArray methodsTranslate border-left-width to borderLeftWidthFilter rangeFilter range "in place"Sort in decreasing orderCopy and sort arrayCreate an extendable calculatorMap to namesMap to objectsSort users by ageShuffle an arrayGet average ageFilter unique array membersCreate keyed object from arrayIterablesMap and SetFilter unique array membersFilter anagramsIterable keysWeakMap and WeakSetStore "unread" flagsStore read datesObject.keys, values, entriesSum the propertiesCount propertiesDestructuring assignmentDestructuring assignmentThe maximal salaryDate and timeCreate a dateShow a weekdayEuropean weekdayWhich day of month was many days ago?Last day of month?How many seconds have passed today?How many seconds till tomorrow?Format the relative dateJSON methods, toJSONTurn the object into JSON and backExclude backreferencesAdvanced working with functionsRecursion and stackSum all numbers till the given oneCalculate factorialFibonacci numbersOutput a single-linked listOutput a single-linked list in the reverse orderRest parameters and spread syntaxVariable scope, closureDoes a function pickup latest changes?Which variables are available?Are counters independent?Counter objectFunction in ifSum with closuresIs variable visible?Filter through functionSort by fieldArmy of functionsThe old "var"Global objectFunction object, NFESet and decrease for counterSum with an arbitrary amount of bracketsThe "new Function" syntaxScheduling: setTimeout and setIntervalOutput every secondWhat will setTimeout show?Decorators and forwarding, call/applySpy decoratorDelaying decoratorDebounce decoratorThrottle decoratorFunction bindingBound function as a methodSecond bindFunction property after bindFix a function that loses "this"Partial application for loginArrow functions revisitedObject properties configurationProperty flags and descriptorsProperty getters and settersPrototypes, inheritancePrototypal inheritanceWorking with prototypeSearching algorithmWhere does it write?Why are both hamsters full?F.prototypeChanging "prototype"Create an object with the same constructorNative prototypesAdd method "f.defer(ms)" to functionsAdd the decorating "defer()" to functionsPrototype methods, objects without __proto__Add toString to the dictionaryThe difference between callsClassesClass basic syntaxRewrite to classClass inheritanceError creating an instanceExtended clockStatic properties and methodsClass extends Object?Private and protected properties and methodsExtending built-in classesClass checking: "instanceof"Strange instanceofMixinsError handlingError handling, "try...catch"Finally or just the code?Custom errors, extending ErrorInherit from SyntaxErrorPromises, async/awaitIntroduction: callbacksPromiseRe-resolve a promise?Delay with a promiseAnimated circle with promisePromises chainingPromise: then versus catchError handling with promisesError in setTimeoutPromise APIPromisificationMicrotasksAsync/awaitRewrite using async/awaitRewrite "rethrow" with async/awaitCall async from non-asyncDangerous Promise.allGenerators, advanced iterationGeneratorsPseudo-random generatorAsync iteration and generatorsModulesModules, introductionExport and ImportDynamic importsMiscellaneousProxy and ReflectError on reading non-existent propertyAccessing array[-1]ObservableEval: run a code stringEval-calculatorCurryingReference TypeSyntax checkExplain the value of "this"BigIntUnicode, String internalsWeakRef and FinalizationRegistryBrowser: Document, Events, InterfacesDocumentBrowser environment, specsDOM treeWalking the DOMDOM childrenThe sibling questionSelect all diagonal cellsSearching: getElement*, querySelector*Search for elementsNode properties: type, tag and contentsCount descendantsWhat's in the nodeType?Tag in commentWhere's the "document" in the hierarchy?Attributes and propertiesGet the attributeMake external links orangeModifying the documentcreateTextNode vs innerHTML vs textContentClear the elementWhy does "aaa" remain?Create a listCreate a tree from the objectShow descendants in a treeCreate a calendarColored clock with setIntervalInsert the HTML in the listSort the tableStyles and classesCreate a notificationElement size and scrollingWhat's the scroll from the bottom?What is the scrollbar width?Place the ball in the field centerThe difference: CSS width versus clientWidthWindow sizes and scrollingCoordinatesFind window coordinates of the fieldShow a note near the elementShow a note near the element (absolute)Position the note inside (absolute)Introduction to EventsIntroduction to browser eventsHide on clickHide selfWhich handlers run?Move the ball across the fieldCreate a sliding menuAdd a closing buttonCarouselBubbling and capturingEvent delegationHide messages with delegationTree menuSortable tableTooltip behaviorBrowser default actionsWhy "return false" doesn't work?Catch links in the elementImage galleryDispatching custom eventsUI EventsMouse eventsSelectable listMoving the mouse: mouseover/out, mouseenter/leaveImproved tooltip behavior"Smart" tooltipDrag'n'Drop with mouse eventsSliderDrag superheroes around the fieldPointer eventsKeyboard: keydown and keyupExtended hotkeysScrollingEndless pageUp/down buttonLoad visible imagesForms, controlsForm properties and methodsAdd an option to selectFocusing: focus/blurEditable divEdit TD on clickKeyboard-driven mouseEvents: change, input, cut, copy, pasteDeposit calculatorForms: event and method submitModal formDocument and resource loadingPage: DOMContentLoaded, load, beforeunload, unloadScripts: async, deferResource loading: onload and onerrorLoad images with a callbackMiscellaneousMutation observerSelection and RangeEvent loop: microtasks and macrotasksWhat will be the output of this code?Additional articlesFrames and windowsPopups and window methodsCross-window communicationThe clickjacking attackBinary data, filesArrayBuffer, binary arraysConcatenate typed arraysTextDecoder and TextEncoderBlobFile and FileReaderNetwork requestsFetchFetch users from GitHubFormDataFetch: Download progressFetch: AbortFetch: Cross-Origin RequestsWhy do we need Origin?Fetch APIURL objectsXMLHttpRequestResumable file uploadLong pollingWebSocketServer Sent EventsStoring data in the browserCookies, document.cookieLocalStorage, sessionStorageAutosave a form fieldIndexedDBAnimationBezier curveCSS-animationsAnimate a plane (CSS)Animate the flying plane (CSS)Animated circleAnimated circle with callbackJavaScript animationsAnimate the bouncing ballAnimate the ball bouncing to the rightWeb componentsFrom the orbital heightCustom elementsLive timer elementShadow DOMTemplate elementShadow DOM slots, compositionShadow DOM stylingShadow DOM and eventsRegular expressionsPatterns and flagsCharacter classesUnicode: flag "u" and class \p{...}Anchors: string start ^ and end $Regexp ^$Multiline mode of anchors ^ $, flag "m"Word boundary: \bFind the timeEscaping, special charactersSets and ranges [...]Java[^script]Find the time as hh:mm or hh-mmQuantifiers +, *, ? and {n}How to find an ellipsis "..." ?Regexp for HTML colorsGreedy and lazy quantifiersA match for /d+? d+?/Find HTML commentsFind HTML tagsCapturing groupsCheck MAC-addressFind color in the format #abc or #abcdefFind all numbersParse an expressionBackreferences in pattern: \N and \k<name>Alternation (OR) |Find programming languagesFind bbtag pairsFind quoted stringsFind the full tagLookahead and lookbehindFind non-negative integersInsert After HeadCatastrophic backtrackingSticky flag "y", searching at positionMethods of RegExp and String