From 4b1a9203c547c019fc5398082ae19a3f3d4c3efe Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:41:15 -0500 Subject: initial commit --- .../global_objects/array/@@iterator/index.html | 89 ++++ .../global_objects/array/@@species/index.html | 76 +++ .../global_objects/array/@@unscopables/index.html | 76 +++ .../global_objects/array/concat/index.html | 156 ++++++ .../global_objects/array/copywithin/index.html | 187 +++++++ .../global_objects/array/entries/index.html | 84 +++ .../global_objects/array/every/index.html | 195 +++++++ .../reference/global_objects/array/fill/index.html | 155 ++++++ .../global_objects/array/filter/index.html | 235 +++++++++ .../reference/global_objects/array/find/index.html | 243 +++++++++ .../global_objects/array/findindex/index.html | 189 +++++++ .../reference/global_objects/array/flat/index.html | 116 +++++ .../global_objects/array/flatmap/index.html | 117 +++++ .../global_objects/array/foreach/index.html | 303 +++++++++++ .../reference/global_objects/array/from/index.html | 227 +++++++++ .../global_objects/array/includes/index.html | 181 +++++++ .../reference/global_objects/array/index.html | 460 +++++++++++++++++ .../global_objects/array/indexof/index.html | 226 +++++++++ .../global_objects/array/isarray/index.html | 121 +++++ .../reference/global_objects/array/join/index.html | 114 +++++ .../reference/global_objects/array/keys/index.html | 76 +++ .../global_objects/array/lastindexof/index.html | 168 ++++++ .../global_objects/array/length/index.html | 149 ++++++ .../reference/global_objects/array/map/index.html | 337 ++++++++++++ .../global_objects/array/observe/index.html | 91 ++++ .../reference/global_objects/array/of/index.html | 102 ++++ .../reference/global_objects/array/pop/index.html | 98 ++++ .../global_objects/array/prototypen/index.html | 183 +++++++ .../reference/global_objects/array/push/index.html | 141 ++++++ .../global_objects/array/reduce/index.html | 564 +++++++++++++++++++++ .../global_objects/array/reduceright/index.html | 334 ++++++++++++ .../global_objects/array/reverse/index.html | 92 ++++ .../global_objects/array/shift/index.html | 111 ++++ .../global_objects/array/slice/index.html | 244 +++++++++ .../reference/global_objects/array/some/index.html | 209 ++++++++ .../reference/global_objects/array/sort/index.html | 264 ++++++++++ .../global_objects/array/splice/index.html | 162 ++++++ .../global_objects/array/tolocalestring/index.html | 183 +++++++ .../global_objects/array/tosource/index.html | 69 +++ .../global_objects/array/tostring/index.html | 80 +++ .../global_objects/array/unobserve/index.html | 88 ++++ .../global_objects/array/unshift/index.html | 99 ++++ .../global_objects/array/values/index.html | 86 ++++ .../arraybuffer/@@species/index.html | 72 +++ .../arraybuffer/bytelength/index.html | 70 +++ .../global_objects/arraybuffer/index.html | 144 ++++++ .../global_objects/arraybuffer/isview/index.html | 89 ++++ .../arraybuffer/prototype/index.html | 68 +++ .../global_objects/arraybuffer/slice/index.html | 88 ++++ .../global_objects/arraybuffer/transfer/index.html | 84 +++ .../global_objects/asyncfunction/index.html | 124 +++++ .../asyncfunction/prototype/index.html | 61 +++ .../global_objects/atomics/add/index.html | 83 +++ .../global_objects/atomics/and/index.html | 129 +++++ .../atomics/compareexchange/index.html | 86 ++++ .../global_objects/atomics/exchange/index.html | 85 ++++ .../reference/global_objects/atomics/index.html | 116 +++++ .../global_objects/atomics/islockfree/index.html | 73 +++ .../global_objects/atomics/load/index.html | 81 +++ .../reference/global_objects/atomics/or/index.html | 129 +++++ .../global_objects/atomics/store/index.html | 82 +++ .../global_objects/atomics/sub/index.html | 86 ++++ .../global_objects/atomics/wait/index.html | 95 ++++ .../global_objects/atomics/wake/index.html | 93 ++++ .../global_objects/atomics/xor/index.html | 130 +++++ .../reference/global_objects/boolean/index.html | 159 ++++++ .../global_objects/boolean/prototype/index.html | 83 +++ .../global_objects/boolean/tosource/index.html | 60 +++ .../global_objects/boolean/tostring/index.html | 89 ++++ .../global_objects/boolean/valueof/index.html | 85 ++++ .../global_objects/dataview/buffer/index.html | 71 +++ .../global_objects/dataview/bytelength/index.html | 77 +++ .../global_objects/dataview/byteoffset/index.html | 74 +++ .../global_objects/dataview/getfloat32/index.html | 95 ++++ .../global_objects/dataview/getfloat64/index.html | 95 ++++ .../global_objects/dataview/getint16/index.html | 95 ++++ .../global_objects/dataview/getint32/index.html | 95 ++++ .../global_objects/dataview/getint8/index.html | 93 ++++ .../global_objects/dataview/getuint16/index.html | 98 ++++ .../global_objects/dataview/getuint32/index.html | 98 ++++ .../global_objects/dataview/getuint8/index.html | 95 ++++ .../reference/global_objects/dataview/index.html | 127 +++++ .../global_objects/dataview/prototype/index.html | 109 ++++ .../global_objects/dataview/setfloat32/index.html | 97 ++++ .../global_objects/dataview/setfloat64/index.html | 97 ++++ .../global_objects/dataview/setint16/index.html | 100 ++++ .../global_objects/dataview/setint32/index.html | 100 ++++ .../global_objects/dataview/setint8/index.html | 95 ++++ .../global_objects/dataview/setuint16/index.html | 100 ++++ .../global_objects/dataview/setuint32/index.html | 100 ++++ .../global_objects/dataview/setuint8/index.html | 95 ++++ .../global_objects/date/@@toprimitive/index.html | 69 +++ .../global_objects/date/getday/index.html | 69 +++ .../global_objects/date/getfullyear/index.html | 88 ++++ .../global_objects/date/gethours/index.html | 83 +++ .../global_objects/date/getmilliseconds/index.html | 81 +++ .../global_objects/date/getminutes/index.html | 81 +++ .../global_objects/date/getmonth/index.html | 83 +++ .../global_objects/date/getseconds/index.html | 83 +++ .../global_objects/date/gettime/index.html | 126 +++++ .../date/gettimezoneoffset/index.html | 102 ++++ .../global_objects/date/getutcdate/index.html | 80 +++ .../global_objects/date/getutcday/index.html | 82 +++ .../global_objects/date/getutcfullyear/index.html | 85 ++++ .../global_objects/date/getutchours/index.html | 81 +++ .../date/getutcmilliseconds/index.html | 79 +++ .../global_objects/date/getutcminutes/index.html | 79 +++ .../global_objects/date/getutcmonth/index.html | 81 +++ .../global_objects/date/getutcseconds/index.html | 79 +++ .../global_objects/date/getyear/index.html | 127 +++++ .../reference/global_objects/date/index.html | 230 +++++++++ .../reference/global_objects/date/now/index.html | 105 ++++ .../reference/global_objects/date/parse/index.html | 173 +++++++ .../global_objects/date/prototype/index.html | 182 +++++++ .../global_objects/date/setdate/index.html | 91 ++++ .../global_objects/date/setfullyear/index.html | 97 ++++ .../global_objects/date/sethours/index.html | 102 ++++ .../global_objects/date/setmilliseconds/index.html | 90 ++++ .../global_objects/date/setminutes/index.html | 100 ++++ .../global_objects/date/setmonth/index.html | 103 ++++ .../global_objects/date/setseconds/index.html | 98 ++++ .../global_objects/date/settime/index.html | 91 ++++ .../global_objects/date/setutcdate/index.html | 90 ++++ .../global_objects/date/setutcfullyear/index.html | 96 ++++ .../global_objects/date/setutchours/index.html | 98 ++++ .../date/setutcmilliseconds/index.html | 90 ++++ .../global_objects/date/setutcminutes/index.html | 96 ++++ .../global_objects/date/setutcmonth/index.html | 94 ++++ .../global_objects/date/setutcseconds/index.html | 94 ++++ .../global_objects/date/setyear/index.html | 96 ++++ .../global_objects/date/todatestring/index.html | 92 ++++ .../global_objects/date/togmtstring/index.html | 87 ++++ .../global_objects/date/toisostring/index.html | 109 ++++ .../global_objects/date/tojson/index.html | 81 +++ .../date/tolocaledatestring/index.html | 188 +++++++ .../global_objects/date/tolocaleformat/index.html | 81 +++ .../global_objects/date/tolocalestring/index.html | 188 +++++++ .../date/tolocaletimestring/index.html | 177 +++++++ .../global_objects/date/tosource/index.html | 61 +++ .../global_objects/date/tostring/index.html | 94 ++++ .../global_objects/date/totimestring/index.html | 88 ++++ .../global_objects/date/toutcstring/index.html | 84 +++ .../reference/global_objects/date/utc/index.html | 133 +++++ .../global_objects/date/valueof/index.html | 85 ++++ .../global_objects/decodeuricomponent/index.html | 127 +++++ .../reference/global_objects/encodeuri/index.html | 163 ++++++ .../global_objects/encodeuricomponent/index.html | 163 ++++++ .../global_objects/error/columnnumber/index.html | 43 ++ .../global_objects/error/filename/index.html | 47 ++ .../reference/global_objects/error/index.html | 241 +++++++++ .../global_objects/error/linenumber/index.html | 55 ++ .../global_objects/error/message/index.html | 75 +++ .../reference/global_objects/error/name/index.html | 58 +++ .../global_objects/error/prototype/index.html | 113 +++++ .../global_objects/error/stack/index.html | 124 +++++ .../global_objects/error/tosource/index.html | 57 +++ .../global_objects/error/tostring/index.html | 116 +++++ .../reference/global_objects/escape/index.html | 132 +++++ .../reference/global_objects/evalerror/index.html | 118 +++++ .../global_objects/evalerror/prototype/index.html | 89 ++++ .../global_objects/float32array/index.html | 204 ++++++++ .../global_objects/float64array/index.html | 204 ++++++++ .../global_objects/function/apply/index.html | 226 +++++++++ .../global_objects/function/arguments/index.html | 92 ++++ .../global_objects/function/arity/index.html | 32 ++ .../global_objects/function/bind/index.html | 286 +++++++++++ .../global_objects/function/call/index.html | 163 ++++++ .../global_objects/function/caller/index.html | 84 +++ .../global_objects/function/displayname/index.html | 81 +++ .../reference/global_objects/function/index.html | 188 +++++++ .../global_objects/function/isgenerator/index.html | 56 ++ .../global_objects/function/length/index.html | 92 ++++ .../global_objects/function/name/index.html | 229 +++++++++ .../global_objects/function/prototype/index.html | 99 ++++ .../global_objects/function/tosource/index.html | 72 +++ .../global_objects/function/tostring/index.html | 236 +++++++++ .../reference/global_objects/generator/index.html | 137 +++++ .../global_objects/generator/next/index.html | 116 +++++ .../global_objects/generator/return/index.html | 102 ++++ .../global_objects/generator/throw/index.html | 101 ++++ .../global_objects/generatorfunction/index.html | 115 +++++ .../generatorfunction/prototype/index.html | 66 +++ .../reference/global_objects/globalthis/index.html | 96 ++++ .../javascript/reference/global_objects/index.html | 191 +++++++ .../reference/global_objects/infinity/index.html | 83 +++ .../reference/global_objects/int16array/index.html | 204 ++++++++ .../reference/global_objects/int32array/index.html | 204 ++++++++ .../reference/global_objects/int8array/index.html | 209 ++++++++ .../global_objects/internalerror/index.html | 82 +++ .../internalerror/prototype/index.html | 61 +++ .../intl/collator/compare/index.html | 101 ++++ .../global_objects/intl/collator/index.html | 179 +++++++ .../intl/collator/prototype/index.html | 79 +++ .../intl/collator/resolvedoptions/index.html | 100 ++++ .../intl/collator/supportedlocalesof/index.html | 98 ++++ .../intl/datetimeformat/format/index.html | 101 ++++ .../intl/datetimeformat/formattoparts/index.html | 169 ++++++ .../global_objects/intl/datetimeformat/index.html | 248 +++++++++ .../intl/datetimeformat/prototype/index.html | 83 +++ .../intl/datetimeformat/resolvedoptions/index.html | 107 ++++ .../datetimeformat/supportedlocalesof/index.html | 99 ++++ .../intl/getcanonicallocales/index.html | 74 +++ .../reference/global_objects/intl/index.html | 129 +++++ .../intl/numberformat/format/index.html | 98 ++++ .../global_objects/intl/numberformat/index.html | 195 +++++++ .../intl/numberformat/prototype/index.html | 81 +++ .../numberformat/supportedlocalesof/index.html | 98 ++++ .../global_objects/intl/pluralrules/index.html | 161 ++++++ .../intl/pluralrules/supportedlocalesof/index.html | 85 ++++ .../reference/global_objects/isfinite/index.html | 99 ++++ .../reference/global_objects/isnan/index.html | 192 +++++++ .../reference/global_objects/json/index.html | 155 ++++++ .../reference/global_objects/json/parse/index.html | 128 +++++ .../global_objects/json/stringify/index.html | 310 +++++++++++ .../global_objects/map/@@iterator/index.html | 102 ++++ .../global_objects/map/@@species/index.html | 72 +++ .../global_objects/map/@@tostringtag/index.html | 58 +++ .../reference/global_objects/map/clear/index.html | 77 +++ .../reference/global_objects/map/delete/index.html | 73 +++ .../global_objects/map/entries/index.html | 78 +++ .../global_objects/map/foreach/index.html | 104 ++++ .../reference/global_objects/map/get/index.html | 80 +++ .../reference/global_objects/map/has/index.html | 83 +++ .../reference/global_objects/map/index.html | 207 ++++++++ .../reference/global_objects/map/keys/index.html | 69 +++ .../global_objects/map/prototype/index.html | 86 ++++ .../reference/global_objects/map/set/index.html | 96 ++++ .../reference/global_objects/map/size/index.html | 67 +++ .../reference/global_objects/map/values/index.html | 77 +++ .../reference/global_objects/math/acos/index.html | 103 ++++ .../reference/global_objects/math/acosh/index.html | 98 ++++ .../reference/global_objects/math/asin/index.html | 103 ++++ .../reference/global_objects/math/asinh/index.html | 99 ++++ .../reference/global_objects/math/atan/index.html | 105 ++++ .../reference/global_objects/math/atan2/index.html | 113 +++++ .../reference/global_objects/math/cbrt/index.html | 98 ++++ .../reference/global_objects/math/ceil/index.html | 170 +++++++ .../reference/global_objects/math/clz32/index.html | 112 ++++ .../reference/global_objects/math/cos/index.html | 98 ++++ .../reference/global_objects/math/cosh/index.html | 102 ++++ .../reference/global_objects/math/e/index.html | 83 +++ .../reference/global_objects/math/exp/index.html | 95 ++++ .../reference/global_objects/math/expm1/index.html | 94 ++++ .../reference/global_objects/math/floor/index.html | 137 +++++ .../global_objects/math/fround/index.html | 112 ++++ .../reference/global_objects/math/hypot/index.html | 128 +++++ .../reference/global_objects/math/imul/index.html | 92 ++++ .../reference/global_objects/math/index.html | 201 ++++++++ .../reference/global_objects/math/ln10/index.html | 83 +++ .../reference/global_objects/math/ln2/index.html | 83 +++ .../reference/global_objects/math/log/index.html | 113 +++++ .../reference/global_objects/math/log10/index.html | 101 ++++ .../global_objects/math/log10e/index.html | 85 ++++ .../reference/global_objects/math/log1p/index.html | 102 ++++ .../reference/global_objects/math/log2/index.html | 101 ++++ .../reference/global_objects/math/log2e/index.html | 83 +++ .../global_objects/math/math.random/index.html | 112 ++++ .../reference/global_objects/math/max/index.html | 118 +++++ .../reference/global_objects/math/min/index.html | 112 ++++ .../reference/global_objects/math/pi/index.html | 81 +++ .../reference/global_objects/math/pow/index.html | 113 +++++ .../reference/global_objects/math/round/index.html | 99 ++++ .../reference/global_objects/math/sign/index.html | 115 +++++ .../reference/global_objects/math/sin/index.html | 97 ++++ .../reference/global_objects/math/sinh/index.html | 102 ++++ .../reference/global_objects/math/sqrt/index.html | 99 ++++ .../global_objects/math/sqrt1_2/index.html | 84 +++ .../reference/global_objects/math/sqrt2/index.html | 82 +++ .../reference/global_objects/math/tan/index.html | 102 ++++ .../reference/global_objects/math/tanh/index.html | 93 ++++ .../reference/global_objects/math/trunc/index.html | 125 +++++ .../reference/global_objects/nan/index.html | 97 ++++ .../reference/global_objects/null/index.html | 93 ++++ .../global_objects/number/epsilon/index.html | 75 +++ .../reference/global_objects/number/index.html | 180 +++++++ .../global_objects/number/isfinite/index.html | 93 ++++ .../global_objects/number/isinteger/index.html | 98 ++++ .../global_objects/number/isnan/index.html | 104 ++++ .../global_objects/number/issafeinteger/index.html | 99 ++++ .../number/max_safe_integer/index.html | 68 +++ .../global_objects/number/max_value/index.html | 82 +++ .../number/min_safe_integer/index.html | 66 +++ .../global_objects/number/min_value/index.html | 83 +++ .../reference/global_objects/number/nan/index.html | 65 +++ .../number/negative_infinity/index.html | 100 ++++ .../global_objects/number/parsefloat/index.html | 72 +++ .../global_objects/number/parseint/index.html | 77 +++ .../number/positive_infinity/index.html | 100 ++++ .../global_objects/number/prototype/index.html | 89 ++++ .../global_objects/number/toexponential/index.html | 108 ++++ .../global_objects/number/tofixed/index.html | 113 +++++ .../global_objects/number/tointeger/index.html | 52 ++ .../number/tolocalestring/index.html | 192 +++++++ .../global_objects/number/toprecision/index.html | 107 ++++ .../global_objects/number/tosource/index.html | 53 ++ .../global_objects/number/tostring/index.html | 116 +++++ .../global_objects/number/valueof/index.html | 85 ++++ .../object/__definegetter__/index.html | 150 ++++++ .../global_objects/object/assign/index.html | 277 ++++++++++ .../global_objects/object/constructor/index.html | 192 +++++++ .../global_objects/object/create/index.html | 268 ++++++++++ .../object/defineproperty/index.html | 413 +++++++++++++++ .../global_objects/object/entries/index.html | 168 ++++++ .../global_objects/object/freeze/index.html | 253 +++++++++ .../object/getownpropertynames/index.html | 201 ++++++++ .../object/getprototypeof/index.html | 133 +++++ .../object/hasownproperty/index.html | 203 ++++++++ .../reference/global_objects/object/index.html | 186 +++++++ .../reference/global_objects/object/is/index.html | 120 +++++ .../global_objects/object/isextensible/index.html | 153 ++++++ .../global_objects/object/isfrozen/index.html | 173 +++++++ .../global_objects/object/keys/index.html | 206 ++++++++ .../global_objects/object/observe/index.html | 199 ++++++++ .../global_objects/object/proto/index.html | 196 +++++++ .../global_objects/object/prototype/index.html | 219 ++++++++ .../global_objects/object/tosource/index.html | 169 ++++++ .../global_objects/object/valueof/index.html | 115 +++++ .../global_objects/object/values/index.html | 148 ++++++ .../reference/global_objects/parsefloat/index.html | 147 ++++++ .../reference/global_objects/parseint/index.html | 195 +++++++ .../global_objects/promise/all/index.html | 137 +++++ .../global_objects/promise/finally/index.html | 93 ++++ .../reference/global_objects/promise/index.html | 244 +++++++++ .../global_objects/promise/race/index.html | 184 +++++++ .../global_objects/promise/reject/index.html | 74 +++ .../global_objects/promise/then/index.html | 149 ++++++ .../reference/global_objects/rangeerror/index.html | 174 +++++++ .../global_objects/rangeerror/prototype/index.html | 128 +++++ .../global_objects/reflect/apply/index.html | 98 ++++ .../global_objects/reflect/construct/index.html | 157 ++++++ .../reference/global_objects/reflect/index.html | 88 ++++ .../global_objects/regexp/flags/index.html | 83 +++ .../reference/global_objects/regexp/index.html | 560 ++++++++++++++++++++ .../global_objects/regexp/input/index.html | 105 ++++ .../global_objects/regexp/test/index.html | 127 +++++ .../reference/global_objects/set/add/index.html | 69 +++ .../reference/global_objects/set/delete/index.html | 84 +++ .../reference/global_objects/set/has/index.html | 131 +++++ .../reference/global_objects/set/index.html | 264 ++++++++++ .../global_objects/string/charat/index.html | 305 +++++++++++ .../global_objects/string/concat/index.html | 140 +++++ .../global_objects/string/endswith/index.html | 148 ++++++ .../global_objects/string/fromcharcode/index.html | 134 +++++ .../global_objects/string/includes/index.html | 131 +++++ .../reference/global_objects/string/index.html | 310 +++++++++++ .../global_objects/string/indexof/index.html | 200 ++++++++ .../global_objects/string/lastindexof/index.html | 148 ++++++ .../global_objects/string/length/index.html | 87 ++++ .../global_objects/string/match/index.html | 140 +++++ .../global_objects/string/prototype/index.html | 189 +++++++ .../reference/global_objects/string/raw/index.html | 160 ++++++ .../global_objects/string/repeat/index.html | 286 +++++++++++ .../global_objects/string/replace/index.html | 344 +++++++++++++ .../global_objects/string/slice/index.html | 152 ++++++ .../global_objects/string/split/index.html | 212 ++++++++ .../global_objects/string/startswith/index.html | 150 ++++++ .../global_objects/string/substr/index.html | 171 +++++++ .../global_objects/string/substring/index.html | 199 ++++++++ .../global_objects/string/suchen/index.html | 105 ++++ .../global_objects/string/tolowercase/index.html | 79 +++ .../global_objects/string/touppercase/index.html | 127 +++++ .../global_objects/string/trim/index.html | 93 ++++ .../global_objects/string/trimleft/index.html | 58 +++ .../global_objects/string/trimright/index.html | 58 +++ .../global_objects/syntaxerror/index.html | 133 +++++ .../syntaxerror/prototype/index.html | 88 ++++ .../reference/global_objects/typeerror/index.html | 133 +++++ .../global_objects/typeerror/prototype/index.html | 88 ++++ .../reference/global_objects/undefined/index.html | 135 +++++ .../reference/global_objects/unescape/index.html | 126 +++++ .../reference/global_objects/uneval/index.html | 109 ++++ .../global_objects/webassembly/compile/index.html | 91 ++++ .../webassembly/compilestreaming/index.html | 87 ++++ .../global_objects/webassembly/index.html | 111 ++++ 374 files changed, 47317 insertions(+) create mode 100644 files/de/web/javascript/reference/global_objects/array/@@iterator/index.html create mode 100644 files/de/web/javascript/reference/global_objects/array/@@species/index.html create mode 100644 files/de/web/javascript/reference/global_objects/array/@@unscopables/index.html create mode 100644 files/de/web/javascript/reference/global_objects/array/concat/index.html create mode 100644 files/de/web/javascript/reference/global_objects/array/copywithin/index.html create mode 100644 files/de/web/javascript/reference/global_objects/array/entries/index.html create mode 100644 files/de/web/javascript/reference/global_objects/array/every/index.html create mode 100644 files/de/web/javascript/reference/global_objects/array/fill/index.html create mode 100644 files/de/web/javascript/reference/global_objects/array/filter/index.html create mode 100644 files/de/web/javascript/reference/global_objects/array/find/index.html create mode 100644 files/de/web/javascript/reference/global_objects/array/findindex/index.html create mode 100644 files/de/web/javascript/reference/global_objects/array/flat/index.html create mode 100644 files/de/web/javascript/reference/global_objects/array/flatmap/index.html create mode 100644 files/de/web/javascript/reference/global_objects/array/foreach/index.html create mode 100644 files/de/web/javascript/reference/global_objects/array/from/index.html create mode 100644 files/de/web/javascript/reference/global_objects/array/includes/index.html create mode 100644 files/de/web/javascript/reference/global_objects/array/index.html create mode 100644 files/de/web/javascript/reference/global_objects/array/indexof/index.html create mode 100644 files/de/web/javascript/reference/global_objects/array/isarray/index.html create mode 100644 files/de/web/javascript/reference/global_objects/array/join/index.html create mode 100644 files/de/web/javascript/reference/global_objects/array/keys/index.html create mode 100644 files/de/web/javascript/reference/global_objects/array/lastindexof/index.html create mode 100644 files/de/web/javascript/reference/global_objects/array/length/index.html create mode 100644 files/de/web/javascript/reference/global_objects/array/map/index.html create mode 100644 files/de/web/javascript/reference/global_objects/array/observe/index.html create mode 100644 files/de/web/javascript/reference/global_objects/array/of/index.html create mode 100644 files/de/web/javascript/reference/global_objects/array/pop/index.html create mode 100644 files/de/web/javascript/reference/global_objects/array/prototypen/index.html create mode 100644 files/de/web/javascript/reference/global_objects/array/push/index.html create mode 100644 files/de/web/javascript/reference/global_objects/array/reduce/index.html create mode 100644 files/de/web/javascript/reference/global_objects/array/reduceright/index.html create mode 100644 files/de/web/javascript/reference/global_objects/array/reverse/index.html create mode 100644 files/de/web/javascript/reference/global_objects/array/shift/index.html create mode 100644 files/de/web/javascript/reference/global_objects/array/slice/index.html create mode 100644 files/de/web/javascript/reference/global_objects/array/some/index.html create mode 100644 files/de/web/javascript/reference/global_objects/array/sort/index.html create mode 100644 files/de/web/javascript/reference/global_objects/array/splice/index.html create mode 100644 files/de/web/javascript/reference/global_objects/array/tolocalestring/index.html create mode 100644 files/de/web/javascript/reference/global_objects/array/tosource/index.html create mode 100644 files/de/web/javascript/reference/global_objects/array/tostring/index.html create mode 100644 files/de/web/javascript/reference/global_objects/array/unobserve/index.html create mode 100644 files/de/web/javascript/reference/global_objects/array/unshift/index.html create mode 100644 files/de/web/javascript/reference/global_objects/array/values/index.html create mode 100644 files/de/web/javascript/reference/global_objects/arraybuffer/@@species/index.html create mode 100644 files/de/web/javascript/reference/global_objects/arraybuffer/bytelength/index.html create mode 100644 files/de/web/javascript/reference/global_objects/arraybuffer/index.html create mode 100644 files/de/web/javascript/reference/global_objects/arraybuffer/isview/index.html create mode 100644 files/de/web/javascript/reference/global_objects/arraybuffer/prototype/index.html create mode 100644 files/de/web/javascript/reference/global_objects/arraybuffer/slice/index.html create mode 100644 files/de/web/javascript/reference/global_objects/arraybuffer/transfer/index.html create mode 100644 files/de/web/javascript/reference/global_objects/asyncfunction/index.html create mode 100644 files/de/web/javascript/reference/global_objects/asyncfunction/prototype/index.html create mode 100644 files/de/web/javascript/reference/global_objects/atomics/add/index.html create mode 100644 files/de/web/javascript/reference/global_objects/atomics/and/index.html create mode 100644 files/de/web/javascript/reference/global_objects/atomics/compareexchange/index.html create mode 100644 files/de/web/javascript/reference/global_objects/atomics/exchange/index.html create mode 100644 files/de/web/javascript/reference/global_objects/atomics/index.html create mode 100644 files/de/web/javascript/reference/global_objects/atomics/islockfree/index.html create mode 100644 files/de/web/javascript/reference/global_objects/atomics/load/index.html create mode 100644 files/de/web/javascript/reference/global_objects/atomics/or/index.html create mode 100644 files/de/web/javascript/reference/global_objects/atomics/store/index.html create mode 100644 files/de/web/javascript/reference/global_objects/atomics/sub/index.html create mode 100644 files/de/web/javascript/reference/global_objects/atomics/wait/index.html create mode 100644 files/de/web/javascript/reference/global_objects/atomics/wake/index.html create mode 100644 files/de/web/javascript/reference/global_objects/atomics/xor/index.html create mode 100644 files/de/web/javascript/reference/global_objects/boolean/index.html create mode 100644 files/de/web/javascript/reference/global_objects/boolean/prototype/index.html create mode 100644 files/de/web/javascript/reference/global_objects/boolean/tosource/index.html create mode 100644 files/de/web/javascript/reference/global_objects/boolean/tostring/index.html create mode 100644 files/de/web/javascript/reference/global_objects/boolean/valueof/index.html create mode 100644 files/de/web/javascript/reference/global_objects/dataview/buffer/index.html create mode 100644 files/de/web/javascript/reference/global_objects/dataview/bytelength/index.html create mode 100644 files/de/web/javascript/reference/global_objects/dataview/byteoffset/index.html create mode 100644 files/de/web/javascript/reference/global_objects/dataview/getfloat32/index.html create mode 100644 files/de/web/javascript/reference/global_objects/dataview/getfloat64/index.html create mode 100644 files/de/web/javascript/reference/global_objects/dataview/getint16/index.html create mode 100644 files/de/web/javascript/reference/global_objects/dataview/getint32/index.html create mode 100644 files/de/web/javascript/reference/global_objects/dataview/getint8/index.html create mode 100644 files/de/web/javascript/reference/global_objects/dataview/getuint16/index.html create mode 100644 files/de/web/javascript/reference/global_objects/dataview/getuint32/index.html create mode 100644 files/de/web/javascript/reference/global_objects/dataview/getuint8/index.html create mode 100644 files/de/web/javascript/reference/global_objects/dataview/index.html create mode 100644 files/de/web/javascript/reference/global_objects/dataview/prototype/index.html create mode 100644 files/de/web/javascript/reference/global_objects/dataview/setfloat32/index.html create mode 100644 files/de/web/javascript/reference/global_objects/dataview/setfloat64/index.html create mode 100644 files/de/web/javascript/reference/global_objects/dataview/setint16/index.html create mode 100644 files/de/web/javascript/reference/global_objects/dataview/setint32/index.html create mode 100644 files/de/web/javascript/reference/global_objects/dataview/setint8/index.html create mode 100644 files/de/web/javascript/reference/global_objects/dataview/setuint16/index.html create mode 100644 files/de/web/javascript/reference/global_objects/dataview/setuint32/index.html create mode 100644 files/de/web/javascript/reference/global_objects/dataview/setuint8/index.html create mode 100644 files/de/web/javascript/reference/global_objects/date/@@toprimitive/index.html create mode 100644 files/de/web/javascript/reference/global_objects/date/getday/index.html create mode 100644 files/de/web/javascript/reference/global_objects/date/getfullyear/index.html create mode 100644 files/de/web/javascript/reference/global_objects/date/gethours/index.html create mode 100644 files/de/web/javascript/reference/global_objects/date/getmilliseconds/index.html create mode 100644 files/de/web/javascript/reference/global_objects/date/getminutes/index.html create mode 100644 files/de/web/javascript/reference/global_objects/date/getmonth/index.html create mode 100644 files/de/web/javascript/reference/global_objects/date/getseconds/index.html create mode 100644 files/de/web/javascript/reference/global_objects/date/gettime/index.html create mode 100644 files/de/web/javascript/reference/global_objects/date/gettimezoneoffset/index.html create mode 100644 files/de/web/javascript/reference/global_objects/date/getutcdate/index.html create mode 100644 files/de/web/javascript/reference/global_objects/date/getutcday/index.html create mode 100644 files/de/web/javascript/reference/global_objects/date/getutcfullyear/index.html create mode 100644 files/de/web/javascript/reference/global_objects/date/getutchours/index.html create mode 100644 files/de/web/javascript/reference/global_objects/date/getutcmilliseconds/index.html create mode 100644 files/de/web/javascript/reference/global_objects/date/getutcminutes/index.html create mode 100644 files/de/web/javascript/reference/global_objects/date/getutcmonth/index.html create mode 100644 files/de/web/javascript/reference/global_objects/date/getutcseconds/index.html create mode 100644 files/de/web/javascript/reference/global_objects/date/getyear/index.html create mode 100644 files/de/web/javascript/reference/global_objects/date/index.html create mode 100644 files/de/web/javascript/reference/global_objects/date/now/index.html create mode 100644 files/de/web/javascript/reference/global_objects/date/parse/index.html create mode 100644 files/de/web/javascript/reference/global_objects/date/prototype/index.html create mode 100644 files/de/web/javascript/reference/global_objects/date/setdate/index.html create mode 100644 files/de/web/javascript/reference/global_objects/date/setfullyear/index.html create mode 100644 files/de/web/javascript/reference/global_objects/date/sethours/index.html create mode 100644 files/de/web/javascript/reference/global_objects/date/setmilliseconds/index.html create mode 100644 files/de/web/javascript/reference/global_objects/date/setminutes/index.html create mode 100644 files/de/web/javascript/reference/global_objects/date/setmonth/index.html create mode 100644 files/de/web/javascript/reference/global_objects/date/setseconds/index.html create mode 100644 files/de/web/javascript/reference/global_objects/date/settime/index.html create mode 100644 files/de/web/javascript/reference/global_objects/date/setutcdate/index.html create mode 100644 files/de/web/javascript/reference/global_objects/date/setutcfullyear/index.html create mode 100644 files/de/web/javascript/reference/global_objects/date/setutchours/index.html create mode 100644 files/de/web/javascript/reference/global_objects/date/setutcmilliseconds/index.html create mode 100644 files/de/web/javascript/reference/global_objects/date/setutcminutes/index.html create mode 100644 files/de/web/javascript/reference/global_objects/date/setutcmonth/index.html create mode 100644 files/de/web/javascript/reference/global_objects/date/setutcseconds/index.html create mode 100644 files/de/web/javascript/reference/global_objects/date/setyear/index.html create mode 100644 files/de/web/javascript/reference/global_objects/date/todatestring/index.html create mode 100644 files/de/web/javascript/reference/global_objects/date/togmtstring/index.html create mode 100644 files/de/web/javascript/reference/global_objects/date/toisostring/index.html create mode 100644 files/de/web/javascript/reference/global_objects/date/tojson/index.html create mode 100644 files/de/web/javascript/reference/global_objects/date/tolocaledatestring/index.html create mode 100644 files/de/web/javascript/reference/global_objects/date/tolocaleformat/index.html create mode 100644 files/de/web/javascript/reference/global_objects/date/tolocalestring/index.html create mode 100644 files/de/web/javascript/reference/global_objects/date/tolocaletimestring/index.html create mode 100644 files/de/web/javascript/reference/global_objects/date/tosource/index.html create mode 100644 files/de/web/javascript/reference/global_objects/date/tostring/index.html create mode 100644 files/de/web/javascript/reference/global_objects/date/totimestring/index.html create mode 100644 files/de/web/javascript/reference/global_objects/date/toutcstring/index.html create mode 100644 files/de/web/javascript/reference/global_objects/date/utc/index.html create mode 100644 files/de/web/javascript/reference/global_objects/date/valueof/index.html create mode 100644 files/de/web/javascript/reference/global_objects/decodeuricomponent/index.html create mode 100644 files/de/web/javascript/reference/global_objects/encodeuri/index.html create mode 100644 files/de/web/javascript/reference/global_objects/encodeuricomponent/index.html create mode 100644 files/de/web/javascript/reference/global_objects/error/columnnumber/index.html create mode 100644 files/de/web/javascript/reference/global_objects/error/filename/index.html create mode 100644 files/de/web/javascript/reference/global_objects/error/index.html create mode 100644 files/de/web/javascript/reference/global_objects/error/linenumber/index.html create mode 100644 files/de/web/javascript/reference/global_objects/error/message/index.html create mode 100644 files/de/web/javascript/reference/global_objects/error/name/index.html create mode 100644 files/de/web/javascript/reference/global_objects/error/prototype/index.html create mode 100644 files/de/web/javascript/reference/global_objects/error/stack/index.html create mode 100644 files/de/web/javascript/reference/global_objects/error/tosource/index.html create mode 100644 files/de/web/javascript/reference/global_objects/error/tostring/index.html create mode 100644 files/de/web/javascript/reference/global_objects/escape/index.html create mode 100644 files/de/web/javascript/reference/global_objects/evalerror/index.html create mode 100644 files/de/web/javascript/reference/global_objects/evalerror/prototype/index.html create mode 100644 files/de/web/javascript/reference/global_objects/float32array/index.html create mode 100644 files/de/web/javascript/reference/global_objects/float64array/index.html create mode 100644 files/de/web/javascript/reference/global_objects/function/apply/index.html create mode 100644 files/de/web/javascript/reference/global_objects/function/arguments/index.html create mode 100644 files/de/web/javascript/reference/global_objects/function/arity/index.html create mode 100644 files/de/web/javascript/reference/global_objects/function/bind/index.html create mode 100644 files/de/web/javascript/reference/global_objects/function/call/index.html create mode 100644 files/de/web/javascript/reference/global_objects/function/caller/index.html create mode 100644 files/de/web/javascript/reference/global_objects/function/displayname/index.html create mode 100644 files/de/web/javascript/reference/global_objects/function/index.html create mode 100644 files/de/web/javascript/reference/global_objects/function/isgenerator/index.html create mode 100644 files/de/web/javascript/reference/global_objects/function/length/index.html create mode 100644 files/de/web/javascript/reference/global_objects/function/name/index.html create mode 100644 files/de/web/javascript/reference/global_objects/function/prototype/index.html create mode 100644 files/de/web/javascript/reference/global_objects/function/tosource/index.html create mode 100644 files/de/web/javascript/reference/global_objects/function/tostring/index.html create mode 100644 files/de/web/javascript/reference/global_objects/generator/index.html create mode 100644 files/de/web/javascript/reference/global_objects/generator/next/index.html create mode 100644 files/de/web/javascript/reference/global_objects/generator/return/index.html create mode 100644 files/de/web/javascript/reference/global_objects/generator/throw/index.html create mode 100644 files/de/web/javascript/reference/global_objects/generatorfunction/index.html create mode 100644 files/de/web/javascript/reference/global_objects/generatorfunction/prototype/index.html create mode 100644 files/de/web/javascript/reference/global_objects/globalthis/index.html create mode 100644 files/de/web/javascript/reference/global_objects/index.html create mode 100644 files/de/web/javascript/reference/global_objects/infinity/index.html create mode 100644 files/de/web/javascript/reference/global_objects/int16array/index.html create mode 100644 files/de/web/javascript/reference/global_objects/int32array/index.html create mode 100644 files/de/web/javascript/reference/global_objects/int8array/index.html create mode 100644 files/de/web/javascript/reference/global_objects/internalerror/index.html create mode 100644 files/de/web/javascript/reference/global_objects/internalerror/prototype/index.html create mode 100644 files/de/web/javascript/reference/global_objects/intl/collator/compare/index.html create mode 100644 files/de/web/javascript/reference/global_objects/intl/collator/index.html create mode 100644 files/de/web/javascript/reference/global_objects/intl/collator/prototype/index.html create mode 100644 files/de/web/javascript/reference/global_objects/intl/collator/resolvedoptions/index.html create mode 100644 files/de/web/javascript/reference/global_objects/intl/collator/supportedlocalesof/index.html create mode 100644 files/de/web/javascript/reference/global_objects/intl/datetimeformat/format/index.html create mode 100644 files/de/web/javascript/reference/global_objects/intl/datetimeformat/formattoparts/index.html create mode 100644 files/de/web/javascript/reference/global_objects/intl/datetimeformat/index.html create mode 100644 files/de/web/javascript/reference/global_objects/intl/datetimeformat/prototype/index.html create mode 100644 files/de/web/javascript/reference/global_objects/intl/datetimeformat/resolvedoptions/index.html create mode 100644 files/de/web/javascript/reference/global_objects/intl/datetimeformat/supportedlocalesof/index.html create mode 100644 files/de/web/javascript/reference/global_objects/intl/getcanonicallocales/index.html create mode 100644 files/de/web/javascript/reference/global_objects/intl/index.html create mode 100644 files/de/web/javascript/reference/global_objects/intl/numberformat/format/index.html create mode 100644 files/de/web/javascript/reference/global_objects/intl/numberformat/index.html create mode 100644 files/de/web/javascript/reference/global_objects/intl/numberformat/prototype/index.html create mode 100644 files/de/web/javascript/reference/global_objects/intl/numberformat/supportedlocalesof/index.html create mode 100644 files/de/web/javascript/reference/global_objects/intl/pluralrules/index.html create mode 100644 files/de/web/javascript/reference/global_objects/intl/pluralrules/supportedlocalesof/index.html create mode 100644 files/de/web/javascript/reference/global_objects/isfinite/index.html create mode 100644 files/de/web/javascript/reference/global_objects/isnan/index.html create mode 100644 files/de/web/javascript/reference/global_objects/json/index.html create mode 100644 files/de/web/javascript/reference/global_objects/json/parse/index.html create mode 100644 files/de/web/javascript/reference/global_objects/json/stringify/index.html create mode 100644 files/de/web/javascript/reference/global_objects/map/@@iterator/index.html create mode 100644 files/de/web/javascript/reference/global_objects/map/@@species/index.html create mode 100644 files/de/web/javascript/reference/global_objects/map/@@tostringtag/index.html create mode 100644 files/de/web/javascript/reference/global_objects/map/clear/index.html create mode 100644 files/de/web/javascript/reference/global_objects/map/delete/index.html create mode 100644 files/de/web/javascript/reference/global_objects/map/entries/index.html create mode 100644 files/de/web/javascript/reference/global_objects/map/foreach/index.html create mode 100644 files/de/web/javascript/reference/global_objects/map/get/index.html create mode 100644 files/de/web/javascript/reference/global_objects/map/has/index.html create mode 100644 files/de/web/javascript/reference/global_objects/map/index.html create mode 100644 files/de/web/javascript/reference/global_objects/map/keys/index.html create mode 100644 files/de/web/javascript/reference/global_objects/map/prototype/index.html create mode 100644 files/de/web/javascript/reference/global_objects/map/set/index.html create mode 100644 files/de/web/javascript/reference/global_objects/map/size/index.html create mode 100644 files/de/web/javascript/reference/global_objects/map/values/index.html create mode 100644 files/de/web/javascript/reference/global_objects/math/acos/index.html create mode 100644 files/de/web/javascript/reference/global_objects/math/acosh/index.html create mode 100644 files/de/web/javascript/reference/global_objects/math/asin/index.html create mode 100644 files/de/web/javascript/reference/global_objects/math/asinh/index.html create mode 100644 files/de/web/javascript/reference/global_objects/math/atan/index.html create mode 100644 files/de/web/javascript/reference/global_objects/math/atan2/index.html create mode 100644 files/de/web/javascript/reference/global_objects/math/cbrt/index.html create mode 100644 files/de/web/javascript/reference/global_objects/math/ceil/index.html create mode 100644 files/de/web/javascript/reference/global_objects/math/clz32/index.html create mode 100644 files/de/web/javascript/reference/global_objects/math/cos/index.html create mode 100644 files/de/web/javascript/reference/global_objects/math/cosh/index.html create mode 100644 files/de/web/javascript/reference/global_objects/math/e/index.html create mode 100644 files/de/web/javascript/reference/global_objects/math/exp/index.html create mode 100644 files/de/web/javascript/reference/global_objects/math/expm1/index.html create mode 100644 files/de/web/javascript/reference/global_objects/math/floor/index.html create mode 100644 files/de/web/javascript/reference/global_objects/math/fround/index.html create mode 100644 files/de/web/javascript/reference/global_objects/math/hypot/index.html create mode 100644 files/de/web/javascript/reference/global_objects/math/imul/index.html create mode 100644 files/de/web/javascript/reference/global_objects/math/index.html create mode 100644 files/de/web/javascript/reference/global_objects/math/ln10/index.html create mode 100644 files/de/web/javascript/reference/global_objects/math/ln2/index.html create mode 100644 files/de/web/javascript/reference/global_objects/math/log/index.html create mode 100644 files/de/web/javascript/reference/global_objects/math/log10/index.html create mode 100644 files/de/web/javascript/reference/global_objects/math/log10e/index.html create mode 100644 files/de/web/javascript/reference/global_objects/math/log1p/index.html create mode 100644 files/de/web/javascript/reference/global_objects/math/log2/index.html create mode 100644 files/de/web/javascript/reference/global_objects/math/log2e/index.html create mode 100644 files/de/web/javascript/reference/global_objects/math/math.random/index.html create mode 100644 files/de/web/javascript/reference/global_objects/math/max/index.html create mode 100644 files/de/web/javascript/reference/global_objects/math/min/index.html create mode 100644 files/de/web/javascript/reference/global_objects/math/pi/index.html create mode 100644 files/de/web/javascript/reference/global_objects/math/pow/index.html create mode 100644 files/de/web/javascript/reference/global_objects/math/round/index.html create mode 100644 files/de/web/javascript/reference/global_objects/math/sign/index.html create mode 100644 files/de/web/javascript/reference/global_objects/math/sin/index.html create mode 100644 files/de/web/javascript/reference/global_objects/math/sinh/index.html create mode 100644 files/de/web/javascript/reference/global_objects/math/sqrt/index.html create mode 100644 files/de/web/javascript/reference/global_objects/math/sqrt1_2/index.html create mode 100644 files/de/web/javascript/reference/global_objects/math/sqrt2/index.html create mode 100644 files/de/web/javascript/reference/global_objects/math/tan/index.html create mode 100644 files/de/web/javascript/reference/global_objects/math/tanh/index.html create mode 100644 files/de/web/javascript/reference/global_objects/math/trunc/index.html create mode 100644 files/de/web/javascript/reference/global_objects/nan/index.html create mode 100644 files/de/web/javascript/reference/global_objects/null/index.html create mode 100644 files/de/web/javascript/reference/global_objects/number/epsilon/index.html create mode 100644 files/de/web/javascript/reference/global_objects/number/index.html create mode 100644 files/de/web/javascript/reference/global_objects/number/isfinite/index.html create mode 100644 files/de/web/javascript/reference/global_objects/number/isinteger/index.html create mode 100644 files/de/web/javascript/reference/global_objects/number/isnan/index.html create mode 100644 files/de/web/javascript/reference/global_objects/number/issafeinteger/index.html create mode 100644 files/de/web/javascript/reference/global_objects/number/max_safe_integer/index.html create mode 100644 files/de/web/javascript/reference/global_objects/number/max_value/index.html create mode 100644 files/de/web/javascript/reference/global_objects/number/min_safe_integer/index.html create mode 100644 files/de/web/javascript/reference/global_objects/number/min_value/index.html create mode 100644 files/de/web/javascript/reference/global_objects/number/nan/index.html create mode 100644 files/de/web/javascript/reference/global_objects/number/negative_infinity/index.html create mode 100644 files/de/web/javascript/reference/global_objects/number/parsefloat/index.html create mode 100644 files/de/web/javascript/reference/global_objects/number/parseint/index.html create mode 100644 files/de/web/javascript/reference/global_objects/number/positive_infinity/index.html create mode 100644 files/de/web/javascript/reference/global_objects/number/prototype/index.html create mode 100644 files/de/web/javascript/reference/global_objects/number/toexponential/index.html create mode 100644 files/de/web/javascript/reference/global_objects/number/tofixed/index.html create mode 100644 files/de/web/javascript/reference/global_objects/number/tointeger/index.html create mode 100644 files/de/web/javascript/reference/global_objects/number/tolocalestring/index.html create mode 100644 files/de/web/javascript/reference/global_objects/number/toprecision/index.html create mode 100644 files/de/web/javascript/reference/global_objects/number/tosource/index.html create mode 100644 files/de/web/javascript/reference/global_objects/number/tostring/index.html create mode 100644 files/de/web/javascript/reference/global_objects/number/valueof/index.html create mode 100644 files/de/web/javascript/reference/global_objects/object/__definegetter__/index.html create mode 100644 files/de/web/javascript/reference/global_objects/object/assign/index.html create mode 100644 files/de/web/javascript/reference/global_objects/object/constructor/index.html create mode 100644 files/de/web/javascript/reference/global_objects/object/create/index.html create mode 100644 files/de/web/javascript/reference/global_objects/object/defineproperty/index.html create mode 100644 files/de/web/javascript/reference/global_objects/object/entries/index.html create mode 100644 files/de/web/javascript/reference/global_objects/object/freeze/index.html create mode 100644 files/de/web/javascript/reference/global_objects/object/getownpropertynames/index.html create mode 100644 files/de/web/javascript/reference/global_objects/object/getprototypeof/index.html create mode 100644 files/de/web/javascript/reference/global_objects/object/hasownproperty/index.html create mode 100644 files/de/web/javascript/reference/global_objects/object/index.html create mode 100644 files/de/web/javascript/reference/global_objects/object/is/index.html create mode 100644 files/de/web/javascript/reference/global_objects/object/isextensible/index.html create mode 100644 files/de/web/javascript/reference/global_objects/object/isfrozen/index.html create mode 100644 files/de/web/javascript/reference/global_objects/object/keys/index.html create mode 100644 files/de/web/javascript/reference/global_objects/object/observe/index.html create mode 100644 files/de/web/javascript/reference/global_objects/object/proto/index.html create mode 100644 files/de/web/javascript/reference/global_objects/object/prototype/index.html create mode 100644 files/de/web/javascript/reference/global_objects/object/tosource/index.html create mode 100644 files/de/web/javascript/reference/global_objects/object/valueof/index.html create mode 100644 files/de/web/javascript/reference/global_objects/object/values/index.html create mode 100644 files/de/web/javascript/reference/global_objects/parsefloat/index.html create mode 100644 files/de/web/javascript/reference/global_objects/parseint/index.html create mode 100644 files/de/web/javascript/reference/global_objects/promise/all/index.html create mode 100644 files/de/web/javascript/reference/global_objects/promise/finally/index.html create mode 100644 files/de/web/javascript/reference/global_objects/promise/index.html create mode 100644 files/de/web/javascript/reference/global_objects/promise/race/index.html create mode 100644 files/de/web/javascript/reference/global_objects/promise/reject/index.html create mode 100644 files/de/web/javascript/reference/global_objects/promise/then/index.html create mode 100644 files/de/web/javascript/reference/global_objects/rangeerror/index.html create mode 100644 files/de/web/javascript/reference/global_objects/rangeerror/prototype/index.html create mode 100644 files/de/web/javascript/reference/global_objects/reflect/apply/index.html create mode 100644 files/de/web/javascript/reference/global_objects/reflect/construct/index.html create mode 100644 files/de/web/javascript/reference/global_objects/reflect/index.html create mode 100644 files/de/web/javascript/reference/global_objects/regexp/flags/index.html create mode 100644 files/de/web/javascript/reference/global_objects/regexp/index.html create mode 100644 files/de/web/javascript/reference/global_objects/regexp/input/index.html create mode 100644 files/de/web/javascript/reference/global_objects/regexp/test/index.html create mode 100644 files/de/web/javascript/reference/global_objects/set/add/index.html create mode 100644 files/de/web/javascript/reference/global_objects/set/delete/index.html create mode 100644 files/de/web/javascript/reference/global_objects/set/has/index.html create mode 100644 files/de/web/javascript/reference/global_objects/set/index.html create mode 100644 files/de/web/javascript/reference/global_objects/string/charat/index.html create mode 100644 files/de/web/javascript/reference/global_objects/string/concat/index.html create mode 100644 files/de/web/javascript/reference/global_objects/string/endswith/index.html create mode 100644 files/de/web/javascript/reference/global_objects/string/fromcharcode/index.html create mode 100644 files/de/web/javascript/reference/global_objects/string/includes/index.html create mode 100644 files/de/web/javascript/reference/global_objects/string/index.html create mode 100644 files/de/web/javascript/reference/global_objects/string/indexof/index.html create mode 100644 files/de/web/javascript/reference/global_objects/string/lastindexof/index.html create mode 100644 files/de/web/javascript/reference/global_objects/string/length/index.html create mode 100644 files/de/web/javascript/reference/global_objects/string/match/index.html create mode 100644 files/de/web/javascript/reference/global_objects/string/prototype/index.html create mode 100644 files/de/web/javascript/reference/global_objects/string/raw/index.html create mode 100644 files/de/web/javascript/reference/global_objects/string/repeat/index.html create mode 100644 files/de/web/javascript/reference/global_objects/string/replace/index.html create mode 100644 files/de/web/javascript/reference/global_objects/string/slice/index.html create mode 100644 files/de/web/javascript/reference/global_objects/string/split/index.html create mode 100644 files/de/web/javascript/reference/global_objects/string/startswith/index.html create mode 100644 files/de/web/javascript/reference/global_objects/string/substr/index.html create mode 100644 files/de/web/javascript/reference/global_objects/string/substring/index.html create mode 100644 files/de/web/javascript/reference/global_objects/string/suchen/index.html create mode 100644 files/de/web/javascript/reference/global_objects/string/tolowercase/index.html create mode 100644 files/de/web/javascript/reference/global_objects/string/touppercase/index.html create mode 100644 files/de/web/javascript/reference/global_objects/string/trim/index.html create mode 100644 files/de/web/javascript/reference/global_objects/string/trimleft/index.html create mode 100644 files/de/web/javascript/reference/global_objects/string/trimright/index.html create mode 100644 files/de/web/javascript/reference/global_objects/syntaxerror/index.html create mode 100644 files/de/web/javascript/reference/global_objects/syntaxerror/prototype/index.html create mode 100644 files/de/web/javascript/reference/global_objects/typeerror/index.html create mode 100644 files/de/web/javascript/reference/global_objects/typeerror/prototype/index.html create mode 100644 files/de/web/javascript/reference/global_objects/undefined/index.html create mode 100644 files/de/web/javascript/reference/global_objects/unescape/index.html create mode 100644 files/de/web/javascript/reference/global_objects/uneval/index.html create mode 100644 files/de/web/javascript/reference/global_objects/webassembly/compile/index.html create mode 100644 files/de/web/javascript/reference/global_objects/webassembly/compilestreaming/index.html create mode 100644 files/de/web/javascript/reference/global_objects/webassembly/index.html (limited to 'files/de/web/javascript/reference/global_objects') diff --git a/files/de/web/javascript/reference/global_objects/array/@@iterator/index.html b/files/de/web/javascript/reference/global_objects/array/@@iterator/index.html new file mode 100644 index 0000000000..790a7abcff --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/array/@@iterator/index.html @@ -0,0 +1,89 @@ +--- +title: 'Array.prototype[@@iterator]()' +slug: Web/JavaScript/Reference/Global_Objects/Array/@@iterator +tags: + - Array + - ECMAScript 2015 + - Iterator + - JavaScript + - Method + - Prototype + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Array/@@iterator +--- +
{{JSRef}}
+ +
Der Initialwert der @@iterator Eigenschaft ist das selbe Funktionsobjekt wie der Initialwert der {{jsxref("Array.prototype.values()", "values()")}} Eigenschaft.
+ +

Syntax

+ +
arr[Symbol.iterator]()
+ +

Rückgabewert

+ +

Der Initialwert für den {{jsxref("Array.prototype.values()", "values()")}} Iterator. Im Standardfall gibt arr[Symbol.iterator] die Funktion von {{jsxref("Array.prototype.values()", "values()")}}  zurück.

+ +

Beispiele

+ +

Iterieren mit einer for...of Schleife

+ +
var arr = ['w', 'y', 'k', 'o', 'p'];
+var eArr = arr[Symbol.iterator]();
+// your browser must support for..of loop
+// and let-scoped variables in for loops
+for (let letter of eArr) {
+  console.log(letter);
+}
+
+ +

Alternative Iteration

+ +
var arr = ['w', 'y', 'k', 'o', 'p'];
+var eArr = arr[Symbol.iterator]();
+console.log(eArr.next().value); // w
+console.log(eArr.next().value); // y
+console.log(eArr.next().value); // k
+console.log(eArr.next().value); // o
+console.log(eArr.next().value); // p
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES2015', '#sec-array.prototype-@@iterator', 'Array.prototype[@@iterator]()')}}{{Spec2('ES2015')}}Initiale Definition.
{{SpecName('ESDraft', '#sec-array.prototype-@@iterator', 'Array.prototype[@@iterator]()')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.Array.@@iterator")}}

+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/array/@@species/index.html b/files/de/web/javascript/reference/global_objects/array/@@species/index.html new file mode 100644 index 0000000000..c4de8a7978 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/array/@@species/index.html @@ -0,0 +1,76 @@ +--- +title: 'get Array[@@species]' +slug: Web/JavaScript/Reference/Global_Objects/Array/@@species +tags: + - Array + - JavaScript + - Method + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Array/@@species +--- +
{{JSRef}}
+ +

Die Array[@@species] Zugriffseigenschaft gibt den Array Konstruktor zurück.

+ +

Syntax

+ +
Array[Symbol.species]
+
+ +

Rückgabewert

+ +

Der {{jsxref("Array")}} Konstruktor.

+ +

Beschreibung

+ +

Die species Zugriffseigenschaft gibt den Standard-Konstruktor des Array Objekts zurück. Unterklassen können die Zuweisung Überschreiben, um die Konstruktorzuweisung ändern.

+ +

Beispiele

+ +

Die species Eigenschaft gibt die Standard-Konstruktor-Funktion, welches der Array Konstruktor für Array Objekte ist.

+ +
Array[Symbol.species]; // function Array()
+ +

In einem abgeleiteten Collection Objekt (z. B. ein benutzerdefiniertes Array MyArray), ist der MyArray der species des MyArray Konstruktors. Manchmal möchte man in abgeleiteten Klassenden Oberklassenkonstruktor zurückgeben. Dieses kann mit Überschreiben erreicht werden:

+ +
class MyArray extends Array {
+  // Overwrite MyArray species to the parent Array constructor
+  static get [Symbol.species]() { return Array; }
+}
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES6', '#sec-get-array-@@species', 'get Array [ @@species ]')}}{{Spec2('ES6')}}Initial Definition.
{{SpecName('ESDraft', '#sec-get-array-@@species', 'get Array [ @@species ]')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.Array.@@species")}}

+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/array/@@unscopables/index.html b/files/de/web/javascript/reference/global_objects/array/@@unscopables/index.html new file mode 100644 index 0000000000..2cb4b51b11 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/array/@@unscopables/index.html @@ -0,0 +1,76 @@ +--- +title: 'Array.prototype[@@unscopables]' +slug: Web/JavaScript/Reference/Global_Objects/Array/@@unscopables +tags: + - Array + - ECMAScript 2015 + - JavaScript + - Property + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Array/@@unscopables +--- +
{{JSRef}}
+ +

Die @@unscopable Symbol Eigenschaft enthält Namen von Eigenschaften, welche vor der ES2015 Version nicht im ECMAScript Standard waren. Diese Eigenschaften werden bei with Statement Bindungen ignoriert.

+ +

Syntax

+ +
arr[Symbol.unscopables]
+ +

Beschreibung

+ +

Der Standard Array Eigenschaften, die von den with Bindungen ausgenommen werden, sind: copyWithin, entries, fill, find, findIndex, includes, keys, und values.

+ +

Siehe {{jsxref("Symbol.unscopables")}} für das setzten von unscopables für eigene Objekte

+ +

{{js_property_attributes(0,0,1)}}

+ +

Beispiele

+ +

Der Folgende Quelltext funktioniert in ES5 und niedriger. Jedoch wurde in ECMAScript 2015 und Später die {{jsxref("Array.prototype.keys()")}} eingeführt. Das bedeutet, dass in with Umgebungen "keys" jetzt eine Methode und keine Variable ist. Hier kommt die eingebaute @@unscopables Array.prototype[@@unscopables] Symboleigenschaft ins Spiel und verhindert, dass einige der Array Methoden in einer with Anweisung gescoped werden.

+ +
var keys = [];
+
+with (Array.prototype) {
+  keys.push('something');
+}
+
+Object.keys(Array.prototype[Symbol.unscopables]);
+// ["copyWithin", "entries", "fill", "find", "findIndex",
+//  "includes", "keys", "values"]
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKomment
{{SpecName('ES2015', '#sec-array.prototype-@@unscopables', 'Array.prototype[@@unscopables]')}}{{Spec2('ES2015')}}Initiale Definition.
{{SpecName('ESDraft', '#sec-array.prototype-@@unscopables', 'Array.prototype[@@unscopables]')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.Array.@@unscopables")}}

+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/array/concat/index.html b/files/de/web/javascript/reference/global_objects/array/concat/index.html new file mode 100644 index 0000000000..6bd46675da --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/array/concat/index.html @@ -0,0 +1,156 @@ +--- +title: Array.prototype.concat() +slug: Web/JavaScript/Reference/Global_Objects/Array/concat +tags: + - Array + - JavaScript + - Method + - Prototype + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Array/concat +--- +
{{JSRef}}
+ +

Die Methode concat() führt zwei oder mehr Arrays zu einem zusammen. Die Methode ändert nicht die existierenden Arrays, sondern gibt stattdessen ein neues zurück.

+ +
{{EmbedInteractiveExample("pages/js/array-concat.html")}}
+ + + +

Syntax

+ +
var new_array = old_array.concat(value1[, value2[, ...[, valueN]]])
+ +

Parameter

+ +
+
valueN
+
Arrays und/oder Werte, die mit dem aktuellen zu einem neuen Array zusammenführt werden sollen.
+
+ +

Rückgabewert

+ +

Eine neue {{jsxref("Array")}} Instanz.

+ +

Beschreibung

+ +

concat generiert ein neues Array. Dieses besteht aus den Elementen des Arrays, auf dem diese Methode aufgerufen wurde, gefolgt von dem Element oder den Elementen, die als Argument übergeben wurden.

+ +

Die concat Methode verändert nicht das this Objekt oder eines der übergebenen Argumente, sondern gibt eine flache Kopie (shallow copy) zurück, die Kopien der Elemente in den ursprünglichen Arrays enthält. Elemente der ursprünglichen Arrays werden folgendermaßen in das neue Array kopiert:

+ + + +
+

Anmerkung: Die Zusammenführung von Arrays und Werten verändert die Ausgangswerte und -objekte nicht. Etwaige weitere Operationen auf dem neuen Array (nur wenn Elemente keine Objekt-Referenz sind) haben keine Auswirkungen auf die Ausgangsarrays und umgekehrt.

+
+ +

Beispiele

+ +

Zusammenführen zweier Arrays

+ +

Der folgende Quellcode führt zwei Arrays zusammen:

+ +
var alpha = ['a', 'b', 'c'],;
+var numeric = [1, 2, 3];
+
+alpha.concat(numeric);
+// Result: ['a', 'b', 'c', 1, 2, 3]
+
+ +

Zusammenführen von drei Arrays

+ +

Der folgende Quellcode führt drei Arrays zusammen:

+ +
var num1 = [1, 2, 3],
+    num2 = [4, 5, 6],
+    num3 = [7, 8, 9];
+
+var nums = num1.concat(num2, num3);
+
+console.log(nums);
+// Result: [1, 2, 3, 4, 5, 6, 7, 8, 9]
+
+ +

Zusammenführen von Werten in ein Array

+ +

Der folgende Quellcode führt drei Werte in ein Array zusammen:

+ +
var alpha = ['a', 'b', 'c'];
+
+var alphaNumeric = alpha.concat(1, [2, 3]);
+
+console.log(alphaNumeric);
+// Result: ['a', 'b', 'c', 1, 2, 3]
+
+ +

Zusammenführen von geschachtelten Arrays

+ +

Der folgende Quellcode führt inneinander geschachtelte Array zusammen und demonstriert die Erhaltung der Referenzen:

+ +
var num1 = [[1]];
+var num2 = [2, [3]];
+
+var nums = num1.concat(num2);
+
+console.log(nums);
+// result in [[1], 2, [3]]
+
+// modify the first element of num1
+num1[0].push(4);
+
+console.log(nums);
+// results in [[1, 4], 2, [3]];
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES3')}}{{Spec2('ES3')}}Initiale Definition. Implementiert in JavaScript 1.2.
{{SpecName('ES5.1', '#sec-15.4.4.4', 'Array.prototype.concat')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-array.prototype.concat', 'Array.prototype.concat')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-array.prototype.concat', 'Array.prototype.concat')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.Array.concat")}}

+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/array/copywithin/index.html b/files/de/web/javascript/reference/global_objects/array/copywithin/index.html new file mode 100644 index 0000000000..6a7e9391d6 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/array/copywithin/index.html @@ -0,0 +1,187 @@ +--- +title: Array.prototype.copyWithin() +slug: Web/JavaScript/Reference/Global_Objects/Array/copyWithin +tags: + - Array + - ECMAScript 2015 + - JavaScript + - Method + - Prototype + - Reference + - polyfill +translation_of: Web/JavaScript/Reference/Global_Objects/Array/copyWithin +--- +
{{JSRef}}
+ +

Die copyWithin() Methode kopiert einen Teil eines Arrays in eine andere Stelle des gleichen Arrays und gibt das Array zurück, ohne die Länge des Arrays zu verändern.

+ +
{{EmbedInteractiveExample("pages/js/array-copywithin.html")}}
+ + + +

Syntax

+ +
arr.copyWithin(target)
+arr.copyWithin(target, start)
+arr.copyWithin(target, start, end)
+ +

Parameter

+ +
+
target
+
Null-Basierter Index an dem die kopierte Sequenz kopiert wird. Wenn target negativ ist, wird vom Ende angefangen zu zählen.
+
Wenn target glößer oder gleich arr.length ist, wird nicht kopiert. Wenn target nach start positioniert ist, wird die kopierte Sequenz gekürzt, um in die Länge des Arrays zu passen.
+
start {{optional_inline}}
+
Null-Basierter Index an dem das Kopieren begonnen werden soll. Wenn start negativ ist, wird vom Ende angefangen zu zählen.
+
Wenn start nicht angegeben wird, nutzt copyWithin den Standardwert 0.
+
end {{optional_inline}}
+
Null-Basierter Index an dem das Kopieren beendet werden soll. end ist exklusiv und wird deswegen nicht mitkopiert. Wenn end negativ ist, wird vom Ende angefangen zu zählen.
+
Wenn end nicht angegeben wird, nutzt copyWithin den Standardwert arr.length.
+
+ +

Rückgabewert

+ +

Das geänderte Array

+ +

Beschreibung

+ +

copyWithin arbeitet wie die memcpy Funktion in C und C++ und ist eine hoch perfomante Methode zum Verschieben von Daten in einem {{jsxref("Array")}} oder {{jsxref("TypedArray")}}. Die Sequenz wird in einer Operation kopiert und eingefügt; Die eingefügte Sequenz wird den kopierten Wert haben, auch wenn sich die Regionen im Array überschneiden.

+ +

Die copyWithin Funktion ist absichtlich generisch. Es wird nicht vorausgesetzt, dass this ein {{jsxref("Array")}} Objekt ist.

+ +

Die copyWithin Methode ist eine veränderbare Methode. Sie ändert nichts an der Länge von this, aber sie ändert den Inhalt von this und erstellt neue Eigenschaften, wenn es notwendig ist.

+ +

Beispiele

+ +
[1, 2, 3, 4, 5].copyWithin(-2);
+// [1, 2, 3, 1, 2]
+
+[1, 2, 3, 4, 5].copyWithin(0, 3);
+// [4, 5, 3, 4, 5]
+
+[1, 2, 3, 4, 5].copyWithin(0, 3, 4);
+// [4, 2, 3, 4, 5]
+
+[1, 2, 3, 4, 5].copyWithin(-2, -3, -1);
+// [1, 2, 3, 3, 5]
+
+[].copyWithin.call({length: 5, 3: 1}, 0, 3);
+// {0: 1, 3: 1, length: 5}
+
+// ES2015 Typed-Arrays sind Unterklassen von Array
+var i32a = new Int32Array([1, 2, 3, 4, 5]);
+
+i32a.copyWithin(0, 2);
+// Int32Array [3, 4, 5, 4, 5]
+
+// Für Plattformen die noch nicht ES6 unterstützen:
+[].copyWithin.call(new Int32Array([1, 2, 3, 4, 5]), 0, 3, 4);
+// Int32Array [4, 2, 3, 4, 5]
+
+ +

Polyfill

+ +
if (!Array.prototype.copyWithin) {
+  Array.prototype.copyWithin = function(target, start/*, end*/) {
+    // Steps 1-2.
+    if (this == null) {
+      throw new TypeError('this is null or not defined');
+    }
+
+    var O = Object(this);
+
+    // Steps 3-5.
+    var len = O.length >>> 0;
+
+    // Steps 6-8.
+    var relativeTarget = target >> 0;
+
+    var to = relativeTarget < 0 ?
+      Math.max(len + relativeTarget, 0) :
+      Math.min(relativeTarget, len);
+
+    // Steps 9-11.
+    var relativeStart = start >> 0;
+
+    var from = relativeStart < 0 ?
+      Math.max(len + relativeStart, 0) :
+      Math.min(relativeStart, len);
+
+    // Steps 12-14.
+    var end = arguments[2];
+    var relativeEnd = end === undefined ? len : end >> 0;
+
+    var final = relativeEnd < 0 ?
+      Math.max(len + relativeEnd, 0) :
+      Math.min(relativeEnd, len);
+
+    // Step 15.
+    var count = Math.min(final - from, len - to);
+
+    // Steps 16-17.
+    var direction = 1;
+
+    if (from < to && to < (from + count)) {
+      direction = -1;
+      from += count - 1;
+      to += count - 1;
+    }
+
+    // Step 18.
+    while (count > 0) {
+      if (from in O) {
+        O[to] = O[from];
+      } else {
+        delete O[to];
+      }
+
+      from += direction;
+      to += direction;
+      count--;
+    }
+
+    // Step 19.
+    return O;
+  };
+}
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES2015', '#sec-array.prototype.copywithin', 'Array.prototype.copyWithin')}}{{Spec2('ES2015')}}Initiale Definition.
{{SpecName('ES2016', '#sec-array.prototype.copywithin', 'Array.prototype.copyWithin')}}{{Spec2('ES2016')}} 
{{SpecName('ESDraft', '#sec-array.prototype.copywithin', 'Array.prototype.copyWithin')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.Array.copyWithin")}}

+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/array/entries/index.html b/files/de/web/javascript/reference/global_objects/array/entries/index.html new file mode 100644 index 0000000000..2bd4fb9942 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/array/entries/index.html @@ -0,0 +1,84 @@ +--- +title: Array.prototype.entries() +slug: Web/JavaScript/Reference/Global_Objects/Array/entries +tags: + - Array + - ECMAScript 2015 + - Iterator + - JavaScript + - Method + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Array/entries +--- +
{{JSRef}}
+ +

Die entries() Methode gibt ein neues Array Iterator Objekt zurück, das Schlüssel-Wert-Paare für jeden Index im Array enthält.

+ +
{{EmbedInteractiveExample("pages/js/array-entries.html")}}
+ + + +

Syntax

+ +
arr.entries()
+ +

Rückgabewert

+ +

Ein neues {{jsxref("Array")}}-iterator Objekt.

+ +

Beispiele

+ +

Einsatz einer for…of Schleife

+ +
var a = ['a', 'b', 'c'];
+var iterator = a.entries();
+
+for (let e of iterator) {
+  console.log(e);
+}
+// [0, 'a']
+// [1, 'b']
+// [2, 'c']
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES6', '#sec-array.prototype.entries', 'Array.prototype.entries')}}{{Spec2('ES6')}}Initiale Definition.
{{SpecName('ESDraft', '#sec-array.prototype.entries', 'Array.prototype.entries')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.Array.entries")}}

+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/array/every/index.html b/files/de/web/javascript/reference/global_objects/array/every/index.html new file mode 100644 index 0000000000..a29a0e4e0c --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/array/every/index.html @@ -0,0 +1,195 @@ +--- +title: Array.prototype.every() +slug: Web/JavaScript/Reference/Global_Objects/Array/every +tags: + - Array + - ECMAScript 5 + - JavaScript + - Method + - Prototype + - polyfill +translation_of: Web/JavaScript/Reference/Global_Objects/Array/every +--- +
{{JSRef}}
+ +

Die every() Methode testet ob alle Elemente in einem Array einen Test bestehen, welcher mittels einer implementierten Funktion bereitgestellt wird.

+ +
+

Hinweis: Diese Methode gibt true für jede Bedingung bei einem leeren Array zurück.

+
+ +
{{EmbedInteractiveExample("pages/js/array-every.html")}}
+ + + +

Syntax

+ +
arr.every(callback[, thisArg])
+ +

Parameter

+ +
+
callback
+
Funktion welche jedes Element testet, mit drei Argumenten: +
+
currentValue (required)
+
Der aktuelle Wert des Arrays.
+
index{{Optional_inline}}
+
Der Index des aktuellen Elementes im Array.
+
array{{Optional_inline}}
+
Das Array auf welchem every aufgerufen wurde.
+
+
+
thisArg{{Optional_inline}}
+
Optional. Wert welcher als this in der callback Funktion benutzt wird.
+
+ +

Rückgabewert

+ +

true wenn die callback-Funktion einen {{Glossary("truthy")}} Wert für jedes Array-Element zurückgibt, andernfalls false.

+ +

Beschreibung

+ +

Die every Methode führt die übergebene callback Funktion für jedes Element in dem Array aus, solange die callback Funktion keinen {{Glossary("falsy")}} Wert zurückgibt. Wenn ein solches Element gefunden wird gibt die every Methode false zurück. Anderfalls, wenn callback für jedes Element einen {{Glossary("truthy")}} Wert zurück gibt, gibt die Funktion every true zurück. Die callback Funktion wird nur für Indizes im Array aufgerufen, denen ein Wert zugewiesen wurde; sie wird nicht aufgerufen für Indizes, die gelöscht wurden, oder welche, die nie beschrieben wurden.

+ +

Die callback Funktion wird mit drei Argumenten aufgerufen: Der Wert eines Elements, der Index des Elements und Array auf dem every aufgerufen wurde.

+ +

Wenn der thisArg Parameter von every angegeben wird, wird auf diesem Objekt die callback Funktion aufgerufen und dieses Objekt kann mit this aufgerufen werden. Anderfalls wird der Wert undefined für den Einsatz von this übergeben. Der this Wert ist nur in der callback Funktion verfügbar und wird nach den normalen Regeln für das ermitteln von this für die Funktion ermittelt.

+ +

Die every Funktion verändert nicht die Werte des Arrays, auf dem sie aufgerufen wird.

+ +

Die Anzahl der von every abzuarbeitenden Elemente wird vor dem ersten Aufruf von callback ermittelt. Elemente welche nach dem Aufruf von every angehängt werden, werden nicht von der callback Funktion besucht. Wenn existierende Element eines Arrays geändert werden, wird der callback Funktion der Wert übergeben, der zu dem Zeitpunkt des Aufrufens von callback im Array steht. Werte die gelöscht werden, werden nicht besucht.

+ +

every Arbeitet wie ein Allquantor in der Mathematik. Wenn das Array leer ist, gibt er true zurück. (Es ist wahr, dass alle Elemente einer leeren Menge immer alle Bedingungen erfüllen.)

+ +

Beispiele

+ +

Größe aller Arrayelemente abprüfen

+ +

Das folgende Beispiel testet, ob alle Elemente in einem Array größer oder gleich 10 sind.

+ +
function isBigEnough(element, index, array) {
+  return element >= 10;
+}
+[12, 5, 8, 130, 44].every(isBigEnough);   // false
+[12, 54, 18, 130, 44].every(isBigEnough); // true
+
+ +

Einsatz von arrow Funktionen

+ +

Arrow Funktionen unterstützen eine kürzere Syntax für den gleichen Test.

+ +
[12, 5, 8, 130, 44].every(elem => elem >= 10); // false
+[12, 54, 18, 130, 44].every(elem => elem >= 10); // true
+ +

Polyfill

+ +

every wurde im ECMA-262 Standard in der 5. Auflage hinzugefügt. Es kann sein, dass diese Funktion in anderer Implementierungen des Standards nicht vorkommt. Man dieses beheben, indem man den folgenden Quelltext an den Anfang eines Programms hinzufügt. Dadurch wird die every Funktion dort hinzugefügt, wo sie nicht nativ unterstützt wird. Der Algorithmus ist exakt der aus der 5. Auflage des ECMA-262 Standards, mit der Voraussetzung, dass Object und TypeError ihre originalen Werte haben und dass callbackfn.call die originale Funktion {{jsxref("Function.prototype.call")}} aufrufen kann.

+ +
if (!Array.prototype.every) {
+  Array.prototype.every = function(callbackfn, thisArg) {
+    'use strict';
+    var T, k;
+
+    if (this == null) {
+      throw new TypeError('this is null or not defined');
+    }
+
+    // 1. Let O be the result of calling ToObject passing the this
+    //    value as the argument.
+    var O = Object(this);
+
+    // 2. Let lenValue be the result of calling the Get internal method
+    //    of O with the argument "length".
+    // 3. Let len be ToUint32(lenValue).
+    var len = O.length >>> 0;
+
+    // 4. If IsCallable(callbackfn) is false, throw a TypeError exception.
+    if (typeof callbackfn !== 'function') {
+      throw new TypeError();
+    }
+
+    // 5. If thisArg was supplied, let T be thisArg; else let T be undefined.
+    if (arguments.length > 1) {
+      T = thisArg;
+    }
+
+    // 6. Let k be 0.
+    k = 0;
+
+    // 7. Repeat, while k < len
+    while (k < len) {
+
+      var kValue;
+
+      // a. Let Pk be ToString(k).
+      //   This is implicit for LHS operands of the in operator
+      // b. Let kPresent be the result of calling the HasProperty internal
+      //    method of O with argument Pk.
+      //   This step can be combined with c
+      // c. If kPresent is true, then
+      if (k in O) {
+
+        // i. Let kValue be the result of calling the Get internal method
+        //    of O with argument Pk.
+        kValue = O[k];
+
+        // ii. Let testResult be the result of calling the Call internal method
+        //     of callbackfn with T as the this value and argument list
+        //     containing kValue, k, and O.
+        var testResult = callbackfn.call(T, kValue, k, O);
+
+        // iii. If ToBoolean(testResult) is false, return false.
+        if (!testResult) {
+          return false;
+        }
+      }
+      k++;
+    }
+    return true;
+  };
+}
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES5.1', '#sec-15.4.4.16', 'Array.prototype.every')}}{{Spec2('ES5.1')}}Initiale Definition. Implementiert in JavaScript 1.6.
{{SpecName('ES6', '#sec-array.prototype.every', 'Array.prototype.every')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-array.prototype.every', 'Array.prototype.every')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.Array.every")}}

+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/array/fill/index.html b/files/de/web/javascript/reference/global_objects/array/fill/index.html new file mode 100644 index 0000000000..5f4821e986 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/array/fill/index.html @@ -0,0 +1,155 @@ +--- +title: Array.prototype.fill() +slug: Web/JavaScript/Reference/Global_Objects/Array/fill +tags: + - Array + - ECMAScript 2015 + - JavaScript + - Method + - Prototype + - polyfill +translation_of: Web/JavaScript/Reference/Global_Objects/Array/fill +--- +
{{JSRef}}
+ +

Die fill() Methode befüllt ein Array mit einem statischen Wert von einem Startindex bis zu einem Endindex. Der Endindex wird nicht mit eingeschlossen.

+ +
{{EmbedInteractiveExample("pages/js/array-fill.html")}}
+ + + +

Syntax

+ +
arr.fill(value[, start[, end]])
+ +

Parameter

+ +
+
value
+
Wert, mit dem ein Array gefüllt werden soll.
+
start {{optional_inline}}
+
Startindex, Standardwert ist 0.
+
end {{optional_inline}}
+
Endindex, Standardwert ist this.length.
+
+ +

Rückgabewert

+ +

Das geänderte Array.

+ +

Beschreibung

+ +

Die fill Methode nimmt bis zu drei Argumente entgegen: value, start und end. Die Argumente start und end sind optional und haben als Standardwert 0 und length des this Objektes.

+ +

Wenn start negativ ist, wird stattdessen length+start benutzt, wobei length die Länge des Arrays ist. Wenn end negativ ist, wird stattdessen length+end benutzt.

+ +

Die fill Funktion ist absichtlich generisch. Es ist nicht nötig, dass der this Wert ein Array Objekt ist.

+ +

Die fill Methode ist eine verändernde Methode. Sie verändert das this Objekt selbst und gibt dieses zurück. Sie erstellt keine Kopie des Objektes.

+ +

Wenn der fill Methode ein Objekt übergeben wird, wird das Objekt kopiert und die Referenz der Kopie wird im Array eingesetzt.

+ +

Beispiele

+ +
[1, 2, 3].fill(4);               // [4, 4, 4]
+[1, 2, 3].fill(4, 1);            // [1, 4, 4]
+[1, 2, 3].fill(4, 1, 2);         // [1, 4, 3]
+[1, 2, 3].fill(4, 1, 1);         // [1, 2, 3]
+[1, 2, 3].fill(4, 3, 3);         // [1, 2, 3]
+[1, 2, 3].fill(4, -3, -2);       // [4, 2, 3]
+[1, 2, 3].fill(4, NaN, NaN);     // [1, 2, 3]
+[1, 2, 3].fill(4, 3, 5);         // [1, 2, 3]
+Array(3).fill(4);                // [4, 4, 4]
+[].fill.call({ length: 3 }, 4);  // {0: 4, 1: 4, 2: 4, length: 3}
+
+// Objects by reference.
+var arr = Array(3).fill({}) // [{}, {}, {}];
+arr[0].hi = "hi"; // [{ hi: "hi" }, { hi: "hi" }, { hi: "hi" }]
+
+ +

Polyfill

+ +
if (!Array.prototype.fill) {
+  Object.defineProperty(Array.prototype, 'fill', {
+    value: function(value) {
+
+      // Steps 1-2.
+      if (this == null) {
+        throw new TypeError('this is null or not defined');
+      }
+
+      var O = Object(this);
+
+      // Steps 3-5.
+      var len = O.length >>> 0;
+
+      // Steps 6-7.
+      var start = arguments[1];
+      var relativeStart = start >> 0;
+
+      // Step 8.
+      var k = relativeStart < 0 ?
+        Math.max(len + relativeStart, 0) :
+        Math.min(relativeStart, len);
+
+      // Steps 9-10.
+      var end = arguments[2];
+      var relativeEnd = end === undefined ?
+        len : end >> 0;
+
+      // Step 11.
+      var final = relativeEnd < 0 ?
+        Math.max(len + relativeEnd, 0) :
+        Math.min(relativeEnd, len);
+
+      // Step 12.
+      while (k < final) {
+        O[k] = value;
+        k++;
+      }
+
+      // Step 13.
+      return O;
+    }
+  });
+}
+
+ +

Wenn es wirklich notwendig ist veraltete JavaScript-Umgebungen zu unterstützen, die Object.defineProperty nicht unterstützen, ist es meistens besser Methoden von Array.prototype nicht mit einem Polyfill zu unterstützen, weil sie nicht als nicht-aufzählbar eingestellt werden können.

+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES2015', '#sec-array.prototype.fill', 'Array.prototype.fill')}}{{Spec2('ES2015')}}Initiale Definition.
{{SpecName('ESDraft', '#sec-array.prototype.fill', 'Array.prototype.fill')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.Array.fill")}}

+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/array/filter/index.html b/files/de/web/javascript/reference/global_objects/array/filter/index.html new file mode 100644 index 0000000000..6f1ee08498 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/array/filter/index.html @@ -0,0 +1,235 @@ +--- +title: Array.prototype.filter() +slug: Web/JavaScript/Reference/Global_Objects/Array/filter +tags: + - Array + - ECMAScript 5 + - JavaScript + - Method + - Prototype + - Reference + - filter + - polyfill +translation_of: Web/JavaScript/Reference/Global_Objects/Array/filter +--- +
{{JSRef}}
+ +

filter() erstellt ein neues Array mit allen Elementen, die den von der bereitgestellten Funktion implementierten Test bestehen.

+ +
{{EmbedInteractiveExample("pages/js/array-filter.html")}}
+ + + +

Syntax

+ +
let newArray = arr.filter(callback(element[, index[, array]])[, thisArg])
+ +

Parameter

+ +
+
callback
+
Eine Funktion, um jedes Element des Arrays zu testen. Die Funktion gibt true zurück, um das Element zu behalten, ansonsten false.
+
+
+
element
+
Das aktuell zu testende Element aus dem Array.
+
index {{optional_inline}}
+
Der Index des aktuell zu testenden Elements aus dem Array.
+
array {{optional_inline}}
+
Das Array auf welchem filter aufgerufen wurde.
+
+
+
thisArg {{optional_inline}}
+
Wert, der als this innerhalb der Funktion genutzt wird.
+
+ +

Rückgabewert

+ +

Ein neues Array mit den Elementen, die den Test bestanden haben. Wenn kein Element den Test besteht, wird ein leeres Array zurückgegeben.

+ +

Beschreibung

+ +

filter() ruft eine bereitgestellte callback-Funktion einmal für jedes Element in einem Array auf und erstellt ein neues Array aller Werte, für die callback einen Wert zurückgibt der umgewandelt true ergibt. callback wird nur für Indizes des Arrays aufgerufen, denen Werte zugewiesen wurden. Es wird nicht für Indizes aufgerufen, die gelöscht oder denen nie Werte zugewiesen wurden. Array-Elemente, die den Test in callback nicht bestehen, werden einfach übersprungen und sind im neuen Array nicht enthalten.

+ +

callback wird mit drei Argumenten aufgerufen:

+ +
    +
  1. Der Wert des Elements
  2. +
  3. Der Index des Elements
  4. +
  5. Das Array-Objekt, das durchlaufen wird
  6. +
+ +

Falls der Parameter thisArg an filter übergeben wird, wird er als Wert für this innerhalb von callback verwendet. Andernfalls hat this den Wert {{jsxref("undefined")}}. Welchen Wert callback letztendlich in this sieht wird gemäß der üblichen Regeln bestimmt, nach denen this für eine Funktion ermittelt wird.

+ +

filter() selbst verändert das Array nicht, auf dem es aufgerufen wird.

+ +

Der Bereich der von filter() verarbeiteten Elemente wird vor dem ersten Aufruf von callback festgelegt. Elemente, die nach Beginn des Aufrufs von filter() an das Array angehängt werden, werden von callback nicht berücksichtigt. Wenn vorhandene Elemente des Arrays geändert werden, ist der Wert maßgeblich, den filter() beim Erreichen eines Elements antrifft und dann an callback übergibt. Nachfolgende Elemente, die nach Beginn eines Durchlaufs von filter() gelöscht werden, bevor sie eingelesen werden konnten, werden nicht mehr berücksichtigt.

+ +

Beispiele

+ +

Alle kleinen Werte herausfiltern

+ +

Das folgende Beispiel nutzt filter(), um ein gefiltertes Array zu erstellen, aus dem alle Element mit Werten kleiner als 10 entfernt werden.

+ +
function isBigEnough(value) {
+  return value >= 10;
+}
+
+let filtered = [12, 5, 8, 130, 44].filter(isBigEnough);
+// filtered is [12, 130, 44]
+
+ +

Filtern von ungültigen Werten aus JSON

+ +

Das folgende Beispiel nutzt filter(), um ein gefiltertes JSON zu erstellen, in welchem alle Elemente mit numerischer id ungleich null sind.

+ +
let arr = [
+  { id: 15 },
+  { id: -1 },
+  { id: 0 },
+  { id: 3 },
+  { id: 12.2 },
+  { },
+  { id: null },
+  { id: NaN },
+  { id: 'undefined' }
+];
+
+let invalidEntries = 0;
+
+function isNumber(obj) {
+  return obj !== undefined && typeof(obj) === 'number' && !isNaN(obj);
+}
+
+function filterByID(obj) {
+  if (isNumber(obj.id) && obj.id !== 0) {
+    return true;
+  }
+  invalidEntries++;
+  return false;
+}
+
+let arrByID = arr.filter(filterByID);
+
+console.log('Filtered Array\n', arrByID);
+// Filtered Array
+// [{ id: 15 }, { id: -1 }, { id: 3 }, { id: 12.2 }]
+
+console.log('Number of Invalid Entries = ', invalidEntries);
+// Number of Invalid Entries = 5
+
+ +

Suchen in Arrays

+ +

Das folgende Beispiel nutzt filter(), um ein Array gemäß eines Suchkriterius zu filtern.

+ +
let fruits = ['apple', 'banana', 'grapes', 'mango', 'orange'];
+
+/**
+ * Filter array items based on search criteria (query)
+ */
+function filterItems(arr, query) {
+  return arr.filter(function(el) {
+      return el.toLowerCase().indexOf(query.toLowerCase()) > -1;
+  })
+}
+
+console.log(filterItems(fruits, 'ap')); // ['apple', 'grapes']
+console.log(filterItems(fruits, 'an')); // ['banana', 'mango', 'orange']
+ +

ES2015 Implementierung

+ +
const fruits = ['apple', 'banana', 'grapes', 'mango', 'orange'];
+
+/**
+ * Filter array items based on search criteria (query)
+ */
+const filterItems = (arr, query) => {
+  return arr.filter(el => el.toLowerCase().indexOf(query.toLowerCase()) > -1);
+};
+
+console.log(filterItems(fruits, 'ap')); // ['apple', 'grapes']
+console.log(filterItems(fruits, 'an')); // ['banana', 'mango', 'orange']
+ +

Polyfill

+ +

filter() wurde dem ECMA-262-Standard in der 5. Auflage hinzugefügt. Als solches ist es möglicherweise nicht in allen Implementierungen des Standards enthalten. Sie können dies umgehen, indem Sie den folgenden Code am Anfang Ihrer Skripte einfügen, um die Verwendung von filter() in Implementierungen zu ermöglichen, die es nicht nativ unterstützen. Dieser Algorithmus entspricht dem in der 5. Auflage von ECMA-262 angegebenen Algorithmus, vorausgesetzt dass callback.call() mit dem ursprünglichen Wert von {{jsxref("Function.prototype.call()")}} auswertet wird und {{jsxref("Array.prototype.push()")}} seinen ursprünglichen Wert hat.

+ +
if (!Array.prototype.filter) {
+  Array.prototype.filter = function(func, thisArg) {
+    'use strict';
+    if ( ! ((typeof func === 'Function' || typeof func === 'function') && this) )
+        throw new TypeError();
+
+    let len = this.length >>> 0,
+        res = new Array(len), // preallocate array
+        t = this, c = 0, i = -1;
+    if (thisArg === undefined) {
+      while (++i !== len){
+        // checks to see if the key was set
+        if (i in this){
+          if (func(t[i], i, t)){
+            res[c++] = t[i];
+          }
+        }
+      }
+    }
+    else{
+      while (++i !== len){
+        // checks to see if the key was set
+        if (i in this){
+          if (func.call(thisArg, t[i], i, t)){
+            res[c++] = t[i];
+          }
+        }
+      }
+    }
+
+    res.length = c; // shrink down array to proper size
+    return res;
+  };
+}
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES5.1', '#sec-15.4.4.20', 'Array.prototype.filter')}}{{Spec2('ES5.1')}}Initiale Definition. Implementiert in JavaScript 1.6.
{{SpecName('ES2015', '#sec-array.prototype.filter', 'Array.prototype.filter')}}{{Spec2('ES2015')}}
{{SpecName('ESDraft', '#sec-array.prototype.filter', 'Array.prototype.filter')}}{{Spec2('ESDraft')}}
+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.Array.filter")}}

+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/array/find/index.html b/files/de/web/javascript/reference/global_objects/array/find/index.html new file mode 100644 index 0000000000..2741360a67 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/array/find/index.html @@ -0,0 +1,243 @@ +--- +title: Array.prototype.find() +slug: Web/JavaScript/Reference/Global_Objects/Array/find +tags: + - Array + - ECMAScript 2015 + - JavaScript + - Method + - Prototype + - Reference + - polyfill +translation_of: Web/JavaScript/Reference/Global_Objects/Array/find +--- +
{{JSRef}}
+ +

Die Methode find() gibt den Wert des Elements eines Arrays zurück, welches als erstes die Bedingung einer bereitgestellten Testfunktion erfüllt. Andernfalls wird {{jsxref("undefined")}} zurückgegeben.

+ +
{{EmbedInteractiveExample("pages/js/array-find.html")}}
+ + + +

Siehe auch die Methode {{jsxref("Array.prototype.findIndex()", "findIndex()")}}, die den Index eines gefundenen Elements im Array anstelle seines Werts zurückgibt.

+ +

Wenn Sie die Position eines Elements ermitteln oder feststellen müssen, ob ein Element in einem Array vorhanden ist, verwenden Sie {{jsxref("Array.prototype.indexOf()", "indexOf()")}} oder {{jsxref("Array.prototype.includes()", "includes()")}}.

+ +

Syntax

+ +
arr.find(callback[, thisArg])
+ +

Parameter

+ +
+
callback
+
Funktion, die auf jedes Element angewendet wird mit drei Argumenten: +
+
element
+
Das aktuelle Element, das im Array verarbeitet wird.
+
index {{optional_inline}}
+
Der Index des aktuellen Elements im Array.
+
array {{optional_inline}}
+
Das Array, welches mit find() durlaufen wird.
+
+
+
thisArg {{optional_inline}}
+
Wert der als this verwendet wird, wenn callback ausgeführt wird.
+
+ +

Rückgabewert

+ +

Der Wert des Elements, welches als erstes die Bedingung der bereitgestellten Testfunktion erfüllt. Andernfalls wird {{jsxref("undefined")}} zurückgegeben.

+ +

Beschreibung

+ +

find() führt die callback-Funktion einmal für jeden Index des Arrays aus, bis ein Index gefunden wird, in dem callback einen {{Glossary("truthy")}}-Wert zurückgibt. Wenn ein solches Element gefunden wird, gibt find() sofort den Wert dieses Elements zurück, {{jsxref("undefined")}}. callback wird für jeden Index des Arrays von 0 bis length - 1 aufgerufen und nicht nur für Indizes, denen Werte zugewiesen wurden. Dies kann bedeuten, dass es für Arrays mit Leerstellen weniger effizient ist als andere Methoden, die nur Indizes durchlaufen, denen ein Wert zugewiesen wurde.

+ +

callback wird mit drei Argumenten aufgerufen:

+ +
    +
  1. Der Wert des Elements
  2. +
  3. Der Index des Elements
  4. +
  5. Das Array-Objekt, das durchlaufen wird
  6. +
+ +

 

+ +

Falls der Parameter thisArg an find() übergeben wird, wird er als Wert für this innerhalb von callback verwendet. Andernfalls hat this den Wert {{jsxref("undefined")}}. Welchen Wert callback letztendlich in this sieht wird gemäß der üblichen Regeln bestimmt, nach denen this für eine Funktion ermittelt wird.

+ +

find() selbst verändert das Array nicht, auf dem es aufgerufen wird.

+ +

Der Bereich der von find() verarbeiteten Elemente wird vor dem ersten Aufruf von callback festgelegt. Elemente, die nach Beginn des Aufrufs von find() an das Array angehängt werden, werden von callback nicht berücksichtigt. Wenn vorhandene Elemente des Arrays geändert werden, ist der Wert maßgeblich, den find() beim Erreichen eines Elements antrifft und dann an callback übergibt. Gelöschte Elemente werden weiterhin verarbeitet.

+ +

Beispiele

+ +

Ermitteln eines Objekts innerhalb eines Arrays anhand eines seiner Eigenschaften

+ +
var inventory = [
+    {name: 'apples', quantity: 2},
+    {name: 'bananas', quantity: 0},
+    {name: 'cherries', quantity: 5}
+];
+
+function isCherries(fruit) {
+    return fruit.name === 'cherries';
+}
+
+console.log(inventory.find(isCherries));
+// { name: 'cherries', quantity: 5 }
+ +

Benutzung einer ES2015 Pfeilfunktion

+ +
const inventory = [
+    {name: 'apples', quantity: 2},
+    {name: 'bananas', quantity: 0},
+    {name: 'cherries', quantity: 5}
+];
+
+const result = inventory.find( fruit => fruit.name === 'cherries' );
+
+console.log(result) // { name: 'cherries', quantity: 5 }
+ +

Ermitteln einer Primzahl innerhalb eines Arrays

+ +

Im folgenden Beispiel wird ein Element im Array ermittelt, das eine Primzahl ist (oder {{jsxref("undefined")}} zurückgibt, wenn keine Primzahl vorhanden ist).

+ +
function isPrime(element, index, array) {
+  var start = 2;
+  while (start <= Math.sqrt(element)) {
+    if (element % start++ < 1) {
+      return false;
+    }
+  }
+  return element > 1;
+}
+
+console.log([4, 6, 8, 12].find(isPrime)); // undefined, not found
+console.log([4, 5, 8, 12].find(isPrime)); // 5
+
+ +

Das folgende Beispiel zeigt, dass nicht vorhandene und gelöschte Elemente durchlaufen werden und der Wert maßgeblich ist, der beim Erreichen des Elements angetroffen und an callback übergeben wird.

+ +
// Array deklarieren, das an Index 2, 3 und 4 keine Elemente hat
+var array = [0,1,,,,5,6];
+
+// Zeige alle Indizes, nicht nur die denen Werte zugewiesen wurden
+array.find(function(value, index) {
+  console.log('Visited index ' + index + ' with value ' + value);
+});
+
+// Zeige alle Indizes, inklusive gelöschter
+array.find(function(value, index) {
+
+  // Lösche Element 5 in erstem Durchlauf
+  if (index == 0) {
+    console.log('Deleting array[5] with value ' + array[5]);
+    delete array[5];
+  }
+  // Element 5 wird weiterhin durchlaufen, obwohl es gelöscht wurde
+  console.log('Visited index ' + index + ' with value ' + value);
+});
+// Erwartete Ausgaben:
+// Deleting array[5] with value 5
+// Visited index 0 with value 0
+// Visited index 1 with value 1
+// Visited index 2 with value undefined
+// Visited index 3 with value undefined
+// Visited index 4 with value undefined
+// Visited index 5 with value undefined
+// Visited index 6 with value 6
+
+ +

Polyfill

+ +

Diese Methode wurde der ECMAScript 2015-Spezifikation hinzugefügt und ist möglicherweise noch nicht in allen JavaScript-Implementierungen verfügbar. Sie können Array.prototype.find() jedoch mit dem folgenden Snippet nachrüsten:

+ +
// https://tc39.github.io/ecma262/#sec-array.prototype.find
+if (!Array.prototype.find) {
+  Object.defineProperty(Array.prototype, 'find', {
+    value: function(predicate) {
+     // 1. Let O be ? ToObject(this value).
+      if (this == null) {
+        throw new TypeError('"this" is null or not defined');
+      }
+
+      var o = Object(this);
+
+      // 2. Let len be ? ToLength(? Get(O, "length")).
+      var len = o.length >>> 0;
+
+      // 3. If IsCallable(predicate) is false, throw a TypeError exception.
+      if (typeof predicate !== 'function') {
+        throw new TypeError('predicate must be a function');
+      }
+
+      // 4. If thisArg was supplied, let T be thisArg; else let T be undefined.
+      var thisArg = arguments[1];
+
+      // 5. Let k be 0.
+      var k = 0;
+
+      // 6. Repeat, while k < len
+      while (k < len) {
+        // a. Let Pk be ! ToString(k).
+        // b. Let kValue be ? Get(O, Pk).
+        // c. Let testResult be ToBoolean(? Call(predicate, T, « kValue, k, O »)).
+        // d. If testResult is true, return kValue.
+        var kValue = o[k];
+        if (predicate.call(thisArg, kValue, k, o)) {
+          return kValue;
+        }
+        // e. Increase k by 1.
+        k++;
+      }
+
+      // 7. Return undefined.
+      return undefined;
+    },
+    configurable: true,
+    writable: true
+  });
+}
+
+ +

Wenn Sie stark veraltete JavaScript-Engines unterstützen müssen, die {{jsxref("Object.defineProperty()")}} nicht unterstützen, empfiehlt es sich Methoden aus Array.prototype gar nicht mit Polyfills nachzubauen, da es nicht möglich ist sie als nicht-enumerierbar zu kennzeichnen.

+ +

Specifikationen

+ + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('ES2015', '#sec-array.prototype.find', 'Array.prototype.find')}}{{Spec2('ES2015')}}Initiale Definition.
{{SpecName('ESDraft', '#sec-array.prototype.find', 'Array.prototype.find')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.Array.find")}}

+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/array/findindex/index.html b/files/de/web/javascript/reference/global_objects/array/findindex/index.html new file mode 100644 index 0000000000..904ff025fc --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/array/findindex/index.html @@ -0,0 +1,189 @@ +--- +title: Array.prototype.findIndex() +slug: Web/JavaScript/Reference/Global_Objects/Array/findIndex +tags: + - Array + - ECMAScript 2015 + - JavaScript + - Method + - Prototype + - Reference + - polyfill +translation_of: Web/JavaScript/Reference/Global_Objects/Array/findIndex +--- +
{{JSRef}}
+ +

Die Methode findIndex() gibt den Index des ersten Elements im Array zurück, das die bereitgestellte Testfunktion erfüllt. Andernfalls wird -1 zurückgegeben, um anzuzeigen, dass kein Element den Test bestanden hat.

+ +
{{EmbedInteractiveExample("pages/js/array-findindex.html")}}
+ + + +

Siehe auch die Methode {{jsxref("Array.find", "find()")}}, die den Wert eines Arrayelements anstelle dessen Index zurückgibt.

+ +

Syntax

+ +
arr.findIndex(callback(element[, index[, array]])[, thisArg])
+ +

Parameter

+ +
+
callback
+
Eine Funktion, die für jeden Wert im Array ausgeführt wird, bis sie true zurückgibt, um anzuzeigen, dass das gewünschte Element gefunden wurde. Sie akzeptiert 3 Argumente: +
+
element
+
Das aktuelle Element, das im Array verarbeitet wird.
+
index {{optional_inline}}
+
Der Index des aktuellen Elements, das im Array verarbeitet wird.
+
array {{optional_inline}}
+
Das Array, welches mit findIndex() durchlaufen wird.
+
+
+
thisArg {{optional_inline}}
+
Wert der als this verwendet wird, wenn callback ausgeführt wird
+
+ +

Rückgabewert

+ +

Ein Index im Array, wenn ein Element den Test besteht, ansonsten -1.

+ +

Beschreibung

+ +

findIndex() ruft eine bereitgestellte callback-Funktion einmal für jeden Array-Index 0..length-1 (inklusive) im Array auf bis callback einen {{Glossary("truthy")}}-Wert findet.

+ +

Wird ein solches Element gefunden gibt findIndex() sofort den Index des gefundenen Elements zurück. Gibt callback nie einen {{Glossary("truthy")}}-Wert zurück oder ist length gleich 0 gibt findIndex() -1 zurück. Im Gegensatz zu einigen anderen Array-Methoden wie {{jsxref("Array.prototype.some()", "some()")}} wird in Arrays mit Leerstellen callback auch für Indizes aufgerufen, die keinen Inhalt haben.

+ +

callback wird mit drei Argumenten aufgerufen:

+ +
    +
  1. Der Wert des Elements
  2. +
  3. Der Index des Elements
  4. +
  5. Das Array-Objekt, das durchlaufen wird
  6. +
+ +

Falls der Parameter thisArg an findIndex() übergeben wird, wird er als Wert für this innerhalb von callback verwendet. Andernfalls hat this den Wert {{jsxref("undefined")}}. Welchen Wert callback letztendlich in this sieht wird gemäß der üblichen Regeln bestimmt, nach denen this für eine Funktion ermittelt wird.

+ +

Der Bereich der von findIndex() verarbeiteten Elemente wird vor dem ersten Aufruf von callback festgelegt. Elemente, die nach Beginn des Aufrufs von findIndex() an das Array angehängt werden, werden von callback nicht berücksichtigt. Wenn vorhandene Elemente des Arrays geändert werden, ist der Wert maßgeblich, den findIndex() beim Erreichen eines Elements antrifft und dann an callback übergibt. Gelöschte Elemente werden weiterhin verarbeitet.

+ +

Beispiele

+ +

Index einer Primzahl in einem Array finden

+ +

Das folgende Beispiel gibt den Index eines Elements im Array zurück, das eine Primzahl ist, oder -1, wenn keine Primzahl vorhanden ist.

+ +
function isPrime(element, index, array) {
+  var start = 2;
+  while (start <= Math.sqrt(element)) {
+    if (element % start < 1) {
+      return false;
+    } else {
+      start++;
+    }
+  }
+  return element > 1;
+}
+
+console.log([4, 6, 8, 12].findIndex(isPrime)); // -1, not found
+console.log([4, 6, 7, 12].findIndex(isPrime)); // 2 (array[2] is 7)
+
+ +

Index mithilfe einer Pfeilfunktion ermitteln

+ +

Im folgenden Beispiel wird der Index einer Frucht mithilfe einer Pfeilfunktion ermittelt:

+ +
const fruits = ["apple", "banana", "cantaloupe", "blueberries", "grapefruit"];
+
+const index = fruits.findIndex(fruit => fruit === "blueberries");
+
+console.log(index); // 3
+console.log(fruits[index]); // blueberries
+
+ +

Polyfill

+ +
// https://tc39.github.io/ecma262/#sec-array.prototype.findindex
+if (!Array.prototype.findIndex) {
+  Object.defineProperty(Array.prototype, 'findIndex', {
+    value: function(predicate) {
+     // 1. Let O be ? ToObject(this value).
+      if (this == null) {
+        throw new TypeError('"this" is null or not defined');
+      }
+
+      var o = Object(this);
+
+      // 2. Let len be ? ToLength(? Get(O, "length")).
+      var len = o.length >>> 0;
+
+      // 3. If IsCallable(predicate) is false, throw a TypeError exception.
+      if (typeof predicate !== 'function') {
+        throw new TypeError('predicate must be a function');
+      }
+
+      // 4. If thisArg was supplied, let T be thisArg; else let T be undefined.
+      var thisArg = arguments[1];
+
+      // 5. Let k be 0.
+      var k = 0;
+
+      // 6. Repeat, while k < len
+      while (k < len) {
+        // a. Let Pk be ! ToString(k).
+        // b. Let kValue be ? Get(O, Pk).
+        // c. Let testResult be ToBoolean(? Call(predicate, T, « kValue, k, O »)).
+        // d. If testResult is true, return k.
+        var kValue = o[k];
+        if (predicate.call(thisArg, kValue, k, o)) {
+          return k;
+        }
+        // e. Increase k by 1.
+        k++;
+      }
+
+      // 7. Return -1.
+      return -1;
+    },
+    configurable: true,
+    writable: true
+  });
+}
+
+ +

Wenn Sie stark veraltete JavaScript-Engines unterstützen müssen, die {{jsxref("Object.defineProperty()")}} nicht unterstützen, empfiehlt es sich Methoden aus Array.prototype gar nicht mit Polyfills nachzubauen, da es nicht möglich ist sie als nicht-enumerierbar zu kennzeichnen.

+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('ES2015', '#sec-array.prototype.findindex', 'Array.prototype.findIndex')}}{{Spec2('ES2015')}}Initiale Definition.
{{SpecName('ESDraft', '#sec-array.prototype.findIndex', 'Array.prototype.findIndex')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.Array.findIndex")}}

+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/array/flat/index.html b/files/de/web/javascript/reference/global_objects/array/flat/index.html new file mode 100644 index 0000000000..4e18ff7649 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/array/flat/index.html @@ -0,0 +1,116 @@ +--- +title: Array.prototype.flat() +slug: Web/JavaScript/Reference/Global_Objects/Array/flat +tags: + - Array + - Experimental + - JavaScript + - Method + - Prototype + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Array/flat +--- +
{{JSRef}} {{SeeCompatTable}}
+ +

Die flat() Methode erstellt rekursiv ein neues Array mit allen Elementen von Unterarrays bis zu einer spezifizierten Tiefe.

+ + + + + +

Syntax

+ +
var newArray = arr.flat(depth);
+ +

Parameter

+ +
+
depth {{optional_inline}}
+
Das Tiefenlevel, welches angibt, bis zu welcher Tiefe die Arraystruktur abgeflacht werden soll. Der Standardwert ist 1.
+
+ +

Rückgabewert

+ +

Ein neues Array, welches die Elemente der Unterarrays enthält.

+ +

Beispiele

+ +

Abflachen von geschachtelten Arrays

+ +
var arr1 = [1, 2, [3, 4]];
+arr1.flat();
+// [1, 2, 3, 4]
+
+var arr2 = [1, 2, [3, 4, [5, 6]]];
+arr2.flat();
+// [1, 2, 3, 4, [5, 6]]
+
+var arr3 = [1, 2, [3, 4, [5, 6]]];
+arr3.flat(2);
+// [1, 2, 3, 4, 5, 6]
+
+ +

Abflachen und Löcher in Arrays

+ +

Die flat Methode entfernt leere Plätze in Arrays:

+ +
var arr4 = [1, 2, , 4, 5];
+arr4.flat();
+// [1, 2, 4, 5]
+ +

Alternative

+ +

reduce und concat

+ +
var arr1 = [1, 2, [3, 4]];
+arr1.flat();
+
+// Um ein Array um eine Ebene zu glätten.
+arr1.reduce((acc, val) => acc.concat(val), []);
+// [1, 2, 3, 4]
+
+// Um mehrere Ebenen zu glätten muss reduce und concat rekursiv eingesetzt werden.
+
+var arr1 = [1,2,3,[1,2,3,4, [2,3,4]]];
+
+function flattenDeep(arr1) {
+   return arr1.reduce((acc, val) => Array.isArray(val) ? acc.concat(flattenDeep(val)) : acc.concat(val), []);
+}
+flattenDeep(arr1);
+
+// [1, 2, 3, 1, 2, 3, 4, 2, 3, 4]
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + +
SpezifikationStatusKommentar
Array.prototype.flat proposalCandidate (3) 
+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.Array.flat")}}

+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/array/flatmap/index.html b/files/de/web/javascript/reference/global_objects/array/flatmap/index.html new file mode 100644 index 0000000000..2840429333 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/array/flatmap/index.html @@ -0,0 +1,117 @@ +--- +title: Array.prototype.flatMap() +slug: Web/JavaScript/Reference/Global_Objects/Array/flatMap +tags: + - Array + - Experimental + - JavaScript + - Method + - Prototype + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Array/flatMap +--- +
{{JSRef}} {{SeeCompatTable}}
+ +

Die flatMap() Methode bildet jedes Element über eine Funktion ab und flacht das Ergebnis in ein Array ab. Sie ist identisch zu einem map gefolgt von einem flat der Tiefe 1, aber flatMap ist oft nützlich und beide in einer Methode zusammenführen ist etwas effizienter.

+ + + + + +

Syntax

+ +
var new_array = arr.flatMap(function callback(currentValue[, index[, array]]) {
+    // return element for new_array
+}[, thisArg])
+ +

Parameter

+ +
+
callback
+
Funktion, die ein Element für das neue Array erzeugt, welche drei Argumente hat: +
+
 
+
currentValue
+
Das aktuelle Element, das im Array verarbeitet wird.
+
index{{optional_inline}}
+
Der Index des aktuell zu verarbeitende Elements in dem Array.
+
array{{optional_inline}}
+
Das Array, auf dem flatMap aufgerufen wurde.
+
+
+
thisArg{{optional_inline}}
+
Wert, der bei der Ausführung von callback für this genutzt wird.
+
+ +

Rückgabewert

+ +

Ein neues Array mit jedem Element, dass aus dem Resultat der callback Funktion hervorgeht und auf die Tiefe 1 abgeflacht wurde.

+ +

Beschreibung

+ +

Siehe auf der Seite {{jsxref("Array.prototype.map()")}} für eine detaillierte Beschreibung der callback Funktion. Die flatMap Methode ist identisch zu map gefolgt von flat mit der Tiefe 1.

+ +

Beispiele

+ +

map und flatMap

+ +
var arr1 = [1, 2, 3, 4];
+
+arr1.map(x => [x * 2]);
+// [[2], [4], [6], [8]]
+
+arr1.flatMap(x => [x * 2]);
+// [2, 4, 6, 8]
+
+// only one level is flattened
+arr1.flatMap(x => [[x * 2]]);
+// [[2], [4], [6], [8]]
+
+ +

Alternative

+ +

reduce und concat

+ +
var arr1 = [1, 2, 3, 4];
+
+arr1.flatMap(x => [x * 2]);
+// ist equivalent zu
+arr1.reduce((acc, x) => acc.concat([x * 2]), []);
+// [2, 4, 6, 8]
+
+ +
//=> [1, 2, 3, 4, 5, 6, 7, 8, 9]
+ +

Spezifikationen

+ + + + + + + + + + + + + + +
SpezifikationStatusKommentar
Array.prototype.flatMap proposalCandidate (3) 
+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.Array.flatMap")}}

+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/array/foreach/index.html b/files/de/web/javascript/reference/global_objects/array/foreach/index.html new file mode 100644 index 0000000000..faba9795cb --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/array/foreach/index.html @@ -0,0 +1,303 @@ +--- +title: Array.prototype.forEach() +slug: Web/JavaScript/Reference/Global_Objects/Array/forEach +tags: + - Array + - ECMAScript 5 + - JavaScript + - Method + - Prototype + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Array/forEach +--- +
{{JSRef}}
+ +

Die forEach() Methode führt eine übergebene Funktion für jedes Element eines Arrays aus.

+ +
{{EmbedInteractiveExample("pages/js/array-foreach.html")}}
+ + + +

// a // b // c

+ +

Syntax

+ +
arr.forEach(function callback(currentValue [, index [, array]]) {
+    // Ihr Iterator
+}[, thisArg]);
+ +

Parameter

+ +
+
callback
+
Funktion, die auf jedes Element angewendet wird mit drei Argumenten:
+
+
+
currentValue
+
Der Wert des aktuellen Elements im Array.
+
index {{optional_inline}}
+
Der Index des aktuellen Elements im Array.
+
array {{optional_inline}}
+
Das Array, welches mit forEach() durlaufen wird.
+
+
+
thisArg {{optional_inline}}
+
Wert der als this verwendet wird, wenn callback ausgeführt wird.
+
 
+
+ +

Rückgabewert

+ +

{{jsxref("undefined")}}.

+ +

Beschreibung

+ +

forEach() ruft eine bereitgestellte callback-Funktion einmal für jedes Element in einem Array in aufsteigender Reihenfolge auf. Sie wird nicht für Elemente aufgerufen, die gelöscht oder nicht initialisiert wurden (d. h. Arrays mit leeren Elementen).

+ +

callback wird mit drei Argumenten aufgerufen:

+ +
    +
  1. Der Wert des Elements
  2. +
  3. Der Index des Elements
  4. +
  5. Das Array-Objekt, das durchlaufen wird
  6. +
+ +

Falls der Parameter thisArg an forEach() übergeben wird, wird er als Wert für this innerhalb von callback verwendet. Andernfalls hat this den Wert {{jsxref("undefined")}}. Welchen Wert callback letztendlich in this sieht wird gemäß der üblichen Regeln bestimmt, nach denen this für eine Funktion ermittelt wird.

+ +

forEach() selbst verändert das Array nicht, auf dem es aufgerufen wird (das aufgerufene callback kann jedoch Änderungen vornehmen).

+ +

Der Bereich der von forEach() verarbeiteten Elemente wird vor dem ersten Aufruf von callback festgelegt. Elemente, die nach Beginn des Aufrufs von forEach() an das Array angehängt werden, werden von callback nicht berücksichtigt. Wenn vorhandene Elemente des Arrays geändert werden, ist der Wert maßgeblich, den forEach() beim Erreichen eines Elements antrifft und dann an callback übergibt. Nachfolgende Elemente, die nach Beginn eines Durchlaufs von forEach() gelöscht werden (z. B. durch {{jsxref("Array.prototype.shift()", "shift()")}}), bevor sie eingelesen werden konnten, werden nicht mehr berücksichtigt (siehe Beispiel unten).

+ +

forEach() führt callback einmal für jedes Element im Array aus; im Gegensatz zu {{jsxref("Array.prototype.map()", "map()")}} oder {{jsxref("Array.prototype.reduce()", "reduce()")}} gibt es immer den Wert {{jsxref("undefined")}} zurück und ist nicht verknüpfbar. Der typische Anwendungsfall ist das Ausführen von Nebenwirkungen am Ende einer einer solchen Kette.

+ +
+

Es gibt keine Möglichkeit eine forEach()-Schleife zu unterbrechen oder zu verlassen, außer durch das erzeugen einer Exception. Wird eine solche Möglichkeit jedoch benötigt, stellt forEach() das falsche Mittel dar.

+ +

Vorzeitiges Verlassen ist verfügbar in:

+ + + +

Die anderen Array Methoden {{jsxref("Array.prototype.every()", "every()")}}, {{jsxref("Array.prototype.some()", "some()")}}, {{jsxref("Array.prototype.find()", "find()")}} und {{jsxref("Array.prototype.findIndex()", "findIndex()")}} prüfen die Elemente im Array auf eine Bedingung, die einen {{Glossary("Truthy")}}-Wert zurückgibt mit dem bestimmt wird, ob weitere Durchläufe nötig sind.

+
+ +

Beispiele

+ +

forEach() statt einer for-Schleife

+ +
const items = ['item1', 'item2', 'item3'];
+const copy = [];
+
+// Vorher
+for (let i=0; i<items.length; i++) {
+  copy.push(items[i]);
+}
+
+// Nachher
+items.forEach(function(item){
+  copy.push(item);
+});
+ +

Inhalte eines Arrays ausgeben

+ +
+

Hinweis: Um den Inhalt eines Arrays vorformatiert auf der Konsole auszugeben können Sie auch {{jsxref("console.table()")}} verwenden. Dieses Beispiel zeigt eine weitere Möglichkeit mittels forEach().

+
+ +

Der folgende Code gibt eine Zeile pro Element des Arrays aus:

+ +
function logArrayElements(element, index, array) {
+  console.log('a[' + index + '] = ' + element);
+}
+
+// Hinweis zur Auslassung: Es gibt keinen Eintrag mit dem Index 2
+// somit wird dieser übersprungen
+[2, 5, , 9].forEach(logArrayElements);
+// Ausgabe:
+// a[0] = 2
+// a[1] = 5
+// a[3] = 9
+
+ +

Verwendung von thisArg

+ +

Das folgende (fingierte) Beispiel aktualisiert die Eigenschaften eines Objekts eines jeden Eintrags im Array:

+ +
function Counter() {
+  this.sum = 0;
+  this.count = 0;
+}
+Counter.prototype.add = function(array) {
+  array.forEach(function(entry) {
+    this.sum += entry;
+    ++this.count;
+  }, this);
+  // ^---- Beachten
+};
+
+var obj = new Counter();
+obj.add([2, 5, 9]);
+obj.count;
+// 3 
+obj.sum;
+// 16
+ +

Da forEach() der Parameter thisArg (this) zur Verfügung steht, wird er bei jedem Aufruf an callback weitergegeben, um es als seinen this-Wert zu benutzen.

+ +
+

Wenn das Funktionsargument durch die Pfeilnotation angegeben wird, kann der Parameter thisArg weggelassen werden, da Pfeilfunktionen den {{jsxref("Operators/this", "this")}}-Wert lexikalisch vermerken.

+
+ +

Funktion zum Kopieren eines Objekts

+ +

Der folgende Code erzeugt eine Kopie des übergebenen Objekts. Es gibt verschiedene Möglichkeiten, ein Objekt zu kopieren. Die Folgende ist nur eine davon und dient zur Veranschaulichung, wie Array.prototype.forEach() funktioniert, indem ECMAScript 5 Object.* Meta-Funktionen genutzt werden.

+ +
function copy(o) {
+  var copy = Object.create(Object.getPrototypeOf(o));
+  var propNames = Object.getOwnPropertyNames(o);
+
+  propNames.forEach(function(name) {
+    var desc = Object.getOwnPropertyDescriptor(o, name);
+    Object.defineProperty(copy, name, desc);
+  });
+
+  return copy;
+}
+
+var o1 = { a: 1, b: 2 };
+var o2 = copy(o1); // o2 sieht jetzt aus wie o1
+ +

Wird das Array während des Durchlaufes modifiziert, könnten andere Elemente übersprungen werden.

+ +

Das folgende Beispiel protokolliert "eins", "zwei", "vier". Wenn der Eintrag mit dem Wert "zwei" erreicht ist, wird der erste Eintrag des Arrays mit {{jsxref("Array.prototype.shift()", "shift()")}} entfernt, was dazu führt, dass alle übrigen Einträge um eine Position aufrücken. Weil Element "vier" jetzt an einer früheren Position im Array ist, wird "drei" übersprungen. forEach() erzeugt keine Kopie des Arrays vor dem Durchlauf.

+ +
var words = ['eins', 'zwei', 'drei', 'vier'];
+words.forEach(function(word) {
+  console.log(word);
+  if (word === 'zwei') {
+    words.shift();
+  }
+});
+// eins
+// zwei
+// vier
+ +

Polyfill

+ +

forEach() wurde dem ECMA-262-Standard in der 5. Auflage hinzugefügt. Als solches ist es möglicherweise nicht in allen Implementierungen des Standards enthalten. Sie können dies umgehen, indem Sie den folgenden Code am Anfang Ihrer Skripte einfügen, um die Verwendung von forEach() in Implementierungen zu ermöglichen, die es nicht nativ unterstützen. Dieser Algorithmus entspricht dem in der 5. Auflage von ECMA-262 angegebenen Algorithmus, vorausgesetzt {{jsxref("Object")}} und {{jsxref("TypeError")}} haben ihre ursprünglichen Werte und callback.call() wird mit dem ursprünglichen Wert von {{jsxref("Function.prototype.call")}} ausgewertet.

+ +
// Production steps of ECMA-262, Edition 5, 15.4.4.18
+// Reference: http://es5.github.io/#x15.4.4.18
+if (!Array.prototype.forEach) {
+
+  Array.prototype.forEach = function(callback, thisArg) {
+
+    var T, k;
+
+    if (this === null) {
+      throw new TypeError(' this is null or not defined');
+    }
+
+    // 1. Let O be the result of calling ToObject passing the |this| value as the argument.
+    var O = Object(this);
+
+    // 2. Let lenValue be the result of calling the Get internal method of O with the argument "length".
+    // 3. Let len be ToUint32(lenValue).
+    var len = O.length >>> 0;
+
+    // 4. If IsCallable(callback) is false, throw a TypeError exception.
+    // See: http://es5.github.com/#x9.11
+    if (typeof callback !== "function") {
+      throw new TypeError(callback + ' is not a function');
+    }
+
+    // 5. If thisArg was supplied, let T be thisArg; else let T be undefined.
+    if (arguments.length > 1) {
+      T = thisArg;
+    }
+
+    // 6. Let k be 0
+    k = 0;
+
+    // 7. Repeat, while k < len
+    while (k < len) {
+
+      var kValue;
+
+      // a. Let Pk be ToString(k).
+      //   This is implicit for LHS operands of the in operator
+      // b. Let kPresent be the result of calling the HasProperty internal method of O with argument Pk.
+      //   This step can be combined with c
+      // c. If kPresent is true, then
+      if (k in O) {
+
+        // i. Let kValue be the result of calling the Get internal method of O with argument Pk.
+        kValue = O[k];
+
+        // ii. Call the Call internal method of callback with T as the this value and
+        // argument list containing kValue, k, and O.
+        callback.call(T, kValue, k, O);
+      }
+      // d. Increase k by 1.
+      k++;
+    }
+    // 8. return undefined
+  };
+}
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES5.1', '#sec-15.4.4.18', 'Array.prototype.forEach')}}{{Spec2('ES5.1')}}Initiale Definition. Implementiert in JavaScript 1.6.
{{SpecName('ES6', '#sec-array.prototype.foreach', 'Array.prototype.forEach')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-array.prototype.foreach', 'Array.prototype.forEach')}}{{Spec2('ESDraft')}} 
+ +

Browser-Kompatibilität

+ +
+ + +

{{Compat("javascript.builtins.Array.forEach")}}

+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/array/from/index.html b/files/de/web/javascript/reference/global_objects/array/from/index.html new file mode 100644 index 0000000000..dd254fec88 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/array/from/index.html @@ -0,0 +1,227 @@ +--- +title: Array.from() +slug: Web/JavaScript/Reference/Global_Objects/Array/from +tags: + - Array + - ECMAScript 2015 + - JavaScript + - Method + - Reference + - polyfill +translation_of: Web/JavaScript/Reference/Global_Objects/Array/from +--- +
{{JSRef}}
+ +

Die Array.from() Methode erstellt eine neue, oberflächlich kopierte Array Instanz von einem Array-ähnlichen oder iterierbaren Objekt.

+ +
{{EmbedInteractiveExample("pages/js/array-from.html")}}
+ + + +

Syntax

+ +
Array.from(arrayLike[, mapFn[, thisArg]])
+ +

Parameter

+ +
+
arrayLike
+
Ein Array-ähnliches oder iterierbares Objekt, welches zu einem Array konvertiert wird.
+
mapFn{{Optional_inline}}
+
Map Funktion, welche auf jedes Element des Arrays angewendet wird.
+
thisArg{{Optional_inline}}
+
Wert, welcher als this beim Ausführen von mapFn genutzt wird.
+
+ +

Rückgabewert

+ +

Eine neue {{jsxref("Array")}} Instanz.

+ +

Beschreibung

+ +

Array.from() erstellt ein Array aus:

+ + + +

Array.from() hat einen optionalen Parameter mapFn, welcher es erlaubt eine {{jsxref("Array.prototype.map", "map")}} Funktion auf jedem Element des Arrays (oder Subklassen) das erstellt wird, auszuführen. Genauer gesagt, ist Array.from(obj, mapFn, thisArg) dasselbe wie Array.from(obj).map(mapFn, thisArg), mit dem Unterschied, dass kein Array als Zwischenergebnis produziert wird. Das ist besonders wichtig für Array Subklassen, wie typed Arrays. Das Array des Zwischenergebnisses
+ würde sonst Werte kürzen, um dem zutreffenden Typ zu entsprechen.

+ +

Die length Eigenschaft der from() Methode ist 1.

+ +

In ES2015 erlaubt die class Syntax, Subklassen für eingebaute und benutzerdefinierte Klassen. Klassenseitige statische Methoden wie Array.from() sind von der Subklasse Array vererbt und erzeugen eine neue Instanz der Subklasse und nicht von Array.

+ +

Beispiele

+ +

Array von einem String

+ +
Array.from('foo');
+// ["f", "o", "o"];
+ +

Array von einem Set

+ +
var s = new Set(["foo", window]);
+Array.from(s);
+// ["foo", window]
+ +

Array von einem Map

+ +
var m = new Map([[1, 2], [2, 4], [4, 8]]);
+Array.from(m);
+// [[1, 2], [2, 4], [4, 8]]
+
+var mapper = new Map([['1', 'a'], ['2', 'b']]);
+Array.from(mapper.values());
+// ['a', 'b'];
+
+Array.from(mapper.keys());
+// ['1', '2'];
+ +

Array von einem Array ähnlichen Objekt (arguments)

+ +
function f() {
+  return Array.from(arguments);
+}
+
+f(1, 2, 3);
+
+// [1, 2, 3]
+ +

Einsatz von Arrow-Funktionen und Array.from

+ +
// Using an arrow function as the map function to
+// manipulate the elements
+Array.from([1, 2, 3], x => x + x);
+// [2, 4, 6]
+
+
+// Generate a sequence of numbers
+// Since the array is initialized with `undefined` on each position,
+// the value of `v` below will be `undefined`
+Array.from({length: 5}, (v, i) => i);
+// [0, 1, 2, 3, 4]
+
+ +

Polyfill

+ +

Array.from() wurde zum ECMA-262 Standard in der 6ten Version hinzugefügt. Es kann sein, dass diese in anderen Implementationen des Standards nicht verfügbar ist. Man kann das mit folgendem Code am Anfang eines Skriptes umgehen. Das Skript erlaubt das Benutzen von Array.from() in Implementationen, welche Array.from() nicht nativ unterstützen. Dieser Algorithmus ist genau derselbe, welcher in EMCA-262, 6te Version implementiert ist, angenommen Object und TypeError haben ihre originalen Werte und callback.call evaluiert den Original Wert von {{jsxref("Function.prototype.call")}}. Außerdem können echte iterierbare Elemente nicht mit einem Polyfill implementiert werden. Diese Implementation unterstützt keine generischen iterierbaren Elemente so wie sie definiert sind in der 6ten Version von ECMA-262.

+ +
// Production steps of ECMA-262, Edition 6, 22.1.2.1
+if (!Array.from) {
+  Array.from = (function () {
+    var toStr = Object.prototype.toString;
+    var isCallable = function (fn) {
+      return typeof fn === 'function' || toStr.call(fn) === '[object Function]';
+    };
+    var toInteger = function (value) {
+      var number = Number(value);
+      if (isNaN(number)) { return 0; }
+      if (number === 0 || !isFinite(number)) { return number; }
+      return (number > 0 ? 1 : -1) * Math.floor(Math.abs(number));
+    };
+    var maxSafeInteger = Math.pow(2, 53) - 1;
+    var toLength = function (value) {
+      var len = toInteger(value);
+      return Math.min(Math.max(len, 0), maxSafeInteger);
+    };
+
+    // The length property of the from method is 1.
+    return function from(arrayLike/*, mapFn, thisArg */) {
+      // 1. Let C be the this value.
+      var C = this;
+
+      // 2. Let items be ToObject(arrayLike).
+      var items = Object(arrayLike);
+
+      // 3. ReturnIfAbrupt(items).
+      if (arrayLike == null) {
+        throw new TypeError('Array.from requires an array-like object - not null or undefined');
+      }
+
+      // 4. If mapfn is undefined, then let mapping be false.
+      var mapFn = arguments.length > 1 ? arguments[1] : void undefined;
+      var T;
+      if (typeof mapFn !== 'undefined') {
+        // 5. else
+        // 5. a If IsCallable(mapfn) is false, throw a TypeError exception.
+        if (!isCallable(mapFn)) {
+          throw new TypeError('Array.from: when provided, the second argument must be a function');
+        }
+
+        // 5. b. If thisArg was supplied, let T be thisArg; else let T be undefined.
+        if (arguments.length > 2) {
+          T = arguments[2];
+        }
+      }
+
+      // 10. Let lenValue be Get(items, "length").
+      // 11. Let len be ToLength(lenValue).
+      var len = toLength(items.length);
+
+      // 13. If IsConstructor(C) is true, then
+      // 13. a. Let A be the result of calling the [[Construct]] internal method
+      // of C with an argument list containing the single item len.
+      // 14. a. Else, Let A be ArrayCreate(len).
+      var A = isCallable(C) ? Object(new C(len)) : new Array(len);
+
+      // 16. Let k be 0.
+      var k = 0;
+      // 17. Repeat, while k < len… (also steps a - h)
+      var kValue;
+      while (k < len) {
+        kValue = items[k];
+        if (mapFn) {
+          A[k] = typeof T === 'undefined' ? mapFn(kValue, k) : mapFn.call(T, kValue, k);
+        } else {
+          A[k] = kValue;
+        }
+        k += 1;
+      }
+      // 18. Let putStatus be Put(A, "length", len, true).
+      A.length = len;
+      // 20. Return A.
+      return A;
+    };
+  }());
+}
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES2015', '#sec-array.from', 'Array.from')}}{{Spec2('ES2015')}}Initiale Definition.
{{SpecName('ESDraft', '#sec-array.from', 'Array.from')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.Array.from")}}

+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/array/includes/index.html b/files/de/web/javascript/reference/global_objects/array/includes/index.html new file mode 100644 index 0000000000..64a51dfb73 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/array/includes/index.html @@ -0,0 +1,181 @@ +--- +title: Array.prototype.includes() +slug: Web/JavaScript/Reference/Global_Objects/Array/includes +tags: + - Array + - JavaScript + - Method + - Prototype + - Reference + - polyfill +translation_of: Web/JavaScript/Reference/Global_Objects/Array/includes +--- +
{{JSRef}}
+ +

Die includes() Methode prüft, ob ein Array ein bestimmtes Element enthält, und gibt entsprechend true oder false aus. Es wird der selbe sameValueZero-Algorithmus benutzt, um ein gegebenes Element zu finden.

+ +
{{EmbedInteractiveExample("pages/js/array-includes.html")}}
+ + + +

Syntax

+ +
arr.includes(searchElement[, fromIndex])
+ +

Parameter

+ +
+
searchElement
+
Das zu suchende Element.
+
fromIndex {{optional_inline}}
+
Die Position im Array, ab welcher die Suche nach searchElement beginnt. Bei einem negativen Wert fängt die Suche beim Index array.length - fromIndex an. Default ist 0.
+
+ +

Rückgabewert

+ +
+
+

Ein {{jsxref("Boolean")}}.

+
+
+ +

Beispiele

+ +
[1, 2, 3].includes(2);     // true
+[1, 2, 3].includes(4);     // false
+[1, 2, 3].includes(3, 3);  // false
+[1, 2, 3].includes(3, -1); // true
+[1, 2, NaN].includes(NaN); // true
+
+ +

fromIndex ist größer oder gleich der Arraylänge

+ +

Wenn fromIndex größer oder gleich der Arraylänge ist, wird false zurückgegeben. Das Array wird nicht durchsucht.

+ +
var arr = ['a', 'b', 'c'];
+
+arr.includes('c', 3);   // false
+arr.includes('c', 100); // false
+
+ +

Berechneter Index ist kleiner als 0

+ +

Wenn fromIndex negativ ist, wird der Index berechnet, an dem die Suche im Array nach searchElement beginnen soll. Wenn diese Berechnung einen Index kleiner als 0 ergibt, wird das ganze Array durchsucht.

+ +
// Arraylänge ist 3
+// fromIndex ist -100
+// Der berechnete Index ist 3 + (-100) = -97
+
+var arr = ['a', 'b', 'c'];
+
+arr.includes('a', -100); // true
+arr.includes('b', -100); // true
+arr.includes('c', -100); // true
+
+ +

Einsatz von includes() als generische Methode

+ +

Die includes()-Methode is absichtlich generisch. Die this-Referenz muss nicht auf ein Array-Objekt zeigen, so dass auch andere Objekte (z. B. Array-ähnliche Objekte) genutzt werden können. Das Beispiel zeigt, wie includes() auf den Parametern (arguments) einer Funktion aufgerufen wird.

+ +
(function() {
+  console.log([].includes.call(arguments, 'a')); // true
+  console.log([].includes.call(arguments, 'd')); // false
+})('a', 'b', 'c')
+
+ +

Polyfill

+ +
// https://tc39.github.io/ecma262/#sec-array.prototype.includes
+if (!Array.prototype.includes) {
+  Object.defineProperty(Array.prototype, 'includes', {
+    value: function(searchElement, fromIndex) {
+
+      if (this == null) {
+        throw new TypeError('"this" is null or not defined');
+      }
+
+      // 1. Let O be ? ToObject(this value).
+      var o = Object(this);
+
+      // 2. Let len be ? ToLength(? Get(O, "length")).
+      var len = o.length >>> 0;
+
+      // 3. If len is 0, return false.
+      if (len === 0) {
+        return false;
+      }
+
+      // 4. Let n be ? ToInteger(fromIndex).
+      //    (If fromIndex is undefined, this step produces the value 0.)
+      var n = fromIndex | 0;
+
+      // 5. If n ≥ 0, then
+      //  a. Let k be n.
+      // 6. Else n < 0,
+      //  a. Let k be len + n.
+      //  b. If k < 0, let k be 0.
+      var k = Math.max(n >= 0 ? n : len - Math.abs(n), 0);
+
+      function sameValueZero(x, y) {
+        return x === y || (typeof x === 'number' && typeof y === 'number' && isNaN(x) && isNaN(y));
+      }
+
+      // 7. Repeat, while k < len
+      while (k < len) {
+        // a. Let elementK be the result of ? Get(O, ! ToString(k)).
+        // b. If SameValueZero(searchElement, elementK) is true, return true.
+        if (sameValueZero(o[k], searchElement)) {
+          return true;
+        }
+        // c. Increase k by 1.
+        k++;
+      }
+
+      // 8. Return false
+      return false;
+    }
+  });
+}
+
+ +

Sollten Sie wirklich veraltete JavaScript-Engines unterstützen müssen, die ihrerseits {{jsxref("Object.defineProperty", "Object.defineProperty")}} nicht unterstützen, ist es ratsam, die Array.prototype-Methode nicht mit dem Polyfill zu erweitern, da man diese nicht unabzählbar (non-enumerable) machen kann.

+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES7', '#sec-array.prototype.includes', 'Array.prototype.includes')}}{{Spec2('ES7')}}Initiale Definition.
{{SpecName('ESDraft', '#sec-array.prototype.includes', 'Array.prototype.includes')}}{{Spec2('ESDraft')}}
+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.Array.includes")}}

+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/array/index.html b/files/de/web/javascript/reference/global_objects/array/index.html new file mode 100644 index 0000000000..d60c037b82 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/array/index.html @@ -0,0 +1,460 @@ +--- +title: Array +slug: Web/JavaScript/Reference/Global_Objects/Array +tags: + - Array + - Example + - Global Objects + - JavaScript + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Array +--- +
{{JSRef}}
+ +

Das JavaScript-Array ist ein globales Objekt und Konstruktor für das Erstellen von Arrays, welche listenähnliche Objekte sind.

+ +

Ein Array erstellen

+ +
var fruits = ['Apple', 'Banana'];
+
+console.log(fruits.length);
+// 2
+
+ +

Zugriff auf ein Arrayelement (mit Index)

+ +
var first = fruits[0];
+// Apple
+
+var last = fruits[fruits.length - 1];
+// Banana
+
+ +

Über ein Array Iterieren

+ +
fruits.forEach(function(item, index, array) {
+  console.log(item, index);
+});
+// Apple 0
+// Banana 1
+
+ +

Ein Element am Ende des Arrays einfügen

+ +
var newLength = fruits.push('Orange');
+// ["Apple", "Banana", "Orange"]
+
+ +

Ein Element am Ende des Arrays löschen

+ +
var last = fruits.pop(); // remove Orange (from the end)
+// ["Apple", "Banana"];
+
+ +

Ein Element am Anfang des Arrays löschen

+ +
var first = fruits.shift(); // remove Apple from the front
+// ["Banana"];
+
+ +

Ein Element am Anfang des Arrays einfügen

+ +
var newLength = fruits.unshift('Strawberry') // add to the front
+// ["Strawberry", "Banana"];
+
+ +

Den Index eines Elements im Array ermitteln

+ +
fruits.push('Mango');
+// ["Strawberry", "Banana", "Mango"]
+
+var pos = fruits.indexOf('Banana');
+// 1
+
+ +

Ein Element mithilfe eines Index aus dem Array löschen

+ +
var removedItem = fruits.splice(pos, 1); // this is how to remove an item
+
+// ["Strawberry", "Mango"]
+ +

Elemente von einer Indexposition aus löschen

+ +
var vegetables = ['Cabbage', 'Turnip', 'Radish', 'Carrot'];
+console.log(vegetables);
+// ["Cabbage", "Turnip", "Radish", "Carrot"]
+
+var pos = 1, n = 2;
+
+var removedItems = vegetables.splice(pos, n);
+// this is how to remove items, n defines the number of items to be removed,
+// from that position(pos) onward to the end of array.
+
+console.log(vegetables);
+// ["Cabbage", "Carrot"] (the original array is changed)
+
+console.log(removedItems);
+// ["Turnip", "Radish"]
+ +

Ein Array kopieren

+ +
var shallowCopy = fruits.slice(); // this is how to make a copy
+// ["Strawberry", "Mango"]
+
+ +

Syntax

+ +
[element0, element1, ..., elementN]
+new Array(element0, element1[, ...[, elementN]])
+new Array(arrayLength)
+ +

Parameter

+ +
+
elementN
+
Ein JavaScript-Array wird mit den angegebenen Elementen initialisiert, es sei denn, an den Array-Konstruktor wird eine einzelne Zahl übergeben (siehe arrayLength-Parameter unten). Beachte, dass dieser Sonderfall nur für JavaScript-Arrays gilt, die mit dem Array-Konstruktor erstellt wurden, nicht für Array-Literale, die mit der Klammer-Syntax erstellt wurden.
+
arrayLength
+
Wenn lediglich eine Ganzzahl zwischen 0 und 232-1 (inklusive) als Argument an den Array-Konstruktor übergeben wird, ist der Rückgabewert ein JavaScript Array, dessen length-Eigenschaft dieser Zahl entspricht. (Hinweis: Dies impliziert ein Array mit leeren Elementen einer Anzahl von arrayLength, nicht Elementen mit Wert undefined). Handelt es sich bei dem Argument um irgendeine andere Zah,l wird eine {{jsxref("Global_Objects/RangeError", "RangeError")}} Exception ausgelöst.
+
+ +

Beschreibung

+ +

Arrays sind listenähnliche Objekte, dessen Prototyp Methoden für Durchlauf- und Mutationsoperationen besitzt. Weder die Länge eines JavaScript-Arrays noch die Typen seiner Elemente sind fix. Da sich die Länge eines Arrays jederzeit ändern kann und Daten an nicht zusammenhängenden Positionen im Array gespeichert werden können, ist nicht garantiert, dass JavaScript-Arrays verdichtet sind; dies hängt davon ab, wie der Programmierer sie benutzt. Im Allgemeinen sind dies praktische Merkmale; falls jedoch diese Funktionalität für Ihren Anwendungsfall nicht wünschenswert ist, sollten Sie in Betracht ziehen, typisierte Arrays zu verwenden.

+ +

Arrays können keine Strings als Index benutzen (wie bei assoziativen Arrays), sondern müssen Ganzzahlen verwenden. Der Zugriff mit nicht-ganzzahligen Werten über die Klammernotation (oder Punktnotation) bezieht sich nicht auf ein Element im Array, sondern legt eine Eigenschaft des Array-Objekts fest oder greift darauf zu. Die Eigenschaften des Array-Objekts und die Liste der Array-Elemente sind voneinander getrennt. Die Durchlauf- und Mutationsoperationen des Arrays können nicht auf diese benannten Eigenschaften angewendet werden.

+ +

Auf Elemente des Arrays zugreifen

+ +

JavaScript-Arrays sind nullindiziert: Das erste Element eines Arrays befindet sich am Index 0, das letzte Element befindet sich an demjenigen Index, der dem Wert der Eigenschaft {{jsxref ("Array.length", "length")}} des Arrays minus 1 entspricht. Die Verwendung einer ungültigen Indexnummer gibt undefined zurück.

+ +
var arr = ['Das erste Element', 'Das zweite Element', 'Das letzte Element'];
+console.log(arr[0]);              // Ausgabe: 'Das erste Element'
+console.log(arr[1]);              // Ausgabe: 'Das zweite Element'
+console.log(arr[arr.length - 1]); // Ausgabe: 'Das letzte Element'
+
+ +

Array-Elemente sind Objekteigenschaften genau so wie toString. Wenn man jedoch wie folgt auf ein Element eines Arrays versucht zuzugreifen, wird ein Syntaxfehler ausgegeben, da der Name der Eigenschaft ungültig ist:

+ +
console.log(arr.0); // Syntaxfehler
+
+ +

Es gibt nichts Besonderes an JavaScript-Arrays und den Eigenschaften, die dies verursachen. JavaScript-Eigenschaften, die mit einer Ziffer beginnen, können nicht mit Punktnotation referenziert werden und müssen über Klammernotation aufgerufen werden. Wenn man beispielsweise ein Objekt mit einer Eigenschaft namens '3d' hat, kann es nur in Klammern angegeben werden, z. B.:

+ +
var years = [1950, 1960, 1970, 1980, 1990, 2000, 2010];
+console.log(years.0);   // ein Syntaxfehler
+console.log(years[0]);  // funktioniert
+
+ +
renderer.3d.setTexture(model, 'character.png');     // ein Syntaxfehler
+renderer['3d'].setTexture(model, 'character.png');  // works funktioniert
+
+ +

Beachten Sie, dass im obigen Beispiel '3d' in Anführungszeichen gesetzt werden musste. Es ist auch möglich, die JavaScript-Array-Indizes in Anführungszeichen zu setzen (z. B. years['2'] statt years[2]), obwohl dies nicht erforderlich ist. Die 2 in years[2] wird von der JavaScript-Engine durch eine implizite Konvertierung mittels toString zwingend in eine Zeichenfolge umgewandelt. Aus diesem Grund beziehen sich '2' und '02' auf zwei unterschiedliche Elemente des years-Objekts und das folgende Beispiel würde true ergeben:

+ +
console.log(years['2'] != years['02']);
+
+ +

Ebenso kann auf Objekteigenschaften, die zufällig reservierte Wörter(!) sind, nur als Stringliterale in Klammern zugegriffen werden:

+ +
var promise = {
+  'var'  : 'text',
+  'array': [1, 2, 3, 4]
+};
+
+console.log(promise['var']);
+
+ +

Beziehung zwischen length und numerischen Eigenschaften

+ +

Die Eigenschaft {{jsxref("Array.length", "length")}} eines JavaScript-Arrays und numerische Eigenschaften sind miteinander verbunden. Etliche der eingebauten Array-Methoden (z. B. {{jsxref("Array.join", "join()")}}, {{jsxref("Array.slice", "slice()")}}, {{jsxref("Array.indexOf", "indexOf()")}}, etc.) berücksichtigen den Wert der {{jsxref("Array.length", "length")}} Eigenschaft eines Arrays, wenn diese aufgerufen werden. Andere Methoden (z. B. {{jsxref("Array.push", "push()")}}, {{jsxref("Array.splice", "splice()")}}, etc.) bewirken ebenfalls eine Veränderung der Eigenschaft {{jsxref("Array.length", "length")}} eines Arrays.

+ +
var fruits = [];
+fruits.push('banana', 'apple', 'peach');
+
+console.log(fruits.length); // 3
+
+ +

Wird einem JavaScript-Array eine Eigenschaft zugewiesen, bei der es sich um einen gültigen Array-Index handelt und dieser Index außerhalb der aktuellen Grenzen des Arrays liegt, aktualisiert die Engine die Eigenschaft {{jsxref("Array.length", "length")}} des Arrays entsprechend:

+ +
fruits[5] = 'mango';
+console.log(fruits[5]); // 'mango'
+console.log(Object.keys(fruits));  // ['0', '1', '2', '5']
+console.log(fruits.length); // 6
+
+ +

Beim Erhöhen von {{jsxref("Array.length", "length")}}.

+ +
fruits.length = 10;
+console.log(Object.keys(fruits)); // ['0', '1', '2', '5']
+console.log(fruits.length); // 10
+
+ +
+

Beim Verringern von {{jsxref("Array.length", "length")}} werden jedoch Elemente gelöscht.

+ +
fruits.length = 2;
+console.log(Object.keys(fruits)); // ['0', '1']
+console.log(fruits.length); // 2
+
+ +

Der Artikel zu {{jsxref("Array.length")}} geht genauer darauf ein.

+
+ +

Erstellen eines Arrays als Ergebnis einer Übereinstimmung

+ +

Das Ergebnis einer Übereinstimmung eines regulären Ausdrucks und einem String kann ein JavaScript-Array erstellen. Dieses Array verfügt über Eigenschaften und Elemente, die Informationen zur Übereinstimmung beinhalten. Solch ein Array wird von {{jsxref("RegExp.exec")}}, {{jsxref("String.match")}} und {{jsxref("String.replace")}} zurückgegeben. Am folgenden Beispiel sollen diese Eigenschaften und Elemente erläutert werden, die Tabelle darunter enthält; weitere Informationen hierzu:

+ +
// Übereinstimmung eines d, gefolgt von einem oder mehreren b, gefolgt von einem d
+// Übereinstimmende b's und die darauf folgenden d's merken
+// Groß-/Kleinschreibung ignorieren
+
+var myRegEx = /d(b+)(d)/i;
+var myArray = myRegEx.exec('cdbBdbsbz');
+ +

Die Eigenschaften und Elemente werden wie folgt zurückgegeben:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Eigenschaft/ElementBeschreibungBeispiel
input +

Eine schreibgeschützte Eigenschaft, die die ursprüngliche Zeichenfolge widerspiegelt, mit der der reguläre Ausdruck abgeglichen wurde.

+
cdbBdbsbz
indexEine schreibgeschützte Eigenschaft, bei der es sich um den nullbasierten Index der Übereinstimmung in der Zeichenfolge handelt.1
[0]Ein schreibgeschütztes Element, das die zuletzt übereinstimmenden Zeichen angibt.dbBd
[1], ...[n]Schreibgeschützte Elemente, die die in Klammern gesetzten Unterzeichenfolgen angeben, sofern sie im regulären Ausdruck enthalten sind. Die Anzahl der möglichen geklammerten Teilzeichenfolgen ist unbegrenzt.[1]: bB
+ [2]: d
+ +

Eigenschaften

+ +
+
Array.length
+
Die Eigenschaft length des Array-Konstruktors, deren Wert 1 ist.
+
{{jsxref("Array.@@species", "get Array[@@species]")}}
+
Die Konstruktorfunktion zum Erstellen abgeleiteter Objekte.
+
{{jsxref("Array.prototype")}}
+
Ermöglicht das Hinzufügen von Eigenschaften zu allen Array-Objekten.
+
+ +

Methoden

+ +
+
{{jsxref("Array.from()")}}
+
Erstellt eine neue Array-Instanz aus einem Array-ähnlichen oder iterierbaren Objekt.
+
{{jsxref("Array.isArray()")}}
+
Gibt true zurück, wenn eine Variable ein Array ist, andernfalls false.
+
{{jsxref("Array.of()")}}
+
Erstellt eine neue Array-Instanz mit einer variablen Anzahl von Argumenten, unabhängig von Anzahl oder Typ der Argumente.
+
+ +

Array Instanzen

+ +

Alle Array-Instanzen erben von {{jsxref("Array.prototype")}}. Das Prototypobjekt des Array-Konstruktors kann geändert werden, um alle Array-Instanzen zu beeinflussen.

+ +

Eigenschaften

+ +
{{page('/de/docs/Web/JavaScript/Reference/Global_Objects/Array/prototype', 'Eigenschaften')}}
+ +

Methoden

+ +

Mutationsmethoden

+ +
{{page('/de/docs/Web/JavaScript/Reference/Global_Objects/Array/prototype', 'Mutationsmethoden')}}
+ +

Zugriffsmethoden

+ +
{{page('/de/docs/Web/JavaScript/Reference/Global_Objects/Array/prototype', 'Zugriffsmethoden')}}
+ +

Zählmethoden

+ +
{{page('/de/docs/Web/JavaScript/Reference/Global_Objects/Array/prototype', 'Zählmethoden')}}
+ +

Generische Array-Methoden

+ +
+

Generische Array Methoden sind nicht standardisiert, veraltet und werden in naher Zukunft entfernt.

+
+ +

Manchmal möchte man Array-Methoden auf Strings oder andere Array-ähnliche Objekte anwenden (z. B. auf {{jsxref("Functions/arguments", "Argumente", "", 1)}} von Funktionen). Auf diese Weise behandelt man eine Zeichenfolge wie ein Array von Zeichen (oder ein nicht-Array wie ein Array). Um beispielsweise zu prüfen, ob jedes Zeichen in der Variablen str ein Buchstabe ist, würde man Folgendes schreiben:

+ +
function isLetter(character) {
+  return character >= 'a' && character <= 'z';
+}
+
+if (Array.prototype.every.call(str, isLetter)) {
+  console.log("The string '" + str + "' contains only letters!");
+}
+ +

Diese Schreibweise wurde in JavaScript 1.6 von einer kürzeren abgelöst:

+ +
if (Array.every(str, isLetter)) {
+  console.log("The string '" + str + "' contains only letters!");
+}
+
+ +

{{jsxref("Global_Objects/String", "Generische Methoden", "#Generische_String-Methoden", 1)}} gibt es ebenfalls für {{jsxref("Global_Objects/String", "Strings")}}.

+ +

Diese sind nicht Teil der ECMAScript-Standards und werden von nicht-Gecko-Browsern nicht unterstützt. Als Standardvariante können Sie Ihr Objekt mit {{jsxref("Array.from()")}} in ein richtiges Array konvertieren. Diese Methode wird in alten Browsern möglicherweise nicht unterstützt:

+ +
if (Array.from(str).every(isLetter)) {
+  console.log("The string '" + str + "' contains only letters!");
+}
+
+ +

Beispiele

+ +

Erstellen eines Arrays

+ +

Das folgende Beispiel erzeugt ein Array msgArray mit der Länge 0, weist dann msgArray[0] und msgArray[99] Werte zu und ändert somit die Länge des Arrays auf 100.

+ +
var msgArray = [];
+msgArray[0] = 'Hello';
+msgArray[99] = 'world';
+
+if (msgArray.length === 100) {
+  console.log('Die Länge ist 100.');
+}
+
+ +

Erstellen eines zweidimensionalen Arrays

+ +

Im Folgenden wird ein Schachbrett als zweidimensionales Array von Strings erzeugt. Der erste Zug erfolgt durch Kopieren des 'p' in (6,4) nach (4,4). Die alte Position (6,4) wird als leer markiert.

+ +
var board = [
+  ['R','N','B','Q','K','B','N','R'],
+  ['P','P','P','P','P','P','P','P'],
+  [' ',' ',' ',' ',' ',' ',' ',' '],
+  [' ',' ',' ',' ',' ',' ',' ',' '],
+  [' ',' ',' ',' ',' ',' ',' ',' '],
+  [' ',' ',' ',' ',' ',' ',' ',' '],
+  ['p','p','p','p','p','p','p','p'],
+  ['r','n','b','q','k','b','n','r'] ];
+
+console.log(board.join('\n') + '\n\n');
+
+// Ziehe Bauern 2 Felder vorwärts
+board[4][4] = board[6][4];
+board[6][4] = ' ';
+console.log(board.join('\n'));
+
+ +

Das ist die Ausgabe:

+ +
R,N,B,Q,K,B,N,R
+P,P,P,P,P,P,P,P
+ , , , , , , ,
+ , , , , , , ,
+ , , , , , , ,
+ , , , , , , ,
+p,p,p,p,p,p,p,p
+r,n,b,q,k,b,n,r
+
+R,N,B,Q,K,B,N,R
+P,P,P,P,P,P,P,P
+ , , , , , , ,
+ , , , , , , ,
+ , , , ,p, , ,
+ , , , , , , ,
+p,p,p,p, ,p,p,p
+r,n,b,q,k,b,n,r
+
+ +

Einsatz eines Arrays, um Werte tabellarisch auszugeben

+ +
values = [];
+for (var x = 0; x < 10; x++){
+ values.push([
+  2 ** x,
+  2 * x ** 2
+ ])
+};
+console.table(values)
+ +

Das Resultat ist:

+ +
0   1   0
+1   2   2
+2   4   8
+3   8   18
+4   16  32
+5   32  50
+6   64  72
+7   128 98
+8   256 128
+9   512 162
+ +

(Die erste Spalte ist der Index)

+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES1')}}{{Spec2('ES1')}}Initiale Definition.
{{SpecName('ES5.1', '#sec-15.4', 'Array')}}{{Spec2('ES5.1')}}Neue Methoden hinzugefügt: {{jsxref("Array.isArray")}}, {{jsxref("Array.prototype.indexOf", "indexOf")}}, {{jsxref("Array.prototype.lastIndexOf", "lastIndexOf")}}, {{jsxref("Array.prototype.every", "every")}}, {{jsxref("Array.prototype.some", "some")}}, {{jsxref("Array.prototype.forEach", "forEach")}}, {{jsxref("Array.prototype.map", "map")}}, {{jsxref("Array.prototype.filter", "filter")}}, {{jsxref("Array.prototype.reduce", "reduce")}}, {{jsxref("Array.prototype.reduceRight", "reduceRight")}}
{{SpecName('ES6', '#sec-array-objects', 'Array')}}{{Spec2('ES6')}}Neue Methoden hinzugefügt: {{jsxref("Array.from")}}, {{jsxref("Array.of")}}, {{jsxref("Array.prototype.find", "find")}}, {{jsxref("Array.prototype.findIndex", "findIndex")}}, {{jsxref("Array.prototype.fill", "fill")}}, {{jsxref("Array.prototype.copyWithin", "copyWithin")}}
{{SpecName('ES7', '#sec-array-objects', 'Array')}}{{Spec2('ES7')}}Neue Methode hinzugefügt: {{jsxref("Array.prototype.includes()")}}
{{SpecName('ESDraft', '#sec-array-objects', 'Array')}}{{Spec2('ESDraft')}}
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Array")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/array/indexof/index.html b/files/de/web/javascript/reference/global_objects/array/indexof/index.html new file mode 100644 index 0000000000..1768427494 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/array/indexof/index.html @@ -0,0 +1,226 @@ +--- +title: Array.prototype.indexOf() +slug: Web/JavaScript/Reference/Global_Objects/Array/indexOf +tags: + - Array + - JavaScript + - Method + - Prototype + - Reference + - polyfill +translation_of: Web/JavaScript/Reference/Global_Objects/Array/indexOf +--- +
{{JSRef}}
+ +

Die Methode indexOf() gibt den Index zurück, an dem ein bestimmtes Element im Array zum ersten Mal auftritt oder -1 wenn es nicht vorhanden ist.

+ +
+

Hinweis: Für die String Methode, siehe {{jsxref("String.prototype.indexOf()")}}.

+
+ +
{{EmbedInteractiveExample("pages/js/array-indexof.html")}}
+ + + +

Syntax

+ +
arr.indexOf(searchElement[, fromIndex])
+ +

Parameter

+ +
+
searchElement
+
Element, das im Array gefunden werden soll.
+
fromIndex {{optional_inline}}
+
Der Index, an dem die Suche beginnen soll. Wenn dieser Index größer oder gleich der Länge des Arrays ist, wird -1 zurückgegeben, d. h. das Array wird nicht durchsucht. Ist der Startindex negativ, wird er als Versatz vom Ende des Arrays verstanden. Das Array wird dann immer noch von vorne nach hinten durchsucht.
+
+ +

Rückgabewert

+ +

Der Index, an dem das gefundene Element das erste Mal angetroffen wurde, andernfalls -1 wenn nichts gefunden wurde.

+ +

Beschreibung

+ +

indexOf() vergleicht searchElement mit Elementen des Arrays mittels strikter Gleichheit (dieselbe Methode, die bei === angewendet wird).

+ +

Beispiele

+ +

Verwendung von indexOf()

+ +

Das folgende Beispiel nutzt indexOf() um Werte in einem Array zu ermitteln.

+ +
var array = [2, 9, 9];
+array.indexOf(2);     // 0
+array.indexOf(7);     // -1
+array.indexOf(9, 2);  // 2
+array.indexOf(2, -1); // -1
+array.indexOf(2, -3); // 0
+
+ +

Alle Vorkommnisse eines Elements ermitteln

+ +
var indices = [];
+var array = ['a', 'b', 'a', 'c', 'a', 'd'];
+var element = 'a';
+var idx = array.indexOf(element);
+while (idx != -1) {
+  indices.push(idx);
+  idx = array.indexOf(element, idx + 1);
+}
+console.log(indices);
+// [0, 2, 4]
+
+ +

Ermitteln, ob ein Element in einem Array existiert und das Array aktualisieren

+ +
function updateVegetablesCollection (veggies, veggie) {
+    if (veggies.indexOf(veggie) === -1) {
+        veggies.push(veggie);
+        console.log('New veggies collection is : ' + veggies);
+    } else if (veggies.indexOf(veggie) > -1) {
+        console.log(veggie + ' already exists in the veggies collection.');
+    }
+}
+
+var veggies = ['potato', 'tomato', 'chillies', 'green-pepper'];
+
+updateVegetablesCollection(veggies, 'spinach');
+// New veggies collection is : potato,tomato,chillies,green-pepper,spinach
+updateVegetablesCollection(veggies, 'spinach');
+// spinach already exists in the veggies collection.
+
+ +

Polyfill

+ +

indexOf() wurde dem ECMA-262-Standard in der 5. Auflage hinzugefügt. Als solches ist es möglicherweise nicht in allen Implementierungen des Standards enthalten. Sie können dies umgehen, indem Sie den folgenden Code am Anfang Ihrer Skripte einfügen, um die Verwendung von indexOf() in Implementierungen zu ermöglichen, die es nicht nativ unterstützen. Dieser Algorithmus entspricht dem in der 5. Auflage von ECMA-262 angegebenen Algorithmus, vorausgesetzt {{jsxref("TypeError")}} und {{jsxref("Math.abs()")}} haben ihre ursprünglichen Werte.

+ +
if (!Array.prototype.indexOf)  Array.prototype.indexOf = (function(Object, max, min){
+  "use strict";
+  return function indexOf(member, fromIndex) {
+    if(this===null||this===undefined)throw TypeError("Array.prototype.indexOf called on null or undefined");
+
+    var that = Object(this), Len = that.length >>> 0, i = min(fromIndex | 0, Len);
+    if (i < 0) i = max(0, Len+i); else if (i >= Len) return -1;
+
+    if(member===void 0){ for(; i !== Len; ++i) if(that[i]===void 0 && i in that) return i; // undefined
+    }else if(member !== member){   for(; i !== Len; ++i) if(that[i] !== that[i]) return i; // NaN
+    }else                           for(; i !== Len; ++i) if(that[i] === member) return i; // all else
+
+    return -1; // if the value was not found, then return -1
+  };
+})(Object, Math.max, Math.min);
+
+ +

Wenn Sie sich jedoch mehr für all die kleinen technischen Elemente interessieren, die durch den ECMA-Standard definiert werden, und Leistung oder Prägnanz weniger von Belang sind, dann könnte diese erklärende Polyfill-Lösung nützlicher für Sie sein.

+ +
// Production steps of ECMA-262, Edition 5, 15.4.4.14
+// Reference: http://es5.github.io/#x15.4.4.14
+if (!Array.prototype.indexOf) {
+  Array.prototype.indexOf = function(searchElement, fromIndex) {
+
+    var k;
+
+    // 1. Let o be the result of calling ToObject passing
+    //    the this value as the argument.
+    if (this == null) {
+      throw new TypeError('"this" is null or not defined');
+    }
+
+    var o = Object(this);
+
+    // 2. Let lenValue be the result of calling the Get
+    //    internal method of o with the argument "length".
+    // 3. Let len be ToUint32(lenValue).
+    var len = o.length >>> 0;
+
+    // 4. If len is 0, return -1.
+    if (len === 0) {
+      return -1;
+    }
+
+    // 5. If argument fromIndex was passed let n be
+    //    ToInteger(fromIndex); else let n be 0.
+    var n = fromIndex | 0;
+
+    // 6. If n >= len, return -1.
+    if (n >= len) {
+      return -1;
+    }
+
+    // 7. If n >= 0, then Let k be n.
+    // 8. Else, n<0, Let k be len - abs(n).
+    //    If k is less than 0, then let k be 0.
+    k = Math.max(n >= 0 ? n : len - Math.abs(n), 0);
+
+    // 9. Repeat, while k < len
+    while (k < len) {
+      // a. Let Pk be ToString(k).
+      //   This is implicit for LHS operands of the in operator
+      // b. Let kPresent be the result of calling the
+      //    HasProperty internal method of o with argument Pk.
+      //   This step can be combined with c
+      // c. If kPresent is true, then
+      //    i.  Let elementK be the result of calling the Get
+      //        internal method of o with the argument ToString(k).
+      //   ii.  Let same be the result of applying the
+      //        Strict Equality Comparison Algorithm to
+      //        searchElement and elementK.
+      //  iii.  If same is true, return k.
+      if (k in o && o[k] === searchElement) {
+        return k;
+      }
+      k++;
+    }
+    return -1;
+  };
+}
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('ES5.1', '#sec-15.4.4.14', 'Array.prototype.indexOf')}}{{Spec2('ES5.1')}}Initiale Definition. Implementiert in JavaScript 1.6.
{{SpecName('ES6', '#sec-array.prototype.indexof', 'Array.prototype.indexOf')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-array.prototype.indexof', 'Array.prototype.indexOf')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.Array.indexOf")}}

+
+ +

Kompatibilitätshinweise

+ + + +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/array/isarray/index.html b/files/de/web/javascript/reference/global_objects/array/isarray/index.html new file mode 100644 index 0000000000..2bdca7596a --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/array/isarray/index.html @@ -0,0 +1,121 @@ +--- +title: Array.isArray() +slug: Web/JavaScript/Reference/Global_Objects/Array/isArray +tags: + - Array + - ECMAScript5 + - JavaScript + - Method + - Reference + - polyfill +translation_of: Web/JavaScript/Reference/Global_Objects/Array/isArray +--- +
{{JSRef}}
+ +

Die Array.isArray() Funktion prüft, ob das übergebene Objekt ein {{jsxref("Array")}} ist.

+ +
Array.isArray([1, 2, 3]);  // true
+Array.isArray({foo: 123}); // false
+Array.isArray('foobar');   // false
+Array.isArray(undefined);  // false
+
+ +

Syntax

+ +
Array.isArray(obj)
+ +

Parameter

+ +
+
value
+
Der zu überprüfende Wert.
+
+ +

Rückgabewert

+ +

Wenn der Wert ein {{jsxref("Array")}} ist wird true zurückgegeben, andernfalls false.

+ +

Beschreibung

+ +

Wenn der Wert ein {{jsxref("Array")}} ist, wir true zurückzugeben, andernfalls false.

+ +

Eine detailliertere Beschreibung ist im Artikel Determining with absolute accuracy whether or not a JavaScript object is an array enthalten (auf Englisch). Wird eine {{jsxref("TypedArray")}}-Instanz geprüft, wird immer false zurückgegeben.

+ +

Beispiele

+ +

Einsatz von Array.isArray

+ +
// die folgenden Ausdrücke geben true zurück
+Array.isArray([]);
+Array.isArray([1]);
+Array.isArray(new Array());
+Array.isArray(new Array('a', 'b', 'c', 'd'));
+Array.isArray(new Array(3));
+// wenig bekannt: Array.prototype ist selbst ein Array.
+Array.isArray(Array.prototype);
+
+// die folgenden Ausdrücke geben alle false zurück
+Array.isArray();
+Array.isArray({});
+Array.isArray(null);
+Array.isArray(undefined);
+Array.isArray(17);
+Array.isArray("Array");
+Array.isArray(true);
+Array.isArray(false);
+Array.isArray(new Uint8Array(32));
+Array.isArray({ __proto__ : Array.prototype });
+
+ +

instanceof vs isArray

+ +

Wenn auf eine Array Instanz geprüft wird, ist Array.isArray besser geeignet als instanceof, weil es auch mit iframes funktioniert.

+ +
var iframe = document.createElement('iframe');
+document.body.appendChild(iframe);
+xArray = window.frames[window.frames.length-1].Array;
+var arr = new xArray(1,2,3); // [1,2,3]
+
+// Richtiges Prüfen für Arrays
+Array.isArray(arr);   // true
+// Als nicht richtig angesehen, weil es nicht mit iframes funktioniert
+arr instanceof Array; // false
+
+ +

Polyfill

+ +

Der folgende Code implementiert die Methode, wenn Array.isArray() nicht nativ unterstützt wird.

+ +
if(!Array.isArray) {
+  Array.isArray = function (vArg) {
+    return Object.prototype.toString.call(vArg) === "[object Array]";
+  };
+}
+
+ +

Spezifikationen

+ + + + + + + + + + +
Spezifikation
{{SpecName('ESDraft', '#sec-array.isarray', 'Array.isArray')}}
+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.Array.isArray")}}

+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/array/join/index.html b/files/de/web/javascript/reference/global_objects/array/join/index.html new file mode 100644 index 0000000000..4e986bebda --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/array/join/index.html @@ -0,0 +1,114 @@ +--- +title: Array.prototype.join() +slug: Web/JavaScript/Reference/Global_Objects/Array/join +tags: + - Array + - JavaScript + - Method + - Prototype + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Array/join +--- +
{{JSRef}}
+ +

Die join() Methode verkettet alle Elemente eines Arrays (oder Array-ähnlicher Objekte) durch Kommata getrennt oder einem angegebenen Trennzeichen in einem String und gibt diesen zurück. Enthält das Array nur ein Element wird nur dieses ohne Trennzeichen zurückgegeben.

+ +
{{EmbedInteractiveExample("pages/js/array-join.html")}}
+ + + +

Syntax

+ +
arr.join([separator])
+ +

Parameter

+ +
+
separator {{optional_inline}}
+
Gibt einen String an, um jedes Paar benachbarter Elemente des Arrays voneinander zu trennen. Das Trennzeichen wird bei Bedarf in einen String umgewandelt. Wenn nicht angegeben, werden die Array-Elemente durch ein Komma (",") getrennt. Wenn separator ein leerer String ist, werden alle Elemente ohne Trennzeichen miteinander verbunden.
+
+ +

Rückgabewert

+ +

Ein String in dem alle Arrayelemente verkettet sind. Wenn arr.length gleich 0 ist, wird der leere String zurückgegeben.

+ +

Beschreibung

+ +

Alle Elemente des Arrays werden in Strings umgewandelt und in einem String miteinander verkettet

+ +
+

Falls ein Element undefined oder null ist, wird es in einen leeren String umgewandelt.

+
+ +

Beispiele

+ +

Einen Array auf vier verschiedene Arten zusammenführen

+ +

Im folgenden Beispiel wird ein Array a mit drei Elementen erstellt, das dann viermal mit miteinander verbunden wird: mit dem Standardtrennzeichen, einem Komma mit Leerzeichen, einem Pluszeichen und einem leeren String.

+ +
var a = ['Wind', 'Rain', 'Fire'];
+a.join();       // 'Wind,Rain,Fire'
+a.join(', ');   // 'Wind, Rain, Fire'
+a.join(' + ');  // 'Wind + Rain + Fire'
+a.join('');     // 'WindRainFire'
+
+ +

Zusammenführen eines Array-ähnlichen Objekts

+ +

Das Folgende Beispiel fügt ein Array-ähnliches Objekt ({{jsxref("Functions/arguments", "arguments")}}) zusammen, indem {{jsxref("Function.prototype.call", "call()")}} auf Array.prototype.join aufgerufen wird.

+ +
function f(a, b, c) {
+  var s = Array.prototype.join.call(arguments);
+  console.log(s); // '1,a,true'
+}
+f(1, 'a', true);
+// Erwartete Ausgabe: "1,a,true"
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES1')}}{{Spec2('ES1')}}Initiale Definition. Implementiert in JavaScript 1.1.
{{SpecName('ES5.1', '#sec-15.4.4.5', 'Array.prototype.join')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-array.prototype.join', 'Array.prototype.join')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-array.prototype.join', 'Array.prototype.join')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.Array.join")}}

+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/array/keys/index.html b/files/de/web/javascript/reference/global_objects/array/keys/index.html new file mode 100644 index 0000000000..e809654bcc --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/array/keys/index.html @@ -0,0 +1,76 @@ +--- +title: Array.prototype.keys() +slug: Web/JavaScript/Reference/Global_Objects/Array/keys +tags: + - Array + - ECMAScript 2015 + - Iterator + - JavaScript + - Method + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Array/keys +--- +
{{JSRef}}
+ +

Die keys() Methode gibt ein neues Array Iterator Objekt zurück, welches den Schlüssel für jeden Index des Arrays enthält.

+ +
{{EmbedInteractiveExample("pages/js/array-keys.html")}}
+ + + +

Syntax

+ +
arr.keys()
+ +

Rückgabewert

+ +

Ein neues {{jsxref("Array")}} iterator-Objekt.

+ +

Beispiele

+ +

Der Key Iterator ignoriert keine Lücken

+ +
var arr = ['a', , 'c'];
+var sparseKeys = Object.keys(arr);
+var denseKeys = [...arr.keys()];
+console.log(sparseKeys); // ['0', '2']
+console.log(denseKeys);  // [0, 1, 2]
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES2015', '#sec-array.prototype.keys', 'Array.prototype.keys')}}{{Spec2('ES2015')}}Initiale Definition.
{{SpecName('ESDraft', '#sec-array.prototype.keys', 'Array.prototype.keys')}}{{Spec2('ESDraft')}}
+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.Array.keys")}}

+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/array/lastindexof/index.html b/files/de/web/javascript/reference/global_objects/array/lastindexof/index.html new file mode 100644 index 0000000000..7ad2b99661 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/array/lastindexof/index.html @@ -0,0 +1,168 @@ +--- +title: Array.prototype.lastIndexOf() +slug: Web/JavaScript/Reference/Global_Objects/Array/lastIndexOf +tags: + - Array + - ECMAScript 5 + - JavaScript + - Method + - Prototype + - polyfill +translation_of: Web/JavaScript/Reference/Global_Objects/Array/lastIndexOf +--- +
{{JSRef}}
+ +

Die lastIndexOf() Methode gibt den letzten Index zurück, an dem ein übergebenes Element im Array gefunden wurde, oder -1, wenn es nicht vorhanden ist. Das Array wird rückwärts durchsucht beginnend beim fromIndex.

+ +
{{EmbedInteractiveExample("pages/js/array-lastindexof.html")}}
+ + + +

Syntax

+ +
arr.lastIndexOf(searchElement)
+arr.lastIndexOf(searchElement, fromIndex)
+
+ +

Parameter

+ +
+
searchElement
+
Element, nach dem im Feld gesucht wird.
+
fromIndex {{optional_inline}}
+
Der Index an dem die Suche rückwärts begonnen wird. Der Standardwert ist die Arraylänge minus eins (arr.length - 1), d. h. das gesamte Feld wird durchsucht. Wenn der Index größer oder gleich der Länge des Arrays ist, wird das gesamte Array durchsucht. Ist der Index eine negative Zahl, wird er als Offset vom Ende des Arrays behandelt. Bei Verwendung eines negativen Index wird das Array trotzdem von hinten nach vorne durchsucht. Wenn der errechnete Index kleiner als 0 ist, wird -1 zurückgegeben, d.h. das Feld wird nicht durchsucht.
+
+ +

Rückgabewert

+ +

Der letzte Index des gesuchten Elementes aus dem Feld. -1 wenn keins gefunden wurde.

+ +

Beschreibung

+ +

lastIndexOf vergleicht das searchElement mit den Elementen des Feldes und verwendet hierzu die strikte Gleichheit (Die gleiche Methode, die beim === Operator  (triple-equals) angewendet wird.

+ +

Beispiele

+ +

lastIndexOf verwenden

+ +

Das folgende Beispiel verwendet lastIndexOf, um Werte in einem Array zu finden.

+ +
var numbers = [2, 5, 9, 2];
+numbers.lastIndexOf(2);     // 3
+numbers.lastIndexOf(7);     // -1
+numbers.lastIndexOf(2, 3);  // 3
+numbers.lastIndexOf(2, 2);  // 0
+numbers.lastIndexOf(2, -2); // 0
+numbers.lastIndexOf(2, -1); // 3
+
+ +

Finde jedes Vorkommen eines Elementes

+ +

Das folgende Beispiel benutzt lastIndexOf, um alle Indizes eines Elementes in einem Array zu finden, wobei sie mit Hilfe von {{jsxref("Array.prototype.push", "push")}} zu einem anderen Array hinzugefügt werden, sobald sie gefunden werden.

+ +
var indices = [];
+var array = ['a', 'b', 'a', 'c', 'a', 'd'];
+var element = 'a';
+var idx = array.lastIndexOf(element);
+while (idx != -1) {
+  indices.push(idx);
+  idx = (idx > 0 ? array.lastIndexOf(element, idx - 1) : -1);
+}
+
+console.log(indices);
+// [4, 2, 0]
+
+ +

Der Fall idx == 0 muss hier separat behandelt werden, weil das Element immer gefunden wird, unabhängig vom fromIndex Parameter, falls es das erste Element im Feld ist. Das ist der Unterschieder zur {{jsxref("Array.prototype.indexOf", "indexOf")}} Methode.

+ +

Polyfill

+ +

lastIndexOf wurde dem ECMA-262-Standard in der fünften Edition hinzugefügt;  sie könnte daher nicht in allen Browsern verfügbar sein. Der Fehler kann umgangen werden, indem der folgende Code zu Beginn eines Skriptes eingesetzt wird. Dies ermöglicht die Verwendung von lastIndexOf, auch wenn die Methode nativ nicht unterstützt wird. Dieser Algorithmus stimmt mit dem überein, was in ECMA-262 der 5. Edition, spezifiziert wurde, unter der Annahme, dass {{jsxref("Object")}}, {{jsxref("TypeError")}}, {{jsxref("Number")}}, {{jsxref("Math.floor")}}, {{jsxref("Math.abs")}}, und {{jsxref("Math.min")}} ihre originalen Werte haben.

+ +
// Production steps of ECMA-262, Edition 5, 15.4.4.15
+// Reference: http://es5.github.io/#x15.4.4.15
+if (!Array.prototype.lastIndexOf) {
+  Array.prototype.lastIndexOf = function(searchElement /*, fromIndex*/) {
+    'use strict';
+
+    if (this === void 0 || this === null) {
+      throw new TypeError();
+    }
+
+    var n, k,
+      t = Object(this),
+      len = t.length >>> 0;
+    if (len === 0) {
+      return -1;
+    }
+
+    n = len - 1;
+    if (arguments.length > 1) {
+      n = Number(arguments[1]);
+      if (n != n) {
+        n = 0;
+      }
+      else if (n != 0 && n != (1 / 0) && n != -(1 / 0)) {
+        n = (n > 0 || -1) * Math.floor(Math.abs(n));
+      }
+    }
+
+    for (k = n >= 0 ? Math.min(n, len - 1) : len - Math.abs(n); k >= 0; k--) {
+      if (k in t && t[k] === searchElement) {
+        return k;
+      }
+    }
+    return -1;
+  };
+}
+
+ +

Erneute Anmerkung: Diese Implementation zielt auf eine absolute Kompatibilität von lastIndexOf mit Firefox und der SpiderMonkey JavaScript Umgebung aus, inklusive einigen Fällen, welche wohl Grenzfälle sind. Beim Vorhaben diese Funktion in eigenen Applikationen zu verwenden, ist eine Berechnung von from mit weniger komplizierten Code möglich, wenn diese Fälle ignoriert werden.

+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES5.1', '#sec-15.4.4.15', 'Array.prototype.lastIndexOf')}}{{Spec2('ES5.1')}}Initiale Definition. Implementiert in JavaScript 1.6.
{{SpecName('ES6', '#sec-array.prototype.lastindexof', 'Array.prototype.lastIndexOf')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-array.prototype.lastindexof', 'Array.prototype.lastIndexOf')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.Array.lastIndexOf")}}

+
+ +

Kompatibilitätshinweise

+ + + +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/array/length/index.html b/files/de/web/javascript/reference/global_objects/array/length/index.html new file mode 100644 index 0000000000..5357719669 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/array/length/index.html @@ -0,0 +1,149 @@ +--- +title: Array.prototype.length +slug: Web/JavaScript/Reference/Global_Objects/Array/length +tags: + - Array + - JavaScript + - Property + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Array/length +--- +
{{JSRef}}
+ +

Die length Eigenschaft eines Objektes vom Typ Array setzt die Anzahl der Elemente in einem Array oder gibt diese Anzahl zurück. Der Wert ist eine vorzeichenlose, 32-Bit Ganzzahl, welche größer als der größte Index im Array ist.

+ +
{{EmbedInteractiveExample("pages/js/array-length.html")}}
+ + + +

Beschreibung

+ +

Der Wert der length Eigenschaft ist ein positive, ganze Zahl und hat einen Wert kleiner als 232.

+ +
var namelistA = new Array(4294967296); //4294967296 = 232
+var namelistC = new Array(-100) //negative sign
+
+console.log(namelistA.length); //RangeError: Invalid array length
+console.log(namelistC.length); //RangeError: Invalid array length
+
+
+
+var namelistB = [];
+namelistB.length = Math.pow(2,32)-1; //set array length less than 2 to the 32nd power
+console.log(namelistB.length);
+
+//4294967295
+
+ +

Man kann die length Eigenschaft eines Array zu jeder Zeit ändern, um das Array zu kürzen. Wenn ein Array mit dem Ändern der length Eigenschaft vergrößert wird, erhöht sich die Anzahl der der tatsächlichen Elemente. Wenn z. B. length auf 3 gesetzt wird und die aktuelle länge 2 ist, dann enthält das Array 3 Elemente, wobei das dritte Element undefined ist.

+ +
var arr = [1, 2, 3];
+printEntries(arr);
+
+arr.length = 5; // set array length to 5 while currently 3.
+printEntries(arr);
+
+function printEntries(arr) {
+  var length = arr.length;
+  for (var i = 0; i < length; i++) {
+    console.log(arr[i]);
+  }
+  console.log('=== printed ===');
+}
+
+// 1
+// 2
+// 3
+// === printed ===
+// 1
+// 2
+// 3
+// undefined
+// undefined
+// === printed ===
+ +

Jedoch sagt die length Eigenschaft nicht zwangsläufig etwas über die Anzahl der definierten Werte in einem Array aus. Mehr dazu im Artikel Beziehung zwischen Längen und nummerischen Eigenschaften.

+ +

{{js_property_attributes(1, 0, 0)}}

+ +
+ +
+ +

Beispiele

+ +

Iterieren über ein Array

+ +

Im folgenden Beispiel wird über das numbers Array iteriert. Dabei wird die length Eigenschaft verwendet, um festzustellen, wie viele Elemente das Array enthält. Der Wert jedes Elements wird dabei verdoppelt.

+ +
var numbers = [1, 2, 3, 4, 5];
+
+for (var i = 0; i < numbers.length; i++) {
+  numbers[i] *= 2;
+}
+// numbers enthält jetzt die Werte: [2, 4, 6, 8, 10]
+
+ +

Verkürzung eines Arrays

+ +

Das folgende Beispiel verkürzt das Array numbers auf eine Länge von 3, wenn die Länge größer als 3 ist.

+ +
var numbers = [1, 2, 3, 4, 5];
+
+if (numbers.length > 3) {
+  numbers.length = 3;
+}
+
+console.log(numbers);        // [1, 2, 3]
+console.log(numbers.length); // 3
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKomment
{{SpecName('ES1')}}{{Spec2('ES1')}}Initiale Definition.
{{SpecName('ES5.1', '#sec-15.4.5.2', 'Array.length')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-properties-of-array-instances-length', 'Array.length')}}{{Spec2('ES6')}}
{{SpecName('ESDraft', '#sec-properties-of-array-instances-length', 'Array.length')}}{{Spec2('ESDraft')}}
+ +

Browserkompabilität

+ +
+ + +

{{Compat("javascript.builtins.Array.length")}}

+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/array/map/index.html b/files/de/web/javascript/reference/global_objects/array/map/index.html new file mode 100644 index 0000000000..8227658ca6 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/array/map/index.html @@ -0,0 +1,337 @@ +--- +title: Array.prototype.map() +slug: Web/JavaScript/Reference/Global_Objects/Array/map +tags: + - Array + - ECMAScript 5 + - JavaScript + - Method + - Prototype + - Reference + - polyfill +translation_of: Web/JavaScript/Reference/Global_Objects/Array/map +--- +
{{JSRef}}
+ +

Die map() (engl. abbilden) Methode wendet auf jedes Element des Arrays die bereitgestellte Funktion an und gibt das Ergebnis in einem neuen Array zurück.

+ +
{{EmbedInteractiveExample("pages/js/array-map.html")}}
+ + + +

Syntax

+ +
var new_array = arr.map(function callback(currentValue[, index[, array]]) {
+    // Zurückgegebenes Element für new_array
+}[, thisArg])
+ +

Parameter

+ +
+
callback
+
Funktion, die ein Element für das neue Array erstellt und drei Argumente entgegennimmt:
+
+
+
currentValue
+
Das aktuelle Element, das im Array verarbeitet wird.
+
index{{optional_inline}}
+
Der Index des aktuellen Elements, das im Array verarbeitet wird.
+
array{{optional_inline}}
+
Das Array, welches mit map() durchlaufen wird.
+
+
+
thisArg{{optional_inline}}
+
Wert, der als this verwendet wird, wenn callback ausgeführt wird.
+
+ +

Rückgabewert

+ +

Ein neues Array, von dem jedes Element das Ergebnis der Callback-Funktion ist.

+ +

Beschreibung

+ +

map() ruft eine bereitgestellte callback Funktion für jedes Element in einem Array der Reihe nach auf und erstellt aus den Ergebnissen ein neues Array. callback wird nur für Indizes des Arrays aufgerufen, denen Werte zugewiesen wurden, einschließlich {{jsxref("undefined")}}. Es wird nicht für fehlende Elemente des Arrays aufgerufen (d. h. Indizes, die noch nie festgelegt, gelöscht oder denen noch kein Wert zugewiesen wurde).

+ +

map() zu benutzen, wenn das davon neu erstellte Array nicht benutzt wird, gilt als Anti-Pattern. Verwenden Sie stattdessen {{jsxref("Array/forEach", "forEach()")}} oder {{jsxref("statements/for...of", "for...of")}}.

+ +

Sie sollten map() nicht verwenden, wenn:

+ + + +

callback wird mit drei Argumenten aufgerufen:

+ +
    +
  1. Der Wert des Elements
  2. +
  3. Der Index des Elements
  4. +
  5. Das Array-Objekt, das durchlaufen wird
  6. +
+ +

Falls der Parameter thisArg an map() übergeben wird, wird er als Wert für this innerhalb von callback verwendet. Andernfalls hat this den Wert {{jsxref("undefined")}}. Welchen Wert callback letztendlich in this steht, wird gemäß der üblichen Regeln bestimmt, nach denen this für eine Funktion ermittelt wird.

+ +

map() selbst verändert das Array nicht, auf dem es aufgerufen wird (das aufgerufene callback kann jedoch Änderungen vornehmen).

+ +

Der Bereich der von map() verarbeiteten Elemente wird vor dem ersten Aufruf von callback festgelegt. Elemente, die nach Beginn des Aufrufs von map() an das Array angehängt werden, werden von callback nicht berücksichtigt. Wenn vorhandene Elemente des Arrays geändert werden, ist der Wert maßgeblich, den map() beim Erreichen eines Elements antrifft und dann an callback übergibt. Nachfolgende Elemente, die nach Beginn eines Durchlaufs von map() gelöscht werden, bevor sie eingelesen werden konnten, werden nicht mehr berücksichtigt.

+ +

Aufgrund des in der Spezifikation definierten Algorithmus haben Arrays mit vielen leeren Elementen auch nach einem Aufruf von map() immer noch leere Elemente, wobei die leeren Elemente an ihren Indizes verbleiben.

+ +

Beispiele

+ +

Erstellen eines Arrays mit Quadratwurzeln aus einem Array mit Zahlen

+ +

Der folgende Code verwendet ein Array mit Zahlen und erstellt ein neues Array, das die Quadratwurzeln der Zahlen im ersten Array enthält.

+ +
var numbers = [1, 4, 9];
+var roots = numbers.map(Math.sqrt);
+// roots ist jetzt [1, 2, 3]
+// numbers ist immer noch [1, 4, 9]
+
+ +

Objekte innerhalb eines Arrays mit map() neu formatieren

+ +

Der folgende Code nimmt ein Array mit Objekten und erstellt daraus ein neues Array, in dem die Objekte neu formatiert wurden.

+ +
var kvArray = [{key: 1, value: 10},
+               {key: 2, value: 20},
+               {key: 3, value: 30}];
+
+var reformattedArray = kvArray.map(obj => {
+   var rObj = {};
+   rObj[obj.key] = obj.value;
+   return rObj;
+});
+// reformattedArray ist jetzt [{1: 10}, {2: 20}, {3: 30}],
+
+// kvArray ist immer noch:
+// [{key: 1, value: 10},
+//  {key: 2, value: 20},
+//  {key: 3, value: 30}]
+ +

Erstellen eines Arrays mit Zahlen mithilfe einer Funktion, die ein Argument entgegennimmt

+ +

Der folgende Code zeigt, wie map() im Zusammenhang mit einer Funktion arbeitet, welche ein Argument entgegennimmt. Dem Argument wird automatisch der Wert des aktuellen Elements des Arrays zugewiesen, das von map() durchlaufen wird.

+ +
var numbers = [1, 4, 9];
+var doubles = numbers.map(function(num) {
+  return num * 2;
+});
+
+// doubles ist jetzt [2, 8, 18]
+// numbers ist immer noch [1, 4, 9]
+ +

Generischer Einsatz von map()

+ +

In diesem Beispiel wird veranschaulicht, wie map() auf einen {{jsxref("Global_Objects/String", "String")}} angewendet wird, um ein Array mit Bytes zu erhalten, welche den jewiligen Zeichenwerten im ASCII-Zeichensatz entsprechen:

+ +
var map = Array.prototype.map;
+var a = map.call('Hello World', function(x) {
+  return x.charCodeAt(0);
+});
+// a now equals [72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100]
+
+ +

Generischer Einsatz von map() zusammen mit querySelectorAll()

+ +

In diesem Beispiel wird gezeigt, wie Sie eine Sammlung von Objekten durchlaufen, die von {{domxref("document.querySelectorAll()", "querySelectorAll()")}} erfasst wurde. Dies liegt daran, dass {{domxref("document.querySelectorAll()", "querySelectorAll()")}} eine {{domxref("NodeList")}} zurückgibt, bei der es sich um eine Auflistung von Objekten handelt. In diesem Fall geben wir alle Werte der ausgewählten Optionen auf dem Bildschirm zurück:

+ +
var elems = document.querySelectorAll('select option:checked');
+var values = Array.prototype.map.call(elems, function(obj) {
+  return obj.value;
+});
+
+ +

Einfacher wäre die Methode {{jsxref("Array.from()")}}.

+ +

Verzwickter Anwendungsfall

+ +

(Inspiriert von diesem Blogpost)

+ +

Üblicherweise wird die callback Funktion mit nur einem Argument benutzt. Das trifft auch für bestimmte andere Funktionen zu obwohl diese weitere optionale Argumente akzeptieren. Dies kann jedoch zu verwirrendem Verhalten führen.

+ +

Betrachten wir folgendes Beispiel:

+ +
['1', '2', '3'].map(parseInt);
+
+// Man würde erwarten [1, 2, 3]
+// Tatsächlich ist das Ergebnis aber [1, NaN, NaN]
+
+// parseInt wird oft nur mit einem Argument aufgerufen, akzeptiert aber zwei.
+// Der erste ist ein Ausdruck und der zweite ist die Basis.
+
+// Array.prototype.map übergibt 3 Argumente an die Callback-Funktion:
+// das Element, den Index, das Array
+
+// Das dritte Argument wird von parseInt ignoriert, das zweite jedoch nicht,
+// was verwirrend sein kann. Siehe den Blogpost für weitere Details
+
+// Falls der Link nicht funktioniert:
+// ein kurzes Beispiel der Durchläufe:
+// parseInt(string, radix) -> map(parseInt(value, index))
+// erster Durchlauf  (Index ist 0): parseInt('1', 0) // führt zu parseInt('1', 0) -> 1
+// zweiter Durchlauf (Index ist 1): parseInt('2', 1) // führt zu parseInt('2', 1) -> NaN
+// dritter Durchlauf (Index ist 2): parseInt('3', 2) // führt zu parseInt('3', 2) -> NaN
+
+function returnInt(element) {
+  return parseInt(element, 10);
+}
+
+['1', '2', '3'].map(returnInt); // [1, 2, 3]
+// Tatsächliches Ergebnis ist ein Array mit Nummern (wie erwartet)
+
+// Wie oben, jedoch unter Verwendung der kurzen Funktionssyntax mit Pfeil
+['1', '2', '3'].map( str => parseInt(str) );
+
+// Eine einfachere Methode, um selbiges zu erreichen, während Fallstricke vermieden werden:
+['1', '2', '3'].map(Number); // [1, 2, 3]
+
+// Im Gegensatz zu `parseInt` werden jedoch auch Fließkommazahlen oder (aufgelöste) Exponentialnotationen zurückgegeben:
+['1.1', '2.2e2', '3e300'].map(Number); // [1.1, 220, 3e+300]
+ +

Eine alternative Ausgabe der map() Methode, welche mit {{jsxref("Global_Objects/parseInt", "parseInt()")}} als Parameter aufgerufen wird, funktioniert wie folgt:

+ +
var xs = ['10', '10', '10'];
+
+xs = xs.map(parseInt);
+
+console.log(xs);
+// Das tatsächliche Ergebnis von [ 10, NaN, 2 ] kann aufgrund der obigen Beschreibung unerwartet sein
+ +

Polyfill

+ +

map() wurde dem ECMA-262-Standard in der 5. Auflage hinzugefügt. Als solches ist es möglicherweise nicht in allen Implementierungen des Standards enthalten. Sie können dies umgehen, indem Sie den folgenden Code am Anfang Ihrer Skripte einfügen, um die Verwendung von map() in Implementierungen zu ermöglichen, die es nicht nativ unterstützen. Dieser Dieser Algorithmus entspricht dem in der 5. Auflage von ECMA-262 angegebenen Algorithmus, vorausgesetzt {{jsxref("Object")}}, {{jsxref("TypeError")}} und {{jsxref("Array")}} haben ihre ursprünglichen Werte und callback.call() wird mit dem ursprünglichen Wert von {{jsxref("Function.prototype.call()")}} ausgewertet.

+ +
// Production steps of ECMA-262, Edition 5, 15.4.4.19
+// Reference: http://es5.github.io/#x15.4.4.19
+if (!Array.prototype.map) {
+
+  Array.prototype.map = function(callback, thisArg) {
+
+    var T, A, k;
+
+    if (this == null) {
+      throw new TypeError(' this is null or not defined');
+    }
+
+    // 1. Let O be the result of calling ToObject passing the |this|
+    //    value as the argument.
+    var O = Object(this);
+
+    // 2. Let lenValue be the result of calling the Get internal
+    //    method of O with the argument "length".
+    // 3. Let len be ToUint32(lenValue).
+    var len = O.length >>> 0;
+
+    // 4. If IsCallable(callback) is false, throw a TypeError exception.
+    // See: http://es5.github.com/#x9.11
+    if (typeof callback !== 'function') {
+      throw new TypeError(callback + ' is not a function');
+    }
+
+    // 5. If thisArg was supplied, let T be thisArg; else let T be undefined.
+    if (arguments.length > 1) {
+      T = thisArg;
+    }
+
+    // 6. Let A be a new array created as if by the expression new Array(len)
+    //    where Array is the standard built-in constructor with that name and
+    //    len is the value of len.
+    A = new Array(len);
+
+    // 7. Let k be 0
+    k = 0;
+
+    // 8. Repeat, while k < len
+    while (k < len) {
+
+      var kValue, mappedValue;
+
+      // a. Let Pk be ToString(k).
+      //   This is implicit for LHS operands of the in operator
+      // b. Let kPresent be the result of calling the HasProperty internal
+      //    method of O with argument Pk.
+      //   This step can be combined with c
+      // c. If kPresent is true, then
+      if (k in O) {
+
+        // i. Let kValue be the result of calling the Get internal
+        //    method of O with argument Pk.
+        kValue = O[k];
+
+        // ii. Let mappedValue be the result of calling the Call internal
+        //     method of callback with T as the this value and argument
+        //     list containing kValue, k, and O.
+        mappedValue = callback.call(T, kValue, k, O);
+
+        // iii. Call the DefineOwnProperty internal method of A with arguments
+        // Pk, Property Descriptor
+        // { Value: mappedValue,
+        //   Writable: true,
+        //   Enumerable: true,
+        //   Configurable: true },
+        // and false.
+
+        // In browsers that support Object.defineProperty, use the following:
+        // Object.defineProperty(A, k, {
+        //   value: mappedValue,
+        //   writable: true,
+        //   enumerable: true,
+        //   configurable: true
+        // });
+
+        // For best browser support, use the following:
+        A[k] = mappedValue;
+      }
+      // d. Increase k by 1.
+      k++;
+    }
+
+    // 9. return A
+    return A;
+  };
+}
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES5.1', '#sec-15.4.4.19', 'Array.prototype.map')}}{{Spec2('ES5.1')}}Initiale Definition. Implementiert in JavaScript 1.6.
{{SpecName('ES6', '#sec-array.prototype.map', 'Array.prototype.map')}}{{Spec2('ES6')}}
{{SpecName('ESDraft', '#sec-array.prototype.map', 'Array.prototype.map')}}{{Spec2('ESDraft')}}
+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.Array.map")}}

+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/array/observe/index.html b/files/de/web/javascript/reference/global_objects/array/observe/index.html new file mode 100644 index 0000000000..2926d777fc --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/array/observe/index.html @@ -0,0 +1,91 @@ +--- +title: Array.observe() +slug: Web/JavaScript/Reference/Global_Objects/Array/observe +tags: + - Array + - JavaScript + - Method + - Obsolete +translation_of: Archive/Web/JavaScript/Array.observe +--- +
{{JSRef}} {{obsolete_header}}
+ +

Die Array.observe() Methode wurde für das asynchrone Beobachten von Veränderungen von Arrays benutzt, ähnlich wie {{jsxref("Object.observe()")}} für Objekte. Sie stellt einen Stream von Änderungen in der Reihenfolge, in denen sie auftreten, zur Verfügung.
+ Equivalent zu  Object.observe() und wird ausgeführt mit der Liste ["add", "update", "delete", "splice"]. Diese Funktion wurde als deprecated markiert und bereits aus einigen Browsern entfernt. Man kann stattdessen das allgemeinere {{jsxref("Proxy")}} Objekt verwenden.

+ +

Syntax

+ +
Array.observe(arr, callback)
+ +

Parameter

+ +
+
arr
+
    Das Array, welches beobachtet wird.
+
callback
+
Die Funktion, welche bei jeder Änderung mit folgenden Argumenten aufgerufen wird: +
+
changes
+
Ein Array aus Objekten. Jedes repräsentiert eine Änderung. Die Eigenschaften dieser change Objekte sind: +
    +
  • name: Der Name der Eigenschaft, welche geändert wurde.
  • +
  • object: Das veränderte Array, nachdem die Änderung stattfand.
  • +
  • type: Ein String, welcher den Typ der Änderung darstellt. Er hat den Wert "add", "update", "delete", oder "splice".
  • +
  • oldValue: Nur für "update" und "delete" Typ. Der Wert vor der Änderung.
  • +
  • index: Nur für "splice" Typ. Der Index, an welchem die Änderung stattfand.
  • +
  • removed: Nur für "splice" Typ. Ein Array aus den gelöschten Elementen.
  • +
  • addedCount: Nur für "splice" Typ. Die Anzahl an Elementen, welche hinzugefügt wurden.
  • +
+
+
+
+
+ +

Beschreibung

+ +

Die callback Funktion wird jedes mal aufgerufen, wenn eine Änderung in arr stattfindet mit einem Array von allen Änderungen in der Reihenfolge in der sie auftreten

+ +
+

Änderungen über die Array Methoden, wie zum Beispiel Array.prototype.pop(), werden als "splice" "changes" dargestellt.
+ Index Änderungen, welche die Länge des Arrays nicht verändern, werden als "update" "changes" dargestellt.

+
+ +

Beispiele

+ +

Aufzeichnung verschiedener change Typen

+ +
var arr = ['a', 'b', 'c'];
+
+Array.observe(arr, function(changes) {
+  console.log(changes);
+});
+
+arr[1] = 'B';
+// [{type: 'update', object: <arr>, name: '1', oldValue: 'b'}]
+
+arr[3] = 'd';
+// [{type: 'splice', object: <arr>, index: 3, removed: [], addedCount: 1}]
+
+arr.splice(1, 2, 'beta', 'gamma', 'delta');
+// [{type: 'splice', object: <arr>, index: 1, removed: ['B', 'c', 'd'], addedCount: 3}]
+
+ +

Spezifikationen

+ +

Strawman proposal specification.

+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.Array.observe")}}

+
+ +

See also

+ + diff --git a/files/de/web/javascript/reference/global_objects/array/of/index.html b/files/de/web/javascript/reference/global_objects/array/of/index.html new file mode 100644 index 0000000000..e0e69d50f5 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/array/of/index.html @@ -0,0 +1,102 @@ +--- +title: Array.of() +slug: Web/JavaScript/Reference/Global_Objects/Array/of +tags: + - Array + - ECMAScript 2015 + - JavaScript + - Method + - polyfill +translation_of: Web/JavaScript/Reference/Global_Objects/Array/of +--- +
{{JSRef}}
+ +
Die Array.of() Methode erstellt eine neue {{jsxref("Array")}} Instanz aus einer variablen Anzahl an Argumenten, ohne Rücksicht auf die Anzahl oder den Typ der Argumente.
+ +
 
+ +
Der Unterschied zwischen Array.of() und dem Array Konstruktor ist die Behandlung von ganzen Zahlen als Argumente: Array.of(7) erstellt ein Array mit einem Element, 7. Array(7) hingegen erstellt ein leeres Array, bei dem die Eigenschaft length den Wert 7 gesetzt ist (Bemerkung: das impliziert ein Array mit 7 leeren Elementen, bei dem alle Elemente undefined sind).
+ +
 
+ +
Array.of(7);       // [7]
+Array.of(1, 2, 3); // [1, 2, 3]
+
+Array(7);          // [ , , , , , , ]
+Array(1, 2, 3);    // [1, 2, 3]
+
+ +

Syntax

+ +
Array.of(element0[, element1[, ...[, elementN]]])
+ +

Parameter

+ +
+
elementN
+
Elemente, welche sich im neu erzeugten Array befinden.
+
+ +

Rückgabewert

+ +

Eine neue {{jsxref("Array")}} Instanz.

+ +

Beschreibung

+ +

Diese Funktion ist Teil des EMCAScript 2015 Standards. Für mehr Information siehe Array.of and Array.from und Array.of polyfill.

+ +

Beispiele

+ +
Array.of(1);         // [1]
+Array.of(1, 2, 3);   // [1, 2, 3]
+Array.of(undefined); // [undefined]
+
+ +

Polyfill

+ +

Wird der nachfolgende Code vor jedem anderen Code eingefügt, so wird Array.of() verfügbar, falls es nicht nativ implementiert ist.

+ +
if (!Array.of) {
+  Array.of = function() {
+    return Array.prototype.slice.call(arguments);
+  };
+}
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES6', '#sec-array.of', 'Array.of')}}{{Spec2('ES6')}}Initiale Definition.
{{SpecName('ESDraft', '#sec-array.of', 'Array.of')}}{{Spec2('ESDraft')}} 
+ +

Browser Kompabilität

+ +
+ + +

{{Compat("javascript.builtins.Array.of")}}

+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/array/pop/index.html b/files/de/web/javascript/reference/global_objects/array/pop/index.html new file mode 100644 index 0000000000..33274647f5 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/array/pop/index.html @@ -0,0 +1,98 @@ +--- +title: Array.prototype.pop() +slug: Web/JavaScript/Reference/Global_Objects/Array/pop +tags: + - Array + - JavaScript + - Method + - Prototype + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Array/pop +--- +
{{JSRef("Global_Objects", "Array")}}
+ +

Die pop() Methode entfernt das letzte Element eines Arrays und gibt dieses zurück. Diese Methode ändert die Länge des Arrays.

+ +
{{EmbedInteractiveExample("pages/js/array-pop.html")}}
+ + + +

Syntax

+ +
arr.pop()
+ +

Rückgabewert

+ +

Das entfernte Element aus dem Array; {{jsxref("undefined")}} wenn das Array leer ist.

+ +

Beschreibung

+ +

Die pop-Methode entfernt das letzte Element eines Arrays und gibt dieses zurück.

+ +

pop ist bewusst generisch gehalten. DIese Methode kann mit {{jsxref("Function.call", "called", "", 1)}} oder {{jsxref("Function.apply", "applied", "", 1)}} auf einem Objekten aufgerufen werden, welches Arrays ähneln ist. Objekte, die keine length Eigenschaft enthalten, welches das letzt Element in dem Objekt markieren oder keine nullbasierten numerischen Eigenschaften widerspiegelt, verhalten sich möglicherweise nicht in einer Weise.

+ +

Wenn pop() auf einem leeren Array aufgerufen wird, so wird undefined zurückgegeben.

+ +

Beispiele

+ +

Entfernen des letzten Elements eines Arrays

+ +

Der folgende Code erzeugt ein Array myFish, das aus vier Elementen besteht. Im Anschluss daran wird das letzte Element entfernt.

+ +
var myFish = ['angel', 'clown', 'mandarin', 'sturgeon'];
+
+var popped = myFish.pop();
+
+console.log(myFish); // ['angel', 'clown', 'mandarin' ]
+
+console.log(popped); // 'sturgeon'
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
ECMAScript 3rd Edition{{Spec2('ES3')}}Initiale Definition. Implementiert mit JavaScript 1.2.
{{SpecName('ES5.1', '#sec-15.4.4.6', 'Array.prototype.pop')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-array.prototype.pop', 'Array.prototype.pop')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-array.prototype.pop', 'Array.prototype.pop')}}{{Spec2('ESDraft')}} 
+ +

Browser-Kompatibilität

+ +
+ + +

{{Compat("javascript.builtins.Array.pop")}}

+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/array/prototypen/index.html b/files/de/web/javascript/reference/global_objects/array/prototypen/index.html new file mode 100644 index 0000000000..dcab74024e --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/array/prototypen/index.html @@ -0,0 +1,183 @@ +--- +title: Array.Prototypen +slug: Web/JavaScript/Reference/Global_Objects/Array/Prototypen +tags: + - Array + - JavaScript + - Property +translation_of: Web/JavaScript/Reference/Global_Objects/Array/prototype +--- +
{{JSRef}}
+ +

Die Array.prototype (Anordnung.Muster) Eigenschaft repräsentiert eine Schablone (Prototypen) des {{jsxref("Array")}} Konstrukteurs und erlaubt dir neue Eigenschaften und Methoden zu allen Array Objekten hinzuzufügen.

+ +
// Wenn JavaScript eine first() Methode vom Grundsatz nicht unterstützt
+// füge eine neue Methode als Rückgabewert des ersten Elements als Array zurück
+
+if (!Array.prototype.first) {
+  Array.prototype.first = function() {
+    return this[0];
+  }
+}
+ +

Beschreibung

+ +

{{jsxref("Array")}} Instanzen erben vom Array.prototype. Wie mit allen Konstrukteuren kannst du das Konstrukteur Protoypen Objekt ändern, um alle {{jsxref("Array")}} Instanzen zu verändern. Ein Beispiel: du kannst neue Methoden und Eigenschaften zu allen Array-Objekten hinzufügen und diese damit erweitern. Dies wird zum Beispiel für {{Glossary("Polyfill", "polyfilling")}} genutzt.

+ +

Ganz nebenbei: ein Array-Protoyp selbst ist ein {{jsxref("Array")}}:

+ +
Array.isArray(Array.prototype); // true
+
+ +

{{js_property_attributes(0, 0, 0)}}

+ +

Eigenschaften

+ +
+
Array.prototype.constructor
+
Beschreibt die Funktion um ein Objekt-Prototypen zu erstellen.
+
{{jsxref("Array.prototype.length")}}
+
Gibt die Nummer an Elementen in einem Array wieder.
+
{{jsxref("Array.@@unscopables", "Array.prototype[@@unscopables]")}}
+
Eine Symbol-beinhaltende Eigenschaft beschreibt das ausschließen von einem mit with eingebundenden Geltungsbereich.
+
+ +

Methoden

+ +

Mutationsmethoden

+ +

Diese Methoden verändern ein Array:

+ +
+
{{jsxref("Array.prototype.copyWithin()")}}
+
Kopiert einen Teil eines Array Elements innerhalb eines Array.
+
{{jsxref("Array.prototype.fill()")}}
+
Füllt alle Elemente eines Arrays von einem Start-Index zu einem Ende-Index mit einem festen Wert.
+
{{jsxref("Array.prototype.pop()")}}
+
Entfernt das letzte Element von einem Array und gibt dieses Element als Rückgabewert aus.
+
{{jsxref("Array.prototype.push()")}}
+
Fügt eins oder mehrere Elemente zu dem Ende des Arrays hinzu und gibt die neue Länge des Arrays zurück
+
{{jsxref("Array.prototype.reverse()")}}
+
Dreht die Reihenfolge der Elemente in einem Array um - das erste Element wird das letzte und das letzte Element wird das erste.
+
{{jsxref("Array.prototype.shift()")}}
+
Entfernt das erste Element innerhalb eines Array und gibt das Element als Rückgabewert aus.
+
{{jsxref("Array.prototype.sort()")}}
+
Sortiert innerhalb eines Arrays die Elemente und gibt das sortierte Array aus.
+
{{jsxref("Array.prototype.splice()")}}
+
Fügt Elemente von einem Array hinzu und/oder entfernt diese.
+
{{jsxref("Array.prototype.unshift()")}}
+
Fügt ein oder mehr Elemente an erster Stelle eines Array hinzu und gibt die Länge des neuen Arrays zurück.
+
+ +

Zugriffsmethoden

+ +

Diese Methoden verändern das Array nicht und geben als Rückgabewert eine Darstellung des Arrays an.

+ +
+
{{jsxref("Array.prototype.concat()")}}
+
Gibt ein neues Array zusammengestellt von diesem Array und verknüpft mit anderen/ mehreren Array(s) und/ oder einem/ mehreren Wert(en).
+
{{jsxref("Array.prototype.includes()")}}
+
Überprüft, ob ein Array ein bestimmtes Element enthält und gibt als Rückgabewert true oder false an.
+
{{jsxref("Array.prototype.indexOf()")}}
+
Gibt die erste Stelle (Index) eines einzelnen, dem beschriebenen, Elements innerhalb eines Array an. Wenn das Element nicht gefunden wurde gibt er -1 zurück.
+
{{jsxref("Array.prototype.join()")}}
+
Verbindet alle Elemente eines Arrays zu einem String.
+
{{jsxref("Array.prototype.lastIndexOf()")}}
+
Gibt den letzten (höchsten) Index des beschriebenen Elements innerhalb eines Arrays aus, oder -1, wenn nichts gefunden wurde.
+
{{jsxref("Array.prototype.slice()")}}
+
Extrahiert einen Teil eines Arrays und gibt diesen als neues Array aus.
+
{{jsxref("Array.prototype.toSource()")}} {{non-standard_inline}}
+
Gibt ein Array-Literal des beschriebenen Arrays zurück; du kannst diesen Wert nutzen um ein neues Array zu erstellen. Überschreibt die {{jsxref("Object.prototype.toSource()")}} Methode.
+
{{jsxref("Array.prototype.toString()")}}
+
Gibt einen String zurück, welcher das Array und seine Elemente beinhaltet. Überschreibt die {{jsxref("Object.prototype.toString()")}} Methode.
+
{{jsxref("Array.prototype.toLocaleString()")}}
+
Gibt einen lokalen String zurück, welcher das Array und seine Elemente beschreibt. Überschreibt die {{jsxref("Object.prototype.toLocaleString()")}} Methode.
+
+ +

Zählmethoden

+ +

Einige Methoden nehmen als Argument eine Funktion an und führen diese während des Aufrufs des Arrays aus. Wenn diese Methoden aufgerufen werden, wird die Länge (length) des Arrays abgetastet und jedes Element außerhalb der dieser Länge innerhalb eines nicht aufgerufenen Callbacks hinzugefügt. Andere Änderungen zu einem Array (setzen eines Wertes oder das Löschen eines Elements) könnten Auswirkungen auf das Ergebnis der Operation haben, wenn die Methode das veränderte Element im Nachhinein besucht. Während das spezielle Verhalten dieser Methoden in einem solchen Fall gut definiert sind, solltest du dich dennoch nicht darauf verlassen, damit du andere, die deinen möglicherweise lesen - nicht verwirrt werden. Wenn du das Array verändern musst, solltest du das veränderte Array in ein neu erstelltes Array packen.

+ +
+
{{jsxref("Array.prototype.entries()")}}
+
Gibt ein neues Array Zähl Objekt (Array Iterator Object) zurück, welches das key/value Paar für jeden Index in dem Array innehält.
+
{{jsxref("Array.prototype.every()")}}
+
Gibt true zurück, wenn alle Elemente in diesem Array die zu testende Funktion bestehen.
+
{{jsxref("Array.prototype.filter()")}}
+
Erstellt ein neues Array mit allen Elementen dieses Arrays für welches die Filter-Funktion innerhalb den Rückgabewert true benutzt.
+
{{jsxref("Array.prototype.find()")}}
+
Gibt den ersten gefundenen Wert innerhalb eines Arrays wieder, wenn ein Element innerhalb des Arrays die definierte Test-Funktion besteht oder undefined wenn nichts gefunden wurde.
+
{{jsxref("Array.prototype.findIndex()")}}
+
Gibt den gefundenen Index im Array an, wenn ein Element in dem Array die angegebene Test-Funktion besteht - oder -1, wenn nichts gefunden wurde.
+
{{jsxref("Array.prototype.forEach()")}}
+
Ruft eine Funktion für jedes Element in einem Array auf.
+
{{jsxref("Array.prototype.keys()")}}
+
+

Gibt einen neuen Array Iterator (Zeiger) aus, welcher die Schlüssel für jeden Index innerhalb des Arrays beinhaltet.

+
+
{{jsxref("Array.prototype.map()")}}
+
Erstellt ein neues Array mit den Ergebnissen der ausgeführten definierten Funktion an jedem Element in diesem Array.
+
{{jsxref("Array.prototype.reduce()")}}
+
Reduziert das Array auf einen einzigen Wert, indem es jeweils zwei Elemente durch die angegebene Funktion ausführt. Optional: als zweiten Paramater einen Startwert angeben.
+
{{jsxref("Array.prototype.reduceRight()")}}
+
Reduziert das Array auf einen einzigen Wert, indem es jeweils zwei Elemente durch die angegebene Funktion ausführt (von rechts nach links). Optional: als zweiten Paramater einen Startwert angeben.
+
{{jsxref("Array.prototype.some()")}}
+
+
Gibt true zurück, wenn mindestens ein Element in diesem Array den Test der definierten Funktion besteht.
+
+
{{jsxref("Array.prototype.values()")}}
+
Gibt einen neues Array Iterator Objekt zurück, welches die Werte für jeden Index in dem Array beinhaltet.
+
{{jsxref("Array.prototype.@@iterator()", "Array.prototype[@@iterator]()")}}
+
Gibt einen neues Array Iterator Objekt zurück, welches die Werte für jeden Index in dem Array beinhaltet.
+
+ +

Generische Methoden (kein Standard)

+ +

Vielen Methoden von den JavaScript Array Objekten sind für die allgemeine Anwendung an allem Objekten entwickelt wurden, welche "aussehen wie" Arrays. Der Grund ist, dass sie an allen Objekten angewandt werden könne, welche eine Längen-Eigenschaft besitzen, und welche nützlicherweise eine numerische Eigenschaft benennen (wie mit der array[5] Indizierung). Einige Methoden, solche wie {{jsxref("Array.join", "join")}}, lesen nur die Länge (length) und numerische Eigenschaften von dem Objekt an welches sie angewandt werden. Andere, wie {{jsxref("Array.reverse", "reverse")}}, erfordern eine Veränderung der numerischen Objekt- und Längen-Eigenschaften; diese Methoden können deshalb nicht von Objekten wie {{jsxref("String")}} aufgerufen werden, welche das künstliche Setzen ihrer Längen- (length)  oder numerischen Eigenschaft nicht erlauben.

+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES1')}}{{Spec2('ES1')}}Initiale Definition.
{{SpecName('ES5.1', '#sec-15.4.3.1', 'Array.prototype')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-array.prototype', 'Array.prototype')}}{{Spec2('ES6')}}Hinzugefügt der copyWithin(), fill(), entries(), keys(), values(), find(), findIndex() Methoden.
{{SpecName('ES7', '#sec-array.prototype', 'Array.prototype')}}{{Spec2('ES7')}}Hinzugefügt der includes() Methode.
+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.Array.prototype")}}

+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/array/push/index.html b/files/de/web/javascript/reference/global_objects/array/push/index.html new file mode 100644 index 0000000000..986fcf944b --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/array/push/index.html @@ -0,0 +1,141 @@ +--- +title: Array.prototype.push() +slug: Web/JavaScript/Reference/Global_Objects/Array/push +tags: + - Array + - JavaScript + - Method + - Prototype + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Array/push +--- +
{{JSRef}}
+ +

Die push() Methode fügt ein oder mehr Elemente am Ende eines Arrays hinzu und gibt die neue Länge des Arrays zurück.

+ +
{{EmbedInteractiveExample("pages/js/array-push.html")}}
+ + + +

Syntax

+ +
arr.push(element1 [, ... [, elementN]])
+ +

Parameter

+ +
+
elementN
+
Die Elemente, die am Ende des Arrays eingefügt werden.
+
+ +

Rückgabewert

+ +

Den neuen Wert der {{jsxref("Array.length", "length")}} Eigenschaft (Länge des Arrays), nachdem die Methode ausgeführt wurde.

+ +

Beschreibung

+ +

Die push Methode fügt Werte an das Ende eines Arrays an.

+ +

push ist absichtlich generisch gehalten. Die Methode kann mit Hilfe von {{jsxref("Function.call", "call()")}} und {{jsxref("Function.apply", "apply()")}} auch auf Array ähnliche Objekte angewendet werden. Die Methode wählt anhand der length Eigenschaft den Punkt aus, an dem die Werte eingefügt werden. Falls die length Eigenschaft nicht in eine Zahl umgewandelt werden kann, wird 0 als Index verwendet. Das gilt auch für den Fall, dass die length Eigenschaft nicht vorhanden ist. Die length Eigenschaft wird daraufhin erstellt.

+ +

Obwohl {{jsxref("Global_Objects/String", "Strings", "", 1)}} native, Array-ähnliche Objekte sind, sind sie in Anwendungen dieser Methode nicht geeignet, da Strings unveränderlich sind. Gleiches gilt für das native, Array-ähnliche Objekt {{jsxref("Functions/arguments", "arguments", "", 1)}}.

+ +

Beispiele

+ +

Elemente zu einem Array hinzufügen

+ +

Der folgende Quelltext erstellt ein sports Array mit zwei Elementen und fügt anschließend zwei weitere Elemente hinzu. Die Variable total enthält die neue Länge des Arrays.

+ +
var sports = ['soccer', 'baseball'];
+var total = sports.push('football', 'swimming');
+
+console.log(sports); // ['soccer', 'baseball', 'football', 'swimming']
+console.log(total);  // 4
+
+ +

Zwei Arrays zusammenführen

+ +

Dieses Beispiel benutzt {{jsxref("Function.apply", "apply()")}}, um alle Elemente eines zweiten Arrays hinzuzufügen.

+ +

Diese Methode sollte nicht benutzt werden, wenn das zweite Array (moreVegs in diesem Beispiel) sehr lang ist, weil die maximale Anzahl der Parametern, die eine Funktion haben kann, in der Praxis limitiert ist. Siehe {{jsxref("Function.apply", "apply()")}} für mehr Details.

+ +
var vegetables = ['parsnip', 'potato'];
+var moreVegs = ['celery', 'beetroot'];
+
+// Fügt das zweite Array an das erste Array an
+// Equivalent zu vegetables.push('celery', 'beetroot');
+Array.prototype.push.apply(vegetables, moreVegs);
+
+console.log(vegetables); // ['parsnip', 'potato', 'celery', 'beetroot']
+ +

Objekte wie ein Array behandeln

+ +

Wie oben angedeutet ist, ist push extra generisch gehalten, was man zu seinem Vorteil nutzen kann. Array.prototype.push kann gut auf ein Objekt angewendet werden, wie das Beispiel zeigt. Zu beachten ist, dass kein Array erstellt wird, um eine Menge von Objekten zu speichern. Stattdessen werden die Objekte in dem Objekt selbst gespeichern, indem wir call auf der Array.prototype.push Methode einsetzen, um die Methode glauben zu lassen, wir arbeiten mit einem Array. Es funktioniert einfach, dank der Art und Weise, wie JavaScript es uns erlaubt, den Ausführungskontext nach Belieben festzulegen.

+ +
var obj = {
+    length: 0,
+
+    addElem: function addElem(elem) {
+        // obj.length wird automatisch erhöht,
+        // wenn ein Objekt hinzugefügt wird
+        [].push.call(this, elem);
+    }
+};
+
+// ein paar leere Objekte zu Illustrationszwecken hinzufügen
+obj.addElem({});
+obj.addElem({});
+console.log(obj.length);
+// → 2
+
+ +

Zu beachten ist, dass obj kein Array ist. Die Methode push erhöht erfolgreich die length Eigenschaft von obj, so als würde sie mit einem Array arbeiten.

+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES3')}}{{Spec2('ES3')}}Initiale Definition. Implementiert in JavaScript 1.2.
{{SpecName('ES5.1', '#sec-15.4.4.7', 'Array.prototype.push')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-array.prototype.push', 'Array.prototype.push')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-array.prototype.push', 'Array.prototype.push')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.Array.push")}}

+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/array/reduce/index.html b/files/de/web/javascript/reference/global_objects/array/reduce/index.html new file mode 100644 index 0000000000..bbb3e4d57c --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/array/reduce/index.html @@ -0,0 +1,564 @@ +--- +title: Array.prototype.reduce() +slug: Web/JavaScript/Reference/Global_Objects/Array/Reduce +tags: + - Array + - ECMAScript 5 + - JavaScript + - Method + - Prototype + - Reduce + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Array/Reduce +--- +
{{JSRef}}
+ +

Die reduce()-Methode reduziert ein Array auf einen einzigen Wert, indem es jeweils zwei Elemente (von links nach rechts) durch eine gegebene Funktion reduziert.

+ +
{{EmbedInteractiveExample("pages/js/array-reduce.html")}}
+ + + +

Syntax

+ +
arr.reduce(callback[, initialValue])
+ +

Parameter

+ +
+
callback
+
Funktion, welche auf jeden Wert im Array angewandet wird und vier Argumente hat: +
+
accumulator
+
Der kumulierte Wert ist der Rückgabewert von callback; der in der zuvor zurückgegebene Wert des letzten Aufrufes von callback oder initialValue werden verwendet.
+
currentValue
+
Das aktuell zu verarbeitende Element des Arrays.
+
currentIndex{{optional_inline}}
+
Der Index des aktuellen Elements des Arrays. Beginnt mit dem Index 0, falls initialValue angegeben wurde, ansonsten mit Index 1.
+
array{{optional_inline}}
+
Das Array, auf dem reduce abgerufen wird.
+
+
+
initialValue{{optional_inline}}
+
Der Wert des ersten Arguments, der bei dem ersten Aufruf in callback zu benutzt wird. Wenn kein Initialwert angegeben wird, wird das erste Element des Arrays benutzt. Das Aufrufen von reduce() auf einem leeren Array ohne Initialwerts führt zu einem Fehler.
+
+ +

Rückgabewert

+ +

Der Ergebniswert der Reduzierung.

+ +

Beschreibung

+ +

reduce() führt die callback-Funktion für jedes existierende Element in dem Array aus, Ausnahme sind nicht gesetzte Werte. callback hat vier Parameter:

+ + + +

Beim ersten Aufruf von callback sind die Werte von accumulator und currentValue in Abhängigkeit vom Parameter initialValue wie folgt:

+ + + +
+

Hinweis: Wenn initialValue nicht angegeben wird, wird reduce() die callback-Funktion startend beim Index 1 aufrufen, der erste Index wird übersprungen. Wenn initialValue angegeben ist, wird bei Index 0 begonnen.

+
+ +

Wenn das Array leer ist und kein initialValue angegeben ist, wird ein {{jsxref("TypeError")}} erzeugt. Wenn das Array nur ein Element hat (die Position ist egal) und kein initialValue angegeben ist oder wenn initialValue angegeben ist und das Array leer ist, wird der einzelne Wert sofort zurückgegeben, ohne callback aufzurufen.

+ +

Es ist immer sicherer initialValue anzugeben, weil es drei mögliche Ergebnisse ohne initialValue gibt, wie es im folgenden Beispiel gezeigt ist.

+ +
var maxCallback = ( acc, cur ) => Math.max( acc.x, cur.x );
+var maxCallback2 = ( max, cur ) => Math.max( max, cur );
+
+// reduce() without initialValue
+[ { x: 22 }, { x: 42 } ].reduce( maxCallback ); // 42
+[ { x: 22 }            ].reduce( maxCallback ); // { x: 22 }
+[                      ].reduce( maxCallback ); // TypeError
+
+// map/reduce; better solution, also works for empty or larger arrays
+[ { x: 22 }, { x: 42 } ].map( el => el.x )
+                        .reduce( maxCallback2, -Infinity );
+
+ +

Wie reduce() funktioniert

+ +

Angenommen die folgende reduce() Funktion wird genutzt:

+ +
[0, 1, 2, 3, 4].reduce(function (accumulator, currentValue, currentIndex, array) {
+  return accumulator + currentValue;
+});
+
+ +

Die callback-Funktion wird viermal aufgerufen, mit den Parametern und Rückgabewert für jeden Aufruf wir folgend beschrieben:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
callbackaccumulatorcurrentValuecurrentIndexarrayRückgabewert
1. Aufruf011[0, 1, 2, 3, 4]1
2. Aufruf122[0, 1, 2, 3, 4]3
3. Aufruf333[0, 1, 2, 3, 4]6
4. Aufruf644[0, 1, 2, 3, 4]10
+ +

Der zurückgegebene Wert von reduce() ist der Rückgabewert der letzten callback-Funktion (10).

+ +

Es ist zusätzlich möglich eine {{jsxref("Functions/Arrow_functions", "Arrow-Funktion","",1)}} statt einer ganzen Funktion zu benutzen. Der folgende Quelltext erzeugt die gleiche Ausgabe wie der Vorherige:

+ +
[0, 1, 2, 3, 4].reduce( (prev, curr) => prev + curr );
+
+ +

Wenn als zweiter Parameter von reduce() initialValue angegeben ist, wird das Ergebnis wie folgt aussehen:

+ +
[0, 1, 2, 3, 4].reduce((accumulator, currentValue, currentIndex, array) => {
+  return accumulator + currentValue;
+}, 10);
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
callbackaccumulatorcurrentValuecurrentIndexarrayRückgabewert
1. Aufruf1000[0, 1, 2, 3, 4]10
2. Aufruf1011[0, 1, 2, 3, 4]11
3. Aufruf1122[0, 1, 2, 3, 4]13
4. Aufruf1333[0, 1, 2, 3, 4]16
5. Aufruf1644[0, 1, 2, 3, 4]20
+ +

Der von reduce() zurückgegebene Wert ist in diesem Fall 20.

+ +

Beispiele

+ +

Alle Elemente eines Arrays summieren

+ +
var sum = [0, 1, 2, 3].reduce(function (accumulator, currentValue) {
+  return accumulator + currentValue;
+}, 0);
+// sum is 6
+
+ +

Alternativ als Arrow-Funktion geschrieben:

+ +
var total = [ 0, 1, 2, 3 ].reduce(
+  ( accumulator, currentValue ) => accumulator + currentValue,
+  0
+);
+ +

Summe von Werten in einem Objektarray

+ +

Um in einem Array von Objekten Werte aufzusummieren, muss ein Initialwert angegeben werden, so dass jedes Element in der Funktion durchlaufen wird.

+ +
var initialValue = 0;
+var sum = [{x: 1}, {x:2}, {x:3}].reduce(function (accumulator, currentValue) {
+    return accumulator + currentValue.x;
+},initialValue)
+
+console.log(sum) // logs 6
+
+ +

Alternativ als Arrow-Funktion geschrieben:

+ +
var initialValue = 0;
+var sum = [{x: 1}, {x:2}, {x:3}].reduce(
+    (accumulator, currentValue) => accumulator + currentValue.x
+    ,initialValue
+);
+
+console.log(sum) // logs 6
+ +

Geschachtelte Arrays zu einem flachen Array machen

+ +
var flattened = [[0, 1], [2, 3], [4, 5]].reduce(
+  function(accumulator, currentValue) {
+    return accumulator.concat(currentValue);
+  },
+  []
+);
+// flattened is [0, 1, 2, 3, 4, 5]
+
+ +

Alternativ als Arrow-Funktion geschrieben:

+ +
var flattened = [[0, 1], [2, 3], [4, 5]].reduce(
+  ( accumulator, currentValue ) => accumulator.concat(currentValue),
+  []
+);
+
+ +

Zählen von Instanzen eines Wertes in einem Objekt

+ +
var names = ['Alice', 'Bob', 'Tiff', 'Bruce', 'Alice'];
+
+var countedNames = names.reduce(function (allNames, name) {
+  if (name in allNames) {
+    allNames[name]++;
+  }
+  else {
+    allNames[name] = 1;
+  }
+  return allNames;
+}, {});
+// countedNames is:
+// { 'Alice': 2, 'Bob': 1, 'Tiff': 1, 'Bruce': 1 }
+
+ +

Objekte nach einer Eigenschaft gruppieren

+ +
var people = [
+  { name: 'Alice', age: 21 },
+  { name: 'Max', age: 20 },
+  { name: 'Jane', age: 20 }
+];
+
+function groupBy(objectArray, property) {
+  return objectArray.reduce(function (acc, obj) {
+    var key = obj[property];
+    if(!acc[key]) {
+      acc[key] = [];
+    }
+    acc[key].push(obj);
+    return acc;
+  }, {});
+}
+
+var groupedPeople = groupBy(people, 'age');
+// groupedPeople is:
+// {
+//   20: [
+//     { name: 'Max', age: 20 },
+//     { name: 'Jane', age: 20 }
+//   ],
+//   21: [{ name: 'Alice', age:21 }]
+// }
+
+ +

Verbinden von Arrays in einem Array von Objekten mithilfe des Spread-Operators und von initialValue

+ +
// friends - an array of objects
+// where object field "books" - list of favorite books
+var friends = [{
+  name: 'Anna',
+  books: ['Bible', 'Harry Potter'],
+  age: 21
+}, {
+  name: 'Bob',
+  books: ['War and peace', 'Romeo and Juliet'],
+  age: 26
+}, {
+  name: 'Alice',
+  books: ['The Lord of the Rings', 'The Shining'],
+  age: 18
+}];
+
+// allbooks - list which will contain all friends' books +
+// additional list contained in initialValue
+var allbooks = friends.reduce(function(accumulator, currentValue) {
+  return [...accumulator, ...currentValue.books];
+}, ['Alphabet']);
+
+// allbooks = [
+//   'Alphabet', 'Bible', 'Harry Potter', 'War and peace',
+//   'Romeo and Juliet', 'The Lord of the Rings',
+//   'The Shining'
+// ]
+ +

Duplikate in einem Array entfernen

+ +
let arr = [1, 2, 1, 2, 3, 5, 4, 5, 3, 4, 4, 4, 4];
+let result = arr.sort().reduce((accumulator, current) => {
+    const length = accumulator.length;
+    if (length === 0 || accumulator[length - 1] !== current) {
+        accumulator.push(current);
+    }
+    return accumulator;
+}, []);
+console.log(result); //[1,2,3,4,5]
+
+ +

Sequenzielle Abarbeitung von Promises

+ +
/**
+ * Runs promises from array of functions that can return promises
+ * in chained manner
+ *
+ * @param {array} arr - promise arr
+ * @return {Object} promise object
+ */
+function runPromiseInSequence(arr, input) {
+  return arr.reduce(
+    (promiseChain, currentFunction) => promiseChain.then(currentFunction),
+    Promise.resolve(input)
+  );
+}
+
+// promise function 1
+function p1(a) {
+  return new Promise((resolve, reject) => {
+    resolve(a * 5);
+  });
+}
+
+// promise function 2
+function p2(a) {
+  return new Promise((resolve, reject) => {
+    resolve(a * 2);
+  });
+}
+
+// function 3 - will wrapped in a resolved promise by .then()
+function f3(a) {
+  return a * 3;
+}
+
+// promise function 4
+function p4(a) {
+  return new Promise((resolve, reject) => {
+    resolve(a * 4);
+  });
+}
+
+const promiseArr = [p1, p2, f3, p4];
+runPromiseInSequence(promiseArr, 10)
+  .then(console.log);    // 1200
+
+ +

Funktionskomposition ermöglicht Pipelining

+ +
// Building-blocks to use for composition
+const double = x => x + x;
+const triple = x => 3 * x;
+const quadruple = x => 4 * x;
+
+// Function composition enabling pipe functionality
+const pipe = (...functions) => input => functions.reduce(
+    (acc, fn) => fn(acc),
+    input
+);
+
+// Composed functions for multiplication of specific values
+const multiply6 = pipe(double, triple);
+const multiply9 = pipe(triple, triple);
+const multiply16 = pipe(quadruple, quadruple);
+const multiply24 = pipe(double, triple, quadruple);
+
+// Usage
+multiply6(6); // 36
+multiply9(9); // 81
+multiply16(16); // 256
+multiply24(10); // 240
+
+ +

Mapfunktion mit reduce

+ +
if (!Array.prototype.map) {
+  Array.prototype.map = function(callback, thisArg) {
+    return this.reduce(function(mappedArray, currentValue, index, array) {
+      mappedArray[index] = callback.call(thisArg, currentValue, index, array);
+      return mappedArray;
+    }, []);
+  };
+}
+
+[1, 2, , 3].map(
+  (currentValue, index, array) => currentValue + index + array.length
+); // [5, 7, , 10]
+
+
+ +

Polyfill

+ +
// Production steps of ECMA-262, Edition 5, 15.4.4.21
+// Reference: http://es5.github.io/#x15.4.4.21
+// https://tc39.github.io/ecma262/#sec-array.prototype.reduce
+if (!Array.prototype.reduce) {
+  Object.defineProperty(Array.prototype, 'reduce', {
+    value: function(callback /*, initialValue*/) {
+      if (this === null) {
+        throw new TypeError( 'Array.prototype.reduce ' +
+          'called on null or undefined' );
+      }
+      if (typeof callback !== 'function') {
+        throw new TypeError( callback +
+          ' is not a function');
+      }
+
+      // 1. Let O be ? ToObject(this value).
+      var o = Object(this);
+
+      // 2. Let len be ? ToLength(? Get(O, "length")).
+      var len = o.length >>> 0;
+
+      // Steps 3, 4, 5, 6, 7
+      var k = 0;
+      var value;
+
+      if (arguments.length >= 2) {
+        value = arguments[1];
+      } else {
+        while (k < len && !(k in o)) {
+          k++;
+        }
+
+        // 3. If len is 0 and initialValue is not present,
+        //    throw a TypeError exception.
+        if (k >= len) {
+          throw new TypeError( 'Reduce of empty array ' +
+            'with no initial value' );
+        }
+        value = o[k++];
+      }
+
+      // 8. Repeat, while k < len
+      while (k < len) {
+        // a. Let Pk be ! ToString(k).
+        // b. Let kPresent be ? HasProperty(O, Pk).
+        // c. If kPresent is true, then
+        //    i.  Let kValue be ? Get(O, Pk).
+        //    ii. Let accumulator be ? Call(
+        //          callbackfn, undefined,
+        //          « accumulator, kValue, k, O »).
+        if (k in o) {
+          value = callback(value, o[k], k, o);
+        }
+
+        // d. Increase k by 1.
+        k++;
+      }
+
+      // 9. Return accumulator.
+      return value;
+    }
+  });
+}
+
+ +

Wenn es wirklich notwendig ist veraltete JavaScript-Umgebungen zu benutzen, die Object.defineProperty() nicht unterstützen, ist es besser Array.prototype nicht komplett zu ersetzen, weil man es nicht non-enumerable machen kann.

+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + +
SpezificationStatusKommentar
{{SpecName('ES5.1', '#sec-15.4.4.21', 'Array.prototype.reduce()')}}{{Spec2('ES5.1')}}Initiale Definition. Implementiert in JavaScript 1.8.
{{SpecName('ES6', '#sec-array.prototype.reduce', 'Array.prototype.reduce()')}}{{Spec2('ES6')}}
{{SpecName('ESDraft', '#sec-array.prototype.reduce', 'Array.prototype.reduce()')}}{{Spec2('ESDraft')}}
+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.Array.reduce")}}

+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/array/reduceright/index.html b/files/de/web/javascript/reference/global_objects/array/reduceright/index.html new file mode 100644 index 0000000000..dfcb7e3a0b --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/array/reduceright/index.html @@ -0,0 +1,334 @@ +--- +title: Array.prototype.reduceRight() +slug: Web/JavaScript/Reference/Global_Objects/Array/ReduceRight +tags: + - Array + - ECMAScript 5 + - JavaScript + - Method + - Prototype + - polyfill +translation_of: Web/JavaScript/Reference/Global_Objects/Array/ReduceRight +--- +
{{JSRef}}
+ +

Die reduceRight() Methode wendet eine Funktion gegen einen Akkumulator auf jeden Wert des Arrays (von rechts nach links) auf und reduziert es um einen einzelnen Wert.

+ +
{{EmbedInteractiveExample("pages/js/array-reduce-right.html")}}
+ + + +

Siehe auch {{jsxref("Array.prototype.reduce()")}} für links nach rechts Reduzierung.

+ +

Syntax

+ +
arr.reduceRight(callback[, initialValue])
+ +

Parameter

+ +
+
callback
+
Funktion, welche für jeden Wert im Array aufgerufen wird und vier Argumente hat: +
+
previousValue
+
Der zuvor im letzten Aufruf des Rückrufs zurückgegebene Wert, oder initialValue, wenn unterstützt. (siehe unten)
+
currentValue
+
Das derzeitige zu verarbeitende Element in dem Array.
+
index{{optional_inline}}
+
Der Index des derzeitigen zu verarbeitenden Elements in dem Array.
+
array{{optional_inline}}
+
Das Arrayobjekt, in dem das Element enthalten ist.
+
+
+
initialValue{{optional_inline}}
+
Objekt, welches beim ersten Aufruf der callback Funktion initial benutzt wird. Wenn kein Initialwert angegeben ist wird das letzte Element aus dem Array benutzt. Der aufruf auf einem leeren Array ohne angabe von initialValue führt zu einem Fehler.
+
+ +

Rückgabewert

+ +

Der Wert, der aus der Reduktion resultiert.

+ +

Beschreibung

+ +

reduceRight Führt die Rückruffunktion einmal für jedes im Array vorhandene Element aus, ohne Löcher im Array, wobei vier Argumente empfangen werden: der Initialwert (initialValue) (oder Wert des vorherigen callback Aufrufes), der Wert des derzeitigen Elements, der derzeitige Index, und das Array auf welches der Durchlauf stattfindet.

+ +

Der Aufruf des reduceRight callback würde ungefähr so aussehen:

+ +
array.reduceRight(function(previousValue, currentValue, index, array) {
+  // ...
+});
+
+ +

Wenn die Funktion das erste Mal ausgeführt wird, kann der vorherige Wert  (previousValue)  und der derzeitige Wert (currentValue) eines von zwei Werten sein. Wenn ein Initialwert (initialValue) der Callback-Funktion zu reduceRight mitgegeben wird, dann wird der previousValue und der initialValue gleich dem initialValue in dem Array. Wenn kein initialValue  mitgegeben wird, dann ist der previousValue gleich dem Wert in dem Array und currentValue wird gleich zu dem geich dem zweiten bis letzten Wert.

+ +

Wenn das Array leer ist und kein initialValue angegeben ist wird ein {{jsxref("TypeError")}} erzeugt. Wenn das Array nur ein Element hat (die Position ist egal) und kein initialValue angegeben ist oder wenn initialValue angegeben ist und das Array leer ist, wird der einzelne Wert zurückgegeben ohne callback aufzurufen.

+ +

Einige Beispieldurchläufe der Funktion würden wie folgt aussehen:

+ +
[0, 1, 2, 3, 4].reduceRight(function(previousValue, currentValue, index, array) {
+  return previousValue + currentValue;
+});
+
+ +

Die callback Funktion wird vier mal aufgerufen. Die Parameter und der Rückgabewert dieser Funktion sind wie folgt:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
callbackpreviousValuecurrentValueindexarrayRückgabewert
1. Aufruf433[0, 1, 2, 3, 4]7
2. Aufruf722[0, 1, 2, 3, 4]9
3. Aufruf911[0, 1, 2, 3, 4]10
4. Aufruf1000[0, 1, 2, 3, 4]10
+ +

Der Wert, der von reduceRight zurückgegeben wird, ist der Rückgabewert der letzen callback Funktion (10).

+ +

Wenn ein initialValue angegeben wird, sieht das Resultat folgendermaßen aus:

+ +
[0, 1, 2, 3, 4].reduceRight(function(previousValue, currentValue, index, array) {
+  return previousValue + currentValue;
+}, 10);
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
callbackpreviousValuecurrentValueindexarrayRückgabewert
1. Aufruf1044[0, 1, 2, 3, 4]14
2. Aufruf1433[0, 1, 2, 3, 4]17
3. Aufruf1722[0, 1, 2, 3, 4]19
4. Aufruf1911[0, 1, 2, 3, 4]20
5. Aufruf2000[0, 1, 2, 3, 4]20
+ +

Der von reduceRight zurückgegebene Wert ist in diesem Fall 20.

+ +

Beispiele

+ +

Alle Elemente in einem Array summieren

+ +
var sum = [0, 1, 2, 3].reduceRight(function(a, b) {
+  return a + b;
+});
+// sum is 6
+
+ +

Ein Array von Arrays in ein flaches Array schreiben

+ +
var flattened = [[0, 1], [2, 3], [4, 5]].reduceRight(function(a, b) {
+    return a.concat(b);
+}, []);
+// flattened is [4, 5, 2, 3, 0, 1]
+
+ +

Eine Liste von asynchronen Funktionen mit Callbacks hintereinander laufen lassen, so dass das Resultat der vorherigen der nächsten übergeben wird

+ +
const waterfall = (...functions) => (callback, ...args) =>
+  functions.reduceRight(
+    (composition, fn) => (...results) => fn(composition, ...results),
+    callback
+  )(...args);
+
+const randInt = max => Math.floor(Math.random() * max)
+
+const add5 = (callback, x) => {
+  setTimeout(callback, randInt(1000), x + 5);
+};
+const mult3 = (callback, x) => {
+  setTimeout(callback, randInt(1000), x * 3);
+};
+const sub2 = (callback, x) => {
+  setTimeout(callback, randInt(1000), x - 2);
+};
+const split = (callback, x) => {
+  setTimeout(callback, randInt(1000), x, x);
+};
+const add = (callback, x, y) => {
+  setTimeout(callback, randInt(1000), x + y);
+};
+const div4 = (callback, x) => {
+  setTimeout(callback, randInt(1000), x / 4);
+};
+
+const computation = waterfall(add5, mult3, sub2, split, add, div4);
+computation(console.log, 5) // -> 14
+
+// same as:
+
+const computation2 = (input, callback) => {
+  const f6 = x=> div4(callback, x);
+  const f5 = (x, y) => add(f6, x, y);
+  const f4 = x => split(f5, x);
+  const f3 = x => sub2(f4, x);
+  const f2 = x => mult3(f3, x);
+  add5(f2, input);
+}
+ +

Unterschied zwischen reduce und reduceRight

+ +
var a = ['1', '2', '3', '4', '5'];
+var left  = a.reduce(function(prev, cur)      { return prev + cur; });
+var right = a.reduceRight(function(prev, cur) { return prev + cur; });
+
+console.log(left);  // "12345"
+console.log(right); // "54321"
+ +

Polyfill

+ +

reduceRight wurde im ECMA-262 Standard in der 5. Edition hinzugefügt. Aus diesem Grund ist es in manchen Implementierungen nicht vorhanden. Dieses Problem kann beheben werden indem folgender Quelltext am Anfang des Skripts eingefügt werden, wodurch reduceRight auch in solchen Implementierungen unterstützt werden kann.

+ +
// Production steps of ECMA-262, Edition 5, 15.4.4.22
+// Reference: http://es5.github.io/#x15.4.4.22
+if ('function' !== typeof Array.prototype.reduceRight) {
+  Array.prototype.reduceRight = function(callback /*, initialValue*/) {
+    'use strict';
+    if (null === this || 'undefined' === typeof this) {
+      throw new TypeError('Array.prototype.reduce called on null or undefined');
+    }
+    if ('function' !== typeof callback) {
+      throw new TypeError(callback + ' is not a function');
+    }
+    var t = Object(this), len = t.length >>> 0, k = len - 1, value;
+    if (arguments.length >= 2) {
+      value = arguments[1];
+    } else {
+      while (k >= 0 && !(k in t)) {
+        k--;
+      }
+      if (k < 0) {
+        throw new TypeError('Reduce of empty array with no initial value');
+      }
+      value = t[k--];
+    }
+    for (; k >= 0; k--) {
+      if (k in t) {
+        value = callback(value, t[k], k, t);
+      }
+    }
+    return value;
+  };
+}
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES5.1', '#sec-15.4.4.22', 'Array.prototype.reduceRight')}}{{Spec2('ES5.1')}}Initial definition. Implemented in JavaScript 1.8.
{{SpecName('ES6', '#sec-array.prototype.reduceright', 'Array.prototype.reduceRight')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-array.prototype.reduceright', 'Array.prototype.reduceRight')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.Array.reduceRight")}}

+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/array/reverse/index.html b/files/de/web/javascript/reference/global_objects/array/reverse/index.html new file mode 100644 index 0000000000..84560faacb --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/array/reverse/index.html @@ -0,0 +1,92 @@ +--- +title: Array.prototype.reverse() +slug: Web/JavaScript/Reference/Global_Objects/Array/reverse +tags: + - Array + - JavaScript + - Method + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Array/reverse +--- +
{{JSRef}}
+ +

Die reverse() Methode kehrt die Reihenfolge der Arrayelemente in-place um. Das erste Element wird zum letzen und das letzte wird zum ersten.

+ +
{{EmbedInteractiveExample("pages/js/array-reverse.html")}}
+ + + +

Syntax

+ +
arr.reverse()
+ +

Rückgabewert

+ +

Das umgedrehte Array.

+ +

Beschreibung

+ +

Die reverse Methode kehrt die Reihenfolge der Elemente des angegebenen Arrays in-place um, ändert das Array und gibt eine Referenz zu diesem zurück.

+ +

Beispiele

+ +

Elemente in einem Array umkehren

+ +

Das folgende Beispiel erzeugt ein Array a mit 3 Elementen und kehrt die Reihenfolge des Arrays um. Der Aufruf von reverse() gibt eine Referenz zum umgekehrten Array a zurück.

+ +
var a = [1, 2, 3];
+
+console.log(a) // [1, 2, 3]
+
+a.reverse();
+
+console.log(a) // [3, 2, 1]
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES1')}}{{Spec2('ES1')}}Initiale Definition. Implementiert in JavaScript 1.1.
{{SpecName('ES5.1', '#sec-15.4.4.8', 'Array.prototype.reverse')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-array.prototype.reverse', 'Array.prototype.reverse')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-array.prototype.reverse', 'Array.prototype.reverse')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.Array.reverse")}}

+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/array/shift/index.html b/files/de/web/javascript/reference/global_objects/array/shift/index.html new file mode 100644 index 0000000000..e576e1bfec --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/array/shift/index.html @@ -0,0 +1,111 @@ +--- +title: Array.prototype.shift() +slug: Web/JavaScript/Reference/Global_Objects/Array/shift +tags: + - Array + - JavaScript + - Method + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Array/shift +--- +
{{JSRef}}
+ +

Die Methode shift() entfernt das erste Element eines Arrays und gibt dieses Element zurück. Diese Methode verändert die Länge des Arrays.

+ +
{{EmbedInteractiveExample("pages/js/array-shift.html")}}
+ + + +

Syntax

+ +
arr.shift()
+ +

Rückgabewert

+ +

Das vom Array entfernte Element; {{jsxref("undefined")}} wenn das Array leer ist.

+ +

Beschreibung

+ +

Die Methode shift entfernt das Element an der nullten Stelle, verschiebt die übrigen Elemente um einen Index nach unten und gibt den Wert des entfernten Elementes zurück. Ist die {{jsxref("Array.length", "length")}} Eigenschaft gleich 0, wird {{jsxref("undefined")}} zurückgegeben.

+ +

shift ist absichtlich generisch; diese Methode kann auf Array ähnlichen Objekten mit {{jsxref("Function.call", "call", "", 1)}} oder {{jsxref("Function.apply", "applied", "", 1)}} genutzt werden. Objekte, die keine length Eigenschaft enthalten, die die letzte in einer Reihe von aufeinanderfolgenden, nullbasierten numerischen Eigenschaften widerspiegelt, verhalten sich möglicherweise nicht in einer sinnvollen Weise.

+ +

Beispiele

+ +

Ein Element eines Arrays entfernen

+ +

Das folgende Skript zeigt das Array myFish bevor und nachdem das erste Element dieses Arrays entfernt wurde. Anschließend wird das entfernte Element angezeigt:

+ +
var myFish = ['angel', 'clown', 'mandarin', 'surgeon'];
+
+console.log('myFish before: ' + myFish);
+// myFish before: ['angel', 'clown', 'mandarin', 'surgeon']
+
+var shifted = myFish.shift();
+
+console.log('myFish after: ' + myFish);
+// myFish after: ['clown', 'mandarin', 'surgeon']
+
+console.log('Removed this element: ' + shifted);
+// Removed this element: angel
+ +

Einsatz von shift() in einer while-Schleife

+ +

Die shift() Methode wird oft in der Bedingung in einer while Schleife verwendet. Im folgenden Beispiel wird in jeder Iteration das nächste Element vom Array entfernt, bis das Array leer ist.

+ +
var names = ["Andrew", "Edward", "Paul", "Chris" ,"John"];
+
+while( (i = names.shift()) !== undefined ) {
+    console.log(i);
+}
+// Andrew, Edward, Paul, Chris, John
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES3')}}{{Spec2('ES3')}}Initiale Definition. Implementiert in JavaScript 1.2.
{{SpecName('ES5.1', '#sec-15.4.4.9', 'Array.prototype.shift')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-array.prototype.shift', 'Array.prototype.shift')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-array.prototype.shift', 'Array.prototype.shift')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.Array.shift")}}

+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/array/slice/index.html b/files/de/web/javascript/reference/global_objects/array/slice/index.html new file mode 100644 index 0000000000..75ad6c4a25 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/array/slice/index.html @@ -0,0 +1,244 @@ +--- +title: Array.prototype.slice() +slug: Web/JavaScript/Reference/Global_Objects/Array/slice +tags: + - Array + - JavaScript + - Method + - Prototype + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Array/slice +--- +
{{JSRef}}
+ +

Die slice() Methode schreibt eine flache Kopie von einem Teil des Arrays in ein neues Array-Objekt von begin bis end (end nicht enthalten). Das originale Array wird nicht verändert.

+ +
{{EmbedInteractiveExample("pages/js/array-slice.html")}}
+ + + +

Syntax

+ +
arr.slice([begin[, end]])
+ +

Parameter

+ +
+
begin{{optional_inline}}
+
Null-basierter Index, an welcher die Extraktion beginnt.
+
Bei einem negativen Index kennzeichnet begin einen Versatz vom Ende der Sequenz. slice(-2) extrahiert die letzten zwei Elemente der Sequenz.
+
Wenn begin undefiniert ist, beginnt slice bei Index 0.
+
Wenn begin größer als die Länge der Sequenz ist, wird ein leeres Array zurückgegeben.
+
end {{optional_inline}}
+
Null-basierter Index bevor die Extraktion endet. slice extrahiert bis zu, aber nicht inklusive end.
+
slice(1,4) extrahiert vom zweiten bis zum vierten Element (Elemente sind indexiert als 1, 2 und 3).
+
Bei einem negativen Index kennzeichnet end einen Versatz vom Ende der Sequenz. slice(2, -1) extrahiert vom dritten bis zum vorletzten Element der Sequenz.
+
Wenn auf end weggelassen wird, extrahiert slice bis zum Ende der Sequenz (arr.length).
+
Wenn end größer als die Länge der Sequenz ist, extrahiert slice bis zum Ende der Sequenz (arr.length)
+
+ +

Rückgabewert

+ +

Ein neues Array, welches die extrahierten Elemente enthält.

+ +

Beschreibung

+ +

slice verändert das originale Array nicht. Es gibt eine Schattenkopie der Elemente des Arrays zurück. Elemente des original Arrays werden folgendermaßen in das zurückgegeben Array kopiert:

+ + + +

Wenn ein neues Element zu einem Array hinzugefügt wird, hat es keine Auswirkung auf das andere Array.

+ +

Beispiel

+ +

Gibt einen Teil eines existierenden Arrays zurück.

+ +
var fruits = ['Banana', 'Orange', 'Lemon', 'Apple', 'Mango'];
+var citrus = fruits.slice(1, 3);
+
+// fruits enthält  ['Banana', 'Orange', 'Lemon', 'Apple', 'Mango']
+// citrus enthält ['Orange','Lemon']
+
+ +

Einsatz von slice

+ +

Im folgenden Beispiel erzeugt slice ein neues Array, newCar, von myCar.
+ Beide haben eine Referenz zu dem Objekt myHonda. Wenn sich die Farbe von myHonda zu lila ändert, dann ist die Änderung in beiden Arrays sichtbar.

+ +
// Using slice, create newCar from myCar.
+var myHonda = { color: 'red', wheels: 4, engine: { cylinders: 4, size: 2.2 } };
+var myCar = [myHonda, 2, 'cherry condition', 'purchased 1997'];
+var newCar = myCar.slice(0, 2);
+
+// Display the values of myCar, newCar, and the color of myHonda
+//  referenced from both arrays.
+console.log('myCar = ' + myCar.toSource());
+console.log('newCar = ' + newCar.toSource());
+console.log('myCar[0].color = ' + myCar[0].color);
+console.log('newCar[0].color = ' + newCar[0].color);
+
+// Change the color of myHonda.
+myHonda.color = 'purple';
+console.log('The new color of my Honda is ' + myHonda.color);
+
+// Display the color of myHonda referenced from both arrays.
+console.log('myCar[0].color = ' + myCar[0].color);
+console.log('newCar[0].color = ' + newCar[0].color);
+
+ +

Dieses Skript schreibt:

+ +
myCar = [{color:'red', wheels:4, engine:{cylinders:4, size:2.2}}, 2,
+         'cherry condition', 'purchased 1997']
+newCar = [{color:'red', wheels:4, engine:{cylinders:4, size:2.2}}, 2]
+myCar[0].color = red
+newCar[0].color = red
+The new color of my Honda is purple
+myCar[0].color = purple
+newCar[0].color = purple
+
+ +

Array-ähnliche Objekte

+ +

Die slice Methode kann auch verwendete werden, um Array-ähnliche Objekte bzw. Collections in Arrays zu konvertieren. Man muss nur die Methode an das Objekt binden.
+ Die {{jsxref("Functions/arguments", "arguments")}} Variable innerhalb einer Funktion ist ein Beispiel für ein Array-ähnliches Objekte.

+ +
function list() {
+  return Array.prototype.slice.call(arguments);
+}
+
+var list1 = list(1, 2, 3); // [1, 2, 3]
+
+ +

Das Binden von Methoden funktioniert mit der .call Funktion von {{jsxref("Function.prototype")}} und der Aufruf kann reduziert werden zu [].slice.call(arguments) anstatt Array.prototype.slice.call. Mit der {{jsxref("Function.prototype.bind", "bind")}} Funktion kann der Aufruf immer vereinfacht werden.

+ +
var unboundSlice = Array.prototype.slice;
+var slice = Function.prototype.call.bind(unboundSlice);
+
+function list() {
+  return slice(arguments);
+}
+
+var list1 = list(1, 2, 3); // [1, 2, 3]
+
+ +

Cross-Browser-Verhalten

+ +

Obwohl host Objekte (wie das DOM Objekt) laut Spezifikation nicht dem Mozilla Verhalten beim Konvertieren mit Array.prototype.slice folgen muss und IE < 9 dies auch nicht tut, erlauben Versionen ab IE 9 dieses. “shimming” kann eine sicheres cross-browser Verhalten ermöglichen. So lange andere moderne Browser weiterhin dieses Verhalten unterstützen, sowie zur Zeit IE, Mozilla, Chrome, Safari und Opera es tun, werden Entwickler beim Lesen von (DOM unterstützendem) slice Code, basierend auf diesem Schema, von der Semantik nicht in die Irre geführt.Sie können mit Sicherheit auf die Semantik vertrauen um das de facto Standard Verhalten sicherzustellen. (Dieser shim ermöglicht es auch, dass IE mit dem zweiten Argument von slice() ein explizites {{jsxref("null")}}/{{jsxref("undefined")}}) als Wert verwendet. Bei älteren Versionen des IE war dies nicht erlaubt, jedoch funktioniert es bei allen modernen Browsern inklusive IE >= 9.)

+ +
/**
+ * Shim for "fixing" IE's lack of support (IE < 9) for applying slice
+ * on host objects like NamedNodeMap, NodeList, and HTMLCollection
+ * (technically, since host objects have been implementation-dependent,
+ * at least before ES6, IE hasn't needed to work this way).
+ * Also works on strings, fixes IE < 9 to allow an explicit undefined
+ * for the 2nd argument (as in Firefox), and prevents errors when
+ * called on other DOM objects.
+ */
+(function () {
+  'use strict';
+  var _slice = Array.prototype.slice;
+
+  try {
+    // Can't be used with DOM elements in IE < 9
+    _slice.call(document.documentElement);
+  } catch (e) { // Fails in IE < 9
+    // This will work for genuine arrays, array-like objects,
+    // NamedNodeMap (attributes, entities, notations),
+    // NodeList (e.g., getElementsByTagName), HTMLCollection (e.g., childNodes),
+    // and will not fail on other DOM objects (as do DOM elements in IE < 9)
+    Array.prototype.slice = function(begin, end) {
+      // IE < 9 gets unhappy with an undefined end argument
+      end = (typeof end !== 'undefined') ? end : this.length;
+
+      // For native Array objects, we use the native slice function
+      if (Object.prototype.toString.call(this) === '[object Array]'){
+        return _slice.call(this, begin, end);
+      }
+
+      // For array like object we handle it ourselves.
+      var i, cloned = [],
+        size, len = this.length;
+
+      // Handle negative value for "begin"
+      var start = begin || 0;
+      start = (start >= 0) ? start : Math.max(0, len + start);
+
+      // Handle negative value for "end"
+      var upTo = (typeof end == 'number') ? Math.min(end, len) : len;
+      if (end < 0) {
+        upTo = len + end;
+      }
+
+      // Actual expected size of the slice
+      size = upTo - start;
+
+      if (size > 0) {
+        cloned = new Array(size);
+        if (this.charAt) {
+          for (i = 0; i < size; i++) {
+            cloned[i] = this.charAt(start + i);
+          }
+        } else {
+          for (i = 0; i < size; i++) {
+            cloned[i] = this[start + i];
+          }
+        }
+      }
+
+      return cloned;
+    };
+  }
+}());
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES3')}}{{Spec2('ES3')}}Initiale Definition. Implementiert in JavaScript 1.2.
{{SpecName('ES5.1', '#sec-15.4.4.10', 'Array.prototype.slice')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-array.prototype.slice', 'Array.prototype.slice')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-array.prototype.slice', 'Array.prototype.slice')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.Array.slice")}}

+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/array/some/index.html b/files/de/web/javascript/reference/global_objects/array/some/index.html new file mode 100644 index 0000000000..0fe959b0d7 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/array/some/index.html @@ -0,0 +1,209 @@ +--- +title: Array.prototype.some() +slug: Web/JavaScript/Reference/Global_Objects/Array/some +tags: + - Array + - ECMAScript5 + - JavaScript + - Method + - Prototype + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Array/some +--- +
{{JSRef}}
+ +

Die Methode some() überprüft ob mindestens ein Element des Arrays den als Funktion übergebenen Kriterien entspricht.

+ +
+

Hinweis: Diese Methode gibt false für jede Bedingung auf einem leeren Array zurück.

+
+ +
{{EmbedInteractiveExample("pages/js/array-some.html")}}
+ + + +

Syntax

+ +
arr.some(callback[, thisArg])
+ +

Parameter

+ +
+
callback
+
Funktion die jedes Element überprüft, nimmt drei Argumente entgegen: +
+
currentValue
+
Das aktuell zu verarbeitende Element des Arrays.
+
index{{Optional_inline}}
+
Der Index des aktuell zu verarbeitenden Elementes im Array.
+
array{{Optional_inline}}
+
Die Arrayinstanz auf welcher die some() Methode aufgerufen wurde.
+
+
+
thisArg{{Optional_inline}}
+
Wert der über das this Schüsselwort innerhalb von callback verfügbar ist.
+
+ +

Rückgabewert

+ +

true wenn die callback Methode ein positives ({{Glossary("truthy")}}) Ergebnis für eines der Elemente im array ermittelt hat; Andernfalls, false.

+ +

Beschreibung

+ +

some() führt die callback Funktion einmal für jedes Element innerhalb des Arrays aus, bis ein Element gefunden wird, bei dem callback einen truthy Wert (ein Wert der durch die Konvertierung zu boolean true ergibt) zurückgibt. Wird ein solches Element gefunden, gibt some() sofort true zurück. callback wird nur für Elemente des Arrays ausgeführt, die einen zugewiesenen Wert haben; Für undefinierte oder gelöschte Elemente des Arrays wird callback nicht ausgeführt.

+ +

callback wird mit drei Argumenten aufgerufen: Dem Wert des Elementes, dem Index des Elementes und dem zugrundeliegenden Array.

+ +

WIrd ein thisArg Parameter an die some() Methode übergeben, wird dieser als this bei der callback Funtion benutzt. Andernfalls wird der Wert {{jsxref("undefined")}} als this benutzt. Der tatsächliche Wert von this wird entsprechend der generellen Regeln zur Belegung des this Schlüsselwortes innerhalb von Funktionen gesetzt.

+ +

some() verändert nicht das Array auf dem die Methode aufgerufen wurde.

+ +

Die von some() zu verarbeitenden Elemente werden vor dem ersten Aufruf von callback ermittelt. Elemente, die nach dem Aufruf von some() zum Array hinzugefügt werden, werden nicht mit callback aufgerufen. Wird ein noch nicht besuchtes Element des Arrays durch callback geändert, wird sein Wert, der an callback übermittelt wird, der Wert zu dem Zeitpunkt, zu dem some() den Index besucht, sein. Wird ein Element aus dem Array gelöscht, wird es nicht betrachtet.

+ +

Beispiele

+ +

Werte eines Arrays überprüfen

+ +

Die folgenden Beispiele prüfen ob es ein Element größer als 10 im Array gibt.

+ +
function isBiggerThan10(element, index, array) {
+  return element > 10;
+}
+
+[2, 5, 8, 1, 4].some(isBiggerThan10);  // false
+[12, 5, 8, 1, 4].some(isBiggerThan10); // true
+
+ +

Werte eines Arrays mit arrow functions überprüfen

+ +

Arrow Funktionen ermöglichen eine kürzere Schreibweise für die gleiche Logik.

+ +
[2, 5, 8, 1, 4].some(x => x > 10);  // false
+[12, 5, 8, 1, 4].some(x => x > 10); // true
+
+ +

Prüfen ob ein Element in einem Array existiert

+ +

Um die Methode  includes() nachzuahmen, gibt  die folgende Funktion true zurück, wenn das Element im Array existiert:

+ +
var fruits = ['apple', 'banana', 'mango', 'guava'];
+
+function checkAvailability(arr, val) {
+  return arr.some(function(arrVal) {
+    return val === arrVal;
+  });
+}
+
+checkAvailability(fruits, 'kela');   // false
+checkAvailability(fruits, 'banana'); // true
+ +

Prüfen ob ein Element in einem Array existiert mit einer arrow function

+ +
var fruits = ['apple', 'banana', 'mango', 'guava'];
+
+function checkAvailability(arr, val) {
+  return arr.some(arrVal => val === arrVal);
+}
+
+checkAvailability(fruits, 'kela');   // false
+checkAvailability(fruits, 'banana'); // true
+ +

Jeden Wert in einen boolschen Wert konvertieren

+ +
var TRUTHY_VALUES = [true, 'true', 1];
+
+function getBoolean(a) {
+  'use strict';
+
+  var value = a;
+
+  if (typeof value === 'string') {
+    value = value.toLowerCase().trim();
+  }
+
+  return TRUTHY_VALUES.some(function(t) {
+    return t === value;
+  });
+}
+
+getBoolean(false);   // false
+getBoolean('false'); // false
+getBoolean(1);       // true
+getBoolean('true');  // true
+ +

Polyfill

+ +

some() wurde im Rahmen des ECMA-262 Standards in der 5. Edition hinzugefügt. Daher kann es sein, dass es nicht in allen Implementierungen des Standards enthalten ist. Diese Problem kann behoben werden, indem folgenden Quelltext vor Ihren Skripten eingefügt wird, wodurch Sie die some() Methode in Ihrem Programmcode verwenden können. Die nachfolgende Implementierung ist eine exakte Abdeckung der ECMA-262 Spezifikation in der 5. Edition, basierend auf der Annahme dass {{jsxref("Object")}} und {{jsxref("TypeError")}} Originalwerte aufweisen und dass fun.call den Originalwert von {{jsxref("Function.prototype.call()")}} liefert.

+ +
// Production steps of ECMA-262, Edition 5, 15.4.4.17
+// Reference: http://es5.github.io/#x15.4.4.17
+if (!Array.prototype.some) {
+  Array.prototype.some = function(fun/*, thisArg*/) {
+    'use strict';
+
+    if (this == null) {
+      throw new TypeError('Array.prototype.some called on null or undefined');
+    }
+
+    if (typeof fun !== 'function') {
+      throw new TypeError();
+    }
+
+    var t = Object(this);
+    var len = t.length >>> 0;
+
+    var thisArg = arguments.length >= 2 ? arguments[1] : void 0;
+    for (var i = 0; i < len; i++) {
+      if (i in t && fun.call(thisArg, t[i], i, t)) {
+        return true;
+      }
+    }
+
+    return false;
+  };
+}
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES5.1', '#sec-15.4.4.17', 'Array.prototype.some')}}{{Spec2('ES5.1')}}Initiale Definition. Implementiert in JavaScript 1.6.
{{SpecName('ES6', '#sec-array.prototype.some', 'Array.prototype.some')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-array.prototype.some', 'Array.prototype.some')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.Array.some")}}

+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/array/sort/index.html b/files/de/web/javascript/reference/global_objects/array/sort/index.html new file mode 100644 index 0000000000..a59d8ff2c6 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/array/sort/index.html @@ -0,0 +1,264 @@ +--- +title: Array.prototype.sort() +slug: Web/JavaScript/Reference/Global_Objects/Array/sort +tags: + - Array + - JavaScript + - Method + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Array/sort +--- +
{{JSRef}}
+ +

Die sort() Methode sortiert die Elemente eines Arrays {{interwiki("wikipedia","in-place")}} und gibt das Array zurück. Standardmäßig werden alle Elemente in Strings umgewandelt und dann anhand ihrer UTF-16 Codepoints miteinander verglichen.

+ +

Die Zeit- und Speicherkomplexität des Sortierens kann nicht garantiert werden, weil sie implementierungsabhängig ist.

+ +
{{EmbedInteractiveExample("pages/js/array-sort.html")}}
+ + + +

Syntax

+ +
arr.sort([compareFunction])
+
+ +

Parameter

+ +
+
compareFunction {{optional_inline}}
+
Gibt eine Funktion an, die die Sortierreihenfolge definiert. Wenn nicht angegeben, wird das Array nach dem Unicode-Codepoint jedes Zeichens entsprechend der Stringumwandlung jedes Elements sortiert. +
+
firstEl
+
Das erste Element zum Vergleich.
+
secondEl
+
Das zweite Element zum Vergleich.
+
+
+
+ +

Rückgabewert

+ +

Das sortierte Array. Beachten Sie, dass das Array {{interwiki("wikipedia","in-place")}} sortiert und keine Kopie angelegt wird.

+ +

Beschreibung

+ +

Wenn compareFunction nicht angegeben wird, werden alle Arrayelemente, die nicht undefined sind, sortiert indem sie in Strings konvertiert werden und in UTF-16-Code-Unit-Reihenfolge verglichen werden. Zum Beispiel steht "banana" vor "cherry". Bei einer numerischen Sortierung kommt 9 vor 80, aber weil Zahlen in Strings konvertiert werden, kommt "80" in Unicode vor "9". Alle Elemente die undefined sind werden ans Ende des Arrays sortiert.

+ +
+

Hinweis: In UTF-16 werden Unicode-Zeichen über \uFFFF als zwei Ersatzcodeeinheiten im Bereich \uD800 - \ uDFFF codiert. Der Wert jeder Codeeinheit wird für den Vergleich gesondert berücksichtigt. Daher wird das durch das Ersatzpaar \uD655 \uDE55 gebildete Zeichen vor dem Zeichen \uFF3A sortiert.

+
+ +

Wenn compareFunction angegeben wird, werden alle Arrayelemente, die nicht undefined sind, nach dem Rückgabewert der Vergleichsfunktion sortiert (alle Elemente die undefined sind werden ans Ende des Arrays sortiert, ohne Aufruf von compareFunction). Wenn a und b zwei zu vergleichende Elemente sind, gilt Folgendes:

+ + + +

Die Vergleichsfunktion hat die Form:

+ +
function compare(a, b) {
+  if (a ist kleiner als b anhand von Sortierkriterien) {
+    return -1;
+  }
+  if (a ist größer als b anhand der Sortierkriterien) {
+    return 1;
+  }
+  // a muss gleich b sein
+  return 0;
+}
+
+ +

Um Nummern anstatt Strings zu vergleichen, kann die Vergleichsfunktion einfach b von a subtrahieren. Die folgende Funktion sortiert ein Array aufsteigend (sofern kein Infinity und NaN enthalten):

+ +
function compareNumbers(a, b) {
+  return a - b;
+}
+
+ +

Die sort Methode kann bequem mit {{jsxref("Operators/function", "Funktionsausdrücken", "", 1)}} benutzt werden:

+ +
var numbers = [4, 2, 5, 1, 3];
+numbers.sort(function(a, b) {
+  return a - b;
+});
+console.log(numbers);
+
+// [1, 2, 3, 4, 5]
+
+ +

ES2015 bietet {{jsxref("Functions/Arrow_functions", "Pfeilfunktionen", "", 1)}} mit noch kürzerer Syntax.

+ +
let numbers = [4, 2, 5, 1, 3];
+numbers.sort((a, b) => a - b);
+console.log(numbers);
+
+// [1, 2, 3, 4, 5]
+ +

Objekte können anhand der Werte eines ihrer Eigenschaften sortiert werden.

+ +
var items = [
+  { name: 'Edward', value: 21 },
+  { name: 'Sharpe', value: 37 },
+  { name: 'And', value: 45 },
+  { name: 'The', value: -12 },
+  { name: 'Magnetic', value: 13 },
+  { name: 'Zeros', value: 37 }
+];
+
+// Sortieren nach Wert
+items.sort(function (a, b) {
+  return a.value - b.value;
+});
+
+// Sortieren nach Wert
+items.sort(function(a, b) {
+  var nameA = a.name.toUpperCase(); // Groß-/Kleinschreibung ignorieren
+  var nameB = b.name.toUpperCase(); // Groß-/Kleinschreibung ignorieren
+  if (nameA < nameB) {
+    return -1;
+  }
+  if (nameA > nameB) {
+    return 1;
+  }
+
+  // Namen müssen gleich sein
+  return 0;
+});
+ +

Beispiele

+ +

Erstellen, Anzeigen und Sortieren eines Arrays

+ +

Im folgenden Beispiel werden vier Arrays erstellt, das ursprüngliche Array angezeigt, danach die sortierten Arrays. Die numerischen Arrays werden erst ohne, dann mit Vergleichsfunktion sortiert.

+ +
var stringArray = ['Blue', 'Humpback', 'Beluga'];
+var numericStringArray = ['80', '9', '700'];
+var numberArray = [40, 1, 5, 200];
+var mixedNumericArray = ['80', '9', '700', 40, 1, 5, 200];
+
+function compareNumbers(a, b) {
+  return a - b;
+}
+
+console.log('stringArray:', stringArray.join());
+console.log('Sorted:', stringArray.sort());
+
+console.log('numberArray:', numberArray.join());
+console.log('Sorted without a compare function:', numberArray.sort());
+console.log('Sorted with compareNumbers:', numberArray.sort(compareNumbers));
+
+console.log('numericStringArray:', numericStringArray.join());
+console.log('Sorted without a compare function:', numericStringArray.sort());
+console.log('Sorted with compareNumbers:', numericStringArray.sort(compareNumbers));
+
+console.log('mixedNumericArray:', mixedNumericArray.join());
+console.log('Sorted without a compare function:', mixedNumericArray.sort());
+console.log('Sorted with compareNumbers:', mixedNumericArray.sort(compareNumbers));
+ +

Dieses Beispiel erzeugt die folgende Ausgabe. Wie die Ausgabe zeigt, werden Zahlen bei Verwendung einer Vergleichsfunktion korrekt sortiert, ob es sich um Zahlen oder numerische Strings handelt.

+ +
stringArray: Blue,Humpback,Beluga
+Sorted: Beluga,Blue,Humpback
+
+numberArray: 40,1,5,200
+Sorted without a compare function: 1,200,40,5
+Sorted with compareNumbers: 1,5,40,200
+
+numericStringArray: 80,9,700
+Sorted without a compare function: 700,80,9
+Sorted with compareNumbers: 9,80,700
+
+mixedNumericArray: 80,9,700,40,1,5,200
+Sorted without a compare function: 1,200,40,5,700,80,9
+Sorted with compareNumbers: 1,5,9,40,80,200,700
+ +

Sortierung von nicht-ASCII Zeichen

+ +

Zum Sortieren von Strings mit Nicht-ASCII-Zeichen, d. h. Zeichenfolgen mit Akzentzeichen (e, é, è, a, ä, etc.), Zeichenfolgen aus anderen Sprachen als Englisch: Verwenden Sie {{jsxref("String.localeCompare")}}. Diese Funktion kann diese Zeichen vergleichen, damit sie in der richtigen Reihenfolge angezeigt werden.

+ +
var items = ['réservé', 'premier', 'cliché', 'communiqué', 'café', 'adieu'];
+items.sort(function (a, b) {
+  return a.localeCompare(b);
+});
+
+// items is ['adieu', 'café', 'cliché', 'communiqué', 'premier', 'réservé']
+ +

Sortieren mit map()

+ +

Die compareFunction kann mehrmals pro Element innerhalb des Arrays aufgerufen werden. Abhängig von der Beschaffenheit von compareFunction kann dies zu einem hohen Overhead führen. Je mehr Arbeit eine compareFunction erledigt und je mehr Elemente zu sortieren sind, desto sinnvoller ist es die Verwendung von {{jsxref("Array.prototype.map()", "map()")}} zum Sortieren in Betracht zu ziehen. Die Idee ist, das Array einmal zu durchlaufen, um die tatsächlichen Werte für das Sortieren in ein temporäres Array zu extrahieren, das temporäre Array zu sortieren und dann das temporäre Array zu durchlaufen, um die richtige Reihenfolge zu erreichen.

+ +
// Das zu sortierende Array
+var list = ['Delta', 'alpha', 'CHARLIE', 'bravo'];
+
+// Temporäres Array enthält Objekte mit Position und Sortierwert
+var mapped = list.map(function(el, i) {
+  return { index: i, value: el.toLowerCase() };
+})
+
+// Sortieren des gemappten Arrays mit den reduzierten Werten
+mapped.sort(function(a, b) {
+  if (a.value > b.value) {
+    return 1;
+  }
+  if (a.value < b.value) {
+    return -1;
+  }
+  return 0;
+});
+
+// Behälter für die sich ergebende Reihenfolge
+var result = mapped.map(function(el){
+  return list[el.index];
+});
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES1')}}{{Spec2('ES1')}}Initiale Definition
{{SpecName('ES5.1', '#sec-15.4.4.11', 'Array.prototype.sort')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-array.prototype.sort', 'Array.prototype.sort')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-array.prototype.sort', 'Array.prototype.sort')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.Array.sort")}}

+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/array/splice/index.html b/files/de/web/javascript/reference/global_objects/array/splice/index.html new file mode 100644 index 0000000000..f77aab6bb1 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/array/splice/index.html @@ -0,0 +1,162 @@ +--- +title: Array.prototype.splice() +slug: Web/JavaScript/Reference/Global_Objects/Array/splice +tags: + - Array + - JavaScript + - Method + - Prototype + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Array/splice +--- +
{{JSRef}}
+ +

Die splice() Methode ändert den Inhalt eines Arrays durch das Entfernen vorhandener Elemente und/oder Hinzufügen neuer Elemente.

+ +
{{EmbedInteractiveExample("pages/js/array-splice.html")}}
+ +

Syntax

+ +
array.splice(start[, deleteCount[, item1[, item2[, ...]]]])
+
+ +

Parameter

+ +
+
start
+
Index ab welchem das Array geändert werden soll. Falls start größer als die Länge des Arrays ist, wird start auf die Länge des Arrays gesetzt.
+
Falls start negativ ist, beginnt die Änderung entsprechend viele Stellen rückwärts vom Ende des Arrays (d.h. hat start den Wert -n ist dies gleichbedeutend mit array.length - n) und wird auf 0 gesetzt wenn der absolute Wert von start größer als die Länge des Arrays ist.
+
deleteCount {{optional_inline}}
+
Gibt die Anzahl der zu entfernenden alten Array Elemente an.
+
Wenn deleteCount weggelassen wird oder wenn der Wert größer oder gleich array.length - start ist (d. h. wenn der Wert größer oder gleich der Anzahl der von start aus verbleibenden Elemente ist), wird das ganze Array ab dem Index start gelöscht.
+
Wenn deleteCount 0 oder negativ ist, werden keine Elemente entfernt. In diesem Fall sollte man mindestens ein neues Element als weiteren Parameter übergeben, da das Array sonst nicht geändert wird.
+
item1, item2, ... {{optional_inline}}
+
Die Elemente, die dem Array ab dem Index start hinzugefügt werden sollen. Falls keine Elemente angegeben werden, entfernt splice lediglich Elemente des Arrays.
+
+ +

Rückgabewert

+ +

Ein Array, welches die entfernten Elemente enthält. Wenn nur ein Element entfernt wurde, wird ein Array mit nur einem Element zurückgegeben. Wenn kein Element entfernt wurde, wird ein leeres Array zurückgegeben.

+ +

Beschreibung

+ +

Wenn die Anzahl der neu hinzugefügten Elemente ungleich der Anzahl der entfernten Elemente ist, wird die Länge des Arrays geändert. Bei gleicher Anzahl werden vorhandene Elemente sozusagen ersetzt.

+ +

Beispiele

+ +

Entfernen von 0 (null) Elementen bei Index 2 und Einfügen von "drum"

+ +
var myFish = ['angel', 'clown', 'mandarin', 'sturgeon'];
+var removed = myFish.splice(2, 0, 'drum');
+
+// myFish is ["angel", "clown", "drum", "mandarin", "sturgeon"]
+// removed is [], no elements removed
+ +

Entfernen von o (null) Elementen bei Index 2 und Einfügen von "drum" und "guitar"

+ +
var myFish = ['angel', 'clown', 'mandarin', 'sturgeon'];
+var removed = myFish.splice(2, 0, 'drum', 'guitar');
+
+// myFish is ["angel", "clown", "drum", "guitar", "mandarin", "sturgeon"]
+// removed is [], no elements removed
+ +

Entfernen von 1 Element bei Index 3

+ + + +
var myFish = ['angel', 'clown', 'drum', 'mandarin', 'sturgeon'];
+var removed = myFish.splice(3, 1);
+
+// removed is ["mandarin"]
+// myFish is ["angel", "clown", "drum", "sturgeon"]
+ + + +

Entfernen von 1 Element bei Index 2 und Einfügen von "trumpet"

+ +
var myFish = ['angel', 'clown', 'drum', 'sturgeon'];
+var removed = myFish.splice(2, 1, 'trumpet');
+
+// myFish is ["angel", "clown", "trumpet", "sturgeon"]
+// removed is ["drum"]
+
+ +

Entfernen von 2 Elementen bei Index 0 und Einfügen von "parrot", "anemone" und "blue"

+ +
var myFish = ['angel', 'clown', 'trumpet', 'sturgeon'];
+var removed = myFish.splice(0, 2, 'parrot', 'anemone', 'blue');
+
+// myFish is ["parrot", "anemone", "blue", "trumpet", "sturgeon"]
+// removed is ["angel", "clown"]
+ +

Entfernen von 2 Elementen vom Index 2

+ +
var myFish = ['parrot', 'anemone', 'blue', 'trumpet', 'sturgeon'];
+var removed = myFish.splice(myFish.length - 3, 2);
+
+// myFish is ["parrot", "anemone", "sturgeon"]
+// removed is ["blue", "trumpet"]
+ +

Entfernen von einem Element bei Index -2

+ +
var myFish = ['angel', 'clown', 'mandarin', 'sturgeon'];
+var removed = myFish.splice(-2, 1);
+
+// myFish is ["angel", "clown", "sturgeon"]
+// removed is ["mandarin"]
+ +

Entfernen von allen Elementen nach Index 2 (inklusiv)

+ +
var myFish = ['angel', 'clown', 'mandarin', 'sturgeon'];
+var removed = myFish.splice(2);
+
+// myFish is ["angel", "clown"]
+// removed is ["mandarin", "sturgeon"]
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommenter
{{SpecName('ES3')}}{{Spec2('ES3')}}Initiale Definition. Implementiert in JavaScript 1.2.
{{SpecName('ES5.1', '#sec-15.4.4.12', 'Array.prototype.splice')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-array.prototype.splice', 'Array.prototype.splice')}}{{Spec2('ES6')}}
{{SpecName('ESDraft', '#sec-array.prototype.splice', 'Array.prototype.splice')}}{{Spec2('ESDraft')}}
+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.Array.splice")}}

+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/array/tolocalestring/index.html b/files/de/web/javascript/reference/global_objects/array/tolocalestring/index.html new file mode 100644 index 0000000000..ef5c1883b5 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/array/tolocalestring/index.html @@ -0,0 +1,183 @@ +--- +title: Array.prototype.toLocaleString() +slug: Web/JavaScript/Reference/Global_Objects/Array/toLocaleString +tags: + - Array + - Internationalization + - JavaScript + - Method + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Array/toLocaleString +--- +
{{JSRef}}
+ +

Die Methode toLocaleString() gibt als Rückgabewert einen String zurück, welcher die Elemente des Arrays darstellt. Die Array-Elemente werden mittels ihrer toLocaleString Methode in Strings umgewandelt und durch einen sprachspezifischen String (wie zum Beispiel ein Kommazeichen “,”) separiert.

+ +
{{EmbedInteractiveExample("pages/js/array-tolocalestring.html")}}
+ +

Syntax

+ +
arr.toLocaleString([locales [, options]]);
+
+ +

Parameter

+ +
+
locales {{optional_inline}}
+
Ein String mit einem Language-Tag nach BCP 47 oder ein Array solcher Strings. Für die allgemeine Art und Interpretation des locales Parameters, siehe Seite {{jsxref("Intl")}}.
+
options {{optional_inline}}
+
Ein Objekt mit konfigurierbaren Eigenschaften, für Numbers siehe {{jsxref("Number.prototype.toLocaleString()")}}, und für Datumsangaben siehe {{jsxref("Date.prototype.toLocaleString()")}}.
+
+ +

Rückgabewert

+ +

Ein einzelner String der die Elemente des Arrays darstellt.

+ +

Beispiele

+ +

Verwendung von locales und options

+ +

Die Elemente des Arrays werden mittels der toLocaleString Methode in einen String umgewandelt.

+ + + +

Jedem Strings und Numbers Element im Array prices die Währung zuordnen:

+ +
var prices = ['¥7', 500, 8123, 12];
+prices.toLocaleString('ja-JP', { style: 'currency', currency: 'JPY' });
+
+// "¥7,¥500,¥8,123,¥12"
+
+ +

Für weitere Beispiele, siehe auch {{jsxref("Global_Objects/Intl","Intl")}}, {{jsxref("Global_Objects/NumberFormat","NumberFormat")}} und {{jsxref("Global_Objects/DateTimeFormat","DateTimeFormat")}}.

+ +

Polyfill

+ +
// https://tc39.github.io/ecma402/#sup-array.prototype.tolocalestring
+if (!Array.prototype.toLocaleString) {
+  Object.defineProperty(Array.prototype, 'toLocaleString', {
+    value: function(locales, options) {
+      // 1. Let O be ? ToObject(this value).
+      if (this == null) {
+        throw new TypeError('"this" is null or not defined');
+      }
+
+      var a = Object(this);
+
+      // 2. Let len be ? ToLength(? Get(A, "length")).
+      var len = a.length >>> 0;
+
+      // 3. Let separator be the String value for the
+      //    list-separator String appropriate for the
+      //    host environment's current locale (this is
+      //    derived in an implementation-defined way).
+      // NOTE: In this case, we will use a comma
+      var separator = ',';
+
+      // 4. If len is zero, return the empty String.
+      if (len === 0) {
+        return '';
+      }
+
+      // 5. Let firstElement be ? Get(A, "0").
+      var firstElement = a[0];
+      // 6. If firstElement is undefined or null, then
+      //  a.Let R be the empty String.
+      // 7. Else,
+      //  a. Let R be ?
+      //     ToString(?
+      //       Invoke(
+      //        firstElement,
+      //        "toLocaleString",
+      //        « locales, options »
+      //       )
+      //     )
+      var r = firstElement == null ?
+        '' : firstElement.toLocaleString(locales, options);
+
+      // 8. Let k be 1.
+      var k = 1;
+
+      // 9. Repeat, while k < len
+      while (k < len) {
+        // a. Let S be a String value produced by
+        //   concatenating R and separator.
+        var s = r + separator;
+
+        // b. Let nextElement be ? Get(A, ToString(k)).
+        var nextElement = a[k];
+
+        // c. If nextElement is undefined or null, then
+        //   i. Let R be the empty String.
+        // d. Else,
+        //   i. Let R be ?
+        //     ToString(?
+        //       Invoke(
+        //        nextElement,
+        //        "toLocaleString",
+        //        « locales, options »
+        //       )
+        //     )
+        r = nextElement == null ?
+          '' : nextElement.toLocaleString(locales, options);
+
+        // e. Let R be a String value produced by
+        //   concatenating S and R.
+        r = s + r;
+
+        // f. Increase k by 1.
+        k++;
+      }
+
+      // 10. Return R.
+      return r;
+    }
+  });
+}
+
+ +

Für die Unterstützung von veralteten JavaScript Engines, die Object.defineProperty nicht kennen, sollte kein Polyfill für Array.prototype Methoden eingesetzt werden, da sie auf diese Weise nicht mehr nicht-durchzählbar gemacht werden können.

+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ESDraft', '#sec-array.prototype.tolocalestring', 'Array.prototype.toLocaleString')}}{{Spec2('ESDraft')}}Initiale Definition war in ECMAScript 3.
{{SpecName('ES Int Draft', '#sup-array.prototype.tolocalestring', 'Array.prototype.toLocaleString')}}{{Spec2('ES Int Draft')}}Diese Definition ersetzt die Definition aus ECMA-262.
+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.Array.toLocaleString")}}

+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/array/tosource/index.html b/files/de/web/javascript/reference/global_objects/array/tosource/index.html new file mode 100644 index 0000000000..0e7dd02745 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/array/tosource/index.html @@ -0,0 +1,69 @@ +--- +title: Array.prototype.toSource() +slug: Web/JavaScript/Reference/Global_Objects/Array/toSource +tags: + - Array + - JavaScript + - Method + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Array/toSource +--- +
{{JSRef}} {{non-standard_header}}
+ +

Die toSource() Methode gibt einen String zurück, welcher den Quelltext des Arrays repräsentiert.

+ +

Syntax

+ +
arr.toSource()
+ +

Rückgabewert

+ +

Ein String, der den Quelltext des Array repräsentiert.

+ +

Beschreibung

+ +

Die toSource Methode gibt folgende Werte zurück:

+ + + +

Diese Methode wird für gewöhnlich von JavaScript intern aufgerufen und nicht explizit in einem QUelltext. Man kann toSource beim Debuggen aufrufen, um den Inhalt eines Arrays abzufragen.

+ +

Beispiele

+ +

Untersuchen des Quelltextes eines Arrays

+ +

Um den Quellcode eines Arrays zu untersuchen:

+ +
var alpha = new Array('a', 'b', 'c');
+
+alpha.toSource();
+//returns ['a', 'b', 'c']
+
+ +

Spezifikationen

+ +

In keiner Spezifikation enthalten. Implementiert in JavaScript 1.3.

+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.Array.toSource")}}

+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/array/tostring/index.html b/files/de/web/javascript/reference/global_objects/array/tostring/index.html new file mode 100644 index 0000000000..0d8d1da3e6 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/array/tostring/index.html @@ -0,0 +1,80 @@ +--- +title: Array.prototype.toString() +slug: Web/JavaScript/Reference/Global_Objects/Array/toString +tags: + - Array + - JavaScript + - Method + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Array/toString +--- +
{{JSRef}}
+ +

Die toString() Methode gibt einen String zurück, der das Array und seine Elemente repräsentiert.

+ +

{{EmbedInteractiveExample("pages/js/array-tostring.html")}}

+ +

Syntax

+ +
arr.toString()
+ +

Rückgabewert

+ +

Ein String, der die Elemente des Arrays repräsentiert.

+ +

Beschreibung

+ +

Das {{jsxref("Array")}} Objekt überschreibt die toString Methode von {{jsxref("Object")}}. Für Arrayobjekte fügt die toString Methode das Array zu einem String zusammen, der jedes Element des Arrayelemente durch Kommata getrennt enthält.

+ +

JavaScript ruft die toString Methode automatisch auf wenn ein Array als Text repräsentiert wird oder wenn ein Array in einer Stringkonkatenation verwendet wird.

+ +

ECMAScript 5 Semantik

+ +

Beginnend mt JavaScript 1.8.5 (Firefox 4), und mit der Semantik des ECMAScript der 5. Edition, ist die toString() Methode generisch und kann mit jeglichen Objekten verwendet werden. {{jsxref("Object.prototype.toString()")}} wird aufgerufen und der resultierende Wert wird zurückgegeben.

+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES1')}}{{Spec2('ES1')}}Initiale Definition. Implementiert in JavaScript 1.1.
{{SpecName('ES5.1', '#sec-15.4.4.2', 'Array.prototype.toString')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-array.prototype.tostring', 'Array.prototype.toString')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-array.prototype.tostring', 'Array.prototype.toString')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.Array.toString")}}

+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/array/unobserve/index.html b/files/de/web/javascript/reference/global_objects/array/unobserve/index.html new file mode 100644 index 0000000000..fd31177c3a --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/array/unobserve/index.html @@ -0,0 +1,88 @@ +--- +title: Array.unobserve() +slug: Web/JavaScript/Reference/Global_Objects/Array/unobserve +tags: + - Array + - JavaScript + - Method + - Obsolete +translation_of: Archive/Web/JavaScript/Array.unobserve +--- +
{{JSRef}} {{obsolete_header}}
+ +

Die Array.unobserve() Methode wird eingesetzt um Observers die mit {{jsxref("Array.observe()")}} eingestellt wurden zu entfernen, jedoch ist dieses veraltet und wurde schon von Browsern entfernt. Man kann einen allgemeineres {{jsxref("Proxy")}} Objekt benutzen.

+ +

Syntax

+ +
Array.unobserve(arr, callback)
+ +

Parameter

+ +
+
arr
+
Das Array, welches nicht mehr Überwacht werden soll.
+
callback
+
Die Referenz zu dem Observer, die mit der Überwachung von Änderungen auf dem Array arr aufhören soll.
+
+ +

Beschreibung

+ +

Array.unobserve() sollt nach {{jsxref("Array.observe()")}} aufgerufen werden, um einen Observer von einem Array zu entfernen.

+ +

callback sollte eine Referenz auf eine Funktion sein und nicht einen anonyme Funktion sein, weil diese Referenz genutzt wird um den Observer zu entfernen. Es ist nicht zulässig Array.unobserve() mit einer anonymen Funktion aufzurufen, weil dadurch kein Observer entfernt wird.

+ +

Beispiele

+ +

Observer von Array entfernen

+ +
var arr = [1, 2, 3];
+
+var observer = function(changes) {
+  console.log(changes);
+}
+
+Array.observe(arr, observer);
+​
+arr.push(4);
+// [{type: "splice", object: <arr>, index: 3, removed:[], addedCount: 1}]
+
+Array.unobserve(arr, observer);
+
+arr.pop();
+// The callback wasn't called
+ +

Einsatz einer anonymen Funktion

+ +
var persons = ['Khalid', 'Ahmed', 'Mohammed'];
+
+Array.observe(persons, function (changes) {
+  console.log(changes);
+});
+
+persons.shift();
+// [{type: "splice", object: <arr>, index: 0, removed: [ "Khalid" ], addedCount: 0 }]
+
+Array.unobserve(persons, function (changes) {
+  console.log(changes);
+});
+
+persons.push('Abdullah');
+// [{type: "splice", object: <arr>, index: 2, removed: [], addedCount: 1 }]
+// The callback will always be called
+
+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.Array.unobserve")}}

+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/array/unshift/index.html b/files/de/web/javascript/reference/global_objects/array/unshift/index.html new file mode 100644 index 0000000000..2960b03cbb --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/array/unshift/index.html @@ -0,0 +1,99 @@ +--- +title: Array.prototype.unshift() +slug: Web/JavaScript/Reference/Global_Objects/Array/unshift +tags: + - Array + - JavaScript + - Method + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Array/unshift +--- +
{{JSRef}}
+ +

Die unshift() Methode fügt ein oder mehrere Elemente am Anfang eines Array hinzu und gibt die neue Länge des Arrays zurück.

+ +
{{EmbedInteractiveExample("pages/js/array-unshift.html")}}
+ +

Syntax

+ +
arr.unshift(element1[, ...[, elementN]])
+ +

Parameter

+ +
+
elementN
+
Die Elemente die am Anfang des Arrays hinzugefügt werden sollen.
+
+ +

Rückgabewert

+ +

Die neue {{jsxref("Array.length", "length")}} Eigenschaft des Arrays auf dem die Methode aufgerufen wurde.

+ +

Beschreibung

+ +

Die unshift Methode fügt die gegeben Elemente am Anfang eines Arrays ähnlichen Objektes hinzu.

+ +

unshift ist extra generisch gehalten. Diese Methode kann mit {{jsxref("Function.call", "call", "", 1)}} oder {{jsxref("Function.apply", "apply", "", 1)}} auf einem Array ähnlichen Objekt angewendet werden. Objekte, die nicht über die Eigenschaft length verfügen, welche nicht das letzte in einer Reihe aufeinander folgenden, null-basierenden nummerische Werten repräsentieren, können sinnlose Ergebnisse liefern.

+ +

Beispiele

+ +
var arr = [1, 2];
+
+arr.unshift(0); // result of call is 3, the new array length
+// arr is [0, 1, 2]
+
+arr.unshift(-2, -1); // = 5
+// arr is [-2, -1, 0, 1, 2]
+
+arr.unshift([-3]);
+// arr is [[-3], -2, -1, 0, 1, 2]
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES3')}}{{Spec2('ES3')}}Initiale Definition. Implementiert in JavaScript 1.2.
{{SpecName('ES5.1', '#sec-15.4.4.13', 'Array.prototype.unshift')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-array.prototype.unshift', 'Array.prototype.unshift')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-array.prototype.unshift', 'Array.prototype.unshift')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.Array.unshift")}}

+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/array/values/index.html b/files/de/web/javascript/reference/global_objects/array/values/index.html new file mode 100644 index 0000000000..3736af04f8 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/array/values/index.html @@ -0,0 +1,86 @@ +--- +title: Array.prototype.values() +slug: Web/JavaScript/Reference/Global_Objects/Array/values +tags: + - Array + - ECMAScript 2015 + - Iterator + - JavaScript + - Method + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Array/values +--- +
{{JSRef}}
+ +

Die values() Methode gibt ein neues Iterator Objekt des Arrays zurück, welches die Werte für jeden Eintrag im Array enthält.

+ +

{{EmbedInteractiveExample("pages/js/array-values.html")}}

+ +
var a = ['w', 'y', 'k', 'o', 'p'];
+var iterator = a.values();
+
+console.log(iterator.next().value); // w
+console.log(iterator.next().value); // y
+console.log(iterator.next().value); // k
+console.log(iterator.next().value); // o
+console.log(iterator.next().value); // p
+ +

Syntax

+ +
arr.values()
+ +

Rückgabewert

+ +

Ein neues {{jsxref("Iterator")}} Objekt von dem Array.

+ +

Beispiele

+ +

Benutzung der for...of loop

+ +
var arr = ['w', 'y', 'k', 'o', 'p'];
+var iterator = arr.values();
+
+for (let letter of iterator) {
+  console.log(letter);
+}
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES2015', '#sec-array.prototype.values', 'Array.prototype.values')}}{{Spec2('ES2015')}}Initiale Definition.
{{SpecName('ESDraft', '#sec-array.prototype.values', 'Array.prototype.values')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.Array.values")}}

+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/arraybuffer/@@species/index.html b/files/de/web/javascript/reference/global_objects/arraybuffer/@@species/index.html new file mode 100644 index 0000000000..896576bf2e --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/arraybuffer/@@species/index.html @@ -0,0 +1,72 @@ +--- +title: 'get ArrayBuffer[@@species]' +slug: Web/JavaScript/Reference/Global_Objects/ArrayBuffer/@@species +tags: + - ArrayBuffer + - JavaScript + - Property + - TypedArrays +translation_of: Web/JavaScript/Reference/Global_Objects/ArrayBuffer/@@species +--- +
{{JSRef}}
+ +

Die ArrayBuffer[@@species] Zugriffseigenschaft gibt den Konstruktor des ArrayBuffer zurück.

+ +

Syntax

+ +
ArrayBuffer[Symbol.species]
+
+ +

Beschreibung

+ +

Die species Zugriffseigenschaft gibt den Standard-Konstruktor für ArrayBuffer Objekte zurück. Konstruktoren von Unterklassen überschreiben dieses, um die Konstruktorzuweisung zu ändern.

+ +

Beispiele

+ +

Die species Eigenschaft gibt die Standard-Konstruktorfunktion zurück, welche der ArrayBuffer Konstruktor für ArrayBuffer Objekte ist:

+ +
ArrayBuffer[Symbol.species]; // function ArrayBuffer()
+ +

In einem abgeleiteten Collection Objket (z. B. ein benutzerdefinierter Buffer MyArrayBuffer), ist der MyArrayBuffer species der MyArrayBuffer Konstruktor. Immer, wenn dieser überschrieben werden soll, um zum Beispiel das Eltern ArrayBuffer Objekt in der abgeleiteten Klassenmethode zurückzugeben:

+ +
class MyArrayBuffer extends ArrayBuffer {
+  // Overwrite MyArrayBuffer species to the parent ArrayBuffer constructor
+  static get [Symbol.species]() { return ArrayBuffer; }
+}
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES6', '#sec-get-arraybuffer-@@species', 'get ArrayBuffer [ @@species ]')}}{{Spec2('ES6')}}Initiale Definition.
{{SpecName('ESDraft', '#sec-get-arraybuffer-@@species', 'get ArrayBuffer [ @@species ]')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.ArrayBuffer.@@species")}}

+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/arraybuffer/bytelength/index.html b/files/de/web/javascript/reference/global_objects/arraybuffer/bytelength/index.html new file mode 100644 index 0000000000..aa346bcba5 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/arraybuffer/bytelength/index.html @@ -0,0 +1,70 @@ +--- +title: ArrayBuffer.prototype.byteLength +slug: Web/JavaScript/Reference/Global_Objects/ArrayBuffer/byteLength +tags: + - ArrayBuffer + - JavaScript + - Property + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/ArrayBuffer/byteLength +--- +
{{JSRef}}
+ +

Die byteLength Zugriffseigenschaft repräsentiert die Länge eines {{jsxref("ArrayBuffer")}} in Bytes.

+ +
{{EmbedInteractiveExample("pages/js/arraybuffer-bytelength.html")}}
+ + + +

Syntax

+ +
arraybuffer.byteLength
+ +

Beschreibung

+ +

Die byteLength Eigenschaft ist eine Zugriffseigenschaft, wessen set-Funktion undefined ist, was bedeutet, dass diese nur gelesen werden kann. Der Wert wird ermittelt, wenn das Array erstellt wird und kann nicht geändert werden. Diese Eigenschaft gibt 0 zurück, wenn der ArrayBuffer detached ist.

+ +

Beispiele

+ +
var buffer = new ArrayBuffer(8);
+buffer.byteLength; // 8
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('Typed Array')}}{{Spec2('Typed Array')}}Ersetzt in ECMAScript 2015.
{{SpecName('ES2015', '#sec-get-arraybuffer.prototype.bytelength', 'ArrayBuffer.prototype.byteLength')}}{{Spec2('ES2015')}}Initiale Definition im ECMA Standard.
{{SpecName('ESDraft', '#sec-get-arraybuffer.prototype.bytelength', 'ArrayBuffer.prototype.byteLength')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.ArrayBuffer.byteLength")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/arraybuffer/index.html b/files/de/web/javascript/reference/global_objects/arraybuffer/index.html new file mode 100644 index 0000000000..a8de24aac7 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/arraybuffer/index.html @@ -0,0 +1,144 @@ +--- +title: ArrayBuffer +slug: Web/JavaScript/Reference/Global_Objects/ArrayBuffer +tags: + - ArrayBuffer + - Constructor + - JavaScript + - TypedArrays +translation_of: Web/JavaScript/Reference/Global_Objects/ArrayBuffer +--- +
{{JSRef}}
+ +

Das ArrayBuffer Objekt repräsentiert einen generischen Buffer mit fester Länge. Der Inhalt eines ArrayBuffers kann nicht direkt bearbeitet werden; stattdessen wird eines der typisierten Array-Objekte oder ein {{jsxref("DataView")}} Objekt verwendet, welches den Buffer in einem bestimmten Format repräsentiert und von welchem aus sein Inhalt bearbeitet werden kann.

+ +
{{EmbedInteractiveExample("pages/js/arraybuffer-constructor.html")}}
+ + + +

Syntax

+ +
new ArrayBuffer(length)
+
+ +

Parameter

+ +
+
length
+
Die Größe, in Bytes, des zu erstellenden ArrayBuffer.
+
+ +

Rückgabewert

+ +

Ein neues ArrayBuffer Objekt der angegebenen Länge. Der Inhalt wird auf 0 initialisiert.

+ +

Ausnahmen

+ +

Ein {{jsxref("RangeError")}} wird erhoben wenn die Länge größer als {{jsxref("Number.MAX_SAFE_INTEGER")}} (>= 2 ** 53) oder negativ ist.

+ +

Beschreibung

+ +

Der ArrayBuffer Konstruktor erstellt einen neuen ArrayBuffer der angegebenen Länge in Bytes.

+ +

Einen ArrayBuffer von existierenden Daten erstellen

+ + + +

Eigenschaften

+ +
+
ArrayBuffer.length
+
Der Wert des ArrayBuffer Konstruktors für die Länge.
+
{{jsxref("ArrayBuffer.@@species", "get ArrayBuffer[@@species]")}}
+
Die Konstruktor-Funktion um abgeleitete Objekte zu erstellen.
+
{{jsxref("ArrayBuffer.prototype")}}
+
Erlaubt das Hinzufügen von Eigenschaften zu allen ArrayBuffer Objekten.
+
+ +

Methoden

+ +
+
{{jsxref("ArrayBuffer.isView", "ArrayBuffer.isView(arg)")}}
+
Gibt true zurück wenn arg eines der Views des ArrayBuffers ist, wie zum Beispiel die typisierten Array-Objekte oder ein {{jsxref("DataView")}}. Ansonsten wird false zurückgegeben.
+
{{jsxref("ArrayBuffer.transfer", "ArrayBuffer.transfer(oldBuffer [, newByteLength])")}} {{experimental_inline}}
+
+
Gibt einen neuen ArrayBuffer zurück, dessen Inhalt von den Daten des oldBuffers genommen wird und dann entweder abgeschnitten oder mit Null auf newByteLength erweitert wird.
+
+
+ +

Instanzen

+ +

Alle ArrayBuffer Instanzen erben von {{jsxref("ArrayBuffer.prototype")}}.

+ +

Eigenschaften

+ +

{{page('de/Web/JavaScript/Reference/Global_Objects/ArrayBuffer/prototype','Eigenschaften')}}

+ +

Methoden

+ +

{{page('de/Web/JavaScript/Reference/Global_Objects/ArrayBuffer/prototype','Methoden')}}

+ +
+
{{jsxref("ArrayBuffer.slice()")}} {{non-standard_inline}}
+
Hat die selbe Funktion wie {{jsxref("ArrayBuffer.prototype.slice()")}}.
+
+ +

Beispiel

+ +

In diesem Beispiel erstellen wir einen 8-byte Puffer mit einem {{jsxref("Global_Objects/Int32Array", "Int32Array")}} View, um auf den Puffer zu verweisen:

+ +
var buffer = new ArrayBuffer(8);
+var view   = new Int32Array(buffer);
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('Typed Array')}}{{Spec2('Typed Array')}}Ersetzt durch ECMAScript 6.
{{SpecName('ES6', '#sec-arraybuffer-constructor', 'ArrayBuffer')}}{{Spec2('ES6')}}Initiale Definition im ECMA Standard. Spezifiziert, dass new benötigt wird.
{{SpecName('ESDraft', '#sec-arraybuffer-constructor', 'ArrayBuffer')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.ArrayBuffer")}}

+ +

Kompatibilitätshinweis

+ +

Seit ECMAScript 2015 müssen ArrayBuffer Konstruktor mit einem {{jsxref("Operators/new", "new")}} Operator konstruiert werden. Einen ArrayBuffer Konstruktor als Funktion aufzurufen ohne new ab sofort einen {{jsxref("TypeError")}} erheben.

+ +
var dv = ArrayBuffer(10);
+// TypeError: Einen eingebauten ArrayBuffer-Konstruktor
+// ohne new aufzurufen ist nicht erlaubt.
+ +
var dv = new ArrayBuffer(10);
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/arraybuffer/isview/index.html b/files/de/web/javascript/reference/global_objects/arraybuffer/isview/index.html new file mode 100644 index 0000000000..f00f471fb3 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/arraybuffer/isview/index.html @@ -0,0 +1,89 @@ +--- +title: ArrayBuffer.isView() +slug: Web/JavaScript/Reference/Global_Objects/ArrayBuffer/isView +tags: + - ArrayBuffer + - JavaScript + - Method + - TypedArrays +translation_of: Web/JavaScript/Reference/Global_Objects/ArrayBuffer/isView +--- +
{{JSRef}}
+ +

Die ArrayBuffer.isView() Methode gibt true zurück, wenn arg eines der ArrayBuffer Views ist, so wie getyptes Array Objekte oder eine {{jsxref("DataView")}}; andernfalls false.

+ +
{{EmbedInteractiveExample("pages/js/arraybuffer-isview.html")}}
+ + + +

Syntax

+ +
ArrayBuffer.isView(arg)
+ +

Parameter

+ +
+
arg
+
Der Parameter, der überprüft wird.
+
+ +

Rückgabewert

+ +

true, wenn der gegebene Parameter ist einer der ArrayBuffer Views; andernfalls false.

+ +

Beispiele

+ +
ArrayBuffer.isView();                    // false
+ArrayBuffer.isView([]);                  // false
+ArrayBuffer.isView({});                  // false
+ArrayBuffer.isView(null);                // false
+ArrayBuffer.isView(undefined);           // false
+ArrayBuffer.isView(new ArrayBuffer(10)); // false
+
+ArrayBuffer.isView(new Uint8Array());    // true
+ArrayBuffer.isView(new Float32Array());  // true
+ArrayBuffer.isView(new Int8Array(10).subarray(0, 3)); // true
+
+var buffer = new ArrayBuffer(2);
+var dv = new DataView(buffer);
+ArrayBuffer.isView(dv); // true
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('Typed Array')}}{{Spec2('Typed Array')}}Ersetzt in ECMAScript 2015.
{{SpecName('ES2015', '#sec-arraybuffer.isview', 'ArrayBuffer.isView')}}{{Spec2('ES2015')}}Initiale Definition im ECMA Standard.
{{SpecName('ESDraft', '#sec-arraybuffer.isview', 'ArrayBuffer.isView')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.ArrayBuffer.isView")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/arraybuffer/prototype/index.html b/files/de/web/javascript/reference/global_objects/arraybuffer/prototype/index.html new file mode 100644 index 0000000000..b287e0712c --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/arraybuffer/prototype/index.html @@ -0,0 +1,68 @@ +--- +title: ArrayBuffer.prototype +slug: Web/JavaScript/Reference/Global_Objects/ArrayBuffer/prototype +tags: + - ArrayBuffer + - JavaScript + - Property +translation_of: Web/JavaScript/Reference/Global_Objects/ArrayBuffer +--- +
{{JSRef}}
+ +

Die ArrayBuffer.prototype Eigenschaft repräsentiert den Prototyp für das {{jsxref("ArrayBuffer")}} Objekt.

+ +
{{js_property_attributes(0,0,0)}}
+ +

Beschreibung

+ +

ArrayBuffer Instanzen erben von ArrayBuffer.prototype. Wie bei allen Konstruktoren, kann der Prototype des Konstruktorobjekts geändert werden, um Änderungen für alle ArrayBuffer Instanzen zu übernehmen.

+ +

Eigenschaften

+ +
+
ArrayBuffer.prototype.constructor
+
Spezifiziert die Funktion, die das Prototypeobjekt erstellt. Der Initialwert ist der eingebaute Standard-ArrayBuffer-Konstruktor.
+
{{jsxref("ArrayBuffer.prototype.byteLength")}} {{readonlyInline}}
+
Die größe, in Bytes, des Arrays. Dieser wird bei der Erstellung des Arrays ermittelt und kan nicht geändert werden.
+
+ +

Methoden

+ +
+
{{jsxref("ArrayBuffer.prototype.slice()")}}
+
Gibt einen neuen ArrayBuffer zurück, welcher eine Kopie der Bytes des eigentlichen ArrayBuffer einthält. Die Kopie geht von begin (inklusiv) bis end (exclusiv). Wenn einer der Werte negativ ist, referenziert er auf den Index vom Ende des Arrays an und nicht vom Beginn des Arrays.
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + +
SpzifikationStatusKommentar
{{SpecName('ES6', '#sec-arraybuffer.prototype', 'ArrayBuffer.prototype')}}{{Spec2('ES6')}}Initiale Definition.
{{SpecName('ESDraft', '#sec-arraybuffer.prototype', 'ArrayBuffer.prototype')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.ArrayBuffer.prototype")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/arraybuffer/slice/index.html b/files/de/web/javascript/reference/global_objects/arraybuffer/slice/index.html new file mode 100644 index 0000000000..f149d2322b --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/arraybuffer/slice/index.html @@ -0,0 +1,88 @@ +--- +title: ArrayBuffer.prototype.slice() +slug: Web/JavaScript/Reference/Global_Objects/ArrayBuffer/slice +tags: + - ArrayBuffer + - JavaScript + - Method + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/ArrayBuffer/slice +--- +
{{JSRef}}
+ +

Die slice() Methode gibt einen neuen ArrayBuffer zurück, wessen Inhalt eine Kopie der ArrayBuffer Bytes von begin (inklusiv) bis end (exklusiv) ist.

+ +
{{EmbedInteractiveExample("pages/js/arraybuffer-slice.html")}}
+ + + +

Syntax

+ +
arraybuffer.slice(begin[, end])
+ +

Parameter

+ +
+
begin
+
0-basierter Byteindex an welchem slice slice mit dem zuschneiden beginnt.
+
+ +
+
end
+
Byteindex bevor slice das zuschneiden beendet. Wenn end nicht angegeben ist, wird der neue ArrayBuffer alle Bytes von begin des ArrayBuffer enthalten. Der durch die Anfangs- und Endwerte angegebene Bereich wird an den gültigen Indexbereich für das aktuelle Array gebunden. Wenn die berechnete Länge des neuen ArrayBuffers negativ wäre, wird er auf 0 gesetzt.
+
+ +

Rückgabewert

+ +

Ein neues ArrayBuffer Objekt.

+ +

Beschreibung

+ +

Die slice Methode kopiert bis zum Byteindex end Parameter, der nicht enthalten ist. Wenn begin oder end negativ ist, referenziert dieser zum Index vom Ende der Array, im Gegensatz zum Anfang des Arrays

+ +

Beispiele

+ +

Einen ArrayBuffer kopieren

+ +
var buf1 = new ArrayBuffer(8);
+var buf2 = buf1.slice(0);
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('Typed Array')}}{{Spec2('Typed Array')}}Ersetzt in EMCAScript 6.
{{SpecName('ES6', '#sec-arraybuffer.prototype.slice', 'ArrayBuffer.prototype.slice')}}{{Spec2('ES6')}}Initiale Definition im ECMA Standard.
{{SpecName('ESDraft', '#sec-arraybuffer.prototype.slice', 'ArrayBuffer.prototype.slice')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.ArrayBuffer.slice")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/arraybuffer/transfer/index.html b/files/de/web/javascript/reference/global_objects/arraybuffer/transfer/index.html new file mode 100644 index 0000000000..3004da98bf --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/arraybuffer/transfer/index.html @@ -0,0 +1,84 @@ +--- +title: ArrayBuffer.transfer() +slug: Web/JavaScript/Reference/Global_Objects/ArrayBuffer/transfer +tags: + - ArrayBuffer + - Experimental + - JavaScript + - Method + - Reference + - TypedArrays +translation_of: Archive/Web/JavaScript/ArrayBuffer.transfer +--- +
{{JSRef}} {{SeeCompatTable}}
+ +

Die statische ArrayBuffer.transfer() Funktion gibt einen neuen ArrayBuffer mit dem Inhalt von oldBuffer. Je nachdem, wei die newByteLength gesetzt ist, werden die Daten abgeschnitten oder erweitert. Wenn newByteLength nicht gesetzt ist, wird die byteLength von oldBuffer benutzt. Diese Operation bringt oldBuffer in einen detached Status.

+ +

Syntax

+ +
ArrayBuffer.transfer(oldBuffer [, newByteLength]);
+ +

Parameter

+ +
+
oldBuffer
+
Ein {{jsxref("ArrayBuffer")}} Objekt von dem die Daten transferiert werden.
+
newByteLength
+
Die Bytelänge des neuen ArrayBuffer Objektes.
+
+ +

Rückgabewert

+ +

Ein neues ArrayBuffer Objekt.

+ +

Beschreibung

+ +

Die ArrayBuffer.transfer() Methode erlaubt es ein ArrayBuffer zu vergrößern und zu detachen. Die Möglichkeit ein ArrayBuffer zu vergrößern ohne es zu kopieren, hat den Vorteil, dass es viel schneller für große Buffer ist (ähnlich wie bei realloc). Die Möglichkeit, dass ein ArrayBuffer detachet wird, gibt dem Entwickler die explizite Kontrolle über das freigeben des internen Speichers. Dieses vermeidet das Entfernen aller Referenzen und das Warten auf die Garbage Collection.

+ +

Beispiele

+ +
var buf1 = new ArrayBuffer(40);
+new Int32Array(buf1)[0] = 42;
+
+var buf2 = ArrayBuffer.transfer(buf1, 80);
+buf1.byteLength; // 0 but if you use the polyfill then the value is still 40
+buf2.byteLength; // 80
+new Int32Array(buf2)[0]; // 42
+
+var buf3 = ArrayBuffer.transfer(buf2, 0);
+buf2.byteLength; // 0 but if you use the polyfill then the value is still 80
+buf3.byteLength; // 0
+
+ +

Polyfill

+ +

Für Browser, die die Funktion nicht nativ unterstützen, gibt es die Möglichkeit folgenden Quelltext am Anfang eines Skriptes einzufügen, um die Funktion transfer() zu benutzen. Diese Funktion ist nicht exakt die in der API beschriebene, weil Browser, die die Funktion unterstützen, direkten Zugriff auf die C++ Funktion realloc() haben, welche die Länge des Speichers erhöht und nur eine Kopie anlegt, wenn es nötig ist. Im Gegensatz dazu kopiert der folgende Pollyfill alles immer in neuen Speicher. Diese Funktion transferiert die Daten jedoch von einem ArrayBuffer zu einem anderen.

+ +
if (!ArrayBuffer.transfer) {
+    ArrayBuffer.transfer = function(source, length) {
+        if (!(source instanceof ArrayBuffer))
+            throw new TypeError('Source must be an instance of ArrayBuffer');
+        if (length <= source.byteLength)
+            return source.slice(0, length);
+        var sourceView = new Uint8Array(source),
+            destView = new Uint8Array(new ArrayBuffer(length));
+        destView.set(sourceView);
+        return dest.buffer;
+    };
+}
+ +

Spezifikationen

+ +

Ist in keiner aktuellen Spezifikation enthalten, wird aber in der Zukunft für ECMA-262 geplant.

+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.ArrayBuffer.transfer")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/asyncfunction/index.html b/files/de/web/javascript/reference/global_objects/asyncfunction/index.html new file mode 100644 index 0000000000..994df6d344 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/asyncfunction/index.html @@ -0,0 +1,124 @@ +--- +title: AsyncFunction +slug: Web/JavaScript/Reference/Global_Objects/AsyncFunction +tags: + - Constructor + - Experimental + - JavaScript + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/AsyncFunction +--- +
{{JSRef}}
+ +

Der AsyncFunction Konstruktor erstellt ein neues {{jsxref("Statements/async_function", "AsyncFunction")}} Objekt. In JavaScript ist jede asynchrone Funktion ein AsyncFunction Objekt.

+ +
+

Hinweis: AsyncFunction ist kein globales Objekt. Durch die ausführung des folgenden Quelltextes kann das Objekte erhalten werden.

+ +
Object.getPrototypeOf(async function(){}).constructor
+
+ +

Syntax

+ +
new AsyncFunction([arg1[, arg2[, ...argN]],] functionBody)
+ +

Parameter

+ +
+
arg1, arg2, ... argN
+
Namen, die für die Namen der formalen Parameter der Funktion verwendet werden. Jeder muss ein String mit einem validen JavaScript-Bezeichner sein oder eine Liste von Strings, welche mit einem Komma getrennt sind; zum Beispiel "x", "theValue", oder "a,b".
+
functionBody
+
Ein String, welcher die JavaScript-Anweisungen enthält, welche die Funktion definieren.
+
+ +

Beschreibung

+ +

{{jsxref("Statements/async_function", "asyncFunction")}} Objekte, die mit dem AsyncFunction Konstruktor erstellt werden, werden analysieren, wenn sie erstellt werden. Dieses ist weniger effizient als die Deklaration einer asynchronen Funktion mit einem {{jsxref("Statements/async_function", "asyncFunction Ausdruck")}} und dem Aufruf in dem Code, weil solche Funktion mit dem Rest des Quelltextes analysieren werden.

+ +

Alle an die Funktion übergebenen Argumente werden als die Namen der Bezeichner der Parameter in der zu erstellenden Funktion in der Reihenfolge behandelt, in der sie übergeben werden.

+ +
+

Hinweis: Mit dem AsyncFunction Konstruktor erstellte {{jsxref("Statements/async_function", "asyncFunctions")}} erstellen keine Closures in ihrem Erstellungskontext; Sie werden immer im globalen Scope erstellt. Wenn sie ausgeführt werden, haben sie nur Zugriff auf eigene lokale Variablen und globale Variablen, jedoch nicht auf Variablen aus dem Scope, indem der AsyncFunction Konstruktor aufgerufen wurde. Dies ist der Unterschied zum Einsatz von {{jsxref("Global_Objects/eval", "eval")}} mit Quelltext für eine asynchrone Funktionsanweisung.

+
+ +

Das Aufrufen des AsyncFunction Konstruktors als Funktion (ohne Einsatz des new Operators) hat den gleichen Effekt wie das Aufrufen als Konstruktor.

+ +

Eigenschaften

+ +
+
AsyncFunction.length
+
Die AsyncFunction Konstruktor Längeneigenschaft, welche den Wert 1 hat.
+
{{jsxref("AsyncFunction.prototype")}}
+
Erlaubt das Hinzufügen von Eigenschaften zu allen AsyncFunction Objekten.
+
+ +

AsyncFunction Prototype Objekt

+ +

Eigenschaften

+ +
{{page('/de/docs/Web/JavaScript/Reference/Global_Objects/AsyncFunction/prototype', 'Eigenschaften')}}
+ +

AsyncFunction Instanzen

+ +

AsyncFunction Instanzen erben Methoden und Eigenschaften von {{jsxref("AsyncFunction.prototype")}}. Wie bei allen Konstruktoren ist es möglich die Eigenschaften des Konstruktor Objektes zu ändern, um Änderungen an allen AsyncFunction Instanzen vorzunehmen.

+ +

Beispiele

+ +

Erstellen einer asynchronen Funktion mit einem AsyncFunction Konstruktor

+ +
function resolveAfter2Seconds(x) {
+  return new Promise(resolve => {
+    setTimeout(() => {
+      resolve(x);
+    }, 2000);
+  });
+}
+
+var AsyncFunction = Object.getPrototypeOf(async function(){}).constructor
+
+var a = new AsyncFunction('a',
+                          'b',
+                          'return await resolveAfter2Seconds(a) + await resolveAfter2Seconds(b);');
+
+a(10, 20).then(v => {
+  console.log(v); // prints 30 after 4 seconds
+});
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ESDraft', '#sec-async-function-objects', 'AsyncFunction object')}}{{Spec2('ESDraft')}}Initiale Definition in ES2017.
+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.AsyncFunction")}}

+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/asyncfunction/prototype/index.html b/files/de/web/javascript/reference/global_objects/asyncfunction/prototype/index.html new file mode 100644 index 0000000000..2dc516ca5c --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/asyncfunction/prototype/index.html @@ -0,0 +1,61 @@ +--- +title: AsyncFunction.prototype +slug: Web/JavaScript/Reference/Global_Objects/AsyncFunction/prototype +tags: + - Experimental + - JavaScript + - Property + - Prototype + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/AsyncFunction/prototype +--- +
{{JSRef}}
+ +

Die AsyncFunction.prototype Eigenschaft repräsentiert den Prototypen des {{jsxref("AsyncFunction")}} Objektes.

+ +

Beschreibung

+ +

{{jsxref("AsyncFunction")}} Objekte erben von AsyncFunction.prototype. AsyncFunction.prototype kann nicht verändert werden.

+ +

Eigenschaften

+ +
+
AsyncFunction.constructor
+
Der Initialwert ist {{jsxref("AsyncFunction")}}.
+
AsyncFunction.prototype[@@toStringTag]
+
Gibt "AsyncFunction" zurück.
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ESDraft', '#sec-async-function-constructor-prototype', 'AsyncFunction.prototype')}}{{Spec2('ESDraft')}}Initiale Definition in ES2017.
+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.AsyncFunction.prototype")}}

+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/atomics/add/index.html b/files/de/web/javascript/reference/global_objects/atomics/add/index.html new file mode 100644 index 0000000000..f9b8e98b1b --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/atomics/add/index.html @@ -0,0 +1,83 @@ +--- +title: Atomics.add() +slug: Web/JavaScript/Reference/Global_Objects/Atomics/add +tags: + - Atomics + - JavaScript + - Method + - Shared Memory +translation_of: Web/JavaScript/Reference/Global_Objects/Atomics/add +--- +
{{JSRef}}
+ +

Die statische Atomics.add() Methode addiert eine gegebenen Wert an einer gegebenen Position im Array und gibt den alten Wert zurück. Diese atomare Operation garantiert, dass keine andere Schreiboperation während der Operation durchgeführt werden kann.

+ +
{{EmbedInteractiveExample("pages/js/atomics-add.html")}}
+ + + +

Syntax

+ +
Atomics.add(typedArray, index, value)
+
+ +

Parameter

+ +
+
typedArray
+
Ein geteiltes getrypted Integer Array. Eines von {{jsxref("Int8Array")}}, {{jsxref("Uint8Array")}}, {{jsxref("Int16Array")}}, {{jsxref("Uint16Array")}}, {{jsxref("Int32Array")}} oder {{jsxref("Uint32Array")}}.
+
index
+
Die Position in typedArray, zu der value addiert wird.
+
value
+
Die Zahl, die addiert werden soll.
+
+ +

Return value

+ +

Der alte Wert an der gegebenen Position (typedArray[index]).

+ +

Exceptions

+ + + +

Beispiele

+ +
var sab = new SharedArrayBuffer(1024);
+var ta = new Uint8Array(sab);
+
+Atomics.add(ta, 0, 12); // returns 0, the old value
+Atomics.load(ta, 0); // 12
+ +

Spezifikationen

+ + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ESDraft', '#sec-atomics.add', 'Atomics.add')}}{{Spec2('ESDraft')}}Initiale Definition in ES2017.
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Atomics.add")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/atomics/and/index.html b/files/de/web/javascript/reference/global_objects/atomics/and/index.html new file mode 100644 index 0000000000..34093b64e7 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/atomics/and/index.html @@ -0,0 +1,129 @@ +--- +title: Atomics.and() +slug: Web/JavaScript/Reference/Global_Objects/Atomics/and +tags: + - Atomics + - JavaScript + - Method + - Shared Memory +translation_of: Web/JavaScript/Reference/Global_Objects/Atomics/and +--- +
{{JSRef}}
+ +

Die statische Atomics.and() Methode berechnet eine bitweises UND mit einem gegebenen Wert auf einem Wert an einer gegebenen Position im Array und gibt den alten Wert an der Position zurück. Die atomare Operation garantiert, dass kein anderer Schreibprozess während der Operation durchgeführt wird.

+ +
{{EmbedInteractiveExample("pages/js/atomics-and.html")}}
+ + + +

Syntax

+ +
Atomics.and(typedArray, index, value)
+
+ +

Parameter

+ +
+
typedArray
+
Ein geteiltes getrypted Integer Array. Eines von {{jsxref("Int8Array")}}, {{jsxref("Uint8Array")}}, {{jsxref("Int16Array")}}, {{jsxref("Uint16Array")}}, {{jsxref("Int32Array")}} oder {{jsxref("Uint32Array")}}.
+
index
+
Die Position in typedArray, mit der das bitweise UND berechnet wird.
+
value
+
Die Zahl, mit der das bitweise UND berechnet wird.
+
+ +

Rückgabewert

+ +

Der alte Wert an der gegebenen Position (typedArray[index]).

+ +

Exceptions

+ + + +

Beschreibung

+ +

Die bitweise UND Operation ergibt nur 1, wenn beide Werte, a und b, 1 sind. Die Wahrheitstabelle für die UND Operation ist:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
aba & b
000
010
100
111
+ +

Zum Beispiel resultiert ein bitweises UND auf 5 & 1 in 0001, was im Dezimalsystem 1 ist.

+ +
5  0101
+1  0001
+   ----
+1  0001
+ +

Beispiele

+ +
var sab = new SharedArrayBuffer(1024);
+var ta = new Uint8Array(sab);
+ta[0] = 5;
+
+Atomics.and(ta, 0, 1); // returns 0, the old value
+Atomics.load(ta, 0);  // 1
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ESDraft', '#sec-atomics.and', 'Atomics.and')}}{{Spec2('ESDraft')}}Initiale Definition in ES2017.
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Atomics.and")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/atomics/compareexchange/index.html b/files/de/web/javascript/reference/global_objects/atomics/compareexchange/index.html new file mode 100644 index 0000000000..1c61ef7d26 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/atomics/compareexchange/index.html @@ -0,0 +1,86 @@ +--- +title: Atomics.compareExchange() +slug: Web/JavaScript/Reference/Global_Objects/Atomics/compareExchange +tags: + - Atomics + - JavaScript + - Method + - Shared Memory +translation_of: Web/JavaScript/Reference/Global_Objects/Atomics/compareExchange +--- +
{{JSRef}}
+ +

Die statische Atomics.compareExchange() Methode ersetzt einen Wert an einer gegebenen Position im einem Array mit einem gegebene Wert aus, wenn ein gegebenen Wert gleich dem alten Wert ist. Es wird der alte Wert an der Position zurückgegeben, egal ob der abzugleichende Wert gleich oder nicht ist. Die atomare Operation garantiert, dass kein anderer Schreibprozess während der Operation durchgeführt wird.

+ +
{{EmbedInteractiveExample("pages/js/atomics-compareexchange.html")}}
+ + + +

Syntax

+ +
Atomics.compareExchange(typedArray, index, expectedValue, replacementValue)
+
+ +

Parameter

+ +
+
typedArray
+
Ein geteiltes getrypted Integer Array. Eines von {{jsxref("Int8Array")}}, {{jsxref("Uint8Array")}}, {{jsxref("Int16Array")}}, {{jsxref("Uint16Array")}}, {{jsxref("Int32Array")}} oder {{jsxref("Uint32Array")}}.
+
index
+
Die Position in typedArray, an den ein Wert ersetzt wird.
+
expectedValue
+
Wert, auf dem die gleichheit geprüft wird.
+
replacementValue
+
Neu Zahl, die geschreiben wird.
+
+ +

Rückgabewert

+ +

Der alte Wert an der gegebenen Position (typedArray[index]).

+ +

Exceptions

+ + + +

Beispiele

+ +
var sab = new SharedArrayBuffer(1024);
+var ta = new Uint8Array(sab);
+ta[0] = 7;
+
+Atomics.compareExchange(ta, 0, 7, 12); // returns 7, the old value
+Atomics.load(ta, 0); // 12
+ +

Spezifikationen

+ + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ESDraft', '#sec-atomics.compareexchange', 'Atomics.compareExchange')}}{{Spec2('ESDraft')}}Initiale Definition in ES2017.
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Atomics.compareExchange")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/atomics/exchange/index.html b/files/de/web/javascript/reference/global_objects/atomics/exchange/index.html new file mode 100644 index 0000000000..df040868a6 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/atomics/exchange/index.html @@ -0,0 +1,85 @@ +--- +title: Atomics.exchange() +slug: Web/JavaScript/Reference/Global_Objects/Atomics/exchange +tags: + - Atomics + - JavaScript + - Method + - Shared Memory +translation_of: Web/JavaScript/Reference/Global_Objects/Atomics/exchange +--- +
{{JSRef}}
+ +

Die statische Atomics.exchange() Methode ersetzt einen Wert an einer gegebenen Position im einem Array mit einem gegebene Wert aus. Die atomare Operation garantiert, dass kein anderer Schreibprozess während der Operation durchgeführt wird.

+ +
{{EmbedInteractiveExample("pages/js/atomics-exchange.html")}}
+ + + +

Syntax

+ +
Atomics.compareExchange(typedArray, index, value)
+
+ +

Parameter

+ +
+
typedArray
+
Ein geteiltes getrypted Integer Array. Eines von {{jsxref("Int8Array")}}, {{jsxref("Uint8Array")}}, {{jsxref("Int16Array")}}, {{jsxref("Uint16Array")}}, {{jsxref("Int32Array")}} oder {{jsxref("Uint32Array")}}.
+
index
+
Die Position in typedArray, an den ein Wert ersetzt wird.
+
value
+
Neu Zahl, die geschreiben wird.
+
+ +

Rückgabewert

+ +

Der alte Wert an der gegebenen Position (typedArray[index]).

+ +

Exceptions

+ + + +

Beispiele

+ +
var sab = new SharedArrayBuffer(1024);
+var ta = new Uint8Array(sab);
+
+Atomics.compareExchange(ta, 0, 12); // returns 0, the old value
+Atomics.load(ta, 0); // 12
+ +

Spezifikationen

+ + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ESDraft', '#sec-atomics.exchange', 'Atomics.exchange')}}{{Spec2('ESDraft')}}Initiale Definition in ES2017.
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Atomics.exchange")}}

+ +

Siehe auch

+ + + +

 

diff --git a/files/de/web/javascript/reference/global_objects/atomics/index.html b/files/de/web/javascript/reference/global_objects/atomics/index.html new file mode 100644 index 0000000000..e8a945060e --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/atomics/index.html @@ -0,0 +1,116 @@ +--- +title: Atomics +slug: Web/JavaScript/Reference/Global_Objects/Atomics +tags: + - JavaScript + - Shared Memory + - Specifications +translation_of: Web/JavaScript/Reference/Global_Objects/Atomics +--- +
{{JSRef}}
+ +

Das Atomics Objekt unterstützt atomare Operationen als statische Methoden. Diese werden mit {{jsxref("SharedArrayBuffer")}} Objekte benutzt.

+ +

Die atomaren Operationen sind auf dem Atomics Modul installiert. Anders, als bei anderen globalen Objekten, ist, dass Atomics kein Konstruktor ist. Man kann Atomics nicht mit einem new Operator oder als Funktion verwenden. Alle Eigenschaften und Methoden von Atomics sind statisch (genauso wie zum Beispiel bei dem {{jsxref("Math")}} Objekt).

+ +

Eigenschaften

+ +
+
Atomics[Symbol.toStringTag]
+
Der Wert dieser Eigenschaft ist: "Atomics".
+
+ +

Methoden

+ +

Atomare Operationen

+ +

Wenn Speicher geteilt wird, können mehrere Threads auf dem gleichen Speicher lesen und schreiben. Atomare Operationen stellen sicher, dass Werte in einer Operation geschrieben und gelesen werden bevor mit der nächste Operation begonnen wird und dass eine Operation nicht unterbrochen wird.

+ +
+
{{jsxref("Atomics.add()")}}
+
Addiert den angegebenen Wert dem existierenden Wert an der gegebenen Position im Array hinzu. Gibt den alten Wert an der Position zurück.
+
{{jsxref("Atomics.and()")}}
+
Berechnet ein Bitweises UND mit dem Wert an der angegebenen Position im Array und dem angegebenen Wert. Gibt den alten Wert an der Position zurück.
+
{{jsxref("Atomics.compareExchange()")}}
+
Speichert einen angegebenen Wert an der angegebenen Position im Array, wenn dieser gleich einem angegebene Wert ist. Gibt den alten Wert zurück.
+
{{jsxref("Atomics.exchange()")}}
+
Speichert einen angegebenen Wert an einer angegebenen Position im Array. Gibt den alten Wert zurück.
+
+ +
+
{{jsxref("Atomics.load()")}}
+
Gibt den Wert an einer angegebenen Position im Array zurück.
+
{{jsxref("Atomics.or()")}}
+
Berechnet ein Bitweises ODER mit dem gegebenen Wert an der angegebenen Position im Array und dem angegebenen Wert. Gibt den alten Wert an der Position zurück.
+
{{jsxref("Atomics.store()")}}
+
Speichert einen angegebenen Wert an einer angegebenen Position im Array. Gibt den Wert zurück.
+
{{jsxref("Atomics.sub()")}}
+
Subtrahiert einen angegebenen Wert von einem Wert an einer angegebenen Position im Array. Gibt den alten Wert an der Position zurück.
+
{{jsxref("Atomics.xor()")}}
+
Berechnet ein Bitweises XOR mit dem Wert an einer angegebenen Position im Array und einem angegebenen Wert. Gibt den alten Wert an der Position zurück.
+
+ +

Wait und notify

+ +

Die wait() und notify() Methoden sind auf Linux Futexes ("fast user-space mutex") modelliert und ermöglichen es zu warten, bis eine bestimmte Bedingung true wird, und wird als blockierendes Konstrukt verwendet.

+ +
+
{{jsxref("Atomics.wait()")}}
+
Überprüft, ob an der angegebenen Position in einem Array einen angegebener Wert enthalten ist und wartet oder bekommt ein Timeout. Es wird "ok", "not-equal", oder "timed-out" zurückgegeben. Wenn Warten im ausführenden Agenten nicht erlaubt ist, wird ein Fehler geworfen (die meisten Browser erlauben kein wait() im Browser main Thread).
+
{{jsxref("Atomics.notify()")}}
+
Benachrichtigt Agenten, die auf die angegebene Arrayposition warten. Gibt die Zahl der benachrichtigten Agenten zurück.
+
{{jsxref("Atomics.isLockFree()", "Atomics.isLockFree(size)")}}
+
+

Eine primitive Optimierung, die feststellten kann, ob Locks und atomare Operationen benutzt werden können. Gibt true zurück, wenn atomare Operationen auf einem Array der gegebenen Elementgröße mit einer atomaren Hardwareoperation implementiert ist (im Gegensatz zu einem Lock). Nur für Experten.

+
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ESDraft', '#sec-atomics-object', 'Atomics')}}{{Spec2('ESDraft')}}Initiale Definition in ES2017.
{{SpecName('ES8', '#sec-atomics-object', 'Atomics')}}{{Spec2('ES8')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Atomics")}}

+ +

Kompatibilitätshinweise

+ +

Vor Firefox 48 waren die neuesten API-Namen und Semantiken noch nicht implementiert. Die Unterschiede zwischen der Firefox Version 46 und der Version 48 sind:

+ + + +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/atomics/islockfree/index.html b/files/de/web/javascript/reference/global_objects/atomics/islockfree/index.html new file mode 100644 index 0000000000..61bf90e0bf --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/atomics/islockfree/index.html @@ -0,0 +1,73 @@ +--- +title: Atomics.isLockFree() +slug: Web/JavaScript/Reference/Global_Objects/Atomics/isLockFree +tags: + - Atomics + - JavaScript + - Method + - Shared Memory +translation_of: Web/JavaScript/Reference/Global_Objects/Atomics/isLockFree +--- +
{{JSRef}}
+ +

Die statische Atomics.isLockFree() Methode wird benutzt, um festzustellen, ob ein Lock (Sperre) oder eine atomare Operation vorhanden ist. Sie gibt true zurück, wenn die gegebene Größe eine von den in der BYTES_PER_ELEMENT Eigenschften von Integer TypedArray Typen ist.

+ +
{{EmbedInteractiveExample("pages/js/atomics-islockfree.html")}}
+ + + +

Syntax

+ +
Atomics.isLockFree(size)
+
+ +

Parameter

+ +
+
size
+
Die größe in Bytes, für die geprüft wird.
+
+ +

Rückgabewert

+ +

Ein {{jsxref("Boolean")}}, der angibt, ob die Operation frei von Locks ist.

+ +

Beispiele

+ +
Atomics.isLockFree(1); // true
+Atomics.isLockFree(2); // true
+Atomics.isLockFree(3); // false
+Atomics.isLockFree(4); // true
+Atomics.isLockFree(5); // false
+Atomics.isLockFree(6); // false
+Atomics.isLockFree(7); // false
+Atomics.isLockFree(8); // false
+ +

Spezifikationen

+ + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ESDraft', '#sec-atomics.islockfree', 'Atomics.isLockFree')}}{{Spec2('ESDraft')}}Initiale Definition in ES2017.
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Atomics.isLockFree")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/atomics/load/index.html b/files/de/web/javascript/reference/global_objects/atomics/load/index.html new file mode 100644 index 0000000000..07d2c4a477 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/atomics/load/index.html @@ -0,0 +1,81 @@ +--- +title: Atomics.load() +slug: Web/JavaScript/Reference/Global_Objects/Atomics/load +tags: + - Atomics + - JavaScript + - Method + - Shared Memory +translation_of: Web/JavaScript/Reference/Global_Objects/Atomics/load +--- +
{{JSRef}}
+ +

Die statische Atomics.load() Methode gibt den Wert an einer gegebenen Position in einem Array zurück.

+ +
{{EmbedInteractiveExample("pages/js/atomics-load.html")}}
+ + + +

Syntax

+ +
Atomics.load(typedArray, index)
+
+ +

Parameter

+ +
+
typedArray
+
Ein geteiltes getrypted Integer Array. Eines von {{jsxref("Int8Array")}}, {{jsxref("Uint8Array")}}, {{jsxref("Int16Array")}}, {{jsxref("Uint16Array")}}, {{jsxref("Int32Array")}} oder {{jsxref("Uint32Array")}}.
+
index
+
Die Position in typedArray, von der der Wert geladen wird.
+
+ +

Rückgabewert

+ +

Der Wert an der gegebenen Position (typedArray[index]).

+ +

Exceptions

+ + + +

Beispiele

+ +
var sab = new SharedArrayBuffer(1024);
+var ta = new Uint8Array(sab);
+
+Atomics.add(ta, 0, 12);
+Atomics.load(ta, 0); // 12
+ +

Spezifikationen

+ + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ESDraft', '#sec-atomics.load', 'Atomics.load')}}{{Spec2('ESDraft')}}Initiale Definition in ES2017.
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Atomics.load")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/atomics/or/index.html b/files/de/web/javascript/reference/global_objects/atomics/or/index.html new file mode 100644 index 0000000000..ec052cadde --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/atomics/or/index.html @@ -0,0 +1,129 @@ +--- +title: Atomics.or() +slug: Web/JavaScript/Reference/Global_Objects/Atomics/or +tags: + - Atomics + - JavaScript + - Method + - Shared Memory +translation_of: Web/JavaScript/Reference/Global_Objects/Atomics/or +--- +
{{JSRef}}
+ +

Die statische Atomics.or() Methode berechnet eine bitweises ODER mit einem gegebenen Wert auf einem Wert an einer gegebenen Position im Array und gibt den alten Wert an der Position zurück. Die atomare Operation garantiert, dass kein anderer Schreibprozess während der Operation durchgeführt wird.

+ +
{{EmbedInteractiveExample("pages/js/atomics-or.html")}}
+ + + +

Syntax

+ +
Atomics.and(typedArray, index, value)
+
+ +

Parameter

+ +
+
typedArray
+
Ein geteiltes getrypted Integer Array. Eines von {{jsxref("Int8Array")}}, {{jsxref("Uint8Array")}}, {{jsxref("Int16Array")}}, {{jsxref("Uint16Array")}}, {{jsxref("Int32Array")}} oder {{jsxref("Uint32Array")}}.
+
index
+
Die Position in typedArray, mit der das bitweise ODER berechnet wird.
+
value
+
Die Zahl, mit der das bitweise ODER berechnet wird.
+
+ +

Rückgabewert

+ +

Der alte Wert an der gegebenen Position (typedArray[index]).

+ +

Exceptions

+ + + +

Beschreibung

+ +

Die bitweise ODER Operation ergibt nur 1, wenn eine Werte, a oder b, 1 ist. Die Wahrheitstabelle für die ODER Operation ist:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
aba | b
000
011
101
111
+ +

Zum Beispiel resultiert ein bitweises ODER auf 5 | 1 in 0111, was im Dezimalsystem 5 ist.

+ +
5  0101
+1  0001
+   ----
+5  0101
+ +

Beispiele

+ +
var sab = new SharedArrayBuffer(1024);
+var ta = new Uint8Array(sab);
+ta[0] = 2;
+
+Atomics.or(ta, 0, 1); // returns 2, the old value
+Atomics.load(ta, 0);  // 3
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ESDraft', '#sec-atomics.or', 'Atomics.or')}}{{Spec2('ESDraft')}}Initiale Definition in ES2017.
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Atomics.or")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/atomics/store/index.html b/files/de/web/javascript/reference/global_objects/atomics/store/index.html new file mode 100644 index 0000000000..6112dc5f62 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/atomics/store/index.html @@ -0,0 +1,82 @@ +--- +title: Atomics.store() +slug: Web/JavaScript/Reference/Global_Objects/Atomics/store +tags: + - Atomics + - JavaScript + - Method + - Shared Memory +translation_of: Web/JavaScript/Reference/Global_Objects/Atomics/store +--- +
{{JSRef}}
+ +

Die statische Atomics.store() Methode speichert einen gegebenen Wert an einer gegebenen Position in dem Array und gibt den Wert zurück.

+ +
{{EmbedInteractiveExample("pages/js/atomics-store.html")}}
+ + + +

Syntax

+ +
Atomics.store(typedArray, index, value)
+
+ +

Parameter

+ +
+
typedArray
+
Ein geteiltes getrypted Integer Array. Eines von {{jsxref("Int8Array")}}, {{jsxref("Uint8Array")}}, {{jsxref("Int16Array")}}, {{jsxref("Uint16Array")}}, {{jsxref("Int32Array")}} oder {{jsxref("Uint32Array")}}.
+
index
+
Die Position in typedArray, an der value gespeichert wird.
+
value
+
Die Zahl, die gespeichert wird.
+
+ +

Rückgabewert

+ +

Der Wert, der abgespeichert wurde.

+ +

Exceptions

+ + + +

Beispiele

+ +
var sab = new SharedArrayBuffer(1024);
+var ta = new Uint8Array(sab);
+
+Atomics.store(ta, 0, 12); // 12
+ +

Spezifikationen

+ + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ESDraft', '#sec-atomics.store', 'Atomics.store')}}{{Spec2('ESDraft')}}Initiale Definition in ES2017.
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Atomics.store")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/atomics/sub/index.html b/files/de/web/javascript/reference/global_objects/atomics/sub/index.html new file mode 100644 index 0000000000..cce9ae06c6 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/atomics/sub/index.html @@ -0,0 +1,86 @@ +--- +title: Atomics.sub() +slug: Web/JavaScript/Reference/Global_Objects/Atomics/sub +tags: + - Atomics + - Java + - Method + - Shared Memory +translation_of: Web/JavaScript/Reference/Global_Objects/Atomics/sub +--- +
{{JSRef}}
+ +

Die statische Atomics.sub() Methode subtrahiert eine gegebenen Wert an einer gegebenen Position im Array und gibt den alten Wert zurück. Diese atomare Operation garantiert, dass keine andere Schreiboperation während der Operation durchgeführt werden kann.

+ +
{{EmbedInteractiveExample("pages/js/atomics-sub.html")}}
+ + + +

Syntax

+ +
Atomics.add(typedArray, index, value)
+
+ +

Parameter

+ +
+
typedArray
+
Ein geteiltes getrypted Integer Array. Eines von {{jsxref("Int8Array")}}, {{jsxref("Uint8Array")}}, {{jsxref("Int16Array")}}, {{jsxref("Uint16Array")}}, {{jsxref("Int32Array")}} oder {{jsxref("Uint32Array")}}.
+
index
+
Die Position in typedArray, zu der value subtrahiert wird.
+
value
+
Die Zahl, die subtrahiert werden soll.
+
+ +

Return value

+ +

Der alte Wert an der gegebenen Position (typedArray[index]).

+ +

Exceptions

+ + + +

Beispiele

+ +
var sab = new SharedArrayBuffer(1024);
+var ta = new Uint8Array(sab);
+ta[0] = 48;
+
+Atomics.sub(ta, 0, 12); // returns 48, the old value
+Atomics.load(ta, 0); // 36
+ +

Spezifikationen

+ + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ESDraft', '#sec-atomics.sub', 'Atomics.sub')}}{{Spec2('ESDraft')}}Initiale Definition in ES2017.
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Atomics.sub")}}

+ +

Siehe auch

+ + + +

 

diff --git a/files/de/web/javascript/reference/global_objects/atomics/wait/index.html b/files/de/web/javascript/reference/global_objects/atomics/wait/index.html new file mode 100644 index 0000000000..6af6022fc4 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/atomics/wait/index.html @@ -0,0 +1,95 @@ +--- +title: Atomics.wait() +slug: Web/JavaScript/Reference/Global_Objects/Atomics/wait +tags: + - Atomics + - JavaScript + - Method + - Shared Memory +translation_of: Web/JavaScript/Reference/Global_Objects/Atomics/wait +--- +
{{JSRef}}
+ +

Die statische Atomics.wait() Methode verifiziert, dass eine gegebene Position in einem {{jsxref("Int32Array")}} ein gegebene Wert ist und dann schläft und entweder aufgeweckt wird oder ein Timeout bekommt. Die Strings "ok", "not-equal", und "timed-out" sind alle möglichen Rückgabewerte

+ +
+

Hinweis: Diese Operation funktioniert nur mit einem geteilten {{jsxref("Int32Array")}} und ist nicht im Main-Thread erlaubt.

+
+ +

Syntax

+ +
Atomics.wait(typedArray, index, value[, timeout])
+
+ +

Parameter

+ +
+
typedArray
+
Ein geteiltes {{jsxref("Int32Array")}}.
+
index
+
Die Position im typedArray, an der gewartet wird.
+
value
+
Der wert, mit dem getestet wird.
+
timeout {{optional_inline}}
+
Wartezeit in Millisekunden. {{jsxref("Infinity")}}, wenn keine Zeit angegeben wird.
+
+ +

Rückgabewert

+ +

Ein {{jsxref("String")}} welcher "ok", "not-equal" oder "timed-out" ist.

+ +

Exceptions

+ + + +

Beipsiele

+ +

Gegeben ist ein Int32Array:

+ +
var sab = new SharedArrayBuffer(1024);
+var int32 = new Int32Array(sab);
+
+ +

Ein lesender Thread schläft und wartet auf Position 0, ander der Wert 0 erwartet wird. Solange diese gegeben ist, geht es nicht weiter. Immer wenn ein neuer schreibender Thread einen neuen Wert speichert, wacht der Thread. Im Anschluss ist der neue Wert an der Position 0 (123).

+ +
Atomics.wait(int32, 0, 0);
+console.log(int32[0]); // 123
+ +

Ein schreibender Thread speichert einen neuen Wert und wacht den wartenden Thread nach dem Schreiben auf.

+ +
console.log(int32[0]); // 0;
+Atomics.store(int32, 0, 123);
+Atomics.wake(int32, 0, 1);
+ +

Spezifikationen

+ + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ESDraft', '#sec-atomics.wait', 'Atomics.wait')}}{{Spec2('ESDraft')}}Initiale Definition in ES2017.
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Atomics.wait")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/atomics/wake/index.html b/files/de/web/javascript/reference/global_objects/atomics/wake/index.html new file mode 100644 index 0000000000..5ac06d7adc --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/atomics/wake/index.html @@ -0,0 +1,93 @@ +--- +title: Atomics.notify() +slug: Web/JavaScript/Reference/Global_Objects/Atomics/wake +tags: + - Atomics + - JavaScript + - Method + - Shared Memory +translation_of: Web/JavaScript/Reference/Global_Objects/Atomics/notify +--- +
{{JSRef}}
+ +

Die statische Atomics.notify() Methode benachrichtigt Threads, die in einer Warteschlange schlafen.

+ +
+

Hinweis: Diese Operation funktioniert nur mit einem {{jsxref("Int32Array")}}.

+
+ +

Syntax

+ +
Atomics.notify(typedArray, index, count)
+
+ +

Parameter

+ +
+
typedArray
+
Ein geteiltes {{jsxref("Int32Array")}}.
+
index
+
Die Position im typedArray, an der aufgewacht wird.
+
count
+
Anzahl der aufzuweckenden Threads. Standard ist {{jsxref("Infinity", "+Infinity")}}.
+
+ +

Rückgabewert

+ +

Anzahl an geweckten Threads.

+ +

Exceptions

+ + + +

Beipsiele

+ +

Gegeben ist ein Int32Array:

+ +
var sab = new SharedArrayBuffer(1024);
+var int32 = new Int32Array(sab);
+
+ +

Ein lesender Thread schläft und wartet auf Position 0, ander der Wert 0 erwartet wird. Solange diese gegeben ist, geht es nicht weiter. Immer wenn ein neuer schreibender Thread einen neuen Wert speichert, wacht der Thread. Im Anschluss ist der neue Wert an der Position 0 (123).

+ +
Atomics.wait(int32, 0, 0);
+console.log(int32[0]); // 123
+ +

Ein schreibender Thread speichert einen neuen Wert und wacht den wartenden Tread nach dem Schreiben auf.

+ +
console.log(int32[0]); // 0;
+Atomics.store(int32, 0, 123);
+Atomics.notify(int32, 0, 1);
+ +

Spezifikationen

+ + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ESDraft', '#sec-atomics.notify', 'Atomics.notify')}}{{Spec2('ESDraft')}}Initiale Definition in ES2017.
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Atomics.notify")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/atomics/xor/index.html b/files/de/web/javascript/reference/global_objects/atomics/xor/index.html new file mode 100644 index 0000000000..913fcc1298 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/atomics/xor/index.html @@ -0,0 +1,130 @@ +--- +title: Atomics.xor() +slug: Web/JavaScript/Reference/Global_Objects/Atomics/xor +tags: + - Atomics + - JavaScript + - Method + - Shared Memory +translation_of: Web/JavaScript/Reference/Global_Objects/Atomics/xor +--- +
{{JSRef}}
+ +

Die statische Atomics.xor() Methode berechnet eine bitweises XOR mit einem gegebenen Wert auf einem Wert an einer gegebenen Position im Array und gibt den alten Wert an der Position zurück. Die atomare Operation garantiert, dass kein anderer Schreibprozess während der Operation durchgeführt wird.

+ +
{{EmbedInteractiveExample("pages/js/atomics-xor.html")}}
+ + + +

Syntax

+ +
Atomics.and(typedArray, index, value)
+
+ +

Parameter

+ +
+
typedArray
+
Ein geteiltes getrypted Integer Array. Eines von {{jsxref("Int8Array")}}, {{jsxref("Uint8Array")}}, {{jsxref("Int16Array")}}, {{jsxref("Uint16Array")}}, {{jsxref("Int32Array")}} oder {{jsxref("Uint32Array")}}.
+
index
+
Die Position in typedArray, mit der das bitweise XOR berechnet wird.
+
value
+
Die Zahl, mit der das bitweise XOR berechnet wird.
+
+ +

Rückgabewert

+ +

Der alte Wert an der gegebenen Position (typedArray[index]).

+ +

Exceptions

+ + + +

Beschreibung

+ +

Die bitweise XOR Operation ergibt nur 1, wenn genau ein Werte, a oder b, 1 ist. Die Wahrheitstabelle für die XOR Operation ist:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
aba & b
000
011
101
110
+ +

Zum Beispiel resultiert ein bitweises XOR auf 5 & 1 in 0100, was im Dezimalsystem 4 ist.

+ +
5  0101
+1  0001
+   ----
+4  0100
+ +

Beispiele

+ +
var sab = new SharedArrayBuffer(1024);
+var ta = new Uint8Array(sab);
+ta[0] = 5;
+
+Atomics.xor(ta, 0, 1); // returns 5, the old value
+Atomics.load(ta, 0);  // 4
+ +

Spezifikationen

+ + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ESDraft', '#sec-atomics.xor', 'Atomics.xor')}}{{Spec2('ESDraft')}}Initiale Definition in ES2017.
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Atomics.xor")}}

+ +

Siehe auch

+ + + +

 

diff --git a/files/de/web/javascript/reference/global_objects/boolean/index.html b/files/de/web/javascript/reference/global_objects/boolean/index.html new file mode 100644 index 0000000000..245c2d1a8b --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/boolean/index.html @@ -0,0 +1,159 @@ +--- +title: Boolean +slug: Web/JavaScript/Reference/Global_Objects/Boolean +tags: + - Boolean + - Constructor + - JavaScript +translation_of: Web/JavaScript/Reference/Global_Objects/Boolean +--- +
{{JSRef}}
+ +

Das Boolean Objekt ist ein Objekt-Wrapper für einen booleschen Wert.

+ +

Syntax

+ +
new Boolean([value])
+ +

Parameter

+ +
+
value
+
Optional. Der Anfangswert des Boolean-Objektes.
+
+ +

Beschreibung

+ +

Der als erster Parameter übergebene Wert wird, wenn nötig, in einen booleschen Wert umgewandelt. Wird der Wert ausgelassen oder ist 0, -0, {{jsxref("null")}}, false, {{jsxref("NaN")}}, {{jsxref("undefined")}} oder der leere String (""), so besitzt das Objekt den Initialwert false. Alle anderen Werte, einschließlich eines Objektes oder des Strings "false", erzeugen ein Objekt mit dem Initialwert true.

+ +

Die Werte true und false des Boolean-Objektes sind nicht zu verwechseln mit den primitiven Booleanwerten true und false.

+ +

Jedes Objekt, dessen Wert nicht {{jsxref("undefined")}} oder {{jsxref("null")}} entspricht, einschließlich eines Boolean-Objektes, dessen Wert false ist, wird bei der Übergabe an eine Bedingung als true gewertet. Beispielsweise wird das folgende {{jsxref("Statements/if...else", "if")}} Konstrukt als true ausgewertet:

+ +
var x = new Boolean("false");
+if (x) {
+  // this code is executed
+}
+
+ +

Dieses Verhalten trifft nicht auf primitive Boolwerte zu. Beispielsweise ergibt das folgende {{jsxref("Statements/if...else", "if")}} Konstrukt false:

+ +
x = false;
+if (x) {
+  // this code is not executed
+}
+
+ +

Ein Boolean-Objekt sollte nicht genutzt werden um einen nicht-booleschenWert in einen booleschen Wert umzuwandeln. In diesem Fall wäre es besser, den Boolean als Funktion zu verwenden:

+ +
x = Boolean(expression);     // preferred
+x = new Boolean(expression); // don't use
+
+ +

Wird ein Objekt, einschließlich eines Boolean-Objektes dessen Wert false ist, als Anfangsparameter an das Boolean-Objekt übergeben, so hat das neue Boolean-Objekt den Wert true.

+ +
myFalse = new Boolean(false);   // initialer Wert von false
+g = Boolean(myFalse);       // initialer Wert von  true
+myString = new String('Hello'); // string objekt
+s = Boolean(myString);      //  initialer Wert von true
+
+ +

Ein Boolean-Objekt darf nicht anstelle eines primitiven Boolean-wertes verwendet werden.

+ +
+

Hinweis: Wenn die nicht standardisierte Eigenschaft document.all als Argument für den Konstruktor benutzt wird, ist das Resultat ein Boolean Objekt mit dem Wert false. Diese Eigenschaft ist veraltet und nicht standardisierte und darf nicht eingesetzt werden.

+
+ +

Eigenschaften

+ +
+
Boolean.length
+
Längen-Eingeschaft, die den Wert 1 hat.
+
{{jsxref("Boolean.prototype")}}
+
Repräsentiert den Prototypen für den Boolean Konstruktor
+
+ +

Methoden

+ +

Das globale Objekt Boolean enthält zwar keine eigenen Methoden, erbt jedoch einige seiner Methoden durch die Prototypenkette:

+ +

Boolean Instanzen

+ +

Alle Instanzen von Boolean erben von {{jsxref("Boolean.prototype")}}. Wie bei allen Konstruktoren diktiert das Prototyp-Objekt die geerbten Eigenschaften und Methoden der Child-Elemente.

+ +

Eigenschaften

+ +
{{page('/de/docs/Web/JavaScript/Reference/Global_Objects/Boolean/prototype', 'Eigenschaften')}}
+ +

Methoden

+ +
{{page('/de/docs/Web/JavaScript/Reference/Global_Objects/Boolean/prototype', 'Methoden')}}
+ +

Beispiele

+ +

Erstellung eines Boolean Objektes mit dem Anfangswert false

+ +
var bNoParam = new Boolean();
+var bZero = new Boolean(0);
+var bNull = new Boolean(null);
+var bEmptyString = new Boolean('');
+var bfalse = new Boolean(false);
+
+ +

Erstellung eines Boolean Objektes mit dem Anfangswert true

+ +
var btrue = new Boolean(true);
+var btrueString = new Boolean('true');
+var bfalseString = new Boolean('false');
+var bSuLin = new Boolean('Su Lin');
+var bArrayProto = new Boolean([]);
+var bObjProto = new Boolean({});
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES1')}}{{Spec2('ES1')}}Ursprüngliche Definition. Implementiert in JavaScript 1.0.
{{SpecName('ES5.1', '#sec-15.6', 'Boolean')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-boolean-objects', 'Boolean')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-boolean-objects', 'Boolean')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.Boolean")}}

+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/boolean/prototype/index.html b/files/de/web/javascript/reference/global_objects/boolean/prototype/index.html new file mode 100644 index 0000000000..2a6dda6de7 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/boolean/prototype/index.html @@ -0,0 +1,83 @@ +--- +title: Boolean.prototype +slug: Web/JavaScript/Reference/Global_Objects/Boolean/prototype +tags: + - Boolean + - JavaScript + - Property + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Boolean +--- +
{{JSRef}}
+ +
Die Boolean.prototype Eigenschaft repräsentiert den Prototypen des  {{jsxref("Boolean")}} Konstruktors.
+ +
 
+ +
{{js_property_attributes(0, 0, 0)}}
+ +
{{EmbedInteractiveExample("pages/js/boolean-constructor.html")}}
+ + + +

Beschreibung

+ +

{{jsxref("Boolean")}} Instanzen ergen von from Boolean.prototype. Man kann das prototype Objekt benutzen, um Eigenschaften und Methoden zu allen {{jsxref("Boolean")}} Instanzen hinzuzufügen.

+ +

Eigenschaften

+ +
+
Boolean.prototype.constructor
+
Gibt die Funktion, die einen Instanz des Prototypen erstellt zurück. Im Standardfall ist das die Funktion {{jsxref("Boolean")}}.
+
+ +

Methoden

+ +
+
{{jsxref("Boolean.prototype.toSource()")}} {{non-standard_inline}}
+
Gibt den Quelltext des {{jsxref("Boolean")}} Objektes als String zurück. Man kann diesen String benutzen um ein gleiches Objekt zu erstellen. Diese Methode überschreibt die {{jsxref("Object.prototype.toSource()")}} Methode.
+
{{jsxref("Boolean.prototype.toString()")}}
+
Gibt einen String "true" oder "false" zurück, abhängig vom Wert des Objektes. Diese Methode überschreibt die {{jsxref("Object.prototype.toString()")}} Methode.
+
{{jsxref("Boolean.prototype.valueOf()")}}
+
Gibt einen primitiven Wert des {{jsxref("Boolean")}} Objektes zurück. Diese Methode überschreibt die {{jsxref("Object.prototype.valueOf()")}} Methode.
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES1')}}{{Spec2('ES1')}}Initiale Definition. Implementiert in JavaScript 1.0.
{{SpecName('ES5.1', '#sec-15.6.3.1', 'Boolean.prototype')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-boolean.prototype', 'Boolean.prototype')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-boolean.prototype', 'Boolean.prototype')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.Boolean.prototype")}}

+
diff --git a/files/de/web/javascript/reference/global_objects/boolean/tosource/index.html b/files/de/web/javascript/reference/global_objects/boolean/tosource/index.html new file mode 100644 index 0000000000..b37e4c226f --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/boolean/tosource/index.html @@ -0,0 +1,60 @@ +--- +title: Boolean.prototype.toSource() +slug: Web/JavaScript/Reference/Global_Objects/Boolean/toSource +tags: + - Boolean + - JavaScript + - Method + - Non-standard + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Boolean/toSource +--- +
{{JSRef}} {{non-standard_header}}
+ +
Die toSource() Methode gibt einen String mit dem Quelltext des Objektes zurück.
+ +
 
+ +

Syntax

+ +
booleanObj.toSource()
+Boolean.toSource()
+ +

Rückgabewert

+ +

Eine String-Repräsentation des Quelltextes des Objektes.

+ +

Beschreibung

+ +

Die toSource gibt folgende Werte zurück:

+ + + +

Die Methode wird intern von JavaScript aufgerufen und wird normalerweise nicht in Applikationen eingesetzt.

+ +

Spezifikationen

+ +

In keinem Standard enthalten. Implementiert in JavaScript 1.3.

+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.Boolean.toSource")}}

+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/boolean/tostring/index.html b/files/de/web/javascript/reference/global_objects/boolean/tostring/index.html new file mode 100644 index 0000000000..0732aec15a --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/boolean/tostring/index.html @@ -0,0 +1,89 @@ +--- +title: Boolean.prototype.toString() +slug: Web/JavaScript/Reference/Global_Objects/Boolean/toString +tags: + - Boolean + - JavaScript + - Method + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Boolean/toString +--- +
{{JSRef}}
+ +

Die toString() gibt einen String, der eine {{jsxref("Boolean")}} Objekt repräsentiert, zurück.

+ +
{{EmbedInteractiveExample("pages/js/boolean-tostring.html")}}
+ + + +

Syntax

+ +
bool.toString()
+ +

Rückgabewert

+ +

Eine String-Repräsentation des {{jsxref("Boolean")}} Objektes.

+ +

Beschreibung

+ +

Das {{jsxref("Boolean")}} Objekt überschreibt die toString Methode des {{jsxref("Object")}} Objektes. Es erbt nicht von {{jsxref("Object.prototype.toString()")}}. Für {{jsxref("Boolean")}} Objekte gibt die toString Methode einen String, der das Objekt repräsentiert, zurück.

+ +

JavaScript ruft die toString Methode automatisch auf, wenn ein {{jsxref("Boolean")}} Objekt als Text dargestellt wird oder wenn ein {{jsxref("Boolean")}} mit einem String konkatiniert wird.

+ +

Für {{jsxref("Boolean")}} Objekte und Werte gibt die eingebaute toString Methode die Strings "true" oder "false", abhängig vom Wert des Boolean, zurück.

+ +

Beispiele

+ +

Einsatz von toString

+ +

Im folgenden Beispiel gibt der Aufruf flag.toString() den Wert "true" zurück:

+ +
var flag = new Boolean(true);
+var myVar = flag.toString();
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES1')}}{{Spec2('ES1')}}Initiale Definition.
{{SpecName('ES5.1', '#sec-15.6.4.2', 'Boolean.prototype.toString')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-boolean.prototype.tostring', 'Boolean.prototype.toString')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-boolean.prototype.tostring', 'Boolean.prototype.toString')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.Boolean.toString")}}

+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/boolean/valueof/index.html b/files/de/web/javascript/reference/global_objects/boolean/valueof/index.html new file mode 100644 index 0000000000..3d21502589 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/boolean/valueof/index.html @@ -0,0 +1,85 @@ +--- +title: Boolean.prototype.valueOf() +slug: Web/JavaScript/Reference/Global_Objects/Boolean/valueOf +tags: + - Boolean + - JavaScript + - Method + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Boolean/valueOf +--- +
{{JSRef}}
+ +

Die valueOf() Methode gibt einen primitiven Wert des {{jsxref("Boolean")}} Objektes zurück.

+ +
{{EmbedInteractiveExample("pages/js/boolean-valueof.html")}}
+ + + +

Syntax

+ +
bool.valueOf()
+ +

Rückgabewert

+ +

Den primitiven Wert des gegebenen {{jsxref("Boolean")}} Objektes.

+ +

Beschreibung

+ +

Die valueOf Methode des {{jsxref("Boolean")}} Objektes gibt einen primitiven Wert eines {{jsxref("Boolean")}} Objekts oder {{jsxref("Boolean")}} Literals als Boolean Datentyp zurück.

+ +

Diese Methode wird intern von JavaScript aufgerufen und wird nicht in normalen Anwendungen benutzt.

+ +

Beispiele

+ +

Einsatz von valueOf

+ +
x = new Boolean();
+myVar = x.valueOf(); // weist  myVar false zu
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES1')}}{{Spec2('ES1')}}Initiale Definition. Implementiert in JavaScript 1.1.
{{SpecName('ES5.1', '#sec-15.6.4.3', 'Boolean.prototype.valueOf')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-boolean.prototype.valueof', 'Boolean.prototype.valueOf')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-boolean.prototype.valueof', 'Boolean.prototype.valueOf')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.Boolean.valueOf")}}

+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/dataview/buffer/index.html b/files/de/web/javascript/reference/global_objects/dataview/buffer/index.html new file mode 100644 index 0000000000..5cb68fd75b --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/dataview/buffer/index.html @@ -0,0 +1,71 @@ +--- +title: DataView.prototype.buffer +slug: Web/JavaScript/Reference/Global_Objects/DataView/buffer +tags: + - DataView + - JavaScript + - Property + - Prototype + - TypedArrays +translation_of: Web/JavaScript/Reference/Global_Objects/DataView/buffer +--- +
{{JSRef}}
+ +

Die buffer Zugriffseigenschaft repräsentiert und referenziert den {{jsxref("ArrayBuffer")}} oder {{jsxref("SharedArrayBuffer")}}, der bei der Erstellung der DataView übergeben wurde.

+ +
{{EmbedInteractiveExample("pages/js/dataview-buffer.html")}}
+ + + +

Syntax

+ +
dataview.buffer
+ +

Beschreibung

+ +

Die buffer Eigenschaft ist eine Zugriffseigenschaft, bei der die Funktion für das erneute Beschreibeiben undefined ist. Das bedeutet, dass die Eigenschaft nur gelesen werden kann. Der Wert wird bei der Erstellung der DataView festgelegt und kann nicht mehr geändert werden.

+ +

Beispiele

+ +

Einsatz der buffer Eigenschaft

+ +
var buffer = new ArrayBuffer(8);
+var dataview = new DataView(buffer);
+dataview.buffer; // ArrayBuffer { byteLength: 8 }
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES6', '#sec-get-dataview.prototype.buffer', 'DataView.prototype.buffer')}}{{Spec2('ES6')}}Initiale Definition.
{{SpecName('ESDraft', '#sec-get-dataview.prototype.buffer', 'DataView.prototype.buffer')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.DataView.buffer")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/dataview/bytelength/index.html b/files/de/web/javascript/reference/global_objects/dataview/bytelength/index.html new file mode 100644 index 0000000000..dd20867f50 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/dataview/bytelength/index.html @@ -0,0 +1,77 @@ +--- +title: DataView.prototype.byteLength +slug: Web/JavaScript/Reference/Global_Objects/DataView/byteLength +tags: + - DataView + - JavaScript + - Property + - Prototype + - TypedArrays +translation_of: Web/JavaScript/Reference/Global_Objects/DataView/byteLength +--- +
{{JSRef}}
+ +

Die byteLength Zugriffseigenschaft repräsentiert die Länge (in Bytes) der View vom Anfang ihres {{jsxref("ArrayBuffer")}} oder {{jsxref("SharedArrayBuffer")}}.

+ +
{{EmbedInteractiveExample("pages/js/dataview-bytelength.html")}}
+ + + +

Syntax

+ +
dataview.byteLength
+ +

Beschreibung

+ +

Die byteLength Eigenschaft ist eine Zugriffseigenschaft, bei der die set Funktion undefined ist. Das bedeutet, dass diese Eigenschaften nur gelesen werden kann. Der Wert der Eigenschaft wird beim erstellen einer DataView bekannt gemacht und kann nicht mehr verändert werden. Wenn beim erstellen kein Offset oder keine byteLength angegeben sind, wird der byteLength Wert des übergebenen ArrayBuffer oder SharedArrayBuffer zurückgegeben.

+ +

Beispiele

+ +

Einsatz der byteLength Eigenschaft

+ +
var buffer = new ArrayBuffer(8);
+var dataview = new DataView(buffer);
+dataview.byteLength; // 8 (gleich mit byteLength von buffer)
+
+var dataview2 = new DataView(buffer, 1, 5);
+dataview2.byteLength; // 5 (wie beim erstellen der DataView spezifiziert)
+
+var dataview3 = new DataView(buffer, 2);
+dataview3.byteLength; // 6 (passend mit dem Offset beim erstellen der DataView)
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES6', '#sec-get-dataview.prototype.bytelength', 'DataView.prototype.byteLength')}}{{Spec2('ES6')}}Initiale Definition.
{{SpecName('ESDraft', '#sec-get-dataview.prototype.bytelength', 'DataView.prototype.byteLength')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.DataView.byteLength")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/dataview/byteoffset/index.html b/files/de/web/javascript/reference/global_objects/dataview/byteoffset/index.html new file mode 100644 index 0000000000..b6889271ba --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/dataview/byteoffset/index.html @@ -0,0 +1,74 @@ +--- +title: DataView.prototype.byteOffset +slug: Web/JavaScript/Reference/Global_Objects/DataView/byteOffset +tags: + - DataView + - JavaScript + - Property + - Prototype + - TypedArrays +translation_of: Web/JavaScript/Reference/Global_Objects/DataView/byteOffset +--- +
{{JSRef}}
+ +

Die byteOffset Zugriffseigenschaft repräsentiert das Offset (in Bytes) der View vom Anfang ihres {{jsxref("ArrayBuffer")}} oder {{jsxref("SharedArrayBuffer")}}.

+ +
{{EmbedInteractiveExample("pages/js/dataview-byteoffset.html")}}
+ + + +

Syntax

+ +
dataview.byteOffset
+ +

Beschreibung

+ +

Die byteOffset Eigenschaft ist eine Zugriffseigenschaft, bei der die set Funktion undefined ist. Das bedeutet, dass diese Eigenschaften nur gelesen werden kann. Der Wert der Eigenschaft wird beim erstellen einer DataView bekannt gemacht und kann nicht mehr verändert werden.

+ +

Beispiele

+ +

Einsatz der byteOffset Eigenschaft

+ +
var buffer = new ArrayBuffer(8);
+var dataview = new DataView(buffer);
+dataview.byteOffset; // 0 (no offset specified)
+
+var dataview2 = new DataView(buffer, 3);
+dataview2.byteOffset; // 3 (as specified when constructing the DataView)
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES6', '#sec-get-dataview.prototype.byteoffset', 'DataView.prototype.byteOffset')}}{{Spec2('ES6')}}Initiale Definition.
{{SpecName('ESDraft', '#sec-get-dataview.prototype.byteoffset', 'DataView.prototype.byteOffset')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.DataView.byteOffset")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/dataview/getfloat32/index.html b/files/de/web/javascript/reference/global_objects/dataview/getfloat32/index.html new file mode 100644 index 0000000000..b8d8fe0986 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/dataview/getfloat32/index.html @@ -0,0 +1,95 @@ +--- +title: DataView.prototype.getFloat32() +slug: Web/JavaScript/Reference/Global_Objects/DataView/getFloat32 +tags: + - DataView + - JavaScript + - Method + - Prototype + - TypedArrays +translation_of: Web/JavaScript/Reference/Global_Objects/DataView/getFloat32 +--- +
{{JSRef}}
+ +

Die getFloat32() Methode gibt eine 32-Bit Gleitkommazahl mit Vorzeichen (Float) vom spezifizierten Offset der {{jsxref("DataView")}} zurück.

+ +
{{EmbedInteractiveExample("pages/js/dataview-getfloat32.html")}}
+ + + +

Syntax

+ +
dataview.getFloat32(byteOffset [, littleEndian])
+ +

Parameter

+ +
+
byteOffset
+
Das Offset, in Bytes, vom Start der View, an dem die Daten gelesen werden sollen.
+
littleEndian
+
{{optional_inline}} Gibt an, ob die 32 Bit Zahl als {{Glossary("Endianness", "little- oder big-Endian")}} abgespeichert wird. Wenn false oder undefined angegewen ist, wird ein big-Endian gelesen.
+
+ +

Rückgabewert

+ +

Eine 32-Bit Gleitkommazahl mit Vorzeichen.

+ +

Exceptions

+ +
+
{{jsxref("RangeError")}}
+
Tritt auf, wenn byteOffset so gesetzt ist, dass hinter dem Ende der View gelesen werden müsste.
+
+ +

Beschreibung

+ +

Es gibt keine Einschränkung Orientierung. Werte mit mehrere Bytes können mit jedem Offset abgerufen werden.

+ +

Beispiele

+ +

Einsatz der getFloat32 Methode

+ +
var buffer = new ArrayBuffer(8);
+var dataview = new DataView(buffer);
+dataview.getFloat32(1); // 0
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('Typed Array')}}{{Spec2('Typed Array')}}Ersetzt durch ECMAScript 2015.
{{SpecName('ES2015', '#sec-dataview.prototype.getfloat32', 'DataView.prototype.getFloat32')}}{{Spec2('ES2015')}}Initiale Definition in einem ECMA-Standard.
{{SpecName('ESDraft', '#sec-dataview.prototype.getfloat32', 'DataView.prototype.getFloat32')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.DataView.getFloat32")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/dataview/getfloat64/index.html b/files/de/web/javascript/reference/global_objects/dataview/getfloat64/index.html new file mode 100644 index 0000000000..7537520965 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/dataview/getfloat64/index.html @@ -0,0 +1,95 @@ +--- +title: DataView.prototype.getFloat64() +slug: Web/JavaScript/Reference/Global_Objects/DataView/getFloat64 +tags: + - DataView + - JavaScript + - Method + - Prototype + - TypedArrays +translation_of: Web/JavaScript/Reference/Global_Objects/DataView/getFloat64 +--- +
{{JSRef}}
+ +

Die getFloat64() Methode gibt eine 64-Bit Gleitkommazahl mit Vorzeichen (Double) vom spezifizierten Offset der {{jsxref("DataView")}} zurück.

+ +
{{EmbedInteractiveExample("pages/js/dataview-getfloat64.html")}}
+ + + +

Syntax

+ +
dataview.getFloat64(byteOffset [, littleEndian])
+ +

Parameter

+ +
+
byteOffset
+
Das Offset, in Bytes, vom Start der View, an dem die Daten gelesen werden sollen.
+
littleEndian
+
{{optional_inline}} Gibt an, ob die 64 Bit Zahl als {{Glossary("Endianness", "little- oder big-Endian")}} abgespeichert wird. Wenn false oder undefined angegewen ist, wird ein big-Endian gelesen.
+
+ +

Rückgabewert

+ +

Eine 64-Bit Gleitkommazahl mit Vorzeichen.

+ +

Exceptions

+ +
+
{{jsxref("RangeError")}}
+
Tritt auf, wenn byteOffset so gesetzt ist, dass hinter dem Ende der View gelesen werden müsste.
+
+ +

Beschreibung

+ +

Es gibt keine Einschränkung Orientierung. Werte mit mehrere Bytes können mit jedem Offset abgerufen werden.

+ +

Beispiele

+ +

Einsatz der getFloat64 Methode

+ +
var buffer = new ArrayBuffer(8);
+var dataview = new DataView(buffer);
+dataview.getFloat64(0); // 0
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('Typed Array')}}{{Spec2('Typed Array')}}Ersetzt durch ECMAScript 2015.
{{SpecName('ES2015', '#sec-dataview.prototype.getfloat64', 'DataView.prototype.getFloat64')}}{{Spec2('ES2015')}}Initiale Definition in einem ECMA-Standard.
{{SpecName('ESDraft', '#sec-dataview.prototype.getfloat64', 'DataView.prototype.getFloat64')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.DataView.getFloat64")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/dataview/getint16/index.html b/files/de/web/javascript/reference/global_objects/dataview/getint16/index.html new file mode 100644 index 0000000000..9223ab4dae --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/dataview/getint16/index.html @@ -0,0 +1,95 @@ +--- +title: DataView.prototype.getInt16() +slug: Web/JavaScript/Reference/Global_Objects/DataView/getInt16 +tags: + - DataView + - JavaScript + - Method + - Prototype + - TypedArrays +translation_of: Web/JavaScript/Reference/Global_Objects/DataView/getInt16 +--- +
{{JSRef}}
+ +

Die getInt16() Methode gibt eine ganze 16-Bit Zahl mit Vorzeichen (Short) vom spezifizierten Offset der {{jsxref("DataView")}} zurück.

+ +
{{EmbedInteractiveExample("pages/js/dataview-getint16.html")}}
+ + + +

Syntax

+ +
dataview.getInt16(byteOffset [, littleEndian])
+ +

Parameter

+ +
+
byteOffset
+
Das Offset, in Bytes, vom Start der View, an dem die Daten gelesen werden sollen.
+
littleEndian
+
{{optional_inline}} Gibt an, ob die 16 Bit Zahl als {{Glossary("Endianness", "little- oder big-Endian")}} abgespeichert wird. Wenn false oder undefined angegeben ist, wird ein big-Endian gelesen.
+
+ +

Rückgabewert

+ +

Eine ganze 16-Bit Zahl mit Vorzeichen.

+ +

Auftretende Errors

+ +
+
{{jsxref("RangeError")}}
+
Tritt auf, wenn byteOffset so gesetzt ist, dass hinter dem Ende der View gelesen werden müsste.
+
+ +

Beschreibung

+ +

Es gibt keine Einschränkung Orientierung. Werte mit mehrere Bytes können mit jedem Offset abgerufen werden.

+ +

Beispiele

+ +

Einsatz der getInt16 Methode

+ +
var buffer = new ArrayBuffer(8);
+var dataview = new DataView(buffer);
+dataview.getInt16(1); // 0
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('Typed Array')}}{{Spec2('Typed Array')}}Ersetzt durch ECMAScript 2015.
{{SpecName('ES2015', '#sec-dataview.prototype.getint16', 'DataView.prototype.getInt16')}}{{Spec2('ES2015')}}Initiale Definition in einem ECMA-Standard.
{{SpecName('ESDraft', '#sec-dataview.prototype.getint16', 'DataView.prototype.getInt16')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.DataView.getInt16")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/dataview/getint32/index.html b/files/de/web/javascript/reference/global_objects/dataview/getint32/index.html new file mode 100644 index 0000000000..8e6bd22603 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/dataview/getint32/index.html @@ -0,0 +1,95 @@ +--- +title: DataView.prototype.getInt32() +slug: Web/JavaScript/Reference/Global_Objects/DataView/getInt32 +tags: + - DataView + - JavaScript + - Method + - Prototype + - TypedArrays +translation_of: Web/JavaScript/Reference/Global_Objects/DataView/getInt32 +--- +
{{JSRef}}
+ +

Die getInt32() Methode gibt eine ganze 32-Bit Zahl mit Vorzeichen (Long) vom spezifizierten Offset der {{jsxref("DataView")}} zurück.

+ +
{{EmbedInteractiveExample("pages/js/dataview-getint32.html")}}
+ + + +

Syntax

+ +
dataview.getInt32(byteOffset [, littleEndian])
+ +

Parameter

+ +
+
byteOffset
+
Das Offset, in Bytes, vom Start der View, an dem die Daten gelesen werden sollen.
+
littleEndian
+
{{optional_inline}} Gibt an, ob die 32 Bit Zahl als {{Glossary("Endianness", "little- oder big-Endian")}} abgespeichert wird. Wenn false oder undefined angegewen ist, wird ein big-Endian gelesen.
+
+ +

Rückgabewert

+ +

Eine ganze 32-Bit Zahl mit Vorzeichen

+ +

Exceptions

+ +
+
{{jsxref("RangeError")}}
+
Tritt auf, wenn byteOffset so gesetzt ist, dass hinter dem Ende der View gelesen werden müsste.
+
+ +

Beschreibung

+ +

Es gibt keine Einschränkung Orientierung. Werte mit mehrere Bytes können mit jedem Offset abgerufen werden.

+ +

Beispiele

+ +

Einsatz der getInt32 Methode

+ +
var buffer = new ArrayBuffer(8);
+var dataview = new DataView(buffer);
+dataview.getInt32(1); // 0
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('Typed Array')}}{{Spec2('Typed Array')}}Ersetzt durch ECMAScript 2015.
{{SpecName('ES2015', '#sec-dataview.prototype.getint32', 'DataView.prototype.getInt32')}}{{Spec2('ES2015')}}Initiale Definition in einem ECMA-Standard.
{{SpecName('ESDraft', '#sec-dataview.prototype.getint32', 'DataView.prototype.getInt32')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.DataView.getInt32")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/dataview/getint8/index.html b/files/de/web/javascript/reference/global_objects/dataview/getint8/index.html new file mode 100644 index 0000000000..cc550d3f86 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/dataview/getint8/index.html @@ -0,0 +1,93 @@ +--- +title: DataView.prototype.getInt8() +slug: Web/JavaScript/Reference/Global_Objects/DataView/getInt8 +tags: + - DataView + - JavaScript + - Method + - Prototype + - TypedArrays +translation_of: Web/JavaScript/Reference/Global_Objects/DataView/getInt8 +--- +
{{JSRef}}
+ +

Die getInt8() Methode gibt eine ganze 8-Bit Zahl mit Vorzeichen (Byte) vom spezifizierten Offset der {{jsxref("DataView")}} zurück.

+ +
{{EmbedInteractiveExample("pages/js/dataview-getint8.html")}}
+ + + +

Syntax

+ +
dataview.getInt8(byteOffset)
+ +

Parameter

+ +
+
byteOffset
+
Das Offset, in Bytes, vom Start der View, an dem die Daten gelesen werden sollen.
+
+ +

Rückgabewert

+ +

Eine ganze 8-Bit Zahl mit Vorzeichen

+ +

Exceptions

+ +
+
{{jsxref("RangeError")}}
+
Tritt auf, wenn byteOffset so gesetzt ist, dass hinter dem Ende der View gelesen werden müsste.
+
+ +

Beschreibung

+ +

Es gibt keine Einschränkung Orientierung. Werte mit mehrere Bytes können mit jedem Offset abgerufen werden.

+ +

Beispiele

+ +

Einsatz der getInt8 Methode

+ +
var buffer = new ArrayBuffer(8);
+var dataview = new DataView(buffer);
+dataview.getInt8(1); // 0
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('Typed Array')}}{{Spec2('Typed Array')}}Ersetzt durch ECMAScript 2015.
{{SpecName('ES2015', '#sec-dataview.prototype.getint8', 'DataView.prototype.getInt8')}}{{Spec2('ES2015')}}Initiale Definition in einem ECMA-Standard.
{{SpecName('ESDraft', '#sec-dataview.prototype.getint8', 'DataView.prototype.getInt8')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.DataView.getInt8")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/dataview/getuint16/index.html b/files/de/web/javascript/reference/global_objects/dataview/getuint16/index.html new file mode 100644 index 0000000000..df82d10a69 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/dataview/getuint16/index.html @@ -0,0 +1,98 @@ +--- +title: DataView.prototype.getUint16() +slug: Web/JavaScript/Reference/Global_Objects/DataView/getUint16 +tags: + - DataView + - JavaScript + - Method + - Prototype + - TypedArrays +translation_of: Web/JavaScript/Reference/Global_Objects/DataView/getUint16 +--- +
{{JSRef}}
+ +

Die getUint16() Methode gibt eine ganze vorzeichenlose 8-Bit Zahl (Unsigned Byte) vom spezifizierten Offset der {{jsxref("DataView")}} zurück.

+ +
{{EmbedInteractiveExample("pages/js/dataview-getuint16.html")}}
+ + + +

Syntax

+ +
dataview.getUint16(byteOffset [, littleEndian])
+ +

Parameter

+ +
+
byteOffset
+
Das Offset, in Bytes, vom Start der View, an dem die Daten gelesen werden sollen.
+
+ +
+
littleEndian
+
{{optional_inline}} Gibt an, ob die 16 Bit Zahl als {{Glossary("Endianness", "little- oder big-Endian")}} abgespeichert wird. Wenn false oder undefined angegewen ist, wird ein big-Endian gelesen.
+
+ +

Rückgabewert

+ +

Eine vorzeichenlose ganze 16-Bit Zahl.

+ +

Exceptions

+ +
+
{{jsxref("RangeError")}}
+
Tritt auf, wenn byteOffset so gesetzt ist, dass hinter dem Ende der View gelesen werden müsste.
+
+ +

Beschreibung

+ +

Es gibt keine Einschränkung Orientierung. Werte mit mehrere Bytes können mit jedem Offset abgerufen werden.

+ +

Beispiele

+ +

Einsatz der getUint16 Methode

+ +
var buffer = new ArrayBuffer(8);
+var dataview = new DataView(buffer);
+dataview.getUint16(1); // 0
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('Typed Array')}}{{Spec2('Typed Array')}}Ersetzt durch ECMAScript 2015.
{{SpecName('ES2015', '#sec-dataview.prototype.getuint16', 'DataView.prototype.getUint16')}}{{Spec2('ES2015')}}Initiale Definition in einem ECMA-Standard.
{{SpecName('ESDraft', '#sec-dataview.prototype.getuint16', 'DataView.prototype.getUint16')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.DataView.getUint16")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/dataview/getuint32/index.html b/files/de/web/javascript/reference/global_objects/dataview/getuint32/index.html new file mode 100644 index 0000000000..b51d1d4d27 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/dataview/getuint32/index.html @@ -0,0 +1,98 @@ +--- +title: DataView.prototype.getUint32() +slug: Web/JavaScript/Reference/Global_Objects/DataView/getUint32 +tags: + - DataView + - JavaScript + - Method + - Prototype + - TypedArrays +translation_of: Web/JavaScript/Reference/Global_Objects/DataView/getUint32 +--- +
{{JSRef}}
+ +

Die getUint32() Methode gibt eine ganze vorzeichenlose 8-Bit Zahl (Unsigned Byte) vom spezifizierten Offset der {{jsxref("DataView")}} zurück.

+ +
{{EmbedInteractiveExample("pages/js/dataview-getuint32.html")}}
+ + + +

Syntax

+ +
dataview.getUint32(byteOffset [, littleEndian])
+ +

Parameter

+ +
+
byteOffset
+
Das Offset, in Bytes, vom Start der View, an dem die Daten gelesen werden sollen.
+
+ +
+
littleEndian
+
{{optional_inline}} Gibt an, ob die 32 Bit Zahl als {{Glossary("Endianness", "little- oder big-Endian")}} abgespeichert wird. Wenn false oder undefined angegewen ist, wird ein big-Endian gelesen.
+
+ +

Rückgabewert

+ +

Eine vorzeichenlose ganze 32-Bit Zahl.

+ +

Auftretende Errors

+ +
+
{{jsxref("RangeError")}}
+
Tritt auf, wenn byteOffset so gesetzt ist, dass hinter dem Ende der View gelesen werden müsste.
+
+ +

Beschreibung

+ +

Es gibt keine Einschränkung Orientierung. Werte mit mehrere Bytes können mit jedem Offset abgerufen werden.

+ +

Beispiele

+ +

Einsatz der getUint32 Methode

+ +
var buffer = new ArrayBuffer(8);
+var dataview = new DataView(buffer);
+dataview.getUint32(1); // 0
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('Typed Array')}}{{Spec2('Typed Array')}}Ersetzt durch ECMAScript 2015.
{{SpecName('ES2015', '#sec-dataview.prototype.getuint32', 'DataView.prototype.getUint32')}}{{Spec2('ES2015')}}Initiale Definition in einem ECMA-Standard.
{{SpecName('ESDraft', '#sec-dataview.prototype.getuint32', 'DataView.prototype.getUint32')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.DataView.getUint32")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/dataview/getuint8/index.html b/files/de/web/javascript/reference/global_objects/dataview/getuint8/index.html new file mode 100644 index 0000000000..568930978a --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/dataview/getuint8/index.html @@ -0,0 +1,95 @@ +--- +title: DataView.prototype.getUint8() +slug: Web/JavaScript/Reference/Global_Objects/DataView/getUint8 +tags: + - DataView + - JavaScript + - Method + - Prototype + - TypedArrays +translation_of: Web/JavaScript/Reference/Global_Objects/DataView/getUint8 +--- +
{{JSRef}}
+ +
Die getUint8() Methode gibt eine ganze vorzeichenlose 8-Bit Zahl (Unsigned Byte) vom spezifizierten Offset der {{jsxref("DataView")}} zurück.
+ +
{{EmbedInteractiveExample("pages/js/dataview-getuint8.html")}}
+ + + +
 
+ +

Syntax

+ +
dataview.getUint8(byteOffset)
+ +

Parameter

+ +
+
byteOffset
+
Das Offset, in Bytes, vom Start der View, an dem die Daten gelesen werden sollen.
+
+ +

Rückgabewert

+ +

Eine vorzeichenlose ganze 8-Bit Zahl

+ +

Exceptions

+ +
+
{{jsxref("RangeError")}}
+
Tritt auf, wenn byteOffset so gesetzt ist, dass hinter dem Ende der View gelesen werden müsste.
+
+ +

Beschreibung

+ +

Es gibt keine Einschränkung Orientierung. Werte mit mehrere Bytes können mit jedem Offset abgerufen werden.

+ +

Beispiele

+ +

Einsatz der getUint8 Methode

+ +
var buffer = new ArrayBuffer(8);
+var dataview = new DataView(buffer);
+dataview.getUint8(1); // 0
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('Typed Array')}}{{Spec2('Typed Array')}}Ersetzt durch ECMAScript 2015.
{{SpecName('ES2015', '#sec-dataview.prototype.getuint8', 'DataView.prototype.getUint8')}}{{Spec2('ES2015')}}Initiale Definition in einem ECMA-Standard.
{{SpecName('ESDraft', '#sec-dataview.prototype.getuint8', 'DataView.prototype.getUint8')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.DataView.getUint8")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/dataview/index.html b/files/de/web/javascript/reference/global_objects/dataview/index.html new file mode 100644 index 0000000000..1384eafe34 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/dataview/index.html @@ -0,0 +1,127 @@ +--- +title: DataView +slug: Web/JavaScript/Reference/Global_Objects/DataView +tags: + - Constructor + - DataView + - JavaScript + - TypedArrays +translation_of: Web/JavaScript/Reference/Global_Objects/DataView +--- +
{{JSRef}}
+ +

Die DataView Ansicht unterstützt eine Low-Level Schnittstelle für das Lesen und Schreiben von mehrere Zahlentypen in einem {{jsxref("ArrayBuffer")}}. Diese Ansicht ist unabhängig von den Plattform Byte-Reihenfolgen.

+ +
{{EmbedInteractiveExample("pages/js/dataview-constructor.html")}}
+ + + +

Syntax

+ +
new DataView(buffer [, byteOffset [, byteLength]])
+ +

Parameter

+ +
+
buffer
+
Ein existierender {{jsxref("ArrayBuffer")}} oder {{jsxref("SharedArrayBuffer")}} {{experimental_inline}}, welche als Speicher für das neue DataView Objekt dient.
+
byteOffset {{optional_inline}}
+
Das Offset in Bytes, welches auf das erste Byte in dem spezifizierten Buffer für die neue Ansicht referenziert. Wenn dieser Parameter nicht angegeben ist, wird das erste Byte des Buffers als Startpunkt benutzt.
+
byteLength {{optional_inline}}
+
Die Anzahl der Elemente in dem Byte Array. Wenn es nicht angegeben wird, wird die Länge des Buffers benutzt.
+
+ +

Rückgabewert

+ +

Ein neues DataView Objekt welches den spezifizierten Datenpuffer (Buffer) repräsentiert.

+ +

Exceptions

+ +
+
{{jsxref("RangeError")}}
+
Wird erzeugt, wenn byteOffset oder byteLength Größe als der Puffer (Buffers) sind
+
+ +

Beschreibung

+ +

Byte-Reihenfolge

+ +

Zahlenformate mit mehreren Bytes werden im Speicher verschieden dargestellt, je nachdem welche Maschinenarchitektur genutzt wird (siehe {{Glossary("Endianness")}} für weitere Erklärungen). DataView bietet explizit die Kontrolle über den Zugriff auf die Zahlen unabhängig von der Plattformarchitektur-Byte-Reihenfolge.

+ +
var littleEndian = (function() {
+  var buffer = new ArrayBuffer(2);
+  new DataView(buffer).setInt16(0, 256, true /* littleEndian */);
+  // Int16Array benutzt die Plattform Byte-Reihenfolge.
+  return new Int16Array(buffer)[0] === 256;
+})();
+console.log(littleEndian); // true oder false
+
+ +

Eigenschaften

+ +

Alle DataView Instanzen erben von {{jsxref("DataView.prototype")}} und erlauben das Hinzufügen von Eigenschaften zu allen DataView Objekten

+ +

{{page('de/Web/JavaScript/Reference/Global_Objects/DataView/prototype','Eigenschaften')}}

+ +

Methoden

+ +

{{page('de/Web/JavaScript/Reference/Global_Objects/DataView/prototype','Methoden')}}

+ +

Beispiele

+ +
var buffer = new ArrayBuffer(16);
+var dv = new DataView(buffer, 0);
+
+dv.setInt16(1, 42);
+dv.getInt16(1); //42
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('Typed Array')}}{{Spec2('Typed Array')}}Abgelöst von ECMAScript 6
{{SpecName('ES6', '#sec-dataview-constructor', 'DataView')}}{{Spec2('ES6')}}Initiale Definition in einem ECMA Standard
{{SpecName('ESDraft', '#sec-dataview-constructor', 'DataView')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.DataView")}}

+ +

Bemerkungen zur Kompatibilität

+ +

Mit dem Start von Firefox 40 wird der {{jsxref("Operators/new", "new")}} Operator benötigt um eine DataView zu erstellen. Der Aufruf von DataView() als Funktion ohne new erzeugt jetzt einen {{jsxref("TypeError")}}.

+ +
var dv = DataView(buffer, 0);
+// TypeError: Das Aufrufen des DataView-Konstruktors ohne new ist verboten
+ +
var dv = new DataView(buffer, 0);
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/dataview/prototype/index.html b/files/de/web/javascript/reference/global_objects/dataview/prototype/index.html new file mode 100644 index 0000000000..ea91eb795f --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/dataview/prototype/index.html @@ -0,0 +1,109 @@ +--- +title: DataView.prototype +slug: Web/JavaScript/Reference/Global_Objects/DataView/prototype +tags: + - DataView + - JavaScript + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/DataView +--- +
{{JSRef}}
+ +

Die DataView.prototype Eigenschaft repräsentiert den Prototypen für das {{jsxref("DataView")}} Objekt.

+ +
{{js_property_attributes(0,0,0)}}
+ +

Beschreibung

+ +

DataView Instanzen erben von DataView.prototype. Wie bei allen Konstruktoren, können Änderungen am Prototypen Änderungen in allen DataView Instanzen zur folge haben.

+ +

Eigenschaften

+ +
+
DataView.prototype.constructor
+
Spezifiziert die Funktion, die ein Objekt des Prototypen erstellt. Der initialwert ist der Standard eingebaute DataView Konstruktor
+
{{jsxref("DataView.prototype.buffer")}} {{readonlyInline}}
+
Der {{jsxref("ArrayBuffer")}}, der von dieser Ansicht repräsentiert wird. Wird bei der Erstellung erzeugt und deswegen kann nur lesend darauf zugegriffen werden.
+
{{jsxref("DataView.prototype.byteLength")}} {{readonlyInline}}
+
Die Länge (in Bytes) von dieser Ansicht, von Beginn des {{jsxref("ArrayBuffer")}}. Wird bei der Erstellung erzeugt und deswegen kann nur lesend darauf zugegriffen werden.
+
{{jsxref("DataView.prototype.byteOffset")}} {{readonlyInline}}
+
Das Offset (in Bytes) von dieser Ansicht, von Beginn des {{jsxref("ArrayBuffer")}}. Wird bei der Erstellung erzeugt und deswegen kann nur lesend darauf zugegriffen werden.
+
+ +

Methoden

+ +

Lesend

+ +
+
{{jsxref("DataView.prototype.getInt8()")}}
+
Gibt eine 8-Bit ganze Zahl mit Vorzeichen (byte) eines spezifizierten Byte-Offsets vom Start der Ansicht zurück.
+
{{jsxref("DataView.prototype.getUint8()")}}
+
Gibt eine 8-Bit vorzeichenlose ganze Zahl (unsigned byte) eines spezifizierten Byte-Offsets vom Start der Ansicht zurück.
+
{{jsxref("DataView.prototype.getInt16()")}}
+
Gibt eine 16-Bit ganze Zahl mit Vorzeichen (short) eines spezifizierten Byte-Offsets vom Start der Ansicht zurück.
+
{{jsxref("DataView.prototype.getUint16()")}}
+
Gibt eine 16-Bit vorzeichenlose ganze Zahl (unsigned short) eines spezifizierten Byte-Offsets vom Start der Ansicht zurück.
+
{{jsxref("DataView.prototype.getInt32()")}}
+
Gibt eine 32-Bit ganze Zahl mit Vorzeichen (long) eines spezifizierten Byte-Offsets vom Start der Ansicht zurück.
+
{{jsxref("DataView.prototype.getUint32()")}}
+
Gibt eine 32-Bit vorzeichenlose ganze Zahl (unsigned long) eines spezifizierten Byte-Offsets vom Start der Ansicht zurück.
+
{{jsxref("DataView.prototype.getFloat32()")}}
+
Gibt eine 32-Bit Gleitkommazahl mit Vorzeichen (float) eines spezifizierten Byte-Offsets vom Start der Ansicht zurück
+
{{jsxref("DataView.prototype.getFloat64()")}}
+
Gibt eine 64-Bit Gleitkommazahl mit Vorzeichen (double) eines spezifizierten Byte-Offsets vom Start der Ansicht zurück
+
+ +

Schreibend

+ +
+
{{jsxref("DataView.prototype.setInt8()")}}
+
Speichert eine ganze 8-Bit Zahl mit Vorzeichen (byte) an einem spezifizierten Offset vom Start der Ansicht.
+
{{jsxref("DataView.prototype.setUint8()")}}
+
Speichert eine ganze vorzeichenlose 8-Bit Zahl (unsigned byte) an einem spezifizierten Offset vom Start der Ansicht.
+
{{jsxref("DataView.prototype.setInt16()")}}
+
Speichert eine ganze 16-Bit Zahl mit Vorzeichen (short) an einem spezifizierten Offset vom Start der Ansicht.
+
{{jsxref("DataView.prototype.setUint16()")}}
+
Speichert eine ganze vorzeichenlose 16-Bit Zahl (unsigned short) an einem spezifizierten Offset vom Start der Ansicht.
+
{{jsxref("DataView.prototype.setInt32()")}}
+
Speichert eine ganze 32-Bit Zahl mit Vorzeichen (long) an einem spezifizierten Offset vom Start der Ansicht.
+
{{jsxref("DataView.prototype.setUint32()")}}
+
Speichert eine ganze vorzeichenlose 32-Bit Zahl (unsigned long) an einem spezifizierten Offset vom Start der Ansicht.
+
{{jsxref("DataView.prototype.setFloat32()")}}
+
Speichert eine 32-Bit Gleitkommazahl mit Vorzeichen (float) an einem spezifizierten Offset vom Start der Ansicht.
+
{{jsxref("DataView.prototype.setFloat64()")}}
+
Speichert eine 64-Bit Gleitkommazahl mit Vorzeichen (double) an einem spezifizierten Offset vom Start der Ansicht.
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES6', '#sec-dataview.prototype', 'DataView.prototype')}}{{Spec2('ES6')}}Initiale Definition.
{{SpecName('ESDraft', '#sec-dataview.prototype', 'DataView.prototype')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.DataView.prototype")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/dataview/setfloat32/index.html b/files/de/web/javascript/reference/global_objects/dataview/setfloat32/index.html new file mode 100644 index 0000000000..a7728311fc --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/dataview/setfloat32/index.html @@ -0,0 +1,97 @@ +--- +title: DataView.prototype.setFloat32() +slug: Web/JavaScript/Reference/Global_Objects/DataView/setFloat32 +tags: + - DataView + - JavaScript + - Method + - Prototype + - TypedArrays +translation_of: Web/JavaScript/Reference/Global_Objects/DataView/setFloat32 +--- +
{{JSRef}}
+ +

Die setFloat32() Methode speichert eine 32-Bit Gleitkommazahl mit Vorzeichen (Float) am spezifizierten Offset der {{jsxref("DataView")}}.

+ +
{{EmbedInteractiveExample("pages/js/dataview-setfloat32.html")}}
+ + + +

Syntax

+ +
dataview.setFloat32(byteOffset, value [, littleEndian])
+ +

Parameter

+ +
+
byteOffset
+
Das Offset, in Bytes, vom Start der View, an dem die Daten gespeichert werden sollen.
+
+ +
+
value
+
Der Wert, der gespeichert werden soll.
+
littleEndian
+
{{optional_inline}} Gibt an, ob die 32 Bit Zahl als {{Glossary("Endianness", "little- oder big-Endian")}} abgespeichert wird. Wenn false oder undefined angegewen ist, wird ein big-Endian gelesen.
+
+ +

Rückgabewert

+ +

{{jsxref("undefined")}}.

+ +

Exceptions

+ +
+
{{jsxref("RangeError")}}
+
Tritt auf, wenn byteOffset so gesetzt ist, dass hinter dem Ende der View geschrieben werden müsste.
+
+ +

Beispiele

+ +

Einsatz der setFloat32 Methode

+ +
var buffer = new ArrayBuffer(8);
+var dataview = new DataView(buffer);
+dataview.setFloat32(1, 3);
+dataview.getFloat32(1); // 3
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('Typed Array')}}{{Spec2('Typed Array')}}Ersetzt durch ECMAScript 2015.
{{SpecName('ES2015', '#sec-dataview.prototype.setfloat32', 'DataView.prototype.setFloat32')}}{{Spec2('ES2015')}}Initiale Definition in einem ECMA-Standard.
{{SpecName('ESDraft', '#sec-dataview.prototype.setfloat32', 'DataView.prototype.setFloat32')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.DataView.setFloat32")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/dataview/setfloat64/index.html b/files/de/web/javascript/reference/global_objects/dataview/setfloat64/index.html new file mode 100644 index 0000000000..8a0d9545e3 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/dataview/setfloat64/index.html @@ -0,0 +1,97 @@ +--- +title: DataView.prototype.setFloat64() +slug: Web/JavaScript/Reference/Global_Objects/DataView/setFloat64 +tags: + - DataView + - JavaScript + - Method + - Prototype + - TypedArrays +translation_of: Web/JavaScript/Reference/Global_Objects/DataView/setFloat64 +--- +
{{JSRef}}
+ +

Die setFloat64() Methode speichert eine 64-Bit Gleitkommazahl mit Vorzeichen (Float) am spezifizierten Offset der {{jsxref("DataView")}}.

+ +
{{EmbedInteractiveExample("pages/js/dataview-setfloat64.html")}}
+ + + +

Syntax

+ +
dataview.setFloat64(byteOffset, value [, littleEndian])
+ +

Parameter

+ +
+
byteOffset
+
Das Offset, in Bytes, vom Start der View, an dem die Daten gespeichert werden sollen.
+
+ +
+
value
+
Der Wert, der gespeichert werden soll.
+
littleEndian
+
{{optional_inline}} Gibt an, ob die 64 Bit Zahl als {{Glossary("Endianness", "little- oder big-Endian")}} abgespeichert wird. Wenn false oder undefined angegewen ist, wird ein big-Endian gelesen.
+
+ +

Rückgabewert

+ +

{{jsxref("undefined")}}.

+ +

Exceptions

+ +
+
{{jsxref("RangeError")}}
+
Tritt auf, wenn byteOffset so gesetzt ist, dass hinter dem Ende der View geschrieben werden müsste.
+
+ +

Beispiele

+ +

Einsatz der setFloat64 Methode

+ +
var buffer = new ArrayBuffer(8);
+var dataview = new DataView(buffer);
+dataview.setFloat64(0, 3);
+dataview.getFloat64(0); // 3
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('Typed Array')}}{{Spec2('Typed Array')}}Ersetzt durch ECMAScript 2015.
{{SpecName('ES2015', '#sec-dataview.prototype.setfloat64', 'DataView.prototype.setFloat64')}}{{Spec2('ES2015')}}Initiale Definition in einem ECMA-Standard.
{{SpecName('ESDraft', '#sec-dataview.prototype.setfloat64', 'DataView.prototype.setFloat64')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.DataView.setFloat64")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/dataview/setint16/index.html b/files/de/web/javascript/reference/global_objects/dataview/setint16/index.html new file mode 100644 index 0000000000..acbc44f22e --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/dataview/setint16/index.html @@ -0,0 +1,100 @@ +--- +title: DataView.prototype.setInt16() +slug: Web/JavaScript/Reference/Global_Objects/DataView/setInt16 +tags: + - DataView + - JavaScript + - Method + - Prototype + - TypedArrays +translation_of: Web/JavaScript/Reference/Global_Objects/DataView/setInt16 +--- +
{{JSRef}}
+ +

Die setInt16() Methode speichert eine ganze 16-Bit Zahl mit Vorzeichen (Schort) am spezifizierten Offset der {{jsxref("DataView")}} ab.

+ +
{{EmbedInteractiveExample("pages/js/dataview-setint16.html")}}
+ + + +

Syntax

+ +
dataview.setInt16(byteOffset, value [, littleEndian])
+ +

Parameter

+ +
+
byteOffset
+
Das Offset, in Bytes, vom Start der View, an dem die Daten gespeichert werden sollen.
+
+ +
+
value
+
Der Wert, der gespeichert werden soll.
+
+ +
+
littleEndian
+
{{optional_inline}} Gibt an, ob die 16 Bit Zahl als {{Glossary("Endianness", "little- oder big-Endian")}} abgespeichert wird. Wenn false oder undefined angegewen ist, wird ein big-Endian gelesen.
+
+ +

Rückgabewert

+ +

{{jsxref("undefined")}}.

+ +

Auftretende Errors

+ +
+
{{jsxref("RangeError")}}
+
Tritt auf, wenn byteOffset so gesetzt ist, dass hinter dem Ende der View geschrieben werden müsste.
+
+ +

Beispiele

+ +

Einsatz der setInt16 Methode

+ +
var buffer = new ArrayBuffer(8);
+var dataview = new DataView(buffer);
+dataview.setInt16(1, 3);
+dataview.getInt16(1); // 3
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('Typed Array')}}{{Spec2('Typed Array')}}Ersetzt durch ECMAScript 2015.
{{SpecName('ES2015', '#sec-dataview.prototype.setint16', 'DataView.prototype.setInt16')}}{{Spec2('ES2015')}}Initiale Definition in einem ECMA-Standard.
{{SpecName('ESDraft', '#sec-dataview.prototype.setint16', 'DataView.prototype.setInt16')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.DataView.setInt16")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/dataview/setint32/index.html b/files/de/web/javascript/reference/global_objects/dataview/setint32/index.html new file mode 100644 index 0000000000..740fbb678d --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/dataview/setint32/index.html @@ -0,0 +1,100 @@ +--- +title: DataView.prototype.setInt32() +slug: Web/JavaScript/Reference/Global_Objects/DataView/setInt32 +tags: + - DataView + - JavaScript + - Method + - Prototype + - TypedArrays +translation_of: Web/JavaScript/Reference/Global_Objects/DataView/setInt32 +--- +
{{JSRef}}
+ +

Die setInt32() Methode speichert eine ganze 32-Bit Zahl mit Vorzeichen (Long) am spezifizierten Offset der {{jsxref("DataView")}} ab.

+ +
{{EmbedInteractiveExample("pages/js/dataview-setint32.html")}}
+ + + +

Syntax

+ +
dataview.setInt32(byteOffset, value [, littleEndian])
+ +

Parameter

+ +
+
byteOffset
+
Das Offset, in Bytes, vom Start der View, an dem die Daten gespeichert werden sollen.
+
+ +
+
value
+
Der Wert, der gespeichert werden soll.
+
+ +
+
littleEndian
+
{{optional_inline}} Gibt an, ob die 32 Bit Zahl als {{Glossary("Endianness", "little- oder big-Endian")}} abgespeichert wird. Wenn false oder undefined angegewen ist, wird ein big-Endian gelesen.
+
+ +

Rückgabewert

+ +

{{jsxref("undefined")}}.

+ +

Exceptions

+ +
+
{{jsxref("RangeError")}}
+
Tritt auf, wenn byteOffset so gesetzt ist, dass hinter dem Ende der View geschrieben werden müsste.
+
+ +

Beispiele

+ +

Einsatz der setInt32 Methode

+ +
var buffer = new ArrayBuffer(8);
+var dataview = new DataView(buffer);
+dataview.setInt32(1, 3);
+dataview.getInt32(1); // 3
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('Typed Array')}}{{Spec2('Typed Array')}}Ersetzt durch ECMAScript 2015.
{{SpecName('ES2015', '#sec-dataview.prototype.setint32', 'DataView.prototype.setInt32')}}{{Spec2('ES2015')}}Initiale Definition in einem ECMA-Standard.
{{SpecName('ESDraft', '#sec-dataview.prototype.setint32', 'DataView.prototype.setInt32')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.DataView.setInt32")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/dataview/setint8/index.html b/files/de/web/javascript/reference/global_objects/dataview/setint8/index.html new file mode 100644 index 0000000000..cdfc7b8bd5 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/dataview/setint8/index.html @@ -0,0 +1,95 @@ +--- +title: DataView.prototype.setInt8() +slug: Web/JavaScript/Reference/Global_Objects/DataView/setInt8 +tags: + - DataView + - JavaScript + - Method + - Prototype + - TypedArrays +translation_of: Web/JavaScript/Reference/Global_Objects/DataView/setInt8 +--- +
{{JSRef}}
+ +

Die setInt8() Methode speichert eine ganze 8-Bit Zahl mit Vorzeichen (Byte) am spezifizierten Offset der {{jsxref("DataView")}} ab.

+ +
{{EmbedInteractiveExample("pages/js/dataview-setint8.html")}}
+ + + +

Syntax

+ +
dataview.setInt8(byteOffset, value)
+ +

Parameter

+ +
+
byteOffset
+
Das Offset, in Bytes, vom Start der View, an dem die Daten gespeichert werden sollen.
+
+ +
+
value
+
Der Wert, der gespeichert werden soll.
+
+ +

Rückgabewert

+ +

{{jsxref("undefined")}}.

+ +

Exceptions

+ +
+
{{jsxref("RangeError")}}
+
Tritt auf, wenn byteOffset so gesetzt ist, dass hinter dem Ende der View geschrieben werden müsste.
+
+ +

Beispiele

+ +

Einsatz der setInt8 Methode

+ +
var buffer = new ArrayBuffer(8);
+var dataview = new DataView(buffer);
+dataview.setInt8(1, 3);
+dataview.getInt8(1); // 3
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('Typed Array')}}{{Spec2('Typed Array')}}Ersetzt durch ECMAScript 2015.
{{SpecName('ES2015', '#sec-dataview.prototype.setint8', 'DataView.prototype.setInt8')}}{{Spec2('ES2015')}}Initiale Definition in einem ECMA-Standard.
{{SpecName('ESDraft', '#sec-dataview.prototype.setint8', 'DataView.prototype.setInt8')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.DataView.setInt8")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/dataview/setuint16/index.html b/files/de/web/javascript/reference/global_objects/dataview/setuint16/index.html new file mode 100644 index 0000000000..912407d086 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/dataview/setuint16/index.html @@ -0,0 +1,100 @@ +--- +title: DataView.prototype.setUint16() +slug: Web/JavaScript/Reference/Global_Objects/DataView/setUint16 +tags: + - DataView + - JavaScript + - Method + - Prototype + - TypedArrays +translation_of: Web/JavaScript/Reference/Global_Objects/DataView/setUint16 +--- +
{{JSRef}}
+ +

Die setInt16() Methode speichert eine ganze vorzeichenlose 16-Bit Zahl (Unsigned Short) am spezifizierten Offset der {{jsxref("DataView")}} ab.

+ +
{{EmbedInteractiveExample("pages/js/dataview-setuint16.html")}}
+ + + +

Syntax

+ +
dataview.setUint16(byteOffset, value [, littleEndian])
+ +

Parameter

+ +
+
byteOffset
+
Das Offset, in Bytes, vom Start der View, an dem die Daten gespeichert werden sollen.
+
+ +
+
value
+
Der Wert, der gespeichert werden soll.
+
+ +
+
littleEndian
+
{{optional_inline}} Gibt an, ob die 16 Bit Zahl als {{Glossary("Endianness", "little- oder big-Endian")}} abgespeichert wird. Wenn false oder undefined angegewen ist, wird ein big-Endian gelesen.
+
+ +

Rückgabewert

+ +

{{jsxref("undefined")}}.

+ +

Auftretende Errors

+ +
+
{{jsxref("RangeError")}}
+
Tritt auf, wenn byteOffset so gesetzt ist, dass hinter dem Ende der View geschrieben werden müsste.
+
+ +

Beispiele

+ +

Einsatz der setUint16 Methode

+ +
var buffer = new ArrayBuffer(8);
+var dataview = new DataView(buffer);
+dataview.setUint16(1, 3);
+dataview.getUint16(1); // 3
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('Typed Array')}}{{Spec2('Typed Array')}}Ersetzt durch ECMAScript 2015.
{{SpecName('ES2015', '#sec-dataview.prototype.setuint16', 'DataView.prototype.setUint16')}}{{Spec2('ES2015')}}Initiale Definition in einem ECMA-Standard.
{{SpecName('ESDraft', '#sec-dataview.prototype.setuint16', 'DataView.prototype.setUint16')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.DataView.setUint16")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/dataview/setuint32/index.html b/files/de/web/javascript/reference/global_objects/dataview/setuint32/index.html new file mode 100644 index 0000000000..5cba529880 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/dataview/setuint32/index.html @@ -0,0 +1,100 @@ +--- +title: DataView.prototype.setUint32() +slug: Web/JavaScript/Reference/Global_Objects/DataView/setUint32 +tags: + - DataView + - JavaScript + - Method + - Prototype + - TypedArrays +translation_of: Web/JavaScript/Reference/Global_Objects/DataView/setUint32 +--- +
{{JSRef}}
+ +

Die setInt32() Methode speichert eine ganze vorzeichenlose 32-Bit Zahl (Unsigned Long) am spezifizierten Offset der {{jsxref("DataView")}} ab.

+ +
{{EmbedInteractiveExample("pages/js/dataview-setuint32.html")}}
+ + + +

Syntax

+ +
dataview.setUint32(byteOffset, value [, littleEndian])
+ +

Parameter

+ +
+
byteOffset
+
Das Offset, in Bytes, vom Start der View, an dem die Daten gespeichert werden sollen.
+
+ +
+
value
+
Der Wert, der gespeichert werden soll.
+
+ +
+
littleEndian
+
{{optional_inline}} Gibt an, ob die 32 Bit Zahl als {{Glossary("Endianness", "little- oder big-Endian")}} abgespeichert wird. Wenn false oder undefined angegewen ist, wird ein big-Endian gelesen.
+
+ +

Rückgabewert

+ +

{{jsxref("undefined")}}.

+ +

Exceptions

+ +
+
{{jsxref("RangeError")}}
+
Tritt auf, wenn byteOffset so gesetzt ist, dass hinter dem Ende der View geschrieben werden müsste.
+
+ +

Beispiele

+ +

Einsatz der setUint32 Methode

+ +
var buffer = new ArrayBuffer(8);
+var dataview = new DataView(buffer);
+dataview.setUint32(1, 3);
+dataview.getUint32(1); // 3
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('Typed Array')}}{{Spec2('Typed Array')}}Ersetzt durch ECMAScript 2015.
{{SpecName('ES2015', '#sec-dataview.prototype.setuint32', 'DataView.prototype.setUint32')}}{{Spec2('ES2015')}}Initiale Definition in einem ECMA-Standard.
{{SpecName('ESDraft', '#sec-dataview.prototype.setuint32', 'DataView.prototype.setUint32')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.DataView.setUint32")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/dataview/setuint8/index.html b/files/de/web/javascript/reference/global_objects/dataview/setuint8/index.html new file mode 100644 index 0000000000..dc293963a1 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/dataview/setuint8/index.html @@ -0,0 +1,95 @@ +--- +title: DataView.prototype.setUint8() +slug: Web/JavaScript/Reference/Global_Objects/DataView/setUint8 +tags: + - DataView + - JavaScript + - Method + - Prototype + - TypedArrays +translation_of: Web/JavaScript/Reference/Global_Objects/DataView/setUint8 +--- +
{{JSRef}}
+ +
Die setInt8() Methode speichert eine ganze vorzeichenlose 8-Bit Zahl (Unsigned Byte) am spezifizierten Offset der {{jsxref("DataView")}} ab.
+ +
{{EmbedInteractiveExample("pages/js/dataview-setuint8.html")}}
+ + + +

Syntax

+ +
dataview.setUint8(byteOffset, value)
+ +

Parameter

+ +
+
byteOffset
+
Das Offset, in Bytes, vom Start der View, an dem die Daten gespeichert werden sollen.
+
+ +
+
value
+
Der Wert, der gespeichert werden soll.
+
+ +

Rückgabewert

+ +

{{jsxref("undefined")}}.

+ +

Exceptions

+ +
+
{{jsxref("RangeError")}}
+
Tritt auf, wenn byteOffset so gesetzt ist, dass hinter dem Ende der View geschrieben werden müsste.
+
+ +

Beispiele

+ +

Einsatz der setUint8 Methode

+ +
var buffer = new ArrayBuffer(8);
+var dataview = new DataView(buffer);
+dataview.setUint8(1, 3);
+dataview.getUint8(1); // 3
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('Typed Array')}}{{Spec2('Typed Array')}}Ersetzt durch ECMAScript 2015.
{{SpecName('ES2015', '#sec-dataview.prototype.setuint8', 'DataView.prototype.setUint8')}}{{Spec2('ES2015')}}Initiale Definition in einem ECMA-Standard.
{{SpecName('ESDraft', '#sec-dataview.prototype.setuint8', 'DataView.prototype.setUint8')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.DataView.setUint8")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/date/@@toprimitive/index.html b/files/de/web/javascript/reference/global_objects/date/@@toprimitive/index.html new file mode 100644 index 0000000000..593369fe87 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/date/@@toprimitive/index.html @@ -0,0 +1,69 @@ +--- +title: 'Date.prototype[@@toPrimitive]' +slug: Web/JavaScript/Reference/Global_Objects/Date/@@toPrimitive +tags: + - Date + - JavaScript + - Method + - Prototype + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Date/@@toPrimitive +--- +
{{JSRef}}
+ +
Die [@@toPrimitive]() Methode konvertiert ein {{jsxref("date")}} Objekt in einen primitiven Wert.
+ +
 
+ +

Syntax

+ +
Date()[Symbol.toPrimitive](hint);
+
+ +

Rückgabewert

+ +

Der primitive Wert des gegebenen {{jsxref("Date")}} Objektes. Abhängig vom übergebenen Parameter kann die Methode einen String oder eine Zahl zurückgeben.

+ +

Beschreibung

+ +

[@@toPrimitive]() ist eine Methode des {{jsxref("date")}} Objektes, welche einen primitiven Wert zurück gibt, was vom Typ number oder String sein kann.

+ +

Wenn der Parameter hint die Wert "string" oder "default" enthält, wird versucht die {{jsxref("Object.prototype.toString()", "toString")}} Methode aufzurufen. Wenn diese Methode nicht existiert, wird versucht die {{jsxref("Object.prototype.valueOf()", "valueOf")}} Methode aufzurufen. Wenn diese wiederum nicht existiert wirft [@@toPrimitive]() einen {{jsxref("TypeError")}}.

+ +

Wenn der Parameter hint den Wert "number" hat, wird als erstes versucht die  valueOf Methode aufzurufen. Wenn diese nicht existiert, wird die toString Methode aufgerufen.

+ +

JavaScript ruft die [@@toPrimitive]() auf, um ein Objekt in einen primitiven Wert zu konvertieren. Explizit muss man diese Methode extrem selten aufrufen. JavaScript ruft diese Methode automatisch auf, wenn ein Objekt an Stellen verwendet wird, an denen ein primitiver Wert erwartet wird.

+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES6', '#sec-date.prototype-@@toprimitive', 'Date.prototype.@@toPrimitive')}}{{Spec2('ES6')}}Initiale Definition.
{{SpecName('ESDraft', '#sec-date.prototype-@@toprimitive', 'Date.prototype.@@toPrimitive')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Date.@@toPrimitive")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/date/getday/index.html b/files/de/web/javascript/reference/global_objects/date/getday/index.html new file mode 100644 index 0000000000..28c185fe16 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/date/getday/index.html @@ -0,0 +1,69 @@ +--- +title: Date.prototype.getDay() +slug: Web/JavaScript/Reference/Global_Objects/Date/getDay +tags: + - Date + - JavaScript + - Method + - Prototype + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Date/getDay +--- +
{{JSRef}}
+ +

Die getDay() Methode gibt den Tag der Woche eines Datums gemäß der Ortszeit zurück, wobei Sonntag durch den Wert 0 repräsentiert wird. Für den Tag des Monats gibt es die Methode {{jsxref("Date.prototype.getDate()", "getDate()")}}

+ +
{{EmbedInteractiveExample("pages/js/date-getday.html")}}
+ + + +

Syntax

+ +
dateObj.getDay()
+ +

Rückgabewert

+ +

Eine ganze Zahl zwischen 0 und 6, die den Tag der Woche des gegebenden Datums repräsentiert: 0 für Sonntag, 1 für Montag, 2 für Dienstag und so weiter.

+ +

Beispiele

+ +

Einsatz von getDay()

+ +

Im zweiten Statement wird die Variable weekday mit dem Wert 1 initialisiert. Dabei wird der Wert des {{jsxref("Date")}} object Xmas95 benutzt. 25. Dezember 1995 ist ein Montag.

+ +
var Xmas95 = new Date('December 25, 1995 23:15:30');
+var weekday = Xmas95.getDay();
+
+console.log(weekday); // 1
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + +
Spezifikation
{{SpecName('ESDraft', '#sec-date.prototype.getday', 'Date.prototype.getDay')}}{{Spec2('ESDraft')}}
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Date.getDay")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/date/getfullyear/index.html b/files/de/web/javascript/reference/global_objects/date/getfullyear/index.html new file mode 100644 index 0000000000..170b9cebfa --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/date/getfullyear/index.html @@ -0,0 +1,88 @@ +--- +title: Date.prototype.getFullYear() +slug: Web/JavaScript/Reference/Global_Objects/Date/getFullYear +tags: + - Date + - JavaScript + - Method + - Prototype + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Date/getFullYear +--- +
{{JSRef}}
+ +

Die getFullYear()  Methode gibt das Jahr eines Datums bezüglich der Ortszeit zurück.

+ +

Diese Methode wird anstatt der {{jsxref("Date.prototype.getYear()", "getYear()")}} eingesetzt.

+ +
{{EmbedInteractiveExample("pages/js/date-getfullyear.html")}}
+ + + +

Syntax

+ +
dateObj.getFullYear()
+ +

Rückgabewert

+ +

Eine Zahl, die das Jahr des gegebenen Datums bezüglich der lokalen Zeit angibt.

+ +

Beschreibung

+ +

Der von getFullYear() zurückgegebene Wert ist eine absolute Zahl. Für Daten zwischen den Jahren 1000 und 9999 gibt getFullYear() eine vier ziffrige Nummer zurück (z. B. 1995). Diese Methode wird eingesetzt, um sicherzustellen, dass auch Jahre nach 2000 richtig zurückgegeben werden.

+ +

Beispiele

+ +

Einsatz von getFullYear()

+ +

Im folgenden Beispiel wird die Variable year  mit dem aktuellen Jahr (4 Ziffern) initialisiert.

+ +
var today = new Date();
+var year = today.getFullYear();
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES1')}}{{Spec2('ES1')}}Initiale Definition. Implementiert in JavaScript 1.3.
{{SpecName('ES5.1', '#sec-15.9.5.10', 'Date.prototype.getFullYear')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-date.prototype.getfullyear', 'Date.prototype.getFullYear')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-date.prototype.getfullyear', 'Date.prototype.getFullYear')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Date.getFullYear")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/date/gethours/index.html b/files/de/web/javascript/reference/global_objects/date/gethours/index.html new file mode 100644 index 0000000000..c8036ad465 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/date/gethours/index.html @@ -0,0 +1,83 @@ +--- +title: Date.prototype.getHours() +slug: Web/JavaScript/Reference/Global_Objects/Date/getHours +tags: + - Date + - JavaScript + - Method + - Prototype + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Date/getHours +--- +
{{JSRef}}
+ +

Die getHours() Methode gibt die Stunde eines Datums bezüglich der Ortszeit zurück.

+ +
{{EmbedInteractiveExample("pages/js/date-gethours.html")}}
+ + + +

Syntax

+ +
dateObj.getHours()
+ +

Rückgabewert

+ +

Eine ganze Zahl zwischen 0 und 23, welche die Stunde der gegebenen Zeit bezüglich der lokalen Zeit angibt.

+ +

Beispiele

+ +

Einsatz von getHours()

+ +

Im zweiten Statement wird die Variable hours mit dem Wert 23 initialisiert. Dieses geschied mit dem Wert des {{jsxref("Global_Objects/Date", "Date")}} Objektes Xmas95.

+ +
var Xmas95 = new Date('December 25, 1995 23:15:30');
+var hours = Xmas95.getHours();
+
+console.log(hours); // 23
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES1')}}{{Spec2('ES1')}}Initiale Definition. Implementiert in JavaScript 1.0.
{{SpecName('ES5.1', '#sec-15.9.5.18', 'Date.prototype.getHours')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-date.prototype.gethours', 'Date.prototype.getHours')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-date.prototype.gethours', 'Date.prototype.getHours')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Date.getHours")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/date/getmilliseconds/index.html b/files/de/web/javascript/reference/global_objects/date/getmilliseconds/index.html new file mode 100644 index 0000000000..3238d48bbc --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/date/getmilliseconds/index.html @@ -0,0 +1,81 @@ +--- +title: Date.prototype.getMilliseconds() +slug: Web/JavaScript/Reference/Global_Objects/Date/getMilliseconds +tags: + - Date + - JavaScript + - Method + - Prototype + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Date/getMilliseconds +--- +
{{JSRef}}
+ +

Die getMilliseconds() Methode gibt die Millisekunden eines Datums bezüglich der Ortszeit zurück.

+ +
{{EmbedInteractiveExample("pages/js/date-getmilliseconds.html")}}
+ + + +

Syntax

+ +
dateObj.getMilliseconds()
+ +

Rückgabewert

+ +

Eine ganze Zahl zwischen 0 und 999, welche die Millisekunden der gegebenen Zeit bezüglich der lokalen Zeit angibt.

+ +

Beispiele

+ +

Einsatz von getMilliseconds()

+ +

Im folgenden Beispiel wird die Variable milliseconds mit den aktuellen Millisekunden initialisiert:

+ +
var today = new Date();
+var milliseconds = today.getMilliseconds();
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES1')}}{{Spec2('ES1')}}Initiale Definition. Implementiert in JavaScript 1.3.
{{SpecName('ES5.1', '#sec-15.9.5.24', 'Date.prototype.getMilliseconds')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-date.prototype.getmilliseconds', 'Date.prototype.getMilliseconds')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-date.prototype.getmilliseconds', 'Date.prototype.getMilliseconds')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Date.getMilliseconds")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/date/getminutes/index.html b/files/de/web/javascript/reference/global_objects/date/getminutes/index.html new file mode 100644 index 0000000000..ec541dc8fe --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/date/getminutes/index.html @@ -0,0 +1,81 @@ +--- +title: Date.prototype.getMinutes() +slug: Web/JavaScript/Reference/Global_Objects/Date/getMinutes +tags: + - Date + - JavaScript + - Method + - Prototype + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Date/getMinutes +--- +
{{JSRef}}
+ +

Die getMinutes() Methode gibt die Minuten eines Datums bezüglich der Ortszeit zurück.

+ +
{{EmbedInteractiveExample("pages/js/date-getminutes.html")}}
+ +

Syntax

+ +
dateObj.getMinutes()
+ +

Rückgabewert

+ +

Eine ganze Zahl zwischen 0 und 59, welche die Minuten der gegebenen Zeit bezüglich der lokalen Zeit angibt.

+ +

Beispiele

+ +

Einsatz von getMinutes()

+ +

Im zweiten Statement wird die Variable minutes mit dem Wert 15 initialisiert. Dieses wird mit dem Wert des {{jsxref("Global_Objects/Date", "Date")}} Objektes Xmas95 erreicht.

+ +
var Xmas95 = new Date('December 25, 1995 23:15:30');
+var minutes = Xmas95.getMinutes();
+
+console.log(minutes); // 15
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES1')}}{{Spec2('ES1')}}Initiale Definition. Implementiert in JavaScript 1.0.
{{SpecName('ES5.1', '#sec-15.9.5.20', 'Date.prototype.getMinutes')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-date.prototype.getminutes', 'Date.prototype.getMinutes')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-date.prototype.getminutes', 'Date.prototype.getMinutes')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Date.getMinutes")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/date/getmonth/index.html b/files/de/web/javascript/reference/global_objects/date/getmonth/index.html new file mode 100644 index 0000000000..5c5d8ceed7 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/date/getmonth/index.html @@ -0,0 +1,83 @@ +--- +title: Date.prototype.getMonth() +slug: Web/JavaScript/Reference/Global_Objects/Date/getMonth +tags: + - Date + - JavaScript + - Method + - Prototype + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Date/getMonth +--- +
{{JSRef}}
+ +

Die getMonth() Methode gibt den Monat eines Datums bezüglich der Ortszeit zurück. Diese Monat ist ein 0 basierter Wert (wobei 0 den ersten Monat des Jahres beschreibt).

+ +
{{EmbedInteractiveExample("pages/js/date-getmonth.html")}}
+ + + +

Syntax

+ +
dateObj.getMonth()
+ +

Rückgabewert

+ +

Eine ganze Zahl zwischen 0 und 11, welche den Monat des gegebenen Datums bezüglich der lokalen Zeit angibt. 0 steht für Januar, 1 für Februar und so weiter.

+ +

Beispiele

+ +

Einsatz von getMonth()

+ +

Im zweiten Statement wird der Variablen month der Wert 11 zugewiesen. Dieses geschiet auf Basis des {{jsxref("Date")}} Objektes Xmas95.

+ +
var Xmas95 = new Date('December 25, 1995 23:15:30');
+var month = Xmas95.getMonth();
+
+console.log(month); // 11
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES1')}}{{Spec2('ES1')}}Initiale Definition. Implementiert in JavaScript 1.0.
{{SpecName('ES5.1', '#sec-15.9.5.12', 'Date.prototype.getMonth')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-date.prototype.getmonth', 'Date.prototype.getMonth')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-date.prototype.getmonth', 'Date.prototype.getMonth')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Date.getMonth")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/date/getseconds/index.html b/files/de/web/javascript/reference/global_objects/date/getseconds/index.html new file mode 100644 index 0000000000..1cd8514b1b --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/date/getseconds/index.html @@ -0,0 +1,83 @@ +--- +title: Date.prototype.getSeconds() +slug: Web/JavaScript/Reference/Global_Objects/Date/getSeconds +tags: + - Date + - JavaScript + - Method + - Prototype + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Date/getSeconds +--- +
{{JSRef}}
+ +

Die getSeconds() Methode gibt die Sekunden eines Datums (Zeit) bezüglich der Ortszeit zurück.

+ +
{{EmbedInteractiveExample("pages/js/date-getseconds.html")}}
+ + + +

Syntax

+ +
dateObj.getSeconds()
+ +

Rückgabewert

+ +

Eine ganze Zahl zwischen 0 und 59, welche die Sekunden der gegebenen Zeit bezüglich der lokalen Zeit angibt.

+ +

Beispiele

+ +

Einsatz von getSeconds()

+ +

Im zweiten Statement wird der Variablen seconds der Wert 30 zugewiesen. Dieses geschiet auf Basis des {{jsxref("Date")}} Objektes Xmas95.

+ +
var Xmas95 = new Date('December 25, 1995 23:15:30');
+var seconds = Xmas95.getSeconds();
+
+console.log(seconds); // 30
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES1')}}{{Spec2('ES1')}}Initiale Definition. Implementiert in JavaScript 1.0.
{{SpecName('ES5.1', '#sec-15.9.5.22', 'Date.prototype.getSeconds')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-date.prototype.getseconds', 'Date.prototype.getSeconds')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-date.prototype.getseconds', 'Date.prototype.getSeconds')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Date.getSeconds")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/date/gettime/index.html b/files/de/web/javascript/reference/global_objects/date/gettime/index.html new file mode 100644 index 0000000000..8c6eb521e1 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/date/gettime/index.html @@ -0,0 +1,126 @@ +--- +title: Date.prototype.getTime() +slug: Web/JavaScript/Reference/Global_Objects/Date/getTime +tags: + - Date + - JavaScript + - Method + - Prototype + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Date/getTime +--- +
{{JSRef}}
+ +

Die getTime() Methode gibt einen nummerischen Wert zurück, der die Zeit gemäß der Weltzeit (UTC) angibt.

+ +

getTime() nutzt immer die UTC für die Zeitrepräsentation. Zum Beispiel ist der Aufruf von getTime() in einer Zeitzone der gleiche Wert wie in einer anderen Zone.

+ +

Man kann diese Methode einsetzten, um ein anderes {{jsxref("Date")}} Objekt zu initialisieren. Diese Methode hat den gleichen Funktionsumfang wie die {{jsxref("Date.valueof", "valueOf()")}} Methode.

+ +
{{EmbedInteractiveExample("pages/js/date-gettime.html")}}
+ + + +

Syntax

+ +
dateObj.getTime()
+ +

Rückgabewert

+ +

Die Anzahl der Millisekunden zwischen dem 1. Januar 1970 00:00:00 UTC und dem gegebenen Zeitpunkt.

+ +

Beispiele

+ +

Einsatz von getTime() für das Kopieren von Daten

+ +

Erstellen eines {{jsxref("Date")}} Objektes mit identischem Zeitwert.

+ +
// Seit der Monat 0-basiert ist, ist birthday der 10. Januar 1995
+var birthday = new Date(1994, 12, 10);
+var copy = new Date();
+copy.setTime(birthday.getTime());
+
+ +

Ausführzeit Messen

+ +

Das Subtrahieren zweier getTime() Aufrufe auf {{jsxref("Date")}} Objekten, ergibt die Zeitspanne zwischen den beiden Aufrufen. Das kann eingesetzt werden, um die Ausführungszeit von Operationen zu berechnen. Auch die {{jsxref("Date.now()")}} Methode kann eingesetzt werden, um unnötiges Instanziieren von {{jsxref("Date")}} Objekten zu vermeiden.

+ +
var end, start;
+
+start = new Date();
+for (var i = 0; i < 1000; i++) {
+  Math.sqrt(i);
+}
+end = new Date();
+
+console.log('Operation took ' + (end.getTime() - start.getTime()) + ' msec');
+
+ +

Reduzierte Zeitpräzision

+ +

Um den Schutz vor Timing-Angriffen und Fingerabdrücken zu gewährleisten, kann die Genauigkeit von new Date().GetTime() abhängig von den Browsereinstellungen abgerundet werden.
+ In Firefox ist die privacy.resistFingerprinting Einstellung normalerweise eingeschaltet auf 20 us in Firefox 59; in 60 wird es 2 ms sein.

+ +
// reduced time precision disabled
+new Date().getTime();
+// 1519129755973
+// 1519129769481
+// 1519129808126
+// ...
+
+
+// reduced time precision enabled
+new Date().getTime();
+// 1519129853500
+// 1519129858900
+// 1519129864400
+// ...
+
+ +

In Firefox kann man zudem die Eigenschaft privacy.resistFingerprinting einschalten, die Präzision wird 100 ms sein oder man benutzt den Wert privacy.resistFingerprinting.reduceTimerPrecision.microseconds, wenn der Wert größer sein soll.

+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES1')}}{{Spec2('ES1')}}Initiale Definition. Implementiert in JavaScript 1.0.
{{SpecName('ES5.1', '#sec-15.9.5.9', 'Date.prototype.getTime')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-date.prototype.gettime', 'Date.prototype.getTime')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-date.prototype.gettime', 'Date.prototype.getTime')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Date.getTime")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/date/gettimezoneoffset/index.html b/files/de/web/javascript/reference/global_objects/date/gettimezoneoffset/index.html new file mode 100644 index 0000000000..6d7cbb8442 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/date/gettimezoneoffset/index.html @@ -0,0 +1,102 @@ +--- +title: Date.prototype.getTimezoneOffset() +slug: Web/JavaScript/Reference/Global_Objects/Date/getTimezoneOffset +tags: + - Date + - JavaScript + - Method + - Prototype + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Date/getTimezoneOffset +--- +
{{JSRef}}
+ +

Die getTimezoneOffset() Methode gibt den Unterschied zwischen der aktuellen Ortszeit (Einstellungen des Hostsystems) und der Weltzeit (UTC) in Minuten zurück.

+ +
{{EmbedInteractiveExample("pages/js/date-gettimezoneoffset.html")}}
+ + + +

Syntax

+ +
dateObj.getTimezoneOffset()
+ +

Rückgabewert

+ +

Eine Zahl, welche den Unterschied zwischen der aktuellen Ortszeit (Einstellung des Hostsystems) und der UTC in Minuten repräsentiert.

+ +

Beschreibung

+ +

Der Zeitzonen-Offset ist der Unterschied, in Minuten, zwischen der lokalen Zeit und der Weltzeit (UTC). Das bedeutet, dass die Anzahl der Minuten eine positive Zahl ist, wenn die lokale Zeit hinterher geht, und eine negative Zahl ist, wenn die lokale Zeit voraus geht. Zum Beispiel gibt die Methode für die Zeitzone UTC+10 (Ost Australische Standardzeit) -600 zurück.

+ + + + + + + + + + + + + + + + +
Aktuelle ZeitzoneUTC-8UTCUTC+3
Rückgabewert4800-180
+ +

Das zurückgegebene Zeitzonen-Offset ist immer das zu dem Date-Objekt zugehörige Offset. Wenn das Hostsystem für die Sommerzeit konfiguriert ist, ändert sich das Offset je nach Datum und Uhrzeit des Datums und der Sommerzeit.

+ +

Beispiele

+ +

Einsatz von getTimezoneOffset()

+ +
// Gibt das aktuelle Zeitzonen-Offset für das Hostsystem zurück.
+var x = new Date();
+var currentTimeZoneOffsetInHours = x.getTimezoneOffset() / 60;
+// 1
+
+// Gibt das Zeitzonen Offset des Internationalen Tag der Arbeit (1. Mai) in 2016 zurück.
+// Vorsicht beim Einsatz des Date() Konstruktors, denn dieser Benutzt den 0-indizierten Monat
+// so dass Mai durch 4 (und nicht durch 5) repräsentiert wird.
+var labourDay = new Date(2016, 4, 1);
+var labourDayOffset = labourDay.getTimezoneOffset() / 60;
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES1')}}{{Spec2('ES1')}}Initiale Definition. Implementiert in JavaScript 1.0.
{{SpecName('ES5.1', '#sec-15.9.5.26', 'Date.prototype.getTimezoneOffset')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-date.prototype.gettimezoneoffset', 'Date.prototype.getTimezoneOffset')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-date.prototype.gettimezoneoffset', 'Date.prototype.getTimezoneOffset')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Date.getTimezoneOffset")}}

diff --git a/files/de/web/javascript/reference/global_objects/date/getutcdate/index.html b/files/de/web/javascript/reference/global_objects/date/getutcdate/index.html new file mode 100644 index 0000000000..4d85c3b3b8 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/date/getutcdate/index.html @@ -0,0 +1,80 @@ +--- +title: Date.prototype.getUTCDate() +slug: Web/JavaScript/Reference/Global_Objects/Date/getUTCDate +tags: + - Date + - JavaScript + - Method + - Prototype + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Date/getUTCDate +--- +
{{JSRef}}
+ +

Die getUTCDate() Methode gibt den Tag des Monats eines Datums bezüglich der Weltzeit zurück.

+ +
{{EmbedInteractiveExample("pages/js/date-getutcdate.html")}}
+ +

Syntax

+ +
dateObj.getUTCDate()
+ +

Rückgabewert

+ +

Eine ganze Zahl zwischen 1 und 31, die den Tag des Monats des gegebenen Datums bezüglich der Weltzeit (UTC) angibt.

+ +

Beispiele

+ +

Einsatz von getUTCDate()

+ +

Das folgende Beispiel weißt der Variablen day den Tag des aktullen Datums zu.

+ +
var today = new Date();
+var day = today.getUTCDate();
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES1')}}{{Spec2('ES1')}}Initiale Definition. Implementiert in JavaScript 1.3.
{{SpecName('ES5.1', '#sec-15.9.5.15', 'Date.prototype.getUTCDate')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-date.prototype.getutcdate', 'Date.prototype.getUTCDate')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-date.prototype.getutcdate', 'Date.prototype.getUTCDate')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Date.getUTCDate")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/date/getutcday/index.html b/files/de/web/javascript/reference/global_objects/date/getutcday/index.html new file mode 100644 index 0000000000..445e09aae3 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/date/getutcday/index.html @@ -0,0 +1,82 @@ +--- +title: Date.prototype.getUTCDay() +slug: Web/JavaScript/Reference/Global_Objects/Date/getUTCDay +tags: + - Date + - JavaScript + - Method + - Prototype + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Date/getUTCDay +--- +
{{JSRef}}
+ +

Die getUTCDay() Methode gibt den Wochentag eines Datums bezüglich der Weltzeit zurück. 0 steht für Sonntag.

+ +
{{EmbedInteractiveExample("pages/js/date-getutcday.html")}}
+ + + +

Syntax

+ +
dateObj.getUTCDay()
+ +

Rückgabewert

+ +

Eine ganze Zahl, die einen Wochentag des gegebenen Datums bezüglich der Weltzeit (UTC) repräsentiert. 0 steht für Sonntag, 1 für Montag, 2 für Dienstag und so weiter.

+ +

Beispiele

+ +

Einsatz von getUTCDay()

+ +

Im folgenden Beispiel wird der aktuelle Wochentag der Variablen weekday zugewiesen.

+ +
var today = new Date();
+var weekday = today.getUTCDay();
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES1')}}{{Spec2('ES1')}}Initiale Definition. Implementiert in JavaScript 1.3.
{{SpecName('ES5.1', '#sec-15.9.5.17', 'Date.prototype.getUTCDay')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-date.prototype.getutcday', 'Date.prototype.getUTCDay')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-date.prototype.getutcday', 'Date.prototype.getUTCDay')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Date.getUTCDay")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/date/getutcfullyear/index.html b/files/de/web/javascript/reference/global_objects/date/getutcfullyear/index.html new file mode 100644 index 0000000000..0c273c4af9 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/date/getutcfullyear/index.html @@ -0,0 +1,85 @@ +--- +title: Date.prototype.getUTCFullYear() +slug: Web/JavaScript/Reference/Global_Objects/Date/getUTCFullYear +tags: + - Date + - JavaScript + - Method + - Prototype + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Date/getUTCFullYear +--- +
{{JSRef}}
+ +

Die getUTCFullYear() Methode gibt das Jahr eines Datums bezüglich der Weltzeit zurück.

+ +
{{EmbedInteractiveExample("pages/js/date-getutcfullyear.html")}}
+ + + +

Syntax

+ +
dateObj.getUTCFullYear()
+ +

Rückgabewert

+ +

Eine Zahl, die das Jahr des gegebenen Datums bezüglich der Weltzeit (UTC) angibt.

+ +

Beschreibung

+ +

Der von getUTCFullYear() zurückgegebene Wert ist eine absolute Zahl, die das Jahr (4-stellig) repräsentiert (z. B. 1995).

+ +

Beispiele

+ +

Einsatz von getUTCFullYear()

+ +

Im folgenden Beispiel wird die Variable year mit dem aktuellen Jahr (4-stellig) bezüglich der Weltzeit beschrieben.

+ +
var today = new Date();
+var year = today.getUTCFullYear();
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES1')}}{{Spec2('ES1')}}Initiale Definition. Implementiert in JavaScript 1.3.
{{SpecName('ES5.1', '#sec-15.9.5.11', 'Date.prototype.getUTCFullYear')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-date.prototype.getutcfullyear', 'Date.prototype.getUTCFullYear')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-date.prototype.getutcfullyear', 'Date.prototype.getUTCFullYear')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Date.getUTCFullYear")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/date/getutchours/index.html b/files/de/web/javascript/reference/global_objects/date/getutchours/index.html new file mode 100644 index 0000000000..b11d3df06f --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/date/getutchours/index.html @@ -0,0 +1,81 @@ +--- +title: Date.prototype.getUTCHours() +slug: Web/JavaScript/Reference/Global_Objects/Date/getUTCHours +tags: + - Date + - JavaScript + - Method + - Prototype + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Date/getUTCHours +--- +
{{JSRef}}
+ +

Die getUTCHours() Methode gibt die Stunden eines Datums bezüglich der Weltzeit zurück.

+ +
{{EmbedInteractiveExample("pages/js/date-getutchours.html")}}
+ + + +

Syntax

+ +
dateObj.getUTCHours()
+ +

Rückgabewert

+ +

Eine ganze Zahl zwischen 0 und 23, die die Stunde des gegebenen date Objektes bezüglich der Weltzeit (UTC) angibt.

+ +

Beispiele

+ +

Einsatz von getUTCHours()

+ +

Im folgenden Beispiel wird der Variablen hours die aktuelle Stunde der Weltzeit zugewiesen.

+ +
var today = new Date();
+var hours = today.getUTCHours();
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES1')}}{{Spec2('ES1')}}Initiale Definition. Implementiert in JavaScript 1.3.
{{SpecName('ES5.1', '#sec-15.9.5.19', 'Date.prototype.getUTCHours')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-date.prototype.getutchours', 'Date.prototype.getUTCHours')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-date.prototype.getutchours', 'Date.prototype.getUTCHours')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Date.getUTCHours")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/date/getutcmilliseconds/index.html b/files/de/web/javascript/reference/global_objects/date/getutcmilliseconds/index.html new file mode 100644 index 0000000000..d44ece54d3 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/date/getutcmilliseconds/index.html @@ -0,0 +1,79 @@ +--- +title: Date.prototype.getUTCMilliseconds() +slug: Web/JavaScript/Reference/Global_Objects/Date/getUTCMilliseconds +tags: + - Date + - JavaScript + - Method + - Prototype + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Date/getUTCMilliseconds +--- +
{{JSRef}}
+ +

Die getUTCMilliseconds() Methode gibt die Millisekunden eines Datums bezüglich der Weltzeit zurück.

+ +
{{EmbedInteractiveExample("pages/js/date-getutcmilliseconds.html")}}
+ +

Syntax

+ +
dateObj.getUTCMilliseconds()
+ +

Rückgabewert

+ +

Eine ganze Zahl zwischen 0 und 999, die die Millisekunden des gegebenen date Objektes bezüglich der Weltzeit (UTC) angibt.

+ +

Beispiele

+ +

Einsatz von getUTCMilliseconds()

+ +

Im folgenden Beispiel wird der Variablen milliseconds die aktuellen Millisekunden der Weltzeit zugewiesen.

+ +
var today = new Date();
+var milliseconds = today.getUTCMilliseconds();
+
+ +

Spezifikationer

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES1')}}{{Spec2('ES1')}}Initiale Definition. Implementiert in JavaScript 1.3.
{{SpecName('ES5.1', '#sec-15.9.5.25', 'Date.prototype.getUTCMilliseconds')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-date.prototype.getutcmilliseconds', 'Date.prototype.getUTCMilliseconds')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-date.prototype.getutcmilliseconds', 'Date.prototype.getUTCMilliseconds')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Date.getUTCMilliseconds")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/date/getutcminutes/index.html b/files/de/web/javascript/reference/global_objects/date/getutcminutes/index.html new file mode 100644 index 0000000000..e2f039b987 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/date/getutcminutes/index.html @@ -0,0 +1,79 @@ +--- +title: Date.prototype.getUTCMinutes() +slug: Web/JavaScript/Reference/Global_Objects/Date/getUTCMinutes +tags: + - Date + - JavaScript + - Method + - Prototype + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Date/getUTCMinutes +--- +
{{JSRef}}
+ +

Die getUTCMinutes() Methode gibt die Minuten eines Datums bezüglich der Weltzeit zurück.

+ +
{{EmbedInteractiveExample("pages/js/date-getutcminutes.html")}}
+ +

Syntax

+ +
dateObj.getUTCMinutes()
+ +

Rückgabewert

+ +

Eine ganze Zahl wzischen 0 und 59, die die Minuten des gegebenen date Objektes bezüglich der Weltzeit (UTC) angibt.

+ +

Beispiele

+ +

Einsatz von getUTCMinutes()

+ +

Im Folgenden Beispiel wird der Variablen minutes die aktuelle Minute der Weltzeit zugewiesen.

+ +
var today = new Date();
+var minutes = today.getUTCMinutes();
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES1')}}{{Spec2('ES1')}}Initiale Definition. Implementiert in JavaScript 1.3.
{{SpecName('ES5.1', '#sec-15.9.5.21', 'Date.prototype.getUTCMinutes')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-date.prototype.getutcminutes', 'Date.prototype.getUTCMinutes')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-date.prototype.getutcminutes', 'Date.prototype.getUTCMinutes')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Date.getUTCMinutes")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/date/getutcmonth/index.html b/files/de/web/javascript/reference/global_objects/date/getutcmonth/index.html new file mode 100644 index 0000000000..3de532c78a --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/date/getutcmonth/index.html @@ -0,0 +1,81 @@ +--- +title: Date.prototype.getUTCMonth() +slug: Web/JavaScript/Reference/Global_Objects/Date/getUTCMonth +tags: + - Date + - JavaScript + - Method + - Prototype + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Date/getUTCMonth +--- +
{{JSRef}}
+ +

Die getUTCMonth() Methode gibt den Monat eines Datums bezüglich der Weltzeit zurück. Dieser Wert ist 0-basierend (0 steht für den ersten Monat im Jahr).

+ +
{{EmbedInteractiveExample("pages/js/date-getutcmonth.html")}}
+ + + +

Syntax

+ +
dateObj.getUTCMonth()
+ +

Rückgabewert

+ +

Eine ganze Zahl zwischen 0 und 11, die den Monat des gegebenen Datums bezüglich der Weltzeit (UTC) angibt. 0 steht für Januar, 1 für Februar, 2 für März und so weiter.

+ +

Beispiele

+ +

Einsatz von getUTCMonth()

+ +

Das folgende Beispiel weist der month Variable den aktuellen Monat zu.

+ +
var today = new Date();
+var month = today.getUTCMonth();
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES1')}}{{Spec2('ES1')}}Initiale Definition. Implementiert in JavaScript 1.3.
{{SpecName('ES5.1', '#sec-15.9.5.13', 'Date.prototype.getUTCMonth')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-date.prototype.getutcmonth', 'Date.prototype.getUTCMonth')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-date.prototype.getutcmonth', 'Date.prototype.getUTCMonth')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Date.getUTCMonth")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/date/getutcseconds/index.html b/files/de/web/javascript/reference/global_objects/date/getutcseconds/index.html new file mode 100644 index 0000000000..55ca03eb8f --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/date/getutcseconds/index.html @@ -0,0 +1,79 @@ +--- +title: Date.prototype.getUTCSeconds() +slug: Web/JavaScript/Reference/Global_Objects/Date/getUTCSeconds +tags: + - Date + - JavaScript + - Method + - Prototype + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Date/getUTCSeconds +--- +
{{JSRef}}
+ +

Die getUTCSeconds() Methode gibt die Sekunden der Zeit bezüglich der Weltzeit zurück.

+ +
{{EmbedInteractiveExample("pages/js/date-getutcseconds.html")}}
+ +

Syntax

+ +
dateObj.getUTCSeconds()
+ +

Rückgabewert

+ +

Eine ganze Zahl zwischen 0 und 59, die die Sekunden des gegebenen Date-Objektes bezüglich der Weltzeit (UTC) angibt.

+ +

Beispiele

+ +

Einsatz von getUTCSeconds()

+ +

Das folgende Beispiel weist der Variablen seconds die aktuelle Sekunde zu.

+ +
var today = new Date();
+var seconds = today.getUTCSeconds();
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES1')}}{{Spec2('ES1')}}Initiale Definition. Implementiert in JavaScript 1.3.
{{SpecName('ES5.1', '#sec-15.9.5.23', 'Date.prototype.getUTCSeconds')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-date.prototype.getutcseconds', 'Date.prototype.getUTCSeconds')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-date.prototype.getutcseconds', 'Date.prototype.getUTCSeconds')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Date.getUTCSeconds")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/date/getyear/index.html b/files/de/web/javascript/reference/global_objects/date/getyear/index.html new file mode 100644 index 0000000000..1c7ef8baba --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/date/getyear/index.html @@ -0,0 +1,127 @@ +--- +title: Date.prototype.getYear() +slug: Web/JavaScript/Reference/Global_Objects/Date/getYear +tags: + - Date + - Deprecated + - JavaScript + - Method + - Prototype + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Date/getYear +--- +
{{JSRef}} {{deprecated_header}}
+ +

Die getYear() Methode gibt das Jahr eines Datums bezüglich der Ortszeit zurück. Weil getYear() nicht das ganze Jahr zurück gibt (das "Jahr 2000 Problem"), wird es nicht weiter eingesetzt und wird von der Methode {{jsxref("Date.prototype.getFullYear", "getFullYear()")}} ersetzt.

+ +

Syntax

+ +
dateObj.getYear()
+ +

Rückgabewert

+ +

Eine Zahl, welche das Jahr minus 1900 des gegebenen Datums bezüglich der lokalen Zeit angibt.

+ +

Beschreibung

+ + + +

Um mit Jahren vor und nach 2000 umgehen zu können, sollte stattdessen die Methode {{jsxref("Date.prototype.getFullYear", "getFullYear()")}} eingesetzt werden. Diese gibt das vollständige Jahr zurück.

+ +

Rückwärtskompatibilität

+ +

Verhalten in JavaScript 1.2 und früher

+ +

Die getYear() Methode gibt entweder ein 2-stelliges oder 4-stelliges Jahr zurück.

+ + + +

Beispiele

+ +

Jahre zwischen 1900 und 1999

+ +

Das zweite Statement initialisiert die Variable year mit dem Wert 95.

+ +
var Xmas = new Date('December 25, 1995 23:15:00');
+var year = Xmas.getYear(); // returns 95
+
+ +

Jahre nach 1999

+ +

Das zweite Statement initialisiert die Variable year mit dem Wert 100.

+ +
var Xmas = new Date('December 25, 2000 23:15:00');
+var year = Xmas.getYear(); // returns 100
+
+ +

Jahre vor 1900

+ +

Das zweite Statement initialisiert die Variable year mit dem Wert -100.

+ +
var Xmas = new Date('December 25, 1800 23:15:00');
+var year = Xmas.getYear(); // returns -100
+
+ +

Setzen und bekommen von Jahren zwischen 1900 und 1999

+ +

Das zweite Statement initialisiert die Variable year mit dem Wert 95, was für das Jahr 1995 steht.

+ +
var Xmas = new Date('December 25, 2015 23:15:00');
+Xmas.setYear(95);
+var year = Xmas.getYear(); // returns 95
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES1')}}{{Spec2('ES1')}}Initiale Definition. Implementiert in JavaScript 1.3.
{{SpecName('ES5.1', '#sec-B.2.4', 'Date.prototype.getYear')}}{{Spec2('ES5.1')}} +

Definiert in dem (informativen) Kompatibilitäts-Anhang

+
{{SpecName('ES6', '#sec-date.prototype.getyear', 'Date.prototype.getYear')}}{{Spec2('ES6')}}Definiert in dem (normativ) Anhang für zusätzliche Funktionen für Web-Browser.
{{SpecName('ESDraft', '#sec-date.prototype.getyear', 'Date.prototype.getYear')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Date.getYear")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/date/index.html b/files/de/web/javascript/reference/global_objects/date/index.html new file mode 100644 index 0000000000..75346dfbc4 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/date/index.html @@ -0,0 +1,230 @@ +--- +title: Date +slug: Web/JavaScript/Reference/Global_Objects/Date +tags: + - Date + - JavaScript +translation_of: Web/JavaScript/Reference/Global_Objects/Date +--- +

{{JSRef}}

+ +

Erstellt eine JavaScript Date Instanz, die einen einzelnen Moment der Zeit repräsentiert. Date Objekte basieren auf dem Zeitwert, der der Anzahl der Millisekunden seit dem 1. Januar 1970 (UTC) entspricht.

+ +

{{EmbedInteractiveExample("pages/js/date-constructor.html")}}

+ +

The source for this interactive example is stored in a GitHub repository. If you'd like to contribute to the interactive examples project, please clone https://github.com/mdn/interactive-examples and send us a pull request.

+ +

Syntax

+ +
new Date();
+new Date(value);
+new Date(dateString);
+new Date(year, monthIndex [, day [, hour [, minutes [, seconds [, milliseconds]]]]]);
+
+ +

Anmerkung: Ein JavaScript Date Objekt kann nur instanziiert werden, wenn JavaScript Date als ein Konstruktor aufgerufen wird: Beim Aufrufen als reguläre Funktion (z. B. ohne den {{jsxref("Operators/new", "new")}} Operator) gibt die Funktion einen String zurück und kein Date Objekt. Anders als andere JavaScript-Datentypen hat das Date Objekt keine Literalsyntax.

+ +

Parameter

+ +

Anmerkung: Das Argument monthIndex ist 0-basiert. Das bedeutet, dass 0 = Januar und 11 = Dezember ist.

+ +

Anmerkung: Wenn Date als Konstruktor mit mehr als einem Argument aufgerufen wird und die übergebenen Werte größer als ihr logischer Bereich sind (z. B. 13 wird als Monat genutzt oder 70 wird als Minutenwert eingesetzt) wird der angrenzende Wert angepasst. Z. B. ist new Date(2013, 13, 1) äquivalent zu new Date(2014, 1, 1. Beide Ausdrücke erstellen das Datum 2014-02-01 (Monate fangen bei 0 an). Das gleiche gilt für folgende Werte: new Date(2013, 2, 1, 0, 70) ist äquivalent zu new Date(2013, 2, 1, 1, 10), was beides den Zeitpunkt 2013-03-01T01:10:00 erzeugt.

+ +

Anmerkung: Wenn Date als Konstruktor mit mehr als einem Argumenten aufgerufen wird, werden die Argumente als Ortszeiten interpretiert. Wenn die Weltzeit genutzt werden soll, muss new Date({{jsxref("Date.UTC()", "Date.UTC(...)")}}) mit den gleichen Argumenten genutzt werden.

+ +
+
value
+
Ganze Zahl, die die Anzahl der Millisekunden seit dem 1. Januar 1970 00:00:00 UTC (Unixzeit) repräsentiert.
+
+ +
+
dateString
+
String der ein Datum repräsentiert. Der String muss in einem Format vorliegen, der von der {{jsxref("Date.parse()")}} Methode eingelesen werden kann (IETF-compliant RFC 2822 Zeitstempel und auch eine Version von ISO8601). +

Anmerkung: Von dem Einlesen eines Zeitstempel-Strings durch den Date Konstruktor (und Date.parse, denn diese Funktion ist äquivalent) wird stark abgeraten, wegen der Unterschiede in den Browsern und Inkonsistenzen. Die Unterstützung für RFC 2822 formatierte Strings ist nur eine Konvention. Unterstützung für ISO 8601 formatierte Strings unterscheidet sich in den Strings mit nur einem Datum (z. B. "1970-01-01") werden nur als UTC behandelt und nicht als lokales Daten.

+
+
+ +
+
year
+
Ganze Zahl, die die Jahre repräsentiert. Werte von 0 bis 99 werden zu den Jahren 1900 bis 1999 umgewandelt. Siehe das  {{anch("Zwei_ziffrige_Zahlen_für_die_Jahre_1900_-_1999", "Beispiel unten")}}.
+
+ +
+
monthIndex
+
Ganze Zahl, die den Monat repräsentiert. Die Zahl beginnt bei 0 für Januar und endet bei 11 für Dezember.
+
+ +
+
day
+
Ganze Zahl, die den Tag des Monats repräsentiert.
+
+ +
+
hour
+
Ganze Zahl, die die Stunde des Tages repräsentiert.
+
+ +
+
minute
+
Ganze Zahl, die die Minuten einer Stunde repräsentiert.
+
+ +
+
second
+
Ganze Zahl, die die Sekunden einer Minute repräsentiert.
+
+ +
+
millisecond
+
Ganze Zahl, die die Millisekunden einer Sekunde repräsentiert.
+
+ +

Beschreibung

+ + + +

Eigenschaften

+ +
+
{{jsxref("Date.prototype")}}
+
Erlaubt das Hinzufügen von Eigenschaften zum JavaScript Date Objekt.
+
Date.length
+
Der Wert von Date.length ist 7. Dieser ist die Anzahl der Argumente, die vom Konstruktor gehändelt werden.
+
+ +

Methoden

+ +
+
{{jsxref("Date.now()")}}
+
Gibt den nummerischen Wert der aktuellen Zeit an - die Anzahl der Millisekunden die seit dem 1. Januar 1970 00:00:00 UTC vergangen sind.
+
{{jsxref("Date.parse()")}}
+
Analysiert eine String-Repräsentation eines Datums und gibt die Anzahl der Millisekunden seit dem 1. Januar 1970 00:00:00 UTC zurück. +

Anmerkung: Von der Nutzung der Date.parse Methode wird stark abgeraten wegen der Unterschiede und Widersprüche in verschiedenen Browsern.

+
+
{{jsxref("Date.UTC()")}}
+
Akzeptiert die gleichen Parameter wie die längste Form des Konstruktors (z. B. 2 bis 7) und gibt die Anzahl der Millisekunden seit dem 1. Januar 1970 00:00:00 UTC zurück.
+
+ +

JavaScript Date Instanzen

+ +

Alle Date Instanzen erben von {{jsxref("Date.prototype")}}. Das Prototype Objekt des Date Konstruktors kann modifiziert werden, um alle Date Instanzen zu ändern.

+ +

Methoden

+ +

{{ page("/de/docs/Web/JavaScript/Reference/Global_Objects/Date/prototype", "Methoden") }}

+ +

Beispiele

+ +

Verschiedene Wege ein Date Objekt zu erstellen

+ +

Das folgende Beispiel zeigt verschiedene Wege, um JavaScript {{jsxref("Date")}} Objekte zu erstellen:

+ +

Anmerkung: Von der Nutzung des Date Konstruktors mit einem String-Argument (und der Date.parse Methode) wird wegen der Unterschiede und Widersprüche in verschiedenen Browsern abgeraten.

+ +
var today = new Date();
+var birthday = new Date("December 17, 1995 03:24:00");
+var birthday = new Date("1995-12-17T03:24:00");
+var birthday = new Date(1995,11,17);
+var birthday = new Date(1995,11,17,3,24,0);
+
+ +

Zwei ziffrige Zahlen für die Jahre 1900 - 1999

+ +

Um Daten in den Jahren 0 bis 99 zu erzeugen und abzufragen, müssen die Methoden {{jsxref("Date.prototype.setFullYear()")}} und {{jsxref("Date.prototype.getFullYear()")}} eingesetzt werden.

+ +
var date = new Date(98, 1); // Sun Feb 01 1998 00:00:00 GMT+0000 (GMT)
+
+// Deprecated Methode, 98 wird hier zu 1998
+date.setYear(98);           // Sun Feb 01 1998 00:00:00 GMT+0000 (GMT)
+
+date.setFullYear(98);       // Sat Feb 01 0098 00:00:00 GMT+0000 (BST)
+ +

Berechnen von vergangener Zeit

+ +

Die folgenden Beispiele zeigen, wie man die vergangene Zeit zwischen zwei JavaScript dates in Millisekunden berechnet.

+ +

Durch die unterschiedlichen Längen von Tagen (wegen der Sommer/Winter Zeitumstellung), Monaten und Jahren gibt es bei Zeiteinheiten größer als Stunden, Minuten und Sekunden eine Reihe von Problemen, die vorher recherchiert und abgeprüft werden sollten.

+ +
// Einsatz Date Objekts
+var start = Date.now();
+
+// Event was einige Zeit braucht:
+doSomethingForALongTime();
+var end = Date.now();
+var elapsed = end - start; // elapsed time in milliseconds
+
+ +
// Einsatz Eingebauter Methoden
+var start = new Date();
+
+// Event was einige Zeit braucht:
+doSomethingForALongTime();
+var end = new Date();
+var elapsed = end.getTime() - start.getTime(); // elapsed time in milliseconds
+
+ +
// Testen einer funktion und Rückgabe des Rückgabewertes
+function printElapsedTime (fTest) {
+	var nStartTime = Date.now(),
+            vReturn = fTest(),
+            nEndTime = Date.now();
+
+	alert("Elapsed time: " + String(nEndTime - nStartTime) + " milliseconds");
+	return vReturn;
+}
+
+yourFunctionReturn = printElapsedTime(yourFunction);
+
+ +

Anmerkung: In Browsern, die die hochauflösende Zeitfunktionen von der {{domxref("window.performance", "Web Performance API", "", 1)}} unterstützen, kann {{domxref("Performance.now()")}} bessere und präzisere Messergebnisse liefern als {{jsxref("Date.now()")}}.

+ +

Die Anzahl der Sekunden seit der Unix Epoche ermitteln

+ +
var seconds = Math.floor(Date.now() / 1000);
+ +

In diesem Fall ist es wichtig, nur eine ganze Zahl zurückzugeben (eine einfache Division würde nicht reichen) und auch nur tatsächlich verstrichene Sekunden zurückzugeben (deswegen nutzt der Quelltext die {{jsxref("Math.floor()")}} Funktion und nicht die {{jsxref("Math.round()")}} Funktion).

+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES1')}}{{Spec2('ES1')}}Initiale Definition. Implementiert in JavaScript 1.1.
{{SpecName('ES5.1', '#sec-15.9', 'Date')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-date-objects', 'Date')}}{{Spec2('ES6')}}
{{SpecName('ESDraft', '#sec-date-objects', 'Date')}}{{Spec2('ESDraft')}}
+ +

Browserkompatibilität

+ +

The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.

+ +

{{Compat("javascript.builtins.Date")}}

diff --git a/files/de/web/javascript/reference/global_objects/date/now/index.html b/files/de/web/javascript/reference/global_objects/date/now/index.html new file mode 100644 index 0000000000..e275650960 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/date/now/index.html @@ -0,0 +1,105 @@ +--- +title: Date.now() +slug: Web/JavaScript/Reference/Global_Objects/Date/now +tags: + - Date + - JavaScript + - MakeBrowserAgnostic + - Method + - Reference + - polyfill +translation_of: Web/JavaScript/Reference/Global_Objects/Date/now +--- +
{{JSRef}}
+ +

Die Date.now() Methode gibt die Anzahl der Millisekunden, die seit dem 01.01.1970 00:00:00 UTC vergangen sind zurück.

+ +
{{EmbedInteractiveExample("pages/js/date-now.html")}}
+ +

Syntax

+ +
var timeInMs = Date.now();
+
+ +

Rückgabewert

+ +

Eine {{jsxref("Number", "Zahl")}}, die die vergangenen Millisekunden seit dem 1. Januar 1970 00:00:00 Weltzeit (UTC) angibt (UNIX-Zeit).

+ +

Beschreibung

+ +

Da now eine statische Methode von Date ist, kann es immer so verwendet werden: Date.now()

+ +

Reduzierte Zeitpräzision

+ +

Um den Schutz vor Timing-Angriffen und Fingerabdrücken zu gewährleisten, kann die Genauigkeit von new Date().getTime() abhängig von den Browsereinstellungen abgerundet werden.
+ In Firefox ist die privacy.resistFingerprinting Einstellung normalerweise eingeschaltet auf 20 us in Firefox 59; in 60 wird es 2 ms sein.

+ +
// reduced time precision disabled
+new Date().getTime();
+// 1519129755973
+// 1519129769481
+// 1519129808126
+// ...
+
+
+// reduced time precision enabled
+new Date().getTime();
+// 1519129853500
+// 1519129858900
+// 1519129864400
+// ...
+
+ +

In Firefox kann man zudem die Eigenschaft privacy.resistFingerprinting einschalten, die Präzision wird 100 ms sein oder man benutzt den Wert privacy.resistFingerprinting.reduceTimerPrecision.microseconds, wenn der Wert größer sein soll.

+ +

Polyfill

+ +

Diese Methode wurde in in ECMA-262 5th edition standardisiert. Engines die noch nicht hinsichtlich diesen Standards aktualisiert wurden können den folgenden shim verwenden, um die Methode verfügbar zu machen:

+ +
if (!Date.now) {
+  Date.now = function now() {
+    return new Date().getTime();
+  };
+}
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES5.1', '#sec-15.9.4.4', 'Date.now')}}
+ Implemented in JavaScript 1.5
{{Spec2('ES5.1')}}Initiale Definition. Implementiert in JavaScript 1.5.
{{SpecName('ES6', '#sec-date.now', 'Date.now')}}{{Spec2('ES6')}}
{{SpecName('ESDraft', '#sec-date.now', 'Date.now')}}{{Spec2('ESDraft')}}
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Date.now")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/date/parse/index.html b/files/de/web/javascript/reference/global_objects/date/parse/index.html new file mode 100644 index 0000000000..4920cdb6a8 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/date/parse/index.html @@ -0,0 +1,173 @@ +--- +title: Date.parse() +slug: Web/JavaScript/Reference/Global_Objects/Date/parse +tags: + - Date + - JavaScript + - Method + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Date/parse +--- +
{{JSRef}}
+ +

Die Date.parse() Methode liest eine String-Repräsentation eines Datums ein und gibt die Anzahl der Millisekunden seit dem 1. Januar 1970 00:00:00 UTC oder NaN, wenn der String kein Datum ist oder manchmal wenn einige Datums- oder Zeitwerte einen falschen Wert haben (z. B. 2015-02-31), zurück.

+ +

Es ist bis ES5 nicht empfohlen die Date.parse Methode einzusetzten, weil das Einlesen von Strings implementierungsabhängig war. Es gibt sehr viele Unterschiede wie verschiedene Implementierungen strings einlesen, weshalb Strings manuell eingelesen werden sollten (eine Bibliothek kann helfen, wenn viele Formate eingesetzt werden sollen).

+ +
{{EmbedInteractiveExample("pages/js/date-parse.html")}}
+ + + +

Syntax

+ +

Direkter Aufruf:

+ +
Date.parse(dateString)
+ +

Impliziter Aufruf:

+ +
new Date(dateString)
+ +

Parameter

+ +
+
dateString
+
Ein String, der ein RFC2822 oder (eine Variante des) ISO 8601 Datumsformat (mit Zeit) repräsentiert (andere Formate können manchmal eingesetzt werden, jedoch ist das Ergebnis manchmal unerwartet).
+
+ +

Rückgabewert

+ +

Eine Zahl, die die Millisekunden zwischen dem 1. Januar 1970 00:00:00 UTC und dem Datum, das in dem übergebenen Parameter repräsentiert wird. Wenn der Parameter kein valides Datum repräsentiert, wird {{jsxref("NaN")}} zurückgegeben.

+ +

Beschreibung

+ +

Die parse() Methode bekommt ein Datumsstring (z. B. "Dec 25, 1995" ) und gibt die Anzahl der Millisekunden seit dem 1. Januar 1970 00:00:00 UTC zurück. Diese Funktion ist nützlich, um Datumswerte mithilfe eines Stringswertes einzustellen, (z. B. im zusammenhang mit der {{jsxref("Date.prototype.setTime()", "setTime()")}} Methode und dem {{jsxref("Global_Objects/Date", "Date")}} Objekt).

+ +

Bei einer Stringrepräsentation mit einer Zeit, gibt die parse() Methode die Zeitwert zurück. Es wird die RFC2822 / IETF Datums Syntax (RFC2822 Section 3.3) unterstützt (z. B. "Mon, 25 Dec 1995 13:30:00 GMT"). Die Methode versteht die kontimentalen US Zeitzonenabkürzungen, jedoch sollte lieber der Zeitzonenunterschied angegeben werden, wie zum Beispiel  "Mon, 25 Dec 1995 13:30:00 +0430" (4 Stunden und 30 Minuten östlich vom Greenwich Meridian).

+ +

GMT und UTC werden gleich berücksichtigt. Die lokale Zeitzone wird eingesetzt um Argumente im RFC2822 Kapitel 3.3 Format zu interpretieren, welche keine Zeitzoneninformationen enthalten.

+ +

Wegen der Unterschiede beim einlesen von Datums Strings, ist es empfohlen das Einlesen eines Datums immer manuell durchzuführen, wenn das Ergebnisse inkonsistent sind, besonders über verschiedene ECMAScript Implementierungen hinweg, wo Strings wie "2015-10-12 12:00:00" manchmal zu NaN, UTC oder lokaler Zeitzone eingelesen werden.

+ +

ECMAScript 5 ISO-8601 Format Unterstützung

+ +

Der Datums- / Zeit-String ist manchmal im einfachen ISO 8601 Format. Zum Beispiel können "2011-10-10" (nur ein Datum) oder "2011-10-10T14:48:00" (Datum und Zeit) übergeben und eingelesen werden. Wenn der String ein ISO 8601 Datum (ohne Zeit) ist, wird die UTC Zeitzone eingesetzt, um die Argumente zu interpretieren. Wenn der String Datums- und Zeitangaben im ISO 8601 Format enthällt, wird dieses als lokale Zeit interpretiert.

+ +

Weil Zeitzonen im String enthalten sein können und interpretiert werden können, wird immer die Anzahl der Millisekunden zwischen dem repräsentierten Datum und dem 1. Januar 1970 00:00:00 UTC oder NaN zurückgegeben.

+ +

Weil parse() eine statische Methode von {{jsxref("Date")}} ist, wird diese mit Date.parse() aufgerufen und nicht als Methode einer {{jsxref("Date")}} Instanz.

+ +

Unterschiede in erwarteten Zeitzonen

+ +

Wenn der Datumsstring  "March 7, 2014" gegeben ist, nimmt parse() dabei die lokale Zeitzone an. Ist hingegen ein ISO Format wie "2014-03-07" angegeben, so wird eine UTC Zeitzone angenommen (ES5 und ECMAScript 2015). Deshalb können die so erstellten {{jsxref("Date")}} Objekte einen unterschiedlichen Zeitpunkt repräsentieren. Dieses ist von der ECMAScript Version abhängig wenn das System mit einer lokalen UTC Zeit eingestellt ist. Das bedeutet, dass zwei Strings mit einem äquivalenten Datum (Unterschied in der Formatierung) zu zwei verschiednenen Ergebnissen führen kann.

+ +

Fall-back für implementierungsspezifische Datumsformate

+ +

Die ECMAScript Spezifikation besagt: Wenn ein String nicht dem Standardformat entspricht, nutzen die Funktionen eine Fall-back-Lösung in Form einer implementierungsabhängigen Heuristik oder eines implementierungsabhängigen Algorithmus. Unkenntliche Strings oder Daten, die nicht valide Werte  von ISO formattierten Elementen haben, führen dazu, dass Date.parse() den Wert {{jsxref("NaN")}} zurückgibt.

+ +

Immer, wenn ein String nicht im einfachen ISO Format ist (ECMA-252) und nicht valide Datumswerte enthällt, ist es vom Wert und vom Browser abhängig, ob {{jsxref("NaN")}} zurückgegeben wird oder nicht. Z. B.:

+ +
// Kein-ISO String: Mit nicht validen Datumswerten
+new Date('23/25/2014');
+ +

Führt zu den Datum 25. November 2015 (Ortszeit) in Firefox 30 und zu einem nicht validen Datum in Safari 7. Immer, wenn Strings als ISO Format erkannt werden und diese nicht valider Werte enthalten, wird von allen Browsern, die mindestens ES5 unterstützen, {{jsxref("NaN")}} zurückgegeben:

+ +
// ISO String mit nicht validen Werten
+new Date('2014-25-23').toISOString();
+// returns "RangeError: invalid date" in allen es5 kompatiblen Browsern
+ +

SpiderMonkey's implementierungsabhängige Heuristik kann in der jsdate.cpp-Datei gefunden werden. Der String "10 06 2014" ist ein Beispiel für einen nicht konformen ISO formatierten String und dieses wird durch die implementierungsabhängige Heuristik abgearbeitet. Siehe zudem diese grobe Übersicht an, wie das Analysieren funktioniert.

+ +
new Date('10 06 2014');
+ +

Wird das Datum 6. Oktober 2014 (Ortszeit) erzeugen und nicht den 10 Juni 2014. Andere Beispiele:

+ +
new Date('foo-bar 2014').toString();
+// returns: "Invalid Date"
+
+Date.parse('foo-bar 2014');
+// returns: NaN
+ +

Beispiele

+ +

Einsatz von Date.parse()

+ +

Wenn IPOdate ein existierendes {{jsxref("Date")}} Objekt ist, kann es auf den 9. August 1995 (Ortszeit) gesetzt werden:

+ +
IPOdate.setTime(Date.parse('Aug 9, 1995'));
+ +

Das gleich Beispiel für das Analysieren von nicht-Standarddatumsstrings:

+ +
Date.parse('Aug 9, 1995');
+ +

Gibt den Wert 807937200000 in der Zeitzone GMT-0300 zurück und andere Werte in anderen Zeitzonen, wenn im String keine Zeitzone definiert ist und es kein ISO formatiertes Datum ist. Deswegen wird als Standardwert die Ortszeit genutzt.

+ +
Date.parse('Wed, 09 Aug 1995 00:00:00 GMT');
+ +

Gibt 807926400000 in allen Zeitzonen zurück, weil GMT (UTC) angegeben ist.

+ +
Date.parse('Wed, 09 Aug 1995 00:00:00');
+ +

Gibt den Wert 807937200000 in der Zeitzone GMT-0400 zurück und andere Werte in anderen Zeitzonen, wenn im String keine Zeitzone definiert ist und es kein ISO formatiertes Datum ist. Deswegen wird als Standardwert die Ortszeit genutzt.

+ +
Date.parse('Thu, 01 Jan 1970 00:00:00 GMT');
+ +

Gibt 0 in allen Zeitzonen zurück, weil GMT (UTC) angegeben ist.

+ +
Date.parse('Thu, 01 Jan 1970 00:00:00');
+ +

Gibt den Wert 14400000 in der Zeitzone GMT-0400 zurück und andere Werte in anderen Zeitzonen, wenn im String keine Zeitzone definiert ist und es kein ISO formatiertes Datum ist. Deswegen wird als Standardwert die Ortszeit genutzt.

+ +
Date.parse('Thu, 01 Jan 1970 00:00:00 GMT-0400');
+ +

Gibt 14400000 in allen Zeitzonen zurück, weil GMT (UTC) angegeben ist.

+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES1')}}{{Spec2('ES1')}}Initiale Definition. Implementiert in JavaScript 1.0.
{{SpecName('ES5.1', '#sec-15.9.4.2', 'Date.parse')}}{{Spec2('ES5.1')}}Einfaches ISO 8601 Format hinzugefügt.
{{SpecName('ES6', '#sec-date.parse', 'Date.parse')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-date.parse', 'Date.parse')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Date.parse")}}

+ +

Kompatibilitätsnotitzen

+ + + +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/date/prototype/index.html b/files/de/web/javascript/reference/global_objects/date/prototype/index.html new file mode 100644 index 0000000000..a056132ba7 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/date/prototype/index.html @@ -0,0 +1,182 @@ +--- +title: Date.prototype +slug: Web/JavaScript/Reference/Global_Objects/Date/prototype +tags: + - Date + - JavaScript + - Property + - Prototype + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Date +--- +
{{JSRef}}
+ +

Die Date.prototype-Eigenschaft ist der Prototype für den {{jsxref("Date")}}-Konstruktor

+ +
{{js_property_attributes(0, 0, 1)}}
+ +

Beschreibung

+ +

JavaScript-{{jsxref("Date")}}-Instanzen erben von Date.prototype. Man kann das Konstruktorprototype-Objekt ändern, um Eigenschaften und Methoden aller {{jsxref("Date")}}-Instanzen zu ändern.

+ +

Für die Kompatibilität mit Jahrtausendsrechnungen (in anderen Worten, um das Jahr 2000 mit einzukalkulieren), sollte man das Jahr immer in voller Länge spezifizieren; zum Beispiel sollte 1998 und nicht 98 benutzt werden. Zur Unterstützung der Spezifizierung des vollen Jahres hat JavaScript die Methoden {{jsxref("Date.prototype.getFullYear()", "getFullYear()")}}, {{jsxref("Date.prototype.setFullYear()", "setFullYear()")}}, {{jsxref("Date.prototype.getUTCFullYear()", "getUTCFullYear()")}} und {{jsxref("Date.prototype.setUTCFullYear()", "setUTCFullYear()")}}.

+ +

Mit Einführung von ECMAScript 6 ist das Date.prototype-Objekt ein normales Objekt. Es ist keine Instanz von {{jsxref("Date")}}.

+ +

Eigenschaften

+ +
+
Date.prototype.constructor
+
Eine Funktion, die Instanzen erzeugen kann. Der {{jsxref("Date")}}-Konstruktor ist der Standard.
+
+ +

Methoden

+ +

Getter

+ +
+
{{jsxref("Date.prototype.getDate()")}}
+
Gibt den Tag des Monats (1 - 31) eines Datums gemäß der Ortszeit zurück.
+
{{jsxref("Date.prototype.getDay()")}}
+
Gibt den Tag der Woche (0 - 6) eines Datums gemäß der Ortszeit zurück.
+
{{jsxref("Date.prototype.getFullYear()")}}
+
Gibt das Jahr (4 Ziffern für 4 ziffrige Jahre) eines Datums gemäß der Ortszeit zurück.
+
{{jsxref("Date.prototype.getHours()")}}
+
Gibt die Stunde (0 - 23) eines Datums gemäß der Ortszeit zurück.
+
{{jsxref("Date.prototype.getMilliseconds()")}}
+
Gibt die Millisekunden (0 - 999) eines Datums gemäß der Ortszeit zurück.
+
{{jsxref("Date.prototype.getMinutes()")}}
+
Gibt die Minuten (0 - 59) eines Datums gemäß der Ortszeit zurück.
+
{{jsxref("Date.prototype.getMonth()")}}
+
Gibt den Monat (0 - 11) eines Datums gemäß der Ortszeit zurück.
+
{{jsxref("Date.prototype.getSeconds()")}}
+
Gibt die Sekunden (0 - 59) eines Datums gemäß der Ortszeit zurück.
+
{{jsxref("Date.prototype.getTime()")}}
+
Gibt den nummerischen Wert eines Datums als Millisekunden seit 1. Januar 1970 00:00:00 UTC (negativ für frühere Daten) zurück.
+
{{jsxref("Date.prototype.getTimezoneOffset()")}}
+
Gibt den Zeitzonenunterschied in Minuten für die aktuelle Region zurück.
+
{{jsxref("Date.prototype.getUTCDate()")}}
+
Gibt den Tag des Monats (1 - 31) eines Datums gemäß der Weltzeit zurück.
+
{{jsxref("Date.prototype.getUTCDay()")}}
+
Gibt den Tag der Woche (0 - 6) eines Datums gemäß der Weltzeit zurück.
+
{{jsxref("Date.prototype.getUTCFullYear()")}}
+
Gibt das Jahr (4 Ziffern für 4 ziffrige Jahre) eines Datums gemäß der Weltzeit zurück.
+
{{jsxref("Date.prototype.getUTCHours()")}}
+
Gibt die Stunden (0 - 23) eines Datums gemäß der Weltzeit zurück.
+
{{jsxref("Date.prototype.getUTCMilliseconds()")}}
+
Gibt die Millisekunden (0 - 999) eines Datums gemäß der Weltzeit zurück.
+
{{jsxref("Date.prototype.getUTCMinutes()")}}
+
Gibt die Minuten (0 - 59) eines Datums gemäß der Weltzeit zurück.
+
{{jsxref("Date.prototype.getUTCMonth()")}}
+
Gibt den Monat (0 - 11) eines Datums gemäß der Weltzeit zurück.
+
{{jsxref("Date.prototype.getUTCSeconds()")}}
+
Gibt die Sekunden (0 - 59) eines Datums gemäß der Weltzeit zurück.
+
{{jsxref("Date.prototype.getYear()")}} {{deprecated_inline}}
+
Gibt das Jahr (nur 2 - 3 Ziffern) eines Datums gemäß der Ortszeit zurück. Stattdessen sollte {{jsxref("Date.prototype.getFullYear()", "getFullYear()")}} benutzt werden.
+
+ +

Setter

+ +
+
{{jsxref("Date.prototype.setDate()")}}
+
Setzt den Tag des Monats eines Datums gemäß der Ortszeit.
+
{{jsxref("Date.prototype.setFullYear()")}}
+
Setzt das Jahr (4 Ziffern für vierstellige Jahre) eines Datums gemäß der Ortszeit.
+
{{jsxref("Date.prototype.setHours()")}}
+
Setzt die Stunden eines Datums gemäß der Ortszeit.
+
{{jsxref("Date.prototype.setMilliseconds()")}}
+
Setzt die Millisekunden eines Datums gemäß der Ortszeit.
+
{{jsxref("Date.prototype.setMinutes()")}}
+
Setzt die Minuten eines Datums gemäß der Ortszeit.
+
{{jsxref("Date.prototype.setMonth()")}}
+
Setzt den Monat eines Datums gemäß der Ortszeit.
+
{{jsxref("Date.prototype.setSeconds()")}}
+
Setzt die Sekunden eines Datums gemäß der Ortszeit.
+
{{jsxref("Date.prototype.setTime()")}}
+
Setzt ein {{jsxref("Date")}} Objekt auf die Zeit, mit der Anzahl der Millisekunden seit dem 1. Januar 1970 00:00:00UTC. Negative Zahlen sind für frühere Daten erlaubt.
+
{{jsxref("Date.prototype.setUTCDate()")}}
+
Setzt den Tag des Monats eines Datums gemäß der Weltzeit.
+
{{jsxref("Date.prototype.setUTCFullYear()")}}
+
Setzt das Jahr (4 Ziffern für 4 ziffrige Jahre) eines Datums gemäß der Weltzeit.
+
{{jsxref("Date.prototype.setUTCHours()")}}
+
Setzt die Stunde eines Datums gemäß der Weltzeit.
+
{{jsxref("Date.prototype.setUTCMilliseconds()")}}
+
Setzt die Millisekunden eines Datums gemäß der Weltzeit.
+
{{jsxref("Date.prototype.setUTCMinutes()")}}
+
Setzt die Minuten eines Datums gemäß der Weltzeit.
+
{{jsxref("Date.prototype.setUTCMonth()")}}
+
Setzt den Monat eines Datums gemäß der Weltzeit.
+
{{jsxref("Date.prototype.setUTCSeconds()")}}
+
Setzt die Sekunden eines Datums gemäß der Weltzeit.
+
{{jsxref("Date.prototype.setYear()")}} {{deprecated_inline}}
+
Setzt das Jahr (nur 2 - 3 Ziffern) eines Datums gemäß der Ortszeit. Stattdessen sollte {{jsxref("Date.prototype.setFullYear()", "setFullYear()")}} benutzt werden.
+
+ +

Konvertierungsgetter

+ +
+
{{jsxref("Date.prototype.toDateString()")}}
+
Gibt das Datum als menschlich lesbaren String zurück (z. B. Thu Apr 12 2018). 
+
{{jsxref("Date.prototype.toISOString()")}}
+
Konvertiert ein Datum zu einem String im erweiterten ISO-8601-Format.
+
{{jsxref("Date.prototype.toJSON()")}}
+
Gibt eine String-Repräsentation eines {{jsxref("Date")}}-Objektes zurück. Dabei wird die {{jsxref("Date.prototype.toISOString()", "toISOString()")}}-Methode eingesetzt. Gedacht für den Einsatz von {{jsxref("JSON.stringify()")}}.
+
{{jsxref("Date.prototype.toGMTString()")}} {{deprecated_inline}}
+
Gibt eine String-Repräsentation eines {{jsxref("Date")}}-Objektes auf Basis der GMT-(UT)-Zeitzone zurück. Stattdessen sollte {{jsxref("Date.prototype.toUTCString()", "toUTCString()")}} eingesetzt werden.
+
{{jsxref("Date.prototype.toLocaleDateString()")}}
+
Gibt einen String mit ortssensitiver Repräsentation eines Datums zurück. Dieses Datum basiert auf den Systemeinstellungen.
+
{{jsxref("Date.prototype.toLocaleFormat()")}} {{non-standard_inline}}
+
Konvertiert ein Datum zu einem String mithilfe eines Formatierungsstrings.
+
{{jsxref("Date.prototype.toLocaleString()")}}
+
Gibt einen String mit ortssensitiver Repräsentation eines Datums zurück. Diese Method überschreibt die  {{jsxref("Object.prototype.toLocaleString()")}}-Methode.
+
{{jsxref("Date.prototype.toLocaleTimeString()")}}
+
Gibt einen String mit ortssensitiver Repräsentation der Zeit eines Datums zurück. Diese Zeit basiert auf den Systemeinstellungen.
+
{{jsxref("Date.prototype.toSource()")}} {{non-standard_inline}}
+
Gibt einen String-Repräsentation des Quelltextes zurück (gleich dem {{jsxref("Date")}}-Objekt). Man kann diese Methode einsetzen um ein neues Objekt zu erstellen. Diese Methode überschreibt die {{jsxref("Object.prototype.toSource()")}}-Methode
+
{{jsxref("Date.prototype.toString()")}}
+
Gibt eine String-Repräsentation eines {{jsxref("Date")}}-Objektes zurück. Diese Methode überschreibt die {{jsxref("Object.prototype.toString()")}} Methode.
+
{{jsxref("Date.prototype.toTimeString()")}}
+
Gibt die Zeit eines Datums als menschlich lesbaren String zurück.
+
{{jsxref("Date.prototype.toUTCString()")}}
+
Konvertiert das Datum zu einem String unter Einsatz der UTC-Zeitzone.
+
{{jsxref("Date.prototype.valueOf()")}}
+
Gibt ein primitiven Wert eines {{jsxref("Date")}}-Objektes zurück. Diese Methode überschreibt die {{jsxref("Object.prototype.valueOf()")}}-Methode.
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpecificationStatusKommentar
{{SpecName('ES1')}}{{Spec2('ES1')}}Initiale Definition. Implementiert in JavaScript 1.1.
{{SpecName('ES5.1', '#sec-15.9.5', 'Date.prototype')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-properties-of-the-date-prototype-object', 'Date.prototype')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-properties-of-the-date-prototype-object', 'Date.prototype')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Date.prototype")}}

diff --git a/files/de/web/javascript/reference/global_objects/date/setdate/index.html b/files/de/web/javascript/reference/global_objects/date/setdate/index.html new file mode 100644 index 0000000000..4fb7d6ac63 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/date/setdate/index.html @@ -0,0 +1,91 @@ +--- +title: Date.prototype.setDate() +slug: Web/JavaScript/Reference/Global_Objects/Date/setDate +tags: + - Date + - JavaScript + - Method + - Prototype + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Date/setDate +--- +
{{JSRef}}
+ +

Die setDate() Methode setzt den Tag eines {{jsxref("Date")}} Objektes relativ zum Beginn des aktuellen Monats.

+ +
{{EmbedInteractiveExample("pages/js/date-setdate.html")}}
+ + + +

Syntax

+ +
dateObj.setDate(dayValue)
+ +

Parameter

+ +
+
dayValue
+
Eine ganze Zahl, die den Tag des Monats repräsentiert.
+
+ +

Rückgabewert

+ +

Die Anzahl der Millisekunden zwischen dem 1. Januar 1970 00:00:00 UTC und dem geänderten {{jsxref("Date")}} Objektes (das Objekt wird auch geändert).

+ +

Beschreibung

+ +

Wenn dayValue außerhalb des Wertes für einen Tag in einem Monat ist, wird setDate() das {{jsxref("Date")}} Objekt dementsprechend ändern. Zum Beispiel wird der Wert 0 für dayValue den letzen Tag des vorherigen Monats einstellen.

+ +

Beispiele

+ +

Einsatz von setDate()

+ +
var theBigDay = new Date(1962, 6, 7); // 1962-07-07
+theBigDay.setDate(24);  // 1962-07-24
+theBigDay.setDate(32);  // 1962-08-01
+theBigDay.setDate(22);  // 1962-08-22
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES1')}}{{Spec2('ES1')}}Initiale Definition. Implementiert in JavaScript 1.0.
{{SpecName('ES5.1', '#sec-15.9.5.36', 'Date.prototype.setDate')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-date.prototype.setdate', 'Date.prototype.setDate')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-date.prototype.setdate', 'Date.prototype.setDate')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Date.setDate")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/date/setfullyear/index.html b/files/de/web/javascript/reference/global_objects/date/setfullyear/index.html new file mode 100644 index 0000000000..3dafd848dc --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/date/setfullyear/index.html @@ -0,0 +1,97 @@ +--- +title: Date.prototype.setFullYear() +slug: Web/JavaScript/Reference/Global_Objects/Date/setFullYear +tags: + - Date + - JavaScript + - Method + - Prototype + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Date/setFullYear +--- +
{{JSRef}}
+ +

Die setFullYear() Methode stellt das ganze Jahr eines Datums bezüglich der Ortszeit ein und gibt einen neuen Zeitstempel zurück.

+ +
{{EmbedInteractiveExample("pages/js/date-setfullyear.html")}}
+ + + +

Syntax

+ +
dateObj.setFullYear(yearValue[, monthValue[, dateValue]])
+ +

Parameter

+ +
+
yearValue
+
Eine ganze Zahl, welche den nummerischen Wert des Jahres angibt (z. B. 1995).
+
monthValue
+
Optional. Eine ganze Zahl zwischen 0 und 11, welche den Monat von Januar bis Dezember angibt.
+
dateValue
+
Optional. Eine ganze Zahl zwischen 1 und 31, welche den Tag des Monats angibt. Wenn der dateValue Parameter angegeben wird, muss auch der monthValue Parameter angegeben werden.
+
+ +

Rückgabewert

+ +

Die Anzahl der Millisekunden zwischen dem 1. Januar 1970 00:00:00 UTC und dem geänderten date Objekt.

+ +

Beschreibung

+ +

Wenn die Parameter monthValue und dateValue nicht gesetzt sind, werden die Rückgabewerte der Methoden {{jsxref("Date.prototype.getMonth()", "getMonth()")}} und {{jsxref("Date.prototype.getDate()", "getDate()")}} eingesetzt.

+ +

Wenn ein gesetzter Parameter außerhalb seiner erwarteten Grenzen ist, ändert setFullYear() entsprechenden die anderen Parameter und die Informationen im {{jsxref("Date")}} Objekt. Wird zum Beispiel 15 für monthValue Übergeben, so wird das Jahr um 1 inkrementiert und der Wert 3 wird für den Monat genutzt.

+ +

Beispiele

+ +

Einsatz von setFullYear()

+ +
var theBigDay = new Date();
+theBigDay.setFullYear(1997);
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES1')}}{{Spec2('ES1')}}Initiale Definition. Implementiert in JavaScript 1.3.
{{SpecName('ES5.1', '#sec-15.9.5.40', 'Date.prototype.setFullYear')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-date.prototype.setfullyear', 'Date.prototype.setFullYear')}}{{Spec2('ES6')}}
{{SpecName('ESDraft', '#sec-date.prototype.setfullyear', 'Date.prototype.setFullYear')}}{{Spec2('ESDraft')}}
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Date.setFullYear")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/date/sethours/index.html b/files/de/web/javascript/reference/global_objects/date/sethours/index.html new file mode 100644 index 0000000000..3b40e647b6 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/date/sethours/index.html @@ -0,0 +1,102 @@ +--- +title: Date.prototype.setHours() +slug: Web/JavaScript/Reference/Global_Objects/Date/setHours +tags: + - Date + - JavaScript + - Method + - Prototype + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Date/setHours +--- +
{{JSRef}}
+ +

Die setHours() Methode setzt die Stunden für eine Zeit bezüglich der Ortszeit und gibt die Anzahl der Millisekunden seit dem 1. Januar 1970 00:00:00 UTC nachdem die Zeit des {{jsxref("Date")}} geändert wurde.

+ +
{{EmbedInteractiveExample("pages/js/date-sethours.html")}}
+ + + +

Syntax

+ +
dateObj.setHours(hoursValue[, minutesValue[, secondsValue[, msValue]]])
+ +

Versionen vor JavaScript 1.3

+ +
dateObj.setHours(hoursValue)
+ +

Parameter

+ +
+
hoursValue
+
Eine ganze Zahl zwischen 0 und 23, die die Stunde repräsentiert. Wenn der Wert größer als 23 ist, werden die extra Stunden auf die Zeit addiert.
+
minutesValue
+
Optional. Eine ganze Zahl zwischen 0 und 59, die die Minuten repräsentiert. Wenn ein Wert größer als 59 angegeben wird, werden die extra Minuten auf die Zeit addiert.
+
secondsValue
+
Optional. Eine ganze Zahl zwischen 0 und 59, die die Sekunden repräsentiert. Wenn der Wert größer als 59 ist, werden die extra Sekunden auf die Zeit addiert. Wenn secondsValue angegeben ist, muss auch minutesValue angegeben werden.
+
msValue
+
Optional. Eine ganze Zahl zwischen 0 und 999, die die Millisekunden repräsentiert. Wenn der Wert größer als 999 ist, werden die extra Millisekunden auf die Zeit addiert. Wenn der msValue Parameter angegeben ist, müssen auch die minutesValue und secondsValue Parameter angegeben werden.
+
+ +

Rückgabewert

+ +

Die Anzahl der Millisekunden zwischen dem 1. Januar 1970 UTC und dem geänderten date Objekte

+ +

Beschreibung

+ +

Wenn die Parameter minutesValue, secondsValue, und msValue nicht angegeben werden, werden die Rückgabewerte der Methoden {{jsxref("Date.prototype.getMinutes()", "getMinutes()")}}, {{jsxref("Date.prototype.getSeconds()", "getSeconds()")}} und {{jsxref("Date.prototype.getMilliseconds()", "getMilliseconds()")}} genutzt.

+ +

Wenn ein Parameter einen Wert außerhalb seiner Grenzen hat, wird setHours() das Informationen im {{jsxref("Date")}} Objekt dementsprechend ändern. Wenn zum Beispiel der Wert 100 für den Parameter secondsValue angegeben wird, wird die Minute um 1 inkrementiert und die Sekunden bekommen den Wert 40.

+ +

Beispiele

+ +

Einsatz von setHours()

+ +
var theBigDay = new Date();
+theBigDay.setHours(7);
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES1')}}{{Spec2('ES1')}}Initiale Definition. Implementiert in JavaScript 1.0.
{{SpecName('ES5.1', '#sec-15.9.5.34', 'Date.prototype.setHours')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-date.prototype.sethours', 'Date.prototype.setHours')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-date.prototype.sethours', 'Date.prototype.setHours')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Date.setHours")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/date/setmilliseconds/index.html b/files/de/web/javascript/reference/global_objects/date/setmilliseconds/index.html new file mode 100644 index 0000000000..51f2e069ab --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/date/setmilliseconds/index.html @@ -0,0 +1,90 @@ +--- +title: Date.prototype.setMilliseconds() +slug: Web/JavaScript/Reference/Global_Objects/Date/setMilliseconds +tags: + - Date + - JavaScript + - Method + - Prototype + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Date/setMilliseconds +--- +
{{JSRef}}
+ +

Die setMilliseconds() Methode setzt die Millisekunden einer Zeit bezüglich der Ortszeit.

+ +
{{EmbedInteractiveExample("pages/js/date-setmilliseconds.html")}}
+ + + +

Syntax

+ +
dateObj.setMilliseconds(millisecondsValue)
+ +

Parameter

+ +
+
millisecondsValue
+
Eine ganze Zahl zwischen 0 und 999, welche die Millisekunden repräsentiert.
+
+ +

Rückgabewert

+ +

Die Anzahl der Millisekunden zwischen dem 1. Januar 1970 00:00:00 UTC und dem geänderten date Objekt.

+ +

Beschreibung

+ +

Wenn der Parameter außerhalb seiner Grenzen definiert wird, wird diese Information bei der änderung des {{jsxref("Date")}} Objektes beachtet. Wenn zum Beispiel 1005 übergeben wird, wird die Sekunde um 1 inkrementiert und die Millisekunden werden auf 5 gesetzt.

+ +

Beispiele

+ +

Einsatz von setMilliseconds()

+ +
var theBigDay = new Date();
+theBigDay.setMilliseconds(100);
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES1')}}{{Spec2('ES1')}}Initiale Definition. Implementiert in JavaScript 1.3.
{{SpecName('ES5.1', '#sec-15.9.5.28', 'Date.prototype.setMilliseconds')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-date.prototype.setmilliseconds', 'Date.prototype.setMilliseconds')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-date.prototype.setmilliseconds', 'Date.prototype.setMilliseconds')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Date.setMilliseconds")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/date/setminutes/index.html b/files/de/web/javascript/reference/global_objects/date/setminutes/index.html new file mode 100644 index 0000000000..75918fb16b --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/date/setminutes/index.html @@ -0,0 +1,100 @@ +--- +title: Date.prototype.setMinutes() +slug: Web/JavaScript/Reference/Global_Objects/Date/setMinutes +tags: + - Date + - JavaScript + - Method + - Prototype + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Date/setMinutes +--- +
{{JSRef}}
+ +

Die setMinutes() Methode setzt die Minuten für ein Datum (Zeit) bezüglich der Ortszeit

+ +
{{EmbedInteractiveExample("pages/js/date-setminutes.html")}}
+ + + +

Syntax

+ +
dateObj.setMinutes(minutesValue[, secondsValue[, msValue]])
+ +

Versionen vor JavaScript 1.3

+ +
dateObj.setMinutes(minutesValue)
+ +

Parameter

+ +
+
minutesValue
+
Eine ganze Zahl zwischen 0 und 59, die die Minuten repräsentiert.
+
secondsValue
+
Optional. Eine ganze Zahl zwischen 0 und 59, die die Sekunden repräsentiert.
+
msValue
+
Optional. Eine ganze Zahl zwischen 0 und 999, die die Millisekunden repräsentiert. Wenn der Parameter msValue angegeben ist, muss auch der Parameter secondsValue angegeben werden.
+
+ +

Rückgabewert

+ +

Die Anzahl der Millisekunden zwischen dem 1. Januar 1970 00:00:00 UTC und dem geänderten date Objekt.

+ +

Beschreibung

+ +

Wenn die Parameter secondsValue and msValue nicht angegeben werden, wird die Rückgabewerte der Methoden {{jsxref("Date.prototype.getSeconds()", "getSeconds()")}} und {{jsxref("Date.prototype.getMilliseconds()", "getMilliseconds()")}} eingesetzt.

+ +

Wenn der Wert eines Parameters außerhalb seiner Grenzen liegt, wird dieses von der setMinutes() Methode berücksichtigt. Wenn zum Beispiel 100 für den Parameter secondsValue genutzt wird, werden die Minuten um 1 inkrementiert und die Sekunden werden auf 40 gesetzt.

+ +

Beispiele

+ +

Einsatz von setMinutes()

+ +
var theBigDay = new Date();
+theBigDay.setMinutes(45);
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES1')}}{{Spec2('ES1')}}Initiale Definition. Implementiert in JavaScript 1.0.
{{SpecName('ES5.1', '#sec-15.9.5.32', 'Date.prototype.setMinutes')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-date.prototype.setminutes', 'Date.prototype.setMinutes')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-date.prototype.setminutes', 'Date.prototype.setMinutes')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Date.setMinutes")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/date/setmonth/index.html b/files/de/web/javascript/reference/global_objects/date/setmonth/index.html new file mode 100644 index 0000000000..02d659ad50 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/date/setmonth/index.html @@ -0,0 +1,103 @@ +--- +title: Date.prototype.setMonth() +slug: Web/JavaScript/Reference/Global_Objects/Date/setMonth +tags: + - Date + - JavaScript + - Method + - Prototype + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Date/setMonth +--- +
{{JSRef}}
+ +

Die setMonth() Methode setzt den Monat eines Datums bezüglich des aktuellen Jahres.

+ +
{{EmbedInteractiveExample("pages/js/date-setmonth.html")}}
+ +

Syntax

+ +
dateObj.setMonth(monthValue[, dayValue])
+ +

Versionen vor JavaScript 1.3

+ +
dateObj.setMonth(monthValue)
+ +

Parameter

+ +
+
monthValue
+
Eine ganze Zahl zwischen 0 und 11, die die Monate Januar bis Dezember repräsentiert.
+
dayValue
+
Optional. Eine ganze Zahl zwischen 1 und 31, die die Tage eines Monats repräsentiert.
+
+ +

Rückgabewert

+ +

Die Anzahl der Millisekunden zwischen dem 1. Januar 1970 00:00:00 UTC und dem geänderten date Objekt.

+ +

Beschreibung

+ +

Wenn der dayValue Parameter nicht gesetzt wird, bekommt er den Rückgabewert der {{jsxref("Date.prototype.getDate()", "getDate()")}} Methode.

+ +

Wenn ein Parameter mit einem Wert außerhalb seiner Grenzen übergebn wird, berücksichtigt die  setMonth() Methode diese Information in dem {{jsxref("Date")}} Objekt. Wird zum Beispiel der Wert 15 für den monthValue Parameter übergeben, so wird das Jahr um 1 inkrementiert und der Monat auf dem Wert 3 gesetzt.

+ +

Der aktuelle Tag des Monats hat einen Einfluss auf diese Methode. Konzeptionell wird die Anzahl der Tage des aktuellen Monats hinzugefügt, um zum 1. des neuen Monats zu bekommen. Wird zum Beispiel auf dem 31. August 2016 setMonth mit dem Wert 1 aufgerufen, so wird der 2. März 2016 zurückgegeben. Dieses liegt daran, dass der Februar im Jahr 2016 nur 29 Tage hat.

+ +

Beispiele

+ +

Einsatz von setMonth()

+ +
var theBigDay = new Date();
+theBigDay.setMonth(6);
+
+//Achtet auf die Übergänge am Ende des Monats
+var endOfMonth = new Date(2016, 7, 31);
+endOfMonth.setMonth(1);
+console.log(endOfMonth); //Wed Mar 02 2016 00:00:00
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES1')}}{{Spec2('ES1')}}Initiale Definition. Implementiert in JavaScript 1.0.
{{SpecName('ES5.1', '#sec-15.9.5.38', 'Date.prototype.setMonth')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-date.prototype.setmonth', 'Date.prototype.setMonth')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-date.prototype.setmonth', 'Date.prototype.setMonth')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Date.setMonth")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/date/setseconds/index.html b/files/de/web/javascript/reference/global_objects/date/setseconds/index.html new file mode 100644 index 0000000000..9a10f186ec --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/date/setseconds/index.html @@ -0,0 +1,98 @@ +--- +title: Date.prototype.setSeconds() +slug: Web/JavaScript/Reference/Global_Objects/Date/setSeconds +tags: + - Date + - JavaScript + - Method + - Prototype + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Date/setSeconds +--- +
{{JSRef}}
+ +

Die setSeconds() Methode setzt die Sekunden eines Datums bezüglich der Ortzseit.

+ +
{{EmbedInteractiveExample("pages/js/date-setseconds.html")}}
+ + + +

Syntax

+ +
dateObj.setSeconds(secondsValue[, msValue])
+ +

Versionen vor JavaScript 1.3

+ +
dateObj.setSeconds(secondsValue)
+ +

Parameter

+ +
+
secondsValue
+
Eine ganze Zahl  zwischen 0 und 59, die die Sekunden repräsentiert.
+
msValue
+
Optional. Eine ganze Zahl zwischen 0 und 999, die die Millisekunden repräsentiert.
+
+ +

Rückgabewert

+ +

Die Anzahl der Millisekunden zwischen dem 1. Januar 1970 00:00:00 UTC und dem geänderten date Objekt.

+ +

Beschreibung

+ +

Wenn der Parameter msValue nicht gesetzt ist, wird der Rückgabewert der Methode {{jsxref("Date.prototype.getMilliseconds()", "getMilliseconds()")}} eingesetzt.

+ +

Wenn der Wert eines Parameters seine Grenzen überschreitet, wird die setSeconds() Methode diese Information in dem {{jsxref("Date")}} Objekt berücksichtigen. Wenn zum Beispiel für den Parameter secondsValue der Wert 100 benutzt wird, werden die Minuten um 1 inkrementiert und und für die Sekunden wird der Wert 40 benutzt.

+ +

Beispiele

+ +

Einsatz von setSeconds()

+ +
var theBigDay = new Date();
+theBigDay.setSeconds(30);
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES1')}}{{Spec2('ES1')}}Initiale Definition. Implementiert in JavaScript 1.0.
{{SpecName('ES5.1', '#sec-15.9.5.30', 'Date.prototype.setSeconds')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-date.prototype.setseconds', 'Date.prototype.setSeconds')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-date.prototype.setseconds', 'Date.prototype.setSeconds')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Date.setSeconds")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/date/settime/index.html b/files/de/web/javascript/reference/global_objects/date/settime/index.html new file mode 100644 index 0000000000..aaf72c378a --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/date/settime/index.html @@ -0,0 +1,91 @@ +--- +title: Date.prototype.setTime() +slug: Web/JavaScript/Reference/Global_Objects/Date/setTime +tags: + - Date + - JavaScript + - Method + - Prototype + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Date/setTime +--- +
{{JSRef}}
+ +

Die Methode setTime() setzt das {{jsxref("Date")}} Objekt auf die Zeit, die durch eine Anzahl Millisekunden seit dem 1. Januar 1970, 00:00:00 UTC angegeben wird.

+ +
{{EmbedInteractiveExample("pages/js/date-settime.html")}}
+ + + +

Syntax

+ +
dateObj.setTime(timeValue)
+ +

Parameter

+ +
+
timeValue
+
Ein integer, der die Anzahl Millisekunden seit dem 1. Januar 1970, 00:00:00 UTC angibt.
+
+ +

Rückgabewert

+ +

Die Anzahl der Millisekunden zwischen dem 1. Januar 1970 00:00:00 UTC und dem geänderten date Objekt (effektiv dem Wert des übergebenen Parameters).

+ +

Beschreibung

+ +

Die Methode setTime() ist hilfreich, um Datum und Zeit einem anderen {{jsxref("Date")}} Objekt zuzuweisen.

+ +

Beispiele

+ +

Einsatz von setTime()

+ +
var theBigDay = new Date('July 1, 1999');
+var sameAsBigDay = new Date();
+sameAsBigDay.setTime(theBigDay.getTime());
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES1')}}{{Spec2('ES1')}}Erste Definition. Implementiert JavaScript 1.0.
{{SpecName('ES5.1', '#sec-15.9.5.27', 'Date.prototype.setTime')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-date.prototype.settime', 'Date.prototype.setTime')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-date.prototype.settime', 'Date.prototype.setTime')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Date.setTime")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/date/setutcdate/index.html b/files/de/web/javascript/reference/global_objects/date/setutcdate/index.html new file mode 100644 index 0000000000..15f05b5109 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/date/setutcdate/index.html @@ -0,0 +1,90 @@ +--- +title: Date.prototype.setUTCDate() +slug: Web/JavaScript/Reference/Global_Objects/Date/setUTCDate +tags: + - Date + - JavaScript + - Method + - Prototype + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Date/setUTCDate +--- +
{{JSRef}}
+ +

Die setUTCDate() Methode setzt den Monatstag eines Datums bezüglich der Weltzeit.

+ +
{{EmbedInteractiveExample("pages/js/date-setutcdate.html")}}
+ + + +

Syntax

+ +
dateObj.setUTCDate(dayValue)
+ +

Parameter

+ +
+
dayValue
+
Eine ganze Zahl zwischen 1 und 31, die die Date eines Monats repräsentiert.
+
+ +

Rückgabewert

+ +

Die Anzahl der Millisekunden zwischen dem 1. Januar 1970 00:00:00 UTC und dem aktualisierten date Objekte.

+ +

Beschreibung

+ +

Wenn ein Parameter außerhalb seiner spezifizierten Grenzen liegt, berücksichtigt die setUTCDate() Methode diese Information beim aktualisieren eines {{jsxref("Date")}} Objektes. Wenn zum Beispiel 40  für dayValue angegeben wird, so wird ein {{jsxref("Date")}} Objekt mit dem Monat Juni auf den Tag 10 und den Monat Juli (Monat um 1 inkrementiert) aktualisiert.

+ +

Beispiele

+ +

Einsatz von setUTCDate()

+ +
var theBigDay = new Date();
+theBigDay.setUTCDate(20);
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES1')}}{{Spec2('ES1')}}Initiale Definition. Implementiert in JavaScript 1.3.
{{SpecName('ES5.1', '#sec-15.9.5.37', 'Date.prototype.setUTCDate')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-date.prototype.setutcdate', 'Date.prototype.setUTCDate')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-date.prototype.setutcdate', 'Date.prototype.setUTCDate')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Date.setUTCDate")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/date/setutcfullyear/index.html b/files/de/web/javascript/reference/global_objects/date/setutcfullyear/index.html new file mode 100644 index 0000000000..c901540225 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/date/setutcfullyear/index.html @@ -0,0 +1,96 @@ +--- +title: Date.prototype.setUTCFullYear() +slug: Web/JavaScript/Reference/Global_Objects/Date/setUTCFullYear +tags: + - Date + - JavaScript + - Method + - Prototype + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Date/setUTCFullYear +--- +
{{JSRef}}
+ +

Die setUTCFullYear() Methode setzt das volle Jahr für ein Datum bezüglich der Weltzeit.

+ +
{{EmbedInteractiveExample("pages/js/date-setutcfullyear.html")}}
+ + + +

Syntax

+ +
dateObj.setUTCFullYear(yearValue[, monthValue[, dayValue]])
+ +

Parameter

+ +
+
yearValue
+
Eine ganze Zahl, die das Jahr repräsentiert (z. B. 1995).
+
monthValue
+
Optional. Eine ganze Zahl zwischen 0 und 11, die die Monate Januar bis Dezember repräsentiert.
+
dayValue
+
Optional. Eine ganze Zahl zwischen 1 und 31, die den Tag eines Monats repräsentiert. Wenn dayValue benutzt wird, muss auch der Parameter monthValue benutzt werden.
+
+ +

Rückgabewert

+ +

Die Anzahl der Millisekunden zwischen dem 1. Januar 1970 00:00:00 UTC und dem aktualisierten date Objekte.

+ +

Beschreibung

+ +

Wenn die Parameter monthValue und dayValue nicht angegeben werden, so werden für diese die Rückgabewerte der Methoden {{jsxref("Date.prototype.getUTCMonth()", "getUTCMonth()")}} und {{jsxref("Date.prototype.getUTCDate()", "getUTCDate()")}} benutzt.

+ +

Wenn ein Parameter außerhalb seiner spezifizierten Grenzen liegt, berücksichtigt die setUTCFullYear() Methode diese Information beim aktualisieren eines {{jsxref("Date")}} Objektes. Wenn zum Beispiel 15  für monthValue angegeben wird, so wird das Jahr um 1 inkrementiert (yearValue + 1) und der Monat wird auf 3 gesetzt.

+ +

Beispiele

+ +

Einsatz von setUTCFullYear()

+ +
var theBigDay = new Date();
+theBigDay.setUTCFullYear(1997);
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES1')}}{{Spec2('ES1')}}Initiale Definition. Implementiert in JavaScript 1.3.
{{SpecName('ES5.1', '#sec-15.9.5.41', 'Date.prototype.setUTCFullYear')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-date.prototype.setutcfullyear', 'Date.prototype.setUTCFullYear')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-date.prototype.setutcfullyear', 'Date.prototype.setUTCFullYear')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Date.setUTCFullYear")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/date/setutchours/index.html b/files/de/web/javascript/reference/global_objects/date/setutchours/index.html new file mode 100644 index 0000000000..6194eceb91 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/date/setutchours/index.html @@ -0,0 +1,98 @@ +--- +title: Date.prototype.setUTCHours() +slug: Web/JavaScript/Reference/Global_Objects/Date/setUTCHours +tags: + - Date + - JavaScript + - Method + - Prototype + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Date/setUTCHours +--- +
{{JSRef}}
+ +

Die setUTCHours() Methode setzt die Stunde eines Datums (mit Zeit) bezüglich der Weltzeit und gibt die Anzahl der Millisekunden seit dem 1. Januar 1970 00:00:00 UTC nach dem Aktualisieren der {{jsxref("Date")}} Instanz zurück-

+ +
{{EmbedInteractiveExample("pages/js/date-setutchours.html")}}
+ + + +

Syntax

+ +
dateObj.setUTCHours(hoursValue[, minutesValue[, secondsValue[, msValue]]])
+ +

Parameter

+ +
+
hoursValue
+
Eine ganze Zahl zwischen 0 und 23, die die Stunden repräsentiert.
+
minutesValue
+
Optional. Eine ganze Zahl zwischen 0 and 59, die die Minuten repräsentiert.
+
secondsValue
+
Optional. Eine ganze Zahl zwischen 0 and 59, die die Sekunden repräsentiert. Wenn der secondsValue Parameter angegeben wird, muss auch der minutesValue Parameter angegeben werden.
+
msValue
+
Optional. Eine ganze Zahl zwischen 0 and 999, die die Millisekunden repräsentiert. Wenn der msValue Parameter angegeben ist, müssen auch die Parameter minutesValue und secondsValue angegeben werden.
+
+ +

Rückgabewert

+ +

Die Anzahl der Millisekunden zwischen dem 1. Januar 1970 00:00:00 UTC und dem aktualisierten date Objekte.

+ +

Beschreibung

+ +

Wenn die Parameter minutesValue, secondsValue, und msValue nicht angegeben werden, wird für diese der Rückgabewert der Methoden {{jsxref("Date.prototype.getUTCMinutes()", "getUTCMinutes()")}}, {{jsxref("Date.prototype.getUTCSeconds()", "getUTCSeconds()")}}, und {{jsxref("Date.prototype.getUTCMilliseconds()", "getUTCMilliseconds()")}} verwendet.

+ +

Wenn ein Parameter außerhalb seiner Grenzen angegeben wird, wird die setUTCHours() Methode diese Information beim aktualisieren des {{jsxref("Date")}} Objektes berücksichtigen. Wenn zum Beispiel 100 für den secondsValue Parameter genutzt wird, werden die Minuten um 1 inkrementiert (minutesValue + 1) und der Wert 40 wird für die Sekunden verwendet.

+ +

Beispiele

+ +

Einsatz von setUTCHours()

+ +
var theBigDay = new Date();
+theBigDay.setUTCHours(8);
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES1')}}{{Spec2('ES1')}}Initiale Definition. Implementiert in JavaScript 1.3.
{{SpecName('ES5.1', '#sec-15.9.5.35', 'Date.prototype.setUTCHours')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-date.prototype.setutchours', 'Date.prototype.setUTCHours')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-date.prototype.setutchours', 'Date.prototype.setUTCHours')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Date.setUTCHours")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/date/setutcmilliseconds/index.html b/files/de/web/javascript/reference/global_objects/date/setutcmilliseconds/index.html new file mode 100644 index 0000000000..14cbca2f90 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/date/setutcmilliseconds/index.html @@ -0,0 +1,90 @@ +--- +title: Date.prototype.setUTCMilliseconds() +slug: Web/JavaScript/Reference/Global_Objects/Date/setUTCMilliseconds +tags: + - Date + - JavaScript + - Method + - Prototype + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Date/setUTCMilliseconds +--- +
{{JSRef}}
+ +

Die setUTCMilliseconds() Methode setzt die Millisekunden eines Datums bezüglich der Weltzeit

+ +
{{EmbedInteractiveExample("pages/js/date-setutcmilliseconds.html")}}
+ + + +

Syntax

+ +
dateObj.setUTCMilliseconds(millisecondsValue)
+ +

Parameter

+ +
+
millisecondsValue
+
Eine Zahl zwischen 0 und 999, die die Millisekunden repräsentiert.
+
+ +

Rückgabewert

+ +

Die Anzahl der Millisekunden zwischen dem 1. Januar 1970 00:00:00 UTC und dem aktualisierten date Objekte.

+ +

Beschreibung

+ +

Wenn ein Parameter außerhalb seiner spezifizierten Grenzen liegt, berücksichtigt die setUTCMilliseconds() Methode diese Information beim aktualisieren eines {{jsxref("Date")}} Objektes. Wenn zum Beispiel 1100 für millisecondsValue angegeben wird, so werden die Sekunden um 1 inkrementiert und die Millisekunden werden auf 100 gesetzt.

+ +

Beispiele

+ +

Einsatz von setUTCMilliseconds()

+ +
var theBigDay = new Date();
+theBigDay.setUTCMilliseconds(500);
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES1')}}{{Spec2('ES1')}}Initiale Definition. Implementiert in JavaScript 1.3.
{{SpecName('ES5.1', '#sec-15.9.5.29', 'Date.prototype.setUTCMilliseconds')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-date.prototype.setutcmilliseconds', 'Date.prototype.setUTCMilliseconds')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-date.prototype.setutcmilliseconds', 'Date.prototype.setUTCMilliseconds')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Date.setUTCMilliseconds")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/date/setutcminutes/index.html b/files/de/web/javascript/reference/global_objects/date/setutcminutes/index.html new file mode 100644 index 0000000000..b56abc94d6 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/date/setutcminutes/index.html @@ -0,0 +1,96 @@ +--- +title: Date.prototype.setUTCMinutes() +slug: Web/JavaScript/Reference/Global_Objects/Date/setUTCMinutes +tags: + - Date + - JavaScript + - Method + - Prototype + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Date/setUTCMinutes +--- +
{{JSRef}}
+ +

Die setUTCMinutes() Methode setzt die Minuten eines Datums bezüglich der Weltzeit.

+ +
{{EmbedInteractiveExample("pages/js/date-setutcminutes.html")}}
+ + + +

Syntax

+ +
dateObj.setUTCMinutes(minutesValue[, secondsValue[, msValue]])
+ +

Parameter

+ +
+
minutesValue
+
Eine ganze Zahl zwischen 0 und 59, die die Minuten repräsentiet.
+
secondsValue
+
Optional. Eine ganze Zahl zwischen 0 und 59, die die Sekunden repräsentiert.
+
msValue
+
Optional. Eine ganze Zahl zwischen 0 und 999, die die Millisekunden repräsentiert. Wenn der Parameter msValue angegeben wird, muss auch der Parameter secondsValue gesetzt werden.
+
+ +

Rückgabewert

+ +

Die Anzahl der Millisekunden zwischen dem 1. Januar 1970 00:00:00 UTC und dem aktualisierten date Objekte.

+ +

Beschreibung

+ +

Wenn die Parameter secondsValue und msValue nicht angegeben werden, so werden für diese die Rückgabewerte der Methoden {{jsxref("Date.prototype.getUTCSeconds()", "getUTCSeconds()")}} und {{jsxref("Date.prototype.getUTCMilliseconds()", "getUTCMilliseconds()")}} benutzt.

+ +

Wenn ein Parameter außerhalb seiner spezifizierten Grenzen liegt, berücksichtigt die setUTCMinutes() Methode diese Information beim aktualisieren eines {{jsxref("Date")}} Objektes. Wenn zum Beispiel 100  für secondsValue angegeben wird, so werden die Minuten um 1 inkrementiert  (minutesValue + 1) und die Sekunden werden auf 40 gesetzt.

+ +

Beispiele

+ +

Einsatz von setUTCMinutes()

+ +
var theBigDay = new Date();
+theBigDay.setUTCMinutes(43);
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES1')}}{{Spec2('ES1')}}Initiale Definition. Implementiert in JavaScript 1.3.
{{SpecName('ES5.1', '#sec-15.9.5.33', 'Date.prototype.setUTCMinutes')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-date.prototype.setutcminutes', 'Date.prototype.setUTCMinutes')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-date.prototype.setutcminutes', 'Date.prototype.setUTCMinutes')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Date.setUTCMinutes")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/date/setutcmonth/index.html b/files/de/web/javascript/reference/global_objects/date/setutcmonth/index.html new file mode 100644 index 0000000000..d4f393051d --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/date/setutcmonth/index.html @@ -0,0 +1,94 @@ +--- +title: Date.prototype.setUTCMonth() +slug: Web/JavaScript/Reference/Global_Objects/Date/setUTCMonth +tags: + - Date + - JavaScript + - Method + - Prototype + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Date/setUTCMonth +--- +
{{JSRef}}
+ +

Die setUTCMonth() Methode setzt den Monat eines Datums bezüglich der Weltzeit.

+ +
{{EmbedInteractiveExample("pages/js/date-setutcmonth.html")}}
+ + + +

Syntax

+ +
dateObj.setUTCMonth(monthValue[, dayValue])
+ +

Parameter

+ +
+
monthValue
+
Eine ganze Zahl zwischen 0 und 11, die die Monate Januar bis Dezember repräsentiert.
+
dayValue
+
Optional. Eine ganze Zahl zwischen 1 und 31, die den Tag eines Monats repräsentiert.
+
+ +

Rückgabewert

+ +

Die Anzahl der Millisekunden zwischen dem 1. Januar 1970 00:00:00 UTC und dem aktualisierten date Objekte.

+ +

Beschreibung

+ +

Wenn die Parameter dayValue nicht angegeben werden, so wird für diesen der Rückgabewert der Methode {{jsxref("Date.prototype.getUTCDate()", "getUTCDate()")}} benutzt.

+ +

Wenn ein Parameter außerhalb seiner spezifizierten Grenzen liegt, berücksichtigt die setUTCMonth() Methode diese Information beim aktualisieren eines {{jsxref("Date")}} Objektes. Wenn zum Beispiel 15  für monthValue angegeben wird, so wird das Jahr um 1 inkrementiert und der Monat wird auf 3 gesetzt.

+ +

Beispiele

+ +

Einsatz von setUTCMonth()

+ +
var theBigDay = new Date();
+theBigDay.setUTCMonth(11);
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES1')}}{{Spec2('ES1')}}Initiale Definition. Implementiert in JavaScript 1.3.
{{SpecName('ES5.1', '#sec-15.9.5.39', 'Date.prototype.setUTCMonth')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-date.prototype.setutcmonth', 'Date.prototype.setUTCMonth')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-date.prototype.setutcmonth', 'Date.prototype.setUTCMonth')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Date.setUTCMonth")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/date/setutcseconds/index.html b/files/de/web/javascript/reference/global_objects/date/setutcseconds/index.html new file mode 100644 index 0000000000..52ce280245 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/date/setutcseconds/index.html @@ -0,0 +1,94 @@ +--- +title: Date.prototype.setUTCSeconds() +slug: Web/JavaScript/Reference/Global_Objects/Date/setUTCSeconds +tags: + - Date + - JavaScript + - Method + - Prototype + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Date/setUTCSeconds +--- +
{{JSRef}}
+ +

Die setUTCSeconds() Methode setzt die Sekunden eines Datums bezüglich der Weltzeit.

+ +
{{EmbedInteractiveExample("pages/js/date-setutcseconds.html")}}
+ + + +

Syntax

+ +
dateObj.setUTCSeconds(secondsValue[, msValue])
+ +

Parameter

+ +
+
secondsValue
+
Eine ganze Zahl zwischen 0 und 59, die die Sekunden repräsentiert.
+
msValue
+
Optional. Eine ganze Zahl zwische 0 und 999, die die Millisekunden repräsentiert.
+
+ +

Rückgabewert

+ +

Die Anzahl der Millisekunden zwischen dem 1. Januar 1970 00:00:00 UTC und dem aktualisierten date Objekte.

+ +

Beschreibung

+ +

Wenn der Parameter msValue nicht angegeben wird, so wird für diesen der Rückgabewert der Methode {{jsxref("Date.prototype.getUTCMilliseconds()", "getUTCMilliseconds()")}} benutzt.

+ +

Wenn ein Parameter außerhalb seiner spezifizierten Grenzen liegt, berücksichtigt die setUTCSeconds() Methode diese Information beim aktualisieren eines {{jsxref("Date")}} Objektes. Wenn zum Beispiel 100  für secondsValue angegeben wird, so werden die Minuten um 1 inkrementiert und die Sekunden werden auf 40 gesetzt.

+ +

Beispiele

+ +

Einsatz von setUTCSeconds()

+ +
var theBigDay = new Date();
+theBigDay.setUTCSeconds(20);
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES1')}}{{Spec2('ES1')}}Initiale Definition. Implementiert in JavaScript 1.3.
{{SpecName('ES5.1', '#sec-15.9.5.31', 'Date.prototype.setUTCSeconds')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-date.prototype.setutcseconds', 'Date.prototype.setUTCSeconds')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-date.prototype.setutcseconds', 'Date.prototype.setUTCSeconds')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Date.setUTCSeconds")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/date/setyear/index.html b/files/de/web/javascript/reference/global_objects/date/setyear/index.html new file mode 100644 index 0000000000..8eb3627370 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/date/setyear/index.html @@ -0,0 +1,96 @@ +--- +title: Date.prototype.setYear() +slug: Web/JavaScript/Reference/Global_Objects/Date/setYear +tags: + - Date + - Deprecated + - JavaScript + - Method + - Prototype + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Date/setYear +--- +
{{JSRef}} {{deprecated_header}}
+ +
Die setYear() Methode setzt das Jahr für eine Datum bezüglich der Ortszeit. Weil setYear() nicht das volle Jahr setzt ("Jahr 2000 Probem"), wird es nicht länger eingesetzt und wird von der Methode {{jsxref("Date.prototype.setFullYear()", "setFullYear()")}} ersetzt. 
+ +
 
+ +

Syntax

+ +
dateObj.setYear(yearValue)
+ +

Parameter

+ +
+
yearValue
+
Eine ganze Zahl.
+
+ +

Rückgabewert

+ +

Die Anzahl der Millisekunden zwischen dem 1. Januar 1970 00:00:00 UTC und dem geänderten date Objekt.

+ +

Beschreibung

+ +

Wenn yearValue eine Nummer zwische 0 und 99 (inklusiv) ist, wird das Jahr eines {{jsxref("date")}} Objekt mit dem Wert 1900 + yearValue gesetzt. Ansernfalls wird das Jahr des Objektes mit dem Wert  yearValue gesetzt.

+ +

Beispiele

+ +

Einsatz von setYear()

+ +

Die ersten beiden Zeilen setzen das Jahr auf 1996. Die dritte Zeile setzt das Jahr auf 2000

+ +
var theBigDay = new Date();
+
+theBigDay.setYear(96);
+theBigDay.setYear(1996);
+theBigDay.setYear(2000);
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES1')}}{{Spec2('ES1')}}Initiale Definition. Implementiert in JavaScript 1.0.
{{SpecName('ES5.1', '#sec-B.2.5', 'Date.prototype.setYear')}}{{Spec2('ES5.1')}}Definiert in dem (informativen) Kompatibilitäts-Anhang
{{SpecName('ES6', '#sec-date.prototype.setyear', 'Date.prototype.setYear')}}{{Spec2('ES6')}}Definiert in dem (normativ) Anhang für zusätzliche Funktionen für Web-Browser.
{{SpecName('ESDraft', '#sec-date.prototype.setyear', 'Date.prototype.setYear')}}{{Spec2('ESDraft')}}Definiert in dem (normativ) Anhang für zusätzliche Funktionen für Web-Browser.
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Date.setYear")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/date/todatestring/index.html b/files/de/web/javascript/reference/global_objects/date/todatestring/index.html new file mode 100644 index 0000000000..00440243e6 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/date/todatestring/index.html @@ -0,0 +1,92 @@ +--- +title: Date.prototype.toDateString() +slug: Web/JavaScript/Reference/Global_Objects/Date/toDateString +tags: + - Date + - JavaScript + - Method + - Prototype + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Date/toDateString +--- +
{{JSRef}}
+ +

Die toDateString() Methode gibt den Datumsteil eines {{jsxref("Date")}} Objektes für Menschen lesbar,  im amerikanisch-englischen Format, zurück.

+ +
{{EmbedInteractiveExample("pages/js/date-todatestring.html")}}
+ + + +

Syntax

+ +
dateObj.toDateString()
+ +

Rückgabewert

+ +

Ein String, der den Datumsteil des gegebenen {{jsxref("Date")}} Objektes für menschen lesbar im amerikanisch-englischen Format enthält

+ +

Beschreibung

+ +

{{jsxref("Date")}} Instanzen referenzieren einen spezifischen Zeitpunkt. Mit dem Aufruf von {{jsxref("Date.prototype.toString()", "toString()")}} wird dieser Zeitpunkt für Menschen lesbar, im amerikanisch-englischen Format, zurückgegeben. In SpiderMonkey enthält diese Format den Datumsteil (Tag, Monat und Jahr) gefolgt von dem Zeitteil (Stunden, Minuten, Sekunden und Zeitzone). Manchmal ist es erwünscht, nur die Zeit zu bekommen. In diesen Fällten wird die toTimeString() Methode eingesetzt.

+ +

Die toDateString() Methode ist besonders nützlich, weil JavaScript-Umgebungen die ECMA-262 implementieren. manchmal unterschiedliche Ergebnisse bei der Ausführung der {{jsxref("Date.prototype.toString()", "toString()")}} Methode eines {{jsxref("Date")}} Objektes liefern. Dieses liegt daran, weil das zurückgegebene Format der {{jsxref("Date.prototype.toString()", "toString()")}} Methode implementierungsabhängig ist, über mehrere Plattformen hinweg zu inkonsistenten Ergebnissen führen kann.

+ +

Beispiele

+ +

Einsatz von toDateString()

+ +
var d = new Date(1993, 5, 28, 14, 39, 7);
+
+console.log(d.toString());     // logs Wed Jun 28 1993 14:39:07 GMT-0600 (PDT)
+console.log(d.toDateString()); // logs Wed Jun 28 1993
+
+ +
+

Anmerkung: Der Monat ist 0-basiert wenn er als Argument in {{jsxref("Date")}} benutzt wird (0 entspricht Januar und 11 entspricht Dezember).

+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES3')}}{{Spec2('ES3')}}Initiale Definition.
{{SpecName('ES5.1', '#sec-15.9.5.3', 'Date.prototype.toDateString')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-date.prototype.todatestring', 'Date.prototype.toDateString')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-date.prototype.todatestring', 'Date.prototype.toDateString')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Date.toDateString")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/date/togmtstring/index.html b/files/de/web/javascript/reference/global_objects/date/togmtstring/index.html new file mode 100644 index 0000000000..c80dfdc5b9 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/date/togmtstring/index.html @@ -0,0 +1,87 @@ +--- +title: Date.prototype.toGMTString() +slug: Web/JavaScript/Reference/Global_Objects/Date/toGMTString +tags: + - Date + - Deprecated + - JavaScript + - Method + - Prototype + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Date/toGMTString +--- +
{{JSRef}} {{deprecated_header}}
+ +
Die toGMTString() Methode konvertiert ein Datum in ein String unter Benutzung der mittleren Greenwich Zeit. Das exakte Format des Rückgabewertes der toGMTString() Methode variierte von Browser zu Browser. Generel wird ein für Menschen lesbarer String zurückgegeben.
+ +
 
+ +
{{noteStart}}toGMTString() ist deprecated und sollte nicht mehr benutzt werden. Es ist nur noch für die Rückwärtskompatibilität vorhanden; nutzt stattdessen {{jsxref("Date.prototype.toUTCString()", "toUTCString()")}}{{noteEnd}}
+ +
 
+ +

Syntax

+ +
dateObj.toGMTString()
+ +

Rückgabewert

+ +

Einen String, der das gegebene {{jsxref("Date")}} Objekt nach den Internet Greenwich Mean Zeit (GMT) Konventionen repräsentiert.

+ +

Beispiele

+ +

Einfaches Beispiel

+ +

In diesem Beispiel konvertiert die toGMTString() Methode das {{jsxref("date")}} Objekt zu einem String mit der GMT (UTC) unter benutzung der Systemzeitzone. Die exakte Formatierung des String hängt von der Implementierung ab.

+ +
var today = new Date();
+var str = today.toGMTString();  // deprecated! use toUTCString()
+
+console.log(str);               // Mon, 18 Dec 1995 17:28:35 GMT
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES1')}}{{Spec2('ES1')}}Initiale Definition, aber schon als deprecated markiert. Implementiert in JavaScript 1.0.
{{SpecName('ES5.1', '#sec-B.2.6', 'Date.prototype.toGMTString')}}{{Spec2('ES5.1')}}Im (informativen) Anhang B "Compatibility" definiert.
{{SpecName('ES6', '#sec-date.prototype.togmtstring', 'Date.prototype.toGMTString')}}{{Spec2('ES6')}}Im (normativen) Anhang B "Additional ECMAScript Features for Web Browsers" definiert.
{{SpecName('ESDraft', '#sec-date.prototype.togmtstring', 'Date.prototype.toGMTString')}}{{Spec2('ESDraft')}}Im (normativen) Anhang B "Additional ECMAScript Features for Web Browsers" definiert.
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Date.toGMTString")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/date/toisostring/index.html b/files/de/web/javascript/reference/global_objects/date/toisostring/index.html new file mode 100644 index 0000000000..8d84d65c3c --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/date/toisostring/index.html @@ -0,0 +1,109 @@ +--- +title: Date.prototype.toISOString() +slug: Web/JavaScript/Reference/Global_Objects/Date/toISOString +tags: + - Date + - JavaScript + - Method + - Prototype + - Reference + - polyfill +translation_of: Web/JavaScript/Reference/Global_Objects/Date/toISOString +--- +
{{JSRef}}
+ +

Die toISOString() Methode gibt einen String im einfach erweitertem ISO format (ISO 8601) zurück, welcher immer 24 oder 27 Zeichen lang ist (YYYY-MM-DDTHH:mm:ss.sssZ oder ±YYYYYY-MM-DDTHH:mm:ss.sssZ). Die Zeitzone ist immer 0 UTC, wie es durch den Suffix "Z" angedeutet wird.

+ +
{{EmbedInteractiveExample("pages/js/date-toisostring.html")}}
+ + + +

Syntax

+ +
dateObj.toISOString()
+
+ +

Rückgabewert

+ +

Ein String, der das gegebene {{jsxref("Date")}} Objekt im ISO 8601 Format bezüglich der Weltzeit (UTC) repräsentiert.

+ +

Beispiele

+ +

Using toISOString()

+ +
var today = new Date('05 October 2011 14:48 UTC');
+
+console.log(today.toISOString()); // Returns 2011-10-05T14:48:00.000Z
+
+ +

Das obere Beispiel nutzt das Einlesen eines nicht standartisierten String Wert, welcher in nicht-Mozilla Browsern manchmal nicht richtig eingelesen wird.

+ +

Polyfill

+ +

Die Methode wurde in ECMA-262 5th edition standartisiert. In Umgebungen, die diese Methode nicht unterstützen (z. B. weil sie nicht aktualisiert werden), kann folgende Methode genutzt werden:

+ +
if (!Date.prototype.toISOString) {
+  (function() {
+
+    function pad(number) {
+      if (number < 10) {
+        return '0' + number;
+      }
+      return number;
+    }
+
+    Date.prototype.toISOString = function() {
+      return this.getUTCFullYear() +
+        '-' + pad(this.getUTCMonth() + 1) +
+        '-' + pad(this.getUTCDate()) +
+        'T' + pad(this.getUTCHours()) +
+        ':' + pad(this.getUTCMinutes()) +
+        ':' + pad(this.getUTCSeconds()) +
+        '.' + (this.getUTCMilliseconds() / 1000).toFixed(3).slice(2, 5) +
+        'Z';
+    };
+
+  }());
+}
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES5.1', '#sec-15.9.5.43', 'Date.prototype.toISOString')}}{{Spec2('ES5.1')}}Initiale Definition. Implementiert in JavaScript 1.8.
{{SpecName('ES6', '#sec-date.prototype.toisostring', 'Date.prototype.toISOString')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-date.prototype.toisostring', 'Date.prototype.toISOString')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Date.toISOString")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/date/tojson/index.html b/files/de/web/javascript/reference/global_objects/date/tojson/index.html new file mode 100644 index 0000000000..1d65876585 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/date/tojson/index.html @@ -0,0 +1,81 @@ +--- +title: Date.prototype.toJSON() +slug: Web/JavaScript/Reference/Global_Objects/Date/toJSON +tags: + - Date + - JavaScript + - Methode(2) + - Prototype + - Referenz +translation_of: Web/JavaScript/Reference/Global_Objects/Date/toJSON +--- +
{{JSRef}}
+ +

Die toJSON() Methode gibt einen String zurück, der das {{jsxref("Date")}} Objekt darstellt.

+ +
{{EmbedInteractiveExample("pages/js/date-tojson.html")}}
+ + + +

Syntax

+ +
dateObj.toJSON()
+ +

Rückgabewert

+ +

Ein String, der das gegebene date Objekt repräsentiert.

+ +

Beschreibung

+ +

{{jsxref("Date")}} Instanzen repräsentieren einen bestimmten Zeitpunkt. Ein Aufruf von toJSON() gibt unter Verwendung von {{jsxref("Date.prototype.toISOString()", "toISOString()")}} einen String zurück, der den Wert des {{jsxref("Date")}} Objekts darstellt. Diese Methode ist dafür vorgesehen, {{jsxref("Date")}} Objekte während der {{Glossary("JSON")}} Serialisierung standardisiert zu serialisieren.

+ +

Beispiele

+ +

Einsatz von toJSON()

+ +
var jsonDate = (new Date()).toJSON();
+var backToDate = new Date(jsonDate);
+
+console.log(jsonDate); //2015-10-26T07:46:36.611Z
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusBemerkung
{{SpecName('ES5.1', '#sec-15.9.5.44', 'Date.prototype.toJSON')}}{{Spec2('ES5.1')}}Erstmalige Definition. Implementiert in JavaScript 1.8.5.
{{SpecName('ES6', '#sec-date.prototype.tojson', 'Date.prototype.toJSON')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-date.prototype.tojson', 'Date.prototype.toJSON')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Date.toJSON")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/date/tolocaledatestring/index.html b/files/de/web/javascript/reference/global_objects/date/tolocaledatestring/index.html new file mode 100644 index 0000000000..21248d939a --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/date/tolocaledatestring/index.html @@ -0,0 +1,188 @@ +--- +title: Date.prototype.toLocaleDateString() +slug: Web/JavaScript/Reference/Global_Objects/Date/toLocaleDateString +tags: + - Date + - IANA Timezone Forma + - Internationalization + - JavaScript + - Method + - Prototype + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Date/toLocaleDateString +--- +
{{JSRef}}
+ +

Die toLocaleDateString() Methode gibt einen sprachsensitiven String mit dem Datumsteil des Zeitpunktes zurück. Die neuen Argumente locales und options können eingesetzt werden, um die Sprache (und damit die Formatierung) einzustellen oder benutzerdefinierte Formatierungen vorzunehmen. In älteren Implementierungen, die locales und options ignorieren, ist die Formatierung des String implementierungsabhängig.

+ +
{{EmbedInteractiveExample("pages/js/date-tolocaledatestring.html")}}
+ + + +

Syntax

+ +
dateObj.toLocaleDateString([locales [, options]])
+ +

Parameter

+ +

Überprüfe das Kapitel {{anch("Browser_compatibility", "Browserkompatibilität")}}, um zu erfahren, welcher Browser die Argumente locales and options unterstützt. Zudem sollte das Beispiel {{anch("Checking_for_support_for_locales_and_options_arguments", "Unterstützung der Argumente locales und options")}} beachtet werden.

+ +
{{page('/de/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat', 'Parameter')}}
+ +
Der Standardwert für jede Eigenschaft einer Datums-Zeitkomponente ist {{jsxref("undefined")}}, wenn aber die Eigenschaften weekday, year, month, day {{jsxref("undefined")}} sind, sind die Eigenschaften year, month, und day "numeric".
+ +

Rückgabewert

+ +

Einen String, der den Datumsteil des gegebenen {{jsxref("Date")}} Objektes mit sprachspezifischen Konventionen repräsentiert.

+ +

Beispiele

+ +

Einsatz von toLocaleDateString()

+ +

Standardeinsatz ohne Angaben zur Sprache und Formatierung. Ein formatierter String in der Standardsprache mit Standardoption wird zurückgegeben.

+ +
var date = new Date(Date.UTC(2012, 11, 12, 3, 0, 0));
+
+// toLocaleDateString() ohne Argumente abhängig von der Implementierung,
+// der Standardsprache und der Standardzeitzone.
+console.log(date.toLocaleDateString());
+// → "12/11/2012" wenn in der Sprache en-US mit America/Los_Angeles Zeitzone ausgeführt
+
+ +

Unterstützung der Argumente locales und options

+ +

Die Argumente locales and options sind noch nicht in allen Browsern unterstützt. Um herauszufinden, ob eine Implementierung die Argumente unterstützt, kann die Anforderung benutzt werden, dass bei nicht existierenden Sprachen ein {{jsxref("RangeError")}} erzeugt wird:

+ +
function toLocaleDateStringSupportsLocales() {
+  try {
+    new Date().toLocaleDateString('i');
+  } catch (e) {
+    return e.name === 'RangeError';
+  }
+  return false;
+}
+
+ +

Einsatz von locales

+ +

Das Beispiel zeigt einige Variation von internationalisierten Datumsformaten. Um das Format der Sprache der Benutzerschnittstelle (z. B. Webseite) zu bekommen, muss die Sprache (und manchmal eine Fallback-Sprache) mit dem Argument locales gesetzt werden:

+ +
var date = new Date(Date.UTC(2012, 11, 20, 3, 0, 0));
+
+// Die unteren Formate setzen ein lokale Zeitzone voraus:
+// America/Los_Angeles für die US
+
+// US Englischer Einsatz von Monat-Tag-Jahr
+console.log(date.toLocaleDateString('en-US'));
+// → "12/19/2012"
+
+// British Englischer Einsatz von Tag-Monat-Jahr
+console.log(date.toLocaleDateString('en-GB'));
+// → "20/12/2012"
+
+// Koreanischer Einsatz von Jahr-Monat-Tag
+console.log(date.toLocaleDateString('ko-KR'));
+// → "2012. 12. 20."
+
+// Event für Persien. Es ist schwer manuell in Solar Hijri zu konvertieren
+console.log(date.toLocaleDateString('fa-IR'));
+// → "۱۳۹۱/۹/۳۰"
+
+// In den meisten arabischen Ländern werden arabische Ziffern genutzt.
+console.log(date.toLocaleDateString('ar-EG'));
+// → "٢٠‏/١٢‏/٢٠١٢"
+
+// Für mansche japanische Anwendungen wird er japanische Kalender benutzt,
+// bei dem das Jahr 2012 das Jahr 24 der Heisei-Zeit ist.
+console.log(date.toLocaleDateString('ja-JP-u-ca-japanese'));
+// → "24/12/20"
+
+// Wenn eine Sprache angegeben wird, die vielleicht nicht unterstützt wird,
+// wie Balinesisch, wird eine fallback Sprache (Indonesisch) definiert.
+console.log(date.toLocaleDateString(['ban', 'id']));
+// → "20/12/2012"
+
+ +

Einsatz von options

+ +

Das Ergebnis der toLocaleDateString() Methode kann benutzerdefiniert mit dem Argument options beeinflusst werden.

+ +
var date = new Date(Date.UTC(2012, 11, 20, 3, 0, 0));
+
+// Gibt einen Wochentag und ein langes Datum zurück.
+var options = { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' };
+console.log(date.toLocaleDateString('de-DE', options));
+// → "Donnerstag, 20. Dezember 2012"
+
+// Macht UTC sichtbar
+options.timeZone = 'UTC';
+options.timeZoneName = 'short';
+console.log(date.toLocaleDateString('en-US', options));
+// → "Thursday, December 20, 2012, GMT"
+
+ +

Performance

+ +

Wenn viele Daten formatiert werden sollen, ist es besser ein {{jsxref("DateTimeFormat", "Intl.DateTimeFormat")}} Objekt zu erstellen und die Funktion {{jsxref("DateTimeFormat.prototype.format", "format")}} zu benutzen.

+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES3')}}{{Spec2('ES3')}}Initiale Definition. Implementiert in JavaScript 1.0.
{{SpecName('ES5.1', 'sec-15.9.5.6', 'Date.prototype.toLocaleDateString')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-date.prototype.tolocaledatestring', 'Date.prototype.toLocaleDateString')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-date.prototype.tolocaledatestring', 'Date.prototype.toLocaleDateString')}}{{Spec2('ESDraft')}} 
{{SpecName('ES Int 1.0', '#sec-13.3.2', 'Date.prototype.toLocaleDateString')}}{{Spec2('ES Int 1.0')}}Definition der locales und options Argumente.
{{SpecName('ES Int 2.0', '#sec-13.3.2', 'Date.prototype.toLocaleDateString')}}{{Spec2('ES Int 2.0')}} 
{{SpecName('ES Int Draft', '#sec-Date.prototype.toLocaleDateString', 'Date.prototype.toLocaleDateString')}}{{Spec2('ES Int Draft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Date.toLocaleDateString")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/date/tolocaleformat/index.html b/files/de/web/javascript/reference/global_objects/date/tolocaleformat/index.html new file mode 100644 index 0000000000..f8f596983f --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/date/tolocaleformat/index.html @@ -0,0 +1,81 @@ +--- +title: Date.prototype.toLocaleFormat() +slug: Web/JavaScript/Reference/Global_Objects/Date/toLocaleFormat +tags: + - Date + - Java + - Method + - Non-standard + - Prototype + - Reference +translation_of: Archive/Web/JavaScript/Date.toLocaleFormat +--- +
{{JSRef}} {{non-standard_header}}
+ +

Die nicht standardisierte Methode toLocaleFormat() konvertiert einen {{jsxref("date")}} Objekt zu einem String im übergebenen Format. {{jsxref("Global_Objects/DateTimeFormat", "Intl.DateTimeFormat")}} ist einen standardisierte Alternative zum Formatieren von {{jsxref("Date")}} Objekten. Siehe auch die neuere Version der {{jsxref("Date.prototype.toLocaleDateString()")}} Methode an.

+ +
Diese Funktion wurde Entfernt und wird ab Firefox 58 nicht mehr Funktionieren. Für mehr Information un Migrationshilfe siehe in den Artikel {{jsxref("Errors/Deprecated_toLocaleFormat","Warning: Date.prototype.toLocaleFormat is deprecated")}}.
+ +

Syntax

+ +
dateObj.toLocaleFormat(formatString)
+ +

Parameter

+ +
+
formatString
+
Ein Formatstring, welche im selben Format sein muss, wie es die C Funktion strftime() erwartet.
+
+ +

Rückgabewert

+ +

Einen String, der das gegebenen {{jsxref("Date")}} Objekt im spezifizierten Format repräsentiert.

+ +

Beschreibung

+ +

Die toLocaleFormat() Methode ermöglicht es eine größere Kontrolle über das Formatieren von generierten Daten und/oder Zeiten zu haben. Namen für Monate und Wochentage werden mit den Spracheinstellungen des Betriebssystem formatiert. Die Anordnung von Tagen, Monaten und anderen Bestandteilen in der Formatierung wird nicht automatisch vorgenommen. Sie sind von den Angaben in dem Formatierungsstring abhängig. Man muss dafür sorgen, dass der Formatierungsstring zu richtigen Ergebnissen auf dem Benutzersystem führt. Man sollte vorsichtig sein, weil die Spracheinstellungen im Browser nicht die gleichen sein müssen, wie die des Betriebssystems.

+ +

Extension und XULRunner Entwickler wissen, dass das Laden von Formatstring aus .dtd oder .properties Dateien mit dem Einsatz von URIs (z. B. chrome://somedomain/locale/somefile.ext) vermieden werden sollte, weil .dtd/.properties Dateien und die toLocaleFormat() Methode nicht notwendiger Weise der gleichen Sprache folgen. Dieses kann zu nicht lesbaren oder merkwürdig formatierten Daten führen.

+ +

Außerdem ist zu beachten, dass der Einsatz von Formatierungen abhängig von der Plattform und den benutzerdefinierten Einstellungen des Benutzers nicht immer gewollt ist. Man sollte stattdessen die allgemeineren toLocale* Methoden des {{jsxref("Global_Objects/Date", "Date")}} Objektes nutzen oder ein eigenes Format mit den get* Methoden einer {{jsxref("Global_Objects/Date", "Date")}} Instanz erstellen.

+ +

Beispiele

+ +

Einsatz von toLocaleFormat()

+ +
var today = new Date();
+var date = today.toLocaleFormat('%A, %B %e, %Y'); // Schlechtes Beispiel
+
+ +

Im Beispiel gibt toLocaleFormat() einen String wie "Mittwoch, Oktober 3, 2007" zurück. Zu beachten ist, dass der String nicht unbedingt den Sprachegegebenheiten angepasst ist, was auf die oben genannten Probleme zurückzuführen ist.

+ +

Polyfill

+ +

Wenn die DateJS Bibliothek benutzt wird, kann folgender Polyfill benutzt werden:

+ +
if (!Date.prototype.toLocaleFormat) {
+    (function() {
+        Date.prototype.toLocaleFormat = function(formatString) {
+            return this.format(formatString);
+        };
+    }());
+}
+ +

Spezifikationen

+ +

Nicht spezifiziert. Implementiert in JavaScript 1.6.

+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Date.toLocaleFormat")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/date/tolocalestring/index.html b/files/de/web/javascript/reference/global_objects/date/tolocalestring/index.html new file mode 100644 index 0000000000..4db8f38c1e --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/date/tolocalestring/index.html @@ -0,0 +1,188 @@ +--- +title: Date.prototype.toLocaleString() +slug: Web/JavaScript/Reference/Global_Objects/Date/toLocaleString +tags: + - Date + - Internationalization + - JavaScript + - Method + - Prototype + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Date/toLocaleString +--- +
{{JSRef}}
+ +

Die toLocaleString() Methode gibt einen sprachsensitiven String mit dem Zeitpunkt zurück. Die neuen Argumente locales und options können eingesetzt werden, um die Sprache (und damit die Formatierung) einzustellen oder benutzerdefinierte Formatierungen vorzunehmen. In älteren Implementierungen, die locales und options ignorieren, ist die Formatierung des String implementierungsabhängig.

+ +
{{EmbedInteractiveExample("pages/js/date-tolocalestring.html")}}
+ + + +

Syntax

+ +
dateObj.toLocaleString([locales[, options]])
+ +

Parameter

+ +

Überprüfe das Kapitel {{anch("Browser_compatibility", "Browserkompatibilität")}}, um zu erfahren, welcher Browser die Argumente locales and options unterstützt. Zudem sollte das Beispiel {{anch("Checking_for_upport_for_locales_and_options_arguments", "Unterstützung der Argumente locales und options")}} beachtet werden.

+ +
{{page('/de/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat', 'Parameter')}}
+ +
 
+ +
Der Standardwert für jede Eigenschaft einer Datums-Zeitkomponente ist {{jsxref("undefined")}}, wenn aber die Eigenschaften weekday, year, month, day, hour, minute, second {{jsxref("undefined")}} sind, sind die Eigenschaften year, month, day, hour, minute und second "numeric".
+ +
 
+ +

Rückgabewert

+ +

Einen String, der das gegebenen {{jsxref("Date")}} Objektes mit sprachspezifischen Konventionen repräsentiert.

+ +

Beispiele

+ +

Einsatz von toLocaleString()

+ +

Standardeinsatz ohne Angaben zur Sprache und Formatierung. Ein formatierter String in der Standardsprache mit Standardoption wird zurückgegeben.

+ +
var date = new Date(Date.UTC(2012, 11, 12, 3, 0, 0));
+
+// toLocaleString() ohne Argumente abhängig von der Implementierung,
+// der Standardsprache und der Standardzeitzone.
+console.log(date.toLocaleString());
+// → "12/11/2012, 7:00:00 PM" wenn in der Sprache en-US mit America/Los_Angeles Zeitzone ausgeführt
+
+ +

Unterstützung der Argumente locales und options

+ +

Die Argumente locales and options sind noch nicht in allen Browsern unterstützt. Um herauszufinden, ob eine Implementierung die Argumente unterstützt, kann die Anforderung benutzt werden, dass bei nicht existierenden Sprachen ein {{jsxref("RangeError")}} erzeugt wird:

+ +
function toLocaleStringSupportsLocales() {
+  try {
+    new Date().toLocaleString('i');
+  } catch (e) {
+    return e instanceof RangeError;
+  }
+  return false;
+}
+
+ +

Einsatz von locales

+ +

Das Beispiel zeigt einige Variation von internationalisierten Datums- und Zeitformaten. Um das Format der Sprache der Benutzerschnittstelle (z. B. Webseite) zu bekommen, muss die Sprache (und manchmal eine fallback Sprache) mit dem Argument locales gesetzt werden:

+ +
var date = new Date(Date.UTC(2012, 11, 20, 3, 0, 0));
+
+// US englischer einsatz mit Monat-Tag-Jahr und 12-Stunden Zeit mit AM/PM
+console.log(date.toLocaleString('en-US'));
+// → "12/19/2012, 7:00:00 PM"
+
+// Britisch englischer Einsatz mit Tag-Monat-Jahr und 24-Stunden Zeit ohne AM/PM
+console.log(date.toLocaleString('en-GB'));
+// → "20/12/2012 03:00:00"
+
+// Koreanischer Einsatz mit Jahr-Monat-Tag und 12-Stunden Zeit mit AM/PM
+console.log(date.toLocaleString('ko-KR'));
+// → "2012. 12. 20. 오후 12:00:00"
+
+// In den meisten arabischen Ländern werden arabische Ziffern genutzt.
+console.log(date.toLocaleString('ar-EG'));
+// → "٢٠‏/١٢‏/٢٠١٢ ٥:٠٠:٠٠ ص"
+
+// Für mansche japanische Anwendungen wird er japanische Kalender benutzt,
+// bei dem das Jahr 2012 das Jahr 24 der Heisei-Zeit ist.
+console.log(date.toLocaleString('ja-JP-u-ca-japanese'));
+// → "24/12/20 12:00:00"
+
+// Wenn eine Sprache angegeben wird, die vielleicht nicht unterstützt wird,
+// wie Balinesisch, wird eine fallback Sprache (Indonesisch) definiert.
+console.log(date.toLocaleString(['ban', 'id']));
+// → "20/12/2012 11.00.00"
+
+ +

Einsatz von options

+ +

Das Ergebnis der toLocaleString() Methode kann benutzerdefiniert mit dem Argument options beeinflusst werden.

+ +
var date = new Date(Date.UTC(2012, 11, 20, 3, 0, 0));
+
+// Gibt einen Wochentag und ein langes Datum zurück
+var options = { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' };
+console.log(date.toLocaleString('de-DE', options));
+// → "Donnerstag, 20. Dezember 2012"
+
+//  Macht UTC sichtbar
+options.timeZone = 'UTC';
+options.timeZoneName = 'short';
+console.log(date.toLocaleString('en-US', options));
+// → "Thursday, December 20, 2012, GMT"
+
+// Manchal brauchen US-Sprachen auch 24-Stunden Zeiten
+console.log(date.toLocaleString('en-US', { hour12: false }));
+// → "12/19/2012, 19:00:00"
+
+ +

Performance

+ +

Wenn viele Daten formatiert werden sollen, ist es besser ein {{jsxref("DateTimeFormat", "Intl.DateTimeFormat")}} Objekt zu erstellen und die Funktion {{jsxref("DateTimeFormat.prototype.format", "format")}} zu benutzen.

+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES1')}}{{Spec2('ES1')}}Initiale Definition. Implementiert in JavaScript 1.0.
{{SpecName('ES5.1', '#sec-15.9.5.5', 'Date.prototype.toLocaleString')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-date.prototype.tolocalestring', 'Date.prototype.toLocaleString')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-date.prototype.tolocalestring', 'Date.prototype.toLocaleString')}}{{Spec2('ESDraft')}} 
{{SpecName('ES Int 1.0', '#sec-13.3.1', 'Date.prototype.toLocaleString')}}{{Spec2('ES Int 1.0')}}Definition der locales und options Argumente.
{{SpecName('ES Int 2.0', '#sec-13.3.1', 'Date.prototype.toLocaleString')}}{{Spec2('ES Int 2.0')}} 
{{SpecName('ES Int Draft', '#sec-Date.prototype.toLocaleString', 'Date.prototype.toLocaleString')}}{{Spec2('ES Int Draft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Date.toLocaleString")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/date/tolocaletimestring/index.html b/files/de/web/javascript/reference/global_objects/date/tolocaletimestring/index.html new file mode 100644 index 0000000000..da74e548cf --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/date/tolocaletimestring/index.html @@ -0,0 +1,177 @@ +--- +title: Date.prototype.toLocaleTimeString() +slug: Web/JavaScript/Reference/Global_Objects/Date/toLocaleTimeString +tags: + - Date + - Internationalization + - JavaScript + - Method + - Prototype + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Date/toLocaleTimeString +--- +
{{JSRef}}
+ +

Die toLocaleTimeString() Methode gibt einen sprachsensitiven String mit dem Zeitsteil des Zeitpunktes zurück. Die neuen Argumente locales und options können eingesetzt werden, um die Sprache (und damit die Formatierung) einzustellen oder benutzerdefinierte Formatierungen vorzunehmen. In älteren Implementierungen, die locales und options ignorieren, ist die Formatierung des String implementierungsabhängig.

+ +
{{EmbedInteractiveExample("pages/js/date-tolocaletimestring.html")}}
+ + + +

Syntax

+ +
dateObj.toLocaleTimeString([locales[, options]])
+ +

Parameter

+ +

Überprüfe das Kapitel {{anch("Browser_compatibility", "Browserkompatibilität")}}, um zu erfahren, welcher Browser die Argumente locales and options unterstützt. Zudem sollte das Beispiel {{anch("Checking_for_support_for_locales_and_options_arguments", "Unterstützung der Argumente locales und options")}} beachtet werden.

+ +
{{page('/de/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat', 'Parameter')}}
+ +
Der Standardwert für jede Eigenschaft einer Datums-Zeitkomponente ist {{jsxref("undefined")}}, wenn aber die Eigenschaften hour, minute, second {{jsxref("undefined")}} sind, sind die Eigenschaften hour, minute und second "numeric".
+ +

Rückgabewert

+ +

Einen String, der den Zeitteil des gegebenen {{jsxref("Date")}} Objektes mit sprachspezifischen Konventionen repräsentiert.

+ +

Beispiele

+ +

Einsatz von toLocaleTimeString()

+ +

Standardeinsatz ohne Angaben zur Sprache und Formatierung. Ein formatierter String in der Standardsprache mit Standardoption wird zurückgegeben.

+ +
var date = new Date(Date.UTC(2012, 11, 12, 3, 0, 0));
+
+// toLocaleTimeString() ohne Argumente abhängig von der Implementierung,
+// der Standardsprache und der Standardzeitzone.
+console.log(date.toLocaleTimeString());
+// → "7:00:00 PM"  wenn in der Sprache en-US mit America/Los_Angeles Zeitzone ausgeführt
+
+ +

Unterstützung der Argumente locales und options

+ +

Die Argumente locales and options sind noch nicht in allen Browsern unterstützt. Um herauszufinden, ob eine Implementierung die Argumente unterstützt, kann die Anforderung benutzt werden, dass bei nicht existierenden Sprachen ein {{jsxref("RangeError")}} erzeugt wird:

+ +
function toLocaleTimeStringSupportsLocales() {
+  try {
+    new Date().toLocaleTimeString('i');
+  } catch (e) {
+    return e​.name === 'RangeError';
+  }
+  return false;
+}
+
+ +

Einsatz von locales

+ +

Das Beispiel zeigt einige Variation von internationalisierten Zeitformaten. Um das Format der Sprache der Benutzerschnittstelle (z. B. Webseite) zu bekommen, muss die Sprache (und manchmal eine fallback Sprache) mit dem Argument locales gesetzt werden:

+ +
var date = new Date(Date.UTC(2012, 11, 20, 3, 0, 0));
+
+// die folgenden Formate setzen voraus, dass man die Zeitzone
+// America/Los_Angeles für US eingestellt hat.
+
+// US Englische Sprache; 12-Stunden Zeit mit AM/PM
+console.log(date.toLocaleTimeString('en-US'));
+// → "7:00:00 PM"
+
+// British Englishe Sprache; 24-Stunden Zeit ohne AM/PM
+console.log(date.toLocaleTimeString('en-GB'));
+// → "03:00:00"
+
+// Koreanische Sprache; 12-Stunden Zeit mit AM/PM
+console.log(date.toLocaleTimeString('ko-KR'));
+// → "오후 12:00:00"
+
+// In den meisten arabischen Ländern werden arabische Ziffern genutzt.
+console.log(date.toLocaleTimeString('ar-EG'));
+// → "٧:٠٠:٠٠ م"
+
+// Wenn eine Sprache angegeben wird, die vielleicht nicht unterstützt wird,
+// wie Balinesisch, wird eine fallback Sprache (Indonesisch) definiert.
+console.log(date.toLocaleTimeString(['ban', 'id']));
+// → "11.00.00"
+
+ +

Einsatz von options

+ +

Das Ergebnis der toLocaleTimeString() Methode kann benutzerdefiniert mit dem Argument options beeinflusst werden.

+ +
var date = new Date(Date.UTC(2012, 11, 20, 3, 0, 0));
+
+// Macht UTC sichtbar
+var options = { timeZone: 'UTC', timeZoneName: 'short' };
+console.log(date.toLocaleTimeString('en-US', options));
+// → "3:00:00 AM GMT"
+
+// Manchal brauchen US-Sprachen auch 24-Stunden Zeiten
+console.log(date.toLocaleTimeString('en-US', { hour12: false }));
+// → "19:00:00"
+
+ +

Performance

+ +

Wenn viele Zeiten formatiert werden sollen, ist es besser ein {{jsxref("DateTimeFormat", "Intl.DateTimeFormat")}} Objekt zu erstellen und die Funktion {{jsxref("DateTimeFormat.prototype.format", "format")}} zu benutzen.

+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES3')}}{{Spec2('ES3')}}Initiale Definition. Implementiert in JavaScript 1.0.
{{SpecName('ES5.1', '#sec-15.9.5.7', 'Date.prototype.toLocaleTimeString')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-date.prototype.tolocalestring', 'Date.prototype.toLocaleTimeString')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-date.prototype.tolocalestring', 'Date.prototype.toLocaleTimeString')}}{{Spec2('ESDraft')}} 
{{SpecName('ES Int 1.0', '#sec-13.3.3', 'Date.prototype.toLocaleTimeString')}}{{Spec2('ES Int 1.0')}}Definition der locales und options Argumente.
{{SpecName('ES Int 2.0', '#sec-13.3.3', 'Date.prototype.toLocaleTimeString')}}{{Spec2('ES Int 2.0')}} 
{{SpecName('ES Int Draft', '#sec-Date.prototype.toLocaleTimeString', 'Date.prototype.toLocaleTimeString')}}{{Spec2('ES Int Draft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Date.toLocaleTimeString")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/date/tosource/index.html b/files/de/web/javascript/reference/global_objects/date/tosource/index.html new file mode 100644 index 0000000000..12764ae672 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/date/tosource/index.html @@ -0,0 +1,61 @@ +--- +title: Date.prototype.toSource() +slug: Web/JavaScript/Reference/Global_Objects/Date/toSource +tags: + - Date + - JavaScript + - Method + - Prototype + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Date/toSource +--- +
{{JSRef}} {{non-standard_header}}
+ +
Die toSource() Methode gibt eine String Repräsentation des Quelltextes des Objektes zurück.
+ +
 
+ +

Syntax

+ +
dateObj.toSource()
+Date.toSource()
+ +

Rückgabewert

+ +

Ein String, der den Quelltext des gegebenen {{jsxref("Date")}} Objekt repräsentiert.

+ +

Beschreibung

+ +

Die toSource() Methode gibt die folgenden Werte zurück:

+ + + + + +

Diese Methode wird intern von JavaScript aufgerufen und wird nicht explizit im Quelltext eingesetzt.

+ +

Spezifikationen

+ +

Kein Standard. Implementiert in JavaScript 1.3.

+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Date.toSource")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/date/tostring/index.html b/files/de/web/javascript/reference/global_objects/date/tostring/index.html new file mode 100644 index 0000000000..470fd1903c --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/date/tostring/index.html @@ -0,0 +1,94 @@ +--- +title: Date.prototype.toString() +slug: Web/JavaScript/Reference/Global_Objects/Date/toString +tags: + - Date + - JavaScript + - Method + - Prototype + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Date/toString +--- +
{{JSRef}}
+ +

Die toString() Methode gibt einen String zurück, der ein spezifisches {{jsxref("Date")}} Objekt repräsentiert.

+ +
{{EmbedInteractiveExample("pages/js/date-tostring.html")}}
+ + + +

Syntax

+ +
dateObj.toString()
+ +

Rückgabewert

+ +

Einen String, der das gegebene {{jsxref("Date")}} Objekt repräsentiert.

+ +

Beschreibung

+ +

Das {{jsxref("Date")}} Objekt überschreibt die toString() Methode des {{jsxref("Object")}} Objekts. Es wird nicht von  {{jsxref("Object.prototype.toString()")}} geerbt. Für {{jsxref("Date")}} Objekte gibt die toString() Methode einen String zurück, der das Objekt repräsentiert.

+ +

Die toString() Methode gibt immer einen String zurück, der den Zeitpunkt repräsentiert. Dieser String wird in einem amerikanisch-englischen Format zurückgegeben.

+ +

JavaScript ruft die toString() Methode automatisch auf, wenn ein {{jsxref("Date")}} Objekte als Text-Wert benötigt wird oder wenn das Objekt in einer String-Konkatination verwendet wird.

+ +

toString() ist eine generische Methode. Wenn this keine Instanz vom Typ {{jsxref("Date")}} ist, gibt die Methode "Invalid Date" zurück.

+ +

Beispiele

+ +

Einsatz von toString()

+ +

Im folgenden wird die Variable myVar mit dem Rückgabewert der toString() Methode eines {{jsxref("Date")}} Objektes beschrieben.

+ +
var x = new Date();
+myVar = x.toString(); // Weist der Variablen myVar folgenden Wert zu:
+                      // Mon Sep 28 1998 14:36:22 GMT-0700 (PDT)
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES1')}}{{Spec2('ES1')}}Initiale Definition. Implementiert in JavaScript 1.0.
{{SpecName('ES5.1', '#sec-15.9.5.2', 'Date.prototype.toLocaleTimeString')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-date.prototype.tostring', 'Date.prototype.toString')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-date.prototype.tostring', 'Date.prototype.toString')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Date.toString")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/date/totimestring/index.html b/files/de/web/javascript/reference/global_objects/date/totimestring/index.html new file mode 100644 index 0000000000..65d643c72a --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/date/totimestring/index.html @@ -0,0 +1,88 @@ +--- +title: Date.prototype.toTimeString() +slug: Web/JavaScript/Reference/Global_Objects/Date/toTimeString +tags: + - Date + - JavaScript + - Method + - Prototype + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Date/toTimeString +--- +
{{JSRef}}
+ +

Die toDateString() Methode gibt den Zeitteil eines {{jsxref("Date")}} Objektes für Menschen lesbar,  im amerikanisch-englischen Format, zurück.

+ +
{{EmbedInteractiveExample("pages/js/date-totimestring.html")}}
+ + + +

Syntax

+ +
dateObj.toTimeString()
+ +

Rückgabewert

+ +

Ein String, der den Zeitteil des gegebenen {{jsxref("Date")}} Objektes für menschen lesbar im amerikanisch-englischen Format enthält

+ +

Beschreibung

+ +

{{jsxref("Date")}} Instanzen referenzieren einen spezifischen Zeitpunkt. Mit dem Aufruf von {{jsxref("Date.prototype.toString()", "toString()")}} wird dieser Zeitpunkt für Menschen lesbar, im amerikanisch-englischen Format, zurückgegeben. In SpiderMonkey enthält diese Format den Datumsteil (Tag, Monat und Jahr) gefolgt von dem Zeitteil (Stunden, Minuten, Sekunden und Zeitzone). Manchmal ist es erwünscht, nur den Datumsteil zu bekommen. In diesen Fällen wird die toDateString() Methode eingesetzt.

+ +

Die toTimeString() Methode ist besonders nützlich, weil JavaScript-Umgebungen die ECMA-262 implementieren, manchmal unterschiedliche Ergebnisse bei der Ausführung der {{jsxref("Date.prototype.toString()", "toString()")}} Methode eines {{jsxref("Date")}} Objektes liefern. Dieses liegt daran, weil das zurückgegebene Format der {{jsxref("Date.prototype.toString()", "toString()")}} Methode implementierungsabhängig ist und über mehrere Plattformen hinweg zu inkonsistenten Ergebnissen führen kann.

+ +

Beispiele

+ +

Einsatz von toTimeString()

+ +
var d = new Date(1993, 6, 28, 14, 39, 7);
+
+console.log(d.toString());     // logs Wed Jul 28 1993 14:39:07 GMT-0600 (PDT)
+console.log(d.toTimeString()); // logs 14:39:07 GMT-0600 (PDT)
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES3')}}{{Spec2('ES3')}}Initiale Definition.
{{SpecName('ES5.1', '#sec-15.9.5.4', 'Date.prototype.toTimeString')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-date.prototype.totimestring', 'Date.prototype.toTimeString')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-date.prototype.totimestring', 'Date.prototype.toTimeString')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Date.toTimeString")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/date/toutcstring/index.html b/files/de/web/javascript/reference/global_objects/date/toutcstring/index.html new file mode 100644 index 0000000000..02dc9d414b --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/date/toutcstring/index.html @@ -0,0 +1,84 @@ +--- +title: Date.prototype.toUTCString() +slug: Web/JavaScript/Reference/Global_Objects/Date/toUTCString +tags: + - Date + - JavaScript + - Method + - Prototype + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Date/toUTCString +--- +
{{JSRef}}
+ +

Die toUTCString() Methode konvertiert ein {{jsxref("Date")}} in einen String. Dabei wird die UTC Zeitzone verwendet.

+ +
{{EmbedInteractiveExample("pages/js/date-toutcstring.html")}}
+ + + +

Syntax

+ +
dateObj.toUTCString()
+ +

Rückgabewert

+ +

Ein String, der das gegebene {{jsxref("Date")}} Objekt mit Zuhilfenahme der UTC Zeitzonen repräsentiert.

+ +

Beschreibung

+ +

Der Rückgabewert der toUTCString() Methode ist ein für menschen lesbarer String, der die UTC Zeitzone nutzt. Das Format des zurückgegebenen String kann von Plattform zu Plattform variieren. Der am häufigsten eingesetzte Wert ist ein RFC-1123 formatierter Zeitstempel, welcher ein Update des Zeitstempels in der Version RFC-822 ist.

+ +

Beispiele

+ +

Einsatz von toUTCString()

+ +
var today = new Date('Wed, 14 Jun 2017 00:00:00 PDT');
+var UTCstring = today.toUTCString(); // Wed, 14 Jun 2017 07:00:00 GMT
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES1')}}{{Spec2('ES1')}}Initiale Definition. Implementiert in JavaScript 1.3.
{{SpecName('ES5.1', '#sec-15.9.5.42', 'Date.prototype.toUTCString')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-date.prototype.toutcstring', 'Date.prototype.toUTCString')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-date.prototype.toutcstring', 'Date.prototype.toUTCString')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Date.toUTCString")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/date/utc/index.html b/files/de/web/javascript/reference/global_objects/date/utc/index.html new file mode 100644 index 0000000000..56aa3fde32 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/date/utc/index.html @@ -0,0 +1,133 @@ +--- +title: Date.UTC() +slug: Web/JavaScript/Reference/Global_Objects/Date/UTC +tags: + - Date + - JavaScript + - Method + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Date/UTC +--- +
{{JSRef}}
+ +

Die Date.UTC() Methode akzeptiert die gleichen Parameter, wie der längste Konstruktor von {{jsxref("Date")}} und gibt die Anzahl der Millisekunden seit dem 1. Januar 1970 00:00:00 UTC zurück.

+ +
{{EmbedInteractiveExample("pages/js/date-utc.html")}}
+ + + +

Syntax

+ +
Date.UTC(year, month[, day[, hour[, minute[, second[, millisecond]]]]])
+ +

Parameter

+ +
+
year
+
Ein volles Jahr
+
month
+
Eine ganze Zahl zwischen 0 und 11, die den Monat repräsentiert.
+
day
+
Optional. Eine ganze Zahl zwischen 1 und 31 den Tag des Monats repräsentiert.
+
hour
+
Optional. Eine ganze Zahl zwischen 0 und 23, die die Stunde des Tages repräsentiert.
+
minute
+
Optional. Eine ganze Zahl zwischen 0 und 59, die die Minute der Stunde repräsentiert.
+
second
+
Optional. Eine ganze Zahl zwischen 0 und 59, die die Sekunden der Minute repräsentiert.
+
millisecond
+
Optional. Eine ganze Zahl zwischen 0 und 999, die die Millisekunden einer Sekunde repräsentiert.
+
+ +

Rückgabewert

+ +

Eine Zahl, die die Anzahl der Millisekunden des gegebenen {{jsxref("Date")}} Objektes, die seit dem 1. Januar 1970 00:00:00 Weltzeit (UTC) vergangen sind, repräsentiert.

+ +

Beschreibung

+ +

Die UTC() Methode bekommt mit Komma getrennte Parameter des Datums / der Zeit und gibt die Anzahl der Millisekunden seit dem 1. Januar 1970 in Weltzeit zurück.

+ +

Es muss ein volles Jahr für year spezifiziert werden (z. B. 1998). Wenn ein Jahr zwischen 0 und 99 ist, wird die Methode das Jahr zu einem Jahr im zwanzigsten Jahrhundert konvertieren (1900 + year). Zum Beispiel wird 95 zu 1995 konvertiert.

+ +

Die UTC() Methode unterscheidet sich in zwei Punkten von dem {{jsxref("Date")}} Konstruktor:

+ + + +

Wenn ein Parameter außerhalb seiner spezifizierten Grenzen ist, wird die UTC() Methode andere Parameter verändern, um den Wert zu realisieren. Wird zum Beispiel 15 als Monat angegeben, so wird das Jahr um 1 inkrementiert (year + 1) und der Monat wird auf 3 gesetzt.

+ +

Weil UTC() eine statische Methode von {{jsxref("Date")}} ist, wird sie immer als Date.UTC() genutzt und nicht als Methode einer {{jsxref("Date")}} Instanz.

+ +

Beispiele

+ +

Einsatz von Date.UTC()

+ +

Im folgenden Beispiel wird ein {{jsxref("Date")}} Objekt mithilfe der UTC (nicht der Ortszeit) erstellt:

+ +
var utcDate = new Date(Date.UTC(2018, 11, 1, 0, 0, 0));
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ESDraft', '#sec-date.utc', 'Date.UTC')}}{{Spec2('ESDraft')}} 
{{SpecName('ES6', '#sec-date.utc', 'Date.UTC')}}{{Spec2('ES6')}} 
{{SpecName('ES5.1', '#sec-15.9.4.3', 'Date.UTC')}}{{Spec2('ES5.1')}} 
{{SpecName('ES1')}}{{Spec2('ES1')}}Initiale Definition. Implementiert in JavaScript 1.0.
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Date.UTC")}}

+ +

Anmerkungen zur Kompatibilität

+ +

Date.UTC mit weniger als zwei Argumenten

+ +

Wenn Date.UTC weniger als zwei Argumenten erhält, wird {{jsxref("NaN")}} zurückgegeben. Dieses Verhalten wurde in ECMAScript 2017 spezifiziert. Umgebungen, welche dieses Verhalten nicht unterstützen, werden aktualisiert (siehe {{bug(1050755)}}, ecma-262 #642).

+ +
Date.UTC();
+Date.UTC(1);
+
+// Safari: NaN
+// Chrome/Opera/V8: NaN
+
+// Firefox <54: nicht NaN
+// Firefox 54+: NaN
+
+// IE: nicht NaN
+// Edge: NaN
+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/date/valueof/index.html b/files/de/web/javascript/reference/global_objects/date/valueof/index.html new file mode 100644 index 0000000000..18f540fa4d --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/date/valueof/index.html @@ -0,0 +1,85 @@ +--- +title: Date.prototype.valueOf() +slug: Web/JavaScript/Reference/Global_Objects/Date/valueOf +tags: + - Date + - JavaScript + - Method + - Prototype + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Date/valueOf +--- +
{{JSRef}}
+ +

Die valueOf() Methode gibt den primitiven Wert eines {{jsxref("Date")}} Objektes zurück.

+ +
{{EmbedInteractiveExample("pages/js/date-valueof.html")}}
+ +

Syntax

+ +
dateObj.valueOf()
+ +

Rückgabewert

+ +

Die Anzahl der Millisekunden zwischen dem 1. Januar 1970 00:00:00 UTC und dem gegebenen date Objekt.

+ +

Beschreibung

+ +

Die valueOf() Methode gibt den primitiven Wert eines {{jsxref("Date")}} Objektes als Nummern-Datentyp (number) zurück. Diese Nummer entspricht der Anzahl der Millisekunden seit dem 1. Januar 1970 UTC.

+ +

Diese Methode hat den gleiche Funktionsumfang wie die {{jsxref("Date.prototype.getTime()")}} Methode.

+ +

Diese Methode wird intern von JavaScript aufgerufen und muss nicht explizit im Quelltext verwendet werden.

+ +

Beispiele

+ +

Einsatz von valueOf()

+ +
var x = new Date(56, 6, 17);
+var myVar = x.valueOf();      // schreibt -424713600000 auf myVar
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES1')}}{{Spec2('ES1')}}Initiale Definition. Implementiert in JavaScript 1.1.
{{SpecName('ES5.1', '#sec-15.9.5.8', 'Date.prototype.valueOf')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-date.prototype.valueof', 'Date.prototype.valueOf')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-date.prototype.valueof', 'Date.prototype.valueOf')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Date.valueOf")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/decodeuricomponent/index.html b/files/de/web/javascript/reference/global_objects/decodeuricomponent/index.html new file mode 100644 index 0000000000..7eb2c2c905 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/decodeuricomponent/index.html @@ -0,0 +1,127 @@ +--- +title: decodeURIComponent() +slug: Web/JavaScript/Reference/Global_Objects/decodeURIComponent +translation_of: Web/JavaScript/Reference/Global_Objects/decodeURIComponent +--- +
{{jsSidebar("Objects")}}
+ +

Die Funktion decodeURIComponent() dekodiert eine URI-Komponente die zuvor durch {{jsxref("encodeURIComponent")}} (oder einer ähnlichen Funktion) kodiert wurden.

+ +

Syntax

+ +
decodeURIComponent(encodedURI)
+ +

Parameters

+ +
+
encodedURI
+
Die kodierte Komponente einer URI.
+
+ +

Rückgabewert

+ +

Ein neuer String der die decodierte Version der übergebenen URI-Komponente repräsentiert.

+ +

Beschreibung

+ +

Ersetzt jede Escape-Sequenz der übergebenen kodierten Komponente durch ihre entsprechenden Zeichen.

+ +

Beispiele

+ +

Dekodieren einer kyrillischen URL-Komponente

+ +
decodeURIComponent("JavaScript_%D1%88%D0%B5%D0%BB%D0%BB%D1%8B");
+// "JavaScript_шеллы"
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES3')}}{{Spec2('ES3')}}Anfangs-Definition
{{SpecName('ES5.1', '#sec-15.1.3.2', 'decodeURIComponent')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-decodeuricomponent-encodeduricomponent', 'decodeURIComponent')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-decodeuricomponent-encodeduricomponent', 'decodeURIComponent')}}{{Spec2('ESDraft')}} 
+ +

Browser-Kompatibilität

+ +

{{CompatibilityTable}}

+ +
+ + + + + + + + + + + + + + + + + + + +
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + +
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
+
+ +

Siehe

+ + diff --git a/files/de/web/javascript/reference/global_objects/encodeuri/index.html b/files/de/web/javascript/reference/global_objects/encodeuri/index.html new file mode 100644 index 0000000000..2b8521f9e7 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/encodeuri/index.html @@ -0,0 +1,163 @@ +--- +title: encodeURI() +slug: Web/JavaScript/Reference/Global_Objects/encodeURI +translation_of: Web/JavaScript/Reference/Global_Objects/encodeURI +--- +
{{jsSidebar("Objects")}}
+ +

Die encodeURI() Funktion kodiert ein Uniform Resource Identifier (Abk. URI, englisch für einheitlicher Bezeichner für Ressurcen), indem sie jedes Vorkommen von speziellen Zeichen durch die jeweilige UTF-8 Zeichenkette ersetzt, die das Zeichen repräsentiert.

+ +

Syntax

+ +
encodeURI(URI)
+ +

Parameter

+ +
+
URI
+
Ein vollständiger Uniform Resource Identifier.
+
+ +

Return value

+ +

Ein neuer String, kodiert als Uniform Resource Identifier (URI).

+ +

Beschreibung

+ +

Die Funktion geht davon aus, dass die URI eine richtige URI ist, sodass sie keine Zeichen kodiert die spezielle Bedeutungen haben.

+ +

encodeURI ersetzt alle Zeichen außer die folgenden mit ihrer zugehörigen UTF-8 Escape-Sequenz:

+ + + + + + + + + + + + + + + + + + + + +
TypBeinhaltet
Zurückgehaltene Zeichen; , / ? : @ & = + $
Unescapte alphanumerische Zeichen, - _ . ! ~ * ' ( )
Zeichen für Nummern#
+ +

Beachten Sie, dass die encodeURI Funktion keine richtigen HTTP GET und POST Requests erzeugen kann, wie für XMLHTTPRequests benötigt, da "&", "+", und "=" nicht kodiert werden. Diese werden in GET und POST als spezielle Zeichen behandelt. Für solche Verwendungen steht die {{jsxref("encodeURIComponent")}} Funktion zur Verfügung.

+ +

Beachten Sie auch, dass ein {{jsxref("URIError")}} erzeugt wird,  sobald versucht wird, ein surrogate, welches nicht zu einem high-low Paar gehört, zu kodieren.

+ +
// high-low paar ok
+console.log(encodeURI('\uD800\uDFFF'));
+
+// einzelnes high surrogate erzeugt ein "URIError: malformed URI sequence"
+console.log(encodeURI('\uD800'));
+
+// einzelnes low surrogate erzeugt ein "URIError: malformed URI sequence"
+console.log(encodeURI('\uDFFF')); 
+ +

Wenn Sie den neueren RFC3986 Standart für URLs benutzen möchten, der eckige Klammern beachtet (für IPv6) und Teile die zur URL gehören könnten (wie der Host) nicht kodiert, könnte der kleine Code-Auszug helfen:

+ +
function fixedEncodeURI(str) {
+    return encodeURI(str).replace(/%5B/g, '[').replace(/%5D/g, ']');
+}
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES3')}}{{Spec2('ES3')}}Initial definition.
{{SpecName('ES5.1', '#sec-15.1.3.3', 'encodeURI')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-encodeuri-uri', 'encodeURI')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-encodeuri-uri', 'encodeURI')}}{{Spec2('ESDraft')}} 
+ +

Browser kompatibilität

+ +

{{CompatibilityTable}}

+ +
+ + + + + + + + + + + + + + + + + + + +
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Normale Unterstützung{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + +
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
+

Normale Unterstützung

+
{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
+
+ +

See also

+ + diff --git a/files/de/web/javascript/reference/global_objects/encodeuricomponent/index.html b/files/de/web/javascript/reference/global_objects/encodeuricomponent/index.html new file mode 100644 index 0000000000..a632775085 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/encodeuricomponent/index.html @@ -0,0 +1,163 @@ +--- +title: encodeURIComponent() +slug: Web/JavaScript/Reference/Global_Objects/encodeURIComponent +tags: + - JavaScript + - URI +translation_of: Web/JavaScript/Reference/Global_Objects/encodeURIComponent +--- +
{{jsSidebar("Objects")}}
+ +

Die Methode encodeURIComponent() kodiert eine Komponente des Uniform Resource Identifier (URI) indem jedes Vorkommen bestimmter Zeichen durch ein, zwei, drei oder vier Escape-Sequenzen ersetzt werden, die der UTF8-Kodierung des Zeichens entsprechen. Vier Escape-Sequenzen werden nur bei Zeichen bestehend aus zwei "Surrogate"-Zeichen verwendet.

+ +

Syntax

+ +
encodeURIComponent(str);
+ +

Parameter

+ +
+
str
+
String. Eine URI-Komponente.
+
+ +

Beschreibung

+ +

encodeURIComponent kodiert alle Zeichen außer den Folgenden: alphabetische, dezimale Ziffern, - _ . ! ~ * ' ( )

+ +

Beachte, dass {{jsxref("URIError")}} beim Versuch geworfen wird, ein Surrogate-Zeichen zu kodieren, das nicht Teil eines High-Low-Paares ist, z.B.:

+ +
// Zulässiges High-Low-Paar
+console.log(encodeURIComponent('\uD800\uDFFF'));
+
+// alleinstehendes High-Surrogate-Zeichen wirft "URIError: malformed URI sequence"
+console.log(encodeURIComponent('\uD800'));
+
+// alleinstehendes Low-Surrogate-Zeichen wirft "URIError: malformed URI sequence"
+console.log(encodeURIComponent('\uDFFF'));
+
+ +

Um unerwartete Anfragen an den Server zu vermeiden, sollte encodeURIComponent für jeden benutzerdefinierten Parameter, der als Teil der URI übergeben wird, verwendet werden. Z.B. könnte ein Benutzer in einem variablen Kommentar "Thyme &time=again" schreiben. Ohne Verwendung von encodeURIComponent erhältst Du comment=Thyme%20&time=again. Beachte, dass das Kaufmännische Und (Ampersand) und das Gleich-Zeichen ein neues Schlüssel-Wert-Paar bedeuten. Das bedeutet, dass statt dem POST-Schlüssel "Thyme &time=again" zwei POST-Schlüssel verwendet werden, der eine mit dem Wert "Thyme ", der andere (time) mit again.

+ +

Bei application/x-www-form-urlencoded werden Leerzeichen mit '+' ersetzt, so dass es u.U. erwünscht ist, nach der Ersetzung durch encodeURIComponent eine weitere Ersetzung von "%20" mit "+" durchzuführen.

+ +

Um streng konform mit RFC 3986 zu sein (welches !, ', (, ) und * reserviert), obwohl diese Zeichen keine formalisierten Trennzeichen sind, kann das Folgende sicher verwendet werden:

+ +
function fixedEncodeURIComponent (str) {
+  return encodeURIComponent(str).replace(/[!'()*]/g, function(c) {
+    return '%' + c.charCodeAt(0).toString(16);
+  });
+}
+
+ +

Beispiele

+ +

Das folgende Beispiel stellt die spezielle Kodierung sicher, die in UTF-8-kodierten Parameterwerten der Server-Antwort-Headern Content-Disposition und Link benötigt wird (z.B. UTF-8-kodierte Dateinamen):

+ +
var fileName = 'my file(2).txt';
+var header = "Content-Disposition: attachment; filename*=UTF-8''"
+             + encodeRFC5987ValueChars(fileName);
+
+console.log(header);
+// logs "Content-Disposition: attachment; filename*=UTF-8''my%20file%282%29.txt"
+
+
+function encodeRFC5987ValueChars (str) {
+    return encodeURIComponent(str).
+        // Beachte, dass obwohl RFC3986 "!" reserviert, es nicht kodiert
+        // werden muss, weil RFC5987 es nicht reserviert.
+        replace(/['()]/g, escape). // i.e., %27 %28 %29
+        replace(/\*/g, '%2A').
+            // Die folgenden Zeichen müssen nicht nach RFC5987 kodiert werden,
+            // daher können wir bessere Lesbarkeit übers Netzwerk sicherstellen:
+            // |`^
+            replace(/%(?:7C|60|5E)/g, unescape);
+}
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES3')}}{{Spec2('ES3')}}Ursprüngliche Definition
{{SpecName('ES5.1', '#sec-15.1.3.4', 'encodeURIComponent')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-encodeuricomponent-uricomponent', 'encodeURIComponent')}}{{Spec2('ES6')}} 
+ +

Browser Kompatibilität

+ +

{{CompatibilityTable}}

+ +
+ + + + + + + + + + + + + + + + + + + +
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Grundlegende Unterstützung{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + +
FeatureAndroidChrome für AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Grundlegende Unterstützung{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
+
+ +

Weitere Infos

+ + diff --git a/files/de/web/javascript/reference/global_objects/error/columnnumber/index.html b/files/de/web/javascript/reference/global_objects/error/columnnumber/index.html new file mode 100644 index 0000000000..8335fd02d6 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/error/columnnumber/index.html @@ -0,0 +1,43 @@ +--- +title: Error.prototype.columnNumber +slug: Web/JavaScript/Reference/Global_Objects/Error/columnNumber +tags: + - Error + - JavaScript + - Non-standard + - Property + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Error/columnNumber +--- +
{{JSRef}} {{non-standard_header}}
+ +

Die columnNumber Eigenschaft enthält die Spaltennummer in der Zeile in der Datei, in der der Fehler erzeugt wurde.

+ +

Beispiele

+ +

Einsatz von columnNumber

+ +
var e = new Error('Could not parse input');
+throw e;
+console.log(e.columnNumber) // 0
+
+ +

Spezifikationen

+ +

In keiner Spezifikation enthalten. Kein Standard.

+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.Error.columnNumber")}}

+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/error/filename/index.html b/files/de/web/javascript/reference/global_objects/error/filename/index.html new file mode 100644 index 0000000000..df7383803e --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/error/filename/index.html @@ -0,0 +1,47 @@ +--- +title: Error.prototype.fileName +slug: Web/JavaScript/Reference/Global_Objects/Error/fileName +tags: + - Error + - JavaScript + - Non-standard + - Property + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Error/fileName +--- +
{{JSRef}} {{non-standard_header}}
+ +

Die fileName Eigenschaft enthält den Pfad der Datei, in der der Fehler erzeugt wurde.

+ +

Beschreibung

+ +

Diese nicht standardisierte Eigenschaft enthält den Pfad der Datei, in der der Fehler erzeugt wurde. Wenn diese Eigenschaft von aus einem Debugger heraus aufgerufen wird (z. B. Firefox Developer Tools), wird "debugger eval code" zurückgegeben.

+ +

Beispiele

+ +

Einsatz von fileName

+ +
var e = new Error('Could not parse input');
+throw e;
+// e.fileName könnte aussehen wie: "file:///C:/example.html"
+
+ +

Spezifikationen

+ +

In keiner Spezifikation enthalten. Kein Standard.

+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.Error.fileName")}}

+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/error/index.html b/files/de/web/javascript/reference/global_objects/error/index.html new file mode 100644 index 0000000000..293f0927fc --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/error/index.html @@ -0,0 +1,241 @@ +--- +title: Error +slug: Web/JavaScript/Reference/Global_Objects/Error +tags: + - Error + - JavaScript + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Error +--- +
{{JSRef}}
+ +

Der Error Konstruktor erstellt ein Fehler (Error) Objekt. Instanzen von Error Objekten werden geworfen (thrown), wenn zur Laufzeit ein Fehler auftritt. Das Error Objekt kann zudem als Basis für benutzerdefinierte Fehler benutzt werden. Weiter unten werden schon eingebaute Fehlertypen beschrieben.

+ +

Syntax

+ +
new Error([message[, fileName[, lineNumber]]])
+ +

Parameter

+ +
+
message
+
Optional. Für Menschen lesbare Beschreibung des Errors.
+
fileName {{non-standard_inline}}
+
Optional. Der Wert für die fileName Eigenschaft eines erstellten Error Objekts. Der Standardwert ist der Name der Datei, in dem der Quelltext Error() aufgerufen wird.
+
lineNumber {{non-standard_inline}}
+
Optional. Der Wert für die lineNumber Eigenschaft eines erstellten Error Objekts. Der Standardwert ist die Zeilennummer, in dem der Quelltext Error() aufgerufen wird.
+
+ +

Beschreibung

+ +

Laufzeitfehler resultieren in einem neu erstellten und geworfenen Error Objekt.

+ +

Diese Seite Dokumentiert den Einsatz des Error Objektes und den Einsatz als Konstruktorfunktion. Für eine Liste der Eigenschaften und Methoden, die eine Error Instanz erbt, siehe auf der Seite {{jsxref("Error.prototype")}}.

+ +

Einsatz als Funktion

+ +

Wenn Error als Funktion genutzt wird -- ohne new, wird diese ein Error Objekt zurückgeben. Daher wird der Aufruf der Funktion das gleiche zurückgeben wie der Aufruf des Error Konstruktors (mit new Schlüsselwort).

+ +
// dieser Aufruf:
+const x = Error('Ich wurde mit einem Funktionsaufruf erstellt!');
+​​​​// hat die gleiche Funktion wie folgender:
+const y = new Error('Ich wurde mit dem "new" Schlüsselwort erstellt!');
+ +

Fehlertypen

+ +

Neben dem generischen Error Konstruktor sind in JavaScript noch sieben weitere Error-Konstruktoren eingebaut. Für benutzerdefinierte Fehler siehe Statements zur Fehler- und Ausnahmebehandlung.

+ +
+
{{jsxref("EvalError")}}
+
Erstellt eine Instanz, die einen Fehler repräsentiert, der bei der globalen {{jsxref("Global_Objects/eval", "eval()")}} Funktion auftritt.
+
{{jsxref("InternalError")}} {{non-standard_inline}}
+
Erstellt eine Instanz, die einen Fehler repräsentiert, der auftritt, wenn ein interner Fehler in JavaScript auftaucht (z. B. zu viel Rekursion).
+
{{jsxref("RangeError")}}
+
Erstellt eine Instanz, die einen Fehler repräsentiert, der auftritt, wenn eine nummerische Variable oder ein nummerischer Parameter außerhalb seiner validen Grenzen ist.
+
{{jsxref("ReferenceError")}}
+
Erstellt eine Instanz, die einen Fehler repräsentiert, der auftritt, wenn eine nicht valide Referenz referenziert werden soll.
+
{{jsxref("SyntaxError")}}
+
Erstellt eine Instanz, die einen Fehler repräsentiert, der auftritt, wenn die Syntax von  Quellcode, der in der {{jsxref("Global_Objects/eval", "eval()")}} Funktion übergeben wird, nicht richtig ist.
+
{{jsxref("TypeError")}}
+
Erstellt eine Instanz, die einen Fehler repräsentiert, der auftritt, wenn eine Variable oder ein Parameter einen nicht validen Typen enthält.
+
{{jsxref("URIError")}}
+
Erstellt ein Instanz, die einen Fehler repräsentiert, der auftritt, wenn die Methode {{jsxref("Global_Objects/encodeURI", "encodeURI()")}} oder {{jsxref("Global_Objects/decodeURI", "decodeURI()")}} nicht valide Parameter übergeben bekommt.
+
+ +

Eigenschaften

+ +
+
{{jsxref("Error.prototype")}}
+
Erlaubt es die Eigenschaften aller Error Instanzen zu verändern.
+
+ +

Methoden

+ +

Das globale Error Objekt besitzt keine eigenen Methoden. Stattdessen erbt es einige Methoden durch die Prototypenkette.

+ +

Error Instanzen

+ +
{{page('/de/docs/Web/JavaScript/Reference/Global_Objects/Error/prototype', 'Beschreibung')}}
+ +

Eigenschaften

+ +
{{page('/de/docs/Web/JavaScript/Reference/Global_Objects/Error/prototype', 'Eigenschaften')}}
+ +

Methoden

+ +
{{page('/de/docs/Web/JavaScript/Reference/Global_Objects/Error/prototype', 'Methoden')}}
+ +

Beispiele

+ +

Werfen eines generischen Errors

+ +

Typischerweise erstellt man ein Error Objekt mit der Intention es mit dem {{jsxref("Statements/throw", "throw")}} Schlüsselwort zu werfen. Man kann den Fehler auffangen, indem man ein {{jsxref("Statements/try...catch", "try...catch")}} Konstrukt benutzt.

+ +
try {
+  throw new Error('Whoops!');
+} catch (e) {
+  console.log(e.name + ': ' + e.message);
+}
+
+ +

Einen Spezifischen Error behandeln

+ +

Man kann sich aussuchen, welche spezifischen Fehlertypen behandelt werden sollen, indem man die {{jsxref("Object.prototype.constructor", "constructor")}} Eigenschaft des Errors abfragt. In modernen JavaScript-Umgebungen kann stattdessen das {{jsxref("Operators/instanceof", "instanceof")}} Schlüsselwort verwendet werden:

+ +
try {
+  foo.bar();
+} catch (e) {
+  if (e instanceof EvalError) {
+    console.log(e.name + ': ' + e.message);
+  } else if (e instanceof RangeError) {
+    console.log(e.name + ': ' + e.message);
+  }
+  // ... etc
+}
+
+ +

Benutzerdefinierte Fehlertypen

+ +

Manchmal möchte man aber einen eigenen Error erstellen, der von Error abgeleitet ist, durch den Aufruf throw new CustomError()  geworfen werden kann und durch instanceof CustomError abgefragt werden kann. Eigene Fehlertypen führen zu einer besseren und konsistenten Fehlerbehandlung. Für eine tiefer gehende Diskussion schaue bitte auf Stack Overflow nach.

+ +

ES6 benutzerdefinierte Error Klasse

+ +
+

Babel und andere Transpiler werden den folgenden Quelltext nicht ohne zusätzliche Konfigurationen verarbeiten können.

+
+ +
+

Einige Browser enthalten den CustomError Konstruktor im Stack Trace, wenn ES2015 Klassen eingesetzt werden

+
+ +
class CustomError extends Error {
+  constructor(foo = 'bar', ...params) {
+    // Übergibt die verbleibenden Parameter (einschließlich Vendor spezifischer Parameter) dem Error Konstruktor
+    super(...params);
+
+    // Behält den richtigen Stack-Trace für die Stelle bei, an der unser Fehler ausgelöst wurde (nur bei V8 verfügbar)
+    if (Error.captureStackTrace) {
+      Error.captureStackTrace(this, CustomError);
+    }
+
+    // Benutzerdefinierte Debugging Informationen
+    this.foo = foo;
+    this.date = new Date();
+  }
+}
+
+try {
+  throw new CustomError('buz', 'buzMessage');
+} catch(e){
+  console.log(e.foo);     // baz
+  console.log(e.message); // bazMessage
+  console.log(e.stack);   // stacktrace
+}
+ +

ES5 benutzerdefiniertes Error Objekt

+ +
+

Alle Browser enthalten den CustomError Konstruktor im Stack Trace, wenn eine Prototypische Deklaration verwendet wird.

+
+ +
function CustomError(foo, message, fileName, lineNumber) {
+  var instance = new Error(message, fileName, lineNumber);
+  instance.foo = foo;
+  Object.setPropertyOf(instance, Object.getPrototypeOf(this));
+  if(Error.captureStackTrace) {
+    Error.captureStackTrace(instance, CustomError);
+  }
+  return instance;
+}
+
+CustomError.prototype = Object.create(Error.prototype, {
+  constructor: {
+    value: Error,
+    enumerable: false,
+    writable: true,
+    configurable: true
+  }
+});
+
+if(typeof Object.setPropertyOf != 'undefined') {
+  Object.setPrototypeOf(CustomError, Error);
+} else {
+  CustomError.__proto__ = Error;
+}
+
+
+try {
+  throw new CustomError('baz', 'bazMessage');
+} catch (e) {
+  console.log(e.foo);      // 'baz'
+  console.log(e.message);  // 'bazMessage'
+}
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES1')}}{{Spec2('ES1')}}Initiale Definition. Implementiert in JavaScript 1.1.
{{SpecName('ES5.1', '#sec-15.11', 'Error')}}{{Spec2('ES5.1')}} 
{{SpecName('ES2015', '#sec-error-objects', 'Error')}}{{Spec2('ES2015')}} 
{{SpecName('ESDraft', '#sec-error-objects', 'Error')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.Error")}}

+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/error/linenumber/index.html b/files/de/web/javascript/reference/global_objects/error/linenumber/index.html new file mode 100644 index 0000000000..63bb6a59c2 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/error/linenumber/index.html @@ -0,0 +1,55 @@ +--- +title: Error.prototype.lineNumber +slug: Web/JavaScript/Reference/Global_Objects/Error/lineNumber +tags: + - Error + - JavaScript + - Non-standard + - Property + - Prototype + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Error/lineNumber +--- +
{{JSRef}} {{non-standard_header}}
+ +

Die lineNumber Eigenschaft enthält die Zeilennummer in der Datei, in der der Fehler erzeugt wurde.

+ +

Beispiele

+ +

Einsatz von lineNumber

+ +
var e = new Error('Could not parse input');
+throw e;
+console.log(e.lineNumber) // 2
+
+ +

Alternatives Beispiel mit error Events

+ +
window.addEventListener('error', function(e) {
+  console.log(e.lineNumber); // 5
+});
+var e = new Error('Could not parse input');
+throw e;
+
+ +

Das ist keine Standardfunktion und es gibt auch keine breite Unterstützung (siehe Browserkompatibilitätstabelle unten).

+ +

Spezifikationen

+ +

Ist in keiner Spezifikation enthalten. Kein Standard.

+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.Error.lineNumber")}}

+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/error/message/index.html b/files/de/web/javascript/reference/global_objects/error/message/index.html new file mode 100644 index 0000000000..559f457cb2 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/error/message/index.html @@ -0,0 +1,75 @@ +--- +title: Error.prototype.message +slug: Web/JavaScript/Reference/Global_Objects/Error/message +tags: + - Error + - JavaScript + - Property + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Error/message +--- +
{{JSRef}}
+ +

Die message Eigenschaft ist eine für Menschen lesbare Beschreibung von Errors.

+ +

Beschreibung

+ +

Diese Eigenschaft enthält eine knappe Beschreibung des Errors, wenn eine verfügbar ist oder gesetzt wird. Zum Beispiel setzt SpiderMonkey diese Eigenschaft sehr oft ein. Die message Eigenschaft kombiniert mit der {{jsxref("Error.prototype.name", "name")}} Eigenschaft werden in der {{jsxref("Error.prototype.toString()")}} Methode eingesetzt, um eine String-Repräsentation des Errors zu erstellen.

+ +

Der Standardwert für die message Eigenschaft ist ein leerer String, jedoch kann diese von einer Instanz überschrieben werden, indem der erste Parameter des  {{jsxref("Error", "Error Konstruktors")}} gesetzt wird.

+ +

Beispiele

+ +

Einen benutzerdefinierten Fehler erzeugen

+ +
var e = new Error('Falsches Eingabeformat');
+// e.message ist 'Falsches Eingabeformat'
+throw e;
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES1')}}{{Spec2('ES1')}}Initiale Definition.
{{SpecName('ES5.1', '#sec-15.11.4.3', 'Error.prototype.message')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-error.prototype.message', 'Error.prototype.message')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-error.prototype.message', 'Error.prototype.message')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.Error.message")}}

+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/error/name/index.html b/files/de/web/javascript/reference/global_objects/error/name/index.html new file mode 100644 index 0000000000..abf77777fc --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/error/name/index.html @@ -0,0 +1,58 @@ +--- +title: Error.prototype.name +slug: Web/JavaScript/Reference/Global_Objects/Error/name +tags: + - Error + - JavaScript + - Property + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Error/name +--- +
{{JSRef}}
+ +

Die name Eigenschaft repräsentiert einen Namen für die Art des Errors. Der Initialwert ist "Error".

+ +

Beschreibung

+ +

Als Standard wird für einer {{jsxref("Error")}} Instanz der Name "Error" gegeben. Die name Eigenschaft und die {{jsxref("Error.prototype.message", "message")}} Eigenschaft werden eingesetzt, um in der {{jsxref("Error.prototype.toString()")}} Methode eine Repräsentation des Fehlers als String zu erstellen.

+ +

Beispiele

+ +

Einen benutzerdefinierten Fehler erzeugen

+ +
var e = new Error('Malformed input'); // e.name ist 'Error'
+
+e.name = 'ParseError';
+throw e;
+// e.toString() wird 'ParseError: Malformed input' zurückgeben.
+
+ +

Spezifikationen

+ + + + + + + + + + +
Spezifikation
{{SpecName('ESDraft', '#sec-error.prototype.name', 'Error.prototype.name')}}
+ +

Browserkompatibilität

+ +
+
+ + +

{{Compat("javascript.builtins.Error.name")}}

+
+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/error/prototype/index.html b/files/de/web/javascript/reference/global_objects/error/prototype/index.html new file mode 100644 index 0000000000..f383b474ea --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/error/prototype/index.html @@ -0,0 +1,113 @@ +--- +title: Error.prototype +slug: Web/JavaScript/Reference/Global_Objects/Error/prototype +tags: + - Error + - JavaScript + - Property +translation_of: Web/JavaScript/Reference/Global_Objects/Error +--- +
{{JSRef}}
+ +

Die Error.prototype Eigenschaft repräsentiert den Prototypen für den {{jsxref("Error")}} Konstruktor.

+ +
{{js_property_attributes(0, 0, 0)}}
+ +

Beschreibung

+ +

Alle {{jsxref("Error")}} Instanzen und Instanzen von {{jsxref("Global_Objects/Error", "nicht generischen Errors", "#Error_types", 1)}} erben von Error.prototype. Wie bei jeder Konstruktorfunktion, kann man den Prototypen des Konstruktors einsetzen, um Eigenschaften oder Methoden bei allen erstellten Instanzen hinzuzufügen.

+ +

Eigenschaften

+ +

Standard-Eigenschaften

+ +
+
Error.prototype.constructor
+
Spezifiziert die Funktion, die einen Prototypen einer Instanz erstellt.
+
{{jsxref("Error.prototype.message")}}
+
Errornachricht.
+
{{jsxref("Error.prototype.name")}}
+
Errorname.
+
+ +

Vendor-spezifische Erweiterungen

+ +
{{non-standard_header}}
+ +

Microsoft

+ +
+
{{jsxref("Error.prototype.description")}} {{non-standard_inline}}
+
Errorbeschreibung. Ist das gleiche wie {{jsxref("Error.prototype.message")}}
+
{{jsxref("Error.prototype.number")}} {{non-standard_inline}}
+
Errornummer.
+
+ +

Mozilla

+ +
+
{{jsxref("Error.prototype.fileName")}} {{non-standard_inline}}
+
Pfad zu der Datei, die der der Error ausgelöst wurde.
+
{{jsxref("Error.prototype.lineNumber")}} {{non-standard_inline}}
+
Zeilennummer in der Datei, in der der Error ausgelöst wurde.
+
{{jsxref("Error.prototype.columnNumber")}} {{non-standard_inline}}
+
Spaltennummer in der Zeile, in der der Error ausgelöst wurde.
+
{{jsxref("Error.prototype.stack")}} {{non-standard_inline}}
+
Stacktrace.
+
+ +

Methoden

+ +
+
{{jsxref("Error.prototype.toSource()")}} {{non-standard_inline}}
+
Gibt einen String zurück, der den Quelltext eines spezifischen {{jsxref("Error")}} Objektes beinhaltet. Man kann diesen einsetzen, um ein neues Objekt zu erstellen. Überschreibt die {{jsxref("Object.prototype.toSource()")}} Methode.
+
{{jsxref("Error.prototype.toString()")}}
+
Gibt einen String zurück, der das Objekt repräsentiert. Überschreibt die {{jsxref("Object.prototype.toString()")}} Methode.
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES1')}}{{Spec2('ES1')}}Initiale Definition. Implementiert in JavaScript 1.1.
{{SpecName('ES5.1', '#sec-15.11.3.1', 'Error')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-error.prototype', 'Error')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-error.prototype', 'Error')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.Error.prototype")}}

+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/error/stack/index.html b/files/de/web/javascript/reference/global_objects/error/stack/index.html new file mode 100644 index 0000000000..ed930983bc --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/error/stack/index.html @@ -0,0 +1,124 @@ +--- +title: Error.prototype.stack +slug: Web/JavaScript/Reference/Global_Objects/Error/Stack +tags: + - Error + - JavaScript + - Non-standard + - Property + - Prototype + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Error/Stack +--- +
{{JSRef}} {{non-standard_header}}
+ +

Die nicht standardisierte stack Eigenschaft des {{jsxref("Error")}} Objektes zeigt den Verlauf der aufgerufenen Funktionen. Dabei wird die Reihenfolge der Aufrufe, der Zeile und die Datei der Aufrufes und die übergebenen Argumenten angegeben. Der stack String verläuft von den jüngsten Aufrufen zu den vorherigen Aufrufen, bis zum globalen Scope zurück.

+ +

Beschreibung

+ +

Jeder Schritt wird durch einen neue Zeile getrennt. Der erste Teil einer Zeile besteht aus dem Funktionsnamen (wenn es kein Aufruf vom globalen Scope ist), gefolgt von einem @-Zeichen, dem Dateiort (ausgenommen, wenn die Funktion der Error-Konstruktor des geworfenen Errors ist), einem Doppelpunkt und einer Zeilennummer, wenn ein Dateiort existiert. Zu beachten ist, dass das {{jsxref("Error")}} Objekt auch die Eigenschaften fileName, lineNumber und columnNumber besitzt, um dieses von geworfenen Error wiederherzustellen (aber nur dem Fehler und nicht seinem trace).

+ +

Zu beachten ist, dass dieses das Format von Firefox ist. Es gibt keine Standardformat, auch wenn Safari 6+ und Opera 12- ein ähnliches Format verwenden. Browser die die V8 JavaScript Umgebung benutzen (z. B. Chrome, Opera 15+, Android Browser) und IE10+ nutzen ein anderes Format (zusehen in den MSDN error.stack docs).

+ +

Parameter Werte im Stack: Bis Firefox 14 ({{bug("744842")}}) folgten auf den Funktionsnamen die zu Strings konvertierten Werte der Parameter in runden Klammern vor dem @-Zeichen. Während ein Objekt (oder Array, etc.) zu "[object Object]" konvertiert werden und diese Werte nicht zurück zu einem existierenden Objekt ausgewertet werden können, können skalare Werte zurückverfolgt werden (manchmal kann es einfacher sein — nur in Firefox 14 möglich — arguments.callee.caller.arguments zu benutzen, der Funktionsname kann mit arguments.callee.caller.name erfragt werden). "undefined" wird mit "(void 0)" dargestellt. Zu beachten ist, dass String Argumente (oder auch Dateinamen), die Zeichen wie "@", "(", ")" beinhalten dazu führen, dass es nicht einfach ist, die Zeile in seine Komponenten aufzuteilen. In Firefox 14+ ist dieses kein Problem mehr.

+ +

Verschiedene Browser setzen den this Wert zu verschiedenen Zeitpunkten. Zum Beispiel setzt Firefox diesen beim erstellen eines {{jsxref("Error")}} Objektes, während PhantomJS dieses nur setzt, wenn das {{jsxref("Error")}} Objekt geworfen wird und MSDN docs scheinen diesem verhalten auch zu folgen.

+ +

Beispiele

+ +

Der folgende HTML-Quelltext demonstriert den Einsatz der stack Eigenschaft.

+ +
<!DOCTYPE HTML>
+<meta charset="UTF-8">
+<title>Stack Trace Example</title>
+<body>
+<script>
+function trace() {
+  try {
+    throw new Error('myError');
+  }
+  catch(e) {
+    alert(e.stack);
+  }
+}
+function b() {
+  trace();
+}
+function a() {
+  b(3, 4, '\n\n', undefined, {});
+}
+a('first call, firstarg');
+</script>
+
+ +

Angenommen der oben stehende Quelltext ist auf einen Windows Datei System unter C:\example.html gespeichert, wird der folgende Text ausgegeben:

+ +

Mit Firefox 30+ wird die Spaltennummer mit angegeben ({{bug("762556")}}):

+ +
trace@file:///C:/example.html:9:17
+b@file:///C:/example.html:16:13
+a@file:///C:/example.html:19:13
+@file:///C:/example.html:21:9
+ +

Von Firefox 14 bis Firefox 29:

+ +
trace@file:///C:/example.html:9
+b@file:///C:/example.html:16
+a@file:///C:/example.html:19
+@file:///C:/example.html:21
+ +

Bis Firefox 13 wird folgender Text ausgegeben:

+ +
Error("myError")@:0
+trace()@file:///C:/example.html:9
+b(3,4,"\n\n",(void 0),[object Object])@file:///C:/example.html:16
+a("first call, firstarg")@file:///C:/example.html:19
+@file:///C:/example.html:21
+ +

Stacks von eval Quelltext

+ +

Angefangen mit Firefox 30 {{geckoRelease("30")}} enthällt der Stack von Errors auch Informationen von Function() und eval() Aufrufen mit detailierten Spalten- und Zeilennummern innerhalb dieser Aufrufe. Funktionsaufrufe werden mit "> Function" angezeigt, Aufrufe mit eval werden mit "> eval" angezeigt. Siehe {{bug("332176")}}.

+ +
try {
+  new Function('throw new Error()')();
+} catch (e) {
+  console.log(e.stack);
+}
+
+// anonymous@file:///C:/example.html line 7 > Function:1:1
+// @file:///C:/example.html:7:6
+
+
+try {
+  eval("eval('FAIL')");
+} catch (x) {
+  console.log(x.stack);
+}
+
+// @file:///C:/example.html line 7 > eval line 1 > eval:1:1
+// @file:///C:/example.html line 7 > eval:1:1
+// @file:///C:/example.html:7:6
+
+ +

Man kann auch die //# sourceURL Direktive benutzen, um den eval-Code zu benennen. Siehe auch Debug eval sources in den Debugger docs und diesen Blogeintrag.

+ +

Spezifikationen

+ +

Ist kein Teil einer Spezifikation, nicht standardisiert.

+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.Error.stack")}}

+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/error/tosource/index.html b/files/de/web/javascript/reference/global_objects/error/tosource/index.html new file mode 100644 index 0000000000..59025435f5 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/error/tosource/index.html @@ -0,0 +1,57 @@ +--- +title: Error.prototype.toSource() +slug: Web/JavaScript/Reference/Global_Objects/Error/toSource +tags: + - Error + - JavaScript + - Method + - Non-standard + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Error/toSource +--- +
{{JSRef}} {{non-standard_header}}
+ +

Die toSource() Methode gibt den Quelltext zurück, der zu dem selben Error ausgewertet werden kann.

+ +

Syntax

+ +
e.toSource()
+ +

Rückgabewert

+ +

Ein String, der den Quelltext des Fehlers enthält.

+ +

Beschreibung

+ +

Das Aufrufen der toSource Methode auf einer {{jsxref("Error")}} Instanz (auch bei NativeErrors) gibt einen String zurück, der den Quelltext der Instanz enthält. Dieser String kann ausgeführt werden, um (annähernd) gleiches Objekt zu erzeugen. Normalerweise enthält der String den Quelltext des {{jsxref("Error")}} Konstruktors. Zum Beispiel:

+ +
(newname(message ,fileName,lineNumber))
+
+ +

wo die Attribute den Eigenschaften der Error-Instanz entsprechen.

+ +
+

Bemerkung: Seien Sie sich bewusst, dass die Eigenschaften, die durch die toSource Methode bei der Erstellung des Strings verwendet, veränderbar sind und nicht genau die Funktion widerspiegeln, die eine Fehler Instanz erstellt habt. Das betrifft den Dateinamen und die Zeilennummer.

+
+ +

Spezifikationen

+ +

In keine Spezifikation enthalten. Implementiert in JavaScript 1.3.

+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.Error.toSource")}}

+
+ +

See auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/error/tostring/index.html b/files/de/web/javascript/reference/global_objects/error/tostring/index.html new file mode 100644 index 0000000000..15565bd296 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/error/tostring/index.html @@ -0,0 +1,116 @@ +--- +title: Error.prototype.toString() +slug: Web/JavaScript/Reference/Global_Objects/Error/toString +tags: + - Error + - JavaScript + - Method + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Error/toString +--- +
{{JSRef}}
+ +
Die toString() Methode gibt einen String zurück, der das {{jsxref("Error")}} Objekt repräsentiert.
+ +
 
+ +

Syntax

+ +
e.toString()
+ +

Rückgabewert

+ +

Einen String, der das gegebenen {{jsxref("Error")}} Objekt repräsentiert.

+ +

Beschreibung

+ +

Das {{jsxref("Error")}} Objekt überschreibt die {{jsxref("Object.prototype.toString()")}} Methode, die an allen Objekte vererbt werden. Die Semanik ist die folgende (angenommen {{jsxref("Object")}} und {{jsxref("String")}} wurden nicht verändert):

+ +
Error.prototype.toString = function() {
+  'use strict';
+
+  var obj = Object(this);
+  if (obj !== this) {
+    throw new TypeError();
+  }
+
+  var name = this.name;
+  name = (name === undefined) ? 'Error' : String(name);
+
+  var msg = this.message;
+  msg = (msg === undefined) ? '' : String(msg);
+
+  if (name === '') {
+    return msg;
+  }
+  if (msg === '') {
+    return name;
+  }
+
+  return name + ': ' + msg;
+};
+
+ +

Beispiele

+ +
var e = new Error('fatal error');
+console.log(e.toString()); // 'Error: fatal error'
+
+e.name = undefined;
+console.log(e.toString()); // 'Error: fatal error'
+
+e.name = '';
+console.log(e.toString()); // 'fatal error'
+
+e.message = undefined;
+console.log(e.toString()); // 'Error'
+
+e.name = 'hello';
+console.log(e.toString()); // 'hello'
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES1')}}{{Spec2('ES1')}}Initiale Definition. Implementiert in JavaScript 1.1.
{{SpecName('ES5.1', '#sec-15.11.4.4', 'Error.prototype.toString')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-error.prototype.tostring', 'Error.prototype.toString')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-error.prototype.tostring', 'Error.prototype.toString')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.Error.toString")}}

+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/escape/index.html b/files/de/web/javascript/reference/global_objects/escape/index.html new file mode 100644 index 0000000000..84ad406566 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/escape/index.html @@ -0,0 +1,132 @@ +--- +title: escape() +slug: Web/JavaScript/Reference/Global_Objects/escape +tags: + - JavaScript + - Veraltet +translation_of: Web/JavaScript/Reference/Global_Objects/escape +--- +
{{jsSidebar("Objects")}}
+ +

Die veraltete Funktion escape() erzeugt einen neuen Text, in welchem gewisse Zeichen durch eine Hexadezimal-Escape-Sequenz ersetzt wurden. Es wird empfohlen, {{jsxref("encodeURI")}} oder {{jsxref("encodeURIComponent")}} stattdessen zu nutzen.

+ +

Syntax

+ +
escape(str)
+ +

Parameter

+ +
+
str
+
Ein Text welcher verarbeitet wird.
+
+ +

Rückgabewert

+ +

Ein neuer Text, in welchem gewisse Zeichen escaped wurden.

+ +

Beschreibung

+ +

Die escape-Funktion ist Teil des globalen Objektes. Hierbei werden spezielle Zeichen codiert. Außnahme bilden hier: @*_+-./

+ +

Die hexadezimale Form für Zeichen, deren Code-Einheitswert 0xFF oder weniger ist, enspricht einer zwei Ziffern großen Escape-Sequenz: %xx. Für Zeichen mit einem größeren Code-Einheitswert wird ein vier-Ziffern-Format genutzt: %uxxxx

+ +

Beispiele

+ +
escape("abc123");     // "abc123"
+escape("äöü");        // "%E4%F6%FC"
+escape("ć");          // "%u0107"
+
+// Spezielle Zeichen
+escape("@*_+-./");    // "@*_+-./"
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES1')}}{{Spec2('ES1')}}Initiale Definition.
{{SpecName('ES5.1', '#sec-B.2.1', 'escape')}}{{Spec2('ES5.1')}}Informativ definiert in Compatibility Annex B
{{SpecName('ES6', '#sec-escape-string', 'escape')}}{{Spec2('ES6')}}Normativ definitiert in Annex B für Erweiterte ECMAScript-Features in Webbrowsern
{{SpecName('ESDraft', '#sec-escape-string', 'escape')}}{{Spec2('ESDraft')}}Normativ definitiert in Annex B für Erweiterte ECMAScript-Features in Webbrowsern
+ +

Browserkompatibilität

+ +

{{CompatibilityTable}}

+ +
+ + + + + + + + + + + + + + + + + + + +
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + +
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
+
+ +

Siehe Auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/evalerror/index.html b/files/de/web/javascript/reference/global_objects/evalerror/index.html new file mode 100644 index 0000000000..3043bdf908 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/evalerror/index.html @@ -0,0 +1,118 @@ +--- +title: EvalError +slug: Web/JavaScript/Reference/Global_Objects/EvalError +tags: + - Error + - EvalError + - JavaScript + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/EvalError +--- +
{{JSRef}}
+ +

Das EvalError Objekt bedeutet einen Fehler in Verbindung mit der globalen {{jsxref("Global_Objects/eval", "eval()")}} Funktion. Dieser Fehler wird nicht von JavaScript erzeugt, jedoch gibt es das EvalError Objekt noch aus Kompatibilitätsgründen.

+ +

Syntax

+ +
new EvalError([message[, fileName[, lineNumber]]])
+ +

Parameters

+ +
+
message
+
Optional. Für Menschen lesbare Beschreibung des Fehlers.
+
fileName {{non-standard_inline}}
+
Optional. Der Name der Datei, die den Code enthält, welcher zu dem Fehler führt.
+
lineNumber {{non-standard_inline}}
+
Optional. Die Zeilennummer, die den Code enthält, welcher zu dem Fehler führt.
+
+ +

Eigenschaften

+ +
+
{{jsxref("EvalError.prototype")}}
+
Erlaubt das Hinzufügen von Eigenschaften zu einem EvalError Objekt.
+
+ +

Methoden

+ +

Das globale EvalError Objekt enthält keine eigen Methoden, jedoch erbt es einige Methoden über die Prototypenkette.

+ +

EvalError Instanzen

+ +

Eigenschaften

+ +
{{page('/de/docs/Web/JavaScript/Reference/Global_Objects/EvalError/prototype', 'Eigenschaften')}}
+ +

Methoden

+ +
{{page('/de/docs/Web/JavaScript/Reference/Global_Objects/EvalError/prototype', 'Methoden')}}
+ +

Beispiele

+ +

EvalError wird nicht in der aktuellen ECMAScript Spezifikation verwendet und wird daher auch nicht von der Laufzeitumgebung erzeugt. Jedoch wird das Objekt aus Gründen der Rückwärtskompatibilität zu älteren Versionen der Spezifikation erhalten.

+ +

Erstellen eines EvalError

+ +
try {
+  throw new EvalError('Hello', 'someFile.js', 10);
+} catch (e) {
+  console.log(e instanceof EvalError); // true
+  console.log(e.message);              // "Hello"
+  console.log(e.name);                 // "EvalError"
+  console.log(e.fileName);             // "someFile.js"
+  console.log(e.lineNumber);           // 10
+  console.log(e.columnNumber);         // 0
+  console.log(e.stack);                // "@Scratchpad/2:2:9\n"
+}
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES3')}}{{Spec2('ES3')}}Initiale Definition.
{{SpecName('ES5.1', '#sec-15.11.6.1', 'EvalError')}}{{Spec2('ES5.1')}}Nicht benutzt in dieser Spezifikation. Erhalten für Rückwärtskompatibilität.
{{SpecName('ES6', '#sec-native-error-types-used-in-this-standard-evalerror', 'EvalError')}}{{Spec2('ES6')}}Nicht benutzt in dieser Spezifikation. Erhalten für Rückwärtskompatibilität.
{{SpecName('ESDraft', '#sec-native-error-types-used-in-this-standard-evalerror', 'EvalError')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ +
+
+ + +

{{Compat("javascript.builtins.EvalError")}}

+
+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/evalerror/prototype/index.html b/files/de/web/javascript/reference/global_objects/evalerror/prototype/index.html new file mode 100644 index 0000000000..03783a0294 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/evalerror/prototype/index.html @@ -0,0 +1,89 @@ +--- +title: EvalError.prototype +slug: Web/JavaScript/Reference/Global_Objects/EvalError/prototype +tags: + - Error + - EvalError + - JavaScript + - Property +translation_of: Web/JavaScript/Reference/Global_Objects/EvalError +--- +
{{JSRef}}
+ +

Die EvalError.prototype Eigenschaft repräsentiert den Prototypen des {{jsxref("EvalError")}} Konstruktors.

+ +
{{js_property_attributes(0, 0, 0)}}
+ +

Beschreibung

+ +

Alle {{jsxref("EvalError")}} Instanzen erben von EvalError.prototype. Man kann den Prototypen benutzen, um Eigenschaften oder Methoden für alle Instanzen hinzuzufügen.

+ +

Eigenschaften

+ +
+
EvalError.prototype.constructor
+
Spezifiziert die Funktion, die einen Instanzprototypen erstellt.
+
{{jsxref("Error.prototype.message", "EvalError.prototype.message")}}
+
Fehlernachricht. Obwohl ECMA-262 spezifiziert, dass {{jsxref("EvalError")}} seine eigene message Eigenschaft haben soll, wird diese in SpiderMonkey von {{jsxref("Error.prototype.message")}} geerbt.
+
{{jsxref("Error.prototype.name", "EvalError.prototype.name")}}
+
Fehlername. Geerbt von {{jsxref("Error")}}.
+
{{jsxref("Error.prototype.fileName", "EvalError.prototype.fileName")}}
+
Pfad zur Datei, die der der Fehler ausgelöst hat. Geerbt von {{jsxref("Error")}}.
+
{{jsxref("Error.prototype.lineNumber", "EvalError.prototype.lineNumber")}}
+
Zeilennummer in der Datei, in der der Fehler ausgelöst wurde. Geerbt von {{jsxref("Error")}}.
+
{{jsxref("Error.prototype.columnNumber", "EvalError.prototype.columnNumber")}}
+
Dpaltennummer in der Zeile, in der der Fehler ausgelöst wurde. Geerbt von {{jsxref("Error")}}.
+
{{jsxref("Error.prototype.stack", "EvalError.prototype.stack")}}
+
Stacktrace. Geerbt von {{jsxref("Error")}}.
+
+ +

Methoden

+ +

Obwohl des {{jsxref("EvalError")}} Prototypobjekt keine eigene Methode enthält, erben {{jsxref("EvalError")}} Instanzen einige Methoden durch die Prototypenkette.

+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES3')}}{{Spec2('ES3')}}Initiale Definition.
{{SpecName('ES5.1', '#sec-15.11.7.6', 'NativeError.prototype')}}{{Spec2('ES5.1')}}Definiert als NativeError.prototype.
{{SpecName('ES6', '#sec-nativeerror.prototype', 'NativeError.prototype')}}{{Spec2('ES6')}}Definiert als NativeError.prototype.
{{SpecName('ESDraft', '#sec-nativeerror.prototype', 'NativeError.prototype')}}{{Spec2('ESDraft')}}Definiert als NativeError.prototype.
+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.EvalError")}}

+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/float32array/index.html b/files/de/web/javascript/reference/global_objects/float32array/index.html new file mode 100644 index 0000000000..bb59fcf59f --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/float32array/index.html @@ -0,0 +1,204 @@ +--- +title: Float32Array +slug: Web/JavaScript/Reference/Global_Objects/Float32Array +tags: + - Constructor + - JavaScript + - TypedArray + - TypedArrays +translation_of: Web/JavaScript/Reference/Global_Objects/Float32Array +--- +
{{JSRef}}
+ +

Das Float32Array getypte Array repräsentiert ein Array von 32 Bit Gleitkommazahlen (entspricht dem C Datengyp float) in der Plattform-Byte-Reihenfolge. Wenn Kontrolle über die Byte-Reihenfolge erforderlich ist, muss {{jsxref("DataView")}} stattdessen benutz werden. Die Inhalte werden mit 0 initialisiert. Wie erwartet, kann man Element in einem Array mit Objektmethoden referenzieren oder man benutzt die normale Arrayindex-Syntax (das ist die Klammernotation).

+ +

Syntax

+ +
new Float32Array(); // new in ES2017
+new Float32Array(length);
+new Float32Array(typedArray);
+new Float32Array(object);
+new Float32Array(buffer [, byteOffset [, length]]);
+ +

Für mehr Informationen über die Konstruktorensyntax und die Parameter, siehe auf der Seite TypedArray.

+ +

Eigenschaften

+ +
+
{{jsxref("TypedArray.BYTES_PER_ELEMENT", "Float32Array.BYTES_PER_ELEMENT")}}
+
Gibt die Größe der Elemente zurück. 4 im Falle eines Float32Array.
+
Float32Array.length
+
Statische Längeneigenschaft welche den Wert 0 hat. Für die aktuelle Länge (Anzahl der Elemente) siehe {{jsxref("TypedArray.prototype.length", "Float32Array.prototype.length")}}.
+
{{jsxref("TypedArray.name", "Float32Array.name")}}
+
Gibt den Stringwert des Konstruktornamens zurück. In Fall eines Float32Array Typs: "Float32Array".
+
{{jsxref("TypedArray.prototype", "Float32Array.prototype")}}
+
Prototyp für das TypedArray Objekt.
+
+ +

Methoden

+ +
+
{{jsxref("TypedArray.from", "Float32Array.from()")}}
+
Erstelle ein neues Float32Array von einem Array-Ähnlichen oder Iterable Objekt. Siehe auch {{jsxref("Array.from()")}}.
+
{{jsxref("TypedArray.of", "Float32Array.of()")}}
+
Erstellt ein neues Float32Array mit einer variablen Anzahl an Argumenten. Sie auch {{jsxref("Array.of()")}}.
+
+ +

Float32Array Prototyp

+ +

Alle Float32Array Objekte erben von {{jsxref("TypedArray.prototype", "%TypedArray%.prototype")}}.

+ +

Eigenschaften

+ +
+
Float32Array.prototype.constructor
+
Gibt die Funktion, die einen Instanzprototyp erstellt zurück. Diese ist auf den Float32Array Konstruktor voreingestellt.
+
{{jsxref("TypedArray.prototype.buffer", "Float32Array.prototype.buffer")}} {{readonlyInline}}
+
Gibt die {{jsxref("ArrayBuffer")}} Referenz zurück, welche nach der Erstellung eines Float32Array fest ist und nicht mehr geändert werden kann.
+
{{jsxref("TypedArray.prototype.byteLength", "Float32Array.prototype.byteLength")}} {{readonlyInline}}
+
Gibt die Länge (in Bytes) des Float32Array vom Anfang seines {{jsxref("ArrayBuffer")}} zurück. WIrd beim erstellen festgesetzt und kann nicht geändert werden.
+
{{jsxref("TypedArray.prototype.byteOffset", "Float32Array.prototype.byteOffset")}} {{readonlyInline}}
+
Gibt das Offset (in Bytes) des Float32Array vom Anfang seines {{jsxref("ArrayBuffer")}} zurück. WIrd beim erstellen festgesetzt und kann nicht geändert werden.
+
{{jsxref("TypedArray.prototype.length", "Float32Array.prototype.length")}} {{readonlyInline}}
+
Gibt Anzahl der Elemente des Float32Array zurück. WIrd beim erstellen festgesetzt und kann nicht geändert werden.
+
+ +

Methoden

+ +
+
{{jsxref("TypedArray.copyWithin", "Float32Array.prototype.copyWithin()")}}
+
Kopiert eine Sequenz von Arrayelementen in das Array. Siehe auch {{jsxref("Array.prototype.copyWithin()")}}.
+
{{jsxref("TypedArray.entries", "Float32Array.prototype.entries()")}}
+
Gibt ein neues Array Iterator Objekt zurück, welches die Schlüssel/Wertepaare für jeden Index im Array enthält. Siehe auch {{jsxref("Array.prototype.entries()")}}.
+
{{jsxref("TypedArray.every", "Float32Array.prototype.every()")}}
+
Teste, ob alle Elemente einem, als Funktion übergebenen, Test erfüllen. Siehe auch Array.prototype.every()")}}.
+
{{jsxref("TypedArray.fill", "Float32Array.prototype.fill()")}}
+
Füllt alle Elemente eines Arrays vom Startindex bis zum Endindex mit einem statischen Wert. Siehe auch {{jsxref("Array.prototype.fill()")}}.
+
{{jsxref("TypedArray.filter", "Float32Array.prototype.filter()")}}
+
Erstellt ein neues Array mit allen Elementen des alten Arrays, für die eine übergebene Filterfunktion true zurückgibt. Siehe auch {{jsxref("Array.prototype.filter()")}}.
+
{{jsxref("TypedArray.find", "Float32Array.prototype.find()")}}
+
Gibt ein gefundenes Element des Arrays zurück, welches bei der übergebenen Testfunktion true zurückgibt oder undefined wenn es keins gibt. Siehe auch {{jsxref("Array.prototype.find()")}}.
+
{{jsxref("TypedArray.findIndex", "Float32Array.prototype.findIndex()")}}
+
Gibt den Index eines gefundenen Elements des Arrays zurück, welches bei der übergebenen Testfunktion true zurückgibt oder -1 wenn es keins gibt. Siehe auch {{jsxref("Array.prototype.findIndex()")}}.
+
{{jsxref("TypedArray.forEach", "Float32Array.prototype.forEach()")}}
+
Ruft für jedes Element in einem Array eine Funktion auf. Siehe auch {{jsxref("Array.prototype.forEach()")}}.
+
{{jsxref("TypedArray.includes", "Float32Array.prototype.includes()")}} {{experimental_inline}}
+
Überprüft, ob ein getyptes Array ein bestimmtes Element enthält und gibt gegebenfalls true oderfalse zurück. Siehe auch {{jsxref("Array.prototype.includes()")}}.
+
{{jsxref("TypedArray.indexOf", "Float32Array.prototype.indexOf()")}}
+
Gibt den ersten Index eines Elementes zurück, welches gleiche eines spezifizierten Wertes ist oder -1 wenn es keins gibt. Siehe auch {{jsxref("Array.prototype.indexOf()")}}.
+
{{jsxref("TypedArray.join", "Float32Array.prototype.join()")}}
+
Führt alle Elemente eines Arrays zu einem String zusammen. Siehe auch {{jsxref("Array.prototype.join()")}}.
+
{{jsxref("TypedArray.keys", "Float32Array.prototype.keys()")}}
+
Gibt ein neuen Array Iterator zurück, der alle Schlüssel für jeden Index im Array enthält. Siehe auch {{jsxref("Array.prototype.keys()")}}.
+
{{jsxref("TypedArray.lastIndexOf", "Float32Array.prototype.lastIndexOf()")}}
+
Gibt den letzen Index eines Elementes zurück, welches gleiche eines spezifizierten Wertes ist oder -1 wenn es keins gibt. Siehe auch {{jsxref("Array.prototype.lastIndexOf()")}}.
+
{{jsxref("TypedArray.map", "Float32Array.prototype.map()")}}
+
Erstellt ein neues Array mit den Resultaten spezifizierten Funktion, die für jedes Element aufgerufen wird. Siehe auch {{jsxref("Array.prototype.map()")}}.
+
{{jsxref("TypedArray.move", "Float32Array.prototype.move()")}} {{non-standard_inline}} {{unimplemented_inline}}
+
Ehemalige nicht Standardisierte Version von {{jsxref("TypedArray.copyWithin", "Float32Array.prototype.copyWithin()")}}.
+
{{jsxref("TypedArray.reduce", "Float32Array.prototype.reduce()")}}
+
Führt eine Funktion gegeben einen Akkumulator und jeden Wert des Array aus (von links nach rechts), um das Array auf einen Wert zu reduzieren. Siehe auch {{jsxref("Array.prototype.reduce()")}}.
+
{{jsxref("TypedArray.reduceRight", "Float32Array.prototype.reduceRight()")}}
+
Führt eine Funktion gegeben einen Akkumulator und jeden Wert des Array aus (von rechts nach links), um das Array auf einen Wert zu reduzieren. Siehe auch {{jsxref("Array.prototype.reduce()")}}.
+
{{jsxref("TypedArray.reverse", "Float32Array.prototype.reverse()")}}
+
Kehrt die Reihenfolge von jedem Element eines Arrays um — das Erste wird das Letzte und das Letzte wird das Erste. Siehe auch {{jsxref("Array.prototype.reverse()")}}.
+
{{jsxref("TypedArray.set", "Float32Array.prototype.set()")}}
+
Speichert mehrere Werte in einem getypten Array und ließt Eingabewerte aus einem spezifiziertem Array.
+
{{jsxref("TypedArray.slice", "Float32Array.prototype.slice()")}}
+
Extrahiert einen Bereich aus einem Array und gibt diesen in einem neuen Array zurück. Siehe auch {{jsxref("Array.prototype.slice()")}}.
+
{{jsxref("TypedArray.some", "Float32Array.prototype.some()")}}
+
Gibt true zurück, wenn nur ein Element in einem Array den als Funktion übergebenen Test erfüllt. Siehe auch {{jsxref("Array.prototype.some()")}}
+
{{jsxref("TypedArray.sort", "Float32Array.prototype.sort()")}}
+
Sortiert die Elemente eines Arrays in-Place und gibt das Array zurück. Siehe auch {{jsxref("Array.prototype.sort()")}}.
+
{{jsxref("TypedArray.subarray", "Float32Array.prototype.subarray()")}}
+
Gibt ein neues Float32Array vom gegebenen Start- und Endindex zurück.
+
{{jsxref("TypedArray.values", "Float32Array.prototype.values()")}}
+
Gibt ein neues Array Iterator Objekt zurück, welches die Werte von jedem Index im Array enthält. Siehe auch {{jsxref("Array.prototype.values()")}}.
+
{{jsxref("TypedArray.toLocaleString", "Float32Array.prototype.toLocaleString()")}}
+
Gibt einen Ortsabhängige Stringrepräsentation des Arrays und seiner Element zurück. Siehe auch {{jsxref("Array.prototype.toLocaleString()")}}.
+
{{jsxref("TypedArray.toString", "Float32Array.prototype.toString()")}}
+
Gibt einen Stringrepräsentation des Arrays und seiner Element zurück. Siehe auch {{jsxref("Array.prototype.toString()")}}.
+
{{jsxref("TypedArray.@@iterator", "Float32Array.prototype[@@iterator]()")}}
+
Gibt ein neues Array Iterator Objekt zurück, welches die zugehörigen Werte für jeden Index im Array enthalten.
+
+ +

Beispiele

+ +

Verschiedene Wege, um ein Float32Array zu erstellen:

+ +
// From a length
+var float32 = new Float32Array(2);
+float32[0] = 42;
+console.log(float32[0]); // 42
+console.log(float32.length); // 2
+console.log(float32.BYTES_PER_ELEMENT); // 4
+
+// From an array
+var arr = new Float32Array([21,31]);
+console.log(arr[1]); // 31
+
+// From another TypedArray
+var x = new Float32Array([21, 31]);
+var y = new Float32Array(x);
+console.log(y[0]); // 21
+
+// From an ArrayBuffer
+var buffer = new ArrayBuffer(16);
+var z = new Float32Array(buffer, 0, 4);
+
+// From an iterable
+var iterable = function*(){ yield* [1,2,3]; }();
+var float32 = new Float32Array(iterable);
+// Float32Array[1, 2, 3]
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('Typed Array')}}{{Spec2('Typed Array')}}Ersetzt in ECMAScript 2015.
{{SpecName('ES6', '#table-49', 'TypedArray constructors')}}{{Spec2('ES6')}}Initiale Definition in einem ECMA Standard. Spezifiziert, dass ein new benötigt wird.
{{SpecName('ESDraft', '#table-49', 'TypedArray constructors')}}{{Spec2('ESDraft')}}ECMAScript 2017 ändert den Float32Array Konstruktor, um die ToIndex Operation zu benutzen und erlaubt einen Konstruktor ohne Parameter.
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Float32Array")}}

+ +

Kompatibilitätshinweise

+ +

Mit Beginn von ECMAScript 2015, müssen Float32Array Konstruktoren mit einem {{jsxref("Operators/new", "new")}} benutzt werden. Der Aufruf eines Float32Array Konstruktors als eine Funktion ohne new, Führt jetzt zu einem {{jsxref("TypeError")}}.

+ +
var dv = Float32Array([1, 2, 3]);
+// TypeError: calling a builtin Float32Array constructor
+// without new is forbidden
+ +
var dv = new Float32Array([1, 2, 3]);
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/float64array/index.html b/files/de/web/javascript/reference/global_objects/float64array/index.html new file mode 100644 index 0000000000..6d3b5003d8 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/float64array/index.html @@ -0,0 +1,204 @@ +--- +title: Float64Array +slug: Web/JavaScript/Reference/Global_Objects/Float64Array +tags: + - Constructor + - JavaScript + - TypedArray + - TypedArrays +translation_of: Web/JavaScript/Reference/Global_Objects/Float64Array +--- +
{{JSRef}}
+ +

Das Float64Array getypte Array repräsentiert ein Array von 64 Bit Gleitkommazahlen (entspricht dem C Datentyp double) in der Plattform-Byte-Reihenfolge. Wenn Kontrolle über die Byte-Reihenfolge erforderlich ist, muss stattdessen {{jsxref("DataView")}} benutz werden. Die Inhalte werden mit 0 initialisiert. Wie erwartet, kann man Elemente in einem Array mit Objektmethoden referenzieren oder man benutzt die normale Array-Index-Syntax (das ist die Klammernotation).

+ +

Syntax

+ +
new Float64Array(); // new in ES2017
+new Float64Array(length);
+new Float64Array(typedArray);
+new Float64Array(object);
+new Float64Array(buffer [, byteOffset [, length]]);
+ +

Für mehr Informationen über die Konstruktorensyntax und die Parameter, siehe auf der Seite TypedArray.

+ +

Eigenschaften

+ +
+
{{jsxref("TypedArray.BYTES_PER_ELEMENT", "Float64Array.BYTES_PER_ELEMENT")}}
+
Gibt die Größe der Elemente zurück. 8 im Falle eines Float64Array.
+
Float64Array.length
+
Statische Längeneigenschaft, welche den Wert 0 hat. Für die aktuelle Länge (Anzahl der Elemente) siehe {{jsxref("TypedArray.prototype.length", "Float64Array.prototype.length")}}.
+
{{jsxref("TypedArray.name", "Float64Array.name")}}
+
Gibt den Stringwert des Konstruktornamens zurück. In Fall eines Float64Array Typs: "Float64Array".
+
{{jsxref("TypedArray.prototype", "Float64Array.prototype")}}
+
Prototyp für das TypedArray Objekt
+
+ +

Methoden

+ +
+
{{jsxref("TypedArray.from", "Float64Array.from()")}}
+
Erstellt ein neues Float64Array von einem Array-ähnlichen oder iterierbaren Objekt. Siehe auch {{jsxref("Array.from()")}}.
+
{{jsxref("TypedArray.of", "Float64Array.of()")}}
+
Erstellt ein neues Float64Array mit einer variablen Anzahl an Argumenten. Sie auch {{jsxref("Array.of()")}}.
+
+ +

Float64Array Prototyp

+ +

Alle Float64Array Objekte erben von {{jsxref("TypedArray.prototype", "%TypedArray%.prototype")}}.

+ +

Eigenschaften

+ +
+
Float64Array.prototype.constructor
+
Gibt die Funktion, die einen Instanzprototyp erstellt, zurück. Diese ist auf den Float64Array Konstruktor voreingestellt.
+
{{jsxref("TypedArray.prototype.buffer", "Float64Array.prototype.buffer")}} {{readonlyInline}}
+
Gibt die {{jsxref("ArrayBuffer")}} Referenz zurück, welche nach der Erstellung eines Float64Array fest ist und nicht mehr geändert werden kann.
+
{{jsxref("TypedArray.prototype.byteLength", "Float64Array.prototype.byteLength")}} {{readonlyInline}}
+
Gibt die Länge (in Bytes) des Float64Array vom Anfang seines {{jsxref("ArrayBuffer")}} zurück. Wird beim Erstellen festgesetzt und kann nicht geändert werden.
+
{{jsxref("TypedArray.prototype.byteOffset", "Float64Array.prototype.byteOffset")}} {{readonlyInline}}
+
Gibt das Offset (in Bytes) des Float64Array vom Anfang seines {{jsxref("ArrayBuffer")}} zurück. Wird beim Erstellen festgesetzt und kann nicht geändert werden.
+
{{jsxref("TypedArray.prototype.length", "Float64Array.prototype.length")}} {{readonlyInline}}
+
Gibt die Anzahl der Elemente des Float64Array zurück. Wird beim Erstellen festgesetzt und kann nicht geändert werden.
+
+ +

Methoden

+ +
+
{{jsxref("TypedArray.copyWithin", "Float64Array.prototype.copyWithin()")}}
+
Kopiert eine Sequenz von Arrayelementen in das Array. Siehe auch {{jsxref("Array.prototype.copyWithin()")}}.
+
{{jsxref("TypedArray.entries", "Float64Array.prototype.entries()")}}
+
Gibt ein neues Array Iterator Objekt zurück, welches die Schlüssel/Wertepaare für jeden Index im Array enthält. Siehe auch {{jsxref("Array.prototype.entries()")}}.
+
{{jsxref("TypedArray.every", "Float64Array.prototype.every()")}}
+
Teste, ob alle Elemente einem, als Funktion übergebenen, Test erfüllen. Siehe auch Array.prototype.every()")}}.
+
{{jsxref("TypedArray.fill", "Float64Array.prototype.fill()")}}
+
Füllt alle Elemente eines Arrays vom Startindex bis zum Endindex mit einem statischen Wert. Siehe auch {{jsxref("Array.prototype.fill()")}}.
+
{{jsxref("TypedArray.filter", "Float64Array.prototype.filter()")}}
+
Erstellt ein neues Array mit allen Elementen des alten Arrays, für die eine übergebene Filterfunktion true zurückgibt. Siehe auch {{jsxref("Array.prototype.filter()")}}.
+
{{jsxref("TypedArray.find", "Float64Array.prototype.find()")}}
+
Gibt ein gefundenes Element des Arrays zurück, welches bei der übergebenen Testfunktion true zurückgibt oder undefined wenn es keins gibt. Siehe auch {{jsxref("Array.prototype.find()")}}.
+
{{jsxref("TypedArray.findIndex", "Float64Array.prototype.findIndex()")}}
+
Gibt den Index eines gefundenen Elements des Arrays zurück, welches bei der übergebenen Testfunktion true zurückgibt oder -1 wenn es keins gibt. Siehe auch {{jsxref("Array.prototype.findIndex()")}}.
+
{{jsxref("TypedArray.forEach", "Float64Array.prototype.forEach()")}}
+
Ruft für jedes Element in einem Array eine Funktion auf. Siehe auch {{jsxref("Array.prototype.forEach()")}}.
+
{{jsxref("TypedArray.includes", "Float64Array.prototype.includes()")}} {{experimental_inline}}
+
Überprüft, ob ein getyptes Array ein bestimmtes Element enthält und gibt gegebenfalls true oder false zurück. Siehe auch {{jsxref("Array.prototype.includes()")}}.
+
{{jsxref("TypedArray.indexOf", "Float64Array.prototype.indexOf()")}}
+
Gibt den ersten Index eines Elementes zurück, welches kongruent eines spezifizierten Wertes ist oder -1 wenn es keins gibt. Siehe auch {{jsxref("Array.prototype.indexOf()")}}.
+
{{jsxref("TypedArray.join", "Float64Array.prototype.join()")}}
+
Führt alle Elemente eines Arrays zu einem String zusammen. Siehe auch {{jsxref("Array.prototype.join()")}}.
+
{{jsxref("TypedArray.keys", "Float64Array.prototype.keys()")}}
+
Gibt ein neuen Array Iterator zurück, der alle Schlüssel für jeden Index im Array enthält. Siehe auch {{jsxref("Array.prototype.keys()")}}.
+
{{jsxref("TypedArray.lastIndexOf", "Float64Array.prototype.lastIndexOf()")}}
+
Gibt den letzen Index eines Elementes zurück, welches gleiche eines spezifizierten Wertes ist oder -1 wenn es keins gibt. Siehe auch {{jsxref("Array.prototype.lastIndexOf()")}}.
+
{{jsxref("TypedArray.map", "Float64Array.prototype.map()")}}
+
Erstellt ein neues Array mit den Resultaten einer für jedes Element aufgerufenen Funtion. Siehe auch {{jsxref("Array.prototype.map()")}}.
+
{{jsxref("TypedArray.move", "Float64Array.prototype.move()")}} {{non-standard_inline}} {{unimplemented_inline}}
+
Ehemalige, nicht standardisierte Version von {{jsxref("TypedArray.copyWithin", "Float64Array.prototype.copyWithin()")}}.
+
{{jsxref("TypedArray.reduce", "Float64Array.prototype.reduce()")}}
+
Führt eine Funktion gegen einen Akkumulator und jeden Wert des Array aus (von links nach rechts), um das Array auf einen Wert zu reduzieren. Siehe auch {{jsxref("Array.prototype.reduce()")}}.
+
{{jsxref("TypedArray.reduceRight", "Float64Array.prototype.reduceRight()")}}
+
Führt eine Funktion gegen einen Akkumulator und jeden Wert des Array aus (von rechts nach links), um das Array auf einen Wert zu reduzieren. Siehe auch {{jsxref("Array.prototype.reduce()")}}.
+
{{jsxref("TypedArray.reverse", "Float64Array.prototype.reverse()")}}
+
Kehrt die Reihenfolge von jedem Element eines Arrays um — das Erste wird das Letzte und das Letzte wird das Erste. Siehe auch {{jsxref("Array.prototype.reverse()")}}.
+
{{jsxref("TypedArray.set", "Float64Array.prototype.set()")}}
+
Speichert mehrere Werte in einem getypten Array und liest Eingabewerte aus einem spezifiziertem Array.
+
{{jsxref("TypedArray.slice", "Float64Array.prototype.slice()")}}
+
Extrahiert einen Bereich aus einem Array und gibt diesen in einem neuen Array zurück. Siehe auch {{jsxref("Array.prototype.slice()")}}.
+
{{jsxref("TypedArray.some", "Float64Array.prototype.some()")}}
+
Gibt true zurück, wenn nur ein Element in einem Array, den als Funktion übergebenen, Test erfüllt. Siehe auch {{jsxref("Array.prototype.some()")}}
+
{{jsxref("TypedArray.sort", "Float64Array.prototype.sort()")}}
+
Sortiert die Elemente eines Arrays in-Place und gibt das Array zurück. Siehe auch {{jsxref("Array.prototype.sort()")}}.
+
{{jsxref("TypedArray.subarray", "Float64Array.prototype.subarray()")}}
+
Gibt ein neues Float64Array vom gegebenen Start- und Endindex zurück.
+
{{jsxref("TypedArray.values", "Float64Array.prototype.values()")}}
+
Gibt ein neues Array Iterator Objekt zurück, welches die Werte von jedem Index im Array enthält. Siehe auch {{jsxref("Array.prototype.values()")}}.
+
{{jsxref("TypedArray.toLocaleString", "Float64Array.prototype.toLocaleString()")}}
+
Gibt eine ortsabhängige Stringrepräsentation des Arrays und seiner Element zurück. Siehe auch {{jsxref("Array.prototype.toLocaleString()")}}.
+
{{jsxref("TypedArray.toString", "Float64Array.prototype.toString()")}}
+
Gibt eine Stringrepräsentation des Arrays und seiner Element zurück. Siehe auch {{jsxref("Array.prototype.toString()")}}.
+
{{jsxref("TypedArray.@@iterator", "Float64Array.prototype[@@iterator]()")}}
+
Gibt ein neues Array Iterator Objekt zurück, welches die zugehörigen Werte für jeden Index im Array enthalten.
+
+ +

Beispiele

+ +

Verschiedene Wege, um ein Float64Array zu erstellen:

+ +
// From a length
+var float64 = new Float64Array(2);
+float64[0] = 42;
+console.log(float64[0]); // 42
+console.log(float64.length); // 2
+console.log(float64.BYTES_PER_ELEMENT); // 8
+
+// From an array
+var arr = new Float64Array([21,31]);
+console.log(arr[1]); // 31
+
+// From another TypedArray
+var x = new Float64Array([21, 31]);
+var y = new Float64Array(x);
+console.log(y[0]); // 21
+
+// From an ArrayBuffer
+var buffer = new ArrayBuffer(32);
+var z = new Float64Array(buffer, 0, 4);
+
+// From an iterable
+var iterable = function*(){ yield* [1,2,3]; }();
+var float64 = new Float64Array(iterable);
+// Float64Array[1, 2, 3]
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('Typed Array')}}{{Spec2('Typed Array')}}Ersetzt in ECMAScript 2015.
{{SpecName('ES2015', '#table-49', 'TypedArray constructors')}}{{Spec2('ES2015')}}Initiale Definition in einem ECMA Standard. Spezifiziert, dass ein new benötigt wird.
{{SpecName('ESDraft', '#table-49', 'TypedArray constructors')}}{{Spec2('ESDraft')}}ECMAScript 2017 ändert den Float64Array Konstruktor, um die ToIndex Operation zu benutzen und erlaubt einen Konstruktor ohne Parameter.
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Float64Array")}}

+ +

Kompatibilitätshinweise

+ +

Mit Beginn von ECMAScript 2015, müssen Float64Array Konstruktoren mit einem {{jsxref("Operators/new", "new")}} benutzt werden. Der Aufruf eines Float64Array Konstruktors als eine Funktion ohne new führt jetzt zu einem {{jsxref("TypeError")}}.

+ +
var dv = Float64Array([1, 2, 3]);
+// TypeError: calling a builtin Float64Array constructor
+// without new is forbidden
+ +
var dv = new Float64Array([1, 2, 3]);
+ +

See also

+ + diff --git a/files/de/web/javascript/reference/global_objects/function/apply/index.html b/files/de/web/javascript/reference/global_objects/function/apply/index.html new file mode 100644 index 0000000000..784843e276 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/function/apply/index.html @@ -0,0 +1,226 @@ +--- +title: Function.prototype.apply() +slug: Web/JavaScript/Reference/Global_Objects/Function/apply +tags: + - Function + - JavaScript + - Method +translation_of: Web/JavaScript/Reference/Global_Objects/Function/apply +--- +
{{JSRef}}
+ +

Die apply() Methode ruft eine Funktion mit gegebenem this Wert und arguments als Array (oder einem Array ähnlichem Objekt).

+ +
+

Hinweis: Die Syntax dieser Funktion ist größtenteils identisch zu der Funktion {{jsxref("Function.call", "call()")}}. Der fundamentale Unterschied ist, dass call() eine Liste von Argumenten und apply() ein Array mit Argumenten übergeben bekommt.

+
+ +
{{EmbedInteractiveExample("pages/js/function-apply.html")}}
+ + + +

Syntax

+ +
function.apply(thisArg, [argsArray])
+ +

Parameter

+ +
+
thisArg
+
Optional. Der Wert von this, der für den Aufruf der Funktion func genutzt wird. Zu beachten ist, dass this möglicherweise nicht der Wert ist, den die Methode sieht: Wenn die Methode eine Funktion im {{jsxref("Functions_and_function_scope/Strict_mode", "non-strict mode", "", 1)}} ist, werden {{jsxref("Global_Objects/null", "null")}} und {{jsxref("Global_Objects/undefined", "undefined")}} mit dem globalen Objekt ersetzt und primitive Werte werden in ein Hüllobjekt umgewandelt.
+
argsArray
+
Optional. Ein Array ähnliches Objekt, welches die Argumente spezifiziert, welche beim Aufruf von func benutzt werden, oder {{jsxref("null")}} oder {{jsxref("undefined")}}, wenn keine Argumente übergeben werden. Mit Einführung von ECMAScript 5 können diese Argumente mit einem generische Array ähnliches Objekt statt einem Array übergeben werden. Für mehr Informationen sollte die {{anch("Browserkompatibilität", "Browserkompatibilität")}} geprüft werden.
+
+ +

Rückgabewert

+ +

Das Ergebnis der aufgerufenen Funktion mit dem spezifischen this Wert und Parametern.

+ +

Beschreibung

+ +

Man kann ein anderes this Objekt für den Aufruf einer existierenden Funktion zuweisen. this referenziert zum aktuellen Objekte, dem aufrufenden Objekt. Mit apply kann eine Methode geschrieben und in einem anderen Objekt vererbt werden, ohne die Methode für das neue Objekte neu zu schreiben.

+ +

apply ist sehr ähnlich zu {{jsxref("Function.call", "call()")}}, mit der Ausnahme des Typen der übergebenen Argumente. Man kann ein Array von Argumenten statt einer Menge von benannten Parametern benutzen. Mit apply kann man ein Arrayliteral benutzen, wie zum Beispiel fun.apply(this, ['eat', 'bananas']) oder ein {{jsxref("Array")}} Objekt, wie zum Beispiel fun.apply(this, new Array('eat', 'bananas')).

+ +

Für den argsArray Parameter kann auch {{jsxref("Functions/arguments", "arguments")}} eingesetzt werden. arguments ist eine lokale Variable einer Funktion. Sie kann für alle nicht spezifizieren Argumente bei einem Aufruf benutzt werde. Dadurch muss man die Argumente eines Aufrufers nicht kennen, wenn die apply Methode genutzt wird. Man kann arguments nutzen, um alle Argumente eines Aufrufers zu übergeben. Das aufgerufene Objekt ist dann verantwortlich für das Verarbeiten der Argument.

+ +

Seit ECMAScript in der 5. Ausgabe kann jedes Objekt übergeben werden, welches Array ähnlich ist, was in der Praxis bedeutet, dass es eine length Eigenschaft hat und Ganzzahlige Eigenschaften im Bereich von 0 bis length-1 besitzt. Zum Beispiel kann man {{domxref("NodeList")}} oder benutzerdefinierte Objekte wie { 'length': 2, '0': 'eat', '1': 'bananas' } benutzen.

+ +
Viele Browser, auch Chrome 14 und Internet Explorer 9, unterstützen keine Array ähnlichen Objekte, was zu einem Fehler führt.
+ +

Beispiele

+ +

Einsatz von apply um ein Array an ein anderes zu hängen

+ +

Man kann push benutzen, um ein Element an ein Array anzufügen. Weil push eine variable Anzahl von Argumenten enthält, kann man auch mehrere Element mit einem Aufruf hinzufügen. Übergibt man jedoch ein Array an die push Methode, so wird das Array als ein Element hinzugefügt anstatt jedes Element des Arrays hinzuzufügen, was zu einem Array im Array führt. Was tun, wenn das nicht das ist, was gewollt ist? concat hat das gewünschte verhalten, jedoch erstellt es ein neues Array und fügt die Elemente nicht an das existierende Array. Was wenn man die Elemente unbedingt an das existierende Array hängen möchte? Eine Schleife schreiben? Sicher nicht!

+ +

apply ist die Funktion der Wahl!

+ +
var array = ['a', 'b'];
+var elements = [0, 1, 2];
+array.push.apply(array, elements);
+console.info(array);  // ["a", "b", 0, 1, 2]
+
+ +

Einsatz von apply und eingebauten Standardfunktionen

+ +

Der clevere Einsatz von apply erlaubt es standard Functionen für Aufgaben zu benutzen, für die man sonst schleifen Schreiben müsste, um über alle Elemente eines Arrays zu iterieren. Im folgenden Beispiel wurde Math.max/Math.min benutzt, um das maximalen/minimalen Wert in einem Array zu finden.

+ +
// min/max number in an array
+var numbers = [5, 6, 2, 3, 7];
+
+// using Math.min/Math.max apply
+var max = Math.max.apply(null, numbers);
+// This about equal to Math.max(numbers[0], ...)
+// or Math.max(5, 6, ...)
+
+var min = Math.min.apply(null, numbers);
+
+// vs. simple loop based algorithm
+max = -Infinity, min = +Infinity;
+
+for (var i = 0; i < numbers.length; i++) {
+  if (numbers[i] > max) {
+    max = numbers[i];
+  }
+  if (numbers[i] < min) {
+    min = numbers[i];
+  }
+}
+
+ +

Jedoch muss man bei einem solchen Einsatz von apply vorsichtig sein, weil das Risiko da ist, dass man in das Limit der maximalen Argumente der JavaScriptumgebung überschreitet. Die Konsequenz aus dem ausführen von Funktionen mit zu vielen Argumenten (mehr als Zehntausend Argumente) ist, dass dieses Limit stark variiert (JavaScriptCore hat ein hart Codiertes Argumentlimit von 65536), weil es in JavaScript nicht spezifiziert ist (tatsächlich sogar die Art eines übermäßig großen Stack-Verhaltens). Einige Umgebungen erzeugen einen Fehler. Andere übergeben nicht alle Argumente der Funktion, um das Limit nicht zu überschreiten. Um diesen Fall man zu schildern: Wenn eine Umgebung ein Limit von 4 Argumenten hätte (aktuelle Limits sind natürlich signifikant höher), würde es so sein, als ob nur die Argumente 5, 6, 2, 3 über apply im oberen Beispiel übergeben werden, statt dem ganzen Array.

+ +

Wenn das Array in einigen Fällen so groß wird, dass es zehntausend Element erreicht, sollte eine hybride Strategie genutzt werden: Man teilt das Array auf und übergibt diese Teile der Funktion:

+ +
function minOfArray(arr) {
+  var min = Infinity;
+  var QUANTUM = 32768;
+
+  for (var i = 0, len = arr.length; i < len; i += QUANTUM) {
+    var submin = Math.min.apply(null,
+                                arr.slice(i, Math.min(i+QUANTUM, len)));
+    min = Math.min(submin, min);
+  }
+
+  return min;
+}
+
+var min = minOfArray([5, 6, 2, 3, 7]);
+
+ +

apply für das Verketten von Konstruktoren verwenden

+ +

Man kann apply einsetzen, um {{jsxref("Operators/new", "Konstruktoren", "", 1)}} für ein Objekt zu verketten, ähnlich wie in Java. Im folgenden Beispiel wird eine globale {{jsxref("Function")}} Methode namens construct erstellt, welche es ermöglicht ein Array ähnliches Objekt mit einem Konstruktor anstatt eines Argumentliste zu benutzen.

+ +
Function.prototype.construct = function (aArgs) {
+  var oNew = Object.create(this.prototype);
+  this.apply(oNew, aArgs);
+  return oNew;
+};
+
+ +
+

Hinweis: Die oben eingesetzte Object.create() Methode ist relativ neu. Alternativ kann eine der folgenden Ansätze verwendet werden:

+ +

Einsatz von {{jsxref("Object/__proto__", "Object.__proto__")}}:

+ +
Function.prototype.construct = function (aArgs) {
+  var oNew = {};
+  oNew.__proto__ = this.prototype;
+  this.apply(oNew, aArgs);
+  return oNew;
+};
+
+ +

Einsatz von Closures:

+ +
Function.prototype.construct = function(aArgs) {
+  var fConstructor = this, fNewConstr = function() {
+    fConstructor.apply(this, aArgs);
+  };
+  fNewConstr.prototype = fConstructor.prototype;
+  return new fNewConstr();
+};
+ +

Einsatz von {{jsxref("Function")}} Konstruktoren:

+ +
Function.prototype.construct = function (aArgs) {
+  var fNewConstr = new Function("");
+  fNewConstr.prototype = this.prototype;
+  var oNew = new fNewConstr();
+  this.apply(oNew, aArgs);
+  return oNew;
+};
+
+
+ +

Beispiel für den Einsatz:

+ +
function MyConstructor() {
+  for (var nProp = 0; nProp < arguments.length; nProp++) {
+    this['property' + nProp] = arguments[nProp];
+  }
+}
+
+var myArray = [4, 'Hello world!', false];
+var myInstance = MyConstructor.construct(myArray);
+
+console.log(myInstance.property1);                // logs 'Hello world!'
+console.log(myInstance instanceof MyConstructor); // logs 'true'
+console.log(myInstance.constructor);              // logs 'MyConstructor'
+
+ +
+

Hinweis: Diese nicht native Function.construct Methode funktioniert nicht mit einigen nativen Konstruktoren (mit {{jsxref("Date")}} zum Beispiel). In diesem Fall muss man die {{jsxref("Function.prototype.bind")}} Methode (hat man zum Beispiel ein Array ähnliches Objekt wie folgt, um mit dem {{jsxref("Global_Objects/Date", "Date")}} Konstruktor [2012, 11, 4] einzusetzen; in diesem Fall muss folgendes geschrieben werden: new (Function.prototype.bind.apply(Date, [null].concat([2012, 11, 4])))() — Jedoch ist das nicht die beste Art und Weise Probleme zu Lösen, weshalb diese Lösung nicht Praxistauglich ist).

+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES3')}}{{Spec2('ES3')}}Initiale Definition. Implementiert in JavaScript 1.3.
{{SpecName('ES5.1', '#sec-15.3.4.3', 'Function.prototype.apply')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-function.prototype.apply', 'Function.prototype.apply')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-function.prototype.apply', 'Function.prototype.apply')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.Function.apply")}}

+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/function/arguments/index.html b/files/de/web/javascript/reference/global_objects/function/arguments/index.html new file mode 100644 index 0000000000..271120bd9d --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/function/arguments/index.html @@ -0,0 +1,92 @@ +--- +title: Function.arguments +slug: Web/JavaScript/Reference/Global_Objects/Function/arguments +tags: + - Deprecated + - Function + - JavaScript + - Property + - arguments +translation_of: Web/JavaScript/Reference/Global_Objects/Function/arguments +--- +
{{JSRef}} {{deprecated_header}}
+ +

Die function.arguments Eigenschaft referenziert ein Array ähnliches Objekt, welches die übergebenen Parameter einer Funktion enthält. Stattdessen kann die Variable {{jsxref("Functions/arguments", "arguments")}} benutzt werden. Diese Eigenschaft ist im Strict Mode aufgrund von taill Aufrufoptimierung verboten.

+ +

Beschreibung

+ +

Die Syntax function.arguments ist veraltet. Der empfolene Weg, um das {{jsxref("Functions/arguments", "arguments")}} Objekt zu erreichen, ist in einer Funktion die Variable {{jsxref("Functions/arguments", "arguments")}} zu benutzen.

+ +

Im Fall von Rekursion, z. B. wenn die Funktion f mehrere Male auf dem Aufruf-Stack ist, repräsentiert f.arguments die Argumente des letzten Aufrufes der Funktion.

+ +

Der Wert der arguments Eigenschaft ist normalerweise null, wenn keine Durchführung der Funktion vorhanden ist (Durchführung bedeutet, dass die Funktion aufgerufen wurde, aber noch nichts zurückgegeben hat).

+ +

Beispiele

+ +
function f(n) { g(n - 1); }
+
+function g(n) {
+  console.log('before: ' + g.arguments[0]);
+  if (n > 0) { f(n); }
+  console.log('after: ' + g.arguments[0]);
+}
+
+f(2);
+
+console.log('returned: ' + g.arguments);
+
+// Output
+
+// before: 1
+// before: 0
+// after: 0
+// after: 1
+// returned: null
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES1')}}{{Spec2('ES1')}}Initiale Definition. Implementiert in JavaScript 1.0. Deprecated zugunsten von  {{jsxref("Functions/arguments", "arguments")}} in ES3.
{{SpecName('ES5.1', '#sec-10.6', 'arguments object')}}{{Spec2('ES5.1')}}{{jsxref("Functions/arguments", "arguments")}} Objekt
{{SpecName('ES6', '#sec-arguments-object', 'arguments object')}}{{Spec2('ES6')}}{{jsxref("Functions/arguments", "arguments")}} Objekt
{{SpecName('ESDraft', '#sec-arguments-object', 'arguments object')}}{{Spec2('ESDraft')}}{{jsxref("Functions/arguments", "arguments")}} Objekt
+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.Function.arguments")}}

+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/function/arity/index.html b/files/de/web/javascript/reference/global_objects/function/arity/index.html new file mode 100644 index 0000000000..f5ff00bd27 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/function/arity/index.html @@ -0,0 +1,32 @@ +--- +title: Function.arity +slug: Web/JavaScript/Reference/Global_Objects/Function/arity +tags: + - Function + - JavaScript + - Obsolete + - Property + - Unimplemented +translation_of: Archive/Web/JavaScript/Function.arity +--- +
{{JSRef}} {{obsolete_header}}
+ +

Die arity Eigenschaft wurde benutzt, um die Anzahl der erwarteten Argumente einer Funktion zurückzugeben, jedoch existiert diese Eigenschaft nicht mehr und wurde durch die Eigenschaft {{jsxref("Function.prototype.length")}} ersetzt.

+ +

Spezifikationen

+ +

Implementiert in JavaScript 1.2. Veraltet seit JavaScript 1.4.

+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.Function.arity")}}

+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/function/bind/index.html b/files/de/web/javascript/reference/global_objects/function/bind/index.html new file mode 100644 index 0000000000..9427e62299 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/function/bind/index.html @@ -0,0 +1,286 @@ +--- +title: Function.prototype.bind() +slug: Web/JavaScript/Reference/Global_Objects/Function/bind +tags: + - Class + - ECMAScript 2015 + - ECMAScript 5 + - Function + - JavaScript + - Method + - bind + - polyfill +translation_of: Web/JavaScript/Reference/Global_Objects/Function/bind +--- +
{{JSRef}}
+ +

Die bind() Methode erzeugt eine neue Funktion die beim Aufruf ihr this Schlüsselwort auf den ersten übergebenen Wert setzt. Alle weiteren Argumente werden den beim Funktionsaufruf übergebenen Werten vorangestellt.

+ +
{{EmbedInteractiveExample("pages/js/function-bind.html", "taller")}}
+ + + +

Syntax

+ +
function.bind(thisArg[, arg1[, arg2[, ...]]])
+ +

Parameter

+ +
+
thisArg
+
Der für this zu übergebende Wert an die Zielfunktion sobald die gebundene Funktion aufgerufen wird. Der Wert wird ignoriert, wenn die gebundene Funktion mit dem {{jsxref("Operators/new", "new")}} Schlüsselwort initiiert wurde.
+
arg1, arg2, ...
+
An die bind Funktion übergebene Werte. Diese Werte werden an die gebundene Funktion überreicht.
+
+ +

Rückgabewert

+ +

Eine Kopie der gegebenen Funktion mit dem spezifizierten this Wert und initialen Parametern.

+ +

Beschreibung

+ +

Die bind() Funktion erstellt eine neue gebundene Funktion (BF). Eine BF ist ein exotisches Funktionsobjekte (ein Teil von ECMAScript 2015) welches die eigentliche Funktion umhüllt. Das Aufrufen einer BF führt zum ausführen der umhüllten Funktion. Eine BF hat die folgenden internen Eigenschaften:

+ + + +

Wenn die gebundene Funktion aufgerufen wird, ruft diese die interne Methode [[Call]] auf [[BoundTargetFunction]] mit den Argumenten Call(boundThis, args) auf. Dabei ist boundThis gleich [[BoundThis]] und args gleich [[BoundArguments]] gefolgt von den übergebenen Parametern des Funktionsaufrufes.

+ +

Eine gebundene Funktion kann zudem mit einen new Operator erstellt werden: Das sieht so aus, als ob die Zielfunktion stattdessen konstruiert worden wäre. Dar übergebene this Wert wird ignoriert, während die voranstehenden Argumente für die Emulierte Funktion zur Verfügung stehen.

+ +

Beispiele

+ +

Erstellen einer gebunden Funktion

+ +

Die einfachste Verwendung von bind() besteht darin, eine Funktion zu erstellen, die, egal wie sie aufgerufen wird, mit einem this Wert aufgerufen wird. Ein häufiger Fehler für neue JavaScript-Programmierer besteht darin, eine Methode aus einem Objekt zu extrahieren, diese Funktion später aufzurufen und zu erwarten, dass sie das ursprüngliche Objekt als this verwendet (z. B. durch Verwendung dieser Methode in Callback-basiertem Code). Ohne besondere Sorgfalt ist das ursprüngliche Objekt jedoch in der Regel verloren. Das Erstellen einer gebundenen Funktion aus der Funktion, die das ursprüngliche Objekt verwendet, löst dieses Problem sauber:

+ +
this.x = 9;    // this refers to global "window" object here in the browser
+var module = {
+  x: 81,
+  getX: function() { return this.x; }
+};
+
+module.getX(); // 81
+
+var retrieveX = module.getX;
+retrieveX();
+// returns 9 - The function gets invoked at the global scope
+
+// Create a new function with 'this' bound to module
+// New programmers might confuse the
+// global var x with module's property x
+var boundGetX = retrieveX.bind(module);
+boundGetX(); // 81
+
+ +

Partiell gebunden Funktionen

+ +

Der nächste einfache Einsatz von bind() ist das Vordefinieren von Initialparameter einer Funktion. Diese Argumente (wenn welche vorhanden) folgen auf den übergebenen this Wert und Werten am Anfang der Zielfunktion den Parametern hinzugefügt, gefolgt von den Parametern, die der gebunden Funktion übergeben werden, immer wenn die gebunden Funktion aufgerufen wird.

+ +
function list() {
+  return Array.prototype.slice.call(arguments);
+}
+
+var list1 = list(1, 2, 3); // [1, 2, 3]
+
+// Create a function with a preset leading argument
+var leadingThirtysevenList = list.bind(null, 37);
+
+var list2 = leadingThirtysevenList();
+// [37]
+
+var list3 = leadingThirtysevenList(1, 2, 3);
+// [37, 1, 2, 3]
+
+ +

Mit setTimeout

+ +

Bei {{domxref("window.setTimeout()")}} wird im Standardfall das this Schlüsselwort mit dem {{ domxref("window") }} (oder global) Objekt versehen. Wenn mit Klassenmethoden gearbeitet wird, die es vorgesehen, dass this zu der Klasseninstanz verweist, muss this explizit an die Callback-Funktion gebunden werden, damit die Instanz vorhanden ist.

+ +
function LateBloomer() {
+  this.petalCount = Math.floor(Math.random() * 12) + 1;
+}
+
+// Declare bloom after a delay of 1 second
+LateBloomer.prototype.bloom = function() {
+  window.setTimeout(this.declare.bind(this), 1000);
+};
+
+LateBloomer.prototype.declare = function() {
+  console.log('I am a beautiful flower with ' +
+    this.petalCount + ' petals!');
+};
+
+var flower = new LateBloomer();
+flower.bloom();
+// after 1 second, triggers the 'declare' method
+ +

Gebunden Funktion mit einem Konstruktor

+ +
+

Warnung: Dieses Kapitel demonstriert JavaScript-möglichkeiten und dokumentiert Randfälle der bind() Methode. Die Methoden, die unten gezeigt werden, sind nicht die Besten, um Dinge zu lösen, weshalb sie nicht in einem Produktivsystem eingesetzt werden sollten.

+
+ +

Gebundene Funktion sind automatisch verfügbar für den Einsatz mit dem {{jsxref("Operators/new", "new")}} Operator, um eine neue Instanz von einer Zielfunktion zu erstellen. Wenn eine gebundene Funktion eingesetzt wird, um einen Wert zu erstellen, wird das unterstützte this Argument ignoriert. Dahingegen werden unterstützte Argumente vor den Konstruktoraufrufe vorgehängt:

+ +
function Point(x, y) {
+  this.x = x;
+  this.y = y;
+}
+
+Point.prototype.toString = function() {
+  return this.x + ',' + this.y;
+};
+
+var p = new Point(1, 2);
+p.toString(); // '1,2'
+
+// not supported in the polyfill below,
+
+// works fine with native bind:
+
+var YAxisPoint = Point.bind(null, 0/*x*/);
+
+
+var emptyObj = {};
+var YAxisPoint = Point.bind(emptyObj, 0/*x*/);
+
+var axisPoint = new YAxisPoint(5);
+axisPoint.toString(); // '0,5'
+
+axisPoint instanceof Point; // true
+axisPoint instanceof YAxisPoint; // true
+new Point(17, 42) instanceof YAxisPoint; // true
+
+ +

Zu beachten ist, dass nichts spezielles getan werden muss, um eine gebundene Funktion mit {{jsxref("Operators/new", "new")}} zu erstellen. Die Folge ist, dass man nichts Besonderes tun muss, um eine gebundene Funktion zu erzeugen, die einfach aufgerufen werden kann, selbst wenn es gewollt ist, dass die gebundene Funktion nur mit {{jsxref("Operators/new", "new")}} aufgerufen wird:

+ +
// Example can be run directly in your JavaScript console
+// ...continuing from above
+
+// Can still be called as a normal function
+// (although usually this is undesired)
+YAxisPoint(13);
+
+emptyObj.x + ',' + emptyObj.y;
+// >  '0,13'
+
+ +

Wenn es gewünscht ist, dass der Einsatz von gebundenen Funktion nur mit {{jsxref("Operators/new", "new")}} oder einem einfachen Aufruf sein soll, so muss die Zielfunktion diese Einschränkung erzwingen.

+ +

Kurzformen erstellen

+ +

bind() ist nützlich in fällen, in denen man kurzformen erstellen will, bei denen ein spezifischer this vorhanden sein soll.

+ +

Nimmt man zum Beispiel {{jsxref("Array.prototype.slice")}}, welche man zum Konvertieren von Array ähnlichen Objekte zu einem richtigen Array einsetzen mögliche, dann kann man eine Kurzform wie diese erstellen:

+ +
var slice = Array.prototype.slice;
+
+// ...
+
+slice.apply(arguments);
+
+ +

Mit bind(), kann dieses vereinfacht werden. Im folgenden Codestück ist slice eine gebunden Funktion zu der {{jsxref("Function.prototype.apply()", "apply()")}} Funktion von {{jsxref("Function.prototype")}} mit dem this Wert auf der {{jsxref("Array.prototype.slice()", "slice()")}} Funktion von {{jsxref("Array.prototype")}}. Das bedeutet, dass der zusätzliche Aufruf von apply() nicht nötig ist:

+ +
// same as "slice" in the previous example
+var unboundSlice = Array.prototype.slice;
+var slice = Function.prototype.apply.bind(unboundSlice);
+
+// ...
+
+slice(arguments);
+
+ +

Polyfill

+ +

Wenn die bind() Funktion nicht vorhanden ist, kann ein Großteil der Funktionalität mit trotzdem hinzugefügt werden, indem der folgende Quelltext am Anfang des Skriptes hinzugefügt wird.

+ +
if (!Function.prototype.bind) {
+  Function.prototype.bind = function(oThis) {
+    if (typeof this !== 'function') {
+      // closest thing possible to the ECMAScript 5
+      // internal IsCallable function
+      throw new TypeError('Function.prototype.bind - what is trying to be bound is not callable');
+    }
+
+    var aArgs   = Array.prototype.slice.call(arguments, 1),
+        fToBind = this,
+        fNOP    = function() {},
+        fBound  = function() {
+          return fToBind.apply(this instanceof fNOP
+                 ? this
+                 : oThis,
+                 aArgs.concat(Array.prototype.slice.call(arguments)));
+        };
+
+    if (this.prototype) {
+      // Function.prototype doesn't have a prototype property
+      fNOP.prototype = this.prototype;
+    }
+    fBound.prototype = new fNOP();
+
+    return fBound;
+  };
+}
+
+ +

Einige der vielen Unterschiede (es kann durchaus andere geben, weil bei dieser Liste nicht auf Vollständig geachtet wurde) zwischen diesem Algorithmus und dem angegebenen Algorithmus sind:

+ + + +

Wenn diese partielle Implementierung eingesetzt wird, muss man davon ausgehen, dass dessen Verhalten von dem in ECMA-262 in der 5. Auflage unterscheidet! Mit etwas Vorsicht (und vielleicht kleinen Modifizierungen für spezielle Anforderungen) kann diese partielle Implementierung eine gute Übergangslösung für die Zeit sein, in der bind() noch nicht in allen Umgebungen unterstützt wird.

+ +

Auf https://github.com/Raynos/function-bind könnte es eine gründlichere Lösung geben!

+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES5.1', '#sec-15.3.4.5', 'Function.prototype.bind')}}{{Spec2('ES5.1')}}Initiale Definition. Implementiert in JavaScript 1.8.5.
{{SpecName('ES2015', '#sec-function.prototype.bind', 'Function.prototype.bind')}}{{Spec2('ES2015')}}
{{SpecName('ESDraft', '#sec-function.prototype.bind', 'Function.prototype.bind')}}{{Spec2('ESDraft')}}
+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.Function.bind")}}

+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/function/call/index.html b/files/de/web/javascript/reference/global_objects/function/call/index.html new file mode 100644 index 0000000000..46bdb07442 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/function/call/index.html @@ -0,0 +1,163 @@ +--- +title: Function.prototype.call() +slug: Web/JavaScript/Reference/Global_Objects/Function/call +tags: + - Function + - JavaScript + - Method +translation_of: Web/JavaScript/Reference/Global_Objects/Function/call +--- +
{{JSRef}}
+ +

Die call() Methode ruft eine Funktion mit dem Argument this und den individuellen Parametern auf.

+ +
+

Hinweis: Die Syntax dieser Funktion ist nahezu identisch zu {{jsxref("Function.prototype.apply", "apply()")}}. Der Unterschied ist, dass call() eine Liste von Argumenten und apply() einen einzelnen Array von Argumenten akzeptiert.

+
+ +
{{EmbedInteractiveExample("pages/js/function-call.html")}}
+ + + +

Syntax

+ +
function.call(thisArg, arg1, arg2, ...)
+ +

Parameter

+ +
+
thisArg
+
Optional. Der Wert von this, der für den Aufruf der Funktion function genutzt wird. Zu beachten ist, dass this möglicherweise nicht der Wert ist, den die Methode sieht: Wenn die Methode eine Funktion in {{jsxref("Functions_and_function_scope/Strict_mode", "non-strict mode", "", 1)}} ist, werden {{jsxref("Global_Objects/null", "null")}} und {{jsxref("Global_Objects/undefined", "undefined")}} mit dem globalen Objekt ersetzt und primitive Werte werden in ein Hüllobjekt umgewandelt.
+
arg1, arg2, ...
+
Argumente für das Objekt.
+
+ +

Rückgabewert

+ +

Das Ergebnis der aufgerufenen Funktion mit dem spezifischen this Wert und Parametern.

+ +

Beschreibung

+ +

Beim Aufruf einer existierenden Funktion können Sie für this ein neues Objekt zuweisen. this verweist auf das aktuelle Objekt, also das aufrufende Objekt. Mit call können Sie eine Methode schreiben und an ein anderes Objekt vererben, ohne die Methode für das neue Objekt neuzuschreiben.

+ +

Beispiele

+ +

Nutzung von call, um Konstruktoren für ein Objekt zu verketten

+ +

Man kann call nutzen, um Konstruktoren für ein Objekt, ähnlich wie in Java, zu verketten. Im folgenden Beispiel wird der Konstruktor für das Product Objekt mit zwei Parametern, name und price, definiert. Zwei andere Funktionen Food und Toy rufen Product auf und übergeben this, name und price. Product initialisiert die Eigenschaften name und price und beide speziellen Funktionen definieren category.

+ +
function Product(name, price) {
+  this.name = name;
+  this.price = price;
+}
+
+function Food(name, price) {
+  Product.call(this, name, price);
+  this.category = 'food';
+}
+
+function Toy(name, price) {
+  Product.call(this, name, price);
+  this.category = 'toy';
+}
+
+var cheese = new Food('feta', 5);
+var fun = new Toy('robot', 40);
+
+ +

Nutzung von call zum Aufruf einer anonymen Funktion

+ +

In diesem komplett konstruierten Beispiel erstellen wir eine anonyme Funktion und nutzen call, um diese für jedes Objekt in einem Array aufzurufen. Der Hauptnutzen für die Nutzung anonymer Funktionen hier, ist das hinzufügen einer Print-Funktion für jedes Objekt, welche den rechten Index des Objekts in dem eingegebenen Array ausgeben kann. Die Übergabe des Objektes als this-Wert ist hier nicht zwingend erforderlich, wurde aber zur Veranschaulichung genutzt.

+ +
var animals = [
+  { species: 'Lion', name: 'King' },
+  { species: 'Whale', name: 'Fail' }
+];
+
+for (var i = 0; i < animals.length; i++) {
+  (function(x) {
+    this.print = function() {
+      console.log('#' + x + ' ' + this.species
+                  + ': ' + this.name);
+    }
+    this.print();
+  }).call(animals[i], i);
+}
+
+ +

Einsatz von call zum aufrufen einer Funktion mit spezifiziertem Kontext für 'this'

+ +

Im unten stehenden Beispiel wird das thisObjekt der greet Funktion beim Aufruf auf obj gesetzt.

+ +
function greet() {
+  var reply = [this.animal, 'typically sleep betreen', this.sleepDuration].join(' ');
+  console.log(reply);
+}
+
+var obj = {
+  animal: 'cats', sleepDuration: '12 and 16 hours'
+};
+
+greet.call(obj); // cats typically sleep between 12 and 16 hours
+
+ +

Eine Funktion mit call ausführen ohne den ersten Parameter zu setzen.

+ +

Im unten stehenden Beispiel wird die display Funktion aufgerufen ohne den ersten Parameter zu übergeben. Wenn der erste Parameter nicht übergeben wird, ist this das globale Objekt.

+ +
var sData = 'Wisen';
+
+function display(){
+  console.log('sData value is %s', this.sData);
+}
+
+display.call(); // sData value is Wisen
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES1')}}{{Spec2('ES1')}}Initiale Definition. Implementiert in JavaScript 1.3.
{{SpecName('ES5.1', '#sec-15.3.4.4', 'Function.prototype.call')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-function.prototype.call', 'Function.prototype.call')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-function.prototype.call', 'Function.prototype.call')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.Function.call")}}

+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/function/caller/index.html b/files/de/web/javascript/reference/global_objects/function/caller/index.html new file mode 100644 index 0000000000..1b0b3f6c03 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/function/caller/index.html @@ -0,0 +1,84 @@ +--- +title: Function.caller +slug: Web/JavaScript/Reference/Global_Objects/Function/caller +tags: + - Function + - JavaScript + - Property +translation_of: Web/JavaScript/Reference/Global_Objects/Function/caller +--- +
{{JSRef}} {{non-standard_header}}
+ +

Die function.caller Eigenschaft gibt die Funktion zurück, die eine spezifizierte Funktion aufgerufen hat. Diese Eigenschaft ist im Strict-Modus wegen tail call Optimierungen verboten.

+ +

Beschreibung

+ +

Wenn die Funktion f durch einen Quelltext auf höchster Ebene aufgerufen wird, ist der Wert von f.caller {{jsxref("null")}}, anderfalls die Funktion, die f aufgerufen hat.

+ +

Diese Eigenschaft ersetzt die veraltete Eigenschaft {{jsxref("Functions/arguments/caller", "arguments.caller")}} des {{jsxref("Functions/arguments", "arguments")}} Objektes.

+ +

Die spezielle Eigenschaft __caller__, welches das Objekt des Aufrufers zurück gab, erlaubt es den Stack zu rekonstruieren und wurde aus Sicherheitsgründen entfernt.

+ +

Hinweise

+ +

Im Fall von Rekursion, kann der Stack nicht mit dieser Eigenschaft reproduziert werden. Gegeben:

+ +
function f(n) { g(n - 1); }
+function g(n) { if (n > 0) { f(n); } else { stop(); } }
+f(2);
+
+ +

Im Moment, indem stop() aufgerufen wird, ist der Aufruferstack:

+ +
f(2) -> g(1) -> f(1) -> g(0) -> stop()
+
+ +

Das folgende ergibt true:

+ +
stop.caller === g && f.caller === g && g.caller === f
+
+ +

Wenn man versucht den Stacktrace in der stop() Funktion zu bekommen, wie hier:

+ +
var f = stop;
+var stack = 'Stack trace:';
+while (f) {
+  stack += '\n' + f.name;
+  f = f.caller;
+}
+
+ +

wird die Schleife nie beendet.

+ +

Beispiele

+ +

Prüfen des Wertes der Funktionseigenschaft caller

+ +

Der folgende Quelltext prüft den Wert der Funktionseigenschaft caller.

+ +
function myFunc() {
+  if (myFunc.caller == null) {
+    return 'The function was called from the top!';
+  } else {
+    return 'This function\'s caller was ' + myFunc.caller;
+  }
+}
+
+ +

Spezifikationen

+ +

In keiner Spezifikation enthalten. Implementiert in JavaScript 1.5.

+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.Function.caller")}}

+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/function/displayname/index.html b/files/de/web/javascript/reference/global_objects/function/displayname/index.html new file mode 100644 index 0000000000..9e22b16fca --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/function/displayname/index.html @@ -0,0 +1,81 @@ +--- +title: Function.displayName +slug: Web/JavaScript/Reference/Global_Objects/Function/displayName +tags: + - Function + - JavaScript + - Non Standard + - Non-standard + - Property +translation_of: Web/JavaScript/Reference/Global_Objects/Function/displayName +--- +
{{JSRef}} {{non-standard_header}}
+ +

Die function.displayName Eigenschaft gibt den sichtbaren Namen der Funktion zurück.

+ +

Beschreibung

+ +

Wenn definiert, gibt dit displayName Eigenschaft den sichtbaren Namen der Funktion zurück:

+ +
function doSomething() {}
+
+console.log(doSomething.displayName); // "undefined"
+
+var popup = function(content) { console.log(content); };
+
+popup.displayName = 'Show Popup';
+
+console.log(popup.displayName); // "Show Popup"
+
+ +

Man kann eine Funktion mit sichtbaren Namen mit einem {{jsxref("Functions", "Funktionsausdruck", "", 1)}} definieren:

+ +
var object = {
+  someMethod: function() {}
+};
+
+object.someMethod.displayName = 'someMethod';
+
+console.log(object.someMethod.displayName); // logs "someMethod"
+
+try { someMethod } catch(e) { console.log(e); }
+// ReferenceError: someMethod is not defined
+
+ +

Man kann den displayName einer Funktion dynamisch ändern:

+ +
var object = {
+  // anonymous
+  someMethod: function(value) {
+    arguments.callee.displayName = 'someMethod (' + value + ')';
+  }
+};
+
+console.log(object.someMethod.displayName); // "undefined"
+
+object.someMethod('123')
+console.log(object.someMethod.displayName); // "someMethod (123)"
+
+ +

Beispiele

+ +

Konsolen und Profiler präferieren die {{jsxref("Function.name", "func.name")}} zum anzeigen des Namens einer Funktion.

+ +

Beim eingeben des Folgenden Quelltextes in der Konsole, wird etwas wie "function My Function()" ausgegeben:

+ +
var a = function() {};
+a.displayName = 'My Function';
+
+a; // "function My Function()"
+ +

Spezifikationen

+ +

In keiner Spezifikation enthalten.

+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.Function.displayName")}}

+
diff --git a/files/de/web/javascript/reference/global_objects/function/index.html b/files/de/web/javascript/reference/global_objects/function/index.html new file mode 100644 index 0000000000..dd2a7d5583 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/function/index.html @@ -0,0 +1,188 @@ +--- +title: Function +slug: Web/JavaScript/Reference/Global_Objects/Function +tags: + - Constructor + - Function + - JavaScript +translation_of: Web/JavaScript/Reference/Global_Objects/Function +--- +
{{JSRef}}
+ +

Der Function Konstruktor erstellt ein neues Funktion Objekt. Das direkte Aufrufen kann Funktionen dynamisch erstellen, hat aber Sicherheits- und Performanceprobleme genau wie der Einsatz von {{jsxref("eval")}}. Im Gegensatz zu eval ermöglicht der Function-Konstruktor die Ausführung von Code im globalen Gültigkeitsbereich, was zu besseren Programmiergewohnheiten führt und eine effizientere Code-Minimierung ermöglicht.

+ +
{{EmbedInteractiveExample("pages/js/function-constructor.html")}}
+ + + +

Jede JavaScript Funktion ist aktuell ein Function Objekt. Das kann mit dem Code (function(){}).constructor === Function gezeigt werden, der true zurückgibt.

+ +

Syntax

+ +
new Function ([arg1[, arg2[, ...argN]],] functionBody)
+ +

Parameter

+ +
+
arg1, arg2, ... argN
+
Namen die von der Funktion als formelle Argumentname genutzt werden. Jeder davon muss ein String sein, welcher ein gültiger JavaScript Bezeichner ist oder einer Liste von solchen Strings, getrennt mit Kommata ist. Zum Beispiel: "x", "derWert", oder "a,b".
+
functionBody
+
Ein String, welcher den JavaScript Ausdruck als Funktions-Definition beinhaltet.
+
+ +

Beschreibung

+ +

Mit dem Function Konstruktor erstellte Function-Objekte werden übersetzt, sobald die Funktion erstellt wurde. Das ist weniger effizient, als wenn man eine Funktion als Funktionsausdruck oder Funktionsstatement deklariert und diese innerhalb des Codes abruft, weil diese mit dem Rest des Codes übersetzt werden.

+ +

Alle der Funktion übergegebenen Argumente werden als Namen der Bezeichner der Parameter in der zu erstellenden Funktion in der angegebenen Reihenfolge behandelt.

+ +

Das Aufrufen des Function Konstruktors als Funktion (ohne den new Operator) hat dieselbe Wirkung, wie als Konstrukteuraufruf. Jedoch kann das Weglassen des new Operators eine kleinere minimierten Codegröße (4 Byte kleiner) erreichen, so dass es besser ist Function ohne new zu benutzen.

+ +

Eigenschaften und Methoden von Function

+ +

Das globale Function Objekt hat eigene Methoden und Eigenschaften, doch, da es eine Funktion selbst ist, erbt es einige Methoden und Eigenschaften durch die Prototypkette aus {{jsxref("Function.prototype")}}.

+ +

Function Prototyp Objekt

+ +

Eigenschaften

+ +
{{page('/de/docs/Web/JavaScript/Reference/Global_Objects/Function/prototype', 'Eigenschaften')}}
+ +

Methoden

+ +
{{page('/de/docs/Web/JavaScript/Reference/Global_Objects/Function/prototype', 'Methoden')}}
+ +

Function Instanzen

+ +

Funktions-Instanzen erben Methoden und Eigenschaften vom {{jsxref("Function.prototype")}}. Wie bei allen Konstruktoren kann das Prototypen Objekt verändern werden, um Änderungen an allen Funktions-Instanzen durchzuführen.

+ +

Beispiele

+ +

Spezifizieren von Argumente mit dem Function Konstruktor

+ +

Der folgende Code erstellt ein Funktions-Objekt, mit zwei Argumenten.

+ +
// Das Beispiel kann direkt in der JavaScript Console ausgeführt werden.
+
+// Erstellt eine Funktion mit zwei Argumenten und gibt die Summe dieser Argumente zurück
+var adder = new Function('a', 'b', 'return a + b');
+
+// Aufruf der Funktion
+adder(2, 6);
+// > 8
+
+ +

Die Argumente "a" und "b" sind formale Argument-Namen, welche im Funktionskörper genutzt werden, "return a + b".

+ +

Unterschiede zwischen dem Function Konstruktor und Funktionsdeklarationen

+ +

Funktionen, die mit dem Function Konstruktor erstellt werden, erstellen keine Closures in ihrem Erstellungskontext; Sie werden immer im globalen Scope erstellt. Wenn diese ausgeführt wird, kann sie nur auf eigene lokale oder globale Variablen zugreifen, jedoch nicht auf die aus dem Erstellungskontext des Function Konstruktor aufzufes. Dieses ist der Unterschied zum Einsatz von {{jsxref("eval")}} mit Quelltext für einen Funktionsausdruck.

+ +
var x = 10;
+
+function createFunction1() {
+    var x = 20;
+    return new Function('return x;'); // this |x| refers global |x|
+}
+
+function createFunction2() {
+    var x = 20;
+    function f() {
+        return x; // this |x| refers local |x| above
+    }
+    return f;
+}
+
+var f1 = createFunction1();
+console.log(f1());          // 10
+var f2 = createFunction2();
+console.log(f2());          // 20
+
+ +

Der "richtige" Weg für das Ausführen von externen Code mit Function (Für maximale Minimierung).

+ +
function makeFunction(code){
+    return Funktion('"use strict";return ' + code)();
+}
+var add = makeFunktion(
+  "" + function(a, b, c){ return a + b + c } // dieser Code ist in einer seperaten Datei irgendwo im Produktivprogramm
+)
+console.log( add(1, 2, 3) );  // gibt sechs aus
+
+ +

Zu beachten ist, dass der obere Code komplett unpraktikabel ist. Man sollte Function niemals so missbrauchen. Stattdessen ist der obere Code nur als vereinfachtes Beispiel für eine Art Modulloader zu sehen, wobei es ein Basisskript gibt, welches dann hunderte von großen optionalen Modulen lädt. Dadurch muss ein Benutzer nicht lange warten, bis alle Module heruntergeladen sind, sondern der Clientcomputer lädt nur die benötigten Module und eine Seite lädt schneller. Dabei wird es beim auswerten von vielen Funktionen empfohlen, sie gebündelt zu übersetzen anstatt jede einzeln.

+ +
function bulkMakeFunctions(){
+    var str = "", i = 1, Len = arguments.length;
+    if(Len) {
+        str = arguments[0];
+        while (i !== Len) str += "," + arguments[i], ++i;
+    }
+    return Funktion('"use strict";return[' + str + ']')();
+}
+const [
+    add,
+    sub,
+    mul,
+    div
+] = bulkMakeFunctions(
+    "function(a,b){return a+b}",
+    "function(a,b){return a-b}",
+    "function(a,b){return a*b}",
+    "function(a,b){return a/b}"
+);
+console.log(sub(add(mul(4, 3), div(225, 5)), 7));
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES1')}}{{Spec2('ES1')}}Initiale Definition. Implementiert in JavaScript 1.0.
{{SpecName('ES5.1', '#sec-15.3', 'Function')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-function-objects', 'Function')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-function-objects', 'Function')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.Function")}}

+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/function/isgenerator/index.html b/files/de/web/javascript/reference/global_objects/function/isgenerator/index.html new file mode 100644 index 0000000000..5897905e92 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/function/isgenerator/index.html @@ -0,0 +1,56 @@ +--- +title: Function.prototype.isGenerator() +slug: Web/JavaScript/Reference/Global_Objects/Function/isGenerator +tags: + - Function + - JavaScript + - Method + - Non-standard + - Obsolete +translation_of: Archive/Web/JavaScript/Function.isGenerator +--- +
{{JSRef}} {{non-standard_header}}
+ +

Die nicht standardisierte isGenerator() Methode wird benutzt, um festzustellen, ob eine Funktion ein Generator ist. In Firefox Version 58 wurde diese Methode entfernt.

+ +

Syntax

+ +
fun.isGenerator()
+ +

Rückgabewert

+ +

Ein {{jsxref("Boolean")}} Welcher angibt, ob eine Funktion ein Generator ist.

+ +

Beschreibung

+ +

Die isGenerator() Methode stellt fest, ob eine Funktion fun ein Generator ist. Diese war in einem frühen Vorschlag, wurde jedoch nicht in der ECMAScript 2015 Spezifikation eingefügt.

+ +

Beispiele

+ +
function f() {}
+
+function* g() {
+  yield 42;
+}
+
+console.log('f.isGenerator() = ' + f.isGenerator()); // f.isGenerator() = false
+console.log('g.isGenerator() = ' + g.isGenerator()); // g.isGenerator() = true
+
+ +

Spezifikationen

+ +

Ist in keiner Spezifikation vorhanden. Implementiert in JavaScript 1.8.6.

+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.Function.isGenerator")}}

+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/function/length/index.html b/files/de/web/javascript/reference/global_objects/function/length/index.html new file mode 100644 index 0000000000..3eca57b92a --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/function/length/index.html @@ -0,0 +1,92 @@ +--- +title: Function.length +slug: Web/JavaScript/Reference/Global_Objects/Function/length +tags: + - Function + - JavaScript + - Property +translation_of: Web/JavaScript/Reference/Global_Objects/Function/length +--- +
{{JSRef}}
+ +

Die length Eigenschaft gibt die Anzahl der von der Funktion erwarteten Parameter an.

+ +
{{EmbedInteractiveExample("pages/js/function-length.html")}}
+ + + +
{{js_property_attributes(0,0,1)}}
+ +

Beschreibung

+ +

length ist eine Eigenschaft eines Funktionsobjekts und zeigt an, wie viele Argumente die Funktion erwartet, d.h. die Anzahl der formalen Parameter. Diese Anzahl beinhaltet jedoch nicht den {{jsxref("rest_parameters", "rest Parameter", "", 1)}} und bezieht außerdem auch nur die Parameter ein, die in der Reihenfolge vor dem ersten Parameter mit einem Default-Wert sind. Im Gegensatz dazu ist {{jsxref("Functions/arguments/length", "arguments.length")}} eine in jeder Funktion verfügbare lokale Variable, die die tatsächliche Anzahl der übergebenen Argumente angibt.

+ +

Dateneigenschaft des Function Konstruktors

+ +

Der {{jsxref("Global_Objects/Function", "Function")}} Konstruktor ist selbst ein {{jsxref("Global_Objects/Function", "Function")}} Objekt. Seine Eigenschaft length hat den Wert 1. Dessen Attribute lauten: Writable: false, Enumerable: false, Configurable: true.

+ +

Eigenschaft des Function prototype Objekt

+ +

Die length-Eigenschaft des {{jsxref("Global_Objects/Function", "Function")}} prototype Objekts hat den Wert 0.

+ +

Beispiele

+ +
console.log(Function.length); /* 1 */
+
+console.log((function()        {}).length); /* 0 */
+console.log((function(a)       {}).length); /* 1 */
+console.log((function(a, b)    {}).length); /* 2 etc. */
+
+console.log((function(...args) {}).length);
+// 0, rest parameter wird nicht gezählt
+
+console.log((function(a, b = 1, c) {}).length);
+// 1, nur Parameter vor dem ersten Parameter mit
+// einem Default-Wert werden gezählt
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES1')}}{{Spec2('ES1')}}Initiale Definition. Implementiert in JavaScript 1.1.
{{SpecName('ES5.1', '#sec-15.3.5.1', 'Function.length')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-function-instances-length', 'Function.length')}}{{Spec2('ES6')}}Das configurable Attribut dieser Eigenschaft ist nun true.
{{SpecName('ESDraft', '#sec-function-instances-length', 'Function.length')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.Function.length")}}

+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/function/name/index.html b/files/de/web/javascript/reference/global_objects/function/name/index.html new file mode 100644 index 0000000000..29a3903d56 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/function/name/index.html @@ -0,0 +1,229 @@ +--- +title: Function.name +slug: Web/JavaScript/Reference/Global_Objects/Function/name +tags: + - ECMAScript 2015 + - Function + - JavaScript + - Property +translation_of: Web/JavaScript/Reference/Global_Objects/Function/name +--- +
{{JSRef}}
+ +

Die nur lesende Eigenschaft name eines {{jsxref("Function")}} Objektes welche den Namen, der beim erstellen angegeben wurde enthält oder "anonymous" für anonyme Funktionen.

+ +
{{EmbedInteractiveExample("pages/js/function-name.html")}}
+ + + +
{{js_property_attributes(0,0,1)}}
+ +
 
+ +
+

Zu beachten ist, dass in nicht standardisierten implementierungen vor ES2015 das configurable Attribute ebenfalls false ist.

+
+ +

Beispiele

+ +

Name bei Funktionsanweisungen

+ +

Die name Eigenschaft gibt den Namen einer Funktionsanweisung:

+ +
function doSomething() {}
+doSomething.name; // logs "doSomething"
+
+ +

Name bei Function Konstruktoren

+ +

Funktionen, die mit der Syntax new Function(...) oder nur Function(...) erstellt werden, erstellen {{jsxref("Function")}}  mit dem Namen "anonymous".

+ +
(new Function).name; // "anonymous"
+
+ +

Gefolgerte Funktionsnamen

+ +

Bei Variablen und Methoden kann der Name von anonymen Funktionen von ihrer syntaktischen Position gefolgert werden (neu in ECMAScript 2015).

+ +
var f = function() {};
+var object = {
+  someMethod: function() {}
+};
+
+console.log(f.name); // "f"
+console.log(object.someMethod.name); // "someMethod"
+
+ +

Funktionen mit einem Namen lassen sich mittels {{jsxref("Operators/Function", "Funktionanweisung", "", 1)}} definieren:

+ +
var object = {
+  someMethod: function object_someMethod() {}
+};
+console.log(object.someMethod.name); // logs "object_someMethod"
+
+try { object_someMethod } catch(e) { console.log(e); }
+// ReferenceError: object_someMethod is not defined
+
+ +

Man kann den Namen einer Funktion nicht ändern, weil diese Eigenschaft schreibgeschützt ist:

+ + + +
var object = {
+  // anonyme Funktionsdefinition
+  someMethod: function() {}
+};
+
+object.someMethod.name = 'someMethod';
+console.log(object.someMethod.name); // leerer String, someMethod ist anonym
+
+ +

Um sie zu ändern, kann {{jsxref("Object.defineProperty()")}} eingesetzt werden.

+ +

Kurzform von Methodennamen

+ +
var o = {
+  foo(){}
+};
+o.foo.name; // "foo";
+
+ +

Gebundene Funktionsnamen

+ +

{{jsxref("Function.bind()")}} erzeugt eine Funktion mit dem Namen, der sich aus "bound " und dem Namen der Funktion zusammensetzt.

+ +
function foo() {};
+foo.bind({}).name; // "bound foo"
+ +

Funktionsnamen für Getter und Setter

+ +

Beim Einsatz von get und set Zugriffseigenschaften wird "get" oder "set" im Funktionsnamen auftauchen.

+ +
var o = {
+  get foo(){},
+  set foo(x){}
+};
+
+var descriptor = Object.getOwnPropertyDescriptor(o, "foo");
+descriptor.get.name; // "get foo"
+descriptor.set.name; // "set foo"
+
+ +

Funktionsnamen in Klassen

+ +

Über obj.constructor.name lässt sich die "Klasse" eines Objekts überprüfen (jedoch sollten die unten stehende Warnung berücksichtigt werden):

+ +
function Foo() {}  // ES2015 Syntax: class Foo {}
+
+var fooInstance = new Foo();
+console.log(fooInstance.constructor.name); // logs "Foo"
+
+ +
+

Warnung: Der Skriptinterpreter wird die eingebaute Function.name Eigenschaft nur setzen, wenn eine Funktion keine eigene Eigenschaft mit dem Namen name hat (siehe Kapitel 9.2.11 der ECMAScript2015 Sprachdefinition). Jedoch spezifiziert ES2015 das static Schlüsselwort so, dass statische Methoden als eigene Eigenschaft des Klassenkonstruktorfunktion gesetzt wird (ECMAScript2015, 14.5.14.21.b + 12.2.6.9).

+
+ +

Aus diesem Grund kann der Klassenname für jede Klasse mit einer statischen Methodeneigenschaft name() nicht bestimmt werden:

+ +
class Foo {
+  constructor() {}
+  static name() {}
+}
+
+ +

Mit einer static name() Methode hält Foo.name nicht mehr den aktuellen Klassennamen bereit, sondern eine Referenz zu dem name() Funktionsobjekt. Die oben stehende Klassendefinition in ES2015 Syntax kann in ES5 Syntax für Chrome oder Firefox wie folgt übersetzt werden:

+ +
function Foo() {}
+Object.defineProperty(Foo, 'name', { writable: true});
+Foo.name = function() {};
+
+ +

Beim Versuch die Klasse von fooInstance mithilfe von fooInstance.constructor.name herauszufinden, bekommt man nicht den Klassennamen, sondern eine Referenz auf die statische Methode. Beispiel:

+ +
var fooInstance = new Foo();
+console.log(fooInstance.constructor.name); // logs function name()
+
+ +

Man sieht zudem in der Beispiel  der ES5 Syntax für Chrome und Firefox, dass die Definition der statischen Foo.name Methode überschreibbar (writable) wird. Wird nicht angegeben, ist der Standard für solche Definition nur lesend (read-only).

+ +
Foo.name = 'Hello'
+console.log(Foo.name); // logs "Hello" if class Foo has a static name() property but "Foo" if not.
+
+ +

Aus diesem Grund darf man sich nicht darauf verlassen, dass Function.name immer den Klassennamen zurück gibt.

+ +

Symbols als Funktionsnamen

+ +

Wenn ein {{jsxref("Symbol")}} als Funktionsnamen genutzt wird und das Symbol eine Beschreibung (description) hat, ist der Methodennamen gleich der Beschreibung in eckigen Klammern.

+ +
var sym1 = Symbol("foo");
+var sym2 = Symbol();
+bar o = {
+  [sym1]: function(){},
+  [sym2]: function(){}
+};
+
+o[sym1].name; // "[foo]"
+o[sym2].name; // ""
+
+ +

JavaScript-Kompressoren und -Minimierer

+ +
+

Warnung: Beim der Benutzung von Function.name ist Vorsicht geboten, wenn Codetransformtionen, wie JavaScript Kompressoren (Minimierer) oder Obfuscators, zum Einsatz kommen. Diese Werkzeuge werden häufig im Zuge von Werkzeugketten zum Bauen von JavaScript-Programmen eingesetzt um die Größe eines Programms zu für den Produktivbetrieb zu minimieren. Solche Werkzeuge ändern die Funktionsnamen häufig beim Erstellen.

+
+ +

Quelltext wie dieser:

+ +
function Foo() {};
+var foo = new Foo();
+
+if (foo.constructor.name === 'Foo') {
+  console.log("'foo' is an instance of 'Foo'");
+} else {
+  console.log('Oops!');
+}
+
+ +

wird manchmal zu folgendem Quelltext komprimiert:

+ +
function a() {};
+var b = new a();
+if (b.constructor.name === 'Foo') {
+  console.log("'foo' is an instance of 'Foo'");
+} else {
+  console.log('Oops!');
+}
+
+ +

In der nicht komprimierten Version läuft das Programm in den true-Zweig und gibt 'foo' is an instance of 'Foo' aus. Die komprimierte Version verhält sich anders und läuft in den else-Zweig. Wenn man sich Function.name zurückerinnert, wie in obigen Beispielen, muss beachtet werden, dass Kompressoren die Methodennamen nicht ändert oder nicht annimmt, dass eine Funktion nur in diesem Quelltext benutzt.

+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES2015', '#sec-name', 'name')}}{{Spec2('ES2015')}}Initiale Definition.
{{SpecName('ESDraft', '#sec-function-instances-name', 'name')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ +
+ +{{Compat("javascript.builtins.Function.name")}}
diff --git a/files/de/web/javascript/reference/global_objects/function/prototype/index.html b/files/de/web/javascript/reference/global_objects/function/prototype/index.html new file mode 100644 index 0000000000..afb602971c --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/function/prototype/index.html @@ -0,0 +1,99 @@ +--- +title: Function.prototype +slug: Web/JavaScript/Reference/Global_Objects/Function/prototype +tags: + - Function + - JavaScript + - Property + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Function +--- +
{{JSRef}}
+ +

Die Function.prototype Eigenschaft repräsentiert das {{jsxref("Function")}} Prototyp Objekt.

+ +

Beschreibung

+ +

{{jsxref("Function")}} Objekte erben von Function.prototypeFunction.prototype kann nicht modifiziert werden.

+ +

Eigenschaften

+ +
+
{{jsxref("Function.arguments")}} {{deprecated_inline}}
+
Ein Array, welches die der Funktion übergebenen Parameter enthält. Dieses ist veraltet als Eigenschaft von {{jsxref("Function")}}. Stattdessen sollte das {{jsxref("Functions/arguments", "arguments")}} Objekt in einer Funktion benutzt werden
+
{{jsxref("Function.arity")}} {{obsolete_inline}}
+
Wurde benutzt, um die Anzahl der erwarteten Argumente einer Funktion einzustellen, ist jedoch entfernt. Stattdessen kann die {{jsxref("Function.length", "length")}} Eigenschaft genutzt werden.
+
{{jsxref("Function.caller")}} {{non-standard_inline}}
+
Spezifizert die Funktion, die die aktuelle Funktion aufgerufen hat.
+
{{jsxref("Function.length")}}
+
Spezifizert die Anzahl der Parameter, die eine Funktion erwartet.
+
{{jsxref("Function.name")}}
+
Der Name einer Funktion.
+
{{jsxref("Function.displayName")}} {{non-standard_inline}}
+
Der angezeigte Name einer Funktion.
+
Function.prototype.constructor
+
Spezifiziert die Funktion, die ein Objekt Prototyp erstellt. Mehr Informationen bei {{jsxref("Object.prototype.constructor")}}.
+
+ +

Methoden

+ +
+
{{jsxref("Function.prototype.apply()")}}
+
Führt eine Funktion aus und setzt das this Objekt mit einem übergebenen wert. Parameter können in einem {{jsxref("Array")}} Objekt übergeben werden.
+
{{jsxref("Function.prototype.bind()")}}
+
Erstellt eine neue Funktion, die beim Aufruf einen angegebenen Wert für this hat, wobei die Argumentfolge vor dem Aufruf der neuen Funktion fest steht.
+
{{jsxref("Function.prototype.call()")}}
+
Führt eine Funktion aus und setzt this auf einen übergebenen Wert. Parameter können übergeben werden.
+
{{jsxref("Function.prototype.isGenerator()")}} {{non-standard_inline}}
+
Gibt true zurück, wenn die Funktion ein Generator ist, anderfalls false.
+
{{jsxref("Function.prototype.toSource()")}} {{non-standard_inline}}
+
Gibt eine Stringrepräsentation des Quelltextes einer Funktion zurück. Sie überschreibt die {{jsxref("Object.prototype.toSource")}} Methode.
+
{{jsxref("Function.prototype.toString()")}}
+
Gibt eine Stringrepräsentation des Quelltextes einer Funktion zurück. Sie überschreibt die {{jsxref("Object.prototype.toString")}} Methode.
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES1')}}{{Spec2('ES1')}}Initiale Definition. Implementiert in JavaScript 1.1
{{SpecName('ES5.1', '#sec-15.3.5.2', 'Function.prototype')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-function-instances-prototype', 'Function.prototype')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-function-instances-prototype', 'Function.prototype')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.Function.prototype")}}

+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/function/tosource/index.html b/files/de/web/javascript/reference/global_objects/function/tosource/index.html new file mode 100644 index 0000000000..75552bdc8c --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/function/tosource/index.html @@ -0,0 +1,72 @@ +--- +title: Function.prototype.toSource() +slug: Web/JavaScript/Reference/Global_Objects/Function/toSource +tags: + - Function + - JavaScript + - Method +translation_of: Web/JavaScript/Reference/Global_Objects/Function/toSource +--- +
{{JSRef}} {{non-standard_header}}
+ +

Die toSource() Methode gibt eine Stringrepräsentation des Quelltextes des Objektes zurück.

+ +

Syntax

+ +
function.toSource();
+Function.toSource();
+
+ +

Rückgabewert

+ +

Eine Stringrepräsentation des Quelltextes des Objektes.

+ +

Beschreibung

+ +

Die toSource Methode gibt die folgenden Werte zurück:

+ + + +

Die Methode wird normalerweise von JavaScript selbst aufgerufen und nicht explizit im Quelltext. Man kann toSource während des Debuggens aufrufen, um zu ermitteln, was ein Objekt enthält.

+ +

Spezifikationen

+ +

Ist in keinem Standard. Implementiert in JavaScript 1.3.

+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.Function.toSource")}}

+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/function/tostring/index.html b/files/de/web/javascript/reference/global_objects/function/tostring/index.html new file mode 100644 index 0000000000..5b3978809e --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/function/tostring/index.html @@ -0,0 +1,236 @@ +--- +title: Function.prototype.toString() +slug: Web/JavaScript/Reference/Global_Objects/Function/toString +tags: + - Function + - JavaScript + - Method + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Function/toString +--- +
{{JSRef}}
+ +

Die toString() Methode gibt eine Stringrepräsentation des Quelltextes einer Funktion zurück.

+ +
{{EmbedInteractiveExample("pages/js/function-tostring.html")}}
+ + + +

Syntax

+ +
function.toString()
+ +

Rückgabewert

+ +

Eine Stringrepräsentation des Quelltextes der Funktion.

+ +

Beschreibung

+ +

Das {{jsxref("Function")}} Objekt überschreibt die von {{jsxref("Object")}} geerbte Methode {{jsxref("Object.prototype.toString", "toString")}}; sie erbt nicht von {{jsxref("Object.prototype.toString")}}. Für benutzerdefinierte {{jsxref("Function")}} Objekte gibt die toString Methode einen String zurück, welcher den Quelltext, der die Funktion definiert, enthält.

+ +

JavaScript ruft die toString Methode automatisch auf, wenn einen {{jsxref("Function")}} als Text repräsentiert werden muss, z. B. wenn eine Funktion mit einem String konkateniert wird.

+ +

Die toString() Methode erzeugt eine {{jsxref("TypeError")}} Fehler("Function.prototype.toString called on incompatible object"), wenn das Objekt von this Objekt kein Function Objekt ist. Dieser wird auch bei einem {{jsxref("Proxy")}} Objekte erzeugt, zum Beispiel:

+ +
Function.prototype.toString.call('foo'); // TypeError
+
+var proxy = new Proxy(function() {}, {});
+Function.prototype.toString.call(proxy); // TypeError
+
+ +

Wenn die toString() Methode auf eingebauten Objekten oder einer von Function.prototype.bind erstellten Methode aufgerufen wird, gibt toString() native function string zurück, was wie folgt aussiet:

+ +
"function () {\n    [native code]\n}"
+
+ +

Wenn die toString() Methode auf einer Funktion aufgerufen wird, die mit dem Function Konstruktor erstellt wurde, gibt diese den Quelltext der syntetischen Funktionsdeklerations mit dem Namen "anonymous" zurück, welche die Parameter und den Funktionrumpf enthält.

+ +

Beispiele

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FunktionErgebnis von Function.prototype.toString
+
+function f(){}
+
+
+"function f(){}"
+
+
+class A { a(){} }
+
+
+"class A { a(){} }"
+
+
+function* g(){}
+
+
+"function* g(){}"
+
+
+a => a
+
+
+"a => a"
+
+
+({ a(){} }.a)
+
+
+"a(){}"
+
+
+({ *a(){} }.a)
+
+
+"*a(){}"
+
+
+({ [0](){} }[0])
+
+
+"[0](){}"
+
+
+Object.getOwnPropertyDescriptor({
+    get a(){}
+}, "a").get
+
+
+"get a(){}"
+
+
+Object.getOwnPropertyDescriptor({
+    set a(x){}
+}, "a").set
+
+
+"set a(x){}"
+
+
+Function.prototype.toString
+
+
+"function toString() { [native code] }"
+
+
+(function f(){}.bind(0))
+
+
+"function () { [native code] }"
+
+
+Function("a", "b")
+
+
+"function anonymous(a\n) {\nb\n}"
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES1')}}{{Spec2('ES1')}}Initiale Definition. Implementiert in JavaScript 1.1.
{{SpecName('ES6', '#sec-function.prototype.tostring', 'Function.prototype.toString')}}{{Spec2('ES6')}}Spezifischere Anforderungen wurden an die Stringrepräsentation hinzugefügt.
Function.prototype.toString revisionDraftStandardisierung nativer Funktionsstrings am Zeilenende.
{{SpecName('ESDraft', '#sec-function.prototype.tostring', 'Function.prototype.toString')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.Function.toString")}}

+
+ +

Firefox spezifische Hinweise

+ + + +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/generator/index.html b/files/de/web/javascript/reference/global_objects/generator/index.html new file mode 100644 index 0000000000..af21ef18f8 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/generator/index.html @@ -0,0 +1,137 @@ +--- +title: Generator +slug: Web/JavaScript/Reference/Global_Objects/Generator +tags: + - ECMAScript 2015 + - Generator + - JavaScript + - Legacy Generator + - Legacy Iterator + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Generator +--- +
{{JSRef}}
+ +

Das Generator Objekt wird von der {{jsxref("Statements/function*", "Generator Function", "", 1)}} zurückgegeben und entspricht beidem, dem Iterable Protokoll und dem Iterator Protokoll.

+ +

Syntax

+ +
function* gen() {
+  yield 1;
+  yield 2;
+  yield 3;
+}
+
+var g = gen(); // "Generator { }"
+ +

Methoden

+ +
+
{{jsxref("Generator.prototype.next()")}}
+
Gibt einen Wert vom Generator zurück (ausgelöst durch {{jsxref("Operators/yield", "yield")}}).
+
{{jsxref("Generator.prototype.return()")}}
+
Gibt den gegebene Wert zurück und beendet den Generator.
+
{{jsxref("Generator.prototype.throw()")}}
+
Erzeugt einen Fehler im Generator (beendet auch den Generator, wenn der Fehler nicht im Generator abgefangen wird).
+
+ +

Beispiele

+ +

Ein unendlicher Iterator

+ +
function* idMaker() {
+    var index = 0;
+    while(true)
+        yield index++;
+}
+
+var gen = idMaker(); // "Generator { }"
+
+console.log(gen.next().value); // 0
+console.log(gen.next().value); // 1
+console.log(gen.next().value); // 2
+// ...
+ +

Veraltete Generatorobjekte

+ +

Firefox (SpiderMonkey) hat eine frühe Version der Generatoren in JavaScript 1.7 implementiert, bei der kein Stern (*) in der Funktionsdeklaration nötig war (man benutzte nur das yield Schlüsselwort im Funktionsrumpf). Seit Firefox 58 (Released am 23. Januar 2018) sind diese veralteten Generatoren entfernt ({{bug(1083482)}}).

+ +

Veraltete Generator Methoden

+ +
+
Generator.prototype.next() {{non-standard_inline}}
+
Gibt einen Wert vom {{jsxref("Operators/yield", "yield")}} Ausdruck zurück. Diese korrespondiert mit der next() Methode in ES2015 Generator Objekt.
+
Generator.prototype.close() {{non-standard_inline}}
+
Beendet einen Generator, so dass der Aufruf von next() zu einem {{jsxref("StopIteration")}} Fehler führt. Diese korrespondiert mit der return() Methode in ES2015 Generator Objekt.
+
Generator.prototype.send() {{non-standard_inline}}
+
Wird benutzt, um einen Wert zum Generator zu senden. Der wert wird vom {{jsxref("Operators/yield", "yield")}} Ausdruck zurückgegeben und gibt einen Wert vom nächsten {{jsxref("Operators/yield", "yield")}} Ausdruck zurück. Diese korrespondiert mit der next(x) Methode in ES2015 Generator Objekt.
+
Generator.prototype.throw() {{non-standard_inline}}
+
Erzeugt einen Fehler im Generator. Diese korrespondiert mit der throw() Methode in ES2015 Generator Objekt.
+
+ +

Veraltete Generator Beispiele

+ +
function fibonacci() {
+  var a = yield 1;
+  yield a * 2;
+}
+
+var it = fibonacci();
+console.log(it);          // "Generator {  }"
+console.log(it.next());   // 1
+console.log(it.send(10)); // 20
+console.log(it.close());  // undefined
+console.log(it.next());   // throws StopIteration (as the generator is now closed)
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES2015', '#sec-generator-objects', 'Generator objects')}}{{Spec2('ES2015')}}Initiale Definition.
{{SpecName('ESDraft', '#sec-generator-objects', 'Generator objects')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Generator")}}

+ +

Siehe auch

+ +

Veraltete Generatoren

+ + + +

ES2015 Generatoren

+ + diff --git a/files/de/web/javascript/reference/global_objects/generator/next/index.html b/files/de/web/javascript/reference/global_objects/generator/next/index.html new file mode 100644 index 0000000000..44c45b77cf --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/generator/next/index.html @@ -0,0 +1,116 @@ +--- +title: Generator.prototype.next() +slug: Web/JavaScript/Reference/Global_Objects/Generator/next +tags: + - ECMAScript 2015 + - Generator + - JavaScript + - Method + - Prototype + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Generator/next +--- +
{{JSRef}}
+ +

Die next() Methode gibt ein Objekt mit den zwei Eigenschaften done und value zurück. Man kann der next Methode auch einen Wert für den Generator übergeben.

+ +

Syntax

+ +
gen.next(value)
+ +

Parameter

+ +
+
value
+
Der Wert der zum Generator übermittelt wird.
+
+ +

Return value

+ +

Ein Objekt mit zwei Eigenschaften:

+ + + +

Beispiele

+ +

Einsatz von next()

+ +

Das folgende Beispiel zeigt einen einfachen Generator und das Objekt, welches die next Methode zurück gibt:

+ +
function* gen() {
+  yield 1;
+  yield 2;
+  yield 3;
+}
+
+var g = gen(); // "Generator { }"
+g.next();      // "Object { value: 1, done: false }"
+g.next();      // "Object { value: 2, done: false }"
+g.next();      // "Object { value: 3, done: false }"
+g.next();      // "Object { value: undefined, done: true }"
+
+ +

Werte zum Generator senden

+ +

Im diesem Beispiel wird next mit einem Wert aufgerufen. Zu beachten ist, dass der Generator beim ersten aufruf nicht ausgibt, weil der Generator keinen initialen Wert generiert.

+ +
function* gen() {
+  while(true) {
+    var value = yield null;
+    console.log(value);
+  }
+}
+
+var g = gen();
+g.next(1);
+// "{ value: null, done: false }"
+g.next(2);
+// 2
+// "{ value: null, done: false }"
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES2015', '#sec-generator.prototype.next', 'Generator.prototype.next')}}{{Spec2('ES2015')}}Initiale Definition.
{{SpecName('ESDraft', '#sec-generator.prototype.next', 'Generator.prototype.next')}}{{Spec2('ESDraft')}}
+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.Generator.next")}}

+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/generator/return/index.html b/files/de/web/javascript/reference/global_objects/generator/return/index.html new file mode 100644 index 0000000000..897cd9b4f9 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/generator/return/index.html @@ -0,0 +1,102 @@ +--- +title: Generator.prototype.return() +slug: Web/JavaScript/Reference/Global_Objects/Generator/return +tags: + - ECMAScript 2015 + - Generator + - JavaScript + - Method + - Prototype + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Generator/return +--- +
{{JSRef}}
+ +

Die return() Gibt den gegebenen Wert und beendet den Generator

+ +

Syntax

+ +
gen.return(value)
+ +

Parameter

+ +
+
value
+
Wert, der zurückgegeben werden soll.
+
+ +

Rückgabewert

+ +

Der als Argument angegebene Wert.

+ +

Beispiele

+ +

Einsatz von return()

+ +

Das folgende Beispiel zeigt einen einfachen Generator und den Einsatz der return Methode.

+ +
function* gen() {
+  yield 1;
+  yield 2;
+  yield 3;
+}
+
+var g = gen();
+
+g.next();        // { value: 1, done: false }
+g.return('foo'); // { value: "foo", done: true }
+g.next();        // { value: undefined, done: true }
+
+ +

Wenn return(value) auf einem Generator aufgerufen wird, der schon den Status "completed" hat, bleibt diese auch in diesem Status. Wenn kein Argument übergeben wird, wird das selbe Objekt wir bei .next() zurückgegeben. Wenn ein Parameter übergeben wird, wird dieses als value Eigenschaft beim zurückgegebenen Objekt zurückgegeben.

+ +
function* gen() {
+  yield 1;
+  yield 2;
+  yield 3;
+}
+
+var g = gen();
+g.next(); // { value: 1, done: false }
+g.next(); // { value: 2, done: false }
+g.next(); // { value: 3, done: false }
+g.next(); // { value: undefined, done: true }
+g.return(); // { value: undefined, done: true }
+g.return(1); // { value: 1, done: true }
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES2015', '#sec-generator.prototype.return', 'Generator.prototype.return')}}{{Spec2('ES2015')}}Initiale Definition.
{{SpecName('ESDraft', '#sec-generator.prototype.return', 'Generator.prototype.return')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.Generator.return")}}

+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/generator/throw/index.html b/files/de/web/javascript/reference/global_objects/generator/throw/index.html new file mode 100644 index 0000000000..0879bd77d3 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/generator/throw/index.html @@ -0,0 +1,101 @@ +--- +title: Generator.prototype.throw() +slug: Web/JavaScript/Reference/Global_Objects/Generator/throw +tags: + - ECMAScript 2015 + - Generator + - JavaScript + - Method + - Prototype + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Generator/throw +--- +
{{JSRef}}
+ +

Die throw() Methode übergibt dem Generator eine Exception, welche im Generator zu einem Fehler führt. Zudem wird ein Objekt mit den zwei Eigenschaften done und value zurückgegeben.

+ +

Syntax

+ +
gen.throw(exception)
+ +

Parameter

+ +
+
exception
+
Die Exception, die geworfen werden soll. Für Debuggingzwecke ist es sinnvoll eine Instanz von {{jsxref("Error")}} zu verwenden.
+
+ +

Rückgabewert

+ +

Ein Objekt mit zwei Eigenschaften:

+ + + +

Beispiele

+ +

Einsatz von throw()

+ +

Das folgende Beispiel zeigt einen einfachen Generator und einen Fehler der mit der throw Methode erzeugt wird. Ein Fehler kann mit try...catch abgefangen werden.

+ +
function* gen() {
+  while(true) {
+    try {
+       yield 42;
+    } catch(e) {
+      console.log('Error caught!');
+    }
+  }
+}
+
+var g = gen();
+g.next();
+// { value: 42, done: false }
+g.throw(new Error('Something went wrong'));
+// "Error caught!"
+// { value: 42, done: false }
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES2015', '#sec-generator.prototype.throw', 'Generator.prototype.throw')}}{{Spec2('ES2015')}}Initiale Definition.
{{SpecName('ESDraft', '#sec-generator.prototype.throw', 'Generator.prototype.throw')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.Generator.throw")}}

+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/generatorfunction/index.html b/files/de/web/javascript/reference/global_objects/generatorfunction/index.html new file mode 100644 index 0000000000..717774e10f --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/generatorfunction/index.html @@ -0,0 +1,115 @@ +--- +title: GeneratorFunction +slug: Web/JavaScript/Reference/Global_Objects/GeneratorFunction +tags: + - Constructor + - ECMAScript 2015 + - GeneratorFunction + - Iterator + - JavaScript + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/GeneratorFunction +--- +
{{JSRef}}
+ +

Der GeneratorFunction Konstruktor erstellt eine neues {{jsxref("Statements/function*", "Generator Funktion")}} Objekt. aktuell ist in JavaScript jede Generatorfunktion ein GeneratorFunction Objekt.

+ +

Zu beachten ist, dass GeneratorFunction kein globales Objekt ist. Es kann mit folgendem Quelltext erhalten werden.

+ +
Object.getPrototypeOf(function*(){}).constructor
+
+ +

Syntax

+ +
new GeneratorFunction ([arg1[, arg2[, ...argN]],] functionBody)
+ +

Parameters

+ +
+
arg1, arg2, ... argN
+
Namen für Formale Argumente der Funktion. Jeder muss ein String sein, der mit einem validen JavaScript-Bezeichner korrespondiert oder eine liste von solchen String, welche mit einem Komma getrennt sind; zum Beispiel "x", "theValue", oder "a,b"
+
functionBody
+
Ein String, welcher die Statements für die Funktionsdefinition enthält.
+
+ +

Beschreibung

+ +

{{jsxref("Statements/function*", "Generator Funktion")}} Objekte, die mit dem GeneratorFunction Konstruktor erstellt werden übersetzt, wenn die Funktion erstellt wird. Das ist weniger effizient als die Erstellung mit einer {{jsxref("Statements/function*", "function* Ausdruck")}} und Aufrufe im Quelltext, weil solche Funktionen dem dem Rest des Quelltextes übersetzt werden.

+ +

Alle Argumente, die der Funktion übergeben werden, werden als Namen der Bezeichner behandelt und werden als Parameter der Funktion übergen. Die Reihenfolge ist die angegebene Reihenfolge.

+ +
+

Hinweis: {{jsxref("Statements/function*", "Generator Function")}}, die mit dem GeneratorFunction Konstruktor erstellt werden erstellen keine Closures im Erstellungskontext. Sie werden immer im globalen Sichtbarkeitsbereich erstellt. Wenn diese ausgeführt werden, haben sie nur Zugriff auf eigene lokale Variablen und globale Variablen, jedoch nicht auf Variablen des Scopes, in der GeneratorFunction Konstruktor aufgerufen wird. Dieses unterscheidet diese Methode von {{jsxref("Global_Objects/eval", "eval")}} mit dem Quelltext einer Generatorfunktion.

+
+ +

Das Aufrufen des GeneratorFunction Konstruktors als Funktion (ohne Einsatz des new Operator) hat den selben Effekt wie beim Aufruf als Konstruktor.

+ +

Eigenschaften

+ +
+
GeneratorFunction.length
+
Die Länge des GeneratorFunction Konstruktor Eigenschaft, welche 1 ist.
+
{{jsxref("GeneratorFunction.prototype")}}
+
Erlaubt das Hinzufügen von Eingenschaften für alle Generatorfunktionsobjekte.
+
+ +

GeneratorFunction Prototyp Objekt

+ +

Eigenschaften

+ +
{{page('/de/docs/Web/JavaScript/Reference/Global_Objects/GeneratorFunction/prototype', 'Eigenschaften')}}
+ +

GeneratorFunction Instanzen

+ +

GeneratorFunction Instanzen erben Methoden und Eigenschaften von {{jsxref("GeneratorFunction.prototype")}}. Wie bei allen Konstruktoren, kann man das Konstruktor Prototyp Objekt ändern, um diese für alle GeneratorFunction Instanzen zu übernehmen.

+ +

Beispiele

+ +

Erstellen einer Generatorfunktion mit einem GeneratorFunction Konstruktor

+ +
var GeneratorFunction = Object.getPrototypeOf(function*(){}).constructor
+var g = new GeneratorFunction('a', 'yield a * 2');
+var iterator = g(10);
+console.log(iterator.next().value); // 20
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES2015', '#sec-generatorfunction-objects', 'GeneratorFunction')}}{{Spec2('ES2015')}}Initiale Definition.
{{SpecName('ESDraft', '#sec-generatorfunction-objects', 'GeneratorFunction')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.GeneratorFunction")}}

+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/generatorfunction/prototype/index.html b/files/de/web/javascript/reference/global_objects/generatorfunction/prototype/index.html new file mode 100644 index 0000000000..d4e895ed9c --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/generatorfunction/prototype/index.html @@ -0,0 +1,66 @@ +--- +title: GeneratorFunction.prototype +slug: Web/JavaScript/Reference/Global_Objects/GeneratorFunction/prototype +tags: + - ECMAScript 2015 + - GeneratorFunction + - Iterator + - JavaScript + - Property + - Prototype + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/GeneratorFunction +--- +
{{JSRef}}
+ +

Die GeneratorFunction.prototype Eigenschaft repräsentiert den Prototypen des {{jsxref("GeneratorFunction")}} Objektes.

+ +

Beschreibung

+ +

{{jsxref("GeneratorFunction")}} Objekt erbt von GeneratorFunction.prototype. GeneratorFunction.prototype kann nicht verändert werden.

+ +

Eigenschaften

+ +
+
GeneratorFunction.constructor
+
Der initiale Wert von {{jsxref("GeneratorFunction")}}.
+
GeneratorFunction.prototype.prototype
+
Der Wert ist %GeneratorPrototype%.
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES2015', '#sec-generatorfunction.prototype', 'GeneratorFunction.prototype')}}{{Spec2('ES2015')}}Initiale Definition.
{{SpecName('ESDraft', '#sec-generatorfunction.prototype', 'GeneratorFunction.prototype')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.GeneratorFunction.prototype")}}

+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/globalthis/index.html b/files/de/web/javascript/reference/global_objects/globalthis/index.html new file mode 100644 index 0000000000..00e814c877 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/globalthis/index.html @@ -0,0 +1,96 @@ +--- +title: globalThis +slug: Web/JavaScript/Reference/Global_Objects/globalThis +tags: + - JavaScript + - Property + - Reference + - global + - globalThis + - this +translation_of: Web/JavaScript/Reference/Global_Objects/globalThis +--- +
{{jsSidebar("Objects")}}
+ +

Die Eigenschaft globalThis gibt das globale Objekt der obersten Ebene zurück.

+ +
{{EmbedInteractiveExample("pages/js/globalprops-globalthis.html","shorter")}}
+ + + +

{{JS_Property_Attributes(1, 0, 1)}}

+ +

Beschreibung

+ +

In der Vergangenheit war für den Zugriff auf das globale Objekt in verschiedenen JavaScript-Umgebungen eine unterschiedliche Syntax erforderlich. Im Web kann man {{domxref("Window.window", "window")}}, {{domxref("Window.self", "self")}} oder {{domxref("Window.frames", "frames")}} verwenden - aber in Web Workers funktioniert nur self. In Node.js funktioniert keines der aufgezählten, und es muss stattdessen global verwendet werden.

+ +

Das Schlüsselwort this kann in Funktionen verwendet werden, die nicht im Strict-Mode ausgeführt werden, ist jedoch in Modulen und in Funktionen, die im Strict-Mode ausgeführt werden, undefined. Es kann Function('return this')() verwendet werden, aber Umgebungen, die {{jsxref("eval", "eval()")}} deaktiviert haben, wie etwa durch {{Glossary("CSP")}} in Browsern, verhindern die Verwendung von {{jsxref("Function")}} auf diese Weise.
+
+ Die Eigenschaft globalThis bietet eine Standardmethode für den Zugriff auf den globalen Wert this (und damit auf das globale Objekt selbst) in verschiedenen Umgebungen. Im Gegensatz zu ähnlichen Eigenschaften wie window und self funktioniert es garantiert in Fenster- und Nicht-Fenster-Kontexten. Auf diese Weise können Sie auf konsistente Weise auf das globale Objekt zugreifen, ohne wissen zu müssen, in welcher Umgebung der Code ausgeführt wird. Um sich den Namen zu merken, denken Sie daran, dass this im globalen Bereich globalThis ist.

+ +

HTML und WindowProxy

+ +

In vielen Engines ist globalThis ein Verweis auf das tatsächliche globale Objekt. In Webbrowsern wird jedoch aus Gründen der iframe- und fensterübergreifenden Sicherheit ein {{jsxref("Proxy")}} um das tatsächliche globale Objekt (das nicht direkt verwendet werden kann). Diese Unterscheidung ist im allgemeinen Sprachgebrauch selten relevant, aber wichtig zu beachten.

+ +

Benennung

+ +

Mehrere andere populäre Namen wie self und global wurden aus dem Vorschlag entfernt, da sie die Kompatibilität mit existierendem Code potenziell brechen könnten. Siehe das Dokument "Naming Constraints" für weitere Details.

+ +

Beispiele

+ +

Umgebungsübergreifend den globalen Kontext finden

+ +

Vor globalThis war Function('return this')() die einzige zuverlässige, plattformübergreifende Methode, um das globale Objekt für eine Umgebung abzurufen. Dies führt jedoch in einigen Einstellungen zu CSP Verstößen. Daher verwendet es6-shim eine Prüfung wie diese:

+ +
var getGlobal = function () {
+  if (typeof self !== 'undefined') { return self; }
+  if (typeof window !== 'undefined') { return window; }
+  if (typeof global !== 'undefined') { return global; }
+  throw new Error('unable to locate global object');
+};
+
+var globals = getGlobal();
+
+if (typeof globals.setTimeout !== 'function') {
+  // no setTimeout in this environment!
+}
+
+ +

Mit der Verfügbarkeit von globalThis, ist die zusätzliche umgebungsübergreifende Suche nach dem Global Kontext nicht mehr notwendig:

+ +
if (typeof globalThis.setTimeout !== 'function') {
+  // no setTimeout in this environment!
+}
+ +

Spezifikationen

+ + + + + + + + + + + + +
Specification
{{SpecName("ESDraft", "#sec-globalthis", "globalThis")}}
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.globalThis")}}

+ +

Implementierungsfortschritt

+ +

Die folgende Tabelle enthält einen täglichen Implementierungsstatus für dieses Feature, da sie noch keine browserübergreifende Standardisierung erreicht hat. Die Daten werden generiert, indem die relevanten Funktionstests in Test262, der Standard-Testsuite von JavaScript, im nächtlichen Build oder in der neuesten Version der JavaScript-Engine jedes Browsers ausgeführt werden.

+ +
{{EmbedTest262ReportResultsTable("globalThis")}}
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/index.html b/files/de/web/javascript/reference/global_objects/index.html new file mode 100644 index 0000000000..e7f9d05f3a --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/index.html @@ -0,0 +1,191 @@ +--- +title: Globale Objekte +slug: Web/JavaScript/Reference/Global_Objects +tags: + - JavaScript + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects +--- +
{{jsSidebar("Objects")}}
+ +

Dieses Kapitel dokumentiert alle Objekte, die standardmäßig in einer JavaScript-Umgebung zur Verfügung stehen.

+ +

Der Ausdruck "Globales Objekt" (oder Standardobjekt) ist nicht zu verwechseln mit dem global object. Hier sind globale Objekte Objekte, die zu Objekten im globalen Zugriffsbereich (scope) referenzieren. Das global object selbst wird mit Hilfe des {{jsxref("Operators/this", "this")}}-Operators im globalen Bereich angesprochen (sofern der Strict-Modus von ECMAScript 5 nicht verwendet wird, andernfalls sind sie undefined). Tatsächlich besteht der globale Bereich aus den Eigenschaften (properties) des global object (einschließlich geerbter Eigenschaften, falls vorhanden).

+ +

Andere Objekte im globalen Bereich wurden entweder vom Benutzerscript erstellt oder von der ausführenden Anwendung (meist der Browser) bereitgestellt. Die Anwendungsobjekte, welche im Browserumfeld (DOM) verfügbar sind, werden in der API-Referenz dokumentiert. Eine detailiertere Unterscheidung zwischen DOM- und Kern-JavaScript befindet sich im Kapitel Überblick JavaScript-Technologien.

+ +

Standardobjekte (kategorisiert)

+ +

Eigenschaften

+ +

Diese globalen Eigenschaften stellen einen einfachen Wert dar; sie haben keine weiteren Eigenschaften oder Methoden.

+ + + +

Funktionen

+ +

Diese globalen Funktionen werden als solche aufgerufen, nicht als Teil eines Objektes.

+ + + +

Fundamentale Objekte

+ +

Auf nachfolgenden Objekte basieren alle anderen, in JavaScript verfügbaren Objekte. Sie repräsentieren sowohl Objekte, als auch Funktionen und Fehler.

+ + + +

Zahlen und Zeiten

+ +

Objekte, die sich mit Zahlen und Zeit-Daten, sowie mathematischen Berechnungen befassen.

+ + + +

Textverarbeitung

+ +

Objekte zum Verarbeiten von Text.

+ + + +

Indexgebundene Kollektionen

+ +

Diese Objekte umfassen Sammlungen von anderen Objekten, auf die über einen fortlaufenden, nummerischen Index zugegriffen werden kann. Zu ihnen gehören Arrays (Felder) und Array-ähnliche Objekte.

+ + + +

Schlüsselgebundene Kollektionen

+ +

Diese Objekte umfassen Sammlungen von anderen Objekten, auf die über einen wahlfreien Schlüssel zugegriffen werden kann; sie lassen sich zudem nach Einfügereihenfolge durchlaufen.

+ + + +

Vector Kollektionen

+ +

{{Glossary("SIMD")}} Vector Datentypen sind Objekte in denen die Daten in Bahnen angeordnet sind.

+ + + +

Strukturierte Daten

+ +

Datenpuffer und JavaScript-Objekt-Notation.

+ + + +

Kontrollabstraktions Objekte

+ + + +

Reflection

+ + + +

Internationalisierung

+ +

Ergänzungen zum ECMAScript-Kern für Aufgaben, die verschiedene Sprachen unterstützen sollen.

+ + + +

WebAssembly

+ + + +

Sonstiges

+ + diff --git a/files/de/web/javascript/reference/global_objects/infinity/index.html b/files/de/web/javascript/reference/global_objects/infinity/index.html new file mode 100644 index 0000000000..f862732ec2 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/infinity/index.html @@ -0,0 +1,83 @@ +--- +title: Infinity +slug: Web/JavaScript/Reference/Global_Objects/Infinity +tags: + - JavaScript +translation_of: Web/JavaScript/Reference/Global_Objects/Infinity +--- +
{{jsSidebar("Objects")}}
+ +

Die globale Eigenschaft Infinity ist ein numerischer Wert, der die Unendlichkeit repräsentiert.

+ +

{{js_property_attributes(0,0,0)}}

+ +
{{EmbedInteractiveExample("pages/js/globalprops-infinity.html")}}
+ + + +

Syntax

+ +
Infinity 
+ +

Beschreibung

+ +

Infinity ist eine Eigenschaft des globalen Objekts, was bedeutet, dass es eine Variable im globalen Gültigkeitsbereich ist.

+ +

Der initiale Wert von Infinity entspricht {{jsxref("Number.POSITIVE_INFINITY")}}. Der Wert von Infinity (positiv unendlich) ist größer als alle anderen Nummern. Mathematisch entspricht der Wert der Unendlichkeit. Zum Beispiel ist das Produkt einer positiven Zahl mit Infinity immer Infinity. Jede Division einer Zahl durch Infinity ergibt 0.

+ +

In der ECMAScript 5 Spezifikation wurde Infinity als read only Eigenschaft (nur lesender Zugriff) eingestuft. (Dieses wurde in JavaScript 1.8.5 / Firefox 4 implementiert.)

+ +

Beispiele

+ +
console.log(Infinity);           /* Infinity */
+console.log(Infinity + 1);       /* Infinity */
+console.log(Math.pow(10, 1000)); /* Infinity */
+console.log(Math.log(0));        /* -Infinity */
+console.log(1 / Infinity);       /* 0 */
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES1')}}{{Spec2('ES1')}}Initiale Definition. Implementiert in JavaScript 1.3
{{SpecName('ES5.1', '#sec-15.1.1.2', 'Infinity')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-value-properties-of-the-global-object-infinity', 'Infinity')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-value-properties-of-the-global-object-infinity', 'Infinity')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Infinity")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/int16array/index.html b/files/de/web/javascript/reference/global_objects/int16array/index.html new file mode 100644 index 0000000000..4d2ff2cdab --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/int16array/index.html @@ -0,0 +1,204 @@ +--- +title: Int16Array +slug: Web/JavaScript/Reference/Global_Objects/Int16Array +tags: + - Constructor + - JavaScript + - TypedArray + - TypedArrays +translation_of: Web/JavaScript/Reference/Global_Objects/Int16Array +--- +
{{JSRef}}
+ +

Das Int16Array getypte Array repräsentiert ein Array von zweierkomplement 16 Bit vorzeichenbehafteten, ganze Zahlen in der Plattform-Byte-Reihenfolge. Wenn Kontrolle über die Byte-Reihenfolge erforderlich ist, muss {{jsxref("DataView")}} stattdessen benutz werden. Die Inhalte werden mit 0 initialisiert. Wie erwartet, kann man Element in einem Array mit Objektmethoden referenzieren oder man benutzt die normale Arrayindex-Syntax (das ist die Klammernotation).

+ +

Syntax

+ +
new Int16Array(); // new in ES2017
+new Int16Array(length);
+new Int16Array(typedArray);
+new Int16Array(object);
+new Int16Array(buffer [, byteOffset [, length]]);
+ +

Für mehr Informationen über die Konstruktorensyntax und die Parameter, siehe auf der Seite TypedArray.

+ +

Eigenschaften

+ +
+
{{jsxref("TypedArray.BYTES_PER_ELEMENT", "Int16Array.BYTES_PER_ELEMENT")}}
+
Gibt die Größe der Elemente zurück. 2 im Falle eines Int16Array.
+
Int16Array.length
+
Statische Längeneigenschaft welche den Wert 0 hat. Für die aktuelle Länge (Anzahl der Elemente) siehe {{jsxref("TypedArray.prototype.length", "Int16Array.prototype.length")}}.
+
{{jsxref("TypedArray.name", "Int16Array.name")}}
+
Gibt den Stringwert des Konstruktornamens zurück. In Fall eines Int16Array Typs: "Int16Array".
+
{{jsxref("TypedArray.prototype", "Int16Array.prototype")}}
+
Prototyp für das TypedArray Objekt.
+
+ +

Methoden

+ +
+
{{jsxref("TypedArray.from", "Int16Array.from()")}}
+
Erstelle ein neues Int16Array von einem Array-Ähnlichen oder Iterable Objekt. Siehe auch {{jsxref("Array.from()")}}.
+
{{jsxref("TypedArray.of", "Int16Array.of()")}}
+
Erstellt ein neues Int16Array mit einer variablen Anzahl an Argumenten. Sie auch {{jsxref("Array.of()")}}.
+
+ +

Int16Array Prototyp

+ +

Alle Int16Array Objekte erben von {{jsxref("TypedArray.prototype", "%TypedArray%.prototype")}}.

+ +

Eigenschaften

+ +
+
Int16Array.prototype.constructor
+
Gibt die Funktion, die einen Instanzprototyp erstellt zurück. Diese ist auf den Int16Array Konstruktor voreingestellt.
+
{{jsxref("TypedArray.prototype.buffer", "Int16Array.prototype.buffer")}} {{readonlyInline}}
+
Gibt die {{jsxref("ArrayBuffer")}} Referenz zurück, welche nach der Erstellung eines Int16Array fest ist und nicht mehr geändert werden kann.
+
{{jsxref("TypedArray.prototype.byteLength", "Int16Array.prototype.byteLength")}} {{readonlyInline}}
+
Gibt die Länge (in Bytes) des Int16Array vom Anfang seines {{jsxref("ArrayBuffer")}} zurück. WIrd beim erstellen festgesetzt und kann nicht geändert werden.
+
{{jsxref("TypedArray.prototype.byteOffset", "Int16Array.prototype.byteOffset")}} {{readonlyInline}}
+
Gibt das Offset (in Bytes) des Int16Array vom Anfang seines {{jsxref("ArrayBuffer")}} zurück. WIrd beim erstellen festgesetzt und kann nicht geändert werden.
+
{{jsxref("TypedArray.prototype.length", "Int16Array.prototype.length")}} {{readonlyInline}}
+
Gibt Anzahl der Elemente des Int16Array zurück. WIrd beim erstellen festgesetzt und kann nicht geändert werden.
+
+ +

Methoden

+ +
+
{{jsxref("TypedArray.copyWithin", "Int16Array.prototype.copyWithin()")}}
+
Kopiert eine Sequenz von Arrayelementen in das Array. Siehe auch {{jsxref("Array.prototype.copyWithin()")}}.
+
{{jsxref("TypedArray.entries", "Int16Array.prototype.entries()")}}
+
Gibt ein neues Array Iterator Objekt zurück, welches die Schlüssel/Wertepaare für jeden Index im Array enthält. Siehe auch {{jsxref("Array.prototype.entries()")}}.
+
{{jsxref("TypedArray.every", "Int16Array.prototype.every()")}}
+
Teste, ob alle Elemente einem, als Funktion übergebenen, Test erfüllen. Siehe auch Array.prototype.every()")}}.
+
{{jsxref("TypedArray.fill", "Int16Array.prototype.fill()")}}
+
Füllt alle Elemente eines Arrays vom Startindex bis zum Endindex mit einem statischen Wert. Siehe auch {{jsxref("Array.prototype.fill()")}}.
+
{{jsxref("TypedArray.filter", "Int16Array.prototype.filter()")}}
+
Erstellt ein neues Array mit allen Elementen des alten Arrays, für die eine übergebene Filterfunktion true zurückgibt. Siehe auch {{jsxref("Array.prototype.filter()")}}.
+
{{jsxref("TypedArray.find", "Int16Array.prototype.find()")}}
+
Gibt ein gefundenes Element des Arrays zurück, welches bei der übergebenen Testfunktion true zurückgibt oder undefined wenn es keins gibt. Siehe auch {{jsxref("Array.prototype.find()")}}.
+
{{jsxref("TypedArray.findIndex", "Int16Array.prototype.findIndex()")}}
+
Gibt den Index eines gefundenen Elements des Arrays zurück, welches bei der übergebenen Testfunktion true zurückgibt oder -1 wenn es keins gibt. Siehe auch {{jsxref("Array.prototype.findIndex()")}}.
+
{{jsxref("TypedArray.forEach", "Int16Array.prototype.forEach()")}}
+
Ruft für jedes Element in einem Array eine Funktion auf. Siehe auch {{jsxref("Array.prototype.forEach()")}}.
+
{{jsxref("TypedArray.includes", "Int16Array.prototype.includes()")}} {{experimental_inline}}
+
Überprüft, ob ein getyptes Array ein bestimmtes Element enthält und gibt gegebenfalls true oderfalse zurück. Siehe auch {{jsxref("Array.prototype.includes()")}}.
+
{{jsxref("TypedArray.indexOf", "Int16Array.prototype.indexOf()")}}
+
Gibt den ersten Index eines Elementes zurück, welches gleiche eines spezifizierten Wertes ist oder -1 wenn es keins gibt. Siehe auch {{jsxref("Array.prototype.indexOf()")}}.
+
{{jsxref("TypedArray.join", "Int16Array.prototype.join()")}}
+
Führt alle Elemente eines Arrays zu einem String zusammen. Siehe auch {{jsxref("Array.prototype.join()")}}.
+
{{jsxref("TypedArray.keys", "Int16Array.prototype.keys()")}}
+
Gibt ein neuen Array Iterator zurück, der alle Schlüssel für jeden Index im Array enthält. Siehe auch {{jsxref("Array.prototype.keys()")}}.
+
{{jsxref("TypedArray.lastIndexOf", "Int16Array.prototype.lastIndexOf()")}}
+
Gibt den letzen Index eines Elementes zurück, welches gleiche eines spezifizierten Wertes ist oder -1 wenn es keins gibt. Siehe auch {{jsxref("Array.prototype.lastIndexOf()")}}.
+
{{jsxref("TypedArray.map", "Int16Array.prototype.map()")}}
+
Erstellt ein neues Array mit den Resultaten spezifizierten Funktion, die für jedes Element aufgerufen wird. Siehe auch {{jsxref("Array.prototype.map()")}}.
+
{{jsxref("TypedArray.move", "Int16Array.prototype.move()")}} {{non-standard_inline}} {{unimplemented_inline}}
+
Ehemalige nicht Standardisierte Version von {{jsxref("TypedArray.copyWithin", "Int16Array.prototype.copyWithin()")}}.
+
{{jsxref("TypedArray.reduce", "Int16Array.prototype.reduce()")}}
+
Führt eine Funktion gegeben einen Akkumulator und jeden Wert des Array aus (von links nach rechts), um das Array auf einen Wert zu reduzieren. Siehe auch {{jsxref("Array.prototype.reduce()")}}.
+
{{jsxref("TypedArray.reduceRight", "Int16Array.prototype.reduceRight()")}}
+
Führt eine Funktion gegeben einen Akkumulator und jeden Wert des Array aus (von rechts nach links), um das Array auf einen Wert zu reduzieren. Siehe auch {{jsxref("Array.prototype.reduce()")}}.
+
{{jsxref("TypedArray.reverse", "Int16Array.prototype.reverse()")}}
+
Kehrt die Reihenfolge von jedem Element eines Arrays um — das Erste wird das Letzte und das Letzte wird das Erste. Siehe auch {{jsxref("Array.prototype.reverse()")}}.
+
{{jsxref("TypedArray.set", "Int16Array.prototype.set()")}}
+
Speichert mehrere Werte in einem getypten Array und ließt Eingabewerte aus einem spezifiziertem Array.
+
{{jsxref("TypedArray.slice", "Int16Array.prototype.slice()")}}
+
Extrahiert einen Bereich aus einem Array und gibt diesen in einem neuen Array zurück. Siehe auch {{jsxref("Array.prototype.slice()")}}.
+
{{jsxref("TypedArray.some", "Int16Array.prototype.some()")}}
+
Gibt true zurück, wenn nur ein Element in einem Array den als Funktion übergebenen Test erfüllt. Siehe auch {{jsxref("Array.prototype.some()")}}
+
{{jsxref("TypedArray.sort", "Int16Array.prototype.sort()")}}
+
Sortiert die Elemente eines Arrays in-Place und gibt das Array zurück. Siehe auch {{jsxref("Array.prototype.sort()")}}.
+
{{jsxref("TypedArray.subarray", "Int16Array.prototype.subarray()")}}
+
Gibt ein neues Int16Array vom gegebenen Start- und Endindex zurück.
+
{{jsxref("TypedArray.values", "Int16Array.prototype.values()")}}
+
Gibt ein neues Array Iterator Objekt zurück, welches die Werte von jedem Index im Array enthält. Siehe auch {{jsxref("Array.prototype.values()")}}.
+
{{jsxref("TypedArray.toLocaleString", "Int16Array.prototype.toLocaleString()")}}
+
Gibt einen Ortsabhängige Stringrepräsentation des Arrays und seiner Element zurück. Siehe auch {{jsxref("Array.prototype.toLocaleString()")}}.
+
{{jsxref("TypedArray.toString", "Int16Array.prototype.toString()")}}
+
Gibt einen Stringrepräsentation des Arrays und seiner Element zurück. Siehe auch {{jsxref("Array.prototype.toString()")}}.
+
{{jsxref("TypedArray.@@iterator", "Int16Array.prototype[@@iterator]()")}}
+
Gibt ein neues Array Iterator Objekt zurück, welches die zugehörigen Werte für jeden Index im Array enthalten.
+
+ +

Beispiele

+ +

Verschiedene Wege, um ein Int16Array zu erstellen:

+ +
// From a length
+var int16 = new Int16Array(2);
+int16[0] = 42;
+console.log(int16[0]); // 42
+console.log(int16.length); // 2
+console.log(int16.BYTES_PER_ELEMENT); // 2
+
+// From an array
+var arr = new Int16Array([21,31]);
+console.log(arr[1]); // 31
+
+// From another TypedArray
+var x = new Int16Array([21, 31]);
+var y = new Int16Array(x);
+console.log(y[0]); // 21
+
+// From an ArrayBuffer
+var buffer = new ArrayBuffer(8);
+var z = new Int16Array(buffer, 0, 4);
+
+// From an iterable
+var iterable = function*(){ yield* [1,2,3]; }();
+var int16 = new Int16Array(iterable);
+// Int16Array[1, 2, 3]
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('Typed Array')}}{{Spec2('Typed Array')}}Ersetzt in ECMAScript 2015.
{{SpecName('ES2015', '#table-49', 'TypedArray constructors')}}{{Spec2('ES2015')}}Initiale Definition in einem ECMA Standard. Spezifiziert, dass ein new benötigt wird.
{{SpecName('ESDraft', '#table-49', 'TypedArray constructors')}}{{Spec2('ESDraft')}}ECMAScript 2017 ändert den Int16Array Konstruktor, um die ToIndex Operation zu benutzen und erlaubt einen Konstruktor ohne Parameter.
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Int16Array")}}

+ +

Kompatibilitätshinweise

+ +

Mit Beginn von ECMAScript 2015, müssen Int16Array Konstruktoren mit einem {{jsxref("Operators/new", "new")}} benutzt werden. Der Aufruf eines Int16Array Konstruktors als eine Funktion ohne new, Führt jetzt zu einem {{jsxref("TypeError")}}.

+ +
var dv = Int16Array([1, 2, 3]);
+// TypeError: calling a builtin Int16Array constructor
+// without new is forbidden
+ +
var dv = new Int16Array([1, 2, 3]);
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/int32array/index.html b/files/de/web/javascript/reference/global_objects/int32array/index.html new file mode 100644 index 0000000000..ed2da2bcdc --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/int32array/index.html @@ -0,0 +1,204 @@ +--- +title: Int32Array +slug: Web/JavaScript/Reference/Global_Objects/Int32Array +tags: + - Constructor + - JavaScript + - TypedArray + - TypedArrays +translation_of: Web/JavaScript/Reference/Global_Objects/Int32Array +--- +
{{JSRef}}
+ +

Das Int32Array getypte Array repräsentiert ein Array von zweierkomplement 32 Bit vorzeichenbehafteten, ganze Zahlen in der Plattform-Byte-Reihenfolge. Wenn Kontrolle über die Byte-Reihenfolge erforderlich ist, muss {{jsxref("DataView")}} stattdessen benutz werden. Die Inhalte werden mit 0 initialisiert. Wie erwartet, kann man Element in einem Array mit Objektmethoden referenzieren oder man benutzt die normale Arrayindex-Syntax (das ist die Klammernotation).

+ +

Syntax

+ +
new Int32Array(); // new in ES2017
+new Int32Array(length);
+new Int32Array(typedArray);
+new Int32Array(object);
+new Int32Array(buffer [, byteOffset [, length]]);
+ +

Für mehr Informationen über die Konstruktorensyntax und die Parameter, siehe auf der Seite TypedArray.

+ +

Eigenschaften

+ +
+
{{jsxref("TypedArray.BYTES_PER_ELEMENT", "Int32Array.BYTES_PER_ELEMENT")}}
+
Gibt die Größe der Elemente zurück. 4 im Falle eines Int32Array.
+
Int32Array.length
+
Statische Längeneigenschaft welche den Wert 0 hat. Für die aktuelle Länge (Anzahl der Elemente) siehe {{jsxref("TypedArray.prototype.length", "Int32Array.prototype.length")}}.
+
{{jsxref("TypedArray.name", "Int32Array.name")}}
+
Gibt den Stringwert des Konstruktornamens zurück. In Fall eines Int32Array Typs: "Int32Array".
+
{{jsxref("TypedArray.prototype", "Int32Array.prototype")}}
+
Prototyp für das TypedArray Objekt.
+
+ +

Methoden

+ +
+
{{jsxref("TypedArray.from", "Int32Array.from()")}}
+
Erstelle ein neues Int32Array von einem Array-Ähnlichen oder Iterable Objekt. Siehe auch {{jsxref("Array.from()")}}.
+
{{jsxref("TypedArray.of", "Int32Array.of()")}}
+
Erstellt ein neues Int32Array mit einer variablen Anzahl an Argumenten. Sie auch {{jsxref("Array.of()")}}.
+
+ +

Int32Array Prototyp

+ +

Alle Int32Array Objekte erben von {{jsxref("TypedArray.prototype", "%TypedArray%.prototype")}}.

+ +

Eigenschaften

+ +
+
Int32Array.prototype.constructor
+
Gibt die Funktion, die einen Instanzprototyp erstellt zurück. Diese ist auf den Int32Array Konstruktor voreingestellt.
+
{{jsxref("TypedArray.prototype.buffer", "Int32Array.prototype.buffer")}} {{readonlyInline}}
+
Gibt die {{jsxref("ArrayBuffer")}} Referenz zurück, welche nach der Erstellung eines Int32Array fest ist und nicht mehr geändert werden kann.
+
{{jsxref("TypedArray.prototype.byteLength", "Int32Array.prototype.byteLength")}} {{readonlyInline}}
+
Gibt die Länge (in Bytes) des Int32Array vom Anfang seines {{jsxref("ArrayBuffer")}} zurück. WIrd beim erstellen festgesetzt und kann nicht geändert werden.
+
{{jsxref("TypedArray.prototype.byteOffset", "Int32Array.prototype.byteOffset")}} {{readonlyInline}}
+
Gibt das Offset (in Bytes) des Int32Array vom Anfang seines {{jsxref("ArrayBuffer")}} zurück. WIrd beim erstellen festgesetzt und kann nicht geändert werden.
+
{{jsxref("TypedArray.prototype.length", "Int32Array.prototype.length")}} {{readonlyInline}}
+
Gibt Anzahl der Elemente des Int32Array zurück. WIrd beim erstellen festgesetzt und kann nicht geändert werden.
+
+ +

Methoden

+ +
+
{{jsxref("TypedArray.copyWithin", "Int32Array.prototype.copyWithin()")}}
+
Kopiert eine Sequenz von Arrayelementen in das Array. Siehe auch {{jsxref("Array.prototype.copyWithin()")}}.
+
{{jsxref("TypedArray.entries", "Int32Array.prototype.entries()")}}
+
Gibt ein neues Array Iterator Objekt zurück, welches die Schlüssel/Wertepaare für jeden Index im Array enthält. Siehe auch {{jsxref("Array.prototype.entries()")}}.
+
{{jsxref("TypedArray.every", "Int32Array.prototype.every()")}}
+
Teste, ob alle Elemente einem, als Funktion übergebenen, Test erfüllen. Siehe auch Array.prototype.every()")}}.
+
{{jsxref("TypedArray.fill", "Int32Array.prototype.fill()")}}
+
Füllt alle Elemente eines Arrays vom Startindex bis zum Endindex mit einem statischen Wert. Siehe auch {{jsxref("Array.prototype.fill()")}}.
+
{{jsxref("TypedArray.filter", "Int32Array.prototype.filter()")}}
+
Erstellt ein neues Array mit allen Elementen des alten Arrays, für die eine übergebene Filterfunktion true zurückgibt. Siehe auch {{jsxref("Array.prototype.filter()")}}.
+
{{jsxref("TypedArray.find", "Int32Array.prototype.find()")}}
+
Gibt ein gefundenes Element des Arrays zurück, welches bei der übergebenen Testfunktion true zurückgibt oder undefined wenn es keins gibt. Siehe auch {{jsxref("Array.prototype.find()")}}.
+
{{jsxref("TypedArray.findIndex", "Int32Array.prototype.findIndex()")}}
+
Gibt den Index eines gefundenen Elements des Arrays zurück, welches bei der übergebenen Testfunktion true zurückgibt oder -1 wenn es keins gibt. Siehe auch {{jsxref("Array.prototype.findIndex()")}}.
+
{{jsxref("TypedArray.forEach", "Int32Array.prototype.forEach()")}}
+
Ruft für jedes Element in einem Array eine Funktion auf. Siehe auch {{jsxref("Array.prototype.forEach()")}}.
+
{{jsxref("TypedArray.includes", "Int32Array.prototype.includes()")}} {{experimental_inline}}
+
Überprüft, ob ein getyptes Array ein bestimmtes Element enthält und gibt gegebenfalls true oderfalse zurück. Siehe auch {{jsxref("Array.prototype.includes()")}}.
+
{{jsxref("TypedArray.indexOf", "Int32Array.prototype.indexOf()")}}
+
Gibt den ersten Index eines Elementes zurück, welches gleiche eines spezifizierten Wertes ist oder -1 wenn es keins gibt. Siehe auch {{jsxref("Array.prototype.indexOf()")}}.
+
{{jsxref("TypedArray.join", "Int32Array.prototype.join()")}}
+
Führt alle Elemente eines Arrays zu einem String zusammen. Siehe auch {{jsxref("Array.prototype.join()")}}.
+
{{jsxref("TypedArray.keys", "Int32Array.prototype.keys()")}}
+
Gibt ein neuen Array Iterator zurück, der alle Schlüssel für jeden Index im Array enthält. Siehe auch {{jsxref("Array.prototype.keys()")}}.
+
{{jsxref("TypedArray.lastIndexOf", "Int32Array.prototype.lastIndexOf()")}}
+
Gibt den letzen Index eines Elementes zurück, welches gleiche eines spezifizierten Wertes ist oder -1 wenn es keins gibt. Siehe auch {{jsxref("Array.prototype.lastIndexOf()")}}.
+
{{jsxref("TypedArray.map", "Int32Array.prototype.map()")}}
+
Erstellt ein neues Array mit den Resultaten spezifizierten Funktion, die für jedes Element aufgerufen wird. Siehe auch {{jsxref("Array.prototype.map()")}}.
+
{{jsxref("TypedArray.move", "Int32Array.prototype.move()")}} {{non-standard_inline}} {{unimplemented_inline}}
+
Ehemalige nicht Standardisierte Version von {{jsxref("TypedArray.copyWithin", "Int32Array.prototype.copyWithin()")}}.
+
{{jsxref("TypedArray.reduce", "Int32Array.prototype.reduce()")}}
+
Führt eine Funktion gegeben einen Akkumulator und jeden Wert des Array aus (von links nach rechts), um das Array auf einen Wert zu reduzieren. Siehe auch {{jsxref("Array.prototype.reduce()")}}.
+
{{jsxref("TypedArray.reduceRight", "Int32Array.prototype.reduceRight()")}}
+
Führt eine Funktion gegeben einen Akkumulator und jeden Wert des Array aus (von rechts nach links), um das Array auf einen Wert zu reduzieren. Siehe auch {{jsxref("Array.prototype.reduce()")}}.
+
{{jsxref("TypedArray.reverse", "Int32Array.prototype.reverse()")}}
+
Kehrt die Reihenfolge von jedem Element eines Arrays um — das Erste wird das Letzte und das Letzte wird das Erste. Siehe auch {{jsxref("Array.prototype.reverse()")}}.
+
{{jsxref("TypedArray.set", "Int32Array.prototype.set()")}}
+
Speichert mehrere Werte in einem getypten Array und ließt Eingabewerte aus einem spezifiziertem Array.
+
{{jsxref("TypedArray.slice", "Int32Array.prototype.slice()")}}
+
Extrahiert einen Bereich aus einem Array und gibt diesen in einem neuen Array zurück. Siehe auch {{jsxref("Array.prototype.slice()")}}.
+
{{jsxref("TypedArray.some", "Int32Array.prototype.some()")}}
+
Gibt true zurück, wenn nur ein Element in einem Array den als Funktion übergebenen Test erfüllt. Siehe auch {{jsxref("Array.prototype.some()")}}
+
{{jsxref("TypedArray.sort", "Int32Array.prototype.sort()")}}
+
Sortiert die Elemente eines Arrays in-Place und gibt das Array zurück. Siehe auch {{jsxref("Array.prototype.sort()")}}.
+
{{jsxref("TypedArray.subarray", "Int32Array.prototype.subarray()")}}
+
Gibt ein neues Int32Array vom gegebenen Start- und Endindex zurück.
+
{{jsxref("TypedArray.values", "Int32Array.prototype.values()")}}
+
Gibt ein neues Array Iterator Objekt zurück, welches die Werte von jedem Index im Array enthält. Siehe auch {{jsxref("Array.prototype.values()")}}.
+
{{jsxref("TypedArray.toLocaleString", "Int32Array.prototype.toLocaleString()")}}
+
Gibt einen Ortsabhängige Stringrepräsentation des Arrays und seiner Element zurück. Siehe auch {{jsxref("Array.prototype.toLocaleString()")}}.
+
{{jsxref("TypedArray.toString", "Int32Array.prototype.toString()")}}
+
Gibt einen Stringrepräsentation des Arrays und seiner Element zurück. Siehe auch {{jsxref("Array.prototype.toString()")}}.
+
{{jsxref("TypedArray.@@iterator", "Int32Array.prototype[@@iterator]()")}}
+
Gibt ein neues Array Iterator Objekt zurück, welches die zugehörigen Werte für jeden Index im Array enthalten.
+
+ +

Beispiele

+ +

Verschiedene Wege, um ein Int32Array zu erstellen:

+ +
// From a length
+var int32 = new Int32Array(2);
+int32[0] = 42;
+console.log(int32[0]); // 42
+console.log(int32.length); // 2
+console.log(int32.BYTES_PER_ELEMENT); // 4
+
+// From an array
+var arr = new Int32Array([21,31]);
+console.log(arr[1]); // 31
+
+// From another TypedArray
+var x = new Int32Array([21, 31]);
+var y = new Int32Array(x);
+console.log(y[0]); // 21
+
+// From an ArrayBuffer
+var buffer = new ArrayBuffer(16);
+var z = new Int32Array(buffer, 0, 4);
+
+// From an iterable
+var iterable = function*(){ yield* [1,2,3]; }();
+var int32 = new Int32Array(iterable);
+// Int32Array[1, 2, 3]
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('Typed Array')}}{{Spec2('Typed Array')}}Ersetzt in ECMAScript 2015.
{{SpecName('ES2015', '#table-49', 'TypedArray constructors')}}{{Spec2('ES2015')}}Initiale Definition in einem ECMA Standard. Spezifiziert, dass ein new benötigt wird.
{{SpecName('ESDraft', '#table-49', 'TypedArray constructors')}}{{Spec2('ESDraft')}}ECMAScript 2017 ändert den Int32Array Konstruktor, um die ToIndex Operation zu benutzen und erlaubt einen Konstruktor ohne Parameter.
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Int32Array")}}

+ +

Kompatibilitätshinweise

+ +

Mit Beginn von ECMAScript 2015, müssen Int32Array Konstruktoren mit einem {{jsxref("Operators/new", "new")}} benutzt werden. Der Aufruf eines Int32Array Konstruktors als eine Funktion ohne new, Führt jetzt zu einem {{jsxref("TypeError")}}.

+ +
var dv = Int32Array([1, 2, 3]);
+// TypeError: calling a builtin Int32Array constructor
+// without new is forbidden
+ +
var dv = new Int32Array([1, 2, 3]);
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/int8array/index.html b/files/de/web/javascript/reference/global_objects/int8array/index.html new file mode 100644 index 0000000000..2358f38883 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/int8array/index.html @@ -0,0 +1,209 @@ +--- +title: Int8Array +slug: Web/JavaScript/Reference/Global_Objects/Int8Array +tags: + - Constructor + - Int8Array + - JavaScript + - TypedArray + - TypedArrays +translation_of: Web/JavaScript/Reference/Global_Objects/Int8Array +--- +
{{JSRef}}
+ +

Das Int8Array getypte Array repräsentiert ein Array von zweierkomplement 8 Bit vorzeichenbehafteten, ganze Zahlen in der Plattform-Byte-Reihenfolge. Die Inhalte werden mit 0 initialisiert. Wie erwartet, kann man Element in einem Array mit Objektmethoden referenzieren oder man benutzt die normale Arrayindex-Syntax (das ist die Klammernotation).

+ +

Syntax

+ +
new Int8Array(); // new in ES2017
+new Int8Array(length);
+new Int8Array(typedArray);
+new Int8Array(object);
+new Int8Array(buffer [, byteOffset [, length]]);
+ +

Für mehr Informationen über die Konstruktorensyntax und die Parameter, siehe auf der Seite TypedArray.

+ +

Eigenschaften

+ +
+
{{jsxref("TypedArray.BYTES_PER_ELEMENT", "Int8Array.BYTES_PER_ELEMENT")}}
+
Gibt die Größe der Elemente zurück. 1 im Falle eines Int8rray.
+
Int8Array.length
+
Statische Längeneigenschaft welche den Wert 0 hat. Für die aktuelle Länge (Anzahl der Elemente) siehe {{jsxref("TypedArray.prototype.length", "Int8Array.prototype.length")}}.
+
{{jsxref("TypedArray.name", "Int8Array.name")}}
+
Gibt den Stringwert des Konstruktornamens zurück. In Fall eines Int8Array Typs: "Int8Array".
+
{{jsxref("TypedArray.prototype", "Int8Array.prototype")}}
+
Prototyp für das TypedArray Objekt.
+
+ +

Methoden

+ +
+
{{jsxref("TypedArray.from", "Int8Array.from()")}}
+
Erstelle ein neues Int8Array von einem Array-Ähnlichen oder Iterable Objekt. Siehe auch {{jsxref("Array.from()")}}.
+
{{jsxref("TypedArray.of", "Int8Array.of()")}}
+
Erstellt ein neues Int8Array mit einer variablen Anzahl an Argumenten. Sie auch {{jsxref("Array.of()")}}.
+
+ +

Int8Array Prototyp

+ +

 

+ +

Alle Int8Array Objekte erben von {{jsxref("TypedArray.prototype", "%TypedArray%.prototype")}}.

+ +

Eigenschaften

+ +
+
Int8Array.prototype.constructor
+
Gibt die Funktion, die einen Instanzprototyp erstellt zurück. Diese ist auf den Int8Array Konstruktor voreingestellt.
+
{{jsxref("TypedArray.prototype.buffer", "Int8Array.prototype.buffer")}} {{readonlyInline}}
+
Gibt die {{jsxref("ArrayBuffer")}} Referenz zurück, welche nach der Erstellung eines Int8Array fest ist und nicht mehr geändert werden kann.
+
{{jsxref("TypedArray.prototype.byteLength", "Int8Array.prototype.byteLength")}} {{readonlyInline}}
+
Gibt die Länge (in Bytes) des Int8Array vom Anfang seines {{jsxref("ArrayBuffer")}} zurück. WIrd beim erstellen festgesetzt und kann nicht geändert werden.
+
{{jsxref("TypedArray.prototype.byteOffset", "Int8Array.prototype.byteOffset")}} {{readonlyInline}}
+
Gibt das Offset (in Bytes) des Int8Array vom Anfang seines {{jsxref("ArrayBuffer")}} zurück. WIrd beim erstellen festgesetzt und kann nicht geändert werden.
+
{{jsxref("TypedArray.prototype.length", "Int8Array.prototype.length")}} {{readonlyInline}}
+
Gibt Anzahl der Elemente des Int8Array zurück. WIrd beim erstellen festgesetzt und kann nicht geändert werden.
+
+ +

Methoden

+ +
+
{{jsxref("TypedArray.copyWithin", "Int8Array.prototype.copyWithin()")}}
+
Kopiert eine Sequenz von Arrayelementen in das Array. Siehe auch {{jsxref("Array.prototype.copyWithin()")}}.
+
{{jsxref("TypedArray.entries", "Int8Array.prototype.entries()")}}
+
Gibt ein neues Array Iterator Objekt zurück, welches die Schlüssel/Wertepaare für jeden Index im Array enthält. Siehe auch {{jsxref("Array.prototype.entries()")}}.
+
{{jsxref("TypedArray.every", "Int8Array.prototype.every()")}}
+
Teste, ob alle Elemente einem, als Funktion übergebenen, Test erfüllen. Siehe auch Array.prototype.every()")}}.
+
{{jsxref("TypedArray.fill", "Int8Array.prototype.fill()")}}
+
Füllt alle Elemente eines Arrays vom Startindex bis zum Endindex mit einem statischen Wert. Siehe auch {{jsxref("Array.prototype.fill()")}}.
+
{{jsxref("TypedArray.filter", "Int8Array.prototype.filter()")}}
+
Erstellt ein neues Array mit allen Elementen des alten Arrays, für die eine übergebene Filterfunktion true zurückgibt. Siehe auch {{jsxref("Array.prototype.filter()")}}.
+
{{jsxref("TypedArray.find", "Int8Array.prototype.find()")}}
+
Gibt ein gefundenes Element des Arrays zurück, welches bei der übergebenen Testfunktion true zurückgibt oder undefined wenn es keins gibt. Siehe auch {{jsxref("Array.prototype.find()")}}.
+
{{jsxref("TypedArray.findIndex", "Int8Array.prototype.findIndex()")}}
+
Gibt den Index eines gefundenen Elements des Arrays zurück, welches bei der übergebenen Testfunktion true zurückgibt oder -1 wenn es keins gibt. Siehe auch {{jsxref("Array.prototype.findIndex()")}}.
+
{{jsxref("TypedArray.forEach", "Int8Array.prototype.forEach()")}}
+
Ruft für jedes Element in einem Array eine Funktion auf. Siehe auch {{jsxref("Array.prototype.forEach()")}}.
+
{{jsxref("TypedArray.includes", "Int8Array.prototype.includes()")}} {{experimental_inline}}
+
Überprüft, ob ein getyptes Array ein bestimmtes Element enthält und gibt gegebenfalls true oderfalse zurück. Siehe auch {{jsxref("Array.prototype.includes()")}}.
+
{{jsxref("TypedArray.indexOf", "Int8Array.prototype.indexOf()")}}
+
Gibt den ersten Index eines Elementes zurück, welches gleiche eines spezifizierten Wertes ist oder -1 wenn es keins gibt. Siehe auch {{jsxref("Array.prototype.indexOf()")}}.
+
{{jsxref("TypedArray.join", "Int8Array.prototype.join()")}}
+
Führt alle Elemente eines Arrays zu einem String zusammen. Siehe auch {{jsxref("Array.prototype.join()")}}.
+
{{jsxref("TypedArray.keys", "Int8Array.prototype.keys()")}}
+
Gibt ein neuen Array Iterator zurück, der alle Schlüssel für jeden Index im Array enthält. Siehe auch {{jsxref("Array.prototype.keys()")}}.
+
{{jsxref("TypedArray.lastIndexOf", "Int8Array.prototype.lastIndexOf()")}}
+
Gibt den letzen Index eines Elementes zurück, welches gleiche eines spezifizierten Wertes ist oder -1 wenn es keins gibt. Siehe auch {{jsxref("Array.prototype.lastIndexOf()")}}.
+
{{jsxref("TypedArray.map", "Int8Array.prototype.map()")}}
+
Erstellt ein neues Array mit den Resultaten spezifizierten Funktion, die für jedes Element aufgerufen wird. Siehe auch {{jsxref("Array.prototype.map()")}}.
+
{{jsxref("TypedArray.move", "Int8Array.prototype.move()")}} {{non-standard_inline}} {{unimplemented_inline}}
+
Ehemalige nicht Standardisierte Version von {{jsxref("TypedArray.copyWithin", "Int8Array.prototype.copyWithin()")}}.
+
{{jsxref("TypedArray.reduce", "Int8Array.prototype.reduce()")}}
+
Führt eine Funktion gegeben einen Akkumulator und jeden Wert des Array aus (von links nach rechts), um das Array auf einen Wert zu reduzieren. Siehe auch {{jsxref("Array.prototype.reduce()")}}.
+
{{jsxref("TypedArray.reduceRight", "Int8Array.prototype.reduceRight()")}}
+
Führt eine Funktion gegeben einen Akkumulator und jeden Wert des Array aus (von rechts nach links), um das Array auf einen Wert zu reduzieren. Siehe auch {{jsxref("Array.prototype.reduce()")}}.
+
{{jsxref("TypedArray.reverse", "Int8Array.prototype.reverse()")}}
+
Kehrt die Reihenfolge von jedem Element eines Arrays um — das Erste wird das Letzte und das Letzte wird das Erste. Siehe auch {{jsxref("Array.prototype.reverse()")}}.
+
{{jsxref("TypedArray.set", "Int8Array.prototype.set()")}}
+
Speichert mehrere Werte in einem getypten Array und ließt Eingabewerte aus einem spezifiziertem Array.
+
{{jsxref("TypedArray.slice", "Int8Array.prototype.slice()")}}
+
Extrahiert einen Bereich aus einem Array und gibt diesen in einem neuen Array zurück. Siehe auch {{jsxref("Array.prototype.slice()")}}.
+
{{jsxref("TypedArray.some", "Int8Array.prototype.some()")}}
+
Gibt true zurück, wenn nur ein Element in einem Array den als Funktion übergebenen Test erfüllt. Siehe auch {{jsxref("Array.prototype.some()")}}
+
{{jsxref("TypedArray.sort", "Int8Array.prototype.sort()")}}
+
Sortiert die Elemente eines Arrays in-Place und gibt das Array zurück. Siehe auch {{jsxref("Array.prototype.sort()")}}.
+
{{jsxref("TypedArray.subarray", "Int8Array.prototype.subarray()")}}
+
Gibt ein neues Int8Array vom gegebenen Start- und Endindex zurück.
+
{{jsxref("TypedArray.values", "Int8Array.prototype.values()")}}
+
Gibt ein neues Array Iterator Objekt zurück, welches die Werte von jedem Index im Array enthält. Siehe auch {{jsxref("Array.prototype.values()")}}.
+
{{jsxref("TypedArray.toLocaleString", "Int8Array.prototype.toLocaleString()")}}
+
Gibt einen Ortsabhängige Stringrepräsentation des Arrays und seiner Element zurück. Siehe auch {{jsxref("Array.prototype.toLocaleString()")}}.
+
{{jsxref("TypedArray.toString", "Int8Array.prototype.toString()")}}
+
Gibt einen Stringrepräsentation des Arrays und seiner Element zurück. Siehe auch {{jsxref("Array.prototype.toString()")}}.
+
{{jsxref("TypedArray.@@iterator", "Int8Array.prototype[@@iterator]()")}}
+
Gibt ein neues Array Iterator Objekt zurück, welches die zugehörigen Werte für jeden Index im Array enthalten.
+
+ +

 

+ +

Beispiele

+ +

Verschiedene Wege, um ein Int8Array zu erstellen:

+ +
// From a length
+var int8 = new Int8Array(2);
+int8[0] = 42;
+console.log(int8[0]); // 42
+console.log(int8.length); // 2
+console.log(int8.BYTES_PER_ELEMENT); // 1
+
+// From an array
+var arr = new Int8Array([21,31]);
+console.log(arr[1]); // 31
+
+// From another TypedArray
+var x = new Int8Array([21, 31]);
+var y = new Int8Array(x);
+console.log(y[0]); // 21
+
+// From an ArrayBuffer
+var buffer = new ArrayBuffer(8);
+var z = new Int8Array(buffer, 1, 4);
+
+// From an iterable
+var iterable = function*(){ yield* [1,2,3]; }();
+var int8 = new Int8Array(iterable);
+// Int8Array[1, 2, 3]
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('Typed Array')}}{{Spec2('Typed Array')}}Ersetzt in ECMAScript 2015.
{{SpecName('ES2015', '#table-49', 'TypedArray constructors')}}{{Spec2('ES2015')}}Initiale Definition in einem ECMA Standard. Spezifiziert, dass ein new benötigt wird.
{{SpecName('ESDraft', '#table-49', 'TypedArray constructors')}}{{Spec2('ESDraft')}}ECMAScript 2017 ändert den Int8Array Konstruktor, um die ToIndex Operation zu benutzen und erlaubt einen Konstruktor ohne Parameter.
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Int8Array")}}

+ +

Kompatibilitätshinweise

+ +

Mit Beginn von ECMAScript 2015, müssen Int8Array Konstruktoren mit einem {{jsxref("Operators/new", "new")}} benutzt werden. Der Aufruf eines Int8Array Konstruktors als eine Funktion ohne new, Führt jetzt zu einem {{jsxref("TypeError")}}.

+ +
var dv = Int8Array([1, 2, 3]);
+// TypeError: calling a builtin Int8Array constructor
+// without new is forbidden
+ +
var dv = new Int8Array([1, 2, 3]);
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/internalerror/index.html b/files/de/web/javascript/reference/global_objects/internalerror/index.html new file mode 100644 index 0000000000..3775c4edd9 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/internalerror/index.html @@ -0,0 +1,82 @@ +--- +title: InternalError +slug: Web/JavaScript/Reference/Global_Objects/InternalError +tags: + - Error + - InternalError + - JavaScript +translation_of: Web/JavaScript/Reference/Global_Objects/InternalError +--- +
{{JSRef}} {{non-standard_header}}
+ +

Das InternalError Objekt zeigt einen Fehler an, der in der JavaScript-Umgebung auftritt. Zum Beispiel: "InternalError: too much recursion".

+ +

Syntax

+ +
new InternalError([message[, fileName[, lineNumber]]])
+ +

Parameter

+ +
+
message
+
Optional. Für Menschen lesbare Fehlerbeschreibung.
+
fileName {{non-standard_inline}}
+
Optional. Der Name der Datei, in der der Fehler auftritt.
+
lineNumber {{non-standard_inline}}
+
Optional. Die Zeilennummer in der Datei, in der der Fehler auftritt.
+
+ +

Beschreibung

+ +

Ein InternalError wird immer erzeugt, wenn ein Fehler in der JavaScript-Umgebung auftritt.

+ +

Beispielfälle die oft eintreten, wenn manchmal etwas zu ang ist:

+ + + +

Eigenschaften

+ +
+
{{jsxref("InternalError.prototype")}}
+
Erlaubt das Hinzufügen von Eigenschaften zu einem InternalError Objekt.
+
+ +

Methoden

+ +

Die globale InternalError Klasse enthält keine eigenen Methoden, jedoch erbt sie einige Methoden durch die Prototypenkette.

+ +

InternalError Instanzen

+ +

Eigenschaften

+ +
{{page('/de/docs/Web/JavaScript/Reference/Global_Objects/InternalError/prototype', 'Eigenschaften')}}
+ +

Methods

+ +
{{page('/de/docs/Web/JavaScript/Reference/Global_Objects/InternalError/prototype', 'Methoden')}}
+ +

Spezifikationen

+ +

In keiner Spezifikation enthalten.

+ +

Browserkompatibilität

+ +
+
+ + +

{{Compat("javascript.builtins.InternalError")}}

+
+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/internalerror/prototype/index.html b/files/de/web/javascript/reference/global_objects/internalerror/prototype/index.html new file mode 100644 index 0000000000..f76ee54ea8 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/internalerror/prototype/index.html @@ -0,0 +1,61 @@ +--- +title: InternalError.prototype +slug: Web/JavaScript/Reference/Global_Objects/InternalError/prototype +tags: + - Error + - InternalError + - JavaScript + - Property +translation_of: Web/JavaScript/Reference/Global_Objects/InternalError +--- +
{{JSRef}} {{non-standard_header}}
+ +

Die InternalError.prototype Eigenschaft repräsentiert den Prototypen des {{jsxref("InternalError")}} Konstruktors.

+ +
{{js_property_attributes(0, 0, 0)}}
+ +

Beschreibung

+ +

Alle {{jsxref("InternalError")}} Instanzen erben von InternalError.prototype. Man kann den Prototypen benutzt, um Eigenschaften oder Methoden für alle Instanzen hinzuzufügen.

+ +

Eigenschaften

+ +
+
InternalError.prototype.constructor
+
Spezifiziert die Funktion, die einen Instanzen Prototyp erstellt.
+
{{jsxref("Error.prototype.message", "InternalError.prototype.message")}}
+
Fehlermeldung. Geerbt von {{jsxref("Error")}}.
+
{{jsxref("Error.prototype.name", "InternalError.prototype.name")}}
+
Fehlername. Geerbt von {{jsxref("Error")}}.
+
{{jsxref("Error.prototype.fileName", "InternalError.prototype.fileName")}}
+
Pfad zur Datei, in der der Fehler auftritt. Geerbt von {{jsxref("Error")}}.
+
{{jsxref("Error.prototype.lineNumber", "InternalError.prototype.lineNumber")}}
+
Zeilennummer, in der Datei, in der der Fehler auftritt. Geerbt von {{jsxref("Error")}}.
+
{{jsxref("Error.prototype.columnNumber", "InternalError.prototype.columnNumber")}}
+
Spaltennummer, in der Zeile, in der der Fehler auftritt. Geerbt von {{jsxref("Error")}}.
+
{{jsxref("Error.prototype.stack", "InternalError.prototype.stack")}}
+
Stacktrace. Geerbt von {{jsxref("Error")}}.
+
+ +

Methoden

+ +

Obwohl das {{jsxref("InternalError")}} Prototypobjekt keine eigenen Methoden besitzt, erben {{jsxref("InternalError")}} Instanzen einige Methoden durch die Prototypenkette.

+ +

Spezifikationen

+ +

In keiner Spezifikation enthalten.

+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.InternalError")}}

+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/intl/collator/compare/index.html b/files/de/web/javascript/reference/global_objects/intl/collator/compare/index.html new file mode 100644 index 0000000000..c54c1a2869 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/intl/collator/compare/index.html @@ -0,0 +1,101 @@ +--- +title: Intl.Collator.prototype.compare +slug: Web/JavaScript/Reference/Global_Objects/Intl/Collator/compare +tags: + - Collator + - Internationalization + - JavaScript + - Property + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Intl/Collator/compare +--- +
{{JSRef}}
+ +

Die Intl.Collator.prototype.compare Eigenschaft gibt eine Funktion zurück, die zwei Strings, abhängig von der Sortierreihenfolge des {{jsxref("Collator")}} Objektes, vergleicht.

+ +
{{EmbedInteractiveExample("pages/js/intl-collator-prototype-compare.html")}}
+ + + +

Syntax

+ +
collator.compare(string1, string2)
+ +

Parameter

+ +
+
string1
+
string2
+
Die Strings, die miteinander verglichen werden sollen.
+
+ +

Beschreibung

+ +

Die Funktion, die von dem Getter compare zurückgegeben wird, gibt eine Zahl zurück, die angibt, wie string1 und string2 in der Sortierreihenfolge des {{jsxref("Collator")}} Objektes zueinander stehen: Ein negativer Wert gibt an, string1 vor string2 kommt; Ein positiver Wert gibt an, dass string1 nach string2 kommt; 0 gibt an, dass beide gleich sind.

+ +

Beispiele

+ +

Einsatz von compare zum Sortieren von Arrays

+ +

Man kann die vom Getter compare zurückgegebenen Funktion zum Sortieren von Arrays einsetzen. Zu beachten ist, dass diese Funktion an das collator-Objekte gebunden ist, auf dem es aufgerufen wurde, so dass es direkt an {{jsxref("Array.prototype.sort()")}} übergeben werden kann.

+ +
var a = ['Offenbach', 'Österreich', 'Odenwald'];
+var collator = new Intl.Collator('de-u-co-phonebk');
+a.sort(collator.compare);
+console.log(a.join(', '));
+// → "Odenwald, Österreich, Offenbach"
+
+ +

Einsatz von compare zum Suchen in Arrays

+ +

Man kann die vom Getter compare zurückgegebenen Funktion zum suchen von passenden Elementen in einem Array benutzen:

+ +
var a = ['Congrès', 'congres', 'Assemblée', 'poisson'];
+var collator = new Intl.Collator('fr', { usage: 'search', sensitivity: 'base' });
+var s = 'congres';
+var matches = a.filter(v => collator.compare(v, s) === 0);
+console.log(matches.join(', '));
+// → "Congrès, congres"
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES Int 1.0', '#sec-10.3.2', 'Intl.Collator.prototype.compare')}}{{Spec2('ES Int 1.0')}}Initiale Definition.
{{SpecName('ES Int 2.0', '#sec-10.3.2', 'Intl.Collator.prototype.compare')}}{{Spec2('ES Int 2.0')}} 
{{SpecName('ES Int Draft', '#sec-Intl.Collator.prototype.compare', 'Intl.Collator.prototype.compare')}}{{Spec2('ES Int Draft')}} 
+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.Intl.Collator.compare")}}

+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/intl/collator/index.html b/files/de/web/javascript/reference/global_objects/intl/collator/index.html new file mode 100644 index 0000000000..1ed4bb3f34 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/intl/collator/index.html @@ -0,0 +1,179 @@ +--- +title: Intl.Collator +slug: Web/JavaScript/Reference/Global_Objects/Intl/Collator +tags: + - Collator + - Internationalization + - JavaScript +translation_of: Web/JavaScript/Reference/Global_Objects/Intl/Collator +--- +
{{JSRef}}
+ +

Das Intl.Collator Objekt ist ein Konstruktor für Überprüfer, Objekte die Sprachsensitive Stringvergleiche unterstützen.

+ +
{{EmbedInteractiveExample("pages/js/intl-collator.html")}}
+ + + +

Syntax

+ +
new Intl.Collator([locales[, options]])
+Intl.Collator.call(this[, locales[, options]])
+ +

Parameter

+ +
+
locales
+
+

Optional. Ein String mit einem BCP 47 Sprachtag, oder einem Array von solchen Strings. Für die generelle Interpretation für das locales Argument, siehe auf der {{jsxref("Global_Objects/Intl", "Intl Seite", "#Gebietsidentifikation_und_-verhandlung", 1)}} nach. Die folgenden Unicode-Erweiterunsschlüssel sind erlaubt:

+ +
+
co
+
Abweichender Vergleich für einige Gebiete. Folgende Werte sind möglich: "big5han", "dict", "direct", "ducet", "gb2312", "phonebk", "phonetic", "pinyin", "reformed", "searchjl", "stroke", "trad", "unihan". Die Werte "standard" und "search" werden ignoriert. Sie werden durch die EIgenschaft usage des options Objekt ersetzt (siehe unten).
+
kn
+
Wenn numerische Vergleiche benutzt werden soll, so wie "1" < "2" < "10". Mögliche Werte sind "true" und "false". Diese Option kann über eine options Eigenschaft oder über einen Unicode-Erweiterungsschlüssel gesetzt werden. Wenn beide gesetzt sind, hat die options Eigenschaft Vorrang.
+
kf
+
Wenn Kleinschreibung oder Großschreibung zuerst in der Reihenfolge kommt. Mögliche Wert sind "upper", "lower", or "false" (benutzt den Gebietsstandard). Diese Option kann über eine options Eigenschaft oder über einen Unicode-Erweiterungsschlüssel gesetzt werden. Wenn beide gesetzt sind, hat die options Eigenschaft Vorrang.
+
+
+
options
+
+

Optional. Ein Objekt einigen oder allen der folgenden Eigenschafte:

+ +
+
localeMatcher
+
Der Algorithmus zur Ermittlung des Gebiets. Mögliche Werte sind "lookup" and "best fit"; Der Standard ist "best fit". Für Informationen über diese Option siehe auf der {{jsxref("Global_Objects/Intl", "Intl Seite", "#Gebietsauswahl", 1)}} nach.
+
usage
+
Ob der Vergleich für das Sortieren oder Suchen von Strings ist. Mögliche Werte sind "sort" and "search"; der Standard ist "sort".
+
sensitivity
+
+

Welche Unterschiede in Strings sollen zu Resultaten ungleich 0 führen. Mögliche Werte:

+ +
    +
  • "base": Nur Strings die im Basisbuchstaben ungleiche sind. Beispiele: a ≠ b, a = á, a = A.
  • +
  • "accent": Nur Strings die im Basisbuchstaben oder Akzent und anderen diakritisch Zeichen ungleich sind. Beispiele: a ≠ b, a ≠ á, a = A.
  • +
  • "case": Nur Strings die im Basisbuchstaben oder der Größe ungleich sind. Beispiele: a ≠ b, a = á, a ≠ A.
  • +
  • "variant": Strings, die im Basisbuchstaben, im Akzent und anderen diakritischen Zeichen oder in der Großschreibung ungleich sind. Andere Unterschiede können in den Vergleich eingehen. Beispiele: a ≠ b, a ≠ á, a ≠ A.
  • +
+ +

Der Standardwert ist "variant" wenn usage auf "sort" steht. Für usage gleich "search" ist es Gebietsabhängig.

+
+
ignorePunctuation
+
Wenn Interpunktion ignoriert werden soll. Mögliche Werte sind true and false; Der Standard ist false.
+
numeric
+
Wenn numerische Vergleiche benutzt werden soll, so wie "1" < "2" < "10". Mögliche Werte sind "true" und "false". Der Standard ist false. Diese Option kann über eine options Eigenschaft oder über einen Unicode-Erweiterungsschlüssel gesetzt werden. Wenn beide gesetzt sind, hat die options Eigenschaft Vorrang. Implementierungen müssen diese Eigenschaft nicht unterstützen.
+
caseFirst
+
Wenn Kleinschreibung oder Großschreibung zuerst in der Reihenfolge kommt. Mögliche Wert sind "upper", "lower", or "false" (benutzt den Gebietsstandard). Der Standard ist "false". Diese Option kann über eine options Eigenschaft oder über einen Unicode-Erweiterungsschlüssel gesetzt werden. Wenn beide gesetzt sind, hat die options Eigenschaft Vorrang. Implementierungen müssen diese Eigenschaft nicht unterstützen.
+
+
+
+ +

Beschreibung

+ +

Das Intl.Collator Objekt hat die folgenden Eigenschaften und Methoden:

+ +

Eigenschaften

+ +
+
{{jsxref("Collator.prototype", "Intl.Collator.prototype")}}
+
Erlaubt das hinzufügen von Eigenschaften zu allen Objekten.
+
+ +

Methoden

+ +
+
{{jsxref("Collator.supportedLocalesOf", "Intl.Collator.supportedLocalesOf()")}}
+
Gibt ein Array von Gebieten zurück, die unterstützt werden, ohne dass die Backuplösung des Umgebungsstandards eingesetzt wird.
+
+ +

Collator Instanzen

+ +

Eigenschaften

+ +

Collator Instanzen erben die folgenden Eigenschaften von ihrem Prototyp:

+ +
{{page('de/docs/Web/JavaScript/Reference/Global_Objects/Collator/prototype', 'Eigenschaften')}}
+ +

Methoden

+ +

Collator Instanzen erben die folgenden Methoden von ihrem Prototyp:

+ +
{{page('de/docs/Web/JavaScript/Reference/Global_Objects/Collator/prototype', 'Methoden')}}
+ +

Beispiele

+ +

Einsatz von Collator

+ +

Das folgende Beispiel demonstriert die potentiell Unterschiedlichen Ergebnisse für ein String vor, nach, oder an der selben Stelle in ein andere String in der Sortierreihenfolge:

+ +
console.log(new Intl.Collator().compare('a', 'c')); // → ein negativer Wert
+console.log(new Intl.Collator().compare('c', 'a')); // → ein positiver Wert
+console.log(new Intl.Collator().compare('a', 'a')); // → 0
+
+ +

Zu beachten ist, dass sich das im Quelltext gezeigte Ergebnis zwischen Browsern und Browserversionen unterscheiden kann. Das ist, weil die Werte implementierungsabhängig sind. Die Spezifikation definiert nur, dass die Werte vor und nach gleich negativ und positiv sein müssen.

+ +

Einsatz von locales

+ +

Das Ergebnis von {{jsxref("Collator.prototype.compare()")}} variiert zwischen Sprachen. Um die Sortierreihenfolge eine Sprache im Benutzerinterface eine Applikation zu bekommen, sollte man die Sprache mit dem locales Argument spezifizieren (und einige Backupsprachen):

+ +
// in German, ä sorts with a
+console.log(new Intl.Collator('de').compare('ä', 'z'));
+// → a negative value
+
+// in Swedish, ä sorts after z
+console.log(new Intl.Collator('sv').compare('ä', 'z'));
+// → a positive value
+
+ +

Einsatz von options

+ +

Das Ergebnis von {{jsxref("Collator.prototype.compare()")}} kann durch den Einsatz des options Argument verändert werden:

+ +
// in German, ä has a as the base letter
+console.log(new Intl.Collator('de', { sensitivity: 'base' }).compare('ä', 'a'));
+// → 0
+
+// in Swedish, ä and a are separate base letters
+console.log(new Intl.Collator('sv', { sensitivity: 'base' }).compare('ä', 'a'));
+// → a positive value
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES Int 1.0', '#sec-10.1', 'Intl.Collator')}}{{Spec2('ES Int 1.0')}}Initiale Definition.
{{SpecName('ES Int 2.0', '#sec-10.1', 'Intl.Collator')}}{{Spec2('ES Int 2.0')}} 
{{SpecName('ES Int Draft', '#collator-objects', 'Intl.Collator')}}{{Spec2('ES Int Draft')}} 
+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.Intl.Collator")}}

+
+ +

Siehe auch

+ +
{{page('/de/docs/Web/JavaScript/Reference/Global_Objects/Intl', 'Siehe_auch')}}
diff --git a/files/de/web/javascript/reference/global_objects/intl/collator/prototype/index.html b/files/de/web/javascript/reference/global_objects/intl/collator/prototype/index.html new file mode 100644 index 0000000000..2528ecc7ba --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/intl/collator/prototype/index.html @@ -0,0 +1,79 @@ +--- +title: Intl.Collator.prototype +slug: Web/JavaScript/Reference/Global_Objects/Intl/Collator/prototype +tags: + - Collator + - Internationalization + - JavaScript + - Property + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Intl/Collator +--- +
{{JSRef}}
+ +

Die Intl.Collator.prototype Eigenschaft repräsentiert das Prototypobjekt für den {{jsxref("Collator", "Intl.Collator")}} Konstruktor.

+ +
{{js_property_attributes(0, 0, 0)}}
+ +

Beschreibung

+ +

Siehe im Beitrag {{jsxref("Collator")}} für eine Beschreibung von Intl.Collator Instanzen.

+ +

{{jsxref("Collator", "Intl.Collator")}} Instanzen erben von Intl.Collator.prototype. Änderungen am Prototypobjekt werden an alle {{jsxref("Collator", "Intl.Collator")}} Instanzen vererbt.

+ +

Eigenschaften

+ +
+
{{jsxref("Collator.compare", "Intl.Collator.prototype.compare")}}
+
Getter; gibt eine Funktion zurück, die zwei Strings abhängig vom der Sortierreihenfolge des {{jsxref("Global_Objects/Collator", "Intl.Collator")}} Objektes vergleicht.
+
Intl.Collator.prototype.constructor
+
Eine Referenz zu {{jsxref("Global_Objects/Collator", "Intl.Collator")}}.
+
+ +

Methoden

+ +
+
{{jsxref("Collator.resolvedOptions", "Intl.Collator.prototype.resolvedOptions()")}}
+
Gibt ein neues Objekt mit Eigenschaften zu Gebiets- und Collation-Optionen, die bei der Initialisierung des Objekte ermittelt wurden.
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES Int 1.0', '#sec-10.2.1', 'Intl.Collator.prototype')}}{{Spec2('ES Int 1.0')}}Initiale Definition.
{{SpecName('ES Int 2.0', '#sec-10.2.1', 'Intl.Collator.prototype')}}{{Spec2('ES Int 2.0')}} 
{{SpecName('ES Int Draft', '#sec-Intl.Collator.prototype', 'Intl.Collator.prototype')}}{{Spec2('ES Int Draft')}} 
+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.Intl.Collator.prototype")}}

+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/intl/collator/resolvedoptions/index.html b/files/de/web/javascript/reference/global_objects/intl/collator/resolvedoptions/index.html new file mode 100644 index 0000000000..322621017f --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/intl/collator/resolvedoptions/index.html @@ -0,0 +1,100 @@ +--- +title: Intl.Collator.prototype.resolvedOptions() +slug: Web/JavaScript/Reference/Global_Objects/Intl/Collator/resolvedOptions +tags: + - Collator + - Internationalization + - JavaScript + - Method + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Intl/Collator/resolvedOptions +--- +
{{JSRef}}
+ +

Die Intl.Collator.prototype.resolvedOptions() Methode gibt ein neues Objekt mit Eigenschaften zurück, welches die Gebiets- und Vergleichs-Optionen während der Initialisierung des {{jsxref("Collator")}} Objektes wiederspiegelt.

+ +
{{EmbedInteractiveExample("pages/js/intl-collator-prototype-resolvedoptions.html")}}
+ + + +

Syntax

+ +
collator.resolvedOptions()
+ +

Rückgabewert

+ +

Ein neues Objekt mit Eigenschaften, die die Eigenschaften der Gebiets- und Vergleichsoptionen enthält, die während der Initialisierung des gegebenen {{jsxref("Collator")}} Objekt ermittelt wurden.

+ +

Beschreibung

+ +

Das Ergebnisobjekt hat die folgenden Eigenschaften:

+ +
+
locale
+
Der BCP 47 Sprachtag für das aktuell benutzte Gebiet. Wenn Unicode-Erweiterungswerte im BCP 47 Sprachtag in der Gebietsangabe angegeben sind, sind die, die auch unterstützt sind, in locale vorhanden.
+
usage
+
sensitivity
+
ignorePunctuation
+
Die Werte der Unterstützten Eigenschaften des options Argument oder eingesetzte Standardwerte.
+
collation
+
Der überbene Wert des Unicode-Werweiterungsschlüssels "co", wenn dieser für locale unterstützt wird oder "default".
+
numeric
+
caseFirst
+
Die Werte der Unterstützten Eigenschaften des options Argument oder der eingesetzten Unicode-Erweiterungsschlüssel "kn" and "kf" oder den Standardwerten. Wenn die Implimentierung diese Eigenschaften nicht unterstützt, werden diese weggelassen.
+
+ +

Beispiele

+ +

Einsatz der resolvedOptions Methode

+ +
var de = new Intl.Collator('de', { sensitivity: 'base' })
+var usedOptions = de.resolvedOptions();
+
+usedOptions.locale;            // "de"
+usedOptions.usage;             // "sort"
+usedOptions.sensitivity;       // "base"
+usedOptions.ignorePunctuation; // false
+usedOptions.collation;         // "default"
+usedOptions.numeric;           // false
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES Int 1.0', '#sec-10.3.3', 'Intl.Collator.prototype.resolvedOptions')}}{{Spec2('ES Int 1.0')}}Initiale Definition.
{{SpecName('ES Int 2.0', '#sec-10.3.3', 'Intl.Collator.prototype.resolvedOptions')}}{{Spec2('ES Int 2.0')}} 
{{SpecName('ES Int Draft', '#sec-Intl.Collator.prototype.resolvedOptions', 'Intl.Collator.prototype.resolvedOptions')}}{{Spec2('ES Int Draft')}} 
+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.Intl.Collator.resolvedOptions")}}

+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/intl/collator/supportedlocalesof/index.html b/files/de/web/javascript/reference/global_objects/intl/collator/supportedlocalesof/index.html new file mode 100644 index 0000000000..8bc9bed6bb --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/intl/collator/supportedlocalesof/index.html @@ -0,0 +1,98 @@ +--- +title: Intl.Collator.supportedLocalesOf() +slug: Web/JavaScript/Reference/Global_Objects/Intl/Collator/supportedLocalesOf +tags: + - Collator + - Internationalization + - JavaScript + - Method +translation_of: Web/JavaScript/Reference/Global_Objects/Intl/Collator/supportedLocalesOf +--- +
{{JSRef}}
+ +

Die Intl.Collator.supportedLocalesOf() Methode gibt ein Array zurück, welches die Gebiete enthält, die von Collation unterstützt werden, ohne das die Laufzeitumgebung auf den Systemstandard zurückgreifen muss.

+ +
{{EmbedInteractiveExample("pages/js/intl-collator-prototype-supportedlocalesof.html")}}
+ + + +

Syntax

+ +
Intl.Collator.supportedLocalesOf(locales[, options])
+ +

Parameter

+ +
+
locales
+
Ein String mit einem BCP 47 Sprachtag oder einem Array von solchen. Für die generelle Form des locales Argument siehe die {{jsxref("Global_Objects/Intl", "Intl Seite", "#Gebietsidentifikation_und_-verhandlung", 1)}}.
+
options
+
+

Optional. Ein Objekt welches die folgenden Eigenschaften haben kann:

+ +
+
localeMatcher
+
Der Auswahlalgorithmus für das Gebiet. Mögliche Werte sind "lookup" and "best fit"; Der Standard ist "best fit". Mehr Informationen über diese Algorithmen sind auch der {{jsxref("Global_Objects/Intl", "Intl Seite", "#Gebietsauswahl", 1)}} verfügbar.
+
+
+
+ +

Rückgabewert

+ +

Ein Array von String, welches eine Untermenge von  Gebiete enthält, die von Collation unterstützt werden, ohne das die Laufzeitumgebung auf den Systemstandard zurückgreifen muss.

+ +

Beschreibung

+ +

Gibt ein Array mit einer Untermenge von Sprachtags, die in locales angegeben sind zurück. Die Sprachtags, die zurückgegeben werden, werden von collation unterstützt und vom Auswahlalgorithmus ausgesucht, ohne auf eine Standard-Sprache zurückzugreifen.

+ +

Beispiele

+ +

Einsatz von supportedLocalesOf

+ +

Angenommen wird, dass indonesisch und deutsch in collation unterstützt wird, aber balinesisch nicht. supportedLocalesOf gibt das indonesische und deutsche Sprachtag unverändert zurück, obwohl Pinyin nicht mit Indonesisch verwendet wird und Fachdeutsch wahrscheinlich nicht für Indonesisch verfügbar ist. Zu bemerken ist, dass der "lookup" Algorithmus verwendet wird — der"best-fit" Algorithmus könnte entscheiden, dass Indonesisch eine angemessene Ergänzung für Balinesen ist, da die meisten Balinesen Indonesisch verstehen und daher auch das balinesische Sprachtag zurückgeben.

+ +
var locales = ['ban', 'id-u-co-pinyin', 'de-ID'];
+var options = { localeMatcher: 'lookup' };
+console.log(Intl.Collator.supportedLocalesOf(locales, options).join(', '));
+// → "id-u-co-pinyin, de-ID"
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES Int 1.0', '#sec-10.2.2', 'Intl.Collator.supportedLocalesOf')}}{{Spec2('ES Int 1.0')}}Initiale Definition.
{{SpecName('ES Int 2.0', '#sec-10.2.2', 'Intl.Collator.supportedLocalesOf')}}{{Spec2('ES Int 2.0')}} 
{{SpecName('ES Int Draft', '#sec-Intl.Collator.supportedLocalesOf', 'Intl.Collator.supportedLocalesOf')}}{{Spec2('ES Int Draft')}} 
+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.Intl.Collator.supportedLocalesOf")}}

+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/intl/datetimeformat/format/index.html b/files/de/web/javascript/reference/global_objects/intl/datetimeformat/format/index.html new file mode 100644 index 0000000000..38ebaa091f --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/intl/datetimeformat/format/index.html @@ -0,0 +1,101 @@ +--- +title: Intl.DateTimeFormat.prototype.format +slug: Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/format +tags: + - DateTimeFormat + - Internationalization + - JavaScript + - Property + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/format +--- +
{{JSRef}}
+ +

Die Intl.DateTimeFormat.prototype.format Eigenschaft gibt einen Getter-Funktion zurück, die einen Zeitstempel nach den Gebiets- und Formatierungsoptionen des {{jsxref("DateTimeFormat", "Intl.DateTimeFormat")}} Objekts formatiert.

+ +
{{EmbedInteractiveExample("pages/js/intl-datetimeformat-prototype-format.html")}}
+ + + +

Syntax

+ +
dateTimeFormat.format(date)
+ +

Parameter

+ +
+
date
+
Der Zeitstempel, der formatiert werden soll.
+
+ +

Beschreibung

+ +

Die Funktion, die vom format Getter zurückgegeben wird, formatiert einen Zeitpunkt (date) in einen String. Dabei werden die Gebiets- und Formatierungsoptionen des {{jsxref("DateTimeFormat", "Intl.DateTimeFormat")}} Objekts berücksichtigt.

+ +

Beispiele

+ +

Einsatz von format

+ +

Die vom format Getter zurückgegebene Funktion wird zum Formatieren von Zeitstempeln genutzt, hier für Serbien:

+ +
var options = { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' };
+var dateTimeFormat = new Intl.DateTimeFormat('sr-RS', options);
+console.log(dateTimeFormat.format(new Date()));
+// → "недеља, 7. април 2013."
+
+ +

Einsatz von format mit map

+ +

Die vom format Getter zurückgegebene Funktion kann zum Formatieren von Zeitpunkten in einem Array genutzt werden. Zu berücksichtigen ist, dass die Funktion an das {{jsxref("DateTimeFormat", "Intl.DateTimeFormat")}} Objekt gebunden ist, von welche die Funktion stammt, so dass sie direkt an {{jsxref("Array.prototype.map()")}} übergeben werden kann.

+ +
var a = [new Date(2012, 08), new Date(2012, 11), new Date(2012, 03)];
+var options = { year: 'numeric', month: 'long' };
+var dateTimeFormat = new Intl.DateTimeFormat('pt-BR', options);
+var formatted = a.map(dateTimeFormat.format);
+console.log(formatted.join('; '));
+// → "setembro de 2012; dezembro de 2012; abril de 2012"
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES Int 1.0', '#sec-12.3.2', 'Intl.DateTimeFormat.format')}}{{Spec2('ES Int 1.0')}}Initiale Definition.
{{SpecName('ES Int 2.0', '#sec-12.3.2', 'Intl.DateTimeFormat.format')}}{{Spec2('ES Int 2.0')}} 
{{SpecName('ES Int Draft', '#sec-Intl.DateTimeFormat.prototype.format', 'Intl.DateTimeFormat.format')}}{{Spec2('ES Int Draft')}} 
+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.Intl.DateTimeFormat.format")}}

+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/intl/datetimeformat/formattoparts/index.html b/files/de/web/javascript/reference/global_objects/intl/datetimeformat/formattoparts/index.html new file mode 100644 index 0000000000..07919d3fcf --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/intl/datetimeformat/formattoparts/index.html @@ -0,0 +1,169 @@ +--- +title: Intl.DateTimeFormat.prototype.formatToParts() +slug: Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/formatToParts +tags: + - DateTimeFormat + - Internationalization + - Intl + - JavaScript + - Method + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/formatToParts +--- +
{{JSRef}} {{SeeCompatTable}}
+ +

Die Intl.DateTimeFormat.prototype.formatToParts() Methode erlaubt gebietssichere Formatierung von Strings, die von DateTimeFormat Formatierungen erzeugt werden.

+ +

Syntax

+ +
Intl.DateTimeFormat.prototype.formatToParts(date)
+ +

Parameter

+ +
+
date {{optional_inline}}
+
Der Zeitstempel, der formatiert werden soll.
+
+ +

Rückgabewert

+ +

Ein {{jsxref("Array")}} von Objekten, die das Formatierte Datum in Teilen wiederspielgeln.

+ +

Beschreibung

+ +

Die formatToParts() Methode ist nützlich für benutzerdefinierte Formatierung von Zeitpunktsstrings. Sie gibt ein {{jsxref ("Array")}} von Objekten zurück, die die länderspezifischen Token enthalten, aus denen benutzerdefinierte Zeichenfolgen erstellt werden können, während die länderspezifischen Teile beibehalten werden. Die Struktur, die die formatToParts()  Methode zurückgibt, sieht so aus:

+ +
[
+  { type: 'day', value: '17' },
+  { type: 'weekday', value: 'Monday' }
+]
+ +

Mögliche Typen sind die folgenden:

+ +
+
day
+
Der String, der für den Tag benutzt wird. Zum Beispiel "17".
+
dayPeriod
+
Der String, der für die Tagesperiode benutzt wird. Zum Beispiel "AM" oder "PM".
+
era
+
Der String, der für die Ära benutzt wird. Zum Beispiel "BC" oder "AD".
+
hour
+
Der String, der für die Stunde benutzt wird. Zum Beispiel "3" oder "03".
+
literal
+
Der String, der als Trennung für das Datum und die Zeitbenutzt benutzt wird. Zum Beispiel "/", ",", "o'clock", "de", etc.
+
minute
+
Der String, der für die Minute benutzt wird. Zum Beispiel "00".
+
month
+
Der String, der für den Monat benutzt wird. Zum Beispiel "12".
+
second
+
Der String, der für die Sekunde benutzt wird. Zum Beispiel "07" oder "42".
+
timeZoneName
+
Der String, der für den Zeitzonennamen benutzt wird. Zum Beispiel "UTC".
+
weekday
+
Der String, der für den Wochentag benutzt wird. Zum Beispiel "M", "Monday" oder "Montag".
+
year
+
Der String, der für das Jahr benutzt wird. Zum Beispiel "2012" oder "96".
+
+ +

Beispiele

+ +

DateTimeFormat gibt lokalisierte Strings aus, die nicht direkt verändert werden können:

+ +
var date = Date.UTC(2012, 11, 17, 3, 0, 42);
+
+var formatter = new Intl.DateTimeFormat('en-us', {
+  weekday: 'long',
+  year: 'numeric',
+  month: 'numeric',
+  day: 'numeric',
+  hour: 'numeric',
+  minute: 'numeric',
+  second: 'numeric',
+  hour12: true,
+  timeZone: 'UTC'
+});
+
+formatter.format(date);
+// "Monday, 12/17/2012, 3:00:42 AM"
+
+ +

Oftmals ist es in vielen Benutzeroberflächen erwünscht die Formatierung dieser Strings zu verändern. Die formatToParts Methode erlaubt lokalsicheres Formatieren von Strings, die von DateTimeFormat in Teilstrings unterstützt werden:

+ +
formatter.formatToParts(date);
+
+// return value:
+[
+  { type: 'weekday',   value: 'Monday' },
+  { type: 'literal',   value: ', '     },
+  { type: 'month',     value: '12'     },
+  { type: 'literal',   value: '/'      },
+  { type: 'day',       value: '17'     },
+  { type: 'literal',   value: '/'      },
+  { type: 'year',      value: '2012'   },
+  { type: 'literal',   value: ', '     },
+  { type: 'hour',      value: '3'      },
+  { type: 'literal',   value: ':'      },
+  { type: 'minute',    value: '00'     },
+  { type: 'literal',   value: ':'      },
+  { type: 'second',    value: '42'     },
+  { type: 'literal',   value: ' '      },
+  { type: 'dayPeriod', value: 'AM'     }
+]
+
+ +

Jetzt sind die Informationen separiert vorhanden und  man kann Formatierungen und Konkatinationen benutzerdefiniert vornehmen. Zum Beispiel unter Einsatz von {{jsxref("Array.prototype.map()")}}, Arrow Funktionen, einem switch Statement, Templateliteralen und {{jsxref("Array.prototype.reduce()")}}.

+ +
var dateString = formatter.formatToParts(date).map(({type, value}) => {
+  switch (type) {
+    case 'dayPeriod': return `<b>${value}</b>`;
+    default : return value;
+  }
+}).reduce((string, part) => string + part);
+
+ +

Diese Beispiel macht die Tagesperiode fett, wenn die formatToParts() Methode benutzt wird.

+ +
console.log(formatter.format(date));
+// "Monday, 12/17/2012, 3:00:42 AM"
+
+console.log(dateString);
+// "Monday, 12/17/2012, 3:00:42 <b>AM</b>"
+ +

Polyfill

+ +

Ein Polyfill für die Funktionalität ist im proposal repository verfügbar.

+ +

Spezifikationen

+ + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES Int Draft', '#sec-Intl.DateTimeFormat.prototype.formatToParts', 'Intl.DateTimeFormat.prototype.formatToParts')}}{{Spec2('ES Int Draft')}}Initiale Definition
+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.Intl.DateTimeFormat.formatToParts")}}

+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/intl/datetimeformat/index.html b/files/de/web/javascript/reference/global_objects/intl/datetimeformat/index.html new file mode 100644 index 0000000000..94cfe2d3c7 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/intl/datetimeformat/index.html @@ -0,0 +1,248 @@ +--- +title: Intl.DateTimeFormat +slug: Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat +tags: + - DateTimeFormat + - Internationalization + - JavaScript +translation_of: Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat +--- +
{{JSRef}}
+ +

Das Intl.DateTimeFormat Objekt ist ein Konstruktor für Objekte, die sprachsensitive Formatierung von Datums- und Zeitangaben ermöglicht.

+ +
{{EmbedInteractiveExample("pages/js/intl-datetimeformat.html")}}
+ + + +

Syntax

+ +
new Intl.DateTimeFormat([locales[, options]])
+Intl.DateTimeFormat.call(this[, locales[, options]])
+ +

Parameter

+ +
+
locales
+
Optional. Ein String mit einem BCP 47 Sprachcode, oder einem Array von Sprachcodes. Für die generelle Form und Interpretation des locales Arguments siehe auf der {{jsxref("Global_Objects/Intl", "Intl Seite", "#Locale_identification_and_negotiation", 1)}}. Die folgenden  Unicode Erweiterungen sind erlaubt:
+
+
+
nu
+
Zahlensysteme. Mögliche Werte sind: "arab", "arabext", "bali", "beng", "deva", "fullwide", "gujr", "guru", "hanidec", "khmr", "knda", "laoo", "latn", "limb", "mlym", "mong", "mymr", "orya", "tamldec", "telu", "thai", "tibt".
+
ca
+
Kalender. Mögliche Werte sind: "buddhist", "chinese", "coptic", "ethioaa", "ethiopic", "gregory", "hebrew", "indian", "islamic", "islamicc", "iso8601", "japanese", "persian", "roc".
+
hc
+
Stundenzyklus. Mögliche Werte sind: "h11", "h12", "h23", "h24".
+
+
+
options
+
+

Optional. Ein Objekt mit einigen oder allen folgenden Eigenschaften:

+ +
+
localeMatcher
+
Der Sprachfindungsalgorithmus, der eingesetzt wird. Mögliche Werte sind "lookup" und "best fit". Als Standard ist "best fit" vorgegeben. Für Informationen über diese Option siehe auf der {{jsxref("Global_Objects/Intl", "Intl Seite", "#Locale_negotiation", 1)}} nach.
+
timeZone
+
Die eingesetzte Zeitzone. Der einzige Wert, den alle Implementierungen verstehen ist "UTC". Der Standardwert ist die Standard-Laufzeitzeitzone. Manche Implementierungen erkennen auch die Namen der IANA Zeitzonendatenbank, wie zum Beispiel "Asia/Shanghai", "Asia/Kolkata" und "America/New_York".
+
hour12
+
Wird eingesetzt, wenn 12-Stunden Zeitangaben eingesetzt werden (im gegensatz zu 24-Stunden Zeitangaben). Mögliche Werte sind true und false. Diese Option überschreibt den  hc Sprachen-Tag und/oder hourCycle wenn beide vorhanden sind.
+
hourCycle
+
Der eingesetzte Stundenzyklus. Mögliche Werte sind "h11", "h12", "h23" oder "h24". Diese Option überschreibt den  hc Sprachen-Tag, wenn beide präsent sind und die hour12 Option hat Vorrang, wenn beide Optionen spezifiziert sind.
+
formatMatcher
+
Der eingesetzte Formaterkennungsalgorithmus. Mögliche Werte sind "basic" und "best fit". Der Standard ist "best fit". Siehe folgenden Absatz, um den Einsatz dieses Parameters zu verstehen.
+
+ +

Die folgenden Eigenschaften beschreiben die Datums-Zeit-Komponenten, die für die formatierten Ausgabe eingesetzt werden und deren Repräsentation. Implementierungen müssen folgende Kombinationen der Eigenschaften unterstützen:

+ +
    +
  • Wochentag, Jahr, Monat, Tag, Stunde, Minute, Sekunde
  • +
  • Wochentag, Jahr, Monat, Tag
  • +
  • Jahr, Monat, Tag
  • +
  • Jahr, Monat
  • +
  • Monat, Tag
  • +
  • Stunde, Minute, Sekunde
  • +
  • Stunde, Minute
  • +
+ +

Manche Implementierungen unterstützen weitere Kombinationen der Parameter. Es wird immer auf alle möglichen Kombinationen geprüft, um den besten Treffer zu landen. Zwei Algorithmen sind für die Auswahl der Kombination vorhanden: Ein voll spezifizierter "basic" Algorithmus und ein implementierungsabhängiger "best fit" Algorithmus.

+ +
+
weekday
+
Die Repräsentation der Wochentage. Mögliche Werte sind "narrow", "short" und "long".
+
era
+
Die Repräsentation der Epoche. Mögliche Werte sind "narrow", "short" und "long".
+
year
+
Die Repräsentation des Jahres. Mögliche Werte sind "numeric" und "2-digit".
+
month
+
Die Repräsentation des Monats. Mögliche Werte sind "numeric", "2-digit", "narrow", "short" und "long".
+
day
+
Die Repräsentation des Tages. Mögliche Werte sind "numeric" und "2-digit".
+
hour
+
Die Repräsentation der Stunden. Mögliche Werte sind "numeric" und "2-digit".
+
minute
+
Die Repräsentation der Minuten. Mögliche Werte sind "numeric" und "2-digit".
+
second
+
Die Repräsentation der Sekunden. Mögliche Werte sind "numeric" und "2-digit".
+
timeZoneName
+
Die Repräsentation des Zeitzonennamens. Mögliche Werte sind "short" und "long".
+
+ +

Die Standardwerte für jede Datums-Zeit-Komponente ist {{jsxref("undefined")}}, wenn jedoch alle Komponenten {{jsxref("undefined")}} sind, wird year, month, and day als "numeric" angenommen.

+
+
+ +

Beschreibung

+ +

Eigenschaften

+ +
+
{{jsxref("DateTimeFormat.prototype", "Intl.DateTimeFormat.prototype")}}
+
Ermögliche es Eigenschaften und Methoden für alle Objekte zu definieren.
+
+ +

Methoden

+ +
+
{{jsxref("DateTimeFormat.supportedLocalesOf", "Intl.DateTimeFormat.supportedLocalesOf()")}}
+
Gibt ein Array an Sprachen zurück, die unterstützt werden, ohne dass auf den Laufzeitumgebungsstandard zurückgegriffen wird.
+
+ +

DateTimeFormat Instanzen

+ +

Eigenschaften

+ +

DateTimeFormat Instanzen erben die folgenden Eigenschaften von ihrem Prototypen:

+ +
{{page("/de/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat/prototype", "Eigenschaften")}}
+ +

Methoden

+ +

DateTimeFormat Instanzen erben die folgenden Methoden von ihrem Prototypen:

+ +
{{page('/de/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat/prototype', 'Methoden')}}
+ +

Beispiele

+ +

Einsatz von DateTimeFormat

+ +

Der Basiseinsatz ohne extra Sprach- und Formatierungsoptionen, sondern den Standardeinstellungen.

+ +
var date = new Date(Date.UTC(2012, 11, 20, 3, 0, 0));
+
+// toLocaleString ohne Argumente ist von der implementierunge,
+// der Standardsprache und der Standardzeitzone abhängig.
+console.log(new Intl.DateTimeFormat().format(date));
+// → "12/19/2012" wenn das Gebiet en-US mit der Zeitzone America/Los_Angeles (UTC-0800) der Standard ist.
+
+ +

Einsatz von locales

+ +

Das folgende Beispiel zeigt verschiedene Formatierungsoptionen von Datums- und Zeitformaten. Um sicherzustellen, dass das Format der Sprache eingesetzt wird, die in der Benutzerschnittstelle benutzt wird, muss diese (und mögliche Rückfallsprachen) mit dem locales Argument eingestellt werden.

+ +
var date = new Date(Date.UTC(2012, 11, 20, 3, 0, 0));
+
+// Die folgenden Formate setzen die Zeitzone America/Los_Angeles
+// für die Sprache US voraus.
+
+// US englisch: Monat-Tag-Jahr
+console.log(new Intl.DateTimeFormat('en-US').format(date));
+// → "12/19/2012"
+
+// Britisch englisch: Tag-Monat-Jahr
+console.log(new Intl.DateTimeFormat('en-GB').format(date));
+// → "20/12/2012"
+
+// Koreanisch: Jahr-Monat-Tag
+console.log(new Intl.DateTimeFormat('ko-KR').format(date));
+// → "2012. 12. 20."
+
+// Arabisch: In den meisten arabischen Ländern werden arabische Ziffern genutzt
+console.log(new Intl.DateTimeFormat('ar-EG').format(date));
+// → "٢٠‏/١٢‏/٢٠١٢"
+
+// Japanisch: In Japan wird der japanische Kalender eingesetzt:
+// 2012 ist in diesem das Jahr 24 der Heisei Ära.
+console.log(new Intl.DateTimeFormat('ja-JP-u-ca-japanese').format(date));
+// → "24/12/20"
+
+// Einsatz von Sprachen, die vielleicht nicht unterstützt werden:
+// Balinesisch, und Indonesisch als Rückfallsprache.
+console.log(new Intl.DateTimeFormat(['ban', 'id']).format(date));
+// → "20/12/2012"
+
+ +

Einsatz von options

+ +

Das Datums- und Zeitformat kann mit dem Einsatz des options Arguments vom Benutzer definiert werden.

+ +
var date = new Date(Date.UTC(2012, 11, 20, 3, 0, 0));
+
+// Langer Wochentag mit langem Datum
+var options = { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' };
+console.log(new Intl.DateTimeFormat('de-DE', options).format(date));
+// → "Donnerstag, 20. Dezember 2012"
+
+// sichtbares UTC
+options.timeZone = 'UTC';
+options.timeZoneName = 'short';
+console.log(new Intl.DateTimeFormat('en-US', options).format(date));
+// → "Thursday, December 20, 2012, GMT"
+
+// Präzisere Angaben der Zeit
+options = {
+  hour: 'numeric', minute: 'numeric', second: 'numeric',
+  timeZone: 'Australia/Sydney',
+  timeZoneName: 'short'
+};
+console.log(new Intl.DateTimeFormat('en-AU', options).format(date));
+// → "2:00:00 pm AEDT"
+
+// 24-Stunden Angabe in US Zeiten
+options = {
+  year: 'numeric', month: 'numeric', day: 'numeric',
+  hour: 'numeric', minute: 'numeric', second: 'numeric',
+  hour12: false,
+  timeZone: 'America/Los_Angeles'
+};
+console.log(new Intl.DateTimeFormat('en-US', options).format(date));
+// → "12/19/2012, 19:00:00"
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES Int 1.0', '#sec-12.1', 'Intl.DateTimeFormat')}}{{Spec2('ES Int 1.0')}}Initiale Definition.
{{SpecName('ES Int 2.0', '#sec-12.1', 'Intl.DateTimeFormat')}}{{Spec2('ES Int 2.0')}} 
{{SpecName('ES Int Draft', '#datetimeformat-objects', 'Intl.DateTimeFormat')}}{{Spec2('ES Int Draft')}} 
+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.Intl.DateTimeFormat")}}

+
+ +

Siehe auch

+ +
{{page('/de/docs/Web/JavaScript/Reference/Global_Objects/Intl', 'See_also')}}
diff --git a/files/de/web/javascript/reference/global_objects/intl/datetimeformat/prototype/index.html b/files/de/web/javascript/reference/global_objects/intl/datetimeformat/prototype/index.html new file mode 100644 index 0000000000..98f5e8f57b --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/intl/datetimeformat/prototype/index.html @@ -0,0 +1,83 @@ +--- +title: Intl.DateTimeFormat.prototype +slug: Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/prototype +tags: + - DateTimeFormat + - Internationalization + - JavaScript + - Property + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat +--- +
{{JSRef}}
+ +
Die Intl.DateTimeFormat.prototype Eigenschaft ist ein Prototyp Objekt für den {{jsxref("DateTimeFormat", "Intl.DateTimeFormat")}} Konstruktor.
+ +
 
+ +
{{js_property_attributes(0, 0, 0)}}
+ +

Beschreibung

+ +

Für eine Beschreibung von Intl.DateTimeFormat Instanzen siehe im Artikel {{jsxref("DateTimeFormat")}} nach.

+ +

{{jsxref("DateTimeFormat", "Intl.DateTimeFormat")}} Instanzen erben von Intl.DateTimeFormat.prototype. Änderungen in der Eigenschaft prototype wirken sich auf alle Instanzen von {{jsxref("DateTimeFormat", "Intl.DateTimeFormat")}} aus.

+ +

Eigenschaften

+ +
+
Intl.DateTimeFormat.prototype.constructor
+
Eine Referenz zu {{jsxref("DateTimeFormat", "Intl.DateTimeFormat")}}.
+
{{jsxref("DateTimeFormat.format", "Intl.DateTimeFormat.prototype.format")}}
+
Getter, der eine Funktion, die für das Formatieren von Datums- und Zeitangaben nach den Optionen des {{jsxref("DateTimeFormat", "DateTimeFormat")}} ermöglicht, wird zurückgegeben.
+
+ +

Methoden

+ +
+
{{jsxref("DateTimeFormat.formatToParts", "Intl.DateTimeFormat.prototype.formatToParts()")}}
+
Gibt ein {{jsxref("Array")}} von Objekten zurück, die den formatierten String in Teilen repräsentiert. Das kann eingesetzt werden, um ein benutzerdefiniertes Format zu erstellen.
+
{{jsxref("DateTimeFormat.resolvedOptions", "Intl.DateTimeFormat.prototype.resolvedOptions()")}}
+
Gibt ein neues Objekt mit den Eigenschaften der Sprache und des Formates zum Erstellungszeitpunkt des Objektes zurück.
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES Int 1.0', '#sec-12.2.1', 'Intl.DateTimeFormat.prototype')}}{{Spec2('ES Int 1.0')}}Initiale Definition.
{{SpecName('ES Int 2.0', '#sec-12.2.1', 'Intl.DateTimeFormat.prototype')}}{{Spec2('ES Int 2.0')}} 
{{SpecName('ES Int Draft', '#sec-Intl.DateTimeFormat.prototype', 'Intl.DateTimeFormat.prototype')}}{{Spec2('ES Int Draft')}} 
+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.Intl.DateTimeFormat.prototype")}}

+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/intl/datetimeformat/resolvedoptions/index.html b/files/de/web/javascript/reference/global_objects/intl/datetimeformat/resolvedoptions/index.html new file mode 100644 index 0000000000..a1403f9a7b --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/intl/datetimeformat/resolvedoptions/index.html @@ -0,0 +1,107 @@ +--- +title: Intl.DateTimeFormat.prototype.resolvedOptions() +slug: Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/resolvedOptions +tags: + - DateTimeFormat + - Internationalization + - JavaScript + - Method + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/resolvedOptions +--- +
{{JSRef}}
+ +

Die Intl.DateTimeFormat.prototype.resolvedOptions() Methode gibt ein Objekt mit den Eigenschaften zum Gebiet und der Datums- und Zeitformatierung zurück, die beim der Initialisierung eines {{jsxref("DateTimeFormat", "DateTimeFormat")}} Objektes berechnet werden.

+ +
{{EmbedInteractiveExample("pages/js/intl-datetimeformat-prototype-resolvedoptions.html")}}
+ + + +

Syntax

+ +
dateTimeFormat.resolvedOptions()
+ +

Rückgabewert

+ +

Ein neues Objekt mit den Eigenschaften zum Gebiet und der Datums- und Zeitformatierung, die beim der Initialisierung eines {{jsxref("DateTimeFormat", "DateTimeFormat")}} Objektes berechnet werden.

+ +

Beschreibung

+ +

Das resultierende Objekt hat die folgenden Eigenschaften:

+ +
+
locale
+
Der BCP 47 Sprach-Tag für die genutzte Sprache. Wenn Unicode-Erweiterungen im BCP 47 Sprach-Tag enthalten waren, die für die Sprache unterstützt werden, sind die Unterstützen Schlüssel-Werte-Paare in locale enthalten.
+
calendar
+
numberingSystem
+
Dieser Wert wird durch die Unicode-Erweiterungsschlüssel "ca" und "nu" oder mit einem Standardwert gefüllt.
+
timeZone
+
Die Wert für die Unterstützen Eigenschaft im options Argument; {{jsxref("undefined")}} (entspricht der Standard-Zeitzone der Laufzeitumgebung), wenn keine verwendet wird. Warnung: Anwendungen sollten nicht auf den Rückgabewert {{jsxref("undefined")}} programmiert sein, weil es in zukünftigen Versionen sein kann, dass ein {{jsxref("String")}} zurückgegeben wird, der die Standard-Zeitzone der Laufzeitumgebung identifiziert.
+
hour12
+
Der Wert der verwendeten Eigenschaft im options Argument oder ein Standard-Wert.
+
weekday
+
era
+
year
+
month
+
day
+
hour
+
minute
+
second
+
timeZoneName
+
Die Werte resultieren von den Eigenschaften in dem options Argument und den möglichen Kombinationen und Repräsentationen der Datums- und Zeitformatierung aus der ausgewählte Sprache. Einige der Eigenschaften können auch fehlen, was bedeutet, dass die Komponenten nicht in der formatierten Ausgabe enthalten sind.
+
+ +

Beispiele

+ +

Einsatz der resolvedOptions Methode

+ +
var germanFakeRegion = new Intl.DateTimeFormat('de-XX', { timeZone: 'UTC' });
+var usedOptions = germanFakeRegion.resolvedOptions();
+
+usedOptions.locale;          // "de"
+usedOptions.calendar;        // "gregory"
+usedOptions.numberingSystem; // "latn"
+usedOptions.timeZone;        // "UTC"
+usedOptions.month;           // "numeric"
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES Int 1.0', '#sec-12.3.3', 'Intl.DateTimeFormat.prototype.resolvedOptions')}}{{Spec2('ES Int 1.0')}}Initiale Definition.
{{SpecName('ES Int 2.0', '#sec-Intl.DateTimeFormat.prototype.resolvedOptions', 'Intl.DateTimeFormat.prototype.resolvedOptions')}}{{Spec2('ES Int 2.0')}} 
{{SpecName('ES Int Draft', '#sec-Intl.DateTimeFormat.prototype.resolvedOptions', 'Intl.DateTimeFormat.prototype.resolvedOptions')}}{{Spec2('ES Int Draft')}} 
+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.Intl.DateTimeFormat.resolvedOptions")}}

+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/intl/datetimeformat/supportedlocalesof/index.html b/files/de/web/javascript/reference/global_objects/intl/datetimeformat/supportedlocalesof/index.html new file mode 100644 index 0000000000..722b372745 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/intl/datetimeformat/supportedlocalesof/index.html @@ -0,0 +1,99 @@ +--- +title: Intl.DateTimeFormat.supportedLocalesOf() +slug: Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/supportedLocalesOf +tags: + - DateTimeFormat + - Internationalization + - JavaScript + - Method + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/supportedLocalesOf +--- +
{{JSRef}}
+ +

Die Intl.DateTimeFormat.supportedLocalesOf() Methode gibt ein Array zurück, welches die Gebiete enthält, die die Datums- und Zeitformatierung unterstützen, ohne das auf das Laufzeitstandardgebeit zurückgegriffen werden muss.

+ +
{{EmbedInteractiveExample("pages/js/intl-datetimeformat-prototype-supportedlocalesof.html")}}
+ + + +

Syntax

+ +
Intl.DateTimeFormat.supportedLocalesOf(locales[, options])
+ +

Parameter

+ +
+
locales
+
Ein String mit einem BCP 47 Sprachtag, oder ein Array von solchen Strings. Für die generelle Form des locales Arguments siehe die {{jsxref("Intl", "Intl Seite", "#Gebietsidentifikation_und_-verhandlung", 1)}}.
+
options
+
+

Optional. Ein Objekt, welches die folgende Eigenschaft haben kann:

+ +
+
localeMatcher
+
Der Auswahlalgorithmus des Gebietes. Mögliche Werte sind "lookup" und "best fit"; der Standard ist "best fit". Für mehr Information über diese Option siehe auf der {{jsxref("Intl", "Intl Seite", "#Gebietsauswahl", 1)}}.
+
+
+
+ +

Rückgabewert

+ +

Gibt ein Array zurück, welches eine Untermenge der gegebenen Gebiete enthält, für die die Datums- und Zeitformatierung unterstützen wird, ohne das auf das Laufzeitstandardgebeit zurückgegriffen werden muss.

+ +

Beschreibung

+ +

Gibt ein Array zurück, welches eine Untermenge der gegebenen Gebiete (locales) enthält. Die Sprachtags, die zurückgegeben werden, unterstützen Datums- und Zeitformatierungen für das entsprechende Gebiet, ohne auf den Systemstandard zurückgreifen zu müssen.

+ +

Beispiele

+ +

Einsatz von supportedLocalesOf

+ +

Angenommen wird, dass indonesische und deutsche Datums- und Zeitformatierung unterstützt wird, aber balinesisch nicht. supportedLocalesOf gibt das indonesische und deutsche Sprachtag unverändert zurück, obwohl Pinyin nicht mit Indonesisch verwendet wird und Fachdeutsch wahrscheinlich nicht für Indonesisch verfügbar ist. Zu bemerken ist, dass der "lookup" Algorithmus verwendet wird — der"best-fit" Algorithmus könnte entscheiden, dass Indonesisch eine angemessene Ergänzung für Balinesen ist, da die meisten Balinesen Indonesisch verstehen und daher auch das balinesische Sprachtag zurückgeben.

+ +
var locales = ['ban', 'id-u-co-pinyin', 'de-ID'];
+var options = { localeMatcher: 'lookup' };
+console.log(Intl.DateTimeFormat.supportedLocalesOf(locales, options).join(', '));
+// → "id-u-co-pinyin, de-ID"
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES Int 1.0', '#sec-12.2.2', 'Intl.DateTimeFormat.supportedLocalesOf')}}{{Spec2('ES Int 1.0')}}Initiale Definition.
{{SpecName('ES Int 2.0', '#sec-12.2.2', 'Intl.DateTimeFormat.supportedLocalesOf')}}{{Spec2('ES Int 2.0')}} 
{{SpecName('ES Int Draft', '#sec-Intl.DateTimeFormat.supportedLocalesOf', 'Intl.DateTimeFormat.supportedLocalesOf')}}{{Spec2('ES Int Draft')}} 
+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.Intl.DateTimeFormat.supportedLocalesOf")}}

+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/intl/getcanonicallocales/index.html b/files/de/web/javascript/reference/global_objects/intl/getcanonicallocales/index.html new file mode 100644 index 0000000000..0913ad7a6e --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/intl/getcanonicallocales/index.html @@ -0,0 +1,74 @@ +--- +title: Intl.getCanonicalLocales() +slug: Web/JavaScript/Reference/Global_Objects/Intl/getCanonicalLocales +tags: + - Internationalization + - Intl + - JavaScript + - Method +translation_of: Web/JavaScript/Reference/Global_Objects/Intl/getCanonicalLocales +--- +
{{JSRef}}
+ +

Die Intl.getCanonicalLocales() Methode gibt ein Array mit den anerkannten Gebietsnamen zurück. Duplikate werden verhindert und Elemente werden auf valide Sprach-Tag-Struktur geprüft.

+ +
{{EmbedInteractiveExample("pages/js/intl-getcanonicallocales.html")}}
+ + + +

Syntax

+ +
Intl.getCanonicalLocales(locales)
+ +

Parameter

+ +
+
locales
+
Eine List von {{jsxref("String")}} Werten, von welchen die anerkannten Gebietsnamen gesucht werden.
+
+ +

Rückgabewert

+ +

Ein Array mit den anerkannten Gebietsnamen.

+ +

Beispiele

+ +
Intl.getCanonicalLocales('EN-US'); // ["en-US"]
+Intl.getCanonicalLocales(['EN-US', 'Fr']); // ["en-US", "fr"]
+
+Intl.getCanonicalLocales('EN_US');
+// RangeError:'EN_US' is not a structurally valid language tag
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES Int Draft', '#sec-intl.getcanonicallocales', 'Intl.getCanonicalLocales')}}{{Spec2('ES Int Draft')}}Initiale Definition
+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.Intl.getCanonicalLocales")}}

+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/intl/index.html b/files/de/web/javascript/reference/global_objects/intl/index.html new file mode 100644 index 0000000000..50567a9913 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/intl/index.html @@ -0,0 +1,129 @@ +--- +title: Intl +slug: Web/JavaScript/Reference/Global_Objects/Intl +tags: + - Internationalization + - JavaScript +translation_of: Web/JavaScript/Reference/Global_Objects/Intl +--- +
{{JSRef}}
+ +

Das Intl Objekt ist der Namensraum für die ECMAScript Internationalisierungs API, welche sprachenabhängige Stringvergleiche, Zahlenformate und Datums bzw. Zeitformate unterstützt. Der Konstruktoren für {{jsxref("Collator")}}, {{jsxref("NumberFormat")}} und {{jsxref("DateTimeFormat")}} Objekte sind Eigenschaften des Intl Objektes. Diese Seite dokumentiert diese Eigenschaften sowie die Funktionalität, die in Internationalisierungskonstruktoren und anderen sprachsensitiven Funktionen gemeinsam sind.

+ +

Eigenschaften

+ +
+
{{jsxref("Global_Objects/Collator", "Intl.Collator")}}
+
Konstruktor für Collatoren, Objekte mit sprachsensitiven Stringvergleichen.
+
{{jsxref("Global_Objects/DateTimeFormat", "Intl.DateTimeFormat")}}
+
Konstruktor für Objekte, die Daten und Zeiten sprachsensitiv formatieren.
+
{{jsxref("Global_Objects/NumberFormat", "Intl.NumberFormat")}}
+
Konstruktor für Objekte, die Zahlen sprachsensitiv formatieren.
+
{{jsxref("Global_Objects/PluralRules", "Intl.PluralRules")}}
+
Konstruktor für Objekte, die mit Pluralsprachregeln pluralsensitiv formatieren kann.
+
+ +

Methoden

+ +
+
{{jsxref("Intl.getCanonicalLocales()")}}
+
Eine Methode, die den kanonischen Gebietsnamen zurückgibt.
+
+ +

Gebietsidentifikation und -verhandlung

+ +

Die Internationalisierungskonstruktoren genauso wie viele sprachsensitive Methoden von anderen Konstruktoren (aufgelistet unter {{anch("Siehe auch", "Siehe auch")}}) benutzten übliche Muster für die Identifizierung von Gebieten und der Feststellung des aktuellen Gebietes: Alle diese akzeptieren locales und options Parameter und verhandeln ein Gebiet aus den gesendeten Gebieten und den Lokal unterstützen Gebieten mithilfe eines Speziellen Algorithmus in der Eigenschaft options.localeMatcher aus.

+ +

locales Argument

+ +

Das locales Argument muss entweder ein String sein, der einen BCP 47 Sprachcode enthält, oder ein Array mit solche Sprachcodes. Wenn dieses Argument nicht unterstützt ist oder undefined ist, wird das lokale Standardgebiet benutzt.

+ +

Ein BCP 47-Sprachcode definiert eine Sprache und enthält minimal einen primären Sprachcode. In seiner gebräuchlichsten Form kann er folgender Reihenfolge enthalten: einen Sprachcode, einen Skriptcode und einen Länder- oder Regionscode, alle getrennt durch Bindestriche. Weil diese Codes unabhängig von Groß- und Kleinschreibung ist, ist es empfohlen bei Skriptcodes den ersten Buchstaben groß zuschreiben, bei Länder- und Regionscodes soll alles groß geschrieben werden und der Rest soll klein geschreiben werden.

+ +

Beispiele:

+ + + +

Die Subcodes zum identifizieren von Sprachen, Skripten, Ländern (Regionen) und (selten genutzen) Varianten in BCP 47 Sprachcodes können im IANA Sprach Subtag Register gefunden werden.

+ +

BCP 47 erlaubt sogar Erweiterungen. JavaScript Internationalisierungsfunktionen benutzen die "u" (Unicode) Erweiterung, welche es ermöglicht benutzerdefinierte Änderungen in {{jsxref("Collator")}}, {{jsxref("NumberFormat")}} oder {{jsxref("DateTimeFormat")}} einzubringen. Beispiele:

+ + + +

Gebietsauswahl

+ +

Das locales Argument wird als priorisierte Angabe für die Applikation interpretiert, nach dem alle Unicode-Erweiterungen durchführt wurden. Zur Laufzeut wird gegeben verfügbare Gebiete verglichen und das am besten passende genommen. Es existieren zwei Algorithmen für die Auswahl: die "lookup" Auswahl, die dem im BCP 47 spezifizierten Algorithmus folgt; die "best fit" Auswahl, bei dem die Laufzeigumgebung mindestens einen gleichgutes Ergebnis wie der Lookup Algorithmus erzielt, wenn nicht sogar einen besseren. Wenn die Applikation kein locales Argument unterstützt oder die Laufzeit kein Gebiet hat, welches passt, dann wird das Standardgebiet der Laufzeitumgebung werdendet. Das Algorithmus zur Auswahl kann über das options Argument ausgewählt werden (siehe unten).

+ +

Wenn der ausgewählte Sprache-Tag eine Unicode Erweiterung hat, wird diese genutzt, um das erstellte Objekte oder das Verhalten der Funktion anzupassen. Jeder Konstruktor oder jede Funktion unterstützt nur eine Untermenge der als Unicode Erweiterungen definierten Schlüssel und die unterstützen Werte sind meistens von Sprach-Tag abhängig. Zum Beispiel ist der "co" Schlüssel (collation) nur in {{jsxref("Collator")}} unterstützt und der "phonebk" Wert ist nur im Deutschen unterstützt.

+ +

options Argument

+ +

Das options Argument muss ein Objekt mit Eigenschaften sein, welche vom Konstruktor und der Funktion abhängen. Wenn das options Argument nicht unterstützt wird oder undefined ist, werden Standardwerte für alle Eigenschaften benutzt.

+ +

Eine Eigenschaft ist in allen sprachensensitiven Konstruktoren und Funktionen forhanden: Die localeMatcher Eigenschaft, die vom Datentyp String ist und den Wert "lookup" oder "best fit" hat, welche den Algorithmus für die Auswahl des Gebietes beschreiben (siehe oben).

+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES Int 1.0', '#sec-8', 'Intl')}}{{Spec2('ES Int 1.0')}}Initiale Definition.
{{SpecName('ES Int 2.0', '#sec-8', 'Intl')}}{{Spec2('ES Int 2.0')}}
{{SpecName('ES Int Draft', '#intl-object', 'Intl')}}{{Spec2('ES Int Draft')}}Intl.getCanonicalLocales in the 4. Auflage hinzugefügt.
+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.Intl")}}

+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/intl/numberformat/format/index.html b/files/de/web/javascript/reference/global_objects/intl/numberformat/format/index.html new file mode 100644 index 0000000000..4d42272e9c --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/intl/numberformat/format/index.html @@ -0,0 +1,98 @@ +--- +title: Intl.NumberFormat.prototype.format +slug: Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/format +tags: + - Internationalization + - JavaScript + - NumberFormat + - Property + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/format +--- +
{{JSRef}}
+ +

Die Intl.NumberFormat.prototype.format Eigenschaft gibt eine Getterfunktion zurück, die eine Zahl nach den Sprach- und Formatierungsoptionen dieses {{jsxref("NumberFormat")}} Objektes formatiert.

+ +
{{EmbedInteractiveExample("pages/js/intl-numberformat-prototype-format.html")}}
+ + + +

Syntax

+ +
numberFormat.format(number)
+ +

Parameter

+ +
+
number
+
Zahl, die formatiert werden soll.
+
+ +

Beschreibung

+ +

Die Funktion, die von format Getter zurückgegeben wird, formatiert eine Zahl in einen String nach den angegebenen Sprach- und Formatierungsoptionen des {{jsxref("NumberFormat")}} Objektes.

+ +

Beispiele

+ +

Einsatz von format

+ +

Einsatz der vom format Getter zurückgegebenen Funktion zum Formatieren eines Währungswertes, hier für Russland:

+ +
var options = { style: 'currency', currency: 'RUB' };
+var numberFormat = new Intl.NumberFormat('ru-RU', options);
+console.log(numberFormat.format(654321.987));
+// → "654 321,99 руб."
+
+ +

Einsatz format mit map

+ +

Einsatz der vom format Getter zurückgegebenen Funktion zum Formatieren von allen Zahlen in einem Array. Zu bemerken ist, dass die Funktion an das {{jsxref("NumberFormat")}} Objekt gebunden ist, von dem sie stammt, so dass es direkt in {{jsxref("Array.prototype.map")}} verwendet werden kann.

+ +
var a = [123456.789, 987654.321, 456789.123];
+var numberFormat = new Intl.NumberFormat('es-ES');
+var formatted = a.map(numberFormat.format);
+console.log(formatted.join('; '));
+// → "123.456,789; 987.654,321; 456.789,123"
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKomment
{{SpecName('ES Int 1.0', '#sec-11.3.2', 'Intl.NumberFormat.prototype.format')}}{{Spec2('ES Int 1.0')}}Initiale Definition.
{{SpecName('ES Int 2.0', '#sec-11.3.2', 'Intl.NumberFormat.prototype.format')}}{{Spec2('ES Int 2.0')}} 
{{SpecName('ES Int Draft', '#sec-Intl.NumberFormat.prototype.format', 'Intl.NumberFormat.prototype.format')}}{{Spec2('ES Int Draft')}} 
+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.Intl.NumberFormat.format")}}

+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/intl/numberformat/index.html b/files/de/web/javascript/reference/global_objects/intl/numberformat/index.html new file mode 100644 index 0000000000..b2881e081d --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/intl/numberformat/index.html @@ -0,0 +1,195 @@ +--- +title: Intl.NumberFormat +slug: Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat +tags: + - Internationalization + - JavaScript + - NumberFormat +translation_of: Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat +--- +
{{JSRef}}
+ +

Das Intl.NumberFormat Objekt ist ein Konstruktor für Objekte, die sprachabhängige Zahlenformatierungen nutzen.

+ +
{{EmbedInteractiveExample("pages/js/intl-numberformat.html")}}
+ + + +

Syntax

+ +
new Intl.NumberFormat([locales[, options]])
+Intl.NumberFormat.call(this[, locales[, options]])
+
+ +

Parameter

+ +
+
locales
+
Optional. Ein String mit einem BCP 47 Sprachcode, oder ein Array mit solchen Strings. Für die generelle Form und Interpretation des locales Arguments siehe im {{jsxref("Intl", "Intl Artikel", "#Locale_identification_and_negotiation", 1)}}. Die folgenden Unicode Erweiterungsschlüssel sind erlaubt:
+
+
+
nu
+
Das einzusetzende Nummerierungssystem. Mögliche Wert sind: "arab", "arabext", "bali", "beng", "deva", "fullwide", "gujr", "guru", "hanidec", "khmr", "knda", "laoo", "latn", "limb", "mlym", "mong", "mymr", "orya", "tamldec", "telu", "thai", "tibt".
+
+
+
options
+
+

Optional. Ein Objekt mit einigen oder allen der folgenden Eigenschaften:

+ +
+
localeMatcher
+
Der Spracherkennungsalgorithmus. Mögliche Werte sind "lookup" und "best fit". Der Standardwert ist "best fit". Für mehr Informationen siehe in den {{jsxref("Intl", "Intl Artikel", "#Locale_negotiation", 1)}}.
+
style
+
Der einzusetzende Formatierungsstil. Mögliche Werte sind "decimal" für einfache Zahlenformate, "currency" für Währungen, "percent" für Prozentzahlen. Der Standardwert ist "decimal".
+
currency
+
Die bei der Währungsformatierung einzusetzende Währung. Mögliche Werte sind die ISO 4217 Währungscodes wie zum Beispiel "USD" für US Dollar, "EUR" für Euro und "CNY" für Chinesischen RMB (siehe Current currency & funds code list). Es gibt keinen Standardwert. Wenn style auf "currency" gesetzt ist, muss die currency Eigenschaft gesetzt werden.
+
currencyDisplay
+
Währungsanzeige im String. Mögliche Werte sind "symbol" für lokalisierte Währungssymbole wie zum Beispiel €, "code" für ISO Währungscodes, "name" für den Namen der Währung wie zum Beispiel "dollar". Der Standardwert ist "symbol".
+
useGrouping
+
Gruppierung der Zahl. Wird für das Ein- und Ausschalten der Tausendertrenner oder thousand/lakh/crore-Trenner eingesetzt. Mögliche Werte sind true und false. Der Standardwert ist true.
+
+ +

Die folgenden Eingeschaften fallen in zwei Gruppen: minimumIntegerDigits, minimumFractionDigits, und maximumFractionDigits in einer Gruppe, minimumSignificantDigits und maximumSignificantDigits in der anderen. Wenn nur eine Eigenschaft der zweiten Gruppe genutzt wird, wird die erste Gruppe ignoriert.

+ +
+
minimumIntegerDigits
+
Die minimale Anzahl von Ganzzahl Ziffern. Mögliche Werte sind zwischen 1 und 21. Der Standardwert ist 1.
+
minimumFractionDigits
+
Die minimale Anzahl von Nachkommastellen. Mögliche Werte sind zwischen 0 und 20. Der Standardwert für Zahlen und Prozentzahlen ist 0. Der Standard für Währungen ist die Anzahl der Stellen für die Untereinheit der Währung, die eingesetzt wird (ISO 4217 currency code list) oder 2, wenn die Währung nicht unterstützt wird.
+
maximumFractionDigits
+
Die Maximale Anzahl von Nachkommastellen. Mögliche Werte sind zwischen 0 und 20. Der Standardwert für einfache Zahlen ist die größere Zahl von minimumFractionDigits und 3. Der Standardwert für Währungen ist der größere von minimumFractionDigits und der Anzahl der Stellen für die Untereinheit der Währung oder 2 wenn die Währung nicht unterstützt wird. Der Standardwert für Prozentzahlen ist die größere Zahl von minimumFractionDigits und 0.
+
minimumSignificantDigits
+
Die minimale Anzahl von signifikanten Stellen. Mögliche Werte sind zwischen 1 und 21. Der Standardwert ist 1.
+
maximumSignificantDigits
+
Die maximale Anzahl von signifikanten Stellen. Mögliche Werte sind zwischen 1 und 21. Der Standardwert ist minimumSignificantDigits.
+
+
+
+ +

Beschreibung

+ +

Eigenschaften

+ +
+
{{jsxref("NumberFormat.prototype", "Intl.NumberFormat.prototype")}}
+
Erlaubt das Hinzufügen von Eigenschaften zu allen Objekten.
+
+ +

Methoden

+ +
+
{{jsxref("NumberFormat.supportedLocalesOf", "Intl.NumberFormat.supportedLocalesOf()")}}
+
Gibt ein Array zurück, welches alle Sprachen enthält, die unterstützt werden, ohne auf den Laufzeitstandard zurückzufallen (ohne fallback).
+
+ +

NumberFormat Instanzen

+ +

Eigenschaften

+ +

NumberFormat Instanzen erben die folgenden Eigenschaften von ihrem Prototyp:

+ +
{{page('/de/docs/Web/JavaScript/Reference/Global_Objects/NumberFormat/prototype', 'Eigenschaften')}}
+ +

Methoden

+ +

NumberFormat Instanzen erben die folgenden Methoden von ihrem Prototyp:

+ +
{{page('/de/docs/Web/JavaScript/Reference/Global_Objects/NumberFormat/prototype', 'Methoden')}}
+ +

Beispiele

+ +

Standardeinsatz

+ +

Beim Einsatz ohne spezifizierte Sprache wird ein formatierter String in der Standardsprache und mit Standardoptionen zurückgegeben:

+ +
var number = 3500;
+
+console.log(new Intl.NumberFormat().format(number));
+// → '3.500' wenn in Deutscher Sprache
+
+ +

Einsatz von locales

+ +

Diese Beispiel zeigt einige der Variationen lokalisierter Zahlenformate. Um das Format der Sprache zu erhalten, welches in der Anwendung benutzt wird, spezifiziere die Sprache (und mögliche Rückfallsprachen (fallback)) mit dem locales Argument.

+ +
var number = 123456.789;
+
+// Englische Benutzer sehen ein Punkt anstatt eines Kommas als Dezimaltrenner
+console.log(new Intl.NumberFormat('en-GB').format(number));
+// → 123.456,789
+
+// Arabisch ist in den meisten arabisch sprachigen Ländern eingesetzt
+console.log(new Intl.NumberFormat('ar-EG').format(number));
+// → ١٢٣٤٥٦٫٧٨٩
+
+// Indien benutzt Tausendertrennzeichen bei Tausend und allen weiteren zwei Stellen
+console.log(new Intl.NumberFormat('en-IN').format(number));
+// → 1,23,456.789
+
+// Chinesisches Zahlensystem
+console.log(new Intl.NumberFormat('zh-Hans-CN-u-nu-hanidec').format(number));
+// → 一二三,四五六.七八九
+
+// Wenn eine Sprache übergeben werden soll, die vielleicht nicht
+// unterstützt wird (Balinesisch), nutze eine fallback Sprache (Indonesisch)
+console.log(new Intl.NumberFormat(['ban', 'id']).format(number));
+// → 123.456,789
+
+ +

Einsatz von options

+ +

Das Ergebnis von toLocaleString kann durch das options Argument angepasst werden.

+ +
var number = 123456.789;
+
+//  Währungsformat
+console.log(new Intl.NumberFormat('de-DE', { style: 'currency', currency: 'EUR' }).format(number));
+// → 123.456,79 €
+
+//  Der Japanische Yen hat keine Unterwährung (z. B. Cent)
+console.log(new Intl.NumberFormat('ja-JP', { style: 'currency', currency: 'JPY' }).format(number));
+// → ¥123,457
+
+//  Limitiert auf drei signifikante Stellen
+console.log(new Intl.NumberFormat('en-IN', { maximumSignificantDigits: 3 }).format(number));
+// → 1,23,000
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES Int 1.0', '#sec-11.1', 'Intl.NumberFormat')}}{{Spec2('ES Int 1.0')}}Initiale Definition.
{{SpecName('ES Int 2.0', '#sec-11.1', 'Intl.NumberFormat')}}{{Spec2('ES Int 2.0')}} 
{{SpecName('ES Int Draft', '#numberformat-objects', 'Intl.NumberFormat')}}{{Spec2('ES Int Draft')}} 
+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.Intl.NumberFormat")}}

+
+ +

Siehe auch

+ +

{{page('/de/docs/Web/JavaScript/Reference/Global_Objects/Intl', 'Siehe auch')}}

diff --git a/files/de/web/javascript/reference/global_objects/intl/numberformat/prototype/index.html b/files/de/web/javascript/reference/global_objects/intl/numberformat/prototype/index.html new file mode 100644 index 0000000000..aa10caf254 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/intl/numberformat/prototype/index.html @@ -0,0 +1,81 @@ +--- +title: Intl.NumberFormat.prototype +slug: Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/prototype +tags: + - Internationalization + - JavaScript + - NumberFormat + - Property + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat +--- +
{{JSRef}}
+ +

Die Intl.NumberFormat.prototype Eigenschaft repräsentiert das Prototypobjekt für einen {{jsxref("NumberFormat", "Intl.NumberFormat")}} Konstruktor.

+ +
{{js_property_attributes(0, 0, 0)}}
+ +

Beschreibung

+ +

Siehe {{jsxref("NumberFormat")}} für eine Beschreibung von Intl.NumberFormat Instanzen.

+ +

{{jsxref("NumberFormat", "Intl.NumberFormat")}} Instanzen erben von Intl.NumberFormat.prototype. Veränderungen am Prototypobjekt werden an alle {{jsxref("NumberFormat", "Intl.NumberFormat")}} Instanzen vererbt.

+ +

Eigenschaften

+ +
+
Intl.NumberFormat.prototype.constructor
+
Eine Referenz zu Intl.NumberFormat.
+
{{jsxref("NumberFormat.format", "Intl.NumberFormat.prototype.format")}}
+
Getter; gibt eine Funktion zurück, die eine Zahl nach den Sprach- und Formatierungsoptionen dieses {{jsxref("NumberFormat")}} Objektes formatiert.
+
+ +

Methoden

+ +
+
{{jsxref("NumberFormat.formatToParts", "Intl.NumberFormat.prototype.formatToParts()")}}
+
Gibt ein {{jsxref("Array")}} mit Objekten zurück, welche die Repräsentation des Zahlenstrings in Teilen enthalten, die für sprachsicheres Formatieren genutzt werden können.
+
{{jsxref("NumberFormat.resolvedOptions", "Intl.NumberFormat.prototype.resolvedOptions()")}}
+
Gibt ein neues Objekt mit eigenschaften zurück, die Sprach- und Formatierungsoptionen enthält, die bei der Initialisierung des Objektes errechnet wurden.
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKomment
{{SpecName('ES Int 1.0', '#sec-11.2.1', 'Intl.NumberFormat.prototype')}}{{Spec2('ES Int 1.0')}}Initiale Definition.
{{SpecName('ES Int 2.0', '#sec-11.2.1', 'Intl.NumberFormat.prototype')}}{{Spec2('ES Int 2.0')}} 
{{SpecName('ES Int Draft', '#sec-Intl.NumberFormat.prototype', 'Intl.NumberFormat.prototype')}}{{Spec2('ES Int Draft')}} 
+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.Intl.NumberFormat.prototype")}}

+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/intl/numberformat/supportedlocalesof/index.html b/files/de/web/javascript/reference/global_objects/intl/numberformat/supportedlocalesof/index.html new file mode 100644 index 0000000000..2521267a18 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/intl/numberformat/supportedlocalesof/index.html @@ -0,0 +1,98 @@ +--- +title: Intl.NumberFormat.supportedLocalesOf() +slug: Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/supportedLocalesOf +tags: + - Internationalization + - JavaScript + - Method + - NumberFormat +translation_of: Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/supportedLocalesOf +--- +
{{JSRef}}
+ +

Die Intl.NumberFormat.supportedLocalesOf() Methode gibt ein Array zurück, welches die Gebiete enthält, die die Zahlenformatierung unterstützen, ohne das auf das Laufzeitstandardgebiet zurückgegriffen werden muss.

+ +
{{EmbedInteractiveExample("pages/js/intl-numberformat-prototype-supportedlocalesof.html")}}
+ + + +

Syntax

+ +
Intl.NumberFormat.supportedLocalesOf(locales[, options])
+ +

Parameter

+ +
+
locales
+
Ein String mit einem BCP 47 Sprachtag, oder ein Array von solchen Strings. Für die generelle Form des locales Arguments siehe die {{jsxref("Intl", "Intl Seite", "#Gebietsidentifikation_und_-verhandlung", 1)}}.
+
options
+
+

Optional. Ein Objekt, welches die folgende Eigenschaft haben kann:

+ +
+
localeMatcher
+
Der Auswahlalgorithmus des Gebietes. Mögliche Werte sind "lookup" und "best fit"; der Standard ist "best fit". Für mehr Information über diese Option siehe auf der {{jsxref("Intl", "Intl Seite", "#Gebietsauswahl", 1)}}.
+
+
+
+ +

Rückgabewert

+ +

Gibt ein Array zurück, welches eine Untermenge der gegebenen Gebiete enthält, für die die Zahlenformatierung unterstützen wird, ohne das auf das Laufzeitstandardgebeit zurückgegriffen werden muss.

+ +

Beschreibung

+ +

Gibt ein Array zurück, welches eine Untermenge der gegebenen Gebiete (locales) enthält. Die Sprachtags, die zurückgegeben werden, unterstützen Zahlenformatierungen für das entsprechende Gebiet, ohne auf den Systemstandard zurückgreifen zu müssen.

+ +

Beispiele

+ +

Einsatz von supportedLocalesOf

+ +

Angenommen wird, dass indonesische und deutsche Zahlenformatierung unterstützt wird, aber balinesisch nicht. supportedLocalesOf gibt das indonesische und deutsche Sprachtag unverändert zurück, obwohl Pinyin nicht mit Indonesisch verwendet wird und Fachdeutsch wahrscheinlich nicht für Indonesisch verfügbar ist. Zu bemerken ist, dass der "lookup" Algorithmus verwendet wird — der"best-fit" Algorithmus könnte entscheiden, dass Indonesisch eine angemessene Ergänzung für Balinesen ist, da die meisten Balinesen Indonesisch verstehen und daher auch das balinesische Sprachtag zurückgeben.

+ +
var locales = ['ban', 'id-u-co-pinyin', 'de-ID'];
+var options = { localeMatcher: 'lookup' };
+console.log(Intl.NumberFormat.supportedLocalesOf(locales, options).join(', '));
+// → "id-u-co-pinyin, de-ID"
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES Int 1.0', '#sec-11.2.2', 'Intl.NumberFormat.supportedLocalesOf')}}{{Spec2('ES Int 1.0')}}Initiale Definition.
{{SpecName('ES Int 2.0', '#sec-11.2.2', 'Intl.NumberFormat.supportedLocalesOf')}}{{Spec2('ES Int 2.0')}}
{{SpecName('ES Int Draft', '#sec-Intl.NumberFormat.supportedLocalesOf', 'Intl.NumberFormat.supportedLocalesOf')}}{{Spec2('ES Int Draft')}}
+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.Intl.NumberFormat.supportedLocalesOf")}}

+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/intl/pluralrules/index.html b/files/de/web/javascript/reference/global_objects/intl/pluralrules/index.html new file mode 100644 index 0000000000..fe646e4772 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/intl/pluralrules/index.html @@ -0,0 +1,161 @@ +--- +title: Intl.PluralRules +slug: Web/JavaScript/Reference/Global_Objects/Intl/PluralRules +tags: + - Internationalization + - Intl + - JavaScript + - NeedsTranslation + - PluralRules + - TopicStub +translation_of: Web/JavaScript/Reference/Global_Objects/Intl/PluralRules +--- +
{{JSRef}}
+ +

The Intl.PluralRules object is a constructor for objects that enable plural sensitive formatting and plural language language rules.

+ +

Syntax

+ +
new Intl.PluralRules([locales[, options]])
+Intl.PluralRules.call(this[, locales[, options]])
+
+ +

Parameters

+ +
+
locales
+
+

Optional. A string with a BCP 47 language tag, or an array of such strings. For the general form and interpretation of the locales argument, see the {{jsxref("Intl", "Intl page", "#Locale_identification_and_negotiation", 1)}}.

+
+
options
+
+

Optional. An object with some or all of the following properties:

+ +
+
localeMatcher
+
The locale matching algorithm to use. Possible values are "lookup" and "best fit"; the default is "best fit". For information about this option, see the {{jsxref("Global_Objects/Intl", "Intl page", "#Locale_negotiation", 1)}}.
+
type
+
The type to use. Possible values are: +
    +
  • "cardinal" for cardinal numbers (refering to the quantity of things). This is the default value.
  • +
  • "ordinal" for ordinal number (refering to the ordering or ranking of things, e.g. "1st", "2nd", "3rd" in English).
  • +
+
+
+
+
+ +

Description

+ +

Properties

+ +
+
{{jsxref("PluralRules.prototype", "Intl.PluralRules.prototype")}}
+
Allows the addition of properties to all objects.
+
+ +

Methods

+ +
+
{{jsxref("PluralRules.supportedLocalesOf", "Intl.PluralRules.supportedLocalesOf()")}}
+
Returns an array containing those of the provided locales that are supported without having to fall back to the runtime's default locale.
+
+ +

PluralRules instances

+ +

Properties

+ +

PluralRules instances inherit the following properties from their prototype:

+ +
{{page('/en-US/docs/Web/JavaScript/Reference/Global_Objects/PluralRules/prototype', 'Properties')}}
+ +

Methods

+ +

PluralRules instances inherit the following methods from their prototype:

+ +
{{page('/en-US/docs/Web/JavaScript/Reference/Global_Objects/PluralRules/prototype', 'Methods')}}
+ +

Examples

+ +

Basic usage

+ +

In basic use without specifying a locale, a formatted string in the default locale and with default options is returned. This is useful to distinguish between singular and plural forms, e.g. "dog" and "dogs".

+ +
var pr = new Intl.PluralRules();
+
+pr.select(0);
+// → 'other' if in US English locale
+
+pr.select(1);
+// → 'one' if in US English locale
+
+pr.select(2);
+// → 'other' if in US English locale
+
+ +

Using locales

+ +

This example shows some of the variations in localized plural rules. In order to get the format of the language used in the user interface of your application, make sure to specify that language (and possibly some fallback languages) using the locales argument:

+ +
// Arabic has different plural rules
+
+new Intl.PluralRules('ar-EG').select(0);
+// → 'zero'
+new Intl.PluralRules('ar-EG').select(1);
+// → 'one'
+new Intl.PluralRules('ar-EG').select(2);
+// → 'two'
+new Intl.PluralRules('ar-EG').select(6);
+// → 'few'
+new Intl.PluralRules('ar-EG').select(18);
+// → 'many'
+
+ +

Using options

+ +

The results can be customized using the options argument, which has one property called type which you can set to ordinal. This is useful to figure out the ordinal indicator, e.g. "1st", "2nd", "3rd", "4th", "42nd" and so forth.

+ +
var pr = new Intl.PluralRules('en-US', { type: 'ordinal' });
+
+pr.select(0);
+// → 'other'
+pr.select(1);
+// → 'one'
+pr.select(2);
+// → 'two'
+pr.select(3);
+// → 'few'
+pr.select(4);
+// → 'other'
+pr.select(42);
+// → 'two'
+
+ +

Specifications

+ + + + + + + + + + + + + + +
SpecificationStatusComment
Intl Plural Rules Draft{{Spec2('ES Int Draft')}}Initial definition
+ +

Browser compatibility

+ +
+ + +

{{Compat("javascript.builtins.Intl.PluralRules")}}

+
+ +

See also

+ +
{{page('/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl', 'See_also')}}
diff --git a/files/de/web/javascript/reference/global_objects/intl/pluralrules/supportedlocalesof/index.html b/files/de/web/javascript/reference/global_objects/intl/pluralrules/supportedlocalesof/index.html new file mode 100644 index 0000000000..a33eac3e76 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/intl/pluralrules/supportedlocalesof/index.html @@ -0,0 +1,85 @@ +--- +title: Intl.PluralRules.supportedLocalesOf() +slug: Web/JavaScript/Reference/Global_Objects/Intl/PluralRules/supportedLocalesOf +tags: + - Internationalization + - Intl + - JavaScript + - Method + - PluralRules +translation_of: Web/JavaScript/Reference/Global_Objects/Intl/PluralRules/supportedLocalesOf +--- +
{{JSRef}}
+ +

Die Intl.PluralRules.supportedLocalesOf() Methode gibt ein Array zurück, welches die Gebiete enthält, die die Pluralformatierung unterstützen, ohne das auf das Laufzeitstandardgebeit zurückgegriffen werden muss.

+ +

Syntax

+ +
Intl.PluralRules.supportedLocalesOf(locales[, options])
+ +

Parameter

+ +
+
locales
+
Ein String mit einem BCP 47 Sprachtag, oder ein Array von solchen Strings. Für die generelle Form des locales Arguments siehe die {{jsxref("Intl", "Intl Seite", "#Gebietsidentifikation_und_-verhandlung", 1)}}.
+
options
+
+

Optional. Ein Objekt, welches die folgende Eigenschaft haben kann:

+ +
+
localeMatcher
+
Der Auswahlalgorithmus des Gebietes. Mögliche Werte sind "lookup" und "best fit"; der Standard ist "best fit". Für mehr Information über diese Option siehe auf der {{jsxref("Intl", "Intl Seite", "#Gebietsauswahl", 1)}}.
+
+
+
+ +

Rückgabewert

+ +

Gibt ein Array zurück, welches eine Untermenge der gegebenen Gebiete enthält, für die die Pluralformatierung unterstützen wird, ohne das auf das Laufzeitstandardgebeit zurückgegriffen werden muss.

+ +

Beschreibung

+ +

Gibt ein Array zurück, welches eine Untermenge der gegebenen Gebiete (locales) enthält. Die Sprachtags, die zurückgegeben werden, unterstützen Zahlenformatierungen für das entsprechende Gebiet, ohne auf den Systemstandard zurückgreifen zu müssen.

+ +

Beispiele

+ +

Einsatz von supportedLocalesOf

+ +

Angenommen wird, dass indonesische und deutsche Pluralformatierung unterstützt wird, aber balinesisch nicht. supportedLocalesOf gibt das indonesische und deutsche Sprachtag unverändert zurück, obwohl Pinyin nicht mit Indonesisch verwendet wird und Fachdeutsch wahrscheinlich nicht für Indonesisch verfügbar ist. Zu bemerken ist, dass der "lookup" Algorithmus verwendet wird — der"best-fit" Algorithmus könnte entscheiden, dass Indonesisch eine angemessene Ergänzung für Balinesen ist, da die meisten Balinesen Indonesisch verstehen und daher auch das balinesische Sprachtag zurückgeben.

+ +
var locales = ['ban', 'id-u-co-pinyin', 'de-ID'];
+var options = { localeMatcher: 'lookup' };
+console.log(Intl.PluralRules.supportedLocalesOf(locales, options).join(', '));
+// → "id-u-co-pinyin, de-ID"
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + +
SpezifikationStatusKommentar
Intl Plural Rules Draft{{Spec2('ES Int Draft')}}Initiale Definition
+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.Intl.PluralRules.supportedLocalesOf")}}

+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/isfinite/index.html b/files/de/web/javascript/reference/global_objects/isfinite/index.html new file mode 100644 index 0000000000..c947c8cbf8 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/isfinite/index.html @@ -0,0 +1,99 @@ +--- +title: isFinite() +slug: Web/JavaScript/Reference/Global_Objects/isFinite +tags: + - JavaScript +translation_of: Web/JavaScript/Reference/Global_Objects/isFinite +--- +
{{jsSidebar("Objects")}}
+ +

Die globale Funktion isFinite() prüft, ob eine Zahl endlich ist oder nicht. Wenn der übergeben Wert keine Nummer ist, wird dieser zuerst konvertiert.

+ +
{{EmbedInteractiveExample("pages/js/globalprops-isfinite.html")}}
+ + + +

Syntax

+ +
isFinite(testWert)
+ +

Parameter

+ +
+
testWert
+
Wert, der auf Endlichkeit geprüft wird.
+
+ +

Rückgabewert

+ +

false wenn der Wert positiv {{jsxref("Infinity")}}, negativ {{jsxref("Infinity")}} or {{jsxref("NaN")}} ist, andernfalls true.

+ +

Beschreibung

+ +

isFinite ist eine Toplevel-Funktion und ist nicht mit einem Objekt verbunden.

+ +

Man kann die Funktion nutzen, um eine Nummer auf Endlichkeit zu prüfen. Die isFinite Funktion prüft die Zahl, die ihr als Parameter mit übergeben wird. Wenn der Wert der Zahl {{jsxref("Global_Objects/NaN", "NaN")}}, positiv {{jsxref("Global_Objects/Infinity", "infinity")}} oder negativ {{jsxref("Global_Objects/Infinity", "infinity")}} ist, so ist der Rückgabewert false; andernfalls true.

+ +

Beispiele

+ +
isFinite(Infinity);  // false
+isFinite(NaN);       // false
+isFinite(-Infinity); // false
+
+isFinite(0);         // true
+isFinite(2e64);      // true
+isFinite(null);      // true
+
+isFinite(null)       // true, würde false sein, wenn die robustere
+                     // Methode Number.isFinite(null) eingesetzt wird.
+
+isFinite('0');       // true, würde false sein, wenn die robustere
+                     // Methode Number.isFinite('0') eingesetzt wird.
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES3')}}{{Spec2('ES3')}}Initiale Definition.
{{SpecName('ES5.1', '#sec-15.1.2.5', 'isFinite')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-isfinite-number', 'isFinite')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-isfinite-number', 'isFinite')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.isFinite")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/isnan/index.html b/files/de/web/javascript/reference/global_objects/isnan/index.html new file mode 100644 index 0000000000..328ef94557 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/isnan/index.html @@ -0,0 +1,192 @@ +--- +title: isNaN() +slug: Web/JavaScript/Reference/Global_Objects/isNaN +tags: + - JavaScript + - Method +translation_of: Web/JavaScript/Reference/Global_Objects/isNaN +--- +
{{jsSidebar("Objects")}}
+ +

Die isNaN() Methode prüft, ob ein Wert {{jsxref("NaN")}} ist. Bemerkung: Aufgrund innerer Zwänge weist die isNaN Methode interessante Regeln auf. Alternativ kann die in ECMAScript 2015 definierte Methode {{jsxref("Number.isNaN()")}} genutzt werden.

+ +
{{EmbedInteractiveExample("pages/js/globalprops-isnan.html")}}
+ +

Syntax

+ +
isNaN(testWert)
+ +

Parameter

+ +
+
testWert
+
Der zu testende Wert.
+
+ +

Rückgabewert

+ +

true wenn der gegebene Wert {{jsxref("NaN")}} ist, andernfalls false.

+ +

Beschreibung

+ +

Die notwendigkeit einer isNaN Methode

+ +

Anders als bei allen anderen Werten in JavaScript, ist es nicht möglich mit den Gleichheitsoperatoren ({{jsxref("Operators/Comparison_Operators", "==", "#Equality")}} and {{jsxref("Operators/Comparison_Operators", "===", "#Identity")}}) zu prüfen, ob ein Wert {{jsxref("NaN")}} ist oder nicht. NaN == NaN und NaN === NaN werden zu false ausgewertet. Aus diesem Grund wird eine isNaN Methode benötigt. 

+ +

Ursprünge des NaNWertes

+ +

NaN Werte werden generiert, wenn das Ergebnis einer arithmetischen Operation ein undefinierter Wert oder ein nicht repräsentierbarer Wert ist. Diese Werte entsprechen nicht unbedingt dem Überlauf von Wertebereichen. Ein NaN Ergebnis kann ebenfalls entstehen, wenn es für eine Operation keine primitive Zahl als Darstellung gibt.

+ +

Beispielsweise ist das Ergebnis einer Division von null durch null NaN. Jedoch ist das Ergebnis nicht NaN wenn andere Zahlen durch null geteilt werden.

+ +

Verwirrende Spezialfälle

+ +

Schon seit den frühesten Versionen der isNaN Methodendefinition ist das Verhalten für nicht numerische Typen nicht trivial. Wenn der zu überprüfende Wert nicht vom Typ Number ist, so wird dieser Wert zuerst in den Typ Number konvertiert. Erst dann wird geprüft, ob der Wert {{jsxref("NaN")}} ist. Weil einige nicht numerischen Werte trotzdem als Zahlen interpretiert werden können (leere Strings und Werte vom Typ boolean können als Nullen und Einsen dargestellt werden) ist das false-Resultat der Funktion manchmal unerwartet. Der leere String ist ein Beispiel dafür, weil dieser definitiv keine Nummer ist. Das verwirrende ist jedoch dass "not a number" eine spezielle Repräsentation in den IEEE-754 Gleitkommazahlen besitzt. Aus diesem Grund kann die Methode so interpretiert werden, dass sie die Antwort auf die Frage gibt, ob ein Wert, der als Nummer interpretiert wird, eine IEEE-754 'Not a number' ist.

+ +

Die aktuelle Version von ECMAScript (ES2015) enthält die Methode {{jsxref("Number.isNaN()")}}. Number.isNaN(x) wird eine zuverlässige Möglichkeit sein um zu testen ob x den Wert NaN entspricht oder nicht. Mit Number.isNaN wird exakt abgefragt, ob es sich um eine Nummer handelt. Eine Alternative zu testen ob eine Variable NaN ist, ist die Abfrage  (x != x). Diese wird im Normalfall zu false ausgewertet, außer wenn der wert NaN ist.

+ +

Ein Polyfill für isNaN ist folgender (der Polyfill nutzt die einzigartigen Eigenschaften von NaN, dass dieses niemals gleichwertig mit NaN ist):

+ +
var isNaN = function(value) {
+    var n = Number(value);
+    return n !== n;
+}
+ +

Beispiele

+ +
isNaN(NaN);       // true
+isNaN(undefined); // true
+isNaN({});        // true
+
+isNaN(true);      // false
+isNaN(null);      // false
+isNaN(37);        // false
+
+// strings
+isNaN("37");      // false: "37" wird in die Nummer 37 konvertiert welche nicht NaN ist
+isNaN("37.37");   // false: "37.37" wird in die Nummer 37.37 konvertiert welche nicht NaN ist
+isNaN("37,5");    // true
+isNaN("123ABC");  // true:  parseInt("123ABC") ist 123 aber Number("123ABC") ist NaN
+isNaN("");        // false: der leere String wird zu 0 konvertiert welche nicht NaN ist
+isNaN(" ");       // false: ein String mit Leerzeichen wird zu 0 konvertiert welche nicht NaN ist
+
+// dates
+isNaN(new Date());                // false
+isNaN(new Date().toString());     // true
+
+// Dieses ist das Beispiel, warum isNaN nicht zuverlässig ist.
+isNaN("blabla")   // true: "blabla" wird zu einer Nummer konvertiert
+                  // Das Konvertieren schlägt fehl und gibt NaN zurück
+
+ +

Nützliche Spezialfälle

+ +

Es gibt weitere nützliche Wege isNaN() einzusetzen: Wenn isNaN(x) false zurückgibt, kann x in einer arithmetischen Operation eingesetzt werden, ohne dass diese zu NaN ausgewertet wird. Wenn true zurückgegeben wird, wird jede arithmetische Operation zu NaN ausgewertet. Das bedeutet, dass in JavaScript isNaN(x) == true  gleich zu "x - 0 ergibt NaN" (in JavaScript wird x - 0 == NaN immer false zurückgeben, was bedeutet, man kann es nicht testen). Aktuell geben isNaN(x), isNaN(x - 0), isNaN(Number(x)), Number.isNaN(x - 0), und Number.isNaN(Number(x)) immer das selbe Ergebnis  zurück und isNaN(x) ist der kürzest mögliche Ausdruck.

+ +

Dieses kann zum Beispiel eingesetzt werden, um zu prüfen, ob ein Funktionsargument arithmetisch verarbeitet werden kann. Wenn diese Verarbeitung nicht möglich ist, kann ein Standardwert unterstützt werden oder irgendetwas anderes. Damit kann man sich die volle Vielseitigkeit, die JavaScript mit implizierten Typkonvertierungen abhängig vom Kontext unterstützt, zu nutze machen.

+ +

Beispiele

+ +
function increment(x) {
+  if (isNaN(x)) x = 0;
+  return x + 1;
+};
+
+// Gleicher Wirkung wie bei Number.isNaN():
+function increment(x) {
+  if (Number.isNaN(Number(x))) x = 0;
+  return x + 1;
+};
+
+// In den folgenden Fällen ist für das Funktionsargument x
+// isNaN(x) immer false, weil es keine Nummer ist,
+// jedoch kann es in arithmetischen Operationen eingesetzt
+// werden.
+increment("");            // 1: "" is converted to 0
+increment(new String());  // 1: String object representing an empty string is converted to 0
+increment([]);            // 1: [] is converted to 0
+increment(new Array());   // 1: Array object representing an empty array is converted to 0
+increment("0");           // 1: "0" is converted to 0
+increment("1");           // 2: "1" is converted to 1
+increment("0.1");         // 1.1: "0.1" is converted to 0.1
+increment("Infinity");    // Infinity: "Infinity" is converted to Infinity
+increment(null);          // 1: null is converted to 0
+increment(false);         // 1: false is converted to 0
+increment(true);          // 2: true is converted to 1
+increment(new Date());    // returns current date/time in milliseconds plus 1
+
+// In den folgenden Fällen ist für das Funktionsargument x
+// isNaN(x) immer false und x ist eine Nummer
+increment(-1);            // 0
+increment(-0.1);          // 0.9
+increment(0);             // 1
+increment(1);             // 2
+increment(2);             // 3
+// ... und so weiter ...
+increment(Infinity);      // Infinity
+
+// In den folgenden Fällen ist für das Funktionsargument x
+// isNaN(x) immer true und x ist keine Nummer,
+// weshalb die Funktion es mit 0 ersetzt und 1 zurück gibt.
+increment(String);            // 1
+increment(Array);             // 1
+increment("blabla");          // 1
+increment("-blabla");         // 1
+increment(0/0);               // 1
+increment("0/0");             // 1
+increment(Infinity/Infinity); // 1
+increment(NaN);               // 1
+increment(undefined);         // 1
+increment();                  // 1
+
+// isNaN(x) ist immer identisch mit isNaN(Number(x)),
+// aber die Präsenz wenn x ist immer zwingend erforderlich.
+isNaN(x) == isNaN(Number(x)) // true für jeden Wert von x, auch x == undefined,
+                             // weil isNaN(undefined) == true und Number(undefined) gibt NaN,
+                             // aber ...
+isNaN() == isNaN(Number())   // false, weil isNaN() == true und Number() == 0
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES1')}}{{Spec2('ES1')}}Initiale Definition.
{{SpecName('ES5.1', '#sec-15.1.2.4', 'isNaN')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-isnan-number', 'isNaN')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-isnan-number', 'isNaN')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.isNaN")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/json/index.html b/files/de/web/javascript/reference/global_objects/json/index.html new file mode 100644 index 0000000000..e52af893a1 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/json/index.html @@ -0,0 +1,155 @@ +--- +title: JSON +slug: Web/JavaScript/Reference/Global_Objects/JSON +tags: + - JSON + - JavaScript + - Object + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/JSON +--- +
{{JSRef}}
+ +

Das JSON Objekt enthält Methoden für das Einlesen und Konvertieren der JavaScript Objekt Notation ({{glossary("JSON")}}) in JavaScript und umgekehrt. Es kann nicht aufgerufen oder erstellt werden. Außer seinen zwei Methoden hat das Objekt keine interessante Funktionalität.

+ +

Beschreibung

+ +

JavaScript Objekt Notation

+ +

JSON ist eine Syntax für das Serialisieren von Objekten, Arrays, Nummern, Strings, Wahrheitswerten und {{jsxref("null")}}. JSON basiert auf der JavaScript Syntax, jedoch ist sie leicht unterschiedlich: Manches JavaScript ist kein JSON und manches JSON ist kein JavaScript. Für mehr Informationen Siehe in dem Artikel JSON: The JavaScript subset that isn't.

+ + + + + + + + + + + + + + + + + + + + + + + +
JavaScript und JSON Unterschiede
JavaScript TypenJSON Unterschiede
Objekte und ArraysNamen von Eigenschaften müssen als Strings in Doppelten Anführungszeichen (") geschrieben werden; Angefügte Kommas sind verboten.
ZahlenFührende Nullen sind verboten (JSON.stringify ignoriert diese Nullen, jedoch wirft JSON.parse einen SyntaxError); Nach einem Dezimalpunkt muss mindestens eine Ziffer folgen.
Strings +

Nur eine begrenzte Menge von Zeichen muss maskiert werden; Einige Kontrollzeichen sind verboten; Die Unicodezeichen Zeilenumbruch (U+2028) und Paragraphenumbruch (U+2029) sind erlaubt; Strings müssen in Doppelten Anführungszeichen (") geschrieben werden. Das folgenden Beispiel zeigt eine Situation in der {{jsxref("JSON.parse()")}} funktioniert, aber das Ausführen durch JavaScript zu einem {{jsxref("SyntaxError")}} führt:

+ +
+var code = '"\u2028\u2029"';
+JSON.parse(code); // funktioniert
+eval(code); // Error
+
+
+ +

Nachfolgend ist die komplette JSON Syntax zu sehen:

+ +
JSON = null
+    or true or false
+    or JSONNumber
+    or JSONString
+    or JSONObject
+    or JSONArray
+
+JSONNumber = - PositiveNumber
+          or PositiveNumber
+PositiveNumber = DecimalNumber
+              or DecimalNumber . Digits
+              or DecimalNumber . Digits ExponentPart
+              or DecimalNumber ExponentPart
+DecimalNumber = 0
+             or OneToNine Digits
+ExponentPart = e Exponent
+            or E Exponent
+Exponent = Digits
+        or + Digits
+        or - Digits
+Digits = Digit
+      or Digits Digit
+Digit = 0 through 9
+OneToNine = 1 through 9
+
+JSONString = ""
+          or " StringCharacters "
+StringCharacters = StringCharacter
+                or StringCharacters StringCharacter
+StringCharacter = any character
+                  except " or \ or U+0000 through U+001F
+               or EscapeSequence
+EscapeSequence = \" or \/ or \\ or \b or \f or \n or \r or \t
+              or \u HexDigit HexDigit HexDigit HexDigit
+HexDigit = 0 through 9
+        or A through F
+        or a through f
+
+JSONObject = { }
+          or { Members }
+Members = JSONString : JSON
+       or Members , JSONString : JSON
+
+JSONArray = [ ]
+         or [ ArrayElements ]
+ArrayElements = JSON
+             or ArrayElements , JSON
+ +

Unbedeutende Whitespaces können überall eingebaut werden außer in eine JSONNumber (Nummern dürfen keine Whitespaces enthalten) und einen JSONString (In dem wird es als das entsprechende Whitespace interpretiert oder führt zu einem Fehler). Das Tab-Zeichen (U+0009), "carriage return"-Zeichen (U+000D), "line feed"-Zeichen (U+000A) und Leerzeichen (U+0020) sind die einzigen erlaubten Whitespace-Zeichen.

+ +

Methoden

+ +
+
{{jsxref("JSON.parse()")}}
+
Liest einen String als JSON ein. Optional werden die Werte und die Eigenschaften Transformiert und zurückgegeben.
+
{{jsxref("JSON.stringify()")}}
+
Gibt ein JSON-String eines übergebenen Wertes zurück. Optional können nur bestimmte Eigenschaften zum JSON hinzugefügt werden oder Eigenschaften werden Ersetzt. Dieses wird durch eine Benutzerdefinierte Methode durchgeführt.
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES5.1', '#sec-15.12', 'JSON')}}{{Spec2('ES5.1')}}Initiale Definition.
{{SpecName('ES6', '#sec-json-object', 'JSON')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-json-object', 'JSON')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ +
+
+ + +

{{Compat("javascript.builtins.JSON")}}

+
+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/json/parse/index.html b/files/de/web/javascript/reference/global_objects/json/parse/index.html new file mode 100644 index 0000000000..b8442eb38d --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/json/parse/index.html @@ -0,0 +1,128 @@ +--- +title: JSON.parse() +slug: Web/JavaScript/Reference/Global_Objects/JSON/parse +tags: + - ECMAScript5 + - JSON + - JavaScript + - Method + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/JSON/parse +--- +
{{JSRef}}
+ +

Die Methode JSON.parse() erzeugt aus einem JSON-formatierten Text ein entsprechendes Javascript-Objekt. Der optionale reviver-Parameter kann die Umwandlung im Detail beeinflussen.

+ +
{{EmbedInteractiveExample("pages/js/json-parse.html")}}
+ + + +

Syntax

+ +
JSON.parse(text[, reviver])
+ +

Parameter

+ +
+
text
+
JSON-formatierter Text, der eingelesen werden soll. Siehe {{jsxref("JSON")}} für eine Beschreibung der JavaScript Objekt Notation.
+
reviver {{optional_inline}}
+
+

Wenn es sich um eine Funktion handelt, schreibt diese vor, wie der ursprünglich vom Parsen erzeugte Wert transformiert wird, bevor er zurückgegeben wird.

+
+
+ +

Rückgabewert

+ +

Die Funktion gibt das aus text erzeugte {{jsxref("Object")}} zurück.

+ +

Ausnahmen

+ +

{{jsxref("SyntaxError")}}, falls text kein gültiges JSON enthält.

+ +

Beispiele

+ +

JSON.parse() verwenden

+ +
JSON.parse('{}');              // {}
+JSON.parse('true');            // true
+JSON.parse('"foo"');           // "foo"
+JSON.parse('[1, 5, "false"]'); // [1, 5, "false"]
+JSON.parse('null');            // null
+
+ +

Verwendung des reviver-Parameters

+ +

Wenn reviver spezifiziert ist, wird der vom Parser berechnete Wert vor der Rückgabe Transformiert. Insbesondere der berechnete Wert und alle seine EIgenschaften (beginnend mit dem am tiefsten geschachtelten Eigenschaft bis hin zum originalen Wert selbst) werden separat mit dem reviver Ausgeführt. Dann wird sie aufgerufen, wobei das Objekt, das die Eigenschaft enthält, als this und der Eigenschaftsname als Zeichenfolge und der Eigenschaftswert als Argumente verarbeitet werden. Wenn reviver {{jsxref("undefined")}} zurück gibt (oder keinen Wert zurück gibt, wenn zum Beispiel die Ausführung der Funktion fehlschlägt), wird die Eigenschaft aus dem Ergebnis entfernt. Anderenfalls wird dessen Wert in den Rückgabewert neu definiert.

+ +

Falls reviver nur einige Werte ändert, muss sichergestellt sein, dass die unveränderten Werte auch zurückgegeben werden, ansonsten werden diese Werte aus dem Ergebnis gelöscht.

+ +
JSON.parse('{"p": 5}', (key, value) =>
+  typeof value === 'number'
+    ? value * 2 // Gibt value * 2 für Zahlen zurück.
+    : value     // Alle anderen Werte werden unverändert zurückgegeben.
+);
+
+// { p: 10 }
+
+JSON.parse('{"1": 1, "2": 2, "3": {"4": 4, "5": {"6": 6}}}', (key, value) => {
+  console.log(key); // Loggt die Namen der Eigenschaften, der letzte ist "".
+  return value;     // Gib den unveränderten Eigenschaftenwert zurück.
+});
+
+// 1
+// 2
+// 4
+// 6
+// 5
+// 3
+// ""
+
+ +

JSON.parse() erlaubt keine abschließenden Kommas

+ +
// Beides erzeugt einen Syntaxfehler
+JSON.parse("[1, 2, 3, 4, ]");
+JSON.parse("{ \"foo\" : 1, }");
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES5.1', '#sec-15.12.2', 'JSON.parse')}}{{Spec2('ES5.1')}}Initiale Definition. Implementiert in JavaScript 1.7.
{{SpecName('ES6', '#sec-json.parse', 'JSON.parse')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-json.parse', 'JSON.parse')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.JSON.parse")}}

+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/json/stringify/index.html b/files/de/web/javascript/reference/global_objects/json/stringify/index.html new file mode 100644 index 0000000000..1acea5bbd3 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/json/stringify/index.html @@ -0,0 +1,310 @@ +--- +title: JSON.stringify() +slug: Web/JavaScript/Reference/Global_Objects/JSON/stringify +tags: + - JSON + - JavaScript + - Method + - Reference + - stringify +translation_of: Web/JavaScript/Reference/Global_Objects/JSON/stringify +--- +
{{JSRef}}
+ +

Die JSON.stringify() Methode konvertiert einen JavaScript-Wert in einen JSON-String. Optional werden Werte ersetzt, wenn eine Ersetzungsfunktion angegeben ist. Optional werden nur die angegebenen Eigenschaften einbezogen, wenn ein Ersetzungsarray angegeben ist.

+ +
{{EmbedInteractiveExample("pages/js/json-stringify.html")}}
+ + + +

Syntax

+ +
JSON.stringify(value[, replacer[, space]])
+ +

Parameter

+ +
+
value
+
Der Wert, der zu einem JSON-String konvertiert werden soll.
+
replacer {{optional_inline}}
+
Eine Funktion, die das Verhalten des String- Erstellungsprozesses verändert, oder ein Array von {{jsxref("String")}} und {{jsxref("Number")}} Objekten, die als Whiteliste für die Selektion von Eigenschaften des value Objektes fungiert, um nur bestimmte Eigenschaften im JSON-String aufzunehmen. Wenn dieser Parameter null ist oder nicht unterstützt wird, werden alle Eigenschaften des Objektes im JSON-String aufgenommen.
+
space {{optional_inline}}
+
Ein {{jsxref("String")}} oder {{jsxref("Number")}} Objekt, welches eingesetzt wird, um Whitespaces in den JSON-String für die Lesbarkeit hinzuzufügen. Wenn eine Number angegeben ist, bedeutet dies, dass die angegebene Anzahl an Leerzeichen hinzugefügt werden; Die Anzahl der Leerzeichen ist hierbei auf 10 begrenzt und wird bei einer größeren Anzahl auf 10 gesetzt. Werte kleiner als 1 bedeuten, dass keine Leerzeichen verwendet werden sollen. Wenn ein String angegeben wird, wird der String (oder die ersten 10 Zeichen des Strings, wenn er länger ist) als Leerzeichen benutzt. Wenn dieser Parameter null ist oder nicht unterstützt wird, werden keine Whitespaces verwendet.
+
+ +

Rückgabewert

+ +

Ein JSON-String, der den angegebenen Wert repräsentiert.

+ +

Fehler

+ +

Erzeugt einen {{jsxref("TypeError")}} ("cyclic object value") Fehler, wenn eine zyklische Referenz gefunden wird.

+ +

Beschreibung

+ +

JSON.stringify() konvertiert einen Wert in einen in JSON-Notation gleichwertigen Wert:

+ + + +
JSON.stringify({});                    // '{}'
+JSON.stringify(true);                  // 'true'
+JSON.stringify('foo');                 // '"foo"'
+JSON.stringify([1, 'false', false]);   // '[1,"false",false]'
+JSON.stringify([NaN, null, Infinity]); // '[null,null,null]'
+JSON.stringify({ x: 5 });              // '{"x":5}'
+
+JSON.stringify(new Date(2006, 0, 2, 15, 4, 5))
+// '"2006-01-02T15:04:05.000Z"'
+
+JSON.stringify({ x: 5, y: 6 });
+// '{"x":5,"y":6}' or '{"y":6,"x":5}'
+JSON.stringify([new Number(1), new String('false'), new Boolean(false)]);
+// '[1,"false",false]'
+
+JSON.stringify({ x: [10, undefined, function(){}, Symbol('')] });
+// '{"x":[10,null,null,null]}'
+
+// Standard-Datenstrukturen
+JSON.stringify([new Set([1]), new Map([[1, 2]]), new WeakSet([{a: 1}]), new WeakMap([[{a: 1}, 2]])]);
+// '[{},{},{},{}]'
+
+// TypedArray
+JSON.stringify([new Int8Array([1]), new Int16Array([1]), new Int32Array([1])]);
+// '[{"0":1},{"0":1},{"0":1}]'
+JSON.stringify([new Uint8Array([1]), new Uint8ClampedArray([1]), new Uint16Array([1]), new Uint32Array([1])]);
+// '[{"0":1},{"0":1},{"0":1},{"0":1}]'
+JSON.stringify([new Float32Array([1]), new Float64Array([1])]);
+// '[{"0":1},{"0":1}]'
+
+// toJSON()
+JSON.stringify({ x: 5, y: 6, toJSON(){ return this.x + this.y} });
+// '11'
+
+// Symbols:
+JSON.stringify({ x: undefined, y: Object, z: Symbol('') });
+// '{}'
+JSON.stringify({ [Symbol('foo')]: 'foo' });
+// '{}'
+JSON.stringify({ [Symbol.for('foo')]: 'foo' }, [Symbol.for('foo')]);
+// '{}'
+JSON.stringify({ [Symbol.for('foo')]: 'foo' }, function(k, v) {
+  if (typeof k === 'symbol') {
+    return 'a symbol';
+  }
+});
+// '{}'
+
+// Nicht-enumerable Eigenschaften:
+JSON.stringify( Object.create(null, { x: { value: 'x', enumerable: false }, y: { value: 'y', enumerable: true } }) );
+// '{"y":"y"}'
+
+ +

Der replacer Parameter

+ +

Der replacer Parameter kann entweder eine Funktion oder ein Array sein. Als Funktion erhält diese zwei Parameter, den Schlüssel und den Wert, die in JSON konvertiert werden. Das Objekt, in dem der Schlüssel gefunden wurde, kann in der replacer Funktion mit this abgefragt werden. Initial wird die replacer Funktion mit einem leeren String als Schlüssel aufgerufen, was bedeutet, dass das Objekt konvertiert wird und dieses dann für alle Eigenschaften des Objektes oder Arrays die replacer Funktion aufruft. Die Funktion kann den Rückgabewert wie folgt zurückgeben, damit das Objekt zum JSON-String hinzugefügt wird:

+ + + +
Hinweis: Man kann eine replacer Funktion nicht nutzen, um Werte von Arrays zu entfernen. Wenn man undefined oder eine function zurückgibt, wird null zum JSON hinzugefügt.
+ +
Hinweis: Wenn man möchten, dass der Replacer ein initiales Objekt von einem Schlüssel mit einer leeren String-Eigenschaft unterscheidet (da beide den leeren String als Schlüssel und möglicherweise ein Objekt als Wert angeben würden), muss man den Anzahl der Iterationen verfolgen (wenn er jenseits der ersten Iteration ist, ist es ein echter leerer String-Schlüssel).
+ +

Beispiel mit einer Funktion

+ +
function replacer(key, value) {
+  if (typeof value === "string") {
+    return undefined;
+  }
+  return value;
+}
+
+var foo = {foundation: "Mozilla", model: "box", week: 45, transport: "car", month: 7};
+var jsonString = JSON.stringify(foo, replacer);
+//  {"week":45,"month":7} 
+ +

Beispiel mit einem Array

+ +

Wenn replacer ein Array ist, geben die Werte des Arrays die Namen der Eigenschaften an, die im JSON-String mit aufgenommen werden sollen.

+ +
JSON.stringify(foo, ['week', 'month']);
+// '{"week":45,"month":7}', only keep "week" and "month" properties
+
+ +

Der space Parameter

+ +

Der space Parameter wird eingesetzt, um die Abstände in dem JSON-String zu beeinflussen. Wenn es eine Zahl ist, werden sukzessiv alle Stufen um die angegebene Anzahl von Leerzeichen (bis zu 10) eingerückt. Wenn space ein String ist, werden sukzessiv alle Stufen mit dem angegebenen String eingerückt (oder mit den ersten zehn Zeichen).

+ +
JSON.stringify({ a: 2 }, null, ' ');
+// '{
+//  "a": 2
+// }'
+
+ +

Einsatz eines Tab-Zeichens als Standard für leserliches Aussehen:

+ +
JSON.stringify({ uno: 1, dos: 2 }, null, '\t');
+// returns the string:
+// '{
+//     "uno": 1,
+//     "dos": 2
+// }'
+
+ +

toJSON() Verhalten

+ +

Wenn ein Objekt in ein JSON-String umgewandelt werden soll und eine Eigenschaft mit dem Namen toJSON, dessen Wert eine Funktion ist, wird die toJSON() Funktion eingesetzt um ein JSON-String zu erstellen: Anstatt, dass das Objekt normal serialisiert wird, wird die toJSON() Funktion aufgerufen und der Rückgabewert serialisiert. JSON.stringify ruft toJSON mit einem Parameter auf:

+ + + +

Zum Beispiel:

+ +
var obj = {
+    data: 'data',
+
+    toJSON(key){
+        if(key)
+            return `Now I am a nested Object under key '${key}'`;
+
+        else
+            return this;
+    }
+};
+
+JSON.stringify(obj);
+// Returns '{"data":"data"}'
+
+JSON.stringify({ obj });
+// Returns '{"obj":"Now I am a nested object under key 'obj'"}'
+
+JSON.stringify([ obj ])
+// Returns '["Now I am a nested object under key '0'"]'
+ +

Probleme mit JSON.stringify bei zyklischen Referenzen

+ +

Zu beachten ist, dass das JSON Format keine Objektreferenzen unterstützt (es existiert nur ein IETF Entwurf), so dass ein {{jsxref("TypeError")}} erzeugt wird, wenn ein Objekt mit zyklischen Referenzen übersetzt werden soll.

+ +
const circularReference = {};
+circularReference.myself = circularReference;
+
+// Serializing circular references throws "TypeError: cyclic object value"
+JSON.stringify(circularReference);
+
+ +

Um zyklische Referenzen zu Serialisieren, wird ein Bibliothek mit solchen Funktionen benötigt (z. B. cycle.js von Douglas Crockford) oder es muss eine eigene Lösung implementiert werden, welche zyklische Referenzen bei serialisierbaren Werten findet und ersetzt (oder entfernt).

+ +

Probleme mit reinem Einsatz von JSON.stringify für JavaScript

+ +

Man muss anmerken, dass JSON keine komplette strikte Untermenge von JavaScript ist (englisch). Es gibt nämlich zwei Zeilentrenner (Zeilentrenner und Paragraphentrenner), die in JSON nicht escaped werden müssen, in JavasScript jedoch schon. Wenn ein JSON nun ausgewertet oder direkt in JSONP eingesetzt werden soll, kann der folgende Quelltext verwendet werden:

+ +
function jsFriendlyJSONStringify (s) {
+    return JSON.stringify(s).
+        replace(/\u2028/g, '\\u2028').
+        replace(/\u2029/g, '\\u2029');
+}
+
+var s = {
+    a: String.fromCharCode(0x2028),
+    b: String.fromCharCode(0x2029)
+};
+try {
+    eval('(' + JSON.stringify(s) + ')');
+} catch (e) {
+    console.log(e); // "SyntaxError: unterminated string literal"
+}
+
+// kein catch benötigt
+eval('(' + jsFriendlyJSONStringify(s) + ')');
+
+// console.log in Firefox unescapes den Unicode wenn
+// in die Konsole geloggt wird, weshalb hier alert eingesetzt wird.
+alert(jsFriendlyJSONStringify(s)); // {"a":"\u2028","b":"\u2029"}
+ +

Beispiel für Einsatz von JSON.stringify() mit localStorage

+ +

In einem Fall, indem man ein Objekt speichern möchte, dass von einem Benutzer erstellt wurde, und dem Benutzer dieses auch nach dem Schließen des Browsers wieder zur Verfügung stellten möchte, ist ein Beispiel für die Anwendung von JSON.stringify():

+ +
// Creating an example of JSON
+var session = {
+  'screens': [],
+  'state': true
+};
+session.screens.push({ 'name': 'screenA', 'width': 450, 'height': 250 });
+session.screens.push({ 'name': 'screenB', 'width': 650, 'height': 350 });
+session.screens.push({ 'name': 'screenC', 'width': 750, 'height': 120 });
+session.screens.push({ 'name': 'screenD', 'width': 250, 'height': 60 });
+session.screens.push({ 'name': 'screenE', 'width': 390, 'height': 120 });
+session.screens.push({ 'name': 'screenF', 'width': 1240, 'height': 650 });
+
+// Konvertiert zu einem JSON-String mit JSON.stringify().
+// Dann wird der String des session-Objektes im localStorage gespeichert.
+localStorage.setItem('session', JSON.stringify(session));
+
+// Beispiel wie man den mit JSON.stringify() generierten und
+// im localStorage gespeicherten JSON-String in ein Objekt umwandelt.
+var restoredSession = JSON.parse(localStorage.getItem('session'));
+
+// Jetzt enthält die Variable restoredSession das im localStorage
+// abgespeicherte Objekt
+console.log(restoredSession);
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES5.1', '#sec-15.12.3', 'JSON.stringify')}}{{Spec2('ES5.1')}}Initiale Definition. Implementiert in JavaScript 1.7.
{{SpecName('ES6', '#sec-json.stringify', 'JSON.stringify')}}{{Spec2('ES6')}}
{{SpecName('ESDraft', '#sec-json.stringify', 'JSON.stringify')}}{{Spec2('ESDraft')}}
+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.JSON.stringify")}}

+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/map/@@iterator/index.html b/files/de/web/javascript/reference/global_objects/map/@@iterator/index.html new file mode 100644 index 0000000000..8f480772d1 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/map/@@iterator/index.html @@ -0,0 +1,102 @@ +--- +title: 'Map.prototype[@@iterator]()' +slug: Web/JavaScript/Reference/Global_Objects/Map/@@iterator +tags: + - ECMAScript 2015 + - Iterator + - JavaScript + - Map + - Method + - Prototype + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Map/@@iterator +--- +
{{JSRef}}
+ +

Der initialewert der @@iterator Eigenschaft enthält das selbe Funktionsobjekt wie der Wert in der {{jsxref("Map.prototype.entries()", "entries")}} Methode.

+ +
{{EmbedInteractiveExample("pages/js/map-prototype-@@iterator.html")}}
+ + + +

Syntax

+ +
myMap[Symbol.iterator]
+ +

Rückgabewert

+ +

Die iterator Funktion von map ist im Standardfall die {{jsxref("Map.prototype.entries()", "entries()")}} Funktion.

+ +

Beispiele

+ +

Einsatz von [@@iterator]()

+ +
const myMap = new Map();
+myMap.set('0', 'foo');
+myMap.set(1, 'bar');
+myMap.set({}, 'baz');
+
+const mapIter = myMap[Symbol.iterator]();
+
+console.log(mapIter.next().value); // ["0", "foo"]
+console.log(mapIter.next().value); // [1, "bar"]
+console.log(mapIter.next().value); // [Object, "baz"]
+
+ +

Einsatz von [@@iterator]() mit for..of

+ +
const myMap = new Map();
+myMap.set('0', 'foo');
+myMap.set(1, 'bar');
+myMap.set({}, 'baz');
+
+for (const entry of myMap) {
+  console.log(entry);
+}
+// ["0", "foo"]
+// [1, "bar"]
+// [{}, "baz"]
+
+for (const [key, value] of myMap) {
+  console.log(`${key}: ${value}`);
+}
+// 0: foo
+// 1: bar
+// [Object]: baz
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES2015', '#sec-map.prototype-@@iterator', 'Map.prototype[@@iterator]()')}}{{Spec2('ES2015')}}Initiale Definition.
{{SpecName('ESDraft', '#sec-map.prototype-@@iterator', 'Map.prototype[@@iterator]()')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Map.@@iterator")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/map/@@species/index.html b/files/de/web/javascript/reference/global_objects/map/@@species/index.html new file mode 100644 index 0000000000..8dc72de6bc --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/map/@@species/index.html @@ -0,0 +1,72 @@ +--- +title: 'get Map[@@species]' +slug: Web/JavaScript/Reference/Global_Objects/Map/@@species +tags: + - ECMAScript 2015 + - JavaScript + - Map + - Property +translation_of: Web/JavaScript/Reference/Global_Objects/Map/@@species +--- +
{{JSRef}}
+ +

Die Map[@@species] Zugriffseigenschaft gibt den Map Konstruktor zurück.

+ +

Syntax

+ +
Map[Symbol.species]
+
+ +

Beschreibung

+ +

Die species Zugriffseigenschaft gibt den Standard-Konstruktor für Map Objekte zurück. Konstruktoren von Unterklassen überschreiben diese Eigenschaft manchmal, um die Konstruktorzuweisung zu ändern.

+ +

Beispiele

+ +

Die species Eigenschaft gibt die Standard-Konstruktorfunktion, welches der Map Konstruktor von Map Objekten ist:

+ +
Map[Symbol.species]; // function Map()
+ +

In einem abgeleiteten Collection Objekt (z. B. eine Benutzerdifinierte Map MyMap) ist der species von MyMap der MyMap Konstruktor. Manchmal, wenn dieser Überschrieben wird das Eltern Map Objekt in der abgeleiteten Klassenmethode verwenden:

+ +
class MyMap extends Map {
+  // Overwrite MyMap species to the parent Map constructor
+  static get [Symbol.species]() { return Map; }
+}
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES2015', '#sec-get-map-@@species', 'get Map [ @@species ]')}}{{Spec2('ES2015')}}Initiale Definition.
{{SpecName('ESDraft', '#sec-get-map-@@species', 'get Map [ @@species ]')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.Map.@@species")}}

+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/map/@@tostringtag/index.html b/files/de/web/javascript/reference/global_objects/map/@@tostringtag/index.html new file mode 100644 index 0000000000..50d1515963 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/map/@@tostringtag/index.html @@ -0,0 +1,58 @@ +--- +title: 'Map.prototype[@@toStringTag]' +slug: Web/JavaScript/Reference/Global_Objects/Map/@@toStringTag +tags: + - ECMAScript 2015 + - JavaScript + - Map + - Property + - Prototype + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Map/@@toStringTag +--- +
{{JSRef}}
+ +

Die Map[@@toStringTag] Eigenschaft hat den initialen Wert "Map".

+ +
{{EmbedInteractiveExample("pages/js/map-prototype-@@tostringtag.html")}}
+ + + +
{{js_property_attributes(0,0,1)}}
+ +

Syntax

+ +
Map[Symbol.toStringTag]
+ +

Beispiele

+ +
Object.prototype.toString.call(new Map()) // "[object Map]"
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES2015', '#sec-map.prototype-@@tostringtag', 'Map.prototype[@@toStringTag]')}}{{Spec2('ES2015')}}Initiale Definition.
{{SpecName('ESDraft', '#sec-map.prototype-@@tostringtag', 'Map.prototype[@@toStringTag]')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Map.@@toStringTag")}}

diff --git a/files/de/web/javascript/reference/global_objects/map/clear/index.html b/files/de/web/javascript/reference/global_objects/map/clear/index.html new file mode 100644 index 0000000000..6ae31b4dee --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/map/clear/index.html @@ -0,0 +1,77 @@ +--- +title: Map.prototype.clear() +slug: Web/JavaScript/Reference/Global_Objects/Map/clear +tags: + - ECMAScript 2015 + - JavaScript + - Map + - Method + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Map/clear +--- +
{{JSRef}}
+ +

Die clear() Methode entfernt alle Elemente von einem Map Objekt.

+ +
{{EmbedInteractiveExample("pages/js/map-prototype-clear.html")}}
+ + + +

Syntax

+ +
myMap.clear();
+ +

Rückgabewert

+ +

{{jsxref("undefined")}}.

+ +

Beispiele

+ +

Einsatz der clear Methode

+ +
var myMap = new Map();
+myMap.set('bar', 'baz');
+myMap.set(1, 'foo');
+
+myMap.size;       // 2
+myMap.has('bar'); // true
+
+myMap.clear();
+
+myMap.size;       // 0
+myMap.has('bar')  // false
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES2015', '#sec-map.prototype.clear', 'Map.prototype.clear')}}{{Spec2('ES2015')}}Initiale Definition.
{{SpecName('ESDraft', '#sec-map.prototype.clear', 'Map.prototype.clear')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Map.clear")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/map/delete/index.html b/files/de/web/javascript/reference/global_objects/map/delete/index.html new file mode 100644 index 0000000000..40f38a6931 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/map/delete/index.html @@ -0,0 +1,73 @@ +--- +title: Map.prototype.delete() +slug: Web/JavaScript/Reference/Global_Objects/Map/delete +tags: + - ECMAScript 2015 + - JavaScript + - Map + - Method + - Prototype + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Map/delete +--- +
{{JSRef}}
+ +

Die delete() Methode entfernt das Element mit eine bestimmten Schlüssel von einem Map Objekt.

+ +
{{EmbedInteractiveExample("pages/js/map-prototype-delete.html")}}
+ + + +

Syntax

+ +
myMap.delete(key);
+ +

Parameter

+ +
+
key
+
Der Schlüssel des Element, welches aus dem Map Objekt entfernt wird.
+
+ +

Rückgabewert

+ +

Gibt true zurück, wenn ein Element in der Map existiert und gelöscht wird, oder false wenn kein Element existiert.

+ +

Beispiele

+ +

Einsatz der delete Methode

+ +
var myMap = new Map();
+myMap.set('bar', 'foo');
+
+myMap.delete('bar'); // Returns true. Successfully removed.
+myMap.has('bar');    // Returns false. The "bar" element is no longer present.
+
+ +

Spezifikationen

+ + + + + + + + + + + + + +
Spezifikation
{{SpecName('ESDraft', '#sec-map.prototype.delete', 'Map.prototype.delete')}}
{{SpecName('ES2015', '#sec-map.prototype.delete', 'Map.prototype.delete')}}
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Map.delete")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/map/entries/index.html b/files/de/web/javascript/reference/global_objects/map/entries/index.html new file mode 100644 index 0000000000..018cd8088a --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/map/entries/index.html @@ -0,0 +1,78 @@ +--- +title: Map.prototype.entries() +slug: Web/JavaScript/Reference/Global_Objects/Map/entries +tags: + - ECMAScript 2015 + - Iterator + - JavaScript + - Map + - Method + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Map/entries +--- +
{{JSRef}}
+ +

Die entries() Methode gibt ein neues Iterator Objekt mit allen [Schlüssel, Wert] Paaren von jedem Element in dem Map Objekt in Einfügereihenfolge zurück.

+ +
{{EmbedInteractiveExample("pages/js/map-prototype-entries.html")}}
+ + + +

Syntax

+ +
myMap.entries()
+ +

Rückgabewert

+ +

Ein neues {{jsxref("Map")}} Iterator Objekt.

+ +

Beispiele

+ +

Einsatz von entries()

+ +
var myMap = new Map();
+myMap.set('0', 'foo');
+myMap.set(1, 'bar');
+myMap.set({}, 'baz');
+
+var mapIter = myMap.entries();
+
+console.log(mapIter.next().value); // ["0", "foo"]
+console.log(mapIter.next().value); // [1, "bar"]
+console.log(mapIter.next().value); // [Object, "baz"]
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES2015', '#sec-map.prototype.entries', 'Map.prototype.entries')}}{{Spec2('ES2015')}}Initiale Definition.
{{SpecName('ESDraft', '#sec-map.prototype.entries', 'Map.prototype.entries')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Map.entries")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/map/foreach/index.html b/files/de/web/javascript/reference/global_objects/map/foreach/index.html new file mode 100644 index 0000000000..017fa9b069 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/map/foreach/index.html @@ -0,0 +1,104 @@ +--- +title: Map.prototype.forEach() +slug: Web/JavaScript/Reference/Global_Objects/Map/forEach +tags: + - ECMAScript 2015 + - JavaScript + - Map + - Method + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Map/forEach +--- +
{{JSRef}}
+ +

Die forEach() Methode führt eine übergebene Funktion für jedes Schlüssel/Wert Paar in dem Map Objekt in der Einfügereihenfolge aus.

+ +
{{EmbedInteractiveExample("pages/js/map-prototype-foreach.html")}}
+ + + +

Syntax

+ +
myMap.forEach(callback[, thisArg])
+ +

Parameter

+ +
+
callback
+
Funktion, die für jedes Schlüssel/Werte-Paar aufgerufen wird.
+
thisArg
+
Wert, der bei der Ausführung der callback-Funktion als this genutzt wird.
+
+ +

Rückgabewert

+ +

{{jsxref("undefined")}}.

+ +

Beschreibung

+ +

Die forEach Methode ruft die übergebene Funktion für jedes Schlüssel/Wert Paar in dem Map Objekt aus. Die callback Funktion wird nicht aufgerufen, wenn der Schlüssel gelöscht wurde. Sie wird aber aufgerufen, wenn der aktuelle Wert undefined ist.

+ +

Die callback Funktion wird mit drei Parametern aufgerufen:

+ + + +

Wenn der thisArg-Parameter an forEach übergeben wird, wird er auch an die callback-Funktion als deren this Wert weitergegeben.  Andernfalls wird dafür undefined genutzt.  Der this-Wert, der in der callback-Funktion wahrgenommen wird, ist festgelegt durch die generellen Regeln für die Nutzung von this in einer Funktion.

+ +

Jeder Wert wird einmal besucht, mit Außnahme von Fällen, in denen ein Wert glöscht und neu hinzugefügt wird, bevor forEach fertig ist. Die callback Funktion wird nicht für Wert aufgerufen, die vorher gelöscht wurden. Neue Werte, die vor der Beendigung von forEach hinzugefügt werden, werden berücksichtigt.

+ +

Die forEach Methode ruft callback für jedes Element in dem Map Objekt aus.  forEach gibt keinen Wert zurück.

+ +

Beispiele

+ +

Ausgabe der Inhalte eines Map Objekts

+ +

Der folgende Code gibt für jedes Element in der Map eine Nachricht in der Konsole aus.

+ +
function logMapElements(value, key, map) {
+    console.log(`m[${key}] = ${value}`);
+}
+new Map([['foo', 3], ['bar', {}], ['baz', undefined]]).forEach(logMapElements);
+// logs:
+// "m[foo] = 3"
+// "m[bar] = [object Object]"
+// "m[baz] = undefined"
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES2015', '#sec-map.prototype.foreach', 'Map.prototype.forEach')}}{{Spec2('ES2015')}}Initiale Definition.
{{SpecName('ESDraft', '#sec-map.prototype.foreach', 'Map.prototype.forEach')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Map.forEach")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/map/get/index.html b/files/de/web/javascript/reference/global_objects/map/get/index.html new file mode 100644 index 0000000000..c178c59f0b --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/map/get/index.html @@ -0,0 +1,80 @@ +--- +title: Map.prototype.get() +slug: Web/JavaScript/Reference/Global_Objects/Map/get +tags: + - ECMAScript 2015 + - JavaScript + - Map + - Method + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Map/get +--- +
{{JSRef}}
+ +

Die get() Methode gibt eine Spezielles Element aus einem Map Objekt zurück.

+ +
{{EmbedInteractiveExample("pages/js/map-prototype-get.html")}}
+ + + +

Syntax

+ +
myMap.get(schlüssel);
+ +

Parameter

+ +
+
schlüssel
+
Der Schlüssel eines Elements, welches aus der Map zurückgegeben wird.
+
+ +

Rückgabewert

+ +

Gibt das Element zurück, welches zu dem Schlüssel gehört oder undefined, wenn kein Schlüssel in dem Map Objekt vorhanden ist.

+ +

Beispiele

+ +

Einsatz der get Methode

+ +
var myMap = new Map();
+myMap.set('bar', 'foo');
+
+myMap.get('bar');  // Returns "foo".
+myMap.get('baz');  // Returns undefined.
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES2015', '#sec-map.prototype.get', 'Map.prototype.get')}}{{Spec2('ES2015')}}Initiale Definition.
{{SpecName('ESDraft', '#sec-map.prototype.get', 'Map.prototype.get')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Map.get")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/map/has/index.html b/files/de/web/javascript/reference/global_objects/map/has/index.html new file mode 100644 index 0000000000..ea4df56c27 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/map/has/index.html @@ -0,0 +1,83 @@ +--- +title: Map.prototype.has() +slug: Web/JavaScript/Reference/Global_Objects/Map/has +tags: + - ECMAScript 2015 + - JavaScript + - Map + - Method + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Map/has +--- +
{{JSRef}}
+ +

Die has() Methode gibt einen boolean zurück, welcher angibt, ob ein spezieller Schlüssel vorhanden ist oder nicht.

+ +
{{EmbedInteractiveExample("pages/js/map-prototype-has.html")}}
+ + + +

Syntax

+ +
myMap.has(schlüssel);
+ +

Parameter

+ +
+
schlüssel
+
Der Schlüssel, auf dessen Präsenz in dem Map Objekt geprüft wird.
+
+ +

Return value

+ +
+
Boolean
+
Gibt true zurück, wenn ein Element mit Schlüssel in dem Map Objekt existiert, andernfalls false.
+
+ +

Beispiele

+ +

Einsatz der has Methode

+ +
var myMap = new Map();
+myMap.set('bar', "foo");
+
+myMap.has('bar');  // returns true
+myMap.has('baz');  // returns false
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES2015', '#sec-map.prototype.has', 'Map.prototype.has')}}{{Spec2('ES2015')}}Initiale Definition.
{{SpecName('ESDraft', '#sec-map.prototype.has', 'Map.prototype.has')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Map.has")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/map/index.html b/files/de/web/javascript/reference/global_objects/map/index.html new file mode 100644 index 0000000000..3cfa11c840 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/map/index.html @@ -0,0 +1,207 @@ +--- +title: Map +slug: Web/JavaScript/Reference/Global_Objects/Map +tags: + - ECMAScript 2015 + - JavaScript + - Map +translation_of: Web/JavaScript/Reference/Global_Objects/Map +--- +
{{JSRef}}
+ +
Das Map Objekt ist eine einfache Schlüssel/Wert Zuordnung. Jeder Wert (Sowohl Objekte, als auch  {{Glossary("Primitive", "primitive Datentypen")}}) kann als Schlüssel/Wert verwendet werden.
+ +

Syntax

+ +
new Map([iterable])
+ +

Parameter

+ +
+
iterable
+
+

Der Parameter iterable ist ein Array oder anderes iterierbares Objekt, dessen Elemente Schlüssel-Wert Paare (2-Element Arrays) sind. Jedes Schlüssel-Wert Paar wird der neuen Map hinzugefügt.

+
+
+ +

Beschreibung

+ +

Ein Map Object iteriert in der Reihenfolge des Einfügens über seine Elemente — eine {{jsxref("Statements/for...of", "for...of")}} Schleife gibt ein Array mit [key, value] für jede Iteration zurück.

+ +

Es ist festzuhalten, dass eine Map, bestehend aus objects, insbesondere ein "dictionary of dictionaries", nur nach der Einfügereihenfolge angelegt wird, die zufällig und ungeordnet ist.

+ +

Schlüsselvergleich

+ +

Der Schlüsselvergleich basiert auf dem "gleicher-Wert" Algorithmus: NaN wird als gleich mit einer anderen NaN angesehen (trotz dem, dass NaN !== NaN) und alle anderen Werte müssen typ- und wert identisch, wie beim === Operator, sein. In der aktuellen ECMAScript Spezifikation werden -0 und +0 als gleich behandelt, auch wenn dies in früheren Entwürfen anders war. Details dazu sind der Tabelle browser compatibility zu entnehmen. 

+ +

Objects und Maps im Vergleich

+ +

{{jsxref("Object", "Objects")}} und Maps haben einige gemeinsame Eigenschaften. In beiden lassen sich Schlüssel auf Werte setzen, diese Werte wiederfinden, Schlüssel löschen und herausfinden, ob etwas unter einem bestimmten Schlüssel gespeichert ist. Aus diesem Grund (und weil es keine spracheigenen Alternativen gab) wurden früher Objects als Maps benutzt. Doch es gibt bedeutende Unterschiede zwischen diesen beiden Strukturen, die es in verschiedenen Fällen zu beachten gilt:

+ + + +

Eigenschaften

+ +
+
Map.length
+
Der Wert von length beträgt 0.
+
{{jsxref("Map.@@species", "get Map[@@species]")}}
+
Die Konstruktor-Funktion, zum Erzeugen abgeleiteter Objekte.
+
{{jsxref("Map.prototype")}}
+
Repräsentiert den Prototyp für den Map Konstruktor. Erlaubt das Hinzufügen von Eigenschaften zu allen Map Objekten.
+
+ +

Map Instanzen

+ +

Alle Map Instanzen erben von {{jsxref("Map.prototype")}}.

+ +

Eigenschaften

+ +

{{page('/de/Web/JavaScript/Reference/Global_Objects/Map/prototype','Eigenschaften')}}

+ +

Methoden

+ +

{{page('/de/Web/JavaScript/Reference/Global_Objects/Map/prototype','Methoden')}}

+ +

Beispiele

+ +

Einsatz vom Map Objekt

+ +
var myMap = new Map();
+
+var keyString = "ein string",
+    keyObj = {},
+    keyFunc = function () {};
+
+// setting the values
+myMap.set(keyString, "value associated with 'ein string'");
+myMap.set(keyObj, "value associated with keyObj");
+myMap.set(keyFunc, "value associated with keyFunc");
+
+myMap.size; // 3
+
+// getting the values
+myMap.get(keyString);    // "value associated with 'ein string'"
+myMap.get(keyObj);       // "value associated with keyObj"
+myMap.get(keyFunc);      // "value associated with keyFunc"
+
+myMap.get("ein string");   // "value associated with 'ein string'"
+                         // because keyString === 'ein string'
+myMap.get({});           // undefined, because keyObj !== {}
+myMap.get(function() {}) // undefined, because keyFunc !== function () {}
+
+ +

Benutzung von NaN als Map Schlüssel

+ +

NaN kann auch als Schlüssel benutzt werden. Auch wenn jede NaN nicht gleich zu sich selbst ist (NaN !== NaN is true) funktioniert das folgende Beispiel, da NaNs ununterscheidbar von jeder anderen ist:

+ +
var myMap = new Map();
+myMap.set(NaN, "not a number");
+
+myMap.get(NaN); // "not a number"
+
+var otherNaN = Number("foo");
+myMap.get(otherNaN); // "not a number"
+
+ +

Iterieren über Maps mit for..of

+ +

Über Maps kann mit der for..of Schleife iteriert werden:

+ +
var myMap = new Map();
+myMap.set(0, "zero");
+myMap.set(1, "one");
+for (var [key, value] of myMap) {
+  console.log(key + " = " + value);
+}
+// 0 = zero
+// 1 = one
+
+for (var key of myMap.keys()) {
+  console.log(key);
+}
+// 0
+// 1
+
+for (var value of myMap.values()) {
+  console.log(value);
+}
+// zero
+// one
+
+for (var [key, value] of myMap.entries()) {
+  console.log(key + " = " + value);
+}
+// 0 = zero
+// 1 = one
+
+ +

Integration von Maps mit forEach()

+ +

Über Maps kann mit der forEach() method iteriert werden:

+ +
myMap.forEach(function(value, key) {
+  console.log(key + " = " + value);
+}, myMap)
+// Will show 2 logs; first with "0 = zero" and second with "1 = one"
+
+ +

Relation mit Array Objekten

+ +
var kvArray = [['key1', 'value1'], ['key2', 'value2']];
+
+// Use the regular Map constructor to transform a 2D key-value Array into a map
+var myMap = new Map(kvArray);
+
+myMap.get('key1'); // returns "value1"
+
+// Use the Array.from function to transform a map into a 2D key-value Array
+console.log(Array.from(myMap)); // Will show you exactly the same Array as kvArray
+
+// Or use the keys or values iterators and convert them to an array
+console.log(Array.from(myMap.keys())); // Will show ["key1", "key2"]
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES2015', '#sec-map-objects', 'Map')}}{{Spec2('ES2015')}}Initiale Definition.
{{SpecName('ESDraft', '#sec-map-objects', 'Map')}}{{Spec2('ESDraft')}}
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Map")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/map/keys/index.html b/files/de/web/javascript/reference/global_objects/map/keys/index.html new file mode 100644 index 0000000000..0f8187752b --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/map/keys/index.html @@ -0,0 +1,69 @@ +--- +title: Map.prototype.keys() +slug: Web/JavaScript/Reference/Global_Objects/Map/keys +tags: + - ECMAScript 2015 + - Iterator + - JavaScript + - Map + - Method + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Map/keys +--- +
{{JSRef}}
+ +

Die Methode keys() gibt ein neues Iterator Objekt zurück, das die Schlüssel für alle Elemente des Map Objekts in der Reihenfolge des Einfügens enthält.

+ +
{{EmbedInteractiveExample("pages/js/map-prototype-keys.html")}}
+ + + +

Syntax

+ +
myMap.keys()
+ +

Rückgabewert

+ +

Ein neues {{jsxref("Map")}} Iterator-Objekt.

+ +

Beispiele

+ +

Verwendung von keys()

+ +
var myMap = new Map();
+myMap.set('0', 'foo');
+myMap.set(1, 'bar');
+myMap.set({}, 'baz');
+
+var mapIter = myMap.keys();
+
+console.log(mapIter.next().value); // "0"
+console.log(mapIter.next().value); // 1
+console.log(mapIter.next().value); // Object
+
+ +

Spezifikationen

+ + + + + + + + + + +
Spezifikation
{{SpecName('ESDraft', '#sec-map.prototype.keys', 'Map.prototype.keys')}}
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Map.keys")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/map/prototype/index.html b/files/de/web/javascript/reference/global_objects/map/prototype/index.html new file mode 100644 index 0000000000..1c7b6350cf --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/map/prototype/index.html @@ -0,0 +1,86 @@ +--- +title: Map.prototype +slug: Web/JavaScript/Reference/Global_Objects/Map/prototype +tags: + - JavaScript + - Map + - Property +translation_of: Web/JavaScript/Reference/Global_Objects/Map +--- +
{{JSRef}}
+ +

Die Map.prototype Eigenschaft repräsentiert den Prototyp für den {{jsxref("Map")}} Konstruktor.

+ +
{{js_property_attributes(0,0,0)}}
+ +

Beschreibung

+ +

{{jsxref("Map")}} Instanzen erben von {{jsxref("Map.prototype")}}. Man kann das prototype Objekt des Konstruktors nutzen, um Eigenschaften oder Methoden für alle map Instanzen hinzuzufügen.

+ +

Eigenschaften

+ +
+
Map.prototype.constructor
+
Gibt die Funktion zurück, die einen Instanzenprototype erstellt. Der Standardwert ist die {{jsxref("Map")}} Funktion.
+
{{jsxref("Map.prototype.size")}}
+
Gibt die Anzahl an Schlüssel/Werte-Paaren in dem Map Objekt zurück.
+
+ +

Methoden

+ +
+
{{jsxref("Map.prototype.clear()")}}
+
Entfernt alle Schlüssel/Werte-Paare von dem Map Objekt.
+
{{jsxref("Map.delete", "Map.prototype.delete(schlüssel)")}}
+
Gibt true zurück, wenn ein Element im Map Objekt existiert und gelöscht wird, oder false wenn das Element nicht existiert. Map.prototype.has(schlüssel) wird danach false zurückgeben.
+
{{jsxref("Map.prototype.entries()")}}
+
Gibt ein neues Iterator Objekt mit allen [Schlüssel, Wert] Paaren als Array von jedem Element in dem Map Objekt in Einfügereihenfolge zurück.
+
{{jsxref("Map.forEach", "Map.prototype.forEach(callbackFn[, thisArg])")}}
+
Ruft callbackFn einmal für jedes Schlüssel/Wert Paar in dem Map Objekt in der Einfügereihenfolge aus. Wenn ein thisArg Parameter angegeben ist, wird dieser als this für jeden Funktionsaufruf benutzt.
+
{{jsxref("Map.get", "Map.prototype.get(schlüssel)")}}
+
Gibt den Wert zu dem zugehörigen schlüssel zurück oder undefined wenn dieser nicht existiert.
+
{{jsxref("Map.has", "Map.prototype.has(schlüssel)")}}
+
Gibt einen boolean zurück, der angibt, ob ein Wert mit den schlüssel in einem Map Objekt vorhanden ist oder nicht.
+
{{jsxref("Map.prototype.keys()")}}
+
Gibt ein neues Iterator Objekt mit allen Schlüsseln von jedem Element in dem Map Objekt in Einfügereihenfolge zurück.
+
{{jsxref("Map.set", "Map.prototype.set(schlüssel, wert)")}}
+
Setzt den wert für einen schlüssel im Map Objekt. Gibt das Map Objekt zurück.
+
{{jsxref("Map.prototype.values()")}}
+
Gibt ein neues Iterator Objekt mit allen Werten von jedem Element in dem Map Objekt in Einfügereihenfolge zurück.
+
{{jsxref("Map.@@iterator", "Map.prototype[@@iterator]()")}}
+
Gibt ein neues Iterator Objekt mit allen [Schlüssel, Wert] Paaren als Array von jedem Element in dem Map Objekt in Einfügereihenfolge zurück.
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES2015', '#sec-map.prototype', 'Map.prototype')}}{{Spec2('ES2015')}}Initiale Definition.
{{SpecName('ESDraft', '#sec-map.prototype', 'Map.prototype')}}{{Spec2('ESDraft')}}
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Map.prototype")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/map/set/index.html b/files/de/web/javascript/reference/global_objects/map/set/index.html new file mode 100644 index 0000000000..dd675fab69 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/map/set/index.html @@ -0,0 +1,96 @@ +--- +title: Map.prototype.set() +slug: Web/JavaScript/Reference/Global_Objects/Map/set +tags: + - ECMAScript 2015 + - JavaScript + - Map + - Method + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Map/set +--- +
{{JSRef}}
+ +

Die set() Methode fügt ein ELement mit einem spezifischen schlüssel und wert zu einem Map Objekt hinzu oder aktualisiert es.

+ +
{{EmbedInteractiveExample("pages/js/map-prototype-set.html")}}
+ + + +

Syntax

+ +
myMap.set(schlüssel, wert);
+ +

Parameter

+ +
+
schlüssel
+
Der Schlüssel des Elementes, welches zu dem Map Objekt hinzugefügt wird.
+
wert
+
Der Wert des Elementes, welches zu dem Map Objekt hinzugefügt wird.
+
+ +

Rückgabewert

+ +

Das Map Objekt.

+ +

Beispiele

+ +

Einsatz der set Methode

+ +
var myMap = new Map();
+
+// Fügt ein neues Element hinzu
+myMap.set('bar', 'foo');
+myMap.set(1, 'foobar');
+
+// Aktualisiert ein Element
+myMap.set('bar', 'baz');
+
+ +

Einsatz der set Methode mit Verkettung

+ +

Seit die set() Methode das selbe Map Objekt zurück gibt, kann die Methode wie folgt verkettet aufgerufen werden.

+ +
// Fügt neue Element mit verketteten Aufruf hinzu.
+myMap.set('bar', 'foo')
+     .set(1, 'foobar')
+     .set(2, 'baz');
+
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES2015', '#sec-map.prototype.set', 'Map.prototype.set')}}{{Spec2('ES2015')}}Initiale Definition.
{{SpecName('ESDraft', '#sec-map.prototype.set', 'Map.prototype.set')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Map.set")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/map/size/index.html b/files/de/web/javascript/reference/global_objects/map/size/index.html new file mode 100644 index 0000000000..3f859dcde5 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/map/size/index.html @@ -0,0 +1,67 @@ +--- +title: Map.prototype.size +slug: Web/JavaScript/Reference/Global_Objects/Map/size +tags: + - ECMAScript 2015 + - JavaScript + - Map + - Property +translation_of: Web/JavaScript/Reference/Global_Objects/Map/size +--- +
{{JSRef}}
+ +

Die size Zugriffseigenschaft gibt die Anzahl der Elemente in einem {{jsxref("Map")}} Objekt zurück.

+ +
{{EmbedInteractiveExample("pages/js/map-prototype-size.html")}}
+ + + +

Beschreibung

+ +

Der Wert von size ist eine ganze Zahl, die angibt, wie viele Einträge ein Map Objekt hat. Die set-Zugriffsfunktion für size ist undefined; diese Eigenschaft kann nicht geändert werden.

+ +

Beispiele

+ +

Einsatz von size

+ +
var myMap = new Map();
+myMap.set('a', 'alpha');
+myMap.set('b', 'beta');
+myMap.set('g', 'gamma');
+
+myMap.size // 3
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES2015', '#sec-get-map.prototype.size', 'Map.prototype.size')}}{{Spec2('ES2015')}}Initiale Definition.
{{SpecName('ESDraft', '#sec-get-map.prototype.size', 'Map.prototype.size')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Map.size")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/map/values/index.html b/files/de/web/javascript/reference/global_objects/map/values/index.html new file mode 100644 index 0000000000..3cbe8dd064 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/map/values/index.html @@ -0,0 +1,77 @@ +--- +title: Map.prototype.values() +slug: Web/JavaScript/Reference/Global_Objects/Map/values +tags: + - ECMAScript 2015 + - Iterator + - JavaScript + - Map + - Method + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Map/values +--- +
{{JSRef}}
+ +

Die values() Methode gibt ein neues Iterator Objekt mit allen Werten aller Elemente des Map Objektes in Einfügereihenfolge zurück.

+ +
{{EmbedInteractiveExample("pages/js/map-prototype-values.html")}}
+ + + +

Syntax

+ +
myMap.values()
+ +

Rückgabewert

+ +

Ein neues {{jsxref("Map")}} Iterator Objekt.

+ +

Beispiele

+ +

Einsatz von values()

+ +
var myMap = new Map();
+myMap.set('0', 'foo');
+myMap.set(1, 'bar');
+myMap.set({}, 'baz');
+
+var mapIter = myMap.values();
+
+console.log(mapIter.next().value); // "foo"
+console.log(mapIter.next().value); // "bar"
+console.log(mapIter.next().value); // "baz"
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES2015', '#sec-map.prototype.values', 'Map.prototype.values')}}{{Spec2('ES2015')}}Initiale Definition.
{{SpecName('ESDraft', '#sec-map.prototype.values', 'Map.prototype.values')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Map.values")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/math/acos/index.html b/files/de/web/javascript/reference/global_objects/math/acos/index.html new file mode 100644 index 0000000000..3512f639b1 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/math/acos/index.html @@ -0,0 +1,103 @@ +--- +title: Math.acos() +slug: Web/JavaScript/Reference/Global_Objects/Math/acos +tags: + - JavaScript + - Math + - Method + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Math/acos +--- +
{{JSRef}}
+ +

Die Funktion Math.acos() gibt den Arkuskosinus (im Radiantenmaß) einer Zahl zurück:

+ +

x[-1;1],Math.acos(x)=arccos(x)= das gleiche y[0;π]derart, dasscos(y)=x\forall x \in [{-1};1],\;\mathtt{\operatorname{Math.acos}(x)} = \arccos(x) = \text{ das gleiche } \; y \in [0; \pi] \, \text{derart, dass} \; \cos(y)

+ +
{{EmbedInteractiveExample("pages/js/math-acos.html")}}
+ + + +

Syntax

+ +
Math.acos(x) 
+ +

Parameter

+ +
+
x
+
Eine Zahl.
+
+ +

Rückgabewert

+ +

Der Arkuskosinus (im Radiantenmaß) der übergebenen Zahl, wenn diese zwischen -1 und 1 ist. Anderfalls wird {{jsxref("NaN")}} zurückgegeben.

+ +

Beschreibung

+ +

Die acos Methode gibt einen numerischen Wert zwischen 0 und {{jsxref("Math/PI", "Pi")}} im Radiantenmaß für x Werte zwischen -1 und 1 zurück.  Wenn der übergebene Wert außerhalb dieses Bereiches liegt, wird {{jsxref("NaN")}} zurückgegeben.

+ +

Weil acos eine statische Methode von Math ist, kann dieses immer mit Math.acos() genutzt werden, ohne dass ein Objekt von Math erstellt werden muss (Math ist kein Konstruktor).

+ +

Beispiele

+ +

Beispiel: Math.acos benutzen

+ +
Math.acos(-2);  // NaN
+Math.acos(-1);  // 3.141592653589793
+Math.acos(0);   // 1.5707963267948966
+Math.acos(0.5); // 1.0471975511965979
+Math.acos(1);   // 0
+Math.acos(2);   // NaN
+
+ +

Für Werte kleiner -1 oder größer 1 gibt Math.acos {{jsxref("Global_Objects/NaN", "NaN")}} zurück.

+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES1')}}{{Spec2('ES1')}}Initiale Definition. Implementiert in JavaScript 1.0.
{{SpecName('ES5.1', '#sec-15.8.2.2', 'Math.acos')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-math.acos', 'Math.acos')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-math.acos', 'Math.acos')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Math.acos")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/math/acosh/index.html b/files/de/web/javascript/reference/global_objects/math/acosh/index.html new file mode 100644 index 0000000000..46703ec486 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/math/acosh/index.html @@ -0,0 +1,98 @@ +--- +title: Math.acosh() +slug: Web/JavaScript/Reference/Global_Objects/Math/acosh +tags: + - JavaScript + - Math + - Method + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Math/acosh +--- +
{{JSRef}}
+ +

Die Funktion Math.acosh() gibt den hyperbolischen Arkuskosinus einer Zahl zurück:

+ +

x1,Math.acosh(x)=arcosh(x)= das Ergebnis y0so  dasscosh(y)=x\forall x \geq 1, \mathtt{\operatorname{Math.acosh}(x)} = \operatorname{arcosh}(x) = \text{ the unique } \; y \geq 0 \; \text{such that} \; \cosh(y) = x

+ +
{{EmbedInteractiveExample("pages/js/math-acosh.html")}}
+ + + +

Syntax

+ +
Math.acosh(x)
+ +

Parameter

+ +
+
x
+
Eine Zahl.
+
+ +

Rückgabewert

+ +

Der hyperbolische Arkuskosinus der übergebenen Zahl. Wenn die Zahl kleiner als 1 ist, wird {{jsxref("NaN")}} zurückgegeben.

+ +

Beschreibung

+ +

Weil acosh() eine statische Methode von Math ist, muss diese immer mit Math.acosh() genutzt werden, ohne dass ein Objekt von Math erstellt wird (Math ist kein Konstruktor).

+ +

Beispiele

+ +

Verwendung von Math.acosh()

+ +
Math.acosh(-1); // NaN
+Math.acosh(0);  // NaN
+Math.acosh(0.5) // NaN
+Math.acosh(1);  // 0
+Math.acosh(2);  // 1.3169578969248166
+
+ +

Für Werte kleiner 1 Math.acosh() gibt Math.acosh {{jsxref("NaN")}} zurück.

+ +

Polyfill

+ +

Für x1x \geq 1 gilt: arcosh(x)=ln(x+x2-1)\operatorname {arcosh} (x) = \ln \left(x + \sqrt{x^{2} - 1} \right), daher kann dieses mit der folgenden Funktion emuliert werden:

+ +
Math.acosh = Math.acosh || function(x) {
+  return Math.log(x + Math.sqrt(x * x - 1));
+};
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES6', '#sec-math.acosh', 'Math.acosh')}}{{Spec2('ES6')}}Initiale Definition.
{{SpecName('ESDraft', '#sec-math.acosh', 'Math.acosh')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Math.acosh")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/math/asin/index.html b/files/de/web/javascript/reference/global_objects/math/asin/index.html new file mode 100644 index 0000000000..bf69f52450 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/math/asin/index.html @@ -0,0 +1,103 @@ +--- +title: Math.asin() +slug: Web/JavaScript/Reference/Global_Objects/Math/asin +tags: + - JavaScript + - Math + - Method + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Math/asin +--- +
{{JSRef}}
+ +

Die Funktion Math.asin() gibt den Arkussinus (im Radiantenmaß) einer Zahl zurück:

+ +

x[-1;1],Math.asin(x)=arcsin(x)= das Ergebnis y[-π2;π2]so  dasssin(y)=x\forall x \in [{-1};1],\;\mathtt{\operatorname{Math.asin}(x)} = \arcsin(x) = \text{ the unique } \; y \in \left[-\frac{\pi}{2}; \frac{\pi}{2}\right] \, \text{such that} \; \sin(y) = x

+ +
{{EmbedInteractiveExample("pages/js/math-asin.html")}}
+ + + +

Syntax

+ +
Math.asin(x)
+ +

Parameter

+ +
+
x
+
Eine Zahl.
+
+ +

Rückgabewert

+ +

Der Arkussinus (im Radiantenmaß) der übergebenen Zahl, die zwischen -1 und 1 liegt. Andernfalls wird {{jsxref("NaN")}} zurückgegeben.

+ +

Beschreibung

+ +

Die Math.asin() Methode gibt einen numerischen Wert zwischen -π2-\frac{\pi}{2} und π2\frac{\pi}{2} im Radiantenmaß für x Werte zwischen -1 und 1 zurück. Wenn der übergebene Wert außerhalb dieses Bereiches liegt, wird {{jsxref("NaN")}} zurückgegeben.

+ +

Weil asin() eine statische Methode von Math ist, muss diese immer mit Math.asin() genutzt werden, ohne dass ein Objekt von Math erstellt wird (Math ist kein Konstruktor).

+ +

Beispiele

+ +

Verwendung von Math.asin()

+ +
Math.asin(-2);  // NaN
+Math.asin(-1);  // -1.5707963267948966 (-pi/2)
+Math.asin(0);   // 0
+Math.asin(0.5); // 0.5235987755982989
+Math.asin(1);   // 1.5707963267948966 (pi/2)
+Math.asin(2);   // NaN
+
+ +

Für Werte kleiner -1 oder größer als 1 gibt Math.asin() {{jsxref("NaN")}} zurück.

+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES1')}}{{Spec2('ES1')}}Initiale Definition. Implementiert in JavaScript 1.0.
{{SpecName('ES5.1', '#sec-15.8.2.3', 'Math.asin')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-math.asin', 'Math.asin')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-math.asin', 'Math.asin')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Math.asin")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/math/asinh/index.html b/files/de/web/javascript/reference/global_objects/math/asinh/index.html new file mode 100644 index 0000000000..fa5e1d0472 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/math/asinh/index.html @@ -0,0 +1,99 @@ +--- +title: Math.asinh() +slug: Web/JavaScript/Reference/Global_Objects/Math/asinh +tags: + - JavaScript + - Math + - Method + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Math/asinh +--- +
{{JSRef}}
+ +

Die Funktion Math.asinh() gibt den hyperbolische Arkussinus (im Radiantenmaß) einer Zahl zurück:

+ +

Math.asinh(x)=arcsinh(x)= das Ergebnis yso  dasssinh(y)=x\mathtt{\operatorname{Math.asinh}(x)} = \operatorname{arsinh}(x) = \text{ the unique } \; y \; \text{such that} \; \sinh(y) = x

+ +
{{EmbedInteractiveExample("pages/js/math-asinh.html")}}
+ + + +

Syntax

+ +
Math.asinh(x)
+ +

Parameter

+ +
+
x
+
Eine Zahl.
+
+ +

Rückgabewert

+ +

Der hyperbolische Arkussinus der übergebenen Zahl.

+ +

Beschreibung

+ +

Weil asinh() eine statische Methode von Math ist, muss diese immer mit Math.asinh() genutzt werden, ohne dass ein Objekt von Math erstellt wird (Math ist kein Konstruktor).

+ +

Beispiele

+ +

Verwendung von Math.asinh()

+ +
Math.asinh(1);  // 0.881373587019543
+Math.asinh(0);  // 0
+
+ +

Polyfill

+ +

Es gilt: arsinh(x)=ln(x+x2+1). Daher kann asinh mit der folgenden Funktion emuliert werden:

+ +
Math.asinh = Math.asinh || function(x) {
+  if (x === -Infinity) {
+    return x;
+  } else {
+    return Math.log(x + Math.sqrt(x * x + 1));
+  }
+};
+
+ +

Die formale Korrektheit hängt von einer Reihe von Problemen mit Floating-Point-Berechnungen ab. Genaue Ergebnisse erfordern die Behandlung von positiven/negativen, kleinen/großen Argumenten, wie es in glibc oder GNU Scientific Library vorhanden ist.

+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES6', '#sec-math.asinh', 'Math.asinh')}}{{Spec2('ES6')}}Initiale Definition.
{{SpecName('ESDraft', '#sec-math.asinh', 'Math.asinh')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Math.asinh")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/math/atan/index.html b/files/de/web/javascript/reference/global_objects/math/atan/index.html new file mode 100644 index 0000000000..1c37c3dcc4 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/math/atan/index.html @@ -0,0 +1,105 @@ +--- +title: Math.atan() +slug: Web/JavaScript/Reference/Global_Objects/Math/atan +tags: + - JavaScript + - Math + - Method + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Math/atan +--- +
{{JSRef}}
+ +

Die Funktion Math.atan() gibt den Arkustangens (im Radiantenmaß) einer Zahl zurück:

+ +

Math.atan(x)=arctan(x)= das Ergebnis y[-π2;π2]so  dasstan(y)=x\mathtt{\operatorname{Math.atan}(x)} = \arctan(x) = \text{ the unique } \; y \in \left[-\frac{\pi}{2}; \frac{\pi}{2}\right] \, \text{such that} \; \tan(y) = x

+ +
{{EmbedInteractiveExample("pages/js/math-atan.html")}}
+ + + +

Syntax

+ +
Math.atan(x)
+ +

Parameter

+ +
+
x
+
Eine Zahl.
+
+ +

Rückgabewert

+ +

Der Arkustangens (im Radiantenmaß) der übergebenen Zahl.

+ +

Beschreibung

+ +

Die Math.atan() Methode gibt einen numerischen Wert zwischen -π2-\frac{\pi}{2} und π2\frac{\pi}{2} im Radiantenmaß zurück.

+ +

Weil atan() eine statische Methode von Math ist, muss diese immer mit Math.atan() genutzt werden, ohne dass ein Objekt von Math erstellt wird (Math ist kein Konstruktor).

+ +

Beispiele

+ +

Verwendung von Math.atan()

+ +
Math.atan(1);   // 0.7853981633974483
+Math.atan(0);   // 0
+Math.atan(-0);  // -0
+
+Math.atan(Infinity);   //  1.5707963267948966
+Math.atan(-Infinity);  // -1.5707963267948966
+
+// The angle that the line [(0,0);(x,y)] forms with the x-axis in a Cartesian coordinate system
+Math.atan(y / x);
+ +

Beachten Sie, dass es manchmal aus stilistischen Gründen gewollt ist, dass ±Infinity vermieden werden soll. In diesen Fällen kann die Funktion {{jsxref("Math.atan2()")}} mit 0 als zweiten Parameter bessere Ergebnisse liefern.

+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES1')}}{{Spec2('ES1')}}Initiale Definition. Implementiert in JavaScript 1.0.
{{SpecName('ES5.1', '#sec-15.8.2.4', 'Math.atan')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-math.atan', 'Math.atan')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-math.atan', 'Math.atan')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Math.atan")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/math/atan2/index.html b/files/de/web/javascript/reference/global_objects/math/atan2/index.html new file mode 100644 index 0000000000..5848a76898 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/math/atan2/index.html @@ -0,0 +1,113 @@ +--- +title: Math.atan2() +slug: Web/JavaScript/Reference/Global_Objects/Math/atan2 +tags: + - JavaScript + - Math + - Method + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Math/atan2 +--- +
{{JSRef}}
+ +

Die Funktion Math.atan2() gibt den Arkustangens (im Radiantenmaß) des Quotienten der Parameter zurück.

+ +
{{EmbedInteractiveExample("pages/js/math-atan2.html")}}
+ + + +

Syntax

+ +
Math.atan2(y, x)
+ +

Parameter

+ +
+
y
+
Eine Zahl.
+
x
+
Eine zweite Zahl.
+
+ +

Rückgabewert

+ +

Der Arkustangens des Quotienten der übergebenen Parameter.

+ +

Beschreibung

+ +

Die Math.atan2() Methode gibt einen numerischen Wert zwischen -π und π zurück, welcher den Winkel Theta eines (x, y) Punktes wiedergibt. Dies ist der Radius entgegen dem Uhrzeigersinn, gemessen in Radianten, zwischen der positiven x Achse, und des Punktes (x, y). Beachte, dass bei der Funktion der erste Parameter die y Koordinate und der zweite die x Koordinate ist.

+ +

Ein einfaches Diagramm welches den zurückgegebenen Winkel von atan2(y, x) zeigt

+ +

Bei Math.atan2() wird x und y separat übergeben, bei Math.atan() hingegen wird das Verhältnis der zwei Parameter übergeben.

+ +

Weil atan2() eine statische Methode von Math ist, muss diese immer mit Math.atan2() genutzt werden, ohne dass ein Objekt von Math erstellt wird (Math ist kein Konstruktor).

+ +

Beispiele

+ +

Verwendung von Math.atan2()

+ +
Math.atan2(90, 15); // 1.4056476493802699
+Math.atan2(15, 90); // 0.16514867741462683
+
+Math.atan2(±0, -0);               // ±PI.
+Math.atan2(±0, +0);               // ±0.
+Math.atan2(±0, -x);               // ±PI for x > 0.
+Math.atan2(±0, x);                // ±0 for x > 0.
+Math.atan2(-y, ±0);               // -PI/2 for y > 0.
+Math.atan2(y, ±0);                // PI/2 for y > 0.
+Math.atan2(±y, -Infinity);        // ±PI for finite y > 0.
+Math.atan2(±y, +Infinity);        // ±0 for finite y > 0.
+Math.atan2(±Infinity, x);         // ±PI/2 for finite x.
+Math.atan2(±Infinity, -Infinity); // ±3*PI/4.
+Math.atan2(±Infinity, +Infinity); // ±PI/4.
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES1')}}{{Spec2('ES1')}}Initiale Definition. Implementiert in JavaScript 1.0.
{{SpecName('ES5.1', '#sec-15.8.2.5', 'Math.atan2')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-math.atan2', 'Math.atan2')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-math.atan2', 'Math.atan2')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Math.atan2")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/math/cbrt/index.html b/files/de/web/javascript/reference/global_objects/math/cbrt/index.html new file mode 100644 index 0000000000..a24c572eb7 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/math/cbrt/index.html @@ -0,0 +1,98 @@ +--- +title: Math.cbrt() +slug: Web/JavaScript/Reference/Global_Objects/Math/cbrt +tags: + - JavaScript + - Math + - Method + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Math/cbrt +--- +
{{JSRef}}
+ +

Die Funktion Math.cbrt() gibt die Kubikwurzel einer Zahl zurück:

+ +

Math.cbrt(x)=x3=das  Ergebnisyso  dassy3=x\mathtt{Math.cbrt(x)} = \sqrt[3]{x} = \text{the unique} \; y \; \text{such that} \; y^3 = x

+ +
{{EmbedInteractiveExample("pages/js/math-cbrt.html")}}
+ + + +

Syntax

+ +
Math.cbrt(x)
+ +

Parameter

+ +
+
x
+
Eine Zahl.
+
+ +

Rückgabewert

+ +

Die Kubikwurzel der übergebenen Zahl.

+ +

Beschreibung

+ +

Weil cbrt() eine statische Methode von Math ist, muss diese immer mit Math.cbrt() genutzt werden, ohne dass ein Objekt von Math erstellt wird (Math ist kein Konstruktor).

+ +

Beispiele

+ +

Verwendung von Math.cbrt()

+ +
Math.cbrt(NaN); // NaN
+Math.cbrt(-1); // -1
+Math.cbrt(-0); // -0
+Math.cbrt(-Infinity); // -Infinity
+Math.cbrt(0); // 0
+Math.cbrt(1); // 1
+Math.cbrt(Infinity); // Infinity
+Math.cbrt(null); // 0
+Math.cbrt(2);  // 1.2599210498948734
+ +

Polyfill

+ +

Für x0x \geq 0 gilt x3=x1/3\sqrt[3]{x} = x^{1/3} so dass diese Funktion wie folgt emuliert werden kann:

+ +
if (!Math.cbrt) {
+  Math.cbrt = function(x) {
+    var y = Math.pow(Math.abs(x), 1/3);
+    return x < 0 ? -y : y;
+  };
+}
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES6', '#sec-math.cbrt', 'Math.cbrt')}}{{Spec2('ES6')}}Initiale Definition.
{{SpecName('ESDraft', '#sec-math.cbrt', 'Math.cbrt')}}{{Spec2('ESDraft')}}
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Math.cbrt")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/math/ceil/index.html b/files/de/web/javascript/reference/global_objects/math/ceil/index.html new file mode 100644 index 0000000000..06cf4808e7 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/math/ceil/index.html @@ -0,0 +1,170 @@ +--- +title: Math.ceil() +slug: Web/JavaScript/Reference/Global_Objects/Math/ceil +tags: + - JavaScript + - Math + - Method + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Math/ceil +--- +
{{JSRef}}
+ +

Die Funktion Math.ceil() gibt die nächste Ganzzahl, die größer oder gleich der gegebenen Zahl ist, zurück.

+ +
{{EmbedInteractiveExample("pages/js/math-ceil.html")}}
+ + + +

Syntax

+ +
Math.ceil(x)
+ +

Parameter

+ +
+
x
+
Eine Zahl.
+
+ +

Rückgabewert

+ +

Die kleinste ganze Zahl größer oder gleich der übergebenen Zahl.

+ +

Beschreibung

+ +

Weil ceil() eine statische Methode von Math ist, muss diese immer mit Math.ceil() genutzt werden, ohne dass ein Objekt von Math erstellt wird (Math ist kein Konstruktor).

+ +

Beispiele

+ +

Verwendung von Math.ceil()

+ +

Das folgende Beispiel zeigt den exemplarischen Einsatz von Math.ceil().

+ +
Math.ceil(.95);    // 1
+Math.ceil(4);      // 4
+Math.ceil(7.004);  // 8
+Math.ceil(-0.95);  // -0
+Math.ceil(-4);     // -4
+Math.ceil(-7.004); // -7
+
+ +

Dezimales anpassen

+ +
// Closure
+(function() {
+  /**
+   * Decimal adjustment of a number.
+   *
+   * @param {String}  type  The type of adjustment.
+   * @param {Number}  value The number.
+   * @param {Integer} exp   The exponent (the 10 logarithm of the adjustment base).
+   * @returns {Number} The adjusted value.
+   */
+  function decimalAdjust(type, value, exp) {
+    // If the exp is undefined or zero...
+    if (typeof exp === 'undefined' || +exp === 0) {
+      return Math[type](value);
+    }
+    value = +value;
+    exp = +exp;
+    // If the value is not a number or the exp is not an integer...
+    if (isNaN(value) || !(typeof exp === 'number' && exp % 1 === 0)) {
+      return NaN;
+    }
+    // Shift
+    value = value.toString().split('e');
+    value = Math[type](+(value[0] + 'e' + (value[1] ? (+value[1] - exp) : -exp)));
+    // Shift back
+    value = value.toString().split('e');
+    return +(value[0] + 'e' + (value[1] ? (+value[1] + exp) : exp));
+  }
+
+  // Decimal round
+  if (!Math.round10) {
+    Math.round10 = function(value, exp) {
+      return decimalAdjust('round', value, exp);
+    };
+  }
+  // Decimal floor
+  if (!Math.floor10) {
+    Math.floor10 = function(value, exp) {
+      return decimalAdjust('floor', value, exp);
+    };
+  }
+  // Decimal ceil
+  if (!Math.ceil10) {
+    Math.ceil10 = function(value, exp) {
+      return decimalAdjust('ceil', value, exp);
+    };
+  }
+})();
+
+// Round
+Math.round10(55.55, -1);   // 55.6
+Math.round10(55.549, -1);  // 55.5
+Math.round10(55, 1);       // 60
+Math.round10(54.9, 1);     // 50
+Math.round10(-55.55, -1);  // -55.5
+Math.round10(-55.551, -1); // -55.6
+Math.round10(-55, 1);      // -50
+Math.round10(-55.1, 1);    // -60
+// Floor
+Math.floor10(55.59, -1);   // 55.5
+Math.floor10(59, 1);       // 50
+Math.floor10(-55.51, -1);  // -55.6
+Math.floor10(-51, 1);      // -60
+// Ceil
+Math.ceil10(55.51, -1);    // 55.6
+Math.ceil10(51, 1);        // 60
+Math.ceil10(-55.59, -1);   // -55.5
+Math.ceil10(-59, 1);       // -50
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
ECMAScript 1st Edition.StandardInitiale Definition. Implementiert in JavaScript 1.0.
{{SpecName('ES5.1', '#sec-15.8.2.6', 'Math.ceil')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-math.ceil', 'Math.ceil')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-math.ceil', 'Math.ceil')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Math.ceil")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/math/clz32/index.html b/files/de/web/javascript/reference/global_objects/math/clz32/index.html new file mode 100644 index 0000000000..ac7c78c4a7 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/math/clz32/index.html @@ -0,0 +1,112 @@ +--- +title: Math.clz32() +slug: Web/JavaScript/Reference/Global_Objects/Math/clz32 +tags: + - ECMAScript 2015 + - Java + - Math + - Method + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Math/clz32 +--- +
{{JSRef}}
+ +

Die Math.clz32() Funktion zählt die führenden Nullbits in der 32-Bit binär Repräsentation einer Nummer.

+ +
{{EmbedInteractiveExample("pages/js/math-clz32.html")}}
+ + + +

Syntax

+ +
Math.clz32(x)
+ +

Parameter

+ +
+
x
+
Eine Nummer.
+
+ +

Rückgabewert

+ +

Die Anzahl der führenden Nullbits in der 32-Bit binör Repräsentation der übergebenen Zahl.

+ +

Beschreibung

+ +

"clz32" steht für CountLeadingZeroes32 (AnzahlFührenderNullen32).

+ +

Wenn x keine Nummer ist, wird x in eine Nummer konvertiert. Danach wird diese Nummer in einen 32-Bit vorzeichenlose Ganzzahl (unsigned integer) konvertiert.

+ +

Wenn die konvertierte 32-Bit vorzeichenlose Zahl 0 ist, so wird die Funktion 32 zurück geben, weil alle Bits 0 sind.

+ +

Diese Funktion ist nützlich für Systeme, die in zu JavaScript kompilieren (z. B. Emscripten).

+ +

Beispiele

+ +

Einsatz von Math.clz32()

+ +
Math.clz32(1);                // 31
+Math.clz32(1000);             // 22
+Math.clz32();                 // 32
+
+[NaN, Infinity, -Infinity, 0, -0, null, undefined, 'foo', {}, []].filter(
+function(n) {
+  return Math.clz32(n) !== 32
+});                           // []
+
+Math.clz32(true);             // 31
+Math.clz32(3.5);              // 30
+
+ +

Polyfill

+ +

Der folgende Polyfill ist der effizienteste.

+ +
if (!Math.clz32) {
+  Math.clz32 = function(x) {
+    // Let n be ToUint32(x).
+    // Let p be the number of leading zero bits in 
+    // the 32-bit binary representation of n.
+    // Return p.    
+    if (x == null || x === 0) {
+      return 32;
+    }
+    return 31 - Math.floor(Math.log(x >>> 0) * Math.LOG2E);
+  };
+}
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('ES2015', '#sec-math.clz32', 'Math.clz32')}}{{Spec2('ES2015')}}Initiale Definition.
{{SpecName('ESDraft', '#sec-math.clz32', 'Math.clz32')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Math.clz32")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/math/cos/index.html b/files/de/web/javascript/reference/global_objects/math/cos/index.html new file mode 100644 index 0000000000..300908a90b --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/math/cos/index.html @@ -0,0 +1,98 @@ +--- +title: Math.cos() +slug: Web/JavaScript/Reference/Global_Objects/Math/cos +tags: + - JavaScript + - Math + - Method + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Math/cos +--- +
{{JSRef}}
+ +

Die Math.cos() Funktion gibt den {{interwiki("wikipedia", "Cosinus")}} eines Winkels zurück. Der Winkel muss im {{interwiki("wikipedia", "Bogenmaß")}} angegeben werden. Der Wert ist  length adjacent length hypotenuse .

+ +
{{EmbedInteractiveExample("pages/js/math-cos.html")}}
+ + + +

Syntax

+ +
Math.cos(x)
+ +

Parameter

+ +
+
x
+
Eine Zahl im Winkelmaß (rad).
+
+ +

Rückgabewert

+ +

Der Cosinus der übergebenen Zahl.

+ +

Beschreibung

+ +

Die Math.cos() Funktion gibt einen nummerischen Wert zwischen -1 und 1 zurück. Dieser repräsentiert den Cosinus des Winkels.

+ +

Weil cos() eine statische Funktion von Math ist, wird es immer als Math.cos() eingesetzt, jedoch nicht als Methode eines erzeugten Math Objektes (Math ist kein Konstruktor).

+ +

Beispiele

+ +

Einsatz von Math.cos()

+ +
Math.cos(0);           // 1
+Math.cos(1);           // 0.5403023058681398
+
+Math.cos(Math.PI);     // -1
+Math.cos(2 * Math.PI); // 1
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationenStatusKommentar
{{SpecName('ES1')}}{{Spec2('ES1')}}Initiale Definition. Implementiert in JavaScript 1.0.
{{SpecName('ES5.1', '#sec-15.8.2.7', 'Math.cos')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-math.cos', 'Math.cos')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-math.cos', 'Math.cos')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Math.cos")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/math/cosh/index.html b/files/de/web/javascript/reference/global_objects/math/cosh/index.html new file mode 100644 index 0000000000..9b24cbbeaf --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/math/cosh/index.html @@ -0,0 +1,102 @@ +--- +title: Math.cosh() +slug: Web/JavaScript/Reference/Global_Objects/Math/cosh +tags: + - JavaScript + - Math + - Method + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Math/cosh +--- +
{{JSRef}}
+ +

Die Math.cosh() Funktion gibt den Cosinus Hyperbolicus einer Zahl zurück. Dieser kann mit dem Einsatz der {{jsxref("Math.E", "Eulerschen Zahl", "", 1)}} folgendermaßen berechnet werden:

+ +

Math.cosh(x)=ex+e-x2\mathtt{\operatorname{Math.cosh(x)}} = \frac{e^x + e^{-x}}{2}

+ +
{{EmbedInteractiveExample("pages/js/math-cosh.html")}}
+ + + +

Syntax

+ +
Math.cosh(x)
+ +

Parameter

+ +
+
x
+
Eine Zahl.
+
+ +

Rückgabewert

+ +

Der hyperbolische Cosinus der übergebenen Zahl.

+ +

Beschreibung

+ +

Weil cosh() eine statische Funktion von Math ist, wird es immer als Math.cosh() eingesetzt, jedoch nicht als Methode eines erzeugten Math Objektes (Math ist kein Konstruktor).

+ +

Beispiele

+ +

Einsatz von Math.cosh()

+ +
Math.cosh(0);  // 1
+Math.cosh(1);  // 1.5430806348152437
+Math.cosh(-1); // 1.5430806348152437
+
+ +

Polyfill

+ +

Diese Funktion kann mit Hilfe der Funktion {{jsxref("Math.exp()")}} emuliert werden:

+ +
Math.cosh = Math.cosh || function(x) {
+  return (Math.exp(x) + Math.exp(-x)) / 2;
+}
+
+ +

Oder nur mit einem Aufruf der {{jsxref("Math.exp()")}} Funktion:

+ +
Math.cosh = Math.cosh || function(x) {
+  var y = Math.exp(x);
+  return (y + 1 / y) / 2;
+};
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES6', '#sec-math.cosh', 'Math.cosh')}}{{Spec2('ES6')}}Initiale Definition.
{{SpecName('ESDraft', '#sec-math.cosh', 'Math.cosh')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Math.cosh")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/math/e/index.html b/files/de/web/javascript/reference/global_objects/math/e/index.html new file mode 100644 index 0000000000..1ba5bd74d5 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/math/e/index.html @@ -0,0 +1,83 @@ +--- +title: Math.E +slug: Web/JavaScript/Reference/Global_Objects/Math/E +tags: + - JavaScript + - Math + - Property + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Math/E +--- +
{{JSRef}}
+ +

Die Math.E Eigenschaft repräsentiert die Basis des natürlichen Logarithmus, was gerundet 2,718 ist.

+ +

Math.E=e2,718\mathtt{\mi{Math.E}} = e \approx 2,718

+ +
{{EmbedInteractiveExample("pages/js/math-e.html")}}
+ + + +
{{js_property_attributes(0,0,0)}}
+ +

Beschreibung

+ +

Weil E eine statische Eigenschaft von Math ist, muss immer Math.E genutzt werden, ohne dass ein Math Objekt erstellt wird (Math ist kein Konstruktor).

+ +

Beispiele

+ +

Einsatz von Math.E

+ +

Die folgende Funktion gibt e zurück:

+ +
function getNapier() {
+   return Math.E
+}
+
+getNapier() // 2.718281828459045
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES1')}}{{Spec2('ES1')}}Initiale Definition.
{{SpecName('ES5.1', '#sec-15.8.1.1', 'Math.E')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-math.e', 'Math.E')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-math.e', 'Math.E')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Math.E")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/math/exp/index.html b/files/de/web/javascript/reference/global_objects/math/exp/index.html new file mode 100644 index 0000000000..df215203d8 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/math/exp/index.html @@ -0,0 +1,95 @@ +--- +title: Math.exp() +slug: Web/JavaScript/Reference/Global_Objects/Math/exp +tags: + - JavaScript + - Math + - Method + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Math/exp +--- +
{{JSRef}}
+ +

Die Math.exp() Funktion gibt ex zurück, wobei x der Parameter ist. e ist die {{jsxref("Math.E", "Eulersche Zahl", "", 1)}}, die Basis des natürlichen Logarithmus.

+ +
{{EmbedInteractiveExample("pages/js/math-exp.html")}}
+ + + +

Syntax

+ +
Math.exp(x)
+ +

Parameter

+ +
+
x
+
Eine Zahl.
+
+ +

Rückgabewert

+ +

Die Zahl, die ex repräsentiert, wobei e die {{jsxref("Math.E", "Eulersche Zahl", "", 1)}} ist und x die übergebene Zahl ist.

+ +

Beschreibung

+ +

Weil exp() eine statische Funktion von Math ist, wird es immer als Math.exp() eingesetzt, jedoch nicht als Methode eines erzeugten Math Objektes (Math ist kein Konstruktor).

+ +

Beispiele

+ +

Einsatz von Math.exp()

+ +
Math.exp(-1); // 0.36787944117144233
+Math.exp(0);  // 1
+Math.exp(1);  // 2.718281828459045
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusComment
{{SpecName('ES1')}}{{Spec2('ES1')}}Initiale Definition. Implementiert in JavaScript 1.0.
{{SpecName('ES5.1', '#sec-15.8.2.8', 'Math.exp')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-math.exp', 'Math.exp')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-math.exp', 'Math.exp')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Math.exp")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/math/expm1/index.html b/files/de/web/javascript/reference/global_objects/math/expm1/index.html new file mode 100644 index 0000000000..b257953d87 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/math/expm1/index.html @@ -0,0 +1,94 @@ +--- +title: Math.expm1() +slug: Web/JavaScript/Reference/Global_Objects/Math/expm1 +tags: + - JavaScript + - Math + - Method + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Math/expm1 +--- +
{{JSRef}}
+ +

Die Math.expm1() Funktion gibt ex - 1 zurück, wobei x der Parameter ist. e ist die {{jsxref("Math.E", "Eulersche Zahl", "", 1)}}, die Basis des natürlichen Logarithmus.

+ +
{{EmbedInteractiveExample("pages/js/math-expm1.html")}}
+ + + +

Syntax

+ +
Math.expm1(x)
+ +

Parameter

+ +
+
x
+
Eine Zahl.
+
+ +

Rückgabewert

+ +

Die Zahl, die ex - 1 repräsentiert, wobei e die {{jsxref("Math.E", "Eulersche Zahl", "", 1)}} und x die übergebene Zahl ist.

+ +

Beschreibung

+ +

Weil expm1() eine statische Funktion von Math ist, wird es immer als Math.expm1() eingesetzt, jedoch nicht als Methode eines erzeugten Math Objektes (Math ist kein Konstruktor).

+ +

Beispiele

+ +

Einsatz von Math.expm1()

+ +
Math.expm1(-1); // -0.6321205588285577
+Math.expm1(0);  // 0
+Math.expm1(1);  // 1.718281828459045
+
+ +

Polyfill

+ +

Diese Funktion kann mit Hilfe der Funktion {{jsxref("Math.exp()")}} emitiert werden:

+ +
Math.expm1 = Math.expm1 || function(x) {
+  return Math.exp(x) - 1;
+};
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + +
SpezifikationStatusComment
{{SpecName('ES6', '#sec-math.expm1', 'Math.expm1')}}{{Spec2('ES6')}}Initiale Definition.
{{SpecName('ESDraft', '#sec-math.expm1', 'Math.expm1')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Math.expm1")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/math/floor/index.html b/files/de/web/javascript/reference/global_objects/math/floor/index.html new file mode 100644 index 0000000000..68f8bf86fa --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/math/floor/index.html @@ -0,0 +1,137 @@ +--- +title: Math.floor() +slug: Web/JavaScript/Reference/Global_Objects/Math/floor +tags: + - JavaScript + - Math + - Method + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Math/floor +--- +
{{JSRef}}
+ +

Die Math.floor() Funktion gibt den größten Integer zurück, der kleiner oder gleich der gegeben Nummer ist. (Abrunden) 

+ +
{{EmbedInteractiveExample("pages/js/math-floor.html")}}
+ + + +

Syntax

+ +
Math.floor(x)
+ +

Parameter

+ +
+
x
+
Eine Zahl.
+
+ +

Rückgabewert

+ +

Eine größte ganze Zahl, die kleiner oder gleich der übergebenen Zahl ist.

+ +

Beschreibung

+ +

Weil floor() eine statische Methode von Math ist, wird sie immer als Math.floor() aufgerufen und nicht als eine Methode eines erstellten Math Objektes (Math ist kein Konstruktor).

+ +
+

Hinweis: Math.floor(null) gibt 0, aber nicht {{jsxref("NaN")}}, zurück.

+
+ +

Beispiele

+ +

Einsatz von Math.floor()

+ +
Math.floor(45.95);   // 45
+Math.floor(45.05);   // 45
+Math.floor(4);       // 4
+Math.floor(-45.05);  // -46
+Math.floor(-45.95);  // -46
+
+ +

Dezimale Justierung

+ +
/**
+ * Decimal adjustment of a number.
+ *
+ * @param {String}  type  The type of adjustment.
+ * @param {Number}  value The number.
+ * @param {Integer} exp   The exponent (the 10 logarithm of the adjustment base).
+ * @returns {Number} The adjusted value.
+ */
+function decimalAdjust(type, value, exp) {
+  // If the exp is undefined or zero...
+  if (typeof exp === 'undefined' || +exp === 0) {
+    return Math[type](value);
+  }
+  value = +value;
+  exp = +exp;
+  // If the value is not a number or the exp is not an integer...
+  if (isNaN(value) || !(typeof exp === 'number' && exp % 1 === 0)) {
+    return NaN;
+  }
+  // Shift
+  value = value.toString().split('e');
+  value = Math[type](+(value[0] + 'e' + (value[1] ? (+value[1] - exp) : -exp)));
+  // Shift back
+  value = value.toString().split('e');
+  return +(value[0] + 'e' + (value[1] ? (+value[1] + exp) : exp));
+}
+
+// Decimal round
+const round10 = (value, exp) => decimalAdjust('round', value, exp);
+// Decimal floor
+const floor10 = (value, exp) => decimalAdjust('floor', value, exp);
+// Decimal ceil
+const ceil10 = (value, exp) => decimalAdjust('ceil', value, exp);
+
+// Round
+round10(55.55, -1);   // 55.6
+round10(55.549, -1);  // 55.5
+round10(55, 1);       // 60
+round10(54.9, 1);     // 50
+round10(-55.55, -1);  // -55.5
+round10(-55.551, -1); // -55.6
+round10(-55, 1);      // -50
+round10(-55.1, 1);    // -60
+// Floor
+floor10(55.59, -1);   // 55.5
+floor10(59, 1);       // 50
+floor10(-55.51, -1);  // -55.6
+floor10(-51, 1);      // -60
+// Ceil
+ceil10(55.51, -1);    // 55.6
+ceil10(51, 1);        // 60
+ceil10(-55.59, -1);   // -55.5
+ceil10(-59, 1);       // -50
+
+ +

Spezifikationen

+ + + + + + + + + + +
Spezifikation
{{SpecName('ESDraft', '#sec-math.floor', 'Math.floor')}}
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Math.floor")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/math/fround/index.html b/files/de/web/javascript/reference/global_objects/math/fround/index.html new file mode 100644 index 0000000000..de905d6637 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/math/fround/index.html @@ -0,0 +1,112 @@ +--- +title: Math.fround() +slug: Web/JavaScript/Reference/Global_Objects/Math/fround +tags: + - JavaScript + - Math + - Method + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Math/fround +--- +
{{JSRef}}
+ +

Die Math.fround() Funktion gibt die am nächsten gelegenen 32 Bit einfach genaue Repräsentation einer {{jsxref("Number")}}.

+ +
{{EmbedInteractiveExample("pages/js/math-fround.html")}}
+ + + +

Syntax

+ +
var singleFloat = Math.fround(doubleFloat)
+ +

Parameter

+ +
+
doubleFloat
+
Eine {{jsxref("Number")}}. Wenn der Parameter von einem anderen Typ ist, wird dieser zu einer Zahl konvertiert oder wenn er nicht konvertiert werden kann {{jsxref("NaN")}}.
+
+ +

Rückgabewert

+ +

Die am nächsten gelegenen 32 Bit einfach genaue Repräsentation einer Floatingpoint-Nummer, der übergebenen Zahl.

+ +

Beschreibung

+ +

JavaScript benutzt intern 64 Bit double Gleitkommazahlen, welche eine hohe Präzision haben. Manchmal ist es gewollt mit 32 Bit Gleitkommazahlen zu arbeiten, zum Beispiel, wenn von einem von einem {{jsxref("Float32Array")}} gelesen wird. Das kann verwirrend sein: Prüfen einer 64 Bit Gleitkommazahl und einer 32 Bit Gleitkommazahl auf Gleichheit kann fehlschlagen, auch wenn sie scheinbar identisch sind.

+ +

Um das zu beheben, kann Math.fround() eingesetzt werden um 64 Bit Gleitkommazahlen in 32 Bit Gleitkommazahlen umzuwandeln. Intern wird JavaScript die Zahl als 64 Bit Gleitkommazahl benutzen, es wird jedoch ein "Runden zu geraden Zahlen" (round to even) an der 23. Stelle der Mantisse vorgenommen und alle folgenden Stellen der Mantisse auf 0 gesetzt. Wenn die Zahl außerhalb des 32 Bit Gleitkommazahlenbereiches liegt wird {{jsxref("Infinity")}} oder -Infinity zurückgegeben.

+ +

Weil fround() eine statische Funktion von Math ist, wird es immer als Math.fround() eingesetzt, jedoch nicht als Methode eines erzeugten Math Objektes (Math ist kein Konstruktor).

+ +

Beispiele

+ +

Einsatz von Math.fround()

+ +

Die Zahl 1-5 kan präzise im Binärsystem dargestellt werden und ist identisch in 32 Bit und 64 Bit:

+ +
Math.fround(1.5);        // 1.5
+Math.fround(1.5) === 1.5 // true
+ +

Die Zahl 1.337 kan nicht präzise in Binärsystem dargestellt werden und unterscheidet sich in 32 Bit und 64 Bit:

+ +
Math.fround(1.337);           //1.3370000123977661
+Math.fround(1.337) === 1.337; // false
+
+ +

21502^150 ist zu groß für eine 32 Bit Gleitkommazahl, weshalb Infinity zurückgegeben wird.

+ +
2 ** 150;              // 1.42724769270596e+45
+Math.fround(2 ** 150); // Infinity
+
+ +

Wenn der Parameter nicht zu einer Zahl konvertiert werden kann, oder keine Zahl ist (NaN), gibt Math.fround() NaN zurück:

+ +
Math.fround('abc'); // NaN
+Math.fround(NaN);   // NaN
+
+ +

Polyfill

+ +

Diese Funktion kann emuliert werden, wenn {{jsxref("Float32Array")}} verfügbar ist:

+ +
Math.fround = Math.fround || (function (array) {
+  return function(x) {
+    return array[0] = x, array[0];
+  };
+})(Float32Array(1));
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES6', '#sec-math.fround', 'Math.fround')}}{{Spec2('ES6')}}Initiale Definition.
{{SpecName('ESDraft', '#sec-math.fround', 'Math.fround')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Math.fround")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/math/hypot/index.html b/files/de/web/javascript/reference/global_objects/math/hypot/index.html new file mode 100644 index 0000000000..b88861e06d --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/math/hypot/index.html @@ -0,0 +1,128 @@ +--- +title: Math.hypot() +slug: Web/JavaScript/Reference/Global_Objects/Math/hypot +tags: + - JavaScript + - Math + - Method + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Math/hypot +--- +
{{JSRef}}
+ +

Die Math.hypot() Funktion gibt die Quadratwurzel von der Summe der quadrierten Argumente zurück. Das bedeutet

+ +

Math.hypot(v1,v2,,vn)=i=1nvi2=v12+v22++vn2\mathtt{\operatorname{Math.hypot}(v_1, v_2, \dots, v_n)} = \sqrt{\sum_{i=1}^n v_i^2} = \sqrt{v_1^2 + v_2^2 + \dots + v_n^2}

+ +
{{EmbedInteractiveExample("pages/js/math-hypot.html")}}
+ + + +

Syntax

+ +
Math.hypot([value1[, value2[, ...]]])
+ +

Parameter

+ +
+
value1, value2, ...
+
Zahlen.
+
+ +

Rückgabewert

+ +

Die Quadratwurzel der Summe der quadrierten übergebenen Parameter. Wenn ein Parameter nicht in eine Zahl konvertiert werden kann, wird {{jsxref("NaN")}} zurückgegeben.

+ +

Beschreibung

+ +

Das Berechnen der Hypotenuse eines rechtwinkligen Dreiecks oder die Größe einer komplexen Zahl verwendet die Formel Math.sqrt (v1 * v1 + v2 * v2), wobei v1 und v2 entweder die Seiten des Dreiecks oder die reellen und komplexen Werte sind. Zum Berechnen der Entfernung in 2 oder mehr Dimensionen fügt man einfach weitere Quadrate innerhalb des Quadratwurzelzeichens ein, wie z. B. Math.sqrt (v1 * v1 + v2 * v2 + v3 * v3 + v4 * v4).

+ +

Diese Funktion macht es ein bisschen einfacher und schneller, man kann einfach Math.hypot(v1, v2) , or Math.hypot(v1, v2, v3, v4, ...) aufrufen.

+ +

Sie vermeidet zudem ein Problem, wenn Zahlen sehr groß werden. Die größte Zahl, die in JavaScript dargestellt werden kann ist Number.MAX_VALUE = 1.797...e+308. Wenn die Zahlen größer als 1e154 sind, wird das Quadrieren dieser zu dem ergebnis Infinity führen und das Ergebnis zerstören. Zum Beispiel: Math.sqrt(1e200*1e200 + 1e200*1e200) = Infinity. Wenn hypot() stattdessen benutzt wird bekommt man ein gutes Ergebnis: Math.hypot(1e200, 1e200) = 1.4142...e+200. Diese gilt auch für sehr kleine Zahlen. Math.sqrt(1e-200*1e-200 + 1e-200*1e-200) = 0, wohingegen Math.hypot(1e-200, 1e-200) =1.4142...e-200 eine gute Lösung ist.

+ +

Weil hypot() eine statische Funktion von Math ist, wird es immer als Math.hypot() eingesetzt, jedoch nicht als Methode eines erzeugten Math Objektes (Math ist kein Konstruktor).

+ +

Wenn kein Argument übergeben wird, ist das Ergebnis +0.

+ +

Wenn einer der übergebenen Parameter nicht zu einer Zahl konvertiert werden kann, ist das Ergebnis {{jsxref("NaN")}}.

+ +

Wenn nur ein Argument übergeben wird, so sind die Ergebnisse der Funktionen Math.hypot() und {{jsxref("Math.abs()")}} gleich.

+ +

Beispiele

+ +

Einsatz von Math.hypot()

+ +
Math.hypot(3, 4);        // 5
+Math.hypot(3, 4, 5);     // 7.0710678118654755
+Math.hypot();            // 0
+Math.hypot(NaN);         // NaN
+Math.hypot(3, 4, 'foo'); // NaN, +'foo' => NaN
+Math.hypot(3, 4, '5');   // 7.0710678118654755, +'5' => 5
+Math.hypot(-3);          // 3, das gleiche wie Math.abs(-3)
+
+ +

Polyfill

+ +

Diese Funktion kann folgendermaßen emuliert werden:

+ +
Math.hypot = Math.hypot || function() {
+  var y = 0, i = arguments.length;
+  while (i--) y += arguments[i] * arguments[i];
+  return Math.sqrt(y);
+};
+
+ +

Ein Polyfill der Underflows und Overflows vermeidet:

+ +
Math.hypot = function (x, y) {
+  // https://bugzilla.mozilla.org/show_bug.cgi?id=896264#c28
+  var max = 0;
+  var s = 0;
+  for (var i = 0; i < arguments.length; i += 1) {
+    var arg = Math.abs(Number(arguments[i]));
+    if (arg > max) {
+      s *= (max / arg) * (max / arg);
+      max = arg;
+    }
+    s += arg === 0 && max === 0 ? 0 : (arg / max) * (arg / max);
+  }
+  return max === 1 / 0 ? 1 / 0 : max * Math.sqrt(s);
+};
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES2015', '#sec-math.hypot', 'Math.hypot')}}{{Spec2('ES2015')}}Initiale Definition.
{{SpecName('ESDraft', '#sec-math.hypot', 'Math.hypot')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Math.hypot")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/math/imul/index.html b/files/de/web/javascript/reference/global_objects/math/imul/index.html new file mode 100644 index 0000000000..ea3bc9abf3 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/math/imul/index.html @@ -0,0 +1,92 @@ +--- +title: Math.imul() +slug: Web/JavaScript/Reference/Global_Objects/Math/imul +tags: + - JavaScript + - Math + - Method + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Math/imul +--- +
{{JSRef}}
+ +

Die Math.imul() Funktion führt eine C ähnliche 32-Bit Multiplikation der zwei Parameter durch.

+ +
{{EmbedInteractiveExample("pages/js/math-imul.html")}}
+ + + +

Syntax

+ +
Math.imul(a, b)
+ +

Parameter

+ +
+
a
+
Erste Nummer.
+
b
+
Zweite Nummer.
+
+ +

Rückgabewert

+ +

Das Resultat der C-ähnlichen 32-Bit Multiplikation der übergebenen Parameter.

+ +

Beschreibung

+ +

Math.imul() erlaubt es schnelle 32-Bit Ganzzahlmultiplikationen mit C ähnlicher Semantik durchzuführen. Diese Funktion ist nützlich für Projekte wie Emscripten. Weil imul() eine statische Methode von Math ist, muss man immer Math.imul() benutzen und nicht als Methode eines Math Objektes, das man erzeugt (Math ist kein Konstruktor). Wenn normale JavaScript Gleitkommazahlen in imul eingesetzt werden, wird die Performance beeinträchtigt. Das ist wegen der Umwandlung von Gleitkommazahlen zu ganzen Zahlen für die Multiplikation und die anschließende Rückkonvertierung des Ergebnisses in eine Gleitkommazahl. Der Grund warum imul existiert, ist, dass esin (nur) einem Fall schneller ist: AsmJS. AsmJS erlaubt JIST-Optimierungen für einfache Implementierung von ganzen Zahlen in JavaScript. Multiplizieren von zwei Zahlen mit imul, die intern als Integer dargestellt sind (was nur mit AsmJS funktioniert) ist der einzige Grund, wo Math.imul die Performance im Browsern steigern kann.

+ +

Beispiele

+ +

Einsatz von Math.imul()

+ +
Math.imul(2, 4);          // 8
+Math.imul(-1, 8);         // -8
+Math.imul(-2, -2);        // 4
+Math.imul(0xffffffff, 5); // -5
+Math.imul(0xfffffffe, 5); // -10
+
+ +

Polyfill

+ +

Diese Funktionalität kann durch folgende Funktion emuliert werden:

+ +
Math.imul = Math.imul || function(a, b) {
+  var aHi = (a >>> 16) & 0xffff;
+  var aLo = a & 0xffff;
+  var bHi = (b >>> 16) & 0xffff;
+  var bLo = b & 0xffff;
+  // the shift by 0 fixes the sign on the high part
+  // the final |0 converts the unsigned value into a signed value
+  return ((aLo * bLo) + (((aHi * bLo + aLo * bHi) << 16) >>> 0) | 0);
+};
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('ES6', '#sec-math.imul', 'Math.imul')}}{{Spec2('ES6')}}Initial definition.
{{SpecName('ESDraft', '#sec-math.imul', 'Math.imul')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Math.imul")}}

diff --git a/files/de/web/javascript/reference/global_objects/math/index.html b/files/de/web/javascript/reference/global_objects/math/index.html new file mode 100644 index 0000000000..7dd7493568 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/math/index.html @@ -0,0 +1,201 @@ +--- +title: Math +slug: Web/JavaScript/Reference/Global_Objects/Math +tags: + - JavaScript + - Math + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Math +--- +
{{JSRef}}
+ +

Math ist ein Standardobjekt, das Eigenschaften und Methoden für mathematische Konstanten und Funktionen besitzt. Es ist kein Funktionsobjekt.

+ +

Beschreibung

+ +

Im Unterschied zu den anderen globalen Objekten hat Math keinen Konstruktor. Alle Eigenschaften und Methoden von Math sind statisch. Um die Konstante Pi zu erreichen, wird Math.PI genutzt. Die Sinusfunktion wird mit Math.sin(x) ausgeführt, wobei x der Methodenparameter ist. Konstanten sind so präzise wie der Typ number in JavaScript.

+ +

Eigenschaften

+ +
+
{{jsxref("Math.E")}}
+
Eulersche Zahl und die Basis für den natürlichen Logarithmus (gerundet 2,718).
+
+ +
+
{{jsxref("Math.LN2")}}
+
Natürlicher Logarithmus von 2 (gerundet 0,693).
+
{{jsxref("Math.LN10")}}
+
Natürlicher Logarithmus von 10 (gerundet 2,303).
+
{{jsxref("Math.LOG2E")}}
+
Logarithmus zur Basis 2 von der Eulerschen Zahl (gerundet 1,443).
+
{{jsxref("Math.LOG10E")}}
+
Logarithmus zur Basis 10 von der Eulerschen Zahl (gerundet 0,434).
+
{{jsxref("Math.PI")}}
+
Kreiszahl Pi, welche als Verhältnis zwischen Kreisumfang und Durchmesser definiert ist (gerundet 3,14159).
+
{{jsxref("Math.SQRT1_2")}}
+
Quadratwurzel aus 1/2 oder 1 geteilt durch die Quadratwurzel von 2 (gerundet 0,707).
+
{{jsxref("Math.SQRT2")}}
+
Quadratwurzel aus 2 (gerundet 1,414).
+
+ +

Methoden

+ +
Anmerkung: Die trigonometrischen Funktionen (sin(), cos(), tan(), asin(), acos(), atan(), atan2()) erwarten Parameter und geben Rückgabewerte im Bogenmaß zurück. Um dieses in das Gradmaß umzurechnen, teilt man durch (Math.PI / 180) und multipliziert das Ergebnis mit der Bogenmaß.
+ +
Anmerkung: Bei vielen mathematischen Funktionen ist die Präzision implementationsabhängig. Das bedeutet, dass es bei verschiedenen Browsern verschiedene Ergebnisse geben kann. Auch in der gleichen JavaScript-Umgebung auf verschiedenen Betriebssystemen oder Architekturen können Abweichungen entstehen.
+ +
+
+ +
+
{{jsxref("Global_Objects/Math/abs", "Math.abs(x)")}}
+
Gibt den Betrag einer Zahl zurück.
+
{{jsxref("Global_Objects/Math/acos", "Math.acos(x)")}}
+
Gibt den Arcus Cosinus einer Zahl zurück.
+
{{jsxref("Global_Objects/Math/acosh", "Math.acosh(x)")}}
+
Gibt den Areacosinus Hyperbolicus einer Zahl zurück.
+
{{jsxref("Global_Objects/Math/asin", "Math.asin(x)")}}
+
Gibt den Arcus Sinus einer Zahl zurück.
+
{{jsxref("Global_Objects/Math/asinh", "Math.asinh(x)")}}
+
Gibt den Areasinus Hyperbolicus einer Zahl zurück.
+
{{jsxref("Global_Objects/Math/atan", "Math.atan(x)")}}
+
Gibt den Arcus Tangens einer Zahl zurück.
+
{{jsxref("Global_Objects/Math/atanh", "Math.atanh(x)")}}
+
Gibt den Areatangens Hyperbolicus einer Zahl zurück.
+
{{jsxref("Global_Objects/Math/atan2", "Math.atan2(y, x)")}}
+
Gibt den Arcus Tangens aus dem Quotienten der Argumente zurück.
+
{{jsxref("Global_Objects/Math/cbrt", "Math.cbrt(x)")}}
+
Gibt die Kubikwurzel einer Zahl zurück.
+
{{jsxref("Global_Objects/Math/ceil", "Math.ceil(x)")}}
+
Gibt die kleinste ganze Zahl zurück, die größer oder gleich dem Parameter ist.
+
{{jsxref("Global_Objects/Math/clz32", "Math.clz32(x)")}}
+
Gibt die Anzahl der voranstehenden 0-Bits einer 32-Bit-Repräsentation zurück.
+
{{jsxref("Global_Objects/Math/cos", "Math.cos(x)")}}
+
Gibt den Cosinus einer Zahl zurück.
+
{{jsxref("Global_Objects/Math/cosh", "Math.cosh(x)")}}
+
Gibt den Cosinus Hyperbolicus einer Zahl zurück.
+
{{jsxref("Global_Objects/Math/exp", "Math.exp(x)")}}
+
Gibt Ex zurück, wobei x der Parameter und E die Eulersche Zahl ist.
+
{{jsxref("Global_Objects/Math/expm1", "Math.expm1(x)")}}
+
Gibt exp(x) - 1 zurück.
+
{{jsxref("Global_Objects/Math/floor", "Math.floor(x)")}}
+
Rundet eine Zahl auf eine ganze Zahl ab.
+
{{jsxref("Global_Objects/Math/fround", "Math.fround(x)")}}
+
Gibt die am nächsten liegende einfache genaue Gleitkommazahl des Parameters zurück.
+
{{jsxref("Global_Objects/Math/hypot", "Math.hypot([x[,y[,…]]])")}}
+
Gibt die Quadratwurzel aus der Summe der quadrierten Parameterwerte zurück.
+
{{jsxref("Global_Objects/Math/imul", "Math.imul(x)")}}
+
Gibt das Ergebnis einer 32-Bit-Ganzzahlmultiplikation zurück.
+
{{jsxref("Global_Objects/Math/log", "Math.log(x)")}}
+
Gibt den natürlichen Logarithmus (loge oder ln) einer Zahl zurück.
+
{{jsxref("Global_Objects/Math/log1p", "Math.log1p(x)")}}
+
Gibt den natürlichen Logarithmus (loge oder ln) einer mit 1 addierten Zahl zurück.
+
{{jsxref("Global_Objects/Math/log10", "Math.log10(x)")}}
+
Gibt den Logarithmus zur Basis 10 einer Zahl zurück.
+
{{jsxref("Global_Objects/Math/log2", "Math.log2(x)")}}
+
Gibt den Logarithmus zur Basis 2 einer Zahl zurück.
+
{{jsxref("Global_Objects/Math/max", "Math.max([x[,y[,…]]])")}}
+
Gibt die größte von null oder mehr Zahlen zurück.
+
{{jsxref("Global_Objects/Math/min", "Math.min([x[,y[,…]]])")}}
+
Gibt die kleinste von null oder mehr Zahlen zurück.
+
{{jsxref("Global_Objects/Math/pow", "Math.pow(x,y)")}}
+
Gibt die Potenz zweier Zahlen zurück (xy).
+
{{jsxref("Global_Objects/Math/random", "Math.random()")}}
+
Gibt eine Pseudozufallszahl zwischen 0 und 1 zurück.
+
{{jsxref("Global_Objects/Math/round", "Math.round(x)")}}
+
Gibt den ganzzahlig gerundeten Wert des Parameters zurück.
+
+ +
+
{{jsxref("Global_Objects/Math/sign", "Math.sign(x)")}}
+
Gibt das Vorzeichen (positiv, negativ, 0) von x zurück.
+
{{jsxref("Global_Objects/Math/sin", "Math.sin(x)")}}
+
Gibt den Sinus einer Zahl zurück.
+
{{jsxref("Global_Objects/Math/sinh", "Math.sinh(x)")}}
+
Gibt den Sinus Hyperbolicus einer Zahl zurück.
+
{{jsxref("Global_Objects/Math/sqrt", "Math.sqrt(x)")}}
+
Gibt die positive Quadratwurzel einer Zahl zurück.
+
{{jsxref("Global_Objects/Math/tan", "Math.tan(x)")}}
+
Gibt den Tangens einer Zahl zurück.
+
{{jsxref("Global_Objects/Math/tanh", "Math.tanh(x)")}}
+
Gibt den Tangens Hyperbolicus einer Zahl zurück.
+
Math.toSource() {{Non-standard_inline() }}
+
Gibt die Zeichenkette "Math" zurück.
+
{{jsxref("Global_Objects/Math/trunc", "Math.trunc(x)")}}
+
Gibt den ganzzahligen Teil der Zahl x, ohne jede Nachkommastellen, zurück.
+
+ +

Das Math Objekt erweitern

+ +

Wie die meisten der Standard-JavaScript Objekte kann auch das Math Objekt um benutzerdefinierten Eigenschaften und Methoden erweitert werden. Zum Erweitern des Math Objektes wird nicht prototype genutzt. Stattdessen wird Math direkt erweitert.

+ +
Math.propName = propValue;
+Math.methodName = methodRef;
+ +

Im folgenden Beispiel wird eine Methode zum Math Objekt hinzugefügt, welche den größten gemeinsamen Teiler von einer Liste von Argumenten ermittelt.

+ +
/* Variadic function -- Returns the greatest common divisor of a list of arguments */
+Math.gcd = function () {
+  if(arguments.length == 2) {
+    if(arguments[1] == 0) {
+      return arguments[0];
+    } else {
+      return Math.gcd(arguments[1], arguments[0] % arguments[1]);
+    }
+  } else if (arguments.length > 2) {
+    var result = Math.gcd(arguments[0], arguments[1]);
+    for (var i = 2; i < arguments.length; i++) {
+      result = Math.gcd(result, arguments[i]);
+    }
+    return result;
+  }
+}
+ +

Zum Ausprobieren:

+ +
console.log(Math.gcd(20, 30, 15, 70, 40)); // `5`
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES1')}}{{Spec2('ES1')}}Initiale Definition. Implementiert in JavaScript 1.1.
{{SpecName('ES5.1', '#sec-15.8', 'Math')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-math-object', 'Math')}}{{Spec2('ES6')}}Die neuen Methoden {{jsxref("Math.log10()", "log10()")}}, {{jsxref("Math.log2()", "log2()")}}, {{jsxref("Math.log1p()", "log1p()")}}, {{jsxref("Math.expm1()", "expm1()")}}, {{jsxref("Math.cosh()", "cosh()")}}, {{jsxref("Math.sinh()", "sinh()")}}, {{jsxref("Math.tanh()", "tanh()")}}, {{jsxref("Math.acosh()", "acosh()")}}, {{jsxref("Math.asinh()", "asinh()")}}, {{jsxref("Math.atanh()", "atanh()")}}, {{jsxref("Math.hypot()", "hypot()")}}, {{jsxref("Math.trunc()", "trunc()")}}, {{jsxref("Math.sign()", "sign()")}}, {{jsxref("Math.imul()", "imul()")}}, {{jsxref("Math.fround()", "fround()")}}, {{jsxref("Math.cbrt()", "cbrt()")}} und {{jsxref("Math.clz32()", "clz32()")}} hinzugefügt.
{{SpecName('ESDraft', '#sec-math-object', 'Math')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Math")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/math/ln10/index.html b/files/de/web/javascript/reference/global_objects/math/ln10/index.html new file mode 100644 index 0000000000..b43f317ef4 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/math/ln10/index.html @@ -0,0 +1,83 @@ +--- +title: Math.LN10 +slug: Web/JavaScript/Reference/Global_Objects/Math/LN10 +tags: + - JavaScript + - Math + - Property + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Math/LN10 +--- +
{{JSRef}}
+ +

Die Math.LN10 Eigenschaft repräsentiert den natürlichen Logarithmus von 10, was gerundet 2,302 ist:

+ +

Math.LN10=ln(10)2,302\mathtt{\mi{Math.LN10}} = \ln(10) \approx 2,302

+ +
{{EmbedInteractiveExample("pages/js/math-ln10.html")}}
+ + + +
{{js_property_attributes(0,0,0)}}
+ +

Beschreibung

+ +

Weil LN10 eine statische Eigenschaft von Math ist, kann diese immer über Math.LN10 erreicht werden, ohne dass ein Objekt von Math erstellt werden muss (Math ist kein Konstruktor).

+ +

Beispiele

+ +

Einsatz von Math.LN10

+ +

Die folgende Funktion gibt das Ergebnis des natürlichen Logarithmus von 10 zurück:

+ +
function getNatLog10() {
+   return Math.LN10
+}
+
+getNatLog10() // 2.302585092994046
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES1')}}{{Spec2('ES1')}}Initiale Definition. Implementiert in JavaScript 1.0
{{SpecName('ES5.1', '#sec-15.8.1.2', 'Math.LN10')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-math.ln10', 'Math.LN10')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-math.ln10', 'Math.LN10')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Math.LN10")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/math/ln2/index.html b/files/de/web/javascript/reference/global_objects/math/ln2/index.html new file mode 100644 index 0000000000..5577b36c74 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/math/ln2/index.html @@ -0,0 +1,83 @@ +--- +title: Math.LN2 +slug: Web/JavaScript/Reference/Global_Objects/Math/LN2 +tags: + - JavaScript + - Math + - Property + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Math/LN2 +--- +
{{JSRef}}
+ +

Die Math.LN2 Eigenschaft repräsentiert den natürlichen Logarithmus von 2, was gerundet 0,693 ist:

+ +

Math.LN2=ln(2)0,693\mathtt{\mi{Math.LN2}} = \ln(2) \approx 0,693

+ +
{{EmbedInteractiveExample("pages/js/math-ln2.html")}}
+ + + +
{{js_property_attributes(0,0,0)}}
+ +

Beschreibung

+ +

Weil LN2 eine statische Eigenschaft von Math ist, kann diese immer mit Math.LN2 erreicht werden, ohne dass ein Objekt von Math erstellt werden muss (Math ist kein Konstruktor).

+ +

Beispiele

+ +

Einsatz von Math.LN2

+ +

Die folgende Funktion gibt den Logarithmus zur Basis 2 von einer Zahl zurück. Dabei wird Math.LN2 benutzt:

+ +
function getLog2(x) {
+  return Math.log(x) / Math.LN2;
+}
+
+getLog2(256) // 8
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES1')}}{{Spec2('ES1')}}Initiale Definition. Implementiert in JavaScript 1.0
{{SpecName('ES5.1', '#sec-15.8.1.3', 'Math.LN2')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-math.ln2', 'Math.LN2')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-math.ln2', 'Math.LN2')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Math.LN2")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/math/log/index.html b/files/de/web/javascript/reference/global_objects/math/log/index.html new file mode 100644 index 0000000000..d4502d50e2 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/math/log/index.html @@ -0,0 +1,113 @@ +--- +title: Math.log() +slug: Web/JavaScript/Reference/Global_Objects/Math/log +tags: + - JavaScript + - Math + - Method + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Math/log +--- +
{{JSRef}}
+ +

Die Math.log() Funktion gibt den natürlichen Logarithmus (Logarithmus zur Basis {{jsxref("Math.E", "e")}}) einer Zahl zurück. Das bedeutet

+ +

x>0,Math.log(x)=ln(x)=ysodass ey=x\forall x > 0, \mathtt{\operatorname{Math.log}(x)} = \ln(x) = \text{the unique} \; y \; \text{such that} \; e^y = x

+ +

Die JavaScript Function Math.log() ist gleichbedeutend zu der mathematischen Funktion ln(x).

+ +
{{EmbedInteractiveExample("pages/js/math-log.html")}}
+ + + +

Syntax

+ +
Math.log(x)
+ +

Parameter

+ +
+
x
+
Eine Zahl.
+
+ +

Rückgabewert

+ +

Der natürliche Logarithmus (Basis {{jsxref("Math.E", "e")}}) der übergebenen Zahl. Wenn die Zahl negativ ist, wird {{jsxref("NaN")}} zurückgegeben.

+ +

Beschreibung

+ +

Wenn der Wert von x negativ ist, so gibt die Funktion immer {{jsxref("NaN")}} zurück.

+ +

Weil log() eine statische Funktion von Math ist, wird es immer als Math.log() eingesetzt, jedoch nicht als Methode eines erzeugten Math Objektes (Math ist kein Konstruktor).

+ +

Wenn der natürliche Logarithmus von 2 und 10 gebraucht wird, gibt es die Konstanten {{jsxref("Math.LN2")}} und {{jsxref("Math.LN10")}}. Wenn ein Logarithmus zur Basis 2 oder 10 gebracht wird, gibt es die Funktionen {{jsxref("Math.log2()")}} und {{jsxref("Math.log10()")}}. Wenn der Logarithmus zu einer anderen Basis gebraucht wird, benutzt man Math.log(x) / Math.log(andereBasis) wie im Beispiel unten. Manchmal möchte man 1 / Math.log(andereBasis) vorberechnen.

+ +

Beispiele

+ +

Einsatz von Math.log()

+ +
Math.log(-1); // NaN, weil negativ
+Math.log(0);  // -Infinity
+Math.log(1);  // 0
+Math.log(10); // 2.302585092994046
+
+ +

Einsatz von  Math.log() mit unterschiedlichen Basen

+ +

Die folgende Funktion gibt den Logarithmus von y zur Basis x zurück (logx y):

+ +
function getBaseLog(x, y) {
+  return Math.log(y) / Math.log(x);
+}
+
+ +

Wenn getBaseLog(10, 1000) ausgeführt wird, ist das Ergebnis 2.9999999999999996. Diese Zahl ist nah an 3 und kommt durch Rundungsfehler bei Fließkommazahlen.

+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES1')}}{{Spec2('ES1')}}Initiale Definition. Implementiert in JavaScript 1.0.
{{SpecName('ES5.1', '#sec-15.8.2.10', 'Math.log')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-math.log', 'Math.log')}}{{Spec2('ES6')}}
{{SpecName('ESDraft', '#sec-math.log', 'Math.log')}}{{Spec2('ESDraft')}}
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Math.log")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/math/log10/index.html b/files/de/web/javascript/reference/global_objects/math/log10/index.html new file mode 100644 index 0000000000..fad6ea0996 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/math/log10/index.html @@ -0,0 +1,101 @@ +--- +title: Math.log10() +slug: Web/JavaScript/Reference/Global_Objects/Math/log10 +tags: + - ECMAScript 2015 + - JavaScript + - Math + - Method + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Math/log10 +--- +
{{JSRef}}
+ +
Die Math.log10() Funktion gibt den Logarithmus zur Basis 10 zurück. Das bedeutet
+ +

x>0,Math.log10(x)=log10(x)=yso das10y=x\forall x > 0, \mathtt{\operatorname{Math.log10}(x)} = \log_10(x) = \text{the unique} \; y \; \text{such that} \; 10^y = x

+ +
{{EmbedInteractiveExample("pages/js/math-log10.html")}}
+ + + +

Syntax

+ +
Math.log10(x)
+ +

Parameter

+ +
+
x
+
Eine Zahl.
+
+ +

Rückgabewert

+ +

Den Logarithmus zur Basis 10 der gegebenen Zahl. Wenn die Zahl negativ ist, wird {{jsxref("NaN")}} zurückgegeben.

+ +

Beschreibung

+ +

Wenn der Wert von x negativ ist, so gibt die Funktion immer NaN zurück.

+ +

Weil log10() eine statische Funktion von Math ist, wird es immer als Math.log10() eingesetzt, jedoch nicht als Methode eines erzeugten Math Objektes (Math ist kein Konstruktor).

+ +

Diese Funktion ist äquivalent zu Math.log(x) / Math.log(10). Für log10(e) gibt es die Konstante {{jsxref("Math.LOG10E")}} welche 1 / {{jsxref("Math.LN10")}} ist.

+ +

Beispiele

+ +

Einsatz von Math.log10()

+ +
Math.log10(2);      // 0.3010299956639812
+Math.log10(1);      // 0
+Math.log10(0);      // -Infinity
+Math.log10(-2);     // NaN
+Math.log10(100000); // 5
+
+ +

Polyfill

+ +

Diese Funktion kann folgendermaßen emitiert werden:

+ +
Math.log10 = Math.log10 || function(x) {
+  return Math.log(x) * Math.LOG10E;
+};
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES2015', '#sec-math.log10', 'Math.log10')}}{{Spec2('ES2015')}}Initiale Definition.
{{SpecName('ESDraft', '#sec-math.log10', 'Math.log10')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Math.log10")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/math/log10e/index.html b/files/de/web/javascript/reference/global_objects/math/log10e/index.html new file mode 100644 index 0000000000..28d609df71 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/math/log10e/index.html @@ -0,0 +1,85 @@ +--- +title: Math.LOG10E +slug: Web/JavaScript/Reference/Global_Objects/Math/LOG10E +tags: + - JavaScript + - Math + - Property + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Math/LOG10E +--- +
{{JSRef}}
+ +

Die Math.LOG10E Eigenschaft repräsentiert den Logarithmus zur Basis 10 von e, was gerundet 0,434 ist:

+ +

Math.LOG10E=log10(e)0,434\mathtt{\mi{Math.LOG10E}} = \log_10(e) \approx 0,434

+ +
{{EmbedInteractiveExample("pages/js/math-log10e.html")}}
+ + + +

{{js_property_attributes(0,0,0)}}

+ +

Beschreibung

+ +

Weil LOG10E eine statische Eigenschaft von Math ist, kann diese immer über Math.LOG10E erreicht werden, ohne dass ein Objekt erstellt werden muss (Math ist kein Konstruktor).

+ +

Beispiele

+ +

Einsatz von Math.LOG10E

+ +

Die folgende Funktion gibt den Logarithmus zur Basis 10 von e zurück.

+ +
function getLog10e() {
+   return Math.LOG10E
+}
+
+getLog10e() // 0.4342944819032518
+ +

Spezifikationen

+ +

{{Spec2('ES1')}}

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES1')}}{{Spec2('ES1')}}Initiale Definition. Implementiert in JavaScript 1.0.
{{SpecName('ES5.1', '#sec-15.8.1.5', 'Math.LOG10E')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-math.log10e', 'Math.LOG10E')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-math.log10e', 'Math.LOG10E')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Math.LOG10E")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/math/log1p/index.html b/files/de/web/javascript/reference/global_objects/math/log1p/index.html new file mode 100644 index 0000000000..a63eab6b6f --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/math/log1p/index.html @@ -0,0 +1,102 @@ +--- +title: Math.log1p() +slug: Web/JavaScript/Reference/Global_Objects/Math/log1p +tags: + - ECMAScript 2015 + - JavaScript + - Math + - Method + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Math/log1p +--- +
{{JSRef}}
+ +

Die Math.log1p() Funktion gibt den natürlichen Logarithmus (Logarithmus zur Basis {{jsxref("Math.E", "e")}}) von 1 + x zurück. Das bedeutet

+ +

x>-1,Math.log1p(x)=ln(1+x)\forall x > -1, \mathtt{\operatorname{Math.log1p}(x)} = \ln(1 + x)

+ +
{{EmbedInteractiveExample("pages/js/math-log1p.html")}}
+ + + +

Syntax

+ +
Math.log1p(x)
+ +

Parameter

+ +
+
x
+
Eine Zahl.
+
+ +

Rückgabewert

+ +

Den natürliche Logarithmus (zur Basis {{jsxref("Math.E", "e")}}) von 1 plus der gegebenen Zahl. Wenn die Zahl kleiner als -1 ist, wird {{jsxref("NaN")}} zurückgegeben.

+ +

Beschreibung

+ +

Für sehr kleine Zahlen für x kann das Addieren mit 1 zu verlusten in der Präzision führen. Die Zahlen in JavaScript haben eine Genauigkeit von 15 Stellen. 1 + 1e-15 = 1.000000000000001, aber 1 + 1e-16 = 1.000000000000000 und damit exakt 1.0 in dieser Arithmetik, weil Ziffern nach der 15 Stelle gerundet werden.

+ +

Wenn log(1 + x) berechnet wird, bekommt man ein Ergebnis sehr na an x, wenn x klein ist (das ist der Grund, warum es 'natürlicher' Logarithmus heißt). Wenn Math.log(1 + 1.1111111111e-15) berechnet wird sollte man ein Ergebnis nah an 1.1111111111e-15 bekommt. Stattdessen berechnet man den Logarithmus von 1.00000000000000111022 (die Rundung geschieht im Binärsystem und ist manchmal unschön) un erhält das Ergebnis 1.11022...e-15 mit nur 3 korrekten Stellen. Wenn stattdessen Math.log1p(1.1111111111e-15) berechnet wird, bekommt man ein besseres Ergebnis von 1.1111111110999995e-15 mit 15 korrekten Stellen in der Präzision (aktuell 16 in diesem Fall).

+ +

Wenn der Wert von x kleiner als -1 ist, gibt die Funktion immer den Wert {{jsxref("NaN")}} zurück.

+ +

Weil log1p() eine statische Funktion von Math ist, wird es immer als Math.log1p() eingesetzt, jedoch nicht als Methode eines erzeugten Math Objektes (Math ist kein Konstruktor).

+ +

Beispiele

+ +

Einsatz von Math.log1p()

+ +
Math.log1p(1);  // 0.6931471805599453
+Math.log1p(0);  // 0
+Math.log1p(-1); // -Infinity
+Math.log1p(-2); // NaN
+
+ +

Polyfill

+ +

Diese Funktion kann folgendermaßen emuliert werden:

+ +
Math.log1p = Math.log1p || function(x) {
+  return Math.log(1 + x);
+};
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES2015', '#sec-math.log1p', 'Math.log1p')}}{{Spec2('ES2015')}}Initiale Definition.
{{SpecName('ESDraft', '#sec-math.log1p', 'Math.log1p')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Math.log1p")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/math/log2/index.html b/files/de/web/javascript/reference/global_objects/math/log2/index.html new file mode 100644 index 0000000000..de98c13128 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/math/log2/index.html @@ -0,0 +1,101 @@ +--- +title: Math.log2() +slug: Web/JavaScript/Reference/Global_Objects/Math/log2 +tags: + - ECMAScript 2015 + - JavaScript + - Math + - Method + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Math/log2 +--- +
{{JSRef}}
+ +

Die Math.log2() Funktion gibt den Logarithmus zur Basis 2 zurück. Das bedeutet

+ +

x>0,Math.log2(x)=log2(x)=yso das2y=x\forall x > 0, \mathtt{\operatorname{Math.log2}(x)} = \log_2(x) = \text{the unique} \; y \; \text{such that} \; 2^y = x

+ +
{{EmbedInteractiveExample("pages/js/math-log2.html")}}
+ + + +

Syntax

+ +
Math.log2(x)
+ +

Parameters

+ +
+
x
+
Eine Zahl.
+
+ +

Rückgabewert

+ +

Den Logarithmus zur Basis 2 der gegebenen Zahl. Wenn die Zahl negativ ist, wird {{jsxref("NaN")}} zurückgegeben.

+ +

Beschreibung

+ +

Wenn der Wert von x negativ ist, so gibt die Funktion immer NaN zurück.

+ +

Weil log2() eine statische Funktion von Math ist, wird es immer als Math.log2() eingesetzt, jedoch nicht als Methode eines erzeugten Math Objektes (Math ist kein Konstruktor).

+ +

Diese Funktion ist äquivalent zu Math.log(x) / Math.log(2). Für log2(e) gibt es die Konstante {{jsxref("Math.LOG2E")}} welche 1 / {{jsxref("Math.LN2")}} ist.

+ +

Beispiele

+ +

Einsatz von Math.log2()

+ +
Math.log2(3);    // 1.584962500721156
+Math.log2(2);    // 1
+Math.log2(1);    // 0
+Math.log2(0);    // -Infinity
+Math.log2(-2);   // NaN
+Math.log2(1024); // 10
+
+ +

Polyfill

+ +

Diese Funktion kann mit folgender Funktion emitiert werden. Es kann sein, dass diese Funktion bei einigen eingabewerten ungenau (ungefähr 1 << 29) ist. Schachtel die Funktion in {{jsxref("Math.round()")}} wenn mit Bitmasken gearbeitet wird.

+ +
Math.log2 = Math.log2 || function(x) {
+  return Math.log(x) * Math.LOG2E;
+};
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES2015', '#sec-math.log2', 'Math.log2')}}{{Spec2('ES2015')}}Initiale Definition.
{{SpecName('ESDraft', '#sec-math.log2', 'Math.log2')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Math.log2")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/math/log2e/index.html b/files/de/web/javascript/reference/global_objects/math/log2e/index.html new file mode 100644 index 0000000000..2f302bf4a2 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/math/log2e/index.html @@ -0,0 +1,83 @@ +--- +title: Math.LOG2E +slug: Web/JavaScript/Reference/Global_Objects/Math/LOG2E +tags: + - JavaScript + - Math + - Property + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Math/LOG2E +--- +
{{JSRef}}
+ +

Die Math.LOG2E Eigenschaft repräsentiert den Logarithmus zur Basis 2 von e, was gerundet 1,443 ist:

+ +

Math.LOG2E=log2(e)1,442\mathtt{\mi{Math.LOG2E}} = \log_2(e) \approx 1,442

+ +
{{EmbedInteractiveExample("pages/js/math-log2e.html")}}
+ + + +
{{js_property_attributes(0,0,0)}}
+ +

Beschreibung

+ +

Weil LOG2E eine statische Eigenschaft von Math ist, kann diese immer über Math.LOG2E erreicht werden, ohne dass ein Objekt erstellt werden muss (Math ist kein Konstruktor).

+ +

Beispiele

+ +

Einsatz von Math.LOG2E

+ +

Die folgende Funktion gibt den Logarithmus zur Basis 2 von e zurück.

+ +
function getLog2e() {
+   return Math.LOG2E
+}
+
+getLog2e() // 1.4426950408889634
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES1')}}{{Spec2('ES1')}}Initiale Definition. Implementiert in JavaScript 1.0.
{{SpecName('ES5.1', '#sec-15.8.1.4', 'Math.LOG2E')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-math.log2e', 'Math.LOG2E')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-math.log2e', 'Math.LOG2E')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Math.LOG2E")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/math/math.random/index.html b/files/de/web/javascript/reference/global_objects/math/math.random/index.html new file mode 100644 index 0000000000..6097229c1a --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/math/math.random/index.html @@ -0,0 +1,112 @@ +--- +title: Math.random() +slug: Web/JavaScript/Reference/Global_Objects/Math/math.random +tags: + - JavaScript + - Math + - Method + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Math/random +--- +
{{JSRef}}
+ +

Die Math.random() Funktion gibt eine Pseudozufallszahl in Form einer Gleitkommazahl im Bereich von 0 - 1 (0 inklusiv, aber 1 nicht) annähernd gleichverteilt zurück, die dann zur gewünschten Größe skaliert werden kann. Die Zufallszahl wird von der Implementierung bestimmt; sie kann nicht vom Benutzer ausgewählt oder zurückgesetzt werden.

+ +
{{EmbedInteractiveExample("pages/js/math-random.html")}}
+ +
+

Math.random() stellt keine kryprografisch sicheren Zufallszahlen bereit. Verwenden Sie sie auf keinen Fall für etwas, das  in Verbindung mit Sicherheit steht. Benutzen Sie stattdessen die Web Crypto API, genauer gesagt die {{domxref("RandomSource.getRandomValues()", "window.crypto.getRandomValues()")}}-Methode.

+
+ +

Syntax

+ +
Math.random()
+ +

Rückgabewert

+ +

Eine pseudozufällige Gleitkommazahl zwischen 0 (inklusiv) und 1 (exklusiv).

+ +

Beispiele

+ +

Beachten Sie, dass, weil Zahlen in JavaScript IEEE 754 Gleitkommazahlen sind, mit dem Verhalten zur nächsten geraden Zahl zu runden, die Bereiche für die folgenden Funktionen - mit Ausnahme für Math.random() selbst - nicht exakt sind.
+ Wenn extrem große Grenzen
(253 oder höher) gewählt werden, ist es in äußerst seltenen Fällen möglich, dass die eigentlich ausgeschlossenen Obergrenzen mit eingerechnet werden.

+ +

Erzeugt eine Zufallszahl zwischen 0 (inklusive) und 1 (exklusive)

+ +
function getRandom() {
+  return Math.random();
+}
+
+ +

Erzeugt eine Zufallszahl zwischen zwei Zahlen

+ +

Das Beispiel gibt eine zufällige Zahl zwischen zwei Zahlen zurück. Der Rückgabewert is größer oder gleich min und kleiner als max.

+ +
function getRandomArbitrary(min, max) {
+  return Math.random() * (max - min) + min;
+}
+
+ +

Erzeugt eine ganze Zufallszahl zwischen zwei Zahlen

+ +

Das Beispiel gibt eine zufällige ganze Zahl zwischen den spezifizierten Werten zurück. Der Wert ist nicht kleiner als min (oder der nächstgrößeren ganzen Zahl von min, wenn min keine ganze Zahl ist) und ist kleiner als  (aber nicht gleich) max.

+ +
function getRandomInt(min, max) {
+  min = Math.ceil(min);
+  max = Math.floor(max);
+  return Math.floor(Math.random() * (max - min)) + min;
+}
+
+ +
+

Es könnte verlockend sein, Math.round() zu verwenden, um das Ergebnis zu erreichen, aber das würde dazu führen, dass die zufälligen Zahlen einer ungleichmäßigen Verteilung folgen würden, die möglicherweise nicht den geforderten Bedürfnisse entsprechen würde.

+
+ +

Erzeugt eine ganze Zufallszahl zwischen zwei Zahlen (inklusiv)

+ +

Die obere getRandomInt() Funktion hat ein inklusives Minimum und ein exklusives Maximum. Was ist, wenn sowohl das Minimum als auch das Maximum inklusive sein sollen? Die getRandomIntInclusive() Funktion ermöglicht dieses:

+ +
function getRandomIntInclusive(min, max) {
+  min = Math.ceil(min);
+  max = Math.floor(max);
+  return Math.floor(Math.random() * (max - min +1)) + min;
+}
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES1')}}{{Spec2('ES1')}}Initiale Definition. JavaScript 1.0 (nur auf UNIX) / JavaScript 1.1 (auf allen Plattformen).
{{SpecName('ES5.1', '#sec-15.8.2.14', 'Math.random')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-math.random', 'Math.random')}}{{Spec2('ES6')}}
{{SpecName('ESDraft', '#sec-math.random', 'Math.random')}}{{Spec2('ESDraft')}}
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Math.random")}}

diff --git a/files/de/web/javascript/reference/global_objects/math/max/index.html b/files/de/web/javascript/reference/global_objects/math/max/index.html new file mode 100644 index 0000000000..e1ac3eba01 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/math/max/index.html @@ -0,0 +1,118 @@ +--- +title: Math.max() +slug: Web/JavaScript/Reference/Global_Objects/Math/max +tags: + - JavaScript + - Math + - Method + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Math/max +--- +
{{JSRef}}
+ +

Die Funktion Math.max() gibt die größte von 0 oder mehr Zahlen zurück.

+ +
{{EmbedInteractiveExample("pages/js/math-max.html")}}
+ + + +

Syntax

+ +
Math.max([wert1[, wert2[, ...]]])
+ +

Parameter

+ +
+
wert1, wert2, ...
+
Zahlen.
+
+ +

Rückgabewert

+ +

Die größte der übergebenen Zahlen. Wenn mindestens ein Parameter nicht zu einer Zahl konvertiert werden kann, wird {{jsxref("NaN")}} zurückgegeben.

+ +

Beschreibung

+ +

Weil max() eine statische Methode von Math ist, kann nur Math.max() verwendet werden. Eine Verwendung mit Math als instanziertem Objekt ist nicht möglich (Math ist kein constructor).

+ +

Wenn keine Argumente übergeben wurden ist der Rückgabewert -{{jsxref("Infinity")}}.

+ +

Wenn mindestens eines der Argumente nicht in eine Zahl umgewandelt werden kann, ist der Rückgabewert {{jsxref("NaN")}}.

+ +

Beispiele

+ +

Einsatz von Math.max()

+ +
Math.max(10, 20);   //  20
+Math.max(-10, -20); // -10
+Math.max(-10, 20);  //  20
+
+ +

Das größte Element in einem Array ermitteln

+ +

{{jsxref("Array.prototype.reduce", "Array.reduce()")}} kann ebenfalls benutzt werden, um das Maximum eines Arrays zu erhalten, indem jeder Wert verglichen wird.

+ +
var arr = [1, 2, 3];
+var max = arr.reduce(function(a, b) {
+  return Math.max(a, b);
+});
+
+ +

Die folgende Funktion benutzt {{jsxref("Function.prototype.apply()")}}, um den maximalen Wert eines numerischen Arrays zu finden. getMaxOfArray([1, 2, 3]) entspricht Math.max(1, 2, 3), aber getMaxOfArray() kann programmatisch erstellte Arrays jeder Art annehmen.

+ +
function getMaxOfArray(numArray) {
+  return Math.max.apply(null, numArray);
+}
+
+ +

Alternativ ist es mit dem neuen {{jsxref("Operators/Spread_operator", "spread Operator")}} viel einfacher, den maximalen Wert eines Arrays herauszufinden.

+ +
var arr = [1, 2, 3];
+var max = Math.max(...arr);
+
+ +

Bei dem Einsatz des {{jsxref("Operators/Spread_operator", "spread Operator")}} oder apply kann der Aufruf fehlschlagen oder ein ungültiges Ergebnis herauskommen, wenn das Array zu viele Elemente hat. Das liegt daran, dass versucht wird die Elemente des Arrays als Parameter einer Funktion zu übergeben. Siehe für mehr Details im Abschnitt Einsatz von apply und standard Funktionen nach. Die reduce Lösung hat dieses Problem nicht.

+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES1')}}{{Spec2('ES1')}}Initiale Definition. In JavaScript 1.0 implementiert.
{{SpecName('ES5.1', '#sec-15.8.2.11', 'Math.max')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-math.max', 'Math.max')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-math.max', 'Math.max')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Math.max")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/math/min/index.html b/files/de/web/javascript/reference/global_objects/math/min/index.html new file mode 100644 index 0000000000..9cd666fda3 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/math/min/index.html @@ -0,0 +1,112 @@ +--- +title: Math.min() +slug: Web/JavaScript/Reference/Global_Objects/Math/min +tags: + - JavaScript + - Math + - Method + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Math/min +--- +
{{JSRef}}
+ +

Die Math.min() Funktion gibt den Wert der kleinsten übergebenen Zahl zurück oder {{jsxref("NaN")}}, wenn ein Parameter keine Zahl ist und auch nicht in eine Zahl konvertiert werden kann.

+ +
{{EmbedInteractiveExample("pages/js/math-min.html")}}
+ + + +

Syntax

+ +
Math.min([value1[, value2[, ...]]])
+ +

Parameter

+ +
+
value1, value2, ...
+
Zahlen.
+
+ +

Rückgabewert

+ +

Die kleinste der übergebenen Zahlen. Wenn nur ein Parameter nicht zu einer Zahl konvertiert werden kann, wird {{jsxref("NaN")}} zurückgegeben.

+ +

Beschreibung

+ +

Da min() eine statische Eigenschaft von Math ist, muss immer Math.min() genutzt werden, ohne dass ein Math-Objekt erstellt wird (Math ist kein Konstruktor).

+ +

Ohne Übergabeparameter wird {{jsxref("Infinity")}} zurückgegeben.

+ +

Wenn mindestens ein Übergabeparameter nicht in eine Zahl konvertiert werden kann wird {{jsxref("NaN")}} zurückgegeben.

+ +

Beispiele

+ +

Einsatz von Math.min()

+ +

Dies findet den kleinsten Wert aus x und y und weist diesen z zu.

+ +
var x = 10, y = -20;
+var z = Math.min(x, y);
+
+ +

Wert mittels Math.min() begrenzen

+ +

Math.min() wird oftmals verwendet um einen Wert so zu begrenzen, dass dieser nicht größer als ein gesetztes Limit werden kann. So kann dies

+ +
var x = f(foo);
+
+if (x > limit) {
+  x = limit;
+}
+
+ +

auch folgendermaßen formuliert werden

+ +
var x = Math.min(f(foo), limit);
+
+ +

Analog kann {{jsxref("Math.max()")}} verwendet werden um einen Mindestwert zu realisieren.

+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES1')}}{{Spec2('ES1')}}Initiale Definition. Implementiert in JavaScript 1.0.
{{SpecName('ES5.1', '#sec-15.8.2.12', 'Math.min')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-math.min', 'Math.min')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-math.min', 'Math.min')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Math.min")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/math/pi/index.html b/files/de/web/javascript/reference/global_objects/math/pi/index.html new file mode 100644 index 0000000000..4a07aadc15 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/math/pi/index.html @@ -0,0 +1,81 @@ +--- +title: Math.PI +slug: Web/JavaScript/Reference/Global_Objects/Math/PI +tags: + - JavaScript + - Math + - Property + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Math/PI +--- +
{{JSRef}}
+ +

Die Math.PI Eigenschaft repräsentiert die Kreiszahl Pi, welche als Verhältnis zwischen Kreisumfang und Durchmesser definiert ist und gerundet die Zahl 3,14159 ist.

+ +

Math.PI=π3,14159\mathtt{\mi{Math.PI}} = \pi \approx 3,14159

+ +
{{EmbedInteractiveExample("pages/js/math-pi.html")}}
+ + + +
{{js_property_attributes(0,0,0)}}
+ +

Beschreibung

+ +

Weil PI eine statische Eigenschaft von Math ist, muss immer Math.PI genutzt werden, ohne dass ein Math Objekt erstellt wird (Math ist kein Konstruktor).

+ +

Beispiele

+ +

Einsatz von Math.PI

+ +

Die folgende Funktion benutzt Math.PI, um aus einem Radius den Umfrang eines Kreises zu berechnen:

+ +
function calculateCircumference(radius) {
+  return Math.PI * (radius + radius);
+}
+
+calculateCircumference(1);  // 6.283185307179586
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES1')}}{{Spec2('ES1')}}Initiale Definition. Implementiert in JavaScript 1.0.
{{SpecName('ES5.1', '#sec-15.8.1.6', 'Math.PI')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-math.pi', 'Math.PI')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-math.pi', 'Math.PI')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Math.PI")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/math/pow/index.html b/files/de/web/javascript/reference/global_objects/math/pow/index.html new file mode 100644 index 0000000000..5966acd81f --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/math/pow/index.html @@ -0,0 +1,113 @@ +--- +title: Math.pow() +slug: Web/JavaScript/Reference/Global_Objects/Math/pow +tags: + - JavaScript + - Math + - Method + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Math/pow +--- +
{{JSRef}}
+ +

Die Funktion Math.pow() gibt die Potenz der Basis mit dem Exponenten an (BasisExponent)

+ +
{{EmbedInteractiveExample("pages/js/math-pow.html")}}
+ + + +

Syntax

+ +
Math.pow(Basis, Exponent)
+ +

Parameter

+ +
+
Basis
+
Basis (auch: die Grundzahl).
+
Exponent
+
der Exponent (auch: die Hochzahl).
+
+ +

Rückgabewert

+ +

Eine Zahl, die die Basis potenziert mit dem Exponenten repräsentiert.

+ +

Beschreibung

+ +

Weil pow() eine statische Funktion von Math ist, wird es immer als Math.pow() eingesetzt, jedoch nicht als Methode eines erzeugten Math Objektes (Math ist kein Konstruktor).

+ +

Beispiele

+ +

Benutzung von Math.pow()

+ +
// einfach
+Math.pow(7, 2);    // 49
+Math.pow(7, 3);    // 343
+Math.pow(2, 10);   // 1024
+// Brüche als Exponenten
+Math.pow(4, 0.5);  // 2 (Wurzel aus 4)
+Math.pow(8, 1/3);  // 2 (Kubikwurzel aus 8)
+Math.pow(2, 0.5);  // 1.4142135623730951 (Wurzel aus 2)
+Math.pow(2, 1/3);  // 1.2599210498948732 (Kubikwurzel aus 2)
+// Negative Exponenten
+Math.pow(7, -2);   // 0.02040816326530612 (1/49)
+Math.pow(8, -1/3); // 0.5
+// Negative Basis
+Math.pow(-7, 2);   // 49 (Das Quadrat ist positiv)
+Math.pow(-7, 3);   // -343 (kann negativ sein)
+Math.pow(-7, 0.5); // NaN (negative Zahlen haben keine Quadratwurzel)
+// auch wegen Grenzen bei der Gleitkomma Berechnung,
+// Negative Basis mit Bruch als Exponent gibt immer NaN zurück
+Math.pow(-7, 1/3); // NaN
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES1')}}{{Spec2('ES1')}} +

Initiale Deffinition, Implementiert in JavaScript 1.0.

+
{{SpecName('ES5.1', '#sec-15.8.2.13', 'Math.pow')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-math.pow', 'Math.pow')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-math.pow', 'Math.pow')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Math.pow")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/math/round/index.html b/files/de/web/javascript/reference/global_objects/math/round/index.html new file mode 100644 index 0000000000..8e009bf6cb --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/math/round/index.html @@ -0,0 +1,99 @@ +--- +title: Math.round() +slug: Web/JavaScript/Reference/Global_Objects/Math/round +tags: + - JavaScript + - Math + - Method + - Number + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Math/round +--- +

{{JSRef}}
+ Die Math.round() Funktion gibt die nächstgelegenen Ganzzahl einer Zahl zurück.

+ +
{{EmbedInteractiveExample("pages/js/math-round.html")}}
+ + + +

Syntax

+ +
Math.round(x)
+ +

Parameter

+ +
+
x
+
Eine Zahl.
+
+ +

Rückgabewert

+ +

Den Wert der gegebenen Zahl, der zur nächsten ganzen Zahl gerundet wird.

+ +

Beschreibung

+ +

Wenn der Nachkommateil des Argumentes größer als 0.5 ist, wird das Argument zur nächsten ganzen Zahl, deren Absolutwert größer ist, gerundet. Wenn der Nachkommateil kleiner als 0.5 ist, wird auf die nächsten ganzen Zahl, deren Absolutwert kleiner ist, gerundet. Wenn der Nachkommateil genau 0.5 ist, wird auf die nächst größere ganze Zahl aufgerundet (in Richtung +∞). Das Verhalten bei 0.5 ist anders als bei vielen anderen Programmiersprachen, welche in der Regel zur nächsten ganzen Zahl, welche weiter entfernt von 0 liegt, runden (das kann zu unterschiedlichen Ergebnissen bei negativen Zahlen mit einem exakten Nachkommateil von 0.5 führen).

+ +

Weil round() eine statische Methode von Math ist, benutzt man als Aufruf immer Math.round() und nicht in dem man zunächst ein Math-Objekt erzeugt um anschliessend die round()-Methode aufzurufen (Math ist kein Konstruktor).

+ +

Beispiele

+ +
Math.round(20.49);  // 20
+Math.round(20.5);   // 21
+Math.round(42);     // 42
+Math.round(-20.5);  // -20
+Math.round(-20.51); // -21
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
ECMAScript 1st Edition.{{Spec2('ES1')}}Initiale Definition. Implementiert in JavaScript 1.0.
{{SpecName('ES5.1', '#sec-15.8.2.15', 'Math.round')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-math.round', 'Math.round')}}{{Spec2('ES6')}} +

 

+
{{SpecName('ESDraft', '#sec-math.round', 'Math.round')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Math.round")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/math/sign/index.html b/files/de/web/javascript/reference/global_objects/math/sign/index.html new file mode 100644 index 0000000000..26a4085eb1 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/math/sign/index.html @@ -0,0 +1,115 @@ +--- +title: Math.sign() +slug: Web/JavaScript/Reference/Global_Objects/Math/sign +tags: + - JavaScript + - Math + - Method + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Math/sign +--- +
{{JSRef}}
+ +

Die Math.sign() Funktion gibt das Vorzeichen einer Zahl zurück, welches angibt, ob eine Zahl positiv, negativ oder 0 ist.

+ +
{{EmbedInteractiveExample("pages/js/math-sign.html")}}
+ + + +

Syntax

+ +
Math.sign(x)
+ +

Parameter

+ +
+
x
+
Eine Zahl.
+
+ +

Rückgabewert

+ +

Eine Zahl, die das Vorzeichen des übergebenen Wertes repräsentiert. Wenn der Parameter eine positive Zahl ist, eine negative Zahl ist oder eine Null (0) ist, wird die Funktion 1, -1, 0 oder -0 zurückgeben. Andernfalls wird {{jsxref("NaN")}} zurückgegeben.

+ +

Beschreibung

+ +

Weil sign() eine statische Funktion von Math ist, wird sie immer als Math.sign() eingesetzt, jedoch nicht als Methode eines erzeugten Math Objektes (Math ist kein Konstruktor).

+ +

Diese Funktion hat die 5 möglichen Rückgabewerte 1, -1, 0, -0 und NaN, welche "positive Zahlen", "negative Zahlen", "positiv 0", "negativ 0" und {{jsxref("NaN")}} repräsentieren.

+ +

Der Übergebeparameter dieser Funktion wird implizit zu einem number-Type konvertiert.

+ +

Beispiele

+ +

Einsatz von Math.sign()

+ +
Math.sign(3);     //  1
+Math.sign(-3);    // -1
+Math.sign('-3');  // -1
+Math.sign(0);     //  0
+Math.sign(-0);    // -0
+Math.sign(NaN);   // NaN
+Math.sign('foo'); // NaN
+Math.sign();      // NaN
+
+ +

Polyfill

+ +
if (!Math.sign) {
+  Math.sign = function(x) {
+    // If x is NaN, the result is NaN.
+    // If x is -0, the result is -0.
+    // If x is +0, the result is +0.
+    // If x is negative and not -0, the result is -1.
+    // If x is positive and not +0, the result is +1.
+    return ((x > 0) - (x < 0)) || +x;
+    // A more aesthetical persuado-representation is shown below
+    //
+    // ( (x > 0) ? 0 : 1 )  // if x is negative then negative one
+    //          +           // else (because you cant be both - and +)
+    // ( (x < 0) ? 0 : -1 ) // if x is positive then positive one
+    //         ||           // if x is 0, -0, or NaN, or not a number,
+    //         +x           // Then the result will be x, (or) if x is
+    //                      // not a number, then x converts to number
+  };
+}
+ +

In diesem Polyfill ist keine weitere Typumwandlung nötig, um aus (x > 0) oder (x < 0) Zahlen zu machen, weil das Subtrahieren voneinander eine Typkonvertierung von boolean zu Zahlen erzwingt.

+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + +
SpezifikationStatusComment
{{SpecName('ES6', '#sec-math.sign', 'Math.sign')}}{{Spec2('ES6')}}Initiale Definition.
{{SpecName('ESDraft', '#sec-math.sign', 'Math.sign')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Math.sign")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/math/sin/index.html b/files/de/web/javascript/reference/global_objects/math/sin/index.html new file mode 100644 index 0000000000..69a7a2f559 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/math/sin/index.html @@ -0,0 +1,97 @@ +--- +title: Math.sin() +slug: Web/JavaScript/Reference/Global_Objects/Math/sin +tags: + - JavaScript + - Math + - Meth + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Math/sin +--- +
{{JSRef}}
+ +

Die Math.sin() Funktion gibt den Sinus einer Zahl zurück.

+ +
{{EmbedInteractiveExample("pages/js/math-sin.html")}}
+ + + +

Syntax

+ +
Math.sin(x)
+ +

Parameter

+ +
+
x
+
Eine Zahl im Bogenmaß (rad).
+
+ +

Rückgabewert

+ +

Den Sinus der übergebenen Zahl.

+ +

Beschreibung

+ +

Die Math.sin() Funktion gibt einen nummerischen Wert zwischen -1 und 1 zurück. Dieser repräsentiert den Sinus des Winkels.

+ +

Weil sin() eine statische Funktion von Math ist, wird es immer als Math.sin() eingesetzt, jedoch nicht als Methode eines erzeugten Math Objektes (Math ist kein Konstruktor).

+ +

Beispiele

+ +

Einsatz von Math.sin()

+ +
Math.sin(0);           // 0
+Math.sin(1);           // 0.8414709848078965
+
+Math.sin(Math.PI / 2); // 1
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('ES1')}}{{Spec2('ES1')}}Initiale Definition. Implementiert in JavaScript 1.0.
{{SpecName('ES5.1', '#sec-15.8.2.16', 'Math.sin')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-math.sin', 'Math.sin')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-math.sin', 'Math.sin')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Math.sin")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/math/sinh/index.html b/files/de/web/javascript/reference/global_objects/math/sinh/index.html new file mode 100644 index 0000000000..99e8d1e3c6 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/math/sinh/index.html @@ -0,0 +1,102 @@ +--- +title: Math.sinh() +slug: Web/JavaScript/Reference/Global_Objects/Math/sinh +tags: + - ECMAScript 2015 + - JavaScript + - Math + - Method + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Math/sinh +--- +
{{JSRef}}
+ +

Die Math.sinh() Funktion gibt den Sinus Hyperbolicus einer Zahl zurück. Dieser kann mit dem Einsatz der {{jsxref("Math.E", "Eulerschen Zahl", "", 1)}} folgendermaßen berechnet werden:

+ +

Math.sinh(x)=ex-e-x2\mathtt{\operatorname{Math.sinh(x)}} = \frac{e^x - e^{-x}}{2}

+ +
{{EmbedInteractiveExample("pages/js/math-sinh.html")}}
+ + + +

Syntax

+ +
Math.sinh(x)
+ +

Parameter

+ +
+
x
+
Eine Zahl.
+
+ +

Rückgabewert

+ +

Den Sinus Hyperbolicus der übergebenen Zahl.

+ +

Beschreibung

+ +

Weil sinh() eine statische Funktion von Math ist, wird es immer als Math.sinh() eingesetzt, jedoch nicht als Methode eines erzeugten Math Objektes (Math ist kein Konstruktor).

+ +

Beispiele

+ +

Einsatz von Math.sinh()

+ +
Math.sinh(0); // 0
+Math.sinh(1); // 1.1752011936438014
+
+ +

Polyfill

+ +

Diese Funktion kann mit Hilfe der Funktion {{jsxref("Math.exp()")}} emuliert werden:

+ +
Math.sinh = Math.sinh || function(x) {
+  return (Math.exp(x) - Math.exp(-x)) / 2;
+}
+
+ +

Oder nur mit einem Aufruf der {{jsxref("Math.exp()")}} Funktion:

+ +
Math.sinh = Math.sinh || function(x) {
+  var y = Math.exp(x);
+  return (y - 1 / y) / 2;
+}
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES2015', '#sec-math.sinh', 'Math.sinh')}}{{Spec2('ES2015')}}Initiale Definition.
{{SpecName('ESDraft', '#sec-math.sinh', 'Math.sinh')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Math.sinh")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/math/sqrt/index.html b/files/de/web/javascript/reference/global_objects/math/sqrt/index.html new file mode 100644 index 0000000000..a7ad903569 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/math/sqrt/index.html @@ -0,0 +1,99 @@ +--- +title: Math.sqrt() +slug: Web/JavaScript/Reference/Global_Objects/Math/sqrt +tags: + - JavaScript + - Math + - Method + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Math/sqrt +--- +
{{JSRef}}
+ +

Die Math.sqrt() Funktion gibt die Quadratwurzel einer Zahl zurück. Diese Ist Mathematisch folgendermaßen definiert:

+ +

x0,Math.sqrt(x)=x=einy0so dasy2=x\forall x \geq 0, \mathtt{Math.sqrt(x)} = \sqrt{x} = \text{the unique} \; y \geq 0 \; \text{such that} \; y^2 = x

+ +
{{EmbedInteractiveExample("pages/js/math-sqrt.html")}}
+ + + +

Syntax

+ +
Math.sqrt(x)
+ +

Parameter

+ +
+
x
+
Eine Zahl.
+
+ +

Rückgabewert

+ +

Die Quadratwurzel der übergebenen Zahl. Wenn der Parameter negativ ist, wird {{jsxref("NaN")}} zurückgegeben.

+ +

Beschreibung

+ +

Wenn der Wert von x negativ ist, gibt Math.sqrt() {{jsxref("NaN")}} zurück.

+ +

Weil sqrt() eine statische Funktion von Math ist, wird es immer als Math.sqrt() eingesetzt, jedoch nicht als Methode eines erzeugten Math Objektes (Math ist kein Konstruktor).

+ +

Beispiele

+ +

Einsatz von Math.sqrt()

+ +
Math.sqrt(9); // 3
+Math.sqrt(2); // 1.414213562373095
+
+Math.sqrt(1);  // 1
+Math.sqrt(0);  // 0
+Math.sqrt(-1); // NaN
+Math.sqrt(-0); // -0
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES1')}}{{Spec2('ES1')}}Initiale Definition. Implementiert in JavaScript 1.0.
{{SpecName('ES5.1', '#sec-15.8.2.17', 'Math.sqrt')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-math.sqrt', 'Math.sqrt')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-math.sqrt', 'Math.sqrt')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Math.sqrt")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/math/sqrt1_2/index.html b/files/de/web/javascript/reference/global_objects/math/sqrt1_2/index.html new file mode 100644 index 0000000000..19e1a24f4d --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/math/sqrt1_2/index.html @@ -0,0 +1,84 @@ +--- +title: Math.SQRT1_2 +slug: Web/JavaScript/Reference/Global_Objects/Math/SQRT1_2 +tags: + - JavaScript + - Math + - Property + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Math/SQRT1_2 +--- +
{{JSRef}}
+ +

Die Math.SQRT1_2 Eigenschaft repräsentiert die Quadratwurzel aus 1/2, welche gerundet 0,707 ist:

+ +

Math.SQRT1_2=12=120,707\mathtt{\mi{Math.SQRT1_2}} = \sqrt{\frac{1}{2}} = \frac{1}{\sqrt{2}} \approx 0,707

+ +
{{EmbedInteractiveExample("pages/js/math-sqrt1_2.html")}}
+ + + +
{{js_property_attributes(0,0,0)}}
+ +

Beschreibung

+ +

Weil SQRT1_2 eine statische Eigenschaft von Math ist, muss immer Math.SQRT1_2 genutzt werden, ohne dass ein Math Objekt erstellt wird (Math ist kein Konstruktor).

+ +

Beispiele

+ +

Einsatz von Math.SQRT1_2

+ +

Die folgende Funktion gibt die Quadratwurzel aus 1/2 zurück:

+ +
function getRoot1_2() {
+   return Math.SQRT1_2
+}
+
+getRoot1_2() // 0.7071067811865476
+ +

+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES1')}}{{Spec2('ES1')}}Initiale Definition. Implementiert in JavaScript 1.0.
{{SpecName('ES5.1', '#sec-15.8.1.7', 'Math.SQRT1_2')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-math.sqrt1_2', 'Math.SQRT1_2')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-math.sqrt1_2', 'Math.SQRT1_2')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Math.SQRT1_2")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/math/sqrt2/index.html b/files/de/web/javascript/reference/global_objects/math/sqrt2/index.html new file mode 100644 index 0000000000..14b748c555 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/math/sqrt2/index.html @@ -0,0 +1,82 @@ +--- +title: Math.SQRT2 +slug: Web/JavaScript/Reference/Global_Objects/Math/SQRT2 +tags: + - JavaScript + - Math + - Property + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Math/SQRT2 +--- +
{{JSRef}}
+ +

Die Math.SQRT2 Eigenschaft repräsentiert die Quadratwurzel aus 2, welche gerundet 1,414 ist:

+ +

Math.SQRT2=21,414\mathtt{\mi{Math.SQRT2}} = \sqrt{2} \approx 1,414

+ +
{{EmbedInteractiveExample("pages/js/math-sqrt2.html")}}
+ + + +
{{js_property_attributes(0,0,0)}}
+ +

Beschreibung

+ +

Weil SQRT2 eine statische Eigenschaft von Math ist, muss immer Math.SQRT2 genutzt werden, ohne dass ein Math-Objekt erstellt wird (Math ist kein Konstruktor).

+ +

Beispiele

+ +

Einsatz von Math.SQRT2

+ +

Die folgende Funktion gibt die Quadratwurzel aus 2 zurück:

+ +
function getRoot2() {
+   return Math.SQRT2
+}
+
+getRoot2() // 1.4142135623730951
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES1')}}{{Spec2('ES1')}}Initiale Definition. Implementiert in JavaScript 1.0.
{{SpecName('ES5.1', '#sec-15.8.1.8', 'Math.SQRT2')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-math.sqrt2', 'Math.SQRT2')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-math.sqrt2', 'Math.SQRT2')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Math.SQRT2")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/math/tan/index.html b/files/de/web/javascript/reference/global_objects/math/tan/index.html new file mode 100644 index 0000000000..92102e3ae2 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/math/tan/index.html @@ -0,0 +1,102 @@ +--- +title: Math.tan() +slug: Web/JavaScript/Reference/Global_Objects/Math/tan +tags: + - JavaScript + - Math + - Method + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Math/tan +--- +
{{JSRef}}
+ +

Die Math.tan() Funktion gibt den Tangens einer Zahl.

+ +
{{EmbedInteractiveExample("pages/js/math-tan.html")}}
+ + + +

Syntax

+ +
Math.tan(x)
+ +

Parameter

+ +
+
x
+
Eine Zahl im Winkelmaß (rad).
+
+ +

Rückgabewert

+ +

Den Tangens der übergebenen Zahl.

+ +

Beschreibung

+ +

Die Math.tan() Funktion gibt einen numerischen Wert zurück, welcher den Tangens eines Winkels repräsentiert.

+ +

Weil tan() eine statische Funktion von Math ist, wird es immer als Math.tan() eingesetzt, jedoch nicht als Methode eines erzeugten Math Objektes (Math ist kein Konstruktor).

+ +

Beispiele

+ +

Einsatz von Math.tan()

+ +
Math.tan(1); // 1.5574077246549023
+
+ +

Weil die Math.tan() Funktion Werte im Winkelmaß erwartet, es aber oftmals einfacher ist mit Winkeln zu rechnen, nutzt die folgende Funktion Winkel (in Grad) und Convertiert diese in das Winkelmaß: 

+ +
function getTanDeg(deg) {
+  var rad = deg * Math.PI/180;
+  return Math.tan(rad);
+}
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES1')}}{{Spec2('ES1')}}Initiale Definition. Implementiert in JavaScript 1.0.
{{SpecName('ES5.1', '#sec-15.8.2.18', 'Math.tan')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-math.tan', 'Math.tan')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-math.tan', 'Math.tan')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Math.tan")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/math/tanh/index.html b/files/de/web/javascript/reference/global_objects/math/tanh/index.html new file mode 100644 index 0000000000..7bfa025f4e --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/math/tanh/index.html @@ -0,0 +1,93 @@ +--- +title: Math.tanh() +slug: Web/JavaScript/Reference/Global_Objects/Math/tanh +tags: + - ECMAScript 2015 + - JavaScript + - Math + - Method + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Math/tanh +--- +
{{JSRef}}
+ +

Die Math.tanh() Funktion gibt den Tangens Hyperbolicus einer Zahl zurück. Dieser kann folgendermaßen errechnet werden:

+ +

tanhx=sinhxcoshx=ex-e-xex+e-x=e2x-1e2x+1\tanh x = \frac{\sinh x}{\cosh x} = \frac {e^x - e^{-x}} {e^x + e^{-x}} = \frac{e^{2x} - 1}{e^{2x}+1}

+ +
{{EmbedInteractiveExample("pages/js/math-tanh.html")}}
+ +

Syntax

+ +
Math.tanh(x)
+ +

Parameter

+ +
+
x
+
Eine Zahl.
+
+ +

Rückgabewert

+ +

Den Tangens Hyperbolicus der übergebenen Zahl.

+ +

Beschreibung

+ +

Weil tanh() eine statische Funktion von Math ist, wird es immer als Math.tanh() eingesetzt, jedoch nicht als Methode eines erzeugten Math Objektes (Math ist kein Konstruktor).

+ +

Beispiele

+ +

Einsatz von Math.tanh()

+ +
Math.tanh(0);        // 0
+Math.tanh(Infinity); // 1
+Math.tanh(1);        // 0.7615941559557649
+
+ +

Polyfill

+ +

Diese Funktion kann mit Hilfe der Funktion {{jsxref("Math.exp()")}} emuliert werden:

+ +
Math.tanh = Math.tanh || function(x){
+    var a = Math.exp(+x), b = Math.exp(-x);
+    return a == Infinity ? 1 : b == Infinity ? -1 : (a - b) / (a + b);
+}
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES2015', '#sec-math.tanh', 'Math.tanh')}}{{Spec2('ES2015')}}Initiale Definition.
{{SpecName('ESDraft', '#sec-math.tanh', 'Math.tanh')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Math.tanh")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/math/trunc/index.html b/files/de/web/javascript/reference/global_objects/math/trunc/index.html new file mode 100644 index 0000000000..43aa34b2d7 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/math/trunc/index.html @@ -0,0 +1,125 @@ +--- +title: Math.trunc() +slug: Web/JavaScript/Reference/Global_Objects/Math/trunc +tags: + - ECMAScript 2015 + - JavaScript + - Math + - Method + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Math/trunc +--- +
{{JSRef}}
+ +

Die Math.trunc() Funktion gibt den ganzzahligen Teil einer Zahl zurück, indem alle Nachkommastellen entfernt werden.

+ +
{{EmbedInteractiveExample("pages/js/math-trunc.html")}}
+ + + +

Syntax

+ +
Math.trunc(x)
+ +

Parameter

+ +
+
x
+
Eine Zahl.
+
+ +

Rückgabewert

+ +

Den ganzzahligen Teil der übergebenen Zahl.

+ +

Beschreibung

+ +

Im Gegensatz zu den drei Math Funktionen {{jsxref("Math.floor()")}}, {{jsxref("Math.ceil()")}} und {{jsxref("Math.round()")}} arbeitet Math.trunc() sehr einfach. Sie entfernt den Punkt und die Ziffern rechts davon, ohne zu beachten, ob es sich um eine positive oder negative Nummer handelt.

+ +

Beim übergeben eines Parameters wird dieser implizit in einen Nummern-Typ konvertiert.

+ +

Weil trunc() eine statische Funktion von Math ist, wird es immer als Math.trunc() eingesetzt, jedoch nicht als Methode eines erzeugten Math Objektes (Math ist kein Konstruktor).

+ +

Beispiele

+ +

Einsatz von Math.trunc()

+ +
Math.trunc(13.37);    // 13
+Math.trunc(42.84);    // 42
+Math.trunc(0.123);    //  0
+Math.trunc(-0.123);   // -0
+Math.trunc('-1.123'); // -1
+Math.trunc(NaN);      // NaN
+Math.trunc('foo');    // NaN
+Math.trunc();         // NaN
+
+ +

Polyfill

+ +
if(!Math.trunc) {
+  Math.trunc = function(v) {
+    v = +v;
+    if(!isFinite(v)) return v;
+
+    return (v - v % 1)   ||   (v < 0 ? -0 : v === 0 ? v : 0);
+
+    // returns:
+    //  0        ->  0
+    // -0        -> -0
+    //  0.2      ->  0
+    // -0.2      -> -0
+    //  0.7      ->  0
+    // -0.7      -> -0
+    //  Infinity ->  Infinity
+    // -Infinity -> -Infinity
+    //  NaN      ->  NaN
+    //  null     ->  0
+  };
+}
+ +

oder:

+ +
if(!Math.trunc) {
+  Math.trunc = function(v) {
+    return v < 0 ? Math.ceil(v) : Math.floor(v);
+  }
+}
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES2015', '#sec-math.trunc', 'Math.trunc')}}{{Spec2('ES2015')}}Initiale Definition.
{{SpecName('ESDraft', '#sec-math.trunc', 'Math.trunc')}}{{Spec2('ESDraft')}}
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Math.trunc")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/nan/index.html b/files/de/web/javascript/reference/global_objects/nan/index.html new file mode 100644 index 0000000000..434f2b811a --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/nan/index.html @@ -0,0 +1,97 @@ +--- +title: NaN +slug: Web/JavaScript/Reference/Global_Objects/NaN +tags: + - JavaScript + - Property + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/NaN +--- +
{{jsSidebar("Objects")}}
+ +

Die globale NaN Eigenschaft ist ein Wert, der Not-A-Number (keine Zahl) repräsentiert.

+ +

{{js_property_attributes(0,0,0)}}

+ +
{{EmbedInteractiveExample("pages/js/globalprops-nan.html")}}
+ + + +

Syntax

+ +
NaN
+ +

Beschreibung

+ +

NaN ist eine Eigenschaft des globalen Objektes.

+ +

Der initiale Wert von NaN ist Not-A-Number — der gleiche Wert wie {{jsxref("Number.NaN")}}. In modernen Browsern ist NaN eine nicht konfigurierbare und nicht überschreibbare Eigenschaft. Immer wenn dieses nicht der Fall ist, sollte es vermieden werden, diese zu überschreiben.

+ +

Der Einsatz von NaN in Programmen ist selten. Es wird als Rückgabewert genutzt, wenn {{jsxref("Math")}} Funktionen fehlschlagen (Math.sqrt(-1)) oder wenn der Versuch, eine Zeichenkette in eine Nummer zu konvertieren, fehlschlägt (parseInt("blabla")).

+ +

Tests mit NaN

+ +

Gleichheitsoperatoren (==, !=, === und !==) können nicht genutzt werden, um auf NaN zu prüfen. Stattdessen können die Methoden {{jsxref("Number.isNaN()")}} oder {{jsxref("Global_Objects/isNaN", "isNaN()")}} eingesetzt werden. Alternativ kann ein Vergleich auf sich selbst durchgeführt werden, weil nur NaN mit sich selbst verglichen ungleich ist.

+ +
NaN === NaN;        // false
+Number.NaN === NaN; // false
+isNaN(NaN);         // true
+isNaN(Number.NaN);  // true
+
+function valueIsNaN(v) { return v !== v; }
+valueIsNaN(1);          // false
+valueIsNaN(NaN);        // true
+valueIsNaN(Number.NaN); // true
+
+ +

Die Unterschiede zwischen isNaN() and Number.isNaN() sind zu beachten: ersteres wird true zurückgeben, wenn der übergebene Wert NaN ist, oder wenn er NaN wird, nachdem er zu einer Zahl umgewandelt wurde, während letzteres nur dann true zurückgibt, wenn der aktuelle Wert NaN ist:

+ +
isNaN('hello world'); // returns 'true'.
+Number.isNaN('Hello world'); // returns 'false'.
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES1')}}{{Spec2('ES1')}}Initiale Definition. Implementiert in JavaScript 1.3
{{SpecName('ES5.1', '#sec-15.1.1.1', 'NaN')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-value-properties-of-the-global-object-nan', 'NaN')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-value-properties-of-the-global-object-nan', 'NaN')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.NaN")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/null/index.html b/files/de/web/javascript/reference/global_objects/null/index.html new file mode 100644 index 0000000000..323579ee42 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/null/index.html @@ -0,0 +1,93 @@ +--- +title: 'null' +slug: Web/JavaScript/Reference/Global_Objects/null +tags: + - JavaScript + - Literal + - Primitive +translation_of: Web/JavaScript/Reference/Global_Objects/null +--- +
{{jsSidebar("Objects")}}
+ +

Der Wert null repräsentiert das absichtliche Fehlen eines Wertes. Es ist einer der {{Glossary("Primitive", "Primitiven Werte")}} in Javascript.

+ +
{{EmbedInteractiveExample("pages/js/globalprops-null.html")}}
+ + + +

Syntax

+ +
null 
+ +

Beschreibung

+ +

Der Wert null wird als Literal geschrieben: null. Der Wert null ist ein Literal (keine Eigenschaft des globalen Objektes wie {{jsxref("Global_Objects/undefined", "undefined")}}). Stattdessen drückt null einen Mangel an Identifikation aus und zeigt an, dass eine Variable auf kein Objekt zeigt. In APIs wird null oftmals an Stellen verwendet, an denen ein Objekt optional genutzt werden kann.

+ +
// foo existiert nicht. Es wurde nicht definiert und nirgendwo initialisiert:
+foo;
+"ReferenceError: foo is not defined"
+
+// foo existiert nun, aber die Variable hat keinen Typ oder Wert:
+var foo = null;
+foo;
+"null"
+
+ +

Unterschied zwischen null und undefined

+ +

Wenn auf null geprüft wird, sollte nicht der Gleichheitsvergleich ({{jsxref("Operators/Comparison_Operators", "==", "#Equality")}}) mit dem Identitätsvergleich ({{jsxref("Operators/Comparison_Operators", "===", "#Identity")}}) verwechselt werden, weil bei der Prüfung auf Gleichheit eine implizite Typumwandlung vorgenommen wird.

+ +
typeof null          // "object" (not "null" for legacy reasons)
+typeof undefined     // "undefined"
+null === undefined   // false
+null == undefined    // true
+null === null        // true
+null == null         // true
+!null                // true
+isNaN(1 + null)      // false
+isNaN(1 + undefined) // true
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES1')}}{{Spec2('ES1')}}Initiale Definition.
{{SpecName('ES5.1', '#sec-4.3.11', 'null value')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-null-value', 'null value')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-null-value', 'null value')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.null")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/number/epsilon/index.html b/files/de/web/javascript/reference/global_objects/number/epsilon/index.html new file mode 100644 index 0000000000..6259e2443f --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/number/epsilon/index.html @@ -0,0 +1,75 @@ +--- +title: Number.EPSILON +slug: Web/JavaScript/Reference/Global_Objects/Number/EPSILON +tags: + - ECMAScript 2015 + - JavaScript + - Number + - Property +translation_of: Web/JavaScript/Reference/Global_Objects/Number/EPSILON +--- +
{{JSRef}}
+ +

Die Eigenschaft Number.EPSILON beschreibt den Unterschied zwischen 1 und der kleinsten Gleitpunktzahl größer als 1.

+ +

Man muss kein Objekt von Typ {{jsxref("Number")}}  erzeugen, um auf diese statische Eigenschaft zuzugreifen. Man muss nur Number.EPSILON aufrufen.

+ +
{{EmbedInteractiveExample("pages/js/number-epsilon.html")}}
+ + + +
{{js_property_attributes(0,0,0)}}
+ +

Beschreibung

+ +

Die EPSILON Eigenschaft hat einen ungefähren Wert von 2.2204460492503130808472633361816E-16 order 2-52.

+ +

Beispiele

+ +

Testgleichung

+ +
x = 0.2;
+y = 0.3;
+z = 0.1;
+equal = (Math.abs(x - y + z) < Number.EPSILON);
+ +

Polyfill

+ +
if (Number.EPSILON === undefined) {
+    Number.EPSILON = Math.pow(2, -52);
+}
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES2015', '#sec-number.epsilon', 'Number.EPSILON')}}{{Spec2('ES2015')}}Initiale Definition.
{{SpecName('ESDraft', '#sec-number.epsilon', 'Number.EPSILON')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Number.EPSILON")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/number/index.html b/files/de/web/javascript/reference/global_objects/number/index.html new file mode 100644 index 0000000000..95bcd0652f --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/number/index.html @@ -0,0 +1,180 @@ +--- +title: Number +slug: Web/JavaScript/Reference/Global_Objects/Number +tags: + - JavaScript + - Number + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Number +--- +
{{JSRef}}
+ +

Das JavaScript Objekt Number ist ein Container Objekt (Wrapper Objekt), welches das Arbeiten mit numerischen Werten erlaubt. Ein Number Objekt wird erzeugt indem der Number() Konstruktor verwendet wird.

+ +

Syntax

+ +
new Number(value);
+ +

Parameter

+ +
+
value
+
Ein numerischer Wert, der als Objekt erstellt werden soll.
+
+ +

Beschreibung

+ +

Die hauptsächlichen Nutzungen des Number Objektes sind:

+ + + +

Eigenschaften

+ +
+
{{jsxref("Number.EPSILON")}}
+
Das kleinste Intervall zwischen zwei repräsentierbaren Zahlen.
+
{{jsxref("Number.MAX_SAFE_INTEGER")}}
+
Die größte sichere Ganzzahl in JavaScript (253 -1).
+
{{jsxref("Number.MAX_VALUE")}}
+
Die größte repräsentierbare Zahl.
+
{{jsxref("Number.MIN_SAFE_INTEGER")}}
+
Die kleinste sichere Ganzzahl in JavaScript (-(253 -1)).
+
{{jsxref("Number.MIN_VALUE")}}
+
Die kleinste positive repräsentierbare Zahl. Das ist die positive Zahl, die am nächsten an 0 ist (aber nicht 0 ist).
+
{{jsxref("Number.NaN")}}
+
Spezieller "keine Zahl" Wert.
+
{{jsxref("Number.NEGATIVE_INFINITY")}}
+
Spezieller Wert welcher negativ Unendlich repräsentiert; wird bei einem Overflow zurückgegeben.
+
{{jsxref("Number.POSITIVE_INFINITY")}}
+
Spezieller Wert welcher positiv Unendlich repräsentiert; wird bei einem Overflow zurückgegeben.
+
{{jsxref("Number.prototype")}}
+
+
+
Ermöglicht das Hinzufügen von Eigenschaften zu einem Number Objekt
+
+
+
+ +

Methoden

+ +
+
{{jsxref("Number.isNaN()")}}
+
Gibt an, ob der übergebene Wert {{jsxref("Number.NaN", "NaN")}} ist.
+
{{jsxref("Number.isFinite()")}}
+
Gibt an, ob der übergebene Wert eine endliche Zahl ist.
+
{{jsxref("Number.isInteger()")}}
+
Gibt an, ob der übergebene Wert eine ganze Zahl ist.
+
{{jsxref("Number.isSafeInteger()")}}
+
Gibt an, ob der der übergebene Wert eine sichere ganze Zahl ist (eine ganze Zahl zwischen -(253 -1) und 253 -1).
+
{{jsxref("Number.toInteger()")}} {{obsolete_inline}}
+
Wurde eingesetzt um eine Zahl zu einer ganzen Zahl zu konvertieren. Die Funktion wurde entfernt.
+
{{jsxref("Number.parseFloat()")}}
+
Der Wert ist der gleiche wie bei der {{jsxref("parseFloat", "parseFloat()")}} Funktion des globalen Objektes.
+
{{jsxref("Number.parseInt()")}}
+
Der Wert ist der gleiche wie bei der {{jsxref("parseInt", "parseInt()")}} Funktion des globalen Objektes.
+
+ +

Number Instanzen

+ +

Alle Instanzen von Number erben von {{jsxref("Number.prototype")}}. Das Prototyp Objekt des Number Konstruktors kann verändert werden, um alle Instanzen von Number zu beeinflussen.

+ +

Methoden

+ +
{{page('/de/docs/Web/JavaScript/Reference/Global_Objects/Number/prototype', 'Methoden')}}
+ +

Beispiele

+ +

Einsatz des Number Objektes zur Zuweisung von numerischen Variablen

+ +

Das folgende Beispiel benutzt Eigenschaften des Number Objektes um Werte zu numerischen Variablen zuzuweisen:

+ +
var biggestNum = Number.MAX_VALUE;
+var smallestNum = Number.MIN_VALUE;
+var infiniteNum = Number.POSITIVE_INFINITY;
+var negInfiniteNum = Number.NEGATIVE_INFINITY;
+var notANum = Number.NaN;
+
+ +

Ganzzahlbereich von Number

+ +

Das folgende Beispiel zeigt die kleinste und größte Ganzzahl, welche mit Number Objekten repräsentiert werden kann (für Details siehe im ECMAScript Standard Kapitel 6.1.6 The Number Type):

+ +
var biggestInt = 9007199254740992;
+var smallestInt = -9007199254740992;
+
+ +

Wenn Daten im JSON Format eingelesen werden und Ganzzahlen den oben gezeigten Bereich übersteigen, kann es passieren, dass Fehler beim Erstellen von Number Objekten auftreten. Mit dem Einsatz von {{jsxref("String")}} können solche Fehler umgangen werden. 

+ +

Einsatz von Number zum Konvertieren eines Date Objekts

+ +

Das folgende Beispiel konvertiert ein {{jsxref("Date")}} Objekt in einen numerischen Wert. Dazu wird Number als Funktion verwendet:

+ +
var d = new Date("December 17, 1995 03:24:00");
+print(Number(d));
+
+ +

Ausgabe: "819199440000".

+ +

Konvertiertung von Strings zu Nummern

+ +
Number('123')     // 123
+Number('12.3')    // 12.3
+Number('123e-1')  // 12.3
+Number('')        // 0
+Number('0x11')    // 17
+Number('0b11')    // 3
+Number('0o11')    // 9
+Number('foo')     // NaN
+Number('100a')    // NaN
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES1')}}{{Spec2('ES1')}}Initiale Definition. Implementiert in JavaScript 1.1.
{{SpecName('ES5.1', '#sec-15.7', 'Number')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-number-objects', 'Number')}}{{Spec2('ES6')}} +

Neue Methoden und Properties hinzugefügt: {{jsxref("Number.EPSILON", "EPSILON")}}, {{jsxref("Number.isFinite", "isFinite")}}, {{jsxref("Number.isInteger", "isInteger")}}, {{jsxref("Number.isNaN", "isNaN")}}, {{jsxref("Number.parseFloat", "parseFloat")}}, {{jsxref("Number.parseInt", "parseInt")}}

+
{{SpecName('ESDraft', '#sec-number-objects', 'Number')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Number.Number")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/number/isfinite/index.html b/files/de/web/javascript/reference/global_objects/number/isfinite/index.html new file mode 100644 index 0000000000..3db1065680 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/number/isfinite/index.html @@ -0,0 +1,93 @@ +--- +title: Number.isFinite() +slug: Web/JavaScript/Reference/Global_Objects/Number/isFinite +tags: + - JavaScript + - Method + - Number + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Number/isFinite +--- +
{{JSRef}}
+ +

Die Methode Number.isFinite() stellt fest, ob ein Wert endlich ist oder nicht.

+ +
{{EmbedInteractiveExample("pages/js/number-isfinite.html")}}
+ + + +

Syntax

+ +
Number.isFinite(testWert)
+ +

Parameter

+ +
+
testWert
+
Wert, der auf Endlichkeit getestet wird.
+
+ +

Rückgabewert

+ +

Ein {{jsxref("Boolean")}} der beschreibt, ob eine Zahl endlich oder nicht endlich ist.

+ +

Beschreibung

+ +

Im Vergleich zu der globalen Funktion {{jsxref("isFinite", "isFinite()")}}, werden übergeben Wert nicht in eine Zahl konvertiert. Das bedeutet, dass nur Werte vom Typ number die endlich sind true als Resultat haben.

+ +

Beispiele

+ +
Number.isFinite(Infinity);  // false
+Number.isFinite(NaN);       // false
+Number.isFinite(-Infinity); // false
+
+Number.isFinite(0);         // true
+Number.isFinite(2e64);      // true
+
+Number.isFinite('0');       // false, würde mit der globalen
+                            // Funktion isFinite('0') true ergeben
+Number.isFinite(null);      // false, würde mit der globalen
+                            // Funktion isFinite(null) true ergeben
+
+ +

Polyfill

+ +
Number.isFinite = Number.isFinite || function(value) {
+    return typeof value === 'number' && isFinite(value);
+}
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES6', '#sec-number.isfinite', 'Number.isInteger')}}{{Spec2('ES6')}}Initiale Definition.
{{SpecName('ESDraft', '#sec-number.isfinite', 'Number.isInteger')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Number.isFinite")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/number/isinteger/index.html b/files/de/web/javascript/reference/global_objects/number/isinteger/index.html new file mode 100644 index 0000000000..0befee0d25 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/number/isinteger/index.html @@ -0,0 +1,98 @@ +--- +title: Number.isInteger() +slug: Web/JavaScript/Reference/Global_Objects/Number/isInteger +tags: + - JavaScript + - Method + - Number + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Number/isInteger +--- +
{{JSRef}}
+ +

Die Number.isInteger() Methode prüft,  ob ein übergebener Parameter eine ganze Zahl ist.

+ +
{{EmbedInteractiveExample("pages/js/number-isinteger.html")}}
+ + + +

Syntax

+ +
Number.isInteger(value)
+ +

Parameter

+ +
+
value
+
Wert der getestet wird, ob er eine ganze Zahl ist.
+
+ +

Rückgabewert

+ +

Ein {{jsxref("Boolean")}} der angibt, ob der übergebene Wert eine ganze Zahl ist oder nicht.

+ +

Beschreibung

+ +

Wenn der übergebene Wert eine ganze Zahl ist, wird true zurückgegeben, anderfalls wird false zurückgegeben. Wenn der Wert {{jsxref("NaN")}} oder Unendlich (Infinity) ist, wird false zurückgegeben.

+ +

Beispiele

+ +
Number.isInteger(0);         // true
+Number.isInteger(1);         // true
+Number.isInteger(-100000);   // true
+Number.isInteger(99999999999999999999999); // true
+
+Number.isInteger(0.1);       // false
+Number.isInteger(Math.PI);   // false
+
+Number.isInteger(NaN);       // false
+Number.isInteger(Infinity);  // false
+Number.isInteger(-Infinity); // false
+Number.isInteger('10');      // false
+Number.isInteger(true);      // false
+Number.isInteger(false);     // false
+Number.isInteger([1]);       // false
+
+ +

Polyfill

+ +
Number.isInteger = Number.isInteger || function(value) {
+  return typeof value === 'number' &&
+    isFinite(value) &&
+    Math.floor(value) === value;
+};
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES6', '#sec-number.isinteger', 'Number.isInteger')}}{{Spec2('ES6')}}Initiale Definition.
{{SpecName('ESDraft', '#sec-number.isinteger', 'Number.isInteger')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Number.isInteger")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/number/isnan/index.html b/files/de/web/javascript/reference/global_objects/number/isnan/index.html new file mode 100644 index 0000000000..08d1a52303 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/number/isnan/index.html @@ -0,0 +1,104 @@ +--- +title: Number.isNaN() +slug: Web/JavaScript/Reference/Global_Objects/Number/isNaN +tags: + - ECMAScript 2015 + - JavaScript + - Method + - Number +translation_of: Web/JavaScript/Reference/Global_Objects/Number/isNaN +--- +
{{JSRef}}
+ +

Die Number.isNaN() Methode stellt fest, ob der Übergabewert {{jsxref("NaN")}} ist und der Typ des Parameters  {{jsxref("Number")}} ist . Dieses ist eine robustere Version der globalen Methode {{jsxref("isNaN", "isNaN()")}}

+ +
{{EmbedInteractiveExample("pages/js/number-isnan.html", "taller")}}
+ + + +

Syntax

+ +
Number.isNaN(testWert)
+ +

Parameter

+ +
+
testWert
+
Der Wert, der auf {{jsxref("NaN")}} getestet werden soll.
+
+ +

Rückgabewert

+ +

true wenn der Wert {{jsxref("NaN")}} und der Typ {{jsxref("Number")}} ist. Anderfalls false.

+ +

Beschreibung

+ +

Weil beide Gleichheitsoperatoren, {{jsxref("Operators/Comparison_Operators", "==", "#Equality")}} und {{jsxref("Operators/Comparison_Operators", "===", "#Identity")}}, den Vergleich, ob {{jsxref("NaN")}} gleich {{jsxref("NaN")}} ist, zu false auswerten, hat die Methode Number.isNaN() an Bedeutung gewonnen. Diese Situation ist anders als bei allen anderen Vergleichen von Werten in JavaScript.

+ +

Im Vergleich zu der globalen Methode {{jsxref("isNaN", "isNaN()")}} hat die Methode Number.isNaN() nicht das Problem, dass Werte zu einer Nummer konvertiert werden. Das bedeutet, das Werte, die normalerweise zu {{jsxref("NaN")}} konvertiert würden, aber momentan nicht dem Wert {{jsxref("NaN")}} entsprechen, ohne Probleme der Methode übergeben werden können. Das wiederum bedeutet, dass nur Werte vom Typ {{jsxref("Number")}}, die zudem {{jsxref("NaN")}} entsprechen true als Resultat haben.

+ +

Beispiele

+ +
Number.isNaN(NaN);        // true
+Number.isNaN(Number.NaN); // true
+Number.isNaN(0 / 0)       // true
+
+// Beispiele, bei denen isNaN() true zurück gibt
+Number.isNaN('NaN');      // false
+Number.isNaN(undefined);  // false
+Number.isNaN({});         // false
+Number.isNaN('blabla');   // false
+
+// Diese alle geben false zurück
+Number.isNaN(true);
+Number.isNaN(null);
+Number.isNaN(37);
+Number.isNaN('37');
+Number.isNaN('37.37');
+Number.isNaN('');
+Number.isNaN(' ');
+
+ +

Polyfill

+ +

Das Folgende funktioniert, weil NaN der einzige Wert ist, welcher nicht gleich mit sich selbst ist.

+ +
Number.isNaN = Number.isNaN || function(value) {
+    return value !== value;
+}
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES2015', '#sec-number.isnan', 'Number.isnan')}}{{Spec2('ES2015')}}Initiale Definition.
{{SpecName('ESDraft', '#sec-number.isnan', 'Number.isnan')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Number.isNaN")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/number/issafeinteger/index.html b/files/de/web/javascript/reference/global_objects/number/issafeinteger/index.html new file mode 100644 index 0000000000..9f9d35082d --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/number/issafeinteger/index.html @@ -0,0 +1,99 @@ +--- +title: Number.isSafeInteger() +slug: Web/JavaScript/Reference/Global_Objects/Number/isSafeInteger +tags: + - ECMAScript 2015 + - JavaScript + - Method + - Number +translation_of: Web/JavaScript/Reference/Global_Objects/Number/isSafeInteger +--- +
{{JSRef}}
+ +

Die Number.isSafeInteger() Methode prüft, ob der übergebene Wert eine Nummer ist, die ein sichere ganze Zahl ist.

+ +
{{EmbedInteractiveExample("pages/js/number-issafeinteger.html")}}
+ + + +

Eine sichere ganze Zahl ist

+ + + +

Zum Beispiel ist 253 - 1 eine sichere ganze Zahle: sie kann exakt repräsentiert werden und keine andere ganze Zahl wird in jedem IEEE-754 Rundungsmodus zu ihr gerundet. Im gegensatz dazu ist 253 keine sichere ganze Zahl: Sie kann in IEEE-754 exakt repräsentiert werden, jedoch wird die ganze Zahl 253 + 1 kann nicht exakt repräsentiert werden und wird zu 253 in den Modus zum nächsten Runden und zu null runden gerundet. Die sicheren ganzen Zahlen sind alle ganzen Zahlen im Bereich von -(253 - 1) inklusiv und 253 - 1 inklusiv.

+ +

Der Einsatz von Zahlen größer ~9 Biliarden oder kleiner ~-9 Biliarder mit voller Präzision benötigen eine Langzahlarythmetik Bibliothek. Mehr Informationen über die Repräsentation von Gleitkommazahlen gibt es in dem Artikel What Every Programmer Needs to Know about Floating Point Arithmetic.

+ +

Syntax

+ +
Number.isSafeInteger(testValue)
+
+ +

Parameter

+ +
+
testValue
+
Wert der getestet wird, ob er ein sichere ganze Zahl ist.
+
+ +

Rückgabewert

+ +

Ein {{jsxref("Boolean")}}, der angibt, ob die übergebenen Zahl eine sichere ganze Zahl ist oder nicht.

+ +

Beispiele

+ +
Number.isSafeInteger(3);                    // true
+Number.isSafeInteger(Math.pow(2, 53));      // false
+Number.isSafeInteger(Math.pow(2, 53) - 1);  // true
+Number.isSafeInteger(NaN);                  // false
+Number.isSafeInteger(Infinity);             // false
+Number.isSafeInteger('3');                  // false
+Number.isSafeInteger(3.1);                  // false
+Number.isSafeInteger(3.0);                  // true
+
+ +

Polyfill

+ +
Number.isSafeInteger = Number.isSafeInteger || function (value) {
+   return Number.isInteger(value) && Math.abs(value) <= Number.MAX_SAFE_INTEGER;
+};
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES2015', '#sec-number.issafeinteger', 'Number.isSafeInteger')}}{{Spec2('ES2015')}}Initiale Definition.
{{SpecName('ESDraft', '#sec-number.issafeinteger', 'Number.isSafeInteger')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Number.isSafeInteger")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/number/max_safe_integer/index.html b/files/de/web/javascript/reference/global_objects/number/max_safe_integer/index.html new file mode 100644 index 0000000000..1254955d54 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/number/max_safe_integer/index.html @@ -0,0 +1,68 @@ +--- +title: Number.MAX_SAFE_INTEGER +slug: Web/JavaScript/Reference/Global_Objects/Number/MAX_SAFE_INTEGER +tags: + - ECMAScript 2015 + - JavaScript + - Number + - Property +translation_of: Web/JavaScript/Reference/Global_Objects/Number/MAX_SAFE_INTEGER +--- +
{{JSRef}}
+ +

Die Number.MAX_SAFE_INTEGER Konstante repräsentiert die größte, sichere, ganze Zahl in JavaScript (253 - 1).

+ +
{{EmbedInteractiveExample("pages/js/number-maxsafeinteger.html")}}
+ + + +
{{js_property_attributes(0, 0, 0)}}
+ +

Beschreibung

+ +

Die MAX_SAFE_INTEGER Konstante hat einen Wert von 9007199254740991 (9.007.199.254.740.991 oder ca. 9 Billiarde). Die Bedeutung hinter dieser Zahl ist, dass in JavaScript double-precision floating-point Zahlen wie sie in IEEE 754 spezifiziert sind benutzt werden. Nach dieser Spezifikation ist die sichere Repräsentation von Zahlen nur zwischen -(253 - 1) und 253 - 1 möglich.

+ +

Sicher heißt in diesem Kontext, dass es möglich ist ganze Zahlen exakt zu repräsentieren und sie korrekt zu vergleichen. Zum Beispiel wird Number.MAX_SAFE_INTEGER + 1 === Number.MAX_SAFE_INTEGER + 2 zu true ausgewertet, was mathematisch nicht richtig ist. Weiter Informationen sind im Artikel  {{jsxref("Number.isSafeInteger()")}} zu finden. 

+ +

Weil MAX_SAFE_INTEGER eine statische Eigenschaft von {{jsxref("Number")}} ist, wird sie immer mit Number.MAX_SAFE_INTEGER abgerufen, im Gegensatz zu einer Eigenschaft eines {{jsxref("Number")}} Objektes, was erstellt wurde.

+ +

Beispiele

+ +
Number.MAX_SAFE_INTEGER // 9007199254740991
+Math.pow(2, 53) - 1     // 9007199254740991
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES2015', '#sec-number.max_safe_integer', 'Number.MAX_SAFE_INTEGER')}}{{Spec2('ES2015')}}Initiale Definition.
{{SpecName('ESDraft', '#sec-number.max_safe_integer', 'Number.MAX_SAFE_INTEGER')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Number.MAX_SAFE_INTEGER")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/number/max_value/index.html b/files/de/web/javascript/reference/global_objects/number/max_value/index.html new file mode 100644 index 0000000000..9cb4be1929 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/number/max_value/index.html @@ -0,0 +1,82 @@ +--- +title: Number.MAX_VALUE +slug: Web/JavaScript/Reference/Global_Objects/Number/MAX_VALUE +tags: + - JavaScript + - Number + - Property +translation_of: Web/JavaScript/Reference/Global_Objects/Number/MAX_VALUE +--- +
{{JSRef}}
+ +

Die Number.MAX_VALUE Eigenschaft repräsentiert den größten nummerische  Wert, der in JavaScript repräsentiert werden kann.

+ +
{{EmbedInteractiveExample("pages/js/number-maxvalue.html")}}
+ + + +
{{js_property_attributes(0, 0, 0)}}
+ +

Beschreibung

+ +

Die MAX_VALUE Eigenschaft hat einen ungefähren Wert von 1.79E+308 (1,79103081,79 \cdot 10^{308}). Werte die größer sind, werden als "Infinity" (unendlich) repräsentiert.

+ +

Weil MAX_VALUE eine statische Eigenschaft von {{jsxref("Number")}} ist, wird sie immer mit Number. MAX_VALUE abgerufen, im Gegensatz zu einer Eigenschaft eines {{jsxref("Number")}} Objektes, was erstellt wurde.

+ +

Beispiele

+ +

Einsatz von MAX_VALUE

+ +

Im folgenden Quelltext werden zwei nummerische Werte multipliziert. Wenn das Ergebnis kleiner oder gleich MAX_VALUE ist, wird func1() ausgeführt; andernfalls wird func2() ausgeführt.   

+ +
if (num1 * num2 <= Number.MAX_VALUE) {
+  func1();
+} else {
+  func2();
+}
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES1')}}{{Spec2('ES1')}}Initiale Definition. Implementiert in JavaScript 1.1.
{{SpecName('ES5.1', '#sec-15.7.3.2', 'Number.MAX_VALUE')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-number.max_value', 'Number.MAX_VALUE')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-number.max_value', 'Number.MAX_VALUE')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Number.MAX_VALUE")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/number/min_safe_integer/index.html b/files/de/web/javascript/reference/global_objects/number/min_safe_integer/index.html new file mode 100644 index 0000000000..4440e7d913 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/number/min_safe_integer/index.html @@ -0,0 +1,66 @@ +--- +title: Number.MIN_SAFE_INTEGER +slug: Web/JavaScript/Reference/Global_Objects/Number/MIN_SAFE_INTEGER +tags: + - ECMAScript 2015 + - JavaScript + - Number + - Property +translation_of: Web/JavaScript/Reference/Global_Objects/Number/MIN_SAFE_INTEGER +--- +
{{JSRef}}
+ +

Die Number.MIN_SAFE_INTEGER Konstante repräsentiert die kleinste sicheren ganze Zahl in JavaScript (-(253 - 1)).

+ +
{{EmbedInteractiveExample("pages/js/number-min-safe-integer.html")}}
+ + + +
{{js_property_attributes(0, 0, 0)}}
+ +

Beschreibung

+ +

Die MIN_SAFE_INTEGER Konstante hat einen Wert von - 9007199254740991 (-9.007.199.254.740.991 oder ca. -9 Billiarde). Die Bedeutung hinter dieser Zahl ist, dass in JavaScript double-precision floating-point Zahlen wie sie in IEEE 754 spezifiziert sind benutzt werden. Nach dieser Spezifikation ist die sichere Repräsentation von Zahlen nur zwischen -(253 - 1) und 253 - 1 möglich. Für mehr details Siehe im Artikel {{jsxref("Number.isSafeInteger()")}} nach.

+ +

Weil MIN_SAFE_INTEGER eine statische Eigenschaft von {{jsxref("Number")}} ist, wird sie immer mit Number.MIN_SAFE_INTEGER abgerufen, im Gegensatz zu einer Eigenschaft eines {{jsxref("Number")}} Objektes, was erstellt wurde.

+ +

Beispiele

+ +
Number.MIN_SAFE_INTEGER // -9007199254740991
+-(Math.pow(2, 53) - 1)  // -9007199254740991
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES2015', '#sec-number.min_safe_integer', 'Number.MIN_SAFE_INTEGER')}}{{Spec2('ES2015')}}Initiale Definition.
{{SpecName('ESDraft', '#sec-number.min_safe_integer', 'Number.MIN_SAFE_INTEGER')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Number.MIN_SAFE_INTEGER")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/number/min_value/index.html b/files/de/web/javascript/reference/global_objects/number/min_value/index.html new file mode 100644 index 0000000000..3572b98118 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/number/min_value/index.html @@ -0,0 +1,83 @@ +--- +title: Number.MIN_VALUE +slug: Web/JavaScript/Reference/Global_Objects/Number/MIN_VALUE +tags: + - JavaScript + - Number + - Property +translation_of: Web/JavaScript/Reference/Global_Objects/Number/MIN_VALUE +--- +
{{JSRef}}
+ +

Die Number.MIN_VALUE Eigenschaft repräsentiert den kleinsten nummerische  Wert größer als 0, der in JavaScript repräsentiert werden kann.

+ +
{{EmbedInteractiveExample("pages/js/number-min-value.html")}}
+ + + +
{{js_property_attributes(0, 0, 0)}}
+ +

Beschreibung

+ +

Die MIN_VALUE Eigenschaft ist die die am nächsten an 0 liegende positive Zahl, die JavaScript repräsentieren kann (nicht die kleinste negative Zahl).

+ +

MIN_VALUE hat einen ungefähren Wert von 510-3245 \cdot 10^{-324}. Zahlen die zwischen MIN_VALUE und 0 liegen ( "underflow values" werden zu 0 konvertiert.

+ +

Weil MIN_VALUE eine statische Eigenschaft von {{jsxref("Number")}} ist, wird sie immer mit Number. MIN_VALUE abgerufen, im Gegensatz zu einer Eigenschaft eines {{jsxref("Number")}} Objektes, was erstellt wurde.

+ +

Beispiele

+ +

Einsatz von MIN_VALUE

+ +

Im folgenden Quelltext werden zwei nummerische Werte dividiert. Wenn das Ergebnis größer oder gleich MIN_VALUE ist, wird func1() ausgeführt; andernfalls wird func2() ausgeführt. 

+ +
if (num1 / num2 >= Number.MIN_VALUE) {
+  func1();
+} else {
+  func2();
+}
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES1')}}{{Spec2('ES1')}}Initiale Definition. Implementiert in JavaScript 1.1.
{{SpecName('ES5.1', '#sec-15.7.3.3', 'Number.MIN_VALUE')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-number.min_value', 'Number.MIN_VALUE')}}{{Spec2('ES6')}}
{{SpecName('ESDraft', '#sec-number.min_value', 'Number.MIN_VALUE')}}{{Spec2('ESDraft')}}
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Number.MIN_VALUE")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/number/nan/index.html b/files/de/web/javascript/reference/global_objects/number/nan/index.html new file mode 100644 index 0000000000..25614786f3 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/number/nan/index.html @@ -0,0 +1,65 @@ +--- +title: Number.NaN +slug: Web/JavaScript/Reference/Global_Objects/Number/NaN +tags: + - JavaScript + - Number + - Property +translation_of: Web/JavaScript/Reference/Global_Objects/Number/NaN +--- +
{{JSRef}}
+ +

Die Number.NaN Eigenschaft repräsentiert Not-A-Number (keine Nummer). Sie ist identisch zu {{jsxref("NaN")}}.

+ +
{{EmbedInteractiveExample("pages/js/number-nan.html")}}
+ +

Die Eigenschaft Number.NaN ist statisch, weshalb kein {{jsxref("Number")}} Objekt erstellt werden muss.

+ +

{{js_property_attributes(0, 0, 0)}}

+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES1')}}{{Spec2('ES1')}} +

Initiale Definition. Implementiert in JavaScript 1.1.

+
{{SpecName('ES5.1', '#sec-15.7.3.4', 'Number.NaN')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-number.nan', 'Number.NaN')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-number.nan', 'Number.NaN')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Number.NaN")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/number/negative_infinity/index.html b/files/de/web/javascript/reference/global_objects/number/negative_infinity/index.html new file mode 100644 index 0000000000..a2cb81a0fb --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/number/negative_infinity/index.html @@ -0,0 +1,100 @@ +--- +title: Number.NEGATIVE_INFINITY +slug: Web/JavaScript/Reference/Global_Objects/Number/NEGATIVE_INFINITY +tags: + - JavaScript + - Number + - Property +translation_of: Web/JavaScript/Reference/Global_Objects/Number/NEGATIVE_INFINITY +--- +
{{JSRef}}
+ +

Die Number.NEGATIVE_INFINITY Eigenschaft repräsentiert den Wert der negativen Unendlichkeit.

+ +
{{EmbedInteractiveExample("pages/js/number-negative-infinity.html")}}
+ + + +

Man muss kein Objekt vom Typ {{jsxref("Number")}} erzeugen, um Zugriff zu haben, weil diese Eigenschaft statisch ist (nutze  Number.NEGATIVE_INFINITY).

+ +
{{js_property_attributes(0, 0, 0)}}
+ +

Beschreibung

+ +

Der Wert von Number.NEGATIVE_INFINITY ist der gleiche wie der negative Wert der Eigenschaft {{jsxref("Infinity")}} des globalen Objektes.

+ +

Der Wert verhält sich leicht unterschiedlich zu der mathematischen Unendlichkeit:

+ + + +

Man kann Number.NEGATIVE_INFINITY nutzen, um einen Fehlerfall zu signalisieren, wenn im Normalfall ein endliches Ergebnis erwartet werden kann. Zudem kann ein Wert mit {{jsxref("isFinite")}} auf seine Endlichkeit geprüft werden.

+ +

Beispiele

+ +

Einsatz von NEGATIVE_INFINITY

+ +

Im folgenden Beispiel wird der Variablen smallNumber ein kleinerer Wert als der minimale Wert zugewiesen. Wenn das {{jsxref("Statements/if...else", "if")}}-Statement ausgeführt wird, hat smallNumber den Wert -Infinity. In diesem Fall wird der Variablen ein endlicher Wert zugewiesen, um mit dem Wert besser umgehen zu können.

+ +
var smallNumber = (-Number.MAX_VALUE) * 2;
+
+if (smallNumber === Number.NEGATIVE_INFINITY) {
+  smallNumber = returnFinite();
+}
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES1')}}{{Spec2('ES1')}}Initiale Definition. Implementiert in JavaScript 1.1.
{{SpecName('ES5.1', '#sec-15.7.3.5', 'Number.NEGATIVE_INFINITY')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-number.negative_infinity', 'Number.NEGATIVE_INFINITY')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-number.negative_infinity', 'Number.NEGATIVE_INFINITY')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Number.NEGATIVE_INFINITY")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/number/parsefloat/index.html b/files/de/web/javascript/reference/global_objects/number/parsefloat/index.html new file mode 100644 index 0000000000..d659260090 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/number/parsefloat/index.html @@ -0,0 +1,72 @@ +--- +title: Number.parseFloat() +slug: Web/JavaScript/Reference/Global_Objects/Number/parseFloat +tags: + - ECMAScript 2015 + - JavaScript + - Method + - Number +translation_of: Web/JavaScript/Reference/Global_Objects/Number/parseFloat +--- +
{{JSRef}}
+ +

Die Number.parseFloat() Methode liest ein String-Argument ein und gibt eine Fließkommazahl zurück. Diese Methode verhält sich identisch zu der globalen Funktion {{jsxref("parseFloat", "parseFloat()")}} und ist Teil von ECMAScript 2015 (das Ziel ist die modularisierung von globalen Funktionen).

+ +
{{EmbedInteractiveExample("pages/js/number-parsefloat.html")}}
+ + + +

Syntax

+ +
Number.parseFloat(string)
+ +

Parameter

+ +

{{page("de/docs/Web/JavaScript/Reference/Global_Objects/parseFloat", "Parameter")}}

+ +

Rückgabewert

+ +

{{page("de/docs/Web/JavaScript/Reference/Global_Objects/parseFloat", "Rückgabewert")}}

+ +

Beschreibung

+ +

Mehr Details und Beispiele sind im Artikel {{jsxref("parseFloat", "parseFloat()")}} nachzuschlagen.

+ +

Polyfill

+ +
Number.parseFloat = parseFloat;
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES2015', '#sec-number.parsefloat', 'Number.parseFloat')}}{{Spec2('ES2015')}}Initiale Definition.
{{SpecName('ESDraft', '#sec-number.parsefloat', 'Number.parseFloat')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Number.parseFloat")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/number/parseint/index.html b/files/de/web/javascript/reference/global_objects/number/parseint/index.html new file mode 100644 index 0000000000..e9efe16f11 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/number/parseint/index.html @@ -0,0 +1,77 @@ +--- +title: Number.parseInt() +slug: Web/JavaScript/Reference/Global_Objects/Number/parseInt +tags: + - ECMAScript 2015 + - JavaScript + - Method + - Number +translation_of: Web/JavaScript/Reference/Global_Objects/Number/parseInt +--- +
{{JSRef}}
+ +

Die Number.parseInt() Methode liest ein String-Argument ein und gibt eine ganze Zahl im angegebenen Zahlensystem zurück.

+ +
{{EmbedInteractiveExample("pages/js/number-parseint.html")}}
+ + + +

Syntax

+ +
Number.parseInt(string[, radix])
+ +

Parameter

+ +
{{page("de/docs/Web/JavaScript/Reference/Global_Objects/parseInt", "Parameter")}}
+ +

Rückgabewert

+ +

{{page("de/docs/Web/JavaScript/Reference/Global_Objects/parseInt", "Rückgabewert")}}

+ +

Beschreibung

+ +

Diese Methode hat den gleichen Funktionsumfang wie die globalen {{jsxref("parseInt", "parseInt()")}} Funktion:

+ +
Number.parseInt === parseInt; // true
+ +

Sie ist Teil von ECMAScript 2015 und hat als Ziel die Modularisierung von globalen Funktionen. Mehr Details und Beispiele im Artikel {{jsxref("parseInt", "parseInt()")}}.

+ +

Polyfill

+ +
if (Number.parseInt === undefined)
+    Number.parseInt = window.parseInt;
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKomment
{{SpecName('ES6', '#sec-number.parseint', 'Number.parseInt')}}{{Spec2('ES6')}}Initiale Definition.
{{SpecName('ESDraft', '#sec-number.parseint', 'Number.parseInt')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Number.parseInt")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/number/positive_infinity/index.html b/files/de/web/javascript/reference/global_objects/number/positive_infinity/index.html new file mode 100644 index 0000000000..0f9c9b1ccd --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/number/positive_infinity/index.html @@ -0,0 +1,100 @@ +--- +title: Number.POSITIVE_INFINITY +slug: Web/JavaScript/Reference/Global_Objects/Number/POSITIVE_INFINITY +tags: + - JavaScript + - Number + - Property +translation_of: Web/JavaScript/Reference/Global_Objects/Number/POSITIVE_INFINITY +--- +
{{JSRef}}
+ +

Die Eigenschaft Number.POSITIVE_INFINITY repräsentiert den Wert positiv unendlich.

+ +
{{EmbedInteractiveExample("pages/js/number-positive-infinity.html")}}
+ + + +

Man muss kein Objekt vom Typ {{jsxref("Number")}} erzeugen, um Zugriff auf diese Eigenschaft zu bekommen, weil diese eine statische Eigeschaft ist (nutze POSITIVE_INFINITY).

+ +
{{js_property_attributes(0, 0, 0)}}
+ +

Beschreibung

+ +

Der Wert Number.POSITIVE_INFINITY ist der gleich wie der der Eigenschaft {{jsxref("Infinity")}} des globalen Objektes.

+ +

Der Wert verhält sich leicht unterschiedlich zu der mathematischen Unendlichkeit:

+ + + +

Man kann Number.POSITIVE_INFINITY nutzen, um einen Fehlerfall zu signalisieren, wenn im Normalfall ein endliches Ergebnis erwartet werden kann. Zudem kann ein Wert mit {{jsxref("isFinite")}} auf seine Endlichkeit geprüft werden.

+ +

Beispiele

+ +

Einsatz von POSITIVE_INFINITY

+ +

Im folgenden Beispiel wird der Variablen bigNumber ein kleinerer Wert als der minimale Wert zugewiesen. Wenn das {{jsxref("Statements/if...else", "if")}}-Statement ausgeführt wird, hat bigNumber den Wert Infinity. In diesem Fall wird der Variablen ein endlicher Wert zugewiesen, um mit dem Wert besser umgehen zu können.

+ +
var bigNumber = Number.MAX_VALUE * 2;
+
+if (bigNumber == Number.POSITIVE_INFINITY) {
+  bigNumber = returnFinite();
+}
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES1')}}{{Spec2('ES1')}}Initiale Definition. Implementiert in JavaScript 1.1.
{{SpecName('ES5.1', '#sec-15.7.3.6', 'Number.POSITIVE_INFINITY')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-number.positive_infinity', 'Number.POSITIVE_INFINITY')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-number.positive_infinity', 'Number.POSITIVE_INFINITY')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Number.POSITIVE_INFINITY")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/number/prototype/index.html b/files/de/web/javascript/reference/global_objects/number/prototype/index.html new file mode 100644 index 0000000000..df57903c60 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/number/prototype/index.html @@ -0,0 +1,89 @@ +--- +title: Number.prototype +slug: Web/JavaScript/Reference/Global_Objects/Number/prototype +tags: + - JavaScript + - Number + - Property + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Number +--- +
{{JSRef}}
+ +

Die Eigenschaft Number.prototype repräsentiert den Prototypen für den {{jsxref("Number")}} Konstruktor.

+ +
{{js_property_attributes(0, 0, 0)}}
+ +

Beschreibung

+ +

Alle {{jsxref("Number")}} Instanzen erben von Number.prototype. Das prototype Objekt des {{jsxref("Number")}} Konstruktors kann verändert werden um alle Instanzen von {{jsxref( "Number")}} zu erweitern.

+ +

Eigenschaften

+ +
+
Number.prototype.constructor
+
Gibt die Funktion zurück, die die Instanz dieses Objektes erzeugt hat. Als Standardwert ist das das {{jsxref("Number")}} Objekt.
+
+ +

Methoden

+ +
+
{{jsxref("Number.prototype.toExponential()")}}
+
Gibt eine Zeichenkette (string) zurück, die die Nummer in Exponential Notation repräsentiert.
+
{{jsxref("Number.prototype.toFixed()")}}
+
Gibt eine Zeichenkette (string) zurück, die die Nummer als Festkommazahl repräsentiert.
+
{{jsxref("Number.prototype.toLocaleString()")}}
+
Gibt eine Zeichenkette (string) zurück, die die sprachenübliche Repräsentation der Nummer repräsentiert. Überschreibt die  {{jsxref("Object.prototype.toLocaleString()")}} Methode.
+
{{jsxref("Number.prototype.toPrecision()")}}
+
Gibt eine Zeichenzette (string) zurück, die die Zahl in einer bestimmten Genauigkeit als Festkommazahl repräsentiert.
+
{{jsxref("Number.prototype.toSource()")}} {{non-standard_inline}}
+
Gibt ein Objektliteral zurück, welches das {{jsxref("Number")}} Objekt spezifiziert. Diese Methode kann genutzt werden, um ein neues Objekt zu erzeugen. Überschreibt die {{jsxref("Object.prototype.toSource()")}} Methode.
+
{{jsxref("Number.prototype.toString()")}}
+
Gibt eine Zeichenkette (string) zurück, die die Zahl in einer bestimmten Basis repräsentiert. Überschreibt die {{jsxref("Object.prototype.toString()")}} Methode.
+
{{jsxref("Number.prototype.valueOf()")}}
+
Gibt einen primitiven Wert des Objektes zurück. Überschreibt die {{jsxref("Object.prototype.valueOf()")}} Methode.
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES1')}}{{Spec2('ES1')}}Initiale Definition. Implementiert in JavaScript 1.1.
{{SpecName('ES5.1', '#sec-15.7.4', 'Number')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-properties-of-the-number-prototype-object', 'Number')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-properties-of-the-number-prototype-object', 'Number')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Number.prototype")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/number/toexponential/index.html b/files/de/web/javascript/reference/global_objects/number/toexponential/index.html new file mode 100644 index 0000000000..c392b7012c --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/number/toexponential/index.html @@ -0,0 +1,108 @@ +--- +title: Number.prototype.toExponential() +slug: Web/JavaScript/Reference/Global_Objects/Number/toExponential +tags: + - JavaScript + - Method + - Number + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Number/toExponential +--- +
{{JSRef}}
+ +

Die toExponential() Methode gibt eine string-Repräsentation eines {{jsxref("Number")}} Objektes in Exponentialdarstellung zurück.

+ +
{{EmbedInteractiveExample("pages/js/number-toexponential.html")}}
+ + + +

Syntax

+ +
numObj.toExponential([fractionDigits])
+ +

Parameter

+ +
+
fractionDigits
+
Optional. Eine ganze Zahl, die die Anzahl der Nachkommastellen angibt. Der Standardwert ist die Anzahl der Nachkommastellen, die benötigt werden, um die Zahl genau darzustellen.
+
+ +

Rückgabewert

+ +

Eine string, der das gegebene {{jsxref("Number")}} Objekt in Exponentialdarstellung repräsentiert. Das bedeutet, dass eine Stelle vor dem Komma steht und auf fractionDigits Stellen nach dem Komma gerundet wird.

+ +

Ausnahmen

+ +
+
{{jsxref("RangeError")}}
+
Wenn fractionDigits zu klein oder groß ist. Werte zwischen 0 und 20 (inklusiv) werden keinen zu keinem {{jsxref("RangeError")}} führen. Manche Implementierungen erlauben es auch kleinere oder größere Wert einzusätzen.
+
{{jsxref("TypeError")}}
+
Wenn die Methode auf einem Objekt, welches nicht vom Typ {{jsxref("Number")}} ist, aufgerufen wird.
+
+ +

Beschreibung

+ +

Wenn das fractionDigits Argument nicht angegeben wird, ist der Standardwert die Anzahl der Stellen, die benötigt werden um die Zahl ohne Verluste darzustellen.

+ +

Wenn die toExponential() Methode für nummerische Literale engesetzt werden und das nummerische Literal keine Nachkommastellen besitzt, sollte ein Leerzeichen nach der Zahl hinzugefügt werden. Das sorgt dafür, dass der Punkt des Methodenaufrufes nicht als Dezimaltrenner (Komma) interpretiert wird.

+ +

Wenn eine Zahl mehr Stellen hat, als im fractionDigits Argument definiert wurde, wird die Zahl zur nächst liegenden Zahl gerundet, die mit fractionDigits Stellen dargestellt werden kann. Weiter Informationen zum Runden sind im Artikel {{jsxref("Number.prototype.toFixed", "toFixed()")}} zu finden, die ebenfalls auf toExponential() zutreffen.

+ +

Beispiele

+ +

Einsatz von toExponential()

+ +
var numObj = 77.1234;
+
+console.log(numObj.toExponential());  // logs 7.71234e+1
+console.log(numObj.toExponential(4)); // logs 7.7123e+1
+console.log(numObj.toExponential(2)); // logs 7.71e+1
+console.log(77.1234.toExponential()); // logs 7.71234e+1
+console.log(77 .toExponential());     // logs 7.7e+1
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES3')}}{{Spec2('ES3')}}Initiale Definition. Implementiert in JavaScript 1.5.
{{SpecName('ES5.1', '#sec-15.7.4.6', 'Number.prototype.toExponential')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-number.prototype.toexponential', 'Number.prototype.toExponential')}}{{Spec2('ES6')}}
{{SpecName('ESDraft', '#sec-number.prototype.toexponential', 'Number.prototype.toExponential')}}{{Spec2('ESDraft')}}
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Number.toExponential")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/number/tofixed/index.html b/files/de/web/javascript/reference/global_objects/number/tofixed/index.html new file mode 100644 index 0000000000..0fe376aa4d --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/number/tofixed/index.html @@ -0,0 +1,113 @@ +--- +title: Number.prototype.toFixed() +slug: Web/JavaScript/Reference/Global_Objects/Number/toFixed +tags: + - JavaScript + - Method + - Number + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Number/toFixed +--- +
{{JSRef}}
+ +

Die toFixed() Methode formatiert eine Zahl in Festkommadarstellung.

+ +
{{EmbedInteractiveExample("pages/js/number-tofixed.html")}}
+ + + +

Syntax

+ +
numObj.toFixed([digits])
+ +

Parameter

+ +
+
digits
+
Optional: Die Anzahl der Stellen, die nach dem Komma angezeigt werden sollen. Das ist ein Wert zwischen 0 und 20 (inklusiv), jedoch gibt es Implementierungen die optional einen größeren Bereich zulassen. Wenn das Argument nicht angegeben wird, wird der Parameter mit dem Standardwert 0 gesetzt.
+
+ +

Rückgabewert

+ +

Eine String-Repräsentation der gegebenen Zahl in Festkommadarstellung.

+ +

Ausnahmen

+ +
+
{{jsxref("RangeError")}}
+
Tritt auf, wenn digits zu klein oder groß ist. Werte  digits zwischen 0 und 20 (inklusiv) ist, wird es nicht zu einem {{jsxref("RangeError")}} führen. Manche Implementierungen erlauben es auch kleinere oder größere Wert zu benutzen.
+
{{jsxref("TypeError")}}
+
Wenn die Methode auf einem Objekt, welches nicht vom Typ {{jsxref("Number")}} ist, aufgerufen wird.
+
+ +

Beschreibung

+ +

toFixed() gibt eine String-Repräsentation von numObj zurück, die keine Exponentialdarstellung benutzt und genau digits viele Nachkommastellen beseitzt. Wenn es nötig ist, wird eine Zahl gerundet oder fehlende Dezimalstellen werden mit Nullen aufgefüllt, um die gewünschten Nachkommastellen zu erreichen. Wenn numObj größer als 1021 ist, ruft diese Methode {{jsxref("Number.prototype.toString()")}} auf und gibt den string in Exponentialdarstellung zurück.

+ +
+

JavaScript Numbers können nicht alle Zahlen präzise darstellen, was zu unerwarteten Ergebnissen führen kann, wie z. B.  0.1 + 0.2 === 0.3 false ergibt.

+
+ +

Beispiele

+ +

Einsatz von toFixed

+ +
var numObj = 12345.6789;
+
+numObj.toFixed();       // Rückgabe: '12346': Gerundet, keine Nachkommastellen
+numObj.toFixed(1);      // Rückgabe: '12345.7': Gerundet
+numObj.toFixed(6);      // Rückgabe: '12345.678900': Nullen hinzugefügt
+(1.23e+20).toFixed(2);  // Rückgabe: '123000000000000000000.00'
+(1.23e-10).toFixed(2);  // Rückgabe: '0.00'
+2.34.toFixed(1);        // Rückgabe: '2.3'
+2.35.toFixed(1);        // Rückgabe: '2.4'. Aufgerundet.
+2.55.toFixed(1);        // Rückgabe: '2.5'. Abgerundet - siehe die oben stehende Warnung
+-2.34.toFixed(1);       // Rückgabe: -2.3 (Negative Nummernliterale geben kein String zurück ...)
+(-2.34).toFixed(1);     // Rückgabe: '-2.3' (... außer es werden explizit Klammern verwendet.)
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES3')}}{{Spec2('ES3')}}Initiale Definition. Implementiert in JavaScript 1.5.
{{SpecName('ES5.1', '#sec-15.7.4.5', 'Number.prototype.toFixed')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-number.prototype.tofixed', 'Number.prototype.toFixed')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-number.prototype.tofixed', 'Number.prototype.toFixed')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Number.toFixed")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/number/tointeger/index.html b/files/de/web/javascript/reference/global_objects/number/tointeger/index.html new file mode 100644 index 0000000000..79545e9ad6 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/number/tointeger/index.html @@ -0,0 +1,52 @@ +--- +title: Number.toInteger() +slug: Web/JavaScript/Reference/Global_Objects/Number/toInteger +tags: + - JavaScript + - Method + - Number + - Obsolete +translation_of: Archive/Web/JavaScript/Number.toInteger +--- +
{{JSRef}} {{obsolete_header}}
+ +

Die Number.toInteger() Methode wurde eingesetzt, um den übegebenen Wert zu analysieren und zu einer ganzen Zahl zu konvertieren, jedoch wurde die Implementierung entfernt.

+ +

Wenn der übergebene Wert {{jsxref("NaN")}}, {{jsxref("null")}} oder {{jsxref("undefined")}} ist, gibt die Methode 0 zurück. Wenn der Wert false ist, wird 0 und bei true wird 1 zurückgegeben.

+ +

Syntax

+ +
Number.toInteger(zahl)
+ +

Parameter

+ +
+
zahl
+
Wert der zu einer ganzen Zahl konvertiert werden soll.
+
+ +

Beispiele

+ +

Einsatz von toInteger

+ +
Number.toInteger(0.1);     // 0
+Number.toInteger(1);       // 1
+Number.toInteger(Math.PI); // 3
+Number.toInteger(null);    // 0
+
+ +

Spezifikationen

+ +

Number.toInteger() war Teil der des ECMAScript 6 Entwurfesspezifikation, jedoch wurde sie am 23. August 2013 im Draft Rev 17 entfernt.

+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Number.toInteger")}}

+ +

See also

+ + diff --git a/files/de/web/javascript/reference/global_objects/number/tolocalestring/index.html b/files/de/web/javascript/reference/global_objects/number/tolocalestring/index.html new file mode 100644 index 0000000000..5e5e132045 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/number/tolocalestring/index.html @@ -0,0 +1,192 @@ +--- +title: Number.prototype.toLocaleString() +slug: Web/JavaScript/Reference/Global_Objects/Number/toLocaleString +tags: + - Internationalization + - JavaScript + - Method + - Number + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Number/toLocaleString +--- +
{{JSRef}}
+ +

Die toLocaleString() Methode gibt eine Zahl als String in sprachabhängiger Formatierung zurück.

+ +
{{EmbedInteractiveExample("pages/js/number-tolocalestring.html")}}
+ + + +

Die neuen locales und options Argumente ermöglichen es Anwendungen, sprachübliche Formatierungskonventionen zu benutzen und diese anzupassen. In älteren Implementierungen werden die locales und options Argumente ignoriert, und die Formatierung des Strings ist implementierungsabhängig.

+ +

Syntax

+ +
numObj.toLocaleString([locales [, options]])
+ +

Parameter

+ +

Prüfe die Browserkompatibilität, um zu sehen, welcher Browser den locales und options Parameter unterstützt, und das Beispiel Unterstützung für locales und options Argumente prüfen für eine Funktionalitätsprüfung.

+ +
+

Anmerkung: Die ECMAScript Internationalization API, implementiert in Firefox 29, fügte das Argument locales zur Methode Number.toLocaleString() zu. Wenn das Argument {{jsxref("undefined")}} ist, arbeitet die Methode nach der Lokalisierung des OS, während Vorgängerversionen von Firefox Western Arabic zurück geben. Diese Änderung wurde als eine Rückwärtskompatibilität gemeldet. Das Problem wurde bereits behoben ({{bug(999003)}}).

+
+ +
{{page('/de/docs/Web/JavaScript/Reference/Global_Objects/NumberFormat', 'Parameter')}}
+ +

Rückgabewert

+ +

Einen String, der die gegebene Zahl in einer sprachspezifischen Formatierung repräsentiert.

+ +

Beispiele

+ +

Einsatz von toLocaleString()

+ +

Bei der Nutzung ohne Parameter wird der string in der Standardsprache ohne Optionen zurückgegeben:

+ +
var number = 3500;
+
+console.log(number.toLocaleString()); // Ausgabe: "3.500" wenn in Deutscher locale
+
+ +

Unterstützung für locales und options Argumente prüfen

+ +

Die locales und options Argumente sind noch nicht in allen Browsern unterstützt. Zur Prüfung der Unterstützung von ES5.1 und neueren Implementierungen wird vorausgesetzt, dass unbekannte Sprachen zu einem {{jsxref("RangeError")}} führen, was folgendermaßen eingesetzt werden kann:

+ +
function toLocaleStringSupportsLocales() {
+  var number = 0;
+  try {
+    number.toLocaleString('i');
+  } catch (e) {
+    return e.name === 'RangeError';
+  }
+  return false;
+}
+
+ +

Vor ES5.1 mussten die Implementierungen keinen {{jsxref("RangeError")}} erzeugen, wenn toLocaleString  mit Argumenten aufgerufen wurde.

+ +

Eine Prüfung, die in allen Browser funktioniert, auch in denen, die ECMA-262 vor ES5.1 unterstützen, ist die Prüfung auf Funktionen aus ECMA-402, welche Optionen in Number.prototype.toLocaleString direkt unterstützen:

+ +
function toLocaleStringSupportsOptions() {
+  return !!(typeof Intl == 'object' && Intl && typeof Intl.NumberFormat == 'function');
+}
+
+ +

Diese Tests auf dem globalen {{jsxref("Intl")}} Objekt prüfen, ob das Objekt existiert und die Eigenschaft vom Typ Funktion {{jsxref("Intl.NumberFormat")}} hat.

+ +

Einsatz von locales

+ +

Diese Beispiel zeigt einige der Variationen in internationalen Zahlenformaten. Um das Format der Sprache zu bekommen, welches in der Anwendung benutzt wird, spezifiziere die Sprache (und mögliche Rückfallsprachen (fallback)) mit dem locales Argument.

+ +
var number = 123456.789;
+
+// Englische Benutzer sehen ein Punkt anstatt eines Kommas als Dezimaltrenner
+console.log(number.toLocaleString('en-GB'));
+// → 123.456,789
+
+// Arabisch ist in den meisten arabisch Sprechenden Ländern eingesetzt (Eastern Arabic) Ziffern
+console.log(number.toLocaleString('ar-EG'));
+// → ١٢٣٤٥٦٫٧٨٩
+
+// Indien benutzt Tausendertrennzeichen bei Tausend und allen weiteren zwei Stellen
+console.log(number.toLocaleString('en-IN'));
+// → 1,23,456.789
+
+// Chinesisches Zahlensystem
+console.log(number.toLocaleString('zh-Hans-CN-u-nu-hanidec'));
+// → 一二三,四五六.七八九
+
+// Wenn eine Sprache übergeben werden soll, die vielleicht nicht
+// unterstützt wird (Balinesisch), nutze eine fallback Sprache (Indonesisch)
+console.log(number.toLocaleString(['ban', 'id']));
+// → 123.456,789
+
+ +

Einsatz von options

+ +

Das Ergebnis von toLocaleString  kann durch das options Argument angepasst werden.

+ +
var number = 123456.789;
+
+// Währungsformat
+console.log(number.toLocaleString('de-DE', { style: 'currency', currency: 'EUR' }));
+// → 123.456,79 €
+
+// Der Japanische Yen hat keine Unterwährung (z. B. Cent)
+console.log(number.toLocaleString('ja-JP', { style: 'currency', currency: 'JPY' }))
+// → ¥123,457
+
+// Limitiert auf drei signifikante Stellen
+console.log(number.toLocaleString('en-IN', { maximumSignificantDigits: 3 }));
+// → 1,23,000
+
+// Einsatz der Host-Standard-Sprache mit Optionen für die Nummernformatierung
+var num = 30000.65;
+console.log(num.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2}));
+// → 30,000.65 wenn Englisch die Standard-Sprache ist, oder
+// → 30.000,65 wenn Deutsch die Standard-Sprache ist, oder
+// → 30 000,65 wenn Französisch die Standard-Sprache ist
+
+ +

Performance

+ +

Wenn eine lange Zahl formatiert werden soll, ist es besser ein {{jsxref("NumberFormat")}} Objekt zu erstellen und die Funktion {{jsxref("NumberFormat.format")}} zu benutzen.

+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES3')}}{{Spec2('ES3')}}Initiale Definition. Implementiert in JavaScript 1.5.
{{SpecName('ES5.1', '#sec-15.7.4.3', 'Number.prototype.toLocaleString')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-number.prototype.tolocalestring', 'Number.prototype.toLocaleString')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-number.prototype.tolocalestring', 'Number.prototype.toLocaleString')}}{{Spec2('ESDraft')}} 
{{SpecName('ES Int 1.0', '#sec-13.2.1', 'Number.prototype.toLocaleString')}}{{Spec2('ES Int 1.0')}} 
{{SpecName('ES Int 2.0', '#sec-13.2.1', 'Number.prototype.toLocaleString')}}{{Spec2('ES Int 2.0')}} 
{{SpecName('ES Int Draft', '#sec-Number.prototype.toLocaleString', 'Number.prototype.toLocaleString')}}{{Spec2('ES Int Draft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Number.toLocaleString")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/number/toprecision/index.html b/files/de/web/javascript/reference/global_objects/number/toprecision/index.html new file mode 100644 index 0000000000..53a27d59d2 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/number/toprecision/index.html @@ -0,0 +1,107 @@ +--- +title: Number.prototype.toPrecision() +slug: Web/JavaScript/Reference/Global_Objects/Number/toPrecision +tags: + - JavaScript + - Method + - Number + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Number/toPrecision +--- +
{{JSRef}}
+ +

Die toPrecision() Methode gibt einen String zurück, der ein {{jsxref("Number")}} Objekt mit einer spezifizierten Präzision repräsentiert.

+ +
{{EmbedInteractiveExample("pages/js/number-toprecision.html")}}
+ +

Syntax

+ +
numObj.toPrecision([precision])
+ +

Parameter

+ +
+
precision
+
Optional. Eine ganze Zahl, die die signifikanten Ziffern der Zahl angibt.
+
+ +

Rückgabewert

+ +

Ein string, der ein {{jsxref("Number")}} Objekt in Fließkomma- oder Exponentialdarstellung auf die in precision angegeben Stellen gerundet zurück gibt. Weitere Informationen zum runden in dieser Methode sind in der Beschreibung von {{jsxref("Number.prototype.toFixed()")}} zu finden, die auch auf toPrecision() zutreffen.

+ +

Wenn kein precision Argument angegeben wird, ist die rückgabe wie in der {{jsxref("Number.prototype.toString()")}} Methode. Wenn die precision keine ganze Zahl ist, wird zu der am nächst liegenden ganzen Zahl gerundet.

+ +

Auftretende Fehler

+ +
+
{{jsxref("Global_Objects/RangeError", "RangeError")}}
+
Wenn precison keine Zahl zwischen 1 und 100 (inklusiv) ist, tritt ein {{jsxref("RangeError")}} auf. Es gibt implementierungen die mehr und weniger signifikante Stellen zulassen. ECMA-262 spezifiziert nur eine Präzision von 21 signifikanten Stellen.
+
+ +

Beispiele

+ +

Einsatz von toPrecision

+ +
var numObj = 5.123456;
+
+console.log(numObj.toPrecision());    // Ausgabe: 5.123456
+console.log(numObj.toPrecision(5));   // Ausgabe: 5.1235
+console.log(numObj.toPrecision(2));   // Ausgabe: 5.1
+console.log(numObj.toPrecision(1));   // Ausgabe: 5
+
+numObj = 0.000123
+
+console.log(numObj.toPrecision());    // logs 0.000123
+console.log(numObj.toPrecision(5));   // logs 0.00012300
+console.log(numObj.toPrecision(2));   // logs 0.00012
+console.log(numObj.toPrecision(1));   // logs 0.0001
+
+// In manchen Fällen wird die Exponentialdarstellung ausgegeben.
+console.log((1234.5).toPrecision(2)); // Ausgabe: 1.2e+3
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES3')}}{{Spec2('ES3')}}Initiale Definition. Implementiert in JavaScript 1.5.
{{SpecName('ES5.1', '#sec-15.7.4.7', 'Number.prototype.toPrecision')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-number.prototype.toprecision', 'Number.prototype.toPrecision')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-number.prototype.toprecision', 'Number.prototype.toPrecision')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Number.toPrecision")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/number/tosource/index.html b/files/de/web/javascript/reference/global_objects/number/tosource/index.html new file mode 100644 index 0000000000..985df99c0a --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/number/tosource/index.html @@ -0,0 +1,53 @@ +--- +title: Number.prototype.toSource() +slug: Web/JavaScript/Reference/Global_Objects/Number/toSource +tags: + - JavaScript + - Method + - Number + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Number/toSource +--- +
{{JSRef}} {{non-standard_header}}
+ +

Die toSource() Methode gibt einen string zurück, der den Quelltext des Objektes repräsentiert.

+ +

Syntax

+ +
numObj.toSource()
+Number.toSource()
+ +

Rückgabewert

+ +

Einen String, der den Quelltext des Objektes repräsentiert.

+ +

Beschreibung

+ +

Die toSource() gibt die folgenden Werte zurück:

+ +

Für das globale Standardobjekt {{jsxref("Number")}} gibt toSource() den folgenden string zurück, um anzuzeigen, dass der Quelltext nicht verfügbar ist:

+ +
function Number() {
+    [native code]
+}
+
+ +

Für Instanzen von {{jsxref("Number")}}, gibt toSource() einen string mit dem Quelltext zurück.

+ +

Diese Methode wird intern von JavaScript aufgerufen und wird nicht im Quelltext von Webseiten verwendet.

+ +

Spezifikationen

+ +

Ist in keinem Standard. Implementiert in JavaScript 1.3.

+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Number.toSource")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/number/tostring/index.html b/files/de/web/javascript/reference/global_objects/number/tostring/index.html new file mode 100644 index 0000000000..ed5d600b3a --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/number/tostring/index.html @@ -0,0 +1,116 @@ +--- +title: Number.prototype.toString() +slug: Web/JavaScript/Reference/Global_Objects/Number/toString +tags: + - JavaScript + - Method + - Number + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Number/toString +--- +
{{JSRef}}
+ +

Die toString() Methode gibt einen string (Zeichenkette), die ein {{jsxref("Number")}} Objekt repräsentiert zurück.

+ +
{{EmbedInteractiveExample("pages/js/number-tostring.html")}}
+ + + +

Syntax

+ +
numObj.toString([radix])
+ +

Parameter

+ +
+
radix
+
Optional. Eine ganze Zahl im Bereich von 2 bis 36 welche die Basis des Zahlensystems angibt, in dem die Zahl repräsentiert werden soll.
+
+ +

Rückgabewert

+ +

Einen String, der das spezifizierte {{jsxref("Number")}} Objekt repräsentiert.

+ +

Ausnahmen

+ +
+
{{jsxref("RangeError")}}
+
Wenn toString() als radix Parameter eine Zahl kleiner 2 oder größer 36 übergeben bekommt, wird ein {{jsxref("RangeError")}} erzeugt.
+
+ +

Beschreibung

+ +

Das {{jsxref("Number")}} Objekt überschreibt die toString() Methode des {{jsxref("Object")}} Objektes. Es erbt nicht von der  {{jsxref("Object.prototype.toString()")}} Methode. Für {{jsxref( "Number")}} Objekte gibt die toString() Methode eine string-Repräsentation des Objektes in dem durch radix spezifizierten Zahlensystem zurück.

+ +

Die toString() Methode analysiert das erste Argument und versucht eine string-Repräsentation im durch radix beschriebenen Zahlensystem zurück zu geben. Für radix (Basen) größer als 10 werden Buchstaben des Alphabets genutzt um Zahlen größer als 9 darzustellen. Zum Beispiel werden im Hexadezimalsystem (Basis 16) die Buchstaben a bis f eingesetzt.

+ +

Wenn der radix Parameter nicht angegeben wird, wird 10, also das Dezimalsystem, angenommen.

+ +

Wenn das numObj Objekt negativ ist, wird das Vorzeichen beibehalten. Dieses Verhalten ist auch im Binärsystem so: Der zurückgegebene string ist eine positive Binärdarstellung des numObj Objekts mit einem vorangestellten Minus (-) Zeichen. Es wird kein Zweierkomplement verwendet.

+ +

Wenn das numObj Objekt keine ganze Zahl ist, wird ein Punkt (.) eingesetzt, um den ganzzahligen Teil von den Dezimalstellen zu trennen.

+ +

Beispiele

+ +

Einsatz von toString

+ +
var count = 10;
+
+console.log(count.toString());    // Ausgabe '10'
+console.log((17).toString());     // Ausgabe '17'
+console.log((17.2).toString());   // Ausgabe '17.2'
+
+var x = 6;
+
+console.log(x.toString(2));       // Ausgabe '110'
+console.log((254).toString(16));  // Ausgabe 'fe'
+
+console.log((-10).toString(2));   // Ausgabe '-1010'
+console.log((-0xff).toString(2)); // Ausgabe '-11111111'
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES1')}}{{Spec2('ES1')}}Initiale Definition. Implementiert in JavaScript 1.1.
{{SpecName('ES5.1', '#sec-15.7.4.2', 'Number.prototype.tostring')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-number.prototype.tostring', 'Number.prototype.tostring')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-number.prototype.tostring', 'Number.prototype.tostring')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Number.toString")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/number/valueof/index.html b/files/de/web/javascript/reference/global_objects/number/valueof/index.html new file mode 100644 index 0000000000..1538417ebf --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/number/valueof/index.html @@ -0,0 +1,85 @@ +--- +title: Number.prototype.valueOf() +slug: Web/JavaScript/Reference/Global_Objects/Number/valueOf +tags: + - JavaScript + - Method + - Number + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Number/valueOf +--- +
{{JSRef}}
+ +

Die valueOf() Methode gibt den im  {{jsxref("Number")}} Objekt eingeschlossenen primitiven Wert zurück.

+ +
{{EmbedInteractiveExample("pages/js/number-valueof.html")}}
+ + + +

Syntax

+ +
numObj.valueOf()
+ +

Rückgabewert

+ +

Ein primitiver Wert (Zahl), der die Zahl des {{jsxref("Number")}} Objektes repräsentiert.

+ +

Beschreibung

+ +

Die Methode wird intern von JavaScript aufgerufen, jedoch nicht explizit in einem programmierten Quelltext für eine Webseite eingesetzt.

+ +

Beispiele

+ +

Einsatz von valueOf

+ +
var numObj = new Number(10);
+console.log(typeof numObj); // object
+
+var num = numObj.valueOf();
+console.log(num);           // 10
+console.log(typeof num);    // number
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES1')}}{{Spec2('ES1')}}Initiale Definition. Implementiert in JavaScript 1.1.
{{SpecName('ES5.1', '#sec-15.7.4.4', 'Number.prototype.valueOf')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-number.prototype.valueof', 'Number.prototype.valueOf')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-number.prototype.valueof', 'Number.prototype.valueOf')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Number.valueOf")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/object/__definegetter__/index.html b/files/de/web/javascript/reference/global_objects/object/__definegetter__/index.html new file mode 100644 index 0000000000..5e88304f5f --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/object/__definegetter__/index.html @@ -0,0 +1,150 @@ +--- +title: Object.prototype.__defineGetter__() +slug: Web/JavaScript/Reference/Global_Objects/Object/__defineGetter__ +translation_of: Web/JavaScript/Reference/Global_Objects/Object/__defineGetter__ +--- +
{{JSRef}}
+ +
+

This feature is deprecated in favor of defining getters using the object initializer syntax or the {{jsxref("Object.defineProperty()")}} API. While this feature is widely implemented, it is only described in the ECMAScript specification because of legacy usage. This method should not be used since better alternatives exist.

+
+ +

Die __defineGetter__ Methode bindet eine Eigenschaft des Objects an eine Funktion, die aufgerufen wird, wenn das Object angesehen wird.

+ +

Syntax

+ +
obj.__defineGetter__(prop, func)
+ +

Parameters

+ +
+
prop
+
Ein String der den Namen der zur Funktion gebundenen Eigenschaft enthält
+
func
+
Eine Funktion die zur Eigenschaft gebunden wird.
+
+ +

Return value

+ +

{{jsxref("undefined")}}.

+ +

Description

+ +

Die __defineGetter__ erlaubt einen {{jsxref("Operators/get", "getter", "", 1)}} auf ein Object zu erstellen.

+ +

Examples

+ +
// Nicht standard und veraltete Weise
+
+var o = {};
+o.__defineGetter__('gimmeFive', function() { return 5; });
+console.log(o.gimmeFive); // 5
+
+
+// Üblicher Weg
+
+// Mithilfe der get Methode
+var o = { get gimmeFive() { return 5; } };
+console.log(o.gimmeFive); // 5
+
+// Mithilfe von Object.defineProperty
+var o = {};
+Object.defineProperty(o, 'gimmeFive', {
+  get: function() {
+    return 5;
+  }
+});
+console.log(o.gimmeFive); // 5
+
+ +

Specifications

+ + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('ESDraft', '#sec-object.prototype.__defineGetter__', 'Object.prototype.__defineGetter__()')}}{{Spec2('ESDraft')}}Included in the (normative) annex for additional ECMAScript legacy features for Web browsers (note that the specification codifies what is already in implementations).
+ +

Browser compatibility

+ +
{{CompatibilityTable}}
+ +
+ + + + + + + + + + + + + + + + + + + + + +
FeatureChromeEdgeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatIE("11")}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + +
FeatureAndroidChrome for AndroidEdgeFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
+
+ +

Compatibility notes

+ + + +

See also

+ + diff --git a/files/de/web/javascript/reference/global_objects/object/assign/index.html b/files/de/web/javascript/reference/global_objects/object/assign/index.html new file mode 100644 index 0000000000..0359e1e5c9 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/object/assign/index.html @@ -0,0 +1,277 @@ +--- +title: Object.assign() +slug: Web/JavaScript/Reference/Global_Objects/Object/assign +tags: + - ECMAScript 2015 + - JavaScript + - Method + - Object + - Reference + - polyfill +translation_of: Web/JavaScript/Reference/Global_Objects/Object/assign +--- +
{{JSRef}}
+ +

Die Methode Object.assign() kopiert die Werte aller aufzählbaren, eigenen Eigenschaften von einem oder mehreren Quellobjekten in ein Zielobjekt. Es wird das Zielobjekt zurückgegeben.

+ +
{{EmbedInteractiveExample("pages/js/object-assign.html")}}
+ + + +

Syntax

+ +
Object.assign(target, ...sources)
+ +

Parameter

+ +
+
target
+
Das Zielobjekt.
+
sources
+
Das(Die) Quellobjekt(e).
+
+ +

Rückgabewert

+ +

Das Zielobjekt.

+ +

Beschreibung

+ +

Eigenschaften in dem Zielobjekt werden von Eigenschaften aus dem Quellobjekt überschrieben, wenn sie den gleichen Schlüssel haben.

+ +

Die Methode Object.assign() kopiert nur aufzählbare und eigene Eigenschaften eines Quellobjekts ins Zielobjekt. Sie verwendet [[Get]] bei der Quelle und [[Set]] beim Ziel, d.h. es werden getters und setters aufgerufen. Daher weist es Eigenschaften zu statt sie nur zu kopieren oder neue Eigenschaften zu definieren. Daher ist die Methode ungeeignet, um neue Eigenschaften zu einem Prototypen hinzufügen wenn die Quellen getters enthalten. Zum Kopieren von Eigenschaftsdefinitionen, einschließlich ihrer Aufzählbarkeit, in Prototypen sollten daher {{jsxref("Object.getOwnPropertyDescriptor()")}} und {{jsxref("Object.defineProperty()")}} verwendet werden.

+ +

Sowohl {{jsxref("String")}}- als auch {{jsxref("Symbol")}}-Eigenschaften werden kopiert.

+ +

Im Fehlerfall, weil z.B. eine Eigenschaft schreibgeschützt ist, wird ein {{jsxref("TypeError")}} erzeugt. Das Zielobjekt kann verändert sein, wenn ein Eigenschaft schon zuvor hinzugefügt wurde.

+ +

Es gilt zu beachten, dass Object.assign() keine Ausnahme bei {{jsxref("null")}} oder {{jsxref("undefined")}} Quellwerten erzeugt.

+ +

Beispiele

+ +

Klonen eines Objekts

+ +
var obj = { a: 1 };
+var copy = Object.assign({}, obj);
+console.log(copy); // { a: 1 }
+
+ +

Warnung bei tiefem Clonen

+ +

Für tiefes Clonen müssen andere Alternativen eingesetzt werden, weil Object.assign() Werte von Eigenschaften kopiert. Wenn ein Quellwert eine Referenz zu einem Objekt ist, wird nur die Referenz kopiert.

+ +
function test() {
+  'use strict';
+
+  let obj1 = { a: 0 , b: { c: 0}};
+  let obj2 = Object.assign({}, obj1);
+  console.log(JSON.stringify(obj2)); // { a: 0, b: { c: 0}}
+
+  obj1.a = 1;
+  console.log(JSON.stringify(obj1)); // { a: 1, b: { c: 0}}
+  console.log(JSON.stringify(obj2)); // { a: 0, b: { c: 0}}
+
+  obj2.a = 2;
+  console.log(JSON.stringify(obj1)); // { a: 1, b: { c: 0}}
+  console.log(JSON.stringify(obj2)); // { a: 2, b: { c: 0}}
+
+  obj2.b.c = 3;
+  console.log(JSON.stringify(obj1)); // { a: 1, b: { c: 3}}
+  console.log(JSON.stringify(obj2)); // { a: 2, b: { c: 3}}
+
+  // Deep Clone
+  obj1 = { a: 0 , b: { c: 0}};
+  let obj3 = JSON.parse(JSON.stringify(obj1));
+  obj1.a = 4;
+  obj1.b.c = 4;
+  console.log(JSON.stringify(obj3)); // { a: 0, b: { c: 0}}
+}
+
+test();
+ +

Objekte zusammenführen

+ +
var o1 = { a: 1 };
+var o2 = { b: 2 };
+var o3 = { c: 3 };
+
+var obj = Object.assign(o1, o2, o3);
+console.log(obj); // { a: 1, b: 2, c: 3 }
+console.log(o1);  // { a: 1, b: 2, c: 3 }, target object itself is changed.
+
+ +

Objekte mit gleichen Eigenschaften zusammenführen

+ +
var o1 = { a: 1, b: 1, c: 1 };
+var o2 = { b: 2, c: 2 };
+var o3 = { c: 3 };
+
+var obj = Object.assign({}, o1, o2, o3);
+console.log(obj); // { a: 1, b: 2, c: 3 }
+ +

Eigenschaften werden von anderen Objekten mit gleichen Eigenschaften später in Parameterreihenfolge überschrieben.

+ +

Kopieren von Symboltyp-Eigenschaften

+ +
var o1 = { a: 1 };
+var o2 = { [Symbol('foo')]: 2 };
+
+var obj = Object.assign({}, o1, o2);
+console.log(obj); // { a: 1, [Symbol("foo")]: 2 } (siehe Bug 1207182 in Firefox)
+Object.getOwnPropertySymbols(obj); // [Symbol(foo)]
+ +

Eigenschaften der Prototypkette und nicht aufzählbare Eigenschaften können nicht kopiert werden

+ +
var obj = Object.create({ foo: 1 }, { // foo is on obj's prototype chain.
+  bar: {
+    value: 2  // bar is a non-enumerable property.
+  },
+  baz: {
+    value: 3,
+    enumerable: true  // baz is an own enumerable property.
+  }
+});
+
+var copy = Object.assign({}, obj);
+console.log(copy); // { baz: 3 }
+
+ +

Primitive Datentypen werden in Objekte gepackt

+ +
var v1 = 'abc';
+var v2 = true;
+var v3 = 10;
+var v4 = Symbol('foo');
+
+var obj = Object.assign({}, v1, null, v2, undefined, v3, v4);
+// Primitives will be wrapped, null and undefined will be ignored.
+// Note, only string wrappers can have own enumerable properties.
+console.log(obj); // { "0": "a", "1": "b", "2": "c" }
+
+ +

Fehler unterbrechen den laufenden Kopiervorgang

+ +
var target = Object.defineProperty({}, 'foo', {
+  value: 1,
+  writable: false
+}); // target.foo is a read-only property
+
+Object.assign(target, { bar: 2 }, { foo2: 3, foo: 3, foo3: 3 }, { baz: 4 });
+// TypeError: "foo" is read-only
+// The Exception is thrown when assigning target.foo
+
+console.log(target.bar);  // 2, the first source was copied successfully.
+console.log(target.foo2); // 3, the first property of the second source was copied successfully.
+console.log(target.foo);  // 1, exception is thrown here.
+console.log(target.foo3); // undefined, assign method has finished, foo3 will not be copied.
+console.log(target.baz);  // undefined, the third source will not be copied either.
+
+ +

Kopieren von Zugriffsmethoden

+ +
var obj = {
+  foo: 1,
+  get bar() {
+    return 2;
+  }
+};
+
+var copy = Object.assign({}, obj);
+console.log(copy);
+// { foo: 1, bar: 2 }, the value of copy.bar is obj.bar's getter's return value.
+
+// This is an assign function that copies full descriptors
+function completeAssign(target, ...sources) {
+  sources.forEach(source => {
+    let descriptors = Object.keys(source).reduce((descriptors, key) => {
+      descriptors[key] = Object.getOwnPropertyDescriptor(source, key);
+      return descriptors;
+    }, {});
+    // by default, Object.assign copies enumerable Symbols too
+    Object.getOwnPropertySymbols(source).forEach(sym => {
+      let descriptor = Object.getOwnPropertyDescriptor(source, sym);
+      if (descriptor.enumerable) {
+        descriptors[sym] = descriptor;
+      }
+    });
+    Object.defineProperties(target, descriptors);
+  });
+  return target;
+}
+
+var copy = completeAssign({}, obj);
+console.log(copy);
+// { foo:1, get bar() { return 2 } }
+
+ +

Polyfill

+ +

Dieses {{Glossary("Polyfill","polyfill")}} unterstützt keine Symboleigenschaften, da ES5 ohnehin keine Symbole hat:

+ +
if (typeof Object.assign != 'function') {
+  // Must be writable: true, enumerable: false, configurable: true
+  Object.defineProperty(Object, "assign", {
+    value: function assign(target, varArgs) { // .length of function is 2
+      'use strict';
+      if (target == null) { // TypeError if undefined or null
+        throw new TypeError('Cannot convert undefined or null to object');
+      }
+
+      var to = Object(target);
+
+      for (var index = 1; index < arguments.length; index++) {
+        var nextSource = arguments[index];
+
+        if (nextSource != null) { // Skip over if undefined or null
+          for (var nextKey in nextSource) {
+            // Avoid bugs when hasOwnProperty is shadowed
+            if (Object.prototype.hasOwnProperty.call(nextSource, nextKey)) {
+              to[nextKey] = nextSource[nextKey];
+            }
+          }
+        }
+      }
+      return to;
+    },
+    writable: true,
+    configurable: true
+  });
+}
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES2015', '#sec-object.assign', 'Object.assign')}}{{Spec2('ES2015')}}Initiale Definition.
{{SpecName('ESDraft', '#sec-object.assign', 'Object.assign')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.Object.assign")}}

+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/object/constructor/index.html b/files/de/web/javascript/reference/global_objects/object/constructor/index.html new file mode 100644 index 0000000000..d524a73679 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/object/constructor/index.html @@ -0,0 +1,192 @@ +--- +title: Object.prototype.constructor +slug: Web/JavaScript/Reference/Global_Objects/Object/constructor +tags: + - JavaScript + - Object + - Property + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Object/constructor +--- +
{{JSRef("Global_Objects", "Object")}}
+ +

Zusammenfassung

+ +

Gibt eine Referenz zur {{jsxref("Global_Objects/Object", "Object")}}-Funktion, welche die  Instanz vom Prototyp herstellt. Merke: Der Wert dieser Eigenschaft ist eine Referenz auf die Funktion selbst und kein String mit dem Funktionsnamen als Inhalt. Der Wert ist nur  lesbar für primitive Werte, wie 1, true und "test".

+ +

Beschreibung

+ +

Alle Objekte erben eine constructor- Eigenschaft von ihrem prototype:

+ +
var o = {};
+o.constructor === Object; // true
+
+var a = [];
+a.constructor === Array; // true
+
+var n = new Number(3);
+n.constructor === Number; // true
+
+ +

Beispiele

+ +

Beispiel: zeigen den Konstruktor von einem Objekt an

+ +

Das folgende Beispiel erzeugt einen Prototyp: Tree, und ein Objekt von jenem Typ: theTree. Das Beispiel zeigt danach die Konstruktor-Eigenschaft vom Objekt:theTree an.

+ +
function Tree(name) {
+  this.name = name;
+}
+
+var theTree = new Tree('Redwood');
+console.log('theTree.constructor is ' + theTree.constructor);
+
+ +

Das Beispiel erzeugt folgende Ausgabe:

+ +
theTree.constructor is function Tree(name) {
+  this.name = name;
+}
+
+ +

Beispiel: Veränderung des Konstruktors eines Objekts

+ +

Das folgende Beispiel zeigt, wie man den Konstruktorwert eines generischen Objekts verändert. Nur true, 1 und "test" werden nicht von der Veränderung betroffen, da sie nur lesbare (read-only) native Konstruktoren haben. Dieses Beispiel zeigt, dass es nicht immer sicher ist, sich auf die Konstruktor-Eigenschaft eines Objekts zu verlassen.

+ +
function Type () {}
+
+var types = [
+  new Array(),
+  [],
+  new Boolean(),
+  true,             // bleibt unverändert
+  new Date(),
+  new Error(),
+  new Function(),
+  function () {},
+  Math,
+  new Number(),
+  1,                // bleibt unverändert
+  new Object(),
+  {},
+  new RegExp(),
+  /(?:)/,
+  new String(),
+  'test'            // bleibt unverändert
+];
+
+for (var i = 0; i < types.length; i++) {
+  types[i].constructor = Type;
+  types[i] = [types[i].constructor, types[i] instanceof Type, types[i].toString()];
+}
+
+console.log(types.join('\n'));
+
+ +

Das Beispiel zeigt folgende Ausgabe:

+ +
function Type() {},false,
+function Type() {},false,
+function Type() {},false,false
+function Boolean() {
+    [native code]
+},false,true
+function Type() {},false,Mon Sep 01 2014 16:03:49 GMT+0600
+function Type() {},false,Error
+function Type() {},false,function anonymous() {
+
+}
+function Type() {},false,function () {}
+function Type() {},false,[object Math]
+function Type() {},false,0
+function Number() {
+    [native code]
+},false,1
+function Type() {},false,[object Object]
+function Type() {},false,[object Object]
+function Type() {},false,/(?:)/
+function Type() {},false,/(?:)/
+function Type() {},false,
+function String() {
+    [native code]
+},false,тест
+
+ +

Spezifikation

+ + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKomentar
ECMAScript 1 te Edition.StandardAusgangsdefinition: Implementiert in JavaScript 1.1.
{{SpecName('ES5.1', '#sec-15.2.4.1', 'Object.prototype.constructor')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-object.prototype.constructor', 'Object.prototype.constructor')}}{{Spec2('ES6')}} 
+ +

Browserunterstützung

+ +
{{CompatibilityTable}}
+ +
+ + + + + + + + + + + + + + + + + + + +
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basis- unterstützung{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + +
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basis- unterstützungt{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
+
diff --git a/files/de/web/javascript/reference/global_objects/object/create/index.html b/files/de/web/javascript/reference/global_objects/object/create/index.html new file mode 100644 index 0000000000..824ae41561 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/object/create/index.html @@ -0,0 +1,268 @@ +--- +title: Object.create() +slug: Web/JavaScript/Reference/Global_Objects/Object/create +tags: + - Methode(2) + - Méthode + - Objekt + - Referenz +translation_of: Web/JavaScript/Reference/Global_Objects/Object/create +--- +
{{JSRef("Global_Objects", "Object")}}
+ +

Summary

+ +

Die Object.create() Methode erstellt ein neues Objekt mit dem angegebenen Prototype object und ggf. zusätzlichen Eigenschaften (properties).

+ +

Syntax

+ +
Object.create(proto[, propertiesObject])
+ +

Parameter

+ +
+
proto
+
Das Objekt, welches als Prototype object des zu erstellenden Objekts verwendet wird.
+
propertiesObject
+
Optional. Falls angegeben und nicht {{jsxref("Global_Objects/undefined", "undefined")}}, ein Objekt dessen aufzählbare eigene Eigenschaften (properties, d.h.: Eigenschaften, die für das Objekt selbst definiert wurden und nicht in der prototype chain) als Eigenschaften dem neu erstellten Objekt hinzugefügt werden.  Die Eigenschaften entsprechen dem zweiten Parameter von {{jsxref("Object.defineProperties()")}}.
+
+ +

Rückgabewert

+ +

Ein neu erzeugtes Objekt mit dem angegebenen Prototype object und den angebenenen Eigenschaften (properties).

+ +

Ausnahmen

+ +

Eine {{jsxref("Global_Objects/TypeError", "TypeError")}}-Ausnahme wird ausgelöst, wenn der proto-Parameter weder {{jsxref("Global_Objects/null", "null")}} noch ein Objekt ist.

+ +

Beispiele

+ +

Beispiel: Klassenbasierte Vererbung mit Object.create()

+ +

Im folgenden sehen Sie ein Beispiel wie man Object.create() verwenden kann, um klassenbasierte Vererbung zu realisieren. JavaScript unterstützt nur einzelne Vererbung.

+ +
// Shape - superclass
+function Shape() {
+  this.x = 0;
+  this.y = 0;
+}
+
+// superclass method
+Shape.prototype.move = function(x, y) {
+  this.x += x;
+  this.y += y;
+  console.info('Shape moved.');
+};
+
+// Rectangle - subclass
+function Rectangle() {
+  Shape.call(this); // call super constructor.
+}
+
+// subclass extends superclass
+Rectangle.prototype = Object.create(Shape.prototype);
+Rectangle.prototype.constructor = Rectangle;
+
+var rect = new Rectangle();
+
+console.log('Is rect an instance of Rectangle? ' + (rect instanceof Rectangle)); // true
+console.log('Is rect an instance of Shape? ' + (rect instanceof Shape)); // true
+rect.move(1, 1); // Outputs, 'Shape moved.'
+
+ +

Wenn Sie von mehreren Objekten erben wollen, können mixins verwendet werden.

+ +
function MyClass() {
+  SuperClass.call(this);
+  OtherSuperClass.call(this);
+}
+
+MyClass.prototype = Object.create(SuperClass.prototype); // inherit
+mixin(MyClass.prototype, OtherSuperClass.prototype); // mixin
+
+MyClass.prototype.myMethod = function() {
+  // do a thing
+};
+
+ +

Die mixin Funktion kopiert die Funktionen des superclass Prototypen in den subclass Prototyp. Die mixin Funktion muss vom Benutzer bereitgestellt werden. Ein Beispiel für eine mixin-ähnliche Funktion ist jQuery.extend().

+ +

Beispiel: Benutzung des propertiesObject Parameters von Object.create()

+ +
var o;
+
+// create an object with null as prototype
+o = Object.create(null);
+
+
+o = {};
+// is equivalent to:
+o = Object.create(Object.prototype);
+
+
+// Example where we create an object with a couple of sample properties.
+// (Note that the second parameter maps keys to *property descriptors*.)
+o = Object.create(Object.prototype, {
+  // foo is a regular 'value property'
+  foo: { writable: true, configurable: true, value: 'hello' },
+  // bar is a getter-and-setter (accessor) property
+  bar: {
+    configurable: false,
+    get: function() { return 10; },
+    set: function(value) { console.log('Setting `o.bar` to', value); }
+/* with ES5 Accessors our code can look like this
+    get function() { return 10; },
+    set function(value) { console.log('setting `o.bar` to', value); } */
+  }
+});
+
+
+function Constructor() {}
+o = new Constructor();
+// is equivalent to:
+o = Object.create(Constructor.prototype);
+// Of course, if there is actual initialization code in the
+// Constructor function, the Object.create() cannot reflect it
+
+
+// create a new object whose prototype is a new, empty object
+// and a adding single property 'p', with value 42
+o = Object.create({}, { p: { value: 42 } });
+
+// by default properties ARE NOT writable, enumerable or configurable:
+o.p = 24;
+o.p;
+// 42
+
+o.q = 12;
+for (var prop in o) {
+  console.log(prop);
+}
+// 'q'
+
+delete o.p;
+// false
+
+// to specify an ES3 property
+o2 = Object.create({}, {
+  p: {
+    value: 42,
+    writable: true,
+    enumerable: true,
+    configurable: true
+  }
+});
+
+ +

Polyfill

+ +

Dieser Polyfill deckt den Hauptanwendungsfall, die Erzeugung eines neuen Objektes für das ein Prototyp ausgewählt wurde, ab.

+ +

Bitte beachten Sie, dass dieses Polyfill im Gegensatz zum echten ES5 Object.create den Einsatz von null als Prototyp-Parameter aufgrund einer Einschränkung von ECMAScript vor Version 5 nicht unterstützt.

+ +
if (typeof Object.create != 'function') {
+  Object.create = (function(undefined) {
+    var Temp = function() {};
+    return function (prototype, propertiesObject) {
+      if(prototype !== Object(prototype) && prototype !== null) {
+        throw TypeError('Argument must be an object, or null');
+      }
+      Temp.prototype = prototype || {};
+      if (propertiesObject !== undefined) {
+        Object.defineProperties(Temp.prototype, propertiesObject);
+      }
+      var result = new Temp();
+      Temp.prototype = null;
+      // to imitate the case of Object.create(null)
+      if(prototype === null) {
+         result.__proto__ = null;
+      }
+      return result;
+    };
+  })();
+}
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('ES5.1', '#sec-15.2.3.5', 'Object.create')}}{{Spec2('ES5.1')}}Initial definition. Implemented in JavaScript 1.8.5.
{{SpecName('ES6', '#sec-object.create', 'Object.create')}}{{Spec2('ES6')}} 
+ +

Browser Kompatibilität

+ +
{{CompatibilityTable}}
+ +
+ + + + + + + + + + + + + + + + + + + +
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support{{CompatChrome("5")}}{{CompatGeckoDesktop("2")}}{{CompatIE("9")}}{{CompatOpera("11.60")}}{{CompatSafari("5")}}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + +
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatGeckoDesktop("2")}}{{CompatVersionUnknown}}{{CompatOperaMobile("11.50")}}{{CompatVersionUnknown}}
+
+ +

Basierend auf Kangax's compat table.

+ +

Zusätzliches Material

+ + diff --git a/files/de/web/javascript/reference/global_objects/object/defineproperty/index.html b/files/de/web/javascript/reference/global_objects/object/defineproperty/index.html new file mode 100644 index 0000000000..7120abb08e --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/object/defineproperty/index.html @@ -0,0 +1,413 @@ +--- +title: Object.defineProperty() +slug: Web/JavaScript/Reference/Global_Objects/Object/defineProperty +tags: + - Méthode + - Objekt +translation_of: Web/JavaScript/Reference/Global_Objects/Object/defineProperty +--- +
{{JSRef}}
+ +

Die Methode Object.defineProperty() definiert eine neue Eigenschaft direkt auf ein Objekt, oder modifiziert eine Eigenschaft. Schließlich gibt die Funktion das Objekt zurück.

+ +

Syntax

+ +
Object.defineProperty(obj, prop, descriptor)
+ +

Parameter

+ +
+
obj
+
Das Objekt, welchem die neue Eigenschaft zugewiesen werden soll.
+
prop
+
Der Name der Eigenschaft, welche hinzugefügt oder modifiziert werden soll.
+
descriptor
+
Die Beschreibung/ der Wert, welche die neue Eigenschaft annehmen soll.
+
+ +

Rückgabewert

+ +

Das Objekt, welches behandelt wurde.

+ +

Beschreibung

+ +

Diese Methode erlaubt präzises Hinzufügen oder Modifizieren von Eigenschaften eines Objektes. Normal property addition through assignment creates properties which show up during property enumeration ({{jsxref("Statements/for...in", "for...in")}} loop or {{jsxref("Object.keys")}} method), whose values may be changed, and which may be {{jsxref("Operators/delete", "deleted", "", 1)}}. This method allows these extra details to be changed from their defaults. Standardmäßig sind Werte die mit Object.defineProperty() hinzugefügt wurden unveränderbar.

+ +

Attribut Deskriptoren unterscheiden sich in zwei Varianten: Daten Deskriptoren und Zugiffsdeskriptoren. Ein Datendeskriptor ist ein Attribut welches einen Wert hat das schreibbar oder nicht schreibbar sein kann. Ein Zugriffsdeskriptor ist ein Attribut das mit einem "getter/setter Paar" beschrieben wird. Ein Deskriptor muss von einer dieser beiden Arten sein, er kann nicht beides sein.

+ +

Beide, Daten- und Zugriffsdeskriptoren sind Objekte. Sie teilen die folgenden benötigten Objektschlüssel:

+ +
+
configurable
+
true if and only if the type of this property descriptor may be changed and if the property may be deleted from the corresponding object.
+ Defaults to false.
+
enumerable
+
true if and only if this property shows up during enumeration of the properties on the corresponding object.
+ Defaults to false.
+
+ +

Ein Datendeskriptor hat außerdem die folgenden, optionalen Schlüssel:

+ +
+
value
+
The value associated with the property. Can be any valid JavaScript value (number, object, function, etc).
+ Defaults to {{jsxref("undefined")}}.
+
writable
+
true if and only if the value associated with the property may be changed with an {{jsxref("Operators/Assignment_Operators", "assignment operator", "", 1)}}.
+ Defaults to false.
+
+ +

Ein Zugriffsdeskriptor hat außerdem die folgenden, optionalen Schlüssel:

+ +
+
get
+
A function which serves as a getter for the property, or {{jsxref("undefined")}} if there is no getter. The function return will be used as the value of property.
+ Defaults to {{jsxref("undefined")}}.
+
set
+
A function which serves as a setter for the property, or {{jsxref("undefined")}} if there is no setter. The function will receive as only argument the new value being assigned to the property.
+ Defaults to {{jsxref("undefined")}}.
+
+ +

Bear in mind that these options are not necessarily the descriptor's own properties, and properties inherited from the prototype chain will be considered too. In order to ensure these defaults are preserved you might freeze the {{jsxref("Object.prototype")}} upfront or specify all options explicitly.

+ +
// being explicit
+Object.defineProperty(obj, 'key', {
+  enumerable: false,
+  configurable: false,
+  writable: false,
+  value: 'static'
+});
+
+// recycling same object
+function withValue(value) {
+  var d = withValue.d || (
+    withValue.d = {
+      enumerable: false,
+      writable: false,
+      configurable: false,
+      value: null
+    }
+  );
+  d.value = value;
+  return d;
+}
+// ... and ...
+Object.defineProperty(obj, 'key', withValue('static'));
+
+// if freeze is available, prevents adding or
+// removing the object prototype properties
+// (value, get, set, enumerable, writable, configurable)
+(Object.freeze || Object)(Object.prototype);
+
+ +

Examples

+ +

If you want to see how to use the Object.defineProperty method with a binary-flags-like syntax, see additional examples.

+ +

Creating a property

+ +

When the property specified doesn't exist in the object, Object.defineProperty() creates a new property as described. Fields may be omitted from the descriptor, and default values for those fields are imputed. All of the Boolean-valued fields default to false. The value, get, and set fields default to {{jsxref("undefined")}}. A property which is defined without get/set/value/writable is called “generic” and is “typed” as a data descriptor.

+ +
var o = {}; // Creates a new object
+
+// Example of an object property added with defineProperty with a data property descriptor
+Object.defineProperty(o, 'a', {
+  value: 37,
+  writable: true,
+  enumerable: true,
+  configurable: true
+});
+// 'a' property exists in the o object and its value is 37
+
+// Example of an object property added with defineProperty with an accessor property descriptor
+var bValue = 38;
+Object.defineProperty(o, 'b', {
+  get: function() { return bValue; },
+  set: function(newValue) { bValue = newValue; },
+  enumerable: true,
+  configurable: true
+});
+o.b; // 38
+// 'b' property exists in the o object and its value is 38
+// The value of o.b is now always identical to bValue, unless o.b is redefined
+
+// You cannot try to mix both:
+Object.defineProperty(o, 'conflict', {
+  value: 0x9f91102,
+  get: function() { return 0xdeadbeef; }
+});
+// throws a TypeError: value appears only in data descriptors, get appears only in accessor descriptors
+
+ +

Modifying a property

+ +

When the property already exists, Object.defineProperty() attempts to modify the property according to the values in the descriptor and the object's current configuration. If the old descriptor had its configurable attribute set to false (the property is said to be “non-configurable”), then no attribute besides writable can be changed. In that case, it is also not possible to switch back and forth between the data and accessor property types.

+ +

If a property is non-configurable, its writable attribute can only be changed to false.

+ +

A {{jsxref("TypeError")}} is thrown when attempts are made to change non-configurable property attributes (besides the writable attribute) unless the current and new values are the same.

+ +

Writable attribute

+ +

When the writable property attribute is set to false, the property is said to be “non-writable”. It cannot be reassigned.

+ +
var o = {}; // Creates a new object
+
+Object.defineProperty(o, 'a', {
+  value: 37,
+  writable: false
+});
+
+console.log(o.a); // logs 37
+o.a = 25; // No error thrown (it would throw in strict mode, even if the value had been the same)
+console.log(o.a); // logs 37. The assignment didn't work.
+
+ +

As seen in the example, trying to write into the non-writable property doesn't change it but doesn't throw an error either.

+ +

Enumerable attribute

+ +

The enumerable property attribute defines whether the property shows up in a {{jsxref("Statements/for...in", "for...in")}} loop and {{jsxref("Object.keys()")}} or not.

+ +
var o = {};
+Object.defineProperty(o, 'a', { value: 1, enumerable: true });
+Object.defineProperty(o, 'b', { value: 2, enumerable: false });
+Object.defineProperty(o, 'c', { value: 3 }); // enumerable defaults to false
+o.d = 4; // enumerable defaults to true when creating a property by setting it
+
+for (var i in o) {
+  console.log(i);
+}
+// logs 'a' and 'd' (in undefined order)
+
+Object.keys(o); // ['a', 'd']
+
+o.propertyIsEnumerable('a'); // true
+o.propertyIsEnumerable('b'); // false
+o.propertyIsEnumerable('c'); // false
+
+ +

Configurable attribute

+ +

The configurable attribute controls at the same time whether the property can be deleted from the object and whether its attributes (other than writable) can be changed.

+ +
var o = {};
+Object.defineProperty(o, 'a', {
+  get: function() { return 1; },
+  configurable: false
+});
+
+Object.defineProperty(o, 'a', { configurable: true }); // throws a TypeError
+Object.defineProperty(o, 'a', { enumerable: true }); // throws a TypeError
+Object.defineProperty(o, 'a', { set: function() {} }); // throws a TypeError (set was undefined previously)
+Object.defineProperty(o, 'a', { get: function() { return 1; } }); // throws a TypeError (even though the new get does exactly the same thing)
+Object.defineProperty(o, 'a', { value: 12 }); // throws a TypeError
+
+console.log(o.a); // logs 1
+delete o.a; // Nothing happens
+console.log(o.a); // logs 1
+
+ +

If the configurable attribute of o.a had been true, none of the errors would be thrown and the property would be deleted at the end.

+ +

Adding properties and default values

+ +

It's important to consider the way default values of attributes are applied. There is often a difference between simply using dot notation to assign a value and using Object.defineProperty(), as shown in the example below.

+ +
var o = {};
+
+o.a = 1;
+// is equivalent to:
+Object.defineProperty(o, 'a', {
+  value: 1,
+  writable: true,
+  configurable: true,
+  enumerable: true
+});
+
+
+// On the other hand,
+Object.defineProperty(o, 'a', { value: 1 });
+// is equivalent to:
+Object.defineProperty(o, 'a', {
+  value: 1,
+  writable: false,
+  configurable: false,
+  enumerable: false
+});
+
+ +

Custom Setters and Getters

+ +

Example below shows how to implement a self-archiving object. When temperature property is set, the archive array gets a log entry.

+ +
function Archiver() {
+  var temperature = null;
+  var archive = [];
+
+  Object.defineProperty(this, 'temperature', {
+    get: function() {
+      console.log('get!');
+      return temperature;
+    },
+    set: function(value) {
+      temperature = value;
+      archive.push({ val: temperature });
+    }
+  });
+
+  this.getArchive = function() { return archive; };
+}
+
+var arc = new Archiver();
+arc.temperature; // 'get!'
+arc.temperature = 11;
+arc.temperature = 13;
+arc.getArchive(); // [{ val: 11 }, { val: 13 }]
+
+ +

or

+ +
var pattern = {
+    get: function () {
+        return 'I always return this string, whatever you have assigned';
+    },
+    set: function () {
+        this.myname = 'this is my name string';
+    }
+};
+
+
+function TestDefineSetAndGet() {
+    Object.defineProperty(this, 'myproperty', pattern);
+}
+
+
+var instance = new TestDefineSetAndGet();
+instance.myproperty = 'test';
+console.log(instance.myproperty); // I always return this string, whatever you have assigned
+
+console.log(instance.myname); // this is my name string
+
+
+ +

Specifications

+ + + + + + + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('ES5.1', '#sec-15.2.3.6', 'Object.defineProperty')}}{{Spec2('ES5.1')}}Initial definition. Implemented in JavaScript 1.8.5.
{{SpecName('ES6', '#sec-object.defineproperty', 'Object.defineProperty')}}{{Spec2('ES6')}}
{{SpecName('ESDraft', '#sec-object.defineproperty', 'Object.defineProperty')}}{{Spec2('ESDraft')}}
+ +

Browser compatibility

+ +
{{CompatibilityTable}}
+ +
+ + + + + + + + + + + + + + + + + + + +
FeatureFirefox (Gecko)ChromeInternet ExplorerOperaSafari
Basic support{{CompatGeckoDesktop("2")}}{{CompatChrome("5")}}{{CompatIE("9")}} [1]{{CompatOpera("11.60")}}{{CompatSafari("5.1")}} [2]
+
+ +
+ + + + + + + + + + + + + + + + + + + +
FeatureFirefox Mobile (Gecko)AndroidIE MobileOpera MobileSafari Mobile
Basic support{{CompatGeckoMobile("2")}}{{CompatVersionUnknown}}{{CompatIE("9")}}{{CompatOperaMobile("11.5")}}{{CompatVersionUnknown}}
+
+ +

[1] In Internet Explorer 8 only on DOM objects and with some non-standard behaviors.

+ +

[2] Also supported in Safari 5, but not on DOM objects.

+ +

Compatibility notes

+ +

Redefining the length property of an Array object

+ +

It is possible to redefine the {{jsxref("Array.length", "length")}} property of arrays, subject to the usual redefinition restrictions. (The {{jsxref("Array.length", "length")}} property is initially non-configurable, non-enumerable, and writable. Thus on an unaltered array it is possible to change the {{jsxref("Array.length", "length")}} property's value, or to make it non-writable. It is not allowed to change its enumerability or configurability, or if it is non-writable to change its value or writability.) However, not all browsers permit this redefinition.

+ +

Firefox 4 through 22 will throw a {{jsxref("TypeError")}} on any attempt whatsoever (whether permitted or not) to redefine the {{jsxref("Array.length", "length")}} property of an array.

+ +

Versions of Chrome which implement Object.defineProperty() in some circumstances ignore a length value different from the array's current {{jsxref("Array.length", "length")}} property. In some circumstances changing writability seems to silently not work (and not throw an exception). Also, relatedly, some array-mutating methods like {{jsxref("Array.prototype.push")}} don't respect a non-writable length.

+ +

Versions of Safari which implement Object.defineProperty() ignore a length value different from the array's current {{jsxref("Array.length", "length")}} property, and attempts to change writability execute without error but do not actually change the property's writability.

+ +

Only Internet Explorer 9 and later, and Firefox 23 and later, appear to fully and correctly implement redefinition of the {{jsxref("Array.length", "length")}} property of arrays. For now, don't rely on redefining the {{jsxref("Array.length", "length")}} property of an array to either work, or to work in a particular manner. And even when you can rely on it, there's really no good reason to do so.

+ +

Internet Explorer 8 specific notes

+ +

Internet Explorer 8 implemented a Object.defineProperty() method that could only be used on DOM objects. A few things need to be noted:

+ + + +

See also

+ + diff --git a/files/de/web/javascript/reference/global_objects/object/entries/index.html b/files/de/web/javascript/reference/global_objects/object/entries/index.html new file mode 100644 index 0000000000..4ac921f62b --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/object/entries/index.html @@ -0,0 +1,168 @@ +--- +title: Object.entries() +slug: Web/JavaScript/Reference/Global_Objects/Object/entries +tags: + - Entries + - Iterieren + - JavaScript + - Méthode + - Objekt + - Referenz + - Schleife +translation_of: Web/JavaScript/Reference/Global_Objects/Object/entries +--- +
{{JSRef}}
+ +

Object.entries() ist eine Methode für Objekte. Zurückgegeben wird ein Array mit den Eigenschaften des Objektes. Diese Eigenschaften werden in Key-Value-Paaren als zählbare strings zurückgegeben.

+ +

Im Gegensatz zur {{jsxref("Statements/for...in", "for...in")}}-Schleife werden dabei nicht die constructor- Eigenschaften zurückgegeben, die das Objekt von seinem prototype geerbt hat.

+ +
+

Die Reihenfolge der Key-Value-Paare ist dabei die gleiche wie bei einer {{jsxref("Statements/for...in", "for...in")}}-Schleife. Sie hängt nicht davon ab, wie das ursprüngliche Objekt aufgebaut ist. Ist eine bestimmte Reihenfolge erwünscht, muss der Array sortiert werden:
+ Object.entries(obj).sort((a, b) => b[0].localeCompare(a[0]));.

+ +

 

+
+ +
{{EmbedInteractiveExample("pages/js/object-entries.html")}}
+ + + +

Syntax

+ +
Object.entries(obj)
+ +

Parameter

+ +
+
obj
+
Ein Objekt besitzt Eigenschaften in Form von Key-Value-Paaren. 
+
+ +

Rückgabewert

+ +

Zurückgegeben wird ein Array mit den Key-Value-Paaren ([key, value]) eines Objektes in Form von zählbaren strings.

+ +

Beschreibung

+ +

Object.entries() erzeugt einen Array auf Basis eines Objekts. Die Eigenschaften des Objekts werden im Array als Key-Value-Paare gespeichert.
+ Die Reihenfolge der Eigenschaften ist dabei gleich einer manuellen Iteration über das Objekt.

+ +

Beispiele

+ +
const obj = { foo: 'bar', baz: 42 };
+console.log(Object.entries(obj)); // [ ['foo', 'bar'], ['baz', 42] ]
+
+// Array-ähnliches Objekt
+const obj = { 0: 'a', 1: 'b', 2: 'c' };
+console.log(Object.entries(obj)); // [ ['0', 'a'], ['1', 'b'], ['2', 'c'] ]
+
+// Array-ähnliches Objekt mit zufälliger Reihenfolge der Keys
+const anObj = { 100: 'a', 2: 'b', 7: 'c' };
+console.log(Object.entries(anObj)); // [ ['2', 'b'], ['7', 'c'], ['100', 'a'] ]
+
+// getFoo- Eigenschaft ist nicht zählbar
+const myObj = Object.create({}, { getFoo: { value() { return this.foo; } } });
+myObj.foo = 'bar';
+console.log(Object.entries(myObj)); // [ ['foo', 'bar'] ]
+
+// Das Argument, das kein Objekt ist, wird in ein Objekt umgewandelt
+console.log(Object.entries('foo')); // [ ['0', 'f'], ['1', 'o'], ['2', 'o'] ]
+
+// Gibt einen Leeren Array zurück, da primitive Datentypen keine eigenen Eigenschaften haben
+console.log(Object.entries(100)); // [ ]
+
+// Elegant über Key-Value-Paare iterieren
+const obj = { a: 5, b: 7, c: 9 };
+for (const [key, value] of Object.entries(obj)) {
+  console.log(`${key} ${value}`); // "a 5", "b 7", "c 9"
+}
+
+// Mit array extras über Key-Value-Paare iterieren
+Object.entries(obj).forEach(([key, value]) => {
+  console.log(`${key} ${value}`); // "a 5", "b 7", "c 9"
+});
+
+ +

Ein Object in ein Map-Objekt umwandeln

+ +

Der {{jsxref("Map", "new Map()")}}-constructor akzeptiert zählbare entries. Mithilfe von Object.entries kann ein {{jsxref("Object")}} in ein {{jsxref("Map")}}-Objekt umgewandelt werden:

+ +
const obj = { foo: 'bar', baz: 42 };
+const map = new Map(Object.entries(obj));
+console.log(map); // Map { foo: "bar", baz: 42 }
+
+ +

Durch das Object iterieren

+ +

Mit der Technik der destrukturierenden Zuweisung kann durch Objekte iteriert werden.

+ +
const obj = { foo: 'bar', baz: 42 };
+Object.entries(obj).forEach(([key, value]) => console.log(`${key}: ${value}`)); // "foo: bar", "baz: 42"
+
+ +

Polyfill

+ +

Um Object.entries auch in älteren Umgebungen zu nutzen, die diese Methode nicht nativ unterstützen, sind Polyfills im tc39/proposal-object-values-entries (ohne IE) order im es-shims/Object.entries-Repository finden. Untenstehender Polyfill ist ebenfalls verwendbar:

+ +
if (!Object.entries) {
+  Object.entries = function( obj ){
+    var ownProps = Object.keys( obj ),
+        i = ownProps.length,
+        resArray = new Array(i); // preallocate the Array
+    while (i--)
+      resArray[i] = [ownProps[i], obj[ownProps[i]]];
+
+    return resArray;
+  };
+}
+
+ +

Sollten Sie auch IE < 9 unterstützen müssen, brauchen sie jedoch zusätzlich den Object.keys-Polyfill, zu finden auf {{jsxref("Object.keys")}}.

+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('ESDraft', '#sec-object.entries', 'Object.entries')}}{{Spec2('ESDraft')}}Initiale Definition.
{{SpecName('ES8', '#sec-object.entries', 'Object.entries')}}{{Spec2('ES8')}} 
+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.Object.entries")}}

+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/object/freeze/index.html b/files/de/web/javascript/reference/global_objects/object/freeze/index.html new file mode 100644 index 0000000000..b0379d636c --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/object/freeze/index.html @@ -0,0 +1,253 @@ +--- +title: Object.freeze() +slug: Web/JavaScript/Reference/Global_Objects/Object/freeze +tags: + - ECMAScript5 + - JavaScript + - Methode(2) + - Objekt +translation_of: Web/JavaScript/Reference/Global_Objects/Object/freeze +--- +
{{JSRef}}
+ +

Die Methode Object.freeze() friert ein Objekt ein. Ein eingefrorenes Objekt kann nicht mehr geändert werden. Das Einfrieren eines Objekts verhindert, dass neue Eigenschaften hinzugefügt oder existierende entfernt und die Aufzählbarkeit, Konfigurierbarkeit oder Schreibbarkeit vorhandener Eigenschaften und deren Werte geändert werden können. Durch das Einfrieren eines Objekts wird außerdem verhindert, dass der Prototyp geändert wird. freeze() gibt das gleiche Objekt zurück, das übergeben wurde.

+ +
{{EmbedInteractiveExample("pages/js/object-freeze.html")}}
+ + + +

Syntax

+ +
Object.freeze(obj)
+ +

Parameter

+ +
+
obj
+
Das einzufrierende Objekt.
+
+ +

Rückgabewert

+ +

Das Objekt, welches an die Funktion übergeben wurde.

+ +

Beschreibung

+ +

Zum Eigenschaftssatz eines eingefrorenen Objekts kann nichts hinzugefügt oder daraus entfernt werden. Jeder Versuch, dies zu tun, schlägt fehl, entweder im Hintergrund oder durch Auslösen einer {{jsxref("TypeError")}} Exception (meistens, jedoch nicht ausschließlich, wenn im {{jsxref("Strict_mode", "strikten Modus", "", 1)}}).

+ +

Bei Dateneigenschaften eines eingefrorenen Objekts können Werte nicht geändert werden. Die Attribute für Beschreibbarkeit und Konfigurierbarkeit werden auf false gesetzt. Accessor-Eigenschaften (Getter und Setter) funktionieren gleich (und lassen einen nach wie vor in dem Glauben etwas zu ändern). Beachten Sie, dass Werte, die Objekte sind, immer noch geändert werden können, es sei denn, sie werden ebenfalls eingefroren. Da ein Array ein Objekt ist, kann es eingefroren werden. Danach können seine Elemente nicht mehr geändert und keine Elemente hinzugefügt oder entfernt werden.

+ +

freeze() gibt das gleiche Objekt zurück, das an die Funktion übergeben wurde. Es wird keine eingefrorene Kopie erstellt.

+ +

Beispiele

+ +

Objekte einfrieren

+ +
var obj = {
+  prop: function() {},
+  foo: 'bar'
+};
+
+// Vor dem Einfrieren: neue Eigenschaften können hinzugefügt
+// und vorhandene Eigenschaften geändert oder entfernt werden
+obj.foo = 'baz';
+obj.lumpy = 'woof';
+delete obj.prop;
+
+// Einfrieren
+var o = Object.freeze(obj);
+
+// Der Rückgabewert ist dasselbe Objekt, das übergeben wurde
+o === obj; // true
+
+// Das Objekt ist eingefroren
+Object.isFrozen(obj); // === true
+
+// Jetzt schlagen sämtliche Änderungen fehl
+obj.foo = 'quux'; // nichts passiert, im Stillen
+// fügt die Eigenschaft nicht hinzu, im Stillen
+obj.quaxxor = 'the friendly duck';
+
+// Im strikten Modus lösen solche Versuche TypeErrors aus
+function fail(){
+  'use strict';
+  obj.foo = 'sparky'; // löst TypeError aus
+  delete obj.foo; // löst TypeError aus
+  delete obj.quaxxor; // gibt true zurück, da Attribut 'quaxxor' nie hinzugefügt wurde
+  obj.sparky = 'arf'; // löst TypeError aus
+}
+
+fail();
+
+// Versuchte Änderungen über Object.defineProperty;
+// beide Anweisungen lösen TypeError aus
+Object.defineProperty(obj, 'ohai', { value: 17 });
+Object.defineProperty(obj, 'foo', { value: 'eit' });
+
+// Der prototype kann ebenfalls nicht geändert werden
+// beide Anweisungen lösen TypeError aus
+Object.setPrototypeOf(obj, { x: 20 })
+obj.__proto__ = { x: 20 }
+
+ +

Arrays einfrieren

+ +
let a = [0];
+Object.freeze(a); // Das Array kann nicht mehr geändert werden
+
+a[0]=1; // schlägt still fehl
+a.push(2); // schlägt still fehl
+
+// Im strikten Modus lösen solche Versuche TypeErrors aus
+function fail() {
+  "use strict"
+  a[0] = 1;
+  a.push(2);
+}
+
+fail();
+ +

Das eingefrorene Objekt ist unveränderlich (engl. immutable). Es ist jedoch nicht notwendigerweise konstant. Das folgende Beispiel zeigt, dass ein eingefrorenes Objekt nicht konstant ist (Einfrieren ist flach).

+ +
obj1 = {
+  internal: {}
+};
+
+Object.freeze(obj1);
+obj1.internal.a = 'aValue';
+
+obj1.internal.a // 'aValue'
+ +

Um ein konstantes Objekt zu sein, muss der gesamte Referenzgraph (direkte und indirekte Verweise auf andere Objekte) nur unveränderliche eingefrorene Objekte referenzieren. Das eingefrorene Objekt wird als unveränderlich (immutable) bezeichnet, da der gesamte Objektzustand (Werte und Verweise auf andere Objekte) innerhalb des gesamten Objekts fix ist. Beachten Sie, dass Strings, Zahlen und Booleans immer unveränderlich (immutable) und Funktionen und Arrays Objekte sind.

+ +

Was ist "flaches Einfrieren"?

+ +

Das Ergebnis des Aufrufs von Object.freeze(object) gilt nur für die unmittelbaren Eigenschaften von object selbst und verhindert, dass zukünftige Eigenschaften hinzugefügt, entfernt oder Werte auf diesem object neu zugewiesen werden. Wenn der Wert dieser Eigenschaften selbst Objekte sind, werden diese Objekte nicht eingefroren und können das Ziel von Eigenschaftszusatz-, Entfernungs- oder Wertzuordnungsvorgängen sein.

+ +
var employee = {
+  name: "Mayank",
+  designation: "Developer",
+  address: {
+    street: "Rohini",
+    city: "Delhi"
+  }
+};
+
+Object.freeze(employee);
+
+employee.name = "Dummy"; // schlägt im nicht-strikten Modus still fehl
+employee.address.city = "Noida"; // Attribute von Kind-Objekt können geändert werden
+
+console.log(employee.address.city) // Ausgabe: "Noida"
+
+ +

Um ein Objekt unveränderlich zu machen, frieren Sie rekursiv jede Eigenschaft vom Typ object ein (deep freeze). Verwenden Sie das Muster im Einzelfall basierend auf Ihrem Entwurf, wenn Sie wissen, dass das Objekt keine {{interwiki("wikipedia", "Zyklus_(Graphentheorie)", "Zyklen")}} im Referenzgraph enthält, andernfalls kommt es zu einer Endlosschleife. Eine Verbesserung von deepFreeze() wäre eine interne Funktion, die ein Argument für einen Pfad (z. B. ein Array) empfängt, sodass Sie den Aufruf von deepFreeze() rekursiv unterdrücken können, wenn ein Objekt gerade unveränderlich gemacht wird. Es besteht weiterhin die Gefahr, dass ein Objekt eingefroren wird, das nicht eingefroren werden sollte, wie z. B. [window].

+ +
function deepFreeze(object) {
+
+  // Abrufen der definierten Eigenschaftsnamen des Objekts
+  var propNames = Object.getOwnPropertyNames(object);
+
+  // Eigenschaften vor dem eigenen Einfrieren einfrieren
+
+  for (let name of propNames) {
+    let value = object[name];
+
+    object[name] = value && typeof value === "object" ?
+      deepFreeze(value) : value;
+  }
+
+  return Object.freeze(object);
+}
+
+var obj2 = {
+  internal: {
+    a: null
+  }
+};
+
+deepFreeze(obj2);
+
+obj2.internal.a = 'anotherValue'; // schlägt im nicht-strikten Modus still fehl
+obj2.internal.a; // null
+
+ +

Nutzungshinweise

+ +

Wenn das Argument für diese Methode kein Objekt (ein Primitiv) ist, führt dies in ES5 zu einem {{jsxref("TypeError")}}. In ES2015 wird ein Nicht-Objekt-Argument wie ein eingefrorenes gewöhnliches Objekt behandelt und einfach zurückgegeben.

+ +
> Object.freeze(1)
+TypeError: 1 is not an object // ES5 Code
+
+> Object.freeze(1)
+1                             // ES2015 Code
+
+ +

Ein {{domxref("ArrayBufferView")}} mit Elementen verursacht einen {{jsxref("TypeError")}}, da diese Ansichten über den Arbeitsspeicher sind und auf jeden Fall andere mögliche Probleme verursachen können:

+ +
> Object.freeze(new Uint8Array(0)) // Keine Elemente
+Uint8Array []
+
+> Object.freeze(new Uint8Array(1)) // Hat Elemente
+TypeError: Cannot freeze array buffer views with elements
+
+> Object.freeze(new DataView(new ArrayBuffer(32))) // Keine Elemente
+DataView {}
+
+> Object.freeze(new Float64Array(new ArrayBuffer(64), 63, 0)) // Keine Elemente
+Float64Array []
+
+> Object.freeze(new Float64Array(new ArrayBuffer(64), 32, 2)) // Hat Elemente
+TypeError: Cannot freeze array buffer views with elements
+
+ +

Beachten Sie, da die drei Standard-Eigenschaften (buf.byteLength, buf.byteOffset und buf.buffer) schreibgeschützt sind (wie die Eigenschaften eines {{jsxref("ArrayBuffer")}} oder {{jsxref("SharedArrayBuffer")}}) gibt es keinen Grund, diese einzufrieren.

+ +

Vergleich zu Object.seal()

+ +

Vorhandene Eigenschaften in Objekten, die mit {{jsxref("Object.seal()")}} versiegelt wurden, können geändert werden. Vorhandene Eigenschaften in Objekten, die mit Object.freeze() eingefroren wurden, werden unveränderlich gemacht.

+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('ES5.1', '#sec-15.2.3.9', 'Object.freeze')}}{{Spec2('ES5.1')}}Initiale Definition. Implementiert in JavaScript 1.8.5.
{{SpecName('ES6', '#sec-object.freeze', 'Object.freeze')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-object.freeze', 'Object.freeze')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Object.freeze")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/object/getownpropertynames/index.html b/files/de/web/javascript/reference/global_objects/object/getownpropertynames/index.html new file mode 100644 index 0000000000..1e76977b49 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/object/getownpropertynames/index.html @@ -0,0 +1,201 @@ +--- +title: Object.getOwnPropertyNames() +slug: Web/JavaScript/Reference/Global_Objects/Object/getOwnPropertyNames +tags: + - german +translation_of: Web/JavaScript/Reference/Global_Objects/Object/getOwnPropertyNames +--- +
{{JSRef}}
+ +

Die Object.getOwnPropertyNames() Methode gibt einen Array mit allen Eigenschaftsnamen (aufzählbar oder nicht) zurück, welche direkt auf einem Objekt gefunden werden. 

+ +

Syntax

+ +
Object.getOwnPropertyNames(obj)
+ +

Parameters

+ +
+
obj
+
Das Objekt dessen aufzählbaren und nicht aufzählbaren Eigenschaftsnamen gesucht sind. 
+
+ +

Beschreibung

+ +

Object.getOwnPropertyNames () gibt ein Array zurück, dessen Elemente Strings sind, die den aufzählbar und nicht aufzählbar Eigenschaften direkt auf dem Objekt gefunden werden. Die Reihenfolge der Enumerable-Objekte im Array steht im Einklang mit der Benutzung von einer exponierten Schleife {{jsxref ("Statements / for ... in", "for ... in")}} (oder durch {{jsxref ("Object.keys () ")}}) über die Eigenschaften des Objekts. Die Reihenfolge der nicht-aufzählbar Objekte im Array, und unter den aufzählbare Eigenschaften, ist nicht definiert.

+ +

Beispiele

+ +

Benutzung von Object.getOwnPropertyNames()

+ +
var arr = ['a', 'b', 'c'];
+console.log(Object.getOwnPropertyNames(arr).sort()); // logs '0,1,2,length'
+
+// Array-like object
+var obj = { 0: 'a', 1: 'b', 2: 'c' };
+console.log(Object.getOwnPropertyNames(obj).sort()); // logs '0,1,2'
+
+// Logging property names and values using Array.forEach
+Object.getOwnPropertyNames(obj).forEach(function(val, idx, array) {
+  console.log(val + ' -> ' + obj[val]);
+});
+// logs
+// 0 -> a
+// 1 -> b
+// 2 -> c
+
+// non-enumerable property
+var my_obj = Object.create({}, {
+  getFoo: {
+    value: function() { return this.foo; },
+    enumerable: false
+  }
+});
+my_obj.foo = 1;
+
+console.log(Object.getOwnPropertyNames(my_obj).sort()); // logs 'foo,getFoo'
+
+ +

Wenn Sie nur die aufzählbare Eigenschaften möchten, kann man die Funktion {{jsxref ("Object.keys ()")}} benutzen. Alternativ können auch Schlaufen {{jsxref ("Statements / for ... in", "for ... in")}} verwendet werden (dies gibt nicht nur die aufzählbaren Eigenschaften des Objektes, sondern auch entlang der Prototypkette zurück. Behoben kann diese mit der Methode {{jsxref ("Object.prototype.hasOwnProperty ()", "hasOwnProperty ()" )}}).

+ +

Items welche sich im Prototype chain befinden, werden nicht aufgelistet.

+ +
function ParentClass() {}
+ParentClass.prototype.inheritedMethod = function() {};
+
+function ChildClass() {
+  this.prop = 5;
+  this.method = function() {};
+}
+ChildClass.prototype = new ParentClass;
+ChildClass.prototype.prototypeMethod = function() {};
+
+console.log(
+  Object.getOwnPropertyNames(
+    new ChildClass() // ['prop', 'method']
+  )
+);
+
+ +

Nur unzählige Eigenschaften

+ +

Es wird die {{jsxref("Array.prototype.filter()")}} Funktion benötigt um alle zählbaren Schlüssel (erhalten mit {{jsxref("Object.keys()")}}) von einer Liste mit allen Schlüsseln (erhalten mit Object.getOwnPropertyNames()) zu vergleichen, welches nur die unzähligen Eigenschaften zurück lässt.

+ +
var target = myObject;
+var enum_and_nonenum = Object.getOwnPropertyNames(target);
+var enum_only = Object.keys(target);
+var nonenum_only = enum_and_nonenum.filter(function(key) {
+  var indexInEnum = enum_only.indexOf(key);
+  if (indexInEnum == -1) {
+    // not found in enum_only keys mean the key is non-enumerable,
+    // so return true so we keep this in the filter
+    return true;
+  } else {
+    return false;
+  }
+});
+
+console.log(nonenum_only);
+
+ +

Notizen

+ +

Wenn bei ES5 das Argument der Methode kein primitives Objekt ist, wird der Funktionsaufruf ein {{jsxref("TypeError")}} werfen. In ES6 wird ein nicht-Objekt Argument automatisch in ein Objekt gecasted.

+ +
Object.getOwnPropertyNames('foo');
+// TypeError: "foo" is not an object (ES5 code)
+
+Object.getOwnPropertyNames('foo');
+// ['length', '0', '1', '2']  (ES6 code)
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('ES5.1', '#sec-15.2.3.4', 'Object.getOwnPropertyNames')}}{{Spec2('ES5.1')}}Initialdefinition. Implementiert in JavaScript 1.8.5.
{{SpecName('ES6', '#sec-object.getownpropertynames', 'Object.getOwnPropertyNames')}}{{Spec2('ES6')}} 
+ +

Browser Kompatibilität

+ +
{{CompatibilityTable}}
+ +
+ + + + + + + + + + + + + + + + + + + +
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basissupport{{CompatChrome("5")}}{{CompatGeckoDesktop("2")}}{{CompatIE("9")}}{{CompatOpera("12")}}{{CompatSafari("5")}}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + +
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basissupport{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
+
+ +

SpiderMonkey-spezifische Notizen

+ +

 

+ +

Vor SpiderMonkey 28 {{geckoRelease("28")}}, ignorierte die Funktion Object.getOwnPropertyNames unaufgelöste Eigenschaften eines {{jsxref("Error")}} Objektes. Dieser Fehler wurde in den letzten Versionen behoben ({{bug("724768")}}).

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/object/getprototypeof/index.html b/files/de/web/javascript/reference/global_objects/object/getprototypeof/index.html new file mode 100644 index 0000000000..cb2c6c0028 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/object/getprototypeof/index.html @@ -0,0 +1,133 @@ +--- +title: Object.getPrototypeOf() +slug: Web/JavaScript/Reference/Global_Objects/Object/getPrototypeOf +translation_of: Web/JavaScript/Reference/Global_Objects/Object/getPrototypeOf +--- +
{{JSRef}}
+ +

Die Object.getPrototypeOf() Methode gibt den Prototyp (den Wert der internen [[Prototype]] Eigenschaft) des angegebenen Objekts obj zurück

+ +

Syntax

+ +
Object.getPrototypeOf(obj)
+ +

Parameter

+ +
+
obj
+
Das Objekt, dessen Prototyp zurückgegeben werden soll.
+
+ +

Rückgabewert

+ +

Der Prototyp des Objekts obj wird zurückgegeben. Wenn keine Eigenschaften vererbt werden, wird {{jsxref("null")}} zurück gegeben.

+ +

Beispiele

+ +
var proto = {};
+var obj = Object.create(proto);
+Object.getPrototypeOf(obj) === proto; // true
+
+ +

Notizen

+ +

In ES5 wird eine {{jsxref("TypeError")}} exception geworfen, falls der Parameter obj kein Objekt ist . In ES2015 wird der Parameter obj in ein {{jsxref("Object")}} umgewandelt.

+ +
Object.getPrototypeOf('foo');
+// TypeError: "foo" is not an object (ES5 code)
+Object.getPrototypeOf('foo');
+// String.prototype                  (ES2015 code)
+
+ +

Spezifikation

+ + + + + + + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('ES5.1', '#sec-15.2.3.2', 'Object.getPrototypeOf')}}{{Spec2('ES5.1')}}Initial definition.
{{SpecName('ES6', '#sec-object.getprototypeof', 'Object.getProtoypeOf')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-object.getprototypeof', 'Object.getProtoypeOf')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ +
{{CompatibilityTable}}
+ +
+ + + + + + + + + + + + + + + + + + + +
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support{{CompatChrome("5")}}{{CompatGeckoDesktop("1.9.1")}}{{CompatIE("9")}}{{CompatOpera("12.10")}}{{CompatSafari("5")}}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + +
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
+
+ +

Opera-spezfische Notizen

+ +

Even though older Opera versions don't support Object.getPrototypeOf() yet, Opera supports the non-standard {{jsxref("Object.proto", "__proto__")}} property since Opera 10.50.

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/object/hasownproperty/index.html b/files/de/web/javascript/reference/global_objects/object/hasownproperty/index.html new file mode 100644 index 0000000000..1d990d3bfa --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/object/hasownproperty/index.html @@ -0,0 +1,203 @@ +--- +title: Object.prototype.hasOwnProperty() +slug: Web/JavaScript/Reference/Global_Objects/Object/hasOwnProperty +tags: + - JavaScript + - Method + - Object + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Object/hasOwnProperty +--- +
{{JSRef}}
+ +

Die Methode hasOwnProperty() gibt einen boolean Wert zurück abhängig von der Existenz des gegebenen Attributs in einem Objekt.

+ +

Syntax

+ +
obj.hasOwnProperty(prop)
+ +

Parameter

+ +
+
prop
+
Der Name des Attributs auf dessen Existenz im Objekt geprüft wird
+
+ +

Rückgabewert

+ +

Ein {{jsxref("Boolean")}} der besagt, ob eine Eigenschaft in dem gegebenen Objekte vorhanden ist oder nicht.

+ +

Beschreibung

+ +

Jedes  untergeordnete Objekt / jeder untergeordneter Wert in einem Objekt trägt die hasOwnProperty Methode mit sich. Diese Methode ermöglicht das Nachfragen eines untergeordneten Wertes/Objekts innerhalb eines Objekts. Anders als die {{jsxref("Operators/in", "in")}} Methode ermöglicht die hasOwnProperty Methode keinen Zugriff auf die Kindeskinder eines Objekts.

+ +

Beispiele

+ +

Einsatz von hasOwnProperty zur Überprüfung der Existenz eines Attributs in einem Objekt

+ +

Das folgende Beispiel prüft ob das Objekt o ein Attribut mit dem Namen prop beinhaltet.

+ +
o = new Object();
+o.prop = 'exists';
+
+function changeO() {
+  o.newprop = o.prop;
+  delete o.prop;
+}
+
+o.hasOwnProperty('prop');   // gibt true zurück
+changeO();
+o.hasOwnProperty('prop');   // gibt false zurück
+
+ +

Direkter Nachfolger vs Geerbtes Attribut

+ +

Das folgende Beispiel unterscheidet zwischen direkten Kind-Attributen eines Objekts und den Attributen die durch die prototype - Verarbeitung entstehen.

+ +
o = new Object();
+o.prop = 'exists';
+o.hasOwnProperty('prop');             // gibt true zurück
+o.hasOwnProperty('toString');         // gibt false zurück
+o.hasOwnProperty('hasOwnProperty');   // gibt false zurück
+
+ +

Über die Eigenschaften eines Objektes iterieren

+ +

Das folgende Beispiel zeigt, wie man über die Eigenschaften eines Objektes iteriert ohne vererbte Eigenschaften auszuführen. Zu Beachten ist, dass eine {{jsxref("Statements/for...in", "for...in")}} Schleife nur über zählbare (enumerable) Eigenschaften iteriert, jedoch sollte man durch diese Einschränkung nicht annehmen, dass nicht-zählbare Eigenschaften gezeigt werden, denn hasOwnProperty selbst kann nur auf zählbare Eigenschaften angewendet werden (wie auch die {{jsxref("Object.getOwnPropertyNames()")}} Funktion):

+ +
var buz = {
+  fog: 'stack'
+};
+
+for (var name in buz) {
+  if (buz.hasOwnProperty(name)) {
+    console.log('this is fog (' + name + ') for sure. Value: ' + buz[name]);
+  }
+  else {
+    console.log(name); // toString or something else
+  }
+}
+
+ +

Einsatz von hasOwnProperty als Eigenschaftsname

+ +

JavaScript schützt die den Eigenschaftsnamen hasOwnProperty nicht. Dadurch ist es möglich, dass ein Objekt eine Eigenschaft mit diesem namen hat. Das ermöglicht es eine externe hasOwnProperty Funktion zu benutzen:

+ +
var foo = {
+  hasOwnProperty: function() {
+    return false;
+  },
+  bar: 'Here be dragons'
+};
+
+foo.hasOwnProperty('bar'); // always returns false
+
+// Use another Object's hasOwnProperty and call it with 'this' set to foo
+({}).hasOwnProperty.call(foo, 'bar'); // true
+
+// It's also possible to use the hasOwnProperty property from the Object prototype for this purpose
+Object.prototype.hasOwnProperty.call(foo, 'bar'); // true
+
+ +

Zu beachten ist, dass im letzten Fall kein neues Objekt erstellt wird.

+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES3')}}{{Spec2('ES3')}}Initiale Definition. Implementiert in JavaScript 1.5.
{{SpecName('ES5.1', '#sec-15.2.4.5', 'Object.prototype.hasOwnProperty')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-object.prototype.hasownproperty', 'Object.prototype.hasOwnProperty')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-object.prototype.hasownproperty', 'Object.prototype.hasOwnProperty')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ +
{{CompatibilityTable}}
+ +
+ + + + + + + + + + + + + + + + + + + + + +
FeatureChromeEdgeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
FeatureAndroidChrome for AndroidEdgeFirefox Mobile (Gecko)Firefox OSIE MobileOpera MobileiOS WebKit
+ (Safari/Chrome/Firefox/etc)
Basic support{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
+
+ +

See also

+ + diff --git a/files/de/web/javascript/reference/global_objects/object/index.html b/files/de/web/javascript/reference/global_objects/object/index.html new file mode 100644 index 0000000000..55eb55035d --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/object/index.html @@ -0,0 +1,186 @@ +--- +title: Object +slug: Web/JavaScript/Reference/Global_Objects/Object +tags: + - Constructor + - JavaScript + - Object +translation_of: Web/JavaScript/Reference/Global_Objects/Object +--- +
{{JSRef}}
+ +

Zusammenfassung

+ +

Der Object-Konstruktor erstellt ein Objekt

+ +

Konstruktor

+ +
// Object Initialisierer / Literal
+{ [ NameWertPaar1 [, NameWertPaar2 [, ...NameWertPaarN] ] ] }
+
+// Konstruktor-Form
+new Object( [ Wert ] )
+ +

Parameter

+ +
+
NameWertPaar1, NameWertPaar2, ... NameWertPaarN
+
Paare von Namen (String) und Werten (eines beliebigen Typs) bei denen der Name durch ein Doppelpunkt vom Wert getrennt ist.
+
+ +
+
Wert
+
Ein Wert eines beliebigen Typs.
+
+ +

Beschreibung

+ +

Der Object Konstruktor erstellt ein Objekt für den übergebenen Wert. Wenn der Wert {{jsxref("null")}} oder {{jsxref("undefined")}} ist, wird ein leeres Object erstellt und zurückgegeben. Ansonsten wird ein Objekt des Typs erstellt, welcher dem übergebenen Wert entspricht. Sollte der Wert bereits ein vom Typ Object sein, wird dieses zurückgeggeben.

+ +

Wenn sie nicht als Konstruktor aufgerufen wird (d.h. ohne new), verhält sich die Funktion Object genau so wie new Object().

+ +

Siehe auch den Object Intialisierer / Literal Syntax.

+ +

Eigenschaften des Object Konstruktors

+ +
+
Object.length
+
Hat den Wert 1.
+
{{jsxref("Object.prototype")}}
+
Erlaubt es neue Eigenschaften zu allen Objekten des Typs Object hinzuzufügen.
+
+ +

Methoden des Object Konstruktors

+ +
+
{{jsxref("Object.assign()")}}
+
Kopiert die Werte aller eigenen, aufzählbaren Eigenschaften von einem oder mehreren Quellobjekten in ein Zielobjekt.
+
{{jsxref("Object.create()")}}
+
Erstellt ein neues Objekt mit dem angegebenen Protoyp-Objekt und optionalen Eigenschaften.
+
{{jsxref("Object.defineProperty()")}}
+
Fügt eine neue Eigenschaft einem bestimmten Objekt hinzu, welche durch Zusatzinformationen beschrieben wird.
+
{{jsxref("Object.defineProperties()")}}
+
Fügt mehrere Eigenschaften einem bestimmten Objekt hinzu, welche durch Zusatzinformationen beschrieben werden.
+
{{jsxref("Object.entries()")}}
+
Gibt ein Array zurück, welches alle eigenen, aufzählbaren String-Eigenschaften in der Form von [Name, Wert]-Paaren enthält.
+
{{jsxref("Object.freeze()")}}
+
Friert ein Objekt ein: Die Eigenschaften können nicht mehr geändert oder gelöscht werden.
+
{{jsxref("Object.fromEntries()")}}
+
Erstellt ein Objekt aus einer Liste von [Name, Wert]-Paaren (kehrt {{jsxref("Object.entries")}} um).
+
{{jsxref("Object.getOwnPropertyDescriptor()")}}
+
Gibt die Zusatzinformationen einer bestimmten eigenen Eigenschaft zurück.
+
{{jsxref("Object.getOwnPropertyDescriptors()")}}
+
Gibt ein Objekt zurück, welches die Zusatzinformationen aller eigenen Eigenschaften enthält.
+
{{jsxref("Object.getOwnPropertyNames()")}}
+
Gibt ein Array zurück, welches die Namen aller eigenen, aufzählbaren und nicht-aufzählbaren Eigenschaften enthält.
+
{{jsxref("Object.getOwnPropertySymbols()")}}
+
Gibt ein Array zurück, welches die Symbole aller eigenen Eigenschaften enthält.
+
{{jsxref("Object.getPrototypeOf()")}}
+
Gibt den Protoypen des angegebenen Objekts zurück.
+
{{jsxref("Object.is()")}}
+
Vergleicht ob zwei Werte den gleichen Wert haben.
+
{{jsxref("Object.isExtensible()")}}
+
Gibt an, ob ein Objekt erweitert werden kann (ob neue Eigenschaften angelegt werden können).
+
{{jsxref("Object.isFrozen()")}}
+
Gibt an, ob ein Objekt eingefroren ist.
+
{{jsxref("Object.isSealed()")}}
+
Gibt an, ob ein Objekt versiegelt ist.
+
{{jsxref("Object.keys()")}}
+
Gibt ein Array zurück, welches die Namen aller eigenen aufzählbaren String-Eigenschaften enthält.
+
{{jsxref("Object.preventExtensions()")}}
+
Verbietet das ein Objekt erweitert werden kann.
+
{{jsxref("Object.seal()")}}
+
Verbietet das Eigenschaften gelöscht werden können - versiegelt das Objekt.
+
{{jsxref("Object.setPrototypeOf()")}}
+
Legt den Prototyp fest (z.Bsp. die interne [[Prototype]] Eigenschaft)
+
{{jsxref("Object.values()")}}
+
Gibt ein Array zurück, welches die Werte aller eigenen aufzählbaren String-Eigenschaften enthält.
+
+ +

Object Instanzen und das Prototyp-Objekt

+ +

Alle Objekte in JavaScript stammen von Object ab; alle Objekte bekommen die Methoden und Eigenschaften vom {{jsxref("Object.prototype")}} vererbt, jedoch können sie überschrieben werden. Zum Beispiel können Prototypen andere Kontruktoren die constructor-Eigenschaft überschreiben oder aber ihre eigene toString() Methode implementieren. Änderungen am Object Prototypen wirken sich auch auf alle anderen Objekte aus, es sei denn die Eigenschaften oder Methoden sind entlang der Prototyp-Kette schon überschrieben worden.

+ +

Eigenschaften

+ +
{{ page('/de/docs/Web/JavaScript/Reference/Global_Objects/Object/prototype', 'Attribute') }}
+ +

Methoden

+ +
{{ page('/de/docs/Web/JavaScript/Reference/Global_Objects/Object/prototype', 'Methoden') }}
+ +

Eine Eigenschaft von einem Objekt löschen

+ +

Es gibt keine Methode von Object selbst, um eine Eigenschaft zu löschen (wie z.Bsp. Map.prototype.delete()). Um das zu erreichen, muss der delete Operator benutzt werden.

+ +

Beispiele

+ +

Object mit undefined und null Typen nutzen

+ +

Die folgenden Beispiele speichern ein leeres Object in o:

+ +
var o = new Object();
+
+ +
var o = new Object(undefined);
+
+ +
var o = new Object(null);
+
+ +

Object nutzen um  Boolean-Objekte zu erstellen

+ +

Die folgenden Beispiele speichern {{jsxref("Boolean")}}-Objekte in o:

+ +
// das gleiche wie: var o = new Boolean(true);
+var o = new Object(true);
+
+ +
// das gleiche wie: var o = new Boolean(false);
+var o = new Object(Boolean());
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES1')}}{{Spec2('ES1')}}Initiale Definition.
+ In JavaScript 1.0 implementiert
{{SpecName('ES5.1', '#sec-15.2', 'Object')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-object-objects', 'Object')}}{{Spec2('ES6')}} +

Object.assign, Object.getOwnPropertySymbols, Object.setPrototypeOf und Object.is hinzugefügt

+
{{SpecName('ESDraft', '#sec-object-objects', 'Object')}}{{Spec2('ESDraft')}}Object.entries, Object.values und Object.getOwnPropertyDescriptors hinzugefügt.
+ +

Browser-Kompatibilität

+ +

{{Compat("javascript.builtins.Object")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/object/is/index.html b/files/de/web/javascript/reference/global_objects/object/is/index.html new file mode 100644 index 0000000000..348dbeebe9 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/object/is/index.html @@ -0,0 +1,120 @@ +--- +title: Object.is() +slug: Web/JavaScript/Reference/Global_Objects/Object/is +tags: + - ECMAScript 2015 + - Experimental + - Expérimental(2) + - Method + - Object +translation_of: Web/JavaScript/Reference/Global_Objects/Object/is +--- +
{{JSRef("Global_Objects", "Object")}}
+ +

Zusammenfassung

+ +

Die Object.is() Methode entscheidet, ob zwei Werte die gleichen Werte sind.

+ +

Syntax

+ +
var isSame = Object.is(value1, value2);
+ +

Parameter

+ +
+
value1
+
Der erste Wert zum vergleichen.
+
value2
+
Der zweite Wert zum vergleichen.
+
+ +

Beschreibung

+ +

Object.is() bestimmt, ob zwei Werte gleich sind. Dabei gelten zwei Werte genau dann als gleich, wenn eine der folgenden Bedingungen zutrifft:

+ + + +

Dies ist nicht das selbe wie der ==-Operator. Dieser verwendet verschiedene, situationsabhängige Typ-Umwandlungen auf beiden Seiten bevor auf Gleichheit getestet wird (was z.B. dazu führt, dass der Ausdruck "" == false zu true ausgewertet wird). Object.is hingegen wandelt keinen der beiden Werte um.

+ +

Es ist ebenfalls nicht das selbe wie der strikte ===-Operator. Dieser – ebenso wie der ==-Operator – behandelt zum Beispiel +0 und -0 als identisch während NaN und NaN als nicht identisch behandelt werden.

+ +

Beispiele

+ +
Object.is('foo', 'foo');     // true
+Object.is(window, window);   // true
+
+Object.is('foo', 'bar');     // false
+Object.is([], []);           // false
+
+var test = { a: 1 };
+Object.is(test, test);       // true
+
+Object.is(null, null);       // true
+
+// Special Cases
+Object.is(0, -0);            // false
+Object.is(-0, -0);           // true
+Object.is(NaN, 0/0);         // true
+
+ +

Polyfill

+ +

Object. ist eine vorgeschlagene Ergänzung des ECMA-262 Standard; als solcher könnte dieser nicht von allen Browser verstanden werden. Du kannst drum herum arbeiten, indem du den folgenden Code an den Anfang deines Scripts packst. Das erlaubt dir die Object.is Methode zu verwenden, auch wenn es keine eingebaute Unterstützung dafür gibt.

+ +
if (!Object.is) {
+  Object.is = function(x, y) {
+    // SameValue algorithm
+    if (x === y) { // Steps 1-5, 7-10
+      // Steps 6.b-6.e: +0 != -0
+      return x !== 0 || 1 / x === 1 / y;
+    } else {
+     // Step 6.a: NaN == NaN
+     return x !== x && y !== y;
+    }
+  };
+}
+ +

Spezifikationen

+ + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES2015', '#sec-object.is', 'Object.is')}}{{Spec2('ES2015')}}Initial definition.
+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.Object.is")}}

+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/object/isextensible/index.html b/files/de/web/javascript/reference/global_objects/object/isextensible/index.html new file mode 100644 index 0000000000..a54bb5f6c4 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/object/isextensible/index.html @@ -0,0 +1,153 @@ +--- +title: Object.isExtensible() +slug: Web/JavaScript/Reference/Global_Objects/Object/isExtensible +tags: + - ECMAScript 5 + - Erweiterbarkeit + - JavaScript + - Méthode + - Object +translation_of: Web/JavaScript/Reference/Global_Objects/Object/isExtensible +--- +
{{JSRef}}
+ +

Die Methode Object.isExtensible() bestimmt, ob ein Objekt erweiterbar ist. Das heißt, es können dem Objekt neue Eigenschaften hinzugefügt werden.

+ +

Syntax

+ +
Object.isExtensible(obj)
+ +

Parameter

+ +
+
obj
+
Das Objekt, das überprüft werden soll.
+
+ +

Rückgabewert

+ +

Ein {{jsxref("Boolean")}}, der angibt, ob das übergebene Objekt erweiterbar ist.

+ +

Beschreibung

+ +

Standardmäßig sind Objekte erweiterbar: Es ist möglich, ihnen neue Eigenschaften zuzuweisen und sie dadurch zu verändern. In Engines, die {{jsxref("Object.proto", "__proto__")}} {{deprecated_inline}} unterstützen, kann auch deren __proto__ Eigenschaft geändert werden. Ein Objekt kann mittels {{jsxref("Object.preventExtensions()")}}, {{jsxref("Object.seal()")}} oder {{jsxref("Object.freeze()")}} explizit als nicht-erweiterbar markiert werden.

+ +

Beispiele

+ +
// Neue Objekte sind erweiterbar.
+var empty = {};
+Object.isExtensible(empty); // === true
+
+// ...aber das kann sich ändern.
+Object.preventExtensions(empty);
+Object.isExtensible(empty); // === false
+
+// Versiegelte Objekte sind per Definition nicht erweiterbar.
+var sealed = Object.seal({});
+Object.isExtensible(sealed); // === false
+
+// Eingefrorene Objekte sind ebenfalls per Definition nicht erweiterbar.
+var frozen = Object.freeze({});
+Object.isExtensible(frozen); // === false
+
+ +

Anmerkungen

+ +

In ES5 muss das Argument der Methode ein echtes Objekt sein. Ist dies nicht der Fall, wird ein {{jsxref("TypeError")}} geworfen. In ES2015 hingegen wird ein Nicht-Objekt einfach als nicht-erweiterbares Objekt behandelt, sodass von der Methode false zurückgegeben wird.

+ +
Object.isExtensible(1);
+// TypeError: 1 is not an object (ES5 code)
+
+Object.isExtensible(1);
+// false                         (ES2015 code)
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('ES5.1', '#sec-15.2.3.13', 'Object.isExtensible')}}{{Spec2('ES5.1')}}Initial definition. Implemented in JavaScript 1.8.5.
{{SpecName('ES6', '#sec-object.isextensible', 'Object.isExtensible')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-object.isextensible', 'Object.isExtensible')}}{{Spec2('ESDraft')}} 
+ +

Browser-Kompatibilität

+ +
{{CompatibilityTable}}
+ +
+ + + + + + + + + + + + + + + + + + + +
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support{{CompatChrome("6")}}{{CompatGeckoDesktop("2.0")}}{{CompatIE("9")}}{{CompatOpera("12")}}{{CompatSafari("5.1")}}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + +
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
+
+ +

Zusätzliches Material

+ + diff --git a/files/de/web/javascript/reference/global_objects/object/isfrozen/index.html b/files/de/web/javascript/reference/global_objects/object/isfrozen/index.html new file mode 100644 index 0000000000..fedcba2572 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/object/isfrozen/index.html @@ -0,0 +1,173 @@ +--- +title: Object.isFrozen() +slug: Web/JavaScript/Reference/Global_Objects/Object/isFrozen +translation_of: Web/JavaScript/Reference/Global_Objects/Object/isFrozen +--- +
{{JSRef}}
+ +

Object.isFrozen() gibt an ob ein Objekt {{jsxref("Object.freeze()", "eingefroren", "", 1)}} ist.

+ +
{{EmbedInteractiveExample("pages/js/object-isfrozen.html")}}
+ + + +

Syntax

+ +
Object.isFrozen(obj)
+ +

Parameter

+ +
+
obj
+
Das Objekt, welches überprüft werden soll.
+
+ +

Rückgabewert

+ +

Ein {{jsxref("Boolean")}}-Wert, der angibt ob das Objekt eingefroren ist oder nicht.

+ +

Beschreibung

+ +

Ein Objekt gilt dann und nur dann als eingefroren, wenn es nicht {{jsxref("Object.isExtensible()", "erweiterbar", "", 1)}} ist, all seine Eigenschaften nicht konfigurierbar sind und all seine Daten-Eigenschaften (d.h. Eigenschaften die nicht durch Getter oder Setter definiert sind) nicht schreibbar sind.

+ +

Beispiele

+ +
// Ein neues Objekt ist erweiterbar, also nicht eingefroren.
+Object.isFrozen({}); // === false
+
+// An leeres Objekt, das nicht erweiterbar ist,
+// ist sinnlos eingefroren.
+var sinnlos = Object.preventExtensions({});
+Object.isFrozen(sinnlos); // === true
+
+// Ein neues Objekt mit einer einzelnen Eigenschaft, ist auch erweiterbar,
+// ergo nicht eingefroren.
+var eineEigenschaft = { p: 42 };
+Object.isFrozen(eineEigenschaft); // === false
+
+// Das Objekt nicht erweiterbar zu machen, friert es nicht ein,
+// da die Eigenschaft immer nocht konfigurierbar und schreibbar ist.
+Object.preventExtensions(eineEigenschaft);
+Object.isFrozen(eineEigenschaft); // === false
+
+// ...wenn man die Eigenschaft aber löscht,
+// wird das Objekt sinnlos
+delete eineEigenschaft.p;
+Object.isFrozen(eineEigenschaft); // === true
+
+// Ein nicht erweiterbares Objekt, mit einer nicht schreibbaren
+// jedoch konifgurierbaren Eigenschaft gilt als nicht eingefroren.
+var nichtSchreibbar = { e: 'plep' };
+Object.preventExtensions(nichtSchreibbar);
+Object.defineProperty(nichtSchreibbar, 'e', {
+  writable: false
+}); // `e` wird nicht schreibbar
+Object.isFrozen(nichtSchreibbar); // === false
+
+// Wird diese Eigenschaft nicht konfigurierbar,
+// so friert das Objekt ein.
+Object.defineProperty(nichtSchreibbar, 'e', {
+  configurable: false
+}); // `e` wird nicht konfigurierbar
+Object.isFrozen(nichtSchreibbar); // === true
+
+// Ein nicht erweiterbares Objekt, mit einer nicht konfigurierbaren
+// jedoch schreibbaren Eigenschaft gilt ebenfalls als nicht eingefroren.
+var nichtKonfigurierbar = { release: 'the kraken!' };
+Object.preventExtensions(nichtKonfigurierbar);
+Object.defineProperty(nichtKonfigurierbar, 'release', {
+  configurable: false
+});
+Object.isFrozen(nichtKonfigurierbar); // === false
+
+// Wird diese Eigenschaft nicht schreibbar,
+// so friert das Objekt ein.
+Object.defineProperty(nichtKonfigurierbar, 'release', {
+  writable: false
+});
+Object.isFrozen(nichtKonfigurierbar); // === true
+
+// Ein nicht erweiterbares Objekt, mit einer konfigurierbaren
+// dynamischen Eigenschaft (get/set) ist nicht eingefroren.
+var dynamisch = { get food() { return 'yum'; } };
+Object.preventExtensions(dynamisch);
+Object.isFrozen(dynamisch); // === false
+
+// ABER, wird diese Eigenschaft nicht konfigurierbar,
+// friert das Objekt ein.
+Object.defineProperty(dynamisch, 'food', {
+  configurable: false
+});
+Object.isFrozen(dynamisch); // === true
+
+// Am Ende ist die einfachste Methode um ein Objekt einzufrieren,
+// Object.freeze aufzurufen.
+var eingefroren = { 1: 81 };
+Object.isFrozen(eingefroren); // === false
+Object.freeze(eingefroren);
+Object.isFrozen(eingefroren); // === true
+
+// Per Definition ist ein eingefrorenes Objekt nicht erweiterbar.
+Object.isExtensible(eingefroren); // === false
+
+// Und es ist ebenfalls versiegelt.
+Object.isSealed(eingefroren); // === true
+
+ +

Anmerkungen

+ +

In ES5, wirft die Methode einen {{jsxref("TypeError")}}, wenn der Parameter kein primitives Objekt ist.

+ +

In ES2015 wird der Parameter, sollte er kein primitives Objekt sein, als bereits eingefrorenes Objekt betrachtet und gibt dementsprechend einfach true zurück.

+ +
Object.isFrozen(1);
+// TypeError: 1 is not an object (ES5 code)
+
+Object.isFrozen(1);
+// true                          (ES2015 code)
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES5.1', '#sec-15.2.3.12', 'Object.isFrozen')}}{{Spec2('ES5.1')}}Initiale Definition. In JavaScript 1.8.5 implementiert.
{{SpecName('ES6', '#sec-object.isfrozen', 'Object.isFrozen')}}{{Spec2('ES6')}}
{{SpecName('ESDraft', '#sec-object.isfrozen', 'Object.isFrozen')}}{{Spec2('ESDraft')}}
+ +

Browser Kompatibilität

+ +
+ + +

{{Compat("javascript.builtins.Object.isFrozen")}}

+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/object/keys/index.html b/files/de/web/javascript/reference/global_objects/object/keys/index.html new file mode 100644 index 0000000000..5fda29ca15 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/object/keys/index.html @@ -0,0 +1,206 @@ +--- +title: Object.keys() +slug: Web/JavaScript/Reference/Global_Objects/Object/keys +tags: + - ECMAScript5 + - JavaScript + - JavaScript 1.8.5 + - Method + - Object +translation_of: Web/JavaScript/Reference/Global_Objects/Object/keys +--- +
{{JSRef}}
+ +

Die Object.keys() Funktion gibt ein Array zurück, das die eigenen aufzählbaren Eigenschaften des Objektes in der selben Reihenfolge enthält wie in der {{jsxref("Statements/for...in", "for...in")}} Schleife (der Unterschied zwischen diesen beiden Varianten besteht darin, dass eine for-in Schleife auch die aufzählbaren Eigenschaften der Prototypen beinhaltet).

+ +

Syntax

+ +
Object.keys(obj)
+ +

Parameter

+ +
+
obj
+
ein Objekt, dessen aufzählbare eigene Eigenschaften zurückgegeben werden sollen
+
+ +

Rückgabewert

+ +

Ein Array mit Strings, die alle aufzählbare Eigenschaften des gegebenen Objektes repräsentieren.

+ +

Beschreibung

+ +

Object.keys() liefert ein Array, dessen Elemente Strings sind, welche die aufzählbaren Eigenschaften des Objekts respräsentieren. Die Reihenfolge der Eigenschaften ist die selbe wie bei einer for-in Schleife über das Objekt.

+ +

Beispiele

+ +
var arr = ['a', 'b', 'c'];
+console.log(Object.keys(arr)); // console: ['0', '1', '2']
+
+// array like object
+var obj = { 0: 'a', 1: 'b', 2: 'c' };
+console.log(Object.keys(obj)); // console: ['0', '1', '2']
+
+// array like object with random key ordering
+var an_obj = { 100: 'a', 2: 'b', 7: 'c' };
+console.log(Object.keys(an_obj)); // console: ['2', '7', '100']
+
+// getFoo is property which isn't enumerable
+var my_obj = Object.create({}, { getFoo: { value: function() { return this.foo; } } });
+my_obj.foo = 1;
+
+console.log(Object.keys(my_obj)); // console: ['foo']
+ +

Die Liste aller eigenen aufzählbaren und nicht-aufzählbaren Eigenschaften eines Objekt erhält man mit der Funktion {{jsxref("Object.getOwnPropertyNames()")}}.

+ +

Notizen

+ +

In ES5 wird, wenn das Argument für die Funktion kein Objekt ist, ein {{jsxref("TypeError")}} Fehler geworfen. In ES2015 wird das Argument, welches kein Objekt ist, in ein Objekt umgewandelt, das aber nicht mehr dem eigentlichen Wert entspricht (siehe Beispiel).

+ +
> Object.keys("foo")
+TypeError: "foo" is not an object // ES5 code
+
+> Object.keys("foo")
+["0", "1", "2"]                   // ES2015 code
+
+ +

Polyfill

+ +

Kopieren Sie das folgende Code-Schnipsel, um Object.keys() auch in älteren Umgebungen ohne native Unterstützung nutzen zu können:

+ +
// From https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys
+if (!Object.keys) {
+  Object.keys = (function() {
+    'use strict';
+    var hasOwnProperty = Object.prototype.hasOwnProperty,
+        hasDontEnumBug = !({ toString: null }).propertyIsEnumerable('toString'),
+        dontEnums = [
+          'toString',
+          'toLocaleString',
+          'valueOf',
+          'hasOwnProperty',
+          'isPrototypeOf',
+          'propertyIsEnumerable',
+          'constructor'
+        ],
+        dontEnumsLength = dontEnums.length;
+
+    return function(obj) {
+      if (typeof obj !== 'function' && (typeof obj !== 'object' || obj === null)) {
+        throw new TypeError('Object.keys called on non-object');
+      }
+
+      var result = [], prop, i;
+
+      for (prop in obj) {
+        if (hasOwnProperty.call(obj, prop)) {
+          result.push(prop);
+        }
+      }
+
+      if (hasDontEnumBug) {
+        for (i = 0; i < dontEnumsLength; i++) {
+          if (hasOwnProperty.call(obj, dontEnums[i])) {
+            result.push(dontEnums[i]);
+          }
+        }
+      }
+      return result;
+    };
+  }());
+}
+
+ +

Bitte beachten Sie, dass der obenstehende Code auch die Namen der nicht-aufzählbaren Eigenschaften im IE7 (und evtl. auch im IE8) berücksichtigt, wenn ein Objekt aus einem anderen Fenster übergeben wird.

+ +

Ein einfaches Polyfill finden Sie außerdem hier: Javascript - Object.keys Browser Compatibility.

+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommantar
{{SpecName('ES5.1', '#sec-15.2.3.14', 'Object.keys')}}{{Spec2('ES5.1')}}Initiale Definition. Implementiert in JavaScript 1.8.5.
{{SpecName('ES2015', '#sec-object.keys', 'Object.keys')}}{{Spec2('ES2015')}} 
{{SpecName('ESDraft', '#sec-object.keys', 'Object.keys')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ +
{{CompatibilityTable}}
+ +
+ + + + + + + + + + + + + + + + + + + +
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Grundlegende Unterstützung{{CompatChrome("5")}}{{CompatGeckoDesktop("2.0")}}{{CompatIE("9")}}{{CompatOpera("12")}}{{CompatSafari("5")}}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + +
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Grundlegende Unterstützung{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/object/observe/index.html b/files/de/web/javascript/reference/global_objects/object/observe/index.html new file mode 100644 index 0000000000..df68348028 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/object/observe/index.html @@ -0,0 +1,199 @@ +--- +title: Object.observe() +slug: Web/JavaScript/Reference/Global_Objects/Object/observe +tags: + - Beobachter + - Data-Binding + - Deprecated + - JavaScript + - Méthode + - Object + - Veraltet +translation_of: Archive/Web/JavaScript/Object.observe +--- +
{{JSRef}} {{obsolete_header}}
+ +

Die Object.observe() Methode kann genutzt werden, um auf Änderungen an einem Objekt asynchron zu reagieren. Sie bietet einen Stream der Änderungen in der Reihenfolge ihres Auftretens. Da die Methode veraltet ist und Beschränkungen aufweist, sollte lieber ein {{jsxref("Proxy")}} Objekt verwendet werden.

+ +

Syntax

+ +
Object.observe(obj, callback[, acceptList])
+ +

Parameter

+ +
+
obj
+
Das Objekt, das beobachtet werden soll.
+
callback
+
Eine Callback-Funktion, die jedes mal aufgerufen wird, wenn eine Änderung am Objekt vorgenommen wird +
+
changes
+
Ein Array von Objekten, die die vorgenommenen Änderungen repräsentieren. Die Eigenschaften der Objekte sind jeweils +
    +
  • name: Der Name der Eigenschaft, welche geändert wurde
  • +
  • object: Das (bereits) geänderte Objekt.
  • +
  • type: Ein String der Angibt, welcher Art die vorgenommene Änderung war. Entspricht "add", "update", oder "delete".
  • +
  • oldValue: Existiert nur, wenn der type "update" oder "delete" ist. Der ursprüngliche Wert vor der Änderung.
  • +
+
+
+
+
acceptList
+
Eine Liste von Änderungstypen die für das gegebene Objekt und jeweilige Callback beobachtet werden sollen. Standardmäßig ["add", "update", "delete", "reconfigure", "setPrototype", "preventExtensions"] .
+
+ +

Beschreibung

+ +

callback wird jedes mal aufgerufen, wenn das obj geändert wird. Die Funktion erhält dabei die Liste aller Änderungen in chronologischer Reihenfolge ihres Auftretens.

+ +

Beispiele

+ +

Ausgabe aller sechs Änderungsarten

+ +
var obj = {
+  foo: 0,
+  bar: 1
+};
+
+Object.observe(obj, function(changes) {
+  console.log(changes);
+});
+
+obj.baz = 2;
+// [{name: 'baz', object: <obj>, type: 'add'}]
+
+obj.foo = 'hello';
+// [{name: 'foo', object: <obj>, type: 'update', oldValue: 0}]
+
+delete obj.baz;
+// [{name: 'baz', object: <obj>, type: 'delete', oldValue: 2}]
+
+Object.defineProperty(obj, 'foo', {writable: false});
+// [{name: 'foo', object: <obj>, type: 'reconfigure'}]
+
+Object.setPrototypeOf(obj, {});
+// [{name: '__proto__', object: <obj>, type: 'setPrototype', oldValue: <prototype>}]
+
+Object.seal(obj);
+// [
+//   {name: 'foo', object: <obj>, type: 'reconfigure'},
+//   {name: 'bar', object: <obj>, type: 'reconfigure'},
+//   {object: <obj>, type: 'preventExtensions'}
+// ]
+
+ +

Data Binding

+ +
// A user model
+var user = {
+  id: 0,
+  name: 'Brendan Eich',
+  title: 'Mr.'
+};
+
+// Create a greeting for the user
+function updateGreeting() {
+  user.greeting = 'Hello, ' + user.title + ' ' + user.name + '!';
+}
+updateGreeting();
+
+Object.observe(user, function(changes) {
+  changes.forEach(function(change) {
+    // Any time name or title change, update the greeting
+    if (change.name === 'name' || change.name === 'title') {
+      updateGreeting();
+    }
+  });
+});
+
+ +

Eigens definierter Änderungstyp

+ +
// A point on a 2D plane
+var point = {x: 0, y: 0, distance: 0};
+
+function setPosition(pt, x, y) {
+  // Performing a custom change
+  Object.getNotifier(pt).performChange('reposition', function() {
+    var oldDistance = pt.distance;
+    pt.x = x;
+    pt.y = y;
+    pt.distance = Math.sqrt(x * x + y * y);
+    return {oldDistance: oldDistance};
+  });
+}
+
+Object.observe(point, function(changes) {
+  console.log('Distance change: ' + (point.distance - changes[0].oldDistance));
+}, ['reposition']);
+
+setPosition(point, 3, 4);
+// Distance change: 5
+
+ +

Spezifikationen

+ +

Strawman proposal for ECMAScript 7.

+ +

Browserunterstützung

+ +
{{CompatibilityTable}}
+ +
+ + + + + + + + + + + + + + + + + + + +
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support{{CompatChrome("36")}}{{CompatNo}} [1]{{CompatNo}} [2]{{CompatOpera("23")}}{{CompatNo}}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + +
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatNo}}{{CompatChrome("36")}}{{CompatNo}} [1]{{CompatNo}} [2]{{CompatOpera("23")}}{{CompatNo}}
+
+ +

[1]: See {{bug(800355)}}

+ +

[2]: See relevant MS Edge platform status entry

+ +

Siehe Auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/object/proto/index.html b/files/de/web/javascript/reference/global_objects/object/proto/index.html new file mode 100644 index 0000000000..6c085634e7 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/object/proto/index.html @@ -0,0 +1,196 @@ +--- +title: Object.prototype.__proto__ +slug: Web/JavaScript/Reference/Global_Objects/Object/proto +translation_of: Web/JavaScript/Reference/Global_Objects/Object/proto +--- +
+

Achtung: Das Ändern des [[Prototype]] von einem Objekt, in der Art wie moderne JavaScript Engines den Zugriff auf Eigenschaften optimieren, ist eine sehr langsame Operation - in jedem Browser und JavaScript-Engine. Die Auswirkungen auf die Perfomance der veränderten Vererbung sind subtil und weit verstreut und sind nicht einfach auf die Zeit des Zugriffs von obj.__proto__ = ... Ausdruck limitiert, sondern können sich auf jeden Code erstrecken, der Zugriff auf ein Objekt hat, dessen [[Prototype]] geändert wurde. Wenn du dir um die Perfomance sorgen machst, dann solltest du das Setzen des [[Prototype]] auf ein Objekt vermeiden. Stattdessen kannst du ein neues Objekt mit dem gewünschten [[Prototype]] mit {{jsxref("Object.create()")}} erstellen.

+
+ +
+

Achtung: Während Object.prototype.__proto__ von den meisten Browsern unterstützt wird, ist seine Existenz und exaktes Verhalten nur in der ECMAScript 2015 Spezifikation als Vermächtnis-Funktion standardisiert, um die Kompatibilität für Web-Browser zu gewährleisten. Für bessere Unterstützung wird stattdessen empfohlen {{jsxref("Object.getPrototypeOf()")}} zu nutzen.

+
+ +
{{JSRef}}
+ +

Die __proto__ Eigenschaft von {{jsxref("Object.prototype")}} ist eine Zugriffs-Eigenschaft (ein Erhalten- und Setzen-Funktion), welche den internen [[Prototype]] (entweder ein Objekt oder {{jsxref("Global_Objects/null", "null")}}) des Objektes, auf das zugegriffen wird, freilegt.

+ +

Die Nutzung von __proto__ ist umstritten und wird nicht mehr empfohlen. Es war niemals ein Originalteil in der EcmaScript Sprach-Spezifikation, doch haben moderne Browser entschieden es trotzdem zu implementieren. Erst vor kurzem wurde die __proto__ Eigenschaft als Standard in die ECMAScript 2015 Sprach-Spezifikation aufgenommen, um die Kompatibiliät von modernen Web-Browsern sicherzustellen, sodass es in der Zukunft unterstützt wird. Es ist veraltet zu Gunsten von {{jsxref("Object.getPrototypeOf")}}/{{jsxref("Reflect.getPrototypeOf")}} und {{jsxref("Object.setPrototypeOf")}}/{{jsxref("Reflect.setPrototypeOf")}} (obgleich das Setzen des [[Prototype]] eines Objektes immer noch eine langsame Operation ist und daher vermieden werden sollte, wenn Performance eine Rolle spielt).

+ +

Die __proto__ Eigenschaft kann auch in einer Objekt-Literal-Definition verwendet werden, um das Objekt [[Prototyp]] bei der Erstellen zu setzen - als Alternative zu {{jsxref("Object.create()")}}. See: object initializer / literal syntax.

+ +

Syntax

+ +
var Circle = function () {};
+var shape = {};
+var circle = new Circle();
+
+// Setzt den Objekt Prototypen.
+// DEPRECATED. Dies ist nur eine beispielhafte Verwendung und sollte NICHT in produktivem Code verwendet werden.
+shape.__proto__ = circle;
+
+// Liefert den Objekt Prototypen zurück
+console.log(shape.__proto__ === circle); // true
+
+ +
var shape = function () {
+};
+var p = {
+    a: function () {
+        console.log('aaa');
+    }
+};
+shape.prototype.__proto__ = p;
+
+var circle = new shape();
+
+circle.a();//aaa
+
+console.log(shape.prototype === circle.__proto__);//true
+
+//oder
+
+var shape = function () {
+};
+var p = {
+    a: function () {
+        console.log('a');
+    }
+};
+
+var circle = new shape();
+circle.__proto__ = p;
+
+
+circle.a(); //  a
+
+console.log(shape.prototype === circle.__proto__);//false
+
+//oder
+
+function test() {
+}
+test.prototype.myname = function () {
+    console.log('myname');
+
+}
+var a = new test()
+
+console.log(a.__proto__ === test.prototype);//true
+
+a.myname();//myname
+
+
+//oder
+
+var fn = function () {
+};
+fn.prototype.myname = function () {
+    console.log('myname');
+}
+
+var obj = {
+    __proto__: fn.prototype
+};
+
+
+obj.myname();//myname
+
+ +

Anmerkung: das sind zwei Unterstriche, gefolgt von den fünf Zeichen "Proto", gefolgt von zwei weiteren Unterstrichen.

+ +

Beschreibung

+ +

The __proto__ getter function exposes the value of the internal [[Prototype]] of an object. For objects created using an object literal, this value is {{jsxref("Object.prototype")}}. For objects created using array literals, this value is {{jsxref("Array.prototype")}}. For functions, this value is {{jsxref("Function.prototype")}}. For objects created using new fun, where fun is one of the built-in constructor functions provided by JavaScript ({{jsxref("Array")}}, {{jsxref("Boolean")}}, {{jsxref("Date")}}, {{jsxref("Number")}}, {{jsxref("Object")}}, {{jsxref("String")}}, and so on — including new constructors added as JavaScript evolves), this value is always fun.prototype. For objects created using new fun, where fun is a function defined in a script, this value is the value of fun.prototype. (That is, if the constructor didn't return an other object explicitly, or the fun.prototype has been reassigned since the instance was created).

+ +

The __proto__ setter allows the [[Prototype]] of an object to be mutated. The object must be extensible according to {{jsxref("Object.isExtensible()")}}: if it is not, a {{jsxref("Global_Objects/TypeError", "TypeError")}} is thrown. The value provided must be an object or {{jsxref("Global_Objects/null", "null")}}. Providing any other value will do nothing.

+ +

To understand how prototypes are used for inheritance, see guide article Inheritance and the prototype chain.

+ +

The __proto__ property is a simple accessor property on {{jsxref("Object.prototype")}} consisting of a getter and setter function. A property access for __proto__ that eventually consults {{jsxref("Object.prototype")}} will find this property, but an access that does not consult {{jsxref("Object.prototype")}} will not find it. If some other __proto__ property is found before {{jsxref("Object.prototype")}} is consulted, that property will hide the one found on {{jsxref("Object.prototype")}}.

+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('ES2015', '#sec-additional-properties-of-the-object.prototype-object', 'Object.prototype.__proto__')}}{{Spec2('ES2015')}}Included in the (normative) annex for additional ECMAScript legacy features for Web browsers (note that the specification codifies what is already in implementations).
{{SpecName('ESDraft', '#sec-additional-properties-of-the-object.prototype-object', 'Object.prototype.__proto__')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ +
{{CompatibilityTable}}
+ +
+ + + + + + + + + + + + + + + + + + + +
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basis Unterstützung{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatIE("11")}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + +
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basis Unterstützung{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
+
+ +

Kompatibiliäts Notizen

+ +

Während die ECMAScript 2015-Spezifikation vorschreibt, dass die Unterstützung für __proto__ nur für Webbrowser erforderlich ist (obwohl sie bestimmend sind), können andere Umgebungen sie auch für den Gebrauch von Benutzern unterstützen

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/object/prototype/index.html b/files/de/web/javascript/reference/global_objects/object/prototype/index.html new file mode 100644 index 0000000000..71a504f6dd --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/object/prototype/index.html @@ -0,0 +1,219 @@ +--- +title: Object.prototype +slug: Web/JavaScript/Reference/Global_Objects/Object/prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Object +--- +
{{JSRef}}
+ +

Das Object.prototype Attribut repräsentiert das Prototype Objekt von {{jsxref("Object")}}.

+ +
{{js_property_attributes(0, 0, 0)}}
+ +

Beschreibung

+ +

Alle Objekte in JavaScript stammen von {{jsxref("Object")}}; alle Objekte erben Methoden und Attribute von Object.prototype, wobei diese  überschrieben werden können (mit Ausnahme von Objekten mit einem null-Prototyp, sprich Object.create(null)). Die Prototypen anderer Konstruktoren zum Beispiel, überschreiben das constructor Attribut und stellen ihre eigenen Methoden zur Verfügung {{jsxref("Object.prototype.toString()", "toString()")}}. Änderungen am  Object prototype Objekt werden an alle Objekte weitergeleitet, solange die betroffenen Attribute und Methoden nicht zuvor in der Kette der Prototypen überschrieben wurden.

+ +

Attribute

+ +
+
{{jsxref("Object.prototype.constructor")}}
+
Die Funktion, die den Prototypen eines Objekts erstellt.
+
{{jsxref("Object.prototype.__proto__")}} {{non-standard_inline}}
+
Zeigt auf das Objekt, das als bei der Initialisierung des Objektes als Prototyp diente.
+
{{jsxref("Object.prototype.__noSuchMethod__")}} {{non-standard_inline}}
+
Erlaubt das Erstellen einer Funktion, die dann ausgeführt wird, wenn ein undefiniertes Objekt als Methode aufgerufen wird.
+
{{jsxref("Object.prototype.count","Object.prototype.__count__")}} {{obsolete_inline}}
+
Wurde benutzt um die Anzahl der aufzählbaren Attribute direkt durch das Objekt zurückzugeben; mittlerweile entfernt.
+
{{jsxref("Object.prototype.parent","Object.prototype.__parent__")}} {{obsolete_inline}}
+
Wurde benutzt um auf den Kontext eines Objektes zu verweisen; mittlerweile entfernt.
+
+ +

Methoden

+ +
+
{{jsxref("Object.prototype.__defineGetter__()")}} {{non-standard_inline}} {{deprecated_inline}}
+
Verknüpft eine Funktion mit einem Attribut, das, wenn darauf zugegriffen wird eine Funktion ausführt und deren Rückgabewert zurück gibt.
+
{{jsxref("Object.prototype.__defineSetter__()")}} {{non-standard_inline}} {{deprecated_inline}}
+
Verknüpft eine Funktion mit einem Attribut, das, wenn dieses gesetzt werden soll, eine Funktion ausführt, die das Attribut modifiziert.
+
{{jsxref("Object.prototype.__lookupGetter__()")}} {{non-standard_inline}} {{deprecated_inline}}
+
Gibt die Funktion zurück, die mit dem spezifizierten Attribut über die Methode {{jsxref("Object.prototype.__defineGetter__()", "__defineGetter__()")}} verknüpft ist.
+
{{jsxref("Object.prototype.__lookupSetter__()")}} {{non-standard_inline}} {{deprecated_inline}}
+
Gibt die Funktion zurück, die mit dem spezifizierten Attribut über die Methode {{jsxref("Object.prototype.__defineSetter__()", "__defineSetter__()")}} verknüpft ist.
+
{{jsxref("Object.prototype.hasOwnProperty()")}}
+
Gibt einen Boolean Wert zurück, der anzeigt, ob ein Attribut ein direktes Attribut dieses Objekts ist, oder über Vererbung durch einen Prototypen hinzugefügt wurde.
+
{{jsxref("Object.prototype.isPrototypeOf()")}}
+
Gibt einen Boolean Wert zurück, der anzeigt, ob das spezifizierte Objekt in der Prototyp-Kette des Objekts, das diese Funktion aufruft, enthalten ist.
+
{{jsxref("Object.prototype.propertyIsEnumerable()")}}
+
Gibt einen Boolean Wert zurück, der anzeigt, ob das interne ECMAScript [[Enumerable]] attribute gesetzt ist.
+
{{jsxref("Object.prototype.toSource()")}} {{non-standard_inline}}
+
Liefert einen String zurück, der die Quelle eines Objekt-Literals enthält, und das Objekt darstellt, das diese Funktion aufruft; man kann diesen Wert benutzen, um ein neues Objekt zu erstellen.
+
{{jsxref("Object.prototype.toLocaleString()")}}
+
Ruft {{jsxref("Object.toString", "toString()")}} auf.
+
{{jsxref("Object.prototype.toString()")}}
+
Gibt eine String-Darstellung des Objekts zurück.
+
{{jsxref("Object.prototype.unwatch()")}} {{non-standard_inline}}
+
Entfernt einen Kontrollpunkt von einem Attribut des Objekts.
+
{{jsxref("Object.prototype.valueOf()")}}
+
Gibt den primitiven Wert des spezifizierten Objekts zurück.
+
{{jsxref("Object.prototype.watch()")}} {{non-standard_inline}}
+
Fügt einem Attribut des Objekts einen Kontrollpunkt hinzu.
+
{{jsxref("Object.prototype.eval()")}} {{obsolete_inline}}
+
Wurde genutzt, um einen String bestehend aus JavaScript Code, im Kontext des aktuellen Objekts auszuwerten; wurde entfernt;
+
+ +

Beispiele

+ +

Weil JavaScript keine klassischen Sub-Klassen-Funktionalität hat, sind Prototypen ein guter Weg, um "Base Class" Objekte mit bestimmten Funktionen zu erstellen, die als Objekte fungieren. Zum Beispiel:

+ +
var Person = function() {
+  this.canTalk = true;
+};
+
+Person.prototype.greet = function() {
+  if (this.canTalk) {
+    console.log('Hi, I am ' + this.name);
+  }
+};
+
+var Employee = function(name, title) {
+  Person.call(this);
+  this.name = name;
+  this.title = title;
+};
+
+Employee.prototype = Object.create(Person.prototype);
+Employee.prototype.constructor = Employee;
+
+Employee.prototype.greet = function() {
+  if (this.canTalk) {
+    console.log('Hi, I am ' + this.name + ', the ' + this.title);
+  }
+};
+
+var Customer = function(name) {
+  Person.call(this);
+  this.name = name;
+};
+
+Customer.prototype = Object.create(Person.prototype);
+Customer.prototype.constructor = Customer;
+
+var Mime = function(name) {
+  Person.call(this);
+  this.name = name;
+  this.canTalk = false;
+};
+
+Mime.prototype = Object.create(Person.prototype);
+Mime.prototype.constructor = Mime;
+
+var bob = new Employee('Bob', 'Builder');
+var joe = new Customer('Joe');
+var rg = new Employee('Red Green', 'Handyman');
+var mike = new Customer('Mike');
+var mime = new Mime('Mime');
+
+bob.greet();
+// Hi, I am Bob, the Builder
+
+joe.greet();
+// Hi, I am Joe
+
+rg.greet();
+// Hi, I am Red Green, the Handyman
+
+mike.greet();
+// Hi, I am Mike
+
+mime.greet();
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('ES1')}}{{Spec2('ES1')}}Initial definition. Implemented in JavaScript 1.0.
{{SpecName('ES5.1', '#sec-15.2.3.1', 'Object.prototype')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-object.prototype', 'Object.prototype')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-object.prototype', 'Object.prototype')}}{{Spec2('ESDraft')}} 
+ +

Browser Kompatibilität

+ +
{{CompatibilityTable}}
+ +
+ + + + + + + + + + + + + + + + + + + +
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + +
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
+
+ +

See also

+ + diff --git a/files/de/web/javascript/reference/global_objects/object/tosource/index.html b/files/de/web/javascript/reference/global_objects/object/tosource/index.html new file mode 100644 index 0000000000..d7c7bcf93a --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/object/tosource/index.html @@ -0,0 +1,169 @@ +--- +title: Object.prototype.toSource() +slug: Web/JavaScript/Reference/Global_Objects/Object/toSource +translation_of: Web/JavaScript/Reference/Global_Objects/Object/toSource +--- +
{{JSRef}} {{non-standard_header}}
+ +

Die toSource() Methode liefert einen String der den Quellcode des Objekts representiert.

+ +
Object.toSource();
+obj.toSource();
+
+ +

Zurückgelieferter Wert

+ +

Ein String der den Quellcode des Objekts representiert.

+ +

Beschreibung

+ +

Die toSource() Methode liefer die folgenden Werte:

+ +

Für das eingebaute {{jsxref("Object")}} Objekt, liefert toSource() den folgenden String, welcher angibt, dass der Quellcode nicht verfügbar ist.

+ + + +

toSource() kann während der Entwicklung aufgerufen werden um die Inhalte eines Objekts zu inspizieren.

+ +

Überschreiben der toSource() Methode

+ +

Es ist sicher die toSource() Methode zu überschreiben. Zum Beispiel:

+ +
function Person(name) {
+  this.name = name;
+}
+
+Person.prototype.toSource = function Person_toSource() {
+  return 'new Person(' + uneval(this.name) + ')';
+};
+
+console.log(new Person('Joe').toSource()); // ---> new Person("Joe")
+
+ +

Eingebaute toSource() Methoden

+ +

Jeder Kern-JavaScript Typ hat seine eigene toSource() Methode. Diese sind:

+ + + +

Limits bei zyklischen Objekten

+ +

Im Falle, dass Objekte auf sich selbst referenzieren, z.B.: eine zyklisch verbundene Liste oder ein Baum der beide wege durchquert, erstellt toSource() nicht eine neue Selbst-Referenz. Dies passiert seit Firefox 24. Zum Beispiel:

+ +
var obj1 = {};
+var obj2 = { a: obj1 };
+obj1.b = obj2;
+
+console.log('Cyclical: ' + (obj1.b.a == obj1));
+
+var objSource = obj1.toSource(); // returns "({b:{a:{}}})"
+
+obj1 = eval(objSource);
+
+console.log('Cyclical: ' + (obj1.b.a == obj1));
+
+ +

Wenn eine zyklische Struktur existiert und toSource() benötigt wird, muss das Objekt eine überschriebene toSource() Methode besitzen. Entweder durch benützen einer Referenz zum Construktor oder einer anonymen Funktion.

+ +

Beispiele

+ +

Benutzen von toSource()

+ +

Der folgende Code defniert den "Dog" Objekt Typ und kreiert "theDog", welches ein Objekt des Typs "Dog" ist:

+ +
function Dog(name, breed, color, sex) {
+  this.name = name;
+  this.breed = breed;
+  this.color = color;
+  this.sex = sex;
+}
+
+theDog = new Dog('Gabby', 'Lab', 'chocolate', 'female');
+
+ +

Durch aufrufen der toSource() Methode von "theDog" liefert die JavaScript Quelle, welche das Objekt definiert.

+ +
theDog.toSource();
+// returns ({name:"Gabby", breed:"Lab", color:"chocolate", sex:"female"})
+
+ +

Spezifikationen

+ +

Kein Teil eines Standards. Implementiert seit JavaScript 1.3.

+ +

Browser Kompatibilität

+ +
{{CompatibilityTable}}
+ +
+ + + + + + + + + + + + + + + + + + + +
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support{{CompatNo}}{{CompatVersionUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + +
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatUnknown}}{{CompatUnknown}}{{CompatVersionUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/object/valueof/index.html b/files/de/web/javascript/reference/global_objects/object/valueof/index.html new file mode 100644 index 0000000000..1b3d561756 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/object/valueof/index.html @@ -0,0 +1,115 @@ +--- +title: Object.prototype.valueOf() +slug: Web/JavaScript/Reference/Global_Objects/Object/valueOf +tags: + - JavaScript + - Method + - Object + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Object/valueOf +--- +
{{JSRef}}
+ +

Die valueOf() Methode liefert den primitiven Wert des spezifizierten Objekts zurück.

+ +
{{EmbedInteractiveExample("pages/js/object-prototype-valueof.html")}}
+ + + +

Syntax

+ +
object.valueOf()
+ +

Rückgabewert

+ +

Der primitive Wert des spezifizierten Objekts.

+ +

Beschreibung

+ +

JavaScript ruft die valueOf Methode auf, um das Objekt zu einem primitiven Wert zu konvertieren. Nur in seltenen Fällen ist es nötig, selbst die valueOf Methode aufzurufen; JavaScript tut dies automatisch dann, wenn es ein Objekt vorfindet und ein primitiver Wert erforderlich ist.

+ +

Standardmäßig erbt jedes Objekt die valueOf Methode von {{jsxref("Object")}}. Jedes built-in core object überschreibt zudem diese Methode, um jeweils den geeigneten Wert zu liefern. Falls ein Objekt keinen primitiven Wert haben sollte, liefert valueOf das Objekt selbst zurück.

+ +

Die Methode valueOf kann in eigenem Code verwendet werden, um etwa ein built-in object in seinen primitiven Wert zu wandeln. Bei der Implementierung eines eigenen Objekttyps sollte die Methode Object.prototype.valueOf() entsprechend überschrieben werden, anstelle der standardmäßig durch {{jsxref("Object")}} bereitgestellten Methode.

+ +

Überschreiben von valueOf für eigene Objekttypen

+ +

Es ist möglich eine function zu implementieren, welche anstelle der standardmäßig bereit gestellten valueOf Methode aufgerufen wird. Diese empfängt und benötigt keine Argumente.

+ +

Angenommen, in einem Projekt gibt es den Objekttyp MyNumberType und für diesen soll nun eine passende valueOf Methode implementiert werden. Der folgende Code zeigt wie mit einer function die valueOf Methode des Typs implementiert wird:

+ +
MyNumberType.prototype.valueOf = function() { return customPrimitiveValue; };
+ +

Mit Hilfe dieses Codes wird JavaScript automatisch diese Funktion aufrufen, sobald ein Objekt des Typs MyNumberType in einem Kontext steht, wo es als primitiver Wert benötigt wird.

+ +

Die Methode valueOf eines Objekts wird üblicherweise nur von JavaScript selbst aufgerufen, kann aber ebenso wie folgt jederzeit aufgerufen werden:

+ +
myNumberType.valueOf()
+ +
+

Wichtig: Objekte in String-Kontexten werden über die Methode {{jsxref("Object.toString", "toString()")}} zu String umgewandelt, was etwas anderes ist als ein {{jsxref("String")}} Objekt welches über valueOf zum string primitive konvertiert wird. Alle Objekte haben eine Möglichkeit, zu einem String konvertiert zu werden, selbst wenn dies lediglich resultiert in "[object type]". Die meisten Objekte hingegen können nicht gewandelt werden zu number, boolean, oder function.

+
+ +

Beispiele

+ +

Verwendung von valueOf

+ +
function MyNumberType(n) {
+    this.number = n;
+}
+
+MyNumberType.prototype.valueOf = function() {
+    return this.number;
+};
+
+var myObj = new MyNumberType(4);
+myObj + 3; // 7
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusHinweise
{{SpecName('ES1')}}{{Spec2('ES1')}}Initial definition. Implemented in JavaScript 1.1.
{{SpecName('ES5.1', '#sec-15.2.4.4', 'Object.prototype.valueOf')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-object.prototype.valueof', 'Object.prototype.valueOf')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-object.prototype.valueof', 'Object.prototype.valueOf')}}{{Spec2('ESDraft')}} 
+ +

Browser Kompatibilität

+ +
+ + +

{{Compat("javascript.builtins.Object.valueOf")}}

+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/object/values/index.html b/files/de/web/javascript/reference/global_objects/object/values/index.html new file mode 100644 index 0000000000..f3a66e5714 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/object/values/index.html @@ -0,0 +1,148 @@ +--- +title: Object.values() +slug: Web/JavaScript/Reference/Global_Objects/Object/values +translation_of: Web/JavaScript/Reference/Global_Objects/Object/values +--- +
{{JSRef}}
+ +

Die Methode Object.values() gibt ein Array mit den Eigenschaftswerten eines gegebenen Objekts in der selben Reihenfolge wie eine {{jsxref("Statements/for...in", "for...in")}}-Schleife sie geben würde zurück (Der Unterschied ist dabei, dass eine for-in Schleife zusätzlich die Eigenschaften der Protoype-Kette aufzählt).

+ +

 

+ +
{{EmbedInteractiveExample("pages/js/object-values.html")}}
+ +

Syntax

+ +
Object.values(obj)
+ +

Parameter

+ +
+
obj
+
Ein Objekt, dessen Eigenschaftswerte zurück gegeben werden sollen.
+
+ +

Rückgabewert

+ +

Ein Array, welches die Eigenschaftswerte eines gegebenen Objekts enthält.

+ +

Beschreibung

+ +

Object.values() gibt ein Array zurück, dessen Elemente mit den Werten der Eigenschaften eines gegebenen Objekts übereinstimmen. Die Reihenfolge der Eigenschaften ist die selbe, wie sie sich bei einem manuellen Durchlauf über die Eigenschaften ergeben würde.

+ +

Beispiele

+ +
var obj = { foo: 'bar', baz: 42 };
+console.log(Object.values(obj)); // ['bar', 42]
+
+// Array-ähnliches Objekt
+var obj = { 0: 'a', 1: 'b', 2: 'c' };
+console.log(Object.values(obj)); // ['a', 'b', 'c']
+
+// Array-ähnliches Objekt mit zufälliger Sortierung der Eigenschaften
+var an_obj = { 100: 'a', 2: 'b', 7: 'c' };
+console.log(Object.values(an_obj)); // ['b', 'c', 'a']
+
+// getFoo ist eine nicht aufzählbare Eigenschaft
+var my_obj = Object.create({}, { getFoo: { value: function() { return this.foo; } } });
+my_obj.foo = 'bar';
+console.log(Object.values(my_obj)); // ['bar']
+
+// non-object argument will be coerced to an object
+console.log(Object.values('foo')); // ['f', 'o', 'o']
+
+ +

Polyfill

+ +

Um Object.values auch in älteren Umgebungen zu nutzen, die diese Methode nicht nativ unterstützen, können Sie ein Polyfill im tc39/proposal-object-values-entries oder im es-shims/Object.values Repository finden.

+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + +
SpecifikationStatusKommentar
{{SpecName('ESDraft', '#sec-object.values', 'Object.values')}}{{Spec2('ESDraft')}}Erste Definition.
{{SpecName('ES8', '#sec-object.values', 'Object.values')}}{{Spec2('ES8')}} 
+ +

Browser Kompatibilität

+ +
{{CompatibilityTable}}
+ +
+ + + + + + + + + + + + + + + + + + + + + +
FeatureChromeEdgeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support{{CompatChrome(54)}}{{CompatVersionUnknown}}{{CompatGeckoDesktop(47)}}{{CompatNo}}{{CompatVersionUnknown}}{{CompatSafari(10.1)}}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + +
FeatureAndroid WebviewChrome for AndroidEdgeFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatChrome(54)}}{{CompatChrome(54)}}{{CompatVersionUnknown}}{{CompatGeckoMobile(47)}}{{CompatNo}}{{CompatVersionUnknown}}{{CompatSafari(10.3)}}
+
+ +

 

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/parsefloat/index.html b/files/de/web/javascript/reference/global_objects/parsefloat/index.html new file mode 100644 index 0000000000..72dddf6c5b --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/parsefloat/index.html @@ -0,0 +1,147 @@ +--- +title: parseFloat() +slug: Web/JavaScript/Reference/Global_Objects/parseFloat +tags: + - JavaScript +translation_of: Web/JavaScript/Reference/Global_Objects/parseFloat +--- +
+
+
{{jsSidebar("Objects")}}
+
+
+ +

Die parseFloat()-Funktion parst ein Zeichenketten-Argument und gibt eine Fließkommazahl zurück.

+ +
{r{EmbedInteractiveExample("pages/js/globalprops-parsefloat.html")}}
+ + + +

Syntax

+ +
parseFloat(value)
+ +

Parameter

+ +
+
value
+
Der Wert, den man parsen möchte.
+
+ +

Rückgabewert

+ +

Eine Fließkommazahl, die vom übergebenen Wert geparst wurde. Wenn der Wert nicht zu einer Zahl konvertiert werden kann, wird {{jsxref("NaN")}} zurückgegeben.

+ +

Beschreibung

+ +

parseFloat ist eine Top-Level-Funktion und mit keinen Objekt assoziiert.

+ +

parseFloat übersetzt ihr Argument in eine Fließkommazahl. Trifft sie dabei auf ein anderes Zeichen als ein Vorzeichen (+ oder -), einen numerischen Werten (0-9), einen Dezimalpunkt, oder einen Exponenten, so gibt es den Wert zurück bis zu diesem Punkt und ignoriert dieses Zeichen, sowie alle nachfolgenden. Anführende und abschließende Leerzeichen sind erlaubt.

+ +

Wenn der Wert eine Zeichenkette ist und die ersten Zeichen nicht in eine Zahl konvertiert werden können, gibt parseFloat den Wert {{jsxref("NaN")}} zurück.

+ +

Für arithmetische Zwecke ist NaN keine Zahl für jede Basis eines Zahlensystems. Man kann die {{jsxref("isNaN")}}-Funktion aufrufen um festzustellen, ob NaN das Ergebnis von parseFloat ist. Wenn NaN Operand einer arithmetischen Operation ist, dann ist das Ergebnis ebenfalls NaN.

+ +

parseFloat kann ebenfalls den Wert Infinity parsen und zurückgeben. Man kann die {{jsxref("isFinite")}}-Funktion benutzen um festzustellen, ob das Ergebnis eine endliche Zahl ist (nicht Infinity,  -Infinity, oder NaN).

+ +

parseFloat kann zudem Objekte parsen, wenn diese eine toString- oder valueOf-Methode haben. Das Ergebnis ist dasselbe, als wenn parseFloat mit dem Ergebnis einer dieser beiden Methoden ausgerufen wurde.

+ +

Beispiele

+ +

parseFloat Rückgabe einer Zahl

+ +

Die folgenden Beispiele geben alle 3.14 zurück

+ +
parseFloat(3.14);
+parseFloat("3.14");
+parseFloat("314e-2");
+parseFloat("0.0314E+2");
+parseFloat("3.14mehr nicht-Ziffer-Zeichen");
+
+var foo = Object.create(null);
+foo.toString = function () { return "3.14"; };
+parseFloat(foo);
+
+var foo = Object.create(null);
+foo.valueOf = function () { return "3.14"; };
+parseFloat(foo);
+
+ +

parseFloat Rückgabe von NaN

+ +

Das folgende Beispiel gibt NaN zurück

+ +
parseFloat("FF2");
+
+ +

Eine striktere parse-Funktion

+ +

Unter bestimmten Umständen ist es hilfreich, einen strikteren Weg zu haben, um Fließkomma-Werte zu parsen. Reguläre Ausdrücke können hierbei helfen:

+ +
var filterFloat = function (value) {
+    if(/^(\-|\+)?([0-9]+(\.[0-9]+)?|Infinity)$/
+      .test(value))
+      return Number(value);
+  return NaN;
+}
+
+console.log(filterFloat('421'));               // 421
+console.log(filterFloat('-421'));              // -421
+console.log(filterFloat('+421'));              // 421
+console.log(filterFloat('Infinity'));          // Infinity
+console.log(filterFloat('1.61803398875'));     // 1.61803398875
+console.log(filterFloat('421e+0'));            // NaN
+console.log(filterFloat('421hop'));            // NaN
+console.log(filterFloat('hop1.61803398875'));  // NaN
+
+
+ +

Hinweis: Dies ist lediglich ein Beispiel, es akzeptiert keine zulässigen Zahlen wie 1. oder .5.

+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES1')}}{{Spec2('ES1')}}Initiale Definition.
{{SpecName('ES5.1', '#sec-15.1.2.3', 'parseFloat')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-parsefloat-string', 'parseFloat')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-parsefloat-string', 'parseFloat')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatiblität

+ + + +

{{Compat("javascript.builtins.parseFloat")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/parseint/index.html b/files/de/web/javascript/reference/global_objects/parseint/index.html new file mode 100644 index 0000000000..39641b060a --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/parseint/index.html @@ -0,0 +1,195 @@ +--- +title: parseInt() +slug: Web/JavaScript/Reference/Global_Objects/parseInt +tags: + - JavaScript +translation_of: Web/JavaScript/Reference/Global_Objects/parseInt +--- +
{{jsSidebar("Objects")}}
+ +

Die parseInt() Methode liest ein String-Argument ein und gibt eine ganze Zahl im angegebenen Zahlensystem zurück.

+ +
{{EmbedInteractiveExample("pages/js/globalprops-parseint.html")}}
+ + + +

Syntax

+ +
parseInt(string, radix);
+ +

Parameter

+ +
+
string
+
Umzuwandelnder Wert. Wenn string kein String ist, wird er zu einem String konvertiert (durch die abstrakte Operation ToString). Führende Leerzeichen im String werden ignoriert.
+
+ +
+
radix
+
Eine ganze Zahl zwischen 2 und 36, die die Basis eines mathematischen Zahlensystems ist, in der der String geschrieben ist. 10 steht für das gebräuchliche Dezimalsystem.
+
+ +

Rückgabewert

+ +

Eine ganze Zahl des übergebenen Strings. Wenn das erste Zeichen nicht zu einer Zahl konvertiert werden kann, wird {{jsxref("NaN")}} zurückgegeben.

+ +

Beschreibung

+ +

Die parseInt Funktion konvertiert das erste Argument zu einem String, analysiert diesen und gibt eine ganze Zahl oder NaN zurück. Wenn nicht NaN zurückgegeben wird, ist der Wert des ersten Arguments eine gültige ganze Zahl im entsprechenden Zahlensystem. Zum Beispiel wird im 10er-Zahlensystem von einer Dezimalzahl ausgegangen, im 8er-System von einer Oktalzahl, im 16er-System von einer Hexadezimalzahl und so weiter. Für die Basis eines Zahlensystems größer als 10 sind Buchstaben des Alphabets Repräsentanten für Zahlen größer als 9. Zum Beispiel werden für Hexadezimalezahlen (Basis 16) die Buchstaben A bis F eingesetzt.

+ +

Wenn parseInt ein Zeichen findet, welches keine Ziffer im spezifizierten Zahlensystem ist wird dieses und alle folgenden Zeichen ignoriert. parseInt schneidet Nachkommstellen ab. Führende und nachgestellte Leerzeichen sind erlaubt.

+ +

Weil einige Zahlen mit einem e Zeichen in ihrer String-Repräsentation (z. B. 6.022e23), führt der Einsatz von parseInt zum Abschneiden von nummerischer Wert und unerwarteten Ergebnissen, wenn große oder kleine Zahlen verwendet werden. parseInt sollte nicht als Ersatz für {{jsxref("Math.floor()")}} eingesetzt werden.

+ +

Wenn radix undefined oder 0 ist (oder fehlt), nimmt JavaScript folgendes an:

+ + + +

Wenn das erste Zeichen nicht zu einer Zahl konvertiert werden kann, gibt parseInt NaN zurück.

+ +

Für arithmetische Zwecke ist NaN in keinem Zahlensystem eine Zahl. Man kann die Funktion {{jsxref("isNaN", "isNaN()")}} aufrufen, um zu prüfen, ob das Ergebnis von parseInt NaN ist. Wenn NaN in einer arithmetischen Operation eingesetzt wird, ist das Ergebnis auch immer NaN.

+ +

Um Zahlen in String-Repräsentationen in verschiedenen Zahlensystemen zu konvertieren nutze folgendes:
+ intValue.toString(radix).

+ +

Beispiele

+ +

Einsatz von parseInt

+ +

Alle folgenden Beispiele geben 15 zurück:

+ +
parseInt(" 0xF", 16);
+parseInt(" F", 16);
+parseInt("17", 8);
+parseInt(021, 8);
+parseInt("015", 10);
+parseInt(15.99, 10);
+parseInt("15,123", 10);
+parseInt("FXX123", 16);
+parseInt("1111", 2);
+parseInt("15*3", 10);
+parseInt("15e2", 10);
+parseInt("15px", 10);
+parseInt("12", 13);
+
+ +

Alle folgenden Beispiele geben NaN zurück:

+ +
parseInt("Hello", 8); // Not a number at all
+parseInt("546", 2);   // Digits are not valid for binary representations
+
+ +

Alle folgenden Beispiele geben -15 zurück:

+ +
parseInt("-F", 16);
+parseInt("-0F", 16);
+parseInt("-0XF", 16);
+parseInt(-15.1, 10);
+parseInt(" -17", 8);
+parseInt(" -15", 10);
+parseInt("-1111", 2);
+parseInt("-15e1", 10);
+parseInt("-12", 13);
+
+ +

Die folgenden Beispiele geben 4 zurück:

+ +
parseInt(4.7, 10);
+parseInt(4.7 * 1e22, 10);       // Sehr große Zahl wird zu 4
+parseInt(0.00000000000434, 10); // Sehr kleine Zahl wird zu 4
+ +

Das folgende Beispiel gibt 224 zurück:

+ +
parseInt("0e0", 16);
+
+ +

Oktal-Interpretationen ohne radix

+ +

Obwohl ECMAScript 3 es nicht empfahl und ECMAScript 5 es verbietet, interpretieren viele Implementierungen einen mit "0" beginnende String als Oktalzahl. Das folgende Beispiel hat ein Ergebnis im Oktal- oder Dezimalsystem. Das Zahlensystem sollte immer angegeben werden, um solche Verwirrungen zu vermeiden.

+ +
parseInt("0e0"); // 0
+parseInt("08"); // 0, '8' ist keine oktale Ziffer.
+
+ +

ECMAScript 5 entfernt oktale Interpretation

+ +

Die ECMAScript 5 Spezifikation der parseInt Funktion erlaubt es nicht mehr einen mit 0 beginnenden String als Oktalzahl zu interpretieren. ECMAScript 5 Stand:

+ +

Die parseInt Funktion produziert eine ganze Zahl, indem der Inhalt vom string Argument interpretiert wird, abhängig vom in radix angegebenen Zahlensystem. Führende Whitespaces werden ignoriert. Wenn radix undefined oder 0 ist, wird von 10 ausgegangen, außer die Zahl beginnt mit den Zeichen 0x oder 0X, dann wird 16 für radix angenommen.

+ +

Das unterscheidet sich von der ECMAScript 3 Spezifikation, welche Oktalinterpretationen nicht empfiehlt, sie aber erlaubt.

+ +

Weil viele Implementierungen dieses Verhalten seit 2013 nicht geändert haben und auch ältere Browser unterstützt werden müssen, sollte immer das radix-Argument gesetzt werden.

+ +

Eine strenge parse-Funktion

+ +

Es ist manchmal nützliche eine strenge Funktion für die Umwandlung von ganzen Zahlen zu verwenden. Reguläre Ausdrücke können helfen:

+ +
filterInt = function (value) {
+  if(/^(\-|\+)?([0-9]+|Infinity)$/.test(value))
+    return Number(value);
+  return NaN;
+}
+
+console.log(filterInt('421'));               // 421
+console.log(filterInt('-421'));              // -421
+console.log(filterInt('+421'));              // 421
+console.log(filterInt('Infinity'));          // Infinity
+console.log(filterInt('421e+0'));            // NaN
+console.log(filterInt('421hop'));            // NaN
+console.log(filterInt('hop1.61803398875'));  // NaN
+console.log(filterInt('1.61803398875'));     // NaN
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKomment
{{SpecName('ES1')}}{{Spec2('ES1')}}Initiale Definition.
{{SpecName('ES5.1', '#sec-15.1.2.2', 'parseInt')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-parseint-string-radix', 'parseInt')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-parseint-string-radix', 'parseInt')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.parseInt")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/promise/all/index.html b/files/de/web/javascript/reference/global_objects/promise/all/index.html new file mode 100644 index 0000000000..9753db7994 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/promise/all/index.html @@ -0,0 +1,137 @@ +--- +title: Promise.all() +slug: Web/JavaScript/Reference/Global_Objects/Promise/all +tags: + - ECMAScript 2015 + - JavaScript + - Méthode + - Promise +translation_of: Web/JavaScript/Reference/Global_Objects/Promise/all +--- +
{{JSRef}}
+ +

Die Promise.all(iterable) Methode gibt einen {{jsxref("Promise")}} zurück, welcher erfüllt(resolved) wird, wenn alle Promises in dem iterable - Argument erfüllt wurden oder wenn das iterable - Argument keine Promises enthält. Eine Ablehnung (reject) erfolgt mit dem Grund des ersten Promises, das abgelehnt wurde, oder mit dem Error der von dem ersten Argument, wenn das innerhalb eines try/catch/throw blocks gefangen wurde.

+ +

Es wird typischerweise für mehrere asynchrone Aufgaben die parallel laufen und die Promises als Ergebnisse haben, so das eines warten kann, bis alle anderen Aufgaben abgeschlossen sind.

+ +
{{EmbedInteractiveExample("pages/js/promise-all.html")}}
+ + + +

Syntax

+ +
Promise.all(iterable);
+ +

Parameter

+ +
+
iterable
+
Ein iterierbares Objekt, z.B. ein {{jsxref("Array")}} oder ein {{jsxref("String")}}.
+
+ +

Rückgabe-Wert

+ + + +

Beschreibung

+ +

Diese Methode dient dem Bündeln von mehreren Promises.

+ +

Erfüllt: 
+ Wenn alle Promises erfolgreich erfüllt werden, oder keine Promises sind, wird Promise.all mit einem Array, welches die Rückgabewerte der einzelnen Promises (aber auch die nicht-Promise Werte) enthält, erfüllt. Wenn ein leeres Array übergeben wird, wird  Promise.all (synchron) sofort erfüllt. 

+ +

Abgelehnt:
+ Wenn eines der übergebenen Promises abgelehnt wird, wird Promise.all asynchron mit dem Wert des fehlgeschlagenen Promise abgelehnt, ganz egal, ob die anderen Promises erfolgreich waren oder nicht.

+ +

Beispiele

+ +

Erfolgreich:

+ +
var p1 = Promise.resolve(3);
+var p2 = 1337;
+var p3 = new Promise((resolve, reject) => {
+   setTimeout(resolve, 100, 'foo');
+});
+
+Promise.all([p1, p2, p3])
+.then(values => {
+  console.log(values); // [3, 1337, "foo"]
+});
+
+ +

Sofortige Ablehnung:

+ +
var p1 = new Promise((resolve, reject) => {
+  setTimeout(resolve, 1000, 'one');
+});
+var p2 = new Promise((resolve, reject) => {
+  setTimeout(resolve, 2000, 'two');
+});
+var p3 = new Promise((resolve, reject) => {
+  setTimeout(resolve, 3000, 'three');
+});
+var p4 = new Promise((resolve, reject) => {
+  setTimeout(resolve, 4000, 'four');
+});
+var p5 = new Promise((resolve, reject) => {
+  reject('reject');
+});
+
+Promise.all([p1, p2, p3, p4, p5]).then(values => {
+  console.log(values);
+}, reason => {
+  console.log(reason)
+});
+
+//From console:
+//"reject"
+
+//You can also use .catch
+Promise.all([p1, p2, p3, p4, p5]).then(values => {
+  console.log(values);
+}).catch(reason => {
+  console.log(reason)
+});
+
+//From console:
+//"reject"
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
domenic/promises-unwrappingDraftStandardization work is taking place here.
{{SpecName('ES2015', '#sec-promise.all', 'Promise.all')}}{{Spec2('ES2015')}}Initial definition in an ECMA standard.
+ +

Browserkompatiblität

+ + + +

{{Compat("javascript.builtins.Promise.all")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/promise/finally/index.html b/files/de/web/javascript/reference/global_objects/promise/finally/index.html new file mode 100644 index 0000000000..588d00d43f --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/promise/finally/index.html @@ -0,0 +1,93 @@ +--- +title: Promise.prototype.finally() +slug: Web/JavaScript/Reference/Global_Objects/Promise/finally +translation_of: Web/JavaScript/Reference/Global_Objects/Promise/finally +--- +
{{JSRef}}
+ +

finally () gibt ein {{jsxref ("Promise")}} zurück. Wenn das Promise erfüllt oder abgelehnt wird, wird die angegebene callback-Funktion ausgeführt. Dies stellt eine Möglichkeit für Code bereit, der ausgeführt werden muss, unabhängig davon, ob das Promise erfolgreich erfüllt wurde oder nicht. Auf diese Weise können Sie vermeiden, dass derselbe Code für die beiden Handlern des Promise {{jsxref ("Promise.then", "then ()")}} und {{jsxref ("Promise.catch", "catch ()")}} geschrieben werden muss.

+ +

Syntax

+ +
p.finally(onFinally);
+
+p.finally(function() {
+   // settled (fulfilled or rejected)
+});
+
+ +

Parameters

+ +
+
onFinally
+
A {{jsxref("Function")}} called when the Promise is settled.
+
+ +

Return value

+ +

Returns a {{jsxref("Promise")}} whose finally handler is set to the specified function, onFinally.

+ +

Description

+ +

The finally() method can be useful if you want to do some processing or cleanup once the promise is settled, regardless of its outcome.

+ +

The finally() method is very similar to calling .then(onFinally, onFinally) however there are couple of differences:

+ + + +
+

Note: A throw (or returning a rejected promise) in the finally callback will reject the new promise with the rejection reason specified when calling throw().

+
+ +

Examples

+ +
let isLoading = true;
+
+fetch(myRequest).then(function(response) {
+    var contentType = response.headers.get("content-type");
+    if(contentType && contentType.includes("application/json")) {
+      return response.json();
+    }
+    throw new TypeError("Oops, we haven't got JSON!");
+  })
+  .then(function(json) { /* process your JSON further */ })
+  .catch(function(error) { console.log(error); })
+  .finally(function() { isLoading = false; });
+
+
+ +

Specifications

+ + + + + + + + + + + + + + +
SpecificationStatusComment
TC39 proposalStage 4
+ +

Browser compatibility

+ + + +

{{Compat("javascript.builtins.Promise.finally")}}

+ +

See also

+ + diff --git a/files/de/web/javascript/reference/global_objects/promise/index.html b/files/de/web/javascript/reference/global_objects/promise/index.html new file mode 100644 index 0000000000..9e9756ac65 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/promise/index.html @@ -0,0 +1,244 @@ +--- +title: Promise +slug: Web/JavaScript/Reference/Global_Objects/Promise +translation_of: Web/JavaScript/Reference/Global_Objects/Promise +--- +
{{JSRef}}
+ +

Das Promise Objekt stellt eine Repräsentation einer eventuellen Ausführung (oder eines Fehlschlags) einer asynchronen Operation und den daraus resultierenden Ergebnissen dar.

+ +

Um mehr darüber zu erfahren wie promises funktionieren und wie diese verwendet werden sollte zuerst Promises benutzen gelesen werden.

+ +
+
+ +

Beschreibung

+ +

Das Promise-Objekt (dt./deutsch Ein Versprechens-Objekt, das später eingelöst wird)wird für asynchrone Berechnungen verwendet.

+ +

Ein Promise kann sich in einem von drei Zuständen befinden:

+ + + +

Ein weiterer Begriff beschreibt den Zustand settled (erledigt aber nicht zwingend erfolgreich): Der Promise ist entweder fulfilled oder rejected, aber nicht pending.

+ +

Syntax

+ +
new Promise(executor);
+new Promise(function(resolve, reject) { ... });
+ +

Parameter

+ +
+
executor (Ausführer)
+
Funktion mit den zwei Argumenten resolve und reject. Das erste Argument führt den Promise aus, das zweite verwirft ihn. Die Funktionen können ausgeführt werden, sobald die Operation durchgeführt wurde.
+
+ +

Beschreibung

+ +

Das Promise-Interface repräsentiert einen Proxy für einen Wert, der nicht zwingend bekannt ist, wenn der Promise erstellt wird. Das erlaubt die Assoziation zwischen Handler und dem Gelingen oder Fehlschlagen einer asynchronen Aktion. Mit diesem Mechanismus können asynchrone Methoden in gleicher Weise Werte zurück geben wie synchrone Methoden: Anstelle des endgültigen Wertes wird ein Promise zurückgegeben, dass es zu einem Zeitpunkt in der Zukunft einen Wert geben wird.

+ +

Ein Promise mit dem Status pending kann entweder zu fulfilled mit Wert oder zu einem rejected mit Grund werden. Wenn einer dieser Fälle eintritt, werden die assoziierten Handler, die über die then-Methode gequeued wurde, aufgerufen. Ist ein Promise bereits in fullfilled oder rejected und wird erst dann ein entsprechender Handler hinzugefügt, dann wird dieser Handler aufgerufen. Es gibt somit keine Race Conditions zwischen der Ausführung der asynchronen Aktion und dem Hinzufügen des Handlers.

+ +

Da die Methoden Promise.prototype.then und Promise.prototype.catch Promises zurückgeben, können sie aneinander gereiht werden (Komposition).

+ +

+ +

Properties

+ +
+
Promise.length
+
Length-Attribut mit dem Wert 1 (Anzahl der Konstruktorargumente).
+
{{jsxref("Promise.prototype")}}
+
Repräsentiert den Prototyp für den Promise-Konstruktor.
+
+ +

Methoden

+ +
+
{{jsxref("Promise.all", "Promise.all(iterable)")}}
+
Gibt einen Promise zurück, der aufgelöst wird, sobald alle Promises in dem iterable-Argument aufgelöst wurden.
+
{{jsxref("Promise.race", "Promise.race(iterable)")}}
+
Gibt einen Promise zurück, der aufgelöst oder verworfen wird, sobald einer der Promises in dem iterable-Argument aufgelöst oder verworfen wurde, und den Wert oder den Grund dieses Promise enthält.
+
+ +
+
{{jsxref("Promise.reject", "Promise.reject(reason)")}}
+
Gibt einen Promise zurück, der mit dem angegeben Grund (reason) verworfen wird.
+
+ +
+
{{jsxref("Promise.resolve", "Promise.resolve(value)")}}
+
Gibt einen Promise zurück, der mit value aufgelöst wird. Falls der Wert ein thenable ist (Objekt besitzt eine then-Methode), folgt der zurückgegebene Promise dem thenable und übernimmt den Status. Andernfalls wird der zurückgegebene Promise auf fulfilled gesetzt.
+
+ +

Promise-Prototyp

+ +

Eigenschaften

+ +

{{page('en-US/Web/JavaScript/Reference/Global_Objects/Promise/prototype','Eigenschaften')}}

+ +

Methoden

+ +

{{page('en-US/Web/JavaScript/Reference/Global_Objects/Promise/prototype','Methoden')}}

+ +

Beispiele

+ +

Einen Promise erstellen

+ + + +

Dieses kleine Beispiel zeigt den Mechanismus eines Promise. Die Methode testPromise() wird jedes Mal aufgerufen, wenn der {{HTMLElement("button")}} geklickt wurde. Es wird ein Promise erstellt, der mithilfe von window.setTimeout nach einer zufällig gewählten Zeit (1-3 s) zu 'result' aufgelöst wird.

+ +

Die Ausführung der Promises wird mit einem fulfill-Callback unter Verwendung von p1.then gelogt. Durch ein paar Logeinträge wird gezeigt, wie der synchrone Teil der Methode von der asynchronen Vollendung des Promises abgekoppelt ist.

+ +
var promiseCount = 0;
+function testPromise() {
+  var thisPromiseCount = ++promiseCount;
+
+  var log = document.getElementById('log');
+  log.insertAdjacentHTML('beforeend', thisPromiseCount +
+      ') Started (<small>Sync code started</small>)<br/>');
+
+  // Wir erstellen einen neuen Promise: wir versprechen den String 'result' (Wartezeit max. 3s)
+  var p1 = new Promise(
+    // Resolver-Funktion kann den Promise sowohl auflösen als auch verwerfen
+    // reject the promise
+    function(resolve, reject) {
+      log.insertAdjacentHTML('beforeend', thisPromiseCount +
+          ') Promise started (<small>Async code started</small>)<br/>');
+      // nur ein Beispiel, wie Asynchronität erstellt werden kann
+      window.setTimeout(
+        function() {
+          // We fulfill the promise !
+          resolve(thisPromiseCount)
+        }, Math.random() * 2000 + 1000);
+    });
+
+  // wir bestimmen, was zu tun ist, wenn der Promise fulfilled
+  p1.then(
+    // Loggen der Nachricht und des Wertes
+    function(val) {
+      log.insertAdjacentHTML('beforeend', val +
+          ') Promise fulfilled (<small>Async code terminated</small>)<br/>');
+    });
+
+  log.insertAdjacentHTML('beforeend', thisPromiseCount +
+      ') Promise made (<small>Sync code terminated</small>)<br/>');
+}
+
+ + + +

Dieses Beispiel wird ausgeführt, wenn der Button geklickt wird. Man benötigt einen Browser, der Promise unterstützt. Durch mehrmaliges Klicken in kurzer Zeit kann beobachtet werden, wie die einzelnen Promises nacheinander fulfilled werden.

+ +

{{EmbedLiveSample("Creating_a_Promise", "500", "200")}}

+ +

Laden eines Bildes mit XHR

+ +

Ein weiteres, einfaches Beispiel für die Verwendung von Promises und XMLHTTPRequest, um ein Bild zu laden, ist in dem MDN GitHub promise-test Repository. Hier kannst du es in Aktion sehen. Jeder Schritt ist kommentiert und erlaubt die den Promises und der XHR-Architektur nachzuvollziehen.

+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
domenic/promises-unwrappingDraftStandardisierung findet hier statt.
{{SpecName('ES6', '#sec-promise-objects', 'Promise')}}{{Spec2('ES6')}}Initiale Definition als ein ECMA-Standard.
+ +

Browserkompatiblität

+ +

{{CompatibilityTable}}

+ +
+ + + + + + + + + + + + + + + + + + + +
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic Support32{{CompatGeckoDesktop(24.0)}} als Future
+ {{CompatGeckoDesktop(25.0)}} als Promise hinter einem Flag[1]
+ {{CompatGeckoDesktop(29.0)}} per Default
{{CompatNo}}197.1
+
+ +
+ + + + + + + + + + + + + + + + + + + + + +
FeatureAndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari MobileChrome for Android
Basic Support{{CompatNo}}{{CompatGeckoMobile(24.0)}} als Future
+ {{CompatGeckoMobile(25.0)}} als Promise hinter einem Flag[1]
+ {{CompatGeckoMobile(29.0)}} per Default
{{CompatNo}}{{CompatNo}}iOS 832
+
+ +

[1] Gecko 24 hat eine experimentelle Implementierung von Promises unter dem vorherigen Namen Future. In Gecko 25 wurde sie in ihren endgültigen Namen umbenannt, wird aber per Default durch das Flag dom.promise.enable unterdrückt. Bug 918806 aktiviert Promises per Default in Gecko 29.

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/promise/race/index.html b/files/de/web/javascript/reference/global_objects/promise/race/index.html new file mode 100644 index 0000000000..78c4d9edf2 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/promise/race/index.html @@ -0,0 +1,184 @@ +--- +title: Promise.race() +slug: Web/JavaScript/Reference/Global_Objects/Promise/race +tags: + - ECMAScript 2015 + - JavaScript + - Method + - Promise +translation_of: Web/JavaScript/Reference/Global_Objects/Promise/race +--- +
{{JSRef}}
+ +

Promise.race(iterable) gibt ein erfolgreiches oder fehlgeschlagenes Promise zurück, sobald eines der Promises in dem iterable erfolgreich war oder fehlgeschlagen ist, entsprechend mit dem value oder dem reason dieses Promises.

+ +
{{EmbedInteractiveExample("pages/js/promise-race.html")}}
+ + + +

Syntax

+ +
Promise.race(iterable);
+ +

Parameter

+ +
+
iterable
+
Ein iterierbares Objekt, wie zum Beispiel {{jsxref("Array")}}. Siehe auch iterable.
+
+ +

Rückgabewert

+ +

Eine {{jsxref("Promise")}} im Status pending, die asynchron (sobald der Stack leer ist) einen erfolgreichen oder fehlerhaften Status annimmt, sobald die erste Promise erfolgreich, bzw. fehlerhaft ist und entsprechend diesen Wert zurückliefert.

+ +

Beschreibung

+ +

Die race Funktion gibt eine Promise zurück, die sich genauso verhält, wie die Promise aus iterable, die als erstes einen erfolgreichen oder fehlerhaften Status annimmt und entsprechend diesen Wert zurückliefert.

+ +

Wenn das übergebene iterable leer ist, wird die Promise für immer im Status pending verharren.

+ +

Wenn iterable einen oder mehrere Werte enthält, die keine Promise sind bzw. Promises die bereits einen erfolgreichen oder fehlerhaften Status angenommen haben, dann wird die zurückgegebene Promise von Promise.race entsprechend den ersten dieser Werte aus iterable annehmen.

+ +

 Beispiele

+ +

Asynchronität von Promise.race

+ +

Das folgende Beispiel demonstriert the Asynchronität von Promise.race:

+ +
// wir übergeben als Argument ein Array von Promises, die bereits einen
+// erfolgreichen Status angenommen haben, um Promise.race sofort auszulösen
+var resolvedPromisesArray = [Promise.resolve(33), Promise.resolve(44)];
+
+var p = Promise.race(resolvedPromisesArray);
+// sofortiges Loggen des Wertes aus p
+console.log(p);
+
+// mit setTimeout wird der Code erst nachdem der Stack leer ist ausgeführt
+setTimeout(function(){
+    console.log('der Stack ist jetzt leer');
+    console.log(p);
+});
+
+// Logs, in der Reihenfolge:
+// Promise { <state>: "pending" }
+// der Stack ist jetzt leer
+// Promise { <state>: "fulfilled", <value>: 33 }
+ +

Ein leeres iterable führt zu einer Promise, die für immer im Status pending bleibt:

+ +
var foreverPendingPromise = Promise.race([]);
+console.log(foreverPendingPromise);
+setTimeout(function(){
+    console.log('der Stack ist jetzt leer');
+    console.log(foreverPendingPromise);
+});
+
+// Logs, in der Reihenfolge:
+// Promise { <state>: "pending" }
+// der Stack ist jetzt leer
+// Promise { <state>: "pending" }
+
+ +

Wenn iterable einen oder mehrere Werte enthält, die keine Promise sind bzw. Promises die bereits einen erfolgreichen oder fehlerhaften Status angenommen haben, dann wird Promise.race entsprechend den ersten dieser Werte aus iterable annehmen:

+ +
var foreverPendingPromise = Promise.race([]);
+var alreadyResolvedProm = Promise.resolve(666);
+
+var arr = [foreverPendingPromise, alreadyResolvedProm, "keine Promise"];
+var arr2 = [foreverPendingPromise, "keine Promise", Promise.resolve(666)];
+var p = Promise.race(arr);
+var p2 = Promise.race(arr2);
+
+console.log(p);
+console.log(p2);
+setTimeout(function(){
+    console.log('der Stack ist jetzt leer');
+    console.log(p);
+    console.log(p2);
+});
+
+// Logs, in der Reihenfolge:
+// Promise { <state>: "pending" }
+// Promise { <state>: "pending" }
+// der Stack ist jetzt leer
+// Promise { <state>: "fulfilled", <value>: 666 }
+// Promise { <state>: "fulfilled", <value>: "keine Promise" }
+
+ +

Benutzung von Promise.race – Beispiele mit setTimeout

+ +
var p1 = new Promise(function(resolve, reject) {
+    setTimeout(resolve, 500, 'eins');
+});
+var p2 = new Promise(function(resolve, reject) {
+    setTimeout(resolve, 100, 'zwei');
+});
+
+Promise.race([p1, p2]).then(function(value) {
+  console.log(value); // "zwei"
+  // beide erfolgreich, aber p2 ist schneller
+});
+
+var p3 = new Promise(function(resolve, reject) {
+    setTimeout(resolve, 100, 'drei');
+});
+var p4 = new Promise(function(resolve, reject) {
+    setTimeout(reject, 500, 'vier');
+});
+
+Promise.race([p3, p4]).then(function(value) {
+  console.log(value); // "drei"
+  // p3 ist schneller, also insgesamt erfolgreich
+}, function(reason) {
+  // nicht aufgerufen
+});
+
+var p5 = new Promise(function(resolve, reject) {
+    setTimeout(resolve, 500, 'fünf');
+});
+var p6 = new Promise(function(resolve, reject) {
+    setTimeout(reject, 100, 'sechs');
+});
+
+Promise.race([p5, p6]).then(function(value) {
+  // nicht aufgerufen
+}, function(reason) {
+  console.log(reason); // "sechs"
+  // p6 ist schneller, also insgesamt fehlerhaft
+});
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES2015', '#sec-promise.race', 'Promise.race')}}{{Spec2('ES2015')}}Initiale Definition eines ECMA Standards.
{{SpecName('ESDraft', '#sec-promise.race', 'Promise.race')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Promise.race")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/promise/reject/index.html b/files/de/web/javascript/reference/global_objects/promise/reject/index.html new file mode 100644 index 0000000000..1b90305142 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/promise/reject/index.html @@ -0,0 +1,74 @@ +--- +title: Promise.reject() +slug: Web/JavaScript/Reference/Global_Objects/Promise/reject +translation_of: Web/JavaScript/Reference/Global_Objects/Promise/reject +--- +
{{JSRef}}
+ +
Die Promise.reject(reason) Methode gibt ein Promise Objekt zurück, das mit dem angegebenen Grund reason abgelehnt wurde.
+ +

 

+ +

Syntax

+ +
Promise.reject(reason);
+ +

Parameter

+ +
+
reason
+
Der Grund warum diese Promise abgelehnt wurde.
+
+ +

Rückgabewerte

+ +

Ein {{jsxref("Promise")}}, das mit dem angegeben Grund abgelehnt wurde

+ +

Beschreibung

+ +

Die statische Promise.reject Funktion gibt ein Promise zurück, das abgelehnt wurde. Für Debugging zwecke, sowie gezielte Fehlerverarbeitung ist es empfehlenswert, als reason eine instanceof {{jsxref("Error")}}. zu verwenden.

+ +

Beispiele

+ +

Verwendung der Promise.reject() Methode

+ +
Promise.reject(new Error('fail')).then(function(error) {
+  // nicht aufgerufen
+}, function(error) {
+  console.log(error); // Stacktrace
+});
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('ES2015', '#sec-promise.reject', 'Promise.reject')}}{{Spec2('ES2015')}}Initial definition in an ECMA standard.
{{SpecName('ESDraft', '#sec-promise.reject', 'Promise.reject')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript/promise","Promise.reject")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/promise/then/index.html b/files/de/web/javascript/reference/global_objects/promise/then/index.html new file mode 100644 index 0000000000..3578cfcb62 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/promise/then/index.html @@ -0,0 +1,149 @@ +--- +title: Promise.prototype.then() +slug: Web/JavaScript/Reference/Global_Objects/Promise/then +translation_of: Web/JavaScript/Reference/Global_Objects/Promise/then +--- +
{{JSRef}}
+ +
Die then()-Methode gibt ein Promise-Objekt zurück. Sie benötigt zwei Argumente, jeweils eine Callback-Funktion für den Erfolg und den Fehlschlag des Promise.
+ +
 
+ +

Syntax

+ +
p.then(onFulfilled, onRejected);
+
+p.then(function(value) {
+   // fulfillment
+  }, function(reason) {
+  // rejection
+});
+
+ +

Parameter

+ +
+
onFulfilled
+
Eine {{jsxref("Function")}}, welche aufgerufen wird, wenn der Promise erfüllt wurde. Die Funktion hat ein Argument, den Rückgabewert value.
+
onRejected {{optional_inline}}
+
Eine {{jsxref("Function")}}, welche aufgerufen wird, wenn der Promise fehlschlägt. Die Funktion hat ein Argument, den Grund für den Fehlschlag: reason. Ist keine Funktion definiert, so wird sie intern durch die "Thrower" Funktion ersetzt (Dieser gibt einen Fehler als Argument zurück)
+
+ +

Beschreibung

+ +

Die then- und {{jsxref("Promise.prototype.catch()")}}-Methoden, können, da sie Promises zurückgeben, verkettetet werden — ein Vorgehen, das composition genannt wird.

+ +

Beispiele

+ +

Benutzen der then-Methode

+ +
var p1 = new Promise(function(resolve, reject) {
+  resolve("Success!");
+  // or
+  // reject ("Error!");
+});
+
+p1.then(function(value) {
+  console.log(value); // Success!
+}, function(reason) {
+  console.log(reason); // Error!
+});
+
+ +

Verketten

+ +

Da die then-Methode einen Promise zurückliefert, können then-Aufrufe leicht verkettet werden.

+ +
var p2 = new Promise(function(resolve, reject) {
+  resolve(1);
+});
+
+p2.then(function(value) {
+  console.log(value); // 1
+  return value + 1;
+}).then(function(value) {
+  console.log(value); // 2
+});
+
+p2.then(function(value) {
+  console.log(value); // 1
+});
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES2015', '#sec-promise.prototype.then', 'Promise.prototype.then')}}{{Spec2('ES2015')}}Initiale Definition in einem ECMAScript-Standard.
+ +

Browserkompatibilität

+ +

{{CompatibilityTable}}

+ +
+ + + + + + + + + + + + + + + + + + + +
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support32{{CompatGeckoDesktop(29.0)}} [1]{{CompatNo}}197.1
+
+ +
+ + + + + + + + + + + + + + + + + + + + + +
FeatureAndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari MobileChrome for Android
Basic support{{CompatNo}}{{CompatGeckoMobile(29.0)}} [1]{{CompatNo}}{{CompatNo}}832
+
+ +

[1] Gecko 24 besitzt, unter dem Namen Future, eine experimentielle Implementation von Promise. In Gecko 25 wurde der Name final festgelegt aber standardmäßig durch die Einstellung dom.promise.enabled deaktiviert. Durch Bug 918806 wurden Promises in Gecko 29 standardmäßig aktiviert.

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/rangeerror/index.html b/files/de/web/javascript/reference/global_objects/rangeerror/index.html new file mode 100644 index 0000000000..d66cd10c55 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/rangeerror/index.html @@ -0,0 +1,174 @@ +--- +title: RangeError +slug: Web/JavaScript/Reference/Global_Objects/RangeError +tags: + - Error + - JavaScript + - NeedsTranslation + - Object + - RangeError + - TopicStub +translation_of: Web/JavaScript/Reference/Global_Objects/RangeError +--- +
{{JSRef}}
+ +

The RangeError object indicates an error when a value is not in the set or range of allowed values.

+ +

Syntax

+ +
new RangeError([message[, fileName[, lineNumber]]])
+ +

Parameters

+ +
+
message
+
Optional. Human-readable description of the error
+
fileName {{non-standard_inline}}
+
Optional. The name of the file containing the code that caused the exception
+
lineNumber {{non-standard_inline}}
+
Optional. The line number of the code that caused the exception
+
+ +

Description

+ +

A RangeError is thrown when trying to pass a number as an argument to a function that does not allow a range that includes that number. This can be encountered when attempting to create an array of an illegal length with the {{jsxref("Array")}} constructor, or when passing bad values to the numeric methods {{jsxref("Number.toExponential()")}}, {{jsxref("Number.toFixed()")}} or {{jsxref("Number.toPrecision()")}}.

+ +

Properties

+ +
+
{{jsxref("RangeError.prototype")}}
+
Allows the addition of properties to an RangeError object.
+
+ +

Methods

+ +

The global RangeError contains no methods of its own, however, it does inherit some methods through the prototype chain.

+ +

RangeError instances

+ +

Properties

+ +
{{page('/en-US/docs/Web/JavaScript/Reference/Global_Objects/RangeError/prototype', 'Properties')}}
+ +

Methods

+ +
{{page('/en-US/docs/Web/JavaScript/Reference/Global_Objects/RangeError/prototype', 'Methods')}}
+ +

Examples

+ +

Using RangeError

+ +
var check = function(num) {
+  if (num < MIN || num > MAX) {
+    throw new RangeError('Parameter must be between ' + MIN + ' and ' + MAX);
+  }
+};
+
+try {
+  check(500);
+}
+catch (e) {
+  if (e instanceof RangeError) {
+    // Handle range error
+  }
+}
+
+ +

Specifications

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('ES3')}}{{Spec2('ES3')}}Initial definition.
{{SpecName('ES5.1', '#sec-15.11.6.2', 'RangeError')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-native-error-types-used-in-this-standard-rangeerror', 'RangeError')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-native-error-types-used-in-this-standard-rangeerror', 'RangeError')}}{{Spec2('ESDraft')}} 
+ +

Browser compatibility

+ +
{{CompatibilityTable}}
+ +
+ + + + + + + + + + + + + + + + + + + + + +
FeatureChromeEdgeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + +
FeatureAndroidChrome for AndroidEdgeFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
+
+ +

See also

+ + diff --git a/files/de/web/javascript/reference/global_objects/rangeerror/prototype/index.html b/files/de/web/javascript/reference/global_objects/rangeerror/prototype/index.html new file mode 100644 index 0000000000..6dc92432bf --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/rangeerror/prototype/index.html @@ -0,0 +1,128 @@ +--- +title: RangeError.prototype +slug: Web/JavaScript/Reference/Global_Objects/RangeError/prototype +translation_of: Web/JavaScript/Reference/Global_Objects/RangeError +--- +
{{JSRef}}
+ +

Die RangeError.prototype Eigenschaft repräsentiert den Prototypen des {{jsxref("RangeError")}} Konstruktoren.

+ +
{{js_property_attributes(0, 0, 0)}}
+ +

Beschreibung

+ +

Alle {{jsxref("RangeError")}} Instanzen erben vom RangeError.prototype. Man kann den Prototypen nutzen um Eigenschaften oder Methoden allen Instanzen hinzuzufügen.

+ +

Eigenschaften

+ +
+
RangeError.prototype.constructor
+
Spezifiziert die Funktion welche den Prototypen einer Instanz erschaffen hat.
+
{{jsxref("Error.prototype.message", "RangeError.prototype.message")}}
+
Fehlermeldung. Obwohl ECMA-262 angibt, dass {{jsxref("RangeError")}} seine eigene message Eigenschaft versorgen sollte, erbt es in SpiderMonkey die {{jsxref("Error.prototype.message")}}.
+
{{jsxref("Error.prototype.name", "RangeError.prototype.name")}}
+
Fehlername. Geerbt von {{jsxref("Error")}}.
+
{{jsxref("Error.prototype.fileName", "RangeError.prototype.fileName")}}
+
Der Dateipfad verursacht diesen Fehler. Geerbt von {{jsxref("Error")}}.
+
{{jsxref("Error.prototype.lineNumber", "RangeError.prototype.lineNumber")}}
+
Die Zeile in der Datei, bei der der Fehler auftritt. Geerbt von {{jsxref("Error")}}.
+
{{jsxref("Error.prototype.columnNumber", "RangeError.prototype.columnNumber")}}
+
Die Spaltennummer der Zeile , bei der der Fehler auftritt. Geerbt von {{jsxref("Error")}}.
+
{{jsxref("Error.prototype.stack", "RangeError.prototype.stack")}}
+
Stack - Ablaufverfolgung. Geerbt von {{jsxref("Error")}}.
+
+ +

Methoden

+ +

 Obwohl das {{jsxref("RangeError")}} Prototypobjekt keine eigenen Methoden beinhaltet, beerben {{jsxref("RangeError")}} Instanzen einige Methoden durch die Prototypenkette.

+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusBeschreibung
{{SpecName('ES3')}}{{Spec2('ES3')}}Initialdefinition.
{{SpecName('ES5.1', '#sec-15.11.7.6', 'NativeError.prototype')}}{{Spec2('ES5.1')}}Definiert als NativeError.prototype.
{{SpecName('ES6', '#sec-nativeerror.prototype', 'NativeError.prototype')}}{{Spec2('ES6')}}Definiert als NativeError.prototype.
{{SpecName('ESDraft', '#sec-nativeerror.prototype', 'NativeError.prototype')}}{{Spec2('ESDraft')}}Definiert als NativeError.prototype.
+ +

Browserkompatibilität

+ +
{{CompatibilityTable}}
+ +
+ + + + + + + + + + + + + + + + + + + +
MerkmalChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + +
MerkmalAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/reflect/apply/index.html b/files/de/web/javascript/reference/global_objects/reflect/apply/index.html new file mode 100644 index 0000000000..bc16c4d4d8 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/reflect/apply/index.html @@ -0,0 +1,98 @@ +--- +title: Reflect.apply() +slug: Web/JavaScript/Reference/Global_Objects/Reflect/apply +translation_of: Web/JavaScript/Reference/Global_Objects/Reflect/apply +--- +
{{JSRef}}
+ +
Die statische Methode Reflect.apply() ruft eine Zielfunktion mit den spezifizierten Parametern auf.
+ +
 
+ +
{{EmbedInteractiveExample("pages/js/reflect-apply.html")}}
+ + + +

Syntax

+ +
Reflect.apply(target, thisParameter, listeDerArgumente)
+
+ +

Parameter

+ +
+
target
+
Die Funktion, die aufgerufen werden soll.
+
thisParameter
+
Der Wert von this der für den Aufruf bereitgestellt wird.
+
listeDerArgumente
+
Ein Array ähnliches Objekt welches die Parameter spezifiziert, mit denen die Zielfunktion aufgerufen wird.
+
+ +

Rückgabewert

+ +

Das Resultat des Aufruft, der Zielfunktion mit dem mitgegebenen this und den mitgegebenen Parametern.

+ +

Ausnahmen

+ +

Es wird ein {{jsxref("TypeError")}} geworfen, wenn die Zielfunktion nicht aufrufbar ist.

+ +

Beschreibung

+ +

In ES5, ruft man typischerweise {{jsxref("Function.prototype.apply()")}} auf, um eine Funktion aufzurufen, der man einen bestimmten this mitgeben und die Parameter als Array (oder einem array-like object) definieren möchte.

+ +
Function.prototype.apply.call(Math.floor, undefined, [1.75]);
+ +

Durch Reflect.apply wird dieses Vorhaben kürzer und ist leichter zu verstehen.

+ +

Beispiele

+ +

Verwendung von Reflect.apply()

+ +
Reflect.apply(Math.floor, undefined, [1.75]);
+// 1;
+
+Reflect.apply(String.fromCharCode, undefined, [104, 101, 108, 108, 111]);
+// "hello"
+
+Reflect.apply(RegExp.prototype.exec, /ab/, ['confabulation']).index;
+// 4
+
+Reflect.apply(''.charAt, 'ponies', [3]);
+// "i"
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES2015', '#sec-reflect.apply', 'Reflect.apply')}}{{Spec2('ES2015')}}Ursprüngliche Definition.
{{SpecName('ESDraft', '#sec-reflect.apply', 'Reflect.apply')}}{{Spec2('ESDraft')}} 
+ +

Browser kompabilität

+ + + +

{{Compat("javascript.builtins.Reflect.apply")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/reflect/construct/index.html b/files/de/web/javascript/reference/global_objects/reflect/construct/index.html new file mode 100644 index 0000000000..29da55d15b --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/reflect/construct/index.html @@ -0,0 +1,157 @@ +--- +title: Reflect.construct() +slug: Web/JavaScript/Reference/Global_Objects/Reflect/construct +translation_of: Web/JavaScript/Reference/Global_Objects/Reflect/construct +--- +
{{JSRef}}
+ +
Die statische Methode Reflect.construct() verhält sich wie der new operator, allerdings in Form einer Funktion.
+ +
Sie ist das Equivalent zu new target(...args). Es existiert zudem die Option, einen anderen Prototyp zu definieren.
+ +
 
+ +
{{EmbedInteractiveExample("pages/js/reflect-construct.html")}}
+ + + +

Syntax

+ +
Reflect.construct(target, listeDerArgumente[, newTarget])
+
+ +

Parameter

+ +
+
target
+
Die Funktion, die aufgerufen werden soll.
+
listeDerArgumente
+
Ein Array ähnliches Objekt welches die Parameter spezifiziert, mit denen die Zielfunktion aufgerufen wird.
+
newTarget {{optional_inline}}
+
Der Construktor dessen Typ genutzt werden soll. Siehe auch den new.target Operator. Wenn newTarget nicht existiert, ist es target.
+
+ +

Rückgabewert

+ +

Eine neue Instanz des target (oder newTarget, wenn vorhanden), Initialisiert durch das target als Konstruktor mit den gegebenen Parametern.

+ +

Ausnahmen

+ +

Es wird ein {{jsxref("TypeError")}} geworfen, Wenn target or newTarget keine Konstruktoren sind.

+ +

Beschreibung

+ +

Reflect.construct erlaubt es dir, einen Konstruktor mit einer variablen Anzahl von Parametern aufzurufen. (Was auch möglich ist, bai Verwendung des spread operator in Kombination mit dem new operator).

+ +
var obj = new Foo(...args);
+var obj = Reflect.construct(Foo, args);
+
+ +

 

+ +

Reflect.construct() vs Object.create()

+ +

Befor wir mit der Einführung von Reflect beginnen. Objekte können durch von Object.create() mithilfe einer beliebigen Kombination aus Konstruktor und Prototyp erstellt werden.

+ +
function OneClass() {
+    this.name = 'one';
+}
+
+function OtherClass() {
+    this.name = 'other';
+}
+
+// Calling this:
+var obj1 = Reflect.construct(OneClass, args, OtherClass);
+
+// ...has the same result as this:
+var obj2 = Object.create(OtherClass.prototype);
+OneClass.apply(obj2, args);
+
+console.log(obj1.name); // 'one'
+console.log(obj2.name); // 'one'
+
+console.log(obj1 instanceof OneClass); // false
+console.log(obj2 instanceof OneClass); // false
+
+console.log(obj1 instanceof OtherClass); // true
+console.log(obj2 instanceof OtherClass); // true
+
+ +

Obwohl das Endergebnis das gleiche ist, gibt es einen wichtigen Unterschied im Prozess.

+ +

Wenn Object.create() und Function.prototype.apply() verwendet werden, zeigt der new.target Operator innerhalb der als Konstruktor verwendeten Funktion auf undefined, da das newTarget nicht zum Erstellen des Objekts verwendet wird.

+ +

Wenn Sie dagegen Reflect.construct() aufrufen, zeigt der new.target Operator auf den newTarget Parameter, sofern angegeben und auf target, falls nicht.

+ +
function OneClass() {
+    console.log('OneClass');
+    console.log(new.target);
+}
+function OtherClass() {
+    console.log('OtherClass');
+    console.log(new.target);
+}
+
+var obj1 = Reflect.construct(OneClass, args);
+// Output:
+//     OneClass
+//     function OneClass { ... }
+
+var obj2 = Reflect.construct(OneClass, args, OtherClass);
+// Output:
+//     OneClass
+//     function OtherClass { ... }
+
+var obj3 = Object.create(OtherClass.prototype);
+OneClass.apply(obj2, args);
+// Output:
+//     OneClass
+//     undefined
+ +

 

+ +

Beispiele

+ +

Verwendung Reflect.construct()

+ +
var d = Reflect.construct(Date, [1776, 6, 4]);
+d instanceof Date; // true
+d.getFullYear(); // 1776
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES2015', '#sec-reflect.construct', 'Reflect.construct')}}{{Spec2('ES2015')}}Ursprüngliche Definition.
{{SpecName('ESDraft', '#sec-reflect.construct', 'Reflect.construct')}}{{Spec2('ESDraft')}} 
+ +

Browser kompabilität

+ + + +

{{Compat("javascript.builtins.Reflect.construct")}}

+ +

See also

+ + diff --git a/files/de/web/javascript/reference/global_objects/reflect/index.html b/files/de/web/javascript/reference/global_objects/reflect/index.html new file mode 100644 index 0000000000..3ba358f140 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/reflect/index.html @@ -0,0 +1,88 @@ +--- +title: Reflect +slug: Web/JavaScript/Reference/Global_Objects/Reflect +translation_of: Web/JavaScript/Reference/Global_Objects/Reflect +--- +
{{JSRef}}
+ +
Reflect ist ein Standardobjekt, das Methoden für abfangfähige JavaScript-Operationen bereitstellt.
+ +
Die Methoden entsprechen denen des proxy handlers.
+ +
Reflect ist kein Funktionsobjekt und verfügt daher über keinen Konstruktor.
+ +

Beschreibung

+ +

Im Gegensatz zu den meisten globalen Objekten hat Reflect keinen Konstruktor. Sie können es nicht mit einem new operator verwenden, oder Reflect als Funktion aufrufen.

+ +

Alle Eigenschaften und Methoden von Reflect sind statisch (wie bei {{jsxref("Math")}}).

+ +

Methoden

+ +

Das Reflect-Objekt stellt die folgenden statischen Funktionen bereit, die dieselben Namen haben wie die Methoden des proxy handler. Einige dieser Methoden sind exakt die selben wie bei entsprechenden Methoden des {{jsxref("Object")}}.

+ +
+
{{jsxref("Reflect.apply()")}}
+
Ruft eine Zielfunktion mit Argumenten auf, die Argumente werden im Parameter args angegeben. Siehe auch {{jsxref("Function.prototype.apply()")}}.
+
{{jsxref("Reflect.construct()")}}
+
 Der new operator als Funktion. Equivalent zu new target(...args). Bietet die optionale Möglichkeit, einen anderen Prototyp anzugeben.
+
{{jsxref("Reflect.defineProperty()")}}
+
Ähnlich zu {{jsxref("Object.defineProperty()")}}. Gibt einen {{jsxref("Boolean")}} zurück.
+
{{jsxref("Reflect.deleteProperty()")}}
+
Der delete operator als Funktion. Ähnlich zu dem Aufruf delete target[name].
+
{{jsxref("Reflect.get()")}}
+
Eine Funktion, die den Wert von Eigenschaften/Properties zurückgibt.
+
{{jsxref("Reflect.getOwnPropertyDescriptor()")}}
+
Ähnlich zu {{jsxref("Object.getOwnPropertyDescriptor()")}}. Gibt einen Eigenschaftsdeskriptor der angegebenen Eigenschaft, oder {{jsxref("undefined")}} zurück.
+
{{jsxref("Reflect.getPrototypeOf()")}}
+
Gleich wie {{jsxref("Object.getPrototypeOf()")}}.
+
{{jsxref("Reflect.has()")}}
+
Der in operator als Funktion. Gibt einen booleschen Wert zurück, der angibt, ob eine eigene oder geerbte Eigenschaft vorhanden ist.
+
{{jsxref("Reflect.isExtensible()")}}
+
Gleich wie {{jsxref("Object.isExtensible()")}}.
+
{{jsxref("Reflect.ownKeys()")}}
+
Gibt ein Array der eigenen (nicht geerbten) Eigenschaftsschlüssel des Zielobjekts zurück.
+
{{jsxref("Reflect.preventExtensions()")}}
+
Ähnlich zu {{jsxref("Object.preventExtensions()")}}. Gibt einen {{jsxref("Boolean")}} zurück.
+
{{jsxref("Reflect.set()")}}
+
Eine Funktion, die den Eigenschaften/Properties Werte zuweist. Gibt einen {{jsxref("Boolean")}} zurück, der true ist, wenn die Zuweisung erfolgreich verlief.
+
{{jsxref("Reflect.setPrototypeOf()")}}
+
+

Eine Funktion, die den Prototyp eines Objekts festlegt.

+
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES2015', '#sec-reflect-object', 'Reflect')}}{{Spec2('ES2015')}}Ursprüngliche Definition.
{{SpecName('ESDraft', '#sec-reflect-object', 'Reflect')}}{{Spec2('ESDraft')}}Reflect.enumerate wurde entfernt.
+ +

Browser kompatiblität

+ + + +

{{Compat("javascript.builtins.Reflect")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/regexp/flags/index.html b/files/de/web/javascript/reference/global_objects/regexp/flags/index.html new file mode 100644 index 0000000000..65956f3c3b --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/regexp/flags/index.html @@ -0,0 +1,83 @@ +--- +title: RegExp.prototype.flags +slug: Web/JavaScript/Reference/Global_Objects/RegExp/flags +tags: + - ECMAScript 2015 + - Eigenschaft + - JavaScript + - Prototyp + - Referenz + - RegExp + - Regular Expressions + - Reguläre Expressionen +translation_of: Web/JavaScript/Reference/Global_Objects/RegExp/flags +--- +
{{JSRef}}
+ +

Die flags Eigenschaft gibt einen String mit den Flags des RegExp-Objektes zurück.

+ +
{{EmbedInteractiveExample("pages/js/regexp-prototype-flags.html")}}
+ + + +
{{js_property_attributes(0, 0, 1)}}
+ +

Beschreibung

+ +

Flags in der flags Eigenschaft sind alphabetisch sortiert (von links nach rechts, z.B. "gimuy").

+ +

Beispiele

+ +

Die flags benutzen

+ +
/foo/ig.flags;   // "gi"
+/bar/myu.flags;  // "muy"
+
+ +

Polyfill

+ +
if (RegExp.prototype.flags === undefined) {
+  Object.defineProperty(RegExp.prototype, 'flags', {
+    configurable: true,
+    get: function() {
+      return this.toString().match(/[gimuy]*$/)[0];
+    }
+  });
+}
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES2015', '#sec-get-regexp.prototype.flags', 'RegExp.prototype.flags')}}{{Spec2('ES2015')}}Initielle Definition.
{{SpecName('ESDraft', '#sec-get-regexp.prototype.flags', 'RegExp.prototype.flags')}}{{Spec2('ESDraft')}} 
+ +

Browser-Kompatiblität

+ +
+ + +

 {{Compat("javascript.builtins.RegExp.flags")}}

+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/regexp/index.html b/files/de/web/javascript/reference/global_objects/regexp/index.html new file mode 100644 index 0000000000..9639ba265f --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/regexp/index.html @@ -0,0 +1,560 @@ +--- +title: RegExp +slug: Web/JavaScript/Reference/Global_Objects/RegExp +tags: + - JavaScript + - Klasse + - Referenz + - RegExp + - Reguläre Ausdrücke +translation_of: Web/JavaScript/Reference/Global_Objects/RegExp +--- +

{{JSRef}}

+ +

Der RegExp constructor erstellt ein Objekt mit regulären Werten, um diese dann als Muster an einem Text anzuwenden.

+ +

Für eine Einführung über reguläre Ausdrücke, lies das Kapitel Regular Expressions im JavaScript Guide (englisch).

+ +

Syntax

+ +
/muster/flags
+
+RegExp(muster [, flags])
+
+ +

Parameter

+ +
+
muster
+
Text des regulären Ausdrucks.
+
flags
+
+

Optional, flags kann eine Zeichenkette mit einer beliebige Kombination folgender Werte sein:

+ +
+
g
+
globale Suche (nach einem Treffer fortsetzen)
+
i
+
Groß-/Kleinschreibung ignorieren
+
m
+
multiline; behandelt den Suchkontext als Mehrfachzeilen, d.h. Anfang- und Endeanker (^ und $) entsprechen dem Anfang bzw. Ende jeder einzelnen Zeile (begrenzt durch \n oder \r), nicht nur dem Anfang und Ende der gesamten zu durchsuchenden Zeichenkette.
+
y {{Fx_minversion_inline(3)}} {{non-standard_inline}}
+
sticky; matches only from the index indicated by the lastIndex property of this regular expression in the target string (and does not attempt to match from any later indexes). This allows the match-only-at-start capabilities of the character "^" to effectively be used at any location in a string by changing the value of the lastIndex property.
+
+
+
+ +

Beschreibung

+ +

Es bestehen zwei Möglichkeiten, ein RegExp-Objekt zu erzeugen: Eine literale Notation und ein Konstruktor. In der literaren Version werden im Gegensatz zu der Konstruktorversion keine Anführungszeichen verwendet, um Zeichenketten zu kennzeichnen. Dementsprechend erzeugen beide der folgenden Zeilen den gleichen regulären Ausdruck:

+ +
/ab+c/i;
+new RegExp("ab+c", "i");
+
+ +

Die literale Notation stellt eine Kompilierung des regulären Ausdrucks während der Auswertung des Ausdrucks bereit. Nutzen Sie die literale Notation, wenn der reguläre Ausdruck unverändert bleiben wird. Wenn Sie zum Beispiel die literale Notation für die Erzeugung eines regulären Ausdruck verwenden, um ihn in einer Schleife zu anzuwenden, wird der reguläre Ausdruck nicht in jedem Schleifendurchlauf rekompiliert.

+ +

Der Konstruktor des RegExp-Objekts, z.B. new RegExp("ab+c"), stellt eine Laufzeitkompilierung des regulären Ausdrucks bereit. Nutzen Sie die Konstruktor-Funktion, wenn sich das reguläre Suchmuster ändern wird oder Sie das Muster nicht kennen und es aus einer anderen Quelle wie z.B. einer Benutzereingabe beziehen.

+ +

Bei Verwendung der Konstruktor-Funktion sind die normalen Zeichenfolgenmaskierungsregeln (Voranstellen eines Rückwärtsschrägstrichs (\) vor Sonderzeichen innerhalb von Zeichenketten) einzuhalten. Zum Beispiel sind folgende Zeilen äquivalent:

+ +
var re = /\w+/;
+var re = new RegExp("\\w+");
+
+ +

Bedeutung spezieller Zeichen in regulären Ausdrücken

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Zeichenklassen
ZeichenBedeutung
. +

(Punkt, Satzendezeichen) stimmt mit jedem Einzelzeichen außer den Zeilenvorschub- und Wagenrücklaufzeichen (\n \r \u2028 oder \u2029) überein.

+ +

Zu beachten ist, dass das m multiline flag nicht das Punktverhalten verändert. Um ein Musterentsprechung über mehrere Zeilen hinweg zu erreichen, kann die leere negative Zeichenauswahl [^] verwendet werden, sie stimmt mit jedem Zeichen einschließlich Zeilenumbrüchen überein.

+ +

/.y/ passt z.B. auf "my" und "ay", nicht aber auf "yes"  in "yes make my day".

+
\d +

Stimmt mit einer arabischen Ziffer überein. Äquivalent zu [0-9].

+ +

/\d/ or /[0-9]/ passt z.B. auf '2' in "B2 ist die Zimmernummer."

+
\D +

Stimmt mit jedem Zeichen überein, das keine arabische Ziffer ist. Äquivalent zu [^0-9].

+ +

/\D/ or /[^0-9]/ passt z.B. auf 'B' in "B2 ist die Zimmernummer."

+
\w +

Stimmt mit einem alphanumerischen Zeichen (Wortzeichen) einschließlich dem Unterstrich überein. Äquivalent zu [A-Za-z0-9_].

+ +

/\w/ passt zum Beispiel auf 'A' in "Apfel", '5' in "€5,28," und '3' in "3D."

+
\W +

Stimmt mit jedem Zeichen überein, das kein alphanumerisches Zeichen (Wortzeichen) ist. Äquivalent zu [^A-Za-z0-9_].

+ +

/\W/ or /[^A-Za-z0-9_]/ passt z.B. auf '%' in "50%."

+
\s +

Stimmt mit einem einzelnen Leerraumzeichen überein (Leerzeichen, Tabulator, Seitenvorschub, Zeilenvorschub und weitere Unicode-Zeichen). Äquivalent zu [ \f\n\r\t\v​\u00a0\u1680​\u180e\u2000​\u2001\u2002​\u2003\u2004​ \u2005\u2006​\u2007\u2008​\u2009\u200a​\u2028\u2029​​\u202f\u205f​ \u3000].

+ +

/\s\w*/ passt z.B. auf ' bar' in "foo bar."

+
\S +

Stimmt mit einem einzelnen Zeichen überein, das kein Leerraumzeichen ist. (Nicht-Leerraumzeichen).
+ Äquivalent zu [^\s] und zu [^ \f\n\r\t\v​\u00a0\u1680​\u180e\u2000​\u2001\u2002​\u2003\u2004​ \u2005\u2006​\u2007\u2008​\u2009\u200a​\u2028\u2029​​\u202f\u205f​ \u3000].

+ +

/\S\w*/ passt z.B. auf 'foo' in "foo bar."

+
\tStimmt mit einem Tabulatorzeichen überein.
\rStimmt mit einem Wagenrücklaufzeichen überein.
\nStimmt mit einem Zeilenvorschub überein.
\vStimmt mit einem vertikalen Tabulatorzeichen überein.
\fStimmt mit einem Seitenvorschub überein.
[\b] +

Stimmt mit einem Rücklöschzeichen (Backspace) überein. (Nicht zu verwechseln mit \b)

+
\0Stimmt mit einem NUL-Zeichen überein. (Keine weiteren Ziffern dürfen folgen!)
\cX +

Wobei X ein Buchstabe von A - Z ist. Stimmt mit einem Steuerzeichen überein.

+ +

/\cM/ passt z.B. auf Steuerung-M in einer Zeichenkette.

+
\xhh +

Stimmt mit einem Zeichen mit dem Code hh (zwei hexadezimale Ziffern) überein.

+ +

/foo\x20bar/ passt z.B. auf 'o b' in "foo bar".

+
\uhhhhStimmt mit einem Zeichen mit dem Unicode hhhh (vier hexadezimale Ziffern) überein.
\ +

Bei einem Zeichen, das normalerweise als Literal behandelt wird, signalisiert ein vorangestellter Rückschrägstrich, dass es als Spezialzeichen und nicht als Literal zu interpretieren ist.

+ +

Z.B. passt /b/ auf das Zeichen 'b'. Durch Voranstellen des Rückschrägstriches vor das "b", also /\b/, bekommt das Zeichen eine besondere Bedeutung und passt auf eine Wordgrenze.

+ +

oder

+ +

Bei einem Zeichen, das normalerweise als Zeichen mit spezieller Bedeutung interpretiert wird, signalisiert ein vorangestellter Rückschrägstrich, dass es ohne besondere Bedeutung als Literal interpretiert werden soll.

+ +

Zum Beispiel ist * Quantor-Spezialzeichen, das eine Übereinstimmung mit null oder mehreren Vorkommen des vorausgehenden Zeichens bedeutet; z.B. bedeutet /a*/ eine Übereinstimmung von null oder mehr "a"s. Um dem "*" als Literal zu entsprechen, wird ein Rückschrägstrich vorangestellt; z.B. passt /a\*/ auf 'a*'.

+
+

Zeichenauswahl

+
ZeichenBedeutung
[xyz] +

Zeichenauswahl, stimmt mit einem Beliebigen der eingeschlossenen Zeichen überein. Mittels eines Bindestriches kann ein Bereich von Zeichen angegeben werden.

+ +

[abcd] ist gleichbedeutend mit[a-d] und passt auf 'b' in "brisket" und 'c' in "chop".

+
[^xyz] +

Eine negative bzw. komplementäre Zeichenauswahl. Das bedeutet eine Übereinstimmung mit jedem Zeichen, das nicht in den eckigen Klammern eingeschlossen ist. Mittels eines Bindestriches kann ein Bereich von Zeichen angegeben werden.

+ +

Zum Beispiel ist [^abc] gleichbedeutend mit [^a-c]. Beides passt auf 'o' in "bacon" und 'h' in "chop."

+
Bereichsgrenzen
ZeichenBedeutung
^ +

Stimmt mit dem Anfang eines Subjekts und, wenn das multiline flag gesetzt ist, auch mit der Stelle unmittelbar nach einem Zeilenumbruchzeichen überein.

+ +

/^E/ passt z.B. nicht auf 'E' in "ein E" aber auf das erste 'E' in "Ein E."

+
$ +

Stimmt mit dem Ende eines Subjekts und, wenn das multiline flag gesetzt ist, auch mit der Stelle unmittelbar vor einem Zeilenumbruchzeichen überein.

+ +

/t$/ passt z.B. auf das 't' in "Brot", nicht aber in "Brote".

+
\b +

Stimmt mit einer null-breiten Wortgrenze wie zwischen einem Buchstaben und einem Leerzeichen überein. (Nicht zu verwechseln mit der Zeichenklasse [\b])

+ +

/\bno/ passt z.B. auf 'no' in "at noon"; /ly\b/ passt auf 'ly' in "possibly yesterday."

+
\B +

Stimmt mit einer null-breiten Nichtwortgrenze wie zwischen zwei Buchstaben oder zwischen zwei Leerzeichen überein.

+ +

/\Bon/ passt z.B. auf 'on' in "at noon" und /ye\B/ passt auf 'ye' in "possibly yesterday."

+
Gruppierung und Rückwärtsreferenz
ZeichenBedeutung
(x) +

Stimmt mit x überein und speichert die Übereinstimmung. Dies wird auch capturing parentheses (engl., aufzeichnende Klammern) genannt.

+ +

/(foo)/ passt z.B. auf 'foo' in "foo bar" und speichert die Übereinstimmung. Aufgezeichnete Teilzeichenketten können aus den Elementen [1], ..., [n] des Ergebnisfelds (Array) oder den Eigenschaften $1, ..., $9 des vordefinierten RegExp-Objekts ausgelesen werden.

+ +

Aufzeichnende Gruppierungen führen zu Performanzeinbußen. Wenn die übereinstimmenden Teilzeichenketten nicht wiederverwendet werden müssen, sind nicht aufzeichnende Klammern zu bevorzugen (siehe weiter unten).

+
\n +

Wobei n eine positive Ganzzahl ist. Ein Rückbezug auf die zuletzt gefundene Teilzeichenkette, die der Übereinstimmung mit der n-ten runden Klammer im regulären Ausdruck entspricht (öffnende Klammern gezählt).

+ +

/apple(,)\sorange\1/ passt z.B. auf 'apple, orange,' in "apple, orange, cherry, peach." und zeichnet das Komma auf. Ein umfassenderes Beispiel folgt im Anschluss an diese Tabelle.

+
(?:x)Stimmt mit x überein, speichert die Übereinstimmung aber nicht, auch non-capturing parentheses genannt. Auf die übereinstimmende Teilzeichenkette kann nicht mittels der Elemente [1], ..., [n] des Arrays oder der vordefinierten Eigenschaften $1, ..., $9 des RegExp-Objekts zugegriffen werden .
Quantoren
ZeichenBedeutung
* +

Stimmt mit dem null- oder mehrmaligen Vorkommen des voranstehenden Zeichen überein.

+ +

/bo*/ passt z.B. auf 'boooo' in "A ghost booooed" und 'b' in "A bird warbled", aber auf nichts in "A goat grunted".

+
+ +

Stimmt mit dem ein- oder mehrmaligen Vorkommen des voranstehenden Zeichen überein. Äquivalent zu {1,}

+ +

/ca+/ passt z.B. auf 'ca' in "candy" und 'caaa' in "caaandy" aber auf nichts in "cindy".

+
*?
+ +?
+

Passt wie * und+ weiter oben, aber der Ausdruck ist nicht gierig, d.h. er passt auf die kürzestmögliche Übereinstimmung.

+ +

/_.*?_/ passt z.B. auf "_foo_" in "_foo_ _bar_" aber nicht auf "_foo_ _bar_" wie der Ausdruck ohne dem ? hinterm *.

+
? +

Stimmt mit dem null- oder einmaligen Vorkommen des voranstehenden Zeichens überein.

+ +

/e?le?/ passt z.B. auf das  'el' in "angel" und auf das 'le' in "angle."

+ +

If used immediately after any of the quantifiers *, +, ?, or {}, makes the quantifier non-greedy (matching the minimum number of times), as opposed to the default, which is greedy (matching the maximum number of times).

+ +

Das Fragezeichen wird auch in lookahead assertions verwendet, welche unter (?=), (?!), sowie (?:) in dieser Tabelle beschrieben sind.

+
x(?=y)Passt nur auf x, wenn y darauf folgt. Zum Beispiel passt /Jack(?=Sprat)/ nur auf 'Jack', wenn danach 'Sprat' folgt. /Jack(?=Sprat|Frost)/ passt nur auf 'Jack', wenn 'Sprat' oder 'Frost' folgt. Allerdings ist weder 'Sprat' noch 'Frost' Teil der Übereinstimmungsresultate.
x(?!y) +

Passt nur auf x, wenn darauf nicht y folgt. /\d+(?!\.)/ z.B. stimmt nur mit einer Zahl überein, sofern kein Dezimalpunkt folgt.

+ +

/\d+(?!\.)/.exec("3.141") passt auf 141, aber nicht auf 3.

+
x|y +

Passt entweder auf x oder y.

+ +

/green|red/ passt z.B. auf 'green' in "green apple" und auf 'red' in "red apple."

+
{n} +

Wobei n eine positive Ganzzahl ist. Stimmt mit genau n Vorkommen des vorausgehenden Zeichens oder Teilausdrucks überein.

+ +

/a{2}/ passt z.B. auf beide 'a' in "caandy" und die ersten beiden 'a' in "caaandy", nicht aber auf das 'a' in "candy".

+
{n,} +

Wobei n eine positive Ganzzahl ist. Stimmt mit mindestens n Vorkommen des vorausgehenden Zeichens oder Teilausdrucks überein.

+ +

/a{2,}/ passt z.B. auf alle 'a' in "caandy" und in "caaaaaaandy.", nicht aber auf das 'a' in "candy".

+
{n,m} +

Wobei n und m positive Ganzzahlen sind. Stimmt mit mindestens n und höchstens m Vorkommen des vorausgehenden Zeichens oder Teilausdrucks überein.

+ +

/a{1,3}/ passt z.B. auf nichts in "cndy", das 'a' in "candy," die beiden 'a' in "caandy," und die ersten drei 'a' in "caaaaaaandy". Es ist zu beachten, dass bei der Übereinstimmung in "caaaaaaandy" der Treffer "aaa" ist, obwohl in der Originalzeichenkette mehr 'a' vorhanden wären.

+
+ +

Fußnoten

+ +
    +
  1. {{endnote("equivalent_s")}}Equivalent to: +

    [\t\n\v\f\r \u00a0\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u2028\u2029\u3000]

    +
  2. +
  3. {{endnote("equivalent_S")}}Equivalent to: +

    [^\t\n\v\f\r \u00a0\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u2028\u2029\u3000]

    +
  4. +
+ +

Eigenschaften

+ +
+
prototype
+
Erlaubt das Hinzufügen von Eigenschaften zu allen Objekten
+
+ +
{{jsOverrides("Function", "Properties", "prototype")}}
+ +

Methoden

+ +

Das globale RegExp Objekt hat keine eigenen Methoden. Es erbt allerdings manche Methoden durch die Prototypenkette.{{jsOverrides("Function", "Methods", "prototype")}}

+ +

RegExp-Instanzen

+ +

Eigenschaften

+ +
{{page('en/JavaScript/Reference/Global_Objects/RegExp/prototype','Properties')}}
+ +

Methoden

+ +
{{page('en/JavaScript/Reference/Global_Objects/RegExp/prototype','Methods')}}
+ +

Beispiele

+ +

Beispiel: Anwendung regulären Ausdrucks zur Datenformatänderung

+ +

Das folgende Script nutzt die replace Methode und nutzt die vererbte String Instanz (re) um als Rückgabewert eine Übereinstimmung des Namens (str) in dem Format erster, letzter und im Format letzter, erster zu finden. In dem zu ersetzenden Text nutzt das Script $1 und $2 um das Ergebnis der übereinstimmenden Treffer in der Klammer als Muster des regulären Ausdrucks.

+ +
var re = /(\w+)\s(\w+)/;
+var str = "John Smith";
+var newstr = str.replace(re, "$2, $1");
+print(newstr);
+ +

Das ergibt: "Smith, John".

+ +

Beispiel: Anwendung eines regulären Ausdrucks auf mehrzeilige Texte

+ +
var s = "Please yes\nmake my day!";
+s.match(/yes.*day/);
+// Returns null
+s.match(/yes[^]*day/);
+// Returns 'yes\nmake my day'
+
+ +

Beispiel: Anwendung eines regulären Ausdrucks mit dem "sticky" flag

+ +

Dieses Beispiel zeigt, wie man die feste Kennzeichung (sticky flag) an reguläre Ausdrücke nutzt, um Übereinstimmungen von individuelle Treffer von mehrzeigen Eingaben zu erhalten.

+ +
var text = "First line\nSecond line";
+var regex = /(\S+) line\n?/y;
+
+var match = regex.exec(text);
+print(match[1]);  // prints "First"
+print(regex.lastIndex); // prints 11
+
+var match2 = regex.exec(text);
+print(match2[1]); // prints "Second"
+print(regex.lastIndex); // prints "22"
+
+var match3 = regex.exec(text);
+print(match3 === null); // prints "true"
+ +

One can test at run-time whether the sticky flag is supported, using try { … } catch { … }. For this, either an eval(…) expression or the RegExp(regex-string, flags-string) syntax must be used (since the /regex/flags notation is processed at compile-time, so throws an exception before the catch block is encountered). For example:

+ +
var supports_sticky;
+try { RegExp('','y'); supports_sticky = true; }
+catch(e) { supports_sticky = false; }
+alert(supports_sticky); // alerts "true"
+ +

Beispiel: Regulärer Ausdruck und Unicode-Zeichen

+ +

Wie oben erwähnt treffen Übereinstimmugnen mit \w or \W  nur ASCII basierende Zeichen; als Beispiel: 'a' bis 'z', 'A' bis 'Z', 0 bis 9 und '_'. Um Übereinstimmungen für Zeichensätze anderer Sprachen wie Kyrillisch oder Hebräisch zu erzielen, nutze \uhhhh., während "hhhh" den Unicode-Wert des Zeichensatzes in Hexadezimal angibt. Dieses Beispiel demonstriert wie man Unicode-Zeichen aus einem Wort erhält:

+ +
var text = "Образец text на русском языке";
+var regex = /[\u0400-\u04FF]+/g;
+
+var match = regex.exec(text);
+print(match[0]);  // prints "Образец"
+print(regex.lastIndex);  // prints "7"
+
+var match2 = regex.exec(text);
+print(match2[0]);  // prints "на" [did not print "text"]
+print(regex.lastIndex);  // prints "15"
+
+// and so on
+ +

Hier ist eine externe Quelle um alle Unicode Blöcke für verschiedene Scripte zu erhalten: Regexp-unicode-block

+ +

Weitere nennenswerte Beispiele

+ +
Extrahieren eines Subdomain-Namens aus einer URL
+ +
var url = "http://xxx.domain.com";
+print(/[^.]+/.exec(url)[0].substr(7)); // prints "xxx"
+ +

Browserkompatibilität

+ +

{{CompatibilityTable}}

+ +
+ + + + + + + + + + + + + + + + + + + +
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari (WebKit)
Basic support{{CompatUnknown}}{{CompatVersionUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
+
+ +
+ + + + + + + + + + + + + + + + + + + +
FeatureAndroidFirefox Mobile (Gecko)IE PhoneOpera MobileSafari Mobile
Basic support{{CompatUnknown}}{{CompatVersionUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/regexp/input/index.html b/files/de/web/javascript/reference/global_objects/regexp/input/index.html new file mode 100644 index 0000000000..d173458705 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/regexp/input/index.html @@ -0,0 +1,105 @@ +--- +title: RegExp.input ($_) +slug: Web/JavaScript/Reference/Global_Objects/RegExp/input +tags: + - JavaScript + - Property + - Reference + - RegExp + - Regular Expressions +translation_of: Web/JavaScript/Reference/Global_Objects/RegExp/input +--- +
{{JSRef}} {{non-standard_header}}
+ +

Die nicht-standarde input Propertie ist eine statische Propertie regularer Expressionen, welche die Zeichenkette, der eine reguläre Expression entgegengestellt wird, enthält. RegExp.$_ ist ein Alias für diese Propertie.

+ +

Syntaxis

+ +
RegExp.input
+RegExp.$_
+
+ +

Beschreibung

+ +

Die input-Propertie ist statisch, ist nicht eine Propertie eines einzigen Obiectes einer regulären Expression. Stattdessen nutzt man es immer als RegExp.input oder

+ +

Der Wert der input-Propertie wird verändert, wenn die gesuchte Zeichenkette in der regulären Expression verändert wird und diese Zeichenkette passt.

+ +

Beispiele

+ +

Verwendung von input und $_

+ +
var re = /hi/g;
+re.test("hi there!");
+RegExp.input;         // "hi there!"
+re.test("foo");       // neuer Test, unpassend
+RegExp.$_;            // "hi there!"
+re.test("hi world!"); // neuer Test, passend
+RegExp.$_;            // "hi world!"
+
+ +

Specificationen

+ +

Non-standard. Nicht Teil von irgendeiner laufenden Specification.

+ +

Browsercompatibilität

+ +
{{CompatibilityTable}}
+ +
+ + + + + + + + + + + + + + + + + + + +
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basisunterstützung{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + +
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basisunterstützung{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/regexp/test/index.html b/files/de/web/javascript/reference/global_objects/regexp/test/index.html new file mode 100644 index 0000000000..e908792657 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/regexp/test/index.html @@ -0,0 +1,127 @@ +--- +title: RegExp.prototype.test() +slug: Web/JavaScript/Reference/Global_Objects/RegExp/test +translation_of: Web/JavaScript/Reference/Global_Objects/RegExp/test +--- +
{{JSRef}}
+ +

Die test() Methode führt eine Suche nach einer Übereinstimmung zwischen einer regular expression und einem String durch. Sie gibt  true oder false zurück.

+ +
{{EmbedInteractiveExample("pages/js/regexp-prototype-test.html", "taller")}}
+ + + +

Syntax

+ +
regexObj.test(str)
+ +

Parameter

+ +
+
str
+
Der String, mit dem die regular expression verglichen wird.
+
+ +

Rückgabewerte

+ +

true wird zurückgegeben, wenn es eine Übereinstimmung zwischen der regular expression und dem String gibt str. Anderenfalls wird false zurückgegeben.

+ +

Beschreibung

+ +

Verwenden Sie test(), wenn Sie wissen möchten, ob ein Muster auf einen String zutrifft. test() gibt einen boolschen Wert zurück, wohingegen die {{jsxref("String.prototype.search()")}} Methode den Index der Übereinstimmung, oder wenn keine Übereinstimmung gefunden wird,  -1 zurück gibt.

+ +

Um mehr Informationen zu erhalten, können Sie alternativ die langsammere {{jsxref("RegExp.prototype.exec()", "exec()")}} Methode verwenden. (Sie ähnelt {{jsxref("String.prototype.match()")}} Methode.)

+ +

As with exec() (or in combination with it), test() called multiple times on the same global regular expression instance will advance past the previous match.

+ +

Beispiele

+ +

test() anwenden

+ +

Ein einfaches Beispiel, um zu testen, ob "hello" am Anfang eines Strings enthalten ist. Die Ausgabe ist ein boole'scher Wert.  

+ +
const str = 'hello world!';
+const result = /^hello/.test(str);
+
+console.log(result); // true
+
+ +

Das folgende Beispiel logt eine Nachricht, die vom Erfolg des Tests abhängt:

+ +
function testInput(re, str) {
+  let midstring;
+  if (re.test(str)) {
+    midstring = 'contains';
+  } else {
+    midstring = 'does not contain';
+  }
+  console.log(`${str} ${midstring} ${re.source}`);
+}
+
+ +

Anwendung von test() mit dem Kennzeichen "global"

+ +

When a regex has the global flag set, test() will advance the {{jsxref("RegExp.lastIndex", "lastIndex")}} of the regex. ({{jsxref("RegExp.prototype.exec()")}} also advances the lastIndex property.)

+ +

Further calls to test(str) will resume searching str starting from lastIndex. The lastIndex property will continue to increase each time test() returns true

+ +
+

Note: As long as test() returns truelastIndex will not reset—even when testing a different string!

+
+ +

When test() returns false, the calling regex's lastIndex property will reset to 0.

+ +

The following example demonstrates this behaviour:

+ +
const regex = /foo/g; // the "global" flag is set
+
+// regex.lastIndex is at 0
+regex.test('foo')     // true
+
+// regex.lastIndex is now at 3
+regex.test('foo')     // false
+
+// regex.lastIndex is at 0
+regex.test('barfoo')  // true
+
+// regex.lastIndex is at 6
+regex.test('foobar')  //false
+
+// regex.lastIndex is at 0
+// (...and so on)
+
+ +

Spezifikationen

+ + + + + + + + + + + + +
Spezifikation
{{SpecName('ESDraft', '#sec-regexp.prototype.test', 'RegExp.test')}}
+ +

Browser -Kompatibilität

+ + + +

{{Compat("javascript.builtins.RegExp.test")}}

+ +

Firefox-specific notes

+ +

Prior to Firefox 8, test() was implemented incorrectly. When called without parameters, it would match against the value of the previous input (RegExp.input property) instead of against the string "undefined".

+ +

This is fixed. Now, /undefined/.test() correctly results in true, instead of throwing an error.

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/set/add/index.html b/files/de/web/javascript/reference/global_objects/set/add/index.html new file mode 100644 index 0000000000..1df111c1c5 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/set/add/index.html @@ -0,0 +1,69 @@ +--- +title: Set.prototype.add() +slug: Web/JavaScript/Reference/Global_Objects/Set/add +translation_of: Web/JavaScript/Reference/Global_Objects/Set/add +--- +
{{JSRef}}
+ +

Die add() Methode fügt ein neues Element mit dem angegebenen Wert an das Ende eines Set Objekts hinzu.

+ +
{{EmbedInteractiveExample("pages/js/set-prototype-add.html")}}
+ + + +

Syntax

+ +
mySet.add(value);
+ +

Parameter

+ +
+
value
+
Der hinzufügende Wert zu dem Set Objekt.
+
+ +

Rückgabewert

+ +

Das Set Objekt.

+ +

Beispiele

+ +

Verwenden der add() Methode

+ +
var mySet = new Set();
+
+mySet.add(1);
+mySet.add(5).add('some text'); // chainable
+
+console.log(mySet);
+// Set [1, 5, "some text"]
+
+ +

Spezifikationen

+ + + + + + + + + + + + +
Spezifikation
{{SpecName('ESDraft', '#sec-set.prototype.add', 'Set.prototype.add')}}
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Set.add")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/set/delete/index.html b/files/de/web/javascript/reference/global_objects/set/delete/index.html new file mode 100644 index 0000000000..f0f4cf5f3e --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/set/delete/index.html @@ -0,0 +1,84 @@ +--- +title: Set.prototype.delete() +slug: Web/JavaScript/Reference/Global_Objects/Set/delete +translation_of: Web/JavaScript/Reference/Global_Objects/Set/delete +--- +
{{JSRef}}
+ +

Die delete() Methode entfernt das angegebene Element aus einem Set Objekt.

+ +
{{EmbedInteractiveExample("pages/js/set-prototype-delete.html")}}
+ + + +

Syntax

+ +
mySet.delete(value);
+ +

Parameter

+ +
+
value
+
Der zu entfernende Wert aus mySet.
+
+ +

Rückgabewert

+ +

Rückgabewert ist true wenn value erfolgreich aus mySet entfernt wurde; ansonstenfalse.

+ +

Beispiel

+ +

Verwenden der delete() Methode

+ +
const mySet = new Set();
+mySet.add('foo');
+
+mySet.delete('bar'); // Returns false. No "bar" element found to be deleted.
+mySet.delete('foo'); // Returns true.  Successfully removed.
+
+mySet.has('foo');    // Returns false. The "foo" element is no longer present.
+
+ +

Ein Beispiel, wie ein Objekt aus einem Set entfernt werden kann.

+ +
const setObj = new Set();   // Create a New Set.
+
+setObj.add({x: 10, y: 20}); // Add object in the set.
+
+setObj.add({x: 20, y: 30}); // Add object in the set.
+
+// Delete any point with `x > 10`.
+setObj.forEach(function(point){
+  if (point.x > 10){
+    setObj.delete(point)
+  }
+})
+
+ +

Spezifikationen

+ + + + + + + + + + + + +
Specification
{{SpecName('ESDraft', '#sec-set.prototype.delete', 'Set.prototype.delete')}}
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Set.delete")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/set/has/index.html b/files/de/web/javascript/reference/global_objects/set/has/index.html new file mode 100644 index 0000000000..6374d80bc6 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/set/has/index.html @@ -0,0 +1,131 @@ +--- +title: Set.prototype.has() +slug: Web/JavaScript/Reference/Global_Objects/Set/has +tags: + - ECMAScript 2015 + - JavaScript + - Method + - Prototype + - set +translation_of: Web/JavaScript/Reference/Global_Objects/Set/has +--- +
{{JSRef}}
+ +

Die Methode has() prüft, ob ein Set-Objekt ein Element mit dem angegebenen Wert enthält und gibt entsprechend true oder false zurück.

+ +

Syntax

+ +
mySet.has(value);
+ +

Parameter

+ +
+
value
+
Der zu suchende Wert.
+
+ +

Rückgabewert

+ +
+
Boolean
+
Gibt true zurück, falls ein Element mit dem angegebenen Wert innerhalb des Set-Objektes existiert, ansonsten wird false zurückgegeben.
+
+ +

Beispiel

+ +

has() verwenden

+ +

Das folgende Beispiel verwendet has(), um zu prüfen, ob bestimmte Werte in einem Set enthalten sind oder nicht.

+ +
var mySet = new Set();
+mySet.add('foo');
+
+mySet.has('foo');  // returns true
+mySet.has('bar');  // returns false
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES2015', '#sec-set.prototype.has', 'Set.prototype.has')}}{{Spec2('ES2015')}}Initiale Definition.
{{SpecName('ESDraft', '#sec-set.prototype.has', 'Set.prototype.has')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ +

{{CompatibilityTable}}

+ +
+ + + + + + + + + + + + + + + + + + + + + +
FeatureChromeEdgeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support38{{CompatVersionUnknown}}{{CompatGeckoDesktop("13.0")}}11257.1
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + +
FeatureAndroidChrome for AndroidEdgeFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatNo}}38{{CompatVersionUnknown}}{{CompatGeckoMobile("13.0")}}{{CompatNo}}{{CompatNo}}8
+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/set/index.html b/files/de/web/javascript/reference/global_objects/set/index.html new file mode 100644 index 0000000000..27a3b1ad3d --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/set/index.html @@ -0,0 +1,264 @@ +--- +title: Set +slug: Web/JavaScript/Reference/Global_Objects/Set +tags: + - ECMAScript6 + - Global Objects + - JavaScript + - Referenz + - set +translation_of: Web/JavaScript/Reference/Global_Objects/Set +--- +
{{JSRef}}
+ +

Ein Set-Objekt speichert eindeutige Werte jedes beliebigen Typs, egal ob es sich dabei um {{Glossary("Primitive", "primitive Werte")}} oder Objektreferenzen handelt.

+ +
{{EmbedInteractiveExample("pages/js/set-prototype-constructor.html")}}
+ + + +

Syntax

+ +
new Set([iterable]);
+ +

Parameter

+ +
+
iterable
+
Ein iterierbares Objekt, dessen Elemente zum neuen Set hinzugefügt werden sollen.
+ Ist dieser Parameter nicht angegeben oder null, wird ein leeres Set erzeugt.
+
+ +

Rückgabewert

+ +

Ein neues Set Objekt.

+ +

Beschreibung

+ +

Set Objekte sind Sammlungen von Werten. Man kann über die Elemente iterieren; sie werden in der Reihenfolge ihres Hinzufügens gespeichert. Jeder Wert ist nur einmal vorhanden; er ist im Set eindeutig.

+ +

Gleichheit

+ +

Da jeder Wert innerhalb eines Sets eindeutig sein muss, werden alle Werte auf Gleichheit überprüft. In einer früheren Version der ECMAScript Spezifikation verhielt sich der Algorithmus dafür anders als der für den === Operator. Insbesondere waren für Sets +0 und -0 verschiedene Werte (obwohl sie streng gleich sind). In der ECMAScript 2015 Spezifikation wurde das geändert, so dass +0 und -0 jetzt jeweils als gleicher Wert gelten. Siehe auch den Eintrag "Key equality for -0 and 0" in der Übersicht zur Browserkompatibilität.

+ +

{{jsxref("NaN")}} und {{jsxref("undefined")}} können ebenfalls in einem Set gespeichert werden. Dabei werden alle NaN Werte gleichgesetzt, d.h. NaN gilt gleich NaN (auch wenn NaN !== NaN).

+ +

Eigenschaften

+ +
+
Set.length
+
Der Wert der Eigenschaft length ist immer 0.
+ Die Anzahl der Elemente eines Sets befindet sich in {{jsxref("Set.prototype.size")}}.
+
{{jsxref("Set.@@species", "get Set[@@species]")}}
+
Die Konstruktorfunktion, um abgeleitete Objekte zu erzeugen.
+
{{jsxref("Set.prototype")}}
+
Prototyp für den Set Konstruktor. Ermöglicht das Hinzufügen von Eigenschaften zu allen Set Objekten.
+
+ +

Set Instanzen

+ +

Alle Set Instanzen erben von {{jsxref("Set.prototype")}}.

+ +

Eigenschaften

+ +

{{page('en-US/Web/JavaScript/Reference/Global_Objects/Set/prototype','Properties')}}

+ +

Methoden

+ +

{{page('en-US/Web/JavaScript/Reference/Global_Objects/Set/prototype','Methods')}}

+ +

Beispiele

+ +

Verwenden eines Set Objekts

+ +
var mySet = new Set();
+
+mySet.add(1);
+mySet.add(5);
+mySet.add("some text");
+var o = {a: 1, b: 2};
+mySet.add(o);
+
+mySet.has(1); // true
+mySet.has(3); // false, 3 has not been added to the set
+mySet.has(5);              // true
+mySet.has(Math.sqrt(25));  // true
+mySet.has("Some Text".toLowerCase()); // true
+mySet.has(o); // true
+
+mySet.size; // 4
+
+mySet.delete(5); // removes 5 from the set
+mySet.has(5);    // false, 5 has been removed
+
+mySet.size; // 3, we just removed one value
+
+ +

Iterieren über ein Set

+ +
// iterate over items in set
+// logs the items in the order: 1, "some text"
+for (let item of mySet) console.log(item);
+
+// logs the items in the order: 1, "some text"
+for (let item of mySet.keys()) console.log(item);
+
+// logs the items in the order: 1, "some text"
+for (let item of mySet.values()) console.log(item);
+
+// logs the items in the order: 1, "some text"
+//(key and value are the same here)
+for (let [key, value] of mySet.entries()) console.log(key);
+
+// convert set to plain Array
+var myArr = Array.from(mySet); // [1, "some text"]
+
+// the following will also work if run in an HTML document
+mySet.add(document.body);
+mySet.has(document.querySelector("body")); // true
+
+// converting between Set and Array
+mySet2 = new Set([1,2,3,4]);
+mySet2.size; // 4
+[...mySet2]; // [1,2,3,4]
+
+// intersect can be simulated via
+var intersection = new Set([...set1].filter(x => set2.has(x)));
+
+// difference can be simulated via
+var difference = new Set([...set1].filter(x => !set2.has(x)));
+
+// Iterate set entries with forEach
+mySet.forEach(function(value) {
+  console.log(value);
+});
+
+// 1
+// 2
+// 3
+// 4
+ +

Gebräuchliche Set Operationen implementieren

+ +
function isSuperset(set, subset) {
+    for (var elem of subset) {
+        if (!set.has(elem)) {
+            return false;
+        }
+    }
+    return true;
+}
+
+function union(setA, setB) {
+    var _union = new Set(setA);
+    for (var elem of setB) {
+        _union.add(elem);
+    }
+    return _union;
+}
+
+function intersection(setA, setB) {
+    var _intersection = new Set();
+    for (var elem of setB) {
+        if (setA.has(elem)) {
+            _intersection.add(elem);
+        }
+    }
+    return _intersection;
+}
+
+function symmetricDifference(setA, setB) {
+    var _difference = new Set(setA);
+    for (var elem of setB) {
+        if (_difference.has(elem)) {
+            _difference.delete(elem);
+        } else {
+            _difference.add(elem);
+        }
+    }
+    return _difference;
+}
+
+function difference(setA, setB) {
+    var _difference = new Set(setA);
+    for (var elem of setB) {
+        _difference.delete(elem);
+    }
+    return _difference;
+}
+
+//Examples
+var setA = new Set([1, 2, 3, 4]),
+    setB = new Set([2, 3]),
+    setC = new Set([3, 4, 5, 6]);
+
+isSuperset(setA, setB); // => true
+union(setA, setC); // => Set [1, 2, 3, 4, 5, 6]
+intersection(setA, setC); // => Set [3, 4]
+symmetricDifference(setA, setC); // => Set [1, 2, 5, 6]
+difference(setA, setC); // => Set [1, 2]
+ +

Array und Set

+ +
var myArray = ["value1", "value2", "value3"];
+
+// Use the regular Set constructor to transform an Array into a Set
+var mySet = new Set(myArray);
+
+mySet.has("value1"); // returns true
+
+// Use the spread operator to transform a set into an Array.
+console.log([...mySet]); // Will show you exactly the same Array as myArray
+ +

Duplikate entfernen aus einem Array

+ +
// Use to remove duplicate elements from the array 
+
+const numbers = [2,3,4,4,2,3,3,4,4,5,5,6,6,7,5,32,3,4,5]
+
+console.log([...new Set(numbers)])
+
+// [2, 3, 4, 5, 6, 7, 32]
+ +

String und Set

+ +
var text = 'India';
+
+var mySet = new Set(text);  // Set ['I', 'n', 'd', 'i', 'a']
+mySet.size;  // 5
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES6', '#sec-set-objects', 'Set')}}{{Spec2('ES6')}}Initial definition.
{{SpecName('ESDraft', '#sec-set-objects', 'Set')}}{{Spec2('ESDraft')}}
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.Set")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/string/charat/index.html b/files/de/web/javascript/reference/global_objects/string/charat/index.html new file mode 100644 index 0000000000..815eb59bba --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/string/charat/index.html @@ -0,0 +1,305 @@ +--- +title: String.prototype.charAt() +slug: Web/JavaScript/Reference/Global_Objects/String/charAt +tags: + - JavaScript + - Method + - Prototype + - Reference + - String +translation_of: Web/JavaScript/Reference/Global_Objects/String/charAt +--- +
{{JSRef}}
+ +

Die charAt()-Methode gibt das Zeichen an einer bestimmten Stelle eines Strings wieder.

+ +

Syntax

+ +
str.charAt(index)
+ +

Parameter

+ +
+
index
+
Eine Zahl zwischen 0 und str.length-1. Ist kein index gegeben, ist dieser automatisch 0.
+
+ +

Wiedergegebener Wert

+ +

Ein String, der das Zeichen an der angegebenen index-Stelle wiedergibt. Wenn index außerhalb der Reichweite liegt, wird ein leerer String zurückgegeben.
+  

+ +

Beschreibung

+ +

Zeichen in einem String werden von links nach rechts indexiert. Der Index des ersten Zeichens ist 0, der Index des letzten Zeichens eines Strings namens stringName ist stringName.length - 1.

+ +

Wenn kein Index bereitgestellt wird, ist dieser standardmäßig 0.

+ +

Beispiele

+ +

Wiedergabe von Zeichen an verschiedenen Stellen eines Strings

+ +

Das folgende Beispiel gibt Zeichen an verschiedenen Orten im String "Brave new world" wieder:

+ +
var anyString = 'Brave new world';
+console.log("Das Zeichen bei Index 0   ist '" + anyString.charAt()   + "'");
+// kein Index definiert, 0 als Standard genutzt
+
+console.log("Das Zeichen bei Index 0   ist '" + anyString.charAt(0)   + "'");
+console.log("Das Zeichen bei Index 1   ist '" + anyString.charAt(1)   + "'");
+console.log("Das Zeichen bei Index 2   ist '" + anyString.charAt(2)   + "'");
+console.log("Das Zeichen bei Index 3   ist '" + anyString.charAt(3)   + "'");
+console.log("Das Zeichen bei Index 4   ist '" + anyString.charAt(4)   + "'");
+console.log("Das Zeichen bei Index 999 ist '" + anyString.charAt(999) + "'");
+
+ +

Diese Zeilen geben folgendes wieder:

+ +
Das Zeichen bei Index 0   ist 'B'
+Das Zeichen bei Index 0   ist 'B'
+Das Zeichen bei Index 1   ist 'r'
+Das Zeichen bei Index 2   ist 'a'
+Das Zeichen bei Index 3   ist 'v'
+Das Zeichen bei Index 4   ist 'e'
+Das Zeichen bei Index 999 ist ''
+
+ +

Erhalten von vollständigen Zeichen

+ +

Der folgende Code versichert, dass der Gebrauch eines String-Loops immer das vollständige Zeichen wiedergibt - auch wenn der String Zeichen enthält, die nicht auf der mehrsprachigen Basisebene (MBE) vorhanden sind.

+ +
var str = 'A \uD87E\uDC04 Z'; // direkter Einsatz von nicht MBE-Zeichen auch möglich
+for (var i = 0, chr; i < str.length; i++) {
+  if ((chr = getWholeChar(str, i)) === false) {
+    continue;
+  }
+  // Übernehme diese Zeile zu Beginn jedes Loops,
+  // gib den kompletten String und Iterator an
+  // und gebe eine Variable wieder, die das individuelle Zeichen wiederspiegelt.
+
+  console.log(chr);
+}
+
+function getWholeChar(str, i) {
+  var code = str.charCodeAt(i);
+
+  if (Number.isNaN(code)) {
+    return ''; // Position not found
+  }
+  if (code < 0xD800 || code > 0xDFFF) {
+    return str.charAt(i);
+  }
+
+  // High surrogate (could change last hex to 0xDB7F to treat high private
+  // surrogates as single characters)
+  if (0xD800 <= code && code <= 0xDBFF) {
+    if (str.length <= (i + 1)) {
+      throw 'High surrogate without following low surrogate';
+    }
+    var next = str.charCodeAt(i + 1);
+      if (0xDC00 > next || next > 0xDFFF) {
+        throw 'High surrogate without following low surrogate';
+      }
+      return str.charAt(i) + str.charAt(i + 1);
+  }
+  // Low surrogate (0xDC00 <= code && code <= 0xDFFF)
+  if (i === 0) {
+    throw 'Low surrogate without preceding high surrogate';
+  }
+  var prev = str.charCodeAt(i - 1);
+
+  // (could change last hex to 0xDB7F to treat high private
+  // surrogates as single characters)
+  if (0xD800 > prev || prev > 0xDBFF) {
+    throw 'Low surrogate without preceding high surrogate';
+  }
+  // We can pass over low surrogates now as the second component
+  // in a pair which we have already processed
+  return false;
+}
+
+ +

In einer ECMAScript 2016-Umgebung, welche destruktive Benennung erlaubt, ist eine bündigere und  zu gewissem Grad flexiblere Alternative möglich, da es automatisch eine Erhöhung der entsprechenden Variable vornimmt (wenn das Zeichen
+ ein Ersatzpaar ist).

+ +
var str = 'A\uD87E\uDC04Z'; // direkter Einsatz von nicht MBE-Zeichen auch möglich
+for (var i = 0, chr; i < str.length; i++) {
+  [chr, i] = getWholeCharAndI(str, i);
+  // Adapt this line at the top of each loop, passing in the whole string and
+  // the current iteration and returning an array with the individual character
+  // and 'i' value (only changed if a surrogate pair)
+  // Übernehme diese Zeile zu Beginn jedes Loops,
+  // gib den kompletten String und Iterator an
+  // und gebe einen Array wieder, der die individuellen Zeichen und 'i'-Wert wiederspiegelt
+  // (nur geändert, wenn Ersatzpaar).
+
+  console.log(chr);
+}
+
+function getWholeCharAndI(str, i) {
+  var code = str.charCodeAt(i);
+
+  if (Number.isNaN(code)) {
+    return ''; // Position nicht gefunden
+  }
+  if (code < 0xD800 || code > 0xDFFF) {
+    return [str.charAt(i), i]; // Normales Zeichen, 'i' bleibt gleich
+  }
+
+  // High surrogate (could change last hex to 0xDB7F to treat high private
+  // surrogates as single characters)
+  if (0xD800 <= code && code <= 0xDBFF) {
+    if (str.length <= (i + 1)) {
+      throw 'High surrogate without following low surrogate';
+    }
+    var next = str.charCodeAt(i + 1);
+      if (0xDC00 > next || next > 0xDFFF) {
+        throw 'High surrogate without following low surrogate';
+      }
+      return [str.charAt(i) + str.charAt(i + 1), i + 1];
+  }
+  // Low surrogate (0xDC00 <= code && code <= 0xDFFF)
+  if (i === 0) {
+    throw 'Low surrogate without preceding high surrogate';
+  }
+  var prev = str.charCodeAt(i - 1);
+
+  // (could change last hex to 0xDB7F to treat high private surrogates
+  // as single characters)
+  if (0xD800 > prev || prev > 0xDBFF) {
+    throw 'Low surrogate without preceding high surrogate';
+  }
+  // Return the next character instead (and increment)
+  return [str.charAt(i + 1), i + 1];
+}
+
+ +

Korrigiere charAt(), um Zeichen der nicht mehrsprachigen Basisebene (MBE) zu unterstützen

+ +


+  Das obige Beispiel dürfte häufiger für diejenigen hilfreich sein, die nicht MBE-Zeichen unterstützen möchten (da man nicht wissen muss, wo nicht MBE-Zeichen vorkommen).  Falls man wünscht (durch Angabe eines Indexwerts) die Ersatzpaare innerhalb eines Strings als Einzelcharakter zu behandeln, kann man folgendes nutzen:

+ +
function fixedCharAt(str, idx) {
+  var ret = '';
+  str += '';
+  var end = str.length;
+
+  var surrogatePairs = /[\uD800-\uDBFF][\uDC00-\uDFFF]/g;
+  while ((surrogatePairs.exec(str)) != null) {
+    var li = surrogatePairs.lastIndex;
+    if (li - 2 < idx) {
+      idx++;
+    } else {
+      break;
+    }
+  }
+
+  if (idx >= end || idx < 0) {
+    return '';
+  }
+
+  ret += str.charAt(idx);
+
+  if (/[\uD800-\uDBFF]/.test(ret) && /[\uDC00-\uDFFF]/.test(str.charAt(idx + 1))) {
+    // Gehe eins weiter, da eins der Zeichen Teil eines Ersatzpaares ist
+    ret += str.charAt(idx + 1);
+  }
+  return ret;
+}
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES1')}}{{Spec2('ES1')}}erste Definition
{{SpecName('ES5.1', '#sec-15.5.4.4', 'String.prototype.charAt')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-string.prototype.charat', 'String.prototype.charAt')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-string.prototype.charat', 'String.prototype.charAt')}}{{Spec2('ESDraft')}} 
+ +

Browser-Kompatibilität

+ +
{{CompatibilityTable}}
+ +
+ + + + + + + + + + + + + + + + + + + +
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Standardunterstützung{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + +
FeatureAndroidChrome für AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
 Standardunterstützung{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/string/concat/index.html b/files/de/web/javascript/reference/global_objects/string/concat/index.html new file mode 100644 index 0000000000..548135330f --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/string/concat/index.html @@ -0,0 +1,140 @@ +--- +title: String.prototype.concat() +slug: Web/JavaScript/Reference/Global_Objects/String/concat +tags: + - JavaScript + - Method + - Prototype + - Reference + - String +translation_of: Web/JavaScript/Reference/Global_Objects/String/concat +--- +
{{JSRef}}
+ +

Die concat() Methode vereint den Text von einem oder mehreren Strings und gibt einen neuen String zurück.

+ +

Syntax

+ +
str.concat(string2[, string3, ..., stringN])
+ +

Parameters

+ +
+
string2...stringN
+
Strings die zu einem neuen String vereint werden sollen.
+
+ +

Rückgabewert

+ +

Ein neuer String, der die Texte der Strings hintereinander enthält.

+ +

Beschreibung

+ +

Die concat() Funktion kombiniert die Texte von einem oder mehreren Strings und gibt einen neuen String zurück. Das ändern des Textes eines Strings hat keine Auswirkungen auf die anderen Strings.

+ +

Beispiele

+ +

Einsatz von concat()

+ +

Das folgende Beispiel kombiniert Strings in einen neuen String.

+ +
var hello = 'Hello, ';
+console.log(hello.concat('Kevin', ' have a nice day.'));
+
+/* Hello, Kevin have a nice day. */
+
+ +

Performance

+ +

Es wird ausdrücklich empfohlen {{jsxref("Operators/Assignment_Operators", "Zuweisungsoperatoren", "", 1)}} (+, +=) statt der concat() Methode zu benutzen. Sie hierfür diesen Performancetest.

+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES3')}}{{Spec2('ES3')}}Initiale Definition. Implementiert in JavaScript 1.2.
{{SpecName('ES5.1', '#sec-15.5.4.6', 'String.prototype.concat')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-string.prototype.concat', 'String.prototype.concat')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-string.prototype.concat', 'String.prototype.concat')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ +
{{CompatibilityTable}}
+ +
+ + + + + + + + + + + + + + + + + + + +
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + +
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/string/endswith/index.html b/files/de/web/javascript/reference/global_objects/string/endswith/index.html new file mode 100644 index 0000000000..73f37a9692 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/string/endswith/index.html @@ -0,0 +1,148 @@ +--- +title: String.prototype.endsWith() +slug: Web/JavaScript/Reference/Global_Objects/String/endsWith +tags: + - JavaScript + - Méthode + - Prototyp + - Referenz + - String +translation_of: Web/JavaScript/Reference/Global_Objects/String/endsWith +--- +
{{JSRef}}
+ +

Die Methode endsWith() bestimmt, ob ein String das Ende eines anderen Strings ist, und liefert entsprechend true oder false zurück.

+ +

Syntax

+ +
str.endsWith(suchString[, position])
+ +

Parameter

+ +
+
suchString
+
Der String, nach dem am Ende von str gesucht wird.
+
position
+
Optional. Durchsucht str, als wäre es nur position Zeichen lang. Standardmäßig wird die Länge von str benutzt, wird automatisch auf die Länge von str gebracht, falls diese überschritten wird.
+
+ +

Rückgabewert

+ +

Falls suchString das Ende von str ist, wird true zurückgeliefert, andernfalls wird false zurückgeliefert.

+ +

Beschreibung

+ +

Diese Methode bestimmt, ob ein String das Ende eines anderen Strings ist. Die Methode unterscheidet zwischen Groß- und Kleinschreibung.

+ +

Beispiele

+ +

Benutzung von endsWith()

+ +
var str = 'To be, or not to be, that is the question.';
+
+console.log(str.endsWith('question.')); // true
+console.log(str.endsWith('to be'));     // false
+console.log(str.endsWith('to be', 19)); // true
+
+ +

Polyfill

+ +

Diese Methode wurde der ECMAScript6-Spezifikation hinzugefügt und könnte noch nicht in allen JavaScript-Implementierungen verfügbar sein. Mithilfe des folgenden Code-Stücks kann die Methode auch bei fehlender Implementierung genutzt werden:

+ +
if (!String.prototype.endsWith) {
+  String.prototype.endsWith = function(searchString, position) {
+      var subjectString = this.toString();
+      if (typeof position !== 'number' || !isFinite(position) || Math.floor(position) !== position || position > subjectString.length) {
+        position = subjectString.length;
+      }
+      position -= searchString.length;
+      var lastIndex = subjectString.indexOf(searchString, position);
+      return lastIndex !== -1 && lastIndex === position;
+  };
+}
+
+ +

Spezifikation

+ + + + + + + + + + + + + + + + + + + +
SpecifikationStatusKommentar
{{SpecName('ES6', '#sec-string.prototype.endswith', 'String.prototype.endsWith')}}{{Spec2('ES6')}}Initiale Definition.
{{SpecName('ESDraft', '#sec-string.prototype.endswith', 'String.prototype.endsWith')}}{{Spec2('ESDraft')}} 
+ +

Browser-Kompatibilität

+ +
{{CompatibilityTable}}
+ +
+ + + + + + + + + + + + + + + + + + + + + +
FeatureChromeFirefox (Gecko)EdgeInternet ExplorerOperaSafari
Grundlegende Unterstützung{{CompatChrome("41")}}{{CompatGeckoDesktop("17")}}{{CompatVersionUnknown}}{{CompatNo}}{{CompatNo}}{{CompatSafari("9")}}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + +
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Grundlegende Unterstützung{{CompatNo}}{{CompatChrome("36")}}{{CompatGeckoMobile("17")}}{{CompatNo}}{{CompatNo}}{{CompatNo}}
+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/string/fromcharcode/index.html b/files/de/web/javascript/reference/global_objects/string/fromcharcode/index.html new file mode 100644 index 0000000000..1ddc144e28 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/string/fromcharcode/index.html @@ -0,0 +1,134 @@ +--- +title: String.fromCharCode() +slug: Web/JavaScript/Reference/Global_Objects/String/fromCharCode +translation_of: Web/JavaScript/Reference/Global_Objects/String/fromCharCode +--- +
{{JSRef}}
+ +

Die statische Methode String.fromCharCode() gibt einen String zurück, der mit der angegebenen Folge von Unicode-Zeichen erstellt wurde.

+ +

Syntax

+ +
String.fromCharCode(num1[, ...[, numN]])
+ +

Parameters

+ +
+
num1, ..., numN
+
Eine Folge von Zahlen als Unicode-Werte. Der Wertebreich liegt zwischen 0 und 65535 (0xFFFF). Zahlen, welche größer als 0xFFFF sind werden gekürzt.
+
+ +

Rückgabewert

+ +

Ein String, der die den Unicode-Werten zugeordneten Zeichen enthält.

+ +

Beschreibung

+ +

Diese Methode gibt einen String zurück und kein {{jsxref("String")}} Objekt.

+ +

Da fromCharCode() eine statische Methode von {{jsxref("String")}} ist, wird sie immer als String.fromCharCode() angewandt und nicht als Methode eines {{jsxref("String")}} Objekts, das erstellt wurde.

+ +

Beispiele

+ +

Verwendung von fromCharCode()

+ +
String.fromCharCode(65, 66, 67);   // gibt "ABC" zurück
+String.fromCharCode(0x2014);       // gibt "—" zurück
+String.fromCharCode(0x12014);      // gibt auch "—" zurück. Die Ziffer 1 wird weggekürzt und ignoriert.
+ +

Verwendung mit höheren Werten

+ +

Die meisten Unicode-Werte können mit einer 16-bit-Nummer dargestellt werden (wie in den Anfängen der JavaScript-Standardisierung erwartet) und fromCharCode() kann verwendet werden, um ein einzelnes Zeichen für die meisten gängigen Werde (d.h. UCS-2 Werte, die ein Subset von UTF-16 mit den am häufigsten vorkommenden Zeichen bilden) darzustellen. Um jedoch ALLE gültigen Unicode-Werte (bis zu 21 bits) darzustellen, ist fromCharCode() allein nicht ausreichend. Da die höheren Code Point Zeichen zwei "Ersatznummern" (mit niedrigerem Wert) verwenden, um ein einzelnes Zeichen darzustellen, kann {{jsxref("String.fromCodePoint()")}} (Teil des ES2015 Standards) verwendet werden, um ein solches Paar und damit auch diese Zeichen mit höheren Werten darzustellen.

+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES1')}}{{Spec2('ES1')}}Erstdefinition. Implementiert in JavaScript 1.2.
{{SpecName('ES5.1', '#sec-15.5.3.2', 'StringfromCharCode')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-string.fromcharcodes', 'String.fromCharCode')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-string.fromcharcodes', 'String.fromCharCode')}}{{Spec2('ESDraft')}} 
+ +

Browser-Kompatibilität

+ +
{{CompatibilityTable}}
+ +
+ + + + + + + + + + + + + + + + + + + +
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + +
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/string/includes/index.html b/files/de/web/javascript/reference/global_objects/string/includes/index.html new file mode 100644 index 0000000000..ee3aa6564c --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/string/includes/index.html @@ -0,0 +1,131 @@ +--- +title: String.prototype.includes() +slug: Web/JavaScript/Reference/Global_Objects/String/includes +tags: + - JavaScript + - Method + - Prototype + - Reference + - String +translation_of: Web/JavaScript/Reference/Global_Objects/String/includes +--- +
{{JSRef}}
+ +

Die includes()-Methode gibt an, ob ein String innerhalb eines anderen Strings gefunden wird und gibt dabei true oder false wieder.

+ +

Syntax

+ +
str.includes(searchString[, position])
+ +

Parameter

+ +
+
searchString
+
Ein String, der innerhalb eines anderen Strings gesucht wird.
+
position
+
Optional. Die Position innerhalb des besuchten Strings durch searchString; Standard ist 0.
+
+ +

Wertwiedergabe

+ +

true, wenn der String den gesuchten String enthält, andernfalls false.

+ +

Beschreibung

+ +

Diese Methode lässt dich feststellen, ob ein String einen anderen String beinhaltet.

+ +

Achtung auf Groß-, Kleinschreibung

+ +

Bei der includes()-Methode muss auf Groß- und Kleinschreibung geachtet werden.
+ Zum Beispiel gibt die folgende Darstellung false aus:

+ +
'Blue Whale'.includes('blue'); // gibt false wieder
+
+ +

Beispiele

+ +

Einsatz von includes()

+ +
var str = 'Sein oder nicht sein, das ist hier die Frage.';
+
+console.log(str.includes('Sein'));        // true
+console.log(str.includes('Frage'));       // true
+console.log(str.includes('nicht da'));    // false
+console.log(str.includes('Sein', 1));     // false
+console.log(str.includes('SEIN'));        // false
+
+ +

Polyfill

+ +

Diese Methode wurde den ECMAScript 6 Spezifikationen hinzugefügt und könnte nicht in allen JavaScript-Umgebunden vorhanden sein. Jedoch kann man diesen Polyfill nutzen:

+ +
if (!String.prototype.includes) {
+  String.prototype.includes = function(search, start) {
+    'use strict';
+    if (typeof start !== 'number') {
+      start = 0;
+    }
+
+    if (start + search.length > this.length) {
+      return false;
+    } else {
+      return this.indexOf(search, start) !== -1;
+    }
+  };
+}
+
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + +
SpezifikationenStatusKommentar
{{SpecName('ES2015', '#sec-string.prototype.includes', 'String.prototype.includes')}}{{Spec2('ES2015')}}erste Definition
{{SpecName('ESDraft', '#sec-string.prototype.includes', 'String.prototype.includes')}}{{Spec2('ESDraft')}}
+ +

Browser-Kompatibilität

+ + + +

{{Compat("javascript.builtins.String.includes")}}

+ +

String.prototype.contains

+ +

In Firefox 18 - 39 hieß diese Methode contains(). Es wurde zu includes() ({{bug(1102219)}}) wegen folgender Gründe umbenannt:
+
+ Es wurde gemeldet, dass manche Webseiten, die MooTools 1.2 nutzen mit Firefox 17 nicht mehr funktionieren. Diese Version von MooTools kontrolliert, ob String.prototype.contains() existiert und, wenn nicht, fügt es seine eigene Funktion hinzu.
+ Mit der Einführung dieser Funktion in Firefox 17 wurde das Verhalten dieser Kontrolle geändert, sodass auf MooTools String.prototype.contains() basierender Code funktionsunfähig wurde.
+ Aufgrund dessen wurde die Implementierung in Firefox 17 abgeschaltet und String.prototype.contains() war in Firefox 18 nutzbar. Ermöglicht wurde dies durch die Veröffentlichung von MooTools Version 1.2.6.

+ +

MooTools 1.3 erzwingt die Nutzung der eigenen Version von String.prototype.contains(), demnach sollten Webseiten, die abhängig davon sind, weiterhin funktionieren. Beachte jedoch, dass sich die MooTools 1.3 Signatur von der ECMAScript 6 Signatur für diese Methode unterscheidet.

+ +

Später änderte MooTools 1.5+ die Signatur, um sie dem ES2015 Standard anzupassen.

+ +


+ In Firefox 48 wurde String.prototype.contains() entfernt. Nutze lediglich String.prototype.includes().

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/string/index.html b/files/de/web/javascript/reference/global_objects/string/index.html new file mode 100644 index 0000000000..35faef0223 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/string/index.html @@ -0,0 +1,310 @@ +--- +title: String +slug: Web/JavaScript/Reference/Global_Objects/String +tags: + - ECMAScript 2015 + - JavaScript + - Reference + - String +translation_of: Web/JavaScript/Reference/Global_Objects/String +--- +
{{JSRef}}
+ +

Das globale String-Objekt ist ein Konstruktor für Strings, auch Zeichenketten genannt.

+ +

Syntax

+ +

String-Literale haben folgende Formen:

+ +
'string-text'
+"string-text"
+"中文 español deutsch English हिन्दी العربية português বাংলা русский 日本語 ਪੰਜਾਬੀ 한국어 தமிழ்"
+ +

Strings können auch direkt mit dem globalen String-Objekt erzeugt werden:

+ +
String(thing)
+ +

Parameter

+ +
+
thing
+
Alles, was in einen String umgewandelt werden kann.
+
+ +

Template-Literale

+ +

Ab ECMAScript 2015 können String-Literale auch durch sogenannte Template-Literale verkörpert werden:

+ +
`hallo welt`
+`hallo!
+ welt!`
+`hallo ${wer}`
+escape `${wer}`
+ +
+
+ +

Escape-Notation

+ +

Neben gewöhnlichen, druckbaren Zeichen gibt es Sonderzeichen, die mittels Escape-Notation kodiert werden können:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
CodeAusgabe
\0das NULL-Zeichen
\'einfaches Anführungszeichen
\"doppeltes Anführungszeichen
\\Rückwärtsschrägstrich (backslash)
\nZeilenumbruch (new line)
\rZeilenanfang (carriage return)
\vvertikaler Tabulator
\tTabulator
\bBackspace
\fSeitenvorschub (form feed)
\uXXXXUnicode-Codepoint
\u{X} ... \u{XXXXXX}Unicode-Codepoint {{experimental_inline}}
\xXXLatin-1-Zeichen
+ +
+

Im Gegensatz zu einigen anderen Sprachen unterscheidet JavaScript nicht zwischen mit einfachen und doppelten Anführungszeichen versehenen Strings; deswegen funktionieren die obigen Escape-Sequenzen in Strings, die entweder mit einfachen oder doppelten Anführungszeichen erstellt wurden.

+
+ +
+
+ +

Lange String-Literale

+ +

Manchmal enthält der Programm-Code Strings, die sehr lang sind. Anstatt endlose Zeilen zu bewirken, die vielleicht am Rand des Editors umbrechen, kann ein String ausdrücklich in mehrere Zeilen im Quell-Code eingepasst werden, ohne seinen Inhalt zu beeinflussen. Es gibt zwei Arten, um das zu tun.

+ +

Es kann der +-Operator benutzt werden, um auf folgende Weise mehrere Strings aneinanderzuhängen:

+ +
let langerString = "Dies ist ein sehr langer String, der über " +
+                 "mehrere Zeilen verteilt werden muss, weil " +
+                 "sonst der Code unleserlich ist.";
+
+ +

Oder der Rückwärtsschrägstrich ("\") wird am Ende jeder Zeile benutzt, um anzugeben, dass der String in der nächsten Zeile weitergeht. Es sollte sichergestellt werden, dass nach dem Rückwärtsschrägstrich (backslash) kein Leer- oder ein anderes Zeichen (außer ein Zeilenumbruch) steht oder als Einrückung dient; sonst funktioniert es nicht. Diese Form sieht wie folgt aus:

+ +
let langerString = "Dies ist ein sehr langer String, der über \
+mehrere Zeilen verteilt werden muss, weil \
+sonst der Code unleserlich ist.";
+
+ +

Beide Arten erzeugen identische Strings.

+ +

Beschreibung

+ +

Strings sind nützlich, um Daten in Textform zu speichern. Manche der meist benutzten String-Operationen sind es, die {{jsxref("String.length", "length")}} abzufragen, Strings mittels + und += String-Operatoren zu verbinden, mit der {{jsxref("String.prototype.indexOf()", "indexOf()")}} -Methode die Existenz oder Position von Sub-Strings festzustellen oder Sub-Strings mit der {{jsxref("String.prototype.substring()", "substring()")}}-Methode zu extrahieren.

+ +

Zeichenabfrage

+ +

Es gibt zwei Möglichkeiten auf ein einzelnes Zeichen in einem String zuzugreifen. Die erste ist die {{jsxref("String.prototype.charAt()", "charAt()")}}-Methode:

+ +
return 'Katze'.charAt(1); // gibt "a" zurück
+
+ +

Die andere Möglichkeit (eingeführt in ECMAScript 5) ist, den String als ein Array-ähnliches Objekt zu behandlen, in dem einzelne Zeichen zu einem numerischen Index gehören:

+ +
return 'Katze'[1]; // gibt "a" zurück
+
+ +

Bei einen Zeichenzugriff mittels Klammernotation ist es nicht möglich, einen Wert zu löschen oder zuzuweisen. Die entsprechenden Eigenschaften sind weder überschreibbar noch konfigurierbar. (Siehe {{jsxref("Object.defineProperty()")}} für mehr Informationen.)

+ +

Strings vergleichen

+ +

C-Entwicklern steht die strcmp()-Funktion zur Verfügung, um Strings zu vergleichen. In JavaScript können die kleiner-als- und größer-als-Operatoren benutzt werden:

+ +
var a = 'a';
+var b = 'b';
+if (a < b) { // true
+  console.log(a + ' ist geringer als ' + b);
+} else if (a > b) {
+  console.log(a + ' ist größer als ' + b);
+} else {
+  console.log(a + ' und ' + b + ' sind gleich.');
+}
+
+ +

Ein ähnliches Ergebnis kann durch die {{jsxref("String.prototype.localeCompare()", "localeCompare()")}}-Methode erzielt werden, die von String-Instanzen übernommen wird.

+ +

Unterscheidung von String-Primitives und String-Objekten

+ +

Es ist zu betonen, dass JavaScript zwischen String-Objekten und primitiven String-Werten unterscheidet. (Das selbe gilt für {{jsxref("Boolean")}} und {{jsxref("Global_Objects/Number", "Numbers")}}.)

+ +

String-Literale (definiert mit doppelten oder einfachen Anführungszeichen) und Strings, die von String-Aufrufen in einem Nicht-Konstruktor-Kontext (z. B. ohne das {{jsxref("Operators/new", "new")}}-Schlüsselwort zu benutzen) zurückgegeben werden, sind String-Primitives. JavaScript wandelt automatisch Primitives zu String-Objekten um, so dass es möglich ist String-Objekt-Methoden für String-Primitives zu nutzen. In Kontexten, in denen eine Methode auf ein String-Primitive bezogen aufgerufen oder eine Eigenschaft eines solchen abgefragt wird, sorgt JavaScript dafür, dass das String-Primitive wie ein Objekt behandelt wird.

+ +
var s_prim = 'foo';
+var s_obj = new String(s_prim);
+
+console.log(typeof s_prim); // Loggt "string"
+console.log(typeof s_obj);  // Loggt "object"
+
+ +

String-Primitives und String-Objekte führen auch bei der Nutzung von {{jsxref("Global_Objects/eval", "eval()")}} zu unterschiedlichen Ergebnissen. An eval übergebene Primitives werden als Quell-Code behandelt; bei String-Objekten wird wie bei allen anderen Objekten das Objekt zurückgegeben. Zum Beispiel:

+ +
var s1 = '2 + 2';             // erzeugt ein String-Primitive
+var s2 = new String('2 + 2'); // erzeugt ein String-Objekt
+console.log(eval(s1));        // gibt die Zahl 4 zurück
+console.log(eval(s2));        // gibt den String "2 + 2" zurück
+
+ +

Aus diesen Gründen kann Code aufhören zu funktionieren, wenn er String-Objekte bemerkt, obwohl ein String-Primitive erwartet wird. Trotzdem brauchen sich Autoren normalerweise nicht um diesen Unterschied zu kümmern.

+ +

Ein String-Objekt kann mit der {{jsxref("String.prototype.valueOf()", "valueOf()")}}-Methode immer zu seiner Primitive-Entsprechung konvertiert werden.

+ +
console.log(eval(s2.valueOf())); // gibt die Zahl 4 zurück
+
+ +
Bemerkung: Für ein weiteres mögliches Herantreten an Strings in JavaScript sollte der Artikel über StringView — eine C-ähnliche Representation von Strings basierend auf typisierten Arrays gelesen werden.
+ +

Eigenschaften

+ +
+
{{jsxref("String.prototype")}}
+
Ermöglicht das Hinzufügen von Eigenschaften zu einem String-Objekt.
+
+ +

Methoden

+ +
+
{{jsxref("String.fromCharCode()")}}
+
Gibt einen String zurück, der auf Basis der angegebenen Folge von Unicode-Werten erstellt wurde.
+
{{jsxref("String.fromCodePoint()")}} {{experimental_inline}}
+
Gibt einen String zurück, der auf Basis der angegebenen Folge von Code-Points erstellt wurde.
+
{{jsxref("String.raw()")}} {{experimental_inline}}
+
Gibt einen String zurück, der auf Basis eines Raw-Template-Strings erstellt wurde.
+
+ +

Generische String-Methoden

+ +
+

Generische String-Methoden sind nicht Teil des Standards und werden in naher Zukunft entfernt.

+
+ +

Die String-Instanzmethoden stehen nach JavaScript 1.6 (nicht Teil des ECMAScript-Standards) auch in Firefox beim String-Objekt zur Verfügung, um String-Methoden auf ein beliebiges Objekt anzuwenden:

+ +
var num = 15;
+console.log(String.replace(num, /5/, '2'));
+
+ +

Über die Auflösung von generischen String-Methoden: Warning: String.x is deprecated; use String.prototype.x instead.

+ +

{{jsxref("Global_Objects/Array", "Generics", "#Array_generic_methods", 1)}} stehen auch bei {{jsxref("Array")}}-Methoden zur Verfügung.

+ +

String-Instanzen

+ +

Eigenschaften

+ +
{{page('/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/prototype', 'Properties')}}
+ +

Methoden

+ +

Nicht HTML-bezogene Methoden

+ +
{{page('/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/prototype', 'Methods_unrelated_to_HTML')}}
+ +

HTML-Wrapper-Methoden

+ +
{{page('/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/prototype', 'HTML_wrapper_methods')}}
+ +

Beispiele

+ +

String-Konvertierung

+ +

Es ist möglich, String als eine "sicherere" {{jsxref("String.prototype.toString()", "toString()")}}-Alternative zu benutzen, auch, wenn es gewöhnlich weiterhin das zugrundeliegende toString() aufruft. Es funktioniert auch für {{jsxref("null")}}, {{jsxref("undefined")}} und {{jsxref("Symbol", "symbols")}}. Zum Beispiel:

+ +
var ausgabeStrings = [];
+for (var i = 0, n = eingabeWerte.length; i < n; ++i) {
+  ausgabeStrings.push(String(eingabeWerte[i]));
+}
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusAnmerkung
{{SpecName('ES1')}}{{Spec2('ES1')}}Anfängliche Definition
{{SpecName('ES5.1', '#sec-15.5', 'String')}}{{Spec2('ES5.1')}} 
{{SpecName('ES2015', '#sec-string-objects', 'String')}}{{Spec2('ES2015')}} 
{{SpecName('ESDraft', '#sec-string-objects', 'String')}}{{Spec2('ESDraft')}} 
+ +

Browser-Kompatibilität

+ +

{{Compat("javascript.builtins.String.String")}}

+ +

Siehe außerdem

+ + diff --git a/files/de/web/javascript/reference/global_objects/string/indexof/index.html b/files/de/web/javascript/reference/global_objects/string/indexof/index.html new file mode 100644 index 0000000000..dc36abfae8 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/string/indexof/index.html @@ -0,0 +1,200 @@ +--- +title: String.prototype.indexOf() +slug: Web/JavaScript/Reference/Global_Objects/String/indexOf +tags: + - JavaScript + - Method + - Prototype + - Reference + - String +translation_of: Web/JavaScript/Reference/Global_Objects/String/indexOf +--- +
{{JSRef}}
+ +

Die indexOf() Methode gibt den Index der Zeichenkette innerhalb des aufrufenden {{jsxref("Global_Objects/String", "String")}} Objekts des ersten Vorkommnis des angegebenen Wertes beginnend bei fromIndex zurück. Gibt -1 zurück, wenn der Wert nicht gefunden wurde.

+ +

Syntax

+ +
str.indexOf(searchValue[, fromIndex])
+ +

Parameter

+ +
+
searchValue
+
Ein String der den zu suchenden Wert repräsentiert.
+
fromIndex {{optional_inline}}
+
Der Index, von dem angefangen wird vorwärts im String zu suchen. Der Standardwert ist 0, so dass der ganze String durchsucht wird. Wenn fromIndex < 0 ist, wird der ganze String durchsucht. Wenn  fromIndex >= str.length ist, wird der String nicht durchsucht und -1 wird zurückgegeben. Die Ausnahme ist, wenn für searchValue ein leeren String eingesetzt wird, dann wird str.length zurückgegeben.
+
+ +

Rückgabewert

+ +

Den Index des ersten Vorkommens des gesuchten Wertes; -1 wenn der Wert nicht gefunden wurde.

+ +

Beschreibung

+ +

Die Zeichen in einem String sind von links nach rechts nummeriert. Der Index des ersten Zeichens ist 0, und der Index des letzten Zeichens eines Strings mit Namen stringName ist stringName.length - 1.

+ +
'Blue Whale'.indexOf('Blue');     // returns  0
+'Blue Whale'.indexOf('Blute');    // returns -1
+'Blue Whale'.indexOf('Whale', 0); // returns  5
+'Blue Whale'.indexOf('Whale', 5); // returns  5
+'Blue Whale'.indexOf('', 9);      // returns  9
+'Blue Whale'.indexOf('', 10);     // returns 10
+'Blue Whale'.indexOf('', 11);     // returns 10
+
+ +

Groß- und Kleinschreibung

+ +

Die indexOf() Methode unterscheidet zwischen Groß- und Kleinschreibung. Zum Beispiel gibt die folgende Zeile -1 zurück:

+ +
'Blue Whale'.indexOf('blue'); // returns -1
+
+ +

Vorkommnisse prüfen

+ +

Zu beachten ist, dass '0' nicht zu true und '-1' nicht zu false ausgewertet wird. Deswegen ist der korrekte weg zum überprüfen, ob ein String in einem anderen String existiert, der folgende:

+ +
'Blue Whale'.indexOf('Blue') != -1; // true
+'Blue Whale'.indexOf('Bloe') != -1; // false
+
+ +

Beispiele

+ +

Einsatz von indexOf() und lastIndexOf()

+ +

Die folgenden Beispiele benutzen indexOf() und {{jsxref("String.prototype.lastIndexOf()", "lastIndexOf()")}}, um Werte im String "Brave new world" zu finden.

+ +
var anyString = 'Brave new world';
+
+console.log('The index of the first w from the beginning is ' + anyString.indexOf('w'));
+// Displays 8
+console.log('The index of the first w from the end is ' + anyString.lastIndexOf('w'));
+// Displays 10
+
+console.log('The index of "new" from the beginning is ' + anyString.indexOf('new'));
+// Displays 6
+console.log('The index of "new" from the end is ' + anyString.lastIndexOf('new'));
+// Displays 6
+
+ +

indexOf() und Groß- und Kleinschreibung

+ +

Das folgende Beispiel definiert zwei Strings. Die Variablen enthalten den selben String, außer dass der zweite String Großbuchstaben enthält. Die erste {{domxref("console.log()")}} Methode zeigt 19. Da die indexOf() Methode Groß- und Kleinschreibung unterscheidet, wird der String"cheddar" im String myCapString nicht gefunden. Deshalb gibt die zweite console.log() Methode -1 zurück.

+ +
var myString    = 'brie, pepper jack, cheddar';
+var myCapString = 'Brie, Pepper Jack, Cheddar';
+
+console.log('myString.indexOf("cheddar") is ' + myString.indexOf('cheddar'));
+// Displays 19
+console.log('myCapString.indexOf("cheddar") is ' + myCapString.indexOf('cheddar'));
+// Displays -1
+
+ +

Einsatz von indexOf(), um das Vorkommen eines Buchstaben in einem String zu zählen

+ +

Das folgende Beispiel setzt count auf die Anzahl der Vorkommnisse des Buchstaben e in dem String str:

+ +
var str = 'To be, or not to be, that is the question.';
+var count = 0;
+var pos = str.indexOf('e');
+
+while (pos != -1) {
+  count++;
+  pos = str.indexOf('e', pos + 1);
+}
+
+console.log(count); // displays 4
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES1')}}{{Spec2('ES1')}}Initiale Definition.
{{SpecName('ES5.1', '#sec-15.5.4.7', 'String.prototype.indexOf')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-string.prototype.indexof', 'String.prototype.indexOf')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-string.prototype.indexof', 'String.prototype.indexOf')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ +
{{CompatibilityTable}}
+ +
+ + + + + + + + + + + + + + + + + + + +
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + +
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/string/lastindexof/index.html b/files/de/web/javascript/reference/global_objects/string/lastindexof/index.html new file mode 100644 index 0000000000..b6c6f3a548 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/string/lastindexof/index.html @@ -0,0 +1,148 @@ +--- +title: String.prototype.lastIndexOf() +slug: Web/JavaScript/Reference/Global_Objects/String/lastIndexOf +translation_of: Web/JavaScript/Reference/Global_Objects/String/lastIndexOf +--- +
{{JSRef("Global_Objects", "String")}}
+ +

Zusammenfassung

+ +

Die lastIndexOf() Methode gibt den Index des letzten Vorkommnisses des angegebenen Wertes innerhalb des aufrufenden {{jsxref("Global_Objects/String", "Strings")}} Objekts zurück, oder -1, wenn der Wert nicht gefunden wurde. Der aufrufende String wird rückwärts durchsucht, beginnend beim fromIndex

+ +

Syntax

+ +
str.lastIndexOf(searchValue[, fromIndex])
+ +

Parameter

+ +
+
searchValue
+
Ein String mit dem Wert, nach dem gesucht werden soll.
+
fromIndex
+
Optional. Die Position im aufrufenden String, ab der gesucht rückwärts werden soll. The Position wird gezählt von links nach rechts. Gesucht wird von dieser Position ab nach links. Diese kann jeden Integerwert annehmen. Der Standartwert ist str.length. Wenn der Wert negativ ist, wird 0 verwendet. Wenn fromIndex > str.length, wird str.length statt fromIndex benutzt.
+
+ +

Beschreibung

+ +

Zeichen in einem String werden von links nach rechts gezählt. Der Index des ersten Zeichens ist 0, der Index des letzten Zeichens ist stringName.length - 1.

+ +
'canal'.lastIndexOf('a');     // returns 3
+'canal'.lastIndexOf('a', 2);  // returns 1
+'canal'.lastIndexOf('a', 0);  // returns -1
+'canal'.lastIndexOf('x');     // returns -1
+
+ +

Groß- und Kleinschreibung

+ +

Die lastIndexOf() Methode unterscheidet zwischen Groß- und Kleinschreibung. Der folgende Ausdruck gibt zum Beispiel -1 zurück.

+ +
'Blue Whale, Killer Whale'.lastIndexOf('blue'); // returns -1
+
+ +

Beispiele

+ +

Beispiel: Benutzung von indexOf() und lastIndexOf()

+ +

Das folgende Beispiel verwendet {{jsxref("String.prototype.indexOf()", "indexOf()")}} und lastIndexOf(), um Werte im String "Brave new world" zu finden.

+ +
var anyString = 'Brave new world';
+
+console.log('The index of the first w from the beginning is ' + anyString.indexOf('w'));
+// Displays 8
+console.log('The index of the first w from the end is ' + anyString.lastIndexOf('w'));
+// Displays 10
+
+console.log('The index of "new" from the beginning is ' + anyString.indexOf('new'));
+// Displays 6
+console.log('The index of "new" from the end is ' + anyString.lastIndexOf('new'));
+// Displays 6
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
ECMAScript 1st Edition.StandardInitial definition.
{{SpecName('ES5.1', '#sec-15.5.4.8', 'String.prototype.lastIndexOf')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-string.prototype.lastindexof', 'String.prototype.lastIndexOf')}}{{Spec2('ES6')}} 
+ +

Browserkompatibilität

+ +
{{CompatibilityTable}}
+ +
+ + + + + + + + + + + + + + + + + + + +
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + +
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
+
+ +

Links

+ + diff --git a/files/de/web/javascript/reference/global_objects/string/length/index.html b/files/de/web/javascript/reference/global_objects/string/length/index.html new file mode 100644 index 0000000000..555d22094a --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/string/length/index.html @@ -0,0 +1,87 @@ +--- +title: String.length +slug: Web/JavaScript/Reference/Global_Objects/String/length +tags: + - JavaScript + - Property + - Prototype + - Reference + - String +translation_of: Web/JavaScript/Reference/Global_Objects/String/length +--- +
{{JSRef}}
+ +

Die length Eigenschaft repräsentiert die Länge eines Strings.

+ +

Syntax

+ +
str.length
+ +

Beschreibung

+ +

Die length Eigenschaft gibt die Anzahl der Codeteile des Strings zurück. Javascript verwendet {{interwiki("wikipedia", "UTF-16")}}. , also einen 16-Bit Code zur Kodierung der meisten Zeichen, aber zur Darstellung weniger verbreiteter Zeichen werden 2 Codes benötigt. Es ist also durchaus möglich, dass der zurückgegebene Wert nicht der Anzahl der Zeichen in einem String entspricht.

+ +

ECMAScript 2016 (ed. 7) Spezifikation definiert eine maximale Länge von 253 - 1 Elementen.
+ Vor dieser Spezifikation war keine maximale Länge an Elementen definiert.

+ +

Ein leerer String hat die Länge 0.

+ +

Die statische String-Eigenschaft gibt den Wert 1 zurück.

+ +

Beispiele

+ +

Grundlegende Nutzung

+ +
var str = 'Mozilla';
+var leerstr = '';
+
+console.log('Mozilla ist ' + str.length + ' Zeichen lang');
+/* "Mozilla ist 7 Zeichen lang" */
+
+console.log('Der leere String hat eine Länge von ' + leerstr.length + 'Zeichen');
+/* "Der leere String hat eine Länge von 0 Zeichen" */
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES1')}}{{Spec2('ES1')}}Initiale Deinition. Implementiert in JavaScript 1.0.
{{SpecName('ES5.1', '#sec-15.5.5.1', 'String.prototype.length')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-properties-of-string-instances-length', 'String.prototype.length')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-properties-of-string-instances-length', 'String.prototype.length')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.String.length")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/string/match/index.html b/files/de/web/javascript/reference/global_objects/string/match/index.html new file mode 100644 index 0000000000..27bfac9c75 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/string/match/index.html @@ -0,0 +1,140 @@ +--- +title: String.prototype.match() +slug: Web/JavaScript/Reference/Global_Objects/String/match +tags: + - JavaScript + - Method + - Property + - Reference + - Regular Expression + - String + - match + - Übereinstimmung +translation_of: Web/JavaScript/Reference/Global_Objects/String/match +--- +
{{JSRef}}
+ +

match() gibt zurück, wo ein regulärer Ausdruck in einem String enthalten ist. 

+ +

Syntax

+ +
str.match(regexp)
+ +

Parameter

+ +
+
regexp
+
Ein regulärer Ausdruck. Falls regexp kein Objekt vom Typ {{jsxref("RegExp")}} ist wird es mit Hilfe von new RegExp(obj) konvertiert. Falls dieser Parameter nicht übergeben wird, wird ein {{jsxref("Array")}} mit einem leeren {{jsxref("String")}} zurückgegben: [""].
+
+ +

Rückgabewert

+ +

Es wird ein {{jsxref("Array")}} zurückgegeben, das als erstes Element den gesamten übereinstimmenden String enthält, gefolgt von allen weiteren Treffern, die in Klammern angegeben wurden. Falls keine Übereinstimmungen gefunden wurden, wird {{jsxref("null")}} zurückgegeben.

+ +

Beschreibung

+ +

Falls der reguläre Ausdruck nicht den Modifikator g enthält, verhält sich match() wie {{jsxref("RegExp.prototype.exec()", "RegExp.exec()")}}. Im zurückgegebenen {{jsxref("Array")}} sind zusätzlich die propertys input und index  enthalten. input ist gleich dem zu durchsuchenden String, index enthält den Index der Übereinstimmung.

+ +

Falls der g Modifikator im regulären Ausdruck enthalten ist, wird ein {{jsxref("Array")}} mit allen übereinstimmenden Substrings zurückgegeben.

+ +

Beispiele

+ +

Verwendung von match()

+ +

Im folgenden Beispiel wird match() verwendet um 'Kapitel' und anschließend eine oder mehrere Zahlen, gefolgt von einem Punkt und einer Zahl, 0 oder mehrmals zu finden. Der reguläre Ausdruck enthält den i Modifikator und unterscheidet somit nicht zwischen Groß- und Kleinschreibung.

+ +
var str = 'Fuer mehr Informationen siehe Kapitel 3.4.5.1';
+var re = /siehe (kapitel \d+(\.\d)*)/i;
+var found = str.match(re);
+
+console.log(found);
+
+// gibt folgendes auf der Konsole aus:
+//   [ 'siehe Kapitel 3.4.5.1',
+//     'Kapitel 3.4.5.1',
+//     '.1',
+//     index: 22,
+//     input: 'Fuer mehr Informationen siehe Kapitel 3.4.5.1' ]
+
+ +

Verwendung von match() mit den i und g Modifikatoren

+ +

Die Buchstaben von A - E und von a - e werden auf der Konsole ausgegeben.

+ +
var str = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
+var regexp = /[A-E]/gi;
+var matches_array = str.match(regexp);
+
+console.log(matches_array);
+// ['A', 'B', 'C', 'D', 'E', 'a', 'b', 'c', 'd', 'e']
+
+ +

match() ohne Parameter

+ +
var str = "Nichts kommt von nichts.";
+
+str.match();
+// [""]
+ +

Verwendung mit einem nicht regulären Ausdruck

+ +

Falls ein String oder eine Zahl anstatt eines regulären Ausdrucks übergeben wird, wird der Parameter in einen {{jsxref("RegExp", "regulären Ausdruck")}} konvertiert. Ist es eine positive Zahl mit Vorzeichen, wird das positive Vorzeichen ignoriert.

+ +
var str1 = "NaN bedeutet not a number. Infinity enthält -Infinity and +Infinity in JavaScript.",
+    str2 = "Zahlen: 1, 6, 3",
+    str3 = "null ist ein Datentyp.";
+
+str1.match("number");   // ["number"]
+str1.match(NaN);        // ["NaN"]
+str1.match(Infinity);   // ["Infinity"]
+str1.match(+Infinity);  // ["Infinity"]
+str1.match(-Infinity);  // ["-Infinity"]
+str2.match(6);          // ["6"]
+str2.match(+3);         // ["3"]
+str3.match(null);       // ["null"]
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusExtras
{{SpecName('ES3')}}{{Spec2('ES3')}}Anfangsdefinition. Implementiert in JavaScript 1.2.
{{SpecName('ES5.1', '#sec-15.5.4.10', 'String.prototype.match')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-string.prototype.match', 'String.prototype.match')}}{{Spec2('ES6')}}
{{SpecName('ESDraft', '#sec-string.prototype.match', 'String.prototype.match')}}{{Spec2('ESDraft')}}
+ +

Browser-Kompatibilität

+ + + +

{{Compat("javascript.builtins.String.match")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/string/prototype/index.html b/files/de/web/javascript/reference/global_objects/string/prototype/index.html new file mode 100644 index 0000000000..e2c896b98d --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/string/prototype/index.html @@ -0,0 +1,189 @@ +--- +title: String.prototype +slug: Web/JavaScript/Reference/Global_Objects/String/prototype +tags: + - Eigentum + - JavaScript + - Prototyp + - Referenz + - Strang + - String +translation_of: Web/JavaScript/Reference/Global_Objects/String +--- +
{{JSRef}}
+ +

Die String.prototypeEigenschaft repräsentiert das Prototypobjekt {{jsxref ("String")}}.

+ +
{{js_property_attributes(0, 0, 0)}}
+ +

Beschreibung

+ +

Alle {{jsxref ("String")}} Instanzen erben von String.prototypeÄnderungen am StringPrototypobjekt werden an alle Instanzen von {{jsxref ("String")}} weitergegeben.

+ +

Eigenschaften

+ +
+
String.prototype.constructor
+
Gibt die Funktion an, mit der der Prototyp eines Objekts erstellt wird.
+
{{jsxref ("String.prototype.length")}}
+
Reflektiert die Länge der Zeichenfolge.
+
N
+
Wird verwendet, um auf das Zeichen an der N- ten Position zuzugreifen, wobei N eine ganze Zahl zwischen 0 und eins ist, die kleiner als der Wert von {{jsxref ("String.length", "length")} ist. Diese Eigenschaften sind schreibgeschützt.
+
+ +

Methods

+ +

Methoden

+ +

Methoden, die nichts mit HTML zu tun haben

+ +
+
{{jsxref ("String.prototype.charAt ()")}}
+
Gibt das Zeichen (genau eine UTF-16-Codeeinheit) am angegebenen Index zurück.
+
{{jsxref ("String.prototype.charCodeAt ()")}}
+
Gibt eine Zahl zurück, die der UTF-16-Code-Einheitswert am angegebenen Index ist.
+
{{jsxref ("String.prototype.codePointAt ()")}}
+
Gibt eine nicht negative Ganzzahl zurück, die der Codepunktwert des UTF-16-codierten Codepunkts ab dem angegebenen Index ist.
+
{{jsxref ("String.prototype.concat ()")}}
+
Kombiniert den Text zweier Zeichenfolgen und gibt eine neue Zeichenfolge zurück.
+
{{jsxref ("String.prototype.includes ()")}}
+
Legt fest, ob eine Zeichenfolge in einer anderen Zeichenfolge gefunden werden darf.
+
{{jsxref ("String.prototype.endsWith ()")}}
+
Bestimmt, ob eine Zeichenfolge mit den Zeichen einer anderen Zeichenfolge endet.
+
{{jsxref ("String.prototype.indexOf ()")}}
+
Gibt den Index innerhalb des aufrufenden {{jsxref ("String")}} Objekts des ersten Vorkommens des angegebenen Werts zurück oder -1, falls nicht gefunden.
+
{{jsxref ("String.prototype.lastIndexOf ()")}}
+
Gibt den Index innerhalb des aufrufenden {{jsxref ("String")}} Objekts des letzten Vorkommens des angegebenen Werts zurück oder -1, falls nicht gefunden.
+
{{jsxref ("String.prototype.localeCompare ()")}}
+
Gibt eine Zahl zurück, die angibt, ob eine Referenzzeichenfolge vor oder nach der angegebenen Zeichenfolge in Sortierreihenfolge steht oder mit dieser übereinstimmt.
+
{{jsxref ("String.prototype.match ()")}}
+
Wird verwendet, um einen regulären Ausdruck mit einer Zeichenfolge abzugleichen.
+
{{jsxref ("String.prototype.matchAll ()")}}
+
Gibt einen Iterator aller Übereinstimmungen zurück.
+
{{jsxref ("String.prototype.normalize ()")}}
+
Gibt die Unicode-Normalisierungsform des aufrufenden Zeichenfolgenwerts zurück.
+
{{jsxref ("String.prototype.padEnd ()")}}
+
Füllt die aktuelle Zeichenfolge am Ende mit einer bestimmten Zeichenfolge auf, um aus einer bestimmten Länge eine neue Zeichenfolge zu erstellen.
+
{{jsxref ("String.prototype.padStart ()")}}
+
Füllt die aktuelle Zeichenfolge von Anfang an mit einer bestimmten Zeichenfolge auf, um aus einer bestimmten Länge eine neue Zeichenfolge zu erstellen.
+
{{jsxref ("String.prototype.quote ()")}} {{obsolete_inline}}
+
Umschließt die Zeichenfolge in doppelte Anführungszeichen (" "").
+
{{jsxref ("String.prototype.repeat ()")}}
+
Gibt eine Zeichenfolge zurück, die aus den Elementen des Objekts besteht, die zu den angegebenen Zeiten wiederholt wurden.
+
{{jsxref ("String.prototype.replace ()")}}
+
Wird verwendet, um eine Übereinstimmung zwischen einem regulären Ausdruck und einer Zeichenfolge zu finden und die übereinstimmende Teilzeichenfolge durch eine neue Teilzeichenfolge zu ersetzen.
+
{{jsxref ("String.prototype.search ()")}}
+
Führt die Suche nach einer Übereinstimmung zwischen einem regulären Ausdruck und einer angegebenen Zeichenfolge aus.
+
{{jsxref ("String.prototype.slice ()")}}
+
Extrahiert einen Abschnitt einer Zeichenfolge und gibt eine neue Zeichenfolge zurück.
+
{{jsxref ("String.prototype.split ()")}}
+
Teilt ein {{jsxref ("Global_Objects / String", "String")}} -Objekt in ein Array von Zeichenfolgen auf, indem die Zeichenfolge in Teilzeichenfolgen aufgeteilt wird.
+
{{jsxref ("String.prototype.startsWith ()")}}
+
Legt fest, ob eine Zeichenfolge mit den Zeichen einer anderen Zeichenfolge beginnt.
+
{{jsxref ("String.prototype.substr ()")}} {{deprecated_inline}}
+
Gibt die Zeichen in einer Zeichenfolge zurück, die an der angegebenen Position mit der angegebenen Anzahl von Zeichen beginnt.
+
{{jsxref ("String.prototype.substring ()")}}
+
Gibt die Zeichen in einer Zeichenfolge zwischen zwei Indizes in die Zeichenfolge zurück.
+
{{jsxref ("String.prototype.toLocaleLowerCase ()")}}
+
Die Zeichen in einer Zeichenfolge werden unter Berücksichtigung des aktuellen Gebietsschemas in Kleinbuchstaben konvertiert. Für die meisten Sprachen wird das Gleiche wie {{jsxref ("String.prototype.toLowerCase ()", "toLowerCase ()")}} zurückgegeben.
+
{{jsxref ("String.prototype.toLocaleUpperCase ()")}}
+
Die Zeichen in einer Zeichenfolge werden unter Berücksichtigung des aktuellen Gebietsschemas in Großbuchstaben umgewandelt. Für die meisten Sprachen wird das Gleiche wie {{jsxref ("String.prototype.toUpperCase ()", "toUpperCase ()")}} zurückgegeben.
+
{{jsxref ("String.prototype.toLowerCase ()")}}
+
Gibt den aufrufenden Zeichenfolgenwert zurück, der in Kleinbuchstaben konvertiert wurde.
+
{{jsxref ("String.prototype.toSource ()")}} {{non-standard_inline}}
+
Gibt ein Objektliteral zurück, das das angegebene Objekt darstellt. Mit diesem Wert können Sie ein neues Objekt erstellen. Überschreibt die Methode {{jsxref ("Object.prototype.toSource ()")}}.
+
{{jsxref ("String.prototype.toString ()")}}
+
Gibt eine Zeichenfolge zurück, die das angegebene Objekt darstellt. Überschreibt die Methode {{jsxref ("Object.prototype.toString ()")}}.
+
{{jsxref ("String.prototype.toUpperCase ()")}}
+
Gibt den aufrufenden Zeichenfolgenwert zurück, der in Großbuchstaben konvertiert wurde.
+
{{jsxref ("String.prototype.trim ()")}}
+
Schneidet Leerzeichen vom Anfang und Ende der Zeichenfolge ab. Teil des ECMAScript 5-Standards.
+
{{jsxref ("String.prototype.trimStart ()")}}
+ {{jsxref ("String.prototype.trimLeft ()")}}
+
Schneidet Leerzeichen vom Anfang der Zeichenfolge ab.
+
{{jsxref ("String.prototype.trimEnd ()")}}
+ {{jsxref ("String.prototype.trimRight ()")}
+
Schneidet Leerzeichen vom Ende der Zeichenfolge ab.
+
{{jsxref ("String.prototype.valueOf ()")}}
+
Gibt den Grundwert des angegebenen Objekts zurück. Überschreibt die Methode {{jsxref ("Object.prototype.valueOf ()")}}.
+
{{jsxref ("String.prototype. @@ iterator ()", "String.prototype [@@ iterator] ()")}}
+
Gibt ein neues IteratorObjekt zurück, das die Codepunkte eines String-Werts durchläuft und jeden Codepunkt als String-Wert zurückgibt.
+
+ +

HTML-Wrapper-Methoden

+ +

Diese Methoden sind nur eingeschränkt einsetzbar, da sie nur einen Teil der verfügbaren HTML-Tags und -Attribute bereitstellen.

+ +
+
{{jsxref ("String.prototype.anchor ()")}} {{deprecated_inline}}
+
{{htmlattrxref ("name", "a", "<a name=\"name\">")}} (Hypertext-Ziel)
+
{{jsxref ("String.prototype.big ()")}} {{deprecated_inline}}
+
{{HTMLElement ("big")}}
+
{{jsxref ("String.prototype.blink ()")}} {{deprecated_inline}}
+
{{HTMLElement ("blinken")}}
+
{{jsxref ("String.prototype.bold ()")}} {{deprecated_inline}}
+
{{HTMLElement ("b")}}
+
{{jsxref ("String.prototype.fixed ()")}} {{deprecated_inline}}
+
{{HTMLElement ("tt")}}
+
{{jsxref ("String.prototype.fontcolor ()")}} {{deprecated_inline}}
+
{{htmlattrxref ("color", "font", "<font color = \" color \ ">")}}
+
{{jsxref ("String.prototype.fontsize ()")}} {{deprecated_inline}}
+
{{htmlattrxref ("size", "font", "<font size = \" size \ ">")}}
+
{{jsxref ("String.prototype.italics ()")}} {{deprecated_inline}}
+
{{HTMLElement ("i")}}
+
{{jsxref ("String.prototype.link ()")}} {{deprecated_inline}}
+
{{htmlattrxref ("href", "a", "<a href=\"url\">")}} (Link zu URL)
+
{{jsxref ("String.prototype.small ()")}} {{deprecated_inline}}
+
{{HTMLElement ("small")}}
+
{{jsxref ("String.prototype.strike ()")}} {{deprecated_inline}}
+
{{HTMLElement ("strike")}}
+
{{jsxref ("String.prototype.sub ()")}} {{deprecated_inline}}
+
{{HTMLElement ("sub")}}
+
{{jsxref ("String.prototype.sup ()")}} {{deprecated_inline}}
+
{{HTMLElement ("sup")}}
+
+ +

Specifications

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('ES1')}}{{Spec2('ES1')}}Anfangsdefinition.
{{SpecName('ES5.1', '#sec-15.5.3.1', 'String.prototype')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-string.prototype', 'String.prototype')}}{{Spec2('ES6')}}
{{SpecName('ESDraft', '#sec-string.prototype', 'String.prototype')}}{{Spec2('ESDraft')}}
+ +

Browser-Kompatibilität

+ + + +

{{Compat("javascript.builtins.String.prototype")}}

+ +

Sieh auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/string/raw/index.html b/files/de/web/javascript/reference/global_objects/string/raw/index.html new file mode 100644 index 0000000000..4405b1b72d --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/string/raw/index.html @@ -0,0 +1,160 @@ +--- +title: String.raw() +slug: Web/JavaScript/Reference/Global_Objects/String/raw +tags: + - ECMAScript 2015 + - JavaScript + - Method + - Reference + - String +translation_of: Web/JavaScript/Reference/Global_Objects/String/raw +--- +
{{JSRef}}
+ +
Die statische String.raw() Methode ist eine tag Funktion für template literale ähnlich dem r Präfix in Python oder dem @ Präfix in C# für String Literale (es gibt jedoch einen Unterschied: siehe in der Beschreibung dieses Issues). Es wird verwendet um rohen, unveränderten Text zu verwenden.
+ +
 
+ +

Syntax

+ +
String.raw(callSite, ...substitutions)
+String.raw`templateString`
+
+ +

Parameter

+ +
+
callSite
+
Sauber formatiertes template call object, wie { raw: 'string' }.
+
...substitutions
+
Enthält Substitutionswerte.
+
templateString
+
Ein template string, optional mit Substitutionen (${...}).
+
+ +

Rückgabewerte

+ +

Einen rohen, unveränderbaren String des template Strings.

+ +

Auftretende Errors

+ +
+
{{jsxref("TypeError")}}
+
Ein {{jsxref("TypeError")}}  wird ausgeworfen wenn das erste Argument nicht sauber formatiert ist.
+
+ +

Beschreibung

+ +

Meistens wird String.raw() mit template strings (Vorlagen-Zeichenketten) benutzt. Die erste oben beschriebene Syntax wird kaum benutzt weil die JavaScript engine die Argumente richtig aufrufen wird so wie bei anderen tag Funktionen.

+ +

String.raw() ist die einzige built-in tag function für template strings; Sie funktioniert wie eine default template function und führt concatenation (Verbindung mehrerer Strings zu einem) aus. Man kann sie sogar mit JS code neu schreiben.

+ +

Beispiele

+ +

Verwendung von String.raw()

+ +
String.raw`Hi\n${2+3}!`;
+// 'Hi\\n5!', das Zeichen nach 'Hi' ist kein newline (Zeilenumbruch) Zeichen,
+// '\' und 'n' sind zwei Zeichen.
+
+String.raw`Hi\u000A!`;
+// 'Hi\\u000A!', hier genauso, diesmal bekommen wir folgende Zeichen zurrück:
+//  \, u, 0, 0, 0, A, 6
+// Alle Typen von escape characters (besondere Steuerzeichen) sind ineffektiv
+// Backslashes werden unverändert ausgegeben.
+// Man kann dies prüfen indem man die .length property des strings abfragt
+console.log( String.raw`Hi\u000A!`.length ) // gibt 9 zurrück
+console.log( "Hi\u000A!".length ) // gibt 4 zurrück
+
+
+let name = 'Bob';
+String.raw`Hi\n${name}!`;
+// 'Hi\\nBob!', Substitutionen werden bearbeitet.
+
+// Normalerweise ruft man  String.raw() nicht als function auf aber man kann
+//folgendes:
+String.raw({ raw: 'test' }, 0, 1, 2);
+// 't0e1s2t'
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES2015', '#sec-string.raw', 'String.raw')}}{{Spec2('ES2015')}}Initiale Definition.
{{SpecName('ESDraft', '#sec-string.raw', 'String.raw')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ +
{{CompatibilityTable}}
+ +
+ + + + + + + + + + + + + + + + + + + +
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support41{{CompatGeckoDesktop("34")}}{{CompatNo}}{{CompatNo}}{{CompatNo}}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + +
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatNo}}41{{CompatGeckoMobile("34")}}{{CompatNo}}{{CompatNo}}{{CompatNo}}
+
+ +

See also

+ + diff --git a/files/de/web/javascript/reference/global_objects/string/repeat/index.html b/files/de/web/javascript/reference/global_objects/string/repeat/index.html new file mode 100644 index 0000000000..6008654521 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/string/repeat/index.html @@ -0,0 +1,286 @@ +--- +title: String.prototype.repeat() +slug: Web/JavaScript/Reference/Global_Objects/String/repeat +tags: + - ECMAScript 2015 + - JavaScript + - Méthode + - Prototype + - Referenz + - String +translation_of: Web/JavaScript/Reference/Global_Objects/String/repeat +--- +
{{JSRef}}
+ +

Die repeat()-Funktion erzeugt und gibt eine Zeichenkette zurück, die die spezifizierte Anzahl von Kopien der angegebenen Zeichenkette aneinandergereiht enthält.

+ +

Syntax

+ +
str.repeat(Anzahl);
+
+ +

Parameter

+ +
+
Anzahl
+
Eine Zahl zwischen 0 und +∞: [0, +∞), die die Anzahl Kopien der Ursprungszeichenkette in der neu erzeugten Zeichenkette definiert.
+
+ +

Rückgabeergebnis

+ +

Eine neue Zeichenkette mit der angegebenen Anzahl an Kopien der vorgegebenen Zeichenkette.

+ +

Ausnahmen

+ + + +

Beispiele

+ +
'abc'.repeat(-1);   // Parameterfehler
+'abc'.repeat(0);    // ''
+'abc'.repeat(1);    // 'abc'
+'abc'.repeat(2);    // 'abcabc'
+'abc'.repeat(3.5);  // 'abcabcabc' (Anzahl wird in einen ganzzahligen Integer umgewandelt)
+'abc'.repeat(1/0);  // Parameterfehler
+
+({ toString: () => 'abc', repeat: String.prototype.repeat }).repeat(2);
+// 'abcabc' (repeat() ist eine generische Methode)
+
+ +

Polyfill

+ +

Diese Funktion wurde zur ECMAScript 2015 Spezifikation hinzugefügt und steht unter Umständen noch nicht in allen JavaScript-Implementierungen zur Verfügung. Bedarfsweise können Sie die Methode String.prototype.repeat() durch folgenden Code zur Verfügung stellen:

+ +
if (!String.prototype.repeat) {
+  String.prototype.repeat = function(count) {
+    'use strict';
+    if (this == null) {
+      throw new TypeError('can\'t convert ' + this + ' to object');
+    }
+    var str = '' + this;
+    count = +count;
+    if (count != count) {
+      count = 0;
+    }
+    if (count < 0) {
+      throw new RangeError('repeat count must be non-negative');
+    }
+    if (count == Infinity) {
+      throw new RangeError('repeat count must be less than infinity');
+    }
+    count = Math.floor(count);
+    if (str.length == 0 || count == 0) {
+      return '';
+    }
+    // Ensuring count is a 31-bit integer allows us to heavily optimize the
+    // main part. But anyway, most current (August 2014) browsers can't handle
+    // strings 1 << 28 chars or longer, so:
+    if (str.length * count >= 1 << 28) {
+      throw new RangeError('repeat count must not overflow maximum string size');
+    }
+    var rpt = '';
+    for (var i = 0; i < count; i++) {
+      rpt += str;
+    }
+    return rpt;
+  }
+}
+
+ +

Polyfill ES5

+ +
//#es5
+'use strict';
+(function(win){
+ var typeOf=(function(w){var f=function f(x){return typeof(x)},o=w.Symbol,p;if(o && typeof(o)==='function' && typeof(o.iterator)==='symbol'){p=o.prototype;f=function(x){return x && x.constructor===o && x!==p?'symbol':typeof x}};return f})(win),
+ exist=function(o,p,t){return p in o && typeOf(o[p])===t};
+ (function(w){
+    var o=w.String.prototype;
+    if(!exist(o,'repeat','function')){o.repeat=(function(A,E){return function(n){var i=n>>0,s=this,l=s.length,j;if(i===0||l<1){s=''}else{j=268435456;if(i<0||i>=j||i*l>j){throw new RE('Invalidcountvalue')}else if(i>0){s=A(++i).join(s)}};return s}})(w.Array,w.RangeError)};
+ })(win);
+})(window);
+
+//test:
+console.clear();
+console.log(
+'abc'.repeat(false),//''
+'abc'.repeat({}),//''
+'abc'.repeat([]),//''
+'abc'.repeat(['']),//''
+'abc'.repeat([0]),//''
+'abc'.repeat([0,1]),//''
+'abc'.repeat([1,1]),//''
+'abc'.repeat(0),//''
+'abc'.repeat(.6),//''
+'abc'.repeat(true),//'abc'
+'abc'.repeat(1),//'abc'
+'abc'.repeat(2),//'abcabc'
+'abc'.repeat([2]),//'abcabc'
+'abc'.repeat(3.5),//'abcabcabc'
+''.repeat(2)//''
+);
+console.log(
+'abc'.repeat(-Infinity),//RangeError: Invalid count value
+'abc'.repeat(Infinity),//RangeError: Invalid count value
+'abc'.repeat(1/0),//RangeError: Invalid count value
+'abc'.repeat(-1)//RangeError: Invalid count value
+);
+
+/*
+es5 src:
+'use strict';
+(function(win){
+
+ var typeOf=(function(w){var f=function f(x){return typeof(x)},o=w.Symbol,p;if(o && typeof(o)==='function' && typeof(o.iterator)==='symbol'){p=o.prototype;f=function(x){return x && x.constructor===o && x!==p?'symbol':typeof x}};return f})(win),
+ exist=function(o,p,t){return p in o && typeOf(o[p])===t};
+
+ (function(w){
+    var o=w.String.prototype;
+    if(!exist(o,'repeat','function')){
+        o.repeat=(function(A,E){
+            return function(n){
+                var i=n>>0,s=this,l=s.length,j;
+                if(i===0||l<1){s=''}else{
+                    j=268435456;
+                    if(i<0||i>=j||i*l>j){throw new RE('Invalidcountvalue')}else if(i>0){s=A(++i).join(s)}
+                };
+                return s
+            };
+        })(w.Array,w.RangeError);
+    };
+    //..
+ })(win);
+
+})(window);
+*/
+
+ +

Polyfill ES6

+ +
//#es6
+
+(w=>{
+
+    const typeOf=(o=>{let f=x=>typeof x;if(o && 'function'===typeof o){const s='symbol';if(s===typeof o.iterator){const p=o.prototype;f=x=>x && x.constructor===o && x!==p?s:typeof x}};return f})(w.Symbol),
+
+    exist=(o,p,t)=>p in o && typeOf(o[p])===t;
+
+    (o=>{
+
+        if(!exist(o,'repeat','function')){const A=w.Array,E=w.RangeError;o.repeat=function(n){var i=n>>0,s='';if(i!==0){let t=this;const l=t.length;if(l!==0){if(i<0||i>=(t=268435456)||i*l>t){throw new E('Invalid count value')}else if(i>0){s=A(++i).join(t)}}};return s}};
+
+    })(w.String.prototype);
+
+})(window);
+
+/*
+
+es6 src:
+
+(w=>{
+
+    const typeOf=(o=>{let f=x=>typeof x;if(o && 'function'===typeof o){const s='symbol';if(s===typeof o.iterator){const p=o.prototype;f=x=>x && x.constructor===o && x!==p?s:typeof x}};return f})(w.Symbol),
+
+    exist=(o,p,t)=>p in o && typeOf(o[p])===t;
+
+
+    (o=>{
+
+        if(!exist(o,'repeat','function')){
+
+            const A=w.Array;
+
+            o.repeat=function(n){var i=n>>0,s='';if(i!==0){let t=this;const l=t.length;if(l!==0){if(i<0||i>=(t=268435456)||i*l>t){throw new RangeError('Invalid count value')}else if(i>0){s=A(++i).join(t)}}};return s};
+
+        };
+
+        //..
+
+    })(w.String.prototype);
+
+
+})(window);
+
+*/
+
+
+//test:
+
+console.clear();
+
+console.log(
+
+'abc'.repeat(false),//''
+
+'abc'.repeat({}),//''
+
+'abc'.repeat([]),//''
+
+'abc'.repeat(['']),//''
+
+'abc'.repeat([0]),//''
+
+'abc'.repeat([0,1]),//''
+
+'abc'.repeat([1,1]),//''
+
+'abc'.repeat(0),//''
+
+'abc'.repeat(.6),//''
+
+'abc'.repeat(true),//'abc'
+
+'abc'.repeat(1),//'abc'
+
+'abc'.repeat(2),//'abcabc'
+
+'abc'.repeat([2]),//'abcabc'
+
+'abc'.repeat(3.5),//'abcabcabc'
+
+''.repeat(2)//''
+
+);
+
+console.log(
+
+'abc'.repeat(-Infinity),//RangeError: Invalid count value
+
+'abc'.repeat(Infinity),//RangeError: Invalid count value
+
+'abc'.repeat(1/0),//RangeError: Invalid count value
+
+'abc'.repeat(-1)//RangeError: Invalid count value
+
+);
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES2015', '#sec-string.prototype.repeat', 'String.prototype.repeat')}}{{Spec2('ES2015')}}Erste Definition.
{{SpecName('ESDraft', '#sec-string.prototype.repeat', 'String.prototype.repeat')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.String.repeat")}}

diff --git a/files/de/web/javascript/reference/global_objects/string/replace/index.html b/files/de/web/javascript/reference/global_objects/string/replace/index.html new file mode 100644 index 0000000000..c375d3d1f6 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/string/replace/index.html @@ -0,0 +1,344 @@ +--- +title: String.prototype.replace() +slug: Web/JavaScript/Reference/Global_Objects/String/replace +tags: + - Expressions + - JavaScript + - Method + - Prototype + - Reference + - Regular + - String +translation_of: Web/JavaScript/Reference/Global_Objects/String/replace +--- +

{{JSRef}}
+ Die replace()-Methode gibt eine neue Zeichenkette zurück, in der einige oder alle Übereinstimmungen mit einem Muster durch einen Ersatz ausgetauscht wurden. Das Muster kann eine Zeichenkette oder eine RegExp sein, als Ersatz dienen eine Zeichenkette oder eine Funktion, welche für jede Übereinstimmung aufgerufen wird.

+ +

Syntax

+ +
str.replace(regexp|substr, newSubStr|function);
+ +

Parameter

+ +
+
regexp
+
Ein {{jsxref("Global_Objects/RegExp", "RegExp")}}-Objekt. Die Übereinstimmung wird durch den Rückgabewert aus Parameter #2 ersetzt.
+
+ +
+
substr
+
Eine {{jsxref("Global_Objects/String", "Zeichenkette")}}, welche durch newSubStr ersetzt werden soll. Nur das erste Vorkommen wird ersetzt.
+
+ +
+
newSubStr
+
Die {{jsxref("Global_Objects/String", "Zeichenkette")}}, welche den Substring aus Parameter #1 ersetzt. Eine Anzahl spezieller Ersetzungsmuster wird unterstützt, siehe den "Eine Zeichenkette als Parameter angeben"-Abschnitt weiter unten.
+
+ +
+
function
+
Eine Funktion, welche aufgerufen wird, um den neuen Substring zu erzeugen, der an Stelle des gefundenen Substrings aus Parameter #1 stehen soll. Die Argumente für diese Funktion werden im "Eine Funktion als Parameter angeben"-Abschnitt unten erläutert.
+
+ +

Rückgabe

+ +

Eine neue Zeichenkette, in der einige oder alle Übereinstimmungen mit einem Muster durch einen Ersatz ausgetauscht wurden.

+ +

Beschreibung

+ +

Diese Methode ändert nicht das String-Objekt, auf welchem sie aufgerufen wird. Sie gibt lediglich einen neuen String zurück.

+ +

Um ein globales Suchen und Ersetzen durchzuführen, setzen Sie den g-Umschalter im Regulären Ausdruck.

+ +

Eine Zeichenkette als Parameter angeben

+ +

Die Ersatzzeichenkette kann folgende spezielle Ersetzungsmuster beinhalten:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PatternInserts
$$Fügt ein "$" ein.
$&Fügt den gefundenen Substring ein.
$`Fügt den Stringteil vor dem gefundenen Substring ein.
$'Fügt den Stringteil nach dem gefundenen Substring ein.
$nMit n als nicht negative ganze Zahl kleiner als 100 wird der nte eingeklammerte Submatch-String eingefügt, der im ersten Argument in der RegExp angegeben wurde.
+ +

Eine Funktion als Parameter angeben

+ +

Sie können eine Funktion als zweiten Parameter angeben. In diesem Fall wird diese Funktion aufgerufen, nachdem die Suche ausgeführt wurde. Der Rückgabewert der Funktion wird als Ersatz eingesetzt. (Anmerkung: Die oben genannten speziellen Ersetzungsmuster werden in diesem Fall nicht beachtet.) Bedenken Sie, dass die Funktion für jede Übereinstimmung erneut aufgerufen wird, wenn der reguläre Ausdruck im ersten Parameter den global-Flag gesetzt hat.

+ +

Die Argumente dieser Funktion lauten wie folgt:

+ + + + + + + + + + + + + + + + + + + + + + + + +
Möglicher NameGelieferter Wert
matchDer gefundene Substring. (Entspricht $& oben.)
p1, p2, ...Der nth eingeklammerte Submatch-String, fall im ersten Argument ein RegExp-Objekt angegeben wurde. (Entspricht $1, $2, etc. oben.) Wurde zum Beispiel /(\a+)(\b+)/ angegeben, so ist p1 die Übereinstimmung für \a+, und p2 für \b+.
offsetDie Position, an welcher der gefundene Substring innerhalb der gesamten Zeichenkette gefunden wurde. War zum Beispiel die gesamte Zeichenkette "abcd" und der gefundene Substring "bc", dann wäre das Argument 1.)
stringDie gesamte Zeichenkette, welche durchsucht wird.
+ +

(Die genaue Anzahl der Argumente hängt davon ab, ob das erste Argument eine RegExp war und wieviele eingeklammerte Submatches in diesem Fall angegeben wurden.)

+ +

Das folgende Beispiel wird newString auf "abc - 12345 - #$*%" setzen:

+ +
function replacer(match, p1, p2, p3, offset, string){
+  // p1 is nondigits, p2 digits, and p3 non-alphanumerics
+  return [p1, p2, p3].join(' - ');
+}
+newString = "abc12345#$*%".replace(/([^\d]*)(\d*)([^\w]*)/, replacer);
+
+ +

Beispiele

+ +

Beispiel: Definieren des regulären Ausdrucks in replace

+ +

Globales Ersetzen kann nur mit einem regulären Ausdruck durchgeführt werden. Im folgenden Beispiel wird der reguläre Ausdruck in replace definiert und beinhaltet den Schalter ignore case.

+ +
var str = "Twas the night before Xmas...";
+var newstr = str.replace(/xmas/i, "Christmas");
+print(newstr);
+
+ +

Dies erzeugt die Ausgabe "Twas the night before Christmas..."

+ +

Beispiel: Nutzung von global und ignore mit replace

+ +

Das nachfolgende Beispiel enthält einen regulären Ausdruck, der sowohl das global als auch das ignore Flag gesetzt hat. Dadurch wird von replace jedes Vorkommnis von 'apples' in der Zeichenkette durch 'oranges' ersetzt.

+ +
var re = /apples/gi;
+var str = "Apples are round, and apples are juicy.";
+var newstr = str.replace(re, "oranges");
+print(newstr);
+
+ +

Dies erzeugt die Ausgabe "oranges are round, and oranges are juicy."

+ +

Beispiel: Vertausche Wörter in Strings

+ +

Im folgenden Skript werden die Wörter in dem String getauscht. Für die Vertauschung im Text nutzt das Skript die Ersetzungspatterns $1 und $2.

+ +
var re = /(\w+)\s(\w+)/;
+var str = "John Smith";
+var newstr = str.replace(re, "$2, $1");
+print(newstr);
+
+ +

Die Ausgabe ist: "Smith, John".

+ +

Beispiel: Nutzung von Inline-Funktionen, die die erkannten Zeichen modifizieren

+ +

In diesem Beispiel werden alle Großbuchstaben durch einen Bindestrich und den entsprechenden Kleinbuchstaben ersetzt. Der wichtige Punkt in dem Beispiel ist, dass der Additions-Operator (Konkatination) vor dem Zurückgeben der neuen Zeichenkette erfolgen muss.

+ +

Die Ersetzungsfunktion bekommt das erkannte Muster als Parameter übergeben und benutzt diesen, um den Buchstaben zu transformieren und ihn mit dem Bindestrich zu verbinden. Zum Schluss wird das Ergebnis zum Ersetzen zurückgegeben.

+ +
function styleHyphenFormat(propertyName) {
+  function upperToHyphenLower(match) {
+    return '-' + match.toLowerCase();
+  }
+  return propertyName.replace(/[A-Z]/g, upperToHyphenLower);
+}
+
+ +

Gegeben styleHyphenFormat('borderTop'), gibt 'border-top' zurück.

+ +

Weil das Ergebnis transformiert werden soll, bevor die finale Ersetzung durchgeführt wird, muss eine Funktion eingesetzt werden. Dieses erzwingt die Ausführung von toLowerCase(). Wenn man das gleiche versucht ohne eine Funktion zu benutzen, wird die toLowerCase() Methode ohne Wirkung sein.

+ +
var newString = propertyName.replace(/[A-Z]/g, '-' + '$&'.toLowerCase());  // won't work
+
+ +

Dieses ist weil '$&'.toLowerCase() ausgeführt wird, bevor der String als Pattern genutzt wird.

+ +

Beispiel: Grad Fahrenheit in Celsius-Grad umwandeln

+ +

Das folgende Beispiel ersetzt einen Wert in Grad Fahrenheit durch den entsprechenden Celsius-Wert. Der Fahrenheitwert sollte eine Nummer sein, die mit einem F endet. Die Funktion gibt eine Celsius-Temperatur mit der Endung C aus. Ist zum Beispiel der Eingabewert 212F, so gibt die Funktion 100C zurück. Ist die Nummer 0F, so wird -17,77777777777778C zurück gegeben.

+ +

Der reguläre Ausdruck test prüft jede Nummer, die mit F endet. Die Nummer in Grad Fahrenheit ist durch den zweiten Funktionsparameter, p1, ansprechbar. Die Funktion setzt den Celsiuswert basierend auf dem Fahrenheitwert in einer Zeichenkette in der f2c-Funktion. f2c gibt dann den Celsiuswert zurück. Diese Funktion ähnelt dem s///e-Flag in Perl.

+ +
function f2c(x) {
+  function convert(str, p1, offset, s) {
+    return ((p1-32) * 5/9) + "C";
+  }
+  var s = String(x);
+  var test = /(\d+(?:\.\d*)?)F\b/g;
+  return s.replace(test, convert);
+}
+
+ +

Beispiel: Verwenden einer inline-Funktion mit einem regulärem Ausdruck um Schleifen zu vermeiden

+ +

Das folgende Beispiel nimmt eine Zeichenkettenmuster und konvertiert es in ein Array von Objekten.

+ +

Eingabe:
+ Eine Zeichenkette, die aus den Zeichen x, - und _ besteht

+ +
x-x_
+x---x---x---x---
+x-xxx-xx-x-
+x_x_x___x___x___
+ +
Ausgabe:
+ +
Ein Array mit Objekten. Ein 'x' zeigt einen 'an'-Status an, ein '-' (Bindestrich) symbolisiert einen 'aus'-Status und ein '_' (Unterstrich) gibt die Länge des 'an'-Status an.
+ +
[
+  { on: true, length: 1 },
+  { on: false, length: 1 },
+  { on: true, length: 2 }
+  ...
+]
+ +
Ausschnitt:
+ +
+
var str = 'x-x_';
+var retArr = [];
+str.replace(/(x_*)|(-)/g, function(match, p1, p2){
+  if(p1) retArr.push({ on: true, length: p1.length });
+  if(p2) retArr.push({ on: false, length: 1 });
+});
+
+console.log(retArr);
+
+ +
Der Ausschnitt generiert ein Array mit drei Objekten im gewünschten Format, ohne eine Schleife zu verwenden.
+ +
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES3')}}{{Spec2('ES3')}}Initiale Definition.
+ Implementiert in JavaScript 1.2
{{SpecName('ES5.1', '#sec-15.5.4.11', 'String.prototype.replace')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-string.prototype.replace', 'String.prototype.replace')}}{{Spec2('ES6')}}
{{SpecName('ESDraft', '#sec-string.prototype.replace', 'String.prototype.replace')}}{{Spec2('ESDraft')}}
+ +

Browserkompatibilität

+ +

{{ CompatibilityTable() }}

+ +
+ + + + + + + + + + + + + + + + + + + +
EigenschaftChromeFirefox (Gecko)Internet ExplorerOperaSafari
Grundlegende Unterstützung{{ CompatVersionUnknown() }}{{ CompatVersionUnknown() }}{{ CompatVersionUnknown() }}{{ CompatVersionUnknown() }}{{ CompatVersionUnknown() }}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + +
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Grundlegende Unterstützung{{ CompatVersionUnknown() }}{{ CompatVersionUnknown() }}{{ CompatVersionUnknown() }}{{ CompatVersionUnknown() }}{{ CompatVersionUnknown() }}{{ CompatVersionUnknown() }}
+
+ +

Firefox-spezifische Bemerkungen

+ + + +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/string/slice/index.html b/files/de/web/javascript/reference/global_objects/string/slice/index.html new file mode 100644 index 0000000000..d30b18e21f --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/string/slice/index.html @@ -0,0 +1,152 @@ +--- +title: String.prototype.slice() +slug: Web/JavaScript/Reference/Global_Objects/String/slice +translation_of: Web/JavaScript/Reference/Global_Objects/String/slice +--- +
{{JSRef}}
+ +

Die slice() Methode extrahiert einen Teilbereich eines Strings und gibt einen neuen String zurück.

+ +

Syntax

+ +
str.slice(AnfangIndex[, EndIndex])
+ +

Parameters

+ +
+
AnfangIndex
+
Der nullbasierte Index von welchem mit der Extraktion begonnen wird. Wenn dieser negativ ist, wird er als strLength + AnfangIndex, wobei strLength die länge des Strings darstellt, (bspw., wenn AnfangIndex  -3 ist, wird es als strLength - 3 gewertet). Wenn beginIndex größer oder gleich length des Strings ist, gibt slice() einen leeren String zurück.
+
EndIndex
+
Optional. Der nullbasierte Index vor welchem  die Extraktion beendet wird. Der Charakter an diesem Index wird nicht mit einbezogen. Wenn EndIndex ausgelassen wird, extrahiert slice() bis zum Ende des Strings. Wenn EndIndex negativ ist, wird es wie strLength + EndIndex gewertet, wobei strLength sich auf die Länge des Strings bezieht (z.B.: wenn EndIndex  -3 ist, wird es gewertet wie strLength - 3).
+
+ +

Return value

+ +

Ein neuer String, welcher die extrahierte Sektion des Strings enthält.

+ +

Beschreibung

+ +

slice() extrahiert den Text eines Strings und gibt einen neuen zurück. Änderungen im einen String wirken sich nicht auf den anderen String aus.

+ +

slice() extrahiert bis, aber nicht einschließlich, EndIndex. str.slice(1, 4) extrahiert den zweiten Charakter bis zum vierten  (Character mit den Indexen 1, 2, und 3).

+ +

Als Beispiel, str.slice(2, -1) extrahiert den dritten Charakter bis zum zweiten, bis zum letzten Charakter im String.

+ +

Beispiele

+ +

Benutzen von slice() um einen neuen String zu erzeugen

+ +

Das folgende Beispiel benutzt slice() um einen neuen String zu erzeugen.

+ +
var str1 = 'The morning is upon us.', // the length of str1 is 23.
+    str2 = str1.slice(1, 8),
+    str3 = str1.slice(4, -2),
+    str4 = str1.slice(12),
+    str5 = str1.slice(30);
+console.log(str2); // OUTPUT: he morn
+console.log(str3); // OUTPUT: morning is upon u
+console.log(str4); // OUTPUT: is upon us.
+console.log(str5); // OUTPUT: ""
+
+ +

Benutzen von slice() mit negativen Indexen

+ +

Das folgende Beispiel benutzt slice() mit negativen Indexen.

+ +
var str = 'The morning is upon us.';
+str.slice(-3);     // returns 'us.'
+str.slice(-3, -1); // returns 'us'
+str.slice(0, -1);  // returns 'The morning is upon us'
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES3')}}{{Spec2('ES3')}}Initiale Definition. Implementiert in JavaScript 1.2.
{{SpecName('ES5.1', '#sec-15.5.4.13', 'String.prototype.slice')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-string.prototype.slice', 'String.prototype.slice')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-string.prototype.slice', 'String.prototype.slice')}}{{Spec2('ESDraft')}} 
+ +

Browser kompatibilität

+ +
{{CompatibilityTable}}
+ +
+ + + + + + + + + + + + + + + + + + + +
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + +
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
+
+ +

See also

+ + diff --git a/files/de/web/javascript/reference/global_objects/string/split/index.html b/files/de/web/javascript/reference/global_objects/string/split/index.html new file mode 100644 index 0000000000..cfea09cc76 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/string/split/index.html @@ -0,0 +1,212 @@ +--- +title: String.prototype.split() +slug: Web/JavaScript/Reference/Global_Objects/String/split +translation_of: Web/JavaScript/Reference/Global_Objects/String/split +--- +
{{JSRef}}
+ +

Die split() Methode teilt ein {{jsxref("String")}} Objekt in ein Array von Strings auf, indem der String in Teilstrings zerteilt wird, wobei ein angegebenes Trennzeichen verwendet wird, um zu bestimmen, wo die Aufteilung erfolgen soll.

+ +

{{EmbedInteractiveExample("pages/js/string-split.html")}}

+ +

Syntax

+ +
str.split([separator[, limit]])
+ +
+

Achtung: Wenn leerer ein String ("") als Trennzeichen verwendet wird, wird der String nicht zwischen jedem vom Benutzer wahrgenommenen Zeichen (Graphem-Cluster) oder zwischen jedem Unicode-Zeichen (Codepoint) aufgeteilt, sondern zwischen jeder UTF-16-Codeeinheit. Dadurch werden Ersatzpaare (surrogate pairs) zerstört. Siehe auch How do you get a string to a character array in JavaScript? auf Stack Overflow.

+
+ +

Parameter

+ +
+
separator {{optional_inline}}
+
Ein String, der die Punkte angibt, an denen jede Aufteilung erfolgen soll. separator wird als Zeichenfolge oder als {{jsxref("Global_Objects/RegExp", "regulärer Ausdruck", "", 1)}} behandelt. Wenn ein Nur-Text separator mehr als ein Zeichen enthält, muss der gesamte String gefunden werden, damit eine Trennung erfolgt. Wenn separator nicht angegeben wird oder in str nicht vorkommt, enthält das zurückgegebene Array ein Element, das den gesamten String enthält. Wenn separator ein leerer String ist, wird jedes Zeichen von str in ein Array-Element umgewandelt.
+
limit {{optional_inline}}
+
Ganzzahl, die ein Limit für die Anzahl der zu findenden Splits angibt. Wenn dieser Parameter angegeben wird, teilt die split() Methode die Zeichenfolge bei jedem Vorkommen des angegebenen separator auf, stoppt jedoch, nachdem die Anzahl von limit erreicht wurde. Es können immer noch weniger Einträge als limit enthalten sein, wenn das Ende des Strings erreicht wurde, bevor das angegebene Limit erreicht wird. Der übrig gebliebene Text wird im neuen Array nicht enthalten sein.
+
+ +

Rückgabewert

+ +

Ein {{jsxref("Array")}} mit Strings, welcher an jedem Punkt aufgeteilt wurde, an dem das Trennzeichen in der angegebenen Zeichenfolge aufgetreten ist.

+ +

Beschreibung

+ +

Wenn gefunden, wird separator aus dem String entfernt und die Teilstrings werden in einem Array zurückgegeben. Wenn separator nicht gefunden oder weggelassen wird, enthält das Array ein Element, das aus dem gesamten String besteht. Wenn separator ein leerer String ist, wird str in ein Array aus Zeichen umgewandelt. Wenn separator am Anfang, Ende oder Anfang und Ende eines Strings gefunden wird, beginnt, endet oder beginnt und endet das Array mit einem leeren String. Besteht ein String daher nur aus einem einzigen Vorkommnis von separator besteht, besteht das Array also aus zwei leeren Strings.

+ +

Wenn separator ein regulärer Ausdruck ist, der runde Klammern enthält, werden die Ergebnisse (einschließlich etwaiger undefinierter Ergebnisse) der Klammern bei jeder Übereinstimmung von separator in das ausgegebene Array eingefügt.

+ +
+

Hinweis: Wenn separator ein Array ist, wird das Array in einen String umgewandelt und als Trennzeichen verwendet.

+
+ +
+

Hinweis: Wenn der String leer ist, gibt split() ein Array zurück, das einen leeren String anstelle eines leeren Arrays enthält. Wenn sowohl der String als auch das Trennzeichen leere Zeichenfolgen sind, wird ein leeres Array zurückgegeben.

+
+ +

Beispiele

+ +

Verwendung von split()

+ +

Im folgenden Beispiel wird eine Funktion definiert, die einen String mithilfe des angegebenen Trennzeichens in ein Array aus Strings aufteilt. Nach dem Aufteilen des Strings protokolliert die Funktion Meldungen, die den ursprüngliche String angeben (vor der Aufteilung), das verwendete Trennzeichen, die Anzahl der Elemente im Array und die einzelnen Arrayelemente.

+ +
function splitString(stringToSplit, separator) {
+  var arrayOfStrings = stringToSplit.split(separator);
+
+  console.log('The original string is: "' + stringToSplit + '"');
+  console.log('The separator is: "' + separator + '"');
+  console.log('The array has ' + arrayOfStrings.length + ' elements: ' + arrayOfStrings.join(' / '));
+}
+
+var tempestString = 'Oh brave new world that has such people in it.';
+var monthString = 'Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec';
+
+var space = ' ';
+var comma = ',';
+
+splitString(tempestString, space);
+splitString(tempestString);
+splitString(monthString, comma);
+ +

Das Beispiel erzeugt den folgende Ausgabe:

+ +
The original string is: "Oh brave new world that has such people in it."
+The separator is: " "
+The array has 10 elements: Oh / brave / new / world / that / has / such / people / in / it.
+
+The original string is: "Oh brave new world that has such people in it."
+The separator is: "undefined"
+The array has 1 elements: Oh brave new world that has such people in it.
+
+The original string is: "Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec"
+The separator is: ","
+The array has 12 elements: Jan / Feb / Mar / Apr / May / Jun / Jul / Aug / Sep / Oct / Nov / Dec
+ +

Leerzeichen aus einem String entfernen

+ +

Im folgenden Beispiel sucht split() nach 0 oder mehr Leerzeichen, gefolgt von einem Semikolon und 0 oder mehr Leerzeichen. Wenn es sie findet, entfernt es die Leerzeichen aus dem String. nameList ist das Array, was als Ergebnis von split() zurückgegeben wird.

+ +
var names = 'Harry Trump ;Fred Barney; Helen Rigby ; Bill Abel ;Chris Hand ';
+
+console.log(names);
+
+var re = /\s*(?:;|$)\s*/;
+var nameList = names.split(re);
+
+console.log(nameList);
+ +

Dies protokolliert zwei Zeilen. Die erste Zeile protokolliert die ursprüngliche Zeichenfolge und die zweite Zeile das resultierende Array.

+ +
Harry Trump ;Fred Barney; Helen Rigby ; Bill Abel ;Chris Hand
+[ "Harry Trump", "Fred Barney", "Helen Rigby", "Bill Abel", "Chris Hand", "" ]
+
+ +

Eine begrenzte Anzahl von Trennungen zurückgeben

+ +

Im folgenden Beispiel sucht split() nach 0 oder mehr Leerzeichen im String und gibt die ersten 3 Treffer zurück, die es findet.

+ +
var myString = 'Hello World. How are you doing?';
+var splits = myString.split(' ', 3);
+
+console.log(splits);
+ +

Dieses Skript gibt folgendes aus:

+ +
["Hello", "World.", "How"]
+
+ +

Teilen mit einer RegExp, um Teile des Trennzeichens in das Ergebnis aufzunehmen

+ +

Wenn separator ein regulärer Ausdruck ist, der runde Klammern () enthält, werden übereinstimmende Ergebnisse in das Array aufgenommen.

+ +
var myString = 'Hello 1 word. Sentence number 2.';
+var splits = myString.split(/(\d)/);
+
+console.log(splits);
+ +

Dieses Skript gibt folgendes aus:

+ +
[ "Hello ", "1", " word. Sentence number ", "2", "." ]
+ +

 

+ +

Teilen mit einem Array als Trennzeichen

+ +

 

+ +
var myString = 'this|is|a|Test';
+var splits = myString.split(['|']);
+
+console.log(splits); //["this", "is", "a", "Test"]
+
+var myString = 'ca,bc,a,bca,bca,bc';
+
+var splits = myString.split(['a','b']);
+// myString.split(['a','b']) ist dasselbe wie myString.split(String(['a','b']))
+
+console.log(splits);  //["c", "c,", "c", "c", "c"]
+ +

Einen String mit split() umkehren

+ +
+

Dies ist keine robuste Art einen String umzukehren.

+ +
var str = 'asdfghjkl';
+var strReverse = str.split('').reverse().join(''); // 'lkjhgfdsa'
+// split() returns an array on which reverse() and join() can be applied
+
+ +

Das funktioniert nicht, wenn der String Graphem-Cluster enthält, selbst wenn ein Unicode-fähiger Split verwendet wird (verwenden Sie stattdessen bspw. esrever).

+ +
var str = 'résumé';
+var strReverse = str.split(/(?:)/u).reverse().join('');
+// => "́emuśer"
+
+ +

Bonus: Verwenden Sie sen {{jsxref("Operators/Comparison_Operators", "===", "#Identity_.2F_strict_equality_(.3D.3D.3D)")}} Operator um zu testen, ob der ursprüngliche String ein Palindrom war.

+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('ES3')}}{{Spec2('ES3')}}Initiale Definition. Implementiert in JavaScript 1.1.
{{SpecName('ES5.1', '#sec-15.5.4.14', 'String.prototype.split')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-string.prototype.split', 'String.prototype.split')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-string.prototype.split', 'String.prototype.split')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ +

{{Compat("javascript.builtins.String.split")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/string/startswith/index.html b/files/de/web/javascript/reference/global_objects/string/startswith/index.html new file mode 100644 index 0000000000..adbb0dce44 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/string/startswith/index.html @@ -0,0 +1,150 @@ +--- +title: String.prototype.startsWith() +slug: Web/JavaScript/Reference/Global_Objects/String/startsWith +tags: + - ECMAScript 2015 + - JavaScript + - Method + - Prototype + - Referenz + - String + - protype +translation_of: Web/JavaScript/Reference/Global_Objects/String/startsWith +--- +
{{JSRef}}
+ +

Die startsWith()-Methode stellt fest, ob ein String mit den Zeichen eines anderen Strings beginnt, falls dies so ist, wird true, sonst wird false zurückgegeben. 

+ +
str.startsWith(searchString[, position])
+ +

Parameter

+ +
+
searchString
+
Die Zeichenfolge, nach der am Anfang des Strings gesucht wird.
+
position
+
Optional. Die Position, an der die Suche nach searchString begonnen werden soll. Der Standardwert ist 0.
+
+ +

Rückgabewert

+ +

true wenn der String mit den Zeichen aus dem übergebenen String beginnt, andernfalls false.

+ +

Beschreibung

+ +

Diese Methode dient dazu herauszufinden, ob ein String am Anfang eines anderen Strings steht. Die Methode unterscheidet Groß- und Kleinschreibung.

+ +

Beispiele

+ +

Benutzung von startsWith()

+ +
//startsWith
+var str = 'Sein oder nicht sein, das ist hier die Frage';
+
+console.log(str.startsWith('Sein oder'));      // true
+console.log(str.startsWith('nicht sein'));     // false
+console.log(str.startsWith('nicht sein', 10)); // true
+
+ +

Polyfill

+ +

Diese Methode ist Bestandteil der ECMAScript-6-Spezifikation. Dennoch kann es vorkommen, dass sie noch nicht in allen Javascript-Implementierungen vorhanden ist. Man kann ihre Funktionsweise allerdings mit folgendem Ausdruck emulieren:

+ +
if (!String.prototype.startsWith) {
+  String.prototype.startsWith = function(searchString, position) {
+    position = position || 0;
+    return this.indexOf(searchString, position) === position;
+  };
+}
+
+ +

Eine robustere und schnellerer (optimierte) Version findet sich auf GitHub, geschrieben von Mathias Bynens.

+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES2015', '#sec-string.prototype.startswith', 'String.prototype.startsWith')}}{{Spec2('ES2015')}}Initiale Definition.
{{SpecName('ESDraft', '#sec-string.prototype.startswith', 'String.prototype.startsWith')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ +

{{CompatibilityTable}}

+ +
+ + + + + + + + + + + + + + + + + + + + + +
FeatureChromeFirefox (Gecko)EdgeInternet ExplorerOperaSafari
Basic support{{CompatChrome("41")}}{{CompatGeckoDesktop("17")}}{{CompatVersionUnknown}}{{CompatNo}}28{{CompatSafari("9")}}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + +
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatNo}}{{CompatChrome("36")}}{{CompatGeckoMobile("17")}}{{CompatNo}}{{CompatNo}}{{CompatNo}}
+
+ +

 

+ +

Zu beachten ist, dass die MSDN Dokumentation für diese Methode (https://msdn.microsoft.com/en-us/library/mt146831(v=vs.94).aspx) besagt, das es nicht im Internet Explorer unterstützt wird.

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/string/substr/index.html b/files/de/web/javascript/reference/global_objects/string/substr/index.html new file mode 100644 index 0000000000..354d417ea9 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/string/substr/index.html @@ -0,0 +1,171 @@ +--- +title: String.prototype.substr() +slug: Web/JavaScript/Reference/Global_Objects/String/substr +tags: + - JavaScript + - Method + - Prototype + - Reference + - String +translation_of: Web/JavaScript/Reference/Global_Objects/String/substr +--- +
{{JSRef}}
+ +

Die Methode substr() gibt die Zeichen eines Strings in einem gegebenen Intervall zurück.

+ +

Syntax

+ +
str.substr(start[, length])
+ +

Parameter

+ +
+
start
+
Ort im String, an dem mit dem Extrahieren von Zeichen begonnen wird. Wird eine negative Zahl übergeben, wird sie als str.length - start behandelt (Wenn start z. B. -3 ist, wird es als str.length - 3 behandelt).
+
length
+
Optional. Die Anzahl der Zeichen, die extrahiert werden sollen.
+
+ +

Rückgabewert

+ +

Einen neuen String, der den extrahierten Bereich des gegebene Strings enthält. Wenn length 0 oder negativ ist, wird ein leerer String zurückgegeben.

+ +

Beschreibung

+ +

start ist ein Zeichenindex. Der Index des ersten Zeichens ist 0 und der Index des letzten Zeichens ist 1 weniger als die Länge des Strings. substr()fängt mit dem Extrahieren von Zeichen bei start an und extrahiert length Zeichen (es sei denn, es erreicht vorher das Ende des Strings, dann gibt es weniger zurück).

+ +

Wenn start positiv ist und größer gleich der Länge des Strings ist, gibt substr() einen leeren String zurück.

+ +

Wenn start negativ ist, verwendet substr() es als Zeichenindex vom Ende des Strings. Wenn start negativ ist und abs(start) größer als die Länge des Strings ist, verwendet substr() 0 als Zeichenindex. Anmerkung: Der beschriebene Umgang mit negativen Werten für start wird von Microsoft JScript nicht unterstützt.

+ +

Wenn length 0 oder negativ ist, gibt substr() einen leeren String zurück. Wenn length nicht übergeben wird, extrahiert substr() alle Zeichen bis zum Ende des Strings.

+ +

Beispiele

+ +

Verwenden von substr()

+ +
var str = 'abcdefghij';
+
+console.log('(1, 2): '   + str.substr(1, 2));   // '(1, 2): bc'
+console.log('(-3, 2): '  + str.substr(-3, 2));  // '(-3, 2): hi'
+console.log('(-3): '     + str.substr(-3));     // '(-3): hij'
+console.log('(1): '      + str.substr(1));      // '(1): bcdefghij'
+console.log('(-20, 2): ' + str.substr(-20, 2)); // '(-20, 2): ab'
+console.log('(20, 2): '  + str.substr(20, 2));  // '(20, 2): '
+
+ +

Polyfill

+ +

Microsofts JScript unterstützt keine negativen Werte für den Startindex. Der folgende Kompatibilitätscode ist ein Workaround für diesen Bug:

+ +
// Nur verwenden, wenn die substr()-Funktion nicht funktioniert
+if ('ab'.substr(-1) != 'b') {
+  /**
+   *  Einen Teilstring erhalten
+   *  @param  {integer}  start   Startindex des Teilstrings
+   *  @param  {integer}  length  Länge des Teilstrings
+   *  @return {string}
+   */
+  String.prototype.substr = function(substr) {
+    return function(start, length) {
+       // Aufruf der Originalfunktion
+       return substr.call(this,
+         // Wenn start negativ ist, berechnen wie viel start
+         // vom Anfang des Strings ist
+         start < 0 ? this.length + start : start,
+         length);
+    }
+  }(String.prototype.substr);
+}
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES3')}}{{Spec2('ES3')}}Im (informativen) Anhang B "Compatibility" definiert. Implementiert in JavaScript 1.0.
{{SpecName('ES5.1', '#sec-B.2.3', 'String.prototype.substr')}}{{Spec2('ES5.1')}}Im (informativen) Anhang B "Compatibility" definiert.
{{SpecName('ES6', '#sec-string.prototype.substr', 'String.prototype.substr')}}{{Spec2('ES6')}}Im (normativen) Anhang B "Additional ECMAScript Features for Web Browsers" definiert.
{{SpecName('ESDraft', '#sec-string.prototype.substr', 'String.prototype.substr')}}{{Spec2('ESDraft')}}Im (normativen) Anhang B "Additional ECMAScript Features for Web Browsers" definiert.
+ +

Browserkompatibilität

+ +
{{CompatibilityTable}}
+ +
+ + + + + + + + + + + + + + + + + + + +
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Grundlegende Unterstützung{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + +
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Grundlegende Unterstützung{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/string/substring/index.html b/files/de/web/javascript/reference/global_objects/string/substring/index.html new file mode 100644 index 0000000000..4ed1e33959 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/string/substring/index.html @@ -0,0 +1,199 @@ +--- +title: String.prototype.substring() +slug: Web/JavaScript/Reference/Global_Objects/String/substring +tags: + - Funktion + - JavaScript + - Method + - Methode(2) + - Méthode + - Prototype + - Reference + - Referenz + - Référence(2) + - String + - Zeichenkette +translation_of: Web/JavaScript/Reference/Global_Objects/String/substring +--- +
{{JSRef("Global_Objects", "String")}}
+ +

Definition

+ +

Die substring() Methode gibt einen Teilstring eines Strings zwischen einem Index und einem anderen, oder dem Ende der Zeichenkette zurück.

+ +

Syntax

+ +
str.substring(indexA[, indexB])
+ +

Parameter

+ +
+
indexA
+
Ein Integer zwischen 0 und der Länge der Zeichenkette, welcher das erste Zeichen des Teilstrings repräsentiert.
+
indexB
+
Optional. Ein Integer zwischen 0 und der Länge der Zeichenkette, welcher das erste nicht im Teilstring enthaltene Zeichen darstellt.
+
+ +

Beschreibung

+ +

substring() extrahiert Zeichen von indexA bis nicht einschließlich indexB. Im Detail:

+ + + +

Falls indexA größer als indexB ist, werden die Argumente vertauscht substring(); zum Beispiel, str.substring(1, 0) == str.substring(0, 1).

+ +

Beispiele

+ +

Beispiel: Benutzung von substring()

+ +

Das folgende Beispiel benutzt substring(), um Zeichen des Strings 'Mozilla' anzuzeigen:

+ +
var anyString = 'Mozilla';
+
+// Zeigt 'Moz'
+console.log(anyString.substring(0, 3));
+console.log(anyString.substring(3, 0));
+
+// Zeigt 'lla'
+console.log(anyString.substring(4, 7));
+console.log(anyString.substring(7, 4));
+
+// Zeigt 'Mozill'
+console.log(anyString.substring(0, 6));
+
+// Zeigt 'Mozilla'
+console.log(anyString.substring(0, 7));
+console.log(anyString.substring(0, 10));
+
+ +

Beispiel: Benutzung von substring() mit length Eigenschaft

+ +

Das folgende Beispiel benutzt die substring() Methode und die {{jsxref("String.length", "length")}} Eigenschaft, um die letzten Zeichen des Strings zu extrahieren. Diese Methode ist leichter zu merken, da die genauen Start- und Endparameter nicht bekannt sein müssen.

+ +
// Zeigt 'illa' - die letzten 4 Zeichen
+var anyString = 'Mozilla';
+var anyString4 = anyString.substring(anyString.length - 4);
+console.log(anyString4);
+
+// Zeigt 'zilla' - die letzten 5 Zeichen
+var anyString = 'Mozilla';
+var anyString5 = anyString.substring(anyString.length - 5);
+console.log(anyString5);
+
+ +

Beispiel: Ersetze ein Teilstring mit einem String

+ +

Das folgende Beispiel ersetzt ein Teilstring mit einem String. Es werden sowohhl einzelne Zeichen als auch Teilstrings ersetzt. Der Funktionsaufruf am Ende des Beispiel ändert die Zeichenkette 'Brave New World' in 'Brave New Web'.

+ +
// Ersetzt oldS mit newS in der Zeichenkette fullS
+function replaceString(oldS, newS, fullS) {
+  for (var i = 0; i < fullS.length; ++i) {
+    if (fullS.substring(i, i + oldS.length) == oldS) {
+      fullS = fullS.substring(0, i) + newS + fullS.substring(i + oldS.length, fullS.length);
+    }
+  }
+  return fullS;
+}
+
+replaceString('World', 'Web', 'Brave New World');
+
+ +

Beachte, dass dieses Beispiel auch in einer Endlosschleife resultieren kann, wenn oldS ein Teilstring von newS ist — zum Beispiel, falls 'World' mit 'OtherWorld' ersetzt wird. Der folgende Code zeigt ein bessere Methode Strings zu ersetzen:

+ +
function replaceString(oldS, newS, fullS) {
+  return fullS.split(oldS).join(newS);
+}
+
+ +

Der oben stehende Code zeigt ein Beispiel für die Verwendung der substring Operation. Falls Teilstrings ersetzt werden, kann in den meisten Fällen {{jsxref("String.prototype.replace()")}} verwendet werden.

+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
ECMAScript 1. Edition.StandardIn JavaScript 1.0 implementiert.
{{SpecName('ES5.1', '#sec-15.5.4.15', 'String.prototype.substring')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-string.prototype.substring', 'String.prototype.substring')}}{{Spec2('ES6')}} 
+ +

Browser Kompatibilität

+ +
{{CompatibilityTable}}
+ +
+ + + + + + + + + + + + + + + + + + + +
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Standard Support{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + +
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Standard Support{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/string/suchen/index.html b/files/de/web/javascript/reference/global_objects/string/suchen/index.html new file mode 100644 index 0000000000..5fb838010a --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/string/suchen/index.html @@ -0,0 +1,105 @@ +--- +title: String.prototype.search() +slug: Web/JavaScript/Reference/Global_Objects/String/suchen +tags: + - JavaScript + - Méthode + - Prototyp + - Referenz + - Regulärer Ausdruck + - Zeichenkette +translation_of: Web/JavaScript/Reference/Global_Objects/String/search +--- +
{{JSRef}}
+ +

Die search() methode führt eine Suche für eine Übereinstimmung von einem Regulären Ausdruck und diesem {{jsxref("String")}} Objekt.

+ +
{{EmbedInteractiveExample("pages/js/string-search.html")}}
+ + + +

Syntax

+ +
str.search(regexp)
+ +

Parameter

+ +
+
regexp
+
Ein Regulär-Ausdruck Objekt. Wenn ein nicht-RegExp Objekt obj eingereicht wird, wird es durch new RegExp(obj) zu {{jsxref("RegExp")}} konvertiert.
+
+ +

Rückgabewert

+ +

Die erste übereinstimmung zwischen dem Regulären Audruck und und der gegebenen Zeichenkette; wenn nicht gefunden, -1.

+ +

Beschreibung

+ +

Wenn du wissen willst ob ein Muster gefunden wurde, und was sein Index ist nutze search() (wenn du nur wissen willst ob es das gibt nutze die ähnliche {{jsxref("RegExp.prototype.test()", "test()")}} Methode auf dem RegExp Prototyp, der einen boolean zurückgibt); für mehr informationen (aber langsamererere Ausführung) nutze {{jsxref("String.prototype.match()", "match()")}} (ähnlich zum Ausdruck {{jsxref("RegExp.prototype.exec()", "exec()")}}).

+ +

Beispiele

+ + + +

Das folgende Beispiel durchsucht eine Zeichenkette mit 2 verschiedenen regex Objekten, um eine erfolgreiche, und unerfolgreiche Suche zu zeigen.

+ +
var str = "hey LukE";
+var re = /[A-Z]/g;
+var re2 = /[.]/g;
+console.log(str.search(re)); // gibt 4 zurück, was der Index des ersten Großbuchstaben "L" ist.
+console.log(str.search(re2)); // gibt -1 zurück kann "." nicht finden
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES3')}}{{Spec2('ES3')}}Initielle Definition. Eingeführt in JavaScript 1.2.
{{SpecName('ES5.1', '#sec-15.5.4.12', 'String.prototype.search')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-string.prototype.search', 'String.prototype.search')}}{{Spec2('ES6')}}
{{SpecName('ESDraft', '#sec-string.prototype.search', 'String.prototype.search')}}{{Spec2('ESDraft')}}
+ +

Browser Kompatibilität

+ + + +

{{Compat("javascript.builtins.String.search")}}

+ +

Gecko-spezifische Hinweise

+ + + +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/string/tolowercase/index.html b/files/de/web/javascript/reference/global_objects/string/tolowercase/index.html new file mode 100644 index 0000000000..f3eb4d9f68 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/string/tolowercase/index.html @@ -0,0 +1,79 @@ +--- +title: String.prototype.toLowerCase() +slug: Web/JavaScript/Reference/Global_Objects/String/toLowerCase +tags: + - JavaScript + - Method + - Prototype + - Referenz + - String +translation_of: Web/JavaScript/Reference/Global_Objects/String/toLowerCase +--- +
{{JSRef}}
+ +

Die toLowerCase() Methode gibt den Wert des aufrufenden Strings in Kleinbuchstaben umgewandelt zurück.

+ +

Syntax

+ +
str.toLowerCase()
+ +

Rückgabewert

+ +

Ein neuer String, der den alten String konvertiert zu Kleinbuchstaben enthält.

+ +

Beschreibung

+ +

Die toLowerCase() Methode gibt den Wert des Strings in Kleinbuchstaben umgewandelt zurück. toLowerCase() hat keine Auswirkungen auf den Wert des Strings str.

+ +

Beispiele

+ +

Benutzung von toLowerCase()

+ +
console.log('ALPHABET'.toLowerCase()); // 'alphabet'
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES1')}}{{Spec2('ES1')}}Initiale Definition. Implementiert in JavaScript 1.0.
{{SpecName('ES5.1', '#sec-15.5.4.16', 'String.prototype.toLowerCase')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-string.prototype.tolowercase', 'String.prototype.toLowerCase')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-string.prototype.tolowercase', 'String.prototype.toLowerCase')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.String.toLowerCase")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/string/touppercase/index.html b/files/de/web/javascript/reference/global_objects/string/touppercase/index.html new file mode 100644 index 0000000000..c221990e73 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/string/touppercase/index.html @@ -0,0 +1,127 @@ +--- +title: String.prototype.toUpperCase() +slug: Web/JavaScript/Reference/Global_Objects/String/toUpperCase +tags: + - JavaScript + - Method + - Prototype + - Reference + - String +translation_of: Web/JavaScript/Reference/Global_Objects/String/toUpperCase +--- +
+
{{JSRef}}
+ +

Die toUpperCase() Methode gibt den Wert des aufrufenden Strings in Großbuchstaben umgewandelt zurück.

+ +

Syntax

+ +
str.toUpperCase()
+ +

Rückgabewert

+ +

Ein neuer String, der den alten String konvertiert zu Großbuchstaben enthält.

+ +

Beschreibung

+ +

Die toUpperCase() Methode gibt den Wert des Strings in Großbuchstaben umgewandelt zurück. toUpperCase() hat keine Auswirkungen auf den Wert des Strings str.

+ +

Beispiele

+ +

Benutzung von toUpperCase()

+ +
console.log('alphabet'.toUpperCase()); // 'ALPHABET'
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES1')}}{{Spec2('ES1')}}Initiale Definition. Implementiert in JavaScript 1.0.
{{SpecName('ES5.1', '#sec-15.5.4.16', 'String.prototype.toUpperCase')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-string.prototype.touppercase', 'String.prototype.toUpperCase')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-string.prototype.touppercase', 'String.prototype.toUpperCase')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ +
{{CompatibilityTable}}
+ +
+ + + + + + + + + + + + + + + + + + + +
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + +
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
+
+ +

Siehe auch

+ + +
diff --git a/files/de/web/javascript/reference/global_objects/string/trim/index.html b/files/de/web/javascript/reference/global_objects/string/trim/index.html new file mode 100644 index 0000000000..59ada93228 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/string/trim/index.html @@ -0,0 +1,93 @@ +--- +title: String.prototype.trim() +slug: Web/JavaScript/Reference/Global_Objects/String/Trim +tags: + - ECMAScript 5 + - JavaScript + - Method + - Prototype + - Reference + - String +translation_of: Web/JavaScript/Reference/Global_Objects/String/Trim +--- +
{{JSRef}}
+ +

Die trim() Methode entfernt Leerzeichen an beiden Enden einer Zeichenfolge. Das betrifft Leerzeichen verschiedenster Art (space, tab, no-break space, etc.) und alle Zeilenumbruch einleitende Zeichen (LF, CR, etc.).

+ +

Syntax

+ +
str.trim()
+ +

Rückgabewert

+ +

Ein neuer String, der den gegebenen String ohne Whitespaces am Anfang und am Ende enthält.

+ +

Beschreibung

+ +

Die trim() Methode gibt eine Zeichenfolge ohne Leerzeichen an beiden Enden zurück. trim() beeinflusst oder verändert nicht den ursprünglichen Wert der Zeichenfolge.

+ +

Beispiele

+ +

trim() verwenden

+ +

Das folgende Beispiel zeigt die kleingeschriebene Zeichenfolge 'foo':

+ +
var orig = '   foo  ';
+console.log(orig.trim()); // 'foo'
+
+// Ein Beispiel bei dem .trim() Leerzeichen an einem Ende entfernt
+
+var orig = 'foo    ';
+console.log(orig.trim()); // 'foo'
+
+ +

Polyfill

+ +

Führe folgenden Code vor allem anderen aus um die Methode trim() zu erstellen sollte sie nativ nicht zur Verfügung stehen.

+ +
if (!String.prototype.trim) {
+  String.prototype.trim = function () {
+    return this.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, '');
+  };
+}
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES5.1', '#sec-15.5.4.20', 'String.prototype.trim')}}{{Spec2('ES5.1')}}Initiale Definition. Implementiert in JavaScript 1.8.1.
{{SpecName('ES6', '#sec-string.prototype.trim', 'String.prototype.trim')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-string.prototype.trim', 'String.prototype.trim')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.String.trim")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/string/trimleft/index.html b/files/de/web/javascript/reference/global_objects/string/trimleft/index.html new file mode 100644 index 0000000000..db5dbd55cb --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/string/trimleft/index.html @@ -0,0 +1,58 @@ +--- +title: String.prototype.trimLeft() +slug: Web/JavaScript/Reference/Global_Objects/String/TrimLeft +tags: + - JavaScript + - Method + - Prototype + - Reference + - String +translation_of: Web/JavaScript/Reference/Global_Objects/String/trimStart +--- +
{{JSRef}} {{non-standard_header}}
+ +

Die trimLeft() Methode entfernt Leerzeichen vom linken Ende der Zeichenkette.

+ +

Syntax

+ +
str.trimLeft()
+ +

Rückgabewert

+ +

Ein neuen String, der den alten String ohne Whitespaces auf der linken Seite beinhaltet.

+ +

Beschreibung

+ +

Die trimLeft() Methode gibt die Zeichenkette ohne Leerzeichen am linken Ende zurück. trimLeft() manipuliert nicht den Wert der Zeichenkette.

+ +

Beispiel

+ +

trimLeft() verwenden

+ +

Im folgenden Beispiel wird die Funktionalität dieser Methode dargestellt.

+ +
var str = '   foo  ';
+
+console.log(str.length);  // 8
+
+str = str.trimLeft();
+console.log(str.length);  // 5
+console.log(str);         // 'foo  '
+
+ +

Spezifikationen

+ +

Gehört keinem Standard an. Hinzugefügt in JavaScript 1.8.1.

+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.String.trimLeft")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/string/trimright/index.html b/files/de/web/javascript/reference/global_objects/string/trimright/index.html new file mode 100644 index 0000000000..b66e15f474 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/string/trimright/index.html @@ -0,0 +1,58 @@ +--- +title: String.prototype.trimRight() +slug: Web/JavaScript/Reference/Global_Objects/String/TrimRight +tags: + - JavaScript + - Method + - Prototype + - Reference + - String +translation_of: Web/JavaScript/Reference/Global_Objects/String/trimEnd +--- +
{{JSRef}} {{non-standard_header}}
+ +

Die trimRight() Methode entfernt Leerzeichen vom rechten Ende der Zeichenkette.

+ +

Syntax

+ +
str.trimRight()
+ +

Rückgabewert

+ +

Ein neuen String, der den alten String ohne Whitespaces auf der rechten Seite beinhaltet.

+ +

Beschreibung

+ +

Die trimRight() Methode gibt die Zeichenkette ohne Leerzeichen am rechten Ende zurück. trimRight() manipuliert nicht den Wert der Zeichenkette.

+ +

Beispiel

+ +

trimRight() verwenden

+ +

Im folgenden Beispiel wird die Funktionalität dieser Methode dargestellt.

+ +
var str = '   foo  ';
+
+console.log(str.length);  // 8
+
+str = str.trimRight();
+console.log(str.length);  // 6
+console.log(str);         // '   foo'
+
+ +

Spezifikationen

+ +

Gehört keinem Standard an. Hinzugefügt in JavaScript 1.8.1.

+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.String.trimRight")}}

+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/syntaxerror/index.html b/files/de/web/javascript/reference/global_objects/syntaxerror/index.html new file mode 100644 index 0000000000..4b4edda7c5 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/syntaxerror/index.html @@ -0,0 +1,133 @@ +--- +title: SyntaxError +slug: Web/JavaScript/Reference/Global_Objects/SyntaxError +tags: + - Error + - JavaScript + - Object + - Reference + - SyntaxError +translation_of: Web/JavaScript/Reference/Global_Objects/SyntaxError +--- +
{{JSRef}}
+ +

Das SyntaxError Objekt repräsentiert einen Fehler, der auftritt, wenn versucht wird syntaktisch falschen Quelltext zu interpretieren.

+ +

Beschreibung

+ +

Ein SyntaxError wird erzeugt, wenn die JavaScript-Umgebung Quelltextstücke  entdeckt, die nicht der Syntax der Sprachdefinition von JavaScript entspricht.

+ +

Syntax

+ +
new SyntaxError([message[, fileName[, lineNumber]]])
+ +

Parameter

+ +
+
message
+
Optional. Für Menschen lesbare Beschreibung des Fehlers.
+
fileName {{non-standard_inline}}
+
Optional. Der Name der Datei, in der der Fehler erzeugt wurde.
+
lineNumber {{non-standard_inline}}
+
Optional. Die Zeilennummer, in der der Fehler erzeugt wurde.
+
+ +

Eigenschaften

+ +
+
{{jsxref("SyntaxError.prototype")}}
+
Erlaubt es Eigenschaften zu allen SyntaxError Objekten hinzuzufügen.
+
+ +

Methoden

+ +

Das globale SyntaxError-Objekt enthält keine eigenen Methoden. Jedoch erbt das Objekt einige Methoden durch die Prototypenkette.

+ +

SyntaxError Instanzen

+ +

Eigenschaften

+ +
{{page('/de/docs/Web/JavaScript/Reference/Global_Objects/SyntaxError/prototype', 'Eigenschaften')}}
+ +

Methoden

+ +
{{page('/de/docs/Web/JavaScript/Reference/Global_Objects/SyntaxError/prototype', 'Methoden')}}
+ +

Beispiele

+ +

Auffangen eines SyntaxError

+ +
try {
+  eval('hoo bar');
+} catch (e) {
+  console.log(e instanceof SyntaxError); // true
+  console.log(e.message);                // "missing ; before statement"
+  console.log(e.name);                   // "SyntaxError"
+  console.log(e.fileName);               // "Scratchpad/1"
+  console.log(e.lineNumber);             // 1
+  console.log(e.columnNumber);           // 4
+  console.log(e.stack);                  // "@Scratchpad/1:2:3\n"
+}
+
+ +

Erzeugen eines SyntaxError

+ +
try {
+  throw new SyntaxError('Hello', 'someFile.js', 10);
+} catch (e) {
+  console.log(e instanceof SyntaxError); // true
+  console.log(e.message);                // "Hello"
+  console.log(e.name);                   // "SyntaxError"
+  console.log(e.fileName);               // "someFile.js"
+  console.log(e.lineNumber);             // 10
+  console.log(e.columnNumber);           // 0
+  console.log(e.stack);                  // "@Scratchpad/2:11:9\n"
+}
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES3')}}{{Spec2('ES3')}}Initiale Definition.
{{SpecName('ES5.1', '#sec-15.11.6.4', 'SyntaxError')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-native-error-types-used-in-this-standard-syntaxerror', 'SyntaxError')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-native-error-types-used-in-this-standard-syntaxerror', 'SyntaxError')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.SyntaxError")}}

+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/syntaxerror/prototype/index.html b/files/de/web/javascript/reference/global_objects/syntaxerror/prototype/index.html new file mode 100644 index 0000000000..10ae05f755 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/syntaxerror/prototype/index.html @@ -0,0 +1,88 @@ +--- +title: SyntaxError.prototype +slug: Web/JavaScript/Reference/Global_Objects/SyntaxError/prototype +tags: + - Error + - JavaScript + - Property + - Prototype + - SyntaxError +translation_of: Web/JavaScript/Reference/Global_Objects/SyntaxError +--- +
{{JSRef}}
+ +

Die SyntaxError.prototype Eigenschaft repräsentiert die Eigenschaft die Eigenschaft für den {{jsxref("SyntaxError")}} Konstruktor.

+ +

Beschreibung

+ +

Alle {{jsxref("SyntaxError")}} Instanzen erben von SyntaxError.prototype. Man kann den Prototypen einsetzen, um Eigenschaften oder Methoden für allen Instanzen hinzuzufügen.

+ +

Eigenschaften

+ +
+
SyntaxError.prototype.constructor
+
Spezifiziert die Funktion, die einen Instanz des Prototypen erstellt.
+
{{jsxref("Error.prototype.message", "SyntaxError.prototype.message")}}
+
Fehlermeldung. Obwohl ECMA-262 Spezifiziert, dass {{jsxref("SyntaxError")}} eine eigene message Eigenschaft haben sollte, erbt dieser in SpiderMonkey die Eigenschaft {{jsxref("Error.prototype.message")}}.
+
{{jsxref("Error.prototype.name", "SyntaxError.prototype.name")}}
+
Fehlername. Vererbt von {{jsxref("Error")}}.
+
{{jsxref("Error.prototype.fileName", "SyntaxError.prototype.fileName")}}
+
Pfad zur Datei, in der der Fehler erzeugt wurde. Vererbt von {{jsxref("Error")}}.
+
{{jsxref("Error.prototype.lineNumber", "SyntaxError.prototype.lineNumber")}}
+
Zeilennummer, in der der Fehler erzeugt wurde. Vererbt von {{jsxref("Error")}}.
+
{{jsxref("Error.prototype.columnNumber", "SyntaxError.prototype.columnNumber")}}
+
Spaltennummer, in der der Fehler erzeugt wurde. Vererbt von {{jsxref("Error")}}.
+
{{jsxref("Error.prototype.stack", "SyntaxError.prototype.stack")}} {{non-standard_inline}}
+
Stack trace. Vererbt von {{jsxref("Error")}}.
+
+ +

Methoden

+ +

Obwohl das {{jsxref("SyntaxError")}} Prototypobjekt keine Methoden enthält, haben {{jsxref("SyntaxError")}} Instanzen einige Vererbte Methoden durch die Prototypenkette.

+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES3')}}{{Spec2('ES3')}}Initiale Definition.
{{SpecName('ES5.1', '#sec-15.11.7.6', 'NativeError.prototype')}}{{Spec2('ES5.1')}}Definiert als NativeError.prototype.
{{SpecName('ES6', '#sec-nativeerror.prototype', 'NativeError.prototype')}}{{Spec2('ES6')}}Definiert als NativeError.prototype.
{{SpecName('ESDraft', '#sec-nativeerror.prototype', 'NativeError.prototype')}}{{Spec2('ESDraft')}}Definiert als NativeError.prototype.
+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.SyntaxError")}}

+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/typeerror/index.html b/files/de/web/javascript/reference/global_objects/typeerror/index.html new file mode 100644 index 0000000000..609c799d77 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/typeerror/index.html @@ -0,0 +1,133 @@ +--- +title: TypeError +slug: Web/JavaScript/Reference/Global_Objects/TypeError +tags: + - Error + - JavaScript + - Object + - Reference + - TypeError +translation_of: Web/JavaScript/Reference/Global_Objects/TypeError +--- +
{{JSRef}}
+ +

Das TypeError Objekt repräsentiert einen Fehler, wenn ein Wert nicht dem erwartetem Typ enspricht.

+ +

Syntax

+ +
new TypeError([message[, fileName[, lineNumber]]])
+ +

Parameter

+ +
+
message
+
Optional. Beschreibung des Fehlers
+
fileName {{non-standard_inline}}
+
Optional. Name der Datei, welches den Fehlerverursachenden Code beinhaltet
+
lineNumber {{non-standard_inline}}
+
Optional. Zeilennummer des Codes, welches den Fehler verursacht
+
+ +

Beschreibung

+ +

Ein TypeError wird generiert, wenn ein an eine Funktion mitgegebener Operand oder Argument, inkompatibel dem erwartetem Typ ist.

+ +

Eigenschaften

+ +
+
{{jsxref("TypeError.prototype")}}
+
Erlaubt das Hinzufügen von Eigenschaften an einem TypeError Objekt.
+
+ +

Methoden

+ +

Die Globale TypeError kennt keine eigene Methode, jedoch erbt diese einige Methoden durch die Prototype-Kette.

+ +

TypeError Instanzen

+ +

Eigenschaften

+ +
{{page('/de/docs/Web/JavaScript/Reference/Global_Objects/TypeError/prototype', 'Eigenschaften')}}
+ +

Methoden

+ +
{{page('/de/docs/Web/JavaScript/Reference/Global_Objects/TypeError/prototype', 'Methoden')}}
+ +

Beispiele

+ +

Abfangen eines TypeError

+ +
try {
+  null.f();
+} catch (e) {
+  console.log(e instanceof TypeError); // true
+  console.log(e.message);              // "null hat keine Eigenschaften"
+  console.log(e.name);                 // "TypeError"
+  console.log(e.fileName);             // "Scratchpad/1"
+  console.log(e.lineNumber);           // 2
+  console.log(e.columnNumber);         // 2
+  console.log(e.stack);                // "@Scratchpad/2:2:3\n"
+}
+
+ +

Erzeugen eines TypeError

+ +
try {
+  throw new TypeError('Hallo', "someFile.js", 10);
+} catch (e) {
+  console.log(e instanceof TypeError); // true
+  console.log(e.message);              // "Hallo"
+  console.log(e.name);                 // "TypeError"
+  console.log(e.fileName);             // "someFile.js"
+  console.log(e.lineNumber);           // 10
+  console.log(e.columnNumber);         // 0
+  console.log(e.stack);                // "@Scratchpad/2:2:9\n"
+}
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES3', '#sec-15.11.6.5', 'TypeError')}}{{Spec2('ES3')}}Initiale Definition
{{SpecName('ES5.1', '#sec-15.11.6.5', 'TypeError')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-native-error-types-used-in-this-standard-typeerror', 'TypeError')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-native-error-types-used-in-this-standard-typeerror', 'TypeError')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.TypeError")}}

+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/typeerror/prototype/index.html b/files/de/web/javascript/reference/global_objects/typeerror/prototype/index.html new file mode 100644 index 0000000000..d75e8efe4d --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/typeerror/prototype/index.html @@ -0,0 +1,88 @@ +--- +title: TypeError.prototype +slug: Web/JavaScript/Reference/Global_Objects/TypeError/prototype +tags: + - Error + - JavaScript + - Property + - Prototype + - TypeError +translation_of: Web/JavaScript/Reference/Global_Objects/TypeError +--- +
{{JSRef}}
+ +

Die TypeError.prototype Eigenschaft repräsentiert den prototype des {{jsxref("TypeError")}} Konstruktors.

+ +

Beschreibung

+ +

Alle {{jsxref("TypeError")}} Instanzen erben von TypeError.prototype. Dem prototype können über alle Instanzen hinweg Eigenschaften und Methoden hinzugefügt werden.

+ +

Eigenschaften

+ +
+
TypeError.prototype.constructor
+
Spezifiziert die Instanz erstellende Funktion.
+
{{jsxref("Error.prototype.message", "TypeError.prototype.message")}}
+
Fehlermeldung. ECMA-262 spezifiziert, dass {{jsxref("TypeError")}} eine eigene message Eigenschaft zur Verfügung stellen soll. In SpiderMonkey jedoch, erbt es von {{jsxref("Error.prototype.message")}}.
+
{{jsxref("Error.prototype.name", "TypeError.prototype.name")}}
+
Fehlerbezeichnung. Geerbt von {{jsxref("Error")}}.
+
{{jsxref("Error.prototype.fileName", "TypeError.prototype.fileName")}}
+
Pfad zur Datei, welche den Fehler verursachte. Geerbt von {{jsxref("Error")}}.
+
{{jsxref("Error.prototype.lineNumber", "TypeError.prototype.lineNumber")}}
+
Zeile in welcher der Fehler verusacht wurde. Geerbt von {{jsxref("Error")}}.
+
{{jsxref("Error.prototype.columnNumber", "TypeError.prototype.columnNumber")}}
+
Zeichennummer der Zeile in welcher der Fehler verursacht wurde. Geerbt von {{jsxref("Error")}}.
+
{{jsxref("Error.prototype.stack", "TypeError.prototype.stack")}}
+
Stack trace. Geerbt von {{jsxref("Error")}}.
+
+ +

Methoden

+ +

Das {{jsxref("TypeError")}} prototype Objekt beinhaltet keine eigenen Methoden, jedoch erben {{jsxref("TypeError")}} Instanzen einige Methoden durch die Prototypenkette.

+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES3', '#sec-15.11.7.6', 'NativeError.prototype')}}{{Spec2('ES3')}}Initiale Definition
{{SpecName('ES5.1', '#sec-15.11.7.6', 'NativeError.prototype')}}{{Spec2('ES5.1')}}Definiert als NativeError.prototype.
{{SpecName('ES6', '#sec-nativeerror.prototype', 'NativeError.prototype')}}{{Spec2('ES6')}}Definiert als NativeError.prototype.
{{SpecName('ESDraft', '#sec-nativeerror.prototype', 'NativeError.prototype')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.TypeError")}}

+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/undefined/index.html b/files/de/web/javascript/reference/global_objects/undefined/index.html new file mode 100644 index 0000000000..9c0dd8f5f7 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/undefined/index.html @@ -0,0 +1,135 @@ +--- +title: undefined +slug: Web/JavaScript/Reference/Global_Objects/undefined +tags: + - JavaScript +translation_of: Web/JavaScript/Reference/Global_Objects/undefined +--- +
{{jsSidebar("Objects")}}
+ +

Die globale Eigenschaft undefined repräsentiert den Wert {{Glossary("Undefined", "undefined")}} . Dieser Wert ist einer der {{Glossary("Primitive", "primitiven Typen")}} in JavaScript.

+ +

{{js_property_attributes(0,0,0)}}

+ +
{{EmbedInteractiveExample("pages/js/globalprops-undefined.html")}}
+ + + +

Syntax

+ +
undefined
+ +

Beschreibung

+ +

undefined ist eine Eigenschaft des globalen Objektes, was bedeutet, dass es eine Variable im globalen Gültigkeitsbereich ist. Der initiale Wert von undefined ist der primitive Wert {{Glossary("Undefined", "undefined")}}.

+ +

In modernen Browsern (JavaScript 1.8.5 / Firefox 4+) ist undefined  eine nicht konfigurierbare und nicht beschreibbare Eigenschaft. Dieses ist in der ECMAScript 5 Spezifikation definiert. Immer wenn das nicht der Fall ist, sollte das Überschreiben von undefined  unterlassen werden.

+ +

Eine Variable, die nicht mit einem Wert beschrieben wurde, ist vom Typ undefined. Methoden oder Anweisungen geben ebenfalls undefined zurück, wenn eine Variable, die ausgewertet wird, mit keinem Wert beschrieben ist. Eine Funktion hat undefined als Rückgabewert, wenn kein Wert {{jsxref("Statements/return", "zurückgegeben")}} wird.

+ +
+

Weil es möglich ist {{Glossary("Identifier", "Bezeichner")}} (Variablennamen) in jedem anderen Scope anders zu definieren, ist es auch möglich undefined neu zu defnieren (weil undefined kein {{jsxref("Reserved_Words", "reserviertes Schlüsselwort")}}) ist). Dieses einzusetzen ist jedoch keine gute Idee, weil der Quelltext dadurch schwer zu verstehen ist.

+ +
// NICHT NACHMACHEN
+
+// gibt "foo string" aus
+(function(){ var undefined = 'foo'; console.log(undefined, typeof undefined); })();
+
+// gibt "foo string" aus
+(function(undefined){ console.log(undefined, typeof undefined); })('foo');
+
+
+ +

Beispiele

+ +

Identität und undefined

+ +

Man kann undefined in Verbindung mit dem strikten Gleichheitsoperator nutzen, um den Wert von Variablen auf undefined zu prüfen. Im folgenden Beispiel ist die Variable x nicht definiert und die if-Anweisung wird zu true ausgewertet.

+ +
var x;
+if (x === undefined) {
+   // Diese Anweisung wird ausgeführt
+}
+else {
+   // Diese Anweisung wird nicht ausgeführt
+}
+
+ +
Hinweis: Der strikte Gleichheitsoperator muss statt dem Standard-Gleichheitsoperator benutzt werden, weil x == undefined auch prüft, ob x null ist, was bei strikter Gleichheit nicht so ist. null ist nicht äquivalent zu undefined Für Details siehe {{jsxref("Operators/Comparison_Operators", "Vergleichsoperatoren")}}
+ +

Typeof Operator und undefined

+ +

Alternativ kann {{jsxref("Operators/typeof", "typeof")}} eingesetzt werden:

+ +
var x;
+if (typeof x === 'undefined') {
+   // Diese Anweisung wird ausgeführt
+}
+
+ +

Ein Grund {{jsxref("Operators/typeof", "typeof")}} zu nutzen, ist, dass diese Variante keinen Fehler erzeugt, wenn eine Variable nicht definiert ist.

+ +
// x wurde nicht definiert
+if (typeof x === 'undefined') { // wird ohne Fehler zu true ausgewertet
+   // Diese Anweisung wird ausgeführt
+}
+
+if(x === undefined){ // erzeugt einen ReferenceError
+
+}
+
+ +

Diese Technik sollte so oft es geht vermieden werden. JavaScript ist eine Sprache mit statischen Gültigkeitsbereichen, was bedeutet, dass eine Variable immer in seinem geschlossenen Kontext gelesen werden kann, egal ob sie existiert oder nicht. Die einzige Ausnahme ist der globale Gültigkeitsbereich, jedoch ist dieser an das globale Objekt gebunden, weshalb die Existenz einer Variablen auf dem globalen Objekt geprüft werden kann. Dafür kann der {{jsxref("Operators/in", "in")}}-Operator genutzt werden.

+ +

Void Operator und undefined

+ +

Der {{jsxref("Operators/void", "void")}}-Operator ist die dritte Alternative.

+ +
var x;
+if (x === void 0) {
+   // Diese Anweisung wird ausgeführt
+}
+
+// y wurde nicht definiert
+if (y === void 0) {
+   // erzeugt einen ReferenceError (im gegensatz zu `typeof`)
+}
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES1', '#sec-4.3.9', 'undefined')}}{{Spec2('ES1')}}Initiale Definition. Implementiert in JavaScript 1.3
{{SpecName('ES5.1', '#sec-15.1.1.3', 'undefined')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-undefined', 'undefined')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-undefined', 'undefined')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.builtins.undefined")}}

diff --git a/files/de/web/javascript/reference/global_objects/unescape/index.html b/files/de/web/javascript/reference/global_objects/unescape/index.html new file mode 100644 index 0000000000..315c332a35 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/unescape/index.html @@ -0,0 +1,126 @@ +--- +title: unescape() +slug: Web/JavaScript/Reference/Global_Objects/unescape +tags: + - JavaScript +translation_of: Web/JavaScript/Reference/Global_Objects/unescape +--- +
+
+
{{jsSidebar("Objects")}} {{deprecated_header()}}
+
+
+ +

Zusammenfassung

+ +

Die veraltete unescape() Methode erstellt einen neuen String, in dem hexadezimal escapte Sequenzen mit den entsprechenden umgewandelten Zeichen ersetzt werden. Die escape Sequenz kann vorher durch eine Funktion wie {{jsxref("Global_Objects/escape", "escape")}} erzeugt werden. Da unescape veraltet ist, sollte {{jsxref("Global_Objects/decodeURI", "decodeURI")}} oder {{jsxref("Global_Objects/decodeURIComponent", "decodeURIComponent")}} verwendet werden.

+ +
HInweis: unescape sollte nicht verwendet werden um URIs zu decodieren, nutze stattdessen decodeURI.
+ +

Syntax

+ +
unescape(str)
+ +

Parameter

+ +
+
str
+
Ein String der decodiert werden soll.
+
+ +

Beschreibung

+ +

Die unescape Funktion ist eine Eigenschaft des global object.

+ +

Beispiele

+ +
unescape("abc123");     // "abc123"
+unescape("%E4%F6%FC");  // "äöü"
+unescape("%u0107");     // "ć"
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
ECMAScript 1st Edition.StandardInitiale Definition.
{{SpecName('ES5.1', '#sec-B.2.2', 'unescape')}}{{Spec2('ES5.1')}}Definiert im (informative) Compatibility Annex B
{{SpecName('ES6', '#sec-unescape-string', 'unescape')}}{{Spec2('ES6')}}Definiert im (normative) Annex B for Additional ECMAScript Features for Web Browsers
+ +

Browser Kompatibilität

+ +

{{ CompatibilityTable() }}

+ +
+ + + + + + + + + + + + + + + + + + + +
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support{{ CompatVersionUnknown() }}{{ CompatVersionUnknown() }}{{ CompatVersionUnknown() }}{{ CompatVersionUnknown() }}{{ CompatVersionUnknown() }}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + +
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{ CompatVersionUnknown() }}{{ CompatVersionUnknown() }}{{ CompatVersionUnknown() }}{{ CompatVersionUnknown() }}{{ CompatVersionUnknown() }}{{ CompatVersionUnknown() }}
+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/uneval/index.html b/files/de/web/javascript/reference/global_objects/uneval/index.html new file mode 100644 index 0000000000..b44eccc21a --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/uneval/index.html @@ -0,0 +1,109 @@ +--- +title: uneval() +slug: Web/JavaScript/Reference/Global_Objects/uneval +translation_of: Web/JavaScript/Reference/Global_Objects/uneval +--- +
{{jsSidebar("Objects")}}{{Non-standard_header}}
+ +

Die uneval() Funktion gibt den Quelltext eines Objekts als String zurück.

+ +

Syntax

+ +
uneval(object)
+ +

Parameter

+ +
+
object
+
Ein JavaScript Ausdruck oder eine Anweisung.
+
+ +

Rückgabewert

+ +

Eine String-Darstellung des Quelltexts des Objekts.

+ +
Notiz: Es wird keine gültige JSON Darstellung des Objekts zurückgegeben.
+ +

Beschreibung

+ +

uneval() ist eine Top-Level Funktion und somit mit keinem Objekt verbunden.

+ +

Beispiele

+ +
var a = 1;
+uneval(a); // gibt einen String zurück der 1 enthält
+
+var b = "1";
+uneval(b) // gibt einen String zurück der "1" enthält
+
+uneval(function foo(){}); // gibt "(function foo(){})" zurück
+
+var a = uneval(function foo(){return 'hi'});
+var foo = eval(a);
+foo(); // gibt "hi" zurück
+
+ +

Spezifikationen

+ +

Kein Bestandteil einer Spezifikation.

+ +

Browser Kompatibilität

+ +

{{CompatibilityTable}}

+ +
+ + + + + + + + + + + + + + + + + + + +
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support{{CompatNo}}{{CompatVersionUnknown}}{{CompatNo}}{{CompatNo}}{{CompatNo}}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + +
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatNo}}{{CompatNo}}{{CompatVersionUnknown}}{{CompatNo}}{{CompatNo}}{{CompatNo}}
+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/webassembly/compile/index.html b/files/de/web/javascript/reference/global_objects/webassembly/compile/index.html new file mode 100644 index 0000000000..a18c69da30 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/webassembly/compile/index.html @@ -0,0 +1,91 @@ +--- +title: WebAssembly.compile() +slug: Web/JavaScript/Reference/Global_Objects/WebAssembly/compile +tags: + - API + - JavaScript + - Method + - Object + - Reference + - WebAssembly + - compile +translation_of: Web/JavaScript/Reference/Global_Objects/WebAssembly/compile +--- +
{{JSRef}}
+ +

Die WebAssembly.compile() Funktion kompiliert ein {{jsxref("WebAssembly.Module")}} aus WebAssembly Binärcode. Hilfreich ist diese Funktion, um ein Modul zu kompilieren, bevor es instanziiert werden kann (Andernfalls sollte die {{jsxref("WebAssembly.instantiate()")}} Funktion verwendet werden).

+ +

Syntax

+ +
Promise<WebAssembly.Module> WebAssembly.compile(bufferSource);
+ +

Parameter

+ +
+
bufferSource
+
Ein typisiertes Array oder ArrayBuffer, das den Binärcode des zu kompilierenden .wasm Moduls enthält.
+
+ +

Rückgabewert

+ +

Ein Promise, das sich in ein {{jsxref("WebAssembly.Module")}} kompiliertes Objekt auflöst.

+ +

Fehlerbehandlung

+ + + +

Beispiele

+ +

Das folgende Beispiel kompiliert den geladenen simple.wasm Bytecode unter Verwendung der  compile() Funktion und sendet ihn an einen Web Worker mittels postMessage().

+ +
var worker = new Worker("wasm_worker.js");
+
+fetch('simple.wasm').then(response =>
+  response.arrayBuffer()
+).then(bytes =>
+  WebAssembly.compile(bytes)
+).then(mod =>
+  worker.postMessage(mod)
+);
+ +
+

Hinweis: Du wirst wahrscheinlich in den meisten Fällen {{jsxref("WebAssembly.compileStreaming()")}} verwenden wollen, da es effizienter als compile() arbeitet.

+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('WebAssembly JS', '#webassemblycompile', 'compile()')}}{{Spec2('WebAssembly JS')}}Initial draft definition.
+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.WebAssembly.compile")}}

+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/webassembly/compilestreaming/index.html b/files/de/web/javascript/reference/global_objects/webassembly/compilestreaming/index.html new file mode 100644 index 0000000000..13cbbdeef4 --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/webassembly/compilestreaming/index.html @@ -0,0 +1,87 @@ +--- +title: WebAssembly.compileStreaming() +slug: Web/JavaScript/Reference/Global_Objects/WebAssembly/compileStreaming +tags: + - API + - JavaScript + - Method + - Object + - Reference + - WebAssembly + - compile + - compileStreaming + - streaming +translation_of: Web/JavaScript/Reference/Global_Objects/WebAssembly/compileStreaming +--- +
{{JSRef}}
+ +

Die WebAssembly.compileStreaming() Funktion kompiliert ein {{jsxref("WebAssembly.Module")}} direkt aus einer zugrunde liegenden Quelle. Nützlich ist diese Funktion wenn ein Modul kompiliert werden muss, bevor es instanziiert werden kann. (ansonsten sollte die {{jsxref("WebAssembly.instantiateStreaming()")}} Funktion verwendet werden).

+ +

Syntax

+ +
Promise<WebAssembly.Module> WebAssembly.compileStreaming(source);
+ +

Parameter

+ +
+
source
+
Ein {{domxref("Response")}} Objekt oder ein Promise das sich zu einem solchen auflöst. Es stellt die zugrunde liegende Quelle eines .wasm Moduls dar, die gestreamt und kompiliert werden soll.
+
+ +

Rückgabewert

+ +

Ein Promise das sich in ein {{jsxref("WebAssembly.Module")}} Objekt auflöst, welche das kompilierte Modul darstellt.

+ +

Ausnahmen

+ + + +

Beispiele

+ +

Das folgende Beispiel (siehe unsere compile-streaming.html Demo auf GitHub, und siehe das live Beispiel) streamt ein .wasm Modul direkt aus der zugrunde liegenden Quelle und kompiliert es in ein {{jsxref("WebAssembly.Module")}} Objekt. Weil die compileStreaming()  Funktion ein Promise für ein {{domxref("Response")}} Objekt annimmt, kann ihr direkt ein  {{domxref("WindowOrWorkerGlobalScope.fetch()")}} Aufruf durchgereicht werden, woraufhin es die Antwort in diese Funktion abgibt, sobald das Promise sich erfüllt.

+ +
var importObject = { imports: { imported_func: arg => console.log(arg) } };
+
+WebAssembly.compileStreaming(fetch('simple.wasm'))
+.then(module => WebAssembly.instantiate(module, importObject))
+.then(instance => instance.exports.exported_func());
+ +

Das resultierende Modul wird dann mittels {{jsxref("WebAssembly.instantiate()")}} instanziiert und die bereitgestellte Funktion wird aufgerufen.

+ +

Spezifikationen

+ + + + + + + + + + + + + + + + +
SpezifikationenStatusKommentar
{{SpecName('WebAssembly Embedding', '#webassemblycompilestreaming', 'compileStreaming()')}}{{Spec2('WebAssembly Embedding')}}Initial draft definition.
+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.WebAssembly.compileStreaming")}}

+
+ +

Siehe auch

+ + diff --git a/files/de/web/javascript/reference/global_objects/webassembly/index.html b/files/de/web/javascript/reference/global_objects/webassembly/index.html new file mode 100644 index 0000000000..4681f473fd --- /dev/null +++ b/files/de/web/javascript/reference/global_objects/webassembly/index.html @@ -0,0 +1,111 @@ +--- +title: WebAssembly +slug: Web/JavaScript/Reference/Global_Objects/WebAssembly +tags: + - API + - JavaScript + - Objekt + - Referenz + - WebAssembly +translation_of: Web/JavaScript/Reference/Global_Objects/WebAssembly +--- +
{{JSRef}}
+ +

Das WebAssembly JavaScript Objekt existiert als Namensraum für alle WebAssembly-bezogenen Funktionalitäten.

+ +

Anders als die meisten anderen globalen Objekte, ist WebAssembly kein Konstruktor (es ist kein Funktionsobjekt). Es kann mit {{jsxref("Math")}} verglichen werden, welches ebenfalls einen Namensraum für mathematische Konstanten und Funktionen bildet. Oder mit {{jsxref("Intl")}}, welches den Namensraum für die Internationalisierunges API mit sprachabhängigen Funktionen bildet. 

+ +

Beschreibung

+ +

Die primäre Verwendung des WebAssembly Objekts sind:

+ + + +

Methoden

+ +
+
{{jsxref("WebAssembly.instantiate()")}}
+
Die primäre API für das Kompilieren und Instanziieren des WebAssembly Codes. Der Rückgabewert als Promise ergibt ein Module als auch die erste Instance.
+
{{jsxref("WebAssembly.instantiateStreaming()")}}
+
Kompiliert und instanziiert ein WebAssembly-Modul direkt aus einer Streamingquelle, mit dem Rückgabewert als Promise ergibt sich ein Module als auch die erste Instance.
+
{{jsxref("WebAssembly.compile()")}}
+
Kompiliert ein {{jsxref("WebAssembly.Module")}} aus dem WebAssembly Binärcode, wodurch die Instanziierung als separater Schritt durchgeführt werden kann.
+
{{jsxref("WebAssembly.compileStreaming()")}}
+
Kompiliert ein {{jsxref("WebAssembly.Module")}} direkt aus einer Streamingquelle, wodurch die Instanziierung als separater Schritt durchgeführt werden kann.
+
{{jsxref("WebAssembly.validate()")}}
+
Validiert das gegebene, typisierte Array eines WebAssembly Binärcodes. Gibt zurück, ob die Bytes validen WebAssembly Code darstellen (true) oder nicht (false).
+
+ +

Konstruktoren

+ +
+
{{jsxref("WebAssembly.Global()")}}
+
Erzeugt ein neues WebAssembly Global Objekt.
+
{{jsxref("WebAssembly.Module()")}}
+
Erzeugt ein neues WebAssembly Module Objekt.
+
{{jsxref("WebAssembly.Instance()")}}
+
Erzeugt ein neues WebAssembly Instance Objekt.
+
{{jsxref("WebAssembly.Memory()")}}
+
Erzeugt ein neues WebAssembly Memory Objekt.
+
{{jsxref("WebAssembly.Table()")}}
+
Erzeugt ein neues WebAssembly Table Objekt.
+
{{jsxref("WebAssembly.CompileError()")}}
+
Erzeugt ein neues WebAssembly CompileError Objekt.
+
{{jsxref("WebAssembly.LinkError()")}}
+
Erzeugt ein neues WebAssembly LinkError Objekt.
+
{{jsxref("WebAssembly.RuntimeError()")}}
+
Erzeugt ein neues WebAssembly RuntimeError Objekt.
+
+ +

Beispiele

+ +

Das folgende Beispiel (siehe instantiate-streaming.html Demo auf GitHub, siehe auch live) streamt ein .wasm Modul direkt aus einer zugrunde liegenden Quelle, um es dann zu kompilieren und zu instanziieren. Das Promise erfüllt sich mit einem ResultObject. Weil die instantiateStreaming() Funktion ein Promise für ein {{domxref("Response")}} akzeptiert, kann ihr ein {{domxref("WindowOrWorkerGlobalScope.fetch()")}} direkt übergeben werden, welches die Antwort an die Funktion weitergibt, sobald das Promise sich erfüllt.

+ +
var importObject = { imports: { imported_func: arg => console.log(arg) } };
+
+WebAssembly.instantiateStreaming(fetch('simple.wasm'), importObject)
+.then(obj => obj.instance.exports.exported_func());
+
+ +

Auf die ResultObject Instanz wird damit zugegriffen und die beinhaltete, exportierte Funktion aufgerufen.

+ +

Spezifikationen

+ + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('WebAssembly JS', '#the-webassembly-object', 'WebAssembly')}}{{Spec2('WebAssembly JS')}}Initial draft definition.
+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.builtins.WebAssembly")}}

+
+ +

Siehe auch

+ + + + -- cgit v1.2.3-54-g00ecf