From 96be0abd82ce5e6b6baa882928309f138111d1fe Mon Sep 17 00:00:00 2001 From: allo Date: Sun, 20 Nov 2022 21:32:05 +0800 Subject: [PATCH 1/3] prepare markdown convertion for conflicting --- files/ru/conflicting/learn/javascript/asynchronous/index.html | 4 ---- .../javascript/inheritance_and_the_prototype_chain/index.html | 2 +- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/files/ru/conflicting/learn/javascript/asynchronous/index.html b/files/ru/conflicting/learn/javascript/asynchronous/index.html index 4eed1778b780a8..8e71064fc4cc0f 100644 --- a/files/ru/conflicting/learn/javascript/asynchronous/index.html +++ b/files/ru/conflicting/learn/javascript/asynchronous/index.html @@ -634,7 +634,3 @@

В этом модуле

  • Сделайте асинхронное программирование легче с async и await
  • Choosing the right approach
  • - -
    -
    -
    diff --git a/files/ru/conflicting/web/javascript/inheritance_and_the_prototype_chain/index.html b/files/ru/conflicting/web/javascript/inheritance_and_the_prototype_chain/index.html index 2fdc256cc39955..5b9f2431987ff6 100644 --- a/files/ru/conflicting/web/javascript/inheritance_and_the_prototype_chain/index.html +++ b/files/ru/conflicting/web/javascript/inheritance_and_the_prototype_chain/index.html @@ -572,7 +572,7 @@

    -

    Специальное свойство __proto__ устанавливается автоматически при создании объекта. Оно принимает значение свойства prototype функции-конструктора. Таким образом, new Foo() создаст объект для которого справедливо выражение __proto__ == Foo.prototype. Вследствие этого, любые изменения свойств у Foo.prototype, оказывают эффект на процесс поиска свойств во всех объектах, созданных при помощи new Foo().

    +

    Специальное свойство __proto__ устанавливается автоматически при создании объекта. Оно принимает значение свойства prototype функции-конструктора. Таким образом, new Foo() создаст объект для которого справедливо выражение __proto__ == Foo.prototype. Вследствие этого, любые изменения свойств у Foo.prototype, оказывают эффект на процесс поиска свойств во всех объектах, созданных при помощи new Foo().

    Все объекты (за исключением глобального объекта Object) имеют свойство __proto__. Все функции имеют свойство prototype. Благодаря этому, могут быть установлены родственные связи в иерархии объектов. Вы можете установить родство и происхождение объекта, сравнив его свойство __proto__ со свойством prototype конструктора. Здесь JavaScript представляет оператор instanceof как более простой способ проверки, наследуется ли объект от конкретного конструктора. Для примера:

    From 0522538c917670e2e7ce954e202326c000a6ddca Mon Sep 17 00:00:00 2001 From: allo Date: Sun, 20 Nov 2022 21:33:27 +0800 Subject: [PATCH 2/3] move to .md for conflicting --- .../learn/javascript/asynchronous/{index.html => index.md} | 0 .../javascript/asynchronous/introducing/{index.html => index.md} | 0 .../objects/classes_in_javascript/{index.html => index.md} | 0 .../conflicting/mdn/writing_guidelines/{index.html => index.md} | 0 .../page_structures/live_samples/{index.html => index.md} | 0 .../web/api/abortsignal/abort_event/{index.html => index.md} | 0 .../web/api/canvasrenderingcontext2d/{index.html => index.md} | 0 .../web/api/element/clientheight/{index.html => index.md} | 0 .../web/api/element/keydown_event/{index.html => index.md} | 0 .../web/api/element/keypress_event/{index.html => index.md} | 0 .../web/api/element/mousedown_event/{index.html => index.md} | 0 .../web/api/element/mouseup_event/{index.html => index.md} | 0 .../web/api/eventtarget/addeventlistener/{index.html => index.md} | 0 files/ru/conflicting/web/api/file/name/{index.html => index.md} | 0 .../api/geolocation/getcurrentposition/{index.html => index.md} | 0 .../web/api/htmlelement/dragstart_event/{index.html => index.md} | 0 .../web/api/htmlmediaelement/abort_event/{index.html => index.md} | 0 .../conflicting/web/api/pointer_events/{index.html => index.md} | 0 .../ru/conflicting/web/api/uievent/which/{index.html => index.md} | 0 .../web/api/window/beforeunload_event/{index.html => index.md} | 0 .../api/window/deviceorientation_event/{index.html => index.md} | 0 .../api/window/gamepadconnected_event/{index.html => index.md} | 0 .../api/window/gamepaddisconnected_event/{index.html => index.md} | 0 .../web/api/window/hashchange_event/{index.html => index.md} | 0 .../web/api/window/load_event/{index.html => index.md} | 0 .../web/api/window/popstate_event/{index.html => index.md} | 0 files/ru/conflicting/web/css/css_fonts/{index.html => index.md} | 0 .../{index.html => index.md} | 0 files/ru/conflicting/web/css/cursor/{index.html => index.md} | 0 .../html/element/input/datetime-local/{index.html => index.md} | 0 files/ru/conflicting/web/http/status/404/{index.html => index.md} | 0 files/ru/conflicting/web/http/status/502/{index.html => index.md} | 0 .../inheritance_and_the_prototype_chain/{index.html => index.md} | 0 .../javascript_technologies_overview/{index.html => index.md} | 0 .../{index.html => index.md} | 0 .../deprecated_and_obsolete_features/{index.html => index.md} | 0 .../reference/errors/unexpected_type/{index.html => index.md} | 0 .../global_objects/array/tostring/{index.html => index.md} | 0 .../global_objects/boolean/tostring/{index.html => index.md} | 0 .../global_objects/date/tostring/{index.html => index.md} | 0 .../global_objects/error/tostring/{index.html => index.md} | 0 .../global_objects/function/tostring/{index.html => index.md} | 0 .../javascript/reference/global_objects/{index.html => index.md} | 0 .../global_objects/number/tostring/{index.html => index.md} | 0 .../global_objects/object/tostring/{index.html => index.md} | 0 .../global_objects/regexp/tostring/{index.html => index.md} | 0 .../reference/global_objects/string/{index.html => index.md} | 0 .../global_objects/string/tostring/{index.html => index.md} | 0 .../{index.html => index.md} | 0 .../{index.html => index.md} | 0 .../reference/global_objects/symbol/{index.html => index.md} | 0 files/ru/conflicting/web/manifest/{index.html => index.md} | 0 .../{index.html => index.md} | 0 .../{index.html => index.md} | 0 files/ru/conflicting/web/web_components/{index.html => index.md} | 0 55 files changed, 0 insertions(+), 0 deletions(-) rename files/ru/conflicting/learn/javascript/asynchronous/{index.html => index.md} (100%) rename files/ru/conflicting/learn/javascript/asynchronous/introducing/{index.html => index.md} (100%) rename files/ru/conflicting/learn/javascript/objects/classes_in_javascript/{index.html => index.md} (100%) rename files/ru/conflicting/mdn/writing_guidelines/{index.html => index.md} (100%) rename files/ru/conflicting/mdn/writing_guidelines/page_structures/live_samples/{index.html => index.md} (100%) rename files/ru/conflicting/web/api/abortsignal/abort_event/{index.html => index.md} (100%) rename files/ru/conflicting/web/api/canvasrenderingcontext2d/{index.html => index.md} (100%) rename files/ru/conflicting/web/api/element/clientheight/{index.html => index.md} (100%) rename files/ru/conflicting/web/api/element/keydown_event/{index.html => index.md} (100%) rename files/ru/conflicting/web/api/element/keypress_event/{index.html => index.md} (100%) rename files/ru/conflicting/web/api/element/mousedown_event/{index.html => index.md} (100%) rename files/ru/conflicting/web/api/element/mouseup_event/{index.html => index.md} (100%) rename files/ru/conflicting/web/api/eventtarget/addeventlistener/{index.html => index.md} (100%) rename files/ru/conflicting/web/api/file/name/{index.html => index.md} (100%) rename files/ru/conflicting/web/api/geolocation/getcurrentposition/{index.html => index.md} (100%) rename files/ru/conflicting/web/api/htmlelement/dragstart_event/{index.html => index.md} (100%) rename files/ru/conflicting/web/api/htmlmediaelement/abort_event/{index.html => index.md} (100%) rename files/ru/conflicting/web/api/pointer_events/{index.html => index.md} (100%) rename files/ru/conflicting/web/api/uievent/which/{index.html => index.md} (100%) rename files/ru/conflicting/web/api/window/beforeunload_event/{index.html => index.md} (100%) rename files/ru/conflicting/web/api/window/deviceorientation_event/{index.html => index.md} (100%) rename files/ru/conflicting/web/api/window/gamepadconnected_event/{index.html => index.md} (100%) rename files/ru/conflicting/web/api/window/gamepaddisconnected_event/{index.html => index.md} (100%) rename files/ru/conflicting/web/api/window/hashchange_event/{index.html => index.md} (100%) rename files/ru/conflicting/web/api/window/load_event/{index.html => index.md} (100%) rename files/ru/conflicting/web/api/window/popstate_event/{index.html => index.md} (100%) rename files/ru/conflicting/web/css/css_fonts/{index.html => index.md} (100%) rename files/ru/conflicting/web/css/css_fonts_25d4b407d3e5044aeffb97faa9669a95/{index.html => index.md} (100%) rename files/ru/conflicting/web/css/cursor/{index.html => index.md} (100%) rename files/ru/conflicting/web/html/element/input/datetime-local/{index.html => index.md} (100%) rename files/ru/conflicting/web/http/status/404/{index.html => index.md} (100%) rename files/ru/conflicting/web/http/status/502/{index.html => index.md} (100%) rename files/ru/conflicting/web/javascript/inheritance_and_the_prototype_chain/{index.html => index.md} (100%) rename files/ru/conflicting/web/javascript/javascript_technologies_overview/{index.html => index.md} (100%) rename files/ru/conflicting/web/javascript/javascript_technologies_overview_0191f05ec18a4ee4d771b548feb0701d/{index.html => index.md} (100%) rename files/ru/conflicting/web/javascript/reference/deprecated_and_obsolete_features/{index.html => index.md} (100%) rename files/ru/conflicting/web/javascript/reference/errors/unexpected_type/{index.html => index.md} (100%) rename files/ru/conflicting/web/javascript/reference/global_objects/array/tostring/{index.html => index.md} (100%) rename files/ru/conflicting/web/javascript/reference/global_objects/boolean/tostring/{index.html => index.md} (100%) rename files/ru/conflicting/web/javascript/reference/global_objects/date/tostring/{index.html => index.md} (100%) rename files/ru/conflicting/web/javascript/reference/global_objects/error/tostring/{index.html => index.md} (100%) rename files/ru/conflicting/web/javascript/reference/global_objects/function/tostring/{index.html => index.md} (100%) rename files/ru/conflicting/web/javascript/reference/global_objects/{index.html => index.md} (100%) rename files/ru/conflicting/web/javascript/reference/global_objects/number/tostring/{index.html => index.md} (100%) rename files/ru/conflicting/web/javascript/reference/global_objects/object/tostring/{index.html => index.md} (100%) rename files/ru/conflicting/web/javascript/reference/global_objects/regexp/tostring/{index.html => index.md} (100%) rename files/ru/conflicting/web/javascript/reference/global_objects/string/{index.html => index.md} (100%) rename files/ru/conflicting/web/javascript/reference/global_objects/string/tostring/{index.html => index.md} (100%) rename files/ru/conflicting/web/javascript/reference/global_objects/string_6fa58bba0570d663099f0ae7ae8883ab/{index.html => index.md} (100%) rename files/ru/conflicting/web/javascript/reference/global_objects/string_9094f63a1f7efd350dd69d6a8ae174fb/{index.html => index.md} (100%) rename files/ru/conflicting/web/javascript/reference/global_objects/symbol/{index.html => index.md} (100%) rename files/ru/conflicting/web/manifest/{index.html => index.md} (100%) rename files/ru/conflicting/web/manifest_7ec32c6987e59d5f1cb08f8c9d900a4c/{index.html => index.md} (100%) rename files/ru/conflicting/web/manifest_e8c4835b067e177a000dc29c18483205/{index.html => index.md} (100%) rename files/ru/conflicting/web/web_components/{index.html => index.md} (100%) diff --git a/files/ru/conflicting/learn/javascript/asynchronous/index.html b/files/ru/conflicting/learn/javascript/asynchronous/index.md similarity index 100% rename from files/ru/conflicting/learn/javascript/asynchronous/index.html rename to files/ru/conflicting/learn/javascript/asynchronous/index.md diff --git a/files/ru/conflicting/learn/javascript/asynchronous/introducing/index.html b/files/ru/conflicting/learn/javascript/asynchronous/introducing/index.md similarity index 100% rename from files/ru/conflicting/learn/javascript/asynchronous/introducing/index.html rename to files/ru/conflicting/learn/javascript/asynchronous/introducing/index.md diff --git a/files/ru/conflicting/learn/javascript/objects/classes_in_javascript/index.html b/files/ru/conflicting/learn/javascript/objects/classes_in_javascript/index.md similarity index 100% rename from files/ru/conflicting/learn/javascript/objects/classes_in_javascript/index.html rename to files/ru/conflicting/learn/javascript/objects/classes_in_javascript/index.md diff --git a/files/ru/conflicting/mdn/writing_guidelines/index.html b/files/ru/conflicting/mdn/writing_guidelines/index.md similarity index 100% rename from files/ru/conflicting/mdn/writing_guidelines/index.html rename to files/ru/conflicting/mdn/writing_guidelines/index.md diff --git a/files/ru/conflicting/mdn/writing_guidelines/page_structures/live_samples/index.html b/files/ru/conflicting/mdn/writing_guidelines/page_structures/live_samples/index.md similarity index 100% rename from files/ru/conflicting/mdn/writing_guidelines/page_structures/live_samples/index.html rename to files/ru/conflicting/mdn/writing_guidelines/page_structures/live_samples/index.md diff --git a/files/ru/conflicting/web/api/abortsignal/abort_event/index.html b/files/ru/conflicting/web/api/abortsignal/abort_event/index.md similarity index 100% rename from files/ru/conflicting/web/api/abortsignal/abort_event/index.html rename to files/ru/conflicting/web/api/abortsignal/abort_event/index.md diff --git a/files/ru/conflicting/web/api/canvasrenderingcontext2d/index.html b/files/ru/conflicting/web/api/canvasrenderingcontext2d/index.md similarity index 100% rename from files/ru/conflicting/web/api/canvasrenderingcontext2d/index.html rename to files/ru/conflicting/web/api/canvasrenderingcontext2d/index.md diff --git a/files/ru/conflicting/web/api/element/clientheight/index.html b/files/ru/conflicting/web/api/element/clientheight/index.md similarity index 100% rename from files/ru/conflicting/web/api/element/clientheight/index.html rename to files/ru/conflicting/web/api/element/clientheight/index.md diff --git a/files/ru/conflicting/web/api/element/keydown_event/index.html b/files/ru/conflicting/web/api/element/keydown_event/index.md similarity index 100% rename from files/ru/conflicting/web/api/element/keydown_event/index.html rename to files/ru/conflicting/web/api/element/keydown_event/index.md diff --git a/files/ru/conflicting/web/api/element/keypress_event/index.html b/files/ru/conflicting/web/api/element/keypress_event/index.md similarity index 100% rename from files/ru/conflicting/web/api/element/keypress_event/index.html rename to files/ru/conflicting/web/api/element/keypress_event/index.md diff --git a/files/ru/conflicting/web/api/element/mousedown_event/index.html b/files/ru/conflicting/web/api/element/mousedown_event/index.md similarity index 100% rename from files/ru/conflicting/web/api/element/mousedown_event/index.html rename to files/ru/conflicting/web/api/element/mousedown_event/index.md diff --git a/files/ru/conflicting/web/api/element/mouseup_event/index.html b/files/ru/conflicting/web/api/element/mouseup_event/index.md similarity index 100% rename from files/ru/conflicting/web/api/element/mouseup_event/index.html rename to files/ru/conflicting/web/api/element/mouseup_event/index.md diff --git a/files/ru/conflicting/web/api/eventtarget/addeventlistener/index.html b/files/ru/conflicting/web/api/eventtarget/addeventlistener/index.md similarity index 100% rename from files/ru/conflicting/web/api/eventtarget/addeventlistener/index.html rename to files/ru/conflicting/web/api/eventtarget/addeventlistener/index.md diff --git a/files/ru/conflicting/web/api/file/name/index.html b/files/ru/conflicting/web/api/file/name/index.md similarity index 100% rename from files/ru/conflicting/web/api/file/name/index.html rename to files/ru/conflicting/web/api/file/name/index.md diff --git a/files/ru/conflicting/web/api/geolocation/getcurrentposition/index.html b/files/ru/conflicting/web/api/geolocation/getcurrentposition/index.md similarity index 100% rename from files/ru/conflicting/web/api/geolocation/getcurrentposition/index.html rename to files/ru/conflicting/web/api/geolocation/getcurrentposition/index.md diff --git a/files/ru/conflicting/web/api/htmlelement/dragstart_event/index.html b/files/ru/conflicting/web/api/htmlelement/dragstart_event/index.md similarity index 100% rename from files/ru/conflicting/web/api/htmlelement/dragstart_event/index.html rename to files/ru/conflicting/web/api/htmlelement/dragstart_event/index.md diff --git a/files/ru/conflicting/web/api/htmlmediaelement/abort_event/index.html b/files/ru/conflicting/web/api/htmlmediaelement/abort_event/index.md similarity index 100% rename from files/ru/conflicting/web/api/htmlmediaelement/abort_event/index.html rename to files/ru/conflicting/web/api/htmlmediaelement/abort_event/index.md diff --git a/files/ru/conflicting/web/api/pointer_events/index.html b/files/ru/conflicting/web/api/pointer_events/index.md similarity index 100% rename from files/ru/conflicting/web/api/pointer_events/index.html rename to files/ru/conflicting/web/api/pointer_events/index.md diff --git a/files/ru/conflicting/web/api/uievent/which/index.html b/files/ru/conflicting/web/api/uievent/which/index.md similarity index 100% rename from files/ru/conflicting/web/api/uievent/which/index.html rename to files/ru/conflicting/web/api/uievent/which/index.md diff --git a/files/ru/conflicting/web/api/window/beforeunload_event/index.html b/files/ru/conflicting/web/api/window/beforeunload_event/index.md similarity index 100% rename from files/ru/conflicting/web/api/window/beforeunload_event/index.html rename to files/ru/conflicting/web/api/window/beforeunload_event/index.md diff --git a/files/ru/conflicting/web/api/window/deviceorientation_event/index.html b/files/ru/conflicting/web/api/window/deviceorientation_event/index.md similarity index 100% rename from files/ru/conflicting/web/api/window/deviceorientation_event/index.html rename to files/ru/conflicting/web/api/window/deviceorientation_event/index.md diff --git a/files/ru/conflicting/web/api/window/gamepadconnected_event/index.html b/files/ru/conflicting/web/api/window/gamepadconnected_event/index.md similarity index 100% rename from files/ru/conflicting/web/api/window/gamepadconnected_event/index.html rename to files/ru/conflicting/web/api/window/gamepadconnected_event/index.md diff --git a/files/ru/conflicting/web/api/window/gamepaddisconnected_event/index.html b/files/ru/conflicting/web/api/window/gamepaddisconnected_event/index.md similarity index 100% rename from files/ru/conflicting/web/api/window/gamepaddisconnected_event/index.html rename to files/ru/conflicting/web/api/window/gamepaddisconnected_event/index.md diff --git a/files/ru/conflicting/web/api/window/hashchange_event/index.html b/files/ru/conflicting/web/api/window/hashchange_event/index.md similarity index 100% rename from files/ru/conflicting/web/api/window/hashchange_event/index.html rename to files/ru/conflicting/web/api/window/hashchange_event/index.md diff --git a/files/ru/conflicting/web/api/window/load_event/index.html b/files/ru/conflicting/web/api/window/load_event/index.md similarity index 100% rename from files/ru/conflicting/web/api/window/load_event/index.html rename to files/ru/conflicting/web/api/window/load_event/index.md diff --git a/files/ru/conflicting/web/api/window/popstate_event/index.html b/files/ru/conflicting/web/api/window/popstate_event/index.md similarity index 100% rename from files/ru/conflicting/web/api/window/popstate_event/index.html rename to files/ru/conflicting/web/api/window/popstate_event/index.md diff --git a/files/ru/conflicting/web/css/css_fonts/index.html b/files/ru/conflicting/web/css/css_fonts/index.md similarity index 100% rename from files/ru/conflicting/web/css/css_fonts/index.html rename to files/ru/conflicting/web/css/css_fonts/index.md diff --git a/files/ru/conflicting/web/css/css_fonts_25d4b407d3e5044aeffb97faa9669a95/index.html b/files/ru/conflicting/web/css/css_fonts_25d4b407d3e5044aeffb97faa9669a95/index.md similarity index 100% rename from files/ru/conflicting/web/css/css_fonts_25d4b407d3e5044aeffb97faa9669a95/index.html rename to files/ru/conflicting/web/css/css_fonts_25d4b407d3e5044aeffb97faa9669a95/index.md diff --git a/files/ru/conflicting/web/css/cursor/index.html b/files/ru/conflicting/web/css/cursor/index.md similarity index 100% rename from files/ru/conflicting/web/css/cursor/index.html rename to files/ru/conflicting/web/css/cursor/index.md diff --git a/files/ru/conflicting/web/html/element/input/datetime-local/index.html b/files/ru/conflicting/web/html/element/input/datetime-local/index.md similarity index 100% rename from files/ru/conflicting/web/html/element/input/datetime-local/index.html rename to files/ru/conflicting/web/html/element/input/datetime-local/index.md diff --git a/files/ru/conflicting/web/http/status/404/index.html b/files/ru/conflicting/web/http/status/404/index.md similarity index 100% rename from files/ru/conflicting/web/http/status/404/index.html rename to files/ru/conflicting/web/http/status/404/index.md diff --git a/files/ru/conflicting/web/http/status/502/index.html b/files/ru/conflicting/web/http/status/502/index.md similarity index 100% rename from files/ru/conflicting/web/http/status/502/index.html rename to files/ru/conflicting/web/http/status/502/index.md diff --git a/files/ru/conflicting/web/javascript/inheritance_and_the_prototype_chain/index.html b/files/ru/conflicting/web/javascript/inheritance_and_the_prototype_chain/index.md similarity index 100% rename from files/ru/conflicting/web/javascript/inheritance_and_the_prototype_chain/index.html rename to files/ru/conflicting/web/javascript/inheritance_and_the_prototype_chain/index.md diff --git a/files/ru/conflicting/web/javascript/javascript_technologies_overview/index.html b/files/ru/conflicting/web/javascript/javascript_technologies_overview/index.md similarity index 100% rename from files/ru/conflicting/web/javascript/javascript_technologies_overview/index.html rename to files/ru/conflicting/web/javascript/javascript_technologies_overview/index.md diff --git a/files/ru/conflicting/web/javascript/javascript_technologies_overview_0191f05ec18a4ee4d771b548feb0701d/index.html b/files/ru/conflicting/web/javascript/javascript_technologies_overview_0191f05ec18a4ee4d771b548feb0701d/index.md similarity index 100% rename from files/ru/conflicting/web/javascript/javascript_technologies_overview_0191f05ec18a4ee4d771b548feb0701d/index.html rename to files/ru/conflicting/web/javascript/javascript_technologies_overview_0191f05ec18a4ee4d771b548feb0701d/index.md diff --git a/files/ru/conflicting/web/javascript/reference/deprecated_and_obsolete_features/index.html b/files/ru/conflicting/web/javascript/reference/deprecated_and_obsolete_features/index.md similarity index 100% rename from files/ru/conflicting/web/javascript/reference/deprecated_and_obsolete_features/index.html rename to files/ru/conflicting/web/javascript/reference/deprecated_and_obsolete_features/index.md diff --git a/files/ru/conflicting/web/javascript/reference/errors/unexpected_type/index.html b/files/ru/conflicting/web/javascript/reference/errors/unexpected_type/index.md similarity index 100% rename from files/ru/conflicting/web/javascript/reference/errors/unexpected_type/index.html rename to files/ru/conflicting/web/javascript/reference/errors/unexpected_type/index.md diff --git a/files/ru/conflicting/web/javascript/reference/global_objects/array/tostring/index.html b/files/ru/conflicting/web/javascript/reference/global_objects/array/tostring/index.md similarity index 100% rename from files/ru/conflicting/web/javascript/reference/global_objects/array/tostring/index.html rename to files/ru/conflicting/web/javascript/reference/global_objects/array/tostring/index.md diff --git a/files/ru/conflicting/web/javascript/reference/global_objects/boolean/tostring/index.html b/files/ru/conflicting/web/javascript/reference/global_objects/boolean/tostring/index.md similarity index 100% rename from files/ru/conflicting/web/javascript/reference/global_objects/boolean/tostring/index.html rename to files/ru/conflicting/web/javascript/reference/global_objects/boolean/tostring/index.md diff --git a/files/ru/conflicting/web/javascript/reference/global_objects/date/tostring/index.html b/files/ru/conflicting/web/javascript/reference/global_objects/date/tostring/index.md similarity index 100% rename from files/ru/conflicting/web/javascript/reference/global_objects/date/tostring/index.html rename to files/ru/conflicting/web/javascript/reference/global_objects/date/tostring/index.md diff --git a/files/ru/conflicting/web/javascript/reference/global_objects/error/tostring/index.html b/files/ru/conflicting/web/javascript/reference/global_objects/error/tostring/index.md similarity index 100% rename from files/ru/conflicting/web/javascript/reference/global_objects/error/tostring/index.html rename to files/ru/conflicting/web/javascript/reference/global_objects/error/tostring/index.md diff --git a/files/ru/conflicting/web/javascript/reference/global_objects/function/tostring/index.html b/files/ru/conflicting/web/javascript/reference/global_objects/function/tostring/index.md similarity index 100% rename from files/ru/conflicting/web/javascript/reference/global_objects/function/tostring/index.html rename to files/ru/conflicting/web/javascript/reference/global_objects/function/tostring/index.md diff --git a/files/ru/conflicting/web/javascript/reference/global_objects/index.html b/files/ru/conflicting/web/javascript/reference/global_objects/index.md similarity index 100% rename from files/ru/conflicting/web/javascript/reference/global_objects/index.html rename to files/ru/conflicting/web/javascript/reference/global_objects/index.md diff --git a/files/ru/conflicting/web/javascript/reference/global_objects/number/tostring/index.html b/files/ru/conflicting/web/javascript/reference/global_objects/number/tostring/index.md similarity index 100% rename from files/ru/conflicting/web/javascript/reference/global_objects/number/tostring/index.html rename to files/ru/conflicting/web/javascript/reference/global_objects/number/tostring/index.md diff --git a/files/ru/conflicting/web/javascript/reference/global_objects/object/tostring/index.html b/files/ru/conflicting/web/javascript/reference/global_objects/object/tostring/index.md similarity index 100% rename from files/ru/conflicting/web/javascript/reference/global_objects/object/tostring/index.html rename to files/ru/conflicting/web/javascript/reference/global_objects/object/tostring/index.md diff --git a/files/ru/conflicting/web/javascript/reference/global_objects/regexp/tostring/index.html b/files/ru/conflicting/web/javascript/reference/global_objects/regexp/tostring/index.md similarity index 100% rename from files/ru/conflicting/web/javascript/reference/global_objects/regexp/tostring/index.html rename to files/ru/conflicting/web/javascript/reference/global_objects/regexp/tostring/index.md diff --git a/files/ru/conflicting/web/javascript/reference/global_objects/string/index.html b/files/ru/conflicting/web/javascript/reference/global_objects/string/index.md similarity index 100% rename from files/ru/conflicting/web/javascript/reference/global_objects/string/index.html rename to files/ru/conflicting/web/javascript/reference/global_objects/string/index.md diff --git a/files/ru/conflicting/web/javascript/reference/global_objects/string/tostring/index.html b/files/ru/conflicting/web/javascript/reference/global_objects/string/tostring/index.md similarity index 100% rename from files/ru/conflicting/web/javascript/reference/global_objects/string/tostring/index.html rename to files/ru/conflicting/web/javascript/reference/global_objects/string/tostring/index.md diff --git a/files/ru/conflicting/web/javascript/reference/global_objects/string_6fa58bba0570d663099f0ae7ae8883ab/index.html b/files/ru/conflicting/web/javascript/reference/global_objects/string_6fa58bba0570d663099f0ae7ae8883ab/index.md similarity index 100% rename from files/ru/conflicting/web/javascript/reference/global_objects/string_6fa58bba0570d663099f0ae7ae8883ab/index.html rename to files/ru/conflicting/web/javascript/reference/global_objects/string_6fa58bba0570d663099f0ae7ae8883ab/index.md diff --git a/files/ru/conflicting/web/javascript/reference/global_objects/string_9094f63a1f7efd350dd69d6a8ae174fb/index.html b/files/ru/conflicting/web/javascript/reference/global_objects/string_9094f63a1f7efd350dd69d6a8ae174fb/index.md similarity index 100% rename from files/ru/conflicting/web/javascript/reference/global_objects/string_9094f63a1f7efd350dd69d6a8ae174fb/index.html rename to files/ru/conflicting/web/javascript/reference/global_objects/string_9094f63a1f7efd350dd69d6a8ae174fb/index.md diff --git a/files/ru/conflicting/web/javascript/reference/global_objects/symbol/index.html b/files/ru/conflicting/web/javascript/reference/global_objects/symbol/index.md similarity index 100% rename from files/ru/conflicting/web/javascript/reference/global_objects/symbol/index.html rename to files/ru/conflicting/web/javascript/reference/global_objects/symbol/index.md diff --git a/files/ru/conflicting/web/manifest/index.html b/files/ru/conflicting/web/manifest/index.md similarity index 100% rename from files/ru/conflicting/web/manifest/index.html rename to files/ru/conflicting/web/manifest/index.md diff --git a/files/ru/conflicting/web/manifest_7ec32c6987e59d5f1cb08f8c9d900a4c/index.html b/files/ru/conflicting/web/manifest_7ec32c6987e59d5f1cb08f8c9d900a4c/index.md similarity index 100% rename from files/ru/conflicting/web/manifest_7ec32c6987e59d5f1cb08f8c9d900a4c/index.html rename to files/ru/conflicting/web/manifest_7ec32c6987e59d5f1cb08f8c9d900a4c/index.md diff --git a/files/ru/conflicting/web/manifest_e8c4835b067e177a000dc29c18483205/index.html b/files/ru/conflicting/web/manifest_e8c4835b067e177a000dc29c18483205/index.md similarity index 100% rename from files/ru/conflicting/web/manifest_e8c4835b067e177a000dc29c18483205/index.html rename to files/ru/conflicting/web/manifest_e8c4835b067e177a000dc29c18483205/index.md diff --git a/files/ru/conflicting/web/web_components/index.html b/files/ru/conflicting/web/web_components/index.md similarity index 100% rename from files/ru/conflicting/web/web_components/index.html rename to files/ru/conflicting/web/web_components/index.md From 788a812f957684741537034b6d9214a858f99037 Mon Sep 17 00:00:00 2001 From: allo Date: Sun, 20 Nov 2022 21:42:48 +0800 Subject: [PATCH 3/3] convert to markdown for conflicting --- .../learn/javascript/asynchronous/index.md | 846 +++++++++--------- .../asynchronous/introducing/index.md | 183 ++-- .../objects/classes_in_javascript/index.md | 401 +++++---- .../mdn/writing_guidelines/index.md | 8 +- .../page_structures/live_samples/index.md | 114 ++- .../web/api/abortsignal/abort_event/index.md | 33 +- .../web/api/canvasrenderingcontext2d/index.md | 61 +- .../web/api/element/clientheight/index.md | 47 +- .../web/api/element/keydown_event/index.md | 65 +- .../web/api/element/keypress_event/index.md | 64 +- .../web/api/element/mousedown_event/index.md | 23 +- .../web/api/element/mouseup_event/index.md | 47 +- .../api/eventtarget/addeventlistener/index.md | 77 +- .../ru/conflicting/web/api/file/name/index.md | 30 +- .../geolocation/getcurrentposition/index.md | 40 +- .../api/htmlelement/dragstart_event/index.md | 99 +- .../api/htmlmediaelement/abort_event/index.md | 59 +- .../web/api/pointer_events/index.md | 69 +- .../web/api/uievent/which/index.md | 45 +- .../api/window/beforeunload_event/index.md | 88 +- .../window/deviceorientation_event/index.md | 29 +- .../window/gamepadconnected_event/index.md | 41 +- .../window/gamepaddisconnected_event/index.md | 39 +- .../web/api/window/hashchange_event/index.md | 120 +-- .../web/api/window/load_event/index.md | 65 +- .../web/api/window/popstate_event/index.md | 52 +- .../ru/conflicting/web/css/css_fonts/index.md | 40 +- .../index.md | 65 +- files/ru/conflicting/web/css/cursor/index.md | 149 +-- .../element/input/datetime-local/index.md | 16 +- .../conflicting/web/http/status/404/index.md | 10 +- .../conflicting/web/http/status/502/index.md | 12 +- .../index.md | 745 +++++++-------- .../javascript_technologies_overview/index.md | 87 +- .../index.md | 74 +- .../deprecated_and_obsolete_features/index.md | 33 +- .../reference/errors/unexpected_type/index.md | 45 +- .../global_objects/array/tostring/index.md | 90 +- .../global_objects/boolean/tostring/index.md | 79 +- .../global_objects/date/tostring/index.md | 79 +- .../global_objects/error/tostring/index.md | 70 +- .../global_objects/function/tostring/index.md | 74 +- .../reference/global_objects/index.md | 59 +- .../global_objects/number/tostring/index.md | 55 +- .../global_objects/object/tostring/index.md | 125 ++- .../global_objects/regexp/tostring/index.md | 54 +- .../reference/global_objects/string/index.md | 31 +- .../global_objects/string/tostring/index.md | 73 +- .../index.md | 53 +- .../index.md | 35 +- .../reference/global_objects/symbol/index.md | 24 +- files/ru/conflicting/web/manifest/index.md | 102 +-- .../index.md | 76 +- .../index.md | 93 +- .../conflicting/web/web_components/index.md | 44 +- 55 files changed, 2514 insertions(+), 2723 deletions(-) diff --git a/files/ru/conflicting/learn/javascript/asynchronous/index.md b/files/ru/conflicting/learn/javascript/asynchronous/index.md index 8e71064fc4cc0f..dd26318c1a3221 100644 --- a/files/ru/conflicting/learn/javascript/asynchronous/index.md +++ b/files/ru/conflicting/learn/javascript/asynchronous/index.md @@ -5,73 +5,72 @@ translation_of: Learn/JavaScript/Asynchronous/Timeouts_and_intervals original_slug: Learn/JavaScript/Asynchronous/Timeouts_and_intervals --- -
    {{LearnSidebar}}
    +{{LearnSidebar}}{{PreviousMenuNext("Learn/JavaScript/Asynchronous/Introducing", "Learn/JavaScript/Asynchronous/Promises", "Learn/JavaScript/Asynchronous")}} -
    {{PreviousMenuNext("Learn/JavaScript/Asynchronous/Introducing", "Learn/JavaScript/Asynchronous/Promises", "Learn/JavaScript/Asynchronous")}}
    - -

    В этом руководстве рассматриваются традиционные методы, доступные в JavaScript для асинхронного выполнения кода по истечении заданного периода времени или через регулярный интервал (например, заданное количество раз в секунду), обсуждаются их полезные свойства и рассматриваются присущие им проблемы. .

    +В этом руководстве рассматриваются традиционные методы, доступные в JavaScript для асинхронного выполнения кода по истечении заданного периода времени или через регулярный интервал (например, заданное количество раз в секунду), обсуждаются их полезные свойства и рассматриваются присущие им проблемы. . - - - - - - - - - - + + + + + + + + + +
    Необходимые условия:Базовая компьютерная грамотность, достаточное понимание основ JavaScript.
    Цель:Понимание асинхронных циклов и интервалов, и то как их можно использовать.
    Необходимые условия: + Базовая компьютерная грамотность, достаточное понимание основ + JavaScript. +
    Цель: + Понимание асинхронных циклов и интервалов, и то как их можно + использовать. +
    -

    Введение

    - -

    В течение долгого времени веб-платформа предлагала программистам JavaScript ряд функций, которые позволяли им асинхронно выполнять код по истечении определённого временного интервала и повторно выполнять асинхронный блок кода, пока вы не скажете ему остановиться.

    +## Введение -

    Эти функции:

    +В течение долгого времени веб-платформа предлагала программистам JavaScript ряд функций, которые позволяли им асинхронно выполнять код по истечении определённого временного интервала и повторно выполнять асинхронный блок кода, пока вы не скажете ему остановиться. -
    -
    setTimeout()
    -
    Выполняет указанный блок кода один раз по истечении указанного времени
    -
    setInterval()
    -
    Выполняет указанный блок кода несколько раз с определённым интервалом между каждым вызовом.
    -
    requestAnimationFrame()
    -
    Современная версия setInterval (). Выполняют указанный блок кода перед тем, как браузер в следующий раз перерисовывает отображение, позволяя запускать анимацию с подходящей частотой кадров независимо от среды, в которой она выполняется.
    -
    +Эти функции: -

    Асинхронный код, установленный этими функциями, выполняется в основном потоке (по истечении указанного им таймера).

    +- [`setTimeout()`](/en-US/docs/Web/API/WindowOrWorkerGlobalScope/setTimeout) + - : Выполняет указанный блок кода один раз по истечении указанного времени +- [`setInterval()`](/en-US/docs/Web/API/WindowOrWorkerGlobalScope/setInterval) + - : Выполняет указанный блок кода несколько раз с определённым интервалом между каждым вызовом. +- [`requestAnimationFrame()`](/en-US/docs/Web/API/window/requestAnimationFrame) + - : Современная версия setInterval (). Выполняют указанный блок кода перед тем, как браузер в следующий раз перерисовывает отображение, позволяя запускать анимацию с подходящей частотой кадров независимо от среды, в которой она выполняется. -
    -

    Важно знать, что вы можете (и часто будете) запускать другой код до выполнения вызова setTimeout () или между итерациями setInterval (). В зависимости от того, насколько интенсивно используются эти операции для процессора, они могут ещё больше задержать выполнение асинхронного кода, поскольку любой асинхронный код будет выполняться только после того, как станет доступен основной поток. (Другими словами, когда стек пуст.) вы узнаете больше по этому вопросу по мере изучения этой статьи.

    -
    +Асинхронный код, установленный этими функциями, выполняется в основном потоке (по истечении указанного им таймера). -

    В любом случае эти функции используются для запуска постоянной анимации и другой фоновой обработки на веб-сайте или в приложении. В следующих разделах мы покажем вам, как их можно использовать.

    +Важно знать, что вы можете (и часто будете) запускать другой код до выполнения вызова setTimeout () или между итерациями setInterval (). В зависимости от того, насколько интенсивно используются эти операции для процессора, они могут ещё больше задержать выполнение асинхронного кода, поскольку любой асинхронный код будет выполняться только после того, как станет доступен основной поток. (Другими словами, когда стек пуст.) вы узнаете больше по этому вопросу по мере изучения этой статьи. -

    setTimeout()

    +В любом случае эти функции используются для запуска постоянной анимации и другой фоновой обработки на веб-сайте или в приложении. В следующих разделах мы покажем вам, как их можно использовать. -

    Как мы ранее отметили, setTimeout () выполняет определённый блок кода один раз по истечении заданного времени. Принимает следующие параметры:

    +## setTimeout() -
      -
    • Функция для запуска или ссылка на функцию, определённую в другом месте.
    • -
    • Число, представляющее интервал времени в миллисекундах (1000 миллисекунд равняется 1 секунде) ожидания перед выполнением кода. Если вы укажете значение 0 (или просто опустите значение), функция запустится как можно скорее. (См. Примечание ниже о том, почему он запускается «как можно скорее», а не «сразу».) Подробнее о том, почему вы, возможно, захотите сделать это позже.
    • -
    • Значений, представляющие любые параметры, которые вы хотите передать функции при её запуске.
    • -
    +Как мы ранее отметили, setTimeout () выполняет определённый блок кода один раз по истечении заданного времени. Принимает следующие параметры: -
    -

    NOTE: Указанное время (или задержка) не является гарантированным временем выполнения, а скорее минимальным временем выполнения. Обратные вызовы, которые вы передаёте этим функциям, не могут выполняться, пока стек в основном потоке не станет пустым.

    +- Функция для запуска или ссылка на функцию, определённую в другом месте. +- Число, представляющее интервал времени в миллисекундах (1000 миллисекунд равняется 1 секунде) ожидания перед выполнением кода. Если вы укажете значение 0 (или просто опустите значение), функция запустится как можно скорее. (См. Примечание ниже о том, почему он запускается «как можно скорее», а не «сразу».) Подробнее о том, почему вы, возможно, захотите сделать это позже. +- Значений, представляющие любые параметры, которые вы хотите передать функции при её запуске. -

    Как следствие, такой код, как setTimeout (fn, 0), будет выполняться, как только стек будет пуст, а не сразу. Если вы выполните такой код, как setTimeout (fn, 0), но сразу после выполнения цикла, который насчитывает от 1 до 10 миллиардов, ваш колбэк будет выполнен через несколько секунд.

    -
    +> **Примечание:** **NOTE:** Указанное время (или задержка) не является гарантированным временем выполнения, а скорее минимальным временем выполнения. Обратные вызовы, которые вы передаёте этим функциям, не могут выполняться, пока стек в основном потоке не станет пустым. +> +> Как следствие, такой код, как setTimeout (fn, 0), будет выполняться, как только стек будет пуст, а не сразу. Если вы выполните такой код, как setTimeout (fn, 0), но сразу после выполнения цикла, который насчитывает от 1 до 10 миллиардов, ваш колбэк будет выполнен через несколько секунд. -

    В следующем примере, браузер будет ожидать две секунды перед тем как выполнит анонимную функцию, тогда отобразит сообщение (живой пример, и исходный код):

    +В следующем примере, браузер будет ожидать две секунды перед тем как выполнит анонимную функцию, тогда отобразит сообщение ([живой пример](https://mdn.github.io/learning-area/javascript/asynchronous/loops-and-intervals/simple-settimeout.html), и [исходный код](https://github.com/mdn/learning-area/blob/master/javascript/asynchronous/loops-and-intervals/simple-settimeout.html)): -
    let myGreeting = setTimeout(function() {
    +```js
    +let myGreeting = setTimeout(function() {
       alert('Hello, Mr. Universe!');
    -}, 2000)
    +}, 2000) +``` -

    Указанные вами функции не обязательно должны быть анонимными. Вы можете дать своей функции имя и даже определить её где-нибудь ещё и передать ссылку на функцию в setTimeout (). Следующие две версии фрагмента кода эквивалентны первой:

    +Указанные вами функции не обязательно должны быть анонимными. Вы можете дать своей функции имя и даже определить её где-нибудь ещё и передать ссылку на функцию в setTimeout (). Следующие две версии фрагмента кода эквивалентны первой: -
    // С именованной функцией
    +```js
    +// С именованной функцией
     let myGreeting = setTimeout(function sayHi() {
       alert('Hello, Mr. Universe!');
     }, 2000)
    @@ -81,224 +80,233 @@ function sayHi() {
       alert('Hello Mr. Universe!');
     }
     
    -let myGreeting = setTimeout(sayHi, 2000);
    +let myGreeting = setTimeout(sayHi, 2000); +``` -

    Это может быть полезно, если у вас есть функция, которую нужно вызывать как по таймауту, так например и в ответ на событие. Но это также может помочь поддерживать ваш код в чистоте, особенно если колбэк тайм-аута занимает больше, чем несколько строк кода.

    +Это может быть полезно, если у вас есть функция, которую нужно вызывать как по таймауту, так например и в ответ на событие. Но это также может помочь поддерживать ваш код в чистоте, особенно если колбэк тайм-аута занимает больше, чем несколько строк кода. -

    setTimeout () возвращает значение идентификатора, которое можно использовать для ссылки на тайм-аут позже, например, когда вы хотите его остановить.

    +`setTimeout()` возвращает значение идентификатора, которое можно использовать для ссылки на тайм-аут позже, например, когда вы хотите его остановить. -

    Передача параметров в функцию setTimeout ()

    +### Передача параметров в функцию setTimeout () -

    Любые параметры, которые вы хотите передать функции, выполняемой внутри setTimeout (), должны быть переданы ей как дополнительные параметры в конце списка.

    +Любые параметры, которые вы хотите передать функции, выполняемой внутри setTimeout (), должны быть переданы ей как дополнительные параметры в конце списка. -

    Например, вы можете реорганизовать предыдущую функцию, чтобы она передавала привет любому имени, переданному ей:

    +Например, вы можете реорганизовать предыдущую функцию, чтобы она передавала привет любому имени, переданному ей: -
    function sayHi(who) {
    +```js
    +function sayHi(who) {
       alert(`Hello ${who}!`);
    -}
    +} +``` -

    Теперь вы можете передать имя в вызов setTimeout () в качестве третьего параметра:

    +Теперь вы можете передать имя в вызов setTimeout () в качестве третьего параметра: -
    let myGreeting = setTimeout(sayHi, 2000, 'Mr. Universe');
    +```js +let myGreeting = setTimeout(sayHi, 2000, 'Mr. Universe'); +``` -

    Очистка таймаутов

    +### Очистка таймаутов -

    Наконец, если был создан тайм-аут, вы можете отменить его до истечения указанного времени, вызвав clearTimeout(), передав ему идентификатор вызова setTimeout() в качестве параметра. Итак, чтобы отменить указанный выше тайм-аут, вы должны сделать следующее:

    +Наконец, если был создан тайм-аут, вы можете отменить его до истечения указанного времени, вызвав [`clearTimeout()`](/en-US/docs/Web/API/WindowOrWorkerGlobalScope/clearTimeout), передав ему идентификатор вызова `setTimeout()` в качестве параметра. Итак, чтобы отменить указанный выше тайм-аут, вы должны сделать следующее: -
    clearTimeout(myGreeting);
    +```js +clearTimeout(myGreeting); +``` -
    -

    Note: См.greeter-app.html для более полной демонстрации, которая позволяет вам указать имя для приветствия и отменить приветствие с помощью отдельной кнопки (см. исходный код).

    -
    +> **Примечание:** См.[`greeter-app.html`](https://mdn.github.io/learning-area/javascript/asynchronous/loops-and-intervals/greeter-app.html) для более полной демонстрации, которая позволяет вам указать имя для приветствия и отменить приветствие с помощью отдельной кнопки ([см. исходный код](https://github.com/mdn/learning-area/blob/master/javascript/asynchronous/loops-and-intervals/greeter-app.html)). -

    setInterval()

    +## setInterval() -

    setTimeout () отлично работает, когда вам нужно один раз запустить код по истечении заданного периода времени. Но что происходит, когда вам нужно запускать код снова и снова - например, в случае анимации?

    +`setTimeout ()` отлично работает, когда вам нужно один раз запустить код по истечении заданного периода времени. Но что происходит, когда вам нужно запускать код снова и снова - например, в случае анимации? -

    Здесь пригодится setInterval() . Работает очень похоже на setTimeout (), за исключением того, что функция, которую вы передаёте в качестве первого параметра, выполняется повторно не менее чем за количество миллисекунд, заданных вторым параметром. Вы также можете передать любые параметры, необходимые для выполняемой функции, в качестве последующих параметров вызова setInterval ().

    +Здесь пригодится [setInterval()](/ru/docs/Web/API/WindowOrWorkerGlobalScope/setInterval) . Работает очень похоже на setTimeout (), за исключением того, что функция, которую вы передаёте в качестве первого параметра, выполняется повторно не менее чем за количество миллисекунд, заданных вторым параметром. Вы также можете передать любые параметры, необходимые для выполняемой функции, в качестве последующих параметров вызова setInterval (). -

    Давайте посмотрим на пример. Следующая функция создаёт новый объект Date(), с помощью toLocaleTimeString() извлекает из него строку с временем и отображает её в пользовательском интерфейсе. Затем он запускает функцию один раз в секунду с помощью setInterval(), создавая эффект цифровых часов, которые обновляются раз в секунду ( реальный пример, и исходный код):

    +Давайте посмотрим на пример. Следующая функция создаёт новый объект [`Date()`](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date), с помощью [`toLocaleTimeString()`](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleTimeString) извлекает из него строку с временем и отображает её в пользовательском интерфейсе. Затем он запускает функцию один раз в секунду с помощью `setInterval()`, создавая эффект цифровых часов, которые обновляются раз в секунду ([реальный пример](https://mdn.github.io/learning-area/javascript/asynchronous/loops-and-intervals/setinterval-clock.html), и [исходный код](https://github.com/mdn/learning-area/blob/master/javascript/asynchronous/loops-and-intervals/setinterval-clock.html)): -
    function displayTime() {
    +```js
    +function displayTime() {
        let date = new Date();
        let time = date.toLocaleTimeString();
        document.getElementById('demo').textContent = time;
     }
     
    -const createClock = setInterval(displayTime, 1000);
    +const createClock = setInterval(displayTime, 1000); +``` -

    Как и setTimeout (), setInterval () возвращает определённое значение, которое вы можете использовать позже, когда вам нужно очистить интервал.

    +Как и `setTimeout ()`, `setInterval ()` возвращает определённое значение, которое вы можете использовать позже, когда вам нужно очистить интервал. -

    Очистка интервала

    +### Очистка интервала -

    setInterval () выполняет задачу постоянно. setInterval () продолжает выполнять задачу вечно, если вы что-то с ней не сделаете. Возможно, вам понадобится способ остановить такие задачи, иначе вы можете получить ошибки, если браузер не сможет выполнить какие-либо другие версии задачи или если анимация, обрабатываемая задачей, завершилась. Вы можете сделать это так же, как останавливаете timeouts - передавая идентификатор, возвращаемый вызовом setInterval (), в функцию clearInterval ():

    +`setInterval()` выполняет задачу постоянно. setInterval () продолжает выполнять задачу вечно, если вы что-то с ней не сделаете. Возможно, вам понадобится способ остановить такие задачи, иначе вы можете получить ошибки, если браузер не сможет выполнить какие-либо другие версии задачи или если анимация, обрабатываемая задачей, завершилась. Вы можете сделать это так же, как останавливаете `timeouts` - передавая идентификатор, возвращаемый вызовом `setInterval()`, в функцию `clearInterval ()`: -
    const myInterval = setInterval(myFunction, 2000);
    +```js
    +const myInterval = setInterval(myFunction, 2000);
     
    -clearInterval(myInterval);
    +clearInterval(myInterval); +``` -

    Активное обучение: Создание собственного секундомера!

    +#### Активное обучение: Создание собственного секундомера! -

    Учитывая все вышесказанное, у нас есть для вас задача. Возьмите копию нашего примера setInterval-clock.html , и измените её так, чтобы создать свой собственный простой секундомер.

    +Учитывая все вышесказанное, у нас есть для вас задача. Возьмите копию нашего примера [`setInterval-clock.html`](https://github.com/mdn/learning-area/blob/master/javascript/asynchronous/loops-and-intervals/setinterval-clock.html) , и измените её так, чтобы создать свой собственный простой секундомер. -

    Вам нужно отображать время, как и раньше, но в этом примере вам нужно:

    +Вам нужно отображать время, как и раньше, но в этом примере вам нужно: -
      -
    • Кнопка "Start" для запуска секундомера.
    • -
    • Кнопка "Stop" для паузы/остановки.
    • -
    • Кнопка "Reset", чтобы сбросить счётчик времени на 0.
    • -
    • Дисплей времени, чтобы отображать количество прошедших секунд а не фактическое время.
    • -
    +- Кнопка "Start" для запуска секундомера. +- Кнопка "Stop" для паузы/остановки. +- Кнопка "Reset", чтобы сбросить счётчик времени на `0`. +- Дисплей времени, чтобы отображать количество прошедших секунд а не фактическое время. -

    Несколько подсказок для вас:

    +Несколько подсказок для вас: -
      -
    • Вы можете структурировать и стилизовать разметку кнопок по своему усмотрению; просто убедитесь, что вы используете семантический HTML с кавычками, которые позволяют захватывать ссылки на кнопки с помощью JavaScript.
    • -
    • Вероятно, вы захотите создать переменную, которая начинается с 0, а затем увеличивается на единицу каждую секунду с использованием постоянного цикла.
    • -
    • Этот пример проще создать без использования объекта Date (), как мы это делали в нашей версии, но он будет менее точен - вы не можете гарантировать, что колбэк сработает ровно через 1000 мс. Более точным способом было бы запустить startTime = Date.now (), чтобы получить метку времени, когда пользователь нажал кнопку запуска, а затем выполнить Date.now () - startTime, чтобы получить количество миллисекунд после того, как была нажата кнопка запуска .
    • -
    • Вам также нужно рассчитать количество часов, минут и секунд как отдельные значения, а затем отображать их вместе в строке после каждой итерации цикла. На втором счётчике вы можете отработать каждую из них.
    • -
    • Как вы могли бы их рассчитать? Подумайте об этом: -
        -
      • В одном часе 3600 секунд.
      • -
      • Количество минут - это количество секунд, оставшееся после вычитания всех часов, разделённое на 60.
      • -
      • Количество секунд будет количеством секунд, оставшихся после вычитания всех минут.
      • -
      -
    • -
    • Вам необходимо включить начальный ноль в отображаемые значения, если сумма меньше 10, чтобы они больше походили на традиционные часы.
    • -
    • Чтобы приостановить секундомер, вам нужно очистить интервал. Чтобы сбросить его, вам нудно установить счётчик обратно на 0, очистить интервал, а затем немедленно обновить отображение.
    • -
    • Вероятно, вам следует отключить кнопку запуска после её нажатия один раз и снова включить её после того, как вы остановили / сбросили её. В противном случае многократное нажатие кнопки запуска приведёт к применению нескольких setInterval () к часам, что приведёт к неправильному поведению.
    • -
    +- Вы можете структурировать и стилизовать разметку кнопок по своему усмотрению; просто убедитесь, что вы используете семантический HTML с кавычками, которые позволяют захватывать ссылки на кнопки с помощью JavaScript. +- Вероятно, вы захотите создать переменную, которая начинается с 0, а затем увеличивается на единицу каждую секунду с использованием постоянного цикла. +- Этот пример проще создать без использования объекта Date (), как мы это делали в нашей версии, но он будет менее точен - вы не можете гарантировать, что колбэк сработает ровно через 1000 мс. Более точным способом было бы запустить startTime = Date.now (), чтобы получить метку времени, когда пользователь нажал кнопку запуска, а затем выполнить Date.now () - startTime, чтобы получить количество миллисекунд после того, как была нажата кнопка запуска . +- Вам также нужно рассчитать количество часов, минут и секунд как отдельные значения, а затем отображать их вместе в строке после каждой итерации цикла. На втором счётчике вы можете отработать каждую из них. +- Как вы могли бы их рассчитать? Подумайте об этом: -
    -

    Note: Если вы застряли, вы можете увидеть нашу версию (см. также исходный код ).

    -
    + - В одном часе `3600` секунд. + - Количество минут - это количество секунд, оставшееся после вычитания всех часов, разделённое на 60. + - Количество секунд будет количеством секунд, оставшихся после вычитания всех минут. -

    Что нужно помнить о setTimeout () и setInterval ()

    +- Вам необходимо включить начальный ноль в отображаемые значения, если сумма меньше `10`, чтобы они больше походили на традиционные часы. +- Чтобы приостановить секундомер, вам нужно очистить интервал. Чтобы сбросить его, вам нудно установить счётчик обратно на `0`, очистить интервал, а затем немедленно обновить отображение. +- Вероятно, вам следует отключить кнопку запуска после её нажатия один раз и снова включить её после того, как вы остановили / сбросили её. В противном случае многократное нажатие кнопки запуска приведёт к применению нескольких `setInterval ()` к часам, что приведёт к неправильному поведению. -

    При работе с setTimeout () и setInterval () следует помнить о нескольких вещах. Давайте рассмотрим их.

    +> **Примечание:** Если вы застряли, вы можете [увидеть нашу версию](https://mdn.github.io/learning-area/javascript/asynchronous/loops-and-intervals/setinterval-stopwatch.html) (см. также [исходный код](https://github.com/mdn/learning-area/blob/master/javascript/asynchronous/loops-and-intervals/setinterval-stopwatch.html) ). -

    Рекурсивные таймауты

    +## Что нужно помнить о `setTimeout()` и `setInterval()` -

    Есть ещё один способ использования setTimeout (): вы можете вызвать его рекурсивно для повторного запуска одного и того же кода вместо использования setInterval ().

    +При работе с `setTimeout()` и `setInterval()` следует помнить о нескольких вещах. Давайте рассмотрим их. -

    В приведённом ниже примере используется рекурсивный setTimeout () для запуска переданной функции каждые 100 миллисекунд:

    +### Рекурсивные таймауты -
    let i = 1;
    +Есть ещё один способ использования `setTimeout()`: вы можете вызвать его рекурсивно для повторного запуска одного и того же кода вместо использования `setInterval()`.
    +
    +В приведённом ниже примере используется рекурсивный setTimeout () для запуска переданной функции каждые 100 миллисекунд:
    +
    +```js
    +let i = 1;
     
     setTimeout(function run() {
       console.log(i);
       i++;
       setTimeout(run, 100);
    -}, 100);
    +}, 100); +``` -

    Сравните приведённый выше пример со следующим - здесь используется setInterval () для достижения того же эффекта:

    +Сравните приведённый выше пример со следующим - здесь используется `setInterval ()` для достижения того же эффекта: -
    let i = 1;
    +```js
    +let i = 1;
     
     setInterval(function run() {
       console.log(i);
       i++
    -}, 100);
    +}, 100); +``` -

    Чем рекурсивный setTimeout () отличается от setInterval () ?

    +#### Чем рекурсивный `setTimeout()` отличается от `setInterval()`? -

    Разница между двумя версиями приведённого выше кода невелика.

    +Разница между двумя версиями приведённого выше кода невелика. -
      -
    • Рекурсивный setTimeout () гарантирует такую же задержку между выполнениями. (Например, 100 мс в приведённом выше случае.) Код будет запущен, затем подождёт 100 миллисекунд, прежде чем запустится снова, поэтому интервал будет одинаковым, независимо от того, сколько времени требуется для выполнения кода.
    • -
    • Пример с использованием setInterval () работает несколько иначе. Выбранный вами интервал включает время, затрачиваемое на выполнение кода, который вы хотите запустить. Предположим, что выполнение кода занимает 40 миллисекунд - тогда интервал составляет всего 60 миллисекунд.
    • -
    • При рекурсивном использовании setTimeout () каждая итерация может вычислять различную задержку перед запуском следующей итерации. Другими словами, значение второго параметра может указывать другое время в миллисекундах для ожидания перед повторным запуском кода.
    • -
    +- Рекурсивный `setTimeout ()` гарантирует такую же задержку между выполнениями. (Например, 100 мс в приведённом выше случае.) Код будет запущен, затем подождёт 100 миллисекунд, прежде чем запустится снова, поэтому интервал будет одинаковым, независимо от того, сколько времени требуется для выполнения кода. +- Пример с использованием `setInterval()` работает несколько иначе. Выбранный вами интервал включает время, затрачиваемое на выполнение кода, который вы хотите запустить. Предположим, что выполнение кода занимает `40` миллисекунд - тогда интервал составляет всего `60` миллисекунд. +- При рекурсивном использовании `setTimeout ()` каждая итерация может вычислять различную задержку перед запуском следующей итерации. Другими словами, значение второго параметра может указывать другое время в миллисекундах для ожидания перед повторным запуском кода. -

    Когда ваш код потенциально может занять больше времени, чем назначенный вами интервал времени, лучше использовать рекурсивный setTimeout () - это сохранит постоянный временной интервал между выполнениями независимо от того, сколько времени потребуется для выполнения кода, и вы избежите ошибок.

    +Когда ваш код потенциально может занять больше времени, чем назначенный вами интервал времени, лучше использовать рекурсивный `setTimeout ()` - это сохранит постоянный временной интервал между выполнениями независимо от того, сколько времени потребуется для выполнения кода, и вы избежите ошибок. -

    Немедленные таймауты

    +### Немедленные таймауты -

    Использование 0 в качестве значения для setTimeout () позволяет планировать выполнение указанной колбэк-функции как можно скорее, но только после того, как будет запущен основной поток кода.

    +Использование 0 в качестве значения для `setTimeout ()` позволяет планировать выполнение указанной колбэк-функции как можно скорее, но только после того, как будет запущен основной поток кода. -

    Например, код приведённый ниже (рабочий код) выводит alert содержащий "Hello", затем alert содержащий "World" как только вы нажмёте ОК в первом alert.

    +Например, код приведённый ниже ([рабочий код](https://mdn.github.io/learning-area/javascript/asynchronous/loops-and-intervals/zero-settimeout.html)) выводит alert содержащий `"Hello"`, затем alert содержащий `"World"` как только вы нажмёте ОК в первом alert. -
    setTimeout(function() {
    +```js
    +setTimeout(function() {
       alert('World');
     }, 0);
     
    -alert('Hello');
    +alert('Hello'); +``` -

    Это может быть полезно в тех случаях, когда вы хотите установить блок кода для запуска, как только весь основной поток завершит работу - поместите его в цикл событий async, чтобы он запускался сразу после этого.

    +Это может быть полезно в тех случаях, когда вы хотите установить блок кода для запуска, как только весь основной поток завершит работу - поместите его в цикл событий async, чтобы он запускался сразу после этого. -

    Очистка с помощью clearTimeout() или clearInterval()

    +### Очистка с помощью `clearTimeout()` или `clearInterval()` -

    clearTimeout () и clearInterval () используют один и тот же список записей для очистки. Интересно, что это означает, что вы можете использовать любой метод для очистки setTimeout () или setInterval ().

    +clearTimeout () и `clearInterval ()` используют один и тот же список записей для очистки. Интересно, что это означает, что вы можете использовать любой метод для очистки setTimeout () или setInterval (). -

    Для согласованности следует использовать clearTimeout () для очистки записей setTimeout () и clearInterval () для очистки записей setInterval (). Это поможет избежать путаницы.

    +Для согласованности следует использовать `clearTimeout ()` для очистки записей `setTimeout ()` и `clearInterval ()` для очистки записей `setInterval ()`. Это поможет избежать путаницы. -

    requestAnimationFrame()

    +## requestAnimationFrame() -

    requestAnimationFrame() это специализированная функция цикла, созданная для эффективного запуска анимации в браузере. По сути, это современная версия setInterval () - она выполняет указанный блок кода до того, как браузер перерисовывает изображение, позволяя запускать анимацию с подходящей частотой кадров независимо от среды, в которой она выполняется.

    +[`requestAnimationFrame()`](/en-US/docs/Web/API/window/requestAnimationFrame) это специализированная функция цикла, созданная для эффективного запуска анимации в браузере. По сути, это современная версия `setInterval ()` - она выполняет указанный блок кода до того, как браузер перерисовывает изображение, позволяя запускать анимацию с подходящей частотой кадров независимо от среды, в которой она выполняется. -

    Он был создан в ответ на проблемы с setInterval (), который, например, не работает с частотой кадров, оптимизированной для устройства, иногда пропускает кадры, продолжает работать, даже если вкладка не является активной вкладкой или анимация прокручивается со страницы и т. д.(Читай об этом больше в CreativeJS.)

    +Он был создан в ответ на проблемы с `setInterval ()`, который, например, не работает с частотой кадров, оптимизированной для устройства, иногда пропускает кадры, продолжает работать, даже если вкладка не является активной вкладкой или анимация прокручивается со страницы и т. д.([Читай об этом больше в CreativeJS](http://creativejs.com/resources/requestanimationframe/index.html).) -
    -

    Note: вы можете найти примеры использования requestAnimationFrame() в этом курсе — например в Рисование графики, and Практика построения объектов.

    -
    +> **Примечание:** вы можете найти примеры использования `requestAnimationFrame()` в этом курсе — например в [Рисование графики](/ru/docs/Learn/JavaScript/Client-side_web_APIs/Drawing_graphics), and [Практика построения объектов](/ru/docs/Learn/JavaScript/Objects/Object_building_practice). -

    Метод принимает в качестве аргумента колбэк, который должен быть вызван перед перерисовкой. Это общий шаблон, в котором он используется:

    +Метод принимает в качестве аргумента колбэк, который должен быть вызван перед перерисовкой. Это общий шаблон, в котором он используется: -
    function draw() {
    +```js
    +function draw() {
        // Drawing code goes here
        requestAnimationFrame(draw);
     }
     
    -draw();
    - -

    Идея состоит в том, чтобы определить функцию, в которой ваша анимация обновляется (например, ваши спрайты перемещаются, счёт обновляется, данные обновляются или что-то ещё). Затем вы вызываете его, чтобы начать процесс. В конце функционального блока вы вызываете requestAnimationFrame () со ссылкой на функцию, переданной в качестве параметра, и это даёт браузеру указание вызвать функцию снова при следующей перерисовке дисплея. Затем он выполняется непрерывно, поскольку код рекурсивно вызывает requestAnimationFrame ().

    +draw(); +``` -
    -

    Note: Если вы хотите выполнить простое постоянное анимирование DOM , CSS Анимация вероятно будет быстрее. Она вычисляется непосредственно внутренним кодом браузера, а не JavaScript.

    +Идея состоит в том, чтобы определить функцию, в которой ваша анимация обновляется (например, ваши спрайты перемещаются, счёт обновляется, данные обновляются или что-то ещё). Затем вы вызываете его, чтобы начать процесс. В конце функционального блока вы вызываете `requestAnimationFrame ()` со ссылкой на функцию, переданной в качестве параметра, и это даёт браузеру указание вызвать функцию снова при следующей перерисовке дисплея. Затем он выполняется непрерывно, поскольку код рекурсивно вызывает `requestAnimationFrame ().` -

    Однако, если вы делаете что-то более сложное, включающее объекты, которые не доступны напрямую в the DOM (такие как 2D Canvas API или WebGL ), requestAnimationFrame() предпочтительный вариант в большинстве случаев.

    -
    +> **Примечание:** Если вы хотите выполнить простое постоянное анимирование DOM , [CSS Анимация](/ru/docs/Web/CSS/CSS_Animations) вероятно будет быстрее. Она вычисляется непосредственно внутренним кодом браузера, а не JavaScript. +> +> Однако, если вы делаете что-то более сложное, включающее объекты, которые не доступны напрямую в the DOM (такие как [2D Canvas API](/ru/docs/Web/API/Canvas_API) или [WebGL](/ru/docs/Web/API/WebGL_API) ), `requestAnimationFrame()` предпочтительный вариант в большинстве случаев. -

    Как быстро работает ваша анимация?

    +### Как быстро работает ваша анимация? -

    Плавность анимации напрямую зависит от частоты кадров анимации и измеряется в кадрах в секунду (fps). Чем выше это число, тем плавное будет выглядеть ваша анимация до точки.

    +Плавность анимации напрямую зависит от частоты кадров анимации и измеряется в кадрах в секунду (fps). Чем выше это число, тем плавное будет выглядеть ваша анимация до точки. -

    Поскольку большинство экранов имеют частоту обновления 60 Гц, максимальная частота кадров, к которой вы можете стремиться, составляет 60 кадров в секунду (FPS) при работе с веб-браузерами. Однако большее количество кадров означает больше обработки, которая часто может вызывать заикание и пропуски, также известные как пропадание кадров или заедание.

    +Поскольку большинство экранов имеют частоту обновления 60 Гц, максимальная частота кадров, к которой вы можете стремиться, составляет 60 кадров в секунду (FPS) при работе с веб-браузерами. Однако большее количество кадров означает больше обработки, которая часто может вызывать заикание и пропуски, также известные как пропадание кадров или заедание. -

    Если у вас есть монитор с частотой обновления 60 Гц и вы хотите достичь 60 кадров в секунду, у вас есть около 16,7 миллисекунд (1000/60) для выполнения кода анимации для рендеринга каждого кадра. Это напоминание о том, что вам нужно помнить об объёме кода, который вы пытаетесь запустить во время каждого прохождения цикла анимации.

    +Если у вас есть монитор с частотой обновления 60 Гц и вы хотите достичь 60 кадров в секунду, у вас есть около 16,7 миллисекунд `(1000/60)` для выполнения кода анимации для рендеринга каждого кадра. Это напоминание о том, что вам нужно помнить об объёме кода, который вы пытаетесь запустить во время каждого прохождения цикла анимации. -

    requestAnimationFrame () всегда пытается приблизиться к этому волшебному значению 60 FPS, насколько это возможно. Иногда это невозможно - если у вас действительно сложная анимация и вы запускаете её на медленном компьютере, частота кадров будет меньше. Во всех случаях requestAnimationFrame () всегда будет делать все возможное с тем, что у него есть.

    +`requestAnimationFrame()` всегда пытается приблизиться к этому волшебному значению 60 FPS, насколько это возможно. Иногда это невозможно - если у вас действительно сложная анимация и вы запускаете её на медленном компьютере, частота кадров будет меньше. Во всех случаях `requestAnimationFrame()` всегда будет делать все возможное с тем, что у него есть. -

    Чем отличается requestAnimationFrame() от setInterval() and setTimeout()?

    +### Чем отличается requestAnimationFrame() от setInterval() and setTimeout()? -

    Давайте поговорим ещё немного о том, чем метод requestAnimationFrame () отличается от других методов, используемых ранее. Глядя на наш код сверху:

    +Давайте поговорим ещё немного о том, чем метод `requestAnimationFrame ()` отличается от других методов, используемых ранее. Глядя на наш код сверху: -
    function draw() {
    +```js
    +function draw() {
        // Drawing code goes here
        requestAnimationFrame(draw);
     }
     
    -draw();
    +draw(); +``` -

    Такой же код с использованием setInterval():

    +Такой же код с использованием `setInterval()`: -
    function draw() {
    +```js
    +function draw() {
        // Drawing code goes here
     }
     
    -setInterval(draw, 17);
    +setInterval(draw, 17); +``` -

    Как мы уже говорили ранее, вы не указываете временной интервал для requestAnimationFrame (). Просто он работает максимально быстро и плавно в текущих условиях. Браузер также не тратит время на запуск, если по какой-то причине анимация выходит за пределы экрана и т. д.

    +Как мы уже говорили ранее, вы не указываете временной интервал для `requestAnimationFrame ()`. Просто он работает максимально быстро и плавно в текущих условиях. Браузер также не тратит время на запуск, если по какой-то причине анимация выходит за пределы экрана и т. д. -

    setInterval (), с другой стороны, требует указания интервала. Мы пришли к нашему окончательному значению 17 по формуле 1000 миллисекунд / 60 Гц, а затем округлили его в большую сторону. Округление - хорошая идея; если вы округлите в меньшую сторону, браузер может попытаться запустить анимацию со скоростью, превышающей 60 кадров в секунду, и в любом случае это не повлияет на плавность анимации. Как мы уже говорили, стандартная частота обновления - 60 Гц.

    +`setInterval ()`, с другой стороны, требует указания интервала. Мы пришли к нашему окончательному значению 17 по формуле 1000 миллисекунд / 60 Гц, а затем округлили его в большую сторону. Округление - хорошая идея; если вы округлите в меньшую сторону, браузер может попытаться запустить анимацию со скоростью, превышающей 60 кадров в секунду, и в любом случае это не повлияет на плавность анимации. Как мы уже говорили, стандартная частота обновления - 60 Гц. -

    В том числе временная метка

    +### В том числе временная метка -

    Фактическому колбэку, переданному в функцию requestAnimationFrame (), также может быть задан параметр: значение отметки времени, которое представляет время с момента начала работы requestAnimationFrame ().

    +Фактическому колбэку, переданному в функцию `requestAnimationFrame ()`, также может быть задан параметр: значение отметки времени, которое представляет время с момента начала работы `requestAnimationFrame ().` -

    Это полезно, поскольку позволяет запускать вещи в определённое время и в постоянном темпе, независимо от того, насколько быстрым или медленным может быть ваше устройство. Общий шаблон, который вы бы использовали, выглядит примерно так:

    +Это полезно, поскольку позволяет запускать вещи в определённое время и в постоянном темпе, независимо от того, насколько быстрым или медленным может быть ваше устройство. Общий шаблон, который вы бы использовали, выглядит примерно так: -
    let startTime = null;
    +```js
    +let startTime = null;
     
     function draw(timestamp) {
         if (!startTime) {
    @@ -312,325 +320,315 @@ function draw(timestamp) {
        requestAnimationFrame(draw);
     }
     
    -draw();
    +draw(); +``` -

    Поддержка браузерами

    +### Поддержка браузерами -

    requestAnimationFrame () поддерживается в более поздних версиях браузеров, чем setInterval () / setTimeout (). Интересно, что он доступен в Internet Explorer 10 и выше.

    +`requestAnimationFrame ()` поддерживается в более поздних версиях браузеров, чем s`etInterval ()` / `setTimeout ()`. Интересно, что он доступен в Internet Explorer 10 и выше. -

    Итак, если вам не требуется поддержка старых версий IE, нет особых причин не использовать requestAnimationFrame().

    +Итак, если вам не требуется поддержка старых версий IE, нет особых причин не использовать `requestAnimationFrame()`. -

    Простой пример

    +### Простой пример -

    Хватит теории! Давайте выполним упражнение с использованием requestAnimationFrame() . Создадим простую анимацию "spinner animation"—вы могли её видеть в приложениях когда происходят задержки при ответе с сервера и т.п..

    +Хватит теории! Давайте выполним упражнение с использованием `requestAnimationFrame()` . Создадим простую анимацию "spinner animation"—вы могли её видеть в приложениях когда происходят задержки при ответе с сервера и т.п.. -
    -

    Note: Для такой простой анимации, вам следовало бы использовать CSS . Однако такой вид анимации очень полезен для демонстрации requestAnimationFrame() , вы скорее всего будете использовать этот метод когда делаете что-то более сложное, например обновление отображения игры в каждом кадре.

    -
    +> **Примечание:** Для такой простой анимации, вам следовало бы использовать CSS . Однако такой вид анимации очень полезен для демонстрации `requestAnimationFrame()` , вы скорее всего будете использовать этот метод когда делаете что-то более сложное, например обновление отображения игры в каждом кадре. -
      -
    1. -

      Возьмите базовый HTML шаблон (такой как этот).

      -
    2. -
    3. -

      Поместите пустой {{htmlelement("div")}} элемент внутри элемента {{htmlelement("body")}}, затем добавьте внутрь символ ↻ . Этот символ будет действовать как spinner в нашем примере.

      -
    4. -
    5. -

      Примените следующий CSS к HTML шаблону (любым предпочитаемым способом). Он установ красный фон на странице, высоту <body> равную 100% высоты {{htmlelement("html")}} , и центрирует <div> внутри <body>, по горизонтали и вертикали.

      +1. Возьмите базовый HTML шаблон ([такой как этот](https://github.com/mdn/learning-area/blob/master/html/introduction-to-html/getting-started/index.html)). +2. Поместите пустой {{htmlelement("div")}} элемент внутри элемента {{htmlelement("body")}}, затем добавьте внутрь символ ↻ . Этот символ будет действовать как spinner в нашем примере. +3. Примените следующий CSS к HTML шаблону (любым предпочитаемым способом). Он установ красный фон на странице, высоту `` равную `100%` высоты {{htmlelement("html")}} , и центрирует `
      ` внутри ``, по горизонтали и вертикали. -
      html {
      -  background-color: white;
      -  height: 100%;
      -}
      +    ```css
      +    html {
      +      background-color: white;
      +      height: 100%;
      +    }
       
      -body {
      -  height: inherit;
      -  background-color: red;
      -  margin: 0;
      -  display: flex;
      -  justify-content: center;
      -  align-items: center;
      -}
      +    body {
      +      height: inherit;
      +      background-color: red;
      +      margin: 0;
      +      display: flex;
      +      justify-content: center;
      +      align-items: center;
      +    }
       
      -div {
      -  display: inline-block;
      -  font-size: 10rem;
      -}
      -
    6. -
    7. -

      Разместите {{htmlelement("script")}} элемент перед </body> .

      -
    8. -
    9. -

      Разместите следующий JavaScript-код в <script> . Здесь вы сохраняете ссылку на <div> внутри, устанавливаете для переменной rotateCount значение 0, устанавливаете неинициализированную переменную, которая позже будет использоваться для хранения ссылки на вызов requestAnimationFrame(), и устанавливаете для переменной startTime значение null, которая будет позже использоваться для хранения времени начала requestAnimationFrame().

      - -
      const spinner = document.querySelector('div');
      -let rotateCount = 0;
      -let startTime = null;
      -let rAF;
      -
      -
    10. -
    11. -

      Под предыдущим кодом вставьте функцию draw() которая будет использоваться для хранения нашего кода анимации, который включает параметр timestamp :

      + div { + display: inline-block; + font-size: 10rem; + } + ``` -
      function draw(timestamp) {
      +4. Разместите {{htmlelement("script")}} элемент перед `` .
      +5. Разместите следующий JavaScript-код в `
      +
      +
      +
      +
      +

      Вводите только цифры:

      +
      + + +``` diff --git a/files/ru/conflicting/web/api/element/mousedown_event/index.md b/files/ru/conflicting/web/api/element/mousedown_event/index.md index dc2af2d8146bfe..c84e79872aa8e3 100644 --- a/files/ru/conflicting/web/api/element/mousedown_event/index.md +++ b/files/ru/conflicting/web/api/element/mousedown_event/index.md @@ -5,25 +5,24 @@ translation_of: Web/API/GlobalEventHandlers/onmousedown original_slug: Web/API/GlobalEventHandlers/onmousedown --- -
      -
      {{ ApiRef("HTML DOM") }}
      -
      +{{ ApiRef("HTML DOM") }} -

      Свойство onmousedown возвращает код обработчика события onmousedown на соответствующем элементе.

      +Свойство `onmousedown` возвращает код обработчика события `onmousedown` на соответствующем элементе. -

      Синтаксис

      +## Синтаксис -
      element.onmousedown = код обработчика этого события (функция)
      -
      +``` +element.onmousedown = код обработчика этого события (функция) +``` -

      Примечания

      +## Примечания -

      Событие mousedown обрабатывается когда пользователь нажимает кнопку мыши.

      +Событие `mousedown` обрабатывается когда пользователь нажимает кнопку мыши. -

      Спецификация

      +## Спецификация {{Specifications}} -

      Совместимость с браузерами

      +## Совместимость с браузерами -

      {{Compat}}

      +{{Compat}} diff --git a/files/ru/conflicting/web/api/element/mouseup_event/index.md b/files/ru/conflicting/web/api/element/mouseup_event/index.md index de479f577777e1..d374ba2e02521f 100644 --- a/files/ru/conflicting/web/api/element/mouseup_event/index.md +++ b/files/ru/conflicting/web/api/element/mouseup_event/index.md @@ -5,36 +5,39 @@ translation_of: Web/API/GlobalEventHandlers/onmouseup original_slug: Web/API/GlobalEventHandlers/onmouseup --- -
      {{ApiRef("HTML DOM")}}
      +{{ApiRef("HTML DOM")}} -

      Свойство onmouseup возвращает код обработчика события onMouseUp текущего элемента.

      +Свойство **onmouseup** возвращает код обработчика события onMouseUp текущего элемента. -

      Syntax

      +## Syntax -
      element.onmouseup =  код обработки событий
      -
      +``` +element.onmouseup = код обработки событий +``` -

      Notes

      +## Notes -

      Событие mouseup возникает, когда пользователь отпускает кнопку мыши.

      +Событие mouseup возникает, когда пользователь отпускает кнопку мыши. -

      Specifications

      +## Specifications - - - - - - - - - - - - + + + + + + + + + + + +
      SpecificationStatusComment
      {{SpecName('HTML WHATWG','webappapis.html#handler-onmouseup','onmouseup')}}{{Spec2('HTML WHATWG')}}
      SpecificationStatusComment
      + {{SpecName('HTML WHATWG','webappapis.html#handler-onmouseup','onmouseup')}} + {{Spec2('HTML WHATWG')}}
      -

      Browser Compatibility

      +## Browser Compatibility -

      {{Compat}}

      +{{Compat}} diff --git a/files/ru/conflicting/web/api/eventtarget/addeventlistener/index.md b/files/ru/conflicting/web/api/eventtarget/addeventlistener/index.md index 923840caa0a3ed..a98049703ca784 100644 --- a/files/ru/conflicting/web/api/eventtarget/addeventlistener/index.md +++ b/files/ru/conflicting/web/api/eventtarget/addeventlistener/index.md @@ -5,62 +5,54 @@ translation_of: Web/API/EventListener original_slug: Web/API/EventListener --- -

      {{APIRef("DOM Events")}}

      +{{APIRef("DOM Events")}} -

      Интерфейс EventListener представляет собой объект, который может обработать событие, отправленное объектом {{domxref ("EventTarget")}}.

      +Интерфейс `EventListener` представляет собой объект, который может обработать событие, отправленное объектом {{domxref ("EventTarget")}}. -
      -

      Note: Из-за необходимости совместимости с унаследованным контентом, EventListener принимает функцию или объект с методом handleEvent(). Это показано в примере ниже.

      -
      +> **Примечание:** Из-за необходимости совместимости с унаследованным контентом, `EventListener` принимает функцию или объект с методом `handleEvent()`. Это показано в [примере](#Example) ниже. -

      Свойства

      +## Свойства -

      Интерфейс не реализует и не наследует никаких свойств.

      +_Интерфейс не реализует и не наследует никаких свойств._ -

      Синтаксис

      +## Синтаксис - - - - - - -
      void handleEvent(in Event event);
      +| `void handleEvent(in Event event);` | +| ----------------------------------- | -

      Методы

      +## Методы -

      handleEvent()

      +### handleEvent() -

      Этот метод вызывается всякий раз, когда происходит событие того типа, для которого был зарегистрирован интерфейс EventListener.

      +Этот метод вызывается всякий раз, когда происходит событие того типа, для которого был зарегистрирован интерфейс EventListener. -
      void handleEvent(
      +```
      +void handleEvent(
         in Event event
       );
      -
      +``` -
      Параметры
      +##### Параметры -
      -
      event
      -
      Событие DOM {{ domxref("Event") }} для которого регистрируется обработчик.
      -
      +- `event` + - : Событие DOM {{ domxref("Event") }} для которого регистрируется обработчик. -

      Примечания

      +### Примечания -

      Поскольку у интерфейса отмечен флаг [function], все объекты JavaScript Function автоматически реализуют этот интерфейс. Вызов метода handleEvent на такой реализации автоматически вызовет эту функцию.

      +Поскольку у интерфейса отмечен флаг `[function]`, все объекты JavaScript [Function](/en/JavaScript/Reference/Global_Objects/Function "en/Core_JavaScript_1.5_Reference/Global_Objects/Function") автоматически реализуют этот интерфейс. Вызов метода [handleEvent](#handleevent) на такой реализации автоматически вызовет эту функцию. +## Пример +### HTML -

      Пример

      +```html + +``` -

      HTML

      +### JavaScript -
      <button id="btn">Нажми сюда!</button>
      -
      - -

      JavaScript

      - -
      const buttonElement = document.getElementById('btn');
      +```js
      +const buttonElement = document.getElementById('btn');
       
       // Добавим обработчик для события "click", предоставив callback.
       // Теперь по клику на элемент будет всплывать подсказка.
      @@ -75,16 +67,13 @@ buttonElement.addEventListener('click', {
         handleEvent: function (event) {
           alert('Событие вызвал handleEvent!');
         }
      -});
      - -

      Результат

      - -

      {{EmbedLiveSample('Пример')}}

      +}); +``` +### Результат +{{EmbedLiveSample('Пример')}} -

      Смотрите также

      +## Смотрите также -
        -
      • {{ spec("http://www.w3.org/TR/DOM-Level-2-Events/events.html#Events-EventListener","Document Object Model Events: EventListener","REC") }}
      • -
      +- {{ spec("http://www.w3.org/TR/DOM-Level-2-Events/events.html#Events-EventListener","Document Object Model Events: EventListener","REC") }} diff --git a/files/ru/conflicting/web/api/file/name/index.md b/files/ru/conflicting/web/api/file/name/index.md index caf343aad14341..a53f756b9f32e8 100644 --- a/files/ru/conflicting/web/api/file/name/index.md +++ b/files/ru/conflicting/web/api/file/name/index.md @@ -4,30 +4,30 @@ slug: conflicting/Web/API/File/name translation_of: Web/API/File/fileName original_slug: Web/API/File/fileName --- -

      {{APIRef("File API")}}{{non-standard_header}}

      +{{APIRef("File API")}}{{non-standard_header}} -

      {{deprecated_header(7.0)}}

      +{{deprecated_header(7.0)}} -

      Summary

      +## Summary -

      Возвращает имя файла. В целях безопасности путь исключён из этого свойства.

      +Возвращает имя файла. В целях безопасности путь исключён из этого свойства. -
      Это свойство исключено. Используйте вместо него {{domxref("File.name")}}.
      +> **Примечание:** Это свойство исключено. Используйте вместо него {{domxref("File.name")}}. -

      Синтаксис

      +## Синтаксис -
      var name = instanceOfFile.fileName
      +``` +var name = instanceOfFile.fileName +``` -

      Значение

      +## Значение -

      Строка

      +Строка -

      Спецификация

      +## Спецификация -

      Не является частью документации.

      +Не является частью документации. -

      Смотреть ещё

      +## Смотреть ещё -
        -
      • {{domxref("File.name")}}
      • -
      +- {{domxref("File.name")}} diff --git a/files/ru/conflicting/web/api/geolocation/getcurrentposition/index.md b/files/ru/conflicting/web/api/geolocation/getcurrentposition/index.md index a3e59088c77f06..920a65c7d47cd4 100644 --- a/files/ru/conflicting/web/api/geolocation/getcurrentposition/index.md +++ b/files/ru/conflicting/web/api/geolocation/getcurrentposition/index.md @@ -5,38 +5,34 @@ translation_of: Web/API/PositionOptions original_slug: Web/API/PositionOptions --- -
      {{APIRef("Geolocation API")}}
      +{{APIRef("Geolocation API")}} -

      Интерфейс PositionOptions описывает объект содержащий свойства передаваемые как параметр в {{domxref("Geolocation.getCurrentPosition()")}} и {{domxref("Geolocation.watchPosition()")}}.

      +Интерфейс **`PositionOptions`** описывает объект содержащий свойства передаваемые как параметр в {{domxref("Geolocation.getCurrentPosition()")}} и {{domxref("Geolocation.watchPosition()")}}. -

      Свойства

      +## Свойства -

      Интерфейс PositionOptions не наследует никаких других свойств.

      +_Интерфейс `PositionOptions` не наследует никаких других свойств_. -
      -
      {{domxref("PositionOptions.enableHighAccuracy")}}
      -
      {{domxref("Boolean")}} сообщает приложению, что нужно получить максимально уточнённый результат. Если true и устройство поддерживает расширенный поиск локации, то он будет осуществлён. Нужно учитывать, что это может привести к замедлению времени отклика или увеличению потребляемых ресурсов (например расширенному использованию GPS на мобильных устройствах). Если false, устройство будет искать максимально быстро и экономично, что уменьшает точность. По умолчанию: false.
      -
      {{domxref("PositionOptions.timeout")}}
      -
      Положительное число в миллисекундах, устанавливающее время, за которое устройство должно вернуть результат. По умолчанию это значение Infinity, что значит, getCurrentPosition() будет работать до тех пор пока не определит положение устройства.
      -
      {{domxref("PositionOptions.maximumAge")}}
      -
      Положительное число указывающее максимально возможное время для кеширования результатов поиска положения устройства. Если установить 0, это будет означать, что устройство не будет кешировать позицию и будет всегда возвращать результат нового поиска. Если установить Infinity, устройство всегда будет возвращать результат первого поиска. По умолчанию: 0.
      -
      +- {{domxref("PositionOptions.enableHighAccuracy")}} + - : {{domxref("Boolean")}} сообщает приложению, что нужно получить максимально уточнённый результат. Если `true` и устройство поддерживает расширенный поиск локации, то он будет осуществлён. Нужно учитывать, что это может привести к замедлению времени отклика или увеличению потребляемых ресурсов (например расширенному использованию GPS на мобильных устройствах). Если `false`, устройство будет искать максимально быстро и экономично, что уменьшает точность. По умолчанию: `false`. +- {{domxref("PositionOptions.timeout")}} + - : Положительное число в миллисекундах, устанавливающее время, за которое устройство должно вернуть результат. По умолчанию это значение [`Infinity`](/en-US/docs/JavaScript/Reference/Global_Objects/Infinity), что значит, `getCurrentPosition()` будет работать до тех пор пока не определит положение устройства. +- {{domxref("PositionOptions.maximumAge")}} + - : Положительное число указывающее максимально возможное время для кеширования результатов поиска положения устройства. Если установить `0`, это будет означать, что устройство не будет кешировать позицию и будет всегда возвращать результат нового поиска. Если установить `Infinity,` устройство всегда будет возвращать результат первого поиска. По умолчанию: 0. -

      Методы

      +## Методы -

      Интерфейс PositionOptions не реализует и не наследует никаких методов.

      +`Интерфейс PositionOptions` не реализует и не наследует никаких методов. -

      Спецификация

      +## Спецификация {{Specifications}} -

      Совместимость с браузерами

      +## Совместимость с браузерами -

      {{Compat("api.PositionOptions")}}

      +{{Compat("api.PositionOptions")}} -

      Также можно посмотреть

      +## Также можно посмотреть - +- [Использование геолокации](Geolocation/Using_geolocation) +- The {{domxref("Geolocation")}} interface that uses it. diff --git a/files/ru/conflicting/web/api/htmlelement/dragstart_event/index.md b/files/ru/conflicting/web/api/htmlelement/dragstart_event/index.md index 2511540bfbc151..feceb68342e959 100644 --- a/files/ru/conflicting/web/api/htmlelement/dragstart_event/index.md +++ b/files/ru/conflicting/web/api/htmlelement/dragstart_event/index.md @@ -4,72 +4,63 @@ slug: conflicting/Web/API/HTMLElement/dragstart_event translation_of: Web/API/Document/dragstart_event original_slug: Web/API/Document/dragstart_event --- -
      Событие dragstart вызывается, когда пользователь начинает перетаскивать выделенный элемент или текст.
      +Событие dragstart вызывается, когда пользователь начинает перетаскивать выделенный элемент или текст. - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + +
      BubblesYes
      ОтменяемоеДа
      Действие по умолчаниюИнициирование операции перетаскивания
      Интерфейс{{domxref("DragEvent")}}
      Свойство обработчика события{{domxref("GlobalEventHandlers/ondragstart", "ondragstart")}}
      BubblesYes
      ОтменяемоеДа
      Действие по умолчаниюИнициирование операции перетаскивания
      Интерфейс{{domxref("DragEvent")}}
      Свойство обработчика события + {{domxref("GlobalEventHandlers/ondragstart", "ondragstart")}} +
      -

      Примеры

      +## Примеры +See the [drag event](/ru/docs/Web/API/Document/drag_event) for example code or this [JSFiddle demo](http://jsfiddle.net/zfnj5rv4/). +{{EmbedLiveSample('Примеры', '300', '200', '', 'Web/API/Document/drag_event')}} -

      See the drag event for example code or this JSFiddle demo.

      - -

      {{EmbedLiveSample('Примеры', '300', '200', '', 'Web/API/Document/drag_event')}}

      - - - -

      Спецификации

      +## Спецификации {{Specifications}} -

      Совместимость с браузерами

      +## Совместимость с браузерами + +{{Compat}} +## Смотрите также +- Other drag and drop events: -

      {{Compat}}

      + - {{domxref("Document/drag_event", "drag")}} + - {{domxref("Document/dragend_event", "dragend")}} + - {{domxref("Document/dragover_event", "dragover")}} + - {{domxref("Document/dragenter_event", "dragenter")}} + - {{domxref("Document/dragleave_event", "dragleave")}} + - {{domxref("Document/dragexit_event", "dragexit")}} + - {{domxref("Document/drop_event", "drop")}} -

      Смотрите также

      +- This event on other targets: -
        -
      • Other drag and drop events: -
          -
        • {{domxref("Document/drag_event", "drag")}}
        • -
        • {{domxref("Document/dragend_event", "dragend")}}
        • -
        • {{domxref("Document/dragover_event", "dragover")}}
        • -
        • {{domxref("Document/dragenter_event", "dragenter")}}
        • -
        • {{domxref("Document/dragleave_event", "dragleave")}}
        • -
        • {{domxref("Document/dragexit_event", "dragexit")}}
        • -
        • {{domxref("Document/drop_event", "drop")}}
        • -
        -
      • -
      • This event on other targets: -
          -
        • {{domxref("Window")}}: {{domxref("Window/dragstart_event", "dragstart")}} event
        • -
        • {{domxref("HTMLElement")}}: {{domxref("HTMLElement/dragstart_event", "dragstart")}} event
        • -
        • {{domxref("SVGElement")}}: {{domxref("SVGElement/dragstart_event", "dragstart")}} event
        • -
        -
      • -
      + - {{domxref("Window")}}: {{domxref("Window/dragstart_event", "dragstart")}} event + - {{domxref("HTMLElement")}}: {{domxref("HTMLElement/dragstart_event", "dragstart")}} event + - {{domxref("SVGElement")}}: {{domxref("SVGElement/dragstart_event", "dragstart")}} event diff --git a/files/ru/conflicting/web/api/htmlmediaelement/abort_event/index.md b/files/ru/conflicting/web/api/htmlmediaelement/abort_event/index.md index edf2824477f541..acf63c166a1f26 100644 --- a/files/ru/conflicting/web/api/htmlmediaelement/abort_event/index.md +++ b/files/ru/conflicting/web/api/htmlmediaelement/abort_event/index.md @@ -5,46 +5,49 @@ translation_of: Web/API/GlobalEventHandlers/onabort original_slug: Web/API/GlobalEventHandlers/onabort --- -
      {{ ApiRef("HTML DOM") }}
      +{{ ApiRef("HTML DOM") }} -

      Summary

      +## Summary -

      Обработчик событий, позволяющий прерывать события объекта window. (Недоступен для Firefox 2 и Safari).

      +Обработчик событий, позволяющий прерывать события объекта **window**. (Недоступен для **Firefox 2** и **Safari**). -

      TODO define what "abort" is. Closing the window via window manager? Stopping the load of the page? By which means and reasons (user, network/server)? At which stages would it fire / be catched? Для IE, событие onabort доступно только для тега img.

      +TODO define what "abort" is. Closing the window via window manager? Stopping the load of the page? By which means and reasons (user, network/server)? At which stages would it fire / be catched? Для IE, событие **onabort** доступно только для тега `img`. -

      Syntax

      +## Syntax -
      window.onabort = funcRef
      -
      +``` +window.onabort = funcRef +``` -
        -
      • funcRef: Reference to a function
      • -
      +- `funcRef`: Reference to a function -

      Example

      +## Example -
      window.onabort = function() {
      +```js
      +window.onabort = function() {
         alert("Load aborted.");
      -}
      +} +``` -

      Specification

      +## Specification - - - - - - - - - - - - + + + + + + + + + + + +
      SpecificationStatusComment
      {{SpecName('HTML WHATWG','webappapis.html#handler-onabort','onabort')}}{{Spec2('HTML WHATWG')}}
      SpecificationStatusComment
      + {{SpecName('HTML WHATWG','webappapis.html#handler-onabort','onabort')}} + {{Spec2('HTML WHATWG')}}
      -

      Browser Compatibility

      +## Browser Compatibility -

      {{Compat}}

      +{{Compat}} diff --git a/files/ru/conflicting/web/api/pointer_events/index.md b/files/ru/conflicting/web/api/pointer_events/index.md index 83da8c5ffdaf17..b63e88386052e5 100644 --- a/files/ru/conflicting/web/api/pointer_events/index.md +++ b/files/ru/conflicting/web/api/pointer_events/index.md @@ -4,61 +4,54 @@ slug: conflicting/Web/API/Pointer_events translation_of: Web/API/Touch_events/Supporting_both_TouchEvent_and_MouseEvent original_slug: Web/API/Touch_events/Supporting_both_TouchEvent_and_MouseEvent --- -

      {{DefaultAPISidebar("Touch Events")}}

      +{{DefaultAPISidebar("Touch Events")}} -

      Интерфейс {{domxref("Touch_events","touch")}} позволяет существенно повысить удобство работы с приложением через устройства с сенсорным экраном. Несмотря на это, большинство современного содержимого веба рассчитано только на работу с помощью мыши. Следовательно, даже если браузер поддерживает управление через сенсорную поверхность, он всё равно должен имитировать действия мыши, чтобы функциональность, рассчитанная только на действия мыши, продолжала корректно работать.

      +Интерфейс {{domxref("Touch_events","touch")}} позволяет существенно повысить удобство работы с приложением через устройства с сенсорным экраном. Несмотря на это, большинство современного содержимого веба рассчитано только на работу с помощью мыши. Следовательно, даже если браузер поддерживает управление через сенсорную поверхность, он всё равно должен имитировать действия мыши, чтобы функциональность, рассчитанная только на действия мыши, продолжала корректно работать. -

      В идеале, приложения, рассчитанные на управление касаниями, не нуждается в явной имитации действий мыши. Но так как браузер вынужден это делать, могут возникнуть некоторые проблемы взаимодействия, которые должны быть обработаны. Ниже приведены некоторые подробности таких проблем взаимодействия и последствия для разработчиков приложения.

      +В идеале, приложения, рассчитанные на управление касаниями, не нуждается в явной имитации действий мыши. Но так как браузер вынужден это делать, могут возникнуть некоторые проблемы взаимодействия, которые должны быть обработаны. Ниже приведены некоторые подробности таких проблем взаимодействия и последствия для разработчиков приложения. -

      Вызов события

      +## Вызов события -

      Спецификация событий касания определяет несколько требований к браузеру, касающихся действий мышью или касаний сенсорной поверхности (подробнее смотрите в разделе спецификации "Работа с событиями мыши и клика"), отмечая, что браузер может вызывать как события касаний, так и события мыши в ответ на одно и то же действие пользователя.

      +Спецификация событий касания определяет несколько требований к браузеру, касающихся действий мышью или касаний сенсорной поверхности (подробнее смотрите в разделе спецификации "[Работа с событиями мыши и клика](https://w3c.github.io/touch-events/#mouse-events)"), отмечая, что браузер может вызывать как события касаний, так и события мыши в ответ на одно и то же действие пользователя. -

      Если в ответ на какое-то действие пользователя браузер вызывает и событие касания и событие мыши, то перед любыми событиями мыши браузер должен вызывать {{event("touchstart")}}. Следовательно, если нужно, чтобы при прикосновении к {{domxref("Touch.target","целевому")}} элементу события мыши не запускались, в обработчике события касания данного элемента нужно вызвать {{domxref("Event.preventDefault()","preventDefault()")}}. После этого никакие дополнительные события мыши не вызовутся.

      +Если в ответ на какое-то действие пользователя браузер вызывает и событие касания и событие мыши, то перед любыми событиями мыши браузер должен вызывать {{event("touchstart")}}. Следовательно, если нужно, чтобы при прикосновении к {{domxref("Touch.target","целевому")}} элементу события мыши не запускались, в обработчике события касания данного элемента нужно вызвать {{domxref("Event.preventDefault()","preventDefault()")}}. После этого никакие дополнительные события мыши не вызовутся. -

      Ниже представлен пример обработчика события {{event("touchmove")}}, вызывающий preventDefault()

      +Ниже представлен пример обработчика события {{event("touchmove")}}, вызывающий `preventDefault()` -
      // touchmove handler
      +```js
      +// touchmove handler
       function process_touchmove(ev) {
         // Call preventDefault() to prevent any further handling
         ev.preventDefault();
       }
      -
      +``` -

      Последовательность событий

      +## Последовательность событий -

      Хотя фактическая последовательность событий касания и мыши зависит от используемого программного обеспечения, спецификация предписывает придерживаться следующей последовательности:

      +Хотя фактическая последовательность событий касания и мыши зависит от используемого программного обеспечения, спецификация предписывает придерживаться следующей последовательности: -
        -
      • touchstart
      • -
      • Ноль или больше событий touchmove, в зависимости от того, было ли движение пальца
      • -
      • touchend
      • -
      • mousemove
      • -
      • mousedown
      • -
      • mouseup
      • -
      • click
      • -
      +- `touchstart` +- Ноль или больше событий `touchmove`, в зависимости от того, было ли движение пальца +- `touchend` +- `mousemove` +- `mousedown` +- `mouseup` +- `click` -

      Если в течение взаимодействия событие {{event("touchstart")}}, {{event("touchmove")}} или {{event("touchend")}} прерывается, события мыши или клика вызываться не будут, а итоговая последовательность событий будет просто:

      +Если в течение взаимодействия событие {{event("touchstart")}}, {{event("touchmove")}} или {{event("touchend")}} прерывается, события мыши или клика вызываться не будут, а итоговая последовательность событий будет просто: -
        -
      • touchstart
      • -
      • Ноль или больше событий touchmove, в зависимости от того, было ли движение пальца
      • -
      • touchend
      • -
      +- `touchstart` +- Ноль или больше событий `touchmove`, в зависимости от того, было ли движение пальца +- `touchend` -

      Сообщество

      +## Сообщество - +- [Группа сообщества Touch Events](https://github.com/w3c/touch-events) +- [Mail list](https://lists.w3.org/Archives/Public/public-touchevents/) +- [IRC-канал W3C #touchevents](irc://irc.w3.org:6667/) -

      Связанные темы и ресурсы

      +## Связанные темы и ресурсы - +- [Знакомство событиями касания](/Web/API/Touch_events) +- [Использование событий касаний](/Web/API/Touch_events/Using_Touch_Events) +- [Touch and Mouse (Together Again for the First Time)](http://www.html5rocks.com/en/mobile/touchandmouse/) diff --git a/files/ru/conflicting/web/api/uievent/which/index.md b/files/ru/conflicting/web/api/uievent/which/index.md index cff1714a74e902..d4aac9f3df9fb6 100644 --- a/files/ru/conflicting/web/api/uievent/which/index.md +++ b/files/ru/conflicting/web/api/uievent/which/index.md @@ -8,42 +8,35 @@ translation_of: Web/API/MouseEvent/which original_slug: Web/API/MouseEvent/which --- -

      {{APIRef("DOM Events")}}

      +{{APIRef("DOM Events")}} {{Non-standard_header}} -

      {{Non-standard_header}}

      +**`MouseEvent.which`** это свойство только для чтения которое показывает какая именно кнопка мыши вызвала событие MouseEvent. Стандартная альтернатива этому свойству – {{ domxref("MouseEvent.button") }} и {{ domxref("MouseEvent.buttons") }}. -

      MouseEvent.which это свойство только для чтения которое показывает какая именно кнопка мыши вызвала событие MouseEvent. Стандартная альтернатива этому свойству – {{ domxref("MouseEvent.button") }} и {{ domxref("MouseEvent.buttons") }}.

      +## Синтаксис -

      Синтаксис

      +``` +var buttonPressed = instanceOfMouseEvent.which +``` -
      var buttonPressed = instanceOfMouseEvent.which
      -
      +### Возвращаемое значение -

      Возвращаемое значение

      +Значения соответствующие кнопкам: -

      Значения соответствующие кнопкам:

      +- `0`: Нет кнопки +- `1`: Левая кнопка +- `2`: Средняя (если есть) +- `3`: Права кнопка -
        -
      • 0: Нет кнопки
      • -
      • 1: Левая кнопка
      • -
      • 2: Средняя (если есть)
      • -
      • 3: Права кнопка
      • -
      +Для мыши настроенной для левшей порядок значений будет изменён. В этом случае значению `1` будет соответствовать правая кнопка, а `3` – левая. -

      Для мыши настроенной для левшей порядок значений будет изменён. В этом случае значению 1 будет соответствовать правая кнопка, а 3 – левая.

      +## Спецификация -

      Спецификация

      +Это свойство не является частью спецификации. -

      Это свойство не является частью спецификации.

      +## Совместимость с браузерами -

      Совместимость с браузерами

      +{{Compat("api.MouseEvent.which")}} +## Смотрите также - -

      {{Compat("api.MouseEvent.which")}}

      - -

      Смотрите также

      - -
        -
      • {{ domxref("MouseEvent") }}
      • -
      +- {{ domxref("MouseEvent") }} diff --git a/files/ru/conflicting/web/api/window/beforeunload_event/index.md b/files/ru/conflicting/web/api/window/beforeunload_event/index.md index e54d795ee3f112..2e2833dd250ad0 100644 --- a/files/ru/conflicting/web/api/window/beforeunload_event/index.md +++ b/files/ru/conflicting/web/api/window/beforeunload_event/index.md @@ -5,85 +5,55 @@ translation_of: Web/API/WindowEventHandlers/onbeforeunload original_slug: Web/API/WindowEventHandlers/onbeforeunload --- -
      -
      {{APIRef("HTML DOM")}}
      -
      +{{APIRef("HTML DOM")}} -
      +Свойство обработчика события **`WindowEventHandlers.onbeforeunload`** содержит код, который выполняется при отправке события {{event("beforeunload")}}. Это событие срабатывает, когда окно браузера {{event("unload")}} свои ресурсы. При этом документ остаётся видимым и событие всё ещё можно отменить. -

      Свойство обработчика события WindowEventHandlers.onbeforeunload содержит код, который выполняется при отправке события {{event("beforeunload")}}. Это событие срабатывает, когда окно браузера {{event("unload")}} свои ресурсы. При этом документ остаётся видимым и событие всё ещё можно отменить.

      +> **Примечание:** Для борьбы с нежелательными всплывающими окнами, некоторые браузеры не отображают текст передаваемый в beforeunload событии, если они не связаны с самой страницей; некоторые не показывают их вообще. Список конкретных браузеров смотрите в секции: [Совместимость_с_браузерами](#совместимость_с_браузерами). -
      -

      Примечание: Для борьбы с нежелательными всплывающими окнами, некоторые браузеры не отображают текст передаваемый в beforeunload событии, если они не связаны с самой страницей; некоторые не показывают их вообще. Список конкретных браузеров смотрите в секции: Совместимость_с_браузерами.

      -
      +## Синтаксис -

      Синтаксис

      +``` +window.onbeforeunload = funcRef +``` -
      window.onbeforeunload = funcRef
      +- `funcRef` является ссылкой на функцию или выражение функции. +- Функция должна назначать строковое значение свойству `returnValue` объекта Event и возвращать ту же строку. -
        -
      • funcRef является ссылкой на функцию или выражение функции.
      • -
      • Функция должна назначать строковое значение свойству returnValue объекта Event и возвращать ту же строку.
      • -
      +## Пример -

      Пример

      - -
      window.onbeforeunload = function(e) {
      +```js
      +window.onbeforeunload = function(e) {
         var dialogText = 'Dialog text here';
         e.returnValue = dialogText;
         return dialogText;
       };
      -
      - -

      Примечания

      +``` -

      Когда это событие возвращает (или выставляет свойство returnValue) значение, отличное от null или undefined, пользователю предлагается подтвердить {{event("unload")}} страницы в {{domxref("window.prompt", "prompt")}} . В некоторых браузерах возвращаемое значение отображается в этом диалоговом окне. Начиная с Firefox 4, Chrome 51, Opera 38 и Safari 9.1 вместо возвращаемой строки будет показана общая строка, не контролируемая страницей. Например, Firefox отображает строку: "This page is asking you to confirm that you want to leave - data you have entered may not be saved.". Смотрите {{bug("588292")}} и Chrome Platform Status.

      +## Примечания -

      С 25 мая 2011, в спецификации HTML5 указано, что исполнение методов {{domxref("window.alert()")}}, {{domxref("window.confirm()")}} и {{domxref("window.prompt()")}} может игнорироваться во время этого события. Смотрите спецификацию HTML5 чтобы узнать подробности.

      +Когда это событие возвращает (или выставляет свойство returnValue) значение, отличное от null или undefined, пользователю предлагается подтвердить {{event("unload")}} страницы в {{domxref("window.prompt", "prompt")}} . В некоторых браузерах возвращаемое значение отображается в этом диалоговом окне. Начиная с Firefox 4, Chrome 51, Opera 38 и Safari 9.1 вместо возвращаемой строки будет показана общая строка, не контролируемая страницей. Например, Firefox отображает строку: "This page is asking you to confirm that you want to leave - data you have entered may not be saved.". Смотрите {{bug("588292")}} и [Chrome Platform Status](https://www.chromestatus.com/feature/5349061406228480). -

      Также необходимо отметить, что различные мобильные браузеры игнорируют результат этого события (это является причиной, почему они не запрашивают подтверждения пользователя). Firefox имеет скрытую настройку в about:config для того, чтобы вести себя также. В сущности это значит, что пользователь постоянно подтверждает, что документ может быть выгружен.

      +С 25 мая 2011, в спецификации HTML5 указано, что исполнение методов {{domxref("window.alert()")}}, {{domxref("window.confirm()")}} и {{domxref("window.prompt()")}} может игнорироваться во время этого события. Смотрите [спецификацию HTML5](http://www.w3.org/TR/html5/webappapis.html#user-prompts) чтобы узнать подробности. -

      Вы можете и должны обрабатывать данное событие через {{domxref("EventTarget.addEventListener","window.addEventListener()")}} и событие {{event("beforeunload")}}. Больше документации доступно здесь.

      +Также необходимо отметить, что различные мобильные браузеры игнорируют результат этого события (это является причиной, почему они не запрашивают подтверждения пользователя). Firefox имеет скрытую настройку в about:config для того, чтобы вести себя также. В сущности это значит, что пользователь постоянно подтверждает, что документ может быть выгружен. -

      Спецификации

      +Вы _можете_ и _должны_ обрабатывать данное событие через {{domxref("EventTarget.addEventListener","window.addEventListener()")}} и событие {{event("beforeunload")}}. Больше документации доступно здесь. -

      Событие было первоначально добавлено Microsoft в Internet Explorer 4 и стандартизовано в HTML5 спецификации.

      +## Спецификации - - - - - - - - - - - - - - - - - - - - - - - - - -
      SpecificationStatusComment
      {{SpecName('HTML WHATWG', '#windoweventhandlers', 'GlobalEventHandlers')}}{{Spec2('HTML WHATWG')}}
      {{SpecName('HTML5.1', '#windoweventhandlers', 'GlobalEventHandlers')}}{{Spec2('HTML5.1')}}
      {{SpecName("HTML5 W3C", "#windoweventhandlers", "GlobalEventHandlers")}}{{Spec2('HTML5 W3C')}}
      +Событие было первоначально добавлено Microsoft в Internet Explorer 4 и стандартизовано в HTML5 спецификации. -

      Совместимость с браузерами

      +| Specification | Status | Comment | +| ---------------------------------------------------------------------------------------------------- | -------------------------------- | ------- | +| {{SpecName('HTML WHATWG', '#windoweventhandlers', 'GlobalEventHandlers')}} | {{Spec2('HTML WHATWG')}} | | +| {{SpecName('HTML5.1', '#windoweventhandlers', 'GlobalEventHandlers')}} | {{Spec2('HTML5.1')}} | | +| {{SpecName("HTML5 W3C", "#windoweventhandlers", "GlobalEventHandlers")}} | {{Spec2('HTML5 W3C')}} | | -

      {{Compat}}

      +## Совместимость с браузерами -
      +{{Compat}} -

      Смотрите также

      +## Смотрите также - +- [MSDN: onbeforeunload event]() diff --git a/files/ru/conflicting/web/api/window/deviceorientation_event/index.md b/files/ru/conflicting/web/api/window/deviceorientation_event/index.md index 42530ae5714cf9..b6a14d8f93802d 100644 --- a/files/ru/conflicting/web/api/window/deviceorientation_event/index.md +++ b/files/ru/conflicting/web/api/window/deviceorientation_event/index.md @@ -11,30 +11,29 @@ translation_of: Web/API/Window/ondeviceorientation original_slug: Web/API/Window/ondeviceorientation --- -

      {{ ApiRef() }}

      +{{ ApiRef() }} -

      Кратко

      +## Кратко -

      Обработчик события {{event('deviceorientation')}}, который содержит информацию об изменении относительной ориентации устройства.

      +Обработчик события {{event('deviceorientation')}}, который содержит информацию об изменении относительной ориентации устройства. -

      Синтаксис

      +## Синтаксис -
      window.ondeviceorientation = function(event) { ... };
      +```
      +window.ondeviceorientation = function(event) { ... };
       window.addEventListener('deviceorientation', function(event) { ... });
      -
      +``` -

      Спецификации

      +## Спецификации {{Specifications}} -

      Совместимость с браузерами

      +## Совместимость с браузерами -

      {{ page("/en-US/docs/Web/API/DeviceOrientationEvent","Browser_compatibility") }}

      +{{ page("/en-US/docs/Web/API/DeviceOrientationEvent","Browser_compatibility") }} -

      Смотрите также

      +## Смотрите также - +- {{ event("deviceorientation") }} +- {{ domxref("DeviceOrientationEvent") }} +- [Определение ориентации устройства](/en/Detecting_device_orientation "Detecting device orientation") diff --git a/files/ru/conflicting/web/api/window/gamepadconnected_event/index.md b/files/ru/conflicting/web/api/window/gamepadconnected_event/index.md index cb61baeee2aff1..45aa794fe2fcff 100644 --- a/files/ru/conflicting/web/api/window/gamepadconnected_event/index.md +++ b/files/ru/conflicting/web/api/window/gamepadconnected_event/index.md @@ -5,37 +5,36 @@ translation_of: Web/API/Window/ongamepadconnected original_slug: Web/API/Window/ongamepadconnected --- -
      {{DefaultAPISidebar("Gamepad API")}}{{SeeCompatTable}}
      +{{DefaultAPISidebar("Gamepad API")}}{{SeeCompatTable}} -

      Свойство ongamepadconnected интерфейса {{domxref("Window")}} представляет собой обработчик, который будет запущен при подключении геймпада (когда событие {{event('gamepadconnected')}} запустится).

      +Свойство **`ongamepadconnected`** интерфейса {{domxref("Window")}} представляет собой обработчик, который будет запущен при подключении геймпада (когда событие {{event('gamepadconnected')}} запустится). -

      Тип объекта события - {{domxref("GamepadEvent")}}.

      +Тип объекта события - {{domxref("GamepadEvent")}}. -

      Синтаксис

      +## Синтаксис -
      window.ongamepadconnected = function() { ... };
      -
      +``` +window.ongamepadconnected = function() { ... }; +``` -

      Пример

      +## Пример -
      window.ongamepadconnected = function(event) {
      -  // All buttons and axes values can be accessed through
      -  event.gamepad;
      -};
      +```js +window.ongamepadconnected = function(event) { + // All buttons and axes values can be accessed through + event.gamepad; +}; +``` -

      Спецификация

      +## Спецификация {{Specifications}} -

      Browser compatibility

      +## Browser compatibility +{{Compat}} +## Смотрите также -

      {{Compat}}

      - -

      Смотрите также

      - - +- [The Gamepad API](https://hacks.mozilla.org/2013/12/the-gamepad-api/) by Ted Mielczarek and Robert Nyman +- [Simple API demo page](http://luser.github.io/gamepadtest/) ([source](https://github.com/luser/gamepadtest)) diff --git a/files/ru/conflicting/web/api/window/gamepaddisconnected_event/index.md b/files/ru/conflicting/web/api/window/gamepaddisconnected_event/index.md index d12c2aedf2e3ff..c3f48abdb3220d 100644 --- a/files/ru/conflicting/web/api/window/gamepaddisconnected_event/index.md +++ b/files/ru/conflicting/web/api/window/gamepaddisconnected_event/index.md @@ -5,36 +5,35 @@ translation_of: Web/API/Window/ongamepaddisconnected original_slug: Web/API/Window/ongamepaddisconnected --- -
      {{DefaultAPISidebar("Gamepad API")}}{{SeeCompatTable}}
      +{{DefaultAPISidebar("Gamepad API")}}{{SeeCompatTable}} -

      Свойство ongamepaddisconnected интерфейса {{domxref("Window")}} представляет собой обработчик события, который будет вызван при отключении геймпада (когда сработает событие {{event('gamepaddisconnected')}}).

      +Свойство **`ongamepaddisconnected`** интерфейса {{domxref("Window")}} представляет собой обработчик события, который будет вызван при отключении геймпада (когда сработает событие {{event('gamepaddisconnected')}}). -

      Тип объекта события {{domxref("GamepadEvent")}}.

      +Тип объекта события {{domxref("GamepadEvent")}}. -

      Синтаксис

      +## Синтаксис -
      window.ongamepaddisconnected = function() { ... };
      -
      +``` +window.ongamepaddisconnected = function() { ... }; +``` -

      Пример

      +## Пример -
      window.ongamepaddisconnected = function() {
      -  // A gamepad has been disconnected
      -};
      +```js +window.ongamepaddisconnected = function() { + // A gamepad has been disconnected +}; +``` -

      Спецификация

      +## Спецификация {{Specifications}} -

      Браузерная совместимость

      +## Браузерная совместимость +{{Compat}} +## Смотрите также -

      {{Compat}}

      - -

      Смотрите также

      - - +- [The Gamepad API](https://hacks.mozilla.org/2013/12/the-gamepad-api/) by Ted Mielczarek and Robert Nyman +- [Simple API demo page](http://luser.github.io/gamepadtest/) ([source](https://github.com/luser/gamepadtest)) diff --git a/files/ru/conflicting/web/api/window/hashchange_event/index.md b/files/ru/conflicting/web/api/window/hashchange_event/index.md index 56c82e82adeb89..30807c4516cf5f 100644 --- a/files/ru/conflicting/web/api/window/hashchange_event/index.md +++ b/files/ru/conflicting/web/api/window/hashchange_event/index.md @@ -5,37 +5,37 @@ translation_of: Web/API/WindowEventHandlers/onhashchange original_slug: Web/API/WindowEventHandlers/onhashchange --- -
      -
      {{APIRef("HTML DOM")}}
      -
      +{{APIRef("HTML DOM")}} -

      Событие hashchange происходит когда изменяется hash (смотри {{domxref("Window.location", "location.hash")}}).

      +Событие **hashchange** происходит когда изменяется hash (смотри {{domxref("Window.location", "location.hash")}}). -

      Синтаксис

      +## Синтаксис -
      window.onhashchange = funcRef;
      -
      +``` +window.onhashchange = funcRef; +``` -

      или

      +**или** -
      <body onhashchange="funcRef();">
      -
      +``` + +``` -

      или

      +**или** -
      window.addEventListener("hashchange", funcRef, false);
      -
      +``` +window.addEventListener("hashchange", funcRef, false); +``` -

      Параметры

      +### Параметры -
      -
      funcRef
      -
      Ссылка на функцию.
      -
      +- `funcRef` + - : Ссылка на функцию. -

      Пример

      +## Пример -
      if ("onhashchange" in window) {
      +```js
      +if ("onhashchange" in window) {
           alert("The browser supports the hashchange event!");
       }
       
      @@ -46,61 +46,25 @@ function locationHashChanged() {
       }
       
       window.onhashchange = locationHashChanged;
      -
      - -

      The hashchange event

      - -

      The dispatched hashchange event has the following fields:

      - - - - - - - - - - - - - - - - - - - -
      FieldTypeDescription
      newURL {{gecko_minversion_inline("6.0")}}DOMStringThe new URL to which the window is navigating.
      oldURL {{gecko_minversion_inline("6.0")}}DOMStringThe previous URL from which the window was navigated.
      - -

      Specifications

      - - - - - - - - - - - - - - - - - - - - - - - - - - -
      SpecificationStatusComment
      {{SpecName('HTML WHATWG', '#windoweventhandlers', 'GlobalEventHandlers')}}{{Spec2('HTML WHATWG')}}
      {{SpecName('HTML5.1', '#windoweventhandlers', 'GlobalEventHandlers')}}{{Spec2('HTML5.1')}}
      {{SpecName("HTML5 W3C", "#windoweventhandlers", "GlobalEventHandlers")}}{{Spec2('HTML5 W3C')}}
      - -

      Поддержка браузерами

      - -

      {{Compat}}

      +``` + +## The hashchange event + +The dispatched `hashchange` event has the following fields: + +| Field | Type | Description | +| ----------------------------------------------------- | ----------- | ----------------------------------------------------- | +| `newURL` {{gecko_minversion_inline("6.0")}} | `DOMString` | The new URL to which the window is navigating. | +| `oldURL` {{gecko_minversion_inline("6.0")}} | `DOMString` | The previous URL from which the window was navigated. | + +## Specifications + +| Specification | Status | Comment | +| ---------------------------------------------------------------------------------------------------- | -------------------------------- | ------- | +| {{SpecName('HTML WHATWG', '#windoweventhandlers', 'GlobalEventHandlers')}} | {{Spec2('HTML WHATWG')}} | | +| {{SpecName('HTML5.1', '#windoweventhandlers', 'GlobalEventHandlers')}} | {{Spec2('HTML5.1')}} | | +| {{SpecName("HTML5 W3C", "#windoweventhandlers", "GlobalEventHandlers")}} | {{Spec2('HTML5 W3C')}} | | + +## Поддержка браузерами + +{{Compat}} diff --git a/files/ru/conflicting/web/api/window/load_event/index.md b/files/ru/conflicting/web/api/window/load_event/index.md index e0c0e1d752bfcf..9c828906fde86e 100644 --- a/files/ru/conflicting/web/api/window/load_event/index.md +++ b/files/ru/conflicting/web/api/window/load_event/index.md @@ -5,56 +5,55 @@ translation_of: Web/API/GlobalEventHandlers/onload original_slug: Web/API/GlobalEventHandlers/onload --- -
      {{ ApiRef("HTML DOM") }}
      +{{ ApiRef("HTML DOM") }} -

      Обработчик для события загрузки объекта {{ domxref("window") }}.

      +Обработчик для события загрузки объекта {{ domxref("window") }}. -

      Синтаксис

      +## Синтаксис -
      window.onload = funcRef;
      -
      +``` +window.onload = funcRef; +``` -
        -
      • funcRef функция обработчик события будет вызвана, когда произойдёт событие загрузки окна.
      • -
      +- `funcRef` функция обработчик события будет вызвана, когда произойдёт событие загрузки окна. -

      Примеры

      +## Примеры -
      window.onload = function() {
      +```js
      +window.onload = function() {
         init();
         doSomethingElse();
       };
      -
      - -
      <!doctype html>
      -<html>
      -  <head>
      -    <title>onload test</title>
      -    <script>
      +```
      +
      +```html
      +
      +
      +  
      +    onload test
      +    
      +  
      +  
      +    

      Событие загрузки произойдёт, когда документ будет загружен!

      + + +``` -

      Примечания

      +## Примечания -

      Событие загрузки возникают в конце процесса загрузки документа. В этот момент все объекты документа находятся в DOM, и все картинки, скрипты, фреймы, ссылки загружены.

      +Событие загрузки возникают в конце процесса загрузки документа. В этот момент все объекты документа находятся в DOM, и все картинки, скрипты, фреймы, ссылки загружены. -

      Есть также Gecko события как DOMContentLoaded и DOMFrameContentLoaded (которые могут быть навешены с помощью {{ domxref("EventTarget.addEventListener()") }}) которые возникают после того как DOM для страницы будет собран, но не ждут, когда другие ресурсы будут загружены.

      +Есть также [Gecko](/en/Gecko-Specific_DOM_Events "en/Gecko-Specific_DOM_Events") события как `DOMContentLoaded` и `DOMFrameContentLoaded` (которые могут быть навешены с помощью {{ domxref("EventTarget.addEventListener()") }}) которые возникают после того как DOM для страницы будет собран, но не ждут, когда другие ресурсы будут загружены. -

      Спецификации

      +## Спецификации -

      Этот обработчик события указан в стандарте HTML.

      +Этот обработчик события указан в стандарте [HTML](http://www.whatwg.org/html/#handler-window-onload). -

      Смотрите также

      +## Смотрите также - +- `DOMContentLoaded` событие в [Listening to events: Simple DOM events](/En/Listening_to_events#Simple_DOM.c2.a0events "En/Listening to events#Simple DOM.c2.a0events") diff --git a/files/ru/conflicting/web/api/window/popstate_event/index.md b/files/ru/conflicting/web/api/window/popstate_event/index.md index 18bde37ca76cbd..05c85856ccde59 100644 --- a/files/ru/conflicting/web/api/window/popstate_event/index.md +++ b/files/ru/conflicting/web/api/window/popstate_event/index.md @@ -4,30 +4,28 @@ slug: conflicting/Web/API/Window/popstate_event translation_of: Web/API/WindowEventHandlers/onpopstate original_slug: Web/API/WindowEventHandlers/onpopstate --- -
      {{APIRef}}
      +{{APIRef}} -

      Свойство onpopstate миксина {{domxref("WindowEventHandlers")}} является {{event("Event_handlers", "event handler")}} для обработки событий popstate для "window".

      +Свойство `onpopstate` миксина {{domxref("WindowEventHandlers")}} является {{event("Event_handlers", "event handler")}} для обработки событий `popstate` для "window". -

      Событие popstate отсылается объекту window каждый раз, когда активная запись истории меняется с одной на другую для одного и того же документа. Если запись истории, ставшая активной, была создана вызовом history.pushState() или изменена с помощью history.replaceState(), свойство state события popstate содержит копию объекта состояния этой записи истории.

      +Событие `popstate` отсылается объекту window каждый раз, когда активная запись истории меняется с одной на другую для одного и того же документа. Если запись истории, ставшая активной, была создана вызовом `history.pushState()` или изменена с помощью `history.replaceState()`, свойство `state` события `popstate` содержит копию объекта состояния этой записи истории. -
      -

      Примечание:, просто вызов history.pushState() или history.replaceState() не вызовет событие popstate. Событие popstate срабатывает только тогда, когда происходят какие то действия в браузере, такие как нажатие кнопки "назад" (или вызов history.back() из JavaScript). Это событие срабатывает только когда пользователь переходит между двумя записями истории одного и того же документа.

      -
      +> **Примечание:**, просто вызов `history.pushState()` или `history.replaceState()` не вызовет событие `popstate`. Событие `popstate` срабатывает только тогда, когда происходят какие то действия в браузере, такие как нажатие кнопки "назад" (или вызов `history.back()` из JavaScript). Это событие срабатывает только когда пользователь переходит между двумя записями истории одного и того же документа. -

      Синтаксис

      +## Синтаксис -
      window.onpopstate = funcRef;
      -
      +``` +window.onpopstate = funcRef; +``` -
        -
      • funcRef – функция обработчик.
      • -
      +- `funcRef` – функция обработчик. -

      Примеры

      +## Примеры -

      В качестве примера, страница http://example.com/example.html, исполняя нижеследующий код, сгенерирует всплывающие сообщения, как показано в комментариях:

      +В качестве примера, страница `http://example.com/example.html`, исполняя нижеследующий код, сгенерирует всплывающие сообщения, как показано в комментариях: -
      window.onpopstate = function(event) {
      +```js
      +window.onpopstate = function(event) {
         alert("location: " + document.location + ", state: " + JSON.stringify(event.state));
       };
       
      @@ -37,24 +35,20 @@ history.replaceState({page: 3}, "title 3", "?page=3");
       history.back(); // alerts "location: http://example.com/example.html?page=1, state: {"page":1}"
       history.back(); // alerts "location: http://example.com/example.html, state: null
       history.go(2);  // alerts "location: http://example.com/example.html?page=3, state: {"page":3}
      -
      +``` -

      Обратите внимание, что даже несмотря на то, что первоначальная запись истории (для http://example.com/example.html) не имеет объекта события, связанного с ней, событие popstate всё равно произойдёт, когда мы активируем эту запись после второго вызова history.back().

      +Обратите внимание, что даже несмотря на то, что первоначальная запись истории (для `http://example.com/example.html`) не имеет объекта события, связанного с ней, событие `popstate` всё равно произойдёт, когда мы активируем эту запись после второго вызова `history.back()`. -

      Спецификация

      +## Спецификация - +- [HTML5 popstate event](http://www.whatwg.org/specs/web-apps/current-work/#handler-window-onpopstate) -

      Browser compatibility

      +## Browser compatibility -

      {{Compat}}

      +{{Compat}} -

      Смотрите также

      +## Смотрите также - +- {{domxref("window.history")}} +- [Manipulating the browser history](/ru/docs/Web/Guide/DOM/Manipulating_the_browser_history) +- [Ajax navigation example](/ru/docs/Web/Guide/DOM/Manipulating_the_browser_history/Example) diff --git a/files/ru/conflicting/web/css/css_fonts/index.md b/files/ru/conflicting/web/css/css_fonts/index.md index 00642ec5034dcf..fdc1767cdabf05 100644 --- a/files/ru/conflicting/web/css/css_fonts/index.md +++ b/files/ru/conflicting/web/css/css_fonts/index.md @@ -5,39 +5,35 @@ translation_of: Web/API/HTMLBaseFontElement original_slug: Web/API/HTMLBaseFontElement --- -

      {{APIRef("HTML DOM")}} {{obsolete_header}}

      +{{APIRef("HTML DOM")}} {{obsolete_header}} -

      HTMLBaseFontElementинтерфейс предоставляющий специальные свойства (помимо тех постоянных объектов {{domxref("HTMLElement")}} интерфейса, доступных ему также по наследству) для манипулирования {{HTMLElement("basefont")}} элементами.

      +**`HTMLBaseFontElement`** интерфейс предоставляющий специальные свойства (помимо тех постоянных объектов {{domxref("HTMLElement")}} интерфейса, доступных ему также по наследству) для манипулирования {{HTMLElement("basefont")}} элементами. -

      элемент <basefont> устарел HTML4 и удалён в HTML5. Это последняя спецификация которая этот элемент реализует This latest specification requires that this element implements {{domxref("HTMLUnknownElement")}} вместо HTMLBaseFontElement.

      +`элемент ` устарел HTML4 и удалён в HTML5. Это последняя спецификация которая этот элемент реализует This latest specification requires that this element implements {{domxref("HTMLUnknownElement")}} вместо `HTMLBaseFontElement`. -

      Свойства

      +## Свойства -

      Наследует свойства от его родителя, {{domxref("HTMLElement")}}.

      +_Наследует свойства от его родителя, {{domxref("HTMLElement")}}._ -
      -
      HTMLBaseFontElement.color
      -
      Это {{domxref("DOMString")}} представляющий цвет текста, используя либо именованный цвет или цвет определённый в шестнадцатеричном формате #RRGGBB.
      -
      HTMLBaseFontElement.face
      -
      Это {{domxref("DOMString")}} представляющий список из одного или более имени шрифтов. Текст документа отображается в стиле по умолчанию, первым поддерживаемым клиентским браузером шрифтом. Если нет установленного шрифта на локальной системе, браузер обычно по умолчанию, устанавливает пропорциональный или фиксированной ширины шрифт для этой системы.
      -
      HTMLBaseFontElement.size
      -
      {{domxref("DOMString")}} предоставляет размер шрифта или как числовое значение или как относительное значение. Числовые значения в диапазоне от 1 до 7, где 1 самое маленькое значение и три значение по умолчанию. Относительное значение начинается с '+' или '-'.
      -
      +- `HTMLBaseFontElement.color` + - : Это {{domxref("DOMString")}} представляющий цвет текста, используя либо именованный цвет или цвет определённый в шестнадцатеричном формате `#RRGGBB`. +- `HTMLBaseFontElement.face` + - : Это {{domxref("DOMString")}} представляющий список из одного или более имени шрифтов. Текст документа отображается в стиле по умолчанию, первым поддерживаемым клиентским браузером шрифтом. Если нет установленного шрифта на локальной системе, браузер обычно по умолчанию, устанавливает пропорциональный или фиксированной ширины шрифт для этой системы. +- `HTMLBaseFontElement.size` + - : {{domxref("DOMString")}} предоставляет размер шрифта или как числовое значение или как относительное значение. Числовые значения в диапазоне от 1 до 7, где 1 самое маленькое значение и три значение по умолчанию. Относительное значение начинается с '+' или '-'`.` -

      Методы

      +## Методы -

      Не имеет специфичных методов; наследует методы от родителя, {{domxref("HTMLElement")}}.

      +_Не имеет специфичных методов; наследует методы от родителя, {{domxref("HTMLElement")}}._ -

      Спецификации

      +## Спецификации {{Specifications}} -

      Совместимость с браузерами

      +## Совместимость с браузерами -

      {{Compat}}

      +{{Compat}} -

      Смотрите также

      +## Смотрите также -
        -
      • HTML-элемент {{HTMLElement("basefont")}}осуществляющий этот интерфейс.
      • -
      +- HTML-элемент {{HTMLElement("basefont")}}осуществляющий этот интерфейс. diff --git a/files/ru/conflicting/web/css/css_fonts_25d4b407d3e5044aeffb97faa9669a95/index.md b/files/ru/conflicting/web/css/css_fonts_25d4b407d3e5044aeffb97faa9669a95/index.md index a5c05865cb25f0..96f12df0cc9035 100644 --- a/files/ru/conflicting/web/css/css_fonts_25d4b407d3e5044aeffb97faa9669a95/index.md +++ b/files/ru/conflicting/web/css/css_fonts_25d4b407d3e5044aeffb97faa9669a95/index.md @@ -5,56 +5,51 @@ translation_of: Web/HTML/Element/basefont original_slug: Web/HTML/Element/basefont --- -
      {{obsolete_header}}
      +{{obsolete_header}} -

      The obsolete HTML Base Font element (<basefont>) sets a default font face, size, and color for the other elements which are descended from its parent element. With this set, the font's size can then be varied relative to the base size using the {{HTMLElement("font")}} element.

      +The obsolete **HTML Base Font element** (**``**) sets a default font face, size, and color for the other elements which are descended from its parent element. With this set, the font's size can then be varied relative to the base size using the {{HTMLElement("font")}} element. -

      You should not use this element; instead, you should use CSS properties such as {{cssxref("font")}}, {{cssxref("font-family")}}, {{cssxref("font-size")}}, and {{cssxref("color")}} to change the font configuration for an element and its contents.

      +You should not use this element; instead, you should use CSS properties such as {{cssxref("font")}}, {{cssxref("font-family")}}, {{cssxref("font-size")}}, and {{cssxref("color")}} to change the font configuration for an element and its contents. -

      Attributes

      +## Attributes -

      Like all other HTML elements, this element supports the global attributes.

      +Like all other HTML elements, this element supports the [global attributes](/ru/docs/HTML/Global_attributes "HTML/Global attributes"). -
      -
      {{htmlattrdef("color")}}
      -
      This attribute sets the text color using either a named color or a color specified in the hexadecimal #RRGGBB format.
      -
      {{htmlattrdef("face")}}
      -
      This attribute contains a list of one or more font names. The document text in the default style is rendered in the first font face that the client's browser supports. If no font listed is installed on the local system, the browser typically defaults to the proportional or fixed-width font for that system.
      -
      {{htmlattrdef("size")}}
      -
      This attribute specifies the font size as either a numeric or relative value. Numeric values range from 1 to 7 with 1 being the smallest and 3 the default.
      -
      +- {{htmlattrdef("color")}} + - : This attribute sets the text color using either a named color or a color specified in the hexadecimal #RRGGBB format. +- {{htmlattrdef("face")}} + - : This attribute contains a list of one or more font names. The document text in the default style is rendered in the first font face that the client's browser supports. If no font listed is installed on the local system, the browser typically defaults to the proportional or fixed-width font for that system. +- {{htmlattrdef("size")}} + - : This attribute specifies the font size as either a numeric or relative value. Numeric values range from 1 to 7 with 1 being the smallest and 3 the default. -

      Usage notes

      +## Usage notes -

      Do not use this element! Though once (imprecisely) normalized in HTML 3.2, it wasn't supported in all major browsers. Further, browsers, and even successive versions of browsers, never implemented it in the same way: practically, using it has always brought indeterminate results.

      +**Do not use this element!** Though once (imprecisely) normalized in HTML 3.2, it wasn't supported in all major browsers. Further, browsers, and even successive versions of browsers, never implemented it in the same way: practically, using it has always brought _indeterminate_ results. -

      The <basefont> element was deprecated in the standard at the same time as all elements related to styling only. Starting with HTML 4, HTML does not convey styling information anymore (outside the {{HTMLElement("style")}} element or the style attribute of each element). In HTML5, this element has been removed completely. For any new web development, styling should be written using CSS only.

      +The `` element was deprecated in the standard at the same time as all elements related to styling only. Starting with HTML 4, HTML does not convey styling information anymore (outside the {{HTMLElement("style")}} element or the **style** attribute of each element). In HTML5, this element has been removed completely. For any new web development, styling should be written using [CSS](/ru/docs/CSS "CSS") only. -

      The former behavior of the {{HTMLElement("font")}} element can be achieved, and even better controlled using the CSS Fonts properties.

      +The former behavior of the {{HTMLElement("font")}} element can be achieved, and even better controlled using the [CSS Fonts](/ru/docs/Web/CSS/CSS_Fonts) properties. -

      DOM interface

      +## DOM interface -

      This element implements the {{domxref("HTMLBaseFontElement")}} interface.

      +This element implements the {{domxref("HTMLBaseFontElement")}} interface. -

      Example

      +## Example -
      <basefont color="#FF0000" face="Helvetica" size="+2" />
      -
      +``` + +``` -

      Browser compatibility

      +## Browser compatibility +{{Compat}} +## Notes -

      {{Compat}}

      +- HTML 3.2 supports the basefont element but only with the size attribute. +- The strict HTML and XHTML specifications do not support this element. +- Despite being part of transitional standards, some standards-focused browsers like Mozilla and Opera do not support this element. +- This element can be imitated with a CSS rule on the {{HTMLElement("body")}} element. +- XHTML 1.0 requires a trailing slash for this element: ``. -

      Notes

      - -
        -
      • HTML 3.2 supports the basefont element but only with the size attribute.
      • -
      • The strict HTML and XHTML specifications do not support this element.
      • -
      • Despite being part of transitional standards, some standards-focused browsers like Mozilla and Opera do not support this element.
      • -
      • This element can be imitated with a CSS rule on the {{HTMLElement("body")}} element.
      • -
      • XHTML 1.0 requires a trailing slash for this element: <basefont />.
      • -
      - -
      {{HTMLSidebar}}
      +{{HTMLSidebar}} diff --git a/files/ru/conflicting/web/css/cursor/index.md b/files/ru/conflicting/web/css/cursor/index.md index 72d92d92dd07bc..b5c88f7d9661df 100644 --- a/files/ru/conflicting/web/css/cursor/index.md +++ b/files/ru/conflicting/web/css/cursor/index.md @@ -10,33 +10,40 @@ translation_of: Web/CSS/CSS_Basic_User_Interface/Using_URL_values_for_the_cursor original_slug: Web/CSS/CSS_Basic_User_Interface/Using_URL_values_for_the_cursor_property --- -
      {{cssref}}
      +{{cssref}} -

      Gecko 1.8 (Firefox 1.5, SeaMonkey 1.0) поддерживает URL-значения для CSS-свойства {{cssxref("cursor")}} в Windows и Linux. Поддержка Mac была добавлена в Gecko 2 (Firefox 4). Это позволяет устанавливать произвольные изображения в качестве курсора мыши — может быть использовать любой формат изображений, поддерживаемый Gecko.

      +[Gecko](/ru/docs/Mozilla/Gecko) 1.8 ([Firefox 1.5](/en-US/Firefox/Releases/1.5), SeaMonkey 1.0) поддерживает URL-значения для CSS-свойства {{cssxref("cursor")}} в Windows и Linux. Поддержка Mac была добавлена в Gecko 2 (Firefox 4). Это позволяет устанавливать произвольные изображения в качестве курсора мыши — может быть использовать любой формат изображений, поддерживаемый Gecko. -

      Синтаксис

      +### Синтаксис -

      Базовый (CSS 2.1) синтаксис для этого свойства:

      +Базовый (CSS 2.1) синтаксис для этого свойства: -
      cursor:  [<url>,]* ключевое_слово
      +``` +cursor: [,]* ключевое_слово +``` -

      Это означает, что устанавливать можно любое количество URL-адресов (отделённых запятой), которые должны сопровождаться одним из ключевых слов, определёнными спецификацией CSS, таких как auto или pointer.

      +Это означает, что устанавливать можно любое количество URL-адресов (отделённых запятой), которые должны сопровождаться одним из ключевых слов, определёнными спецификацией CSS, таких как `auto` или `pointer`. -

      Например, такая последовательность значений допустима:

      +Например, такая последовательность значений допустима: -
      cursor:  url(foo.cur), url(http://www.example.com/bar.gif), auto;
      +```css +cursor: url(foo.cur), url(http://www.example.com/bar.gif), auto; +``` -

      В первую очередь браузер пытается загрузить foo.cur. Если такой файл отсутствует или его форма не допустим по каким-то другим причинам, то дальше загружается bar.gif. И если он также не может быть использован, будет использовано значение auto.

      +В первую очередь браузер пытается загрузить _foo.cur_. Если такой файл отсутствует или его форма не допустим по каким-то другим причинам, то дальше загружается _bar.gif_. И если он также не может быть использован, будет использовано значение `auto`. -

      Поддержка CSS 3 синтаксиса для указания курсора была добавлена в Gecko 1.8 (Firefox 1.5):

      +Поддержка CSS 3 синтаксиса для указания курсора была добавлена в Gecko 1.8 (Firefox 1.5): -
      cursor:  [<uri> [<x> <y>]?,]* ключевое_слово
      +``` +cursor: [ [ ]?,]* ключевое_слово +``` -

      Это позволяет устанавливать координаты смещения курсора, которые буду зафиксированы на границах курсора. Если координаты не указаны, то они считываются непосредственно из файла (для CUR и XBM файлов) или же устанавливаются в левый верхний угол изображения.

      +Это позволяет устанавливать координаты смещения курсора, которые буду зафиксированы на границах курсора. Если координаты не указаны, то они считываются непосредственно из файла (для CUR и XBM файлов) или же устанавливаются в левый верхний угол изображения. -

      Пример CSS 3 синтаксиса:

      +Пример CSS 3 синтаксиса: -
      .foo  {
      +```css
      +.foo  {
         cursor:  auto;
         cursor:  url(cursor1.png) 4 12, auto;
       }
      @@ -47,75 +54,73 @@ original_slug: Web/CSS/CSS_Basic_User_Interface/Using_URL_values_for_the_cursor_
       }
       
       /* откатываются на 'auto' и 'pointer' в IE, но должны быть установлены отдельны */
      -
      +``` -

      Первое число определяет координату по оси x, а вторая - по оси y. Данный пример сместит изображение на точку (4,12) относительно левого верхнего угла (0,0).

      +Первое число определяет координату по оси x, а вторая - по оси y. Данный пример сместит изображение на точку (4,12) относительно левого верхнего угла (0,0). -

      Ограничения

      +### Ограничения -

      Могут быть использованы любые форматы, поддерживаемые Gecko. Это означает, что вы можете использовать PNG, GIF, JPG, BMP, CUR и т.д. ANI не поддерживается. Анимированные PNG и GIF не добавят анимацию курсору.

      +Могут быть использованы любые форматы, поддерживаемые Gecko. Это означает, что вы можете использовать PNG, GIF, JPG, BMP, CUR и т.д. ANI не поддерживается. Анимированные PNG и GIF не добавят анимацию курсору. -
      -

      Примечание: Начиная с Gecko 2.0 {{geckoRelease("2.0")}}, Gecko также поддерживает формат SVG в качестве изображения курсора. Тем не менее, SVG изображение должно содержать значения (кроме процентных значений) высоты и ширины на корневом SVG узле. JavaScript, CSS-анимация и декларативный SMIL внутри SVG изображения игнорируются; например, вы не можете использовать SVG, чтобы создать анимированный курсор.

      -
      +> **Примечание:** Начиная с Gecko 2.0 {{geckoRelease("2.0")}}, Gecko также поддерживает формат SVG в качестве изображения курсора. Тем не менее, SVG изображение должно содержать значения (кроме процентных значений) высоты и ширины на корневом `SVG` узле. JavaScript, CSS-анимация и декларативный SMIL внутри SVG изображения игнорируются; например, вы не можете использовать SVG, чтобы создать анимированный курсор. -

      В Gecko (Firefox) максимальный размер курсора - 128×128 пикселей. Изображения большего размера игнорируются. Однако, вам следую ограничиться размером курсора в 32×32 пикселя для максимальной совместимости с операционными системами и платформами.

      +В Gecko (Firefox) максимальный размер курсора - 128×128 пикселей. Изображения большего размера игнорируются. Однако, вам следую ограничиться размером курсора в 32×32 пикселя для максимальной совместимости с операционными системами и платформами. -

      (В следствие бага Gecko 1.9.2-1.9.2.6, Firefox 3.6-3.6.6 в Windows ограничивает размер в 32x32 пикселя. Это исправляется в более новых версиях.)

      +(В следствие бага Gecko 1.9.2-1.9.2.6, Firefox 3.6-3.6.6 в Windows ограничивает размер в 32x32 пикселя. Это исправляется в более новых версиях.) -

      Прозрачные курсоры не поддерживаются в версиях Windows ниже XP. Это ограничение для операционной системы. Прозрачность работает на любых платформах.

      +Прозрачные курсоры не поддерживаются в версиях Windows ниже XP. Это ограничение для операционной системы. Прозрачность работает на любых платформах. -

      URL в качестве курсора поддерживаются в Windows, OS/2, и Linux (с использованием GTK+ 2.4 или выше) версиях Mozilla. Поддержка Mac OS X была добавлена в Gecko 2 (Firefox 4).

      +URL в качестве курсора поддерживаются в Windows, OS/2, и Linux (с использованием GTK+ 2.4 или выше) версиях Mozilla. Поддержка Mac OS X была добавлена в Gecko 2 (Firefox 4). -

      Совместимость с другими браузерами

      +### Совместимость с другими браузерами -

      Microsoft Internet Explorer 6.0 также поддерживает URI значения для свойства cursor. Тем не менее:

      +Microsoft Internet Explorer 6.0 также поддерживает URI значения для свойства `cursor`. Тем не менее: -
        -
      • IE поддерживает только CUR и ANI форматы.
      • -
      • IE не поддерживает CSS 3 синтаксис с x- и y-координатами. Изображение курсора и дальнейшее свойство игнорируются.
      • -
      +- IE поддерживает только CUR и ANI форматы. +- IE не поддерживает CSS 3 синтаксис с x- и y-координатами. Изображение курсора и дальнейшее свойство игнорируются. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      БраузерРанняя версияФорматыx-y-координаты
      Internet Explorer6.0.cur | .ani---
      Firefox (Gecko), Windows и Linux1.5 (1.8).cur | .png | .gif | .jpg1.5 (1.8)
      Firefox (Gecko)4.0 (2.0).cur | .png | .gif | .jpg | .svg(Gecko 2.0)
      Opera---------
      Safari (Webkit)3.0 (522-523).cur | .png | .gif | .jpg3.0 (522-523)
      Начиная с OS X 10.5, Safari (Mac) поддерживает .cur файлы
      БраузерРанняя версияФорматыx-y-координаты
      Internet Explorer6.0.cur | .ani---
      Firefox (Gecko), Windows и Linux1.5 (1.8).cur | .png | .gif | .jpg1.5 (1.8)
      Firefox (Gecko)4.0 (2.0).cur | .png | .gif | .jpg | .svg(Gecko 2.0)
      Opera---------
      Safari (Webkit)3.0 (522-523).cur | .png | .gif | .jpg3.0 (522-523)
      + Начиная с OS X 10.5, Safari (Mac) поддерживает .cur файлы +
      diff --git a/files/ru/conflicting/web/html/element/input/datetime-local/index.md b/files/ru/conflicting/web/html/element/input/datetime-local/index.md index 3027832d400375..c4e2cadf64851f 100644 --- a/files/ru/conflicting/web/html/element/input/datetime-local/index.md +++ b/files/ru/conflicting/web/html/element/input/datetime-local/index.md @@ -14,17 +14,15 @@ tags: translation_of: Web/HTML/Element/input/datetime original_slug: Web/HTML/Element/Input/datetime --- -
      {{HTMLSidebar}}{{obsolete_header}}
      +{{HTMLSidebar}}{{obsolete_header}} -

      HTML <input type="datetime"> был элементом для ввода даты и времени (час, минута, секунда и доля секунды), а также часовой пояс. Эта функция была удалена из WHATWG HTML и больше не поддерживается в браузерах.

      +HTML `` был элементом для ввода даты и времени (час, минута, секунда и доля секунды), а также часовой пояс. **Эта функция была [удалена из WHATWG HTML](https://github.com/whatwg/html/issues/336)** и больше не поддерживается в браузерах. -

      Вместо этого, браузеры реализуют (и разработчикам рекомендуется использовать) <input type="datetime-local">.

      +Вместо этого, браузеры реализуют (и разработчикам рекомендуется использовать) [``](/ru/docs/Web/HTML/Element/input/datetime-local). -

      Формат значений даты и времени, используемый этим типом описан в {{SectionOnPage("/ru/docs/Web/HTML/Date_and_time_formats", "Строки глобальной даты и времени")}}.

      +Формат значений даты и времени, используемый этим типом описан в {{SectionOnPage("/ru/docs/Web/HTML/Date_and_time_formats", "Строки глобальной даты и времени")}}. -

      Смотрите также

      +## Смотрите также - +- Элемент {{HTMLElement("input")}} +- [Форматы даты и времени используемые в HTML](/ru/docs/Web/HTML/Date_and_time_formats) diff --git a/files/ru/conflicting/web/http/status/404/index.md b/files/ru/conflicting/web/http/status/404/index.md index eadc1b54025b50..603a4ccddf9fe3 100644 --- a/files/ru/conflicting/web/http/status/404/index.md +++ b/files/ru/conflicting/web/http/status/404/index.md @@ -4,11 +4,9 @@ slug: conflicting/Web/HTTP/Status/404 translation_of: Glossary/404 original_slug: Glossary/404 --- -

      Ошибка 404 — код стандартного ответа, означающий, что {{Glossary("Server", "сервер")}} не может найти запрашиваемый ресурс.

      +Ошибка 404 — код стандартного ответа, означающий, что {{Glossary("Server", "сервер")}} не может найти запрашиваемый ресурс. -

      Дополнительные ресурсы

      +## Дополнительные ресурсы - +- [Список HTTP-кодов ответа](/ru/docs/Web/HTTP/Status) +- [Советы начинающим по устранению ошибок 404](/ru/docs/Learn/Common_questions/Checking_that_your_web_site_is_working_properly) diff --git a/files/ru/conflicting/web/http/status/502/index.md b/files/ru/conflicting/web/http/status/502/index.md index 6f4e629e27e53c..434072ddcf6c07 100644 --- a/files/ru/conflicting/web/http/status/502/index.md +++ b/files/ru/conflicting/web/http/status/502/index.md @@ -11,14 +11,12 @@ translation_of: Glossary/502 original_slug: Glossary/502 --- -

      Код ошибки в протоколе {{Glossary("HTTP")}}, означающий «Ошибка шлюза».

      +Код ошибки в протоколе {{Glossary("HTTP")}}, означающий «Ошибка шлюза». -

      {{Glossary("Server", "Сервер")}} может выступать шлюзом или прокси (посредником) между клиентом (например, веб-браузером) и другим вышестоящим сервером. Когда вы запрашиваете доступ по {{Glossary("URL")}}, сервер-шлюз передает ваш запрос вышестоящему серверу. «502» означает, что вышестоящий сервер вернул неверный ответ.

      +{{Glossary("Server", "Сервер")}} может выступать шлюзом или прокси (посредником) между клиентом (например, веб-браузером) и другим вышестоящим сервером. Когда вы запрашиваете доступ по {{Glossary("URL")}}, сервер-шлюз передает ваш запрос вышестоящему серверу. «502» означает, что вышестоящий сервер вернул неверный ответ. -

      Обычно вышестоящий сервер не отключен, но он не понимает тот же протокол обмена данными, что и шлюз/прокси. Интернет-{{Glossary("протокол", "протоколы")}} довольно точны в своих определениях, поэтому 502 обычно означает, что одна или обе машины не правильно или не полностью запрограммированы.

      +Обычно вышестоящий сервер не отключен, но он не понимает тот же протокол обмена данными, что и шлюз/прокси. Интернет-{{Glossary("протокол", "протоколы")}} довольно точны в своих определениях, поэтому 502 обычно означает, что одна или обе машины не правильно или не полностью запрограммированы. -

      Дополнительные ресурсы

      +## Дополнительные ресурсы - +- [Список кодов ответа в HTTP](/ru/docs/Web/HTTP/Status) diff --git a/files/ru/conflicting/web/javascript/inheritance_and_the_prototype_chain/index.md b/files/ru/conflicting/web/javascript/inheritance_and_the_prototype_chain/index.md index 5b9f2431987ff6..7208a8488039cc 100644 --- a/files/ru/conflicting/web/javascript/inheritance_and_the_prototype_chain/index.md +++ b/files/ru/conflicting/web/javascript/inheritance_and_the_prototype_chain/index.md @@ -5,151 +5,120 @@ translation_of: Web/JavaScript/Guide/Details_of_the_Object_Model original_slug: Web/JavaScript/Guide/Details_of_the_Object_Model --- -

      {{jsSidebar("JavaScript Guide")}} {{PreviousNext("Web/JavaScript/Guide/Working_with_Objects", "Web/JavaScript/Guide/Ispolzovanie_promisov")}}

      - -

      JavaScript — это объектно-ориентированный язык, основанный на прототипировании, а не на классах. Из-за этого, менее очевидно то, каким образом JavaScript позволяет создавать иерархии объектов и обеспечивает наследование свойств и их значений. Эта глава является скромной попыткой прояснить ситуацию.

      - -

      Эта глава предполагает что читатель знаком с основами JavaScript, и имеет опыт использования функций для создания простейших объектов.

      - -

      Языки, основанные на классах против Прототипно-ориентированных языков

      - -

      Основанные на классах объектно-ориентированные языки программирования, такие как Java и C++, строятся на концепции двух отдельных сущностей: класс и экземпляр.

      - -
        -
      • Класс определяет все свойства (учитывая методы и все поля в Java, или свойства в C++), которые характеризуют группу объектов. Класс это абстрактная вещь, а не какой-либо конкретный член множества объектов, которые он описывает. Например, класс Employee может описывать множество всех сотрудников.
      • -
      • Экземпляр, это воплощение класса в виде конкретного объекта. Например, Victoria может быть экземпляром класса Employee, представляющий собой конкретного сотрудника. Экземпляр класса имеет ровно столько свойств, сколько и родительский класс (не больше и не меньше).
      • -
      - -

      Прототипно-ориентированный язык, например JavaScript, не реализует данное различие: он имеет только объекты. Языки, основанные на прототипах, имеют понятие прототипа объекта — это объект, используемый в качестве шаблона, с целью получить изначальные свойства для нового объекта. Любой объект может иметь собственные свойства, присвоенные либо во время создания, либо во время выполнения. В дополнение, любой объект может быть указан в качестве прототипа для другого объекта, это позволит второму объекту использовать свойства первого.

      - -

      Определение класса

      - -

      В классо-ориентированных языках, вы можете определить класс. В этом определении вы можете указать специальные методы, называемые конструкторами, которые позволят создать экземпляр класса. Метод конструктор может задать начальные значения для свойств экземпляра и выполнять другие действия, в момент создания. Вы можете использовать оператор new, совместно с методом конструктора, для создания экземпляров классов.

      - -

      JavaScript использует похожую модель, но не имеет определения класса отдельно от конструктора. Вместо этого, вы определяете функцию-конструктор для создания объектов с начальным набором свойств и значений. Любая функция в JavaScript может быть использована, как конструктор. Вы должны использовать оператор new для создания нового объекта.

      - -

      Подклассы и наследование

      - -

      В языках, основанных на классах, вы создаёте иерархию классов через объявление классов. В объявлении класса вы можете указать, что новый класс является подклассом уже существующего класса. При этом, подкласс унаследует все свойства суперкласса и в дополнение сможет добавить свои свойства или переопределить унаследованные. Например, предположим, что класс Employee включает два свойства: name и dept, а класс Manager является подклассом Employee и добавляет свойство reports. В этом случае, экземпляр класса Manager будет иметь три свойства: name, dept, и reports.

      - -

      JavaScript реализует наследование, позволяя связать прототипный объект с любой функцией-конструктором. Итак, вы можете создать объект точь-в-точь, как в примере EmployeeManager, но используя несколько иную технику. Для начала нужно определить функцию-конструктор Employee, которая определяет свойства name и dept. Затем, определяем функцию-конструктор Manager, в которой в свою очередь, будет явно вызываться конструктор Employee и определяться новое свойство reports. Наконец, присваиваем новый экземпляр Employee, в качестве prototype для функции-конструктора Manager. Теперь, когда вы создадите нового Manager, он унаследует свойства name и dept из объекта Employee.

      - -

      Добавление и удаление свойств

      - -

      В языках, основанных на классах, вы, как правило, создаёте класс во время компиляции, а затем вы создаёте экземпляры класса либо во время компиляции, либо во время выполнения. Вы не можете изменить количество или тип свойств класса после определения класса. В JavaScript, однако, вы можете добавлять или удалять свойства любого объекта. Если вы добавляете свойство к объекту, который используется в качестве прототипа для множества объектов, то все эти объекты, для которых он является прототипом, также получат это свойство.

      - -

      Подытожим различия

      - -

      Следующая таблица даёт краткий обзор некоторых из этих различий. А оставшаяся часть этой главы описывает детали использования конструкторов и прототипов JavaScript для создания иерархии объектов и сравнивает это с тем, как вы могли бы сделать это в Java.

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      Сравнение языков на основе классов (Java) и на базе прототипов (JavaScript)
      Основанные на классах (Java)Основанные на базе прототипов (JavaScript)
      Класс и экземпляр являются разными сущностями.Все объекты могут наследовать свойства другого объекта.
      Определяем класс с помощью определения класса; создаём экземпляр класса с помощью метода-конструктора.Определение и создание объекта происходит с помощью функций-конструкторов.
      Создание отдельного объекта с помощью оператора new.Так же.
      Иерархия объектов строится с помощью определения классов и их подклассов. -

      Построение иерархии объектов происходит путём присвоения объекта в качестве прототипа функции-конструктора.

      -
      Наследование свойств в цепочке классов.Наследование свойств в цепочке прототипов.
      Определение класса определяет все свойства всех экземпляров класса. Нельзя динамически добавлять свойства во время выполнения.Функция-конструктор или прототип задаёт начальный набор свойств. Можно добавить или удалить свойства динамически к отдельным объектам или всей совокупности объектов.
      +{{jsSidebar("JavaScript Guide")}} {{PreviousNext("Web/JavaScript/Guide/Working_with_Objects", "Web/JavaScript/Guide/Ispolzovanie_promisov")}} + +JavaScript — это объектно-ориентированный язык, основанный на прототипировании, а не на классах. Из-за этого, менее очевидно то, каким образом JavaScript позволяет создавать иерархии объектов и обеспечивает наследование свойств и их значений. Эта глава является скромной попыткой прояснить ситуацию. + +Эта глава предполагает что читатель знаком с основами JavaScript, и имеет опыт использования функций для создания простейших объектов. + +## Языки, основанные на классах против Прототипно-ориентированных языков + +Основанные на классах объектно-ориентированные языки программирования, такие как Java и C++, строятся на концепции двух отдельных сущностей: класс и экземпляр. + +- _Класс_ определяет все свойства (учитывая методы и все поля в Java, или свойства в C++), которые характеризуют группу объектов. Класс это абстрактная вещь, а не какой-либо конкретный член множества объектов, которые он описывает. Например, класс `Employee` может описывать множество всех сотрудников. +- _Экземпляр_, это воплощение класса в виде конкретного объекта. Например, `Victoria` может быть экземпляром класса `Employee`, представляющий собой конкретного сотрудника. Экземпляр класса имеет ровно столько свойств, сколько и родительский класс (не больше и не меньше). + +Прототипно-ориентированный язык, например JavaScript, не реализует данное различие: он имеет только объекты. Языки, основанные на прототипах, имеют понятие _прототипа объекта —_ это\_ *объект, используемый в качестве шаблона, с целью получить изначальные свойства для нового объекта. Любой объект может иметь собственные свойства, присвоенные либо во время создания, либо во время выполнения. В дополнение, любой объект может быть указан в качестве *прототипа\_ для другого объекта, это позволит второму объекту использовать свойства первого. + +### Определение класса + +В классо-ориентированных языках, вы можете _определить класс_. В этом определении вы можете указать специальные методы, называемые _конструкторами_, которые позволят создать экземпляр класса. Метод конструктор может задать начальные значения для свойств экземпляра и выполнять другие действия, в момент создания. Вы можете использовать оператор `new`, совместно с методом конструктора, для создания экземпляров классов. + +JavaScript использует похожую модель, но не имеет определения класса отдельно от конструктора. Вместо этого, вы определяете функцию-конструктор для создания объектов с начальным набором свойств и значений. Любая функция в JavaScript может быть использована, как конструктор. Вы должны использовать оператор `new` для создания нового объекта. + +### Подклассы и наследование + +В языках, основанных на классах, вы создаёте иерархию классов через объявление классов. В объявлении класса вы можете указать, что новый класс является _подклассом_ уже существующего класса. При этом, подкласс унаследует все свойства суперкласса и в дополнение сможет добавить свои свойства или переопределить унаследованные. Например, предположим, что класс `Employee` включает два свойства: `name` и `dept`, а класс `Manager` является подклассом `Employee` и добавляет свойство `reports`. В этом случае, экземпляр класса `Manager` будет иметь три свойства: `name`, `dept`, и `reports`. + +JavaScript реализует наследование, позволяя связать прототипный объект с любой функцией-конструктором. Итак, вы можете создать объект точь-в-точь, как в примере `Employee` — `Manager`, но используя несколько иную технику. Для начала нужно определить функцию-конструктор `Employee`, которая определяет свойства `name` и `dept`. Затем, определяем функцию-конструктор `Manager`, в которой в свою очередь, будет явно вызываться конструктор `Employee` и определяться новое свойство `reports`. Наконец, присваиваем новый экземпляр `Employee`, в качестве `prototype` для функции-конструктора `Manager`. Теперь, когда вы создадите нового Manager, он унаследует свойства name и dept из объекта `Employee`. + +### Добавление и удаление свойств + +В языках, основанных на классах, вы, как правило, создаёте класс во время компиляции, а затем вы создаёте экземпляры класса либо во время компиляции, либо во время выполнения. Вы не можете изменить количество или тип свойств класса после определения класса. В JavaScript, однако, вы можете добавлять или удалять свойства любого объекта. Если вы добавляете свойство к объекту, который используется в качестве прототипа для множества объектов, то все эти объекты, для которых он является прототипом, также получат это свойство. + +### Подытожим различия + +Следующая таблица даёт краткий обзор некоторых из этих различий. А оставшаяся часть этой главы описывает детали использования конструкторов и прототипов JavaScript для создания иерархии объектов и сравнивает это с тем, как вы могли бы сделать это в Java. + +| Основанные на классах (Java) | Основанные на базе прототипов (JavaScript) | +| -------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Класс и экземпляр являются разными сущностями. | Все объекты могут наследовать свойства другого объекта. | +| Определяем класс с помощью определения класса; создаём экземпляр класса с помощью метода-конструктора. | Определение и создание объекта происходит с помощью функций-конструкторов. | +| Создание отдельного объекта с помощью оператора `new`. | Так же. | +| Иерархия объектов строится с помощью определения классов и их подклассов. | Построение иерархии объектов происходит путём присвоения объекта в качестве прототипа функции-конструктора. | +| Наследование свойств в цепочке классов. | Наследование свойств в цепочке прототипов. | +| Определение класса определяет _все_ свойства всех экземпляров класса. Нельзя динамически добавлять свойства во время выполнения. | Функция-конструктор или прототип задаёт _начальный_ набор свойств. Можно добавить или удалить свойства динамически к отдельным объектам или всей совокупности объектов. | -

      Пример Сотрудник

      +## Пример Сотрудник -

      Оставшаяся часть этой главы объясняет иерархию сотрудников, показанную на следующем рисунке:

      +Оставшаяся часть этой главы объясняет иерархию сотрудников, показанную на следующем рисунке: -

      +![](/@api/deki/files/4452/=figure8.1.png) -

      Рисунок 8.1: Простая иерархия объектов

      +**Рисунок 8.1: Простая иерархия объектов** -

      Этот пример использует следующие объекты:

      +Этот пример использует следующие объекты: -
        -
      • Employee имеет свойство name (значение которого по умолчанию пустая строка) и dept (значение которого по умолчанию "general").
      • -
      • Manager основывается на Employee. Он добавляет свойство reports (значение которого по умолчанию пустой массив, предназначенный для хранения массива объектов Employee).
      • -
      • WorkerBee так же основан на Employee. Он добавляет свойство projects (значение которого по умолчанию пустой массив, предназначенный для хранения строк).
      • -
      • SalesPerson основан на WorkerBee. Он добавляет свойство quota (значение которого по умолчанию 100). Он также переопределяет свойство dept, со значением "sales", указывая, что все продавцы находятся в одном отделе.
      • -
      • Engineer основан на WorkerBee. Он добавляет свойство machine (значение которого по умолчанию пустая строка), а так же определяет свойство dept значением "engineering".
      • -
      +- `Employee` имеет свойство `name` (значение которого по умолчанию пустая строка) и `dept` (значение которого по умолчанию "general"). +- `Manager` основывается на `Employee`. Он добавляет свойство `reports` (значение которого по умолчанию пустой массив, предназначенный для хранения массива объектов `Employee`). +- `WorkerBee` так же основан на `Employee`. Он добавляет свойство `projects` (значение которого по умолчанию пустой массив, предназначенный для хранения строк). +- `SalesPerson` основан на `WorkerBee`. Он добавляет свойство `quota` (значение которого по умолчанию 100). Он также переопределяет свойство `dept`, со значением "sales", указывая, что все продавцы находятся в одном отделе. +- `Engineer` основан на `WorkerBee`. Он добавляет свойство `machine` (значение которого по умолчанию пустая строка), а так же определяет свойство `dept` значением "engineering". -

      Создание иерархии

      +## Создание иерархии -

      Известно несколько способов определить подходящие функции-конструкторы, которые реализуют иерархию Employee. Выбор способа определения в большей степени зависит от того, на что рассчитано ваше приложение.

      +Известно несколько способов определить подходящие функции-конструкторы, которые реализуют иерархию `Employee`. Выбор способа определения в большей степени зависит от того, на что рассчитано ваше приложение. -

      В этом разделе приведены очень простые (и сравнительно не гибкие) определения, для демонстрации того, как же работает наследование. В этих определениях, вы не можете указать значения свойствам при создании объекта. Свойства вновь созданного объекта попросту получают значения по умолчанию, которые можно изменить позднее.

      +В этом разделе приведены очень простые (и сравнительно не гибкие) определения, для демонстрации того, как же работает наследование. В этих определениях, вы не можете указать значения свойствам при создании объекта. Свойства вновь созданного объекта попросту получают значения по умолчанию, которые можно изменить позднее. -

      В реальном приложении, вы, вероятно, будете определять конструкторы, которые позволяют устанавливать нужные вам значения свойств во время создания объекта (см Более гибкие конструкторы). В данном же случае конструкторы упрощены сознательно для того, чтобы сфокусироваться на сути наследования.

      +В реальном приложении, вы, вероятно, будете определять конструкторы, которые позволяют устанавливать нужные вам значения свойств во время создания объекта (см [Более гибкие конструкторы](#Более_гибкие_конструкторы)). В данном же случае конструкторы упрощены сознательно для того, чтобы сфокусироваться на сути наследования. -

      Следующие определения Employee для языков Java и JavaScript довольно похожи. Единственное отличие состоит в том, что вам необходимо указать тип каждого свойства в Java, но не в JavaScript (потому что Java является строго типизированным языком, в то время как JavaScript слабо типизированный).

      +Следующие определения `Employee` для языков Java и JavaScript довольно похожи. Единственное отличие состоит в том, что вам необходимо указать тип каждого свойства в Java, но не в JavaScript (потому что Java является [строго типизированным языком](https://ru.wikipedia.org/wiki/Сильная_и_слабая_типизация), в то время как JavaScript слабо типизированный). - - - - - - - - - + + + + + + + + - + - - + + + +
      JavaScriptJava
      -
      +  
      JavaScriptJava
      +
       function Employee() {
         this.name = '';
         this.dept = 'general';
       }
      -
      -
      -
      +
      +
      +
       public class Employee {
          public String name = "";
          public String dept = "general";
       }
      -
      -
      -

      Определения классов Manager и WorkerBee показывают разницу в определении вышестоящего объекта в цепочке наследования. В JavaScript вводится связующий объект (прототипный экземпляр), который присваивается в качестве значения свойству prototype функции-конструктора. Вы можете сделать это в любое время после того, как вы создали конструктор. В Java, необходимо указать суперкласс внутри определения класса. Вы не можете изменить суперкласс вне определения класса.

      +Определения классов `Manager` и `WorkerBee` показывают разницу в определении вышестоящего объекта в цепочке наследования. В JavaScript вводится связующий объект (прототипный экземпляр), который присваивается в качестве значения свойству `prototype` функции-конструктора. Вы можете сделать это в любое время после того, как вы создали конструктор. В Java, необходимо указать суперкласс внутри определения класса. Вы не можете изменить суперкласс вне определения класса. - - - - - - - - - + + + + + + + + - + - - + + + + +
      JavaScriptJava
      -
      +  
      JavaScriptJava
      +
       function Manager() {
         Employee.call(this);
         this.reports = [];
      @@ -161,41 +130,45 @@ Manager.prototype = Object.create(Employee.prototype);
       Manager.prototype.constructor = Manager;
       
       function WorkerBee() {
      -  Employee.call(this);
      -  this.projects = [];
      +Employee.call(this);
      +this.projects = [];
       }
       WorkerBee.prototype = Object.create(Employee.prototype);
       WorkerBee.prototype.constructor = WorkerBee;
      -
      -
      -
      +
      +
      +
      +
       public class Manager extends Employee {
          public Employee[] reports = new Employee[0];
       }
       
       public class WorkerBee extends Employee {
      -   public String[] projects = new String[0];
      +public String[] projects = new String[0];
       }
      -
      -
      -

      Классы Engineer и SalesPerson создают объекты, которые происходят от WorkerBee и, следовательно, от Employee. Объект этих типов имеет свойства всех объектов, расположенных над ним в иерархии. Также, эти классы переопределяют наследуемое значение свойства dept своими значениями, характерными для этих объектов.

      +Классы `Engineer` и `SalesPerson` создают объекты, которые происходят от `WorkerBee` и, следовательно, от `Employee`. Объект этих типов имеет свойства всех объектов, расположенных над ним в иерархии. Также, эти классы переопределяют наследуемое значение свойства `dept` своими значениями, характерными для этих объектов. - - - - - - - - - + + + + + + + + - + - - - - - - + + + + + + + + +
      JavaScriptJava
      -
      +  
      JavaScriptJava
      +
       function SalesPerson() {
          WorkerBee.call(this);
          this.dept = 'sales';
      @@ -205,16 +178,18 @@ SalesPerson.prototype = Object.create(WorkerBee.prototype);
       SalesPerson.prototype.constructor = SalesPerson;
       
       function Engineer() {
      -   WorkerBee.call(this);
      -   this.dept = 'engineering';
      -   this.machine = '';
      +WorkerBee.call(this);
      +this.dept = 'engineering';
      +this.machine = '';
       }
       Engineer.prototype = Object.create(WorkerBee.prototype);
       Engineer.prototype.constructor = Engineer;
      -
      -
      -
      +
      +
      +
      +
       public class SalesPerson extends WorkerBee {
          public double quota;
          public dept = "sales";
      @@ -222,102 +197,111 @@ public class SalesPerson extends WorkerBee {
       }
       
       public class Engineer extends WorkerBee {
      -   public String machine;
      -   public dept = "engineering";
      -   public machine = "";
      +public String machine;
      +public dept = "engineering";
      +public machine = "";
       }
      -
      -
      -

      Используя эти определения, вы можете создавать экземпляры объектов, которые получат значения по умолчанию для своих свойств. Рисунок 8.3 иллюстрирует использование этих определений и показывает значения свойств у полученных объектов.

      +Используя эти определения, вы можете создавать экземпляры объектов, которые получат значения по умолчанию для своих свойств. Рисунок 8.3 иллюстрирует использование этих определений и показывает значения свойств у полученных объектов. -

      Примечание: Термин экземпляр имеет специфическое значение в языках, основанных на классах. В этих языках экземпляр — это индивидуальная сущность определённого класса и принципиально отличается от класса. В JavaScript «экземпляр» не имеет такого технического значения, потому что JavaScript не делает таких отличий между классами и экземплярами. Однако, в разговоре о JavaScript, термин «экземпляр» может неформально использоваться для обозначения объекта, созданного с использованием конкретной функции конструктора. Так, в этом примере, вы можете неформально сказать, что jane является экземпляром Engineer. Аналогично, хотя термины parent, child, ancestor и descendant (родитель, ребёнок, предок и потомок) не имеют формальных значений в JavaScript, вы можете использовать их неформально для ссылки на объекты выше или ниже в цепочке прототипов.

      +> **Примечание:** Термин экземпляр имеет специфическое значение в языках, основанных на классах. В этих языках экземпляр — это индивидуальная сущность определённого класса и принципиально отличается от класса. В JavaScript «экземпляр» не имеет такого технического значения, потому что JavaScript не делает таких отличий между классами и экземплярами. Однако, в разговоре о JavaScript, термин «экземпляр» может неформально использоваться для обозначения объекта, созданного с использованием конкретной функции конструктора. Так, в этом примере, вы можете неформально сказать, что `jane` является экземпляром `Engineer`. Аналогично, хотя термины parent, child, ancestor и descendant (родитель, ребёнок, предок и потомок) не имеют формальных значений в JavaScript, вы можете использовать их неформально для ссылки на объекты выше или ниже в цепочке прототипов. -

      figure8.3.png
      - Рисунок 8.3: Создание объектов с простыми определениями

      +![figure8.3.png](/@api/deki/files/4403/=figure8.3.png) +**Рисунок 8.3: Создание объектов с простыми определениями** -

      Свойства объекта

      +## Свойства объекта -

      Этот раздел о том, как объекты наследуют свойства из других объектов в цепочке прототипов, и что происходит, когда вы добавляете свойство во время выполнения.

      +Этот раздел о том, как объекты наследуют свойства из других объектов в цепочке прототипов, и что происходит, когда вы добавляете свойство во время выполнения. -

      Наследование свойств

      +### Наследование свойств -

      Предположим, вы создаёте объект mark в качестве WorkerBee (как показано на Рисунок 8.3) с помощью следующего выражения:

      +Предположим, вы создаёте объект `mark` в качестве `WorkerBee` (как показано на [Рисунок 8.3](#8.3)) с помощью следующего выражения: -
      var mark = new WorkerBee;
      -
      +```js +var mark = new WorkerBee; +``` -

      Когда JavaScript видит оператор new, он создаёт новый обобщённый объект и неявно устанавливает значение внутреннего свойства [[Prototype]] в WorkerkBee.prototype, затем передаёт этот новый объект в качестве значения this в функцию-конструктор WorkerBee. Внутреннее свойство [[Prototype]] определяет цепочку прототипов, используемых для получения значений свойств. После того, как эти свойства установлены, JavaScript возвращает новый объект, а оператор присваивания устанавливает переменную mark для этого объекта.

      +Когда JavaScript видит оператор `new`, он создаёт новый обобщённый объект и неявно устанавливает значение внутреннего свойства \[\[Prototype]] в `WorkerkBee.prototype`, затем передаёт этот новый объект в качестве значения `this` в функцию-конструктор `WorkerBee`. Внутреннее свойство \[\[Prototype]] определяет цепочку прототипов, используемых для получения значений свойств. После того, как эти свойства установлены, JavaScript возвращает новый объект, а оператор присваивания устанавливает переменную `mark` для этого объекта. -

      Этот процесс не задаёт значения свойств (локальных значений), которые унаследованы по цепочке прототипов, объекта mark напрямую. Когда вы запрашиваете значение свойства, JavaScript сначала проверяет, существует ли это значение в данном объекте. Если так и есть, тогда возвращается это значение. Если значение не найдено в самом объекте, JavaScript проверяет цепочку прототипов (используя внутреннее свойство [[Prorotype]]). Если объект в цепочке прототипов имеет значение для искомого свойства, это значение возвращается. Если такое свойство не найдено, JavaScript сообщает, что объект не обладает свойством. Таким образом, объект mark содержит следующие свойства и значения:

      +Этот процесс не задаёт значения свойств (_локальных_ значений), которые унаследованы по цепочке прототипов, объекта `mark` напрямую. Когда вы запрашиваете значение свойства, JavaScript сначала проверяет, существует ли это значение в данном объекте. Если так и есть, тогда возвращается это значение. Если значение не найдено в самом объекте, JavaScript проверяет цепочку прототипов (используя внутреннее свойство \[\[Prorotype]]). Если объект в цепочке прототипов имеет значение для искомого свойства, это значение возвращается. Если такое свойство не найдено, JavaScript сообщает, что объект не обладает свойством. Таким образом, объект `mark` содержит следующие свойства и значения: -
      mark.name = '';
      +```js
      +mark.name = '';
       mark.dept = 'general';
       mark.projects = [];
      -
      +``` -

      Значения для свойств name и dept объекту mark присваиваются из конструктора Employee. Также из конструктора WorkerBee присваивается локальное значение для свойства projects. Это даёт вам наследование свойств и их значений в JavaScript. Некоторые детали этого процесса обсуждаются в Тонкости наследования свойств.

      +Значения для свойств `name` и `dept` объекту `mark` присваиваются из конструктора `Employee`. Также из конструктора `WorkerBee` присваивается локальное значение для свойства `projects`. Это даёт вам наследование свойств и их значений в JavaScript. Некоторые детали этого процесса обсуждаются в [Тонкости наследования свойств](#Тонкости_наследования_свойств). -

      Поскольку эти конструкторы не позволяют вводить значения, специфичные для экземпляра, добавленная информация является общей. Значения свойств устанавливаются по умолчанию одинаковыми для всех объектов, созданных функцией WorkerBee. Конечно, вы можете изменить значения любого из этих свойств. Так, вы можете добавить специфичную информацию для mark следующим образом:

      +Поскольку эти конструкторы не позволяют вводить значения, специфичные для экземпляра, добавленная информация является общей. Значения свойств устанавливаются по умолчанию одинаковыми для всех объектов, созданных функцией `WorkerBee`. Конечно, вы можете изменить значения любого из этих свойств. Так, вы можете добавить специфичную информацию для `mark` следующим образом: -
      mark.name = 'Doe, Mark';
      +```js
      +mark.name = 'Doe, Mark';
       mark.dept = 'admin';
      -mark.projects = ['navigator'];
      +mark.projects = ['navigator']; +``` -

      Добавление свойств

      +### Добавление свойств -

      В JavaScript вы можете добавить свойства для любого объекта в реальном времени. Вы не ограничены только свойствами, установленными функцией-конструктором. Чтобы добавить свойство, специфичное для конкретного объекта, вы присваиваете ему значение в объекте, вот так:

      +В JavaScript вы можете добавить свойства для любого объекта в реальном времени. Вы не ограничены только свойствами, установленными функцией-конструктором. Чтобы добавить свойство, специфичное для конкретного объекта, вы присваиваете ему значение в объекте, вот так: -
      mark.bonus = 3000;
      -
      +```js +mark.bonus = 3000; +``` -

      Теперь объект mark имеет свойство bonus, но никакой другой WorkerBee не имеет этого свойства.

      +Теперь объект `mark` имеет свойство `bonus`, но никакой другой `WorkerBee` не имеет этого свойства. -

      Если вы добавляете новое свойство в объект, который используется в качестве прототипа для функции-конструктора, вы добавляете это свойство для всех объектов, наследующих свойства из этого прототипа. Например, вы можете добавить свойство specialty для всех сотрудников с помощью следующего выражения:

      +Если вы добавляете новое свойство в объект, который используется в качестве прототипа для функции-конструктора, вы добавляете это свойство для всех объектов, наследующих свойства из этого прототипа. Например, вы можете добавить свойство `specialty` для всех сотрудников с помощью следующего выражения: -
      Employee.prototype.specialty = 'none';
      -
      +```js +Employee.prototype.specialty = 'none'; +``` -

      Как только JavaScript выполняет это выражение, объект mark также получает свойство specialty со значением "none". Следующий рисунок показывает результат добавления этого свойства в прототип Employee и последующее переопределение его в прототипе Engineer.

      +Как только JavaScript выполняет это выражение, объект `mark` также получает свойство `specialty` со значением `"none"`. Следующий рисунок показывает результат добавления этого свойства в прототип `Employee` и последующее переопределение его в прототипе `Engineer`. -


      - Рисунок 8.4: Добавление свойств

      +![](/@api/deki/files/4422/=figure8.4.png) +**Рисунок 8.4: Добавление свойств** -

      Более гибкие конструкторы

      +## Более гибкие конструкторы -

      Функции-конструкторы, показанные до сих пор, не позволяют задавать значения свойств при создании экземпляра. Как и в Java, вы можете передать аргументы в конструкторах для инициализации значений свойств экземпляров. На следующем рисунке показан один из способов сделать это.

      +Функции-конструкторы, показанные до сих пор, не позволяют задавать значения свойств при создании экземпляра. Как и в Java, вы можете передать аргументы в конструкторах для инициализации значений свойств экземпляров. На следующем рисунке показан один из способов сделать это. -


      - Рисунок 8.5: Определение свойств в конструкторе, вариант 1

      +![](/@api/deki/files/4423/=figure8.5.png) +**Рисунок 8.5: Определение свойств в конструкторе, вариант 1** -

      Следующая таблица показывает определения для этих объектов в JavaScript и Java.

      +Следующая таблица показывает определения для этих объектов в JavaScript и Java. - - - - - - - - - + + + + + + + + - + - - - + + + - + - - - + + + - + - - + + + +
      JavaScriptJava
      -
      +  
      JavaScriptJava
      +
       function Employee (name, dept) {
         this.name = name || '';
         this.dept = dept || 'general';
       }
      -
      -
      -
      +
      +
      +
       public class Employee {
          public String name;
          public String dept;
      @@ -332,21 +316,24 @@ public class Employee {
             this.dept = dept;
          }
       }
      -
      -
      -
      +
      +
      +
       function WorkerBee (projs) {
       
      - this.projects = projs || [];
      +this.projects = projs || [];
       }
       WorkerBee.prototype = new Employee;
      -
      -
      -
      +
      +
      +
      +
       public class WorkerBee extends Employee {
          public String[] projects;
          public WorkerBee () {
      @@ -357,22 +344,23 @@ public class WorkerBee extends Employee {
          }
       }
       
      -
      -
      -
      -
      +
      +
      +
       function Engineer (mach) {
          this.dept = 'engineering';
          this.machine = mach || '';
       }
       Engineer.prototype = new WorkerBee;
      -
      -
      -
      +
      +
      +
       public class Engineer extends WorkerBee {
          public String machine;
          public Engineer () {
      @@ -384,81 +372,87 @@ public class Engineer extends WorkerBee {
             machine = mach;
          }
       }
      -
      -
      -

      В JavaScript эти определения используют специальную идиому для установки значений по умолчанию:

      +В JavaScript эти определения используют специальную идиому для установки значений по умолчанию: -
      this.name = name || '';
      -
      +```js +this.name = name || ''; +``` -

      В JavaScript логический оператор ИЛИ (||) оценивает свой первый аргумент. Если этот аргумент преобразуется в true, оператор возвращает его. Иначе, оператор возвращает значение второго аргумента. Следовательно, эта строчка кода проверяет, содержит ли аргумент name значение, пригодное для свойства name. Если так и есть, this.name определяется этим значением. В противном случае, значению this.name присваивается пустая строка. Эта глава использует такую идиому для краткости; тем не менее, с первого взгляда она может озадачить.

      +В JavaScript логический оператор ИЛИ (`||`) оценивает свой первый аргумент. Если этот аргумент преобразуется в true, оператор возвращает его. Иначе, оператор возвращает значение второго аргумента. Следовательно, эта строчка кода проверяет, содержит ли аргумент `name` значение, пригодное для свойства `name`. Если так и есть, `this.name` определяется этим значением. В противном случае, значению `this.name` присваивается пустая строка. Эта глава использует такую идиому для краткости; тем не менее, с первого взгляда она может озадачить. -

      Примечание: Это может работать не так, как ожидается, если функция-конструктор вызывается с аргументами, которые преобразуются в false, вроде нуля (0) или пустой строки (""). В этом случае будет выбрано значение по умолчанию.

      +> **Примечание:** Это может работать не так, как ожидается, если функция-конструктор вызывается с аргументами, которые преобразуются в `false`, вроде нуля (`0`) или пустой строки (`""`). В этом случае будет выбрано значение по умолчанию. -

      С помощью таких определений, создавая экземпляр объекта, вы можете указать значения для локально определённых свойств. Как показано на Рисунок 8.5, можно использовать следующее выражение для создания нового Engineer:

      +С помощью таких определений, создавая экземпляр объекта, вы можете указать значения для локально определённых свойств. Как показано на [Рисунок 8.5](#8.5), можно использовать следующее выражение для создания нового `Engineer`: -
      var jane = new Engineer('belau');
      -
      +```js +var jane = new Engineer('belau'); +``` -

      Свойства созданного объекта jane:

      +Свойства созданного объекта `jane`: -
      jane.name == '';
      +```js
      +jane.name == '';
       jane.dept == 'engineering';
       jane.projects == [];
       jane.machine == 'belau'
      -
      +``` -

      Обратите внимание, что с таким способом вы не можете указать начальное значение наследуемого свойства, такого как name. Если вы хотите задать начальное значение для наследуемых свойств в JavaScript, вам нужно добавить больше кода в функцию-конструктор.

      +Обратите внимание, что с таким способом вы не можете указать начальное значение наследуемого свойства, такого как `name`. Если вы хотите задать начальное значение для наследуемых свойств в JavaScript, вам нужно добавить больше кода в функцию-конструктор. -

      До сих пор функция-конструктор создавала обобщённый объект, а затем определяла локальные свойства и значения для нового объекта. Вы можете использовать конструктор, который добавляет дополнительные свойства путём непосредственного вызова функции-конструктора для объекта, расположенного выше в цепочке прототипов. На следующем рисунке показаны эти новые определения.

      +До сих пор функция-конструктор создавала обобщённый объект, а затем определяла локальные свойства и значения для нового объекта. Вы можете использовать конструктор, который добавляет дополнительные свойства путём непосредственного вызова функции-конструктора для объекта, расположенного выше в цепочке прототипов. На следующем рисунке показаны эти новые определения. -


      - Рисунок 8.6: Определение свойств в конструкторе, вариант 2

      +![](/@api/deki/files/4430/=figure8.6.png) +**Рисунок 8.6: Определение свойств в конструкторе, вариант 2** -

      Давайте рассмотрим одно из этих определений детальнее. Вот новое определение функции-конструктора Engineer:

      +Давайте рассмотрим одно из этих определений детальнее. Вот новое определение функции-конструктора `Engineer`: -
      function Engineer (name, projs, mach) {
      +```js
      +function Engineer (name, projs, mach) {
         this.base = WorkerBee;
         this.base(name, 'engineering', projs);
         this.machine = mach || '';
       }
      -
      +``` -

      Предположим, вы создаёте новый объект, используя Engineer, следующим образом:

      +Предположим, вы создаёте новый объект, используя `Engineer, следующим образом:` -
      var jane = new Engineer('Doe, Jane', ['navigator', 'javascript'], 'belau');
      -
      +```js +var jane = new Engineer('Doe, Jane', ['navigator', 'javascript'], 'belau'); +``` -

      JavaScript выполняет следующие действия:

      +JavaScript выполняет следующие действия: -
        -
      1. Оператор new создаёт обобщённый объект и устанавливает его свойству __proto__ значение Engineer.prototype.
      2. -
      3. Оператор new передаёт этот новый объект в конструктор Engineer в качестве значения ключевого слова this.
      4. -
      5. Конструктор создаёт новое свойство с именем base для этого объекта и присваивает значение свойства base из конструктора WorkerBee. Это делает конструктор WorkerBee методом объекта, созданного Engineer. Имя свойства base не является специальным словом. Вы можете использовать любое допустимое для свойства имя; base всего-лишь напоминает о предназначении свойства.
      6. -
      7. Конструктор вызывает метод base, передавая в качестве аргументов два аргумента, переданных конструктору ("Doe, Jane" и ["navigator", "javascript"]), а также строку "engineering". Явное использование "engineering" в конструкторе указывает на то, что все объекты, созданные Engineer, имеют одинаковое значение для наследуемого свойства dept, это значение переопределяет значение, унаследованное из Employee.
      8. -
      9. Поскольку base является методом Engineer, внутри вызова base JavaScript привязывает ключевое свойство this к объекту, созданному в шаге 1. Таким образом, функция WorkerBee передаёт поочерёдно аргументы "Doe, Jane" и "engineering" в функцию-конструктор Employee. Получив результат из Employee, функция WorkerBee использует оставшийся аргумент для установки значения свойства projects.
      10. -
      11. После возвращения из метода base, конструктор Engineer инициализирует свойство объекта machine со значением "belau".
      12. -
      13. После возвращения из конструктора, JavaScript присваивает новый объект переменной jane.
      14. -
      +1. Оператор `new` создаёт обобщённый объект и устанавливает его свойству `__proto__` значение `Engineer.prototype`. +2. Оператор `new` передаёт этот новый объект в конструктор `Engineer` в качестве значения ключевого слова `this`. +3. Конструктор создаёт новое свойство с именем `base` для этого объекта и присваивает значение свойства `base` из конструктора `WorkerBee`. Это делает конструктор `WorkerBee` методом объекта, созданного `Engineer`. Имя свойства `base` не является специальным словом. Вы можете использовать любое допустимое для свойства имя; `base` всего-лишь напоминает о предназначении свойства. +4. Конструктор вызывает метод `base`, передавая в качестве аргументов два аргумента, переданных конструктору (`"Doe, Jane"` и `["navigator", "javascript"]`), а также строку `"engineering"`. Явное использование `"engineering"` в конструкторе указывает на то, что все объекты, созданные `Engineer`, имеют одинаковое значение для наследуемого свойства `dept`, это значение переопределяет значение, унаследованное из `Employee`. +5. Поскольку `base` является методом `Engineer`, внутри вызова `base` JavaScript привязывает ключевое свойство `this` к объекту, созданному в шаге 1. Таким образом, функция `WorkerBee` передаёт поочерёдно аргументы `"Doe, Jane"` и `"engineering"` в функцию-конструктор `Employee`. Получив результат из `Employee`, функция `WorkerBee` использует оставшийся аргумент для установки значения свойства `projects`. +6. После возвращения из метода `base`, конструктор `Engineer` инициализирует свойство объекта `machine` со значением `"belau"`. +7. После возвращения из конструктора, JavaScript присваивает новый объект переменной `jane`. -

      Можно подумать, что вызвав WorkerBee из конструктора Engineer, вы настроили соответствующим образом наследование для объектов, создаваемых Engineer. Это не так. Вызов конструктора WorkerBee обеспечивает только то, что объект Engineer запускается со свойствами, определёнными во всех функциях-конструкторах, которые были вызваны. Так, если позже добавить свойства в прототипы Employee или WorkerBee, эти свойства не наследуются объектами из Engineer. Например, предположим, вы использовали следующие определения:

      +Можно подумать, что вызвав `WorkerBee` из конструктора `Engineer`, вы настроили соответствующим образом наследование для объектов, создаваемых `Engineer`. Это не так. Вызов конструктора `WorkerBee` обеспечивает только то, что объект `Engineer` запускается со свойствами, определёнными во всех функциях-конструкторах, которые были вызваны. Так, если позже добавить свойства в прототипы `Employee` или `WorkerBee`, эти свойства не наследуются объектами из `Engineer`. Например, предположим, вы использовали следующие определения: -
      function Engineer (name, projs, mach) {
      +```js
      +function Engineer (name, projs, mach) {
         this.base = WorkerBee;
         this.base(name, 'engineering', projs);
         this.machine = mach || '';
       }
       var jane = new Engineer('Doe, Jane', ['navigator', 'javascript'], 'belau');
       Employee.prototype.specialty = 'none';
      -
      +``` -

      В примере выше jane не унаследует свойство specialty. Для динамического наследования необходимо явно устанавливать прототип, что и сделано в следующем дополнении:

      +В примере выше `jane` не унаследует свойство `specialty`. Для динамического наследования необходимо явно устанавливать прототип, что и сделано в следующем дополнении: -
      function Engineer (name, projs, mach) {
      +```js
      +function Engineer (name, projs, mach) {
         this.base = WorkerBee;
         this.base(name, 'engineering', projs);
         this.machine = mach || '';
      @@ -466,56 +460,57 @@ Employee.prototype.specialty = 'none';
       Engineer.prototype = new WorkerBee;
       var jane = new Engineer('Doe, Jane', ['navigator', 'javascript'], 'belau');
       Employee.prototype.specialty = "none";
      -
      +``` -

      Теперь свойство specialty объекта jane имеет значение "none".

      +Теперь свойство `specialty` объекта `jane` имеет значение "none". -

      Другой способ вызвать родительский конструктор в контексте создаваемого объекта это использование методов call() / apply(). Следующие блоки эквивалентны:

      +Другой способ вызвать родительский конструктор в контексте создаваемого объекта это использование методов [`call()`](/ru/docs/JavaScript/Reference/Global_Objects/Function/call "en-US/docs/JavaScript/Reference/Global Objects/Function/call") / [`apply()`](/ru/docs/JavaScript/Reference/Global_Objects/Function/apply "en-US/docs/JavaScript/Reference/Global Objects/Function/apply"). Следующие блоки эквивалентны: - - - + + - + - - + + + +
      -
      +  
      +
       function Engineer (name, projs, mach) {
         this.base = WorkerBee;
         this.base(name, 'engineering', projs);
         this.machine = mach || '';
       }
      -
      -
      -
      +
      +
      +
       function Engineer (name, projs, mach) {
         WorkerBee.call(this, name, 'engineering', projs);
         this.machine = mach || '';
       }
      -
      -
      -

      Использование метода call() является более чистой реализацией наследования, так как он не требует создания дополнительного свойства, именованного в примере как base.

      +Использование метода `call()` является более чистой реализацией наследования, так как он не требует создания дополнительного свойства, именованного в примере как `base`. -

      Тонкости наследования свойств

      +## Тонкости наследования свойств -

      В секции выше рассказывалось каким образом конструкторы и прототипы в JavaScript обеспечивают иерархию и наследование. В секции ниже будут затронуты тонкости, которые выше были не так очевидны.

      +В секции выше рассказывалось каким образом конструкторы и прототипы в JavaScript обеспечивают иерархию и наследование. В секции ниже будут затронуты тонкости, которые выше были не так очевидны. -

      Локальные значения против унаследованных

      +### Локальные значения против унаследованных -

      Когда вы пытаетесь получить значение некоторого свойства объекта, JavaScript выполняет следующие шаги, которые уже перечислялись ранее в этой главе:

      +Когда вы пытаетесь получить значение некоторого свойства объекта, JavaScript выполняет следующие шаги, которые уже перечислялись ранее в этой главе: -
        -
      1. Проверяется, существует ли локальное свойство с запрашиваемым именем. Если да, то возвращается значение этого свойства.
      2. -
      3. Если локального свойства не существует, проверяется цепочка прототипов (через использование свойства __proto__).
      4. -
      5. Если один из объектов в цепочке прототипов имеет свойство c запрашиваемым именем, возвращается значение этого свойства.
      6. -
      7. Если искомое свойство не обнаружено, считается, что объект его не имеет.
      8. -
      +1. Проверяется, существует ли локальное свойство с запрашиваемым именем. Если да, то возвращается значение этого свойства. +2. Если локального свойства не существует, проверяется цепочка прототипов (через использование свойства `__proto__`). +3. Если один из объектов в цепочке прототипов имеет свойство c запрашиваемым именем, возвращается значение этого свойства. +4. Если искомое свойство не обнаружено, считается, что объект его не имеет. -

      Результат выполнения этих шагов будет зависеть от того, в каком порядке вы создаёте объекты, прототипы и их свойства. Рассмотрим пример:

      +Результат выполнения этих шагов будет зависеть от того, в каком порядке вы создаёте объекты, прототипы и их свойства. Рассмотрим пример: -
      function Employee () {
      +```js
      +function Employee () {
         this.name = "";
         this.dept = "general";
       }
      @@ -524,32 +519,36 @@ function WorkerBee () {
         this.projects = [];
       }
       WorkerBee.prototype = new Employee;
      -
      +``` -

      Предположим, на основе конструкции выше, вы создаёте объект amy как экземпляр класса WorkerBee следующим выражением:

      +Предположим, на основе конструкции выше, вы создаёте объект `amy` как экземпляр класса `WorkerBee` следующим выражением: -
      var amy = new WorkerBee;
      -
      +```js +var amy = new WorkerBee; +``` -

      В результате, объект amy будет иметь одно локальное свойство - projects. Свойства name и dept не будут локальными для amy но будут взяты из прототипа (объект на который ссылается свойство __proto__ объекта amy). Таким образом, amy имеет три свойства:

      +`В результате, объект amy` будет иметь одно локальное свойство - `projects`. Свойства `name` и `dept` не будут локальными для `amy` но будут взяты из прототипа (объект на который ссылается свойство `__proto__` объекта `amy)`. Таким образом, `amy` имеет три свойства: -
      amy.name == "";
      +```js
      +amy.name == "";
       amy.dept == "general";
       amy.projects == [];
      -
      +``` -

      Теперь предположим, что вы изменили значение свойства name у прототипа Employee:

      +Теперь предположим, что вы изменили значение свойства `name` у прототипа `Employee`: -
      Employee.prototype.name = "Unknown"
      -
      +```js +Employee.prototype.name = "Unknown" +``` -

      На первый взгляд вы можете ожидать, что это изменение распространится на все экземпляры Employee. Однако этого не случится.

      +На первый взгляд вы можете ожидать, что это изменение распространится на все экземпляры `Employee`. Однако этого не случится. -

      Когда вы устанавливаете прототип для WorkerBee вы создаёте новый объект Employee, таким образом WorkerBee.prototype получает своё собственное локальное свойство name (в данном примере пустую строку). Следовательно, когда JavaScript ищет свойство name у объекта amy (экземпляра WorkerBee), он первым делом натыкается на него в прототипе WorkerBee.prototype, и до проверки Employee.prototype дело не доходит.

      +Когда вы устанавливаете прототип для `WorkerBee` вы создаёте новый объект `Employee`, таким образом `WorkerBee.prototype` получает своё собственное локальное свойство `name` (в данном примере пустую строку). Следовательно, когда JavaScript ищет свойство `name` у объекта `amy` (экземпляра `WorkerBee`), он первым делом натыкается на него в прототипе `WorkerBee.prototype,` и до проверки `Employee.prototype` дело не доходит. -

      Если у вас есть необходимость изменять некоторое свойство объекта во время работы приложения, и применять это изменение на все существующие экземпляры, не нужно создавать это свойство внутри конструктора. Вместо этого добавьте свойство в прототип, принадлежащий конструктору. Для примера, предположим, вы изменили код, который был показан выше, следующим образом:

      +Если у вас есть необходимость изменять некоторое свойство объекта во время работы приложения, и применять это изменение на все существующие экземпляры, не нужно создавать это свойство внутри конструктора. Вместо этого добавьте свойство в прототип, принадлежащий конструктору. Для примера, предположим, вы изменили код, который был показан выше, следующим образом: -
      function Employee () {
      +```js
      +function Employee () {
         this.dept = "general";
       }
       Employee.prototype.name = "";
      @@ -562,40 +561,45 @@ WorkerBee.prototype = new Employee;
       var amy = new WorkerBee;
       
       Employee.prototype.name = "Unknown";
      -
      +``` -

      в таком случае свойство name у объекта amy примет значение "Unknown".

      +в таком случае свойство `name` у объекта `amy` примет значение "Unknown". -

      Как показано в этом примере, если вы хотите иметь значения свойств по умолчанию, и иметь возможность менять эти значения во время работы приложения, создавайте их в прототипе конструктора, а не в самом конструкторе.

      +Как показано в этом примере, если вы хотите иметь значения свойств по умолчанию, и иметь возможность менять эти значения во время работы приложения, создавайте их в прототипе конструктора, а не в самом конструкторе. -

      Разбираемся во взаимосвязи экземпляров

      +### Разбираемся во взаимосвязи экземпляров -

      Поиск свойств в JavaScript начинается с просмотра самого объекта, и если в нем свойство не найдено, поиск переключается на объект, на который указывает ссылка __proto__. Это продолжается рекурсивно и такой процесс поиска называется "поиск в цепочке прототипов".

      +Поиск свойств в JavaScript начинается с просмотра самого объекта, и если в нем свойство не найдено, поиск переключается на объект, на который указывает ссылка `__proto__`. Это продолжается рекурсивно и такой процесс поиска называется "поиск в цепочке прототипов". -

      Специальное свойство __proto__ устанавливается автоматически при создании объекта. Оно принимает значение свойства prototype функции-конструктора. Таким образом, new Foo() создаст объект для которого справедливо выражение __proto__ == Foo.prototype. Вследствие этого, любые изменения свойств у Foo.prototype, оказывают эффект на процесс поиска свойств во всех объектах, созданных при помощи new Foo().

      +Специальное свойство `__proto__` устанавливается автоматически при создании объекта. Оно принимает значение свойства `prototype` функции-конструктора. Таким образом, `new Foo()` создаст объект для которого справедливо выражение `__proto__ == Foo.prototype`. Вследствие этого, любые изменения свойств у Foo.prototype, оказывают эффект на процесс поиска свойств во всех объектах, созданных при помощи `new Foo()`. -

      Все объекты (за исключением глобального объекта Object) имеют свойство __proto__. Все функции имеют свойство prototype. Благодаря этому, могут быть установлены родственные связи в иерархии объектов. Вы можете установить родство и происхождение объекта, сравнив его свойство __proto__ со свойством prototype конструктора. Здесь JavaScript представляет оператор instanceof как более простой способ проверки, наследуется ли объект от конкретного конструктора. Для примера:

      +Все объекты (за исключением глобального объекта `Object`) имеют свойство `__proto__.` Все функции имеют свойство `prototype`. Благодаря этому, могут быть установлены родственные связи в иерархии объектов. Вы можете установить родство и происхождение объекта, сравнив его свойство `__proto__` со свойством `prototype` конструктора. Здесь JavaScript представляет оператор `instanceof` как более простой способ проверки, наследуется ли объект от конкретного конструктора. Для примера: -
      var f = new Foo();
      -var isTrue = (f instanceof Foo);
      +```js +var f = new Foo(); +var isTrue = (f instanceof Foo); +``` -

      Для более детального примера, предположим, у вас имеются те же определения, что приведены в разделе Inheriting properties. Создадим экземпляр Engineer как показано здесь:

      +Для более детального примера, предположим, у вас имеются те же определения, что приведены в разделе [Inheriting properties](#Inheriting_properties). Создадим экземпляр `Engineer` как показано здесь: -
      var chris = new Engineer("Pigman, Chris", ["jsd"], "fiji");
      -
      +```js +var chris = new Engineer("Pigman, Chris", ["jsd"], "fiji"); +``` -

      Для полученного объекта будут истинными все из следующих выражений:

      +Для полученного объекта будут истинными все из следующих выражений: -
      chris.__proto__ == Engineer.prototype;
      +```js
      +chris.__proto__ == Engineer.prototype;
       chris.__proto__.__proto__ == WorkerBee.prototype;
       chris.__proto__.__proto__.__proto__ == Employee.prototype;
       chris.__proto__.__proto__.__proto__.__proto__ == Object.prototype;
       chris.__proto__.__proto__.__proto__.__proto__.__proto__ == null;
      -
      +``` -

      Зная это, вы можете написать свою функцию instanceOf как показано ниже:

      +Зная это, вы можете написать свою функцию `instanceOf` как показано ниже: -
      function instanceOf(object, constructor) {
      +```js
      +function instanceOf(object, constructor) {
          object = object.__proto__;
          while (object != null) {
             if (object == constructor.prototype)
      @@ -607,45 +611,50 @@ chris.__proto__.__proto__.__proto__.__proto__.__proto__ == null;
          }
          return false;
       }
      -
      +``` -
      Замечание: Реализация выше особым образом обрабатывает тип "xml". Это сделано для того, чтобы обойти особенность представления XML объектов в последних версиях JavaScript. Смотрите описание ошибки {{ bug(634150) }} если вам интересны детали.
      +> **Примечание:** **Замечание:** Реализация выше особым образом обрабатывает тип "xml". Это сделано для того, чтобы обойти особенность представления XML объектов в последних версиях JavaScript. Смотрите описание ошибки {{ bug(634150) }} если вам интересны детали. -

      Следующие вызовы функции instanceOf, заданной выше, вернут истинные значения:

      +Следующие вызовы функции instanceOf, заданной выше, вернут истинные значения: -
      instanceOf (chris, Engineer)
      +```
      +instanceOf (chris, Engineer)
       instanceOf (chris, WorkerBee)
       instanceOf (chris, Employee)
       instanceOf (chris, Object)
      -
      +``` -

      Но следующее выражение вернёт false:

      +Но следующее выражение вернёт `false`: -
      instanceOf (chris, SalesPerson)
      -
      +```js +instanceOf (chris, SalesPerson) +``` -

      Глобальные данные в конструкторах

      +### Глобальные данные в конструкторах -

      При написании конструкторов, следует с особым вниманием относиться к изменению глобальных переменных. Например, если вам нужен уникальный ID, который был бы автоматически назначен каждому экземпляру Employee, вы примените следующий подход для определения Employee:

      +При написании конструкторов, следует с особым вниманием относиться к изменению глобальных переменных. Например, если вам нужен уникальный ID, который был бы автоматически назначен каждому экземпляру `Employee,` вы примените следующий подход для определения `Employee`: -
      var idCounter = 1;
      +```js
      +var idCounter = 1;
       
       function Employee (name, dept) {
          this.name = name || "";
          this.dept = dept || "general";
          this.id = idCounter++;
       }
      -
      +``` -

      Здесь, когда вы создаёте новый экземпляр Employee, конструктор присваивает ему все новый и новый ID увеличивая значение глобальной переменной idCounter. Следовательно, при выполнении кода ниже, victoria.id станет равным 1 а harry.id — 2:

      +Здесь, когда вы создаёте новый экземпляр `Employee`, конструктор присваивает ему все новый и новый ID увеличивая значение глобальной переменной `idCounter`. Следовательно, при выполнении кода ниже, `victoria.id` станет равным 1 а `harry.id` — 2: -
      var victoria = new Employee("Pigbert, Victoria", "pubs")
      +```js
      +var victoria = new Employee("Pigbert, Victoria", "pubs")
       var harry = new Employee("Tschopik, Harry", "sales")
      -
      +``` -

      Навскидку, все выглядит предсказуемо. Однако, idCounter увеличивается при создании каждого объекта Employee вне зависимости от цели его создания. Если вы создаёте полную иерархию класса Employee, показанную выше в этой главе, конструктор Employee будет так же вызван каждый раз, когда вы устанавливаете прототип для подклассов. Следующий код раскрывает суть возможной проблемы:

      +Навскидку, все выглядит предсказуемо. Однако, `idCounter` увеличивается при создании каждого объекта `Employee` вне зависимости от цели его создания. Если вы создаёте полную иерархию класса `Employee,` показанную выше в этой главе, конструктор `Employee` будет так же вызван каждый раз, когда вы устанавливаете прототип для подклассов. Следующий код раскрывает суть возможной проблемы: -
      var idCounter = 1;
      +```js
      +var idCounter = 1;
       
       function Employee (name, dept) {
          this.name = name || "";
      @@ -666,31 +675,33 @@ function SalesPerson (name, projs, quota) {...}
       SalesPerson.prototype = new WorkerBee;
       
       var mac = new Engineer("Wood, Mac");
      -
      +``` -

      Предположим, каждый из конструкторов, тело которого опущено для краткости, содержит вызов конструктора прародителя. Это приведёт к тому, что id у объекта mac примет значение 5 вместо ожидаемой единицы.

      +Предположим, каждый из конструкторов, тело которого опущено для краткости, содержит вызов конструктора прародителя. Это приведёт к тому, что `id` у объекта `mac` примет значение 5 вместо ожидаемой единицы. -

      В зависимости от приложения, лишние увеличения счётчика могут быть не критичны. В случае же, когда точный контроль за значениями счётчика важен, одним из возможных решений станет такой код:

      +В зависимости от приложения, лишние увеличения счётчика могут быть не критичны. В случае же, когда точный контроль за значениями счётчика важен, одним из возможных решений станет такой код: -
      function Employee (name, dept) {
      +```js
      +function Employee (name, dept) {
          this.name = name || "";
          this.dept = dept || "general";
          if (name)
             this.id = idCounter++;
       }
      -
      +``` -

      Когда вы создаёте экземпляр Employee в качестве прототипа, вы не предоставляете аргументы в конструктор за ненадобностью. Конструктор выше проверяет наличие аргумента name, и в случае, если значение не указано, идентификатор id объекту не присваивается, а значение глобального счётчика idCounter не увеличивается. Таким образом, для получения уникального id становится обязательным указание параметра name при вызове конструктора Employee. С внесёнными в пример выше изменениями, mac.id станет равным долгожданной, заветной единице.

      +Когда вы создаёте экземпляр `Employee` в качестве прототипа, вы не предоставляете аргументы в конструктор за ненадобностью. Конструктор выше проверяет наличие аргумента `name,` и в случае, если значение не указано, идентификатор id объекту не присваивается, а значение глобального счётчика `idCounter` не увеличивается. Таким образом, для получения уникального `id` становится обязательным указание параметра `name` при вызове конструктора `Employee`. С внесёнными в пример выше изменениями, `mac.id` станет равным долгожданной, заветной единице. -

      Никакого множественного наследования

      +### Никакого множественного наследования -

      Некоторые из объектно-ориентированных языков предоставляют возможность множественного наследования. Когда один объект может унаследовать свойства и методы множества других, не связанных друг с другом объектов. В JavaScript такого не предусмотрено.

      +Некоторые из объектно-ориентированных языков предоставляют возможность множественного наследования. Когда один объект может унаследовать свойства и методы множества других, не связанных друг с другом объектов. В JavaScript такого не предусмотрено. -

      В JavaScript наследование свойств осуществляется путём поиска в цепочке прототипов. Так как объект может иметь лишь единственный присвоенный ему прототип, JavaScript не может осуществить наследование более чем от одной цепочки прототипов.

      +В JavaScript наследование свойств осуществляется путём поиска в цепочке прототипов. Так как объект может иметь лишь единственный присвоенный ему прототип, JavaScript не может осуществить наследование более чем от одной цепочки прототипов. -

      Однако конструктор в JavaScript может вызывать любое количество вложенных конструкторов. Это даёт некоторую, хоть и ограниченную (отсутствием прототипной связанности) видимость множественного наследования. Рассмотрим следующий фрагмент:

      +Однако конструктор в JavaScript может вызывать любое количество вложенных конструкторов. Это даёт некоторую, хоть и ограниченную (отсутствием прототипной связанности) видимость множественного наследования. Рассмотрим следующий фрагмент: -
      function Hobbyist (hobby) {
      +```js
      +function Hobbyist (hobby) {
          this.hobby = hobby || "scuba";
       }
       
      @@ -704,22 +715,24 @@ function Engineer (name, projs, mach, hobby) {
       Engineer.prototype = new WorkerBee;
       
       var dennis = new Engineer("Doe, Dennis", ["collabra"], "hugo")
      -
      +``` -

      Предполагается, что определение WorkerBee задано ранее, как уже было показано в этой главе. В таком случае список свойств для объекта dennis примет следующий вид:

      +Предполагается, что определение `WorkerBee` задано ранее, как уже было показано в этой главе. В таком случае список свойств для объекта `dennis` примет следующий вид: -
      dennis.name == "Doe, Dennis"
      +```js
      +dennis.name == "Doe, Dennis"
       dennis.dept == "engineering"
       dennis.projects == ["collabra"]
       dennis.machine == "hugo"
       dennis.hobby == "scuba"
      -
      +``` -

      Мы видим, что dennis получил свойство hobby из конструктора Hobbyist. Однако, если вы добавите любое свойство в прототип конструктора Hobbyist:

      +Мы видим, что `dennis` получил свойство `hobby` из конструктора `Hobbyist`. Однако, если вы добавите любое свойство в прототип конструктора `Hobbyist`: -
      Hobbyist.prototype.equipment = ["mask", "fins", "regulator", "bcd"]
      -
      +```js +Hobbyist.prototype.equipment = ["mask", "fins", "regulator", "bcd"] +``` -

      Объект dennis этого свойства не унаследует.

      +Объект `dennis` этого свойства не унаследует. -
      {{PreviousNext("Web/JavaScript/Guide/Working_with_Objects", "Web/JavaScript/Guide/Iterators_and_Generators")}}
      +{{PreviousNext("Web/JavaScript/Guide/Working_with_Objects", "Web/JavaScript/Guide/Iterators_and_Generators")}} diff --git a/files/ru/conflicting/web/javascript/javascript_technologies_overview/index.md b/files/ru/conflicting/web/javascript/javascript_technologies_overview/index.md index 941a29e633bc59..e85c8f0dd4fafd 100644 --- a/files/ru/conflicting/web/javascript/javascript_technologies_overview/index.md +++ b/files/ru/conflicting/web/javascript/javascript_technologies_overview/index.md @@ -5,78 +5,31 @@ translation_of: Web/JavaScript/Language_Resources original_slug: Web/JavaScript/Language_Resources --- -

      {{JsSidebar}}

      +{{JsSidebar}} -

      ECMAScript это язык программирования лежащий в основе JavaScript. ECMAScript стандартизирован в спецификации ECMA-262, организацией по стандартам Ecma International . Далее в таблице перечислены утверждённые стандарты ECMAScript:

      +**ECMAScript** это язык программирования лежащий в основе [JavaScript](../../../../en/JavaScript). ECMAScript стандартизирован **в спецификации** **ECMA-262,** организацией по стандартам [Ecma International](http://www.ecma-international.org/) . Далее в таблице перечислены утверждённые стандарты ECMAScript: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      ИмяСсылкаДатаОписание
      ECMA-262PDFИюнь1997оригинальный стандарт ECMAScript.
      ECMA-262 Edition 2PDFАвгуст1998Второе издание стандарта ECMAScript; также стандарт ISO 16262.
      ECMA-262 Edition 3PDFДекабрь1999Третье издание стандарта ECMAScript; соответствует JavaScript 1.5.
      - Смотрите также опечатки
      ECMA-262 Edition 5PDFДекабрь 2009ECMAScript 5
      - Смотрите также опечатки ES5 и поддержка ECMAScript 5 в Mozilla
      ECMA-262 Edition 5.1PDFИюнь 2011ECMAScript 5.1, последнее опубликованное издание стандарта.
      - Эта версия полностью совместима с 3й редакцией международного стандарта ISO/IEC 16262:2011.
      - Она включает в себя исправления опечаток ES5, и не содержит нововведений.
      ECMA-357PDFИюнь 2004ECMAScript для XML (E4X).
      - Смотрите также опечатки E4X.
      +| Имя | Ссылка | Дата | Описание | +| -------------------- | -------------------------------------------------------------------------------------------------------------------------- | ------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| ECMA-262 | [PDF](http://www.ecma-international.org/publications/files/ECMA-ST-ARCH/ECMA-262,%201st%20edition,%20June%201997.pdf) | Июнь1997 | оригинальный стандарт ECMAScript. | +| ECMA-262 Edition 2 | [PDF](http://www.ecma-international.org/publications/files/ECMA-ST-ARCH/ECMA-262,%202nd%20edition,%20August%201998.pdf) | Август1998 | Второе издание стандарта ECMAScript; также стандарт ISO 16262. | +| ECMA-262 Edition 3 | [PDF](http://www.ecma-international.org/publications/files/ECMA-ST-ARCH/ECMA-262,%203rd%20edition,%20December%201999.pdf) | Декабрь1999 | Третье издание стандарта ECMAScript; соответствует JavaScript 1.5. Смотрите также [опечатки](http://www.mozilla.org/js/language/E262-3-errata.html) | +| ECMA-262 Edition 5 | [PDF](http://www.ecma-international.org/publications/files/ECMA-ST-ARCH/ECMA-262%205th%20edition%20December%202009.pdf) | Декабрь 2009 | ECMAScript 5 Смотрите также [опечатки](http://wiki.ecmascript.org/doku.php?id=es3.1:es3.1_proposal_working_draft) [ES5](http://wiki.ecmascript.org/doku.php?id=es3.1:es3.1_proposal_working_draft) и [поддержка](/En/JavaScript/ECMAScript_5_support_in_Mozilla) [ECMAScript 5 в Mozilla](/En/JavaScript/ECMAScript_5_support_in_Mozilla) | +| ECMA-262 Edition 5.1 | [PDF](http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf) | Июнь 2011 | ECMAScript 5.1, последнее опубликованное издание стандарта. Эта версия полностью совместима с 3й редакцией международного стандарта [ISO/IEC 16262:2011](http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=55755). Она включает в себя исправления опечаток ES5, и не содержит нововведений. | +| ECMA-357 | [PDF](http://www.ecma-international.org/publications/files/ECMA-ST-WITHDRAWN/ECMA-357,%201st%20edition,%20June%202004.pdf) | Июнь 2004 | [ECMAScript для XML (E4X)](/en/E4X). Смотрите также [опечатки](https://bugzilla.mozilla.org/attachment.cgi?id=169406) [E4X](https://bugzilla.mozilla.org/attachment.cgi?id=169406). | -

      Узнать больше о истории ECMAScript можно на странице википедии посвящённой ECMAScript.

      +Узнать больше о истории ECMAScript можно [на странице википедии посвящённой ECMAScript](http://en.wikipedia.org/wiki/ECMAScript). -

      Вы можете принять участие или просто отслеживать работу над следующей версией стандарта, которая разрабатывается под кодовым названием"Harmony", с помощью публично-доступного вики и es-discuss список рассылки привязанного к ecmascript.org.

      +Вы можете принять участие или просто отслеживать работу над следующей версией стандарта, которая разрабатывается под кодовым названием"Harmony", с помощью публично-доступного вики и [es-discuss список рассылки](https://mail.mozilla.org/listinfo/es-discuss) привязанного к [ecmascript.org](http://www.ecmascript.org/community.php). -

      Реализации

      +## Реализации -
        -
      • SpiderMonkey - JavaScript движок используемый в Firefox;
      • -
      • Rhino - JavaScript движок написанный на Java;
      • -
      • Tamarin - ActionScript виртуальная машина (использованная в Adobe® Flash® Player);
      • -
      • Другие реализации(википедия).
      • -
      +- [SpiderMonkey](/en/SpiderMonkey "en/SpiderMonkey") - JavaScript движок используемый в Firefox; +- [Rhino](/en/Rhino "en/Rhino") - JavaScript движок написанный на Java; +- [Tamarin](/en/Tamarin "en/Tamarin") - ActionScript виртуальная машина (использованная в Adobe® Flash® Player); +- [Другие реализации](http://en.wikipedia.org/wiki/List_of_ECMAScript_engines)(википедия). -

      Смотрите также

      +### Смотрите также - +- [Блог Брендана Эйка](http://brendaneich.com/). Брендан создатель JavaScript и движка SpiderMonkey. Он все ещё работает с рабочей группой ECMA чтобы развивать язык. +- [Дмитрий Сошников анализ ECMA-262 Edition 3 и 5](http://dmitrysoshnikov.com/) diff --git a/files/ru/conflicting/web/javascript/javascript_technologies_overview_0191f05ec18a4ee4d771b548feb0701d/index.md b/files/ru/conflicting/web/javascript/javascript_technologies_overview_0191f05ec18a4ee4d771b548feb0701d/index.md index f96e5f80efaace..152d64bb8e7ef6 100644 --- a/files/ru/conflicting/web/javascript/javascript_technologies_overview_0191f05ec18a4ee4d771b548feb0701d/index.md +++ b/files/ru/conflicting/web/javascript/javascript_technologies_overview_0191f05ec18a4ee4d771b548feb0701d/index.md @@ -6,42 +6,38 @@ translation_of: Web/JavaScript/Shells original_slug: Web/JavaScript/Shells --- -
      {{JsSidebar}}
      - -

      JavaScript оболочки позволяют быстро проверить фрагменты JavaScript кода без перезагрузки страницы. Они чрезвычайно полезны для разработки и отладки кода.

      - -

      Автономные JavaScript оболочки

      - -

      Следующие JavaScript шеллы являются автономными средами, как Perl или Python.

      - -
        -
      • Node.js - это платформа для простого создания быстрых, масштабируемых сетевых приложений..
      • -
      • JSDB - Автономная JavaScript оболочка для Windows, Mac, и Linux.
      • -
      • JavaLikeScript - Автономная расширяемая оболочка JavaScript, включающая как нативные библиотеки, так и библиотеки JavaScript.
      • -
      • GLUEscript - Автономная JavaScript оболочка для создания кросс-платформенных JavaScript приложений. Он может использовать wxWidgets для GUI приложений, и раньше назывался wxJavaScript.
      • -
      • jspl - Автономная JavaScript оболочка, улучшенная при помощи Perl. Может использовать модули Perl прямо из JavaScript: DBI для интеграции с базами данных, GTK2 для GUI приложений, POSIX для системного программирования и т.д. Лучший из существующих CPAN для JavaScript программистов.
      • -
      • ShellJS - это портативная реализация команд оболочки Unix поверх API-интерфейса Node.js.
      • -
      - -

      Список JavaScript оболочек

      - -

      Следующие JavaScript оболочки работают с Mozilla.

      - -
        -
      • Firefox имеет встроенную консоль JavaScript, которая поддерживает многострочное редактирование.
      • -
      • JavaScript Shell (js) - Интерпретатор командной строки для JavaScript (необходима собственная сборка Mozilla).
      • -
      • xpcshell — это оболочка с поддержкой XPConnect , иногда используется для разработки Mozilla.
      • -
      • Babel REPL - это REPL на основе браузера для экспериментов с будущим JavaScript.
      • -
      • ES6Console.com - консоль JavaScript с открытым исходным кодом для тестирования кода ECMAScript 2015 внутри браузера.
      • -
      • jsconsole.com -- Консоль JavaScript с открытым исходным кодом с возможностью легко сослаться на конкретное выражение .
      • -
      • JavaScript Shell (web page) - также доступен как часть Extension Developer's Extension
      • -
      • Jash: JavaScript Shell - оболочка, основана на DHTML, которая предоставляет доступ к командной строки веб-страницы.
      • -
      • MozRepl - Подключайтесь к Firefox и другим приложениям Mozilla, изучайте и изменяйте их изнутри, пока они работают.
      • -
      • Execute JS - (больше не поддерживается) Расширение для Firefox, представляющее собой расширенную JavaScript-консоль, в которой можно удобно набирать и выполнять произвольный JavaScript-код и изменить функции.
      • -
      • xqjs - Простая консоль для Firefox.
      • -
      • JavaScript Shell Extended - Модифицированная версия вышеупомянутого шелла с различными улучшениями, такими как поддержка JSON, поддержка последней версии JavaScript и т.д.
      • -
      • JavaScript Shell Server - Осуществляет связь через Emacs.
      • -
      • rainbow9 - JavaScript IDE
      • -
      • JSSh - TCP/IP серверный шелл для Mozilla.
      • -
      • SD Connector - Аналогичен JSSh, но полностью написан на JavaScript, поэтому не требует компиляции компонентов.
      • -
      +{{JsSidebar}} + +JavaScript оболочки позволяют быстро проверить фрагменты [JavaScript](/en/JavaScript "en/JavaScript") кода без перезагрузки страницы. Они чрезвычайно полезны для разработки и отладки кода. + +## Автономные JavaScript оболочки + +Следующие JavaScript шеллы являются автономными средами, как Perl или Python. + +- [Node.js](http://nodejs.org/) - это платформа для простого создания быстрых, масштабируемых сетевых приложений.. +- [JSDB](http://www.jsdb.org/) - Автономная JavaScript оболочка для Windows, Mac, и Linux. +- [JavaLikeScript](http://javalikescript.free.fr/) - Автономная расширяемая оболочка JavaScript, включающая как нативные библиотеки, так и библиотеки JavaScript. +- [GLUEscript](http://gluescript.sourceforge.net/) - Автономная JavaScript оболочка для создания кросс-платформенных JavaScript приложений. Он может использовать wxWidgets для GUI приложений, и раньше назывался wxJavaScript. +- [jspl](http://jspl.msg.mx/) - Автономная JavaScript оболочка, улучшенная при помощи Perl. Может использовать модули Perl прямо из JavaScript: DBI для интеграции с базами данных, GTK2 для GUI приложений, POSIX для системного программирования и т.д. Лучший из существующих CPAN для JavaScript программистов. +- [ShellJS](http://shelljs.org/) - это портативная реализация команд оболочки Unix поверх API-интерфейса Node.js. + +## Список JavaScript оболочек + +Следующие JavaScript оболочки работают с Mozilla. + +- Firefox имеет [встроенную консоль JavaScript](/ru/docs/Tools/Web_Console/The_command_line_interpreter), которая поддерживает многострочное редактирование. +- [JavaScript Shell](/En/SpiderMonkey/Introduction_to_the_JavaScript_shell "En/SpiderMonkey/Introduction_to_the_JavaScript_shell") (`js`) - Интерпретатор командной строки для JavaScript (необходима собственная сборка Mozilla). +- [xpcshell](/en/XPConnect/xpcshell "en/xpcshell") — это оболочка с поддержкой [XPConnect](/en/XPConnect "en/XPConnect") , иногда используется для разработки Mozilla. +- [Babel REPL](http://babeljs.io/repl) - это [REPL](https://en.wikipedia.org/wiki/REPL) на основе браузера для экспериментов с будущим JavaScript. +- [ES6Console.com](http://es6console.com/) - консоль JavaScript с открытым исходным кодом для тестирования кода ECMAScript 2015 внутри браузера. +- [jsconsole.com](http://jsconsole.com/) -- Консоль JavaScript с открытым исходным кодом с возможностью легко сослаться на конкретное выражение . +- [JavaScript Shell (web page)](http://www.squarefree.com/shell/) - также доступен как часть [Extension Developer's Extension](https://addons.mozilla.org/en-US/firefox/addon/7434) +- [Jash: JavaScript Shell](http://www.billyreisinger.com/jash/) - оболочка, основана на DHTML, которая предоставляет доступ к командной строки веб-страницы. +- [MozRepl](http://hyperstruct.net/projects/mozrepl) - Подключайтесь к Firefox и другим приложениям Mozilla, изучайте и изменяйте их изнутри, пока они работают. +- [Execute JS](http://www.mouseless.de/index.php?/content/view/18/31/) - (больше не поддерживается) Расширение для Firefox, представляющее собой расширенную JavaScript-консоль, в которой можно удобно набирать и выполнять произвольный JavaScript-код и изменить функции. +- [xqjs](https://addons.mozilla.org/addon/159546) - Простая консоль для Firefox. +- [JavaScript Shell Extended](http://code.eligrey.com/shell/help.html) - Модифицированная версия вышеупомянутого шелла с различными улучшениями, такими как поддержка JSON, поддержка последней версии JavaScript и т.д. +- [JavaScript Shell Server](https://sekhmet.acceleration.net/ADW/JsShellServer/) - Осуществляет связь через Emacs. +- [rainbow9 - JavaScript IDE](http://rainbow9.org) +- [JSSh](http://www.croczilla.com/bits_and_pieces/jssh/) - TCP/IP серверный шелл для Mozilla. +- [SD Connector](http://blogs.activestate.com/shanec/2008/05/jssh-replacemen.html) - Аналогичен JSSh, но полностью написан на JavaScript, поэтому не требует компиляции компонентов. diff --git a/files/ru/conflicting/web/javascript/reference/deprecated_and_obsolete_features/index.md b/files/ru/conflicting/web/javascript/reference/deprecated_and_obsolete_features/index.md index b85faefcc1eb8b..e31615a53143b9 100644 --- a/files/ru/conflicting/web/javascript/reference/deprecated_and_obsolete_features/index.md +++ b/files/ru/conflicting/web/javascript/reference/deprecated_and_obsolete_features/index.md @@ -5,19 +5,22 @@ translation_of: Web/JavaScript/Reference/Global_Objects/WeakMap/clear original_slug: Web/JavaScript/Reference/Global_Objects/WeakMap/clear --- -
      {{JSRef}} {{obsolete_header}}
      +{{JSRef}} {{obsolete_header}} -

      Метод clear() удаляет все элементы из объекта WeakMap, но он больше не является частью ECMAScript и его реализаций.

      +Метод **`clear()`** удаляет все элементы из объекта WeakMap, но он больше не является частью ECMAScript и его реализаций. -

      Синтаксис

      +## Синтаксис -
      wm.clear();
      +``` +wm.clear(); +``` -

      Примеры

      +## Примеры -

      Использование метода clear

      +### Использование метода `clear` -
      var wm = new WeakMap();
      +```js
      +var wm = new WeakMap();
       var obj = {};
       
       wm.set(obj, "foo");
      @@ -30,18 +33,16 @@ wm.clear();
       
       wm.has(obj)  // false
       wm.has(window)  // false
      -
      +``` -

      Спецификации

      +## Спецификации -

      Не входит ни в одну текущую спецификацию или черновик. Этот метод был частью черновика ECMAScript 6, до 28 ревизии (версия от 14 октября, 2014), но был удалён в последующих версиях черновика. В финальном стандарте его не будет.

      +Не входит ни в одну текущую спецификацию или черновик. Этот метод был частью черновика ECMAScript 6, до 28 ревизии (версия от 14 октября, 2014), но был удалён в последующих версиях черновика. В финальном стандарте его не будет. -

      Совместимость с браузерами

      +## Совместимость с браузерами -

      {{Compat}}

      +{{Compat}} -

      Смотрите также

      +## Смотрите также -
        -
      • {{jsxref("WeakMap")}}
      • -
      +- {{jsxref("WeakMap")}} diff --git a/files/ru/conflicting/web/javascript/reference/errors/unexpected_type/index.md b/files/ru/conflicting/web/javascript/reference/errors/unexpected_type/index.md index c7e421f6d84d50..d3812ed87c9962 100644 --- a/files/ru/conflicting/web/javascript/reference/errors/unexpected_type/index.md +++ b/files/ru/conflicting/web/javascript/reference/errors/unexpected_type/index.md @@ -6,11 +6,12 @@ slug: conflicting/Web/JavaScript/Reference/Errors/Unexpected_type translation_of: Web/JavaScript/Reference/Errors/Cant_access_property original_slug: Web/JavaScript/Reference/Errors/Cant_access_property --- -
      {{jsSidebar("Errors")}}
      +{{jsSidebar("Errors")}} -

      Message

      +## Message -
      TypeError: не удаётся получить свойство {x} неопределённой или нулевой ссылки (Edge)
      +```
      +TypeError: не удаётся получить свойство {x} неопределённой или нулевой ссылки (Edge)
       TypeError: не удаётся получить доступ к свойству {x} of {y} (Firefox)
       TypeError: {y} не определён, не может получить доступ к свойству {x} (Firefox)
       TypeError: {y} имеет значение null, не может получить доступ к свойству {x} (Firefox)
      @@ -20,40 +21,40 @@ TypeError: x не определён, не может получить дост
       TypeError: x имеет значение null, не может получить доступ к свойству "prop"
       TypeError: не удаётся получить доступ к свойству "prop" неопределённого
       TypeError: не удаётся получить доступ к свойству "prop" значения null
      +```
       
      -
      +## Тип ошибки -

      Тип ошибки

      +{{jsxref("TypeError")}}. -

      {{jsxref("TypeError")}}.

      +## Что не так? -

      Что не так?

      +Доступ к собственности осуществлялся {{jsxref("undefined")}} или {{jsxref("null")}} переменными -

      Доступ к собственности осуществлялся {{jsxref("undefined")}} или {{jsxref("null")}} переменными

      +## Примеры -

      Примеры

      +### Неправильные примеры -

      Неправильные примеры

      - -
      // undefined and null cases on which the substring method won't work
      +```js example-bad
      +// undefined and null cases on which the substring method won't work
       var foo = undefined;
       foo.substring(1); // TypeError: x не определён, не может получить доступ к свойству substring
       
       var foo = null;
       foo.substring(1); // TypeError: x имеет значение null, не может получить доступ к свойству substring
      -
      +``` -

      Исправление проблемы

      +### Исправление проблемы -

      Чтобы исправить указатель null на неопределённые или нулевые значения, можно использовать оператор typeof, например.

      +Чтобы исправить указатель null на неопределённые или нулевые значения, можно использовать оператор typeof, например. -
      if (typeof foo !== 'undefined') {
      +```js
      +if (typeof foo !== 'undefined') {
         // Теперь мы знаем, что foo определён.
      -}
      +} +``` -

      Смотрите также

      +## Смотрите также -
        -
      • {{jsxref("undefined")}}
      • -
      • {{jsxref("null")}}
      • -
      +- {{jsxref("undefined")}} +- {{jsxref("null")}} diff --git a/files/ru/conflicting/web/javascript/reference/global_objects/array/tostring/index.md b/files/ru/conflicting/web/javascript/reference/global_objects/array/tostring/index.md index 10ddd8f122b3db..ab1af5df093982 100644 --- a/files/ru/conflicting/web/javascript/reference/global_objects/array/tostring/index.md +++ b/files/ru/conflicting/web/javascript/reference/global_objects/array/tostring/index.md @@ -11,41 +11,59 @@ translation_of: Web/JavaScript/Reference/Global_Objects/Array/toSource original_slug: Web/JavaScript/Reference/Global_Objects/Array/toSource --- -
      - {{JSRef("Global_Objects", "Array")}} {{non-standard_header}}
      -

      Сводка

      -

      Метод toSource() возвращает строковое представление исходного кода массива.

      -

      Синтаксис

      -
      arr.toSource()
      -

      Параметры

      -

      Нет.

      -

      Описание

      -

      Метод toSource возвращает следующие значения:

      -
        -
      • Для встроенного объекта {{jsxref("Global_Objects/Array", "Array")}}, метод toSource возвращает следующую строку, указывающую, что исходный код недоступен: -
        function Array() {
        -    [native code]
        -}
        -
        -
      • -
      • Для экземпляров класса {{jsxref("Global_Objects/Array", "Array")}}, метод toSource возвращает строковое представление исходного кода.
      • -
      -

      Этот метод обычно вызывается внутри движка JavaScript, а не явно в коде. Вы можете вызвать toSource во время отладки для просмотра содержимого массива.

      -

      Примеры

      -

      Пример: рассмотрение исходного кода массива

      -

      Для просмотра исходного кода массива:

      -
      var alpha = new Array('a', 'b', 'c');
      +{{JSRef("Global_Objects", "Array")}} {{non-standard_header}}
      +
      +## Сводка
      +
      +Метод **`toSource()`** возвращает строковое представление исходного кода массива.
      +
      +## Синтаксис
      +
      +```
      +arr.toSource()
      +```
      +
      +### Параметры
      +
      +Нет.
      +
      +## Описание
      +
      +Метод `toSource` возвращает следующие значения:
      +
      +- Для встроенного объекта {{jsxref("Global_Objects/Array", "Array")}}, метод `toSource` возвращает следующую строку, указывающую, что исходный код недоступен:
      +
      +  ```js
      +  function Array() {
      +      [native code]
      +  }
      +  ```
      +
      +- Для экземпляров класса {{jsxref("Global_Objects/Array", "Array")}}, метод `toSource` возвращает строковое представление исходного кода.
      +
      +Этот метод обычно вызывается внутри движка JavaScript, а не явно в коде. Вы можете вызвать `toSource` во время отладки для просмотра содержимого массива.
      +
      +## Примеры
      +
      +### Пример: рассмотрение исходного кода массива
      +
      +Для просмотра исходного кода массива:
      +
      +```js
      +var alpha = new Array('a', 'b', 'c');
       
       alpha.toSource();   // вернёт ['a', 'b', 'c']
      -
      -

      Спецификации

      -

      Не является частью какого-либо стандарта. Реализована в JavaScript 1.3.

      -

      Совместимость с браузерами

      -
      -

      {{Compat}}

      - -

      Смотрите также

      -
        -
      • {{jsxref("Object.prototype.toSource()")}}
      • -
      • {{jsxref("Array.prototype.toString()")}}
      • -
      +``` + +## Спецификации + +Не является частью какого-либо стандарта. Реализована в JavaScript 1.3. + +## Совместимость с браузерами + +{{Compat}} + +## Смотрите также + +- {{jsxref("Object.prototype.toSource()")}} +- {{jsxref("Array.prototype.toString()")}} diff --git a/files/ru/conflicting/web/javascript/reference/global_objects/boolean/tostring/index.md b/files/ru/conflicting/web/javascript/reference/global_objects/boolean/tostring/index.md index 3cde5905881fb3..91c8932af4e859 100644 --- a/files/ru/conflicting/web/javascript/reference/global_objects/boolean/tostring/index.md +++ b/files/ru/conflicting/web/javascript/reference/global_objects/boolean/tostring/index.md @@ -11,38 +11,47 @@ translation_of: Web/JavaScript/Reference/Global_Objects/Boolean/toSource original_slug: Web/JavaScript/Reference/Global_Objects/Boolean/toSource --- -
      {{JSRef("Global_Objects", "Boolean")}} {{non-standard_header}}
      - -

      Сводка

      -

      Метод toSource() возвращает строку, представляющую исходный код объекта.

      - -

      Синтаксис

      -
      booleanObj.toSource()
      -Boolean.toSource()
      - -

      Параметры

      -

      Нет.

      - -

      Описание

      -

      Метод toSource возвращает следующие значения:

      -
        -
      • Для встроенного объекта {{jsxref("Global_Objects/Boolean", "Boolean")}} метод toSource возвращает следующую строку, указывающую, что исходный код недоступен: -
        function Boolean() {
        -    [native code]
        -}
        -
        -
      • -
      • Для экземпляров класса {{jsxref("Global_Objects/Boolean", "Boolean")}} метод toSource возвращает строковое представление исходного кода.
      • -
      -

      Этот метод обычно вызывается внутри движка JavaScript, а не явно в коде.

      - -

      Спецификации

      -

      Не является частью какого-либо стандарта. Реализована в JavaScript 1.3.

      - -

      Совместимость с браузерами

      -

      {{Compat}}

      - -

      Смотрите также

      -
        -
      • {{jsxref("Object.prototype.toSource()")}} {{non-standard_inline}}
      • -
      +{{JSRef("Global_Objects", "Boolean")}} {{non-standard_header}} + +## Сводка + +Метод **`toSource()`** возвращает строку, представляющую исходный код объекта. + +## Синтаксис + +``` +booleanObj.toSource() +Boolean.toSource() +``` + +### Параметры + +Нет. + +## Описание + +Метод `toSource` возвращает следующие значения: + +- Для встроенного объекта {{jsxref("Global_Objects/Boolean", "Boolean")}} метод `toSource` возвращает следующую строку, указывающую, что исходный код недоступен: + + ```js + function Boolean() { + [native code] + } + ``` + +- Для экземпляров класса {{jsxref("Global_Objects/Boolean", "Boolean")}} метод `toSource` возвращает строковое представление исходного кода. + +Этот метод обычно вызывается внутри движка JavaScript, а не явно в коде. + +## Спецификации + +Не является частью какого-либо стандарта. Реализована в JavaScript 1.3. + +## Совместимость с браузерами + +{{Compat}} + +## Смотрите также + +- {{jsxref("Object.prototype.toSource()")}} {{non-standard_inline}} diff --git a/files/ru/conflicting/web/javascript/reference/global_objects/date/tostring/index.md b/files/ru/conflicting/web/javascript/reference/global_objects/date/tostring/index.md index aa046327bbd1d9..e7570c19d8c450 100644 --- a/files/ru/conflicting/web/javascript/reference/global_objects/date/tostring/index.md +++ b/files/ru/conflicting/web/javascript/reference/global_objects/date/tostring/index.md @@ -12,38 +12,47 @@ translation_of: Web/JavaScript/Reference/Global_Objects/Date/toSource original_slug: Web/JavaScript/Reference/Global_Objects/Date/toSource --- -
      {{JSRef("Global_Objects", "Date")}} {{non-standard_header}}
      - -

      Сводка

      -

      Метод toSource() возвращает строковое представление исходного кода объекта.

      - -

      Синтаксис

      -
      dateObj.toSource()
      -Date.toSource()
      - -

      Параметры

      -

      Нет.

      - -

      Описание

      -

      Метод toSource() возвращает следующие значения:

      -
        -
      • Для встроенного объекта {{jsxref("Global_Objects/Date", "Date")}} метод toSource() возвращает следующую строку, указывающую, что исходный код объекта недоступен: -
        function Date() {
        -    [native code]
        -}
        -
        -
      • -
      • Для экземпляров {{jsxref("Global_Objects/Date", "Date")}}, метод toSource() возвращает строку, представляющую их исходный код.
      • -
      -

      Этот метод обычно вызывается внутренними механизмами движка JavaScript, а не явно в коде.

      - -

      Спецификации

      -

      Не является частью какого-либо стандарта. Реализована в JavaScript 1.3.

      - -

      Совместимость с браузерами

      -

      {{Compat}}

      - -

      Смотрите также

      -
        -
      • {{jsxref("Object.prototype.toSource()")}}
      • -
      +{{JSRef("Global_Objects", "Date")}} {{non-standard_header}} + +## Сводка + +Метод **`toSource()`** возвращает строковое представление исходного кода объекта. + +## Синтаксис + +``` +dateObj.toSource() +Date.toSource() +``` + +### Параметры + +Нет. + +## Описание + +Метод `toSource()` возвращает следующие значения: + +- Для встроенного объекта {{jsxref("Global_Objects/Date", "Date")}} метод `toSource()` возвращает следующую строку, указывающую, что исходный код объекта недоступен: + + ```js + function Date() { + [native code] + } + ``` + +- Для экземпляров {{jsxref("Global_Objects/Date", "Date")}}, метод `toSource()` возвращает строку, представляющую их исходный код. + +Этот метод обычно вызывается внутренними механизмами движка JavaScript, а не явно в коде. + +## Спецификации + +Не является частью какого-либо стандарта. Реализована в JavaScript 1.3. + +## Совместимость с браузерами + +{{Compat}} + +## Смотрите также + +- {{jsxref("Object.prototype.toSource()")}} diff --git a/files/ru/conflicting/web/javascript/reference/global_objects/error/tostring/index.md b/files/ru/conflicting/web/javascript/reference/global_objects/error/tostring/index.md index 3c64b0880f7aec..2a1d1c21835cfa 100644 --- a/files/ru/conflicting/web/javascript/reference/global_objects/error/tostring/index.md +++ b/files/ru/conflicting/web/javascript/reference/global_objects/error/tostring/index.md @@ -11,34 +11,42 @@ translation_of: Web/JavaScript/Reference/Global_Objects/Error/toSource original_slug: Web/JavaScript/Reference/Global_Objects/Error/toSource --- -
      {{JSRef("Global_Objects", "Error", "EvalError,InternalError,RangeError,ReferenceError,SyntaxError,TypeError,URIError")}} {{non-standard_header}}
      - -

      Сводка

      -

      Метод toSource() возвращает код, вычисление которого приведёт к этой же ошибке.

      - -

      Синтаксис

      -
      e.toSource()
      - -

      Описание

      -

      Вызов метода toSource на экземпляре класса {{jsxref("Error")}} (включая родные ошибки) вернёт строку, содержащую исходный код ошибки. Эта строка может быть выполнена для создания (приблизительно) эквивалентного объекта. Естественно, строка, содержащая исходный код, следует структуре конструктора объекта {{jsxref("Error")}}. Например:

      -
      (new name(message, fileName, lineNumber))
      -
      -

      здесь атрибуты относятся к соответствующим свойствам экземпляра ошибки.

      -
      -

      Обратите внимание: имейте в виду, что свойства, используемые методом toSource при создании строки, изменяемы и могут неточно отражать функцию, с помощью которой создан экземпляр ошибки, или имя файла, или номер строки, где возникла ошибка.

      -
      - -

      Спецификации

      -

      Не является частью какого-либо стандарта. Реализована в JavaScript 1.3.

      - -

      Совместимость с браузерами

      -

      {{Compat}}

      - -

      Смотрите также

      -
        -
      • {{jsxref("Error.prototype.fileName")}}
      • -
      • {{jsxref("Error.prototype.lineNumber")}}
      • -
      • {{jsxref("Error.prototype.message")}}
      • -
      • {{jsxref("Error.prototype.name")}}
      • -
      • {{jsxref("Object.prototype.toSource()")}}
      • -
      +{{JSRef("Global_Objects", "Error", "EvalError,InternalError,RangeError,ReferenceError,SyntaxError,TypeError,URIError")}} {{non-standard_header}} + +## Сводка + +Метод **`toSource()`** возвращает код, вычисление которого приведёт к этой же ошибке. + +## Синтаксис + +``` +e.toSource() +``` + +## Описание + +Вызов метода `toSource` на экземпляре класса {{jsxref("Error")}} (включая _[родные ошибки](/ru/docs/Web/JavaScript/Reference/Global_Objects/Error#Error_types)_) вернёт строку, содержащую исходный код ошибки. Эта строка может быть выполнена для создания (приблизительно) эквивалентного объекта. Естественно, строка, содержащая исходный код, следует структуре конструктора объекта {{jsxref("Error")}}. Например: + +```js +(new name(message, fileName, lineNumber)) +``` + +здесь атрибуты относятся к соответствующим свойствам экземпляра ошибки. + +> **Примечание:** **Обратите внимание:** имейте в виду, что свойства, используемые методом `toSource` при создании строки, изменяемы и могут неточно отражать функцию, с помощью которой создан экземпляр ошибки, или имя файла, или номер строки, где возникла ошибка. + +## Спецификации + +Не является частью какого-либо стандарта. Реализована в JavaScript 1.3. + +## Совместимость с браузерами + +{{Compat}} + +## Смотрите также + +- {{jsxref("Error.prototype.fileName")}} +- {{jsxref("Error.prototype.lineNumber")}} +- {{jsxref("Error.prototype.message")}} +- {{jsxref("Error.prototype.name")}} +- {{jsxref("Object.prototype.toSource()")}} diff --git a/files/ru/conflicting/web/javascript/reference/global_objects/function/tostring/index.md b/files/ru/conflicting/web/javascript/reference/global_objects/function/tostring/index.md index 8bd3febc6989ca..eaeb77f6e6b01b 100644 --- a/files/ru/conflicting/web/javascript/reference/global_objects/function/tostring/index.md +++ b/files/ru/conflicting/web/javascript/reference/global_objects/function/tostring/index.md @@ -10,35 +10,47 @@ translation_of: Web/JavaScript/Reference/Global_Objects/Function/toSource original_slug: Web/JavaScript/Reference/Global_Objects/Function/toSource --- -
      - {{JSRef("Global_Objects", "Function")}} {{non-standard_header}}
      -

      Сводка

      -

      Метод toSource() возвращает строку, представляющую исходный код объекта.

      -

      Синтаксис

      -
      function.toSource();
      +{{JSRef("Global_Objects", "Function")}} {{non-standard_header}}
      +
      +## Сводка
      +
      +Метод **`toSource()`** возвращает строку, представляющую исходный код объекта.
      +
      +## Синтаксис
      +
      +```
      +function.toSource();
       Function.toSource();
      -
      -

      Параметры

      -

      Нет.

      -

      Описание

      -

      Метод toSource возвращает следующие значения:

      -
        -
      • Для встроенного объекта {{jsxref("Global_Objects/Function", "Function")}} метод toSource возвращает следующую строку, указывающую, что исходный код недоступен: -
        function Function() {
        -    [native code]
        -}
        -
        -
      • -
      • Для пользовательских функций, метод toSource возвращает исходный код JavaScript, определяющий объект как строку.
      • -
      -

      Этот метод обычно вызывается внутренними механизмами движка JavaScript, а не явно в коде. Вы можете вызвать toSource во время отладки для изучения содержимого объекта.

      -

      Спецификации

      -

      Не является частью какого-либо стандарта. Реализована в JavaScript 1.3.

      -

      Совместимость с браузерами

      -
      -

      {{Compat}}

      - -

      Смотрите также

      -
        -
      • {{jsxref("Object.prototype.toSource()")}}
      • -
      +``` + +### Параметры + +Нет. + +## Описание + +Метод `toSource` возвращает следующие значения: + +- Для встроенного объекта {{jsxref("Global_Objects/Function", "Function")}} метод `toSource` возвращает следующую строку, указывающую, что исходный код недоступен: + + ```js + function Function() { + [native code] + } + ``` + +- Для пользовательских функций, метод `toSource` возвращает исходный код JavaScript, определяющий объект как строку. + +Этот метод обычно вызывается внутренними механизмами движка JavaScript, а не явно в коде. Вы можете вызвать `toSource` во время отладки для изучения содержимого объекта. + +## Спецификации + +Не является частью какого-либо стандарта. Реализована в JavaScript 1.3. + +## Совместимость с браузерами + +{{Compat}} + +## Смотрите также + +- {{jsxref("Object.prototype.toSource()")}} diff --git a/files/ru/conflicting/web/javascript/reference/global_objects/index.md b/files/ru/conflicting/web/javascript/reference/global_objects/index.md index 867d9106cf8da8..f52f94d81bce2f 100644 --- a/files/ru/conflicting/web/javascript/reference/global_objects/index.md +++ b/files/ru/conflicting/web/javascript/reference/global_objects/index.md @@ -8,32 +8,33 @@ translation_of: Web/JavaScript/Reference/Global_Objects/uneval original_slug: Web/JavaScript/Reference/Global_Objects/uneval --- -

      {{jsSidebar("Objects")}}{{Non-standard_header}}

      +{{jsSidebar("Objects")}}{{Non-standard_header}} -
      Сводка
      +**Сводка** -

      uneval() метод создаёт строковое представление исходного кода объекта.

      +**`uneval()`** метод создаёт строковое представление исходного кода объекта. -

      Синтаксис

      +## Синтаксис -
      uneval(object)
      +``` +uneval(object) +``` -

      Параметры

      +### Параметры -
      -
      object
      -
      JavaScript-выражение или оператор.
      -
      +- `object` + - : JavaScript-выражение или оператор. -
      Примечание: вы не получите корректное JSON-представление объекта.
      +> **Примечание:** вы не получите корректное JSON-представление объекта. -

      Описание

      +## Описание -

      uneval() является функцией высшего порядка и не связана с любым объектом.

      +`uneval()` является функцией высшего порядка и не связана с любым объектом. -

      Примеры

      +## Примеры -
      var a = 1;
      +```js
      +var a = 1;
       uneval(a); // возвращает строку, содержащую 1
       
       var b = "1";
      @@ -45,27 +46,19 @@ uneval(function foo(){}); // возвращает "(function foo(){})"
       var a = uneval(function foo(){return 'привет'});
       var foo = eval(a);
       foo(); // возвращает "привет"
      -
      +``` -

      Технические характеристики

      +## Технические характеристики -

      Не является частью какой-либо спецификации.

      +Не является частью какой-либо спецификации. -

      Совместимость браузеров

      +## Совместимость браузеров -

      +{{Compat}} -

      {{Compat}}

      +## Смотрите также -

      - -
      - -

      Смотрите также

      - -
        -
      • {{jsxref("Global_Objects/eval", "eval()")}}
      • -
      • {{jsxref("JSON.stringify")}}
      • -
      • {{jsxref("JSON.parse")}}
      • -
      • {{jsxref("Object.toSource")}}
      • -
      +- {{jsxref("Global_Objects/eval", "eval()")}} +- {{jsxref("JSON.stringify")}} +- {{jsxref("JSON.parse")}} +- {{jsxref("Object.toSource")}} diff --git a/files/ru/conflicting/web/javascript/reference/global_objects/number/tostring/index.md b/files/ru/conflicting/web/javascript/reference/global_objects/number/tostring/index.md index c41773d6ceb6f3..67f4974b9192a5 100644 --- a/files/ru/conflicting/web/javascript/reference/global_objects/number/tostring/index.md +++ b/files/ru/conflicting/web/javascript/reference/global_objects/number/tostring/index.md @@ -11,48 +11,47 @@ translation_of: Web/JavaScript/Reference/Global_Objects/Number/toSource original_slug: Web/JavaScript/Reference/Global_Objects/Number/toSource --- -
      {{JSRef("Global_Objects", "Number")}} {{non-standard_header}}
      +{{JSRef("Global_Objects", "Number")}} {{non-standard_header}} -

      Сводка

      +## Сводка -

      Метод toSource() возвращает строку, представляющую исходный код объекта.

      +Метод **`toSource()`** возвращает строку, представляющую исходный код объекта. -

      Синтаксис

      +## Синтаксис -
      numObj.toSource()
      -Number.toSource()
      +``` +numObj.toSource() +Number.toSource() +``` -

      Параметры

      +### Параметры -

      Нет.

      +Нет. -

      Описание

      +## Описание -

      Метод toSource возвращает следующие значения:

      +Метод `toSource` возвращает следующие значения: -
        -
      • Для встроенного объекта {{jsxref("Global_Objects/Number", "Number")}} метод toSource возвращает следующую строку, указывающую, что исходный код недоступен: +- Для встроенного объекта {{jsxref("Global_Objects/Number", "Number")}} метод `toSource` возвращает следующую строку, указывающую, что исходный код недоступен: -
        function Number() {
        -    [native code]
        -}
        -
        -
      • -
      • Для экземпляров {{jsxref("Global_Objects/Number", "Number")}}, метод toSource возвращает строку, представляющую их исходный код.
      • -
      + ```js + function Number() { + [native code] + } + ``` -

      Этот метод обычно вызывается внутренними механизмами движка JavaScript, а не явно в коде.

      +- Для экземпляров {{jsxref("Global_Objects/Number", "Number")}}, метод `toSource` возвращает строку, представляющую их исходный код. -

      Спецификации

      +Этот метод обычно вызывается внутренними механизмами движка JavaScript, а не явно в коде. -

      Не является частью какого-либо стандарта. Реализована в JavaScript 1.3.

      +## Спецификации -

      Совместимость с браузерами

      +Не является частью какого-либо стандарта. Реализована в JavaScript 1.3. -

      {{Compat}}

      +## Совместимость с браузерами -

      Смотрите также

      +{{Compat}} -
        -
      • {{jsxref("Object.prototype.toSource()")}}
      • -
      +## Смотрите также + +- {{jsxref("Object.prototype.toSource()")}} diff --git a/files/ru/conflicting/web/javascript/reference/global_objects/object/tostring/index.md b/files/ru/conflicting/web/javascript/reference/global_objects/object/tostring/index.md index bdc7e7bb564391..e65b52c953f8c3 100644 --- a/files/ru/conflicting/web/javascript/reference/global_objects/object/tostring/index.md +++ b/files/ru/conflicting/web/javascript/reference/global_objects/object/tostring/index.md @@ -11,41 +11,43 @@ translation_of: Web/JavaScript/Reference/Global_Objects/Object/toSource original_slug: Web/JavaScript/Reference/Global_Objects/Object/toSource --- -
      {{JSRef("Global_Objects", "Object")}} {{non-standard_header}}
      +{{JSRef("Global_Objects", "Object")}} {{non-standard_header}} -

      Метод toSource() возвращает строку, представляющую исходный код объекта.

      +Метод **`toSource()`** возвращает строку, представляющую исходный код объекта. -

      Синтаксис

      +## Синтаксис -
      Object.toSource();
      -obj.toSource();
      +``` +Object.toSource(); +obj.toSource(); +``` -

      Параметры

      +### Параметры -

      Нет.

      +Нет. -

      Описание

      +## Описание -

      Метод toSource() возвращает следующие значения:

      +Метод `toSource()` возвращает следующие значения: -
        -
      • Для встроенного объекта {{jsxref("Global_Objects/Object", "Object")}}, метод toSource() возвращает следующую строку, указывающую, что исходный код не доступен: +- Для встроенного объекта {{jsxref("Global_Objects/Object", "Object")}}, метод `toSource()` возвращает следующую строку, указывающую, что исходный код не доступен: -
        function Object() {
        -    [native code]
        -}
        -
        -
      • -
      • Для экземпляров {{jsxref("Global_Objects/Object", "Object")}}, метод toSource() возвращает строку, представляющую исходный код.
      • -
      + ```js + function Object() { + [native code] + } + ``` + +- Для экземпляров {{jsxref("Global_Objects/Object", "Object")}}, метод `toSource()` возвращает строку, представляющую исходный код. -

      Вы можете вызывать метод toSource() во время отладки для просмотра содержимого объекта.

      +Вы можете вызывать метод `toSource()` во время отладки для просмотра содержимого объекта. -

      Переопределение метода toSource()

      +### Переопределение метода `toSource()` -

      Вы можете безопасно переопределять метод toSource() для объектов. Например:

      +Вы можете безопасно переопределять метод `toSource()` для объектов. Например: -
      function Person(name) {
      +```js
      +function Person(name) {
         this.name = name;
       }
       
      @@ -53,30 +55,29 @@ Person.prototype.toSource = function Person_toSource() {
         return 'new Person(' + uneval(this.name) + ')';
       };
       
      -console.log(new Person('Joe').toSource()); // ---> new Person("Joe")
      -
      +console.log(new Person('Joe').toSource()); // ---> new Person("Joe") +``` -

      Встроенные методы toSource()

      +### Встроенные методы `toSource()` -

      Каждый тип ядра JavaScript имеет свой собственный метод toSource(). Вот эти объекты:

      +Каждый тип ядра JavaScript имеет свой собственный метод `toSource()`. Вот эти объекты: -
        -
      • {{jsxref("Array.prototype.toSource()")}} {{non-standard_inline}} — метод объекта {{jsxref("Global_Objects/Array", "Array")}}.
      • -
      • {{jsxref("Boolean.prototype.toSource()")}} {{non-standard_inline}} — метод объекта {{jsxref("Global_Objects/Boolean", "Boolean")}}.
      • -
      • {{jsxref("Date.prototype.toSource()")}} {{non-standard_inline}} — метод объекта {{jsxref("Global_Objects/Date", "Date")}}.
      • -
      • {{jsxref("Function.prototype.toSource()")}} {{non-standard_inline}} — метод объекта {{jsxref("Global_Objects/Function", "Function")}}.
      • -
      • {{jsxref("Number.prototype.toSource()")}} {{non-standard_inline}} — метод объекта {{jsxref("Global_Objects/Number", "Number")}}.
      • -
      • {{jsxref("Regexp.prototype.toSource()")}} {{non-standard_inline}} — метод объекта {{jsxref("Global_Objects/RegExp", "RegExp")}}.
      • -
      • {{jsxref("String.prototype.toSource()")}} {{non-standard_inline}} — метод объекта {{jsxref("Global_Objects/String", "String")}}.
      • -
      • {{jsxref("Symbol.prototype.toSource()")}} {{non-standard_inline}} — метод объекта {{jsxref("Global_Objects/Symbol", "Symbol")}}.
      • -
      • Math.toSource() — возвращает строку "Math".
      • -
      +- {{jsxref("Array.prototype.toSource()")}} {{non-standard_inline}} — метод объекта {{jsxref("Global_Objects/Array", "Array")}}. +- {{jsxref("Boolean.prototype.toSource()")}} {{non-standard_inline}} — метод объекта {{jsxref("Global_Objects/Boolean", "Boolean")}}. +- {{jsxref("Date.prototype.toSource()")}} {{non-standard_inline}} — метод объекта {{jsxref("Global_Objects/Date", "Date")}}. +- {{jsxref("Function.prototype.toSource()")}} {{non-standard_inline}} — метод объекта {{jsxref("Global_Objects/Function", "Function")}}. +- {{jsxref("Number.prototype.toSource()")}} {{non-standard_inline}} — метод объекта {{jsxref("Global_Objects/Number", "Number")}}. +- {{jsxref("Regexp.prototype.toSource()")}} {{non-standard_inline}} — метод объекта {{jsxref("Global_Objects/RegExp", "RegExp")}}. +- {{jsxref("String.prototype.toSource()")}} {{non-standard_inline}} — метод объекта {{jsxref("Global_Objects/String", "String")}}. +- {{jsxref("Symbol.prototype.toSource()")}} {{non-standard_inline}} — метод объекта {{jsxref("Global_Objects/Symbol", "Symbol")}}. +- `Math.toSource()` — возвращает строку "Math". -

      Ограничение на циклические объекты

      +### Ограничение на циклические объекты -

      В том случае, если объекты содержат ссылки на самих себя, например циклический связанный список или дерево, которое можно обходить в обоих направлениях, метод toSource() не создаёт такие ссылки, начиная с Firefox 24. Например:

      +В том случае, если объекты содержат ссылки на самих себя, например циклический связанный список или дерево, которое можно обходить в обоих направлениях, метод `toSource()` не создаёт такие ссылки, начиная с Firefox 24. Например: -
      var obj1 = {};
      +```js
      +var obj1 = {};
       var obj2 = { a: obj1 };
       obj1.b = obj2;
       
      @@ -87,17 +88,18 @@ var objSource = obj1.toSource(); // вернёт "({b:{a:{}}})"
       obj1 = eval(objSource);
       
       console.log('Циклическая ссылка: ' + (obj1.b.a == obj1));
      -
      +``` -

      Если же вам позарез нужно использовать метод toSource() для циклической структуры, объект должен предоставить переопределённый метод toSource(), либо с помощью ссылки на конструктор, либо предоставив анонимную функцию.

      +Если же вам позарез нужно использовать метод `toSource()` для циклической структуры, объект должен предоставить переопределённый метод `toSource()`, либо с помощью ссылки на конструктор, либо предоставив анонимную функцию. -

      Примеры

      +## Примеры -

      Пример: использование метода toSource()

      +### Пример: использование метода `toSource()` -

      Следующий код определяет тип объекта Dog и создаёт объект theDog типа Dog:

      +Следующий код определяет тип объекта `Dog` и создаёт объект `theDog` типа `Dog`: -
      function Dog(name, breed, color, sex) {
      +```js
      +function Dog(name, breed, color, sex) {
         this.name = name;
         this.breed = breed;
         this.color = color;
      @@ -105,32 +107,23 @@ console.log('Циклическая ссылка: ' + (obj1.b.a == obj1));
       }
       
       theDog = new Dog('Болтушка', 'лабрадор', 'шоколадный', 'девочка');
      -
      +``` -

      Вызов метода toSource() на объекте theDog отобразит исходный код JavaScript, который определяет объект:

      +Вызов метода `toSource()` на объекте `theDog` отобразит исходный код JavaScript, который определяет объект: -
      theDog.toSource();
      +```js
      +theDog.toSource();
       // вернёт ({name:"Болтушка", breed:"лабрадор", color:"шоколадный", sex:"девочка"})
      -
      - -

      Спецификации

      - -

      Не является частью какого-либо стандарта. Реализована в JavaScript 1.3.

      - -

      Совместимость с браузерами

      - -

      +``` -

      {{Compat}}

      +## Спецификации -

      +Не является частью какого-либо стандарта. Реализована в JavaScript 1.3. -
      +## Совместимость с браузерами -
      +{{Compat}} -

      Смотрите также

      +## Смотрите также -
        -
      • {{jsxref("Object.prototype.toString()")}}
      • -
      +- {{jsxref("Object.prototype.toString()")}} diff --git a/files/ru/conflicting/web/javascript/reference/global_objects/regexp/tostring/index.md b/files/ru/conflicting/web/javascript/reference/global_objects/regexp/tostring/index.md index 8b3029a1cd9ea5..efffc2a116e719 100644 --- a/files/ru/conflicting/web/javascript/reference/global_objects/regexp/tostring/index.md +++ b/files/ru/conflicting/web/javascript/reference/global_objects/regexp/tostring/index.md @@ -12,49 +12,47 @@ translation_of: Web/JavaScript/Reference/Global_Objects/RegExp/toSource original_slug: Web/JavaScript/Reference/Global_Objects/RegExp/toSource --- -
      {{JSRef("Global_Objects", "RegExp")}} {{non-standard_header}}
      +{{JSRef("Global_Objects", "RegExp")}} {{non-standard_header}} -

      Сводка

      +## Сводка -

      Метод toSource() возвращает строковое представление исходного кода объекта.

      +Метод **`toSource()`** возвращает строковое представление исходного кода объекта. -

      Синтаксис

      +## Синтаксис -
      regexObj.toSource()
      +```
      +regexObj.toSource()
       RegExp.toSource()
      -
      +``` -

      Параметры

      +### Параметры -

      Нет.

      +Нет. -

      Описание

      +## Описание -

      Метод toSource() возвращает следующие значения:

      +Метод `toSource()` возвращает следующие значения: -
        -
      • Для встроенного объекта {{jsxref("Global_Objects/RegExp", "RegExp")}}, метод toSource() возвращает следующую строку, указывающую, что исходный код недоступен: +- Для встроенного объекта {{jsxref("Global_Objects/RegExp", "RegExp")}}, метод `toSource()` возвращает следующую строку, указывающую, что исходный код недоступен: -
        function RegExp() {
        -    [native code]
        -}
        -
        -
      • -
      • Для экземпляров объекта {{jsxref("Global_Objects/RegExp", "RegExp")}}, метод toSource() возвращает строковое представление исходного кода.
      • -
      + ```js + function RegExp() { + [native code] + } + ``` -

      Этот метод обычно вызывается внутри движка JavaScript, а не явно в коде.

      +- Для экземпляров объекта {{jsxref("Global_Objects/RegExp", "RegExp")}}, метод `toSource()` возвращает строковое представление исходного кода. -

      Спецификации

      +Этот метод обычно вызывается внутри движка JavaScript, а не явно в коде. -

      Не является частью какого-либо стандарта. Реализована в JavaScript 1.3.

      +## Спецификации -

      Совместимость с браузерами

      +Не является частью какого-либо стандарта. Реализована в JavaScript 1.3. -

      {{Compat}}

      +## Совместимость с браузерами -

      Смотрите также

      +{{Compat}} -
        -
      • {{jsxref("Object.prototype.toSource()")}}
      • -
      +## Смотрите также + +- {{jsxref("Object.prototype.toSource()")}} diff --git a/files/ru/conflicting/web/javascript/reference/global_objects/string/index.md b/files/ru/conflicting/web/javascript/reference/global_objects/string/index.md index 3792306a0528e6..61d117020b2412 100644 --- a/files/ru/conflicting/web/javascript/reference/global_objects/string/index.md +++ b/files/ru/conflicting/web/javascript/reference/global_objects/string/index.md @@ -7,30 +7,17 @@ translation_of: Web/API/ByteString original_slug: Web/API/ByteString --- -
      {{APIRef("DOM")}}
      +{{APIRef("DOM")}} -

      ByteString является UTF-8 строкой, которая соответствует набору всех возможных последовательностей байтов. ByteString отображается как {{jsxref("String")}} при возврате в JavaScript; как правило, используется только при взаимодействии с протоколами, которые равнозначно используют байты и строки, например HTTP.

      +**`ByteString`** является UTF-8 строкой, которая соответствует набору всех возможных последовательностей байтов. `ByteString` отображается как {{jsxref("String")}} при возврате в JavaScript; как правило, используется только при взаимодействии с протоколами, которые равнозначно используют байты и строки, например HTTP. -

      Спецификации

      +## Спецификации - - - - - - - - - - - - - -
      СпецификацияСтатусКомментарии
      {{SpecName('WebIDL', '#idl-ByteString', 'ByteString')}}{{Spec2('WebIDL')}}Изначальное определение
      +| Спецификация | Статус | Комментарии | +| ------------------------------------------------------------------------ | ------------------------ | ----------------------- | +| {{SpecName('WebIDL', '#idl-ByteString', 'ByteString')}} | {{Spec2('WebIDL')}} | Изначальное определение | -

      Смотрите также

      +## Смотрите также - +- [String](/ru/docs/Web/JavaScript/Reference/Global_Objects/String "/en-US/docs/Web/API/DOMString") +- [Binary strings](/ru/docs/Web/API/DOMString/Binary) diff --git a/files/ru/conflicting/web/javascript/reference/global_objects/string/tostring/index.md b/files/ru/conflicting/web/javascript/reference/global_objects/string/tostring/index.md index fd640aeb74c898..5f006aac5a419d 100644 --- a/files/ru/conflicting/web/javascript/reference/global_objects/string/tostring/index.md +++ b/files/ru/conflicting/web/javascript/reference/global_objects/string/tostring/index.md @@ -12,36 +12,43 @@ translation_of: Web/JavaScript/Reference/Global_Objects/String/toSource original_slug: Web/JavaScript/Reference/Global_Objects/String/toSource --- -
      {{JSRef("Global_Objects", "String")}} {{non-standard_header}}
      - -

      Сводка

      -

      Метод toSource() возвращает строковое представление исходного кода объекта.

      - -

      Синтаксис

      -
      String.toSource()
      -str.toSource()
      -
      - -

      Описание

      -

      Метод toSource() возвращает следующие значения:

      -
        -
      • Для встроенного объекта {{jsxref("Global_Objects/String", "String")}} метод toSource() возвращает следующую строку, указывающую, что исходный код недоступен: -
        function String() {
        -    [native code]
        -}
        -
        -
      • -
      • Для экземпляров объекта {{jsxref("Global_Objects/String", "String")}} или строковых литералов, метод toSource() возвращает строковое представление исходного кода.
      • -
      -

      Этот метод обычно вызывается внутренними механизмами движка JavaScript, а не явно в коде.

      - -

      Спецификации

      -

      Не является частью какого-либо стандарта. Реализована в JavaScript 1.3.

      - -

      Совместимость с браузерами

      -

      {{Compat}}

      - -

      Смотрите также

      -
        -
      • {{jsxref("Object.prototype.toSource()")}}
      • -
      +{{JSRef("Global_Objects", "String")}} {{non-standard_header}} + +## Сводка + +Метод **`toSource()`** возвращает строковое представление исходного кода объекта. + +## Синтаксис + +``` +String.toSource() +str.toSource() +``` + +## Описание + +Метод `toSource()` возвращает следующие значения: + +- Для встроенного объекта {{jsxref("Global_Objects/String", "String")}} метод `toSource()` возвращает следующую строку, указывающую, что исходный код недоступен: + + ```js + function String() { + [native code] + } + ``` + +- Для экземпляров объекта {{jsxref("Global_Objects/String", "String")}} или строковых литералов, метод `toSource()` возвращает строковое представление исходного кода. + +Этот метод обычно вызывается внутренними механизмами движка JavaScript, а не явно в коде. + +## Спецификации + +Не является частью какого-либо стандарта. Реализована в JavaScript 1.3. + +## Совместимость с браузерами + +{{Compat}} + +## Смотрите также + +- {{jsxref("Object.prototype.toSource()")}} diff --git a/files/ru/conflicting/web/javascript/reference/global_objects/string_6fa58bba0570d663099f0ae7ae8883ab/index.md b/files/ru/conflicting/web/javascript/reference/global_objects/string_6fa58bba0570d663099f0ae7ae8883ab/index.md index c75da9866b93ee..1ba92565ccb827 100644 --- a/files/ru/conflicting/web/javascript/reference/global_objects/string_6fa58bba0570d663099f0ae7ae8883ab/index.md +++ b/files/ru/conflicting/web/javascript/reference/global_objects/string_6fa58bba0570d663099f0ae7ae8883ab/index.md @@ -5,48 +5,23 @@ slug: >- translation_of: Web/API/DOMString original_slug: Web/API/DOMString --- -

      {{APIRef("DOM")}}

      +{{APIRef("DOM")}} -

      DOMString - это UTF-16 String. Так как JavaScript уже использует такие строки, DOMString непосредственно соответствует {{jsxref("String")}}.

      +**`DOMString`** - это UTF-16 String. Так как JavaScript уже использует такие строки, `DOMString` непосредственно соответствует {{jsxref("String")}}. -

      Передача null в метод или параметр принимающему DOMString, как правило приводится к "null".

      +Передача [`null`](/en-US/docs/Web/JavaScript/Reference/Global_Objects/null) в метод или параметр принимающему DOMString, как правило приводится к "null"`.` -

      Спецификации

      +## Спецификации - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      СпецификацияСтатусКомментарий
      {{SpecName('WebIDL', '#idl-DOMString', 'DOMString')}}{{Spec2('WebIDL')}}Перефразированное описание для удаления странных крайних случаев.
      {{SpecName('DOM3 Core', 'core.html#DOMString', 'DOMString')}}{{Spec2('DOM3 Core')}}Не изменилось с {{SpecName('DOM2 Core')}}
      {{SpecName('DOM2 Core', 'core.html#ID-C74D1578', 'DOMString')}}{{Spec2('DOM2 Core')}}Не изменилось с {{SpecName('DOM1')}}
      {{SpecName('DOM1', 'level-one-core.html#ID-C74D1578', 'DOMString')}}{{Spec2('DOM1')}}Изначальное определение.
      +| Спецификация | Статус | Комментарий | +| -------------------------------------------------------------------------------------------- | ---------------------------- | ----------------------------------------------------------------- | +| {{SpecName('WebIDL', '#idl-DOMString', 'DOMString')}} | {{Spec2('WebIDL')}} | Перефразированное описание для удаления странных крайних случаев. | +| {{SpecName('DOM3 Core', 'core.html#DOMString', 'DOMString')}} | {{Spec2('DOM3 Core')}} | Не изменилось с {{SpecName('DOM2 Core')}} | +| {{SpecName('DOM2 Core', 'core.html#ID-C74D1578', 'DOMString')}} | {{Spec2('DOM2 Core')}} | Не изменилось с {{SpecName('DOM1')}} | +| {{SpecName('DOM1', 'level-one-core.html#ID-C74D1578', 'DOMString')}} | {{Spec2('DOM1')}} | Изначальное определение. | -

      Смотрите также

      +## Смотрите также - +- [String](/ru/docs/Web/JavaScript/Reference/Global_Objects/String "/en-US/docs/Web/API/DOMString") +- [`StringView` – a C-like representation of strings based on typed arrays](/ru/docs/Web/JavaScript/Typed_arrays/String_view) +- [Binary strings](/ru/docs/Web/API/DOMString/Binary) diff --git a/files/ru/conflicting/web/javascript/reference/global_objects/string_9094f63a1f7efd350dd69d6a8ae174fb/index.md b/files/ru/conflicting/web/javascript/reference/global_objects/string_9094f63a1f7efd350dd69d6a8ae174fb/index.md index 9ef4be206fc615..79f1345f046a6b 100644 --- a/files/ru/conflicting/web/javascript/reference/global_objects/string_9094f63a1f7efd350dd69d6a8ae174fb/index.md +++ b/files/ru/conflicting/web/javascript/reference/global_objects/string_9094f63a1f7efd350dd69d6a8ae174fb/index.md @@ -12,32 +12,19 @@ translation_of: Web/API/USVString original_slug: Web/API/USVString --- -

      {{APIRef("DOM")}}

      +{{APIRef("DOM")}} -

      USVString соответствует набору всех возможных последовательностей скалярных значений Unicode. USVString сопоставляется с {{JSxRef("String")}} при возврате в JavaScript; обычно он используется только для API, которые выполняют обработку текста и для работы нуждаются в строке скалярных значений Unicode. USVString эквивалентна {{DOMxRef("DOMString")}} за исключением того, что не позволяет использовать непарные суррогатные кодовые точки. Непарные суррогатные кодовые точки, присутствующие в USVString, конвертируются браузером в «замещающий символ» Unicode U+FFFD, (�).

      +**`USVString`** соответствует набору всех возможных последовательностей скалярных значений Unicode. `USVString` сопоставляется с {{JSxRef("String")}} при возврате в JavaScript; обычно он используется только для API, которые выполняют обработку текста и для работы нуждаются в строке скалярных значений Unicode. USVString эквивалентна {{DOMxRef("DOMString")}} за исключением того, что не позволяет использовать непарные суррогатные кодовые точки. Непарные суррогатные кодовые точки, присутствующие в USVString, конвертируются браузером в «замещающий символ» Unicode `U+FFFD`, (�). -

      Спецификации

      +## Спецификации - - - - - - - - - - - - - -
      СпецификацияСтатусКомментарий
      {{SpecName("WebIDL", "#idl-USVString", "USVString")}}{{Spec2("WebIDL")}}Initial definition.
      +| Спецификация | Статус | Комментарий | +| ------------------------------------------------------------------------ | ------------------------ | ------------------- | +| {{SpecName("WebIDL", "#idl-USVString", "USVString")}} | {{Spec2("WebIDL")}} | Initial definition. | -

      Смотрите также

      +## Смотрите также -
        -
      • {{JSxRef("String")}}
      • -
      • {{DOMxRef("DOMString")}}
      • -
      • {{DOMxRef("CSSOMString")}}
      • -
      • Binary strings
      • -
      +- {{JSxRef("String")}} +- {{DOMxRef("DOMString")}} +- {{DOMxRef("CSSOMString")}} +- [Binary strings](/ru/docs/Web/API/DOMString/Binary) diff --git a/files/ru/conflicting/web/javascript/reference/global_objects/symbol/index.md b/files/ru/conflicting/web/javascript/reference/global_objects/symbol/index.md index 2837164eb8690d..abfab6eb3ccb9f 100644 --- a/files/ru/conflicting/web/javascript/reference/global_objects/symbol/index.md +++ b/files/ru/conflicting/web/javascript/reference/global_objects/symbol/index.md @@ -5,22 +5,22 @@ translation_of: Glossary/Symbol original_slug: Glossary/Symbol --- -

      На этой странице описывается тип данных «символ» и функция «{{jsxref("Symbol")}}()», которая (среди прочего) создаёт экземпляры типа «символ».

      +На этой странице описывается тип данных «символ» и функция «{{jsxref("Symbol")}}`()`», которая (среди прочего) создаёт экземпляры типа «символ». -

      Symbol​ (Символ) — примитивный тип данных, экземпляры которого уникальны и неизменяемы. В некоторых языках программирования символы также называются атомами.

      +**Symbol** (Символ) — примитивный тип данных, экземпляры которого уникальны и неизменяемы. В некоторых языках программирования символы также называются атомами. -

      В среде выполнения JavaScript значение «символа» создаётся путём вызова функции Symbol (), которая динамически создаёт анонимное и уникальное значение. Единственное разумное использование — сохранить символ, а затем использовать сохранённое значение для создания свойства объекта. Следующий пример хранит символ в «var».

      +В среде выполнения JavaScript значение «символа» создаётся путём вызова функции Symbol (), которая динамически создаёт анонимное и уникальное значение. Единственное разумное использование — сохранить символ, а затем использовать сохранённое значение для создания свойства объекта. Следующий пример хранит символ в «var». -
      var  myPrivateMethod  = Symbol();
      -this[myPrivateMethod] = function() {...};
      +```js +var myPrivateMethod = Symbol(); +this[myPrivateMethod] = function() {...}; +``` -

      Когда символ используется как идентификатор в присваивании свойства, свойство (например, символ) является анонимным; а также не исчислимым. Поскольку свойство не исчислимо, оно не будет отображаться в цикле «for (... in ...)», и поскольку свойство является анонимным, оно не будет отображаться в массиве результатов "Object.getOwnPropertyNames ()". Доступ к этому свойству можно получить с помощью исходного значения символа, создавшего его, или путём итерирования в массиве результатов «Object.getOwnPropertySymbols ()». В предыдущем примере кода доступ к свойству будет осуществляться через значение, которое было сохранено в переменной myPrivateMethod.

      +Когда символ используется как идентификатор в присваивании свойства, свойство (например, символ) является анонимным; а также не исчислимым. Поскольку свойство не исчислимо, оно не будет отображаться в цикле «for (... in ...)», и поскольку свойство является анонимным, оно не будет отображаться в массиве результатов "Object.getOwnPropertyNames ()". Доступ к этому свойству можно получить с помощью исходного значения символа, создавшего его, или путём итерирования в массиве результатов «Object.getOwnPropertySymbols ()». В предыдущем примере кода доступ к свойству будет осуществляться через значение, которое было сохранено в переменной myPrivateMethod. -

      Узнать больше

      +## Узнать больше -

      Общие сведения

      +### Общие сведения - +- [Symbol on Wikipedia](http://en.wikipedia.org/wiki/Symbol_%28programming%29) +- [Типы и структуры данных в JavaScript](/ru/docs/Web/JavaScript/Data_structures) diff --git a/files/ru/conflicting/web/manifest/index.md b/files/ru/conflicting/web/manifest/index.md index 65bbfcaf86dd92..d113d56f813e89 100644 --- a/files/ru/conflicting/web/manifest/index.md +++ b/files/ru/conflicting/web/manifest/index.md @@ -9,85 +9,55 @@ translation_of: Web/Manifest/dir original_slug: Web/Manifest/dir --- -
      {{QuickLinksWithSubpages('/ru/docs/Web/Manifest')}}
      +{{QuickLinksWithSubpages('/ru/docs/Web/Manifest')}} - - - - - - - - - - - - - - + + + + + + + + + + + + + +
      TypeString
      MandatoryNo
      Example -
      -"dir": "auto"
      -
      TypeString
      MandatoryNo
      Example
      "dir": "auto"
      -

      Базовое направление, в котором отображаются направленные элементы манифеста. Вместе с lang, позволяет корректно отобразить языки, читающиеся справа налево.

      +Базовое направление, в котором отображаются направленные элементы манифеста. Вместе с [`lang`](./lang), позволяет корректно отобразить языки, читающиеся справа налево. -

      dir может быть одним из следующих значений:

      +`dir` может быть одним из следующих значений: -
        -
      • "auto" — направление текста определяется агентом пользователя
      • -
      • "ltr" — слева направо
      • -
      • "rtl" — справа налево
      • -
      +- `"auto"` — направление текста определяется агентом пользователя +- `"ltr"` — слева направо +- `"rtl"` — справа налево -

      Направленные свойства:

      +Направленные свойства: - +- [`name`](./name) +- [`short_name`](./short_name) +- [`description`](./description) -
      -

      Примечание: Если значение опущено или установлено в auto, браузер будет использовать двунаправленный алгоритм Unicode, чтобы сделать наилучшее предположение о направлении текста.

      -
      +> **Примечание:** Если значение опущено или установлено в `auto`, браузер будет использовать [двунаправленный алгоритм Unicode](/ru/docs/Web/Localization/Unicode_Bidirectional_Text_Algorithm), чтобы сделать наилучшее предположение о направлении текста. -

      Пример

      +## Пример -
      "dir": "rtl",
      +```json
      +"dir": "rtl",
       "lang": "ar",
      -"short_name": "!أنا من التطبيق"
      +"short_name": "!أنا من التطبيق" +``` -

      Specification

      +## Specification - - - - - - - - - - - - - - - - - -
      SpecificationStatusCommentFeedback
      -

      {{SpecName('Manifest', '#dir-member', 'dir')}}

      -
      -

      {{Spec2('Manifest')}}

      -
      -

      Initial definition.

      -
      -

      Web App Manifest Working Group drafts

      -
      +| Specification | Status | Comment | Feedback | +| ------------------------------------------------------------ | ---------------------------- | ------------------- | -------------------------------------------------------------------------------- | +| {{SpecName('Manifest', '#dir-member', 'dir')}} | {{Spec2('Manifest')}} | Initial definition. | [Web App Manifest Working Group drafts](https://github.com/w3c/manifest/issues/) | -

      Browser compatibility

      +## Browser compatibility -

      {{Compat}}

      +{{Compat}} diff --git a/files/ru/conflicting/web/manifest_7ec32c6987e59d5f1cb08f8c9d900a4c/index.md b/files/ru/conflicting/web/manifest_7ec32c6987e59d5f1cb08f8c9d900a4c/index.md index a986bb4523e7bb..4b5be5f87de702 100644 --- a/files/ru/conflicting/web/manifest_7ec32c6987e59d5f1cb08f8c9d900a4c/index.md +++ b/files/ru/conflicting/web/manifest_7ec32c6987e59d5f1cb08f8c9d900a4c/index.md @@ -9,63 +9,39 @@ translation_of: Web/Manifest/lang original_slug: Web/Manifest/lang --- -
      {{QuickLinksWithSubpages('/ru/docs/Web/Manifest')}}
      +{{QuickLinksWithSubpages('/ru/docs/Web/Manifest')}} - - - - - - - - - - - - - - + + + + + + + + + + + + + +
      TypeString
      MandatoryNo
      Example -
      -"lang": "en-US"
      -
      TypeString
      MandatoryNo
      Example
      "lang": "en-US"
      -

      lang является строкой, содержащей единственный языковой тег. Он определяет основной язык для значений направленных свойств манифеста, и вместе с dir определяет их направленность.

      +_`lang`_ является строкой, содержащей единственный [языковой тег](../HTML/Global_attributes/lang). Он определяет основной язык для значений направленных свойств манифеста, и вместе с [`dir`](./dir) определяет их направленность. -

      Пример

      +## Пример -
      "lang": "en-US"
      +```json +"lang": "en-US" +``` -

      Specification

      +## Specification - - - - - - - - - - - - - - - - - -
      SpecificationStatusCommentFeedback
      -

      {{SpecName('Manifest', '#lang-member', 'lang')}}

      -
      -

      {{Spec2('Manifest')}}

      -
      -

      Initial definition.

      -
      -

      Web App Manifest Working Group drafts

      -
      +| Specification | Status | Comment | Feedback | +| ---------------------------------------------------------------- | ---------------------------- | ------------------- | -------------------------------------------------------------------------------- | +| {{SpecName('Manifest', '#lang-member', 'lang')}} | {{Spec2('Manifest')}} | Initial definition. | [Web App Manifest Working Group drafts](https://github.com/w3c/manifest/issues/) | -

      Browser compatibility

      +## Browser compatibility -

      {{Compat}}

      +{{Compat}} diff --git a/files/ru/conflicting/web/manifest_e8c4835b067e177a000dc29c18483205/index.md b/files/ru/conflicting/web/manifest_e8c4835b067e177a000dc29c18483205/index.md index 5100ce8bd7ec2a..0196bf71f9ec38 100644 --- a/files/ru/conflicting/web/manifest_e8c4835b067e177a000dc29c18483205/index.md +++ b/files/ru/conflicting/web/manifest_e8c4835b067e177a000dc29c18483205/index.md @@ -9,75 +9,50 @@ translation_of: Web/Manifest/iarc_rating_id original_slug: Web/Manifest/iarc_rating_id --- -
      {{QuickLinksWithSubpages("/ru/docs/Web/Manifest")}}
      +{{QuickLinksWithSubpages("/ru/docs/Web/Manifest")}} - - - - - - - - - - - - - - + + + + + + + + + + + + + +
      TypeString
      MandatoryNo
      Example -
      -"iarc_rating_id": "e84b072d-71b3-4d3e-86ae-31a8ce4e53b7"
      -
      TypeString
      MandatoryNo
      Example +
      +"iarc_rating_id": "e84b072d-71b3-4d3e-86ae-31a8ce4e53b7"
      +
      -

      iarc_rating_id - это строка, представляющая Международной коалиции возрастных рейтингов (IARC) код сертификации веб-приложения. Он предназначен для определения возраста, для которого подходит веб-приложение.

      +_`iarc_rating_id`_ - это строка, представляющая [Международной коалиции возрастных рейтингов (IARC)](https://www.globalratings.com/) код сертификации веб-приложения. Он предназначен для определения возраста, для которого подходит веб-приложение. -
      -

      Note: The same code can be shared across multiple participating storefronts, as long as the distributed product remains the same (i.e., doesn’t serve totally different code paths on different storefronts).

      -
      +> **Примечание:** The same code can be shared across multiple participating storefronts, as long as the distributed product remains the same (i.e., doesn’t serve totally different code paths on different storefronts). -

      Пример

      +## Пример -
      "iarc_rating_id": "e84b072d-71b3-4d3e-86ae-31a8ce4e53b7"
      -
      +```json +"iarc_rating_id": "e84b072d-71b3-4d3e-86ae-31a8ce4e53b7" +``` -

      Specification

      +## Specification - - - - - - - - - - - - - - - - - -
      SpecificationStatusCommentFeedback
      -

      {{SpecName('Manifest', '#iarc_rating_id-member', 'iarc_rating_id')}}

      -
      -

      {{Spec2('Manifest')}}

      -
      -

      Initial definition.

      -
      -

      Web App Manifest Working Group drafts

      -
      +| Specification | Status | Comment | Feedback | +| -------------------------------------------------------------------------------------------- | ---------------------------- | ------------------- | -------------------------------------------------------------------------------- | +| {{SpecName('Manifest', '#iarc_rating_id-member', 'iarc_rating_id')}} | {{Spec2('Manifest')}} | Initial definition. | [Web App Manifest Working Group drafts](https://github.com/w3c/manifest/issues/) | -

      Browser compatibility

      +## Browser compatibility -

      {{Compat}}

      +{{Compat}} -

      See also

      +## See also - +- [How IARC Works](https://www.globalratings.com/how-iarc-works.aspx) +- [How developers can get their games and apps rated with IARC](https://www.globalratings.com/for-developers.aspx) diff --git a/files/ru/conflicting/web/web_components/index.md b/files/ru/conflicting/web/web_components/index.md index 48b87c407ad63d..2f2d9dad9b7473 100644 --- a/files/ru/conflicting/web/web_components/index.md +++ b/files/ru/conflicting/web/web_components/index.md @@ -5,35 +5,31 @@ translation_of: Web/Web_Components/HTML_Imports original_slug: Web/Web_Components/HTML_Imports --- -
      -

      Firefox will not ship HTML Imports in its current form. See this status update for more information. Until there is a consensus on the standard or alternative mechanisms are worked out, you can use a polyfill such as Google's webcomponents.js.

      -
      +> **Предупреждение:** Firefox will not ship _HTML Imports_ in its current form. See this [status update](https://hacks.mozilla.org/2015/06/the-state-of-web-components/) for more information. Until there is a consensus on the standard or alternative mechanisms are worked out, you can use a polyfill such as Google's [`webcomponents.js`](https://github.com/webcomponents/webcomponentsjs). -

      HTML Импорты is intended to be the packaging mechanism for web components, but you can also use HTML Imports by itself.

      +_HTML Импорты_ is intended to be the packaging mechanism for [web components](/ru/docs/Web/Web_Components), but you can also use HTML Imports by itself. -
      You import an HTML file by using a <link> tag in an HTML document like this:
      +You import an HTML file by using a [``](/ru/docs/Web/HTML/Element/link) tag in an HTML document like this: -
      +``` + +``` -
      <link rel="import" href="myfile.html">
      +The `import` link type is new. -

      The import link type is new.

      - -

      Specification

      +## Specification - - - - - - - - - - - - + + + + + + + + + + + +
      SpecificationStatusComment
      {{SpecName('HTML Imports', "", "")}}{{Spec2('HTML Imports')}}
      SpecificationStatusComment
      {{SpecName('HTML Imports', "", "")}}{{Spec2('HTML Imports')}}
      - -