diff options
Diffstat (limited to 'files/ru/web')
50 files changed, 0 insertions, 5576 deletions
diff --git a/files/ru/web/accessibility/at-apis/gecko/index.html b/files/ru/web/accessibility/at-apis/gecko/index.html deleted file mode 100644 index 9cd605e79d..0000000000 --- a/files/ru/web/accessibility/at-apis/gecko/index.html +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: Gecko -slug: Web/Accessibility/AT-APIs/Gecko -tags: - - NeedsTranslation - - TopicStub -translation_of: Mozilla/Tech/Accessibility/AT-APIs/Gecko ---- -{{wiki.localize('System.API.page-generated-for-subpage')}} diff --git a/files/ru/web/accessibility/at-apis/gecko/roles/index.html b/files/ru/web/accessibility/at-apis/gecko/roles/index.html deleted file mode 100644 index 3279dc94f1..0000000000 --- a/files/ru/web/accessibility/at-apis/gecko/roles/index.html +++ /dev/null @@ -1,498 +0,0 @@ ---- -title: Gecko Roles -slug: Web/Accessibility/AT-APIs/Gecko/Roles -tags: - - AT_APIs - - Accessibility - - NeedsTranslation - - Reference - - TopicStub -translation_of: Mozilla/Tech/Accessibility/AT-APIs/Gecko/Roles ---- -<p><a href="/ru/docs/Accessibility:AT-APIs#Supported_Roles">« AT APIs Support Page</a></p> -<p><span class="seoSummary">This page offers a list of accessible roles used in Gecko. Role constants are defined in the <code><a href="/ru/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIAccessibleRole" title="">nsIAccessibleRole</a></code> interface.</span></p> -<dl> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_NOTHING">ROLE_NOTHING</a></code></dt> - <dd> - Used when the accessible item doesn't have a strongly defined role.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_TITLEBAR">ROLE_TITLEBAR</a></code></dt> - <dd> - Represents a title or caption bar for a window. Used by MSAA only, this is supported automatically by Microsoft Windows.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_MENUBAR">ROLE_MENUBAR</a></code></dt> - <dd> - Represents the menu bar (positioned beneath the title bar of a window on most platforms or at the top of the screen on Mac OS X) from which menus are selected by the user.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_SCROLLBAR">ROLE_SCROLLBAR</a></code></dt> - <dd> - Represents a vertical or horizontal scroll bar, which is part of the client area or used in a control.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_GRIP">ROLE_GRIP</a></code></dt> - <dd> - Represents a special mouse pointer, which allows a user to manipulate user interface elements such as windows. For example, a user clicks and drags a sizing grip in the lower-right corner of a window to resize it</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_SOUND">ROLE_SOUND</a></code></dt> - <dd> - Represents a system sound, which is associated with various system events.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_CURSOR">ROLE_CURSOR</a></code></dt> - <dd> - Represents the system mouse pointer.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_CARET">ROLE_CARET</a></code></dt> - <dd> - Represents the system caret.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_ALERT">ROLE_ALERT</a></code></dt> - <dd> - Represents an alert or a condition that a user should be notified about. Assistive Technologies typically respond to the role by reading the entire onscreen contents of containers advertising this role. Should be used for warning dialogs, etc.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_WINDOW">ROLE_WINDOW</a></code></dt> - <dd> - Represents the window frame, which contains child objects such as a title bar, client, and other objects contained in a window. The role is supported automatically by Microsoft Windows.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_INTERNAL_FRAME">ROLE_INTERNAL_FRAME</a></code></dt> - <dd> - A sub-document.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_MENUPOPUP">ROLE_MENUPOPUP</a></code></dt> - <dd> - Represents a menu, which presents a list of options from which the user can make a selection to perform an action.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_MENUITEM">ROLE_MENUITEM</a></code></dt> - <dd> - Represents a menu item, which is an entry in a menu that a user can choose to carry out a command, select an option.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_TOOLTIP">ROLE_TOOLTIP</a></code></dt> - <dd> - Represents a tooltip that provides helpful hints; this is generally displayed at the mouse cursor position.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_APPLICATION">ROLE_APPLICATION</a></code></dt> - <dd> - Represents a main window for an application.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_DOCUMENT">ROLE_DOCUMENT</a></code></dt> - <dd> - Represents a document window. A document window is always contained within an application window.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_PANE">ROLE_PANE</a></code></dt> - <dd> - Represents a pane within a frame or document window. Users can navigate between panes and within the contents of the current pane, but cannot navigate between items in different panes. Thus, panes represent a level of grouping lower than frame windows or documents, but above individual controls.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_CHART">ROLE_CHART</a></code></dt> - <dd> - Represents a graphical image used to represent data.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_DIALOG">ROLE_DIALOG</a></code></dt> - <dd> - Represents a dialog box or message box.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_BORDER">ROLE_BORDER</a></code></dt> - <dd> - Represents a window border.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_GROUPING">ROLE_GROUPING</a></code></dt> - <dd> - Logically groups other objects.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_SEPARATOR">ROLE_SEPARATOR</a></code></dt> - <dd> - Used to visually divide a space into two regions, such as a separator menu item or a bar that divides split panes within a window.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_TOOLBAR">ROLE_TOOLBAR</a></code></dt> - <dd> - Represents a toolbar, which is a grouping of controls (push buttons or toggle buttons) that provides easy access to frequently used features.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_STATUSBAR">ROLE_STATUSBAR</a></code></dt> - <dd> - Represents a status bar, which is an area at the bottom of a window that displays information about the current operation, state of the application, or selected object. The status bar has multiple fields, which display different kinds of information.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_TABLE">ROLE_TABLE</a></code></dt> - <dd> - Represents a table that contains rows and columns of cells, and optionally, row headers and column headers.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_COLUMNHEADER">ROLE_COLUMNHEADER</a></code></dt> - <dd> - Represents a column header, providing a visual label for a column in a table.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_ROWHEADER">ROLE_ROWHEADER</a></code></dt> - <dd> - Represents a row header, which provides a visual label for a table row.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_COLUMN">ROLE_COLUMN</a></code></dt> - <dd> - Represents a column of cells within a table.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_ROW">ROLE_ROW</a></code></dt> - <dd> - Represents a row of cells within a table.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_CELL">ROLE_CELL</a></code></dt> - <dd> - Represents a cell within a table.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_LINK">ROLE_LINK</a></code></dt> - <dd> - Represents a link to something else. This object might look like text or a graphic, but it acts like a button.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_HELPBALLOON">ROLE_HELPBALLOON</a></code></dt> - <dd> - Displays a Help topic in the form of a ToolTip or Help balloon.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_CHARACTER">ROLE_CHARACTER</a></code></dt> - <dd> - Represents a cartoon-like graphic object, such as Microsoft Office Assistant, which is displayed to provide help to users of an application.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_LIST">ROLE_LIST</a></code></dt> - <dd> - Represents a list box, allowing the user to select one or more items.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_LISTITEM">ROLE_LISTITEM</a></code></dt> - <dd> - Represents an item in a list.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_OUTLINE">ROLE_OUTLINE</a></code></dt> - <dd> - Represents an outline or tree structure, such as a tree view control, that displays a hierarchical list and allows the user to expand and collapse branches.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_OUTLINEITEM">ROLE_OUTLINEITEM</a></code></dt> - <dd> - Represents an item in an outline or tree structure.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_PAGETAB">ROLE_PAGETAB</a></code></dt> - <dd> - Represents a page tab, it is a child of a page tab list.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_PROPERTYPAGE">ROLE_PROPERTYPAGE</a></code></dt> - <dd> - Represents a property sheet.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_INDICATOR">ROLE_INDICATOR</a></code></dt> - <dd> - Represents an indicator, such as a pointer graphic, that points to the current item.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_GRAPHIC">ROLE_GRAPHIC</a></code></dt> - <dd> - Represents a picture.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_STATICTEXT">ROLE_STATICTEXT</a></code></dt> - <dd> - Represents read-only text, such as labels for other controls or instructions in a dialog box. Static text cannot be modified or selected.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_TEXT_LEAF">ROLE_TEXT_LEAF</a></code></dt> - <dd> - Represents selectable text that allows edits or is designated read-only.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_PUSHBUTTON">ROLE_PUSHBUTTON</a></code></dt> - <dd> - Represents a push button control.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_CHECKBUTTON">ROLE_CHECKBUTTON</a></code></dt> - <dd> - Represents a check box control.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_RADIOBUTTON">ROLE_RADIOBUTTON</a></code></dt> - <dd> - Represents an option button, also called a radio button. It is one of a group of mutually exclusive options. All objects sharing a single parent that have this attribute are assumed to be part of single mutually exclusive group.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_COMBOBOX">ROLE_COMBOBOX</a></code></dt> - <dd> - Represents a combo box; an edit control with an associated list box that provides a set of predefined choices.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_DROPLIST">ROLE_DROPLIST</a></code></dt> - <dd> - Represents the calendar control.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_PROGRESSBAR">ROLE_PROGRESSBAR</a></code></dt> - <dd> - Represents a progress bar, dynamically showing the user the percent complete of an operation in progress.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_DIAL">ROLE_DIAL</a></code></dt> - <dd> - Represents a dial or knob whose purpose is to allow a user to set a value.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_HOTKEYFIELD">ROLE_HOTKEYFIELD</a></code></dt> - <dd> - Represents a hot-key field that allows the user to enter a combination or sequence of keystrokes.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_SLIDER">ROLE_SLIDER</a></code></dt> - <dd> - Represents a slider, which allows the user to adjust a setting in given increments between minimum and maximum values.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_SPINBUTTON">ROLE_SPINBUTTON</a></code></dt> - <dd> - Represents a spin box, which is a control that allows the user to increment or decrement the value displayed in a separate "buddy" control associated with the spin box.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_DIAGRAM">ROLE_DIAGRAM</a></code></dt> - <dd> - Represents a graphical image used to diagram data.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_ANIMATION">ROLE_ANIMATION</a></code></dt> - <dd> - Represents an animation control, which contains content that changes over time, such as a control that displays a series of bitmap frames.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_EQUATION">ROLE_EQUATION</a></code></dt> - <dd> - Represents a mathematical equation. It is used by MATHML.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_BUTTONDROPDOWN">ROLE_BUTTONDROPDOWN</a></code></dt> - <dd> - Represents a button that drops down a list of items.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_BUTTONMENU">ROLE_BUTTONMENU</a></code></dt> - <dd> - Represents a button that drops down a menu.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_BUTTONDROPDOWNGRID">ROLE_BUTTONDROPDOWNGRID</a></code></dt> - <dd> - Represents a button that drops down a grid.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_WHITESPACE">ROLE_WHITESPACE</a></code></dt> - <dd> - Represents blank space between other objects.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_PAGETABLIST">ROLE_PAGETABLIST</a></code></dt> - <dd> - Represents a container of page tab controls.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_CLOCK">ROLE_CLOCK</a></code></dt> - <dd> - Represents a control that displays time.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_SPLITBUTTON">ROLE_SPLITBUTTON</a></code></dt> - <dd> - Represents a button on a toolbar that has a drop-down list icon directly adjacent to the button.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_IPADDRESS">ROLE_IPADDRESS</a></code></dt> - <dd> - Represents an edit control designed for an Internet Protocol (IP) address. The edit control is divided into sections for the different parts of the IP address.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_ACCEL_LABEL">ROLE_ACCEL_LABEL</a></code></dt> - <dd> - Represents a label control that has an accelerator.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_ARROW">ROLE_ARROW</a></code></dt> - <dd> - Represents an arrow in one of the four cardinal directions.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_CANVAS">ROLE_CANVAS</a></code></dt> - <dd> - Represents a control that can be drawn into and is used to trap events.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_CHECK_MENU_ITEM">ROLE_CHECK_MENU_ITEM</a></code></dt> - <dd> - Represents a menu item with a check box.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_COLOR_CHOOSER">ROLE_COLOR_CHOOSER</a></code></dt> - <dd> - Represents a specialized dialog that lets the user choose a color.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_DATE_EDITOR">ROLE_DATE_EDITOR</a></code></dt> - <dd> - Represents control whose purpose is to allow a user to edit a date.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_DESKTOP_ICON">ROLE_DESKTOP_ICON</a></code></dt> - <dd> - An iconified internal frame in an ROLE_DESKTOP_PANE.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_DESKTOP_FRAME">ROLE_DESKTOP_FRAME</a></code></dt> - <dd> - A desktop pane. A pane that supports internal frames and iconified versions of those internal frames.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_DIRECTORY_PANE">ROLE_DIRECTORY_PANE</a></code></dt> - <dd> - A directory pane. A pane that allows the user to navigate through and select the contents of a directory. May be used by a file chooser.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_FILE_CHOOSER">ROLE_FILE_CHOOSER</a></code></dt> - <dd> - A file chooser. A specialized dialog that displays the files in the directory and lets the user select a file, browse a different directory, or specify a filename. May use the directory pane to show the contents of a directory.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_FONT_CHOOSER">ROLE_FONT_CHOOSER</a></code></dt> - <dd> - A font chooser. A font chooser is a component that lets the user pick various attributes for fonts.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_CHROME_WINDOW">ROLE_CHROME_WINDOW</a></code></dt> - <dd> - Frame role. A top level window with a title bar, border, menu bar, etc. It is often used as the primary window for an application.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_GLASS_PANE">ROLE_GLASS_PANE</a></code></dt> - <dd> - A glass pane. A pane that is guaranteed to be painted on top of all panes beneath it.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_HTML_CONTAINER">ROLE_HTML_CONTAINER</a></code></dt> - <dd> - A document container for HTML, whose children represent the document content.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_ICON">ROLE_ICON</a></code></dt> - <dd> - A small fixed size picture, typically used to decorate components.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_LABEL">ROLE_LABEL</a></code></dt> - <dd> - Presents an icon or short string in an interface.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_LAYERED_PANE">ROLE_LAYERED_PANE</a></code></dt> - <dd> - A layered pane. A specialized pane that allows its children to be drawn in layers, providing a form of stacking order. This is usually the pane that holds the menu bar as well as the pane that contains most of the visual components in a window.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_OPTION_PANE">ROLE_OPTION_PANE</a></code></dt> - <dd> - A specialized pane whose primary use is inside a dialog.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_PASSWORD_TEXT">ROLE_PASSWORD_TEXT</a></code></dt> - <dd> - A text object uses for passwords, or other places where the text content is not shown visibly to the user.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_POPUP_MENU">ROLE_POPUP_MENU</a></code></dt> - <dd> - A temporary window that is usually used to offer the user a list of choices, and then hides when the user selects one of those choices.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_RADIO_MENU_ITEM">ROLE_RADIO_MENU_ITEM</a></code></dt> - <dd> - A radio button that is a menu item.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_ROOT_PANE">ROLE_ROOT_PANE</a></code></dt> - <dd> - A root pane. A specialized pane that has a glass pane and a layered pane as its children. Its children can include scroll bars and a viewport.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_SCROLL_PANE">ROLE_SCROLL_PANE</a></code></dt> - <dd> - A scroll pane. An object that allows a user to incrementally view a large amount of information.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_SPLIT_PANE">ROLE_SPLIT_PANE</a></code></dt> - <dd> - A split pane. A specialized panel that presents two other panels at the same time. Between the two panels is a divider the user can manipulate to make one panel larger and the other panel smaller.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_TABLE_COLUMN_HEADER">ROLE_TABLE_COLUMN_HEADER</a></code></dt> - <dd> - The header for a column of a table.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_TABLE_ROW_HEADER">ROLE_TABLE_ROW_HEADER</a></code></dt> - <dd> - The header for a row of a table.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_TEAR_OFF_MENU_ITEM">ROLE_TEAR_OFF_MENU_ITEM</a></code></dt> - <dd> - A menu item used to tear off and reattach its menu.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_TERMINAL">ROLE_TERMINAL</a></code></dt> - <dd> - Represents an accessible terminal.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_TEXT_CONTAINER">ROLE_TEXT_CONTAINER</a></code></dt> - <dd> - Collection of objects that constitute a logical text entity.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_TOGGLE_BUTTON">ROLE_TOGGLE_BUTTON</a></code></dt> - <dd> - A toggle button. A specialized push button that can be checked or unchecked, but does not provide a separate indicator for the current state.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_TREE_TABLE">ROLE_TREE_TABLE</a></code></dt> - <dd> - Representas a control that is capable of expanding and collapsing rows as well as showing multiple columns of data.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_VIEWPORT">ROLE_VIEWPORT</a></code></dt> - <dd> - A viewport. An object usually used in a scroll pane. It represents the portion of the entire data that the user can see. As the user manipulates the scroll bars, the contents of the viewport can change.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_HEADER">ROLE_HEADER</a></code></dt> - <dd> - Header of a document page.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_FOOTER">ROLE_FOOTER</a></code></dt> - <dd> - Footer of a document page.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_PARAGRAPH">ROLE_PARAGRAPH</a></code></dt> - <dd> - A paragraph of text.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_RULER">ROLE_RULER</a></code></dt> - <dd> - A ruler such as those used in word processors.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_AUTOCOMPLETE">ROLE_AUTOCOMPLETE</a></code></dt> - <dd> - A text entry having dialog or list containing items for insertion into an entry widget, for instance a list of words for completion of a text entry.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_EDITBAR">ROLE_EDITBAR</a></code></dt> - <dd> - An editable text object in a toolbar.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_ENTRY">ROLE_ENTRY</a></code></dt> - <dd> - An control whose textual content may be entered or modified by the user.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_CAPTION">ROLE_CAPTION</a></code></dt> - <dd> - A caption describing another object.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_DOCUMENT_FRAME">ROLE_DOCUMENT_FRAME</a></code></dt> - <dd> - A visual frame or container which contains a view of document content. Document frames may occur within another Document instance, in which case the second document may be said to be embedded in the containing instance. HTML frames are often ROLE_DOCUMENT_FRAME. Either this object, or a singleton descendant, should implement the Document interface.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_HEADING">ROLE_HEADING</a></code></dt> - <dd> - Heading.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_PAGE">ROLE_PAGE</a></code></dt> - <dd> - An object representing a page of document content. It is used in documents which are accessed by the user on a page by page basis.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_SECTION">ROLE_SECTION</a></code></dt> - <dd> - A container of document content.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_REDUNDANT_OBJECT">ROLE_REDUNDANT_OBJECT</a></code></dt> - <dd> - An object which is redundant with another object in the accessible hierarchy. ATs typically ignore objects with this role.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_FORM">ROLE_FORM</a></code></dt> - <dd> - A container of form controls.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_IME">ROLE_IME</a></code></dt> - <dd> - An object which is used to allow input of characters not found on a keyboard, such as the input of Chinese characters on a Western keyboard.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_APP_ROOT">ROLE_APP_ROOT</a></code></dt> - <dd> - ???</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_PARENT_MENUITEM">ROLE_PARENT_MENUITEM</a></code></dt> - <dd> - Represents a menu item, which is an entry in a menu that a user can choose to display another menu.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_CALENDAR">ROLE_CALENDAR</a></code></dt> - <dd> - A calendar that allows the user to select a date.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_COMBOBOX_LIST">ROLE_COMBOBOX_LIST</a></code></dt> - <dd> - A list of items that is shown by combobox.</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_COMBOBOX_OPTION">ROLE_COMBOBOX_OPTION</a></code></dt> - <dd> - A item of list that is shown by combobox</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_IMAGE_MAP">ROLE_IMAGE_MAP</a></code></dt> - <dd> - An image map -- has child links representing the areas</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_OPTION">ROLE_OPTION</a></code></dt> - <dd> - An option in a listbox</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_RICH_OPTION">ROLE_RICH_OPTION</a></code></dt> - <dd> - A rich option in a listbox, it can have other widgets as children</dd> - <dt> - <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_LISTBOX">ROLE_LISTBOX</a></code></dt> - <dd> - A list of options</dd> -</dl> -<div class="note"> - <p><strong>Editor's note:</strong> Use template <span class="nowiki"><code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_">ROLE_</a></code></span> to get reference on accessible role. It looks like <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_MENUITEM">ROLE_MENUITEM</a></code>.</p> -</div> diff --git a/files/ru/web/accessibility/at-apis/gecko/roles/role_document/index.html b/files/ru/web/accessibility/at-apis/gecko/roles/role_document/index.html deleted file mode 100644 index 0116e62762..0000000000 --- a/files/ru/web/accessibility/at-apis/gecko/roles/role_document/index.html +++ /dev/null @@ -1,31 +0,0 @@ ---- -title: ROLE_DOCUMENT -slug: Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_DOCUMENT -translation_of: Mozilla/Tech/Accessibility/AT-APIs/Gecko/Roles/ROLE_DOCUMENT ---- -<p><a href="/ru/docs/Accessibility:AT-APIs:Gecko:Roles">« Gecko Roles Page</a></p> -<p>Represents a document window. A document window is always contained within an application window.</p> -<h2 id="Interfaces" name="Interfaces">Interfaces</h2> -<ul> - <li><code><a href="/ru/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIAccessNode" title="">nsIAccessNode</a></code></li> - <li><code><a href="/ru/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIAccessible" title="">nsIAccessible</a></code></li> - <li><code><a href="/ru/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIAccessibleText" title="">nsIAccessibleText</a></code></li> - <li><code><a href="/ru/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIAccessibleEditableText" title="">nsIAccessibleEditableText</a></code></li> - <li><code><a href="/ru/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIAccessibleHyperText" title="">nsIAccessibleHyperText</a></code></li> - <li><code><a href="/ru/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIAccessibleDocument" title="">nsIAccessibleDocument</a></code></li> -</ul> -<h2 id="Mapped_to" name="Mapped_to">Mapped to</h2> -<ul> - <li>AT-SPI: <code>ROLE_DOCUMENT_FRAME</code></li> - <li>ATK: <code>ATK_ROLE_DOCUMENT_FRAME</code></li> - <li>UA: <code>NSAccessibilityGroupRole</code></li> - <li>MSAA/IA2: <code>ROLE_SYSTEM_DOCUMENT</code></li> -</ul> -<h2 id="Used_by" name="Used_by">Used by</h2> -<ul> - <li>ARIA: <code><a class="external" href="https://w3c.github.io/aria/#document">document</a></code></li> - <li>HTML: content document</li> -</ul> -<p></p><section class="Quick_links" id="Quick_Links"> -<ol><li><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_PASSWORD_TEXT">ROLE PASSWORD TEXT</a></li><li><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_DOCUMENT">ROLE_DOCUMENT</a></li></ol> -</section><p></p> diff --git a/files/ru/web/accessibility/at-apis/gecko/roles/role_password_text/index.html b/files/ru/web/accessibility/at-apis/gecko/roles/role_password_text/index.html deleted file mode 100644 index 3157da6c12..0000000000 --- a/files/ru/web/accessibility/at-apis/gecko/roles/role_password_text/index.html +++ /dev/null @@ -1,27 +0,0 @@ ---- -title: ROLE PASSWORD TEXT -slug: Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_PASSWORD_TEXT -translation_of: Mozilla/Tech/Accessibility/AT-APIs/Gecko/Roles/ROLE_PASSWORD_TEXT ---- -<p> </p> - -<p><a href="/ru/docs/Accessibility:AT-APIs:Gecko:Roles">« Gecko Roles Page</a></p> - -<h2 id="Description" name="Description">Description</h2> - -<p>A text object uses for passwords, or other places where the text content is not shown visibly to the user.</p> - -<h2 id="Mapped_to" name="Mapped_to">Mapped to</h2> - -<ul> - <li>AT-SPI: ROLE_PASSWORD_TEXT</li> - <li>ATK: ATK_ROLE_PASSWORD_TEXT</li> - <li>UA: NSAccessibilityTextFieldRole</li> - <li>MSAA/IA2: ROLE_SYSTEM_TEXT</li> -</ul> - -<h2 id="Used_by" name="Used_by">Used by</h2> - -<ul> - <li>HTML: <input type="password"/></li> -</ul> diff --git a/files/ru/web/accessibility/at-apis/index.html b/files/ru/web/accessibility/at-apis/index.html deleted file mode 100644 index 43b7f1d8b6..0000000000 --- a/files/ru/web/accessibility/at-apis/index.html +++ /dev/null @@ -1,176 +0,0 @@ ---- -title: AT APIs Support -slug: Web/Accessibility/AT-APIs -tags: - - AT_APIs - - Accessibility - - NeedsTranslation - - TopicStub -translation_of: Mozilla/Tech/Accessibility/AT-APIs ---- -<h2 id="Introduction" name="Introduction">Introduction</h2> - -<div class="note">Documentation is in progress still. But in the meantime it more up-to-date and contains more details than existed analogues for <a class="external" href="http://developer.mozilla.org/en/docs/Accessibility/AT-SPI_Support">AT-SPI</a> and <a class="external" href="http://wiki.mozilla.org/Accessibility/AT-Windows-API">MSAA</a></div> - -<p>This documentation explains how makers of screen readers, voice dictation packages, onscreen keyboards, magnification software and other assitive technologies can support Gecko-based software. We provide for them the support of these products on Windows, Linux/Unix and OS X platforms.</p> - -<h3 id="Accessible_Gecko" name="Accessible_Gecko">Accessible Gecko</h3> - -<p>Gecko is a rendering engine that Firefox, SeaMonkey, Netscape and yelp use. Gecko can render a variety of content, not just HTML and supports key web standards such as Cascading Style Sheets, Javascript and the W3C DOM. Gecko also handles the users keystrokes and mouse clicks. Gecko is the core architecture that we are adding accessibility to, in order to support basic accessibility in all applications that are based on it.</p> - -<h3 id="Gecko_Based_Applications" name="Gecko_Based_Applications">Gecko Based Applications</h3> - -<p>Gecko can be used in two ways to create application:</p> - -<h4 id="Embedded_Clients" name="Embedded_Clients">Embedded Clients</h4> - -<p>Embedded clients use Gecko only in the content window, at the moment for HTML and generic XML only. They typically use standard Windows controls for their user interface -- the area outside of the client content window, plus the context menu.</p> - -<ul> - <li>on Windows platform - <ul> - <li>MFCEMBED testing client - this is a very simple package, great for testing basic HTML accessibility with your products and the Gecko rendering engine (please <a href="#Contacts">contact</a> us for a copy).</li> - <li><a class="external" href="http://kmeleon.sourceforge.net/">K-Meleon</a> - light, ultra-fast and more advanced (fully configurable) Gecko-based web browser available on the Windows platform</li> - </ul> - </li> - <li>on Linux/Unix platform - <ul> - <li><a class="external" href="http://live.gnome.org/Yelp">Yelp help viewer</a> - the help viewer in Gnome</li> - <li><a class="external" href="http://www.gnome.org/projects/evolution/">Evolution email</a> - provides integrated mail, addressbook and calendaring functionality to users of the GNOME desktop.</li> - </ul> - </li> - <li>on Mac platform - <ul> - <li><a class="external" href="http://caminobrowser.org/">Camino</a> - web browser for OS X</li> - </ul> - </li> -</ul> - -<h4 id="XUL_Applications" name="XUL_Applications">XUL Applications</h4> - -<p>XUL applications make full use of the Gecko architecture, not only for HTML content, but also for the entire user interface. Widgets such as menus, tab panels, tree views and dialogs are provided via an XML language called XUL (eXtensible User-interface Language). None of the user interface contains standard OS controls. This is done to ensure a common look and feel across all supported platforms, and to allow for different skins (appearances). Developing a XUL window is not that different from developing a web page, but the elements available to add widgets are more powerful and designed to be similar to desktop widgets.</p> - -<p>Examples of XUL applications:</p> - -<ul> - <li><a class="external" href="http://www.mozilla.com/en-US/firefox/">Firefox</a> - web-browser</li> - <li><a class="external" href="http://www.mozilla.com/en-US/thunderbird/">Thunderbird</a> - email client</li> - <li><a class="external" href="http://www.seamonkey-project.org/">Seamonkey</a> - web-browser, advanced e-mail and newsgroup client, IRC chat client, and HTML editing made simple</li> - <li><a class="external" href="http://www.mozilla.org/projects/calendar/sunbird/">Sunbird</a> - cross-platform calendar application</li> - <li><a class="external" href="http://www.kompozer.net/">KompoZer</a> - a complete Web Authoring System for Linux Desktop, Microsoft Windows and Macintosh users to rival programs like FrontPage and Dreamweaver.</li> - <li><a class="external" href="http://www.openkomodo.com/">Open Komodo</a> - platform for building developer environments</li> - <li><a class="external" href="http://www.getmiro.com/">Miro</a> - a free, open source internet tv and video player</li> - <li>Any XulRunner application (<a class="external" href="http://www.songbirdnest.com/">Songbird media player</a>, etc.)</li> - <li>Extensions to other XUL apps (e.g. <a class="external" href="http://addons.mozilla.org">Firefox extensions</a>)</li> -</ul> - -<h3 id="Gecko_Version" name="Gecko_Version">Gecko Version</h3> - -<p>For Firefox and all other Gecko-based products: this documentation applies to up-to-date product builds based on Gecko 1.9.2 -- currently not available on official releases. However most of described features are supported starting from Gecko 1.9.0 (Firefox 3.0). However it's preferable to grab the current build of Firefox or any other Gecko-based product to be up to dated:</p> - -<ul> - <li><a class="external" href="http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-trunk/">Firefox</a> recent builds</li> - <li><a class="external" href="http://ftp.mozilla.org/pub/mozilla.org/thunderbird/nightly/latest-trunk/">Thunderbird</a> recent builds</li> - <li><a class="external" href="http://ftp.mozilla.org/pub/mozilla.org/seamonkey/nightly/latest-trunk/">Seamonkey</a> recent builds</li> -</ul> - -<h3 id="Determining_if_Accessibility_is_Enabled_in_a_Firefox">Determining if Accessibility is Enabled in a Firefox</h3> - -<p>Accessibility is enabled on Windows and Linux platforms by default. As well you might find helpful the <a class="link-https" href="https://addons.mozilla.org/firefox/2407/">about:accessibilityenabled Firefox</a> extension.</p> - -<h2 id="Supported_AT_APIs" name="Supported_AT_APIs">Supported AT APIs</h2> - -<h3 id="AT_APIs_terms" name="AT_APIs_terms">AT APIs terms</h3> - -<dl> - <dt><a class="external" href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/msaa/msaastart_9w2t.asp">Microsoft Active Accessibility (MSAA)</a></dt> - <dd>an API devised by Microsoft so that accessibility aids can track what's going on inside the user interface of any software package that supports it. If you seriously need to understand MSAA, you'll need to read the docs on MSDN and play with the sample apps and code that come with <a class="external" href="http://www.microsoft.com/downloads/details.aspx?FamilyID=4179742f-1f3d-4115-a8ba-2f7a6022b533&displaylang=en">MSAA SDK 1.3</a>. (I recommend SDK 1.3 because the MSAA SDK 2.0 doesn't come with the source code to the testing tools. The other differences are not important).</dd> - <dt><a class="external" href="http://www.linux-foundation.org/en/Accessibility/IAccessible2">IAccessible2 (IA2)</a></dt> - <dd>IAccessible2 is a new accessibility API which complements Microsoft's earlier work on MSAA. This API fills critical accessibility API gaps in the MSAA offering.</dd> - <dt><a class="external" href="http://www.gnome.org/~billh/at-spi-idl/html/">Assistive Technology Service Provider Interface (AT-SPI)</a></dt> - <dd>an API devised by Sun Microsystems so that accessibility aids can track what's going on inside the user interface of any software package that supports it. If you seriously need to understand AT-SPI, you'll need to read the docs on gnome.org and play with the available sample apps and code, such as at-poke. Please note that the web docs are sometimes out of date, and the <a class="external" href="http://cvs.gnome.org/viewcvs/at-spi/">latest AT-SPI is available on CVS</a>.</dd> - <dt><a class="external" href="http://www.apple.com/macosx/features/universalaccess/">Universal Access (UA)</a></dt> - <dd>Universal Access (UA) is the Apple's accessibility framework.</dd> -</dl> - -<h3 id="Windows_platform" name="Windows_platform">Windows platform</h3> - -<p>We support MSAA (Microsoft Active Accessibility) and IAccessible2 on Windows. Also we expose <a href="/en/Accessibility/AT-APIs/ImplementationFeatures/MSAA#Additional_DOM_Support" title="en/Accessibility/AT-APIs/ImplementationFeatures/MSAA#Additional_DOM_Support">MS COM interfaces</a> ISimpleDOM* to provide an access to DOM tree.</p> - -<p>IAccessible2 is a set of interfaces that overlay the MSAA (IAccessible) and DOM (ISimpleDOM*) interface support. Any object that supports IAccessible will also support IAccessible2 and possibly any of the other IA2 interfaces.</p> - -<h3 id="Linux.2FUnix_platform" name="Linux.2FUnix_platform">Linux/Unix platform</h3> - -<p>We support ATK/AT-SPI interfaces on Linux.</p> - -<h3 id="Mac_platform" name="Mac_platform">Mac platform</h3> - -<p>We currently support only a subset of Universal Access. The rest of the <a class="external" href="http://wiki.mozilla.org/Mac:Accessibility">Mozilla Universal Access support</a> is in progress.</p> - -<h2 id="Accessible_Web_Specifications" name="Accessible_Web_Specifications">Accessible Web Specifications</h2> - -<p>Gecko exposes the number of XML languages including HTML to AT. Refer to <a href="/en/Accessibility/AT-APIs/Web_Specifications" title="en/ARIA_User_Agent_Implementors_Guide">accessible web specifications page</a> to learn what and how markup languages are exposed.</p> - -<h2 id="AT_APIs_Supported_Features_Details" name="AT_APIs_Supported_Features_Details">AT APIs Implementation Details</h2> - -<p>Refer to <a href="/En/Accessibility/AT-APIs/Implementation_Details" title="en/Accessibility/AT-APIs/Implementation_Details">implementation details page</a> to see how Gecko supports interesting AT API. There you will find information how AT API interfaces, roles, states and etc are mapped into Gecko accessibility API and visa versa.</p> - -<h2 id="Keyboard_User_Interface_and_API" name="Keyboard_User_Interface_and_API">Keyboard User Interface and API</h2> - -<p>Fortunately, Gecko uses the standard keyboard API's for each supported platform. The Mozilla keyboard shortcuts for content are similar to what is used in other browsers. Here is a list of <a class="external" href="http://www.mozilla.org/support/firefox/keyboard">Firefox keyboard shortcuts</a>.</p> - -<h2 id="Test_Tools" name="Test_Tools">Test Tools</h2> - -<p>Here you will find a list of tools to test accessibility Gecko-based applications.</p> - -<ul> - <li>MSAA - <ul> - <li><a class="external" href="http://www.microsoft.com/downloads/details.aspx?FamilyID=4179742F-1F3D-4115-A8BA-2F7A6022B533&displaylang=en">MSAA SDK tools</a> - version 1.3 is recommended instead of 2.0 because it includes source code for the tools</li> - </ul> - </li> - <li>IAccessible2 - <ul> - <li><a class="external" href="http://www.eclipse.org/actf/downloads/">Accessibility Probe</a> -- includes MSAA support as well</li> - </ul> - </li> - <li>ATK/AT-SPI - <ul> - <li><a class="external" href="http://live.gnome.org/Accerciser">Accerciser</a> - interactive Python accessibility explorer for the GNOME desktop</li> - </ul> - </li> - <li>Gecko - <ul> - <li><a class="external" href="http://www.mozilla.org/projects/inspector/">DOM Inspector</a> has an ability to test Gecko accessibility layer, supports base features.</li> - <li>Firebug</li> - </ul> - </li> -</ul> - -<h2 id="Screen_Readers" name="Screen_Readers">Screen Readers</h2> - -<p>Here's a list of screen readers we are oriented to in the first place.</p> - -<ul> - <li>Windows platform - <ul> - <li><a class="external" href="http://www.freedomscientific.com/fs_products/software_jaws.asp">JAWS</a></li> - <li><a class="external" href="http://www.gwmicro.com/">Windows Eyes</a></li> - <li><a class="external" href="http://www.nvda-project.org/">NVDA</a></li> - </ul> - </li> - <li>Linux/Unix platform - <ul> - <li><a class="external" href="http://live.gnome.org/Orca">Orca</a></li> - </ul> - </li> - <li>OS X platform - <ul> - <li><a class="external" href="http://www.apple.com/accessibility/voiceover/">VoiceOver</a></li> - </ul> - </li> -</ul> - -<h2 id="Contacts" name="Contacts">Contacts</h2> - -<p>Please discuss accessibility issues on the <a class="external" href="http://groups.google.com/group/mozilla.dev.accessibility/topics">Mozilla Accessibility groups</a> or on the <a class="link-irc" href="irc://irc.mozilla.org/accessibility">Mozilla Accessibility IRC channel</a>.</p> diff --git a/files/ru/web/api/devicestorage/index.html b/files/ru/web/api/devicestorage/index.html deleted file mode 100644 index 00c3b20192..0000000000 --- a/files/ru/web/api/devicestorage/index.html +++ /dev/null @@ -1,87 +0,0 @@ ---- -title: DeviceStorage -slug: Web/API/DeviceStorage -tags: - - API - - Device Storage - - WebAPI -translation_of: Archive/B2G_OS/API/DeviceStorage ---- -<p>{{ ApiRef() }}</p> -<p>{{ non-standard_header() }}</p> -<p>{{ B2GOnlyHeader2('certified') }}</p> -<h2 id="Введение">Введение</h2> -<p><code>DeviceStorage</code> — интерфейс, используемый для доступа к файлам в особом хранилище (или <em>области хранения</em>), доступном на устройстве. Это хранилище, по сути, является файловой системой — хотя оно на самом деле скрывает нижележащую файловую системы.</p> -<p><span style="line-height: 1.5;">Чтобы получить доступ к хранилищу, необходимо использовать метод {{domxref("window.navigator.getDeviceStorage()","navigator.getDeviceStorage()")}} , возвращающую объекты </span><code style="font-style: normal; line-height: 1.5;">DeviceStorage</code><span style="line-height: 1.5;">. Затем вы сможете использовать методы и свойства этих объектов, чтобы получить доступ к содержимому хранилища.</span></p> -<h2 id="Свойства">Свойства</h2> -<dl> - <dt> - {{domxref("DeviceStorage.storageName")}} {{readonlyinline}}</dt> - <dd> - Строка, представляющая имя области хранения. Та же, что используется при вызове {{domxref("window.navigator.getDeviceStorage()","getDeviceStorage")}} чтобы получить объект <code>DeviceStorage</code>.</dd> - <dt> - {{domxref("DeviceStorage.default")}} {{readonlyinline}}</dt> - <dd> - Логическое значение, указывающее, назначено ли это хранилище по умолчанию для хранения новых файлов <span style="line-height: 1.5;">(</span><code style="font-style: normal; line-height: 1.5;">true</code><span style="line-height: 1.5;">) или нет (</span><code style="font-style: normal; line-height: 1.5;">false</code><span style="line-height: 1.5;">).</span></dd> -</dl> -<h3 id="Обработчики_событий">Обработчики событий</h3> -<dl> - <dt> - {{domxref("DeviceStorage.onchange")}}</dt> - <dd> - Обрабатывает событие {{event("change")}}. Это событие происходит каждый раз, когда содержимое хранилища меняется.</dd> -</dl> -<h2 id="Функции">Функции</h2> -<dl> - <dt> - {{ domxref("DeviceStorage.add()") }}</dt> - <dd> - Создает файл в области хранения. Имя файла генерируется автоматически.</dd> - <dt> - {{ domxref("DeviceStorage.addNamed()") }}</dt> - <dd> - Создает файл в области хранения. Имя файла задается при вызове функции.</dd> - <dt> - {{ domxref("DeviceStorage.available()") }}</dt> - <dd> - Возвращает <code><em>available</em></code> если хранилище доступно для использования и <code><em>shared</em></code> если устройство подключено к ПК.</dd> - <dt> - {{ domxref("DeviceStorage.delete()") }}</dt> - <dd> - Удаляет файл из области хранения.</dd> - <dt> - {{ domxref("DeviceStorage.enumerate()") }}</dt> - <dd> - Возвращает список файлов, доступных в области хранения. Полученные файлы доступны только для чтения.</dd> - <dt> - {{ domxref("DeviceStorage.enumerateEditable()") }}</dt> - <dd> - Возвращает список файлов, доступных в области хранения.</dd> - <dt> - {{ domxref("DeviceStorage.freeSpace()") }}</dt> - <dd> - Возвращает количество свободного места, доступного в области хранения.</dd> - <dt> - {{ domxref("DeviceStorage.get()") }}</dt> - <dd> - Возвращает файлы, доступные только для чтения.</dd> - <dt> - {{ domxref("DeviceStorage.getEditable()") }}</dt> - <dd> - Возвращает файлы, доступные для редактирования.</dd> - <dt> - {{ domxref("DeviceStorage.usedSpace()") }}</dt> - <dd> - Возвращает количество занятого места в области хранения.</dd> -</dl> -<h2 id="Обработчики_событий_2">Обработчики событий</h2> -<p>Функции, наследованные от {{domxref("EventTarget")}} интерфейса:</p> -<p>{{page("/en-US/docs/Web/API/EventTarget","Methods")}}</p> -<h2 id="Specification" name="Specification">Спецификация</h2> -<p>Не является частью какой-либо спецификации.</p> -<h2 id="Смотрите_также">Смотрите также</h2> -<ul> - <li>{{domxref("window.navigator.getDeviceStorage()","navigator.getDeviceStorage()")}}</li> - <li><a href="/en-US/docs/WebAPI/Device_Storage" title="/en-US/docs/WebAPI/Device_Storage">Device Storage API</a></li> - <li><a href="/en-US/docs/WebAPI/FileHandle" title="/en-US/docs/WebAPI/FileHandle">FileHandler API</a></li> -</ul> diff --git a/files/ru/web/api/fmradio/index.html b/files/ru/web/api/fmradio/index.html deleted file mode 100644 index 0d889f3956..0000000000 --- a/files/ru/web/api/fmradio/index.html +++ /dev/null @@ -1,94 +0,0 @@ ---- -title: FMRadio -slug: Web/API/FMRadio -translation_of: Archive/B2G_OS/API/FMRadio ---- -<p>{{ APIRef("FMRadio API")}}{{ non-standard_header() }}</p> - -<p>{{ B2GOnlyHeader2('installed') }}</p> - -<h2 id="Summary">Summary</h2> - -<p>WebFM API предоставляет доступ к модулю FM радио устройства. Этот интерфейс поможет Вам включить или выключить FM радио и настроить его на нужную станцию. Это достижимо с помощью параметра {{domxref("window.navigator.mozFMRadio","navigator.mozFMRadio")}}.</p> - -<h2 id="Обзор_API">Обзор API</h2> - -<pre>interface FMRadio : EventTarget { - readonly attribute boolean enabled; - readonly attribute boolean antennaAvailable; - readonly attribute double frequency; - readonly attribute double frequencyUpperBound; - readonly attribute double frequencyLowerBound; - readonly attribute double channelWidth; - - attribute Function onantennaavailablechange; - attribute Function onfrequencychange; - attribute Function onenabled; - attribute Function ondisabled; - - DOMRequest enable(double frequency); - DOMRequest disable(); - DOMRequest setFrequency(double frequency); - DOMRequest seekUp(); - DOMRequest seekDown(); - DOMRequest cancelSeek(); -}</pre> - -<h2 id="Параметры">Параметры</h2> - -<dl> - <dt>{{domxref("FMRadio.enabled")}}</dt> - <dd>Показывает играет ли радио</dd> - <dt>{{domxref("FMRadio.antennaAvailable")}}</dt> - <dd>Показывает доступна ли антенна</dd> - <dt>{{domxref("FMRadio.frequency")}}</dt> - <dd>Текущая частота радио.</dd> - <dt>{{domxref("FMRadio.frequencyUpperBound")}}</dt> - <dd>Максимальная частота по которой можно найти радиостанцию</dd> - <dt>{{domxref("FMRadio.frequencyLowerBound")}}</dt> - <dd>Минимальная частота по которой можно найти радиостанцию</dd> - <dt>{{domxref("FMRadio.channelWidth")}}</dt> - <dd>Частота текущей радиостанции, в МГц.</dd> -</dl> - -<h3 id="Event_handlers">Event handlers</h3> - -<dl> - <dt>{{domxref("FMRadio.onenabled")}}</dt> - <dd>A handler for the {{event("enabled")}} event; It is triggered when the radio has been turned on</dd> - <dt>{{domxref("FMRadio.ondisabled")}}</dt> - <dd>A handler for the {{event("disabled")}} event; It is triggered when the radio has been turned off</dd> - <dt>{{domxref("FMRadio.onantennaavailablechange")}}</dt> - <dd>A handler for the {{event("antennaavailablechange")}} event; It is triggered when an antenna is plugged or unplugged</dd> - <dt>{{domxref("FMRadio.onfrequencychange")}}</dt> - <dd>A handler for the {{event("frequencychange")}} event; It is triggered whenever the radio frequency is changed</dd> -</dl> - -<h2 id="Методы">Методы</h2> - -<dl> - <dt>{{domxref("FMRadio.enable()")}}</dt> - <dd>Turns on the radio on the given frequency. This function throws if called with no argument. Returns a {{domxref("DOMRequest")}} for the success or error of the operation.</dd> - <dt>{{domxref("FMRadio.disable()")}}</dt> - <dd>Turns the radio off. Returns a {{domxref("DOMRequest")}} which success indicates that the radio has properly been disabled</dd> - <dt>{{domxref("FMRadio.setFrequency()")}}</dt> - <dd>Asynchronously changes the radio frequency. The value has to be between <code>frequencyLowerBound</code> and <code>frequencyUpperBound</code>. Trying to set outside the bounds results in an error.</dd> - <dd>Returns a {{domxref("DOMRequest")}} which success indicates the frequency has properly been changed.</dd> - <dt>{{domxref("FMRadio.seekUp()")}}</dt> - <dd>Asks the radio to find a new frequency (usually greater than the current one). If one is successfully found, a <code>frequencychange</code> event is fired. Returns a {{domxref("DOMRequest")}} which success indicates that the search has started. The search circles back to lower frequencies when the highest frequency has been reached.</dd> - <dt>{{domxref("FMRadio.seekDown()")}}</dt> - <dd>Same as above, but searching in frequencies lower than the current one. The search cirlces back to higher frequencies when the lowest frequency has been reached.</dd> - <dt>{{domxref("FMRadio.cancelSeek()")}}</dt> - <dd>Cancels the radio seek if one was happening. Returns a {{domxref("DOMRequest")}} which success indicates that the frequency search has been cancelled.</dd> -</dl> - -<h2 id="Спецификация">Спецификация</h2> - -<p>Ещё нет спецификаций.</p> - -<h2 id="See_also">See also</h2> - -<ul> - <li><a href="/ru/docs/WebAPI/WebFM_API" title="/ru/docs/WebAPI/WebFM_API">WebFM API</a></li> - <li><a href="https://github.com/mozilla-b2g/gaia/tree/master/apps/fm" title="https://github.com/mozilla-b2g/gaia/tree/master/apps/fm">Gaia radio app</a></li> -</ul> diff --git a/files/ru/web/api/identitymanager/index.html b/files/ru/web/api/identitymanager/index.html deleted file mode 100644 index 01b4a96364..0000000000 --- a/files/ru/web/api/identitymanager/index.html +++ /dev/null @@ -1,47 +0,0 @@ ---- -title: IdentityManager -slug: Web/API/IdentityManager -tags: - - API - - Persona - - Reference -translation_of: Archive/IdentityManager ---- -<p>{{APIRef("Persona")}}{{non-standard_header}}</p> - -<p>The <strong><code>IdentityManager</code></strong> of the <a href="/en-US/docs/Persona" title="BrowserID">BrowserID protocol</a> exposes the BrowserID API, via {{domxref("navigator.id")}}. This API has gone through several significant revisions. Each generation is listed separately below.</p> - -<h2 id="ObserverMethods" name="ObserverMethods">The "Observer" API (Current)</h2> - -<p>The Observer API introduces much-requested features, such as an improved post-verification experience for first-time users, automatic persistent logins, and easier integration with native applications.</p> - -<dl> - <dt>{{ domxref("IdentityManager.watch()")}}</dt> - <dd>Registers callbacks to be invoked when a user logs into or out of a website.</dd> - <dt>{{ domxref("IdentityManager.request()")}}</dt> - <dd>Requests a signed identity assertion from the user.</dd> - <dt>{{ domxref("IdentityManager.logout()")}}</dt> - <dd>Logs the user out of a website and prevents the <code>onlogin</code> action from automatically firing on their next visit.</dd> -</dl> - -<div class="note"> -<p>Users with third-party cookies disabled may experience problems logging in using the Observer API as detailed in <a href="https://github.com/mozilla/browserid/issues/2999" title="https://github.com/mozilla/browserid/issues/2999">issue 2999</a>.</p> -</div> - -<h2 id="CallbackMethods" name="CallbackMethods">The "Callback" API (Current)</h2> - -<p>The Callback API was introduced in November 2011. It improved upon the initial API by allowing options to be passed to <code>navigator.id.get()</code> and offering experimental support for BrowserID-managed persistent sessions.</p> - -<dl> - <dt>{{ domxref("IdentityManager.get()")}}</dt> - <dd>Gets the user's BrowserID in a signed assertion.</dd> -</dl> - -<h2 id="VerifiedEmailMethods" name="VerifiedEmailMethods">The "VerifiedEmail" API (Deprecated)</h2> - -<p>The VerifiedEmail API was BrowserID's first API. It was deprecated at the end of 2011.</p> - -<dl> - <dt>{{ domxref("IdentityManager.getVerifiedEmail()")}} {{ deprecated_inline() }}</dt> - <dd>Gets the user's BrowserID in a signed assertion. This method is deprecated; {{ domxref("navigator.id.get()")}} is backwards compatible and can be used instead.</dd> -</dl> diff --git a/files/ru/web/api/identitymanager/request/index.html b/files/ru/web/api/identitymanager/request/index.html deleted file mode 100644 index 2923f0a359..0000000000 --- a/files/ru/web/api/identitymanager/request/index.html +++ /dev/null @@ -1,88 +0,0 @@ ---- -title: navigator.id.request -slug: Web/API/IdentityManager/request -tags: - - API - - BrowserID - - DOM - - Persona - - Безопасность - - Использование - - Настройка - - Справка - - запрос - - метод - - не стандартный - - справка DOM - - справка Gecko DOM -translation_of: Archive/IdentityManager/request ---- -<div>{{ ApiRef }}</div> - -<h2 id="Summary" name="Summary">Кратко</h2> - -<p>Эта функция позволяет использовать <a href="/en-US/docs/Persona" title="BrowserID">Persona</a> для аутентификации пользователей на вебсайте. Она должна вызываться внутри обработки щелчка мыши, к примеру, вы должны вызвать её, когда пользователь щелкнул по кнопке «Войти с помощью Persona».</p> - -<p>Когда функция <code>navigator.id.request()</code> вызвана она попросит пользователя выбрать адрес электронной почты, который он желает использовать для входа, а также попросит пройти процедуру аутентификации у поставщика услуг (электронной почты, <em>прим. переводчика</em>), если срок сертификата пользователя истёк. После этого, она создаёт подписанную <strong>заявку</strong> (assertion), содержащую адрес эл.почты пользователя и передаёт эту заявку функции <code>onlogin</code>, зарегистрированной с помощью {{domxref("navigator.id.watch()")}}.</p> - -<p>Эта функция должна использоваться <strong>обязательно</strong> в связке с {{domxref("navigator.id.watch()")}}<code>.</code></p> - -<h2 id="Syntax" name="Syntax">Синтаксис</h2> - -<pre class="syntaxbox">navigator.id.request(); -navigator.id.request({siteName: 'Название сайта', siteLogo: '/logo.png'}); -navigator.id.request({termsOfService: '/tos.html', privacyPolicy: '/privacy.html'}); -</pre> - -<h3 id="Parameters" name="Parameters">Параметры</h3> - -<dl> - <dt><code>backgroundColor</code> {{ optional_inline() }}</dt> - <dd>Шестнадцатеричный код цвета для фона диалогового окна. Формат: <code>"#rgb"</code> или <code>"#rrggbb"</code>.</dd> - <dt><code>oncancel</code> {{ optional_inline() }}</dt> - <dd>Функция, которую следует вызвать в случае отказа пользователя предоставить свой идентификатор сайту.</dd> - <dt><code>privacyPolicy</code> {{ optional_inline() }}</dt> - <dd><em>Должен передаваться по SSL. Так же должен быть передан параметр <code>termsOfService </code>(Условия Предоставления Услуг).</em></dd> - <dd>Абсолютный путь или URL до описания политики конфиденциальности веб-сайта. Если этот параметр предоставлен, тогда так же должен быть предоставлен параметр <code>termsOfService</code>. Когда оба эти параметра (<code>termsOfService</code> и <code>privacyPolicy</code>) переданы диалоговое окно входа будет содержать предупреждение для пользователя: "продолжив вход, вы соглашаетесь с политиками использования и конфиденциальности сайта". Так же в диалоговом окне будут размещены ссылки на описания этих политик.</dd> - <dt><code>returnTo</code> {{ optional_inline() }}</dt> - <dd>Абсолютный путь на который будут отправлены новые пользователи, закончившие процедуру проверки эл.почты в первый раз. Путь должен начинаться с '<code>/</code>'. Этот параметр действует только на тех пользователей, которые проходят сертификацию через запсную Службу Предоставления Идентификаторов от Mozilla <em>(Mozilla's Identity Provider, - прим.)</em>. Предоставляемое значение должно указывать реально существующий путь, который может быть использован так же в качестве локации окна – window.location.</dd> - <dt><code>siteLogo</code> {{ optional_inline() }}</dt> - <dd><em>Должен передаваться по SSL.</em></dd> - <dd>Абсолютный путь до изображения, которое будет отображаться в диалоговом окне входа. Путь должен начинаться с '<code>/</code>'. Изображения, превышающие размер 100x100 пикселей будут маштабированы до этого размера.</dd> - <dt><code>siteName</code> {{ optional_inline() }}</dt> - <dd>Название вашего сайта, которое будет отображаться в диалоговом окне входа в формате простого текста <em>(plain text - прим.)</em>. Допустимы символы Юникода и пробельные символы, но не разметка.</dd> - <dt><code>termsOfService</code> {{ optional_inline() }}</dt> - <dd><em>Должен передаваться по SSL. Так же должен быть предоставлен параметр <code>privacyPolicy</code></em> <em>(Политика Конфиденциальности).</em></dd> - <dd>Абсолютный путь или URL адрес до описания условий предоставления услуг веб-сайта. Если этот параметр указан, тогда так же должен быть указан параметр <code>privacyPolicy</code>. Когда оба эти параметра (<code>termsOfService</code> и <code>privacyPolicy</code>) переданы диалоговое окно входа будет содержать предупреждение для пользователя: "продолжив вход, вы соглашаетесь с политиками использования и конфиденциальности сайта". Так же в диалоговом окне будут размещены ссылки на описания этих политик.</dd> -</dl> - -<h2 id="Example" name="Example">Пример</h2> - -<pre class="brush:js;">var signinLink = document.getElementById('signin'); - -if (signinLink) { - signinLink.onclick = function(evt) { - // Запрашивает подписанную идентификационную заявку от пользователя. - navigator.id.request({ - siteName: 'Мой Сайт', - siteLogo: '/logo.png', - termsOfService: '/tos.html', - privacyPolicy: '/privacy.html', - returnTo: '/welcome.html', - oncancel: function() { alert('Пользователь отказался идентифицироваться.'); } - }); - }; -}</pre> - -<h2 id="Specification" name="Specification">Технические описания (Спецификации)</h2> - -<p>Не включена ни в одно техническое описание.</p> - -<h2 id="See_also" name="See_also">Также смотрите</h2> - -<ul> - <li><a href="/ru/Persona" title="BrowserID">BrowserID</a></li> - <li>{{domxref("navigator.id")}}</li> - <li>{{domxref("navigator.id.watch()")}}</li> - <li>{{domxref("navigator.id.logout()")}}</li> -</ul> diff --git a/files/ru/web/api/navigator/getdatastores/index.html b/files/ru/web/api/navigator/getdatastores/index.html deleted file mode 100644 index 5c3b1d7fab..0000000000 --- a/files/ru/web/api/navigator/getdatastores/index.html +++ /dev/null @@ -1,58 +0,0 @@ ---- -title: Navigator.getDataStores() -slug: Web/API/Navigator/getDataStores -translation_of: Archive/B2G_OS/API/Navigator/getDataStores ---- -<div>{{APIRef("Data Store API")}} {{ non-standard_header }} {{ B2GOnlyHeader2('certified') }}</div> - -<h2 id="Описание">Описание</h2> - -<p>Метод <strong><code>navigator.getDataStores()</code></strong> предоставляющий доступ к списку <a href="/en-US/docs/Web/API/Data_Store_API">Data Store API </a>хранилищ данных доступных на устройстве.</p> - -<h2 id="Syntax" name="Syntax">Синтаксис</h2> - -<pre class="syntaxbox">navigator.getDataStores('contacts').then(function(stores) { - // сделать что-либо с массивом хранилищ данных в хранилище. -});</pre> - -<h3 id="Параметры">Параметры</h3> - -<dl> - <dt><code>storeName</code></dt> - <dd>Имя хранилища данных которое вы хотите вернуть. Возвращается массив, потому что <span id="result_box" lang="ru"><span>может</span> <span class="hps">быть</span> <span class="hps">несколько</span> <span class="hps">хранилищ данных</span> <span class="hps">с таким же именем</span><span>.</span></span></dd> -</dl> - -<h3 id="Возврат">Возврат</h3> - -<p>Объект {{jsxref("Promise")}} который будет связан с массивом объекта {{domxref("DataStore") }}.</p> - -<h2 id="Пример">Пример</h2> - -<pre class="brush: js language-js"><code class="language-js"><span class="punctuation token">navigator.getDataStores('contacts').then(function(stores) { - stores[0].getLength().then(function(storeLength) { - if(storeLength == 0) { - for(i = 0; i < contactsInit.length; i++) { - addContact(stores[0],contactsInit[i]); - }; - } else { - var cursor = stores[0].sync(); - runNextTask(cursor); - } - }); -});</span></code></pre> - -<h2 id="Спецификации">Спецификации</h2> - -<p>{{page("/en-US/docs/Web/API/Data_Store_API","Specifications")}}</p> - -<h2 id="Совместимость_с_браузерами">Совместимость с браузерами</h2> - -<p>{{page("/en-US/docs/Web/API/Data_Store_API","Browser_compatibility")}}</p> - -<h2 id="Смотрите_также">Смотрите также</h2> - -<ul> - <li><a href="https://developer.mozilla.org/en-US/docs/Web/API/Data_Store_API/Using_the_Data_Store_API">Using the Data Store API</a></li> - <li><a class="external external-icon" href="https://github.com/mdn/data-store-contacts-editor">Data Store Contacts Editor example</a></li> - <li><a class="external external-icon" href="https://github.com/mdn/data-store-contacts-viewer">Data Store Contacts Viewer example</a></li> -</ul> diff --git a/files/ru/web/api/navigator/id/index.html b/files/ru/web/api/navigator/id/index.html deleted file mode 100644 index ba98e02cf6..0000000000 --- a/files/ru/web/api/navigator/id/index.html +++ /dev/null @@ -1,20 +0,0 @@ ---- -title: Navigator.id -slug: Web/API/Navigator/id -tags: - - DOM - - Reference - - Référence(2) -translation_of: Archive/Navigator-id ---- -<div>{{ ApiRef("Persona") }}</div> - -<h2 id="Summary" name="Summary">Summary</h2> - -<p>The <a href="/en-US/docs/Persona" title="BrowserID">BrowserID protocol</a> defines a new <code>id</code> property on the {{ domxref ("window.navigator")}} object, through which it exposes the BrowserID API, that is the {{domxref("IdentityManager")}} intreface. This API has gone through several significant revisions. Each generation is listed separately below.</p> - -<h2 id="Syntax">Syntax</h2> - -<pre>var id = navigator.id</pre> - -<p> </p> diff --git a/files/ru/web/api/navigator/mozaudiochannelmanager/index.html b/files/ru/web/api/navigator/mozaudiochannelmanager/index.html deleted file mode 100644 index e8a42e9207..0000000000 --- a/files/ru/web/api/navigator/mozaudiochannelmanager/index.html +++ /dev/null @@ -1,32 +0,0 @@ ---- -title: Navigator.mozAudioChannelManager -slug: Web/API/Navigator/mozAudioChannelManager -translation_of: Archive/B2G_OS/API/Navigator/mozAudioChannelManager ---- -<p>{{APIRef("Firefox OS")}}{{Non-standard_header}}</p> - -<p>Объект <code>navigator.mozAudioChannelManager</code> предоставляющий доступ к интерфейсу {{domxref("mozAudioChannelManager")}} который используется для управления аудио каналами вашего устроства Firefox OS включая настройки эффекта громкости канала, когда <span id="result_box" lang="ru"><span class="hps">кнопки регулировки громкости</span> <span class="hps">нажимаются</span> <span class="hps">внутри</span> <span class="hps">конкретного</span> <span class="hps">приложения.</span></span></p> - -<h2 id="Syntax" name="Syntax">Синтаксис</h2> - -<pre class="syntaxbox">var mgr = window.navigator.mozAudioChannelManager;</pre> - -<h3 id="Возвращаемое_значение">Возвращаемое значение</h3> - -<p>A {{domxref("mozAudioChannelManager")}} object.</p> - -<h2 id="Спецификация">Спецификация</h2> - -<p>{{page("/en-US/docs/Web/API/mozAudioChannelManager","Specifications")}}</p> - -<h2 id="Совместимость_с_браузерами">Совместимость с браузерами</h2> - -<p>{{page("/en-US/docs/Web/API/mozAudioChannelManager","Browser_compatibility")}}</p> - -<h2 id="Смотрите_также">Смотрите также</h2> - -<ul> - <li>{{domxref("mozAudioChannelManager")}}</li> - <li><a href="/en-US/Apps/Build/App_permissions">Приложения доступные в Firefox OS</a></li> - <li><a href="/en-US/docs/Web/API/AudioChannels_API/Using_the_AudioChannels_API">Использование AudioChannels API</a></li> -</ul> diff --git a/files/ru/web/api/navigator/mozcamera/index.html b/files/ru/web/api/navigator/mozcamera/index.html deleted file mode 100644 index 620fba2e0e..0000000000 --- a/files/ru/web/api/navigator/mozcamera/index.html +++ /dev/null @@ -1,43 +0,0 @@ ---- -title: Navigator.mozCamera -slug: Web/API/Navigator/mozCamera -translation_of: Archive/B2G_OS/API/Navigator/mozCamera ---- -<p>{{APIRef("Firefox OS")}}</p> - -<p>{{ non-standard_header() }}</p> - -<p>{{B2GOnlyHeader2('privileged')}}</p> - -<h2 id="Summary" name="Summary">Резюме</h2> - -<p>Возвращает объект {{ domxref("CameraManager") }} который вы можите использовать для доступа к камере доступной на устройстве пользователя.</p> - -<h2 id="Syntax" name="Syntax">Синтаксис</h2> - -<pre class="eval">var camera = window.navigator.mozCamera; -</pre> - -<h2 id="Value" name="Value">Значение</h2> - -<p><code>navigator.mozCamera</code> это объект {{domxref("CameraManager")}} который вы можете использовать для доступа к камере доступной на устройстве.</p> - -<h2 id="Specification" name="Specification">Спецификация</h2> - -<p>Не является еще частю какой-либо спецификации;<span id="result_box" lang="ru"><span class="hps"> Оно</span><span>, вероятно, будет</span> <span class="hps">заменен</span>о на <span class="hps">WebRTC</span><span>, когда</span> <span class="hps">оно получит</span> <span class="hps">более</span> <span class="hps">широкую поддержку</span> <span class="hps">на мобильных устройствах</span><span>.</span></span></p> - -<h2 id="Права_доступа">Права доступа</h2> - -<p>До Firefox OS 1.4, API камеры было сертифицированным API, недоступным для сторонних приложений. С Firefox OS 2.0 и далее, Уровень доступа был понижен до привелигированного, так что теперь доступно для разработчиков сторонних приложений.</p> - -<pre class="brush: json">"permissions": { - "camera": { - "description": "Required for accessing cameras on the device." - } -}</pre> - -<h2 id="Смотрите_также">Смотрите также</h2> - -<ul> - <li><a href="/en-US/docs/WebRTC" title="/en-US/docs/WebRTC">WebRTC API</a></li> -</ul> diff --git a/files/ru/web/api/navigator/mozl10n/index.html b/files/ru/web/api/navigator/mozl10n/index.html deleted file mode 100644 index 590d3238cd..0000000000 --- a/files/ru/web/api/navigator/mozl10n/index.html +++ /dev/null @@ -1,38 +0,0 @@ ---- -title: Navigator.mozL10n -slug: Web/API/Navigator/mozL10n -tags: - - API - - Firefox OS - - Localization - - Reference - - Référence(2) - - Локализация - - Справка - - Справка(2) -translation_of: Archive/B2G_OS/API/Navigator/mozL10n ---- -<p>{{APIRef("Firefox OS")}}{{ non-standard_header() }}</p> - -<p><span class="seoSummary"><code>navigator.mozL10n</code> возвращает объект {{ domxref("L10n") }}, который вы можете использовать для доступа к ресурсам локализации и реагировать на события локализации.</span></p> - -<h2 id="Синтаксис" name="Синтаксис">Синтаксис</h2> - -<pre class="eval">var l10n = navigator.mozL10n; -</pre> - -<h2 id="Значение" name="Значение">Значение</h2> - -<p><code>navigator.mozL10n</code> возвращает объект{{domxref("L10n")}}.</p> - -<h2 id="Спецификация" name="Спецификация">Спецификация</h2> - -<p>Не имеет спецификации. Заметим, что в будущем этот API будет заменен на <a href="ru/docs/L20n">L20n</a>.</p> - -<h2 id="Смотри_также">Смотри также</h2> - -<ul> - <li>{{domxref("L10n")}}</li> - <li><a href="/en-US/Apps/Build/Localization">Локализация приложений</a></li> - <li><a href="/en-US/docs/L20n">L20n</a></li> -</ul> diff --git a/files/ru/web/api/navigator/moznfc/index.html b/files/ru/web/api/navigator/moznfc/index.html deleted file mode 100644 index 8e21ea296b..0000000000 --- a/files/ru/web/api/navigator/moznfc/index.html +++ /dev/null @@ -1,43 +0,0 @@ ---- -title: Navigator.mozNfc -slug: Web/API/Navigator/mozNfc -translation_of: Archive/B2G_OS/API/Navigator/mozNfc ---- -<p>{{APIRef("Firefox OS")}}{{ non-standard_header() }}</p> - -<h2 id="Описание">Описание</h2> - -<p>Свойство <code>mozNfc</code> возвращает объект {{ domxref("MozNFC") }} который может быть использован для доступа к функциональности Firefox OS's NFC: Near Field Communication (NFC) это радио технология малой дальности, используемая для обмена данными и тегами между мобильными устройствами прижатыми друг к другу или находящимися близко друг к другу.</p> - -<p>Для получения детальной иформации о NFC, прочтите <a href="/en-US/docs/Web/API/NFC_API/Using_the_NFC_API">Использование NFC API</a> и изучите <a href="/en-US/docs/Web/API/NFC_API">NFC справку</a>.</p> - -<h2 id="Syntax" name="Syntax">Синтаксис</h2> - -<pre class="syntaxbox">var nfc = navigator.mozNfc; -</pre> - -<h3 id="Возвращаемое_значение">Возвращаемое значение</h3> - -<p><code>navigator.mozNfc</code> возвращает объект {{ domxref("MozNFC") }}.</p> - -<h2 id="Совместимость_с_браузерами">Совместимость с браузерами</h2> - -<p>{{page("/en-US/docs/Web/API/NFC_API","Browser_compatibility")}}</p> - -<h2 id="Спецификация">Спецификация</h2> - -<p>{{page("/en-US/docs/Web/API/NFC_API","Specification")}}</p> - -<h2 id="Смотрите_также">Смотрите также</h2> - -<ul> - <li><a href="https://developer.mozilla.org/en-US/docs/Web/API/NFC_API/Using_the_NFC_API">Using the NFC API</a></li> - <li><a href="https://developer.mozilla.org/en-US/docs/Web/API/NFC_API/Using_the_NFC_emulator">Using the NFC emulator</a></li> - <li><a href="/en-US/docs/Web/API/NFC_API">NFC reference landing page</a></li> - <li>Related W3C APIs: - <ul> - <li><a href="http://www.w3.org/TR/2014/WD-nfc-20140114/#idl-def-NFCPeer">NFCPeer spec </a></li> - <li><a href="http://www.w3.org/TR/2014/WD-nfc-20140114/#nfctag-interface">NFCTag spec</a></li> - </ul> - </li> -</ul> diff --git a/files/ru/web/api/webfm_api/index.html b/files/ru/web/api/webfm_api/index.html deleted file mode 100644 index 11727674af..0000000000 --- a/files/ru/web/api/webfm_api/index.html +++ /dev/null @@ -1,156 +0,0 @@ ---- -title: WebFM API -slug: Web/API/WebFM_API -tags: - - WebFMAPI -translation_of: Archive/B2G_OS/API/WebFM_API ---- -<p>{{ non-standard_header() }}</p> - -<p>{{ B2GOnlyHeader2('installed') }}</p> - -<h2 id="Summary">Summary</h2> - -<p>The WebFM API provides access to the device FM radio. It allows turning the radio on/off and switching among radio stations. This API is available through the {{domxref("window.navigator.mozFMRadio","navigator.mozFMRadio")}} property which is a {{domxref("FMRadio")}} object.</p> - -<h2 id="Включение_и_выключение_радио">Включение и выключение радио</h2> - -<p>Для того чтобы включить радио используйте метод {{domxref("FMRadio.enable()")}}, для выключения {{domxref("FMRadio.disable()")}}.</p> - -<p>Перед включением радио следует проверить доступность антены, так как без нее встроенный радиомодуль не в состоянии поймать какую либо станцию. Информация о доступности антенны находится в свойстве {{domxref("FMRadio.antennaAvailable")}}. Как правило, в мобильных устройствах роль антены выполняют наушники (проводная гарнитура). Каждый раз когда пользователь подсоединяет или отсоединяет проводную гарнитуру WebFM API вызывает событие {{event("antennaavailablechange")}}.</p> - -<p>To turn the radio on it's necessary to provide a frequency to listen. That frequency (in MHz) is a number pass to the {{domxref("FMRadio.enable()")}} method.</p> - -<pre class="brush: js">// Частота радиостанции в MHz -var frequency = 99.1; -var radio = navigator.mozFMRadio; - -if (radio.antennaAvailable) { - radio.enable(frequency); -} else { - alert("Вам необходимо подсоединить гарнитуру"); -} - -radio.addEventListener('antennaavailablechange', function () { - if (radio.antennaAvailable) { - radio.enable(frequency); - } else { - radio.disable(); - } -}) -</pre> - -<div class="note"> -<p><strong>Note:</strong> The audio is output through the <code>normal</code> audio channel available on the device.</p> -</div> - -<h2 id="Switching_among_frequency">Switching among frequency</h2> - -<p>Switching from on frequency to another can be done manually or automatically. In any case, the current radio frequency listened to by the built-in radio is always available with the {{domxref("FMRadio.frequency")}} property. That property is number representing the frequency in <a href="http://en.wikipedia.org/wiki/Hertz" title="http://en.wikipedia.org/wiki/Hertz">MHz</a>.</p> - -<h3 id="Manual_switch">Manual switch</h3> - -<p>The {{domxref("FMRadio.setFrequency()")}} method must be used to set a new frequency to listen. However, there are some constraints about the value that can be set. The method will return a {{domxref("DOMRequest")}} object to handle the success or error of the method call. The frequency must fulfill the following requirements:</p> - -<ul> - <li>The frequency must be in the range defined by {{domxref("FMRadio.frequencyLowerBound")}} and {{domxref("FMRadio.frequencyUpperBound")}}. If the frequency is out of range, it will result in an error.</li> - <li>The frequency must be stepped based on the value of {{domxref("FMRadio.channelWidth")}}. If it's not the case, the frequency will be rounded accordingly. For example, if 100MHz is a valid frequency and if {{domxref("FMRadio.channelWidth","channelWidth")}} has the value 0.2, trying to set a frequency of 100.15 will result in a frequency set to 100.2.</li> -</ul> - -<pre class="brush: js">var change = radio.setFrequency(frequency); - -change.onerror = function () { - var min = radio.frequencyLowerBound; - var max = radio.frequencyUpperBound; - console.warn('The frequency must be within the range [' + min + ',' + max + ']'); -} - -change.onsuccess = function () { - console.log('The frequency has been set to ' + radio.frequency); -} -</pre> - -<h3 id="Автоматический_поиск">Автоматический поиск</h3> - -<p>WebFM API предоставляет удобный способ автоматического поиска радиоканалов. Для восходящего поиска используйте метод {{domxref("FMRadio.seekUp()")}}, а для низходящего, метод {{domxref("FMRadio.seekDown()")}}.</p> - -<p>The WebFM API also provides a convinient way to seek radio channels automatically. To that end, we can use the {{domxref("FMRadio.seekUp()")}} (to find a radio channel on a higher frequency than the current one) and {{domxref("FMRadio.seekDown()")}} method. The former is used to find a radio channel with a higher frequency than the current one, and the latter for a radio channel with a lower frequency. Those methods return a {{domxref("DOMRequest")}} object to handle the success or error of each method call.</p> - -<p>Both methods will circle back to higher or lower frequency once they reach the {{domxref("FMRadio.frequencyLowerBound","frequencyLowerBound")}} or {{domxref("FMRadio.frequencyUpperBound","frequencyUpperBound")}} values. When they find a new radio channel, they change the current frequency and fire a {{event("frequencychange")}} event.</p> - -<p>It's not possible to seek twice at the same time (e.g. it's not possible to seek up and down at the same time), trying to do so, will result in an error. But if necessary it's possible to stop seeking by calling the {{domxref("FMRadio.cancelSeek()")}} method. This method will also return a {{domxref("DOMRequest")}} object.</p> - -<pre class="brush: js">var radio = navigator.mozFMRadio; -var seeking = false; -var UP = document.querySelector("button.up"); -var DOWN = document.querySelector("button.down"); - -// When the frequency change, the seek -// functions automatically stop to seek. -radio.onfrequencychange = function () { - seeking = false; -} - -function seek(direction) { - var cancel, search; - - // If the radio is already seeking - // we will cancel the current search. - if (seeking) { - var cancel = radio.cancelSeek(); - cancel.onsuccess = function () { - seeking = false; - - // Once the radio no longer seek, - // we can try to seek as expected - seek(direction); - } - - // Let's seek up - } else if (direction === 'up') { - // Just to be sure that the radio is turned on - if (!radio.enabled) { - radio.enable(radio.frequencyLowerBound); - } - search = radio.seekUp(); - - // Let's seek up - } else if (direction === 'down' { - // Just to be sure that the radio is turned on - if (!radio.enabled) { - radio.enable(radio.frequencyUpperBound); - } - search = radio.seekDown(); - } - - if (search) { - search.onsuccess = function () { - // Ok, we are seeking now. - seeking = true; - }; - search.onerror = function () { - // Something goes wrong... ok, let's try again. - seek(direction); - } - } -} - -UP.addEventListener('click', function () { - seek('up'); -}); - -DOWN.addEventListener('click', function () { - seek('down'); -}); -</pre> - -<h2 id="Specification">Specification</h2> - -<p>Not part of any specification.</p> - -<h2 id="See_also">See also</h2> - -<ul> - <li>{{domxref("FMRadio")}}</li> - <li><a href="https://github.com/mozilla-b2g/gaia/tree/master/apps/fm" title="https://github.com/mozilla-b2g/gaia/tree/master/apps/fm">The FM app on Gaïa</a></li> -</ul> diff --git a/files/ru/web/css/-moz-binding/index.html b/files/ru/web/css/-moz-binding/index.html deleted file mode 100644 index e9c8b29c44..0000000000 --- a/files/ru/web/css/-moz-binding/index.html +++ /dev/null @@ -1,115 +0,0 @@ ---- -title: '-moz-binding' -slug: Web/CSS/-moz-binding -translation_of: Archive/Web/CSS/-moz-binding ---- -<div>{{CSSRef}}{{Non-standard_Header}}{{Deprecated_Header(57)}}</div> - -<p>The <strong><code>-moz-binding</code></strong> CSS property is used by Mozilla-based applications to attach an <a href="/en-US/docs/XBL">XBL</a> binding to a DOM element.</p> - -<p>{{CSSInfo}}</p> - -<h2 id="Syntax">Syntax</h2> - -<pre class="brush:css">/* <url> value */ --moz-binding: url(http://www.example.org/xbl/htmlBindings.xml#checkbox); - -/* Global values */ --moz-binding: inherited; --moz-binding: initial; --moz-binding: unset; -</pre> - -<h3 id="Values">Values</h3> - -<dl> - <dt>{{CSSxRef("<url>")}}</dt> - <dd>The URL for the XBL binding (including the fragment identifier).</dd> - <dt><code>none</code></dt> - <dd>No XBL binding is applied to the element.</dd> -</dl> - -<h3 id="Formal_syntax">Formal syntax</h3> - -<pre class="syntaxbox">{{CSSSyntax}}</pre> - -<h2 id="Example">Example</h2> - -<pre class="brush: css">.exampleone { - -moz-binding: url(http://www.example.org/xbl/htmlBindings.xml#radiobutton); -}</pre> - -<h2 id="Specifications">Specifications</h2> - -<p>Not part of any specification.</p> - -<h2 id="Browser_compatibility">Browser compatibility</h2> - -<div class="bc-old"> -<p>{{CompatibilityTable}}</p> - -<div id="compat-desktop"> -<table class="compat-table"> - <thead> - <tr> - <th>Feature</th> - <th>Chrome</th> - <th>Edge</th> - <th>Firefox</th> - <th>IE</th> - <th>Opera</th> - <th>Safari</th> - </tr> - </thead> - <tbody> - <tr> - <td>Basic support {{Deprecated_Inline}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatVersionUnknown}} <sup><a href="compatNote_1">[1]</a></sup></td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - </tr> - </tbody> -</table> -</div> - -<div id="compat-mobile"> -<table class="compat-table"> - <thead> - <tr> - <th>Feature</th> - <th>WebView Android</th> - <th>Chrome Android</th> - <th>Edge Mobile</th> - <th>Firefox Android</th> - <th>Opera Android</th> - <th>Safari iOS</th> - <th>Samsung Internet Android</th> - </tr> - </thead> - <tbody> - <tr> - <td>Basic support {{Deprecated_Inline}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatUnknown}} <sup><a href="compatNote_1">[1]</a></sup></td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - </tr> - </tbody> -</table> -</div> - -<p id="compatNote_1">1. XBL is deprecated and being removed (See {{bug(1397874)}}).</p> -</div> - -<h2 id="See_also">See also</h2> - -<ul> - <li><a href="/en-US/docs/XBL/XBL_1.0_Reference/Binding_Attachment_and_Detachment">XBL Reference: Binding Attachment and Detachment</a></li> - <li><a href="/en-US/docs/Mozilla/Tech/XUL/Tutorial/Introduction_to_XBL">XUL Tutorial: Introduction to XBL</a></li> -</ul> diff --git a/files/ru/web/events/dommodaldialogclosed/index.html b/files/ru/web/events/dommodaldialogclosed/index.html deleted file mode 100644 index 67b480544b..0000000000 --- a/files/ru/web/events/dommodaldialogclosed/index.html +++ /dev/null @@ -1,63 +0,0 @@ ---- -title: DOMModalDialogClosed -slug: Web/Events/DOMModalDialogClosed -translation_of: Archive/Add-ons/Events/DOMModalDialogClosed ---- -<p>The <code>DOMModalDialogClosed</code> event is executed when a modal dialog has been closed.</p> - -<h2 id="General_info">General info</h2> - -<dl> - <dt style="float: left; text-align: right; width: 120px;">Specification</dt> - <dd style="margin: 0 0 0 120px;"><em>Addons specific</em></dd> - <dt style="float: left; text-align: right; width: 120px;">Interface</dt> - <dd style="margin: 0 0 0 120px;">Event</dd> - <dt style="float: left; text-align: right; width: 120px;">Bubbles</dt> - <dd style="margin: 0 0 0 120px;">Yes</dd> - <dt style="float: left; text-align: right; width: 120px;">Cancelable</dt> - <dd style="margin: 0 0 0 120px;">Yes</dd> - <dt style="float: left; text-align: right; width: 120px;">Target</dt> - <dd style="margin: 0 0 0 120px;">window, <a href="/en-US/docs/XUL/browser">browser</a></dd> - <dt style="float: left; text-align: right; width: 120px;">Default Action</dt> - <dd style="margin: 0 0 0 120px;">None</dd> -</dl> - -<h2 id="Properties">Properties</h2> - -<table class="standard-table"> - <thead> - <tr> - <th scope="col">Property</th> - <th scope="col">Type</th> - <th scope="col">Description</th> - </tr> - </thead> - <tbody> - <tr> - <td><code>target</code> {{readonlyInline}}</td> - <td>{{domxref("EventTarget")}}</td> - <td>The event target (the topmost target in the DOM tree).</td> - </tr> - <tr> - <td><code>type</code> {{readonlyInline}}</td> - <td>{{domxref("DOMString")}}</td> - <td>The type of event.</td> - </tr> - <tr> - <td><code>bubbles</code> {{readonlyInline}}</td> - <td>{{jsxref("Boolean")}}</td> - <td>Whether the event normally bubbles or not.</td> - </tr> - <tr> - <td><code>cancelable</code> {{readonlyInline}}</td> - <td>{{jsxref("Boolean")}}</td> - <td>Whether the event is cancellable or not.</td> - </tr> - </tbody> -</table> - -<h2 id="See_also">See also</h2> - -<ul> - <li><a href="/en-US/docs/Listening_to_events_in_Firefox_extensions" title="/en-US/docs/Listening_to_events_in_Firefox_extensions">Listening to events in Firefox extensions</a></li> -</ul> diff --git a/files/ru/web/events/domsubtreemodified/index.html b/files/ru/web/events/domsubtreemodified/index.html deleted file mode 100644 index dfd00fe94d..0000000000 --- a/files/ru/web/events/domsubtreemodified/index.html +++ /dev/null @@ -1,21 +0,0 @@ ---- -title: DOMSubtreeModified -slug: Web/Events/DOMSubtreeModified -tags: - - DOMSubtreeModified -translation_of: Archive/Events/DOMSubtreeModified ---- -<h2 id="Example" name="Example">Пример</h2> - -<p>Следующий код отображает время последнего изменения DOM в строке заголовка страницы.</p> - -<div class="warning"> -<p>Это событие устарело в пользу <a href="/en-US/docs/Web/API/MutationObserver">Mutation Observer API</a></p> -</div> - -<div class="warning">Будьте очень осторожны с этим событием, легко вызвать бесконечный цикл, если вы решите изменить DOM внутри обработчика событий.</div> - -<pre class="brush: js">document.body.addEventListener('DOMSubtreeModified', function () { - document.title = 'DOM Изменен в ' + new Date(); -}, false); -</pre> diff --git a/files/ru/web/javascript/guide/liveconnect_overview/index.html b/files/ru/web/javascript/guide/liveconnect_overview/index.html deleted file mode 100644 index baf6f2577c..0000000000 --- a/files/ru/web/javascript/guide/liveconnect_overview/index.html +++ /dev/null @@ -1,795 +0,0 @@ ---- -title: LiveConnect Overview -slug: Web/JavaScript/Guide/LiveConnect_Overview -translation_of: Archive/Web/LiveConnect/LiveConnect_Overview ---- -<p>Эта глава описывает технолонию <a href="/en-US/docs/LiveConnect" title="en-US/docs/LiveConnect">LiveConnect</a> которая позволяет Java и JavaScript взаимодейстовать между собой. В этой главе полагается что вы имеет представление о языке программирования Java.</p> - -<h2 id="Working_with_Wrappers">Working with Wrappers</h2> - -<p>В JavaScript, <em>обертка </em>это объект s an object of the target language data type that encloses an object of the source language. When programming in JavaScript, you can use a wrapper object to access methods and fields of the Java object; calling a method or accessing a property on the wrapper results in a call on the Java object. On the Java side, JavaScript objects are wrapped in an instance of the class <code>netscape.javascript.JSObject</code> and passed to Java.</p> - -<p>When a JavaScript object is sent to Java, the runtime engine creates a Java wrapper of type <code>JSObject</code>; when a <code>JSObject</code> is sent from Java to JavaScript, the runtime engine unwraps it to its original JavaScript object type. The <code>JSObject</code> class provides an interface for invoking JavaScript methods and examining JavaScript properties.</p> - -<h2 id="JavaScript_to_Java_Communication">JavaScript to Java Communication</h2> - -<p>When you refer to a Java package or class, or work with a Java object or array, you use one of the special LiveConnect objects. All JavaScript access to Java takes place with these objects, which are summarized in the following table.</p> - -<table class="standard-table"> - <caption>Table 9.1 The LiveConnect Objects</caption> - <thead> - <tr> - <th scope="col">Object</th> - <th scope="col">Description</th> - </tr> - </thead> - <tbody> - <tr> - <td><code>JavaArray</code></td> - <td>A wrapped Java array, accessed from within JavaScript code.</td> - </tr> - <tr> - <td><code>JavaClass</code></td> - <td>A JavaScript reference to a Java class.</td> - </tr> - <tr> - <td><code>JavaObject</code></td> - <td>A wrapped Java object, accessed from within JavaScript code.</td> - </tr> - <tr> - <td><code>JavaPackage</code></td> - <td>A JavaScript reference to a Java package.</td> - </tr> - </tbody> -</table> - -<p><strong>Note:</strong> Because Java is a strongly typed language and JavaScript is weakly typed, the JavaScript runtime engine converts argument values into the appropriate data types for the other language when you use LiveConnect. See <a href="/en-US/docs/JavaScript/Guide/Values,_Variables,_and_Literals#Data_Type_Conversion" title="en-US/docs/JavaScript/Guide/Values, Variables, and Literals#Data Type Conversion">Data Type Conversion</a> for complete information.</p> - -<p>In some ways, the existence of the LiveConnect objects is transparent, because you interact with Java in a fairly intuitive way. For example, you can create a Java <code>String</code> object and assign it to the JavaScript variable <code>myString</code> by using the <code>new</code> operator with the Java constructor, as follows:</p> - -<pre class="brush: js">var myString = new java.lang.String("Hello world"); -</pre> - -<p>In the previous example, the variable <code>myString</code> is a <code>JavaObject</code> because it holds an instance of the Java object <code>String</code>. As a <code>JavaObject</code>, <code>myString</code> has access to the public instance methods of <code>java.lang.String</code> and its superclass, <code>java.lang.Object</code>. These Java methods are available in JavaScript as methods of the <code>JavaObject</code>, and you can call them as follows:</p> - -<pre class="brush: js">myString.length(); // returns 11 -</pre> - -<p>Static members can be called directly on the JavaClass object.</p> - -<pre class="brush: js">alert(java.lang.Integer.MAX_VALUE); //alerts 2147483647 -</pre> - -<h3 id="The_Packages_Object">The Packages Object</h3> - -<p>If a Java class is not part of the <code>java</code>, <code>sun</code>, or <code>netscape</code> packages, you access it with the <code>Packages</code> object. For example, suppose the Redwood corporation uses a Java package called <code>redwood</code> to contain various Java classes that it implements. To create an instance of the <code>HelloWorld</code> class in <code>redwood</code>, you access the constructor of the class as follows:</p> - -<pre class="brush: js">var red = new Packages.redwood.HelloWorld(); -</pre> - -<p>You can also access classes in the default package (that is, classes that don't explicitly name a package). For example, if the HelloWorld class is directly in the <code>CLASSPATH</code> and not in a package, you can access it as follows:</p> - -<pre class="brush: js">var red = new Packages.HelloWorld(); -</pre> - -<p>The LiveConnect <code>java</code>, <code>sun</code>, and <code>netscape</code> objects provide shortcuts for commonly used Java packages. For example, you can use the following:</p> - -<pre class="brush: js">var myString = new java.lang.String("Hello world"); -</pre> - -<p>instead of the longer version:</p> - -<pre class="brush: js">var myString = new Packages.java.lang.String("Hello world"); -</pre> - -<h3 id="Working_with_Java_Arrays">Working with Java Arrays</h3> - -<p>When any Java method creates an array and you reference that array in JavaScript, you are working with a <code>JavaArray</code>. For example, the following code creates the <code>JavaArray x</code> with ten elements of type int:</p> - -<pre class="brush: js">var x = java.lang.reflect.Array.newInstance(java.lang.Integer, 10); -</pre> - -<p>Like the JavaScript <code>Array</code> object, <code>JavaArray</code> has a <code>length</code> property which returns the number of elements in the array. Unlike <code>Array.length</code>, <code>JavaArray.length</code> is a read-only property, because the number of elements in a Java array are fixed at the time of creation.</p> - -<h3 id="Package_and_Class_References">Package and Class References</h3> - -<p>Simple references to Java packages and classes from JavaScript create the <code>JavaPackage</code> and <code>JavaClass</code> objects. In the earlier example about the Redwood corporation, for example, the reference Packages.redwood is a JavaPackage object. Similarly, a reference such as <code>java.lang.String</code> is a <code>JavaClass</code> object.</p> - -<p>Most of the time, you don't have to worry about the <code>JavaPackage</code> and <code>JavaClass</code> objects—you just work with Java packages and classes, and LiveConnect creates these objects transparently. There are cases where LiveConnect will fail to load a class, and you will need to manually load it like this:</p> - -<pre class="brush: js">var Widgetry = java.lang.Thread.currentThread().getContextClassLoader().loadClass("org.mywidgets.Widgetry"); -</pre> - -<p>In JavaScript 1.3 and earlier, <code>JavaClass</code> objects are not automatically converted to instances of <code>java.lang.Class</code> when you pass them as parameters to Java methods—you must create a wrapper around an instance of <code>java.lang.Class</code>. In the following example, the <code>forName</code> method creates a wrapper object <code>theClass</code>, which is then passed to the <code>newInstance</code> method to create an array.</p> - -<pre class="brush: js">// JavaScript 1.3 -var theClass = java.lang.Class.forName("java.lang.String"); -var theArray = java.lang.reflect.Array.newInstance(theClass, 5); -</pre> - -<p>In JavaScript 1.4 and later, you can pass a <code>JavaClass</code> object directly to a method, as shown in the following example:</p> - -<pre class="brush: js">// JavaScript 1.4 -var theArray = java.lang.reflect.Array.newInstance(java.lang.String, 5); -</pre> - -<h3 id="Arguments_of_Type_char">Arguments of Type char</h3> - -<p>In JavaScript 1.4 and later, you can pass a one-character string to a Java method which requires an argument of type <code>char</code>. For example, you can pass the string "H" to the <code>Character</code> constructor as follows:</p> - -<pre class="brush: js">var c = new java.lang.Character("H"); -</pre> - -<p>In JavaScript 1.3 and earlier, you must pass such methods an integer which corresponds to the Unicode value of the character. For example, the following code also assigns the value "H" to the variable <code>c</code>:</p> - -<pre class="brush: js">var c = new java.lang.Character(72); -</pre> - -<h3 id="Handling_Java_Exceptions_in_JavaScript">Handling Java Exceptions in JavaScript</h3> - -<p>When Java code fails at run time, it throws an exception. If your JavaScript code accesses a Java data member or method and fails, the Java exception is passed on to JavaScript for you to handle. Beginning with JavaScript 1.4, you can catch this exception in a <code>try...catch</code> statement. (Although this functionality (along with some others) had been broken in Gecko 1.9 (see {{ bug("391642") }}) as the Mozilla-specific LiveConnect code had not been maintained inside Mozilla, with Java 6 update 11 and 12 building support for reliance on Mozilla's implementation of the generic (and cross-browser) <a href="/en-US/docs/Plugins" title="en-US/docs/Plugins">NPAPI</a> plugin code, this has again been fixed.)</p> - -<p>For example, suppose you are using the Java <code>forName</code> method to assign the name of a Java class to a variable called <code>theClass</code>. The <code>forName</code> method throws an exception if the value you pass it does not evaluate to the name of a Java class. Place the <code>forName</code> assignment statement in a <code>try</code> block to handle the exception, as follows:</p> - -<pre class="brush: js">function getClass(javaClassName) { - try { - var theClass = java.lang.Class.forName(javaClassName); - } catch (e) { - return ("The Java exception is " + e); - } - return theClass; -} -</pre> - -<p>In this example, if <code>javaClassName</code> evaluates to a legal class name, such as "java.lang.String", the assignment succeeds. If <code>javaClassName</code> evaluates to an invalid class name, such as "String", the <code>getClass</code> function catches the exception and returns something similar to the following:</p> - -<pre>The Java exception is java.lang.ClassNotFoundException: String -</pre> - -<p>For specialized handling based on the exception type, use the <code>instanceof</code> operator:</p> - -<pre class="brush: js">try { - // ... -} catch (e) { - if (e instanceof java.io.FileNotFound) { - // handling for FileNotFound - } else { - throw e; - } -} -</pre> - -<p>See <a href="/en-US/docs/JavaScript/Guide/Statements#Exception_Handling_Statements" title="en-US/docs/JavaScript/Guide/Statements#Exception Handling Statements">Exception Handling Statements</a> for more information about JavaScript exceptions.</p> - -<h2 id="Java_to_JavaScript_Communication">Java to JavaScript Communication</h2> - -<p>If you want to use JavaScript objects in Java, you must import the <code>netscape.javascript</code> package into your Java file. This package defines the following classes:</p> - -<ul> - <li><code><a href="/en-US/docs/JavaScript/Reference/LiveConnect/JSObject" title="en-US/docs/JavaScript/Reference/LiveConnect/JSObject">netscape.javascript.JSObject</a></code> allows Java code to access JavaScript methods and properties.</li> - <li><code><a href="/en-US/docs/JavaScript/Reference/LiveConnect/JSException" title="en-US/docs/JavaScript/Reference/LiveConnect/JSException">netscape.javascript.JSException</a></code> allows Java code to handle JavaScript errors.</li> -</ul> - -<p>See the <a href="/en-US/docs/JavaScript/Reference" title="en-US/docs/JavaScript/Reference">JavaScript Reference</a> for more information about these classes.</p> - -<h3 id="Locating_the_LiveConnect_classes" name="Locating_the_LiveConnect_classes">Locating the LiveConnect classes</h3> - -<p>In older versions of the Netscape browser, these classes were distributed along with the browser. Starting with JavaScript 1.2, these classes are delivered in a .jar file; in previous versions of JavaScript, these classes are delivered in a .zip file. For example, with Netscape Navigator 4 for Windows NT, the classes are delivered in the <code>java40.jar</code> file in the <code>Program\Java\Classes</code> directory beneath the Navigator directory.</p> - -<p>More recently, the classes have been distributed with Sun's Java Runtime; initially in the file "jaws.jar" in the "jre/lib" directory of the runtime distribution (for JRE 1.3), then in "plugin.jar" in the same location (JRE 1.4 and up).</p> - -<h3 id="Using_the_LiveConnect_classes_with_the_JDK" name="Using_the_LiveConnect_classes_with_the_JDK">Using the LiveConnect classes with the JDK</h3> - -<p>To access the LiveConnect classes, place the .jar or .zip file in the <code>CLASSPATH</code> of the JDK compiler in either of the following ways:</p> - -<ul> - <li>Create a <code>CLASSPATH</code> environment variable to specify the path and name of .jar or .zip file.</li> - <li>Specify the location of .jar or .zip file when you compile by using the <code>-classpath</code> command line parameter.</li> -</ul> - -<p>You can specify an environment variable in Windows NT by double-clicking the System icon in the Control Panel and creating a user environment variable called <code>CLASSPATH</code> with a value similar to the following:</p> - -<pre class="eval">C:\Program Files\Java\jre1.4.1\lib\plugin.jar -</pre> - -<p>See the Sun JDK documentation for more information about <code>CLASSPATH</code>.</p> - -<p><strong>Note:</strong> Because Java is a strongly typed language and JavaScript is weakly typed, the JavaScript runtime engine converts argument values into the appropriate data types for the other language when you use LiveConnect. See <a href="#Data_Type_Conversions">Data Type Conversions</a> for complete information.</p> - -<h3 id="Using_the_LiveConnect_Classes">Using the LiveConnect Classes</h3> - -<p>All JavaScript objects appear within Java code as instances of <code>netscape.javascript.JSObject</code>. When you call a method in your Java code, you can pass it a JavaScript object as one of its argument. To do so, you must define the corresponding formal parameter of the method to be of type <code>JSObject</code>.</p> - -<p>Also, any time you use JavaScript objects in your Java code, you should put the call to the JavaScript object inside a <code>try...catch</code> statement which handles exceptions of type <code>netscape.javascript.JSException</code>. This allows your Java code to handle errors in JavaScript code execution which appear in Java as exceptions of type <code>JSException</code>.</p> - -<h4 id="Accessing_JavaScript_with_JSObject" name="Accessing_JavaScript_with_JSObject">Accessing JavaScript with JSObject</h4> - -<p>For example, suppose you are working with the Java class called <code>JavaDog</code>. As shown in the following code, the <code>JavaDog</code> constructor takes the JavaScript object <code>jsDog</code>, which is defined as type <code>JSObject</code>, as an argument:</p> - -<pre class="brush: java">import netscape.javascript.*; - -public class JavaDog{ - public String dogBreed; - public String dogColor; - public String dogSex; - - // define the class constructor - public JavaDog(JSObject jsDog){ - // use try...catch to handle JSExceptions here - this.dogBreed = (String)jsDog.getMember("breed"); - this.dogColor = (String)jsDog.getMember("color"); - this.dogSex = (String)jsDog.getMember("sex"); - } -} -</pre> - -<p>Notice that the <code>getMember</code> method of <code>JSObject</code> is used to access the properties of the JavaScript object. The previous example uses <code>getMember</code> to assign the value of the JavaScript property <code>jsDog.breed</code> to the Java data member <code>JavaDog.dogBreed</code>.</p> - -<p><strong>Note:</strong> A more realistic example would place the call to <code>getMember</code> inside a <code>try...catch</code> statement to handle errors of type <code>JSException</code>. See Handling JavaScript Exceptions in Java for more information.</p> - -<p>To get a better sense of how <code>getMember</code> works, look at the definition of the custom JavaScript object <code>Dog</code>:</p> - -<pre class="brush: js">function Dog(breed,color,sex){ - this.breed = breed; - this.color = color; - this.sex = sex; -} -</pre> - -<p>You can create a JavaScript instance of <code>Dog</code> called <code>gabby</code> as follows:</p> - -<pre class="brush: js">var gabby = new Dog("lab", "chocolate", "female"); -</pre> - -<p>If you evaluate <code>gabby.color</code>, you can see that it has the value "chocolate". Now suppose you create an instance of <code>JavaDog</code> in your JavaScript code by passing the <code>gabby</code> object to the constructor as follows:</p> - -<pre class="brush: js">var javaDog = new Packages.JavaDog(gabby); -</pre> - -<p>If you evaluate <code>javaDog.dogColor</code>, you can see that it also has the value "chocolate", because the <code>getMember</code> method in the Java constructor assigns <code>dogColor</code> the value of <code>gabby.color</code>.</p> - -<h4 id="Handling_JavaScript_Exceptions_in_Java" name="Handling_JavaScript_Exceptions_in_Java">Handling JavaScript Exceptions in Java</h4> - -<p>When JavaScript code called from Java fails at run time, it throws an exception. If you are calling the JavaScript code from Java, you can catch this exception in a <code>try...catch</code> statement. The JavaScript exception is available to your Java code as an instance of <code>netscape.javascript.JSException</code>.</p> - -<p><code>JSException</code> is a Java wrapper around any exception type thrown by JavaScript, similar to the way that instances of <code>JSObject</code> are wrappers for JavaScript objects. Use <code>JSException</code> when you are evaluating JavaScript code in Java.</p> - -<p>When you are evaluating JavaScript code in Java, the following situations can cause run-time errors:</p> - -<ul> - <li>The JavaScript code is not evaluated, either due to a JavaScript compilation error or to some other error that occurred at run time. The JavaScript interpreter generates an error message that is converted into an instance of <code>JSException</code>.</li> - <li>Java successfully evaluates the JavaScript code, but the JavaScript code executes an unhandled <code>throw</code> statement. JavaScript throws an exception that is wrapped as an instance of <code>JSException</code>. Use the <code>getWrappedException</code> method of <code>JSException</code> to unwrap this exception in Java.</li> -</ul> - -<p>For example, suppose the Java object <code>eTest</code> evaluates the string <code>jsCode</code> that you pass to it. You can respond to either type of run-time error the evaluation causes by implementing an exception handler such as the following:</p> - -<pre class="brush: java">import netscape.javascript.JSObject; -import netscape.javascript.JSException; - -public class eTest { - public static Object doit(JSObject obj, String jsCode) { - try { - obj.eval(jsCode); - } catch (JSException e) { - if (e.getWrappedException() == null) - return e; - return e.getWrappedException(); - } - return null; - } -} -</pre> - -<p>In this example, the code in the <code>try</code> block attempts to evaluate the string <code>jsCode</code> that you pass to it. Let's say you pass the string "<code>myFunction()</code>" as the value of <code>jsCode</code>. If <code>myFunction</code> is not defined as a JavaScript function, the JavaScript interpreter cannot evaluate <code>jsCode</code>. The interpreter generates an error message, the Java handler catches the message, and the <code>doit</code> method returns an instance of <code>netscape.javascript.JSException</code>.</p> - -<p>However, suppose <code>myFunction</code> is defined in JavaScript as follows:</p> - -<pre class="brush: js">function myFunction() { - try { - if (theCondition == true) { - return "Everything's ok"; - } else { - throw "JavaScript error occurred"; - } - } catch (e) { - if (canHandle == true) { - handleIt(); - } else { - throw e; - } - } -} -</pre> - -<p>If <code>theCondition</code> is false, the function throws an exception. The exception is caught in the JavaScript code, and if <code>canHandle</code> is true, JavaScript handles it. If <code>canHandle</code> is false, the exception is rethrown, the Java handler catches it, and the <code>doit</code> method returns a Java string:</p> - -<pre>JavaScript error occurred -</pre> - -<p>See <a href="/en-US/docs/JavaScript/Guide/Statements#Exception_Handling_Statements" title="en-US/docs/JavaScript/Guide/Statements#Exception Handling Statements">Exception Handling Statements</a> for complete information about JavaScript exceptions.</p> - -<h4 id="Backward_Compatibility" name="Backward_Compatibility">Backward Compatibility</h4> - -<p>In JavaScript 1.3 and earlier versions, the <code>JSException</code> class had three public constructors which optionally took a string argument, specifying the detail message or other information for the exception. The <code>getWrappedException</code> method was not available.</p> - -<p>Use a <code>try...catch</code> statement such as the following to handle LiveConnect exceptions in JavaScript 1.3 and earlier versions:</p> - -<pre class="brush: js">try { - global.eval("foo.bar = 999;"); -} catch (Exception e) { - if (e instanceof JSException) { - jsCodeFailed(); - } else { - otherCodeFailed(); - } -} -</pre> - -<p>In this example, the <code>eval</code> statement fails if <code>foo</code> is not defined. The <code>catch</code> block executes the <code>jsCodeFailed</code> method if the <code>eval</code> statement in the <code>try</code> block throws a <code>JSException</code>; the <code>otherCodeFailed</code> method executes if the <code>try</code> block throws any other error.</p> - -<h2 id="Data_Type_Conversions">Data Type Conversions</h2> - -<p>Because Java is a strongly typed language and JavaScript is weakly typed, the JavaScript runtime engine converts argument values into the appropriate data types for the other language when you use LiveConnect. These conversions are described in the following sections:</p> - -<ul> - <li><a href="#JavaScript_to_Java_Conversions">JavaScript to Java Conversions</a></li> - <li><a href="#Java_to_JavaScript_Conversions">Java to JavaScript Conversions</a></li> -</ul> - -<h3 id="JavaScript_to_Java_Conversions">JavaScript to Java Conversions</h3> - -<p>When you call a Java method and pass it parameters from JavaScript, the data types of the parameters you pass in are converted according to the rules described in the following sections:</p> - -<ul> - <li><a href="#Number_Values">Number Values</a></li> - <li><a href="#Boolean_Values">Boolean Values</a></li> - <li><a href="#String_Values">String Values</a></li> - <li><a href="#Undefined_Values">Undefined Values</a></li> - <li><a href="#Null_Values">Null Values</a></li> - <li><a href="#JavaArray_and_JavaObject_objects">JavaArray and JavaObject objects</a></li> - <li><a href="#JavaClass_objects">JavaClass objects</a></li> - <li><a href="#Other_JavaScript_objects">Other JavaScript objects</a></li> -</ul> - -<p>The return values of methods of <code>netscape.javascript.JSObject</code> are always converted to instances of <code>java.lang.Object</code>. The rules for converting these return values are also described in these sections.</p> - -<p>For example, if <code>JSObject.eval</code> returns a JavaScript number, you can find the rules for converting this number to an instance of <code>java.lang.Object</code> in <a href="#Number_Values">Number Values</a>.</p> - -<h4 id="Number_Values" name="Number_Values">Number Values</h4> - -<p>When you pass JavaScript number types as parameters to Java methods, Java converts the values according to the rules described in the following table:</p> - -<table class="standard-table"> - <thead> - <tr> - <th scope="col">Java parameter type</th> - <th scope="col">Conversion rules</th> - </tr> - </thead> - <tbody> - <tr> - <td>double</td> - <td> - <ul> - <li>The exact value is transferred to Java without rounding and without a loss of magnitude or sign.</li> - <li><code>NaN</code> is converted to NaN.</li> - </ul> - </td> - </tr> - <tr> - <td>java.lang.Double<br> - java.lang.Object</td> - <td>A new instance of <code>java.lang.Double</code> is created, and the exact value is transferred to Java without rounding and without a loss of magnitude or sign.</td> - </tr> - <tr> - <td>float</td> - <td> - <ul> - <li>Values are rounded to float precision.</li> - <li>Values which are too large or small to be represented are rounded to +infinity or -infinity.</li> - <li><code>NaN</code> is converted to <code>NaN</code>.</li> - </ul> - </td> - </tr> - <tr> - <td>byte - <p>char<br> - int<br> - long</p> - short</td> - <td> - <ul> - <li>Values are rounded using round-to-negative-infinity mode.</li> - <li>Values which are too large or small to be represented result in a run-time error.</li> - <li><code>NaN</code> can not be converted and results in a run-time error.</li> - </ul> - </td> - </tr> - <tr> - <td><code>java.lang.String</code></td> - <td>Values are converted to strings. For example: - <ul> - <li>237 becomes "237"</li> - </ul> - </td> - </tr> - <tr> - <td>boolean</td> - <td> - <ul> - <li>0 and <code>NaN</code> values are converted to false.</li> - <li>Other values are converted to true.</li> - </ul> - </td> - </tr> - </tbody> -</table> - -<p>When a JavaScript number is passed as a parameter to a Java method which expects an instance of <code>java.lang.String</code>, the number is converted to a string. Use the <code>equals()</code> method to compare the result of this conversion with other string values.</p> - -<h4 id="Boolean_Values" name="Boolean_Values">Boolean Values</h4> - -<p>When you pass JavaScript Boolean types as parameters to Java methods, Java converts the values according to the rules described in the following table:</p> - -<table class="standard-table"> - <thead> - <tr> - <th scope="col">Java parameter type</th> - <th scope="col">Conversion rules</th> - </tr> - </thead> - <tbody> - <tr> - <td>boolean</td> - <td>All values are converted directly to the Java equivalents.</td> - </tr> - <tr> - <td><code>java.lang.Boolean</code><br> - <code>java.lang.Object</code></td> - <td>A new instance of <code>java.lang.Boolean</code> is created. Each parameter creates a new instance, not one instance with the same primitive value.</td> - </tr> - <tr> - <td><code>java.lang.String</code></td> - <td>Values are converted to strings. For example: - <ul> - <li>true becomes "true"</li> - <li>false becomes "false"</li> - </ul> - </td> - </tr> - <tr> - <td>byte - <p>char<br> - double<br> - float<br> - int<br> - long</p> - short</td> - <td> - <ul> - <li>true becomes 1</li> - <li>false becomes 0</li> - </ul> - </td> - </tr> - </tbody> -</table> - -<p>When a JavaScript Boolean is passed as a parameter to a Java method which expects an instance of <code>java.lang.String</code>, the Boolean is converted to a string. Use the == operator to compare the result of this conversion with other string values.</p> - -<h4 id="String_Values" name="String_Values">String Values</h4> - -<p>When you pass JavaScript string types as parameters to Java methods, Java converts the values according to the rules described in the following table:</p> - -<table class="standard-table"> - <thead> - <tr> - <th scope="col">Java parameter type</th> - <th scope="col">Conversion rules</th> - </tr> - </thead> - <tbody> - <tr> - <td><code>java.lang.String</code><br> - <code>java.lang.Object</code></td> - <td>JavaScript 1.4: - <ul> - <li>A JavaScript string is converted to an instance of <code>java.lang.String</code> with a Unicode value.</li> - </ul> - - <p>JavaScript 1.3 and earlier:</p> - - <ul> - <li>A JavaScript string is converted to an instance of <code>java.lang.String</code> with an ASCII value.</li> - </ul> - </td> - </tr> - <tr> - <td>byte - <p>double<br> - float<br> - int<br> - long</p> - short</td> - <td>All values are converted to numbers as described in ECMA-262. The JavaScript string value is converted to a number according to the rules described in ECMA-262.</td> - </tr> - <tr> - <td>char</td> - <td>JavaScript 1.4: - <ul> - <li>One-character strings are converted to Unicode characters.</li> - <li>All other values are converted to numbers.</li> - </ul> - - <p>JavaScript 1.3 and earlier:</p> - - <ul> - <li>All values are converted to numbers.</li> - </ul> - </td> - </tr> - <tr> - <td>boolean</td> - <td> - <ul> - <li>The empty string becomes false.</li> - <li>All other values become true.</li> - </ul> - </td> - </tr> - </tbody> -</table> - -<h4 id="Undefined_Values" name="Undefined_Values">Undefined Values</h4> - -<p>When you pass undefined JavaScript values as parameters to Java methods, Java converts the values according to the rules described in the following table:</p> - -<table class="standard-table"> - <thead> - <tr> - <th scope="col">Java parameter type</th> - <th scope="col">Conversion rules</th> - </tr> - </thead> - <tbody> - <tr> - <td><code>java.lang.String</code><br> - <code>java.lang.Object</code></td> - <td>The value is converted to an instance of java.lang.String whose value is the string "undefined".</td> - </tr> - <tr> - <td>boolean</td> - <td>The value becomes false.</td> - </tr> - <tr> - <td>double<br> - float</td> - <td>The value becomes <code>NaN</code>.</td> - </tr> - <tr> - <td>byte - <p>char<br> - int<br> - long</p> - short</td> - <td>The value becomes 0.</td> - </tr> - </tbody> -</table> - -<p>The undefined value conversion is possible in JavaScript 1.3 and later versions only. Earlier versions of JavaScript do not support undefined values.</p> - -<p>When a JavaScript undefined value is passed as a parameter to a Java method which expects an instance of <code>java.lang.String</code>, the undefined value is converted to a string. Use the == operator to compare the result of this conversion with other string values.</p> - -<h4 id="Null_Values" name="Null_Values">Null Values</h4> - -<p>When you pass null JavaScript values as parameters to Java methods, Java converts the values according to the rules described in the following table:</p> - -<table class="standard-table"> - <thead> - <tr> - <th scope="col">Java parameter type</th> - <th scope="col">Conversion rules</th> - </tr> - </thead> - <tbody> - <tr> - <td>Any class<br> - Any interface type</td> - <td>The value becomes null.</td> - </tr> - <tr> - <td>byte - <p>char<br> - double<br> - float<br> - int<br> - long</p> - short</td> - <td>The value becomes 0.</td> - </tr> - <tr> - <td>boolean</td> - <td>The value becomes false.</td> - </tr> - </tbody> -</table> - -<h4 id="JavaArray_and_JavaObject_objects" name="JavaArray_and_JavaObject_objects">JavaArray and JavaObject objects</h4> - -<p>In most situations, when you pass a JavaScript <code>JavaArray</code> or <code>JavaObject</code> as a parameter to a Java method, Java simply unwraps the object; in a few situations, the object is coerced into another data type according to the rules described in the following table:</p> - -<table class="standard-table"> - <thead> - <tr> - <th scope="col">Java parameter type</th> - <th scope="col">Conversion rules</th> - </tr> - </thead> - <tbody> - <tr> - <td>Any interface or class that is assignment-compatible with the unwrapped object.</td> - <td>The object is unwrapped.</td> - </tr> - <tr> - <td><code>java.lang.String</code></td> - <td>The object is unwrapped, the <code>toString</code> method of the unwrapped Java object is called, and the result is returned as a new instance of <code>java.lang.String</code>.</td> - </tr> - <tr> - <td>byte - <p>char<br> - double<br> - float<br> - int<br> - long</p> - short</td> - <td>The object is unwrapped, and either of the following situations occur: - <ul> - <li>If the unwrapped Java object has a <code>doubleValue</code> method, the <code>JavaArray</code> or <code>JavaObject</code> is converted to the value returned by this method.</li> - <li>If the unwrapped Java object does not have a <code>doubleValue</code> method, an error occurs.</li> - </ul> - </td> - </tr> - <tr> - <td>boolean</td> - <td>In JavaScript 1.3 and later versions, the object is unwrapped and either of the following situations occur: - <ul> - <li>If the object is null, it is converted to false.</li> - <li>If the object has any other value, it is converted to true.</li> - </ul> - - <p>In JavaScript 1.2 and earlier versions, the object is unwrapped and either of the following situations occur:</p> - - <ul> - <li>If the unwrapped object has a booleanValue method, the source object is converted to the return value.</li> - <li>If the object does not have a booleanValue method, the conversion fails.</li> - </ul> - </td> - </tr> - </tbody> -</table> - -<p>An interface or class is assignment-compatible with an unwrapped object if the unwrapped object is an instance of the Java parameter type. That is, the following statement must return true:</p> - -<pre class="brush: js">unwrappedObject instanceof parameterType; -</pre> - -<h4 id="JavaClass_objects" name="JavaClass_objects">JavaClass objects</h4> - -<p>When you pass a JavaScript <code>JavaClass</code> object as a parameter to a Java method, Java converts the object according to the rules described in the following table:</p> - -<table class="standard-table"> - <thead> - <tr> - <th scope="col">Java parameter type</th> - <th scope="col">Conversion rules</th> - </tr> - </thead> - <tbody> - <tr> - <td><code>java.lang.Class</code></td> - <td>The object is unwrapped.</td> - </tr> - <tr> - <td><code>netscape.javascript.JSObject</code><br> - <code>java.lang.Object</code></td> - <td>The <code>JavaClass</code> object is wrapped in a new instance of <code>netscape.javascript.JSObject</code>.</td> - </tr> - <tr> - <td><code>java.lang.String</code></td> - <td>The object is unwrapped, the <code>toString</code> method of the unwrapped Java object is called, and the result is returned as a new instance of <code>java.lang.String</code>.</td> - </tr> - <tr> - <td>boolean</td> - <td>In JavaScript 1.3 and later versions, the object is unwrapped and either of the following situations occur: - <ul> - <li>If the object is null, it is converted to false.</li> - <li>If the object has any other value, it is converted to true.</li> - </ul> - - <p>In JavaScript 1.2 and earlier versions, the object is unwrapped and either of the following situations occur:</p> - - <ul> - <li>If the unwrapped object has a booleanValue method, the source object is converted to the return value.</li> - <li>If the object does not have a booleanValue method, the conversion fails.</li> - </ul> - </td> - </tr> - </tbody> -</table> - -<h4 id="Other_JavaScript_objects" name="Other_JavaScript_objects">Other JavaScript objects</h4> - -<p>When you pass any other JavaScript object as a parameter to a Java method, Java converts the object according to the rules described in the following table:</p> - -<table class="standard-table"> - <thead> - <tr> - <th scope="col">Java parameter type</th> - <th scope="col">Conversion rules</th> - </tr> - </thead> - <tbody> - <tr> - <td><code>netscape.javascript.JSObject</code><br> - <code>java.lang.Object</code></td> - <td>The object is wrapped in a new instance of <code>netscape.javascript.JSObject</code>.</td> - </tr> - <tr> - <td><code>java.lang.String</code></td> - <td>The object is unwrapped, the <code>toString</code> method of the unwrapped object is called, and the result is returned as a new instance of <code>java.lang.String</code>.</td> - </tr> - <tr> - <td>byte - <p>char<br> - double<br> - float<br> - int<br> - long</p> - short</td> - <td>The object is converted to a value using the logic of the <code>ToPrimitive</code> operator described in ECMA-262. The <em>PreferredType</em> hint used with this operator is Number.</td> - </tr> - <tr> - <td>boolean</td> - <td>In JavaScript 1.3 and later versions, the object is unwrapped and either of the following situations occur: - <ul> - <li>If the object is null, it is converted to false.</li> - <li>If the object has any other value, it is converted to true.</li> - </ul> - - <p>In JavaScript 1.2 and earlier versions, the object is unwrapped and either of the following situations occur:</p> - - <ul> - <li>If the unwrapped object has a booleanValue method, the source object is converted to the return value.</li> - <li>If the object does not have a booleanValue method, the conversion fails.</li> - </ul> - </td> - </tr> - </tbody> -</table> - -<h3 id="Java_to_JavaScript_Conversions">Java to JavaScript Conversions</h3> - -<p>Values passed from Java to JavaScript are converted as follows:</p> - -<ul> - <li>Java byte, char, short, int, long, float, and double are converted to JavaScript numbers.</li> - <li>A Java boolean is converted to a JavaScript boolean.</li> - <li>An object of class <code>netscape.javascript.JSObject</code> is converted to the original JavaScript object.</li> - <li>Java arrays are converted to a JavaScript pseudo-Array object; this object behaves just like a JavaScript <code>Array</code> object: you can access it with the syntax <code>arrayName[index]</code> (where <code>index</code> is an integer), and determine its length with <code>arrayName.length</code>.</li> - <li>A Java object of any other class is converted to a JavaScript wrapper, which can be used to access methods and fields of the Java object: - <ul> - <li>Converting this wrapper to a string calls the <code>toString</code> method on the original object.</li> - <li>Converting to a number calls the <code>doubleValue</code> method, if possible, and fails otherwise.</li> - <li>Converting to a boolean in JavaScript 1.3 and later versions returns false if the object is null, and true otherwise.</li> - <li>Converting to a boolean in JavaScript 1.2 and earlier versions calls the <code>booleanValue</code> method, if possible, and fails otherwise.</li> - </ul> - </li> -</ul> - -<p>Note that instances of java.lang.Double and java.lang.Integer are converted to JavaScript objects, not to JavaScript numbers. Similarly, instances of java.lang.String are also converted to JavaScript objects, not to JavaScript strings.</p> - -<p>Java <code>String</code> objects also correspond to JavaScript wrappers. If you call a JavaScript method that requires a JavaScript string and pass it this wrapper, you'll get an error. Instead, convert the wrapper to a JavaScript string by appending the empty string to it, as shown here:</p> - -<pre class="brush: js">var JavaString = JavaObj.methodThatReturnsAString(); -var JavaScriptString = JavaString + "";</pre> diff --git a/files/ru/web/javascript/new_in_javascript/1.5/index.html b/files/ru/web/javascript/new_in_javascript/1.5/index.html deleted file mode 100644 index a27746c51b..0000000000 --- a/files/ru/web/javascript/new_in_javascript/1.5/index.html +++ /dev/null @@ -1,37 +0,0 @@ ---- -title: Новое в JavaScript 1.5 -slug: Web/JavaScript/New_in_JavaScript/1.5 -translation_of: Archive/Web/JavaScript/New_in_JavaScript/1.5 ---- -<div>{{jsSidebar("New_in_JS")}}</div> - -<p>Следующий список описывает изменения в JavaScript 1.5. Эта версия была включена в Netscape Navigator 6.0, дата релиза которого – 14 ноября 2000 года. Также Javascript 1.5 использовался в более поздних версиях Netscape Navigator, а также Firefox 1.0. JavaScript 1.5 соответствует JScript версии 5.5 используемой в Internet Explorer 5.5, который был представлен в июле 2000. Соответствующая версия стандарта ECMA – ECMA-262 третьей редакции (от декабря 1999 года).</p> - -<h2 id="Новое_в_JavaScript_1.5">Новое в JavaScript 1.5</h2> - -<ul> - <li><a href="/ru/docs/Web/JavaScript/Reference/Global_Objects/Number/toExponential"><code>Number.prototype.toExponential()</code></a></li> - <li><a href="/ru/docs/Web/JavaScript/Reference/Global_Objects/Number/toFixed"><code>Number.prototype.toFixed()</code></a></li> - <li><a href="/ru/docs/Web/JavaScript/Reference/Global_Objects/Number/toPrecision"><code>Number.prototype.toPrecision()</code></a></li> - <li><a href="/ru/docs/Web/JavaScript/Reference/Statements/const"><code>const</code></a></li> - <li>Поддержка множественных <code>catch</code> в блоке <a href="/ru/docs/Web/JavaScript/Reference/Statements/try...catch"><code>try...catch</code></a>.</li> - <li>Добавлена возможность определения геттеров и сеттеров для объектов.</li> -</ul> - -<h2 id="Что_изменилось_в_JavaScript_1.5">Что изменилось в JavaScript 1.5</h2> - -<ul> - <li>Об ошибках выполнения сообщается в виде исключений.</li> - <li>Изменения в регулярных выражениях: - <ul> - <li>Кванторы <code>+</code>, <code>*</code>, <code>?</code> и <code>{}</code> теперь могут сопровождаться <code>?</code> для того, чтобы показать, что они не являются "жадными".</li> - <li>Поддержка группировки без обратной связи, <code>(?:x)</code> может быть использован вместо обычной группировки, <code>(x)</code>. Когда используется группировка без обратной связи, найденные подстроки недоступны для дальнейшего использования.</li> - <li>Поддержка позитивного и негативного просмотра. Доступен поиск подстроки, исходя из того, какой текст окружает искомую подстроку.</li> - <li>Поддержка флага <code>m </code>для реализации многострочного поиска.</li> - </ul> - </li> - <li>Функции теперь могут быть объявлены внутри условия if.</li> - <li> - <p>Функции теперь могут быть объявлены внутри выражения.</p> - </li> -</ul> diff --git a/files/ru/web/javascript/new_in_javascript/1.6/index.html b/files/ru/web/javascript/new_in_javascript/1.6/index.html deleted file mode 100644 index 252db0756e..0000000000 --- a/files/ru/web/javascript/new_in_javascript/1.6/index.html +++ /dev/null @@ -1,32 +0,0 @@ ---- -title: Новое в JavaScript 1.6 -slug: Web/JavaScript/New_in_JavaScript/1.6 -tags: - - JavaScript -translation_of: Archive/Web/JavaScript/New_in_JavaScript/1.6 ---- -<div>{{jsSidebar("New_in_JS")}}</div> - -<p>The following is a changelog for JavaScript 1.6. This version was included in Firefox 1.5 (Gecko 1.8), which was released in November 2005. The corresponding ECMA standard is ECMA-262 Edition 3 and ECMAScript for XML (E4X) with some additional features. Several new features were introduced: E4X, several new <code>Array</code> methods, and Array and String generics.</p> - -<h2 id="New_features_in_JavaScript_1.6">New features in JavaScript 1.6</h2> - -<ul> - <li>Support for ECMAScript for XML (<a href="/en-US/docs/Archive/Web/E4X" title="E4X">E4X</a>) for creating and processing <a href="/en-US/docs/Glossary/XML" title="XML">XML</a> content within <a href="/en-US/docs/Web/JavaScript" title="JavaScript">JavaScript</a> has been added. See <a href="/en-US/docs/Archive/Web/E4X/Processing_XML_with_E4X" title="E4X/Processing_XML_with_E4X">Processing XML with E4X</a> for details.</li> - <li><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf"><code>Array.prototype.indexOf()</code></a></li> - <li><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/lastIndexOf"><code>Array.prototype.lastIndexof()</code></a></li> - <li><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/every"><code>Array.prototype.every()</code></a></li> - <li><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter"><code>Array.prototype.filter()</code></a></li> - <li><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach"><code>Array.prototype.forEach()</code></a></li> - <li><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map"><code>Array.prototype.map()</code></a></li> - <li><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/some"><code>Array.prototype.some()</code></a></li> - <li><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array#Array_generic_methods" title="https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array#Array_generics">Array generics</a></li> - <li><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String#String_generic_methods" title="https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String#String_generics">String generics</a></li> - <li><a href="/en-US/docs/Web/JavaScript/Reference/Statements/for_each...in"><code>for each...in</code></a></li> -</ul> - -<h2 id="Changed_functionality_in_JavaScript_1.6">Changed functionality in JavaScript 1.6</h2> - -<ul> - <li>A <a class="link-https" href="https://bugzilla.mozilla.org/show_bug.cgi?id=292215">bug</a> in which <a href="/en-US/docs/Web/JavaScript/Reference/Functions/arguments"><code>arguments[n]</code></a> cannot be set if <code>n</code> is greater than the number of formal or actual parameters has been fixed.</li> -</ul> diff --git a/files/ru/web/javascript/new_in_javascript/1.8.1/index.html b/files/ru/web/javascript/new_in_javascript/1.8.1/index.html deleted file mode 100644 index eeceb235b3..0000000000 --- a/files/ru/web/javascript/new_in_javascript/1.8.1/index.html +++ /dev/null @@ -1,31 +0,0 @@ ---- -title: Новое в JavaScript 1.8.1 -slug: Web/JavaScript/New_in_JavaScript/1.8.1 -tags: - - Firefox 3.5 - - JavaScript - - Версии -translation_of: Archive/Web/JavaScript/New_in_JavaScript/1.8.1 ---- -<div>{{jsSidebar("New_in_JS")}}</div> - -<p>Ниже приведен список изменений в JavaScript 1.8.1. Эта версия включена в <a href="/en-US/Firefox/Releases/3.5">Firefox 3.5</a>.</p> - -<p>JavaScript 1.8.1 это скромное обновление синтаксиса на JavaScript; главным изменением является добавление <a href="/en-US/docs/SpiderMonkey/Internals/Tracing_JIT" title="SpiderMonkey/Internals/Tracing JIT">Tracemonkey just-in-time compiler</a>, которое повышает производительность.</p> - -<h2 id="Новшества_в_JavaScript_1.8.1">Новшества в JavaScript 1.8.1</h2> - -<ul> - <li>{{jsxref("Object.getPrototypeOf()")}}</li> - <li><a href="/en-US/docs/Web/JavaScript/Guide/Using_native_JSON">Support for native JSON</a></li> - <li>{{jsxref("String.prototype.trim()")}}</li> - <li>{{jsxref("String.prototype.trimLeft()")}}</li> - <li>{{jsxref("String.prototype.trimRight()")}}</li> - <li>{{jsxref("String.prototype.startsWith()")}}</li> -</ul> - -<h2 id="Измененные_функции_в_JavaScript_1.8.1">Измененные функции в JavaScript 1.8.1</h2> - -<ul> - <li>Неявные настройки свойств объекта и массив инициализаторов больше не исполняет сеттеры в JavaScript. Это делает поведение сеттеров более предсказуемым.</li> -</ul> diff --git a/files/ru/web/javascript/new_in_javascript/1.8.5/index.html b/files/ru/web/javascript/new_in_javascript/1.8.5/index.html deleted file mode 100644 index ab6a9d4ce3..0000000000 --- a/files/ru/web/javascript/new_in_javascript/1.8.5/index.html +++ /dev/null @@ -1,122 +0,0 @@ ---- -title: Новое в JavaScript 1.8.5 -slug: Web/JavaScript/New_in_JavaScript/1.8.5 -translation_of: Archive/Web/JavaScript/New_in_JavaScript/1.8.5 ---- -<div>{{jsSidebar("New_in_JS")}}</div> - -<p>Далее приведён список изменений в JavaScript 1.8.5. Эта версия была включена в <a href="/en-US/Firefox/Releases/4">Firefox 4</a>.</p> - -<h2 id="Что_нового_в_JavaScript_1.8.5">Что нового в JavaScript 1.8.5</h2> - -<h3 id="Новые_функции">Новые функции</h3> - -<table class="standard-table"> - <thead> - <tr> - <th scope="col">Функция</th> - <th scope="col">Описание</th> - </tr> - </thead> - <tbody> - <tr> - <td><code><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/create" title="JavaScript/Reference/Global Objects/Object/Create">Object.create()</a></code></td> - <td>Создаёт новый обЪект с указанным прототипом и свойствами. {{bug("492840")}}</td> - </tr> - <tr> - <td><code><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperty" title="JavaScript/Reference/Global Objects/Object/DefineProperty">Object.defineProperty()</a></code></td> - <td>Добавляет свойство с переданным дескриптором к объекту.</td> - </tr> - <tr> - <td><code><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperties" title="JavaScript/Reference/Global Objects/Object/DefineProperties">Object.defineProperties()</a></code></td> - <td>Добавляет свойства с переданными дескрипторами к объекту.</td> - </tr> - <tr> - <td><code><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/getOwnPropertyDescriptor" title="JavaScript/Reference/Global Objects/Object/GetOwnPropertyDescriptor">Object.getOwnPropertyDescriptor()</a></code></td> - <td>Возвращает дескриптор свойства переданного объекта. {{bug("505587")}}</td> - </tr> - <tr> - <td><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys" title="JavaScript/Reference/Global Objects/Object/keys"><code>Object.keys()</code></a></td> - <td>Возвращает массив всех перечисляемых свойств объекта. {{bug("307791")}}</td> - </tr> - <tr> - <td><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/getOwnPropertyNames" title="JavaScript/Reference/Global Objects/Object/getOwnPropertyNames"><code>Object.getOwnPropertyNames()</code></a></td> - <td>Возвращает массив всех перечисляемых и не перечисляемых свойств объекта. {{bug("518663")}}</td> - </tr> - <tr> - <td><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/preventExtensions" title="JavaScript/Reference/Global Objects/Object/preventExtensions"><code>Object.preventExtensions()</code></a></td> - <td>Предотвращает любые расширения объекта. {{bug("492849")}}</td> - </tr> - <tr> - <td><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/isExtensible" title="JavaScript/Reference/Global Objects/Object/isExtensible"><code>Object.isExtensible()</code></a></td> - <td>Определяет, разрешено ли расширение объекта. {{bug("492849")}}</td> - </tr> - <tr> - <td><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/seal" title="JavaScript/Reference/Global Objects/Object/seal"><code>Object.seal()</code></a></td> - <td>Запрещает остальному коду удаление свойств объекта {{bug("492845")}}</td> - </tr> - <tr> - <td><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/isSealed" title="JavaScript/Reference/Global Objects/Object/isSealed"><code>Object.isSealed()</code></a></td> - <td>Определяет, запрещено ли удаление свойств объекта. {{bug("492845")}}</td> - </tr> - <tr> - <td><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/freeze" title="JavaScript/Reference/Global Objects/Object/freezed"><code>Object.freeze()</code></a></td> - <td>Замораживает объект: остальной код не может удалять или изменять значения его свойств. {{bug("492844")}}</td> - </tr> - <tr> - <td><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/isFrozen" title="JavaScript/Reference/Global Objects/Object/isFrozen"><code>Object.isFrozen()</code></a></td> - <td>Определяет, был ли объект заморожен. {{bug("492844")}}</td> - </tr> - <tr> - <td><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/isArray" title="JavaScript/Reference/Global Objects/Array/isArray"><code>Array.isArray()</code></a></td> - <td>Проверяет, является ли переменная массивом. {{bug("510537")}}</td> - </tr> - <tr> - <td><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toJSON" title="JavaScript/Reference/Global Objects/Date/toJSON"><code>Date.prototype.toJSON()</code></a></td> - <td>Возвращает строку в формате JSON для объекта <code>Date</code>.</td> - </tr> - <tr> - <td><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind" title="JavaScript/Reference/Global_Objects/Function/bind"><code>Function.prototype.bind()</code></a></td> - <td>Метод <code>bind()</code> создаёт новую функцию, которая при вызове устанавливает в качестве контекста выполнения <code>this</code> предоставленное значение. В метод также передаётся набор аргументов, которые будут установлены перед переданными в привязанную функцию аргументами при её вызове.{{bug("429507")}}</td> - </tr> - </tbody> -</table> - -<h3 id="Новые_возможности_ECMAScript5">Новые возможности ECMAScript5</h3> - -<ul> - <li><code><a href="/en-US/docs/Web/JavaScript/Reference/Operators/get" title="JavaScript/Reference/Operators/Special Operators/get Operator">get</a></code> и <code><a href="/en-US/docs/Web/JavaScript/Reference/Operators/set" title="JavaScript/Reference/Operators/Special Operators/set Operator">set</a></code> операторы теперь позволяют идентификатору быть строкой или числом. {{bug("520696")}}</li> - <li><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/apply" title="JavaScript/Reference/Global Objects/Function/apply"><code>Function.apply()</code></a> может принимать в качестве списка аргументов не только настоящие массивы, но и подобные массивам объекты.</li> - <li><a href="/en-US/docs/Web/JavaScript/Reference/Functions_and_function_scope/Strict_mode" title="JavaScript/Strict mode">strict mode support</a></li> - <li><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/toString" title="JavaScript/Reference/Global Objects/Array/toString"><code>Array.toString()</code></a> теперь работает не только на массивах, возвращая либо результат вызова <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/join" title="JavaScript/Reference/Global Objects/Array/join"><code>join()</code></a> , если он доступен, либо вызова <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/toString" title="JavaScript/Reference/Global Objects/Object/toString">toString()</a>.</code></li> -</ul> - -<h3 id="Другая_работа_по_стандартизации">Другая работа по стандартизации</h3> - -<p>Различные нестандартизованные синтаксические конструкции задания геттеров/сеттеров были удалены; Определенный в ECMAScript 5 синтаксис изменениям не подвергся. Все они были несколько "эзотерическими" и довольно редко использовались на практике; если эти изменения Вас затронули, прочтите <a href="http://whereswalden.com/2010/04/16/more-spidermonkey-changes-ancient-esoteric-very-rarely-used-syntax-for-creating-getters-and-setters-is-being-removed/">эту статью</a>.</p> - -<h3 id="Новые_объекты">Новые объекты</h3> - -<table class="standard-table"> - <thead> - <tr> - <th scope="col">Объект</th> - <th scope="col">Описание</th> - </tr> - </thead> - <tbody> - <tr> - <td><code><a href="https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/Proxy" title="https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Proxy">Proxy</a></code></td> - <td>Предлагает поддержку при создании <code>Object</code> и <code>Function</code> прокси, что позволяет использовать метапрограммирование на JavaScript.</td> - </tr> - </tbody> -</table> - -<h2 id="Функциональность_изменённая_в_JavaScript_1.8.5">Функциональность, изменённая в JavaScript 1.8.5</h2> - -<ul> - <li>ISO 8601 поддерживается в <code>Date:</code> метод <a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/parse" title="https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/parse">parse()</a> объекта <a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date" title="https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date">Date</a> теперь допускает использование формата ISO 8601 для строкового представления даты.</li> - <li>Глобальные объекты стали доступны "только для чтения": глобальные объекты <a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/NaN" title="JavaScript/Reference/Global Objects/NaN"><code>NaN</code></a>, <a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Infinity" title="JavaScript/Reference/Global Objects/Infinity"><code>Infinity</code></a>, и <a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/undefined" title="JavaScript/Reference/Global Objects/undefined"><code>undefined</code></a> теперь доступны только для чтения по спецификации ECMAScript 5.</li> - <li><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/Parent" title="JavaScript/Reference/Global Objects/Object/Parent"><code>obj.__parent__</code></a> и <code>obj.__count__</code> устарели. Больше информации, почему это произошло: <a class="external" href="http://whereswalden.com/2010/05/07/spidermonkey-change-du-jour-the-special-__parent__-property-has-been-removed/" title="http://whereswalden.com/2010/05/07/spidermonkey-change-du-jour-the-special-__parent__-property-has-been-removed/">SpiderMonkey change du jour: the special __parent__ property has been removed</a> {{bug("551529")}} & {{bug("552560")}}.</li> - <li><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse" title="Using native JSON"><code>JSON.parse()</code></a> больше не допускает использование конечных запятых.</li> -</ul> diff --git a/files/ru/web/javascript/new_in_javascript/1.8/index.html b/files/ru/web/javascript/new_in_javascript/1.8/index.html deleted file mode 100644 index 8187682071..0000000000 --- a/files/ru/web/javascript/new_in_javascript/1.8/index.html +++ /dev/null @@ -1,38 +0,0 @@ ---- -title: New in JavaScript 1.8 -slug: Web/JavaScript/New_in_JavaScript/1.8 -tags: - - Версии -translation_of: Archive/Web/JavaScript/New_in_JavaScript/1.8 ---- -<div>{{jsSidebar("New_in_JS")}}</div> - -<p>Следующее описание относится к JavaScript 1.8. Эта версия была включена в <a href="/ru/docs/Firefox_3_for_developers">Firefox 3</a> является частью Gecko 1.9. {{ Bug("380236") }} – здесь вы можете просмотреть исправленные в процессе разработки JavaScript 1.8 баги.</p> - -<h2 id="Использование_JavaScript_1.8">Использование JavaScript 1.8</h2> - -<p>Чтобы воспользоваться преимуществами JavaScript 1.8, используйте следующий синтаксис подключения:</p> - -<pre class="brush: html"> <script type="application/javascript;version=1.8"> ... your code ... </script> -</pre> - -<p>Альтернативным методом является использование устаревшего аттрибута <code>language</code> тэга <code>script</code>. Для этого необходимо установить ему значение <code>JavaScript1.8</code>. Этот способ не рекомендуется к применению.</p> - -<p>При использовании <a href="/ru/docs/Web/JavaScript/JavaScript_шеллы" title="Introduction_to_the_JavaScript_shell">JavaScript шеллов</a>, JavaScript XPCOM компонент, или XUL <code><script></code> элементов, последняя версия JavaScript (JS1.8 в Mozilla 1.9) будет использована автоматически ({{ Bug(381031) }}, {{ Bug(385159) }}).</p> - -<p>Нововведения, которые используют ключевые слова <code>yield</code> и <code>let</code> требуют использования Javascript версии 1.7 или выше, потому как существующий код может использовать эти ключевые слова как названия переменных или функций. Остальные нововведения (например, генераторы) могут быть использованы без указания версии JavaScript.</p> - -<h2 id="Новое_в_JavaScript_1.8">Новое в JavaScript 1.8</h2> - -<ul> - <li><a href="/ru/docs/Web/JavaScript/Reference/Operators/Expression_Closures">Короткий синтаксис определения функций</a></li> - <li><a href="/ru/docs/Web/JavaScript/Guide/Iterators_and_Generators">Генераторы</a></li> - <li><a href="/ru/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce"><code>Array.prototype.reduce()</code></a></li> - <li><a href="/ru/docs/Web/JavaScript/Reference/Global_Objects/Array/ReduceRight"><code>Array.prototype.reduceRight()</code></a></li> -</ul> - -<h2 id="Изменения_в_JavaScript_1.8">Изменения в JavaScript 1.8</h2> - -<h3 id="Изменения_в_деструктивном_присваивании">Изменения в деструктивном присваивании</h3> - -<p>Багфикс, который был добавлен в JavaScript 1.8, решает проблему связанную с <a href="/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment" title="New in JavaScript 1.7">деструктивным присваиванием</a>, которое было введено в JavaScript 1.7. Изменен механизм деструктуризации массивов при использовании <code>for (var [a,b] in array)</code>. Ранее был доступен вызов в форме, описанной выше, однако это вызывало некорректное поведение цикла при работе с итераторами. Проблема решена ({{ Bug("366941") }}). Теперь следует использовать следующий синтаксис: <code>for ( var [key, value] in Iterator(array))</code>.</p> diff --git a/files/ru/web/javascript/new_in_javascript/ecmascript_5_support_in_mozilla/index.html b/files/ru/web/javascript/new_in_javascript/ecmascript_5_support_in_mozilla/index.html deleted file mode 100644 index 50fbcca8b5..0000000000 --- a/files/ru/web/javascript/new_in_javascript/ecmascript_5_support_in_mozilla/index.html +++ /dev/null @@ -1,46 +0,0 @@ ---- -title: Поддержка ECMAScript 5 в Mozilla -slug: Web/JavaScript/New_in_JavaScript/ECMAScript_5_support_in_Mozilla -tags: - - ECMAScript5 - - JavaScript - - Versions -translation_of: Archive/Web/JavaScript/New_in_JavaScript/ECMAScript_5_support_in_Mozilla ---- -<p>{{jsSidebar("New_in_JS")}}</p> - -<p>Стандарт ECMAScript 5.1, последнее издание стандарта, на котором основан язык JavaScript, был принят в июне 2011 года.</p> - -<p>Среда выполнения JavaScript, используемая в последних версиях проектов Mozilla, включающих Firefox и Thunderbird, имеет полную поддержку возможностей ECMAScript 5.1. Эта статья описывает возможности, поддерживаемые разными версиями среды выполнения JavaScript Mozilla.</p> - -<h2 id="Supported_features" name="Supported_features">Поддерживаемые возможности</h2> - -<h3 id="Added_in_JavaScript_1.8.5_(Gecko_2.2C_Firefox_4_and_later)" name="Added_in_JavaScript_1.8.5_(Gecko_2.2C_Firefox_4_and_later)">Добавленные в JavaScript 1.8.5 (Gecko 2, Firefox 4 и более поздние)</h3> - -<p>Firefox 4 имеет полную поддержку стандарта ECMAScript 5, включая методы <code>Object.*</code> и строгий режим. Смотрите статью <a href="/ru/docs/Web/JavaScript/New_in_JavaScript/1.8.5">Что нового в JavaScript 1.8.5</a>.</p> - -<h3 id="Added_in_JavaScript_1.8.1_(Gecko_1.9.1.2C_Firefox_3.5)" name="Added_in_JavaScript_1.8.1_(Gecko_1.9.1.2C_Firefox_3.5)">Добавленные в JavaScript 1.8.1 (Gecko 1.9.1, Firefox 3.5)</h3> - -<ul> - <li>Родная <a class="internal" href="/ru/docs/Web/JavaScript/Guide/Using_native_JSON">поддержка JSON</a>.</li> - <li>Метод {{jsxref("Object.getPrototypeOf()")}}.</li> - <li>Метод {{jsxref("String.trim()")}}, обрезающий пробельные символы с обеих концов строки.</li> - <li>Gecko 1.9.1.4 обновил реализацию метода {{jsxref("JSON.stringify()", "JSON.stringify()", "Converting_objects_into_JSON")}} для соответствия стандарту ECMAScript 5.</li> -</ul> - -<p>Реализованы улучшения в алгоритме разбора, внесённые ECMAScript 5. Изменения предотвращают рассмотрение XHTML в качестве кода на JavaScript, ранее происходившее в определённых обстоятельствах.</p> - -<h3 id="Added_in_JavaScript_1.6_(Gecko_1.8.2C_Firefox_1.5)" name="Added_in_JavaScript_1.6_(Gecko_1.8.2C_Firefox_1.5)">Добавленные в JavaScript 1.6 (Gecko 1.8, Firefox 1.5)</h3> - -<p>Новые методы {{jsxref("Global_Objects/Array", "Array")}}, предлагающие некоторые улучшенные возможности по манипулированию массивами, были частью JavaScript начиная с <a href="/ru/docs/Web/JavaScript/New_in_JavaScript/1.6">JavaScript 1.6</a>. Теперь они утверждены как часть стандарта ECMAScript 5.</p> - -<h2 id="See_also" name="See_also">Смотрите также</h2> - -<ul> - <li><a class="external" href="http://www.ecmascript.org/">Веб-сайт ECMAScript</a></li> - <li><a class="external" href="http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf">Спецификация стандарта ECMAScript 5.1</a></li> - <li><a class="external" href="http://es5.javascript.ru/">Перевод спецификации стандарта ECMAScript 5.1 с аннотациями на русский язык</a></li> - <li>Запись Джона Резига об <a class="external" href="http://ejohn.org/blog/objectgetprototypeof/">Object.getPrototypeOf</a></li> - <li>Реализация <a class="external" href="http://frugalcoder.us/post/2010/01/07/EcmaScript-5s-Date-Extensions.aspx">дат ECMAScript 5 в JavaScript</a> от Михаила Дж. Риана</li> - <li><a href="http://kangax.github.io/es5-compat-table/">Поддержка ECMAScript 5 среди браузеров</a></li> -</ul> diff --git a/files/ru/web/javascript/new_in_javascript/ecmascript_6_support_in_mozilla/index.html b/files/ru/web/javascript/new_in_javascript/ecmascript_6_support_in_mozilla/index.html deleted file mode 100644 index cfc66e9806..0000000000 --- a/files/ru/web/javascript/new_in_javascript/ecmascript_6_support_in_mozilla/index.html +++ /dev/null @@ -1,222 +0,0 @@ ---- -title: Поддержка ECMAScript 6 в Mozilla -slug: Web/JavaScript/New_in_JavaScript/ECMAScript_6_support_in_Mozilla -tags: - - ECMAScript6 - - JavaScript -translation_of: Archive/Web/JavaScript/New_in_JavaScript/ECMAScript_2015_support_in_Mozilla ---- -<p>{{jsSidebar("New_in_JS")}}</p> - -<p>ECMAScript 2015 - это новая версия стандарта, имеющая кодовое имя "Harmony","ES.next" или "ECMAScript 6". <a href="http://wiki.ecmascript.org/doku.php?id=harmony:specification_drafts">Черновая спецификация </a>может быть найдена в официальном вики ECMA. Первый рабочий черновик, основанный на ECMAScript 5.1, был опубликован 12 июля 2011 как "ES.next". По состоянию на август 2014 в ECMAScript 2015 больше не принимаются новые функции и ожидается окончание работы над ним в конце 2014 с официальной публикацией в марте 2015.</p> - -<p>Для получения обратной связи по стандартам ECMAScript используется канал <a href="https://mail.mozilla.org/listinfo/es-discuss">es-discuss</a>.</p> - -<h2 id="Поддерживаемые_функции">Поддерживаемые функции</h2> - -<p>Следующие функции уже реализованы в Firefox:</p> - -<h2 id="Стандартная_библиотека">Стандартная библиотека</h2> - -<h3 id="Дополнения_в_объекте_Array">Дополнения в объекте <code>Array</code></h3> - -<ul> - <li>Обход {{jsxref("Array")}} при помощи <code>for...of</code> (<a href="/en-US/Firefox/Releases/13">Firefox 13</a>)</li> - <li>{{jsxref("Array.from()")}} (<a href="/en-US/Firefox/Releases/32">Firefox 32</a>)</li> - <li>{{jsxref("Array.of()")}} (<a href="/en-US/Firefox/Releases/25">Firefox 25</a>)</li> - <li>{{jsxref("Array.prototype.fill()")}} (<a href="/en-US/Firefox/Releases/31">Firefox 31</a>)</li> - <li>{{jsxref("Array.prototype.find()")}}, {{jsxref("Array.prototype.findIndex()")}} (<a href="/en-US/Firefox/Releases/25">Firefox 25</a>)</li> - <li>{{jsxref("Array.prototype.entries()")}},<br> - {{jsxref("Array.prototype.keys()")}} (<a href="/en-US/Firefox/Releases/28">Firefox 28</a>)</li> - <li>{{jsxref("Array.prototype.copyWithin()")}} (<a href="/en-US/Firefox/Releases/32">Firefox 32</a>)</li> -</ul> - -<h3 id="Новые_объекты_Map_и_Set_и_их_слабые_аналоги">Новые объекты <code>Map</code> и <code>Set</code> и их слабые аналоги</h3> - -<ul> - <li>{{jsxref("Map")}} (<a href="/en-US/Firefox/Releases/13">Firefox 13</a>) - - <ul> - <li>Обход {{jsxref("Map")}} при помощи <code>for...of</code> (<a href="/en-US/Firefox/Releases/17">Firefox 17</a>)</li> - <li>{{jsxref("Map.prototype.forEach()")}} (<a href="/en-US/Firefox/Releases/25">Firefox 25</a>)</li> - <li>{{jsxref("Map.prototype.entries()")}},<br> - {{jsxref("Map.prototype.keys()")}},<br> - {{jsxref("Map.prototype.values()")}} (<a href="/en-US/Firefox/Releases/20">Firefox 20</a>)</li> - </ul> - </li> - <li>{{jsxref("Set")}} (<a href="/en-US/Firefox/Releases/13">Firefox 13</a>) - <ul> - <li>Обход {{jsxref("Set")}} при помощи <code>for...of</code> (<a href="/en-US/Firefox/Releases/17">Firefox 17</a>)</li> - <li>{{jsxref("Set.prototype.forEach()")}} (<a href="/en-US/Firefox/Releases/25">Firefox 25</a>)</li> - <li>{{jsxref("Set.prototype.entries()")}},<br> - {{jsxref("Set.prototype.keys()")}},<br> - {{jsxref("Set.prototype.values()")}} (<a href="/en-US/Firefox/Releases/24">Firefox 24</a>)</li> - </ul> - </li> - <li>{{jsxref("WeakMap")}} (<a href="/en-US/Firefox/Releases/6">Firefox 6</a>) - <ul> - <li>{{jsxref("WeakMap.clear()")}} (<a href="/en-US/Firefox/Releases/20">Firefox 20</a>)</li> - </ul> - </li> - <li>{{jsxref("WeakSet")}} (<a href="/en-US/Firefox/Releases/34">Firefox 34</a>)</li> -</ul> - -<h3 id="Новые_функции_в_объекте_Math">Новые функции в объекте <code>Math</code></h3> - -<ul> - <li>{{jsxref("Math.imul()")}} (<a href="/en-US/Firefox/Releases/20">Firefox 20</a>)</li> - <li>{{jsxref("Math.clz32()")}} (<a href="/en-US/Firefox/Releases/31">Firefox 31</a>)</li> - <li>{{jsxref("Math.fround()")}} (<a href="/en-US/Firefox/Releases/26">Firefox 26</a>)</li> - <li>{{jsxref("Math.log10()")}}, {{jsxref("Math.log2()")}}, {{jsxref("Math.log1p()")}}, {{jsxref("Math.expm1()")}}, {{jsxref("Math.cosh()")}}, {{jsxref("Math.sinh()")}}, {{jsxref("Math.tanh()")}}, {{jsxref("Math.acosh()")}}, {{jsxref("Math.asinh()")}}, {{jsxref("Math.atanh()")}}, {{jsxref("Math.hypot()")}}, {{jsxref("Math.trunc()")}}, {{jsxref("Math.sign()")}}, {{jsxref("Math.cbrt()")}} (<a href="/en-US/Firefox/Releases/25">Firefox 25</a>)</li> -</ul> - -<h3 id="Дополнения_в_объекте_Number">Дополнения в объекте <code>Number</code></h3> - -<ul> - <li>{{jsxref("Number.isNaN()")}} (<a href="/en-US/Firefox/Releases/16">Firefox 16</a>)</li> - <li>{{jsxref("Number.isFinite()")}} (<a href="/en-US/Firefox/Releases/16">Firefox 16</a>)</li> - <li>{{jsxref("Number.isInteger()")}} (<a href="/en-US/Firefox/Releases/16">Firefox 16</a>)</li> - <li>{{jsxref("Number.parseInt()")}} (<a href="/en-US/Firefox/Releases/25">Firefox 25</a>)</li> - <li>{{jsxref("Number.parseFloat()")}} (<a href="/en-US/Firefox/Releases/25">Firefox 25</a>)</li> - <li>{{jsxref("Number.EPSILON")}} (<a href="/en-US/Firefox/Releases/25">Firefox 25</a>)</li> - <li>{{jsxref("Number.MAX_SAFE_INTEGER")}}, {{jsxref("Number.MIN_SAFE_INTEGER")}} (<a href="/en-US/Firefox/Releases/31">Firefox 31</a>)</li> - <li>{{jsxref("Number.isSafeInteger()")}} (<a href="/en-US/Firefox/Releases/32">Firefox 32</a>)</li> -</ul> - -<h3 id="Дополнения_в_объекте_Object">Дополнения в объекте <code>Object</code></h3> - -<ul> - <li>{{jsxref("Object.is()")}} (<a href="/en-US/Firefox/Releases/22">Firefox 22</a>)</li> - <li>{{jsxref("Object.setPrototypeOf()")}} (<a href="/en-US/Firefox/Releases/31">Firefox 31</a>)</li> - <li>{{jsxref("Object.assign()")}} (<a href="/en-US/Firefox/Releases/34">Firefox 34</a>)</li> - <li>{{jsxref("Object.getOwnPropertySymbols()")}} (<a href="/en-US/Firefox/Releases/33">Firefox 33</a>)</li> -</ul> - -<h3 id="Новый_объект_Promise">Новый объект <code>Promise</code></h3> - -<ul> - <li>{{jsxref("Promise")}} (<a href="/en-US/Firefox/Releases/24">Firefox 24</a>, включён по умолчанию в <a href="/en-US/Firefox/Releases/29">Firefox 29</a>)</li> -</ul> - -<h3 id="Дополнения_в_объекте_RegExp">Дополнения в объекте <code>RegExp</code></h3> - -<ul> - <li>В {{jsxref("RegExp")}} добавлен "липкий" флаг (y) (<a href="/en-US/Firefox/Releases/3">Firefox 3</a>)</li> -</ul> - -<h3 id="Дополнения_в_объекте_String">Дополнения в объекте <code>String</code></h3> - -<ul> - <li>{{jsxref("String.fromCodePoint()")}} (<a href="/en-US/Firefox/Releases/29">Firefox 29</a>)</li> - <li>{{jsxref("String.prototype.codePointAt()")}} (<a href="/en-US/Firefox/Releases/29">Firefox 29</a>)</li> - <li>{{jsxref("String.prototype.startsWith()")}}, {{jsxref("String.prototype.endsWith()")}} (<a href="/en-US/Firefox/Releases/17">Firefox 17</a>)</li> - <li>{{jsxref("String.prototype.contains()")}} (<a href="/en-US/Firefox/Releases/17">Firefox 17</a>)</li> - <li>{{jsxref("String.prototype.repeat()")}} (<a href="/en-US/Firefox/Releases/24">Firefox 24</a>)</li> - <li>{{jsxref("String.prototype.normalize()")}} (<a href="/en-US/Firefox/Releases/31">Firefox 31</a>)</li> - <li>{{jsxref("String.raw()")}} (<a href="/en-US/Firefox/Releases/34">Firefox 34</a>)</li> -</ul> - -<h3 id="Новый_объект_Symbol">Новый объект <code>Symbol</code></h3> - -<ul> - <li>{{jsxref("Symbol")}} (<a href="/en-US/Firefox/Releases/36">Firefox 36</a>)</li> - <li>{{jsxref("Symbol.for()")}} - глобальный реестр символов</li> -</ul> - -<h3 id="Типизированные_массивы">Типизированные массивы</h3> - -<p>Типизированные массивы стали часть спецификации ECMAScript 2015, а не только <a href="https://www.khronos.org/registry/typedarray/specs/latest/">своей собственной</a>.</p> - -<ul> - <li>{{jsxref("ArrayBuffer")}}</li> - <li>{{jsxref("DataView")}}</li> - <li>{{jsxref("Int8Array")}}</li> - <li>{{jsxref("Uint8Array")}}</li> - <li>{{jsxref("Uint8ClampedArray")}}</li> - <li>{{jsxref("Int16Array")}}</li> - <li>{{jsxref("Uint16Array")}}</li> - <li>{{jsxref("Int32Array")}}</li> - <li>{{jsxref("Uint32Array")}}</li> - <li>{{jsxref("Float32Array")}}</li> - <li>{{jsxref("Float64Array")}}</li> -</ul> - -<h2 id="Выражения_и_операторы">Выражения и операторы</h2> - -<ul> - <li><a href="/ru/docs/Web/JavaScript/Reference/Operators/Spread_operator">Оператор распространения в массивах</a> (<a href="/en-US/Firefox/Releases/16">Firefox 16</a>)</li> - <li><a href="/ru/docs/Web/JavaScript/Reference/Operators/Spread_operator">Оператор распространения при вызовах функций</a> (<a href="/en-US/Firefox/Releases/27">Firefox 27</a>)</li> -</ul> - -<h2 id="Операторы">Операторы</h2> - -<ul> - <li><a href="/ru/docs/Web/JavaScript/Reference/Statements/for...of"><code>for...of</code></a> (<a href="/en-US/Firefox/Releases/13">Firefox 13</a>)</li> -</ul> - -<h2 id="Функции">Функции</h2> - -<ul> - <li><a href="/ru/docs/Web/JavaScript/Reference/Functions/Rest_parameters">Оставшиеся параметры</a> (<a href="/en-US/Firefox/Releases/15">Firefox 15</a>)</li> - <li><a href="/ru/docs/Web/JavaScript/Reference/Functions/Default_parameters">Параметры по умолчанию</a> (<a href="/en-US/Firefox/Releases/15">Firefox 15</a>)</li> - <li><a href="/ru/docs/Web/JavaScript/Reference/Functions/Arrow_functions">Стрелочные функции</a> (<a href="/en-US/Firefox/Releases/22">Firefox 22</a>)</li> -</ul> - -<h2 id="Другие_возможности">Другие возможности</h2> - -<ul> - <li><a href="/ru/docs/Web/JavaScript/Reference/Lexical_grammar#Numeric_literals">Двоичные и восьмеричные литералы</a> (<a href="/en-US/Firefox/Releases/25">Firefox 25</a>)</li> - <li>Вычисляемые названия свойств (<a href="/en-US/Firefox/Releases/34">Firefox 34</a>)</li> - <li><a href="/ru/docs/Web/JavaScript/Reference/template_strings">Шаблонные строки</a> (<a href="/en-US/Firefox/Releases/34">Firefox 34</a>)</li> -</ul> - -<h2 id="Стабилизируемые_и_обсуждаемые_функции">Стабилизируемые и обсуждаемые функции</h2> - -<p>Следующие функции частично реализованы в Firefox, но были добавлены до принятия стандарта ES2015 или ещё обсуждаются в стандарте ECMA TC39.</p> - -<ul> - <li><a href="/ru/docs/Web/JavaScript/Guide/Iterators_and_Generators">Устаревшие итераторы и генераторы</a> (<a href="/ru/docs/Web/JavaScript/New_in_JavaScript/1.7">JS 1.7</a>, <a href="/en-US/Firefox/Releases/2">Firefox 2</a>) - - <ul> - <li>Итераторы и <a href="/ru/docs/Web/JavaScript/Reference/Statements/function*">генераторы</a> ES2015 реализованы в Firefox 26 и выше.</li> - </ul> - </li> - <li><a href="/ru/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment">Деструктивное присваивание</a> (<a href="/ru/docs/Web/JavaScript/New_in_JavaScript/1.7">JS 1.7</a>, <a href="/en-US/Firefox/Releases/2">Firefox 2</a>) (соответствие ES2015 {{bug("950547")}})</li> - <li>{{jsxref("Statements/const", "const")}} (<a href="/ru/docs/Web/JavaScript/New_in_JavaScript/1.5">JS 1.5</a>, Firefox 1.0) (соответствие ES2015 {{bug("950547")}})</li> - <li>{{jsxref("Statements/let", "let")}} (<a href="/ru/docs/Web/JavaScript/New_in_JavaScript/1.7">JS 1.7</a>, <a href="/en-US/Firefox/Releases/2">Firefox 2</a>) (соответствие ES2015 {{bug("950547")}})</li> - <li>{{jsxref("Proxy", "Прокси")}} (<a href="/en-US/Firefox/Releases/18">Firefox 18</a>) (соответствие ES2015 {{bug("978228")}})</li> -</ul> - -<h2 id="Не_реализованные_функции">Не реализованные функции</h2> - -<p>Следующие функции включены в черновик спецификации ECMAScript 2015, но пока не реализованы в Firefox:</p> - -<ul> - <li>Module ({{bug("568953")}}) - <ul> - <li>Loader API</li> - <li><code>import</code> синтаксис</li> - <li><code>export</code> синтаксис</li> - </ul> - </li> - <li><code>class</code> синтаксис ({{bug("837314")}})</li> - <li>{{jsxref("Array.prototype.values()")}} ({{bug("875433")}})</li> - <li>Reflect API ({{bug("987514")}})</li> - <li>Экранирование \u{nnnnnn} в Unicode ({{bug("952985")}})</li> - <li>Широко используемые символы</li> - <li>{{jsxref("RegExp.prototype.match()")}},<br> - {{jsxref("RegExp.prototype.replace()")}},<br> - {{jsxref("RegExp.prototype.search()")}},<br> - {{jsxref("RegExp.prototype.split()")}}</li> - <li>Флаг "u" в RegExp</li> - <li>{{jsxref("Function.prototype.toMethod()")}}</li> -</ul> - -<h2 id="Смотрите_также">Смотрите также</h2> - -<ul> - <li><a href="http://www.ecmascript.org/">Сайт ECMAScript</a></li> - <li><a href="http://wiki.ecmascript.org/doku.php?id=harmony:specification_drafts">Черновик спецификации ECMAScript 2015</a></li> - <li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=694100">Система отслеживания ошибок Mozilla ES2015</a></li> - <li><a href="http://kangax.github.io/es5-compat-table/es6" title="http://kangax.github.io/es5-compat-table">Поддержка ECMAScript 2015 в различных браузерах</a></li> -</ul> diff --git a/files/ru/web/javascript/new_in_javascript/index.html b/files/ru/web/javascript/new_in_javascript/index.html deleted file mode 100644 index f01f13834f..0000000000 --- a/files/ru/web/javascript/new_in_javascript/index.html +++ /dev/null @@ -1,80 +0,0 @@ ---- -title: Что нового в JavaScript -slug: Web/JavaScript/New_in_JavaScript -tags: - - JavaScript - - Versions -translation_of: Archive/Web/JavaScript/New_in_JavaScript ---- -<p>{{jsSidebar("New_in_JS")}}</p> - -<p>Эта глава содержит информацию об истории версий JavaScript и статусе их реализаций в основанных на Mozilla/SpiderMonkey JavaScript-приложениях, таких, как Firefox.</p> - -<h2 id="ECMAScript_versions" name="ECMAScript_versions">Версии ECMAScript</h2> - -<dl> - <dt><a href="/ru/docs/Web/JavaScript/Language_Resources">Ресурсы по языку</a></dt> - <dd>Узнайте больше о стандартах ECMAScript, на которых основывается язык JavaScript.</dd> - <dt><a href="/ru/docs/Web/JavaScript/New_in_JavaScript/ECMAScript_5_support_in_Mozilla">Поддержка ECMAScript 5</a></dt> - <dd>Статус реализации стандарта ECMA-262 5-го издания в Firefox.</dd> - <dt><a href="/ru/docs/Web/JavaScript/New_in_JavaScript/ECMAScript_6_support_in_Mozilla">Поддержка ECMAScript 6</a></dt> - <dd>Статус реализации стандарта ECMA-262 6-го издания в Firefox.</dd> - <dt><a href="/ru/docs/Web/JavaScript/New_in_JavaScript/ECMAScript_7_support_in_Mozilla">Поддержка ECMAScript 7</a></dt> - <dd>Статус реализации стандарта ECMA-262 7-го издания в Firefox.</dd> -</dl> - -<h2 id="JavaScript_release_notes" name="JavaScript_release_notes">Замечания к выпускам JavaScript</h2> - -<dl> - <dt><a href="/ru/docs/Web/JavaScript/New_in_JavaScript/Firefox_JavaScript_changelog">Список изменений в JavaScript браузера Firefox</a></dt> - <dd>Смотрите этот список изменений, чтобы узнать, какие возможности JavaScript реализованы в Firefox 5 и выше.</dd> - <dt>Список изменений в JavaScript браузера Chrome</dt> - <dd>(TODO). Смотрите этот список изменений, чтобы узнать, какие возможности JavaScript реализованы в выпусках Chrome.</dd> -</dl> - -<h2 id="JavaScript_versions" name="JavaScript_versions">Версии JavaScript</h2> - -<p><strong>Устарело</strong> ({{deprecated_inline}}). Явное версионирование и выбор возможностей языка было особенностью Mozilla и <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=867609">она находится в процессе удаления</a>. Firefox 4 был последней версией, ссылающийся на версию JavaScript (1.8.5). С новыми стандартами ECMA возможности языка JavaScript часто упоминаются вместе с их первоначальным определением в изданиях ECMA-262, например, с 6-м изданием (ES6).</p> - -<p>JavaScript версии 1.0 был выпущен в марте 1996 года в браузерах Netscape Navigator 2.0 и Internet Explorer 2.0.</p> - -<dl> - <dt><a href="/ru/docs/Web/JavaScript/New_in_JavaScript/1.1">JavaScript 1.1</a></dt> - <dd>Версия, содержащаяся в браузере Netscape Navigator 3.0. Выпущен 19 августа 1996 года.</dd> - <dt><a href="/ru/docs/Web/JavaScript/New_in_JavaScript/1.2">JavaScript 1.2</a></dt> - <dd>Версия, содержащаяся в браузерах Netscape Navigator 4.0-4.05. Выпущен 11 июня 1997 года.</dd> - <dt><a href="/ru/docs/Web/JavaScript/New_in_JavaScript/1.3">JavaScript 1.3</a></dt> - <dd>Версия, содержащаяся в браузерах Netscape Navigator 4.06-4.7x. Выпущен 19 октября 1998 года.<br> - Работа по стандартизации и совместимости с 1-м и 2-м изданиями ECMA-262.</dd> - <dt><a href="/ru/docs/Web/JavaScript/New_in_JavaScript/1.4">JavaScript 1.4</a></dt> - <dd>Версия, содержащаяся в серверном JavaScript Netscape. Выпущен в 1999 году.</dd> - <dt><a href="/ru/docs/Web/JavaScript/New_in_JavaScript/1.5">JavaScript 1.5</a></dt> - <dd>Версия, содержащаяся в браузерах Netscape Navigator 6.0 и Firefox 1.0. Выпущен 14 ноября 2000 года.<br> - Работа по стандартизации и совместимости с 3-им изданием ECMA-262.</dd> - <dt><a href="/ru/docs/Web/JavaScript/New_in_JavaScript/1.6">JavaScript 1.6</a></dt> - <dd>Версия, содержащаяся в браузере Firefox 1.5. Выпущен в ноябре 2005 года.<br> - Включает ECMAScript для XML (E4X), новые методы объекта <code>Array</code>, плюс обобщённые методы объектов <code>String</code> и <code>Array</code>.</dd> - <dt><a href="/ru/docs/Web/JavaScript/New_in_JavaScript/1.7">JavaScript 1.7</a></dt> - <dd>Версия, содержащаяся в браузере Firefox 2. Выпущен в октябре 2006 года.<br> - Включает генераторы, итераторы, выражения заполнения массива, выражения <code>let</code> и реструктуризующее присваивание.</dd> - <dt><a href="/ru/docs/Web/JavaScript/New_in_JavaScript/1.8">JavaScript 1.8</a></dt> - <dd>Версия, содержащаяся в браузере Firefox 3. Выпущен в июне 2008 года.<br> - Включает выражения замыкания, выражения-генераторы и метод <code>Array.reduce()</code>.</dd> - <dt><a href="/ru/docs/Web/JavaScript/New_in_JavaScript/1.8.1">JavaScript 1.8.1</a></dt> - <dd>Версия, содержащаяся в браузере Firefox 3.5. Выпущен 30 июня 2009 года.<br> - Включает компилятор TraceMonkey JIT и поддержку родного JSON.</dd> - <dt>JavaScript 1.8.2</dt> - <dd>Версия, содержащаяся в браузере Firefox 3.6. Выпущен 22 июня 2009 года.<br> - Включает только незначительные изменения.</dd> - <dt><a href="/ru/docs/Web/JavaScript/New_in_JavaScript/1.8.5">JavaScript 1.8.5</a></dt> - <dd>Версия, содержащаяся в браузере Firefox 4. Выпущен 27 июля 2010 года.<br> - Включает множество новых возможностей, соответствующих 5-му изданию ECMA-262.<br> - Это последняя версия JavaScript.</dd> -</dl> - -<h2 id="Features_still_requiring_version_opt-in" name="Features_still_requiring_version_opt-in">Возможности, всё ещё требующие определённой версии</h2> - -<dl> - <dt><a href="/ru/docs/Web/JavaScript/Reference/Statements/let">инструкция <code>let</code></a></dt> - <dd>Инструкция <code>let</code> требует версии JavaScript 1.7.</dd> -</dl> diff --git a/files/ru/web/javascript/reference/functions/arguments/caller/index.html b/files/ru/web/javascript/reference/functions/arguments/caller/index.html deleted file mode 100644 index 0b6fe5cc4b..0000000000 --- a/files/ru/web/javascript/reference/functions/arguments/caller/index.html +++ /dev/null @@ -1,100 +0,0 @@ ---- -title: arguments.caller -slug: Web/JavaScript/Reference/Functions/arguments/caller -tags: - - Functions - - JavaScript - - Obsolete - - Property - - arguments -translation_of: Archive/Web/JavaScript/arguments.caller ---- -<div>{{jsSidebar("Functions")}}</div> - -<p>Устаревшее свойство <strong><code>arguments.caller</code></strong> использовалось для того, чтобы определить источник вызова функции, выполняющейся в текущий момент времени. Данное свойство было удалено и больше не работает.</p> - -<h2 id="Описание">Описание</h2> - -<p>Данное свойство больше не доступно, но вы все так же можете использовать {{jsxref("Function.caller")}}.</p> - -<pre class="brush: js">function whoCalled() { - if (whoCalled.caller == null) - console.log('Меня вызвали из глобальной области видимости.'); - else - console.log(whoCalled.caller + ' вызвал меня!'); -}</pre> - -<h2 id="Примеры">Примеры</h2> - -<p>Код, приведенный ниже, больше не работает, но раньше он использовался для проверки значения <code>arguments.caller</code> функции.</p> - -<pre class="brush: js example-bad">function whoCalled() { - if (arguments.caller == null) - console.log('Меня вызвали из глобальной области видимости.'); - else - console.log(arguments.caller + ' вызвал меня!'); -} -</pre> - -<h2 id="Спецификации">Спецификации</h2> - -<p>Не является частью какого-либо стандарта. Реализовано в JavaScript 1.1 и удалено в {{bug(7224)}}, поскольку влекло за собой потенциальную уязвимость.</p> - -<h2 id="Совместимость_с_браузерами">Совместимость с браузерами</h2> - -<p>{{CompatibilityTable}}</p> - -<div id="compat-desktop"> -<table class="compat-table"> - <tbody> - <tr> - <th>Возможность</th> - <th>Chrome</th> - <th>Firefox (Gecko)</th> - <th>Internet Explorer</th> - <th>Opera</th> - <th>Safari</th> - </tr> - <tr> - <td>Базовая поддержка</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}<br> - <a href="https://msdn.microsoft.com/en-US/library/gg622933(v=vs.85).aspx">удалено в IE 9</a></td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - </tr> - </tbody> -</table> -</div> - -<div id="compat-mobile"> -<table class="compat-table"> - <tbody> - <tr> - <th>Возможность</th> - <th>Android</th> - <th>Chrome for Android</th> - <th>Firefox Mobile (Gecko)</th> - <th>IE Mobile</th> - <th>Opera Mobile</th> - <th>Safari Mobile</th> - </tr> - <tr> - <td>Базовая поддержка</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - </tr> - </tbody> -</table> -</div> - -<h2 id="Смотрите_также">Смотрите также</h2> - -<ul> - <li>{{jsxref("Function")}}</li> -</ul> diff --git a/files/ru/web/javascript/reference/global_objects/array/observe/index.html b/files/ru/web/javascript/reference/global_objects/array/observe/index.html deleted file mode 100644 index f8d7d9cd07..0000000000 --- a/files/ru/web/javascript/reference/global_objects/array/observe/index.html +++ /dev/null @@ -1,138 +0,0 @@ ---- -title: Array.observe() -slug: Web/JavaScript/Reference/Global_Objects/Array/observe -tags: - - Array - - ECMAScript7 - - Experimental - - Expérimental(2) - - JavaScript - - Method - - Reference - - Référence(2) -translation_of: Archive/Web/JavaScript/Array.observe ---- -<div>{{JSRef("Global_Objects", "Array")}}</div> - -<h2 id="Summary" name="Summary">Сводка</h2> - -<p>Метод <strong><code>Array.observe()</code></strong> используется для асинхронного обзора изменений в массивах, подобно тому, как метод {{jsxref("Object.observe()")}} используется для тех же целей для объектов. Он предоставляет поток изменений в порядке их возникновения.</p> - -<h2 id="Syntax" name="Syntax">Синтаксис</h2> - -<pre class="syntaxbox"><code>Array.observe(<var>arr</var>, <var>callback</var>)</code></pre> - -<h3 id="Parameters" name="Parameters">Параметры</h3> - -<dl> - <dt><code>arr</code></dt> - <dd>Обозреваемый массив.</dd> - <dt><code>callback</code></dt> - <dd>Функция, вызываемая на каждое сделанное изменение со следующими аргументами: - <dl> - <dt><code>changes</code></dt> - <dd>Массив объектов, каждый из которых представляет одно изменение. Эти объекты обладают следующими свойствами: - <ul> - <li><strong><code>name</code></strong>: название изменённого свойства.</li> - <li><strong><code>object</code></strong>: изменённый массив, после применения этого изменения.</li> - <li><strong><code>type</code></strong>: строка, указывающая тип произошедшего изменения. Может быть одной из <code>"add"</code>, <code>"update"</code>, <code>"delete"</code> или <code>"splice"</code>.</li> - <li><strong><code>oldValue</code></strong>: только для типов <code>"update"</code> и <code>"delete"</code>. Значение до изменения.</li> - <li><strong><code>index</code></strong>: только для типа <code>"splice"</code>. Индекс, по которому произошло изменение.</li> - <li><strong><code>removed</code></strong>: только для типа <code>"splice"</code>. Массив с удалёнными элементами.</li> - <li><strong><code>addedCount</code></strong>: только для типа <code>"splice"</code>. Количество добавленных элементов.</li> - </ul> - </dd> - </dl> - </dd> -</dl> - -<h2 id="Description" name="Description">Описание</h2> - -<p>Функция <code>callback</code> вызывается каждый раз, когда с массивом <code>arr</code> происходят какие-либо изменения. Параметром в неё передаётся массив со всеми произошедшими изменениями в порядке их возникновения.</p> - -<div class="note"> -<p>Изменения через методы объекта {{jsxref("Array")}}, например, посредством метода {{jsxref("Array.prototype.pop()")}}, будут зарегистрированы как изменения типа <code>"splice"</code>. Присваивание по индексу, в результате которого размер массива не изменится, может быть зарегистрировано, как изменение типа <code>"update"</code>.</p> -</div> - -<h2 id="Examples" name="Examples">Примеры</h2> - -<h3 id="Example:_Logging_all_three_different_types" name="Example:_Logging_all_three_different_types">Пример: журналирование всех трёх типов событий</h3> - -<pre class="brush: js">var arr = ['a', 'b', 'c']; - -Array.observe(arr, function(changes) { - console.log(changes); -}); - -arr[1] = 'B'; -// [{type: 'update', object: <arr>, name: '1', oldValue: 'b'}] - -arr[3] = 'd'; -// [{type: 'splice', object: <arr>, index: 3, removed: [], addedCount: 1}] - -arr.splice(1, 2, 'beta', 'gamma', 'delta'); -// [{type: 'splice', object: <arr>, index: 1, removed: ['B', 'c', 'd'], addedCount: 3}] -</pre> - -<h2 id="Specifications" name="Specifications">Спецификации</h2> - -<p><a href="https://github.com/arv/ecmascript-object-observe">Черновое предложение к обсуждению для ECMAScript 7</a>.</p> - -<h2 id="Browser_compatibility" name="Browser_compatibility">Совместимость с браузерами</h2> - -<div>{{CompatibilityTable}}</div> - -<div id="compat-desktop"> -<table class="compat-table"> - <tbody> - <tr> - <th>Возможность</th> - <th>Chrome</th> - <th>Firefox (Gecko)</th> - <th>Internet Explorer</th> - <th>Opera</th> - <th>Safari</th> - </tr> - <tr> - <td>Базовая поддержка</td> - <td>{{CompatChrome("36")}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - </tr> - </tbody> -</table> -</div> - -<div id="compat-mobile"> -<table class="compat-table"> - <tbody> - <tr> - <th>Возможность</th> - <th>Android</th> - <th>Chrome для Android</th> - <th>Firefox Mobile (Gecko)</th> - <th>IE Mobile</th> - <th>Opera Mobile</th> - <th>Safari Mobile</th> - </tr> - <tr> - <td>Базовая поддержка</td> - <td>{{CompatNo}}</td> - <td>{{CompatVersionUnknown}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - </tr> - </tbody> -</table> -</div> - -<h2 id="See_also" name="See_also">Смотрите также</h2> - -<ul> - <li>{{jsxref("Array.unobserve()")}} {{experimental_inline}}</li> - <li>{{jsxref("Object.observe()")}} {{experimental_inline}}</li> -</ul> diff --git a/files/ru/web/javascript/reference/global_objects/date/tolocaleformat/index.html b/files/ru/web/javascript/reference/global_objects/date/tolocaleformat/index.html deleted file mode 100644 index af33b9da2f..0000000000 --- a/files/ru/web/javascript/reference/global_objects/date/tolocaleformat/index.html +++ /dev/null @@ -1,73 +0,0 @@ ---- -title: Date.prototype.toLocaleFormat() -slug: Web/JavaScript/Reference/Global_Objects/Date/toLocaleFormat -tags: - - Date - - JavaScript - - Method - - Non-standard - - Prototype - - Reference -translation_of: Archive/Web/JavaScript/Date.toLocaleFormat ---- -<div>{{JSRef}} {{non-standard_header}}</div> - -<p>Нестандартный метод <strong><code>toLocaleFormat()</code></strong> преобразует дату в строку, используя указанное форматирование. Объект {{jsxref("Global_Objects/DateTimeFormat", "Intl.DateTimeFormat")}} является совместимой со стандартами альтернативой при форматировании дат. Так же смотрите новую версию метода {{jsxref("Date.prototype.toLocaleDateString()")}}.</p> - -<h2 id="Syntax" name="Syntax">Синтаксис</h2> - -<pre class="syntaxbox"><code><var>dateObj</var>.toLocaleFormat(<var>formatString</var>)</code></pre> - -<h3 id="Parameters" name="Parameters">Параметры</h3> - -<dl> - <dt><code>formatString</code></dt> - <dd>Строка формата в той же форме, что ожидается функцией C <a class="external" href="http://www.opengroup.org/onlinepubs/007908799/xsh/strftime.html"><code>strftime()</code></a>.</dd> -</dl> - -<h2 id="Description" name="Description">Описание</h2> - -<p>Метод <code>toLocaleFormat()</code> обеспечивает больший контроль программного обеспечения над форматированием генерируемых даты и/или времени. Названия месяцев и дней недели локализуются с помощью локали операционной системы. Однако, порядок дней и месяцев и другие задачи локализации автоматически не обрабатываются, так как эти аспекты контролируете вы. Вы должны позаботиться о том, что строка формата была правильно локализована в соответствии с настройками системы пользователя. Знайте, что используемая локаль не обязательно совпадает с локалью браузера.</p> - -<p>Разработчики расширений и XULRunner должны знать, что загрузку строки формата их файлов <code>.dtd</code> или <code>.properties</code> через URI <code>chrome://<em>somedomain</em>/locale/<em>somefile.ext</em></code> нужно <strong>избегать</strong>, поскольку файлы <code>.dtd</code>/<code>.properties</code> и метод <code>toLocaleFormat()</code> не обязательно используют одну и ту же локаль, из-за чего результат может выглядеть странно, неоднозначно или даже нечитаемо.</p> - -<p>Также обратите внимание, что поведение локали зависит от платформы и пользователь может настроить эту локаль, так что использование системной локали для выбора строки формата в некоторых случаях может быть даже неадекватным. Вы можете рассмотреть возможность использования более общих методов <code>toLocale*</code> объекта {{jsxref("Global_Objects/Date", "Date")}}, либо написать свою собственную локализацию даты, используя для её отображения методы <code>get*</code> объекта {{jsxref("Global_Objects/Date", "Date")}}.</p> - -<h2 id="Examples" name="Examples">Примеры</h2> - -<h3 id="Example_Using_toLocaleFormat" name="Example:_Using_toLocaleFormat">Пример: использование метода <code>toLocaleFormat()</code></h3> - -<pre class="brush: js">var today = new Date(); -var date = today.toLocaleFormat('%A, %B %e, %Y'); // плохой пример -</pre> - -<p>В примере выше метод <code>toLocaleFormat()</code> возвращает строку вида "Wednesday, October 3, 2007". обратите внимание, что строка формата в данном примере не локализуется должным образом, что приводит к проблемам, описанным выше.</p> - -<h2 id="Specifications" name="Specifications">Библиотеки</h2> - -<p>Вы можете использовать библиотеку <a href="https://github.com/abritinthebay/datejs/wiki/Format-Specifiers">DateJS</a>, если {{jsxref("Date.prototype.toLocaleDateString","Date.prototype.toLocaleDateString()")}} недоступен:</p> - -<pre class="brush: js line-numbers language-js"><code class="language-js"><span class="keyword token">if</span> <span class="punctuation token">(</span><span class="operator token">!</span><span class="class-name token">Date</span><span class="punctuation token">.</span>prototype<span class="punctuation token">.</span>toLocaleFormat<span class="punctuation token">)</span> <span class="punctuation token">{</span> - <span class="punctuation token">(</span><span class="keyword token">function</span><span class="punctuation token">(</span><span class="punctuation token">)</span> <span class="punctuation token">{</span> - <span class="class-name token">Date</span><span class="punctuation token">.</span>prototype<span class="punctuation token">.</span><span class="function function-variable token">toLocaleFormat</span> <span class="operator token">=</span> <span class="keyword token">function</span><span class="punctuation token">(</span><span class="parameter token">formatString</span><span class="punctuation token">)</span> <span class="punctuation token">{</span> - <span class="keyword token">return</span> <span class="keyword token">this</span><span class="punctuation token">.</span><span class="function token">format</span><span class="punctuation token">(</span>formatString<span class="punctuation token">)</span><span class="punctuation token">;</span> - <span class="punctuation token">}</span><span class="punctuation token">;</span> - <span class="punctuation token">}</span><span class="punctuation token">(</span><span class="punctuation token">)</span><span class="punctuation token">)</span><span class="punctuation token">;</span> -<span class="punctuation token">}</span></code></pre> - -<h2 id="Specifications" name="Specifications">Спецификации</h2> - -<p>Не является частью какой-либо спецификации. Реализована в JavaScript 1.6.</p> - -<h2 id="Browser_compatibility" name="Browser_compatibility">Совместимость с браузерами</h2> - -<div>{{Compat("javascript.builtins.Date.toLocaleFormat")}}</div> - -<h2 id="See_also" name="See_also">Смотрите также</h2> - -<ul> - <li>{{jsxref("Global_Objects/DateTimeFormat", "Intl.DateTimeFormat")}}</li> - <li>{{jsxref("Date.prototype.toLocaleString()")}}</li> - <li>{{jsxref("Date.prototype.toLocaleDateString()")}}</li> - <li>{{jsxref("Date.prototype.toLocaleTimeString()")}}</li> -</ul> diff --git a/files/ru/web/javascript/reference/global_objects/function/arity/index.html b/files/ru/web/javascript/reference/global_objects/function/arity/index.html deleted file mode 100644 index 8bcd00363b..0000000000 --- a/files/ru/web/javascript/reference/global_objects/function/arity/index.html +++ /dev/null @@ -1,30 +0,0 @@ ---- -title: Function.arity -slug: Web/JavaScript/Reference/Global_Objects/Function/arity -tags: - - Function - - JavaScript - - Obsolete - - Property - - Unimplemented -translation_of: Archive/Web/JavaScript/Function.arity ---- -<div>{{JSRef}}{{Obsolete_Header}}</div> - -<p class="note">Свойство <code><strong>arity</strong></code> использовалось для возврата количества ожидаемых функцией аргументов, однако, оно больше не существует и было заменено свойством {{JSxRef("Function.prototype.length")}}.</p> - -<h2 id="Specifications" name="Specifications">Спецификации</h2> - -<p>Реализовано в JavaScript 1.2. Устарело в JavaScript 1.4.</p> - -<h2 id="Browser_compatibility" name="Browser_compatibility">Совместимость с браузерами</h2> - -<div class="hidden">Таблица совместимости на данной странице составлена из структурированных данных. Чтобы поучаствовать в работе над данными, пожалуйста, обратитесь к репозиторию <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> и отправьте нам запрос на включение изменений.</div> - -<p>{{Compat("javascript.builtins.Function.arity")}}</p> - -<h2 id="See_also" name="See_also">Смотрите также</h2> - -<ul> - <li>{{JSxRef("Function.prototype.length")}}</li> -</ul> diff --git a/files/ru/web/javascript/reference/global_objects/function/isgenerator/index.html b/files/ru/web/javascript/reference/global_objects/function/isgenerator/index.html deleted file mode 100644 index e3a972e9e2..0000000000 --- a/files/ru/web/javascript/reference/global_objects/function/isgenerator/index.html +++ /dev/null @@ -1,83 +0,0 @@ ---- -title: Function.prototype.isGenerator() -slug: Web/JavaScript/Reference/Global_Objects/Function/isGenerator -tags: - - Function - - JavaScript - - Method - - Non-standard -translation_of: Archive/Web/JavaScript/Function.isGenerator ---- -<div> - {{JSRef("Global_Objects", "Function")}} {{non-standard_header}}</div> -<h2 id="Summary" name="Summary">Сводка</h2> -<p>Метод <code><strong>isGenerator()</strong></code> определяет, является ли функция <a href="/ru/docs/Web/JavaScript/Guide/Iterators_and_Generators#Generators.3A_a_better_way_to_build_Iterators">генератором</a>.</p> -<h2 id="Syntax" name="Syntax">Синтаксис</h2> -<pre class="syntaxbox"><code><var>fun</var>.isGenerator()</code></pre> -<h2 id="Description" name="Description">Описание</h2> -<p>Метод <code>isGenerator()</code> определяет, является ли функция <em><code>fun</code></em> <a href="/ru/docs/Web/JavaScript/Guide/Iterators_and_Generators#Generators.3A_a_better_way_to_build_Iterators">генератором</a>. Он является частью раннего предложения Harmony, но не был включён в спецификацию ECMAScript 6.</p> -<h2 id="Examples" name="Examples">Примеры</h2> -<pre class="brush: js">function f() {} - -function g() { - yield 42; -} - -console.log('f.isGenerator() = ' + f.isGenerator()); // f.isGenerator() = false -console.log('g.isGenerator() = ' + g.isGenerator()); // g.isGenerator() = true -</pre> -<h2 id="Specifications" name="Specifications">Спецификации</h2> -<p>Не является частью какой-либо спецификации. Реализована в JavaScript 1.8.6.</p> -<h2 id="Browser_compatibility" name="Browser_compatibility">Совместимость с браузерами</h2> -<div> - {{CompatibilityTable}}</div> -<div id="compat-desktop"> - <table class="compat-table"> - <tbody> - <tr> - <th>Возможность</th> - <th>Chrome</th> - <th>Firefox (Gecko)</th> - <th>Internet Explorer</th> - <th>Opera</th> - <th>Safari</th> - </tr> - <tr> - <td>Базовая поддержка</td> - <td>{{CompatNo}}</td> - <td>{{CompatGeckoDesktop("5.0")}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - </tr> - </tbody> - </table> -</div> -<div id="compat-mobile"> - <table class="compat-table"> - <tbody> - <tr> - <th>Возможность</th> - <th>Android</th> - <th>Chrome для Android</th> - <th>Firefox Mobile (Gecko)</th> - <th>IE Mobile</th> - <th>Opera Mobile</th> - <th>Safari Mobile</th> - </tr> - <tr> - <td>Базовая поддержка</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatGeckoMobile("5.0")}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - </tr> - </tbody> - </table> -</div> -<h2 id="See_also" name="See_also">Смотрите также</h2> -<ul> - <li><a href="/ru/docs/Web/JavaScript/Guide/Iterators_and_Generators">Итераторы и генераторы</a></li> -</ul> diff --git a/files/ru/web/javascript/reference/global_objects/iterator/index.html b/files/ru/web/javascript/reference/global_objects/iterator/index.html deleted file mode 100644 index 0a55a44af9..0000000000 --- a/files/ru/web/javascript/reference/global_objects/iterator/index.html +++ /dev/null @@ -1,138 +0,0 @@ ---- -title: Iterator -slug: Web/JavaScript/Reference/Global_Objects/Iterator -tags: - - JavaScript - - Reference -translation_of: Archive/Web/Iterator ---- -<div>{{jsSidebar("Objects")}}</div> - -<div> </div> - -<div class="blockIndicator warning"> -<p><strong>Non-standard.</strong> The <code><strong>Iterator</strong></code> function is a SpiderMonkey-specific feature, and will be removed at some point. For future-facing usages, consider using <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...of" title="/en-US/docs/Web/JavaScript/Reference/Statements/for...of">for..of</a> loops and the <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/The_Iterator_protocol">iterator protocol</a>.</p> -</div> - -<p>The <code><strong>Iterator</strong></code> function returns an object which implements legacy iterator protocol and iterates over enumerable properties of an object.</p> - -<h2 id="Syntax">Syntax</h2> - -<pre>Iterator(<var>object</var>, [keyOnly])</pre> - -<h3 id="Parameters">Parameters</h3> - -<dl> - <dt><code>object</code></dt> - <dd>Object to iterate over properties.</dd> - <dt><code>keyOnly</code></dt> - <dd>If <code>keyOnly</code> is truthy value, <code>Iterator.prototype.next</code> returns <code>property_name</code> only.</dd> -</dl> - -<h2 id="Description">Description</h2> - -<p>Returns <code>Iterator</code> instance that iterates over <code>object</code>. <code>Iterator</code> instance returns <code>[property_name, property_value]</code> array for each iteration if <code>keyOnly</code> is falsy, otherwise, if <code>keyOnly</code> is truthy, it returns <code>property_name</code> for each iteration. If <code>object</code> is the <code>Iterator</code> instance or Generator instance, it returns <code>object</code> itself.</p> - -<h2 id="Properties">Properties</h2> - -<dl> - <dt><code><strong>Iterator.prototype[@@iterator]</strong></code></dt> - <dd>Returns a function that returns iterator object.</dd> -</dl> - -<h2 id="Methods">Methods</h2> - -<dl> - <dt><code><strong>Iterator.prototype.next</strong></code></dt> - <dd>Returns next item in the <code>[property_name, property_value]</code> format or <code>property_name</code> only. It throws <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/StopIteration">StopIteration</a></code> if there are no more items.</dd> -</dl> - -<h2 id="Examples">Examples</h2> - -<h3 id="Iterating_over_properties_of_an_object">Iterating over properties of an object</h3> - -<pre><code>var a = { - x: 10, - y: 20, -}; -var iter = Iterator(a); -console.log(iter.next()); // ["x", 10] -console.log(iter.next()); // ["y", 20] -console.log(iter.next()); // throws StopIteration</code></pre> - -<h3 id="Iterating_over_properties_of_an_object_with_legacy_destructuring_for-in_statement">Iterating over properties of an object with legacy destructuring <code>for-in</code> statement</h3> - -<pre><code>var a = { - x: 10, - y: 20, -}; - -for (var [name, value] in Iterator(a)) { - console.log(name, value); // x 10 - // y 20 -}</code></pre> - -<h3 id="Iterating_with_for-of">Iterating with <code>for-of</code></h3> - -<pre><code>var a = { - x: 10, - y: 20, -}; - -for (var [name, value] of Iterator(a)) { // @@iterator is used - console.log(name, value); // x 10 - // y 20 -}</code></pre> - -<h3 id="Iterates_over_property_name">Iterates over property name</h3> - -<pre><code>var a = { - x: 10, - y: 20, -}; - -for (var name in Iterator(a, true)) { - console.log(name); // x - // y -}</code></pre> - -<h3 id="Passing_Generator_instance">Passing Generator instance</h3> - -<pre><code>function* f() { - yield 'a'; - yield 'b'; -} -var g = f(); - -console.log(g == Iterator(g)); // true - -for (var v in Iterator(g)) { - console.log(v); // a - // b -}</code></pre> - -<h3 id="Passing_Iterator_instance">Passing Iterator instance</h3> - -<pre><code>var a = { - x: 10, - y: 20, -}; - -var i = Iterator(a); - -console.log(i == Iterator(i)); // true</code></pre> - -<h2 id="Specifications">Specifications</h2> - -<p>Non-standard. Not part of any current standards document</p> - -<h2 id="Browser_compatibility">Browser compatibility</h2> - -<p>Not supported. Used to be in Firefox in versions prior to Firefox 57.</p> - -<h2 id="See_also">See also</h2> - -<ul> - <li><a href="https://developer.mozilla.org/en-US/docs/JavaScript/Guide/Iterators_and_Generators" title="/en-US/docs/JavaScript/Guide/Iterators_and_Generators">Iterators and Generators</a></li> - <li><code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/StopIteration">StopIteration</a></code></li> -</ul> diff --git a/files/ru/web/javascript/reference/global_objects/number/tointeger/index.html b/files/ru/web/javascript/reference/global_objects/number/tointeger/index.html deleted file mode 100644 index 14260df0d5..0000000000 --- a/files/ru/web/javascript/reference/global_objects/number/tointeger/index.html +++ /dev/null @@ -1,94 +0,0 @@ ---- -title: Number.toInteger() -slug: Web/JavaScript/Reference/Global_Objects/Number/toInteger -tags: - - JavaScript - - Method - - Non-standard - - Number - - Obsolete -translation_of: Archive/Web/JavaScript/Number.toInteger ---- -<div>{{JSRef("Global_Objects", "Number")}} {{obsolete_header("33")}} {{non-standard_header}}</div> - -<h2 id="Summary" name="Summary">Сводка</h2> -<p>Метод <strong><code>Number.toInteger()</code></strong> использовался для вычисления переданного значения и преобразования его в целое число, но его реализация была удалена.</p> -<p>Если целевым значением является {{jsxref("Global_Objects/NaN", "NaN")}}, {{jsxref("Global_Objects/null", "null")}} или {{jsxref("Global_Objects/undefined", "undefined")}}, возвращается 0. Если целевым значением является <code>false</code>, возвращается 0, а если <code>true</code>, то 1.</p> - -<h2 id="Syntax" name="Syntax">Синтаксис</h2> -<pre class="syntaxbox"><code>Number.toInteger(<var>number</var>)</code></pre> - -<h3 id="Parameters" name="Parameters">Параметры</h3> -<dl> - <dt><code>number</code></dt> - <dd>Значение, преобразуемое в целое число.</dd> -</dl> - -<h2 id="Examples" name="Examples">Примеры</h2> - -<h3 id="Example:_Using_toInteger" name="Example:_Using_toInteger">Пример: использование <code>toInteger</code></h3> -<p>Вывод на некоторых тестовых значениях:</p> -<pre class="brush:js">Number.toInteger(0.1); // 0 -Number.toInteger(1); // 1 -Number.toInteger(Math.PI); // 3 -Number.toInteger(null); // 0 -</pre> - -<h2 id="Specifications" name="Specifications">Спецификации</h2> -<ul> - <li><code>Number.toInteger()</code> был частью черновика спецификации ECMAScript 6, но он был удалён 23 августа 2013 г. в 17 ревизии черновика.</li> -</ul> - -<h2 id="Browser_compatibility" name="Browser_compatibility">Совместимость с браузерами</h2> -<div>{{CompatibilityTable}}</div> -<div id="compat-desktop"> - <table class="compat-table"> - <tbody> - <tr> - <th>Возможность</th> - <th>Chrome</th> - <th>Firefox (Gecko)</th> - <th>Internet Explorer</th> - <th>Opera</th> - <th>Safari</th> - </tr> - <tr> - <td>Базовая поддержка</td> - <td>{{CompatNo}}</td> - <td>Firefox с версии 16 по версию 32</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - </tr> - </tbody> - </table> -</div> -<div id="compat-mobile"> - <table class="compat-table"> - <tbody> - <tr> - <th>Возможность</th> - <th>Android</th> - <th>Chrome для Android</th> - <th>Firefox Mobile (Gecko)</th> - <th>IE Mobile</th> - <th>Opera Mobile</th> - <th>Safari Mobile</th> - </tr> - <tr> - <td>Базовая поддержка</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>Firefox с версии 16 по версию 32</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - </tr> - </tbody> - </table> -</div> - -<h2 id="See_also" name="See_also">Смотрите также</h2> -<ul> - <li>Объект {{jsxref("Global_Objects/Number", "Number")}}, которому принадлежит этот метод.</li> -</ul> diff --git a/files/ru/web/javascript/reference/global_objects/object/count/index.html b/files/ru/web/javascript/reference/global_objects/object/count/index.html deleted file mode 100644 index 7308b40b0f..0000000000 --- a/files/ru/web/javascript/reference/global_objects/object/count/index.html +++ /dev/null @@ -1,83 +0,0 @@ ---- -title: Object.prototype.__count__ -slug: Web/JavaScript/Reference/Global_Objects/Object/count -tags: - - JavaScript - - Object - - Obsolete - - Property - - Prototype - - Reference -translation_of: Archive/Web/JavaScript/Object.count ---- -<div>{{JSRef("Global_Objects", "Object")}} {{obsolete_header("2")}}</div> - -<h2 id="Summary" name="Summary">Сводка</h2> -<p>Свойство <strong><code>__count__</code></strong> использовалось для хранения количества перечисляемых свойств объекта, но было удалено.</p> - -<h2 id="Syntax" name="Syntax">Синтаксис</h2> -<pre class="syntaxbox"><code><var>obj</var>.__count__</code></pre> - -<h2 id="Description" name="Description">Пример</h2> -<pre class="brush: js">{ 1: 1 }.__count__ // 1 -[].__count__ // 0 -[1].__count__ // 1 -[1, /* дыра */, 2, 3].__count__ // 3 -</pre> - -<h2 id="Specifications" name="Specifications">Спецификации</h2> -<p>Не является частью какой-либо спецификации.</p> - -<h2 id="Browser_compatibility" name="Browser_compatibility">Совместимость с браузерами</h2> -<div>{{CompatibilityTable}}</div> -<div id="compat-desktop"> - <table class="compat-table"> - <tbody> - <tr> - <th>Возможность</th> - <th>Chrome</th> - <th>Firefox (Gecko)</th> - <th>Internet Explorer</th> - <th>Opera</th> - <th>Safari</th> - </tr> - <tr> - <td>Базовая поддержка</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - </tr> - </tbody> - </table> -</div> -<div id="compat-mobile"> - <table class="compat-table"> - <tbody> - <tr> - <th>Возможность</th> - <th>Android</th> - <th>Chrome для Android</th> - <th>Firefox Mobile (Gecko)</th> - <th>IE Mobile</th> - <th>Opera Mobile</th> - <th>Safari Mobile</th> - </tr> - <tr> - <td>Базовая поддержка</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - </tr> - </tbody> - </table> -</div> - -<h2 id="See_also" name="See_also">Смотрите также</h2> -<ul> - <li><a class="external" href="http://whereswalden.com/2010/04/06/more-changes-coming-to-spidermonkey-the-magical-__count__-property-of-objects-is-being-removed/">[Запись в блоге] В SpiderMonkey грядут большие изменения: магическое свойство __count__ будет удалено</a> (англ.)</li> -</ul> diff --git a/files/ru/web/javascript/reference/global_objects/object/eval/index.html b/files/ru/web/javascript/reference/global_objects/object/eval/index.html deleted file mode 100644 index e6b8e3668f..0000000000 --- a/files/ru/web/javascript/reference/global_objects/object/eval/index.html +++ /dev/null @@ -1,81 +0,0 @@ ---- -title: Object.prototype.eval() -slug: Web/JavaScript/Reference/Global_Objects/Object/eval -tags: - - JavaScript - - Method - - Object - - Obsolete - - Prototype -translation_of: Archive/Web/JavaScript/Object.eval ---- -<div> - {{JSRef("Global_Objects", "Object")}} {{obsolete_header}}</div> -<h2 id="Summary" name="Summary">Сводка</h2> -<p>Метод <code><strong>Object.eval()</strong></code> использовался для вычисления строки JavaScript-кода в контексте объекта, однако, был удалён.</p> -<h2 id="Syntax" name="Syntax">Синтаксис</h2> -<pre class="syntaxbox"><code><var>obj</var>.eval(<var>string</var>)</code></pre> -<h3 id="Parameters" name="Parameters">Параметры</h3> -<dl> - <dt> - <code>string</code></dt> - <dd> - Любая строка, представляющая выражение, инструкцию или последовательность инструкций JavaScript. Выражение может содержать переменые и свойства существующих объектов.</dd> -</dl> -<h2 id="Description" name="Description">Описание</h2> -<p>Метод <code>eval</code> больше не используется как метод объекта. Вместо него используйте глобальную функцию {{jsxref("Global_Objects/eval", "eval()")}}.</p> -<h2 id="Specifications" name="Specifications">Спецификации</h2> -<p>Не является частью какой-либо спецификации.</p> -<h2 id="Browser_compatibility" name="Browser_compatibility">Совместимость с браузерами</h2> -<div> - {{CompatibilityTable}}</div> -<div id="compat-desktop"> - <table class="compat-table"> - <tbody> - <tr> - <th>Возможность</th> - <th>Chrome</th> - <th>Firefox (Gecko)</th> - <th>Internet Explorer</th> - <th>Opera</th> - <th>Safari</th> - </tr> - <tr> - <td>Базовая поддержка</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - </tr> - </tbody> - </table> -</div> -<div id="compat-mobile"> - <table class="compat-table"> - <tbody> - <tr> - <th>Возможность</th> - <th>Android</th> - <th>Chrome для Android</th> - <th>Firefox Mobile (Gecko)</th> - <th>IE Mobile</th> - <th>Opera Mobile</th> - <th>Safari Mobile</th> - </tr> - <tr> - <td>Базовая поддержка</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - </tr> - </tbody> - </table> -</div> -<h2 id="See_also" name="See_also">Смотрите также</h2> -<ul> - <li>{{jsxref("Global_Objects/eval", "eval()")}}</li> -</ul> diff --git a/files/ru/web/javascript/reference/global_objects/object/getnotifier/index.html b/files/ru/web/javascript/reference/global_objects/object/getnotifier/index.html deleted file mode 100644 index 1947d51f73..0000000000 --- a/files/ru/web/javascript/reference/global_objects/object/getnotifier/index.html +++ /dev/null @@ -1,47 +0,0 @@ ---- -title: Object.getNotifier() -slug: Web/JavaScript/Reference/Global_Objects/Object/getNotifier -translation_of: Archive/Web/JavaScript/Object.getNotifier ---- -<div>{{JSRef}} {{obsolete_header}}</div> - -<p>Метод <strong><code>Object.getNotifer()</code></strong> использовался для создания объекта, который позволяет синтетически инициировать изменение, но не рекомендуется и удаляется в браузерах.</p> - -<h2 id="Синтаксис">Синтаксис</h2> - -<pre class="syntaxbox">Object.getNotifier(<em>obj</em>)</pre> - -<h3 id="Параметры">Параметры</h3> - -<dl> - <dt><code>obj</code></dt> - <dd>Объект для извлечения уведомителя.</dd> -</dl> - -<h3 id="Возращаемое_значение">Возращаемое значение</h3> - -<p>Объект увидомителя, связанный с объектом, передаваемым в функцию.</p> - -<h2 id="Описание">Описание</h2> - -<p>Уведомитель используется для запуска искусственных изменений, которые будут обнаружены <code>Object.observe()</code>.</p> - -<h2 id="Спецификации">Спецификации</h2> - -<p><a href="https://github.com/arv/ecmascript-object-observe">Strawman proposal specification.</a></p> - -<h2 id="Совместимость_с_браузерами">Совместимость с браузерами</h2> - -<div> -<div class="hidden">Таблица совместимости на этой странице генерируется из структурированных данных. Если вы хотите внести свой вклад в эти данные, просмотрите <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> и отправьте нам запрос на извлечение.</div> - -<p>{{Compat("javascript.builtins.Object.getNotifier")}}</p> -</div> - -<h2 id="Смотрите_также">Смотрите также</h2> - -<ul> - <li>{{jsxref("Object.observe()")}} {{obsolete_inline}}</li> - <li>{{jsxref("Object.unobserve()")}} {{obsolete_inline}}</li> - <li>{{jsxref("Array.observe()")}} {{obsolete_inline}}</li> -</ul> diff --git a/files/ru/web/javascript/reference/global_objects/object/nosuchmethod/index.html b/files/ru/web/javascript/reference/global_objects/object/nosuchmethod/index.html deleted file mode 100644 index 6f0827751f..0000000000 --- a/files/ru/web/javascript/reference/global_objects/object/nosuchmethod/index.html +++ /dev/null @@ -1,195 +0,0 @@ ---- -title: Object.prototype.__noSuchMethod__ -slug: Web/JavaScript/Reference/Global_Objects/Object/noSuchMethod -tags: - - JavaScript - - Non-standard - - Object - - Property - - Prototype - - Reference -translation_of: Archive/Web/JavaScript/Object.noSuchMethod ---- -<div>{{JSRef("Global_Objects", "Object")}} {{non-standard_header}}</div> - -<div>Хотя свойство <strong><code>__noSuchMethod__</code></strong> и нестандартно, спецификация ECMAScript Harmony (ES6) содержит объект <strong>{{jsxref("Proxy")}}</strong>, с помощью которого вы можете сделать всё тоже самое, что и при использовании этого свойством (и даже больше).</div> - -<h2 id="Summary" name="Summary">Сводка</h2> -<p>Свойство <strong><code>__noSuchMethod__</code></strong> ссылается на функцию, выполняющуюся каждый раз при вызове на объекте несуществующего метода.</p> - -<h2 id="Syntax" name="Syntax">Синтаксис</h2> -<pre class="syntaxbox"><code><var>obj</var>.__noSuchMethod__ = <var>fun</var></code></pre> - -<h3 id="Parameters" name="Parameters">Параметры</h3> -<dl> - <dt><code>fun</code></dt> - <dd>Функция, имеющая вид</dd> - <dd> - <pre><code>function(<var>id</var>, <var>args</var>) { . . . }</code></pre> - <dl> - <dt><code>id</code></dt> - <dd>Имя вызванного несуществующего метода</dd> - <dt><code>args</code></dt> - <dd>Массив аргументов, переданный в метод</dd> - </dl> - </dd> -</dl> - -<h2 id="Description" name="Description">Описание</h2> -<p>По умолчанию, при попытке вызвать не существующий в объекте метод, будет выброшено исключение {{jsxref("Global_Objects/TypeError", "TypeError")}}. Это поведение можно обойти, определив функцию <code>__noSuchMethod__</code> в качестве члена объекта. Функция принимает два аргумента, первый является именем метода, который попытались вызвать, а второй — массивом аргументов, которые были переданы в метод при его вызове. Второй аргумент является настойщим массивом (то есть, он наследуется через цепочку прототипов от {{jsxref("Array.prototype")}}), а не массивоподобным <a href="/ru/docs/Web/JavaScript/Reference/Functions_and_function_scope/arguments">объектом arguments</a>.</p> -<p>Если данный метод не может быть вызван, либо по причине того, что он установлен в {{jsxref("Global_Objects/undefined", "undefined")}} по умолчанию, либо удалён, либо вручную установлен в не-функцию, движок JavaScript вернётся к выбрасыванию исключения {{jsxref("Global_Objects/TypeError", "TypeError")}}.</p> - -<h2 id="Examples" name="Examples">Примеры</h2> - -<h3 id="Example:_Simple_test_of___noSuchMethod__" name="Example:_Simple_test_of___noSuchMethod__">Пример: простая проверка свойства <code>__noSuchMethod__</code></h3> -<pre class="brush: js">var o = { - __noSuchMethod__: function(id, args) { console.log(id, '(' + args.join(', ') + ')'); } -}; - -o.foo(1, 2, 3); -o.bar(4, 5); -o.baz(); - -// Вывод -// foo (1, 2, 3) -// bar (4, 5) -// baz () -</pre> - -<h3 id="Example:_Using___noSuchMethod___to_simulate_multiple_inheritance" name="Example:_Using___noSuchMethod___to_simulate_multiple_inheritance">Пример: использование свойства <code>__noSuchMethod__</code> для симуляции множественного наследования</h3> -<p>Ниже показан пример кода, реализующего примитивную форму множественного наследования.</p> -<pre class="brush: js">// Не работает с множественным наследованием объектов в качестве родителей -function noMethod(name, args) { - var parents = this.__parents_; - - // Пройдёмся по всем родителям - for (var i = 0; i < parents.length; i++) { - // Если нашли функцию в родителе, вызовем её - if (typeof parents[i][name] == 'function') { - return parents[i][name].apply(this, args); - } - } - - // Если мы здесь, метод не был найден - throw new TypeError; -} - -// Используется для добавления родителя при множественном наследовании -function addParent(obj, parent) { - // Если объект ещё не инициализирован, инициализируем его - if (!obj.__parents_) { - obj.__parents_ = []; - obj.__noSuchMethod__ = noMethod; - } - - // Добавляем родителя - obj.__parents_.push(parent); -} -</pre> -<p>Ниже показан пример использования этой идеи.</p> -<pre class="brush: js">// Пример первого базового класса - -function NamedThing(name) { - this.name = name; -} - -NamedThing.prototype = { - getName: function() { return this.name; }, - setName: function(newName) { this.name = newName; } -} - -// Пример второго базового класса - -function AgedThing(age){ - this.age = age; -} - -AgedThing.prototype = { - getAge: function() { return this.age; }, - setAge: function(age) { this.age = age; } -} - -// Дочерний класс. Наследуется от NamedThing и AgedThing, а также определяет свойство address - -function Person(name, age, address) { - addParent(this, NamedThing.prototype); - NamedThing.call(this, name); - addParent(this, AgedThing.prototype); - AgedThing.call(this, age); - this.address = address; -} - -Person.prototype = { - getAddr: function() { return this.address; }, - setAddr: function(addr) { this.address = addr; } -} - -var bob = new Person('Боб', 25, 'Нью-Йорк'); - -console.log('getAge лежит ' + (('getAge' in bob) ? 'в' : 'не в') + ' объекте bob'); -console.log('возраст Боба: ' + bob.getAge()); -console.log('getName лежит ' + (('getName' in bob) ? 'в' : 'не в') + ' объекте bob'); -console.log('имя Боба: ' + bob.getName()); -console.log('getAddr лежит ' + (('getAddr' in bob) ? 'в' : 'не в') + ' объекте bob'); -console.log('адрес Боба: ' + bob.getAddr()); -</pre> -<p>Вывод примера будет следующим:</p> -<pre>getAge лежит не в объекте bob -возраст Боба: 25 -getName лежит не в объекте bob -имя Боба: Боб -getAddr лежит в объекте bob -адрес Боба: Нью-Йорк -</pre> - -<h2 id="Specifications" name="Specifications">Спецификации</h2> -<p>Не является частью какой-либо спецификации.</p> - -<h2 id="Browser_compatibility" name="Browser_compatibility">Совместимость с браузерами</h2> -<div>{{CompatibilityTable}}</div> -<div id="compat-desktop"> - <table class="compat-table"> - <tbody> - <tr> - <th>Возможность</th> - <th>Chrome</th> - <th>Firefox (Gecko)</th> - <th>Internet Explorer</th> - <th>Opera</th> - <th>Safari</th> - </tr> - <tr> - <td>Базовая поддержка</td> - <td>{{CompatNo}}</td> - <td>{{CompatGeckoDesktop("1.0")}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - </tr> - </tbody> - </table> -</div> -<div id="compat-mobile"> - <table class="compat-table"> - <tbody> - <tr> - <th>Возможность</th> - <th>Android</th> - <th>Chrome для Android</th> - <th>Firefox Mobile (Gecko)</th> - <th>IE Mobile</th> - <th>Opera Mobile</th> - <th>Safari Mobile</th> - </tr> - <tr> - <td>Базовая поддержка</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatGeckoMobile("1.0")}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - </tr> - </tbody> - </table> -</div> diff --git a/files/ru/web/javascript/reference/global_objects/object/observe/index.html b/files/ru/web/javascript/reference/global_objects/object/observe/index.html deleted file mode 100644 index 25fe9c879b..0000000000 --- a/files/ru/web/javascript/reference/global_objects/object/observe/index.html +++ /dev/null @@ -1,142 +0,0 @@ ---- -title: Object.observe() -slug: Web/JavaScript/Reference/Global_Objects/Object/observe -tags: - - ECMAScript7 - - Experimental - - JavaScript - - Method - - Object - - Reference -translation_of: Archive/Web/JavaScript/Object.observe ---- -<div>{{JSRef("Global_Objects", "Object")}}</div> - -<h2 id="Summary" name="Summary">Сводка</h2> - -<p>Метод <strong><code>Object.observe()</code></strong> используется для асинхронного обзора изменений в объекте. Он предоставляет поток изменений в порядке их возникновения.</p> - -<h2 id="Syntax" name="Syntax">Синтаксис</h2> - -<pre class="syntaxbox"><code>Object.observe(<var>obj</var>, <var>callback</var>)</code></pre> - -<h3 id="Parameters" name="Parameters">Параметры</h3> - -<dl> - <dt><code>obj</code></dt> - <dd>Обозреваемый объект.</dd> - <dt><code>callback</code></dt> - <dd>Функция, вызываемая при возникновении изменений в объекте, принимает следующий аргумент: - <dl> - <dt><code>changes</code></dt> - <dd>Массив объектов, представляющих одно изменение. Объекты с изменениями содержат следующие свойства: - <ul> - <li><strong><code>name</code></strong>: имя изменённого свойства.</li> - <li><strong><code>object</code></strong>: изменённый объект после изменения.</li> - <li><strong><code>type</code></strong>: строка, указывающая тип произошедшего изменения. Может принимать одно из значений: <code>"add"</code>, <code>"update"</code> или <code>"delete"</code>.</li> - <li><strong><code>oldValue</code></strong>: только для типов <code>"update"</code> и <code>"delete"</code>. Значение до изменения.</li> - </ul> - </dd> - </dl> - </dd> -</dl> - -<h2 id="Description" name="Description">Описание</h2> - -<p>Функция <code>callback</code> вызывается каждый раз при возникновении изменений в объекте <code>obj</code> с массивом всех изменений в порядке их возникновения.</p> - -<h2 id="Examples" name="Examples">Примеры</h2> - -<h3 id="Example.3A_Logging_all_three_different_types" name="Example.3A_Logging_all_three_different_types">Пример: журналирование всех трёх типов изменений</h3> - -<pre class="brush: js">var obj = { - foo: 0, - bar: 1 -}; - -Object.observe(obj, function(changes) { - console.log(changes); -}); - -obj.baz = 2; -// [{name: 'baz', object: <obj>, type: 'add'}] - -obj.foo = 'hello'; -// [{name: 'foo', object: <obj>, type: 'update', oldValue: 0}] - -delete obj.baz; -// [{name: 'baz', object: <obj>, type: 'delete', oldValue: 2}] -</pre> - -<h3 id="Example.3A_Data_Binding" name="Example.3A_Data_Binding">Пример: привязка данных</h3> - -<pre class="brush: js">// Пользовательская модель -var user = { - id: 0, - name: 'Брендан Айк', - title: 'М-р.' -}; - -// Создаёт приветствие для пользователя -function updateGreeting() { - user.greeting = 'Здравствуйте, ' + user.title + ' ' + user.name + '!'; -} -updateGreeting(); - -Object.observe(user, function(changes) { - changes.forEach(function(change) { - // Любое изменение имени или обращения обновит привествие - if (change.name === 'name' || change.name === 'title') { - updateGreeting(); - } - }); -}); -</pre> - -<p> </p> - -<h3 id="Custom_change_type">Custom change type</h3> - -<pre><code>// A point on a 2D plane -var point = {x: 0, y: 0, distance: 0}; - -function setPosition(pt, x, y) { - // Performing a custom change - Object.getNotifier(pt).performChange('reposition', function() { - var oldDistance = pt.distance; - pt.x = x; - pt.y = y; - pt.distance = Math.sqrt(x * x + y * y); - return {oldDistance: oldDistance}; - }); -} - -Object.observe(point, function(changes) { - console.log('Distance change: ' + (point.distance - changes[0].oldDistance)); -}, ['reposition']); - -setPosition(point, 3, 4); -// Distance change: 5</code></pre> - -<p> </p> - -<h2 id="Specifications" name="Specifications">Спецификации</h2> - -<p><a href="https://github.com/arv/ecmascript-object-observe">Черновое предложение к обсуждению для ECMAScript 7</a>.</p> - -<h2 id="Browser_compatibility" name="Browser_compatibility">Совместимость с браузерами</h2> - -<div> </div> - -<div class="hidden"> -<p>The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p> -</div> - -<p>{{Compat("javascript.builtins.Object.observe")}}</p> - -<h2 id="See_also" name="See_also">Смотрите также</h2> - -<ul> - <li>{{jsxref("Object.unobserve()")}} {{experimental_inline}}</li> - <li>{{jsxref("Array.observe()")}} {{experimental_inline}}</li> -</ul> diff --git a/files/ru/web/javascript/reference/global_objects/object/parent/index.html b/files/ru/web/javascript/reference/global_objects/object/parent/index.html deleted file mode 100644 index d9e5c1ddd9..0000000000 --- a/files/ru/web/javascript/reference/global_objects/object/parent/index.html +++ /dev/null @@ -1,75 +0,0 @@ ---- -title: Object.prototype.__parent__ -slug: Web/JavaScript/Reference/Global_Objects/Object/parent -tags: - - JavaScript - - Object - - Obsolete - - Property - - Prototype -translation_of: Archive/Web/JavaScript/Object.parent ---- -<div> - {{JSRef("Global_Objects", "Object")}} {{obsolete_header("2")}}</div> -<h2 id="Summary" name="Summary">Сводка</h2> -<p>Свойство <strong><code>__parent__</code></strong> использовалось для указания контекста объекта, но было удалено.</p> -<h2 id="Syntax" name="Syntax">Синтаксис</h2> -<pre class="syntaxbox"><code><var>obj</var>.__parent__</code></pre> -<h2 id="Description" name="Description">Описание</h2> -<p>Для объектов верхнего уровня, это, например, окно.</p> -<h2 id="Specifications" name="Specifications">Спецификации</h2> -<p>Не является частью какой-либо спецификации.</p> -<h2 id="Browser_compatibility" name="Browser_compatibility">Совместимость с браузерами</h2> -<div> - {{CompatibilityTable}}</div> -<div id="compat-desktop"> - <table class="compat-table"> - <tbody> - <tr> - <th>Возможность</th> - <th>Chrome</th> - <th>Firefox (Gecko)</th> - <th>Internet Explorer</th> - <th>Opera</th> - <th>Safari</th> - </tr> - <tr> - <td>Базовая поддержка</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - </tr> - </tbody> - </table> -</div> -<div id="compat-mobile"> - <table class="compat-table"> - <tbody> - <tr> - <th>Возможность</th> - <th>Android</th> - <th>Chrome для Android</th> - <th>Firefox Mobile (Gecko)</th> - <th>IE Mobile</th> - <th>Opera Mobile</th> - <th>Safari Mobile</th> - </tr> - <tr> - <td>Базовая поддержка</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - </tr> - </tbody> - </table> -</div> -<h2 id="See_also" name="See_also">Смотрите также</h2> -<ul> - <li><a class="external" href="http://whereswalden.com/2010/05/07/spidermonkey-change-du-jour-the-special-__parent__-property-has-been-removed/">Изменение дня в SpiderMonkey: специальное свойство __parent__ будет удалено</a></li> - <li><a href="/ru/docs/Components.utils.getGlobalForObject">Components.utils.getGlobalForObject</a></li> -</ul> diff --git a/files/ru/web/javascript/reference/global_objects/object/unobserve/index.html b/files/ru/web/javascript/reference/global_objects/object/unobserve/index.html deleted file mode 100644 index bf3ef676f3..0000000000 --- a/files/ru/web/javascript/reference/global_objects/object/unobserve/index.html +++ /dev/null @@ -1,97 +0,0 @@ ---- -title: Object.unobserve() -slug: Web/JavaScript/Reference/Global_Objects/Object/unobserve -translation_of: Archive/Web/JavaScript/Object.unobserve ---- -<div>{{JSRef}} {{obsolete_header}}</div> - -<p>Метод <strong><code>Object.unobserve()</code></strong> удаляет наблюдатель, который был добавлен с помощью {{jsxref("Object.observe()")}}. Вы можете использовать {{jsxref("Proxy")}} вместо данного метода.</p> - -<h2 id="Синтаксис">Синтаксис</h2> - -<pre class="syntaxbox">Object.unobserve(<var>obj</var>, <var>callback</var>)</pre> - -<h3 id="Параметры">Параметры</h3> - -<dl> - <dt><code>obj</code></dt> - <dd>Объект, за которым необходимо прекратить наблюдение.</dd> - <dt><code>callback</code></dt> - <dd>Ссылка на наблюдатель, который нужно остановить на <code>obj</code>.</dd> -</dl> - -<h3 id="Возаращаемое_значение">Возаращаемое значение</h3> - -<p>Указанный объект.</p> - -<h2 id="Описание">Описание</h2> - -<p><code>Object.unobserve()</code> вызывается после {{jsxref("Object.observe()")}}, чтобы удалить наблюдатель на объекте.</p> - -<p>В <code>callback</code> нужно передавать ссылку на функцию, которая не является анонимной. Если вызвать <strong>Object.unobserve()</strong> с анонмной функцией в <code>callback</code>, то ни один наблюдатель не будет удалён.</p> - -<h2 id="Примеры">Примеры</h2> - -<h3 id="Удаление_наблюдателя_с_объекта">Удаление наблюдателя с объекта</h3> - -<pre class="brush: js">var obj = { - foo: 0, - bar: 1 -}; - -var observer = function(changes) { - console.log(changes); -} - -Object.observe(obj, observer); - -obj.newProperty = 2; -// [{name: 'newProperty', object: <obj>, type: 'add'}] - -Object.unobserve(obj, observer); - -obj.foo = 1; -// callback не был вызван</pre> - -<h3 id="Вызов_с_анонимной_функцией">Вызов с анонимной функцией</h3> - -<pre class="brush: js">var person = { - name: 'Ahmed', - age: 25 -}; - -Object.observe(person, function(changes) { - console.log(changes); -}); - -person.age = 40; -// [{name: 'age', object: <obj>, oldValue: 25, type: 'update'}] - -Object.unobserve(person, function(changes) { - console.log(changes); -}); - -person.age = 63; -// [{name: 'age', object: <obj>, oldValue: 40, type: 'update'}] -// callback был вызван -</pre> - -<h2 id="Спецификации">Спецификации</h2> - -<p><a href="https://github.com/arv/ecmascript-object-observe">Strawman proposal specification</a>.</p> - -<h2 id="Browser_compatibility">Browser compatibility</h2> - -<div> - - -<p>{{Compat("javascript.builtins.Object.unobserve")}}</p> -</div> - -<h2 id="See_also">See also</h2> - -<ul> - <li>{{jsxref("Object.observe()")}} {{obsolete_inline}}</li> - <li>{{jsxref("Array.observe()")}} {{obsolete_inline}}</li> - <li>{{jsxref("Array.unobserve()")}} {{obsolete_inline}}</li> -</ul> diff --git a/files/ru/web/javascript/reference/global_objects/object/unwatch/index.html b/files/ru/web/javascript/reference/global_objects/object/unwatch/index.html deleted file mode 100644 index e862406f3d..0000000000 --- a/files/ru/web/javascript/reference/global_objects/object/unwatch/index.html +++ /dev/null @@ -1,93 +0,0 @@ ---- -title: Object.prototype.unwatch() -slug: Web/JavaScript/Reference/Global_Objects/Object/unwatch -tags: - - JavaScript - - Method - - Non-standard - - Object - - Prototype -translation_of: Archive/Web/JavaScript/Object.unwatch ---- -<div> - {{JSRef("Global_Objects", "Object")}}</div> -<div class="warning"> - <p><strong>Предупреждение:</strong> обычно, при возможности, вам следует избегать использования <code>unwatch()</code> и {{jsxref("Object.prototype.watch", "watch()")}}. Эти два метода реализованы только в Gecko, и они, в основном, предназначены только для отладочных целей. Кроме того, использование точек наблюдения серьёзно бъёт по производительности, что особенно заметно при использовании их на глобальных объектах, например <code>window</code>. Обычно вместо них вы можете использовать <a href="/ru/docs/Web/JavaScript/Guide/Working_with_Objects#Defining_getters_and_setters">сеттеры и геттеры</a> или прокси. Для более подробной информации смотрите раздел {{anch("Browser_compatibility", "Совместимость с браузерами")}}.</p> -</div> -<h2 id="Summary" name="Summary">Сводка</h2> -<p>Метод <code><strong>unwatch()</strong></code> удаляет точку наблюдения, установленную методом {{jsxref("Object.prototype.watch", "watch()")}}.</p> -<h2 id="Syntax" name="Syntax">Синтаксис</h2> -<pre class="syntaxbox"><code><var>obj</var>.unwatch(<var>prop</var>)</code></pre> -<h3 id="Parameters" name="Parameters">Параметры</h3> -<dl> - <dt> - <code>prop</code></dt> - <dd> - Имя свойства объекта, чьи изменения вы хотите прекратить отслеживать.</dd> -</dl> -<h2 id="Description" name="Description">Описание</h2> -<p>Отладчик JavaScript имеет функциональность, аналогичную предоставляемой этим методом, а также и другие возможности отладки. Информацию по отладчику можно получить в статье про <a href="/ru/docs/Venkman">Venkman</a>.</p> -<p>По умолчанию, этот метод наследуется каждым объектом, произошедшим от {{jsxref("Global_Objects/Object", "Object")}}.</p> -<div class="note"> - <p><strong>Примечание:</strong> причина, по которой метод <code>unwatch()</code> принимает единственным параметром только имя свойства <em>prop</em> в том, что для метода {{jsxref("Object.watch", "watch()")}} разрешён только один обработчик.</p> -</div> -<h2 id="Examples" name="Examples">Примеры</h2> -<p>Смотрите метод {{jsxref("Object.watch", "watch()")}}.</p> -<h2 id="Specifications" name="Specifications">Спецификации</h2> -<p>Не является частью какой-либо спецификации. Реализована в JavaScript 1.2.</p> -<h2 id="Browser_compatibility" name="Browser_compatibility">Совместимость с браузерами</h2> -<div> - {{CompatibilityTable}}</div> -<div id="compat-desktop"> - <table class="compat-table"> - <tbody> - <tr> - <th>Возможность</th> - <th>Chrome</th> - <th>Firefox (Gecko)</th> - <th>Internet Explorer</th> - <th>Opera</th> - <th>Safari</th> - </tr> - <tr> - <td>Базовая поддержка</td> - <td>{{CompatNo}}</td> - <td>{{CompatVersionUnknown}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - </tr> - </tbody> - </table> -</div> -<div id="compat-mobile"> - <table class="compat-table"> - <tbody> - <tr> - <th>Возможность</th> - <th>Android</th> - <th>Chrome для Android</th> - <th>Firefox Mobile (Gecko)</th> - <th>IE Mobile</th> - <th>Opera Mobile</th> - <th>Safari Mobile</th> - </tr> - <tr> - <td>Базовая поддержка</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatVersionUnknown}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - </tr> - </tbody> - </table> -</div> -<div class="note"> - <p><strong>Примечание:</strong> вызов <code>unwatch()</code> на объекте {{domxref("Document")}}, начиная с Firefox 23, выбрасывает исключение {{jsxref("Global_Objects/TypeError", "TypeError")}} ({{bug(903332)}}). Эта регрессия была поправлена в Firefox 27.</p> -</div> -<h2 id="See_also" name="See_also">Смотрите также</h2> -<ul> - <li>{{jsxref("Object.watch()")}}</li> -</ul> diff --git a/files/ru/web/javascript/reference/global_objects/object/watch/index.html b/files/ru/web/javascript/reference/global_objects/object/watch/index.html deleted file mode 100644 index 8f4a3d5b99..0000000000 --- a/files/ru/web/javascript/reference/global_objects/object/watch/index.html +++ /dev/null @@ -1,168 +0,0 @@ ---- -title: Object.prototype.watch() -slug: Web/JavaScript/Reference/Global_Objects/Object/watch -tags: - - JavaScript - - Method - - Non-standard - - Object - - Prototype -translation_of: Archive/Web/JavaScript/Object.watch ---- -<div> - {{JSRef("Global_Objects", "Object")}}</div> -<div class="warning"> - <p><strong>Предупреждение:</strong> обычно, при возможности, вам следует избегать использования <code>watch()</code> и {{jsxref("Object.prototype.unwatch", "unwatch()")}}. Эти два метода реализованы только в Gecko, и они, в основном, предназначены только для отладочных целей. Кроме того, использование точек наблюдения серьёзно бъёт по производительности, что особенно заметно при использовании их на глобальных объектах, например <code>window</code>. Обычно вместо них вы можете использовать <a href="/ru/docs/Web/JavaScript/Guide/Working_with_Objects#Defining_getters_and_setters">сеттеры и геттеры</a> или прокси. Для более подробной информации смотрите раздел {{anch("Browser_compatibility", "Совместимость с браузерами")}}. Также, не путайте {{jsxref("Object.prototype.watch", "Object.watch")}} с {{jsxref("Object.prototype.observe", "Object.observe")}}.</p> -</div> -<h2 id="Summary" name="Summary">Сводка</h2> -<p>Метод <code><strong>watch()</strong></code> следит за присваиванием свойству значений и запускает указанную функцию, когда это происходит.</p> -<h2 id="Syntax" name="Syntax">Синтаксис</h2> -<pre class="syntaxbox"><code><var>obj</var>.watch(<var>prop</var>, <var>handler</var>)</code></pre> -<h3 id="Parameters" name="Parameters">Параметры</h3> -<dl> - <dt> - <code>prop</code></dt> - <dd> - Имя свойства объекта, чьи изменения вы хотите отслеживать.</dd> - <dt> - <code>handler</code></dt> - <dd> - Функция, вызывающаяся при изменении значения указанного свойства.</dd> -</dl> -<h2 id="Description" name="Description">Описание</h2> -<p>Следит за присваиваниями свойству <code>prop</code> в этом объекте, вызывая функцию <code>handler(prop, oldval, newval)</code> всякий раз, когда свойство <code>prop</code> устанавливается и сохраняет возвращённое значение в этом свойстве. Точка наблюдения может отфильтровывать (или отменять) присваивание значения, возвращая изменённое новое значение <code>newval</code> (или старое значение <code>oldval</code>).</p> -<p>Если вы удалите свойство, для которого была установлена точка наблюдения, эта точка наблюдения не будет отключена. Если вы позже вновь создадите это свойство, точка наблюдения продолжит работать.</p> -<p>Для удаления точки наблюдения используйте метод {{jsxref("Object.unwatch", "unwatch()")}}. По умолчанию, метод <code>watch</code> наследуется каждым объектом, произошедшим от {{jsxref("Global_Objects/Object", "Object")}}.</p> -<p>Отладчик JavaScript имеет функциональность, аналогичную предоставляемой этим методом, а также и другие возможности отладки. Информацию по отладчику можно получить в статье про <a href="/ru/docs/Venkman">Venkman</a>.</p> -<p>В Firefox, функция <code>handler</code> вызывает только при присваивании из скрипта, не из встроенного кода. Например, <code>window.watch('location', myHandler)</code> не вызовет <code>myHandler</code>, если пользователь щёлкнет по ссылке с якорем в текущем документе. Однако, выражение <code>window.location += '#myAnchor'</code> вызовет <code>myHandler</code>.</p> -<div class="note"> - <p><strong>Примечание:</strong> вызов <code>watch()</code> на объекте для определённого свойства перезапишет любые ранее назначенные на него обработчики.</p> -</div> -<h2 id="Examples" name="Examples">Примеры</h2> -<h3 id="Example:_Using_watch_and_unwatch" name="Example:_Using_watch_and_unwatch">Пример: использование <code>watch</code> и <code>unwatch</code></h3> -<pre class="brush: js">var o = { p: 1 }; - -o.watch('p', function (id, oldval, newval) { - console.log('o.' + id + ' изменено с ' + oldval + ' на ' + newval); - return newval; -}); - -o.p = 2; -o.p = 3; -delete o.p; -o.p = 4; - -o.unwatch('p'); -o.p = 5; -</pre> -<p>Этот скрипт выведет следующее:</p> -<pre>o.p изменено с 1 на 2 -o.p изменено с 2 на 3 -o.p изменено с undefined на 4 -</pre> -<h3 id="Example:_Using_watch_to_validate_an_object.27s_properties" name="Example:_Using_watch_to_validate_an_object.27s_properties">Пример: использование <code>watch</code> для проверки свойств объекта</h3> -<p>Вы можете использовать <code>watch</code> для проверки присваивания к любым свойствам объекта. Этот пример гарантирует, что каждый человек имеет допустимое имя и возраст между 0 и 200.</p> -<pre class="brush: js">Person = function(name, age) { - this.watch('age', Person.prototype._isValidAssignment); - this.watch('name', Person.prototype._isValidAssignment); - this.name = name; - this.age = age; -}; - -Person.prototype.toString = function() { - return this.name + ', ' + this.age; -}; - -Person.prototype._isValidAssignment = function(id, oldval, newval) { - if (id === 'name' && (!newval || newval.length > 30)) { - throw new RangeError('недопустимое имя для ' + this); - } - if (id === 'age' && (newval < 0 || newval > 200)) { - throw new RangeError('недопустимый возраст для ' + this); - } - return newval; -} - -will = new Person('Уилл', 29); -print(will); // Уилл, 29 - -try { - will.name = ''; -} catch (e) { - print(e); -} - -try { - will.age = -4; -} catch (e) { - print(e); -} -</pre> -<p>Этот скрипт выведет следующее:</p> -<pre>Уилл, 29 -RangeError: недопустимое имя для Уилл, 29 -RangeError: недопустимый возраст для Уилл, 29 -</pre> -<h2 id="Specifications" name="Specifications">Спецификации</h2> -<p>Не является частью какой-либо спецификации. Реализована в JavaScript 1.2.</p> -<h2 id="Browser_compatibility" name="Browser_compatibility">Совместимость с браузерами</h2> -<ul> - <li>Этот <a class="external link-https" href="https://gist.github.com/384583">полифилл</a> предлагает <code>watch</code> для всех совместимых с ES5 браузеров</li> - <li>Использование объекта {{jsxref("Global_Objects/Proxy", "Proxy")}} позволяет вам сделать ещё более глубокие изменения при присваивании свойств</li> -</ul> -<div> - {{CompatibilityTable}}</div> -<div id="compat-desktop"> - <table class="compat-table"> - <tbody> - <tr> - <th>Возможность</th> - <th>Chrome</th> - <th>Firefox (Gecko)</th> - <th>Internet Explorer</th> - <th>Opera</th> - <th>Safari</th> - </tr> - <tr> - <td>Базовая поддержка</td> - <td>{{CompatNo}}</td> - <td>{{CompatVersionUnknown}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - </tr> - </tbody> - </table> -</div> -<div id="compat-mobile"> - <table class="compat-table"> - <tbody> - <tr> - <th>Возможность</th> - <th>Android</th> - <th>Chrome для Android</th> - <th>Firefox Mobile (Gecko)</th> - <th>IE Mobile</th> - <th>Opera Mobile</th> - <th>Safari Mobile</th> - </tr> - <tr> - <td>Базовая поддержка</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatVersionUnknown}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - </tr> - </tbody> - </table> -</div> -<div class="note"> - <p><strong>Примечание:</strong> вызов <code>watch()</code> на объекте {{domxref("Document")}}, начиная с Firefox 23, выбрасывает исключение {{jsxref("Global_Objects/TypeError", "TypeError")}} ({{bug(903332)}}). Эта регрессия была поправлена в Firefox 27.</p> -</div> -<h2 id="See_also" name="See_also">Смотрите также</h2> -<ul> - <li>{{jsxref("Object.unwatch()")}}</li> - <li>{{jsxref("Object.observe()")}}</li> -</ul> diff --git a/files/ru/web/javascript/reference/global_objects/parallelarray/index.html b/files/ru/web/javascript/reference/global_objects/parallelarray/index.html deleted file mode 100644 index ca96e4c0fa..0000000000 --- a/files/ru/web/javascript/reference/global_objects/parallelarray/index.html +++ /dev/null @@ -1,52 +0,0 @@ ---- -title: ParallelArray -slug: Web/JavaScript/Reference/Global_Objects/ParallelArray -translation_of: Archive/Web/ParallelArray ---- -<p>{{jsSidebar("Objects")}} {{ obsolete_header() }}</p> -<div class="note"> - <p><strong>Note:</strong> This object was implemented in Firefox 17 and has been removed from {{ Gecko(29) }} in favor of ParallelJS (PJS) currently available in the Nightly channel ({{ bug(944074) }}).</p> -</div> -<h2 id="Сводка">Сводка</h2> -<p>Целью ParallelArray является распараллеливание данных в веб-приложениях. Все функции, которые доступны на простом массиве могут исполняться параллельно на ParallelArray, при необходимости можно вернуться к последовательному исполнению. Чтобы убедиться что ваш код исполняется параллельно, it is suggested that the functions should be limited to the <a href="http://smallcultfollowing.com/babysteps/blog/2013/04/30/parallelizable-javascript-subset/" title="/en-US/docs/ParallelizableJavaScriptSubset">parallelizable subset of JS that Firefox supports</a>.</p> -<h2 id="Синтаксис">Синтаксис</h2> -<pre class="syntaxbox">new ParallelArray() -new ParallelArray([element0, element1, ...]) -new ParallelArray(arrayLength, elementalFunction)</pre> -<h2 id="Экземпляры_ParallelArray"><code>Экземпляры ParallelArray</code></h2> -<h3 id="Свойства">Свойства</h3> -<dl> - <dt> - length</dt> - <dd> - Возвращает количество элементов в <code>ParallelArray</code>.</dd> -</dl> -<h3 id="Методы">Методы</h3> -<dl> - <dt> - map</dt> - <dt> - reduce</dt> - <dt> - scan</dt> - <dt> - scatter</dt> - <dt> - filter</dt> - <dt> - flatten</dt> - <dt> - partition</dt> - <dt> - get</dt> -</dl> -<h2 id="Примеры">Примеры</h2> -<h3 id="Пример_Использование_метода_map_параллельно">Пример: Использование метода map параллельно</h3> -<pre class="brush: js">var p = new ParallelArray([0, 1, 2, 3, 4]); -var m = p.map(function (v) { - return v + 1; -});</pre> -<h2 id="Смотрите_также">Смотрите также</h2> -<ul> - <li><a href="http://wiki.ecmascript.org/doku.php?id=strawman:data_parallelism" title="http://wiki.ecmascript.org/doku.php?id=strawman:data_parallelism">Ecmascript ParallelArray strawman</a></li> -</ul> diff --git a/files/ru/web/javascript/reference/global_objects/string/quote/index.html b/files/ru/web/javascript/reference/global_objects/string/quote/index.html deleted file mode 100644 index 367f9f6eb7..0000000000 --- a/files/ru/web/javascript/reference/global_objects/string/quote/index.html +++ /dev/null @@ -1,124 +0,0 @@ ---- -title: String.prototype.quote() -slug: Web/JavaScript/Reference/Global_Objects/String/quote -tags: - - JavaScript - - Method - - Obsolete - - Prototype - - Reference - - Référence(2) - - String -translation_of: Archive/Web/JavaScript/String.quote ---- -<div>{{obsolete_header("37")}}</div> - -<div>{{JSRef("Global_Objects", "String")}} {{non-standard_header}}</div> - -<h2 id="Summary" name="Summary">Сводка</h2> - -<p>Нестандартный метод <strong><code>quote()</code></strong> возвращает копию строки, заменяя различные специальные символы в строке их управляющими последовательностями и заключая результат в двойные кавычки (<code>"</code>).</p> - -<h2 id="Syntax" name="Syntax">Синтаксис</h2> - -<pre class="syntaxbox"><code><var>str</var>.quote()</code></pre> - -<h2 id="Examples" name="Examples">Примеры</h2> - -<p>В таблице ниже метод <code>quote()</code> заменяет любые специальные символы и заключает строку в двойные кавычки. Также обратите внимание на третью колонку, в которой функция {{jsxref("Global_Objects/eval", "eval()")}} снова вычисляет управляющие последовательности.</p> - -<table class="fullwidth-table"> - <thead> - <tr> - <th class="header" scope="col"><code>str</code></th> - <th class="header" scope="col"><code>str.quote()</code></th> - <th class="header" scope="col"><code>eval(str.quote())</code></th> - </tr> - </thead> - <tbody> - <tr> - <td><code>Hello world!</code></td> - <td><code>"Hello world!"</code></td> - <td><code>Hello world!</code></td> - </tr> - <tr> - <td><code style="white-space: pre;">Hello<br> - world!</code></td> - <td><code>"Hello\n\tworld!"</code></td> - <td><code style="white-space: pre;">Hello<br> - world!</code></td> - </tr> - <tr> - <td><code>" \ — '</code></td> - <td><code>"\" \\ \u2014 '"</code></td> - <td><code>" \ — '</code></td> - </tr> - <tr> - <td><code>Привет, мир!</code></td> - <td><code>"\u041F\u0440\u0438\u0432\u0435\u0442, \u043C\u0438\u0440!"</code></td> - <td><code>Привет, мир!</code></td> - </tr> - </tbody> -</table> - -<h2 id="Specifications" name="Specifications">Спецификации</h2> - -<p>Не является частью какого-либо стандарта. Реализована в JavaScript 1.3.</p> - -<h2 id="Browser_compatibility" name="Browser_compatibility">Совместимость с браузерами</h2> - -<div>{{CompatibilityTable}}</div> - -<div id="compat-desktop"> -<table class="compat-table"> - <tbody> - <tr> - <th>Возможность</th> - <th>Chrome</th> - <th>Firefox (Gecko)</th> - <th>Internet Explorer</th> - <th>Opera</th> - <th>Safari</th> - </tr> - <tr> - <td>Базовая поддержка</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - </tr> - </tbody> -</table> -</div> - -<div id="compat-mobile"> -<table class="compat-table"> - <tbody> - <tr> - <th>Возможность</th> - <th>Android</th> - <th>Chrome для Android</th> - <th>Firefox Mobile (Gecko)</th> - <th>IE Mobile</th> - <th>Opera Mobile</th> - <th>Safari Mobile</th> - </tr> - <tr> - <td>Базовая поддержка</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - </tr> - </tbody> -</table> -</div> - -<h2 id="See_also" name="See_also">Смотрите также</h2> - -<ul> - <li>{{jsxref("JSON.stringify()")}}</li> -</ul> diff --git a/files/ru/web/javascript/reference/operators/array_comprehensions/index.html b/files/ru/web/javascript/reference/operators/array_comprehensions/index.html deleted file mode 100644 index c2bed1585e..0000000000 --- a/files/ru/web/javascript/reference/operators/array_comprehensions/index.html +++ /dev/null @@ -1,241 +0,0 @@ ---- -title: Упрощенный синтаксис создания массивов -slug: Web/JavaScript/Reference/Operators/Array_comprehensions -translation_of: Archive/Web/JavaScript/Array_comprehensions ---- -<div class="warning"><strong>Non-standard. Do not use!</strong><br> -Сокращенный синтаксис создания массивов не стандартен. В будущем используйте {{jsxref("Array.prototype.map")}}, {{jsxref("Array.prototype.filter")}}, {{jsxref("Functions/Arrow_functions", "Стрелочные функции", "", 1)}} и {{jsxref("Operators/Spread_operator", "spread syntax", "", 1)}}.</div> - -<div>{{jsSidebar("Operators")}}</div> - -<p>Синтаксис <strong>array comprehension</strong> - это JavaScript-выражение, которое позволяет быстро создавать новый массив из существующего. Аналогичные сокращения существуют во многих других языках программирования.</p> - -<p><a href="##Differences_to_the_older_JS1.7.2FJS1.8_comprehensions">Ниже</a> показаны различия со старым синтаксисом Array Comprehension в SpiderMonkey, основанном на черновиках для ECMAScript 4.</p> - -<h2 id="Синтаксис">Синтаксис</h2> - -<pre class="syntaxbox">[for (x of итерируемый_объект) x] -[for (x of итерируемый_объект) if (условие) x] -[for (x of итерируемый_объект) for (y of итерируемый_объект) x + y] -</pre> - -<h2 id="Описание">Описание</h2> - -<p>Внутри сокращения допустимо использование двух видов компонентов:</p> - -<ul> - <li>{{jsxref("Statements/for...of", "for...of")}} и</li> - <li>{{jsxref("Statements/if...else", "if")}}</li> -</ul> - -<p>Итерация for-of всегда является первым компонентом. Допустимо использование нескольких for-of итераций или условных операторов if.</p> - -<p>Сокращённый синтаксис создания массивов был предложен к стандартизации в ECMAScript 2016, он предоставлял удобный сокращения для создания новых массивов из других массивов. Сокращения могут быть использованы вместо вызовов {{jsxref("Array.prototype.map", "map()")}} и {{jsxref("Array.prototype.filter", "filter()")}} или их комбинаций.</p> - -<p>Следующий пример показывает, как из массива чисел создаётся новый массив чисел с с удвоенным значением.</p> - -<pre class="brush: js line-numbers language-js"><code class="language-js"><span class="keyword token">var</span> numbers <span class="operator token">=</span> <span class="punctuation token">[</span><span class="number token">1</span><span class="punctuation token">,</span> <span class="number token">2</span><span class="punctuation token">,</span> <span class="number token">3</span><span class="punctuation token">,</span> <span class="number token">4</span><span class="punctuation token">]</span><span class="punctuation token">;</span> -<span class="keyword token">var</span> doubled <span class="operator token">=</span> <span class="punctuation token">[</span><span class="keyword token">for</span> <span class="punctuation token">(</span>i <span class="keyword token">of</span> numbers<span class="punctuation token">)</span> i <span class="operator token">*</span> <span class="number token">2</span><span class="punctuation token">]</span><span class="punctuation token">;</span> -console<span class="punctuation token">.</span><span class="function token">log</span><span class="punctuation token">(</span>doubled<span class="punctuation token">)</span><span class="punctuation token">;</span> <span class="comment token">// logs 2,4,6,8</span></code></pre> - -<p>Это эквивалентно следующей операции с {{jsxref("Array.prototype.map", "map()")}}:</p> - -<pre class="brush: js line-numbers language-js"><code class="language-js"><span class="keyword token">var</span> doubled <span class="operator token">=</span> numbers<span class="punctuation token">.</span><span class="function token">map</span><span class="punctuation token">(</span>i <span class="operator token">=</span><span class="operator token">></span> i <span class="operator token">*</span> <span class="number token">2</span><span class="punctuation token">)</span><span class="punctuation token">;</span></code></pre> - -<p>Сокращённый синтаксис может быть использован также для выбора элементов по определённому условию. Вывод четных чисел:</p> - -<pre class="brush: js line-numbers language-js"><code class="language-js"><span class="keyword token">var</span> numbers <span class="operator token">=</span> <span class="punctuation token">[</span><span class="number token">1</span><span class="punctuation token">,</span> <span class="number token">2</span><span class="punctuation token">,</span> <span class="number token">3</span><span class="punctuation token">,</span> <span class="number token">21</span><span class="punctuation token">,</span> <span class="number token">22</span><span class="punctuation token">,</span> <span class="number token">30</span><span class="punctuation token">]</span><span class="punctuation token">;</span> -<span class="keyword token">var</span> evens <span class="operator token">=</span> <span class="punctuation token">[</span><span class="keyword token">for</span> <span class="punctuation token">(</span>i <span class="keyword token">of</span> numbers<span class="punctuation token">)</span> <span class="keyword token">if</span> <span class="punctuation token">(</span>i <span class="operator token">%</span> <span class="number token">2</span> <span class="operator token">===</span> <span class="number token">0</span><span class="punctuation token">)</span> i<span class="punctuation token">]</span><span class="punctuation token">;</span> -console<span class="punctuation token">.</span><span class="function token">log</span><span class="punctuation token">(</span>evens<span class="punctuation token">)</span><span class="punctuation token">;</span> <span class="comment token">// logs 2,22,30</span></code></pre> - -<p>{{jsxref("Array.prototype.filter", "filter()")}} может использоваться для той же цели:</p> - -<pre class="brush: js line-numbers language-js"><code class="language-js"><span class="keyword token">var</span> evens <span class="operator token">=</span> numbers<span class="punctuation token">.</span><span class="function token">filter</span><span class="punctuation token">(</span>i <span class="operator token">=</span><span class="operator token">></span> i <span class="operator token">%</span> <span class="number token">2</span> <span class="operator token">===</span> <span class="number token">0</span><span class="punctuation token">)</span><span class="punctuation token">;</span></code></pre> - -<p>Стили операторов {{jsxref("Array.prototype.map", "map()")}} и {{jsxref("Array.prototype.filter", "filter()")}} можно одновременно использовать в одном сокращённом выражении. Далее фильтруются только четные числа, а затем создаётся массив с их удвоенным значением:</p> - -<pre class="brush: js line-numbers language-js"><code class="language-js"><span class="keyword token">var</span> numbers <span class="operator token">=</span> <span class="punctuation token">[</span><span class="number token">1</span><span class="punctuation token">,</span> <span class="number token">2</span><span class="punctuation token">,</span> <span class="number token">3</span><span class="punctuation token">,</span> <span class="number token">21</span><span class="punctuation token">,</span> <span class="number token">22</span><span class="punctuation token">,</span> <span class="number token">30</span><span class="punctuation token">]</span><span class="punctuation token">;</span> -<span class="keyword token">var</span> doubledEvens <span class="operator token">=</span> <span class="punctuation token">[</span><span class="keyword token">for</span> <span class="punctuation token">(</span>i <span class="keyword token">of</span> numbers<span class="punctuation token">)</span> <span class="keyword token">if</span> <span class="punctuation token">(</span>i <span class="operator token">%</span> <span class="number token">2</span> <span class="operator token">===</span> <span class="number token">0</span><span class="punctuation token">)</span> i <span class="operator token">*</span> <span class="number token">2</span><span class="punctuation token">]</span><span class="punctuation token">;</span> -console<span class="punctuation token">.</span><span class="function token">log</span><span class="punctuation token">(</span>doubledEvens<span class="punctuation token">)</span><span class="punctuation token">;</span> <span class="comment token">// logs 4,44,60</span></code></pre> - -<p>Квадратные скобки обозначают неявный блок. Новый переменные (такие как "<strong>i"</strong> в примере выше) трактуются, как если бы они объявлялись с использованием {{jsxref("Statements/let","let")}}. Это значит, что эти переменные недоступны извне.</p> - -<p>Входными данными необязательно может быть массив; также можно использовать <a href="/ru/docs/Web/JavaScript/Guide/Iterators_and_Generators" title="en-US/docs/JavaScript/Guide/Iterators and Generators">итераторы и генераторы</a>.</p> - -<p>Даже строки могут подаваться на вход; можно делать то же, что с <code>filter</code> и <code>map</code> (но с массивоподобными объектами):</p> - -<pre class="brush: js line-numbers language-js"><code class="language-js"><span class="keyword token">var</span> str <span class="operator token">=</span> <span class="string token">'abcdef'</span><span class="punctuation token">;</span> -<span class="keyword token">var</span> consonantsOnlyStr <span class="operator token">=</span> <span class="punctuation token">[</span><span class="keyword token">for</span> <span class="punctuation token">(</span>c <span class="keyword token">of</span> str<span class="punctuation token">)</span> <span class="keyword token">if</span> <span class="punctuation token">(</span><span class="operator token">!</span><span class="punctuation token">(</span><span class="regex token">/[aeiouAEIOU]/</span><span class="punctuation token">)</span><span class="punctuation token">.</span><span class="function token">test</span><span class="punctuation token">(</span>c<span class="punctuation token">)</span><span class="punctuation token">)</span> c<span class="punctuation token">]</span><span class="punctuation token">.</span><span class="function token">join</span><span class="punctuation token">(</span><span class="string token">''</span><span class="punctuation token">)</span><span class="punctuation token">;</span> <span class="comment token">// 'bcdf'</span> -<span class="keyword token">var</span> interpolatedZeros <span class="operator token">=</span> <span class="punctuation token">[</span><span class="keyword token">for</span> <span class="punctuation token">(</span>c <span class="keyword token">of</span> str<span class="punctuation token">)</span> c <span class="operator token">+</span> <span class="string token">'0'</span> <span class="punctuation token">]</span><span class="punctuation token">.</span><span class="function token">join</span><span class="punctuation token">(</span><span class="string token">''</span><span class="punctuation token">)</span><span class="punctuation token">;</span> <span class="comment token">// 'a0b0c0d0e0f0'</span></code></pre> - -<p>Для предупреждения конвертации в число (в данном конкретном примере) использвалась функция {{jsxref("Array.prototype.join", "join()")}}.</p> - -<h2 id="Примеры">Примеры</h2> - -<h3 id="Простые_сокращения">Простые сокращения</h3> - -<pre class="brush:js">[for (i of [ 1, 2, 3 ]) i*i ]; -// [ 1, 4, 9 ] - -var abc = [ "A", "B", "C" ]; -[for (letters of abc) letters.toLowerCase()]; -// [ "a", "b", "c" ]</pre> - -<h3 id="Сокращения_с_условным_оператором_if">Сокращения с условным оператором "if"</h3> - -<pre class="brush: js">var years = [ 1954, 1974, 1990, 2006, 2010, 2014 ]; -[for (year of years) if (year > 2000) year]; -// [ 2006, 2010, 2014 ] -[for (year of years) if (year > 2000) if(year < 2010) year]; -// [ 2006], the same as below: -[for (year of years) if (year > 2000 && year < 2010) year]; -// [ 2006] -</pre> - -<h3 id="Сокращения_в_сравнении_с_map_и_filter">Сокращения в сравнении с <code>map</code> и <code>filter</code></h3> - -<p>Простой способ понять синтаксис Array Comprehension - это сравнить его с методами Array {{jsxref("Array.map", "map")}} и {{jsxref("Array.filter", "filter")}}:</p> - -<pre class="brush: js">var numbers = [ 1, 2, 3 ]; - -numbers.map(function (i) { return i * i }); -numbers.map(i => i*i); -[for (i of numbers) i*i ]; -// all are [ 1, 4, 9 ] - -numbers.filter(function (i) { return i < 3 }); -numbers.filter(i => i < 3); -[for (i of numbers) if (i < 3) i]; -// all are [ 1, 2 ] -</pre> - -<h3 id="Сокращения_с_двумя_массивами">Сокращения с двумя массивами</h3> - -<p>Использование двух итераторов for-of для работы с двумя массивами:</p> - -<pre class="brush: js">var numbers = [ 1, 2, 3 ]; -var letters = [ "a", "b", "c" ]; - -var cross = [for (i of numbers) for (j of letters) i+j]; -// [ "1a", "1b", "1c", "2a", "2b", "2c", "3a", "3b", "3c" ] - -var grid = [for (i of numbers) [for (j of letters) i+j]]; -// [ -// ["1a", "1b", "1c"], -// ["2a", "2b", "2c"], -// ["3a", "3b", "3c"] -// ] - -[for (i of numbers) if (i > 1) for (j of letters) if(j > "a") i+j] -// ["2b", "2c", "3b", "3c"], the same as below: - -[for (i of numbers) for (j of letters) if (i > 1) if(j > "a") i+j] -// ["2b", "2c", "3b", "3c"] - -[for (i of numbers) if (i > 1) [for (j of letters) if(j > "a") i+j]] -// [["2b", "2c"], ["3b", "3c"]], not the same as below: - -[for (i of numbers) [for (j of letters) if (i > 1) if(j > "a") i+j]] -// [[], ["2b", "2c"], ["3b", "3c"]] -</pre> - -<h2 id="Спецификации">Спецификации</h2> - -<p>Изначально было в черновике ECMAScript 2015, но исключено в ревизии 27 (Август 2014). Смотрите старые ревизии ES2015 для уточнения семантики.</p> - -<h2 id="Совместимость_с_браузерами">Совместимость с браузерами</h2> - -<p>{{CompatibilityTable}}</p> - -<div id="compat-desktop"> -<table class="compat-table"> - <tbody> - <tr> - <th>Возможность</th> - <th>Chrome</th> - <th>Firefox (Gecko)</th> - <th>Internet Explorer</th> - <th>Opera</th> - <th>Safari</th> - </tr> - <tr> - <td>Базовая поддержка</td> - <td>{{CompatNo}}</td> - <td>{{ CompatGeckoDesktop("30") }}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - </tr> - </tbody> -</table> -</div> - -<div id="compat-mobile"> -<table class="compat-table"> - <tbody> - <tr> - <th>Возможность</th> - <th>Android</th> - <th>Chrome for Android</th> - <th>Firefox Mobile (Gecko)</th> - <th>IE Mobile</th> - <th>Opera Mobile</th> - <th>Safari Mobile</th> - </tr> - <tr> - <td>Базовая поддержка</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{ CompatGeckoMobile("30") }}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - </tr> - </tbody> -</table> -</div> - -<h2 id="Специфика_работы_SpiderMonkey">Специфика работы SpiderMonkey</h2> - -<ul> - <li>{{jsxref("Statements/let", "let")}} не поддерживается как идентификатор, так как он доступен только в JS версии 1.7 и XUL-скриптах.</li> - <li>Деструктуризация сокращений не поддерживается ({{bug(980828)}}).</li> -</ul> - -<h2 id="Отличия_от_старой_версии_JS1.7JS1.8"><a id="#Differences_to_the_older_JS1.7.2FJS1.8_comprehensions" name="#Differences_to_the_older_JS1.7.2FJS1.8_comprehensions"></a>Отличия от старой версии JS1.7/JS1.8</h2> - -<div class="warning">Сокращения из JS1.7/JS1.8 были исключены из движка Gecko, начиная с версии 46 ({{bug(1220564)}}).</div> - -<p><strong>Старый синтаксис (не используйте его больше!):</strong></p> - -<pre class="brush: js example-bad line-numbers language-js"><code class="language-js"><span class="punctuation token">[</span>X <span class="keyword token">for</span> <span class="punctuation token">(</span>Y <span class="keyword token">in</span> Z<span class="punctuation token">)</span><span class="punctuation token">]</span> -<span class="punctuation token">[</span>X <span class="keyword token">for</span> each <span class="punctuation token">(</span>Y <span class="keyword token">in</span> Z<span class="punctuation token">)</span><span class="punctuation token">]</span> -<span class="punctuation token">[</span>X <span class="keyword token">for</span> <span class="punctuation token">(</span>Y <span class="keyword token">of</span> Z<span class="punctuation token">)</span><span class="punctuation token">]</span></code></pre> - -<p>Различия:</p> - -<ul> - <li>Сокращения в ESNext создают одну область для элемента "for" вместо области для всех элементов for в целом. - <ul> - <li>Old: <code>[()=>x for (x of [0, 1, 2])][1]() // 2</code></li> - <li>New: <code>[for (x of [0, 1, 2]) ()=>x][1]() // 1, каждая итерация создаёт свежую связку с x. </code></li> - </ul> - </li> - <li>Сокращения в ESNext начинаются с "for" вместо присваиваемой переменной. - <ul> - <li>Old: <code>[i * 2 for (i of numbers)]</code></li> - <li>New: <code>[for (i of numbers) i * 2]</code></li> - </ul> - </li> - <li>Сокращения в ESNext могут иметь несколько компонентов <code>if</code> и <code>for</code>.</li> - <li>Сокращения в ESNext работают только с итерациями вида <code>{{jsxref("Statements/for...of", "for...of")}}</code> и не работают с <code>{{jsxref("Statements/for...in", "for...in")}}</code>.</li> -</ul> - -<p>Смотрите <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1220564#c42">Bug 1220564, comment 42</a> для внесения предложений по коду.</p> - -<h2 id="Смотрите_также">Смотрите также</h2> - -<ul> - <li>{{jsxref("Statements/for...of", "for...of")}}</li> - <li>{{jsxref("Operators/Generator_comprehensions", "Сокращённые описания генераторов", "" ,1)}}</li> -</ul> diff --git a/files/ru/web/javascript/reference/operators/expression_closures/index.html b/files/ru/web/javascript/reference/operators/expression_closures/index.html deleted file mode 100644 index 9c8f613699..0000000000 --- a/files/ru/web/javascript/reference/operators/expression_closures/index.html +++ /dev/null @@ -1,118 +0,0 @@ ---- -title: Expression closures -slug: Web/JavaScript/Reference/Operators/Expression_closures -tags: - - Нестандартная - - Функции -translation_of: Archive/Web/JavaScript/Expression_closures ---- -<div class="warning"><strong>Не является стандартом. Не используйте данный синтаксис!</strong><br> -Синтаксис замкнутого выражения является устаревшей возможностью SpiderMonkey и <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1083458">будет удален</a>. Используйте вместо него <a href="/ru/docs/Web/JavaScript/Reference/Functions/Arrow_functions">стрелочные функции</a>.</div> - -<div>{{jsSidebar("Operators")}}</div> - -<p>Замкнутые выражения – это синтаксис для удобной записи коротких и простых функций.</p> - -<h2 id="Синтаксис">Синтаксис</h2> - -<pre class="syntaxbox">function [<em>name</em>]([<em>param1</em>[, <em>param2[</em>, ..., <em>paramN</em>]]]) - <em>expression</em> -</pre> - -<h3 id="Параметры">Параметры</h3> - -<dl> - <dt><code>name</code></dt> - <dd>Имя функции. Может быть пропущено, в таком случае функция будет являться <em>анонимной</em>. Имя функции доступно только в теле функции.</dd> - <dt><code>paramN</code></dt> - <dd>Имя аргумента, передаваемого функции. Всего может быть передано вплоть до 255 аргументов.</dd> - <dt><code>expression</code></dt> - <dd>Выражение, содержащее тело функции.</dd> -</dl> - -<h2 id="Описание">Описание</h2> - -<p>Этот функционал – ничто иное как короткая нотация для записи простых функций. Он призван добавить в язык нечто похожее на <a class="external" href="https://ru.wikipedia.org/wiki/%D0%9B%D1%8F%D0%BC%D0%B1%D0%B4%D0%B0-%D0%B8%D1%81%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5#.D0.92_.D1.8F.D0.B7.D1.8B.D0.BA.D0.B0.D1.85_.D0.BF.D1.80.D0.BE.D0.B3.D1.80.D0.B0.D0.BC.D0.BC.D0.B8.D1.80.D0.BE.D0.B2.D0.B0.D0.BD.D0.B8.D1.8F">Лямбда-исчисления</a>.</p> - -<p>JavaScript 1.7 и старше:</p> - -<pre class="brush: js">function(x) { return x * x; }</pre> - -<p>JavaScript 1.8:</p> - -<pre class="brush: js">function(x) x * x</pre> - -<p>Такой синтаксис позволяет отбросить фигурные скобки и оператор <code>return</code>. Данный подход, кроме краткости записи, иных преимуществ не имеет.</p> - -<h2 id="Примеры_использования">Примеры использования</h2> - -<p>Короткая запись для привязки слушателей событий:</p> - -<pre class="brush: js"> document.addEventListener("click", function() false, true); -</pre> - -<p>Использование такой записи для работы с функциями массивов из JavaScript 1.6:</p> - -<pre class="brush: js">elems.some(function(elem) elem.type == "text"); -</pre> - -<h2 id="Таблица_совместимости">Таблица совместимости</h2> - -<p>{{CompatibilityTable}}</p> - -<div id="compat-desktop"> -<table class="compat-table"> - <tbody> - <tr> - <th>Feature</th> - <th>Chrome</th> - <th>Firefox (Gecko)</th> - <th>Internet Explorer</th> - <th>Opera</th> - <th>Safari</th> - </tr> - <tr> - <td>Basic support</td> - <td>{{CompatNo}}</td> - <td>{{CompatVersionUnknown}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - </tr> - </tbody> -</table> -</div> - -<div id="compat-mobile"> -<table class="compat-table"> - <tbody> - <tr> - <th>Feature</th> - <th>Android</th> - <th>Chrome for Android</th> - <th>Firefox Mobile (Gecko)</th> - <th>IE Mobile</th> - <th>Opera Mobile</th> - <th>Safari Mobile</th> - </tr> - <tr> - <td>Basic support</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatVersionUnknown}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - </tr> - </tbody> -</table> -</div> - -<h2 id="sect1"> </h2> - -<h2 id="Смотрите_также">Смотрите также</h2> - -<ul> - <li>{{jsxref("Functions_and_function_scope", "Функции и области видимости")}}</li> - <li>{{jsxref("Function", "Функция")}}</li> -</ul> diff --git a/files/ru/web/javascript/reference/operators/generator_comprehensions/index.html b/files/ru/web/javascript/reference/operators/generator_comprehensions/index.html deleted file mode 100644 index fb04526d8a..0000000000 --- a/files/ru/web/javascript/reference/operators/generator_comprehensions/index.html +++ /dev/null @@ -1,229 +0,0 @@ ---- -title: Упрощенный синтаксис создания функций-генераторов -slug: Web/JavaScript/Reference/Operators/Generator_comprehensions -tags: - - Итераторы -translation_of: Archive/Web/JavaScript/Generator_comprehensions ---- -<div class="warning"><strong>Не в стандарте. Не используйте!</strong><br> -Включения генераторов - нестандартная возможность, и вряд ли когда-либо появится в ECMAScript. В будущем попробуйте использовать {{jsxref("Statements/function*", "generator", "", 1)}}.</div> - -<div>{{jsSidebar("Operators")}}</div> - -<div>Синтаксис <strong>включений генераторов </strong>- это выражение, которое позволяет быстро создать новую функцию-генератор из существующего итератора. Включения присутствуют во множестве языков программирования.</div> - -<div> </div> - -<div><a href="https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Operators/Generator_comprehensions#Differences_to_the_older_JS1.7.2FJS1.8_comprehensions">Ниже</a> показаны отличия от старого синтаксиса генераторных выражений в SpiderMonkey, основанных на предложениях к стандарту ECMAScript 4.</div> - -<div> </div> - -<h2 id="Синтаксис">Синтаксис</h2> - -<pre class="syntaxbox">(for (x of iterable) x) -(for (x of iterable) if (condition) x) -(for (x of iterable) for (y of iterable) x + y) -</pre> - -<h2 id="Описание">Описание</h2> - -<p>Внутри включений генераторов допустимы два типа компонентов:</p> - -<ul> - <li>{{jsxref("Statements/for...of", "for...of")}} и</li> - <li>{{jsxref("Statements/if...else", "if")}}</li> -</ul> - -<p>Конструкция <code>for-of</code> всегда идёт первой. Таких конструкций может быть несколько.</p> - -<p>Существенный недостаток {{jsxref("Operators/Array_comprehensions","включений массивов","","true")}} - это то, что они создают полносью новый массив в памяти. Даже когда исходный массив небольшой, накладные расходы получаются весьма заметными, а уж когда входные данные - это большой массив или дорогой (или бесконечный) генератор, создание нового массива может быть трудной задачей.</p> - -<p>Генераторы позволяют выполнять ленивые вычисления последовательностей, то есть рассчитывать данные только тогда, когда они нужны. Синтаксисы включений генераторов и включений массивов практически аналогичны — первые используют () вместо [] — но вместо массива они создают генератор, который может выполняться лениво. Включения генераторов можно считать просто более кратким способом создания генераторов.</p> - -<p>Предположим, у нас есть итератор <code>it</code>, который итерирует по длинной последовательности чисел. Мы хотим создать новый итератор, который будет итерировать по тем же числам, умноженным на два. Включение массивов создало бы в памяти новый массив с умноженными числами:</p> - -<pre class="brush: js">var doubles = [for (i in it) i * 2]; -</pre> - -<p>А включение генераторов создало бы новый итератор, который высчитывал бы следующее умноженное значение, когда оно нужно:</p> - -<pre class="brush: js">var it2 = (for (i in it) i * 2); -console.log(it2.next()); // Первое значение из it, умноженное на два -console.log(it2.next()); // Второе значение из it, умноженное на два -</pre> - -<p>Когда включение генераторов передаётся как аргумент функции, можно обойтись без скобок вокруг включения:</p> - -<pre class="brush: js">var result = doSomething(for (i in it) i * 2); -</pre> - -<p>Эти два примера отличаются тем, что используя включения генераторов, нам нужно пройтись по структуре объекта только однажды, а используя включения массивов - дважды: сначала при создании включения, затем, при самой итерации.</p> - -<h2 id="Примеры">Примеры</h2> - -<h3 id="Простое_включение_генераторов">Простое включение генераторов</h3> - -<pre class="brush:js">(for (i of [ 1, 2, 3 ]) i*i ); -// Функция-генератор, которая отдаёт 1, 4, 9 и так далее - -[...(for (i of [ 1, 2, 3 ]) i*i )]; -// [1, 4, 9] - -var abc = [ "A", "B", "C" ]; -(for (letters of abc) letters.toLowerCase()); -// Функция-генератор, которая отдаёт 'a', 'b' и 'c' -</pre> - -<h3 id="Включение_генераторов_с_условием">Включение генераторов с условием</h3> - -<pre class="brush: js">var years = [ 1954, 1974, 1990, 2006, 2010, 2014 ]; - -(for (year of years) if (year > 2000) year); -// функция-генератор, которая отдаёт 2006, 2010 и 2014 - -(for (year of years) if (year > 2000) if(year < 2010) year); -// функция-генератор, которая отдаёт 2006, как и функция ниже: - -(for (year of years) if (year > 2000 && year < 2010) year); -// функция-генератор, которая отдаёт 2006 -</pre> - -<h3 id="Включение_генератора_в_сравнении_с_функцией-генератором">Включение генератора в сравнении с функцией-генератором</h3> - -<p>Будет проще понять синтаксис включений генераторов, если сравнить его с функцией-генератором.</p> - -<p>Пример 1: Простой генератор.</p> - -<pre class="brush: js">var numbers = [ 1, 2, 3 ]; - -// Функция-генератор -(function*() { - for (let i of numbers) { - yield i * i; - } -})() - -// Включение генератора -(for (i of numbers) i*i ); - -// Результат: в обоих случаях получается генератор, который отдаёт [ 1, 4, 9 ] -</pre> - -<p>Пример 2: Использование <code>if</code> в генераторе.</p> - -<pre class="brush: js">var numbers = [ 1, 2, 3 ]; - -// Функция-генератор -(function*() { - for (let i of numbers) { - if (i < 3) { - yield i * 1; - } - } -})() - -// Включение генератора -(for (i of numbers) if (i < 3) i); - -// Результат: в обоих случаях получается генератор, который отдаёт [ 1, 2 ]</pre> - -<h2 id="Спецификации">Спецификации</h2> - -<p>Включения генераторов изначально входили в черновик ECMAScript 6, но их убрали в ревизии 27 (August 2014). Please see older revisions of ES6 for specification semantics.</p> - -<h2 id="Поддержка_браузерами">Поддержка браузерами</h2> - -<p>{{CompatibilityTable}}</p> - -<div id="compat-desktop"> -<table class="compat-table"> - <tbody> - <tr> - <th>Feature</th> - <th>Chrome</th> - <th>Firefox (Gecko)</th> - <th>Internet Explorer</th> - <th>Opera</th> - <th>Safari</th> - </tr> - <tr> - <td>Начальная поддержка</td> - <td>{{CompatNo}}</td> - <td>{{ CompatGeckoDesktop("30") }}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - </tr> - </tbody> -</table> -</div> - -<div id="compat-mobile"> -<table class="compat-table"> - <tbody> - <tr> - <th>Feature</th> - <th>Android</th> - <th>Chrome for Android</th> - <th>Firefox Mobile (Gecko)</th> - <th>IE Mobile</th> - <th>Opera Mobile</th> - <th>Safari Mobile</th> - </tr> - <tr> - <td>Начальная поддержка</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{ CompatGeckoMobile("30") }}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - </tr> - </tbody> -</table> -</div> - -<h2 id="Особенности_реализации_в_SpiderMonkey">Особенности реализации в SpiderMonkey</h2> - -<ul> - <li>Нельзя использовать {{jsxref("Statements/let", "let")}}, потому что она доступна только в JS версии 1.7 и тэгах XUL.</li> - <li>Деструктуризация во включениях пока не поддерживается ({{bug(980828)}}).</li> -</ul> - -<h2 id="Отличия_от_старых_JS1.7JS1.8_включений">Отличия от старых JS1.7/JS1.8 включений</h2> - -<div class="warning">JS1.7/JS1.8 включения убраны из Gecko 46 ({{bug(1220564)}}).</div> - -<p><strong>Старый синтаксис включений (не используйте!):</strong></p> - -<pre class="brush: js example-bad">(X for (Y in Z)) -(X for each (Y in Z)) -(X for (Y of Z)) -</pre> - -<p>Отличия:</p> - -<ul> - <li>Включения в ES7 создают отдельную область видимость для каждой итерации <code>for</code>, вместо одной области для всего включения: - - <ul> - <li>Старые: <code>[...(()=>x for (x of [0, 1, 2]))][1]() // 2</code></li> - <li>Новые: <code>[...(for (x of [0, 1, 2]) ()=>x)][1]() // 1, each iteration creates a fresh binding for x. </code></li> - </ul> - </li> - <li>Включения в ES7 начинаются с <code>for</code> вместо выражения присваивания: - <ul> - <li>Старые: <code>(i * 2 for (i of numbers))</code></li> - <li>Новые: <code>(for (i of numbers) i * 2)</code></li> - </ul> - </li> - <li>Включения в ES7 могут содержать несколько <code>if</code> и <code>for</code>.</li> - <li>Включения в ES7 работают только с итерациями <code>{{jsxref("Statements/for...of", "for...of")}}</code>, но не с <code>{{jsxref("Statements/for...in", "for...in")}}</code></li> -</ul> - -<h2 id="См._также">См. также</h2> - -<ul> - <li>{{jsxref("Statements/for...of", "for...of")}}</li> - <li>{{jsxref("Operators/Array_comprehensions", "Array comprehensions")}}</li> -</ul> diff --git a/files/ru/web/javascript/reference/statements/for_each...in/index.html b/files/ru/web/javascript/reference/statements/for_each...in/index.html deleted file mode 100644 index c609f436c0..0000000000 --- a/files/ru/web/javascript/reference/statements/for_each...in/index.html +++ /dev/null @@ -1,126 +0,0 @@ ---- -title: for each...in -slug: Web/JavaScript/Reference/Statements/for_each...in -translation_of: Archive/Web/JavaScript/for_each...in ---- -<div>{{jsSidebar("Statements")}}</div> - -<div class="warning"> -<p>Конструкция <code>for each...in</code> заявлена как "deprecated", как часть стандарта ECMA-357 (<a href="/en-US/docs/Archive/Web/E4X" title="/en-US/docs/E4X">E4X</a>). Поддержка E4X была удалена. Вместо <code>for each...in</code> рассмотрите использование <a href="/en-US/docs/Web/JavaScript/Reference/Statements/for...of">for...of</a>. (Пожалуйста обратите внимание: {{ bug("791343")}}.)<br> - <br> - <strong>Firefox теперь предупреждает об использовании <code>for each...in</code> и <code>for each...in</code> удаляется из ночных сборок. Пожалуйста, посмотрите <a href="/en-US/docs/Web/JavaScript/Reference/Errors/For-each-in_loops_are_deprecated">Warning: JavaScript 1.6's for-each-in loops are deprecated</a> для помощи в миграции.</strong></p> -</div> - -<p><strong>Выражение</strong> <code><strong>for each...in</strong></code> выполняет перебор свойств указанного объекта. Для каждого свойства выполняется указанный оператор.</p> - -<h2 id="Синтаксис">Синтаксис</h2> - -<pre class="syntaxbox">for each (<em>variable</em> in <em>object</em>) { - <em>statement</em> -}</pre> - -<dl> - <dt><code>variable</code></dt> - <dd>Variable to iterate over property values, optionally declared with the <code>var</code> keyword. This variable is local to the function, not to the loop.</dd> -</dl> - -<dl> - <dt><code>object</code></dt> - <dd>Object for which the properties are iterated.</dd> -</dl> - -<dl> - <dt><code>statement</code></dt> - <dd>A statement to execute for each property. To execute multiple statements within the loop, use a <a href="/en-US/docs/Web/JavaScript/Reference/Statements/block">block</a> statement (<code>{ ... }</code>) to group those statements.</dd> -</dl> - -<h2 id="Description">Description</h2> - -<p>Some built-in properties are not iterated over. These include all built-in methods of objects, e.g. <code>String</code>'s <code>indexOf</code> method. However, all user-defined properties are iterated over.</p> - -<h2 id="Examples">Examples</h2> - -<h3 id="Using_for_each...in">Using <code>for each...in</code></h3> - -<p><strong>Warning:</strong> Never use a loop like this on arrays. Only use it on objects. See <a href="/en-US/docs/Web/JavaScript/Reference/Statements/for...in"><code>for...in</code></a> for more details.</p> - -<p>The following snippet iterates over an object's properties, calculating their sum:</p> - -<pre class="brush:js">var sum = 0; -var obj = {prop1: 5, prop2: 13, prop3: 8}; - -for each (var item in obj) { - sum += item; -} - -console.log(sum); // logs "26", which is 5+13+8</pre> - -<h2 id="Specifications">Specifications</h2> - -<p>Not part of a current ECMA-262 specification. Implemented in JavaScript 1.6 and deprecated.</p> - -<h2 id="Браузерная_совместимость">Браузерная совместимость</h2> - -<p>{{CompatibilityTable}}</p> - -<div id="compat-desktop"> -<table class="compat-table"> - <tbody> - <tr> - <th>Feature</th> - <th>Chrome</th> - <th>Firefox (Gecko)</th> - <th>Internet Explorer</th> - <th>Opera</th> - <th>Safari</th> - </tr> - <tr> - <td>Basic support</td> - <td>{{CompatNo}}</td> - <td>{{CompatGeckoDesktop("1.8")}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - </tr> - </tbody> -</table> -</div> - -<div id="compat-mobile"> -<table class="compat-table"> - <tbody> - <tr> - <th>Feature</th> - <th>Android</th> - <th>Chrome for Android</th> - <th>Firefox Mobile (Gecko)</th> - <th>IE Mobile</th> - <th>Opera Mobile</th> - <th>Safari Mobile</th> - </tr> - <tr> - <td>Basic support</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatGeckoMobile("1.0")}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - </tr> - </tbody> -</table> -</div> - -<h2 id="Firefox_specific_note">Firefox specific note</h2> - -<ul> - <li><code>for each...in</code> удалён только из Nightly Firefox 53</li> -</ul> - -<h2 id="Смотрите_также">Смотрите также</h2> - -<ul> - <li><code><a href="/en-US/docs/Web/JavaScript/Reference/Statements/for...in">for...in</a></code> - аналогичный оператор по перебору <em>имён</em> свойств.</li> - <li><code><a href="/en-US/docs/Web/JavaScript/Reference/Statements/for...of">for...of</a></code> - аналогичный оператор, перебирающий <em>значения</em> свойств, но может быть использован только для перебираемых (iteratable) типов, so not for generic objects</li> - <li><code><a href="/en-US/docs/JavaScript/Reference/Statements/for">for</a></code></li> -</ul> |