JavaScript strängar

JavaScript-strängar används för att lagra och manipulera text.

JavaScript strängar

JavaScript-strängar är en eller flera tecken inom citationstecken.

Exempel

var x = "Bill Gates";

Prova själv

Du kan använda antingen enkla eller dubbla citationstecken:

Exempel

var carname = "Porsche 911";
var carname = 'Porsche 911';

Prova själv

Du kan använda citationstecken i strängar, så länge de inte matchar citationstecknen som omger strängen:

Exempel

var answer = "Det är trevligt att träffa dig igen!";
var answer = "Han kallas 'Bill'";
var answer = 'Han kallas "Bill"';

Prova själv

stränglängd

inbyggda egenskapen length kan returnera strängenslängd:

Exempel

var txt = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
var sln = txt.length;

Prova själv

Specialtecken

Eftersom strängen måste omges av citationstecken kommer JavaScript att missförstå denna sträng:

var y = "Kina är hemlandet för keramik, så china och"China (Kina)"har samma namn.";

Denna sträng kommer att delas upp i "Kina är hemlandet för keramik, så china och".

En lösning för att undvika detta problem är att använda \ escape-karakter.

Backslash-escapekaraktern konverterar specialtecken till strängkaraktärer:

Kod Resultat beskrivning
\' ' enkle citattecken
\" " Dubbel citationstecken
\\ \ Backsteg

Exempel

sekvens \" Infoga dubbel citationstecken i strängen:

Exempel

var x = "Kina är hemlandet för keramik, därför är china och\"China (Kina)\"同名."

Prova själv

sekvens \' Infoga enkel citationstecken i strängen:

Exempel

var x = 'It\'s good to see you again';

Prova själv

sekvens \\ Infoga backsteg i strängen:

Exempel

var x = "Tecknet \\ kallas backsteg.";

Prova själv

Escape-tecken (\) kan också användas för att infoga andra specialtecken i strängen.

Andra sex escape-sekvenser som är giltiga i JavaScript:

Kod Resultat
\b Backsteg
\f Sidbrytning
\n Ny rad
\r Retur
\t Horisontellt tab-tecken
\v Vertikalt tab-tecken

Dessa sex escape-tecken var ursprungligen designade för att styra skrivmaskiner, telegraftangentbord och faxmaskiner. De har ingen mening i HTML.

Lång kodrad brytning

För bästa läsbarhet undviker programmare vanligtvis att ha mer än 80 tecken per rad.

om en JavaScript-sats inte passar på en hel rad, är det bästa brytningspunkten efter en operator:

Exempel

document.getElementById("demo").innerHTML =
"Hello Kitty.";

Prova själv

Du kan ocksåi strängenbryt raden, genom att använda ett backsteg:

Exempel

document.getElementById("demo").innerHTML = "Hello \
Kitty!";

Prova själv

\ metoden är inte en del av ECMAScript (JavaScript) standard.

Vissa webbläsare tillåter inte heller \ utrymme efter tecknet.

Det säkraste sättet att bryta raden för långa strängar är att använda stringaddition (men det kan vara långsamt):

Exempel

document.getElementById("demo").innerHTML = "Hello" + 
"Kitty!";

Prova själv

Du kan inte bryta raden med backsteg i koden:

Exempel

document.getElementById("demo").innerHTML = \ 
"Hello Kitty!";

Prova själv

Strängar kan vara objekt

Normalt sett är JavaScript-strängar ursprungliga värden, skapade genom litterala sätt:

var firstName = "Bill"

Men strängar kan också definieras via nyckelord new Definieras som objekt:

var firstName = new String("Bill")

Exempel

var x = "Bill";
var y = new String("Bill");
// typeof x kommer att returnera string
// typeof y kommer att returnera object

Prova själv

Vänligen skapa inte strängar som objekt. Det kommer att fördröja exekveringen.

new Nyckelord kan komplicera koden. Det kan också orsaka några oväntade resultat:

När du använder == När du använder lika operatorn är det ofta lika strängar som är lika:

Exempel

var x = "Bill";             
var y = new String("Bill");
// (x == y) är true eftersom x och y har samma värde

Prova själv

När du använder === Operatören när, är det ofta olik strängar som inte är lika: === Operatören behöver både typ och värde för att vara lika.

Exempel

var x = "Bill";             
var y = new String("Bill");
// (x === y) är false eftersom x och y har olika typ (sträng och objekt)

Prova själv

Även värre. Objekt kan inte jämföras:

Exempel

var x = new String("Bill");             
var y = new String("Bill");
// (x == y) är false eftersom x och y är olika objekt

Prova själv

Exempel

var x = new String("Bill");             
var y = new String("Bill");
// (x === y) är false eftersom x och y är olika objekt

Prova själv

Observera skillnaden mellan (x==y) och (x===y).

JavaScript-objekt kan inte jämföras, jämförelse av två JavaScript kommer alltid att returnera false.