String
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ód | Kimenet |
---|---|
\XXX |
oktális Latin-1 karakter. |
\' |
egyszeres idézőjel |
\" |
idézőjel |
\\ |
backslash |
\n |
új sor (soremelés) |
\r |
kocsi-vissza |
\v |
függőleges tabulátor |
\t |
tabulátor |
\b |
backspace |
\f |
lapdobás |
\uXXXX |
unicode kódpont |
\u{X} ... \u{XXXXXX} |
unicode kódpont |
\xXX |
hexadecimá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 hossz
(en-US) 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 indexOf()
(en-US) metódussal, illetve alfüzérek lekérdezése a substring()
(en-US) 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 charAt()
(en-US) 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 Object.defineProperty()
(en-US) 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 localeCompare()
(en-US) 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 Boolean
és Number
(en-US) 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 new
(en-US) 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 eval()
(en-US) 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 valueOf()
(en-US) metódussal.
console.log(eval(s2.valueOf())); // 4-et ad vissza
StringView
— a C-like representation of strings based on typed arrays cikket.Tulajdonságok
String.prototype
(en-US)- Tulajdonságok hozzáadását engedélyezi egy
String
objektumhoz.
Metódusok
String.fromCharCode()
(en-US)- Unicode értékek meghatározott sorozatával megadott sztringgel tér vissza.
String.fromCodePoint()
(en-US)- Kódpontok meghatározott sorozatával megadott sztringgel tér vissza.
String.raw()
(en-US)- 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.
A 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 (Generics) a tömb (Array
) metódusokra is elérhetők.
String
példányok
Tulajdonságok
Metódusok
HTML-hez nem kapcsolódó metódusok
HTML wrapper methods
Deprecated. Avoid these methods.
They are of limited use, as they provide only a subset of the available HTML tags and attributes.
String.prototype.anchor()
<a name="name">
(hypertext target)String.prototype.big()
<big>
String.prototype.blink()
<blink>
String.prototype.bold()
<b>
String.prototype.fixed()
<tt>
String.prototype.fontcolor()
<font color="color">
String.prototype.fontsize()
<font size="size">
String.prototype.italics()
<i>
String.prototype.link()
<a href="url">
(link to URL)String.prototype.small()
<small>
String.prototype.strike()
<strike>
String.prototype.sub()
<sub>
String.prototype.sup()
<sup>
Példák
String konverzió
A String
használható egy biztonságosabb toString()
(en-US) alternatívaként, mivel null
, undefined
, és 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átusz | Megjegyzés |
---|---|---|
ECMAScript (ECMA-262) The definition of 'String' in that specification. |
Living Standard | |
ECMAScript 2015 (6th Edition, ECMA-262) The definition of 'String' in that specification. |
Standard | |
ECMAScript 5.1 (ECMA-262) The definition of 'String' in that specification. |
Standard | |
ECMAScript 1st Edition (ECMA-262) | Standard | Kezdeti definíció. |
Böngésző kompatibilitás
BCD tables only load in the browser