Search Engine Optimization Overview
80
100
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.
Seo
Title
The title tag is perfect.
The Modern JavaScript Tutorial
Meta description
The meta description tag is good.
Modern JavaScript Tutorial: simple, but detailed explanations with examples and tasks, including: closures, document and events, object oriented programming and more.
Headings
The h1 tag is the same with the title tag.
  1. The Modern JavaScript Tutorial
  1. Table of contents
  2. The JavaScript language
  3. Browser: Document, Events, Interfaces
  4. Additional articles
  5. Comments
Content keywords
The content has relevant keywords.
themodernjavascripttutorial
Image keywords
There are 4 images with missing alt attributes.
  1. https://javascript.info/img/sitetoolbar__logo_en.svg
  2. https://javascript.info/img/sitetoolbar__logo_en-white.svg
  3. https://javascript.info/img/sitetoolbar__logo_small_en.svg
  4. https://javascript.info/img/sitetoolbar__logo_small_en-white.svg
SEO friendly URL
The URL is SEO friendly.
https://javascript.info/
404 page
The website has 404 error pages.
https://javascript.info/404-cd269e42ef9ff56f6d16574ae68dfeb3
Robots.txt
The webpage can be accessed by search engines.
Noindex
The webpage does not have a noindex tag set.
In-page links
The webpage contains more than 150 links.
  1. ENEnglish
  2. Help to translate
  3. Array.prototype.forEach.call(document.querySelectorAll("img.sitetoolbar__logo"),function(e){let t=document.createElement("object");t.type="image/svg+xml",t.className=e.className,t.style.cssText="left:0;top:0;position:absolute",t.onload=function(){t.onload=null,e.style.visibility="hidden"},t.data=e.src,e.parentNode.insertBefore(t,e)});
  4. BuyEPUB/PDF
  5. Tutorial map
  6. BuyEPUB/PDF
  7. An introduction
  8. An Introduction to JavaScript
  9. Manuals and specifications
  10. Code editors
  11. Developer console
  12. JavaScript Fundamentals
  13. Hello, world!
  14. Code structure
  15. The modern mode, "use strict"
  16. Variables
  17. Data types
  18. Interaction: alert, prompt, confirm
  19. Type Conversions
  20. Basic operators, maths
  21. Comparisons
  22. Conditional branching: if, '?'
  23. Logical operators
  24. Nullish coalescing operator '??'
  25. Loops: while and for
  26. The "switch" statement
  27. Functions
  28. Function expressions
  29. Arrow functions, the basics
  30. JavaScript specials
  31. Code quality
  32. Debugging in the browser
  33. Coding Style
  34. Comments
  35. Ninja code
  36. Automated testing with Mocha
  37. Polyfills and transpilers
  38. Objects: the basics
  39. Objects
  40. Object references and copying
  41. Garbage collection
  42. Object methods, "this"
  43. Constructor, operator "new"
  44. Optional chaining '?.'
  45. Symbol type
  46. Object to primitive conversion
  47. Data types
  48. Methods of primitives
  49. Numbers
  50. Strings
  51. Arrays
  52. Array methods
  53. Iterables
  54. Map and Set
  55. WeakMap and WeakSet
  56. Object.keys, values, entries
  57. Destructuring assignment
  58. Date and time
  59. JSON methods, toJSON
  60. Advanced working with functions
  61. Recursion and stack
  62. Rest parameters and spread syntax
  63. Variable scope, closure
  64. The old "var"
  65. Global object
  66. Function object, NFE
  67. The "new Function" syntax
  68. Scheduling: setTimeout and setInterval
  69. Decorators and forwarding, call/apply
  70. Function binding
  71. Arrow functions revisited
  72. Object properties configuration
  73. Property flags and descriptors
  74. Property getters and setters
  75. Prototypes, inheritance
  76. Prototypal inheritance
  77. F.prototype
  78. Native prototypes
  79. Prototype methods, objects without __proto__
  80. Classes
  81. Class basic syntax
  82. Class inheritance
  83. Static properties and methods
  84. Private and protected properties and methods
  85. Extending built-in classes
  86. Class checking: "instanceof"
  87. Mixins
  88. Error handling
  89. Error handling, "try...catch"
  90. Custom errors, extending Error
  91. Promises, async/await
  92. Introduction: callbacks
  93. Promise
  94. Promises chaining
  95. Error handling with promises
  96. Promise API
  97. Promisification
  98. Microtasks
  99. Async/await
  100. Generators, advanced iteration
  101. Generators
  102. Async iteration and generators
  103. Modules
  104. Modules, introduction
  105. Export and Import
  106. Dynamic imports
  107. Miscellaneous
  108. Proxy and Reflect
  109. Eval: run a code string
  110. Currying
  111. Reference Type
  112. BigInt
  113. Unicode, String internals
  114. Document
  115. Browser environment, specs
  116. DOM tree
  117. Walking the DOM
  118. Searching: getElement*, querySelector*
  119. Node properties: type, tag and contents
  120. Attributes and properties
  121. Modifying the document
  122. Styles and classes
  123. Element size and scrolling
  124. Window sizes and scrolling
  125. Coordinates
  126. Introduction to Events
  127. Introduction to browser events
  128. Bubbling and capturing
  129. Event delegation
  130. Browser default actions
  131. Dispatching custom events
  132. UI Events
  133. Mouse events
  134. Moving the mouse: mouseover/out, mouseenter/leave
  135. Drag'n'Drop with mouse events
  136. Pointer events
  137. Keyboard: keydown and keyup
  138. Scrolling
  139. Forms, controls
  140. Form properties and methods
  141. Focusing: focus/blur
  142. Events: change, input, cut, copy, paste
  143. Forms: event and method submit
  144. Document and resource loading
  145. Page: DOMContentLoaded, load, beforeunload, unload
  146. Scripts: async, defer
  147. Resource loading: onload and onerror
  148. Miscellaneous
  149. Mutation observer
  150. Selection and Range
  151. Event loop: microtasks and macrotasks
  152. Frames and windows
  153. Popups and window methods
  154. Cross-window communication
  155. The clickjacking attack
  156. Binary data, files
  157. ArrayBuffer, binary arrays
  158. TextDecoder and TextEncoder
  159. Blob
  160. File and FileReader
  161. Network requests
  162. Fetch
  163. FormData
  164. Fetch: Download progress
  165. Fetch: Abort
  166. Fetch: Cross-Origin Requests
  167. Fetch API
  168. URL objects
  169. XMLHttpRequest
  170. Resumable file upload
  171. Long polling
  172. WebSocket
  173. Server Sent Events
  174. Storing data in the browser
  175. Cookies, document.cookie
  176. LocalStorage, sessionStorage
  177. IndexedDB
  178. Animation
  179. Bezier curve
  180. CSS-animations
  181. JavaScript animations
  182. Web components
  183. From the orbital height
  184. Custom elements
  185. Shadow DOM
  186. Template element
  187. Shadow DOM slots, composition
  188. Shadow DOM styling
  189. Shadow DOM and events
  190. Regular expressions
  191. Patterns and flags
  192. Character classes
  193. Unicode: flag "u" and class \p{...}
  194. Anchors: string start ^ and end $
  195. Multiline mode of anchors ^ $, flag "m"
  196. Word boundary: \b
  197. Escaping, special characters
  198. Sets and ranges [...]
  199. Quantifiers +, *, ? and {n}
  200. Greedy and lazy quantifiers
  201. Capturing groups
  202. Backreferences in pattern: \N and \k
  203. Alternation (OR) |
  204. Lookahead and lookbehind
  205. Catastrophic backtracking
  206. Sticky flag "y", searching at position
  207. Methods of RegExp and String
  208. Tutorial map
  209. about the project
  210. contact us
  211. terms of usage
  212. privacy policy
Language
The webpage has the language declared.
en
Favicon
The webpage has a favicon.
https://javascript.info/img/favicon/favicon.png
Performance
Text compression
The HTML file is compressed.
Load time
The webpage loaded in 0.51 seconds.
Page size
The size of the HTML webpage is 9,384.00.
HTTP requests
There are fewer than 14 HTTP requests on the webpage.
  1. https://www.google-analytics.com/analytics.js
  2. https://mc.yandex.ru/metrika/watch.js
  3. https://javascript.info/pack/init.28cff4e2f2e7cecb3d99.js
  4. https://javascript.info/pack/head.dce256bf169d66aab153.js
  5. https://javascript.info/pack/tutorial.3ffa7cc0fc7d8326505e.js
  6. https://javascript.info/pack/frontpage.dda81aeeea96e6f4fc30.js
  7. https://javascript.info/pack/footer.a24f7192d4aa2f169615.js
  1. https://javascript.info/pack/styles.1dfb5e20b5a68f9f4908.css
  2. https://fonts.googleapis.com/css?family=Open+Sans:bold,italic,bolditalic
  3. https://javascript.info/pack/frontpage.dda81aeeea96e6f4fc30.css
  1. https://javascript.info/img/sitetoolbar__logo_en.svg
  2. https://javascript.info/img/sitetoolbar__logo_en-white.svg
  3. https://javascript.info/img/sitetoolbar__logo_small_en.svg
  4. https://javascript.info/img/sitetoolbar__logo_small_en-white.svg
Image format
The images are served in the AVIF, WebP format.
JavaScript defer
The are 3 javascript resources without the defer attribute.
  1. https://www.google-analytics.com/analytics.js
  2. https://mc.yandex.ru/metrika/watch.js
  3. https://javascript.info/pack/init.28cff4e2f2e7cecb3d99.js
DOM size
The DOM size is optimal.
The HTML file has 946 DOM nodes.
Security
HTTPS encryption
The webpage uses HTTPS encryption.
The HTML file has https://javascript.info/ DOM nodes.
Mixed content
There are no mixed content resources on the webpage.
Server signature
The webpage has a public server signature.
cloudflare
Unsafe cross-origin links
The webpage does not have unsafe cross-origin links.
Plaintext email
The webpage does not contain any plaintext emails.
Miscellaneous
Structured data
The webpage has structured data.
        Meta viewport
        The webpage has a meta viewport tag set.
        width=device-width, initial-scale=1, user-scalable=yes, minimum-scale=1.0
        Character set
        The webpage does not have a charset declared.
        Sitemap
        No sitemaps found.
        Content length
        The webpage has 782 words.
        Text to HTML ratio
        The text to HTML ratio is 14%.
        Inline CSS
        The webpage contains inline CSS code.
        1. height:200px
        2. height:200px
        3. height:20px
        Deprecated HTML
        There are no deprecated HTML tags on the webpage.