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 --- .../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 ++ 81 files changed, 1476 insertions(+), 6495 deletions(-) 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 (limited to 'files/pl/web/javascript/guide') 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" } ) }} -- cgit v1.2.3-54-g00ecf