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.
h1
1- The Modern JavaScript Tutorial
h2
5- Table of contents
- The JavaScript language
- Browser: Document, Events, Interfaces
- Additional articles
- Comments
Content keywords
The content has relevant keywords.
themodernjavascripttutorial
Image keywords
There are 4 images with missing alt attributes.
Images
4- https://javascript.info/img/sitetoolbar__logo_en.svg
- https://javascript.info/img/sitetoolbar__logo_en-white.svg
- https://javascript.info/img/sitetoolbar__logo_small_en.svg
- 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.
Externals
24- ARعربي
- ESEspañol
- FAفارسی
- FRFrançais
- IDIndonesia
- ITItaliano
- JA日本語
- KO한국어
- RUРусский
- TRTürkçe
- UKУкраїнська
- ZH简体中文
- https://twitter.com/share?url=https%3A%2F%2Fjavascript.info%2F
- https://www.facebook.com/sharer/sharer.php?s=100&p%5Burl%5D=https%3A%2F%2Fjavascript.info%2F
- https://twitter.com/share?url=https%3A%2F%2Fjavascript.info%2F
- https://www.facebook.com/sharer/sharer.php?s=100&p%5Burl%5D=https%3A%2F%2Fjavascript.info%2F
- 19266 ★github
- Discord Chat
- https://twitter.com/share?url=https%3A%2F%2Fjavascript.info%2F
- https://www.facebook.com/sharer/sharer.php?s=100&p%5Burl%5D=https%3A%2F%2Fjavascript.info%2F
- submit a GitHub issue
- plnkr
- jsbin
- codepen
Internals
212- ENEnglish
- Help to translate
- 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)});
- BuyEPUB/PDF
- Tutorial map
- BuyEPUB/PDF
- An introduction
- An Introduction to JavaScript
- Manuals and specifications
- Code editors
- Developer console
- JavaScript Fundamentals
- Hello, world!
- Code structure
- The modern mode, "use strict"
- Variables
- Data types
- Interaction: alert, prompt, confirm
- Type Conversions
- Basic operators, maths
- Comparisons
- Conditional branching: if, '?'
- Logical operators
- Nullish coalescing operator '??'
- Loops: while and for
- The "switch" statement
- Functions
- Function expressions
- Arrow functions, the basics
- JavaScript specials
- Code quality
- Debugging in the browser
- Coding Style
- Comments
- Ninja code
- Automated testing with Mocha
- Polyfills and transpilers
- Objects: the basics
- Objects
- Object references and copying
- Garbage collection
- Object methods, "this"
- Constructor, operator "new"
- Optional chaining '?.'
- Symbol type
- Object to primitive conversion
- Data types
- Methods of primitives
- Numbers
- Strings
- Arrays
- Array methods
- Iterables
- Map and Set
- WeakMap and WeakSet
- Object.keys, values, entries
- Destructuring assignment
- Date and time
- JSON methods, toJSON
- Advanced working with functions
- Recursion and stack
- Rest parameters and spread syntax
- Variable scope, closure
- The old "var"
- Global object
- Function object, NFE
- The "new Function" syntax
- Scheduling: setTimeout and setInterval
- Decorators and forwarding, call/apply
- Function binding
- Arrow functions revisited
- Object properties configuration
- Property flags and descriptors
- Property getters and setters
- Prototypes, inheritance
- Prototypal inheritance
- F.prototype
- Native prototypes
- Prototype methods, objects without __proto__
- Classes
- Class basic syntax
- Class inheritance
- Static properties and methods
- Private and protected properties and methods
- Extending built-in classes
- Class checking: "instanceof"
- Mixins
- Error handling
- Error handling, "try...catch"
- Custom errors, extending Error
- Promises, async/await
- Introduction: callbacks
- Promise
- Promises chaining
- Error handling with promises
- Promise API
- Promisification
- Microtasks
- Async/await
- Generators, advanced iteration
- Generators
- Async iteration and generators
- Modules
- Modules, introduction
- Export and Import
- Dynamic imports
- Miscellaneous
- Proxy and Reflect
- Eval: run a code string
- Currying
- Reference Type
- BigInt
- Unicode, String internals
- Document
- Browser environment, specs
- DOM tree
- Walking the DOM
- Searching: getElement*, querySelector*
- Node properties: type, tag and contents
- Attributes and properties
- Modifying the document
- Styles and classes
- Element size and scrolling
- Window sizes and scrolling
- Coordinates
- Introduction to Events
- Introduction to browser events
- Bubbling and capturing
- Event delegation
- Browser default actions
- Dispatching custom events
- UI Events
- Mouse events
- Moving the mouse: mouseover/out, mouseenter/leave
- Drag'n'Drop with mouse events
- Pointer events
- Keyboard: keydown and keyup
- Scrolling
- Forms, controls
- Form properties and methods
- Focusing: focus/blur
- Events: change, input, cut, copy, paste
- Forms: event and method submit
- Document and resource loading
- Page: DOMContentLoaded, load, beforeunload, unload
- Scripts: async, defer
- Resource loading: onload and onerror
- Miscellaneous
- Mutation observer
- Selection and Range
- Event loop: microtasks and macrotasks
- Frames and windows
- Popups and window methods
- Cross-window communication
- The clickjacking attack
- Binary data, files
- ArrayBuffer, binary arrays
- TextDecoder and TextEncoder
- Blob
- File and FileReader
- Network requests
- Fetch
- FormData
- Fetch: Download progress
- Fetch: Abort
- Fetch: Cross-Origin Requests
- Fetch API
- URL objects
- XMLHttpRequest
- Resumable file upload
- Long polling
- WebSocket
- Server Sent Events
- Storing data in the browser
- Cookies, document.cookie
- LocalStorage, sessionStorage
- IndexedDB
- Animation
- Bezier curve
- CSS-animations
- JavaScript animations
- Web components
- From the orbital height
- Custom elements
- Shadow DOM
- Template element
- Shadow DOM slots, composition
- Shadow DOM styling
- Shadow DOM and events
- Regular expressions
- Patterns and flags
- Character classes
- Unicode: flag "u" and class \p{...}
- Anchors: string start ^ and end $
- Multiline mode of anchors ^ $, flag "m"
- Word boundary: \b
- Escaping, special characters
- Sets and ranges [...]
- Quantifiers +, *, ? and {n}
- Greedy and lazy quantifiers
- Capturing groups
- Backreferences in pattern: \N and \k
- Alternation (OR) |
- Lookahead and lookbehind
- Catastrophic backtracking
- Sticky flag "y", searching at position
- Methods of RegExp and String
- Tutorial map
- about the project
- contact us
- terms of usage
- 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.
JavaScripts
7- https://www.google-analytics.com/analytics.js
- https://mc.yandex.ru/metrika/watch.js
- https://javascript.info/pack/init.28cff4e2f2e7cecb3d99.js
- https://javascript.info/pack/head.dce256bf169d66aab153.js
- https://javascript.info/pack/tutorial.3ffa7cc0fc7d8326505e.js
- https://javascript.info/pack/frontpage.dda81aeeea96e6f4fc30.js
- https://javascript.info/pack/footer.a24f7192d4aa2f169615.js
CSS
3- https://javascript.info/pack/styles.1dfb5e20b5a68f9f4908.css
- https://fonts.googleapis.com/css?family=Open+Sans:bold,italic,bolditalic
- https://javascript.info/pack/frontpage.dda81aeeea96e6f4fc30.css
Images
4- https://javascript.info/img/sitetoolbar__logo_en.svg
- https://javascript.info/img/sitetoolbar__logo_en-white.svg
- https://javascript.info/img/sitetoolbar__logo_small_en.svg
- 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.
JavaScripts
3- https://www.google-analytics.com/analytics.js
- https://mc.yandex.ru/metrika/watch.js
- 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.
Open Graph
5Twitter
5Schema.org
4
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.
Social
The webpage has 6 social links.
Twitter
3
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.
Attributes
3height:200px
height:200px
height:20px
Deprecated HTML
There are no deprecated HTML tags on the webpage.