diff options
Diffstat (limited to 'files/ru/web/javascript/reference')
71 files changed, 400 insertions, 400 deletions
diff --git a/files/ru/web/javascript/reference/classes/constructor/index.html b/files/ru/web/javascript/reference/classes/constructor/index.html index 3b0b38b700..81546fdb27 100644 --- a/files/ru/web/javascript/reference/classes/constructor/index.html +++ b/files/ru/web/javascript/reference/classes/constructor/index.html @@ -14,13 +14,13 @@ translation_of: Web/JavaScript/Reference/Classes/constructor <h2 id="Синтаксис">Синтаксис</h2> -<pre class="syntaxbox notranslate">constructor([arguments]) { ... }</pre> +<pre class="syntaxbox">constructor([arguments]) { ... }</pre> <h2 id="Описание">Описание</h2> <p>Конструктор позволяет произвести начальную инициализацию, которая должна быть выполнена до того, как остальные методы будут вызваны.</p> -<pre class="notranslate">class Person { +<pre>class Person { constructor(name) { this.name = name; @@ -38,17 +38,17 @@ otto.introduce();</pre> <p>Если вы не определили метод constructor, то будет использован конструктор по умолчанию. Если ваш класс базовый, то конструктор по умолчанию пустой:</p> -<pre class="notranslate">constructor() {}</pre> +<pre>constructor() {}</pre> <p>Если ваш класс является производным классом, конструктор по умолчанию вызывает родительский конструктор, передавая любые аргументы, которые были предоставлены:</p> -<pre class="notranslate">constructor(...args) { +<pre>constructor(...args) { super(...args); }</pre> <p>Это позволяет работать следующему коду:</p> -<pre class="notranslate">class ValidationError extends Error { +<pre>class ValidationError extends Error { printCustomerMessage() { return `Проверка не удалась :-( (подробности: ${this.message})`; @@ -72,7 +72,7 @@ try { <p>Однако, если определён ваш собственный конструктор и класс является производным от какого-либо родительского класса, то вы должны явно объявить конструктор родительского класса, используя <code>super</code>. К примеру:</p> -<pre class="notranslate">class ValidationError extends Error { +<pre>class ValidationError extends Error { constructor(message) { super(message); // вызов конструктора родительского класса @@ -106,7 +106,7 @@ try { <p>Данный фрагмент кода взят из <a href="https://github.com/GoogleChrome/samples/blob/gh-pages/classes-es6/index.html">classes sample</a> (<a href="https://googlechrome.github.io/samples/classes-es6/index.html">live demo</a>).</p> -<pre class="brush: js notranslate">class Square extends Polygon { +<pre class="brush: js">class Square extends Polygon { constructor(length) { // Здесь вызывается конструктор родительского класса, // в который передаётся length в качестве аргументов, @@ -130,7 +130,7 @@ try { <p>Посмотрите на этот отрывок кода.</p> -<pre class="brush: js notranslate">class Polygon { +<pre class="brush: js">class Polygon { constructor() { this.name = "Polygon"; } @@ -158,11 +158,11 @@ console.log(newInstance.name); //Polygon</pre> <p>Если вы не определите метод constructor, будет использован constructor по умолчанию. Для базовых классов, constructor по умолчанию:</p> -<pre class="brush: js notranslate">constructor() {}</pre> +<pre class="brush: js">constructor() {}</pre> <p>Для производных классов, constructor по умолчанию:</p> -<pre class="brush: js notranslate">constructor(...args) { +<pre class="brush: js">constructor(...args) { super(...args); }</pre> diff --git a/files/ru/web/javascript/reference/classes/index.html b/files/ru/web/javascript/reference/classes/index.html index f8a63e92b2..742cd341ca 100644 --- a/files/ru/web/javascript/reference/classes/index.html +++ b/files/ru/web/javascript/reference/classes/index.html @@ -22,7 +22,7 @@ translation_of: Web/JavaScript/Reference/Classes <p>Первый способ определения класса — <strong>class declaration (</strong><em>объявление класса</em><strong>)</strong>. Для этого необходимо воспользоваться ключевым словом <code>class</code> и указать имя класса (в примере — «Rectangle»).</p> -<pre class="brush: js notranslate"><code>class Rectangle { +<pre class="brush: js"><code>class Rectangle { constructor(height, width) { this.height = height; this.width = width; @@ -33,7 +33,7 @@ translation_of: Web/JavaScript/Reference/Classes <p>Разница между <em>объявлением функции</em> (<em>function declaration</em>) и <em>объявлением класса</em> (<em>class declaration</em>) в том, что <em>объявление функции</em> совершает подъём ({{Glossary("Hoisting", "hoisting")}}), в то время как <em>объявление класса</em> — нет. Поэтому вначале необходимо объявить ваш класс и только затем работать с ним, а код же вроде следующего сгенерирует исключение типа {{jsxref("ReferenceError")}}:</p> -<pre class="brush: js notranslate"><code>var p = new Rectangle(); // ReferenceError +<pre class="brush: js"><code>var p = new Rectangle(); // ReferenceError class Rectangle {}</code></pre> @@ -41,7 +41,7 @@ class Rectangle {}</code></pre> <p>Второй способ определения класса — <strong>class expression (</strong><em>выражение класса</em><strong>)</strong>. Можно создавать именованные и безымянные выражения. В первом случае имя выражения класса находится в локальной области видимости класса и может быть получено через свойства самого класса, а не его экземпляра.</p> -<pre class="brush: js notranslate"><code>// безымянный +<pre class="brush: js"><code>// безымянный var Rectangle = class { constructor(height, width) { this.height = height; @@ -84,7 +84,7 @@ console.log(Rectangle.name); <p>Смотрите также <a href="/ru/docs/Web/JavaScript/Reference/Functions/%D0%9E%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B8%D0%BD%D0%B8%D0%B5_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D0%BE%D0%B2">определение методов</a>.</p> -<pre class="brush: js notranslate"><code>class Rectangle { +<pre class="brush: js"><code>class Rectangle { constructor(height, width) { this.height = height; this.width = width; @@ -107,7 +107,7 @@ console.log(square.area); // 100</code></pre> <p>Ключевое слово <code><a href="/en-US/docs/Web/JavaScript/Reference/Classes/static">static</a></code>, определяет статический метод или свойства для класса. Статические методы и свойства вызываются без <a href="/ru/docs/Web/JavaScript/Introduction_to_Object-Oriented_JavaScript#The_Object_.28Class_Instance.29">инстанцирования</a> их класса, и <strong>не могут</strong> быть вызваны у экземпляров (<em>instance</em>) класса. Статические методы, часто используются для создания служебных функций для приложения, в то время как статические свойства полезны для кеширования в рамках класса, фиксированной конфигурации или любых других целей, не связанных с реплецированием данных между экземплярами.</p> -<pre class="brush: js notranslate"><code>class Point { +<pre class="brush: js"><code>class Point { constructor(x, y) { this.x = x; this.y = y; @@ -136,7 +136,7 @@ console.log(Point.distance(p1, p2)); // 7.0710678118654755</code></pre> <p>Когда статический или прототипный метод вызывается без привязки к <font face="consolas, Liberation Mono, courier, monospace"><span style="background-color: rgba(220, 220, 220, 0.5);">this</span></font> объекта (или когда <font face="consolas, Liberation Mono, courier, monospace"><span style="background-color: rgba(220, 220, 220, 0.5);">this</span></font> является типом boolean, string, number, undefined, null), тогда <font face="consolas, Liberation Mono, courier, monospace"><span style="background-color: rgba(220, 220, 220, 0.5);">this</span></font> будет иметь значение <font face="consolas, Liberation Mono, courier, monospace"><span style="background-color: rgba(220, 220, 220, 0.5);">undefined</span></font> внутри вызываемой функции. Автоупаковка не будет произведена. Поведение будет таким же как если бы мы писали код в нестрогом режиме.</p> -<pre class="brush: js notranslate"><code>class Animal { +<pre class="brush: js"><code>class Animal { speak() { return this; } @@ -156,7 +156,7 @@ eat(); // undefined</code></pre> <p>Если мы напишем этот же код используя классы основанные на функциях, тогда произойдёт автоупаковка основанная на значении <font face="consolas, Liberation Mono, courier, monospace"><span style="background-color: rgba(220, 220, 220, 0.5);">this</span></font>, в течение которого функция была вызвана. В строгом режиме автоупаковка не произойдёт - значение <font face="consolas, Liberation Mono, courier, monospace"><span style="background-color: rgba(220, 220, 220, 0.5);">this</span></font> останется прежним.</p> -<pre class="brush: js notranslate"><code>function Animal() { } +<pre class="brush: js"><code>function Animal() { } Animal.prototype.speak = function(){ return this; @@ -178,7 +178,7 @@ eat(); // глобальный объект (нестрогий режим)</cod <p>Свойства экземпляра должны быть определены в методе класса:</p> -<pre class="notranslate">class Rectangle { +<pre>class Rectangle { constructor(height, width) { this.height = height; this.width = width; @@ -187,7 +187,7 @@ eat(); // глобальный объект (нестрогий режим)</cod <p>Статические (class-side) свойства и свойства прототипа должны быть определены за рамками тела класса:</p> -<pre class="notranslate">Rectangle.staticWidth = 20; +<pre>Rectangle.staticWidth = 20; Rectangle.prototype.prototypeWidth = 25; </pre> @@ -201,7 +201,7 @@ Rectangle.prototype.prototypeWidth = 25; <p>Используя Javascript синтаксис определения полей, приведённый выше пример может быть изменён следующим образом:</p> -<pre class="notranslate">class Rectangle { +<pre>class Rectangle { height = 0; width; constructor(height, width) { @@ -218,7 +218,7 @@ Rectangle.prototype.prototypeWidth = 25; <p>Предыдущий пример может быть изменён следующим образом, используя приватные поля:</p> -<pre class="notranslate">class Rectangle { +<pre>class Rectangle { #height = 0; #width; constructor(height, width) { @@ -241,7 +241,7 @@ Rectangle.prototype.prototypeWidth = 25; <p>Ключевое слово <code><a href="/en-US/docs/Web/JavaScript/Reference/Classes/extends">extends</a></code> используется в <em>объявлениях классов</em> и <em>выражениях классов</em> для создания класса, дочернего относительно другого класса.</p> -<pre class="brush: js notranslate"><code class="language-js">class Animal { +<pre class="brush: js"><code class="language-js">class Animal { constructor(name) { this.name = name; }</code> @@ -268,7 +268,7 @@ d.speak(); // Митци лает</code></pre> <p>Аналогичным образом можно расширять традиционные, основанные на функциях "классы":</p> -<pre class="brush: js line-numbers language-js notranslate"><code class="language-js">function Animal (name) { +<pre class="brush: js line-numbers language-js"><code class="language-js">function Animal (name) { this.name = name; } Animal.prototype.speak = function () { @@ -288,7 +288,7 @@ d.speak(); // Митци лает <p>Обратите внимание, что классы не могут расширять обычные (non-constructible) объекты. Если вам необходимо создать наследование от обычного объекта, в качестве замены можно использовать {{jsxref("Object.setPrototypeOf()")}}:</p> -<pre class="brush: js line-numbers language-js notranslate"><code class="language-js">var Animal = { +<pre class="brush: js line-numbers language-js"><code class="language-js">var Animal = { speak() { console.log(</code>`${this.name} издаёт звук.`<code class="language-js">); } @@ -312,7 +312,7 @@ d.speak(); // Митци издаёт звук.</code></pre> <p>Например, при использовании таких методов, как {{jsxref("Array.map", "map()")}}, который возвращает конструктор по умолчанию, вам хотелось бы, чтобы они возвращали родительский объект <code>Array</code> вместо объекта <code>MyArray</code>. Символ {{jsxref("Symbol.species")}} позволяет это реализовать:</p> -<pre class="brush: js line-numbers language-js notranslate"><code class="language-js">class MyArray extends Array { +<pre class="brush: js line-numbers language-js"><code class="language-js">class MyArray extends Array { // Изменить species на родительский конструктор Array static get [Symbol.species]() { return Array; } } @@ -326,7 +326,7 @@ console.log(mapped instanceof Array); // true</code></pre> <p>Ключевое слово <code><a href="/ru/docs/Web/JavaScript/Reference/Operators/super">super</a></code> используется для вызова функций на родителе объекта.</p> -<pre class="brush: js language-js notranslate"><code class="language-js">class Cat { +<pre class="brush: js language-js"><code class="language-js">class Cat { constructor(name) { this.name = name; } @@ -355,7 +355,7 @@ l.speak(); <p>Для реализации mix-ins в ECMAScript можно использовать функцию, которая в качестве аргумента принимает родительский класс, а возвращает подкласс, его расширяющий:</p> -<pre class="brush: js line-numbers language-js notranslate"><code class="language-js">var calculatorMixin = Base => class extends Base { +<pre class="brush: js line-numbers language-js"><code class="language-js">var calculatorMixin = Base => class extends Base { calc() { } }; @@ -365,7 +365,7 @@ var randomizerMixin = Base => class extends Base { <p>Класс, использующий такие mix-ins, можно описать следующим образом:</p> -<pre class="brush: js line-numbers language-js notranslate"><code class="language-js">class Foo { } +<pre class="brush: js line-numbers language-js"><code class="language-js">class Foo { } class Bar extends calculatorMixin(randomizerMixin(Foo)) { }</code></pre> <h2 id="Спецификации">Спецификации</h2> diff --git a/files/ru/web/javascript/reference/classes/private_class_fields/index.html b/files/ru/web/javascript/reference/classes/private_class_fields/index.html index 356e8b5517..597d98ebeb 100644 --- a/files/ru/web/javascript/reference/classes/private_class_fields/index.html +++ b/files/ru/web/javascript/reference/classes/private_class_fields/index.html @@ -10,7 +10,7 @@ original_slug: Web/JavaScript/Reference/Classes/Приватные_поля_кл <h2 id="Синтаксис">Синтаксис</h2> -<pre class="syntaxbox notranslate">class ClassWithPrivateField { +<pre class="syntaxbox">class ClassWithPrivateField { #privateField } @@ -33,7 +33,7 @@ class ClassWithPrivateStaticField { <p>Ограничение статических переменных, вызываемых только статическими методами, все ещё сохраняется.</p> -<pre class="brush: js notranslate">class ClassWithPrivateStaticField { +<pre class="brush: js">class ClassWithPrivateStaticField { static #PRIVATE_STATIC_FIELD static publicStaticMethod() { @@ -50,7 +50,7 @@ console.assert(ClassWithPrivateStaticField.publicStaticMethod() === 42)</pre> <p>Это может привести к неожиданному поведению при использовании this.</p> -<pre class="brush: js notranslate">class BaseClassWithPrivateStaticField { +<pre class="brush: js">class BaseClassWithPrivateStaticField { static #PRIVATE_STATIC_FIELD static basePublicStaticMethod() { @@ -76,7 +76,7 @@ console.assert(error instanceof TypeError) <p><span class="tlid-translation translation" lang="ru"><span title="">Инкапсуляция обеспечивается языком.</span> <span title="">Обращение к <code>#</code> именам вне области видимости является синтаксической ошибкой.</span></span></p> -<pre class="brush: js notranslate">class ClassWithPrivateField { +<pre class="brush: js">class ClassWithPrivateField { #privateField constructor() { @@ -99,7 +99,7 @@ instance.#privateField === 42 // Syntax error <p>Приватные статические методы могут быть генераторами, асинхронными функциями и асинхронными функциями-генераторами.</p> -<pre class="brush: js notranslate">class ClassWithPrivateStaticMethod { +<pre class="brush: js">class ClassWithPrivateStaticMethod { static #privateStaticMethod() { return 42 } @@ -119,7 +119,7 @@ console.assert(ClassWithPrivateStaticMethod.publicStaticMethod2() === 42); <p>Это может привести к неожиданному поведению при его использовании <strong><code>this</code></strong>. В следующем примере <code>this</code> относится к классу <code>Derived</code> (а не к классу <code>Base</code>), когда мы пытаемся вызвать <code>Derived.publicStaticMethod2()</code>, и, таким образом, имеет такое же "ограничение по происхождению", как упоминалось выше:</p> -<pre class="brush: js notranslate">class Base { +<pre class="brush: js">class Base { static #privateStaticMethod() { return 42; } @@ -141,7 +141,7 @@ console.log(Derived.publicStaticMethod2()); // TypeError <p>Приватные методы экземпляров это методы, доступные у экземпляров класса, доступ к которым запрещён также, как у приватных полей класса.</p> -<pre class="brush: js notranslate">class ClassWithPrivateMethod { +<pre class="brush: js">class ClassWithPrivateMethod { #privateMethod() { return 'hello world' } @@ -157,7 +157,7 @@ console.log(instance.getPrivateMessage()) <p>Приватные методы экземпляров могут быть генератором, async, или функциями async генератора. Приватные геттеры и сеттеры также возможны:</p> -<pre class="brush: js notranslate">class ClassWithPrivateAccessor { +<pre class="brush: js">class ClassWithPrivateAccessor { #message get #decoratedMessage() { diff --git a/files/ru/web/javascript/reference/classes/public_class_fields/index.html b/files/ru/web/javascript/reference/classes/public_class_fields/index.html index 865babfded..0c4eb7a7ea 100644 --- a/files/ru/web/javascript/reference/classes/public_class_fields/index.html +++ b/files/ru/web/javascript/reference/classes/public_class_fields/index.html @@ -47,7 +47,7 @@ class ClassWithPublicInstanceMethod { <p>Публичные статические поля объявляются при помощи ключевого слова <code>static</code>. Они добавляются в конструктор класса во время его создания с помощью {{jsxref("Global_Objects/Object/defineProperty", "Object.defineProperty()")}}. Доступ также осуществляется через конструктор класса.</p> -<pre class="brush: js notranslate">class ClassWithStaticField { +<pre class="brush: js">class ClassWithStaticField { static staticField = 'static field'; } @@ -57,7 +57,7 @@ console.log(ClassWithStaticField.staticField); <p>Поля без инициализации имеют значение <code>undefined</code>.</p> -<pre class="brush: js notranslate">class ClassWithStaticField { +<pre class="brush: js">class ClassWithStaticField { static staticField; } @@ -67,7 +67,7 @@ console.log(ClassWithStaticField.staticField); <p>Публичные статические поля не переопределяются в наследниках класса, а могут быть доступны через иерархию прототипов.</p> -<pre class="brush: js notranslate">class ClassWithStaticField { +<pre class="brush: js">class ClassWithStaticField { static baseStaticField = 'base field'; } @@ -83,7 +83,7 @@ console.log(SubClassWithStaticField.baseStaticField); <p>При определении полей <code>this</code> ссылается на конструктор класса. Также можно обратиться к нему по имени и использовать <code>super</code> для получения конструктора базового класса, если он существует.</p> -<pre class="brush: js notranslate">class ClassWithStaticField { +<pre class="brush: js">class ClassWithStaticField { static baseStaticField = 'base static field'; static anotherBaseStaticField = this.baseStaticField; @@ -108,7 +108,7 @@ console.log(SubClassWithStaticField.subStaticField); <p>Публичные поля экземпляра добавляются через {{jsxref("Global_Objects/Object/defineProperty", "Object.defineProperty()")}} либо перед тем, как будет исполнено тело конструктора в базовом классе, либо после того, как завершится <code>super()</code> в классе наследнике.</p> -<pre class="brush: js notranslate">class ClassWithInstanceField { +<pre class="brush: js">class ClassWithInstanceField { instanceField = 'instance field'; } @@ -118,7 +118,7 @@ console.log(instance.instanceField); <p>Поля без инициализации имеют значение <code>undefined</code>.</p> -<pre class="brush: js notranslate">class ClassWithInstanceField { +<pre class="brush: js">class ClassWithInstanceField { instanceField; } @@ -129,7 +129,7 @@ console.log(instance.instanceField); <p>Как и свойства, названия полей могут вычисляться.</p> -<pre class="brush: js notranslate">const PREFIX = 'prefix'; +<pre class="brush: js">const PREFIX = 'prefix'; class ClassWithComputedFieldName { [`${PREFIX}Field`] = 'prefixed field'; @@ -141,7 +141,7 @@ console.log(instance.prefixField); <p>При определении полей <code>this</code> ссылается на создающийся экземпляр класса. Как и в публичных методах экземпляра, получить доступ к прототипу базового класса можно с помощью <code>super</code>.</p> -<pre class="brush: js notranslate">class ClassWithInstanceField { +<pre class="brush: js">class ClassWithInstanceField { baseInstanceField = 'base field'; anotherBaseInstanceField = this.baseInstanceField; baseInstanceMethod() { return 'base method output'; } @@ -166,7 +166,7 @@ console.log(sub.subInstanceField); <p>Ключевое слово <code><strong>static</strong></code> объявляет статический метод класса. Статические методы не вызываются из экземпляра, вместо этого они вызывается из самого класса. Чаще всего это какие-либо служебные функции, такие как функции создания или копирования объектов.</p> -<pre class="brush: js notranslate">class ClassWithStaticMethod { +<pre class="brush: js">class ClassWithStaticMethod { static staticMethod() { return 'static method has been called.'; } @@ -182,7 +182,7 @@ console.log(ClassWithStaticMethod.staticMethod()); <p>Как и следует из названия, публичные методы экземпляра это методы, доступные для вызова из экземпляров.</p> -<pre class="brush: js notranslate">class ClassWithPublicInstanceMethod { +<pre class="brush: js">class ClassWithPublicInstanceMethod { publicMethod() { return 'hello world'; } @@ -196,7 +196,7 @@ console.log(instance.publicMethod()); <p>Вы можете использовать генераторы, асинхронные функции и асинхронные генераторы.</p> -<pre class="brush: js notranslate">class ClassWithFancyMethods { +<pre class="brush: js">class ClassWithFancyMethods { *generatorMethod() { } async asyncMethod() { } async *asyncGeneratorMethod() { } @@ -205,7 +205,7 @@ console.log(instance.publicMethod()); <p>Внутри методов экземпляра, <code>this</code> ссылается на сам экземпляр.<br> В классах наследниках, <code>super</code> даёт доступ к прототипу базового класса, позволяя вызывать его методы.</p> -<pre class="brush: js notranslate">class BaseClass { +<pre class="brush: js">class BaseClass { msg = 'hello world'; basePublicMethod() { return this.msg; @@ -225,7 +225,7 @@ console.log(instance.subPublicMethod()); <p>Геттеры и сеттеры это специальные методы, которые привязаны к свойствам класса и которые вызываются, когда к свойству обращаются или записывают. Используйте <a href="/ru/docs/Web/JavaScript/Reference/Functions/get">get</a> и <a href="/ru/docs/Web/JavaScript/Reference/Functions/set">set</a> для объявления публичных геттеров и сеттеров экземпляра.</p> -<pre class="brush: js notranslate">class ClassWithGetSet { +<pre class="brush: js">class ClassWithGetSet { #msg = 'hello world'; get msg() { return this.#msg; diff --git a/files/ru/web/javascript/reference/errors/bad_radix/index.html b/files/ru/web/javascript/reference/errors/bad_radix/index.html index c4cc82a20b..002078bc54 100644 --- a/files/ru/web/javascript/reference/errors/bad_radix/index.html +++ b/files/ru/web/javascript/reference/errors/bad_radix/index.html @@ -21,11 +21,11 @@ RangeError: toString() radix argument must be between 2 and 36 (Chrome) <h2 id="Что_пошло_не_так">Что пошло не так?</h2> -<p><span class="notranslate">Метод </span> {{jsxref("Number.prototype.toString()")}} <span class="notranslate">был вызван с дополнительным параметром <code>radix</code>.</span> <span class="notranslate"> Его значение должно быть целым числом, принадлежащим промежутку от 2 до 36 и указывающим основание системы счисления, которая должна быть использована для представления численных значений.</span> <span class="notranslate"> Например, десятичное (основание 10) число 169 представляется в шестнадцатеричном виде (основание 16) как A9.</span></p> +<p><span>Метод </span> {{jsxref("Number.prototype.toString()")}} <span>был вызван с дополнительным параметром <code>radix</code>.</span> <span> Его значение должно быть целым числом, принадлежащим промежутку от 2 до 36 и указывающим основание системы счисления, которая должна быть использована для представления численных значений.</span> <span> Например, десятичное (основание 10) число 169 представляется в шестнадцатеричном виде (основание 16) как A9.</span></p> -<p><span class="notranslate">Почему значение этого параметра не может быть больше, чем 36? Для оснований</span><span class="notranslate">, превышающих 10, в качестве цифр используются алфавитные символы;</span> <span class="notranslate"> следовательно, основание не может быть больше 36, поскольку в латинском алфавите (используемом английским и многими другими языками) только 26 символов.</span></p> +<p><span>Почему значение этого параметра не может быть больше, чем 36? Для оснований</span><span>, превышающих 10, в качестве цифр используются алфавитные символы;</span> <span> следовательно, основание не может быть больше 36, поскольку в латинском алфавите (используемом английским и многими другими языками) только 26 символов.</span></p> -<p><span class="notranslate">Наиболее распространённые основания систем счисления:</span></p> +<p><span>Наиболее распространённые основания систем счисления:</span></p> <ul> <li>2 для <a href="https://ru.wikipedia.org/wiki/Двоичная_система_счисления">двоичных чисел</a>,</li> @@ -36,7 +36,7 @@ RangeError: toString() radix argument must be between 2 and 36 (Chrome) <h2 id="Примеры">Примеры</h2> -<h3 class="highlight-spanned" id="Некорректное_применение"><span class="highlight-span"><span class="notranslate">Некорректное применение</span></span></h3> +<h3 class="highlight-spanned" id="Некорректное_применение"><span class="highlight-span"><span>Некорректное применение</span></span></h3> <pre class="brush: js example-bad">(42).toString(0); (42).toString(1); @@ -54,7 +54,7 @@ RangeError: toString() radix argument must be between 2 and 36 (Chrome) (100000).toString(16) // "186a0" (шестнадцатеричная) </pre> -<h2 id="Смотрите_также"><span class="notranslate">Смотрите также</span></h2> +<h2 id="Смотрите_также"><span>Смотрите также</span></h2> <ul> <li>{{jsxref("Number.prototype.toString()")}}</li> diff --git a/files/ru/web/javascript/reference/errors/cant_assign_to_property/index.html b/files/ru/web/javascript/reference/errors/cant_assign_to_property/index.html index 60d17cbcfb..d1316fe4f9 100644 --- a/files/ru/web/javascript/reference/errors/cant_assign_to_property/index.html +++ b/files/ru/web/javascript/reference/errors/cant_assign_to_property/index.html @@ -9,7 +9,7 @@ translation_of: Web/JavaScript/Reference/Errors/Cant_assign_to_property <h2 id="Message">Message</h2> -<pre class="syntaxbox notranslate">TypeError: <code class="highlighted" id="line-87">can't assign to property "x" on {y}: not an object</code> (Firefox) +<pre class="syntaxbox">TypeError: <code class="highlighted" id="line-87">can't assign to property "x" on {y}: not an object</code> (Firefox) TypeError: Cannot create property 'x' on {y} (Chrome) </pre> @@ -27,7 +27,7 @@ TypeError: Cannot create property 'x' on {y} (Chrome) <h3 id="Invalid_cases">Invalid cases</h3> -<pre class="brush: js example-bad notranslate">'use strict'; +<pre class="brush: js example-bad">'use strict'; var foo = "my string"; // The following line does nothing if not in strict mode. @@ -38,7 +38,7 @@ foo.bar = {}; // <span class="message-body-wrapper"><span class="message-flex-bo <p>Either fix the code to prevent the <a href="/en-US/docs/Glossary/primitive">primitive</a> from being used in such places, or fix the issue is to create the object equivalent {{jsxref("Object")}}.</p> -<pre class="brush: js example-good notranslate">'use strict'; +<pre class="brush: js example-good">'use strict'; var foo = new String("my string"); foo.bar = {}; diff --git a/files/ru/web/javascript/reference/errors/cyclic_object_value/index.html b/files/ru/web/javascript/reference/errors/cyclic_object_value/index.html index 7eecd4634b..246bb98a4c 100644 --- a/files/ru/web/javascript/reference/errors/cyclic_object_value/index.html +++ b/files/ru/web/javascript/reference/errors/cyclic_object_value/index.html @@ -10,7 +10,7 @@ translation_of: Web/JavaScript/Reference/Errors/Cyclic_object_value <h2 id="Сообщения">Сообщения</h2> -<pre class="syntaxbox notranslate">TypeError: циклическое значение объекта (Firefox) +<pre class="syntaxbox">TypeError: циклическое значение объекта (Firefox) TypeError: преобразование круговой структуры в JSON (Chrome и Opera) TypeError: циклическая ссылка в аргументе значения не поддерживается (Edge) </pre> @@ -27,13 +27,13 @@ TypeError: циклическая ссылка в аргументе значе <p>В круговой структуре как эта</p> -<pre class="brush: js notranslate">var circularReference = {otherData: 123}; +<pre class="brush: js">var circularReference = {otherData: 123}; circularReference.myself = circularReference; </pre> <p>{{jsxref("JSON.stringify()")}} закончится неудачей</p> -<pre class="brush: js example-bad notranslate">JSON.stringify(circularReference); +<pre class="brush: js example-bad">JSON.stringify(circularReference); // TypeError: циклическое значение объекта </pre> @@ -45,7 +45,7 @@ circularReference.myself = circularReference; -<pre class="brush: js notranslate">const getCircularReplacer = () => { +<pre class="brush: js">const getCircularReplacer = () => { const seen = new WeakSet(); return (key, value) => { if (typeof value === "object" && value !== null) { diff --git a/files/ru/web/javascript/reference/errors/missing_curly_after_property_list/index.html b/files/ru/web/javascript/reference/errors/missing_curly_after_property_list/index.html index d1a9834174..cd14e4a559 100644 --- a/files/ru/web/javascript/reference/errors/missing_curly_after_property_list/index.html +++ b/files/ru/web/javascript/reference/errors/missing_curly_after_property_list/index.html @@ -20,13 +20,13 @@ translation_of: Web/JavaScript/Reference/Errors/Missing_curly_after_property_lis <h2 id="Что_пошло_не_так">Что пошло не так?</h2> -<p><span class="notranslate">Произошла ошибка в синтаксисе <a href="/ru/docs/Web/JavaScript/Reference/Operators/Object_initializer">инициализатора объекта</a>.</span> <span class="notranslate">Причиной может быть отсутствующая фигурная скобка или, к примеру, недостающая запятая.</span> <span class="notranslate"> Также проверьте, в правильном ли порядке расположены закрывающие круглые и фигурные скобки.</span> Добавление отступов или <span class="notranslate">форматирование кода в более благоприятный вид также могут помочь разобраться в беспорядке.</span></p> +<p><span>Произошла ошибка в синтаксисе <a href="/ru/docs/Web/JavaScript/Reference/Operators/Object_initializer">инициализатора объекта</a>.</span> <span>Причиной может быть отсутствующая фигурная скобка или, к примеру, недостающая запятая.</span> <span> Также проверьте, в правильном ли порядке расположены закрывающие круглые и фигурные скобки.</span> Добавление отступов или <span>форматирование кода в более благоприятный вид также могут помочь разобраться в беспорядке.</span></p> <h2 id="Примеры">Примеры</h2> -<h3 class="highlight-spanned" id="Забытая_запятая"><span class="highlight-span"><span class="notranslate">Забытая запятая</span></span></h3> +<h3 class="highlight-spanned" id="Забытая_запятая"><span class="highlight-span"><span>Забытая запятая</span></span></h3> -<p><span class="notranslate">Зачастую в коде инициализатора объекта есть недостающая запятая:</span></p> +<p><span>Зачастую в коде инициализатора объекта есть недостающая запятая:</span></p> <pre class="brush: js example-bad">var obj = { a: 1, @@ -44,8 +44,8 @@ translation_of: Web/JavaScript/Reference/Errors/Missing_curly_after_property_lis }; </pre> -<h2 id="Смотрите_также"><span class="notranslate">Смотрите также</span></h2> +<h2 id="Смотрите_также"><span>Смотрите также</span></h2> <ul> - <li><span class="notranslate"><a href="/ru/docs/Web/JavaScript/Reference/Operators/Object_initializer">Инициализация объектов</a></span></li> + <li><span><a href="/ru/docs/Web/JavaScript/Reference/Operators/Object_initializer">Инициализация объектов</a></span></li> </ul> diff --git a/files/ru/web/javascript/reference/functions/rest_parameters/index.html b/files/ru/web/javascript/reference/functions/rest_parameters/index.html index 73598d94b7..2ec6bf462a 100644 --- a/files/ru/web/javascript/reference/functions/rest_parameters/index.html +++ b/files/ru/web/javascript/reference/functions/rest_parameters/index.html @@ -15,7 +15,7 @@ translation_of: Web/JavaScript/Reference/Functions/rest_parameters <h2 id="Syntax">Синтаксис</h2> -<pre class="brush: js notranslate">function(a, b, ...theArgs) { +<pre class="brush: js">function(a, b, ...theArgs) { // ... } </pre> @@ -24,7 +24,7 @@ translation_of: Web/JavaScript/Reference/Functions/rest_parameters <p>Если последний именованный аргумент функции имеет префикс <code>...</code>, он автоматически становится массивом с элементами от <code>0</code> до <code>theArgs.length-1</code> в соответствии с актуальным количеством аргументов, переданных в функцию.</p> -<pre class="brush: js notranslate">function myFun(a, b, ...manyMoreArgs) { +<pre class="brush: js">function myFun(a, b, ...manyMoreArgs) { console.log("a", a); console.log("b", b); console.log("manyMoreArgs", manyMoreArgs); @@ -52,7 +52,7 @@ myFun("один", "два", "три", "четыре", "пять", "шесть"); <p>Остаточные параметры были введены для уменьшения количества шаблонного кода:</p> -<pre class="brush: js notranslate">// До появления остаточных параметров "arguments" конвертировали в обычный массив используя: +<pre class="brush: js">// До появления остаточных параметров "arguments" конвертировали в обычный массив используя: function f(a, b) { @@ -78,7 +78,7 @@ function f(...args) { <p>Остаточные параметры могут быть деструктурированы (только массивы). Это означает, что их данные могут быть заданы как отдельные значения. Смотрите <a href="/ru/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment">Деструктурирующее присваивание</a>.</p> -<pre class="notranslate"><code>function f(...[a, b, c]) { +<pre><code>function f(...[a, b, c]) { return a + b + c; } @@ -90,7 +90,7 @@ f(1, 2, 3, 4) // 6 (четвёртый параметр не деструкту <p>В этом примере первый аргумент задан как <code>"a"</code>, второй как <code>"b"</code>, так что эти аргументы используются как обычно. Однако третий аргумент <code>"manyMoreArgs"</code> будет массивом, который содержит 3-й, 4-й, 5-й, 6-й ... n-й аргументы, которые передаст пользователь.</p> -<pre class="brush: js notranslate">function myFun(a, b, ...manyMoreArgs) { +<pre class="brush: js">function myFun(a, b, ...manyMoreArgs) { console.log("a", a); console.log("b", b); console.log("manyMoreArgs", manyMoreArgs); @@ -104,7 +104,7 @@ myFun("один", "два", "три", "четыре", "пять", "шесть"); <p>Ниже... даже если передано одно значение последним аргументом, оно всё равно помещается в массив.</p> -<pre class="brush: js notranslate">// использование той же функции, что и в примере выше +<pre class="brush: js">// использование той же функции, что и в примере выше myFun("один", "два", "три"); @@ -114,7 +114,7 @@ myFun("один", "два", "три"); <p>Ниже... третий аргумент не был передан, но "manyMoreArgs" всё ещё массив (хотя и пустой).</p> -<pre class="brush: js notranslate">// использование той же функции, что и в примере выше +<pre class="brush: js">// использование той же функции, что и в примере выше myFun("один", "два"); @@ -124,7 +124,7 @@ myFun("один", "два"); <p>Поскольку <code>theArgs</code> является массивом, количество элементов в нём определяется свойством <code>length</code>:</p> -<pre class="brush: js notranslate">function fun1(...theArgs) { +<pre class="brush: js">function fun1(...theArgs) { console.log(theArgs.length); } @@ -134,7 +134,7 @@ fun1(5, 6, 7); // 3</pre> <p>В следующем примере, остаточные параметры используются для сбора всех аргументов после первого в массив. Каждый из них умножается на первый параметр и возвращается массив:</p> -<pre class="brush: js notranslate"><code>function multiply(multiplier, ...theArgs) { +<pre class="brush: js"><code>function multiply(multiplier, ...theArgs) { return theArgs.map(function(element) { return multiplier * element; }); @@ -145,7 +145,7 @@ console.log(arr); // [2, 4, 6]</code></pre> <p>Методы <code>Array</code> могут быть использованы на остаточных параметрах, но не на объекте <code>arguments</code>: </p> -<pre class="brush: js notranslate">function sortRestArgs(...theArgs) { +<pre class="brush: js">function sortRestArgs(...theArgs) { var sortedArgs = theArgs.sort(); return sortedArgs; } @@ -162,7 +162,7 @@ console.log(sortArguments(5, 3, 7, 1)); // TypeError (arguments.sort is not a fu <p>Чтобы использовать методы <code>Array</code> на объекте <code>arguments</code>, нужно преобразовать его в настоящий массив.</p> -<pre class="brush: js notranslate"><code>function sortArguments() { +<pre class="brush: js"><code>function sortArguments() { var args = Array.from(arguments); var sortedArgs = args.sort(); return sortedArgs; diff --git a/files/ru/web/javascript/reference/global_objects/array/flat/index.html b/files/ru/web/javascript/reference/global_objects/array/flat/index.html index eaa8167868..202898bb9d 100644 --- a/files/ru/web/javascript/reference/global_objects/array/flat/index.html +++ b/files/ru/web/javascript/reference/global_objects/array/flat/index.html @@ -20,7 +20,7 @@ translation_of: Web/JavaScript/Reference/Global_Objects/Array/flat <h2 id="Синтаксис">Синтаксис</h2> -<pre class="syntaxbox notranslate"><var>var newArray = arr</var>.flat(<var>depth</var>);</pre> +<pre class="syntaxbox"><var>var newArray = arr</var>.flat(<var>depth</var>);</pre> <h3 id="Параметры">Параметры</h3> @@ -37,7 +37,7 @@ translation_of: Web/JavaScript/Reference/Global_Objects/Array/flat <h3 id="Упрощение_вложенных_массивов">Упрощение вложенных массивов</h3> -<pre class="brush: js notranslate">var arr1 = [1, 2, [3, 4]]; +<pre class="brush: js">var arr1 = [1, 2, [3, 4]]; arr1.flat(); // [1, 2, 3, 4] @@ -57,7 +57,7 @@ arr4.flat(Infinity); <p>Метод flat удаляет пустые слоты из массива:</p> -<pre class="brush: js notranslate">var arr4 = [1, 2, , 4, 5]; +<pre class="brush: js">var arr4 = [1, 2, , 4, 5]; arr4.flat(); // [1, 2, 4, 5] </pre> @@ -66,7 +66,7 @@ arr4.flat(); <h3 id="reduce_и_concat"><code>reduce</code> и <code>concat</code></h3> -<pre class="brush: js notranslate">var arr1 = [1, 2, [3, 4]]; +<pre class="brush: js">var arr1 = [1, 2, [3, 4]]; arr1.flat(); // В одномерный массив @@ -76,7 +76,7 @@ arr1.reduce((acc, val) => acc.concat(val), []);// [1, 2, 3, 4] const flatSingle = arr => [].concat(...arr); </pre> -<pre class="brush: js notranslate">// Для развёртывания многомерных массивов используем рекурсию, reduce и concat +<pre class="brush: js">// Для развёртывания многомерных массивов используем рекурсию, reduce и concat const arr = [1, 2, [3, 4, [5, 6]]]; function flatDeep(arr, d = 1) { @@ -87,7 +87,7 @@ function flatDeep(arr, d = 1) { flatDeep(arr, Infinity); // [1, 2, 3, 4, 5, 6]</pre> -<pre class="brush: js notranslate">//не рекурсивное упрощение с использованием стэка +<pre class="brush: js">//не рекурсивное упрощение с использованием стэка var arr1 = [1,2,3,[1,2,3,4, [2,3,4]]]; function flatten(input) { const stack = [...input]; @@ -108,7 +108,7 @@ function flatten(input) { flatten(arr1);// [1, 2, 3, 1, 2, 3, 4, 2, 3, 4] </pre> -<pre class="brush: js notranslate">//рекурсивно упрощаем массив +<pre class="brush: js">//рекурсивно упрощаем массив function flatten(array) { var flattend = []; (function flat(array) { diff --git a/files/ru/web/javascript/reference/global_objects/array/map/index.html b/files/ru/web/javascript/reference/global_objects/array/map/index.html index a5ac485843..226fe12470 100644 --- a/files/ru/web/javascript/reference/global_objects/array/map/index.html +++ b/files/ru/web/javascript/reference/global_objects/array/map/index.html @@ -21,7 +21,7 @@ translation_of: Web/JavaScript/Reference/Global_Objects/Array/map <h2 id="Syntax">Синтаксис</h2> -<pre class="syntaxbox notranslate">let <var>new_array</var> = <var>arr</var>.map(function <var>callback</var>( <var>currentValue</var>[, <var>index</var>[, <var>array</var>]]) { +<pre class="syntaxbox">let <var>new_array</var> = <var>arr</var>.map(function <var>callback</var>( <var>currentValue</var>[, <var>index</var>[, <var>array</var>]]) { // Возвращает элемент для new_array }[, <var>thisArg</var>])</pre> @@ -69,7 +69,7 @@ translation_of: Web/JavaScript/Reference/Global_Objects/Array/map <p>Следующий код берёт массив чисел и создаёт новый массив, содержащий квадратные корни чисел из первого массива.</p> -<pre class="brush: js notranslate">var numbers = [1, 4, 9]; +<pre class="brush: js">var numbers = [1, 4, 9]; var roots = numbers.map(Math.sqrt); // теперь roots равен [1, 2, 3], а numbers всё ещё равен [1, 4, 9] </pre> @@ -78,7 +78,7 @@ var roots = numbers.map(Math.sqrt); <p>Следующий код показывает, как работает отображение, когда функция требует один аргумент. Аргумент будет автоматически присваиваться каждому элементу массива, когда <code>map</code> проходит по оригинальному массиву.</p> -<pre class="brush: js notranslate">var numbers = [1, 4, 9]; +<pre class="brush: js">var numbers = [1, 4, 9]; var doubles = numbers.map(function(num) { return num * 2; }); @@ -89,7 +89,7 @@ var doubles = numbers.map(function(num) { <p>Этот пример показывает, как использовать <code>map</code> на объекте строки {{jsxref("Global_Objects/String", "String")}} для получения массива байт в кодировке ASCII, представляющего значения символов:</p> -<pre class="brush: js notranslate">var map = Array.prototype.map; +<pre class="brush: js">var map = Array.prototype.map; var a = map.call('Hello World', function(x) { return x.charCodeAt(0); }); // теперь a равен [72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100] </pre> @@ -98,7 +98,7 @@ var a = map.call('Hello World', function(x) { return x.charCodeAt(0); }); <p>Этот пример показывает, как пройтись по коллекции объектов, собранных с помощью <code>querySelectorAll</code>. В данном случае мы получаем все выбранные опции на экране и печатаем их в консоль:</p> -<pre class="brush: js notranslate">var elems = document.querySelectorAll('select option:checked'); +<pre class="brush: js">var elems = document.querySelectorAll('select option:checked'); var values = [].map.call(elems, function(obj) { return obj.value; }); @@ -108,7 +108,7 @@ var values = [].map.call(elems, function(obj) { <h3 id="Example_Using_map_to_reverse_a_string">Пример: использование <code>map</code> для переворачивания строки</h3> -<pre class="brush: js notranslate">var str = '12345'; +<pre class="brush: js">var str = '12345'; [].map.call(str, function(x) { return x; }).reverse().join(''); @@ -125,7 +125,7 @@ var values = [].map.call(elems, function(obj) { <p>Распространённой практикой является использование колбэк-функции с одним аргументом (элемент, над которым производится операция). Некоторые функции также широко используется с одним аргументом, хотя они принимают дополнительные необязательные аргументы. Эти привычки могут привести к неожиданному поведению программы.</p> -<pre class="brush: js notranslate">// Рассмотрим пример: +<pre class="brush: js">// Рассмотрим пример: ['1', '2', '3'].map(parseInt); // Хотя ожидаемый результат вызова равен [1, 2, 3], // в действительности получаем [1, NaN, NaN] @@ -152,7 +152,7 @@ function returnInt(element) { <p>Метод <code>map</code> был добавлен к стандарту ECMA-262 в 5-м издании; поэтому он может отсутствовать в других реализациях стандарта. Вы можете работать с ним, добавив следующий код в начало ваших скриптов, он позволяет использовать <code>map</code> в реализациях, которые не поддерживают этот метод. Этот алгоритм является точно тем, что описан в ECMA-262 5-го издания; он предполагает, что {{jsxref("Global_Objects/Object", "Object")}}, {{jsxref("Global_Objects/TypeError", "TypeError")}} и {{jsxref("Global_Objects/Array", "Array")}} имеют свои первоначальные значения и что <code>callback.call</code> вычисляется в оригинальное значение {{jsxref("Function.prototype.call")}}.</p> -<pre class="brush: js notranslate">// Шаги алгоритма ECMA-262, 5-е издание, 15.4.4.19 +<pre class="brush: js">// Шаги алгоритма ECMA-262, 5-е издание, 15.4.4.19 // Ссылка (en): http://es5.github.com/#x15.4.4.19 // Ссылка (ru): http://es5.javascript.ru/x15.4.html#x15.4.4.19 if (!Array.prototype.map) { diff --git a/files/ru/web/javascript/reference/global_objects/array/slice/index.html b/files/ru/web/javascript/reference/global_objects/array/slice/index.html index d5c9f8b897..86299563c0 100644 --- a/files/ru/web/javascript/reference/global_objects/array/slice/index.html +++ b/files/ru/web/javascript/reference/global_objects/array/slice/index.html @@ -20,7 +20,7 @@ translation_of: Web/JavaScript/Reference/Global_Objects/Array/slice <h2 id="Syntax">Синтаксис</h2> -<pre class="syntaxbox notranslate"><code><var>arr</var>.slice([<var>begin</var>[, <var>end</var>]])</code></pre> +<pre class="syntaxbox"><code><var>arr</var>.slice([<var>begin</var>[, <var>end</var>]])</code></pre> <h3 id="Parameters">Параметры</h3> @@ -56,7 +56,7 @@ translation_of: Web/JavaScript/Reference/Global_Objects/Array/slice <h3 id="Example_Return_a_portion_of_an_existing_array">Пример: возврат части существующего массива</h3> -<pre class="brush: js notranslate">// Пример: наши хорошие друзья цитрусовые среди фруктов +<pre class="brush: js">// Пример: наши хорошие друзья цитрусовые среди фруктов var fruits = ['Банан', 'Апельсин', 'Лимон', 'Яблоко', 'Манго']; var citrus = fruits.slice(1, 3); @@ -67,7 +67,7 @@ var citrus = fruits.slice(1, 3); <p>В следующем примере метод <code>slice()</code> создаёт новый массив, <code>newCar</code>, из массива <code>myCar</code>. Оба содержат ссылку на объект <code>myHonda</code>. Когда цвет в объекте <code>myHonda</code> изменяется на багровый, оба массива замечают это изменение.</p> -<pre class="brush: js notranslate">// Используя slice, создаём newCar из myCar. +<pre class="brush: js">// Используя slice, создаём newCar из myCar. var myHonda = { color: 'красный', wheels: 4, engine: { cylinders: 4, size: 2.2 } }; var myCar = [myHonda, 2, 'в хорошем состоянии', 'приобретена в 1997']; var newCar = myCar.slice(0, 2); @@ -90,7 +90,7 @@ console.log('newCar[0].color = ' + newCar[0].color); <p>Этот скрипт выведет:</p> -<pre class="brush: js notranslate">myCar = [{color:'красный', wheels:4, engine:{cylinders:4, size:2.2}}, 2, +<pre class="brush: js">myCar = [{color:'красный', wheels:4, engine:{cylinders:4, size:2.2}}, 2, 'в хорошем состоянии', 'приобретена в 1997'] newCar = [{color:'красный', wheels:4, engine:{cylinders:4, size:2.2}}, 2] myCar[0].color = красный @@ -104,7 +104,7 @@ newCar[0].color = багровый <p>Метод <code>slice()</code> также может использоваться для преобразования массивоподобных объектов / коллекций в новый массив <code>Array</code>. Вам просто нужно привязать метод к объекту. Псевдомассив {{jsxref("Functions_and_function_scope/arguments", "arguments")}} внутри функции как раз является примером «массивоподобного объекта».</p> -<pre class="brush: js notranslate">function list() { +<pre class="brush: js">function list() { return Array.prototype.slice.call(arguments, 0); } @@ -113,7 +113,7 @@ var list1 = list(1, 2, 3); // [1, 2, 3] <p>Привязка может быть осуществлена посредством функции .<code>call()</code> из прототипа функции {{jsxref("Function.prototype")}}, также запись может быть сокращена до <code>[].slice.call(arguments)</code> вместо использования <code>Array.prototype.slice.call()</code>. В любом случае, она может быть упрощена посредством использования функции {{jsxref("Function.prototype.bind()", "bind()")}}.</p> -<pre class="brush: js notranslate">var unboundSlice = Array.prototype.slice; +<pre class="brush: js">var unboundSlice = Array.prototype.slice; var slice = Function.prototype.call.bind(unboundSlice); function list() { @@ -127,7 +127,7 @@ var list1 = list(1, 2, 3); // [1, 2, 3] <p>Хотя спецификация не требует от хост-объектов (например, объектов DOM) следовать поведению Mozilla при преобразовании с помощью <code>Array.prototype.slice()</code> и IE < 9 так не делает, версии IE, начиная с 9-й это умеют. «Прокладывание» позволяет добиться надёжного кросс-браузерного поведения. Пока другие современные браузеры будут поддерживать эту способность, что и делают в настоящее время IE, Mozilla, Chrome, Safari и Opera, разработчики, читая (поддерживающий DOM) код функции <code>slice()</code>, опирающийся на эту прокладку, не будут вводиться в заблуждение его семантикой; они могут смело полагаться на текущую семантику, являющуюся, видимо, <em>де-факто</em> стандартным поведением. (Прокладка также исправляет поведение IE, позволяя работать со вторым аргументом <code>slice()</code>, явно определённым как {{jsxref("Global_Objects/null", "null")}}/{{jsxref("Global_Objects/undefined", "undefined")}}, поскольку более ранние версии IE такое не позволяют, но все современные браузеры, в том числе IE >= 9, поддерживают данное поведение.)</p> -<pre class="brush: js notranslate">/** +<pre class="brush: js">/** * Прокладка для "исправления" отсутствия поддержки в IE < 9 применения slice * к хост-объектам вроде NamedNodeMap, NodeList и HTMLCollection * (технически, поскольку хост-объекты зависят от реализации, diff --git a/files/ru/web/javascript/reference/global_objects/array/sort/index.html b/files/ru/web/javascript/reference/global_objects/array/sort/index.html index 6408c3d51f..a1ddae9c5c 100644 --- a/files/ru/web/javascript/reference/global_objects/array/sort/index.html +++ b/files/ru/web/javascript/reference/global_objects/array/sort/index.html @@ -16,7 +16,7 @@ translation_of: Web/JavaScript/Reference/Global_Objects/Array/sort <h2 id="Syntax">Синтаксис</h2> -<pre class="syntaxbox notranslate"><code><var>arr</var>.sort([<var>compareFunction</var>])</code></pre> +<pre class="syntaxbox"><code><var>arr</var>.sort([<var>compareFunction</var>])</code></pre> <h3 id="Parameters">Параметры</h3> @@ -33,7 +33,7 @@ translation_of: Web/JavaScript/Reference/Global_Objects/Array/sort <p>Если функция сравнения <code>compareFunction</code> не предоставляется, элементы сортируются путём преобразования их в строки и сравнения строк в порядке следования кодовых точек Unicode. Например, слово "Вишня" идёт перед словом "бананы". При числовой сортировке, 9 идёт перед 80, но поскольку числа преобразуются в строки, то "80" идёт перед "9" в соответствии с порядком в Unicode.</p> -<pre class="brush: js notranslate">var fruit = ['арбузы', 'бананы', 'Вишня']; +<pre class="brush: js">var fruit = ['арбузы', 'бананы', 'Вишня']; fruit.sort(); // ['Вишня', 'арбузы', 'бананы'] var scores = [1, 2, 10, 21]; @@ -56,7 +56,7 @@ things.sort(); // ['1 Слово', '2 Слова', 'Слово', 'слово'] <p>Итак, функция сравнения имеет следующую форму:</p> -<pre class="brush: js notranslate">function compare(a, b) { +<pre class="brush: js">function compare(a, b) { if (a меньше b по некоторому критерию сортировки) { return -1; } @@ -70,14 +70,14 @@ things.sort(); // ['1 Слово', '2 Слова', 'Слово', 'слово'] <p>Для числового сравнения, вместо строкового, функция сравнения может просто вычитать <code>b</code> из <code>a</code>. Следующая функция будет сортировать массив по возрастанию:</p> -<pre class="brush: js notranslate">function compareNumbers(a, b) { +<pre class="brush: js">function compareNumbers(a, b) { return a - b; } </pre> <p>Метод <code>sort</code> можно удобно использовать с {{jsxref("Operators/function", "функциональными выражениями", "", 1)}} (и <a href="/ru/docs/Web/JavaScript/Guide/Closures">замыканиями</a>):</p> -<pre class="brush: js notranslate">var numbers = [4, 2, 5, 1, 3]; +<pre class="brush: js">var numbers = [4, 2, 5, 1, 3]; numbers.sort(function(a, b) { return a - b; }); @@ -86,7 +86,7 @@ console.log(numbers); // [1, 2, 3, 4, 5] <p>Объекты могут быть отсортированы по значению одного из своих свойств.</p> -<pre class="brush: js notranslate">var items = [ +<pre class="brush: js">var items = [ { name: 'Edward', value: 21 }, { name: 'Sharpe', value: 37 }, { name: 'And', value: 45 }, @@ -112,7 +112,7 @@ items.sort(function (a, b) { <p>В следующем примере создаётся четыре массива, сначала отображается первоначальный массив, а затем они сортируются. Числовые массивы сортируются сначала без, а потом с функцией сравнения.</p> -<pre class="brush: js notranslate">var stringArray = ['Голубая', 'Горбатая', 'Белуга']; +<pre class="brush: js">var stringArray = ['Голубая', 'Горбатая', 'Белуга']; var numericStringArray = ['80', '9', '700']; var numberArray = [40, 1, 5, 200]; var mixedNumericArray = ['80', '9', '700', 40, 1, 5, 200]; @@ -140,7 +140,7 @@ console.log('Сортировка с функцией compareNumbers:', mixedNum <p>Этот пример произведёт следующий вывод. Как показывает вывод, когда используется функция сравнения, числа сортируются корректно вне зависимости от того, являются ли они собственно числами или строками с числами.</p> -<pre class="notranslate">stringArray: Голубая,Горбатая,Белуга +<pre>stringArray: Голубая,Горбатая,Белуга Сортировка: Белуга,Голубая,Горбатая numberArray: 40,1,5,200 @@ -160,7 +160,7 @@ mixedNumericArray: 80,9,700,40,1,5,200 <p>Для сортировки строк с не-ASCII символами, то есть строк с символами акцента (e, é, è, a, ä и т.д.), строк, с языками, отличными от английского: используйте {{jsxref("String.localeCompare")}}. Эта функция может сравнивать эти символы, чтобы они становились в правильном порядке.</p> -<pre class="brush: js notranslate">var items = ['réservé', 'premier', 'cliché', 'communiqué', 'café', 'adieu']; +<pre class="brush: js">var items = ['réservé', 'premier', 'cliché', 'communiqué', 'café', 'adieu']; items.sort(function (a, b) { return a.localeCompare(b); }); @@ -172,7 +172,7 @@ items.sort(function (a, b) { <p>Функция сравнения <code>(compareFunction)</code> может вызываться несколько раз для каждого элемента в массиве. В зависимости от природы функции сравнения, это может привести к высоким расходам ресурсов. Чем более сложна функция сравнения и чем больше элементов требуется отсортировать, тем разумнее использовать <a href="https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/Array/map">map</a> для сортировки. Идея состоит в том, чтобы обойти массив один раз, чтобы извлечь фактические значения, используемые для сортировки, во временный массив, отсортировать временный массив, а затем обойти временный массив для получения правильного порядка.</p> -<pre class="brush: js notranslate">// массив для сортировки +<pre class="brush: js">// массив для сортировки var list = ['Дельта', 'альфа', 'ЧАРЛИ', 'браво']; // временный массив содержит объекты с позицией и значением сортировки diff --git a/files/ru/web/javascript/reference/global_objects/array/splice/index.html b/files/ru/web/javascript/reference/global_objects/array/splice/index.html index e92751abf6..e562c12bcc 100644 --- a/files/ru/web/javascript/reference/global_objects/array/splice/index.html +++ b/files/ru/web/javascript/reference/global_objects/array/splice/index.html @@ -18,7 +18,7 @@ translation_of: Web/JavaScript/Reference/Global_Objects/Array/splice <h2 id="Syntax">Синтаксис</h2> -<pre class="syntaxbox notranslate"><code><var>array</var>.splice(<var>start[</var>, <var>deleteCount</var>[, <var>item1</var>[, <var>item2</var>[, ...]]]]) +<pre class="syntaxbox"><code><var>array</var>.splice(<var>start[</var>, <var>deleteCount</var>[, <var>item1</var>[, <var>item2</var>[, ...]]]]) </code></pre> <h3 id="Parameters">Параметры</h3> @@ -44,7 +44,7 @@ translation_of: Web/JavaScript/Reference/Global_Objects/Array/splice <h3 id="Удаляет_0_элементов_по_индексу_2_и_вставляет_drum">Удаляет 0 элементов по индексу 2 и вставляет "drum"</h3> -<pre class="brush: js notranslate">var myFish = ['angel', 'clown', 'mandarin', 'sturgeon']; +<pre class="brush: js">var myFish = ['angel', 'clown', 'mandarin', 'sturgeon']; var removed = myFish.splice(2, 0, 'drum'); // myFish равен ["angel", "clown", "drum", "mandarin", "sturgeon"] @@ -52,7 +52,7 @@ var removed = myFish.splice(2, 0, 'drum'); <h3 id="Удаляет_1_элемент_по_индексу_3">Удаляет 1 элемент по индексу 3</h3> -<pre class="brush: js notranslate">var myFish = ['angel', 'clown', 'drum', 'mandarin', 'sturgeon']; +<pre class="brush: js">var myFish = ['angel', 'clown', 'drum', 'mandarin', 'sturgeon']; var removed = myFish.splice(3, 1); // removed равен ["mandarin"] @@ -60,7 +60,7 @@ var removed = myFish.splice(3, 1); <h3 id="Удаляет_1_элемент_по_индексу_2_и_вставляет_trumpet">Удаляет 1 элемент по индексу 2 и вставляет "trumpet"</h3> -<pre class="brush: js notranslate">var myFish = ['angel', 'clown', 'drum', 'sturgeon']; +<pre class="brush: js">var myFish = ['angel', 'clown', 'drum', 'sturgeon']; var removed = myFish.splice(2, 1, 'trumpet'); // myFish равен ["angel", "clown", "trumpet", "sturgeon"] @@ -68,7 +68,7 @@ var removed = myFish.splice(2, 1, 'trumpet'); <h3 id="Удаляет_2_элемента_начиная_с_индекса_0_и_вставляет_parrot_anemone_и_blue">Удаляет 2 элемента начиная с индекса 0 и вставляет "parrot", "anemone" и "blue"</h3> -<pre class="brush: js notranslate">var myFish = ['angel', 'clown', 'trumpet', 'sturgeon']; +<pre class="brush: js">var myFish = ['angel', 'clown', 'trumpet', 'sturgeon']; var removed = myFish.splice(0, 2, 'parrot', 'anemone', 'blue'); // myFish равен ["parrot", "anemone", "blue", "trumpet", "sturgeon"] @@ -76,7 +76,7 @@ var removed = myFish.splice(0, 2, 'parrot', 'anemone', 'blue'); <h3 id="Удаляет_2_элемента_начиная_с_индекса_2">Удаляет 2 элемента начиная с индекса 2</h3> -<pre class="brush: js notranslate">var myFish = ['parrot', 'anemone', 'blue', 'trumpet', 'sturgeon']; +<pre class="brush: js">var myFish = ['parrot', 'anemone', 'blue', 'trumpet', 'sturgeon']; var removed = myFish.splice(myFish.length - 3, 2); // myFish равен ["parrot", "anemone", "sturgeon"] @@ -84,7 +84,7 @@ var removed = myFish.splice(myFish.length - 3, 2); <h3 id="Удаляет_1_элемент_по_индексу_-2">Удаляет 1 элемент по индексу -2</h3> -<pre class="brush: js notranslate">var myFish = ['angel', 'clown', 'mandarin', 'sturgeon']; +<pre class="brush: js">var myFish = ['angel', 'clown', 'mandarin', 'sturgeon']; var removed = myFish.splice(-2, 1); // myFish равен ["angel", "clown", "sturgeon"] @@ -92,7 +92,7 @@ var removed = myFish.splice(-2, 1); <h3 id="Удаляет_все_элементы_после_индекса_2_включительно">Удаляет все элементы после индекса 2 (включительно)</h3> -<pre class="brush: js notranslate">var myFish = ['angel', 'clown', 'mandarin', 'sturgeon']; +<pre class="brush: js">var myFish = ['angel', 'clown', 'mandarin', 'sturgeon']; var removed = myFish.splice(2); // myFish равен ["angel", "clown"] diff --git a/files/ru/web/javascript/reference/global_objects/bigint/asuintn/index.html b/files/ru/web/javascript/reference/global_objects/bigint/asuintn/index.html index 6f3c09ba56..98395a3c5c 100644 --- a/files/ru/web/javascript/reference/global_objects/bigint/asuintn/index.html +++ b/files/ru/web/javascript/reference/global_objects/bigint/asuintn/index.html @@ -13,7 +13,7 @@ translation_of: Web/JavaScript/Reference/Global_Objects/BigInt/asUintN <h2 id="Syntax">Syntax</h2> -<pre class="syntaxbox notranslate">BigInt.asUintN(<var>width</var>, <var>bigint</var>);</pre> +<pre class="syntaxbox">BigInt.asUintN(<var>width</var>, <var>bigint</var>);</pre> <h3 id="Parameters">Parameters</h3> @@ -34,7 +34,7 @@ translation_of: Web/JavaScript/Reference/Global_Objects/BigInt/asUintN <p>The <code>BigInt.asUintN()</code> method can be useful to stay in the range of 64-bit arithmetic.</p> -<pre class="brush: js notranslate">const max = 2n ** 64n - 1n; +<pre class="brush: js">const max = 2n ** 64n - 1n; BigInt.asUintN(64, max); // ↪ 18446744073709551615n diff --git a/files/ru/web/javascript/reference/global_objects/date/getdate/index.html b/files/ru/web/javascript/reference/global_objects/date/getdate/index.html index 52e0d9eefa..9c6667995c 100644 --- a/files/ru/web/javascript/reference/global_objects/date/getdate/index.html +++ b/files/ru/web/javascript/reference/global_objects/date/getdate/index.html @@ -17,7 +17,7 @@ translation_of: Web/JavaScript/Reference/Global_Objects/Date/getDate <h2 id="Syntax">Синтаксис</h2> -<pre class="syntaxbox notranslate"><code><var>dateObj</var>.getDate()</code></pre> +<pre class="syntaxbox"><code><var>dateObj</var>.getDate()</code></pre> <h3 id="Parameters">Параметры</h3> @@ -33,7 +33,7 @@ translation_of: Web/JavaScript/Reference/Global_Objects/Date/getDate <p>Вторая инструкция в примере ниже присваивает значение 25 переменной <code>day</code> из значения объекта {{jsxref("Global_Objects/Date", "Date")}} <code>date</code>.</p> -<pre class="brush: js notranslate">let date = new Date('December 25, 1995 23:15:30'); +<pre class="brush: js">let date = new Date('December 25, 1995 23:15:30'); let day = date.getDate(); console.log(day); // 25 diff --git a/files/ru/web/javascript/reference/global_objects/date/getday/index.html b/files/ru/web/javascript/reference/global_objects/date/getday/index.html index 654e43455f..c2c2bd4e8a 100644 --- a/files/ru/web/javascript/reference/global_objects/date/getday/index.html +++ b/files/ru/web/javascript/reference/global_objects/date/getday/index.html @@ -17,7 +17,7 @@ translation_of: Web/JavaScript/Reference/Global_Objects/Date/getDay <h2 id="Syntax">Синтаксис</h2> -<pre class="syntaxbox notranslate"><code><var>dateObj</var>.getDay()</code></pre> +<pre class="syntaxbox"><code><var>dateObj</var>.getDay()</code></pre> <h3 id="Parameters">Параметры</h3> @@ -33,7 +33,7 @@ translation_of: Web/JavaScript/Reference/Global_Objects/Date/getDay <p>Вторая инструкция в примере ниже присваивает значение 1 переменной <code>weekday</code> из значения объекта {{jsxref("Global_Objects/Date", "Date")}} <code>date</code>. 25 декабря 1995 года было понедельником.</p> -<pre class="brush: js notranslate">let date = new Date('December 25, 1995 23:15:30'); +<pre class="brush: js">let date = new Date('December 25, 1995 23:15:30'); let weekday = date.getDay(); console.log(weekday); // 1 @@ -42,7 +42,7 @@ console.log(weekday); // 1 <div class="blockIndicator note"> <p><strong>Примечание:</strong> При необходимости полное название дня (например, "<code>Понедельник</code>") можно получить, используя {{jsxref("DateTimeFormat", "Intl.DateTimeFormat")}} с параметром <code>options</code> parameter. С помощью этого метода упрощается интернационализация:</p> -<pre class="brush: js notranslate">let options = { weekday: 'long'}; +<pre class="brush: js">let options = { weekday: 'long'}; console.log(new Intl.DateTimeFormat('en-US', options).format(date)); // Monday diff --git a/files/ru/web/javascript/reference/global_objects/date/getfullyear/index.html b/files/ru/web/javascript/reference/global_objects/date/getfullyear/index.html index 5a7d09c7bf..60aeb1a1ac 100644 --- a/files/ru/web/javascript/reference/global_objects/date/getfullyear/index.html +++ b/files/ru/web/javascript/reference/global_objects/date/getfullyear/index.html @@ -19,7 +19,7 @@ translation_of: Web/JavaScript/Reference/Global_Objects/Date/getFullYear <h2 id="Syntax">Синтаксис</h2> -<pre class="syntaxbox notranslate"><code><var>dateObj</var>.getFullYear()</code></pre> +<pre class="syntaxbox"><code><var>dateObj</var>.getFullYear()</code></pre> <h3 id="Parameters">Параметры</h3> @@ -35,7 +35,7 @@ translation_of: Web/JavaScript/Reference/Global_Objects/Date/getFullYear <p>В следующем примере переменной <code>year</code> присваивается четырёхзначное значение текущего года.</p> -<pre class="brush: js notranslate">let today = new Date(); // Mon Nov 23 2020 15:23:46 GMT+0300 (Москва, стандартное время) +<pre class="brush: js">let today = new Date(); // Mon Nov 23 2020 15:23:46 GMT+0300 (Москва, стандартное время) let year = today.getFullYear(); // 2020 </pre> diff --git a/files/ru/web/javascript/reference/global_objects/date/gethours/index.html b/files/ru/web/javascript/reference/global_objects/date/gethours/index.html index 4e927a3454..2f0c788d1a 100644 --- a/files/ru/web/javascript/reference/global_objects/date/gethours/index.html +++ b/files/ru/web/javascript/reference/global_objects/date/gethours/index.html @@ -17,7 +17,7 @@ translation_of: Web/JavaScript/Reference/Global_Objects/Date/getHours <h2 id="Syntax">Синтаксис</h2> -<pre class="syntaxbox notranslate"><code><var>dateObj</var>.getHours()</code></pre> +<pre class="syntaxbox"><code><var>dateObj</var>.getHours()</code></pre> <h3 id="Parameters">Параметры</h3> @@ -33,7 +33,7 @@ translation_of: Web/JavaScript/Reference/Global_Objects/Date/getHours <p>Вторая инструкция в примере ниже присваивает значение 23 переменной <code>hours</code> из значения объекта {{jsxref("Global_Objects/Date", "Date")}} <code>date</code>.</p> -<pre class="brush: js notranslate">let date = new Date('December 25, 1995 23:15:30'); +<pre class="brush: js">let date = new Date('December 25, 1995 23:15:30'); let hours = date.getHours(); console.log(hours); // 23 diff --git a/files/ru/web/javascript/reference/global_objects/date/getmilliseconds/index.html b/files/ru/web/javascript/reference/global_objects/date/getmilliseconds/index.html index 4d848fc5e8..3d9d51b204 100644 --- a/files/ru/web/javascript/reference/global_objects/date/getmilliseconds/index.html +++ b/files/ru/web/javascript/reference/global_objects/date/getmilliseconds/index.html @@ -17,7 +17,7 @@ translation_of: Web/JavaScript/Reference/Global_Objects/Date/getMilliseconds <h2 id="Syntax">Синтаксис</h2> -<pre class="syntaxbox notranslate"><code><var>dateObj</var>.getMilliseconds()</code></pre> +<pre class="syntaxbox"><code><var>dateObj</var>.getMilliseconds()</code></pre> <h3 id="Parameters">Параметры</h3> @@ -33,7 +33,7 @@ translation_of: Web/JavaScript/Reference/Global_Objects/Date/getMilliseconds <p>В следующем примере переменной <code>milliseconds</code> присваиваются миллисекунды текущего времени:</p> -<pre class="brush: js notranslate">let today = new Date(); +<pre class="brush: js">let today = new Date(); let milliseconds = today.getMilliseconds(); console.log(milliseconds); // 709 diff --git a/files/ru/web/javascript/reference/global_objects/date/getminutes/index.html b/files/ru/web/javascript/reference/global_objects/date/getminutes/index.html index 533cba2dc5..0b97f5e1f7 100644 --- a/files/ru/web/javascript/reference/global_objects/date/getminutes/index.html +++ b/files/ru/web/javascript/reference/global_objects/date/getminutes/index.html @@ -17,7 +17,7 @@ translation_of: Web/JavaScript/Reference/Global_Objects/Date/getMinutes <h2 id="Syntax">Синтаксис</h2> -<pre class="syntaxbox notranslate"><code><var>dateObj</var>.getMinutes()</code></pre> +<pre class="syntaxbox"><code><var>dateObj</var>.getMinutes()</code></pre> <h3 id="Parameters">Параметры</h3> @@ -33,7 +33,7 @@ translation_of: Web/JavaScript/Reference/Global_Objects/Date/getMinutes <p>Вторая инструкция в примере ниже присваивает значение 15 переменной <code>minutes</code> из значения объекта {{jsxref("Global_Objects/Date", "Date")}} <code>date</code>.</p> -<pre class="brush: js notranslate">let date = new Date('December 25, 1995 23:15:30'); +<pre class="brush: js">let date = new Date('December 25, 1995 23:15:30'); let minutes = date.getMinutes(); console.log(minutes); // 15 diff --git a/files/ru/web/javascript/reference/global_objects/date/getmonth/index.html b/files/ru/web/javascript/reference/global_objects/date/getmonth/index.html index 5b42ea933a..001f258a2c 100644 --- a/files/ru/web/javascript/reference/global_objects/date/getmonth/index.html +++ b/files/ru/web/javascript/reference/global_objects/date/getmonth/index.html @@ -17,7 +17,7 @@ translation_of: Web/JavaScript/Reference/Global_Objects/Date/getMonth <h2 id="Syntax">Синтаксис</h2> -<pre class="syntaxbox notranslate"><code><var>dateObj</var>.getMonth()</code></pre> +<pre class="syntaxbox"><code><var>dateObj</var>.getMonth()</code></pre> <h3 id="Parameters">Параметры</h3> @@ -33,7 +33,7 @@ translation_of: Web/JavaScript/Reference/Global_Objects/Date/getMonth <p>Вторая инструкция в примере ниже присваивает значение 11 переменной <code>month</code> из значения переменной <code>date</code> объекта {{jsxref("Global_Objects/Date", "Date")}}.</p> -<pre class="brush: js notranslate">let date = new Date('December 25, 1995 23:15:30'); +<pre class="brush: js">let date = new Date('December 25, 1995 23:15:30'); let month = date.getMonth(); console.log(month); // 11 diff --git a/files/ru/web/javascript/reference/global_objects/date/getseconds/index.html b/files/ru/web/javascript/reference/global_objects/date/getseconds/index.html index 6027da393b..e2e5fecaac 100644 --- a/files/ru/web/javascript/reference/global_objects/date/getseconds/index.html +++ b/files/ru/web/javascript/reference/global_objects/date/getseconds/index.html @@ -17,7 +17,7 @@ translation_of: Web/JavaScript/Reference/Global_Objects/Date/getSeconds <h2 id="Syntax">Синтаксис</h2> -<pre class="syntaxbox notranslate"><code><var>dateObj</var>.getSeconds()</code></pre> +<pre class="syntaxbox"><code><var>dateObj</var>.getSeconds()</code></pre> <h3 id="Parameters">Параметры</h3> @@ -33,7 +33,7 @@ translation_of: Web/JavaScript/Reference/Global_Objects/Date/getSeconds <p>Вторая инструкция в примере ниже присваивает значение 30 переменной <code>seconds</code> из значения переменной <code>date</code> объекта {{jsxref("Global_Objects/Date", "Date")}}.</p> -<pre class="brush: js notranslate">let date = new Date('December 25, 1995 23:15:30'); +<pre class="brush: js">let date = new Date('December 25, 1995 23:15:30'); let seconds = date.getSeconds(); console.log(seconds); // 30 diff --git a/files/ru/web/javascript/reference/global_objects/date/gettime/index.html b/files/ru/web/javascript/reference/global_objects/date/gettime/index.html index 8f380c6208..f4b2c740b6 100644 --- a/files/ru/web/javascript/reference/global_objects/date/gettime/index.html +++ b/files/ru/web/javascript/reference/global_objects/date/gettime/index.html @@ -23,7 +23,7 @@ translation_of: Web/JavaScript/Reference/Global_Objects/Date/getTime <h2 id="Syntax">Синтаксис</h2> -<pre class="syntaxbox notranslate"><code><var>dateObj</var>.getTime()</code></pre> +<pre class="syntaxbox"><code><var>dateObj</var>.getTime()</code></pre> <h3 id="Parameters">Параметры</h3> @@ -39,7 +39,7 @@ translation_of: Web/JavaScript/Reference/Global_Objects/Date/getTime <p>Конструирует новый объект даты с идентичным значением времени.</p> -<pre class="brush: js notranslate">let birthday = new Date(2020, 12, 20); +<pre class="brush: js">let birthday = new Date(2020, 12, 20); let copy = new Date(); copy.setTime(birthday.getTime()); @@ -50,7 +50,7 @@ console.log(copy.setTime(birthday.getTime())); // 1611090000000 <p>Вычитанием двух последовательных вызовов метода <code>getTime()</code> на заново сконструированных объектах {{jsxref("Global_Objects/Date", "Date")}} можно замерить промежуток времени, произошедший между двумя этими вызовами. Это можно использовать для вычисления времени выполнения неких операций.</p> -<pre class="brush: js notranslate">let end, start; +<pre class="brush: js">let end, start; start = new Date(); for (let i = 0; i < 1000; i++) { diff --git a/files/ru/web/javascript/reference/global_objects/date/index.html b/files/ru/web/javascript/reference/global_objects/date/index.html index bf3ce884dd..0f8ddf6b79 100644 --- a/files/ru/web/javascript/reference/global_objects/date/index.html +++ b/files/ru/web/javascript/reference/global_objects/date/index.html @@ -24,7 +24,7 @@ translation_of: Web/JavaScript/Reference/Global_Objects/Date <h2 id="Syntax">Синтаксис</h2> -<pre class="syntaxbox notranslate"><code>new Date(); +<pre class="syntaxbox"><code>new Date(); new Date(<var>value</var>); new Date(<var>dateString</var>); new Date(<var>year</var>, <var>month</var>[, <var>day</var>[, <var>hour</var>[, <var>minute</var>[, <var>second</var>[, <var>millisecond</var>]]]]]); @@ -118,7 +118,7 @@ new Date(<var>year</var>, <var>month</var>[, <var>day</var>[, <var>hour</var>[, <p><strong>Обратите внимание:</strong> разбор строкового представления дат с помощью конструктора <code>Date</code> (так же как эквивалентный ему метод <code>Date.parse</code>) может иметь различия и несоответствия в браузерах.</p> </div> -<pre class="brush: js notranslate">var today = new Date(); +<pre class="brush: js">var today = new Date(); var birthday = new Date('December 17, 1995 03:24:00'); var birthday = new Date('1995-12-17T03:24:00'); var birthday = new Date(1995, 11, 17); @@ -129,7 +129,7 @@ var birthday = new Date(1995, 11, 17, 3, 24, 0); <p>Для того, чтобы создать и получить даты между 0 и 99 годом, нужно использовать методы {{jsxref("Date.prototype.setFullYear()")}} и {{jsxref("Date.prototype.getFullYear()")}}.</p> -<pre class="brush: js notranslate">var date = new Date(98, 1); // Sun Feb 01 1998 00:00:00 GMT+0000 (GMT) +<pre class="brush: js">var date = new Date(98, 1); // Sun Feb 01 1998 00:00:00 GMT+0000 (GMT) // Устаревший метод, 98 отображается на 1998 год date.setYear(98); // Sun Feb 01 1998 00:00:00 GMT+0000 (GMT) @@ -141,7 +141,7 @@ date.setFullYear(98); // Sat Feb 01 0098 00:00:00 GMT+0000 (BST) <p>Следующие примеры показывают, как определить разницу во времени между двумя датами в JavaScript:</p> -<pre class="brush: js notranslate">// Используя объекты Date +<pre class="brush: js">// Используя объекты Date var start = Date.now(); // Событие, для которого замеряется время, происходит тут: @@ -150,7 +150,7 @@ var end = Date.now(); var elapsed = end - start; // затраченное время в миллисекундах </pre> -<pre class="brush: js notranslate">// Используя встроенные методы +<pre class="brush: js">// Используя встроенные методы var start = new Date(); // Событие, для которого замеряется время, происходит тут: @@ -159,7 +159,7 @@ var end = new Date(); var elapsed = end.getTime() - start.getTime(); // затраченное время в миллисекундах </pre> -<pre class="brush: js notranslate">// Проверяет функцию и возвращает её возвращаемое значение +<pre class="brush: js">// Проверяет функцию и возвращает её возвращаемое значение function printElapsedTime(fTest) { var nStartTime = Date.now(), vReturn = fTest(), @@ -179,7 +179,7 @@ yourFunctionReturn = printElapsedTime(yourFunction); <h3 id="Получить_количество_секунд_с_начала_эпохи_Unix">Получить количество секунд с начала эпохи Unix</h3> -<pre class="notranslate"><code>var seconds = Math.floor(Date.now() / 1000);</code></pre> +<pre><code>var seconds = Math.floor(Date.now() / 1000);</code></pre> <p>В этом случае важно возвращать только целое число (так что простое деление не подойдёт), а также возвращать только фактически прошедшие секунды (поэтому этот код использует {{jsxref ("Math.floor ()")}} а не {{jsxref ("Math.round ()")}}).</p> diff --git a/files/ru/web/javascript/reference/global_objects/eval/index.html b/files/ru/web/javascript/reference/global_objects/eval/index.html index f3bad3a0e3..b5cfcb75ca 100644 --- a/files/ru/web/javascript/reference/global_objects/eval/index.html +++ b/files/ru/web/javascript/reference/global_objects/eval/index.html @@ -23,7 +23,7 @@ translation_of: Web/JavaScript/Reference/Global_Objects/eval <h2 id="Синтаксис">Синтаксис</h2> -<pre class="syntaxbox notranslate"><code>eval(<em>string</em>)</code></pre> +<pre class="syntaxbox"><code>eval(<em>string</em>)</code></pre> <h3 id="Параметры">Параметры</h3> @@ -46,19 +46,19 @@ translation_of: Web/JavaScript/Reference/Global_Objects/eval <p>Если аргумент, переданный <code>eval()</code>, не является строкой, <code>eval() </code>возвращает его неизменным. В следующем примере определён конструктор <code>String</code>, и <code>eval()</code> не вычисляет значение выражения, записанного в строковом виде, а возвращает объект типа <code>String</code>.</p> -<pre class="brush:js notranslate">eval(new String("2 + 2")); // возвращает объект типа String, содержащий "2 + 2" +<pre class="brush:js">eval(new String("2 + 2")); // возвращает объект типа String, содержащий "2 + 2" eval("2 + 2"); // возвращает 4 </pre> <p>Это ограничение легко обойти при помощи <code>toString()</code>.</p> -<pre class="brush:js notranslate">var expression = new String("2 + 2"); +<pre class="brush:js">var expression = new String("2 + 2"); eval(expression.toString()); </pre> <p>Если вы используете <code>eval</code> косвенно, вызовом его через ссылку, а не просто <code>eval</code>, в<a href="http://www.ecma-international.org/ecma-262/5.1/#sec-10.4.2"> ECMAScript 5</a> это работает в глобальной области видимости, а не в локальной; это значит, что <code>eval</code> будет вызван в глобальной области видимости, а код будет выполнен с отсутствием доступа к локальным переменным в пределах области видимости, где он был вызван.</p> -<pre class="brush:js notranslate">function test() { +<pre class="brush:js">function test() { var x = 2, y = 4; console.log(eval("x + y")); // Прямой вызов, использует локальную области видимости, результат - 6 var geval = eval; @@ -78,7 +78,7 @@ eval(expression.toString()); <p>Вам не следует использовать <code>eval()</code>, чтобы конвертировать имена свойств в свойства. Рассматривая следующий пример, где свойство объекта используемое для доступа неизвестно до выполнения кода. Это можно сделать с eval:</p> -<pre class="brush:js notranslate">var obj = { a: 20, b: 30 }; +<pre class="brush:js">var obj = { a: 20, b: 30 }; var propname = getPropName(); // возвращает "a" или "b" eval( "var result = obj." + propname ); @@ -86,7 +86,7 @@ eval( "var result = obj." + propname ); <p>Однако, <code>eval()</code> здесь не нужен. По факту, использование здесь его удивляет. Вместо него используйте <a href="/en-US/docs/Web/JavaScript/Reference/Operators/Property_Accessors" title="JavaScript/Reference/Operators/Member_Operators">доступ к свойствам</a>, который быстрее и безопаснее:</p> -<pre class="brush:js notranslate">var obj = { a: 20, b: 30 }; +<pre class="brush:js">var obj = { a: 20, b: 30 }; var propname = getPropName(); // возвращает "a" или "b" var result = obj[ propname ]; // obj[ "a" ] то же, что и obj.a </pre> @@ -95,7 +95,7 @@ var result = obj[ propname ]; // obj[ "a" ] то же, что и obj.a <p>У JavaScript <a class="external" href="http://en.wikipedia.org/wiki/First-class_function">функции первого класса</a>, что значит, что вы можете передавать функции как аргументы, хранить их в переменных или свойствах объектов и так далее. Многие DOM API созданы с учётом этого, так что вы можете (и вам следует) писать:</p> -<pre class="brush: js notranslate">// вместо setTimeout(" ... ", 1000) : +<pre class="brush: js">// вместо setTimeout(" ... ", 1000) : setTimeout(function() { ... }, 1000); // вместо elt.setAttribute("onclick", "...") использовать: @@ -123,7 +123,7 @@ elt.addEventListener("click", function() { ... } , false); </pre> <p>В следующем коде оба выражения содержат <code>eval()</code>, возвращающий 42. Первое определяется строкой "<code>x + y + 1</code>"; второе - строкой "<code>42</code>".</p> -<pre class="brush:js notranslate">var x = 2; +<pre class="brush:js">var x = 2; var y = 39; var z = "42"; eval("x + y + 1"); // возвращает 42 @@ -134,7 +134,7 @@ eval(z); // вернёт 42 <p>Следующий пример использует <code>eval()</code> для получения значения выражения <code>str</code>. Эта строка состоит из JavaScript выражений, печатающих в консоль, и, если x равен пяти, призывающих z значение 42, или 0 в противном случае. Когда второе выражение будет исполнено, <code>eval()</code> будет считать выражения выполненными, а также это установит значение выражению переменной z и вернёт его.</p> -<pre class="brush:js notranslate">var x = 5; +<pre class="brush:js">var x = 5; var str = "if (x == 5) {console.log('z is 42'); z = 42;} else z = 0; "; console.log("z is ", eval(str));</pre> @@ -143,7 +143,7 @@ console.log("z is ", eval(str));</pre> <p><code>eval()</code> вернёт значение последнего выполняемого выражения</p> -<pre class="brush:js notranslate">var str = "if ( a ) { 1+1; } else { 1+2; }"; +<pre class="brush:js">var str = "if ( a ) { 1+1; } else { 1+2; }"; var a = true; var b = eval(str); // вернёт 2 @@ -156,7 +156,7 @@ console.log("b is : " + b);</pre> <h3 id="eval_как_строковое_определение_функции_включающее_и_как_префикс_и_суффикс"><code>eval</code> как строковое определение функции, включающее "(" и ")" как префикс и суффикс</h3> -<pre class="brush:js notranslate">var fctStr1 = "function a() {}" +<pre class="brush:js">var fctStr1 = "function a() {}" var fctStr2 = "(function a() {})" var fct1 = eval(fctStr1) // вернёт undefined var fct2 = eval(fctStr2) // вернёт функцию diff --git a/files/ru/web/javascript/reference/global_objects/generator/index.html b/files/ru/web/javascript/reference/global_objects/generator/index.html index 2eec389c7e..8d5768c60c 100644 --- a/files/ru/web/javascript/reference/global_objects/generator/index.html +++ b/files/ru/web/javascript/reference/global_objects/generator/index.html @@ -20,7 +20,7 @@ translation_of: Web/JavaScript/Reference/Global_Objects/Generator <p>Этот объект не может быть инстанциирован напрямую. Вместо этого, экземпляр <code>Generator</code> может быть возвращён из <a href="/ru/docs/Web/JavaScript/Reference/Global_Objects/GeneratorFunction">функции-генератора</a>:</p> -<pre class="notranslate line-numbers language-html">function* generator() { +<pre class="line-numbers language-html">function* generator() { yield 1; yield 2; yield 3; @@ -47,7 +47,7 @@ console.log(generator().next().value); // 1</pre> <h3 id="Бесконечный_Итератор">Бесконечный Итератор</h3> -<pre class="brush: js notranslate">function* idMaker() { +<pre class="brush: js">function* idMaker() { var index = 0; while(true) yield index++; diff --git a/files/ru/web/javascript/reference/global_objects/intl/datetimeformat/index.html b/files/ru/web/javascript/reference/global_objects/intl/datetimeformat/index.html index f7836af5e0..c210237b7a 100644 --- a/files/ru/web/javascript/reference/global_objects/intl/datetimeformat/index.html +++ b/files/ru/web/javascript/reference/global_objects/intl/datetimeformat/index.html @@ -15,7 +15,7 @@ translation_of: Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat <h2 id="Syntax">Синтаксис</h2> -<pre class="syntaxbox notranslate"><code>new Intl.DateTimeFormat([<var>locales</var>[, <var>options</var>]]) +<pre class="syntaxbox"><code>new Intl.DateTimeFormat([<var>locales</var>[, <var>options</var>]]) Intl.DateTimeFormat.call(<var>this</var>[, <var>locales</var>[, <var>options</var>]])</code></pre> <h3 id="Parameters">Параметры</h3> @@ -122,7 +122,7 @@ Intl.DateTimeFormat.call(<var>this</var>[, <var>locales</var>[, <var>options</va <p>При базовом использовании без определения локали <code>DateTimeFormat</code> использует локаль и опции по умолчанию.</p> -<pre class="brush: js notranslate">var date = new Date(Date.UTC(2012, 11, 20, 3, 0, 0)); +<pre class="brush: js">var date = new Date(Date.UTC(2012, 11, 20, 3, 0, 0)); // Вывод format без аргументов зависит от реализации, // локали по умолчанию и часового пояса по умолчанию @@ -134,7 +134,7 @@ console.log(new Intl.DateTimeFormat().format(date)); <p>Этот пример показывает некоторые локализованные форматы даты и времени. Для получения формата языка, используемого в пользовательском интерфейсе вашего приложения, убедитесь, что вы указали этот язык (и, возможно, несколько запасных языков) через аргумент <code>locales</code>:</p> -<pre class="brush: js notranslate">var date = new Date(Date.UTC(2012, 11, 20, 3, 0, 0)); +<pre class="brush: js">var date = new Date(Date.UTC(2012, 11, 20, 3, 0, 0)); // Форматирование ниже предполагает, что местный часовой пояс равен // America/Los_Angeles для локали США @@ -170,7 +170,7 @@ console.log(new Intl.DateTimeFormat(['ban', 'id']).format(date)); <p>Формат даты и времени может быть настроен с помощью аргумента <code>options</code>:</p> -<pre class="brush: js notranslate">var date = new Date(Date.UTC(2012, 11, 20, 3, 0, 0)); +<pre class="brush: js">var date = new Date(Date.UTC(2012, 11, 20, 3, 0, 0)); // Запрашиваем день недели вместе с длинным форматом даты var options = { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' }; diff --git a/files/ru/web/javascript/reference/global_objects/number/issafeinteger/index.html b/files/ru/web/javascript/reference/global_objects/number/issafeinteger/index.html index b9be2bbc60..a6c3eaff7a 100644 --- a/files/ru/web/javascript/reference/global_objects/number/issafeinteger/index.html +++ b/files/ru/web/javascript/reference/global_objects/number/issafeinteger/index.html @@ -31,7 +31,7 @@ translation_of: Web/JavaScript/Reference/Global_Objects/Number/isSafeInteger <h2 id="Syntax">Синтаксис</h2> -<pre class="syntaxbox notranslate"><code>Number.isSafeInteger(<var>testValue</var>)</code></pre> +<pre class="syntaxbox"><code>Number.isSafeInteger(<var>testValue</var>)</code></pre> <h3 id="Parameters">Параметры</h3> @@ -46,7 +46,7 @@ translation_of: Web/JavaScript/Reference/Global_Objects/Number/isSafeInteger <h2 id="Examples">Примеры</h2> -<pre class="brush: js notranslate">Number.isSafeInteger(3); // true +<pre class="brush: js">Number.isSafeInteger(3); // true Number.isSafeInteger(Math.pow(2, 53)); // false Number.isSafeInteger(Math.pow(2, 53) - 1); // true Number.isSafeInteger(NaN); // false @@ -58,7 +58,7 @@ Number.isSafeInteger(3.0); // true <h2 id="Specifications">Полифил</h2> -<pre class="brush: js notranslate">Number.isSafeInteger = Number.isSafeInteger || function (value) { +<pre class="brush: js">Number.isSafeInteger = Number.isSafeInteger || function (value) { return Number.isInteger(value) && Math.abs(value) <= Number.MAX_SAFE_INTEGER; };</pre> diff --git a/files/ru/web/javascript/reference/global_objects/number/toexponential/index.html b/files/ru/web/javascript/reference/global_objects/number/toexponential/index.html index 918f0ba864..1e7fbca3dc 100644 --- a/files/ru/web/javascript/reference/global_objects/number/toexponential/index.html +++ b/files/ru/web/javascript/reference/global_objects/number/toexponential/index.html @@ -16,7 +16,7 @@ translation_of: Web/JavaScript/Reference/Global_Objects/Number/toExponential <h2 id="Syntax">Синтаксис</h2> -<pre class="syntaxbox notranslate"><code><var>numObj</var>.toExponential([<var>fractionDigits</var>])</code></pre> +<pre class="syntaxbox"><code><var>numObj</var>.toExponential([<var>fractionDigits</var>])</code></pre> <h3 id="Parameters">Параметры</h3> @@ -46,7 +46,7 @@ translation_of: Web/JavaScript/Reference/Global_Objects/Number/toExponential <h3 id="Example_Using_toExponential">Пример: использование <code>toExponential</code></h3> -<pre class="brush: js notranslate">var numObj = 77.1234; +<pre class="brush: js">var numObj = 77.1234; console.log(numObj.toExponential()); // выведет 7.71234e+1 diff --git a/files/ru/web/javascript/reference/global_objects/number/tofixed/index.html b/files/ru/web/javascript/reference/global_objects/number/tofixed/index.html index 2d68871d4c..cc4718ae06 100644 --- a/files/ru/web/javascript/reference/global_objects/number/tofixed/index.html +++ b/files/ru/web/javascript/reference/global_objects/number/tofixed/index.html @@ -16,7 +16,7 @@ translation_of: Web/JavaScript/Reference/Global_Objects/Number/toFixed <h2 id="Syntax">Синтаксис</h2> -<pre class="syntaxbox notranslate"><code><var>numObj</var>.toFixed([<var>digits</var>])</code></pre> +<pre class="syntaxbox"><code><var>numObj</var>.toFixed([<var>digits</var>])</code></pre> <h3 id="Parameters">Параметры</h3> @@ -42,7 +42,7 @@ translation_of: Web/JavaScript/Reference/Global_Objects/Number/toFixed <h3 id="Example_Using_toFixed">Пример: использование <code>toFixed</code></h3> -<pre class="brush: js notranslate">var numObj = 12345.6789; +<pre class="brush: js">var numObj = 12345.6789; numObj.toFixed(); // Вернёт '12346': обратите внимание на округление, дробной части нет numObj.toFixed(1); // Вернёт '12345.7': обратите внимание на округление diff --git a/files/ru/web/javascript/reference/global_objects/number/toprecision/index.html b/files/ru/web/javascript/reference/global_objects/number/toprecision/index.html index da8d601c7d..fd39f6dd5a 100644 --- a/files/ru/web/javascript/reference/global_objects/number/toprecision/index.html +++ b/files/ru/web/javascript/reference/global_objects/number/toprecision/index.html @@ -16,7 +16,7 @@ translation_of: Web/JavaScript/Reference/Global_Objects/Number/toPrecision <h2 id="Syntax">Синтаксис</h2> -<pre class="syntaxbox notranslate"><code><var>numObj</var>.toPrecision([<var>precision</var>])</code></pre> +<pre class="syntaxbox"><code><var>numObj</var>.toPrecision([<var>precision</var>])</code></pre> <h3 id="Parameters">Параметры</h3> @@ -42,7 +42,7 @@ translation_of: Web/JavaScript/Reference/Global_Objects/Number/toPrecision <h3 id="Example_Using_toPrecision">Пример: использование <code>toPrecision</code></h3> -<pre class="brush: js notranslate">var numObj = 5.123456; +<pre class="brush: js">var numObj = 5.123456; console.log(numObj.toPrecision()); // выведет '5.123456' console.log(numObj.toPrecision(5)); // выведет '5.1235' diff --git a/files/ru/web/javascript/reference/global_objects/number/tostring/index.html b/files/ru/web/javascript/reference/global_objects/number/tostring/index.html index 86cd5b3b60..3f8103311d 100644 --- a/files/ru/web/javascript/reference/global_objects/number/tostring/index.html +++ b/files/ru/web/javascript/reference/global_objects/number/tostring/index.html @@ -16,7 +16,7 @@ translation_of: Web/JavaScript/Reference/Global_Objects/Number/toString <h2 id="Syntax">Синтаксис</h2> -<pre class="syntaxbox notranslate"><code><var>numObj</var>.toString([<var>radix</var>])</code></pre> +<pre class="syntaxbox"><code><var>numObj</var>.toString([<var>radix</var>])</code></pre> <h3 id="Parameters">Параметры</h3> @@ -46,7 +46,7 @@ translation_of: Web/JavaScript/Reference/Global_Objects/Number/toString <h3 id="Example_Using_toString">Пример: использование <code>toString</code></h3> -<pre class="brush: js notranslate">var count = 10; +<pre class="brush: js">var count = 10; console.log(count.toString()); // Выведет '10' console.log((17).toString()); // Выведет '17' diff --git a/files/ru/web/javascript/reference/global_objects/object/create/index.html b/files/ru/web/javascript/reference/global_objects/object/create/index.html index f7b4d2c69b..09ac00405a 100644 --- a/files/ru/web/javascript/reference/global_objects/object/create/index.html +++ b/files/ru/web/javascript/reference/global_objects/object/create/index.html @@ -17,7 +17,7 @@ translation_of: Web/JavaScript/Reference/Global_Objects/Object/create <h2 id="Syntax">Синтаксис</h2> -<pre class="syntaxbox notranslate"><code>Object.create(<var>proto</var>[, <var>propertiesObject</var>])</code></pre> +<pre class="syntaxbox"><code>Object.create(<var>proto</var>[, <var>propertiesObject</var>])</code></pre> <h3 id="Parameters">Параметры</h3> @@ -42,7 +42,7 @@ translation_of: Web/JavaScript/Reference/Global_Objects/Object/create <p>Ниже показан пример использования <code>Object.create()</code> для имитации классического наследования. Это пример одиночного наследования, поскольку только его поддерживает JavaScript.</p> -<pre class="brush: js notranslate">// Shape — суперкласс +<pre class="brush: js">// Shape — суперкласс function Shape() { this.x = 0; this.y = 0; @@ -73,7 +73,7 @@ rect.move(1, 1); // выведет 'Фигура переместилась.' <p>Если вы хотите наследоваться от нескольких объектов, то это возможно сделать при помощи примесей.</p> -<pre class="brush: js notranslate">function MyClass() { +<pre class="brush: js">function MyClass() { SuperClass.call(this); OtherSuperClass.call(this); } @@ -90,7 +90,7 @@ MyClass.prototype.myMethod = function() { <h3 id="Example.3A_Using_propertiesObject_argument_with_Object.create">Пример: использование аргумента <code>propertiesObject</code> с <code>Object.create()</code></h3> -<pre class="brush: js notranslate">var o; +<pre class="brush: js">var o; // создаём объект с нулевым прототипом o = Object.create(null); @@ -159,7 +159,7 @@ o2 = Object.create({}, { <p>Для этого полифила необходима правильно работающая Object.prototype.hasOwnProperty.</p> -<pre class="brush: js notranslate">if (typeof Object.create != 'function') { +<pre class="brush: js">if (typeof Object.create != 'function') { // Этапы производства ECMA-262, издание 5, 15.2.3.5 // Ссылка: http://es5.github.io/#x15.2.3.5 Object.create = (function() { diff --git a/files/ru/web/javascript/reference/global_objects/object/entries/index.html b/files/ru/web/javascript/reference/global_objects/object/entries/index.html index fd74a6a286..5cba32dbc5 100644 --- a/files/ru/web/javascript/reference/global_objects/object/entries/index.html +++ b/files/ru/web/javascript/reference/global_objects/object/entries/index.html @@ -11,7 +11,7 @@ translation_of: Web/JavaScript/Reference/Global_Objects/Object/entries <h2 id="Синтаксис">Синтаксис</h2> -<pre class="syntaxbox notranslate"><code>Object.entries(<var>obj</var>)</code></pre> +<pre class="syntaxbox"><code>Object.entries(<var>obj</var>)</code></pre> <h3 id="Параметры">Параметры</h3> @@ -30,7 +30,7 @@ translation_of: Web/JavaScript/Reference/Global_Objects/Object/entries <h2 id="Примеры">Примеры</h2> -<pre class="brush: js notranslate">var obj = { foo: "bar", baz: 42 }; +<pre class="brush: js">var obj = { foo: "bar", baz: 42 }; console.log(Object.entries(obj)); // [ ['foo', 'bar'], ['baz', 42] ] // массив как объект @@ -49,7 +49,7 @@ console.log(Object.entries(my_obj)); // [ ['foo', 'bar'] ] // non-object argument will be coerced to an object console.log(Object.entries("foo")); // [ ['0', 'f'], ['1', 'o'], ['2', 'o'] ]</pre> -<pre class="notranslate"><code>// returns an empty array for any primitive type, since primitives have no own properties +<pre><code>// returns an empty array for any primitive type, since primitives have no own properties console.log(Object.entries(100)); // [ ] // iterate through key-value gracefully @@ -67,7 +67,7 @@ Object.entries(obj).forEach(([key, value]) => { <p>Конструктор {{jsxref("Map", "new Map()")}} принимает повторение <em>значений</em>. С <code>Object.entries </code>вы легко можете преобразовать {{jsxref("Object")}} в {{jsxref("Map")}}:</p> -<pre class="brush: js notranslate">var obj = { foo: "bar", baz: 42 }; +<pre class="brush: js">var obj = { foo: "bar", baz: 42 }; var map = new Map(Object.entries(obj)); console.log(map); // Map { foo: "bar", baz: 42 }</pre> @@ -75,7 +75,7 @@ console.log(map); // Map { foo: "bar", baz: 42 }</pre> <p>Используя <a href="https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment#%D0%A0%D0%B0%D0%B7%D0%B1%D0%BE%D1%80_%D0%BC%D0%B0%D1%81%D1%81%D0%B8%D0%B2%D0%BE%D0%B2">метод Разбора Массивов</a> Вы можете легко итерировать объекты.</p> -<pre class="notranslate"><code>const obj = { foo: 'bar', baz: 42 }; +<pre><code>const obj = { foo: 'bar', baz: 42 }; Object.entries(obj).forEach(([key, value]) => console.log(`${key}: ${value}`)); // "foo: bar", "baz: 42"</code></pre> <h2 id="Полифил">Полифил</h2> diff --git a/files/ru/web/javascript/reference/global_objects/promise/then/index.html b/files/ru/web/javascript/reference/global_objects/promise/then/index.html index 5bdc241aa9..797adc9171 100644 --- a/files/ru/web/javascript/reference/global_objects/promise/then/index.html +++ b/files/ru/web/javascript/reference/global_objects/promise/then/index.html @@ -17,7 +17,7 @@ translation_of: Web/JavaScript/Reference/Global_Objects/Promise/then <h2 id="Синтаксис">Синтаксис</h2> -<pre class="syntaxbox notranslate"><var>p.then(onFulfilled[, onRejected])</var>; +<pre class="syntaxbox"><var>p.then(onFulfilled[, onRejected])</var>; p.then(value => { // выполнение @@ -43,7 +43,7 @@ p.then(value => { <h3 id="Использование_метода_then">Использование метода <code>then</code></h3> -<pre class="brush: js notranslate">var p1 = new Promise(function(resolve, reject) { +<pre class="brush: js">var p1 = new Promise(function(resolve, reject) { resolve("Успех!"); // или // reject("Ошибка!"); @@ -60,7 +60,7 @@ p1.then(function(value) { <p>Так как метод <code>then</code> возвращает промис (<code>Promise</code>), вы можете объединить несколько вызовов <code>then</code> в цепочку. Значения возвращаемые из колбэков onFulfilled или onRejected будут автоматически обёрнуты в промис.</p> -<pre class="brush: js notranslate">var p2 = new Promise(function(resolve, reject) { +<pre class="brush: js">var p2 = new Promise(function(resolve, reject) { resolve(1); }); @@ -78,7 +78,7 @@ p2.then(function(value) { <p>Вы также можете соединить одну функцию, имеющую подобный с промисами API, с другой функцией.</p> -<pre class="brush: js notranslate">function fetch_current_data() { +<pre class="brush: js">function fetch_current_data() { // API функции fetch() возвращает промис. Эта функция // имеет аналогичный API, за исключением значения в случае выполнения return fetch("current-data.json").then((response) => { @@ -95,7 +95,7 @@ p2.then(function(value) { <p>Если onFulfilled возвращает промис, возвращаемое значение может быть выполнено (resolved) / отклонено (rejected) промисом.</p> -<pre class="brush: js notranslate">function resolveLater(resolve, reject) { +<pre class="brush: js">function resolveLater(resolve, reject) { setTimeout(function () { resolve(10); }, 1000); diff --git a/files/ru/web/javascript/reference/global_objects/proxy/index.html b/files/ru/web/javascript/reference/global_objects/proxy/index.html index 12f1cfc36f..3611061bef 100644 --- a/files/ru/web/javascript/reference/global_objects/proxy/index.html +++ b/files/ru/web/javascript/reference/global_objects/proxy/index.html @@ -39,7 +39,7 @@ translation_of: Web/JavaScript/Reference/Global_Objects/Proxy <p>Прокси - это новые объекты; невозможно выполнить "проксирование" существующего объекта. Пример создания прокси:</p> -<pre class="brush: js notranslate">var p = new Proxy(target, handler); +<pre class="brush: js">var p = new Proxy(target, handler); </pre> <p>Где:</p> @@ -150,7 +150,7 @@ translation_of: Web/JavaScript/Reference/Global_Objects/Proxy <p>Объект, возвращающий значение <code>37</code>, в случае отсутствия свойства с указанным именем:</p> -<pre class="brush: js notranslate">var handler = { +<pre class="brush: js">var handler = { get: function(target, name){ return name in target? target[name] : @@ -170,7 +170,7 @@ console.log('c' in p, p.c); // false, 37 <p>В данном примере мы используем JavaScript объект, к которому наш прокси направляет все запросы:</p> -<pre class="brush: js notranslate">var target = {}; +<pre class="brush: js">var target = {}; var p = new Proxy(target, {}); p.a = 37; // операция перенаправлена прокси @@ -182,7 +182,7 @@ console.log(target.a); // 37. Операция была успешно пере <p>При помощи <code>Proxy</code> вы можете легко проверять передаваемые объекту значения:</p> -<pre class="brush: js notranslate">let validator = { +<pre class="brush: js">let validator = { set: function(obj, prop, value) { if (prop === 'age') { if (!Number.isInteger(value)) { @@ -213,7 +213,7 @@ person.age = 300; // Вызовет исключение <p>Функция прокси может легко дополнить конструктор новым:</p> -<pre class="brush: js notranslate">function extend(sup, base) { +<pre class="brush: js">function extend(sup, base) { var descriptor = Object.getOwnPropertyDescriptor( base.prototype, 'constructor', ); @@ -260,7 +260,7 @@ console.log(Peter.age); // 13 <p>Иногда возникает необходимость переключить атрибут или имя класса у двух разных элементов:</p> -<pre class="brush: js notranslate">let view = new Proxy({ +<pre class="brush: js">let view = new Proxy({ selected: null }, { @@ -293,7 +293,7 @@ console.log(i2.getAttribute('aria-selected')); // 'true' <p>Прокси объект <code>products</code> проверяет передаваемые значения и преобразует их в массив в случае необходимости. Объект также поддерживает дополнительное свойство <code>latestBrowser</code> на чтение и запись.</p> -<pre class="brush: js notranslate">let products = new Proxy({ +<pre class="brush: js">let products = new Proxy({ browsers: ['Internet Explorer', 'Netscape'] }, { @@ -336,7 +336,7 @@ console.log(products.latestBrowser); // 'Chrome' <p>Данный прокси расширяет массив дополнительными возможностями. Как вы видите, вы можете гибко "задавать" свойства без использования <a href="/en-US/docs/JavaScript/Reference/Global_Objects/Object/defineProperties"><code>Object.defineProperties</code></a>. Данный пример также может быть использован для поиска строки таблицы по её ячейке. В этом случае целью будет <a href="/en-US/docs/DOM/table.rows"><code>table.rows</code></a>.</p> -<pre class="brush: js notranslate">let products = new Proxy([ +<pre class="brush: js">let products = new Proxy([ { name: 'Firefox', type: 'browser' }, { name: 'SeaMonkey', type: 'browser' }, { name: 'Thunderbird', type: 'mailer' } @@ -397,7 +397,7 @@ console.log(products.number); // 3 <p>В данном примере, использующем все виды перехватчиков, мы попытаемся проксировать <em>не нативный</em> объект, который частично приспособлен для этого - <code>docCookies,</code> созданном в разделе <a href="https://developer.mozilla.org/en-US/docs/DOM/document.cookie#A_little_framework.3A_a_complete_cookies_reader.2Fwriter_with_full_unicode_support" title="https://developer.mozilla.org/en-US/docs/DOM/document.cookie#A_little_framework.3A_a_complete_cookies_reader.2Fwriter_with_full_unicode_support">"little framework" и опубликованном на странице <code>document.cookie</code></a>.</p> -<pre class="brush: js notranslate">/* +<pre class="brush: js">/* var docCookies = ... получить объект "docCookies" можно здесь: https://developer.mozilla.org/en-US/docs/DOM/document.cookie#A_little_framework.3A_a_complete_cookies_reader.2Fwriter_with_full_unicode_support */ diff --git a/files/ru/web/javascript/reference/global_objects/proxy/proxy/apply/index.html b/files/ru/web/javascript/reference/global_objects/proxy/proxy/apply/index.html index 50c940dd66..b9981c3d0f 100644 --- a/files/ru/web/javascript/reference/global_objects/proxy/proxy/apply/index.html +++ b/files/ru/web/javascript/reference/global_objects/proxy/proxy/apply/index.html @@ -17,7 +17,7 @@ translation_of: Web/JavaScript/Reference/Global_Objects/Proxy/Proxy/apply <h2 id="Синтаксис">Синтаксис</h2> -<pre class="syntaxbox notranslate">const <var>p</var> = new Proxy(<var>target</var>, { +<pre class="syntaxbox">const <var>p</var> = new Proxy(<var>target</var>, { apply: function(<var>target</var>, <var>thisArg</var>, <var>argumentsList</var>) { } }); @@ -66,7 +66,7 @@ translation_of: Web/JavaScript/Reference/Global_Objects/Proxy/Proxy/apply <p>Следующий код ловит вызов функции.</p> -<pre class="brush: js notranslate">const p = new Proxy(function() {}, { +<pre class="brush: js">const p = new Proxy(function() {}, { apply: function(target, thisArg, argumentsList) { console.log('called: ' + argumentsList.join(', ')); return argumentsList[0] + argumentsList[1] + argumentsList[2]; diff --git a/files/ru/web/javascript/reference/global_objects/proxy/proxy/get/index.html b/files/ru/web/javascript/reference/global_objects/proxy/proxy/get/index.html index 07c349853f..9c8dc59f4e 100644 --- a/files/ru/web/javascript/reference/global_objects/proxy/proxy/get/index.html +++ b/files/ru/web/javascript/reference/global_objects/proxy/proxy/get/index.html @@ -13,7 +13,7 @@ translation_of: Web/JavaScript/Reference/Global_Objects/Proxy/Proxy/get <h2 id="Syntax">Syntax</h2> -<pre class="syntaxbox notranslate">const <var>p</var> = new Proxy(<var>target</var>, { +<pre class="syntaxbox">const <var>p</var> = new Proxy(<var>target</var>, { get: function(<var>target</var>, <var>property</var>, <var>receiver</var>) { } }); @@ -65,7 +65,7 @@ translation_of: Web/JavaScript/Reference/Global_Objects/Proxy/Proxy/get <p>Следующий код перехватывает получение значения свойства.</p> -<pre class="brush: js notranslate">const p = new Proxy({}, { +<pre class="brush: js">const p = new Proxy({}, { get: function(target, property, receiver) { console.log('called: ' + property); return 10; @@ -78,7 +78,7 @@ console.log(p.a); // "called: a" <p>Следующий код нарушает инвариант.</p> -<pre class="brush: js notranslate">const obj = {}; +<pre class="brush: js">const obj = {}; Object.defineProperty(obj, 'a', { configurable: false, enumerable: false, diff --git a/files/ru/web/javascript/reference/global_objects/proxy/proxy/index.html b/files/ru/web/javascript/reference/global_objects/proxy/proxy/index.html index 1bf6b70b43..0e3ba67f53 100644 --- a/files/ru/web/javascript/reference/global_objects/proxy/proxy/index.html +++ b/files/ru/web/javascript/reference/global_objects/proxy/proxy/index.html @@ -16,7 +16,7 @@ translation_of: Web/JavaScript/Reference/Global_Objects/Proxy/Proxy <h2 id="Syntax">Syntax</h2> -<pre class="syntaxbox notranslate">new Proxy(<var>target</var>, <var>handler</var>)</pre> +<pre class="syntaxbox">new Proxy(<var>target</var>, <var>handler</var>)</pre> <h3 id="Parameters">Parameters</h3> @@ -77,7 +77,7 @@ translation_of: Web/JavaScript/Reference/Global_Objects/Proxy/Proxy <p>In this example the target has two properties, <code>notProxied</code> and <code>proxied</code>. We define a handler that returns a different value for <code>proxied</code>, and lets any other accesses through to the target.</p> -<pre class="brush: js notranslate">const target = { +<pre class="brush: js">const target = { notProxied: "original value", proxied: "original value" }; diff --git a/files/ru/web/javascript/reference/global_objects/proxy/proxy/set/index.html b/files/ru/web/javascript/reference/global_objects/proxy/proxy/set/index.html index 7c1eade6a7..2f1d58fa1b 100644 --- a/files/ru/web/javascript/reference/global_objects/proxy/proxy/set/index.html +++ b/files/ru/web/javascript/reference/global_objects/proxy/proxy/set/index.html @@ -18,7 +18,7 @@ original_slug: Web/JavaScript/Reference/Global_Objects/Proxy/handler/set <h2 id="Синтаксис">Синтаксис</h2> -<pre class="brush: js notranslate">var p = new Proxy(target, { +<pre class="brush: js">var p = new Proxy(target, { set: function(target, property, value, receiver) { } }); @@ -82,7 +82,7 @@ original_slug: Web/JavaScript/Reference/Global_Objects/Proxy/handler/set <p><span class="VIiyi" lang="ru"><span class="ChMk0b JLqJ4b"><span>Следующий код перехватывает установку значения свойству</span></span></span><span lang="ru"><span>.</span></span></p> -<pre class="brush: js notranslate">var p = new Proxy({}, { +<pre class="brush: js">var p = new Proxy({}, { set: function(target, prop, value, receiver) { target[prop] = value console.log('property set: ' + prop + ' = ' + value) diff --git a/files/ru/web/javascript/reference/global_objects/reflect/index.html b/files/ru/web/javascript/reference/global_objects/reflect/index.html index 1764ba8aac..62463ed859 100644 --- a/files/ru/web/javascript/reference/global_objects/reflect/index.html +++ b/files/ru/web/javascript/reference/global_objects/reflect/index.html @@ -50,7 +50,7 @@ translation_of: Web/JavaScript/Reference/Global_Objects/Reflect <h3 id="Проверка_наличия_конкретных_свойств_у_объекта">Проверка наличия конкретных свойств у объекта</h3> -<pre class="brush: js notranslate">const duck = { +<pre class="brush: js">const duck = { name: 'Maurice', color: 'white', greeting: function() { @@ -65,12 +65,12 @@ Reflect.has(duck, 'haircut'); <h3 id="Возврат_собственных_ключей_объекта">Возврат собственных ключей объекта</h3> -<pre class="brush: js notranslate">Reflect.ownKeys(duck); +<pre class="brush: js">Reflect.ownKeys(duck); // [ "name", "color", "greeting" ]</pre> <h3 id="Добавление_нового_свойства_в_объект">Добавление нового свойства в объект</h3> -<pre class="brush: js notranslate">Reflect.set(duck, 'eyes', 'black'); +<pre class="brush: js">Reflect.set(duck, 'eyes', 'black'); // вернётся "true" если вызов успешен // объект "duck" теперь содержит свойство "eyes" со значением "black"</pre> diff --git a/files/ru/web/javascript/reference/global_objects/regexp/index.html b/files/ru/web/javascript/reference/global_objects/regexp/index.html index a6eb782e72..601b6d84ed 100644 --- a/files/ru/web/javascript/reference/global_objects/regexp/index.html +++ b/files/ru/web/javascript/reference/global_objects/regexp/index.html @@ -26,7 +26,7 @@ translation_of: Web/JavaScript/Reference/Global_Objects/RegExp <p>Возможны как литеральная запись, так и запись через конструктор:</p> -<pre class="syntaxbox notranslate"><code>/<var>pattern</var>/<var>flags</var> +<pre class="syntaxbox"><code>/<var>pattern</var>/<var>flags</var> new RegExp(<var>pattern</var>, <var>flags</var>)</code> </pre> @@ -56,7 +56,7 @@ new RegExp(<var>pattern</var>, <var>flags</var>)</code> <p>Существует два способа создания объекта <code>RegExp</code>: литеральная запись и использование конструктора. При записи строк параметры в литеральной записи не используют символы кавычек, в то время как параметры функции-конструктора используют кавычки. Так что следующие выражения создают одинаковые регулярные выражения:</p> -<pre class="brush: js notranslate">/ab+c/i; +<pre class="brush: js">/ab+c/i; new RegExp('ab+c', 'i'); </pre> @@ -66,7 +66,7 @@ new RegExp('ab+c', 'i'); <p>При использовании функции-конструктора необходимо использовать обычные правила экранирования в строках (предварять специальные символы символом обратного слеша «\»). Например, следующие выражения эквивалентны:</p> -<pre class="brush: js notranslate">var re = /\w+/; +<pre class="brush: js">var re = /\w+/; var re = new RegExp('\\w+'); </pre> @@ -456,7 +456,7 @@ var re = new RegExp('\\w+'); <p>Следующий скрипт использует метод {{jsxref("String.prototype.replace()", "replace()")}} экземпляра строки {{jsxref("Global_Objects/String", "String")}} для сопоставления с именем в формате <em>имя фамилия</em> и выводит его в формате <em>фамилия, имя</em>. В тесте замены скрипт использует заменители <code>$1</code> и <code>$2</code>, которые заменяются на результаты соответствующих сопоставившихся подгрупп регулярного выражения.</p> -<pre class="brush: js notranslate">var re = /(\w+)\s(\w+)/; +<pre class="brush: js">var re = /(\w+)\s(\w+)/; var str = 'John Smith'; var newstr = str.replace(re, '$2, $1'); console.log(newstr); @@ -474,7 +474,7 @@ console.log(newstr); <p>Символы конца строки различаются на различных платформах (Unix, Windows и так далее). Разбиение строк из этого примера работает на всех платформах.</p> -<pre class="brush: js notranslate">var text = 'Некоторый текст\nЕщё текст\r\nИ ещё\rЭто конец'; +<pre class="brush: js">var text = 'Некоторый текст\nЕщё текст\r\nИ ещё\rЭто конец'; var lines = text.split(/\r\n|\r|\n/); console.log(lines); // выведет [ 'Некоторый текст', 'Ещё текст', 'И ещё', 'Это конец' ] </pre> @@ -483,7 +483,7 @@ console.log(lines); // выведет [ 'Некоторый текст', 'Ещё <h3 id="Example_Using_regular_expression_on_multiple_lines">Пример: использование регулярных выражений на нескольких строках</h3> -<pre class="brush: js notranslate">var s = 'Please yes\nmake my day!'; +<pre class="brush: js">var s = 'Please yes\nmake my day!'; s.match(/yes.*day/); // Вернёт null s.match(/yes[^]*day/); @@ -494,7 +494,7 @@ s.match(/yes[^]*day/); <p>Этот пример демонстрирует, как можно использовать флаг «липучести» регулярных выражений для сопоставления с отдельными строками многострочного ввода.</p> -<pre class="brush: js notranslate">var text = 'Первая строка\nВторая строка'; +<pre class="brush: js">var text = 'Первая строка\nВторая строка'; var regex = /(\S+) строка\n?/y; var match = regex.exec(text); @@ -511,7 +511,7 @@ console.log(match3 === null); // напечатает 'true' <p>Во время выполнения можно проверить, поддерживается ли флаг «липучести», при помощи блока <code>try { … } catch { … }</code>. Для этого надо использовать либо выражение с <code>eval(…)</code>, либо конструктор <code>RegExp(<var>строка-регулярки</var>, <var>строка-с-флагами</var>)</code> (поскольку нотация <code>/<var>регулярка</var>/<var>флаги</var></code> обрабатывается во время компиляции, исключение будет выброшено до того, как выполнение достигнет блока <code>catch</code>). Например:</p> -<pre class="brush: js notranslate">var supports_sticky; +<pre class="brush: js">var supports_sticky; try { RegExp('', 'y'); supports_sticky = true; } catch(e) { supports_sticky = false; } console.log(supports_sticky); // напечатает 'true' @@ -521,7 +521,7 @@ console.log(supports_sticky); // напечатает 'true' <p>Как уже сказано выше, символьные классы <code>\w</code> и <code>\W</code> сопоставляются только с базовыми символами ASCII; то есть, с символами от «a» до «z», от «A» до «Z», от «0» до «9» и символом «_». Для сопоставления с символами из других языков, например, с кириллическими или иврита, используйте форму <code>\uhhhh</code>, где «hhhh» — это значение символа Юникода, записанное в шестнадцатеричной форме. Этот пример демонстрирует, как можно выделить символы Юникода, составляющие слова.</p> -<pre class="brush: js notranslate">var text = 'Образец text на русском языке'; +<pre class="brush: js">var text = 'Образец text на русском языке'; var regex = /[\u0400-\u04FF]+/g; var match = regex.exec(text); @@ -539,7 +539,7 @@ console.log(regex.lastIndex); // напечатает '15' <h3 id="Example_Extracting_subdomain_name_from_URL">Пример: извлечение имени поддомена из URL</h3> -<pre class="brush: js notranslate">var url = 'http://xxx.domain.com'; +<pre class="brush: js">var url = 'http://xxx.domain.com'; console.log(/[^.]+/.exec(url)[0].substr(7)); // напечатает 'xxx' </pre> @@ -578,7 +578,7 @@ console.log(/[^.]+/.exec(url)[0].substr(7)); // напечатает 'xxx' <p>Начиная с Gecko 34 {{geckoRelease(34)}}, в случае захвата группы с квантификаторами, предотвращающими появление группы в результате сопоставления, сопоставившийся текст для захваченной группы теперь имеет значение <code>undefined</code> вместо пустой строки:</p> -<pre class="brush: js notranslate">// Firefox 33 или более ранние +<pre class="brush: js">// Firefox 33 или более ранние 'x'.replace(/x(.)?/g, function(m, group) { console.log("'group:" + group + "'"); }); // 'group:' diff --git a/files/ru/web/javascript/reference/global_objects/regexp/lastmatch/index.html b/files/ru/web/javascript/reference/global_objects/regexp/lastmatch/index.html index 89551d517b..fd3232f351 100644 --- a/files/ru/web/javascript/reference/global_objects/regexp/lastmatch/index.html +++ b/files/ru/web/javascript/reference/global_objects/regexp/lastmatch/index.html @@ -9,7 +9,7 @@ translation_of: Web/JavaScript/Reference/Global_Objects/RegExp/lastMatch <h2 id="Синтаксис">Синтаксис</h2> -<pre class="syntaxbox notranslate"><var>RegExp</var>.lastMatch +<pre class="syntaxbox"><var>RegExp</var>.lastMatch RegExp['$&'] </pre> @@ -25,7 +25,7 @@ RegExp['$&'] <h3 id="Использование_lastMatch_и">Использование <code>lastMatch</code> и <code>$&</code></h3> -<pre class="brush: js notranslate">var re = /hi/g; +<pre class="brush: js">var re = /hi/g; re.test('hi there!'); RegExp.lastMatch; // "hi" RegExp['$&']; // "hi" diff --git a/files/ru/web/javascript/reference/global_objects/set/set/index.html b/files/ru/web/javascript/reference/global_objects/set/set/index.html index 8febad1cee..2720aafa80 100644 --- a/files/ru/web/javascript/reference/global_objects/set/set/index.html +++ b/files/ru/web/javascript/reference/global_objects/set/set/index.html @@ -11,7 +11,7 @@ translation_of: Web/JavaScript/Reference/Global_Objects/Set/Set <h2 id="Синтаксис">Синтаксис</h2> -<pre class="syntaxbox notranslate">new Set([<var>iterable</var>])</pre> +<pre class="syntaxbox">new Set([<var>iterable</var>])</pre> <h3 id="Параметры">Параметры</h3> @@ -32,7 +32,7 @@ translation_of: Web/JavaScript/Reference/Global_Objects/Set/Set <h3 id="Использование_объекта_Set">Использование объекта Set</h3> -<pre class="brush: js notranslate">let mySet = new Set() +<pre class="brush: js">let mySet = new Set() mySet.add(1) // Set [ 1 ] mySet.add(5) // Set [ 1, 5 ] diff --git a/files/ru/web/javascript/reference/global_objects/string/@@iterator/index.html b/files/ru/web/javascript/reference/global_objects/string/@@iterator/index.html index 9b26c886e7..203c8a97f0 100644 --- a/files/ru/web/javascript/reference/global_objects/string/@@iterator/index.html +++ b/files/ru/web/javascript/reference/global_objects/string/@@iterator/index.html @@ -22,13 +22,13 @@ translation_of: Web/JavaScript/Reference/Global_Objects/String/@@iterator <h2 id="Syntax">Синтаксис</h2> -<pre class="syntaxbox notranslate"><code><var>string</var>[Symbol.iterator]</code></pre> +<pre class="syntaxbox"><code><var>string</var>[Symbol.iterator]</code></pre> <h2 id="Examples">Примеры</h2> <h3 id="Example_Using_.5B.40.40iterator.5D">Пример: использование метода <code>[@@iterator]()</code></h3> -<pre class="brush:js notranslate">var string = 'A\uD835\uDC68'; +<pre class="brush:js">var string = 'A\uD835\uDC68'; var strIter = string[Symbol.iterator](); @@ -38,7 +38,7 @@ console.log(strIter.next().value); // "\uD835\uDC68" <h3 id="Example_Using_.5B.40.40iterator.5D_with_for..of">Пример: использование метода <code>[@@iterator]()</code> вместе с циклом <code>for..of</code></h3> -<pre class="brush:js notranslate">var string = 'A\uD835\uDC68B\uD835\uDC69C\uD835\uDC6A'; +<pre class="brush:js">var string = 'A\uD835\uDC68B\uD835\uDC69C\uD835\uDC6A'; for (var v of string) { console.log(v); diff --git a/files/ru/web/javascript/reference/global_objects/string/endswith/index.html b/files/ru/web/javascript/reference/global_objects/string/endswith/index.html index 1fa53bd180..fe4795f959 100644 --- a/files/ru/web/javascript/reference/global_objects/string/endswith/index.html +++ b/files/ru/web/javascript/reference/global_objects/string/endswith/index.html @@ -17,7 +17,7 @@ translation_of: Web/JavaScript/Reference/Global_Objects/String/endsWith <h2 id="Syntax">Синтаксис</h2> -<pre class="syntaxbox notranslate"><code><var>str</var>.endsWith(<var>searchString</var>[, <var>length</var>])</code></pre> +<pre class="syntaxbox"><code><var>str</var>.endsWith(<var>searchString</var>[, <var>length</var>])</code></pre> <h3 id="Parameters">Параметры</h3> @@ -40,7 +40,7 @@ translation_of: Web/JavaScript/Reference/Global_Objects/String/endsWith <h3 id="Example_Using_endsWith">Пример: использование метода <code>endsWith()</code></h3> -<pre class="brush: js notranslate">var str = 'Быть или не быть, вот в чём вопрос.'; +<pre class="brush: js">var str = 'Быть или не быть, вот в чём вопрос.'; console.log(str.endsWith('вопрос.')); // true console.log(str.endsWith('быть')); // false @@ -51,7 +51,7 @@ console.log(str.endsWith('быть', 16)); // true <p>Этот метод был добавлен к спецификации ECMAScript 6 и может быть доступен ещё не во всех реализациях JavaScript. Однако, вы можете легко эмулировать этот метод при помощи следующего кода:</p> -<pre class="brush: js notranslate">if (!String.prototype.endsWith) { +<pre class="brush: js">if (!String.prototype.endsWith) { Object.defineProperty(String.prototype, 'endsWith', { value: function(searchString, position) { var subjectString = this.toString(); diff --git a/files/ru/web/javascript/reference/global_objects/string/index.html b/files/ru/web/javascript/reference/global_objects/string/index.html index 5db7b5e416..80c7293c4d 100644 --- a/files/ru/web/javascript/reference/global_objects/string/index.html +++ b/files/ru/web/javascript/reference/global_objects/string/index.html @@ -16,7 +16,7 @@ translation_of: Web/JavaScript/Reference/Global_Objects/String <p>Строковые литералы могут быть следующих форм:</p> -<pre class="syntaxbox notranslate"><code>'строка текста' +<pre class="syntaxbox"><code>'строка текста' "строка текста" "中文 español English हिन्दी العربية português বাংলা русский 日本語 ਪੰਜਾਬੀ 한국어 தமிழ்" </code></pre> @@ -84,7 +84,7 @@ translation_of: Web/JavaScript/Reference/Global_Objects/String <p>Либо можно использовать глобальный объект <code>String</code> напрямую:</p> -<pre class="syntaxbox notranslate"><code>String(thing) +<pre class="syntaxbox"><code>String(thing) new String(thing) </code></pre> @@ -103,12 +103,12 @@ new String(thing) <p>Существует два способа добраться до конкретного символа в строке. В первом способе используется метод {{jsxref("String.prototype.charAt()", "charAt()")}}:</p> -<pre class="brush: js notranslate">return 'кот'.charAt(1); // вернёт "о" +<pre class="brush: js">return 'кот'.charAt(1); // вернёт "о" </pre> <p>Другим способом (введённым в ECMAScript 5) является рассмотрение строки как массивоподобного объекта, в котором символы имеют соответствующие числовые индексы:</p> -<pre class="brush: js notranslate">return 'кот'[1]; // вернёт "о" +<pre class="brush: js">return 'кот'[1]; // вернёт "о" </pre> <p>При доступе к символам посредством нотации с квадратными скобками, попытка удалить символ, или присвоить значение числовому свойству закончится неудачей, поскольку эти свойства являются незаписываемыми и ненастраиваемыми. Смотрите документацию по методу {{jsxref("Object.defineProperty()")}} для дополнительной информации.</p> @@ -117,7 +117,7 @@ new String(thing) <p>Разработчики на C имеют для сравнения строк функцию <code>strcmp()</code>. В JavaScript вы просто используете <a href="https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Operators/%D0%9E%D0%BF%D0%B5%D1%80%D0%B0%D1%82%D0%BE%D1%80%D1%8B_%D1%81%D1%80%D0%B0%D0%B2%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F">операторы меньше и больше</a>:</p> -<pre class="brush: js notranslate">var a = 'a'; +<pre class="brush: js">var a = 'a'; var b = 'b'; if (a < b) { // true print(a + ' меньше чем ' + b); @@ -136,7 +136,7 @@ if (a < b) { // true <p>Строковые литералы (обозначаемые двойными или одинарными кавычками) и строки, возвращённые вызовом <code>String</code> в неконструкторном контексте (то есть, без использования ключевого слова {{jsxref("Operators/new", "new")}}) являются строковыми примитивами. JavaScript автоматически преобразует примитивы в объекты <code>String</code>, так что на строковых примитивах возможно использовать методы объекта <code>String</code>. В контекстах, когда на примитивной строке вызывается метод или происходит поиск свойства, JavaScript автоматически оборачивает строковый примитив объектом и вызывает на нём метод или ищет в нём свойство.</p> -<pre class="brush: js notranslate">var s_prim = 'foo'; +<pre class="brush: js">var s_prim = 'foo'; var s_obj = new String(s_prim); console.log(typeof s_prim); // выведет 'string' @@ -145,7 +145,7 @@ console.log(typeof s_obj); // выведет 'object' <p>Строковые примитивы и объекты <code>String</code> также дают разные результаты при использовании глобальной функции {{jsxref("Global_Objects/eval", "eval()")}}. Примитивы, передаваемые в <code>eval()</code>, трактуются как исходный код; объекты же <code>String</code> трактуются так же, как и все остальные объекты, а именно: возвращается сам объект. Например:</p> -<pre class="brush: js notranslate">var s1 = '2 + 2'; // создаёт строковый примитив +<pre class="brush: js">var s1 = '2 + 2'; // создаёт строковый примитив var s2 = new String('2 + 2'); // создаёт объект String console.log(eval(s1)); // выведет число 4 console.log(eval(s2)); // выведет строку '2 + 2' @@ -155,7 +155,7 @@ console.log(eval(s2)); // выведет строку '2 + 2' <p>Объект <code>String</code> также всегда может быть преобразован в его примитивный аналог при помощи метода {{jsxref("String.prototype.valueOf()", "valueOf()")}}.</p> -<pre class="brush: js notranslate">console.log(eval(s2.valueOf())); // выведет число 4 +<pre class="brush: js">console.log(eval(s2.valueOf())); // выведет число 4 </pre> <div class="note"><strong>Примечание:</strong> для того, чтобы узнать больше о другом возможном подходе к строкам в JavaScript, прочитайте статью о <a href="/ru/Add-ons/Code_snippets/StringView"><code>StringView</code> — C-подобном представлении строк на основе типизированных массивов</a>.</div> @@ -186,7 +186,7 @@ console.log(eval(s2)); // выведет строку '2 + 2' <p>Методы экземпляров <code>String</code> также доступны в Firefox как часть JavaScript 1.6 (который не является частью стандарта ECMAScript) на объекте <code>String</code>, что позволяет применять эти методы к любому объекту:</p> -<pre class="brush: js notranslate">var num = 15; +<pre class="brush: js">var num = 15; console.log(String.replace(num, /5/, '2')); </pre> @@ -194,7 +194,7 @@ console.log(String.replace(num, /5/, '2')); <p>Следующая прослойка позволяет использовать их во всех браузерах:</p> -<pre class="brush: js notranslate">/*globals define*/ +<pre class="brush: js">/*globals define*/ // Предполагаем, что все требуемые методы экземпляров String уже присутствуют // (для них так же можно использовать полифилы, если их нет) (function() { @@ -249,7 +249,7 @@ console.log(String.replace(num, /5/, '2')); <p>Объект <code>String</code> можно использовать как «безопасную» альтернативу методу {{jsxref("String.prototype.toString()", "toString()")}}, так как хотя он обычно и вызывает соответствующий метод <code>toString()</code>, он также работает и для значений {{jsxref("Global_Objects/null", "null")}} и {{jsxref("Global_Objects/undefined", "undefined")}}. Например:</p> -<pre class="brush: js notranslate">var outputStrings = []; +<pre class="brush: js">var outputStrings = []; for (var i = 0, n = inputValues.length; i < n; ++i) { outputStrings.push(String(inputValues[i])); } diff --git a/files/ru/web/javascript/reference/global_objects/string/matchall/index.html b/files/ru/web/javascript/reference/global_objects/string/matchall/index.html index 1ffad309c2..f314d2f18c 100644 --- a/files/ru/web/javascript/reference/global_objects/string/matchall/index.html +++ b/files/ru/web/javascript/reference/global_objects/string/matchall/index.html @@ -20,7 +20,7 @@ translation_of: Web/JavaScript/Reference/Global_Objects/String/matchAll <h2 id="Синтаксис">Синтаксис</h2> -<pre class="syntaxbox notranslate"><var>str</var>.matchAll(<var>regexp</var>)</pre> +<pre class="syntaxbox"><var>str</var>.matchAll(<var>regexp</var>)</pre> <h3 id="Параметры">Параметры</h3> @@ -39,7 +39,7 @@ translation_of: Web/JavaScript/Reference/Global_Objects/String/matchAll <p>До добавления метода <code>matchAll</code> в JavaScript, можно было использовать метод <a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/exec">regexp.exec</a> (и регулярные выражения с флагом <code>/g</code> ) в цикле для получения доступа к совпадениям:</p> -<pre class="brush: js notranslate">const regexp = RegExp('foo*','g'); +<pre class="brush: js">const regexp = RegExp('foo*','g'); const str = 'table football, foosball'; while ((matches = regexp.exec(str)) !== null) { @@ -52,7 +52,7 @@ while ((matches = regexp.exec(str)) !== null) { <p>С появлением <code>matchAll</code>, нет необходимости использовать цикл <code><a href="/en-US/docs/Web/JavaScript/Reference/Statements/while">while</a></code> и метод <code>exec</code> с флагом <code>/g</code>.<br> Используя вместо этого метод <code>matchAll</code>, вы получаете итератор, который вы можете использовать более удобно с конструкциями <code><a href="/en-US/docs/Web/JavaScript/Reference/Statements/for...of">for...of</a></code>, <a href="/en-US/docs/Web/JavaScript/Reference/Operators/Spread_syntax">array spread</a>, или {{jsxref("Array.from()")}} :</p> -<pre class="brush: js notranslate">const regexp = RegExp('foo*','g'); +<pre class="brush: js">const regexp = RegExp('foo*','g'); const str = 'table football, foosball'; let matches = str.matchAll(regexp); @@ -74,7 +74,7 @@ Array.from(matches, m => m[0]); <p>Ещё одна веская причина использовать <code>matchAll</code> это улучшенный доступ к группам захвата. Группы захвата игнорируются при использовании <code><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/match">match()</a></code> с глобальным флагом <code>/g</code>:</p> -<pre class="brush: js notranslate">var regexp = /t(e)(st(\d?))/g; +<pre class="brush: js">var regexp = /t(e)(st(\d?))/g; var str = 'test1test2'; str.match(regexp); @@ -82,7 +82,7 @@ str.match(regexp); <p>С <code>matchAll</code> у вас появляется к ним доступ:</p> -<pre class="brush: js notranslate">let array = [...str.matchAll(regexp)]; +<pre class="brush: js">let array = [...str.matchAll(regexp)]; array[0]; // ['test1', 'e', 'st1', '1', index: 0, input: 'test1test2', length: 4] diff --git a/files/ru/web/javascript/reference/global_objects/string/replaceall/index.html b/files/ru/web/javascript/reference/global_objects/string/replaceall/index.html index 318e9a30c3..3c4ce6551f 100644 --- a/files/ru/web/javascript/reference/global_objects/string/replaceall/index.html +++ b/files/ru/web/javascript/reference/global_objects/string/replaceall/index.html @@ -15,7 +15,7 @@ translation_of: Web/JavaScript/Reference/Global_Objects/String/replaceAll <h2 id="Syntax">Syntax</h2> -<pre class="syntaxbox notranslate">const newStr = <var>str</var>.replaceAll(<var>regexp</var>|<var>substr</var>, <var>newSubstr</var>|<var>function</var>) +<pre class="syntaxbox">const newStr = <var>str</var>.replaceAll(<var>regexp</var>|<var>substr</var>, <var>newSubstr</var>|<var>function</var>) </pre> <div class="blockIndicator note"> @@ -119,20 +119,20 @@ translation_of: Web/JavaScript/Reference/Global_Objects/String/replaceAll <h3 id="Using_replaceAll">Using replaceAll</h3> -<pre class="brush: js notranslate">'aabbcc'.replaceAll('b', '.'); +<pre class="brush: js">'aabbcc'.replaceAll('b', '.'); // 'aa..cc'</pre> <h3 id="Non-global_regex_throws">Non-global regex throws</h3> <p>Поиск с регулярными выражениями должен быть с ("g"). Это не работает:</p> -<pre class="brush: js; example-bad notranslate">'aabbcc'.replaceAll(/b/, '.'); +<pre class="brush: js; example-bad">'aabbcc'.replaceAll(/b/, '.'); TypeError: replaceAll must be called with a global RegExp </pre> <p>Это работает:</p> -<pre class="brush: js; example-good notranslate">'aabbcc'.replaceAll(/b/g, '.'); +<pre class="brush: js; example-good">'aabbcc'.replaceAll(/b/g, '.'); "aa..cc" </pre> diff --git a/files/ru/web/javascript/reference/global_objects/string/slice/index.html b/files/ru/web/javascript/reference/global_objects/string/slice/index.html index 1750d01614..07a1f6b523 100644 --- a/files/ru/web/javascript/reference/global_objects/string/slice/index.html +++ b/files/ru/web/javascript/reference/global_objects/string/slice/index.html @@ -19,7 +19,7 @@ translation_of: Web/JavaScript/Reference/Global_Objects/String/slice <h2 id="Syntax">Синтаксис</h2> -<pre class="syntaxbox notranslate"><code><var>str</var>.slice(<var>beginIndex</var>[, <var>endIndex</var>])</code></pre> +<pre class="syntaxbox"><code><var>str</var>.slice(<var>beginIndex</var>[, <var>endIndex</var>])</code></pre> <h3 id="Parameters">Параметры</h3> @@ -51,7 +51,7 @@ translation_of: Web/JavaScript/Reference/Global_Objects/String/slice <p>В следующем примере метод <code>slice()</code> используется для создания новой строки.</p> -<pre class="brush: js notranslate">let str1 = 'Приближается утро.'; +<pre class="brush: js">let str1 = 'Приближается утро.'; let str2 = str1.slice(1, 8); let str3 = str1.slice(4, -2); let str4 = str1.slice(12); @@ -67,7 +67,7 @@ console.log(str5); // ВЫВОД: "" <p>В следующем примере метод <code>slice()</code> используется вместе с отрицательными индексами.</p> -<pre class="brush: js notranslate">let str = 'Приближается утро.'; +<pre class="brush: js">let str = 'Приближается утро.'; str.slice(-3); // вернёт 'ро.' str.slice(-3, -1); // вернёт 'ро' str.slice(0, -1); // вернёт 'Приближается утро' @@ -75,15 +75,15 @@ str.slice(0, -1); // вернёт 'Приближается утро' <p>В этом примере начальным индексом считается <code>11</code>-й символ с конца строки, а конечным - <code>16</code>-й с начала.</p> -<pre class="brush: js notranslate">str.slice(-11, 16); // вернёт 'ается утр'</pre> +<pre class="brush: js">str.slice(-11, 16); // вернёт 'ается утр'</pre> <p>Здесь начальным индексом считается <code>6</code>-й символ от начала строки, а конечным - <font face="consolas, Liberation Mono, courier, monospace"><span style="background-color: rgba(220, 220, 220, 0.5);">7</span></font>-й с конца.</p> -<pre class="brush: js notranslate">str.slice(6, -7); // вернёт 'жаетс'</pre> +<pre class="brush: js">str.slice(6, -7); // вернёт 'жаетс'</pre> <p>В этом примере оба индекса считаются с конца строки: <font face="consolas, Liberation Mono, courier, monospace"><span style="background-color: rgba(220, 220, 220, 0.5);">5</span></font>-й для начального индекса, <code>1</code>-й для конечного.</p> -<pre class="brush: js notranslate">str.slice(-5, -1); // вернёт 'утро'</pre> +<pre class="brush: js">str.slice(-5, -1); // вернёт 'утро'</pre> <h2 id="Specifications">Спецификации</h2> diff --git a/files/ru/web/javascript/reference/global_objects/string/split/index.html b/files/ru/web/javascript/reference/global_objects/string/split/index.html index 984fe07e85..32eae7b9c0 100644 --- a/files/ru/web/javascript/reference/global_objects/string/split/index.html +++ b/files/ru/web/javascript/reference/global_objects/string/split/index.html @@ -19,7 +19,7 @@ translation_of: Web/JavaScript/Reference/Global_Objects/String/split <h2 id="Syntax">Синтаксис</h2> -<pre class="syntaxbox notranslate"><code><var>str</var>.split([<var>separator</var>[, <var>limit</var>]])</code></pre> +<pre class="syntaxbox"><code><var>str</var>.split([<var>separator</var>[, <var>limit</var>]])</code></pre> <h3 id="Parameters">Параметры</h3> @@ -46,7 +46,7 @@ translation_of: Web/JavaScript/Reference/Global_Objects/String/split <p>В следующем примере определяется функция, которая разбивает строку на массив строк, используя указанный разделитель. После разбиения строки, функция отображает сообщения, показывающие оригинальную строку (до разбиения), используемый разделитель, количество элементов в массиве и сами эти элементы.</p> -<pre class="brush: js notranslate">function splitString(stringToSplit, separator) { +<pre class="brush: js">function splitString(stringToSplit, separator) { var arrayOfStrings = stringToSplit.split(separator); console.log('Оригинальная строка: "' + stringToSplit + '"'); @@ -68,7 +68,7 @@ splitString(monthString, comma); <p>Пример сгенерирует следующий вывод:</p> -<pre class="notranslate">Оригинальная строка: "И как хорош тот новый мир, где есть такие люди!" +<pre>Оригинальная строка: "И как хорош тот новый мир, где есть такие люди!" Разделитель: " " Массив содержит 10 элементов: И / как / хорош / тот / новый / мир, / где / есть / такие / люди! @@ -85,7 +85,7 @@ splitString(monthString, comma); <p>В следующем примере метод <code>split()</code> ищет 0 или более пробелов, за которыми следует точка с запятой, за которой снова следуют 0 или более пробелов, и, если этот шаблон найден, удаляет пробелы из строки. Переменная <code>nameList</code> является массивом, возвращённым в результате работы метода <code>split()</code>.</p> -<pre class="brush: js notranslate">var names = 'Гарри Трамп ;Фрэд Барни; Хелен Ригби ; Билл Абель ;Крис Ханд '; +<pre class="brush: js">var names = 'Гарри Трамп ;Фрэд Барни; Хелен Ригби ; Билл Абель ;Крис Ханд '; console.log(names); @@ -97,7 +97,7 @@ console.log(nameList); <p>Пример напечатает две строки; на первой строке напечатана оригинальная строчка, а на второй — получившийся массив.</p> -<pre class="notranslate">Гарри Трамп ;Фред Барни; Хелен Ригби ; Билл Абель ;Крис Ханд +<pre>Гарри Трамп ;Фред Барни; Хелен Ригби ; Билл Абель ;Крис Ханд Гарри Трамп,Фред Барни,Хелен Ригби,Билл Абель,Крис Ханд </pre> @@ -105,7 +105,7 @@ console.log(nameList); <p>В следующем примере метод <code>split()</code> ищет 0 или более пробелов в строке и возвращает первые три найденных подстроки.</p> -<pre class="brush: js notranslate">var myString = 'Привет, мир. Как дела?'; +<pre class="brush: js">var myString = 'Привет, мир. Как дела?'; var splits = myString.split(' ', 3); console.log(splits); @@ -113,14 +113,14 @@ console.log(splits); <p>Вывод скрипта будет следующим:</p> -<pre class="brush: js notranslate">Привет,,мир.,Как +<pre class="brush: js">Привет,,мир.,Как </pre> <h3 id="Example_Capturing_parentheses">Пример: захват подгрупп</h3> <p>Если параметр <code>separator</code> содержит подгруппы, сопоставившиеся результаты также будут присутствовать в возвращённом массиве.</p> -<pre class="brush: js notranslate">var myString = 'Привет 1 мир. Предложение номер 2.'; +<pre class="brush: js">var myString = 'Привет 1 мир. Предложение номер 2.'; var splits = myString.split(/(\d)/); console.log(splits); @@ -128,12 +128,12 @@ console.log(splits); <p>Вывод скрипта будет следующим:</p> -<pre class="brush: js notranslate">Привет ,1, мир. Предложение номер ,2,. +<pre class="brush: js">Привет ,1, мир. Предложение номер ,2,. </pre> <h3 id="Example_Reversing_a_String_using_split">Пример: обращение строки при помощи метода <code>split()</code></h3> -<pre class="brush: js notranslate">var str = 'фывапролд'; +<pre class="brush: js">var str = 'фывапролд'; var strReverse = str.split('').reverse().join(''); // 'длорпавыф' // split() возвращает массив, к которому применяются методы reverse() и join() </pre> diff --git a/files/ru/web/javascript/reference/global_objects/string/startswith/index.html b/files/ru/web/javascript/reference/global_objects/string/startswith/index.html index 25084d3d35..9601687858 100644 --- a/files/ru/web/javascript/reference/global_objects/string/startswith/index.html +++ b/files/ru/web/javascript/reference/global_objects/string/startswith/index.html @@ -18,7 +18,7 @@ translation_of: Web/JavaScript/Reference/Global_Objects/String/startsWith <h2 id="Syntax">Синтаксис</h2> -<pre class="syntaxbox notranslate"><code><var>str</var>.startsWith(<var>searchString</var>[, <var>position</var>])</code></pre> +<pre class="syntaxbox"><code><var>str</var>.startsWith(<var>searchString</var>[, <var>position</var>])</code></pre> <h3 id="Parameters">Параметры</h3> @@ -37,7 +37,7 @@ translation_of: Web/JavaScript/Reference/Global_Objects/String/startsWith <h3 id="Example_Using_startsWith">Пример: использование метода <code>startsWith()</code></h3> -<pre class="brush: js notranslate">var str = 'Быть или не быть, вот в чём вопрос.'; +<pre class="brush: js">var str = 'Быть или не быть, вот в чём вопрос.'; console.log(str.startsWith('Быть')); // true console.log(str.startsWith('не быть')); // false @@ -48,7 +48,7 @@ console.log(str.startsWith('не быть', 9)); // true <p>Этот метод был добавлен к спецификации ECMAScript 6 и может быть доступен ещё не во всех реализациях JavaScript. Однако, вы можете легко эмулировать этот метод при помощи следующего кода:</p> -<pre class="brush: js notranslate">if (!String.prototype.startsWith) { +<pre class="brush: js">if (!String.prototype.startsWith) { Object.defineProperty(String.prototype, 'startsWith', { enumerable: false, configurable: false, diff --git a/files/ru/web/javascript/reference/global_objects/weakmap/index.html b/files/ru/web/javascript/reference/global_objects/weakmap/index.html index 9b1f77b853..2ce67df673 100644 --- a/files/ru/web/javascript/reference/global_objects/weakmap/index.html +++ b/files/ru/web/javascript/reference/global_objects/weakmap/index.html @@ -11,7 +11,7 @@ translation_of: Web/JavaScript/Reference/Global_Objects/WeakMap <h2 id="Syntax">Синтаксис</h2> -<pre class="syntaxbox notranslate"><code>new WeakMap([iterable]) +<pre class="syntaxbox"><code>new WeakMap([iterable]) </code></pre> <h3 id="Parameters">Параметры</h3> @@ -60,7 +60,7 @@ translation_of: Web/JavaScript/Reference/Global_Objects/WeakMap <h3 id="Использование_объекта_WeakMap">Использование объекта <code>WeakMap</code></h3> -<pre class="brush: js notranslate">const wm1 = new WeakMap(), +<pre class="brush: js">const wm1 = new WeakMap(), wm2 = new WeakMap(), wm3 = new WeakMap(); const o1 = {}, @@ -92,7 +92,7 @@ wm1.has(o1); // false <h3 id="Пример_Реализация_класса_WeakMap-like_классов_с_методом_.clear">Пример: Реализация класса WeakMap-like классов с методом .clear()</h3> -<pre class="brush: js notranslate">class ClearableWeakMap { +<pre class="brush: js">class ClearableWeakMap { constructor(init) { this._wm = new WeakMap(init) } diff --git a/files/ru/web/javascript/reference/lexical_grammar/index.html b/files/ru/web/javascript/reference/lexical_grammar/index.html index 64a70d311e..f70c017e14 100644 --- a/files/ru/web/javascript/reference/lexical_grammar/index.html +++ b/files/ru/web/javascript/reference/lexical_grammar/index.html @@ -166,7 +166,7 @@ ECMAScript также определяет ключевые слова и лит <p>Первый способ <code>//</code> комментарий; в этом случае весь текст в строке после двойного слеша будет комментарием, например:</p> -<pre class="brush: js notranslate">function comment() { +<pre class="brush: js">function comment() { // Это комментарий в строке console.log("Hello world!"); } @@ -177,7 +177,7 @@ comment(); <p>Например, вы можете использовать его в одной строке:</p> -<pre class="brush: js notranslate">function comment() { +<pre class="brush: js">function comment() { /* Это однострочный комментарий */ console.log("Hello world!"); } @@ -185,7 +185,7 @@ comment();</pre> <p>Либо вы можете сделать многострочный комментарий, как показано здесь:</p> -<pre class="brush: js notranslate">function comment() { +<pre class="brush: js">function comment() { /* Этот комментарий располагается на нескольких линиях. Обратите внимание, что вам не нужно обрывать комментарий, пока вы его не закончите*/ console.log("Hello world!"); @@ -194,14 +194,14 @@ comment(); </pre> <p>Также, если пожелаете, то вы можете использовать такое комментирование посреди строки кода. Хотя это может ухудшить читабельность кода:</p> -<pre class="brush: js notranslate">function comment(x) { +<pre class="brush: js">function comment(x) { console.log("Hello " + x /* вставьте значение x */ + " !"); } comment("world");</pre> <p>Чтобы отключить выполнение кода, просто оберните код в комментарий, как здесь:</p> -<pre class="brush: js notranslate">function comment() { +<pre class="brush: js">function comment() { /* console.log("Hello world!"); */ } comment();</pre> @@ -216,7 +216,7 @@ comment();</pre> <p>Шебанг комментарий определяет путь к JavaScript интерпретатору, скрипт которого вы хотите выполнить. Пример, как это работает:</p> -<pre class="brush: js notranslate">#!/usr/bin/env node +<pre class="brush: js">#!/usr/bin/env node console.log("Hello world"); </pre> @@ -329,14 +329,14 @@ console.log("Hello world"); <p>Зарезервированные слова действительно применяются только к идентификаторам<strong> (vs. IdentifierNames)</strong>. Как описано в <a href="http://es5.github.com/#A.1">es5.github.com/#A.1</a>, это все имена IdentifierNames, которые не исключают зарезервированных слов.</p> -<pre class="brush: js notranslate">a.import +<pre class="brush: js">a.import a["import"] a = { import: "test" }. </pre> <p>С другой стороны, следующее выражение неправильно, т.к. Идентификатор <code>IdentifierName</code> не содержит зарезервированных слов. Идентификаторы используются для <code>FunctionDeclaration, FunctionExpression, VariableDeclaration</code> и т.п., в то время, как <code>IdentifierNames</code> используются для <code> MemberExpression, CallExpression</code> и т.п.</p> -<pre class="brush: js notranslate">function import() {} // неправильно.</pre> +<pre class="brush: js">function import() {} // неправильно.</pre> <h2 id="Литералы">Литералы</h2> @@ -344,20 +344,20 @@ a = { import: "test" }. <p>Подробнее о <code>{{jsxref('Global_Objects/null','null')}}null</code>.</p> -<pre class="brush: js notranslate">null</pre> +<pre class="brush: js">null</pre> <h3 id="Литерал_Boolean">Литерал Boolean</h3> <p>Подробнее о <code>{{jsxref('Global_Objects/Boolean','Boolean')}}</code>.</p> -<pre class="brush: js notranslate">true +<pre class="brush: js">true false</pre> <h3 id="Литералы_чисел">Литералы чисел</h3> <h4 id="Decimal_десятичные_числа">Decimal (десятичные числа)</h4> -<pre class="brush: js notranslate">1234567890 +<pre class="brush: js">1234567890 42 // Будьте осторожны с использованием нуля вначале числа: @@ -372,7 +372,7 @@ false</pre> <p>Синтаксис двоичных чисел состоит из цифры ноль, за которой следует маленькая или большая латинская буква "B" (0b или 0B). Этот синтаксис новый и появился только в ECMAScript 2015, пожалуйста посмотрите таблицу совместимости с браузерами. Это может производить ошибку <code>{{jsxref('Global_Objects/SyntaxError','SyntaxError')}}</code>: "Missing binary digits after 0b", Если цифры не 0 или 1.</p> -<pre class="brush: js notranslate">var FLT_SIGNBIT = 0b10000000000000000000000000000000; // 2147483648 +<pre class="brush: js">var FLT_SIGNBIT = 0b10000000000000000000000000000000; // 2147483648 var FLT_EXPONENT = 0b01111111100000000000000000000000; // 2139095040 var FLT_MANTISSA = 0B00000000011111111111111111111111; // 8388607</pre> @@ -380,7 +380,7 @@ var FLT_MANTISSA = 0B00000000011111111111111111111111; // 8388607</pre> <p>Восьмеричный числовой синтаксис, который использует 0 с последующей, в нижнем или верхнем регистре, латинскую букву "О" (<code>0o</code> или <code>0O)</code>. Этот синтаксис появился в ECMAScript 2015, пожалуйста, посмотрите таблицу совместимости с браузерами. Это может производить ошибку <code>SyntaxError</code>: "Missing octal digits after 0o", если цифры не между 0 и 7.</p> -<pre class="brush: js notranslate">var n = 0O755; // 493 +<pre class="brush: js">var n = 0O755; // 493 var m = 0o644; // 420 // Так же возможно с лидирующими нулями (см. заметку о десятичных дробях выше) @@ -392,7 +392,7 @@ var m = 0o644; // 420 <p>Шестнадцатеричный числовой синтаксис, который использует 0 с последующей, в нижнем или верхнем регистре, латинскую букву "X" (<code>0x</code> или <code>0X)</code>. Если числа после 0x вне диапазона (0123456789ABCDEF), то может последовать за этим {{jsxref("SyntaxError")}}: "Identifier starts immediately after numeric literal".</p> -<pre class="brush: js notranslate">0xFFFFFFFFFFFFFFFFF // 295147905179352830000 +<pre class="brush: js">0xFFFFFFFFFFFFFFFFF // 295147905179352830000 0x123456789ABCDEF // 81985529216486900 0XA // 10 </pre> @@ -401,7 +401,7 @@ var m = 0o644; // 420 <p>Смотрите также {{jsxref("Object")}} и {{jsxref('Operators/Object_initializer','Object initializer')}} для получения более подробной информации.</p> -<pre class="brush: js notranslate">var o = { a: "foo", b: "bar", c: 42 }; +<pre class="brush: js">var o = { a: "foo", b: "bar", c: 42 }; // сокращённая нотация. Появилась в ES2015 var a = "foo", b = "bar", c = 42; @@ -414,23 +414,23 @@ var o = { a: a, b: b, c: c }; <p>Смотрите также {{jsxref("Array")}} для получения более подробной информации.</p> -<pre class="brush: js notranslate">[1954, 1974, 1990, 2014]</pre> +<pre class="brush: js">[1954, 1974, 1990, 2014]</pre> <h3 id="Литерал_String_Строка">Литерал String (Строка)</h3> -<pre class="brush: js notranslate">'foo' +<pre class="brush: js">'foo' "bar"</pre> <h4 id="Экранирование_шестнадцатеричной_последовательности">Экранирование шестнадцатеричной последовательности</h4> -<pre class="brush: js notranslate">'\xA9' // "©" +<pre class="brush: js">'\xA9' // "©" </pre> <h4 id="Экранирование_Юникод_символов">Экранирование Юникод символов</h4> <p>Для экранирования Юникод символов обязательно нужно указать по крайней мере 4 символа после \u.</p> -<pre class="brush: js notranslate">'\u00A9' // "©"</pre> +<pre class="brush: js">'\u00A9' // "©"</pre> <h4 id="Unicode_code_point_escapes">Unicode code point escapes</h4> @@ -438,7 +438,7 @@ var o = { a: a, b: b, c: c }; <p>See also {{jsxref("String.fromCodePoint()")}} or {{jsxref("String.prototype.codePointAt()")}}.</p> -<pre class="brush: js notranslate">'\u{2F804}' +<pre class="brush: js">'\u{2F804}' // the same with simple Unicode escapes '\uD87E\uDC04'</pre> @@ -447,7 +447,7 @@ var o = { a: a, b: b, c: c }; <p>Смотрите также <code>{{jsxref('Global_Objects/RegExp','RegExp')}}</code> для получения более подробной информации.</p> -<pre class="brush: js notranslate">/ab+c/g +<pre class="brush: js">/ab+c/g // An "empty" regular expression literal // The empty non-capturing group is necessary @@ -458,7 +458,7 @@ var o = { a: a, b: b, c: c }; <p>Смотрите также {{jsxref('template_strings','template strings')}} для получения более подробной информации.</p> -<pre class="brush: js notranslate">`string text` +<pre class="brush: js">`string text` `string text line 1 string text line 2` @@ -485,7 +485,7 @@ tag `string text ${expression} string text`</pre> <p>1. Точка с запятой ставится до, когда ограничитель строки или "}" is encountered that is not allowed by the grammar.</p> -<pre class="brush: js notranslate">{ 1 2 } 3 +<pre class="brush: js">{ 1 2 } 3 // согласно ASI, будет преобразовано в @@ -495,7 +495,7 @@ tag `string text ${expression} string text`</pre> <p>Here <code>++</code> is not treated as a {{jsxref('Operators/Arithmetic_Operators','postfix operator','Increment')}} applying to variable <code>b</code>, because a line terminator occurs between <code>b</code> and <code>++</code>.</p> -<pre class="brush: js notranslate">a = b +<pre class="brush: js">a = b ++c // согласно ASI, будет преобразовано в @@ -515,7 +515,7 @@ a = b; <li><code>module</code></li> </ul> -<pre class="brush: js notranslate">return +<pre class="brush: js">return a + b // согласно ASI, будет преобразовано в diff --git a/files/ru/web/javascript/reference/operators/addition/index.html b/files/ru/web/javascript/reference/operators/addition/index.html index 944ef3d8a7..c9b2961231 100644 --- a/files/ru/web/javascript/reference/operators/addition/index.html +++ b/files/ru/web/javascript/reference/operators/addition/index.html @@ -18,14 +18,14 @@ translation_of: Web/JavaScript/Reference/Operators/Addition <h2 id="Синтаксис">Синтаксис</h2> -<pre class="syntaxbox notranslate"><strong>Оператор:</strong> <var>x</var> + <var>y</var> +<pre class="syntaxbox"><strong>Оператор:</strong> <var>x</var> + <var>y</var> </pre> <h2 id="Примеры">Примеры</h2> <h3 id="Сложение_чисел">Сложение чисел</h3> -<pre class="brush: js notranslate">// Number + Number -> addition +<pre class="brush: js">// Number + Number -> addition 1 + 2 // 3 // Boolean + Number -> addition @@ -37,7 +37,7 @@ false + false // 0 <h3 id="Сложение_строк">Сложение строк</h3> -<pre class="brush: js notranslate">// String + String -> concatenation +<pre class="brush: js">// String + String -> concatenation 'foo' + 'bar' // "foobar" // Number + String -> concatenation diff --git a/files/ru/web/javascript/reference/operators/addition_assignment/index.html b/files/ru/web/javascript/reference/operators/addition_assignment/index.html index e7124ec00f..99c5b74dc5 100644 --- a/files/ru/web/javascript/reference/operators/addition_assignment/index.html +++ b/files/ru/web/javascript/reference/operators/addition_assignment/index.html @@ -18,14 +18,14 @@ translation_of: Web/JavaScript/Reference/Operators/Addition_assignment <h2 id="Синтаксис">Синтаксис</h2> -<pre class="syntaxbox notranslate"><strong>Оператор:</strong> x += y +<pre class="syntaxbox"><strong>Оператор:</strong> x += y <strong>Значение:</strong> x = x + y</pre> <h2 id="Примеры">Примеры</h2> <h3 id="Использование_сложения_с_присваиванием">Использование сложения с присваиванием</h3> -<pre class="brush: js notranslate">// Assuming the following variables +<pre class="brush: js">// Assuming the following variables // foo = 'foo' // bar = 5 // baz = true diff --git a/files/ru/web/javascript/reference/operators/assignment/index.html b/files/ru/web/javascript/reference/operators/assignment/index.html index 795c61c381..70aacd182a 100644 --- a/files/ru/web/javascript/reference/operators/assignment/index.html +++ b/files/ru/web/javascript/reference/operators/assignment/index.html @@ -26,14 +26,14 @@ original_slug: Web/JavaScript/Reference/Operators/Присваивание <h2 id="Синтаксис">Синтаксис</h2> -<pre class="syntaxbox notranslate"><strong>Оператор:</strong> x = y +<pre class="syntaxbox"><strong>Оператор:</strong> x = y </pre> <h2 id="Примеры">Примеры</h2> <h3 id="Простое_и_цепное_присваивание">Простое и цепное присваивание</h3> -<pre class="brush: js notranslate">// Предположим следующие переменные и их значения +<pre class="brush: js">// Предположим следующие переменные и их значения // x = 5 // y = 10 // z = 25 diff --git a/files/ru/web/javascript/reference/operators/bitwise_and/index.html b/files/ru/web/javascript/reference/operators/bitwise_and/index.html index bdb11d9d4b..745ad33be8 100644 --- a/files/ru/web/javascript/reference/operators/bitwise_and/index.html +++ b/files/ru/web/javascript/reference/operators/bitwise_and/index.html @@ -18,14 +18,14 @@ translation_of: Web/JavaScript/Reference/Operators/Bitwise_AND <h2 id="Синтаксис">Синтаксис</h2> -<pre class="syntaxbox notranslate"><code><var>a</var> & <var>b</var></code> +<pre class="syntaxbox"><code><var>a</var> & <var>b</var></code> </pre> <h2 id="Описание">Описание</h2> <p>Операнды преобразуются в 32-битные целые числа и выражаются серией битов (нулей and единиц). Числа с более чем 32 битами отбрасывают старшие разряды. Например, следующее целое число с более чем 32 битами будет преобразовано в 32-битное целое:</p> -<pre class="brush: js notranslate">До: 11100110111110100000000000000110000000000001 +<pre class="brush: js">До: 11100110111110100000000000000110000000000001 После: 10100000000000000110000000000001</pre> <p>Каждый бит в первом операнде связан с соответствующим битом во втором операнде:<em>первый бит - с первым</em>,<em>второй- со вторым</em>, и т.д.</p> @@ -66,7 +66,7 @@ translation_of: Web/JavaScript/Reference/Operators/Bitwise_AND </tbody> </table> -<pre class="brush: js notranslate">. 9 (base 10) = 00000000000000000000000000001001 (base 2) +<pre class="brush: js">. 9 (base 10) = 00000000000000000000000000001001 (base 2) 14 (base 10) = 00000000000000000000000000001110 (base 2) -------------------------------- 14 & 9 (base 10) = 00000000000000000000000000001000 (base 2) = 8 (base 10) @@ -78,7 +78,7 @@ translation_of: Web/JavaScript/Reference/Operators/Bitwise_AND <h3 id="Использование_побитового_И">Использование побитового И</h3> -<pre class="brush: js notranslate">// 5: 00000000000000000000000000000101 +<pre class="brush: js">// 5: 00000000000000000000000000000101 // 2: 00000000000000000000000000000010 5 & 2; // 0</pre> diff --git a/files/ru/web/javascript/reference/operators/class/index.html b/files/ru/web/javascript/reference/operators/class/index.html index c7efce0be6..4fa06e092f 100644 --- a/files/ru/web/javascript/reference/operators/class/index.html +++ b/files/ru/web/javascript/reference/operators/class/index.html @@ -11,7 +11,7 @@ translation_of: Web/JavaScript/Reference/Operators/class <h2 id="Синтаксис">Синтаксис</h2> -<pre class="syntaxbox notranslate">var MyClass = class <em>[className]</em> [extends] { +<pre class="syntaxbox">var MyClass = class <em>[className]</em> [extends] { // тело класса };</pre> @@ -21,7 +21,7 @@ translation_of: Web/JavaScript/Reference/Operators/class <p>Так же, как и при использовании class declaration, тело класса у class expression будет исполняться в {{jsxref("Strict_mode", "строгом режиме", "", 1)}}.</p> -<pre class="brush: js notranslate">'use strict'; +<pre class="brush: js">'use strict'; var Foo = class {}; // свойство конструктора опционально var Foo = class {}; // повторное объявление разрешено @@ -39,7 +39,7 @@ class Foo {}; // Throws TypeError, doesn't allow re-declaration <p>Простой анонимный class expression, на который можно сослаться с помощью переменной "Foo".</p> -<pre class="brush: js notranslate">var Foo = class { +<pre class="brush: js">var Foo = class { constructor() {} bar() { return "Hello World!"; @@ -55,7 +55,7 @@ Foo.name; // "Foo" <p>Если вы хотите сослаться на конкретный класс внутри тела класса, вы можете создать именованный class expression. Это имя будет доступно только внутри области видимости самого class expression.</p> -<pre class="brush: js notranslate">var Foo = class NamedFoo { +<pre class="brush: js">var Foo = class NamedFoo { constructor() {} whoIsThere() { return NamedFoo.name; diff --git a/files/ru/web/javascript/reference/operators/conditional_operator/index.html b/files/ru/web/javascript/reference/operators/conditional_operator/index.html index a95e4faac7..259cd5122e 100644 --- a/files/ru/web/javascript/reference/operators/conditional_operator/index.html +++ b/files/ru/web/javascript/reference/operators/conditional_operator/index.html @@ -13,7 +13,7 @@ original_slug: Web/JavaScript/Reference/Operators/Условный_операт <h2 id="Синтаксис">Синтаксис</h2> -<pre class="syntaxbox notranslate"><em>условие</em> ? <em>выражение1</em> : <em>выражение2 </em></pre> +<pre class="syntaxbox"><em>условие</em> ? <em>выражение1</em> : <em>выражение2 </em></pre> <h3 id="Параметры">Параметры</h3> @@ -31,16 +31,16 @@ original_slug: Web/JavaScript/Reference/Operators/Условный_операт <p>Оператор возвращает значение <code>выражения1</code>, если <code>условие</code> верно, и значение <code>выражения2</code> в противном случае. Например, чтобы вывести сообщение, текст которого зависит от значения переменной <code>isMember</code>, можно использовать такое выражение:</p> -<pre class="brush: js notranslate">"The fee is " + (isMember ? "$2.00" : "$10.00") +<pre class="brush: js">"The fee is " + (isMember ? "$2.00" : "$10.00") </pre> <p>Также можно присваивать значения переменным на основе результатов работы тернарного оператора :</p> -<pre class="brush: js notranslate">var elvisLives = Math.PI > 4 ? "Да" : "Нет";</pre> +<pre class="brush: js">var elvisLives = Math.PI > 4 ? "Да" : "Нет";</pre> <p>Возможны множественные тернарные операции (обратите внимание: условный оператор ассоциативен справа):</p> -<pre class="brush: js notranslate">var firstCheck = false, +<pre class="brush: js">var firstCheck = false, secondCheck = false, access = firstCheck ? "Доступ запрещён" : secondCheck ? "Доступ запрещён" : "Доступ разрешён"; @@ -48,14 +48,14 @@ console.log( access ); // выводит в консоль "Доступ раз <p>Тернарные операции можно использовать и сами по себе - для выполнения различных операций:</p> -<pre class="brush: js notranslate">var stop = false, age = 16; +<pre class="brush: js">var stop = false, age = 16; age > 18 ? location.assign("continue.html") : stop = true; </pre> <p>Также возможно выполнять несколько операций на каждое сравнение, разделив их запятыми:</p> -<pre class="brush: js notranslate">var stop = false, age = 23; +<pre class="brush: js">var stop = false, age = 23; age > 18 ? ( alert("Хорошо, вы можете продолжить."), @@ -68,7 +68,7 @@ age > 18 ? ( <p>При присвоении значения также возможно выполнение более одной операции. В этом случае переменной <strong>будет присвоено то значение, </strong><em><strong>которое стоит последним в списке значений, разделённых запятой</strong></em>.</p> -<pre class="brush: js notranslate">var age = 16; +<pre class="brush: js">var age = 16; var url = age > 18 ? ( alert("Хорошо, вы можете продолжить."), diff --git a/files/ru/web/javascript/reference/operators/decrement/index.html b/files/ru/web/javascript/reference/operators/decrement/index.html index 722d4a5889..64d29374a3 100644 --- a/files/ru/web/javascript/reference/operators/decrement/index.html +++ b/files/ru/web/javascript/reference/operators/decrement/index.html @@ -18,7 +18,7 @@ translation_of: Web/JavaScript/Reference/Operators/Decrement <h2 id="Синтаксис">Синтаксис</h2> -<pre class="syntaxbox notranslate"><strong>Operator:</strong> <var>x</var>-- or --<var>x</var> +<pre class="syntaxbox"><strong>Operator:</strong> <var>x</var>-- or --<var>x</var> </pre> <h2 id="Описание">Описание</h2> @@ -31,7 +31,7 @@ translation_of: Web/JavaScript/Reference/Operators/Decrement <h3 id="Постфиксный_декремент">Постфиксный декремент</h3> -<pre class="brush: js notranslate">let x = 3; +<pre class="brush: js">let x = 3; y = x--; // y = 3 @@ -40,7 +40,7 @@ y = x--; <h3 id="Префиксный_декремент">Префиксный декремент</h3> -<pre class="brush: js notranslate">let a = 2; +<pre class="brush: js">let a = 2; b = --a; // a = 1 diff --git a/files/ru/web/javascript/reference/operators/nullish_coalescing_operator/index.html b/files/ru/web/javascript/reference/operators/nullish_coalescing_operator/index.html index f31321b93a..a6bfca160a 100644 --- a/files/ru/web/javascript/reference/operators/nullish_coalescing_operator/index.html +++ b/files/ru/web/javascript/reference/operators/nullish_coalescing_operator/index.html @@ -16,7 +16,7 @@ translation_of: Web/JavaScript/Reference/Operators/Nullish_coalescing_operator <h2 id="Синтаксис">Синтаксис</h2> -<pre class="syntaxbox notranslate"><var>leftExpr</var> ?? <var>rightExpr</var> +<pre class="syntaxbox"><var>leftExpr</var> ?? <var>rightExpr</var> </pre> <h2 id="Примеры">Примеры</h2> @@ -25,7 +25,7 @@ translation_of: Web/JavaScript/Reference/Operators/Nullish_coalescing_operator <p>В этом примере показано как устанавливать значения по умолчанию, оставив в покое значения отличные от <code>null</code> или <code>undefined</code>.</p> -<pre class="brush: js notranslate">const nullValue = null; +<pre class="brush: js">const nullValue = null; const emptyText = ""; // falsy const someNumber = 42; @@ -41,14 +41,14 @@ console.log(valC); // 42</pre> <p>Ранее, для присваивания значения по умолчанию переменной использовался оператор логического ИЛИ (<code><a href="/en-US/docs/Web/JavaScript/Reference/Operators/Logical_Operators#Logical_OR_2">||</a></code>):</p> -<pre class="brush: js notranslate">let foo; +<pre class="brush: js">let foo; // переменной foo никогда не присваивалось значение, поэтому она undefined let someDummyText = foo || 'Hello!';</pre> <p>Однако, оператор <code>||</code> это логический оператор, левый операнд которого при сравнении неявно приводится к булевому значению, поэтому любое <em>ложное</em> значение (<code>0</code>, <code>''</code>, <code>NaN</code>, <code>null</code>, <code>undefined</code>) не возвращается. Данное поведение может быть нежелательным если вы рассматриваете <code>0</code>, <code>''</code>, или <code>NaN</code> как корректные значения.</p> -<pre class="brush: js notranslate">let count = 0; +<pre class="brush: js">let count = 0; let text = ""; let qty = count || 42; @@ -59,7 +59,7 @@ console.log(message); // "hi!" and not "" <p>Оператор нулевого слияния предотвращает попадание в такую ловушку, возвращая второй операнд если первый оказывается <code>null</code> or <code>undefined</code> (но не любым другим <em>ложным</em> значением):</p> -<pre class="brush: js notranslate">let myText = ''; // Пустая строка (тоже является ложным значением при приведении к логическому типу) +<pre class="brush: js">let myText = ''; // Пустая строка (тоже является ложным значением при приведении к логическому типу) let notFalsyText = myText || 'Hello world'; console.log(notFalsyText); // Hello world @@ -72,7 +72,7 @@ console.log(preservingFalsy); // '' (так как myText не undefined и не <p>Так же как при использовании логического И и ИЛИ, правое выражение не вычисляется если найдено подходящее значение в левом.</p> -<pre class="brush: js notranslate">function A() { console.log('A was called'); return undefined;} +<pre class="brush: js">function A() { console.log('A was called'); return undefined;} function B() { console.log('B was called'); return false;} function C() { console.log('C was called'); return "foo";} @@ -90,19 +90,19 @@ console.log( B() ?? C() ); <p>Нельзя напрямую объединять И (<code>&&</code>) и ИЛИ (<code>||</code>) операторы с <code>??</code>. При таком выражении будет выброшен <code><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/SyntaxError">SyntaxError</a></code>.</p> -<pre class="brush: js example-bad notranslate">null || undefined ?? "foo"; // выбрасывает SyntaxError +<pre class="brush: js example-bad">null || undefined ?? "foo"; // выбрасывает SyntaxError true || undefined ?? "foo"; // выбрасывает SyntaxError</pre> <p>Однако, при заключении в скобки выражение является корректным:</p> -<pre class="brush: js example-good notranslate">(null || undefined) ?? "foo"; // returns "foo" +<pre class="brush: js example-good">(null || undefined) ?? "foo"; // returns "foo" </pre> <h3 id="Отношение_к_оператору_опциональной_последовательности_.">Отношение к оператору опциональной последовательности (<code>?.</code>)</h3> <p>Оператор нулевого слияния определяет <code>undefined</code> и <code>null</code> как специальные значения так же как и <a href="https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Operators/Optional_chaining">оператор опциональной последовательности (<code>?.</code>)</a>, который используется для доступа к свойствам объекта, значение которого может быть <code>null</code> или <code>undefined</code>.</p> -<pre class="brush: js notranslate">let foo = { someFooProp: "hi" }; +<pre class="brush: js">let foo = { someFooProp: "hi" }; console.log(foo.someFooProp?.toUpperCase()); // "HI" console.log(foo.someBarProp?.toUpperCase()); // undefined diff --git a/files/ru/web/javascript/reference/operators/operator_precedence/index.html b/files/ru/web/javascript/reference/operators/operator_precedence/index.html index 81ac025747..2de7b65912 100644 --- a/files/ru/web/javascript/reference/operators/operator_precedence/index.html +++ b/files/ru/web/javascript/reference/operators/operator_precedence/index.html @@ -20,19 +20,19 @@ translation_of: Web/JavaScript/Reference/Operators/Operator_Precedence <p>Ассоциативность определяет порядок, в котором обрабатываются операторы с одинаковым приоритетом. Например, рассмотрим выражение:</p> -<pre class="syntaxbox notranslate">a OP b OP c +<pre class="syntaxbox">a OP b OP c </pre> <p>Левая ассоциативность (слева направо) означает, что оно обрабатывается как <code>(a OP b) OP c</code>, в то время как правая ассоциативность (справа налево) означает, что они интерпретируются как <code>a OP (b OP c)</code>. Операторы присваивания являются право-ассоциативными, так что вы можете написать:</p> -<pre class="brush: js notranslate">a = b = 5; +<pre class="brush: js">a = b = 5; </pre> <p>с ожидаемым результатом, что <code>a</code> и <code>b</code> будут равны 5. Это происходит, потому что оператор присваивания возвращает тот результат, который присваивает. Сначала <code>b</code> становится равным 5, затем <code>a</code> принимает значение <code>b</code>.</p> <h2 id="Примеры">Примеры</h2> -<pre class="brush: js notranslate"><code>3 > 2 && 2 > 1 +<pre class="brush: js"><code>3 > 2 && 2 > 1 // вернёт true 3 > 2 > 1 diff --git a/files/ru/web/javascript/reference/operators/property_accessors/index.html b/files/ru/web/javascript/reference/operators/property_accessors/index.html index 938833a348..005cef9b49 100644 --- a/files/ru/web/javascript/reference/operators/property_accessors/index.html +++ b/files/ru/web/javascript/reference/operators/property_accessors/index.html @@ -11,7 +11,7 @@ translation_of: Web/JavaScript/Reference/Operators/Property_Accessors <h2 id="Синтаксис">Синтаксис</h2> -<pre class="syntaxbox notranslate">object.property +<pre class="syntaxbox">object.property object["property"] </pre> @@ -27,12 +27,12 @@ object["property"] <p class="brush: js">В записи <code>object.property</code>, <font face="consolas, Liberation Mono, courier, monospace"><span style="background-color: rgba(220, 220, 220, 0.5);">property</span></font> должно быть действительным <a href="/ru/docs/%D0%A1%D0%BB%D0%BE%D0%B2%D0%B0%D1%80%D1%8C/Identifier">идентификатором</a>. (В стандарте ECMAScript, имена свойств технически называются "IdentifierNames", а не "Identifiers", поэтому зарезервированные слова могут быть использованы в их качестве, но это не рекомендуется). Например, <code>object.$1</code> является верной записью, а <code>object.1</code> - нет.</p> -<pre class="brush: js notranslate">const variable = <var>object</var>.<var>property_name;</var> +<pre class="brush: js">const variable = <var>object</var>.<var>property_name;</var> <var>object</var>.<var>property_name</var> = value; </pre> -<pre class="brush: js notranslate">const object = {}; +<pre class="brush: js">const object = {}; object.$1 = 'foo'; console.log(object.$1); // 'foo' @@ -42,11 +42,11 @@ console.log(object.1); // SyntaxError</pre> <p>Здесь метод с именем <code>createElement</code> считывается с объекта <code>document</code> и вызывается.</p> -<pre class="brush: js notranslate">document.createElement('pre')</pre> +<pre class="brush: js">document.createElement('pre')</pre> <p>Если вы хотите вызвать метод на численном литерале, не имеющий части с экспонентой или точки, отделяющей дробную часть, нужно ставить пробел перед точкой, являющейся частью обращения к этому методу, чтобы интерпретатор не посчитал, что это точка отделяет дробную часть числа (или использовать другие способы этого избежать).</p> -<pre class="brush: js notranslate">// SyntaxError, здесь считается, что 77. это число, +<pre class="brush: js">// SyntaxError, здесь считается, что 77. это число, // поэтому такая запись эквивалентна (77.)toExponentional() // что является ошибкой 77.toExponentional() @@ -65,29 +65,29 @@ console.log(object.1); // SyntaxError</pre> <p class="brush: js">В записи <code>object[property_name]</code>, <em><code>property_name</code> - </em>это выражение, вычисляющееся в строку или <a href="/ru/docs/%D0%A1%D0%BB%D0%BE%D0%B2%D0%B0%D1%80%D1%8C/Symbol">символ</a>. Это может быть любая строка, не обязательно действительный идентификатор, например <code>'1foo'</code>, '<code>!bar!'</code> или даже <code>' '</code> (пробел).</p> -<pre class="brush: js notranslate">const variable = object[property_name] +<pre class="brush: js">const variable = object[property_name] object[property_name] = value</pre> <p>Пример, аналогичный примеру в предыдущем пункте:</p> -<pre class="brush: js notranslate">document['createElement']('pre'); +<pre class="brush: js">document['createElement']('pre'); </pre> <p>Пробел перед скобкой допускается:</p> -<pre class="brush: js notranslate">document ['createElement']('pre')</pre> +<pre class="brush: js">document ['createElement']('pre')</pre> <h3 id="Имена_свойств">Имена свойств</h3> <p>Имена свойств могут быть строками или <a href="/ru/docs/%D0%A1%D0%BB%D0%BE%D0%B2%D0%B0%D1%80%D1%8C/Symbol">символами</a>. Любое другое значение приводится к строке. Следующий код выводит <code>'value'</code>, поскольку число <code>1</code> приводится к строке <code>'1'</code>.</p> -<pre class="brush: js notranslate">const object = {} +<pre class="brush: js">const object = {} object['1'] = 'value' console.log(object[1])</pre> <p>Этот пример также выводит <code>'value',</code> так как и <code>foo</code>, и <font face="consolas, Liberation Mono, courier, monospace"><span style="background-color: rgba(220, 220, 220, 0.5);">bar</span></font> приводятся к одной и той же строке.</p> -<pre class="brush: js notranslate">const foo = {unique_prop: 1} +<pre class="brush: js">const foo = {unique_prop: 1} const bar = {unique_prop: 2} const object = {} @@ -109,12 +109,12 @@ console.log(object[bar]); <p>Например, следующий синтаксис можно часто увидеть в скриптах.</p> -<pre class="brush: js notranslate">x = eval('document.forms.form_name.elements.' + strFormControl + '.value'); +<pre class="brush: js">x = eval('document.forms.form_name.elements.' + strFormControl + '.value'); </pre> <p>Функция <code>eval()</code> очень медленная и её использования следует избегать, когда это возможно. Кроме того, строка <code>strFormControl</code> при таком использовании обязаны содержать действительный идентификатор, что не является обязательным для <code>id</code> полей формы, то есть, например, поле с id <font face="consolas, Liberation Mono, courier, monospace"><span style="background-color: rgba(220, 220, 220, 0.5);">1</span></font> не получится получить такой записью. Лучше вместо этого использовать скобочную запись:</p> -<pre class="brush: js notranslate">x = document.forms["form_name"].elements[strFormControl].value; +<pre class="brush: js">x = document.forms["form_name"].elements[strFormControl].value; </pre> <h2 id="Спецификации">Спецификации</h2> diff --git a/files/ru/web/javascript/reference/operators/spread_syntax/index.html b/files/ru/web/javascript/reference/operators/spread_syntax/index.html index 1019bdd757..5eb3e561d9 100644 --- a/files/ru/web/javascript/reference/operators/spread_syntax/index.html +++ b/files/ru/web/javascript/reference/operators/spread_syntax/index.html @@ -21,16 +21,16 @@ translation_of: Web/JavaScript/Reference/Operators/Spread_syntax <p>Для вызовов функций:</p> -<pre class="syntaxbox notranslate">myFunction(...iterableObj); +<pre class="syntaxbox">myFunction(...iterableObj); </pre> <p>Для литералов массива или строк:</p> -<pre class="syntaxbox notranslate">[...iterableObj, '4', 'five', 6];</pre> +<pre class="syntaxbox">[...iterableObj, '4', 'five', 6];</pre> <p>Для литералов объекта (новое в ECMAScript 2018):</p> -<pre class="syntaxbox notranslate">let objClone = { ...obj };</pre> +<pre class="syntaxbox">let objClone = { ...obj };</pre> <h2 id="Примеры">Примеры</h2> @@ -40,19 +40,19 @@ translation_of: Web/JavaScript/Reference/Operators/Spread_syntax <p>Обычно используют {{jsxref( "Function.prototype.apply")}} в случаях, когда хотят использовать элементы массива в качестве аргументов функции.</p> -<pre class="brush: js notranslate">function myFunction(x, y, z) { } +<pre class="brush: js">function myFunction(x, y, z) { } var args = [0, 1, 2]; myFunction.apply(null, args);</pre> <p>С <strong>spread syntax</strong> вышеприведённое можно записать как:</p> -<pre class="brush: js notranslate">function myFunction(x, y, z) { } +<pre class="brush: js">function myFunction(x, y, z) { } var args = [0, 1, 2]; myFunction(...args);</pre> <p>Любой аргумент в списке аргументов может использовать <strong>spread syntax</strong>, и его можно использовать несколько раз.</p> -<pre class="brush: js notranslate">function myFunction(v, w, x, y, z) { } +<pre class="brush: js">function myFunction(v, w, x, y, z) { } var args = [0, 1]; myFunction(-1, ...args, 2, ...[3]);</pre> @@ -60,13 +60,13 @@ myFunction(-1, ...args, 2, ...[3]);</pre> <p>Вызывая конструктор через ключевое слово <code>new</code>, невозможно использовать массив и <code>apply</code> <strong>напрямую </strong>(<code>apply</code> выполняет <code>[[Call]]</code>, а не <code>[[Construct]]</code>).Однако благодаря spread syntax, массив может быть с лёгкостью использован со словом <code>new:</code></p> -<pre class="brush: js notranslate">var dateFields = [1970, 0, 1]; // 1 Jan 1970 +<pre class="brush: js">var dateFields = [1970, 0, 1]; // 1 Jan 1970 var d = new Date(...dateFields); </pre> <p>Чтобы использовать <code>new</code> с массивом параметров без spread syntax, вам потребуется использование частичного применения:</p> -<pre class="brush: js notranslate">function applyAndNew(constructor, args) { +<pre class="brush: js">function applyAndNew(constructor, args) { function partial () { return constructor.apply(this, args); }; @@ -98,7 +98,7 @@ console.log(new myConstructorWithArguments); <p>Без spread syntax, применение синтаксиса литерала массива для создания нового массива на основе существующего недостаточно и требуется императивный код вместо комбинации методов <code>push</code>, <code>splice</code>, <code>concat</code> и т.д. С spread syntax реализация становится гораздо более лаконичной:</p> -<pre class="brush: js notranslate">var parts = ['shoulders', 'knees']; +<pre class="brush: js">var parts = ['shoulders', 'knees']; var lyrics = ['head', ...parts, 'and', 'toes']; // ["head", "shoulders", "knees", "and", "toes"] </pre> @@ -107,7 +107,7 @@ var lyrics = ['head', ...parts, 'and', 'toes']; <h4 id="Копирование_массива">Копирование массива</h4> -<pre class="brush: js notranslate">var arr = [1, 2, 3]; +<pre class="brush: js">var arr = [1, 2, 3]; var arr2 = [...arr]; // like arr.slice() arr2.push(4); @@ -117,7 +117,7 @@ arr2.push(4); <p><strong>Примечание:</strong> Spread syntax на самом деле переходит лишь на один уровень глубже при копировании массива. Таким образом, он может не подходить для копирования многоразмерных массивов, как показывает следующий пример: (также как и c {{jsxref("Object.assign()")}}) и синтаксис spred </p> -<pre class="brush: js notranslate">const a = [[1], [2], [3]]; +<pre class="brush: js">const a = [[1], [2], [3]]; const b = [...a]; b.shift().shift(); // 1 // О нет. Теперь на массив "а" относятся также: а @@ -128,28 +128,28 @@ b.shift().shift(); // 1 <p>Для конкатенации массива часто используется {{jsxref("Array.concat")}}:</p> -<pre class="brush: js notranslate">var arr1 = [0, 1, 2]; +<pre class="brush: js">var arr1 = [0, 1, 2]; var arr2 = [3, 4, 5]; // Append all items from arr2 onto arr1 arr1 = arr1.concat(arr2);</pre> <p>С использованием spread syntax:</p> -<pre class="brush: js notranslate">var arr1 = [0, 1, 2]; +<pre class="brush: js">var arr1 = [0, 1, 2]; var arr2 = [3, 4, 5]; arr1 = [...arr1, ...arr2]; </pre> <p>{{jsxref("Array.unshift")}} часто используется для вставки массива значений в начало существующего массива. Без spread syntax:</p> -<pre class="brush: js notranslate">var arr1 = [0, 1, 2]; +<pre class="brush: js">var arr1 = [0, 1, 2]; var arr2 = [3, 4, 5]; // Prepend all items from arr2 onto arr1 Array.prototype.unshift.apply(arr1, arr2) // arr1 is now [3, 4, 5, 0, 1, 2]</pre> <p>С использованием spread syntax [Следует отметить, что такой способ создаёт новый массив <code>arr1</code>. В отличие от {{jsxref("Array.unshift")}}, исходный массив не мутируется]:</p> -<pre class="brush: js notranslate">var arr1 = [0, 1, 2]; +<pre class="brush: js">var arr1 = [0, 1, 2]; var arr2 = [3, 4, 5]; arr1 = [...arr2, ...arr1]; // arr1 is now [3, 4, 5, 0, 1, 2] </pre> @@ -160,7 +160,7 @@ arr1 = [...arr2, ...arr1]; // arr1 is now [3, 4, 5, 0, 1, 2] <p>Поверхностное копирование (без прототипа) или объединение объектов теперь возможно с использованием более короткого, чем {{jsxref("Object.assign()")}}, синтаксиса.</p> -<pre class="brush: js notranslate">var obj1 = { foo: 'bar', x: 42 }; +<pre class="brush: js">var obj1 = { foo: 'bar', x: 42 }; var obj2 = { foo: 'baz', y: 13 }; var clonedObj = { ...obj1 }; @@ -173,7 +173,7 @@ var mergedObj = { ...obj1, ...obj2 }; <p>Обратите внимание, что вы не можете заменить или имитировать функцию {{jsxref("Object.assign()")}}:</p> -<pre class="brush: js notranslate">var obj1 = { foo: 'bar', x: 42 }; +<pre class="brush: js">var obj1 = { foo: 'bar', x: 42 }; var obj2 = { foo: 'baz', y: 13 }; const merge = ( ...objects ) => ( { ...objects } ); @@ -189,7 +189,7 @@ var mergedObj = merge ( {}, obj1, obj2); <p>Spread syntax ( кроме случаев spread properties) может быть применён только к итерируемым объектам (<a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol/iterator">iterable</a> objects) :</p> -<pre class="brush: js notranslate">var obj = {'key1': 'value1'}; +<pre class="brush: js">var obj = {'key1': 'value1'}; var array = [...obj]; // TypeError: obj is not iterable </pre> diff --git a/files/ru/web/javascript/reference/operators/yield/index.html b/files/ru/web/javascript/reference/operators/yield/index.html index d30b1bbce5..34f3245f4d 100644 --- a/files/ru/web/javascript/reference/operators/yield/index.html +++ b/files/ru/web/javascript/reference/operators/yield/index.html @@ -18,7 +18,7 @@ translation_of: Web/JavaScript/Reference/Operators/yield <h2 id="Syntax">Синтаксис</h2> -<pre class="syntaxbox language-html notranslate"> [<em>rv</em>] = <strong>yield</strong> [[выражение]];</pre> +<pre class="syntaxbox language-html"> [<em>rv</em>] = <strong>yield</strong> [[выражение]];</pre> <dl> <dt><code>выражение</code></dt> @@ -39,7 +39,7 @@ translation_of: Web/JavaScript/Reference/Operators/yield <p>Следующий фрагмент кода содержит определение функции-генератора и вспомогательной функции:</p> -<pre class="brush: js notranslate">function* foo(){ +<pre class="brush: js">function* foo(){ var index = 0; while(index <= 2) // при достижении 2, done в yield станет true, а value undefined; yield index++; @@ -47,7 +47,7 @@ translation_of: Web/JavaScript/Reference/Operators/yield <p>После того как тело функции-генератора определено, оно может использоваться для получения итератора:</p> -<pre class="brush: js notranslate">var iterator = foo(); +<pre class="brush: js">var iterator = foo(); console.log(iterator.next()); // { value:0, done:false } console.log(iterator.next()); // { value:1, done:false } console.log(iterator.next()); // { value:2, done:false } diff --git a/files/ru/web/javascript/reference/operators/yield_star_/index.html b/files/ru/web/javascript/reference/operators/yield_star_/index.html index 003e027d0e..1b1da5bd17 100644 --- a/files/ru/web/javascript/reference/operators/yield_star_/index.html +++ b/files/ru/web/javascript/reference/operators/yield_star_/index.html @@ -9,7 +9,7 @@ translation_of: Web/JavaScript/Reference/Operators/yield* <h2 id="Синтаксис">Синтаксис</h2> -<pre class="syntaxbox notranslate"> yield* [[expression]];</pre> +<pre class="syntaxbox"> yield* [[expression]];</pre> <dl> <dt><code>expression</code></dt> @@ -28,7 +28,7 @@ translation_of: Web/JavaScript/Reference/Operators/yield* <p>В следующем примере, значения полученные из <code>g1()</code> возвращаются из <code>g2</code> вызовами <code>next</code>, как будто бы она вычислила их сама.</p> -<pre class="brush: js notranslate">function* g1() { +<pre class="brush: js">function* g1() { yield 2; yield 3; yield 4; @@ -54,7 +54,7 @@ console.log(iterator.next()); // { value: undefined, done: true } <p>Помимо объектов генераторов, <code>yield*</code> может перебирать другие виды итерируемых объектов, т.е. массивы, строки, объекты аргументов и др.</p> -<pre class="brush: js notranslate">function* g3() { +<pre class="brush: js">function* g3() { yield* [1, 2]; yield* "34"; yield* Array.from(arguments); @@ -106,7 +106,7 @@ class PowersOfTwo { <p><code>yield*</code> - это выражение, а не оператор, поэтому оно имеет значение, равное последнему значению итератора </p> -<pre class="brush: js notranslate">function* g4() { +<pre class="brush: js">function* g4() { yield* [1, 2, 3]; return "foo"; } @@ -162,7 +162,7 @@ console.log(result); // "foo" <li>Начиная с Gecko 33 {{geckoRelease(33)}}, разбор выражений yield было приведено к соответствию с последними спецификациями ES6 ({{bug(981599)}}): <ul> <li>Реализована корректная обработка разрыва строки. Разрыва строки между "yield" и "*" быть не может. Такой код вызовет {{jsxref("SyntaxError")}}: - <pre class="brush: js notranslate">function* foo() { + <pre class="brush: js">function* foo() { yield *[]; }</pre> diff --git a/files/ru/web/javascript/reference/statements/async_function/index.html b/files/ru/web/javascript/reference/statements/async_function/index.html index 7e07f940cf..d46b1039e3 100644 --- a/files/ru/web/javascript/reference/statements/async_function/index.html +++ b/files/ru/web/javascript/reference/statements/async_function/index.html @@ -13,7 +13,7 @@ translation_of: Web/JavaScript/Reference/Statements/async_function <h2 id="Синтаксис">Синтаксис</h2> -<pre class="syntaxbox notranslate">async function <em>name</em>([<em>param</em>[, <em>param</em>[, ... <em>param</em>]]]) { +<pre class="syntaxbox">async function <em>name</em>([<em>param</em>[, <em>param</em>[, ... <em>param</em>]]]) { <em>statements</em> } </pre> @@ -49,7 +49,7 @@ translation_of: Web/JavaScript/Reference/Statements/async_function <h3 id="Простой_пример">Простой пример</h3> -<pre class="brush: js notranslate">function resolveAfter2Seconds(x) { +<pre class="brush: js">function resolveAfter2Seconds(x) { return new Promise(resolve => { setTimeout(() => { resolve(x); @@ -86,7 +86,7 @@ add2(10).then(v => { <h3 id="Когда_функция_async_выбрасывает_исключение">Когда функция <code>async </code>выбрасывает исключение</h3> -<pre class="brush: js notranslate">async function throwsValue() { +<pre class="brush: js">async function throwsValue() { throw new Error('oops'); } throwsValue() @@ -112,7 +112,7 @@ throwsValue() <p>API, которое возвращает {{jsxref("Promise")}}, будет возвращать значение в цепочке, тем самым разбивая функцию на много частей. Рассматривая следующий код:</p> -<pre class="brush: js notranslate">function getProcessedData(url) { +<pre class="brush: js">function getProcessedData(url) { return downloadData(url) // returns a promise .catch(e => { return downloadFallbackData(url) // returns a promise @@ -125,7 +125,7 @@ throwsValue() <p>он может быть переписан с одним использованием функции <code>async</code>:</p> -<pre class="brush: js notranslate">async function getProcessedData(url) { +<pre class="brush: js">async function getProcessedData(url) { let v; try { v = await downloadData(url); diff --git a/files/ru/web/javascript/reference/statements/class/index.html b/files/ru/web/javascript/reference/statements/class/index.html index f2caebe0fe..e0c1dbd9f2 100644 --- a/files/ru/web/javascript/reference/statements/class/index.html +++ b/files/ru/web/javascript/reference/statements/class/index.html @@ -13,7 +13,7 @@ translation_of: Web/JavaScript/Reference/Statements/class <h2 id="Синтаксис">Синтаксис</h2> -<pre class="brush: js notranslate">class <em>name</em> [extends] { +<pre class="brush: js">class <em>name</em> [extends] { // тело класса } </pre> @@ -30,7 +30,7 @@ translation_of: Web/JavaScript/Reference/Statements/class <p>В следующем примере сначала определяется класс с именем Polygon, затем он наследуется для создания класса Square. Заметьте, что super(), используемый в конструкторе, может быть использован только в конструкторе и должен быть вызван до того, как будет использовано ключевое слово this.</p> -<pre class="brush: js notranslate">class Polygon { +<pre class="brush: js">class Polygon { constructor(height, width) { this.name = 'Polygon'; this.height = height; @@ -50,13 +50,13 @@ class Square extends Polygon { <p>Переопределение класса с помощью class declaration вызовет ошибку типа.</p> -<pre class="brush: js notranslate">class Foo {}; +<pre class="brush: js">class Foo {}; class Foo {}; // Uncaught TypeError: Identifier 'Foo' has already been declared </pre> <p>Та же ошибка будет вызвана, если класс был определён перед использованием class declaration.</p> -<pre class="brush: js notranslate">var Foo = class {}; +<pre class="brush: js">var Foo = class {}; class Foo {}; // Uncaught TypeError: Identifier 'Foo' has already been declared </pre> diff --git a/files/ru/web/javascript/reference/statements/for...of/index.html b/files/ru/web/javascript/reference/statements/for...of/index.html index 5d056de8c4..7641d14bad 100644 --- a/files/ru/web/javascript/reference/statements/for...of/index.html +++ b/files/ru/web/javascript/reference/statements/for...of/index.html @@ -16,7 +16,7 @@ translation_of: Web/JavaScript/Reference/Statements/for...of <h2 id="Синтаксис">Синтаксис</h2> -<pre class="syntaxbox notranslate">for (<em>variable</em> of <em>iterable</em>) { +<pre class="syntaxbox">for (<em>variable</em> of <em>iterable</em>) { <em>statement</em> } </pre> @@ -32,7 +32,7 @@ translation_of: Web/JavaScript/Reference/Statements/for...of <h3 id="Обход_jsxrefArray">Обход {{jsxref("Array")}}</h3> -<pre class="notranslate"><code>let iterable = [10, 20, 30]; +<pre><code>let iterable = [10, 20, 30]; for (let value of iterable) { value += 1; @@ -44,7 +44,7 @@ for (let value of iterable) { <p>Можно также использовать <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/const"><code>const</code></a> вместо <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/let"><code>let</code></a>, если не нужно переназначать переменные внутри блока.</p> -<pre class="notranslate"><code>let iterable = [10, 20, 30]; +<pre><code>let iterable = [10, 20, 30]; for (const value of iterable) { console.log(value); @@ -55,7 +55,7 @@ for (const value of iterable) { <h3 id="Обход_jsxrefString">Обход {{jsxref("String")}}</h3> -<pre class="notranslate"><code>let iterable = 'boo'; +<pre><code>let iterable = 'boo'; for (let value of iterable) { console.log(value); @@ -66,7 +66,7 @@ for (let value of iterable) { <h3 id="Обход_jsxrefTypedArray">Обход {{jsxref("TypedArray")}}</h3> -<pre class="notranslate"><code>let iterable = new Uint8Array([0x00, 0xff]); +<pre><code>let iterable = new Uint8Array([0x00, 0xff]); for (let value of iterable) { console.log(value); @@ -76,7 +76,7 @@ for (let value of iterable) { <h3 id="Обход_jsxrefMap">Обход {{jsxref("Map")}}</h3> -<pre class="notranslate"><code>let iterable = new Map([['a', 1], ['b', 2], ['c', 3]]); +<pre><code>let iterable = new Map([['a', 1], ['b', 2], ['c', 3]]); for (let entry of iterable) { console.log(entry); @@ -94,7 +94,7 @@ for (let [key, value] of iterable) { <h3 id="Обход_jsxrefSet">Обход {{jsxref("Set")}}</h3> -<pre class="notranslate"><code>let iterable = new Set([1, 1, 2, 2, 3, 3]); +<pre><code>let iterable = new Set([1, 1, 2, 2, 3, 3]); for (let value of iterable) { console.log(value); @@ -105,7 +105,7 @@ for (let value of iterable) { <h3 id="Обход_объекта_jsxrefarguments">Обход объекта {{jsxref("arguments")}} </h3> -<pre class="notranslate"><code>(function() { +<pre><code>(function() { for (let argument of arguments) { console.log(argument); } @@ -119,7 +119,7 @@ for (let value of iterable) { <p>Обход DOM коллекций наподобие {{domxref("NodeList")}}: следующий пример добавляет класс <code>read</code> параграфам, являющимся непосредственными потомками статей:</p> -<pre class="notranslate"><code>// Примечание: работает только на платформах, где +<pre><code>// Примечание: работает только на платформах, где // реализован NodeList.prototype[Symbol.iterator] let articleParagraphs = document.querySelectorAll('article > p'); @@ -131,7 +131,7 @@ for (let paragraph of articleParagraphs) { <p>В циклах <code>for...of</code> аварийный выход осуществляется через <code>break</code>, <code>throw</code> или <code>return</code>. Во всех вариантах итератор завершается.</p> -<pre class="notranslate"><code>function* foo(){ +<pre><code>function* foo(){ yield 1; yield 2; yield 3; @@ -147,7 +147,7 @@ for (let o of foo()) { <p>Вы можете выполнять обход <a href="/en-US/docs/Web/JavaScript/Reference/Statements/function*">генераторов</a>, вот пример:</p> -<pre class="brush:js notranslate">function* fibonacci() { // функция-генератор +<pre class="brush:js">function* fibonacci() { // функция-генератор let [prev, curr] = [0, 1]; for (;;) { [prev, curr] = [curr, prev + curr]; @@ -167,7 +167,7 @@ for (let n of fibonacci()) { <p>Генераторы нельзя использовать дважды, даже если цикл <code>for...of </code> завершится аварийно, например, через оператор {{jsxref("Statements/break", "break")}} . При выходе из цикла генератор завершается, и любые попытки получить из него значение обречены.</p> -<pre class="brush: js example-bad notranslate"><code>var gen = (function *(){ +<pre class="brush: js example-bad"><code>var gen = (function *(){ yield 1; yield 2; yield 3; @@ -186,7 +186,7 @@ for (let o of gen) { <p>Кроме того, можно сделать обход объекта, явно реализующего <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols#iterable">iterable</a>:</p> -<pre class="notranslate"><code>var iterable = { +<pre><code>var iterable = { [Symbol.iterator]() { return { i: 0, @@ -217,7 +217,7 @@ for (var value of iterable) { <p>Следующий пример показывает различия в работе циклов <code>for...of</code> и <code>for...in</code> при обходе {{jsxref("Array")}}.</p> -<pre class="notranslate"><code>Object.prototype.objCustom = function() {}; +<pre><code>Object.prototype.objCustom = function() {}; Array.prototype.arrCustom = function() {}; let iterable = [3, 5, 7]; @@ -239,7 +239,7 @@ for (let i of iterable) { <p>Разберёмся шаг за шагом в вышеописанном коде.</p> -<pre class="notranslate"><code>Object.prototype.objCustom = function() {}; +<pre><code>Object.prototype.objCustom = function() {}; Array.prototype.arrCustom = function() {}; let iterable = [3, 5, 7]; @@ -247,13 +247,13 @@ iterable.foo = 'hello';</code></pre> <p>Каждый объект унаследует метод <code>objCustom</code> и каждый массив {{jsxref("Array")}} унаследует метод <code>arrCustom</code> благодаря созданию их в {{jsxref("Object.prototype")}} и {{jsxref("Array.prototype")}}. Объект <code>iterable</code> унаследует методы <code>objCustom</code> и <code>arrCustom</code> из-за <a href="/ru/docs/Web/JavaScript/Inheritance_and_the_prototype_chain">наследования через прототип</a>.</p> -<pre class="notranslate"><code>for (let i in iterable) { +<pre><code>for (let i in iterable) { console.log(i); // выведет 0, 1, 2, "foo", "arrCustom", "objCustom" }</code></pre> <p>Цикл выводит только <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Enumerability_and_ownership_of_properties">перечисляемые свойства</a> объекта <code>iterable</code>, в порядке их создания. Он не выводит <strong>значения</strong> <code>3</code>, <code>5</code>, <code>7</code> и <code>hello</code> поскольку они <strong>не являются</strong> перечисляемыми, фактически они вообще не являются свойствами, они являются <strong>значениями</strong>. Выводятся же <strong>имена свойств и методов</strong>, например <code>arrCustom</code> и <code>objCustom</code>. Если вы ещё не совсем поняли, по каким свойствам осуществляется обход, вот дополнительное объяснение того, как работает {{jsxref("Statements/for...in", "array iteration and for...in", "#Array_iteration_and_for...in")}} .</p> -<pre class="notranslate"><code>for (let i in iterable) { +<pre><code>for (let i in iterable) { if (iterable.hasOwnProperty(i)) { console.log(i); // выведет 0, 1, 2, "foo" } @@ -261,7 +261,7 @@ iterable.foo = 'hello';</code></pre> <p>Цикл аналогичен предыдущему, но использует {{jsxref("Object.prototype.hasOwnProperty()", "hasOwnProperty()")}} для проверки того, собственное ли это свойство объекта или унаследованное. Выводятся только собственные свойства. Имена <code>0</code>, <code>1</code>, <code>2</code> и <code>foo</code> принадлежат только экземпляру объекта (<strong>не унаследованы</strong>). Методы <code>arrCustom</code> и <code>objCustom</code> не выводятся, поскольку они <strong>унаследованы</strong>.</p> -<pre class="notranslate"><code>for (let i of iterable) { +<pre><code>for (let i of iterable) { console.log(i); // выведет 3, 5, 7 }</code></pre> |