From 1109132f09d75da9a28b649c7677bb6ce07c40c0 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:41:45 -0500 Subject: initial commit --- .../reference/global_objects/string/index.html | 307 +++++++++++++++++++++ 1 file changed, 307 insertions(+) create mode 100644 files/hu/web/javascript/reference/global_objects/string/index.html (limited to 'files/hu/web/javascript/reference/global_objects/string/index.html') diff --git a/files/hu/web/javascript/reference/global_objects/string/index.html b/files/hu/web/javascript/reference/global_objects/string/index.html new file mode 100644 index 0000000000..4f91f13008 --- /dev/null +++ b/files/hu/web/javascript/reference/global_objects/string/index.html @@ -0,0 +1,307 @@ +--- +title: String +slug: Web/JavaScript/Reference/Global_Objects/String +tags: + - húzáskérvény +translation_of: Web/JavaScript/Reference/Global_Objects/String +--- +
{{JSRef}}
+ +

A String konstruktorral létrehozhatunk karakterláncokat (szövegek szinte mindenhol jelenlévő reprezentációja)

+ +

Szintaxis

+ +

A sztringliterálok a következő formájúak:

+ +
'sztring szöveg'
+"sztring szöveg"
+"中文 español Deutsch English देवनागरी العربية português বাংলা русский 日本語 norsk bokmål ਪੰਜਾਬੀ 한국어 தமிழ் עברית"
+ +

Sztringeket létrehozhatunk a String globális objektummal közvetlenül:

+ +
String(valami)
+ +

Paraméterek

+ +
+
valami
+
Bármi, ami sztringgé alakítható.
+
+ +

Sablon literálok

+ +

Az ECMAScript 2015-tel kezdődően, a sztringliterálok ún. Template literal-ok is lehetnek:

+ +
`hello világ`
+`hello!
+ world!`
+`hello ${who}`
+tag `<a>${who}</a>`
+ +

Itt a ${who} helyére a megfelelő érték fog behelyettsítődni.

+ +

Escape jelölés

+ +

Egyes karakterek összezavarhatnák a JavaScript értelmezőt. Például egy " karakterről hogyan tufná megállapítani, hogy a karakterlánc végét jelöli, vagy annak része? Erre találták ki az escape jelölést, aminek segítségével jelölhetjük, hogy egy karakternek nincs speciális szerepe, nem kell programkódként értelmezni. Lényegében az történik, hogy a feldolgozott karakterláncban az escape karakter (például a \") helyére az annak megfelelő kimenet (") kerül.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
KódKimenet
\XXXoktális Latin-1 karakter.
\'egyszeres idézőjel
\"idézőjel
\\backslash
\núj sor (soremelés)
\rkocsi-vissza
\vfüggőleges tabulátor
\ttabulátor
\bbackspace
\flapdobás
\uXXXXunicode kódpont
\u{X} ... \u{XXXXXX}unicode kódpont {{experimental_inline}}
\xXXhexadecimális Latin-1 karakter
+ +
+

Más nyelvekkel ellentétben a JavaScript nem különbözteti meg az egyszeres, illetve a kettős idézőjelekkel hivatkozott sztringeket; ezért a fenti escape szekvenciák mind az egyszeres, mind a kettős idézőjelekkel létrehozott sztringek esetén működnek.

+
+ +

Hosszú sztring literálok

+ +

Időnként a kódban szerepelhetnek nagyon hosszú sztringek. Vég nélkül folytatódó, illetve a szerkesztőprogram kénye-kedve szerint megtört sorok helyett lehetséges a sztringek több sorba tördelése a tartalom meghagyásával. Erre két mód van.

+ +

Használhatjuk a + operátort több füzér összefűzéséhez, így:

+ +
let longString = "Ez egy elég hosszú String ahhoz " +
+                 "hogy több sorba rendezzem, mert " +
+                 "máskülönben a kód nem olvasható.";
+
+ +

Vagy használható a backslash karakter ("\") az összes sor végén, jelölve, hogy a sztring a következő sorban folytatódik. Győződjünk meg róla, hogy nincs szóköz vagy más karakter a backslash után (soremelés kivételével), akár bekezdésként, különben nem fog működni. Ennek formája a kövekező:

+ +
let longString = "This is a very long string which needs \
+to wrap across multiple lines because \
+otherwise my code is unreadable.";
+
+ +

Mindkét forma a példában azonos sztringek létrehozását eredményezi.

+ +

Leírás

+ +

A stringek szöveges formában ábrázolt adatok tárolására használhatók. A leggyakoribb sztringműveletek közé tartozik a {{jsxref("String.length", "hossz")}} vizsgálata, azok felépítése és összefűzése a + és += sztring operátorokkal, alfüzérek meglétének és helyének vizsgálata a {{jsxref("String.prototype.indexOf()", "indexOf()")}} metódussal, illetve alfüzérek lekérdezése a {{jsxref("String.prototype.substring()", "substring()")}} metódussal.

+ +

Karakter hozzáférés

+ +

Kétféle mód van egy sztringben az egyes karakterekhez vakó hozzáféréshez. Az egyik a {{jsxref("String.prototype.charAt()", "charAt()")}} metódus:

+ +
return 'macska'.charAt(1); // "a"-val tér vissza
+
+ +

A másik mód (bevezetve az ECMAScript 5-ben) tömbszerű objektumként kezeli a sztringet, ahol az egyes karaktereknem számindexek felelnek meg:

+ +
return 'macska'[1]; // "a"-val tér vissza
+
+ +

Törölni vagy megváltoztatni e tulajdonságokat karakter hozzáféréssel nem lehet a szögletes zárójeles jelölés esetén. A szóban forgó tulajdonságok nem írhatók és nem is konfigurálhatók. (Lásd a {{jsxref("Object.defineProperty()")}} cikket további információért.)

+ +

Sztringek összehasonlítása

+ +

C fejlesztőknek ismerős lehet a strcmp() függvény sztringek összehasonlításához. A JavaScript-ben a kisebb és nagyobb operátorok használhatók:

+ +
var a = 'a';
+var b = 'b';
+if (a < b) { // true
+  console.log(a + ' kisebb, mint ' + b);
+} else if (a > b) {
+  console.log(a + ' nagyobb, mint ' + b);
+} else {
+  console.log(a + ' és ' + b + ' egyenlők.');
+}
+
+ +

Hasonlót eredményez a {{jsxref("String.prototype.localeCompare()", "localeCompare()")}} metódus, amelyet a String példányok örökölnek.

+ +

Sztring primitívek és String objektumok megkülönböztetése

+ +

Jegyezzük meg, hogy a JavaScript különbséget tesz String objektumok és primitív sztring értékek között. (Ugyanez igaz {{jsxref("Boolean")}} és {{jsxref("Global_Objects/Number", "Number")}} objektumokra.)

+ +

Sztringliterálok (egyszeri vagy kettős idézőjellel jelölve) és a String hívásából visszatérő, nem konstruktor kontextusból (azaz, nem a {{jsxref("Operators/new", "new")}} kulcsszó használatával) kapott sztringek primitív sztringek. A JavaScript automatikusan String objektumokká alakítja a primitíveket, hogy eképpen a String objektum metódusai primitív sztringeken is használhatók legyenek. Amikor primitív sztringen hívódik metódus vagy tulajdonság lekérdezés, a JavaScript automatikusan String objektummá alakítja a sztringet és így hívja meg a metódust, illetve a lekérdezést.

+ +
var s_prim = 'foo';
+var s_obj = new String(s_prim);
+
+console.log(typeof s_prim); // Konzol kimenet: "string"
+console.log(typeof s_obj);  // Konzol kimenet: "object"
+
+ +

Sztring primitívek és String objektumok az {{jsxref("Global_Objects/eval", "eval()")}} használatakor is különböző eredményt adnak. Az eval számára átadott primitívek forráskódként vannak kezelve, míg a String objektumok, mint bármely más átadott objektum esetén, az objektum visszaadását eredményezik. Például:

+ +
var s1 = '2 + 2';             // létrehoz egy sztring primitívet
+var s2 = new String('2 + 2'); // létrehoz egy String objektumot
+console.log(eval(s1));        // a 4 számmal tér vissza
+console.log(eval(s2));        // a "2 + 2" sztringgel tér vissza
+
+ +

Ezen okok miatt a kód hibás működését okozhatja, amikor String a kód String objektumot kap, miközben primitív sztringet vár, bár általában nem szükséges a fejlesztőknek ezzel törődni.

+ +

Egy String objektum mindig átalakítható a primitív megfelelőjére a  {{jsxref("String.prototype.valueOf()", "valueOf()")}} metódussal.

+ +
console.log(eval(s2.valueOf())); // 4-et ad vissza
+
+ +
Megjegyzés: Egy másik JavaScript-ben lehetséges megközelítésére a sztringeknek, lásd a StringView — a C-like representation of strings based on typed arrays cikket.
+ +

Tulajdonságok

+ +
+
{{jsxref("String.prototype")}}
+
Tulajdonságok hozzáadását engedélyezi egy String objektumhoz.
+
+ +

Metódusok

+ +
+
{{jsxref("String.fromCharCode()")}}
+
Unicode értékek meghatározott sorozatával megadott sztringgel tér vissza.
+
{{jsxref("String.fromCodePoint()")}}
+
Kódpontok meghatározott sorozatával megadott sztringgel tér vissza.
+
{{jsxref("String.raw()")}} {{experimental_inline}}
+
Nyers sablon sztring szerint létrehozott sztringgel tér vissza.
+
+ +

String generikus metódusok

+ +
+

A String generikusok nem szabványosak, elavultak és a közeljövőben törlésre kerülnek.

+
+ +

String példánymetódusok a JavaScript 1.6 óta elérhetők Firefox-ban (nem része az ECMAScript szabványnak) a String objektumon bármely objektumon String metódusok alkalmazására:

+ +
var num = 15;
+console.log(String.replace(num, "5", "2"));
+
+ +

A String generikusokról való áttéréshez lásd a Warning: String.x is deprecated; use String.prototype.x instead cikket.

+ +

Tömbök generikusai ({{jsxref("Global_Objects/Array", "Generics", "#Array_generic_methods", 1)}}) a tömb ({{jsxref("Array")}}) metódusokra is elérhetők.

+ +

String példányok

+ +

Tulajdonságok

+ +
{{page('/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/prototype', 'Tulajdonságok')}}
+ +

Metódusok

+ +

HTML-hez nem kapcsolódó metódusok

+ +
{{page('/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/prototype', 'Methods_unrelated_to_HTML')}}
+ +

HTML wrapper methods

+ +
{{page('/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/prototype', 'HTML_wrapper_methods')}}
+ +

Példák

+ +

String konverzió

+ +

A String használható egy biztonságosabb {{jsxref("String.prototype.toString()", "toString()")}} alternatívaként, mivel {{jsxref("null")}}, {{jsxref("undefined")}}, és {{jsxref("Symbol", "symbol")}} objektumokra is használható. Például:

+ +
var outputStrings = [];
+for (var i = 0, n = inputValues.length; i < n; ++i) {
+  outputStrings.push(String(inputValues[i]));
+}
+
+ +

Specifikációk

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpecificációStátuszMegjegyzés
{{SpecName('ESDraft', '#sec-string-objects', 'String')}}{{Spec2('ESDraft')}}
{{SpecName('ES2015', '#sec-string-objects', 'String')}}{{Spec2('ES2015')}}
{{SpecName('ES5.1', '#sec-15.5', 'String')}}{{Spec2('ES5.1')}}
{{SpecName('ES1')}}{{Spec2('ES1')}}Kezdeti definíció.
+ +

Böngésző kompatibilitás

+ + + +

{{Compat("javascript.builtins.String",2)}}

+ +

Lásd még

+ + -- cgit v1.2.3-54-g00ecf