Title: Вычитка · Issue #288 · javascript-tutorial/ru.javascript.info · GitHub
Open Graph Title: Вычитка · Issue #288 · javascript-tutorial/ru.javascript.info
X Title: Вычитка · Issue #288 · javascript-tutorial/ru.javascript.info
Description: Перед тем, как показывать новый учебник людям, его нужно вычитать. Даже после хорошего перевода бывают предложения, написанные не совсем по-русски, непонятные объяснения и т.п. Чтобы это отловить, достаточно прочитать русский текст свежи...
Open Graph Description: Перед тем, как показывать новый учебник людям, его нужно вычитать. Даже после хорошего перевода бывают предложения, написанные не совсем по-русски, непонятные объяснения и т.п. Чтобы это отловить, ...
X Description: Перед тем, как показывать новый учебник людям, его нужно вычитать. Даже после хорошего перевода бывают предложения, написанные не совсем по-русски, непонятные объяснения и т.п. Чтобы это отловить, ...
Opengraph URL: https://github.com/javascript-tutorial/ru.javascript.info/issues/288
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"Вычитка","articleBody":"Перед тем, как показывать новый учебник людям, его нужно вычитать.\r\n\r\nДаже после хорошего перевода бывают предложения, написанные не совсем по-русски, непонятные объяснения и т.п.\r\n\r\nЧтобы это отловить, достаточно прочитать русский текст свежим взглядом.\r\n\r\nМожно сделать это локально, установив сервер \u003chttps://github.com/javascript-tutorial/server\u003e.\r\n\r\nЕсли что не так - PR. Я сам помечу статью галочкой после вычитки.\r\n\r\nСпасибо!\r\n\r\n## The JavaScript language\r\n\r\n### An introduction\r\n\r\n* [x] [An Introduction to JavaScript](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/1-js/01-getting-started/1-intro) \r\n* [x] [Manuals and specifications](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/1-js/01-getting-started/2-manuals-specifications) \r\n* [x] [Code editors](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/1-js/01-getting-started/3-code-editors) \r\n* [x] [Developer console](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/1-js/01-getting-started/4-devtools) \r\n\r\n### JavaScript Fundamentals\r\n\r\n* [x] [Hello, world!](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/1-js/02-first-steps/01-hello-world) \r\n* [x] [Code structure](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/1-js/02-first-steps/02-structure) \r\n* [x] [The modern mode, \"use strict\"](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/1-js/02-first-steps/03-strict-mode) \r\n* [x] [Variables](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/1-js/02-first-steps/04-variables) \r\n* [x] [Data types](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/1-js/02-first-steps/05-types) \r\n* [x] [Type Conversions](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/1-js/02-first-steps/06-type-conversions) \r\n* [x] [Operators](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/1-js/02-first-steps/07-operators) \r\n* [x] [Comparisons](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/1-js/02-first-steps/08-comparison) \r\n* [x] [Interaction: alert, prompt, confirm](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/1-js/02-first-steps/09-alert-prompt-confirm) \r\n* [x] [Conditional operators: if, '?'](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/1-js/02-first-steps/10-ifelse) \r\n* [x] [Logical operators](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/1-js/02-first-steps/11-logical-operators) \r\n* [x] [Loops: while and for](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/1-js/02-first-steps/12-while-for) \r\n* [x] [The \"switch\" statement](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/1-js/02-first-steps/13-switch) \r\n* [x] [Functions](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/1-js/02-first-steps/14-function-basics) \r\n* [x] [Function expressions and arrows](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/1-js/02-first-steps/15-function-expressions-arrows) \r\n* [x] [JavaScript specials](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/1-js/02-first-steps/16-javascript-specials) \r\n\r\n### Code quality\r\n\r\n* [x] [Debugging in Chrome](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/1-js/03-code-quality/01-debugging-chrome) \r\n* [x] [Coding Style](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/1-js/03-code-quality/02-coding-style) \r\n* [x] [Comments](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/1-js/03-code-quality/03-comments) \r\n* [x] [Ninja code](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/1-js/03-code-quality/04-ninja-code) \r\n* [x] [Automated testing with mocha](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/1-js/03-code-quality/05-testing-mocha) \r\n* [x] [Polyfills](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/1-js/03-code-quality/06-polyfills) \r\n\r\n### Objects: the basics\r\n\r\n* [x] [Objects](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/1-js/04-object-basics/01-object) \r\n* [x] [Garbage collection](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/1-js/04-object-basics/02-garbage-collection) \r\n* [x] [Symbol type](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/1-js/04-object-basics/03-symbol) \r\n* [x] [Object methods, \"this\"](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/1-js/04-object-basics/04-object-methods) \r\n* [x] [Object to primitive conversion](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/1-js/04-object-basics/05-object-toprimitive) \r\n* [x] [Constructor, operator \"new\"](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/1-js/04-object-basics/06-constructor-new) \r\n\r\n### Data types\r\n\r\n* [x] [Methods of primitives](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/1-js/05-data-types/01-primitives-methods) \r\n* [x] [Numbers](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/1-js/05-data-types/02-number) \r\n* [x] [Strings](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/1-js/05-data-types/03-string) \r\n* [x] [Arrays](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/1-js/05-data-types/04-array) \r\n* [x] [Array methods](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/1-js/05-data-types/05-array-methods) \r\n* [x] [Iterables](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/1-js/05-data-types/06-iterable) \r\n* [x] [Map and Set](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/1-js/05-data-types/07-map-set) \r\n* [x] [WeakMap and WeakSet](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/1-js/05-data-types/08-weakmap-weakset) \r\n* [x] [Object.keys, values, entries](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/1-js/05-data-types/09-keys-values-entries) \r\n* [x] [Destructuring assignment](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/1-js/05-data-types/10-destructuring-assignment) \r\n* [x] [Date and time](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/1-js/05-data-types/11-date) \r\n* [x] [JSON methods, toJSON](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/1-js/05-data-types/12-json) \r\n\r\n### Advanced working with functions\r\n\r\n* [x] [Recursion and stack](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/1-js/06-advanced-functions/01-recursion) \r\n* [x] [Rest parameters and spread operator](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/1-js/06-advanced-functions/02-rest-parameters-spread-operator) \r\n* [x] [Closure](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/1-js/06-advanced-functions/03-closure) \r\n* [x] [The old \"var\"](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/1-js/06-advanced-functions/04-var) \r\n* [x] [Global object](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/1-js/06-advanced-functions/05-global-object) \r\n* [x] [Function object, NFE](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/1-js/06-advanced-functions/06-function-object) \r\n* [x] [The \"new Function\" syntax](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/1-js/06-advanced-functions/07-new-function) \r\n* [x] [Scheduling: setTimeout and setInterval](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/1-js/06-advanced-functions/08-settimeout-setinterval) \r\n* [x] [Decorators and forwarding, call/apply](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/1-js/06-advanced-functions/09-call-apply-decorators) \r\n* [x] [Function binding](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/1-js/06-advanced-functions/10-bind) \r\n* [x] [Arrow functions revisited](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/1-js/06-advanced-functions/12-arrow-functions) \r\n\r\n### Object properties configuration\r\n\r\n* [x] [Property flags and descriptors](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/1-js/07-object-properties/01-property-descriptors) \r\n* [x] [Property getters and setters](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/1-js/07-object-properties/02-property-accessors) \r\n\r\n### Prototypes, inheritance\r\n\r\n* [x] [Prototypal inheritance](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/1-js/08-prototypes/01-prototype-inheritance) \r\n* [x] [F.prototype](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/1-js/08-prototypes/02-function-prototype) \r\n* [x] [Native prototypes](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/1-js/08-prototypes/03-native-prototypes) \r\n* [x] [Prototype methods, objects without __proto__](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/1-js/08-prototypes/04-prototype-methods) \r\n\r\n### Classes\r\n\r\n* [x] [Class basic syntax](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/1-js/09-classes/01-class) \r\n* [x] [Class inheritance](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/1-js/09-classes/02-class-inheritance) \r\n* [x] [Static properties and methods](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/1-js/09-classes/03-static-properties-methods) \r\n* [x] [Private and protected properties and methods](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/1-js/09-classes/04-private-protected-properties-methods) \r\n* [x] [Extending built-in classes](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/1-js/09-classes/05-extend-natives) \r\n* [x] [Class checking: \"instanceof\"](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/1-js/09-classes/06-instanceof) \r\n* [x] [Mixins](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/1-js/09-classes/07-mixins) \r\n\r\n### Error handling\r\n\r\n* [x] [Error handling, \"try..catch\"](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/1-js/10-error-handling/1-try-catch) \r\n* [x] [Custom errors, extending Error](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/1-js/10-error-handling/2-custom-errors) \r\n\r\n### Promises, async/await\r\n\r\n* [x] [Introduction: callbacks](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/1-js/11-async/01-callbacks) \r\n* [x] [Promise](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/1-js/11-async/02-promise-basics) \r\n* [x] [Promises chaining](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/1-js/11-async/03-promise-chaining) \r\n* [x] [Error handling with promises](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/1-js/11-async/04-promise-error-handling) \r\n* [x] [Promise API](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/1-js/11-async/05-promise-api) \r\n* [x] [Promisification](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/1-js/11-async/06-promisify) \r\n* [x] [Microtasks](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/1-js/11-async/07-microtask-queue)\r\n* [x] [Async/await](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/1-js/11-async/08-async-await) \r\n\r\n### Generators, advanced iteration\r\n\r\n* [x] [Generators](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/1-js/12-generators-iterators/1-generators) \r\n* [x] [Async iterators and generators](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/1-js/12-generators-iterators/2-async-iterators-generators) \r\n\r\n### Modules\r\n\r\n* [x] [Modules, introduction](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/1-js/13-modules/01-modules-intro) \r\n* [x] [Export and Import](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/1-js/13-modules/02-import-export) \r\n* [x] [Dynamic imports](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/1-js/13-modules/03-modules-dynamic-imports) \r\n\r\n### Miscellaneous\r\n\r\n* [x] [Proxy and Reflect](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/1-js/99-js-misc/01-proxy) \r\n* [x] [Eval: run a code string](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/1-js/99-js-misc/02-eval)\r\n\r\n## Browser: Document, Events, Interfaces\r\n\r\n\r\n### Document\r\n\r\n* [x] [Browser environment, specs](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/2-ui/1-document/01-browser-environment) \r\n* [x] [DOM tree](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/2-ui/1-document/02-dom-nodes) \r\n* [x] [Walking the DOM](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/2-ui/1-document/03-dom-navigation) \r\n* [x] [Searching: getElement*, querySelector*](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/2-ui/1-document/04-searching-elements-dom) \r\n* [x] [Node properties: type, tag and contents](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/2-ui/1-document/05-basic-dom-node-properties) \r\n* [x] [Attributes and properties](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/2-ui/1-document/06-dom-attributes-and-properties) \r\n* [x] [Modifying the document](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/2-ui/1-document/07-modifying-document) \r\n* [x] [Styles and classes](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/2-ui/1-document/08-styles-and-classes) \r\n* [x] [Element size and scrolling](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/2-ui/1-document/09-size-and-scroll) \r\n* [x] [Window sizes and scrolling](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/2-ui/1-document/10-size-and-scroll-window) \r\n* [x] [Coordinates](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/2-ui/1-document/11-coordinates) \r\n\r\n### Introduction to Events\r\n\r\n* [x] [Introduction to browser events](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/2-ui/2-events/01-introduction-browser-events) \r\n* [x] [Bubbling and capturing](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/2-ui/2-events/02-bubbling-and-capturing) \r\n* [x] [Event delegation](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/2-ui/2-events/03-event-delegation) \r\n* [x] [Browser default actions](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/2-ui/2-events/04-default-browser-action) \r\n* [x] [Dispatching custom events](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/2-ui/2-events/05-dispatch-events) \r\n\r\n### UI Events\r\n\r\n* [x] [Mouse events basics](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/2-ui/3-event-details/1-mouse-events-basics) \r\n* [x] [Moving: mouseover/out, mouseenter/leave](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/2-ui/3-event-details/3-mousemove-mouseover-mouseout-mouseenter-mouseleave) \r\n* [x] [Drag'n'Drop with mouse events](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/2-ui/3-event-details/4-mouse-drag-and-drop) \r\n* [x] [Keyboard: keydown and keyup](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/2-ui/3-event-details/5-keyboard-events) \r\n* [x] [Scrolling](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/2-ui/3-event-details/8-onscroll) \r\n\r\n### Forms, controls\r\n\r\n* [x] [Form properties and methods](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/2-ui/4-forms-controls/1-form-elements) \r\n* [ ] [Focusing: focus/blur](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/2-ui/4-forms-controls/2-focus-blur) \r\n* [ ] [Events: change, input, cut, copy, paste](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/2-ui/4-forms-controls/3-events-change-input) \r\n* [ ] [Forms: event and method submit](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/2-ui/4-forms-controls/4-forms-submit)\r\n\r\n### Document and resource loading\r\n\r\n* [ ] [Page: DOMContentLoaded, load, beforeunload, unload](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/2-ui/5-loading/01-onload-ondomcontentloaded) \r\n* [ ] [Scripts: async, defer](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/2-ui/5-loading/02-script-async-defer) \r\n* [ ] [Resource loading: onload and onerror](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/2-ui/5-loading/03-onload-onerror) \r\n\r\n### Miscellaneous\r\n\r\n* [x] [Mutation observer](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/2-ui/99-ui-misc/01-mutation-observer) \r\n* [ ] [Selection and Range](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/2-ui/99-ui-misc/02-selection-range)\r\n* [x] [Event loop: microtasks and macrotasks](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/2-ui/99-ui-misc/03-event-loop)\r\n\r\n## Frames and windows\r\n\r\n* [ ] [Popups and window methods](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/3-frames-and-windows/01-popup-windows) \r\n* [ ] [Cross-window communication](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/3-frames-and-windows/03-cross-window-communication) \r\n* [ ] [The clickjacking attack](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/3-frames-and-windows/06-clickjacking) \r\n\r\n## Binary data, files\r\n\r\n* [ ] [ArrayBuffer, binary arrays](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/4-binary/01-arraybuffer-binary-arrays) \r\n* [x] [TextDecoder and TextEncoder](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/4-binary/02-text-decoder) \r\n* [ ] [Blob](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/4-binary/03-blob) \r\n* [ ] [File and FileReader](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/4-binary/04-file) \r\n\r\n## Network requests\r\n\r\n* [x] [Fetch](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/5-network/01-fetch)\r\n* [x] [FormData](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/5-network/02-formdata)\r\n* [x] [Fetch: Download progress](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/5-network/03-fetch-progress) \r\n* [x] [Fetch: Abort](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/5-network/04-fetch-abort) \r\n* [x] [Fetch: Cross-Origin Requests](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/5-network/05-fetch-crossorigin) \r\n* [x] [Fetch API](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/5-network/06-fetch-api) \r\n* [x] [URL objects](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/5-network/07-url) \r\n* [x] [XMLHttpRequest](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/5-network/08-xmlhttprequest) \r\n* [x] [Resumable file upload](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/5-network/09-resume-upload)\r\n* [x] [Long polling](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/5-network/10-long-polling)\r\n* [x] [WebSocket](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/5-network/11-websocket) \r\n* [ ] [Server Sent Events](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/5-network/12-server-sent-events)\r\n\r\n## Storing data in the browser\r\n\r\n* [ ] [Cookies, document.cookie](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/6-data-storage/01-cookie) \r\n* [ ] [LocalStorage, sessionStorage](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/6-data-storage/02-localstorage) \r\n* [ ] [IndexedDB](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/6-data-storage/03-indexeddb) \r\n\r\n## Animation\r\n\r\n* [ ] [Bezier curve](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/7-animation/1-bezier-curve) \r\n* [ ] [CSS-animations](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/7-animation/2-css-animations) \r\n* [ ] [JavaScript animations](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/7-animation/3-js-animation) \r\n\r\n## Web components\r\n\r\n* [ ] [From the orbital height](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/8-web-components/1-webcomponents-intro) \r\n* [ ] [Custom elements](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/8-web-components/2-custom-elements) \r\n* [ ] [Shadow DOM](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/8-web-components/3-shadow-dom) and events \r\n* [ ] [Template element](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/8-web-components/4-template-element) \r\n* [ ] [Shadow DOM slots, composition](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/8-web-components/5-slots-composition) \r\n* [ ] [Shadow DOM styling](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/8-web-components/6-shadow-dom-style) \r\n* [ ] [Shadow DOM and events](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/8-web-components/7-shadow-dom-events) \r\n\r\n## Regular expressions\r\n\r\n* [x] [Patterns and flags](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/9-regular-expressions/01-regexp-introduction) \r\n* [x] [Methods of RegExp and String](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/9-regular-expressions/02-regexp-methods) \r\n* [x] [Character classes](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/9-regular-expressions/03-regexp-character-classes) \r\n* [x] [Escaping, special characters](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/9-regular-expressions/04-regexp-escaping) \r\n* [x] [Sets and ranges [...]](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/9-regular-expressions/05-regexp-character-sets-and-ranges) \r\n* [x] [Quantifiers +, *, ? and {n}](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/9-regular-expressions/07-regexp-quantifiers) \r\n* [x] [Greedy and lazy quantifiers](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/9-regular-expressions/08-regexp-greedy-and-lazy) \r\n* [x] [Capturing groups](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/9-regular-expressions/09-regexp-groups) \r\n* [x] [Backreferences in pattern: \\n and \\k](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/9-regular-expressions/10-regexp-backreferences) \r\n* [x] [Alternation (OR) |](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/9-regular-expressions/11-regexp-alternation) \r\n* [x] [String start ^ and finish $](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/9-regular-expressions/12-regexp-anchors) \r\n* [x] [Multiline mode, flag \"m\"](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/9-regular-expressions/13-regexp-multiline-mode) \r\n* [x] [Lookahead and lookbehind](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/9-regular-expressions/14-regexp-lookahead-lookbehind) \r\n* [x] [Infinite backtracking problem](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/9-regular-expressions/15-regexp-infinite-backtracking-problem) \r\n* [x] [Unicode: flag \"u\"](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/9-regular-expressions/20-regexp-unicode) \r\n* [x] [Unicode character properties \\p](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/9-regular-expressions/21-regexp-unicode-properties) \r\n* [x] [Sticky flag \"y\", searching at position](https://github.com/javascript-tutorial/ru.javascript.info/blob/master/9-regular-expressions/22-regexp-sticky) \r\n","author":{"url":"https://github.com/iliakan","@type":"Person","name":"iliakan"},"datePublished":"2019-07-06T09:09:58.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":25},"url":"https://github.com/288/ru.javascript.info/issues/288"}
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:06cd6c55-46d3-c676-8c08-479437312456 |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | 94C6:A2119:274A07C:35AB70A:69709805 |
| html-safe-nonce | 827bfddcd2998e54569129884267d232a1853c180f303eff05e9bb9283a35ca0 |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiI5NEM2OkEyMTE5OjI3NEEwN0M6MzVBQjcwQTo2OTcwOTgwNSIsInZpc2l0b3JfaWQiOiIzNDk1NDUyODA5MTMxNzU5NjIxIiwicmVnaW9uX2VkZ2UiOiJpYWQiLCJyZWdpb25fcmVuZGVyIjoiaWFkIn0= |
| visitor-hmac | 212e62605e7478086586254157fbaa6bf2be6264d5c8ed2e4443c0f518a7059a |
| hovercard-subject-tag | issue:464834928 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/javascript-tutorial/ru.javascript.info/288/issue_layout |
| twitter:image | https://opengraph.githubassets.com/dc550a00a61a2f059079ee8b6247bad6e72d5561e3cf8cdc32f4d4f1f8d05d35/javascript-tutorial/ru.javascript.info/issues/288 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/dc550a00a61a2f059079ee8b6247bad6e72d5561e3cf8cdc32f4d4f1f8d05d35/javascript-tutorial/ru.javascript.info/issues/288 |
| og:image:alt | Перед тем, как показывать новый учебник людям, его нужно вычитать. Даже после хорошего перевода бывают предложения, написанные не совсем по-русски, непонятные объяснения и т.п. Чтобы это отловить, ... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | iliakan |
| hostname | github.com |
| expected-hostname | github.com |
| None | 9920a62ba22d06470388e2904804fb7e5ec51c9e35f81784e9191394c74b2bd2 |
| turbo-cache-control | no-preview |
| go-import | github.com/javascript-tutorial/ru.javascript.info git https://github.com/javascript-tutorial/ru.javascript.info.git |
| octolytics-dimension-user_id | 49552305 |
| octolytics-dimension-user_login | javascript-tutorial |
| octolytics-dimension-repository_id | 160851084 |
| octolytics-dimension-repository_nwo | javascript-tutorial/ru.javascript.info |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 160851084 |
| octolytics-dimension-repository_network_root_nwo | javascript-tutorial/ru.javascript.info |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | 7d6181066430cc06553c8396ca201e194ae33cb9 |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width