Description
Maintainer List
@thickkoezz, @purwnt, @yoga1234, @juuni26
For New Translators
Please read this first (click to open)
To translate an article:
- Check that no one else has claimed your article in the checklist below.
- Comment below with the title of the article that you would like to translate, exactly as listed, e.g.
An Introduction to JavaScript
.- Please take only one article at a time.
- Fork this repo, translate the article in your fork and submit a pull request!
- The pull request title should be same as the article, e.g.
An Introduction to JavaScript
(just like comment)
- The pull request title should be same as the article, e.g.
Please be prompt with your translations! If you find that you can't commit any more, let maintainers know so they can assign the page to someone else.
For Maintainers
Click to open
We recommend that a translation has 2 reviews to be merged.
Please let others know what you do, on community boards and chats, invite them to join. Translations become better if more people see them.
Translations are tracked below, like this:
Our helpful bot watches comments and adds the translator nick and PR id, marks completed, when PR is merged. You can read the details at https://javascript.info/translate/bot.
If something doesn't work right, please contact @iliakan.
Team translation
More details about team translation: https://javascript.info/translate/bot.
Only maintainers can check/uncheck items below. If you're not, please write in a comment what you take to translate, the title, exactly as in the list.
The JavaScript language
An introduction
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 (@fcrezza)
- The "switch" statement
- Functions
- Function expressions
- Arrow functions, the basics (@dummyeuy) Arrow functions, the basics #53
- 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 (@hyuwah)
- Object methods, "this" (@dummyeuy) Object methods, "this" #57
- Constructor, operator "new" (@dummyeuy) Constructor, operator "new" #59
- Optional chaining '?.'
- Symbol type (@dummyeuy) Symbol type #56
- Object to primitive conversion (@dummyeuy) Object to primitive conversion #58
Data types
- Methods of primitives
- Numbers (@purwnt) Numbers #67
- Strings (@zdzc)
- Arrays (@dummyeuy) Arrays #63
- Array methods (@purwnt)
- Iterables (@purwnt)
- Map and Set
- WeakMap and WeakSet
- Object.keys, values, entries
- Destructuring assignment (@purwnt) Destructuring assignment #66
- Date and time (@gunturkh) Date and time #85
- JSON methods, toJSON
Advanced working with functions
- Recursion and stack (@lanasta)
- Rest parameters and spread syntax
- Variable scope, closure
- The old "var" (@elukuro)
- Global object (@lanasta)
- Function object, NFE
- The "new Function" syntax
- Scheduling: setTimeout and setInterval
- Decorators and forwarding, call/apply
- Function binding
- Arrow functions revisited
Object properties configuration
Prototypes, inheritance
- Prototypal inheritance (@yoga1234)
- F.prototype
- Native prototypes
- Prototype methods, objects without proto
Classes
- Class basic syntax (@juuni26)
- Class inheritance (@hendraaagil) Class inheritance #125
- Static properties and methods (@hendraaagil) Static properties and methods #116
- Private and protected properties and methods (@hendraaagil) Private and protected properties and methods #114
- Extending built-in classes (@xtrixia)
- Class checking: "instanceof" (@raisoturu) Class checking: "instanceof" #126
- Mixins (@hendraaagil) Mixins #128
Error handling
- Error handling, "try...catch"
- Custom errors, extending Error (@hendraaagil) Custom errors, extending Error #133
Promises, async/await
- Introduction: callbacks (@tegarjgap) Introduction: callbacks #44
- Promise
- Promises chaining (@tegarjgap) Promises chaining #113
- Error handling with promises (@tegarjgap)
- Promise API (@tegarjgap) Promise API #119
- Promisification (@tegarjgap)
- Microtasks (@tegarjgap)
- Async/await (@tegarjgap)
Generators, advanced iteration
- Generators (@andreepratama27)
- Async iteration and generators (@hendraaagil) Async iteration and generators #141
Modules
- Modules, introduction (@tiana30) Modules, introduction #159
- Export and Import (@babul28)
- Dynamic imports (@xtrixia)
Miscellaneous
- Proxy and Reflect
- Eval: run a code string (@raisoturu) Eval: run a code string #138
- Currying (@raisoturu) Currying #140
- Reference Type
- BigInt
- Unicode, String internals
- WeakRef and FinalizationRegistry
Browser: Document, Events, Interfaces
Document
- Browser environment, specs (@raisoturu) Browser environment, specs #130
- DOM tree
- Walking the DOM (@wahyukmr) Walking the DOM #317
- Searching: getElement*, querySelector* (@tiana30)
- Node properties: type, tag and contents (@tiana30)
- Attributes and properties (@wahyukmr) Attributes and properties #318
- Modifying the document (@wahyukmr) Modifying the document #337
- Styles and classes
- Element size and scrolling
- Window sizes and scrolling
- Coordinates
Introduction to Events
- Introduction to browser events (@EmptyWork) Introduction to browser events #236
- Bubbling and capturing (@EmptyWork) Bubbling and capturing #239
- Event delegation (@EmptyWork) Event delegation #243
- Browser default actions (@EmptyWork) Browser default actions #245
- Dispatching custom events (@EmptyWork)
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 (@Pazmy) Form properties and methods #155
- Focusing: focus/blur (@Pazmy) Focusing: focus/blur #160
- Events: change, input, cut, copy, paste (@abdmmar) Events: change, input, cut, copy, paste #224
- Forms: event and method submit (@abdmmar) Forms: event and method submit #219
Document and resource loading
- Page: DOMContentLoaded, load, beforeunload, unload
- Scripts: async, defer
- Resource loading: onload and onerror
Miscellaneous
Frames and windows
- Popups and window methods (@elukuro) Popups and window methods #149
- Cross-window communication
- The clickjacking attack
Binary data, files
- ArrayBuffer, binary arrays
- TextDecoder and TextEncoder
- Blob
- File and FileReader (@abdmmar) File and FileReader #218
Network requests
- Fetch (@tiana30) Fetch #134
- FormData (@babul28)
- Fetch: Download progress (@babul28)
- Fetch: Abort (@babul28)
- Fetch: Cross-Origin Requests (@tiana30) Fetch: Cross-Origin Requests #145
- Fetch API (@igihcksn)
- URL objects
- XMLHttpRequest
- Resumable file upload (@abdmmar)
- Long polling (@babul28)
- WebSocket
- Server Sent Events
Storing data in the browser
- Cookies, document.cookie
- LocalStorage, sessionStorage (@abdmmar) LocalStorage, sessionStorage #217
- IndexedDB
Animation
Web components
- From the orbital height (@abdmmar)
- Custom elements (@abdmmar)
- Shadow DOM (@abdmmar) Shadow DOM #143
- Template element (@abdmmar)
- Shadow DOM slots, composition (@abdmmar) Shadow DOM slots, composition #214
- Shadow DOM styling (@abdmmar) Shadow DOM styling #215
- Shadow DOM and events (@abdmmar)
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<name>
- Alternation (OR) |
- Lookahead and lookbehind
- Catastrophic backtracking
- Sticky flag "y", searching at position
- Methods of RegExp and String