JavaScript streng

JavaScript-streng bruges til at gemme og operere tekst.

JavaScript streng

JavaScript-streng er nul eller flere tegn inden for anførselstegn.

Eksempel

var x = \"Bill Gates\";

Prøv det selv

Du kan bruge enten enkelt- eller dobbeltanførselstegn:

Eksempel

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

Prøv det selv

Du kan bruge anførselstegn i en streng, så længe de ikke matcher omgivende anførselstegn:

Eksempel

var answer = \"It's good to see you again!\";
var answer = \"He is called 'Bill'\";
var answer = 'He is called \"Bill\"';

Prøv det selv

Strenglængde

Indbygget egenskab length Kan returnere strengensLængde:

Eksempel

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

Prøv det selv

Specialtegn

Da strengen skal være omgivet af anførselstegn, forstår JavaScript denne streng forkert:

var y = "Kina er højborgen for keramik, så china og"China (Kina)"med samme navn.";

Denne streng vil blive delt op i "Kina er højborgen for keramik, så china og".

Løsningen på dette problem er at bruge \ Escapetecken.

Den backslash-escapetecken konverterer specialtegn til strengtegn:

Kode Resultat Beskrivelse
\' ' Enkle anførselstegn
\" " Dobbelt anførselstegn
\\\ \ Backslash

Eksempel

sekvens \" Indsæt dobbelte anførselstegn i strengene:

Eksempel

var x = "Kina er hjemmet for keramik, så china er同名 med\"China(Kina)\".";

Prøv det selv

sekvens \' Indsæt anførselstegn i strengene:

Eksempel

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

Prøv det selv

sekvens \\\ Indsæt backslash i strengene:

Eksempel

var x = "Tegnet \"\\\" kaldes backslash.";

Prøv det selv

Escape-tegn (\) kan også bruges til at indsætte andre specialtegn i strengene.

Andre seks gyldige escape-sekvenser i JavaScript:

Kode Resultat
\b Backspace
\f Sidehopp
\n Nyt linjeskift
\r Retur
\t Horisontal tabulator
\v Vertikal tabulator

Disse seks escape-tegn blev oprindeligt designet til at kontrollere skrivemaskiner, telegrafruller og faxmaskiner. De har ingen betydning i HTML.

Lang kode linjeskift

For optimal læsbarhed undgår programmører ofte at have mere end 80 tegn på en linje.

Hvis en JavaScript-sætning ikke passer til en hel linje, er det bedste sted at bryde linjen efter en operator:

Eksempel

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

Prøv det selv

Du kan ogsåI strengeneLinjeskift, kun med en backslash:

Eksempel

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

Prøv det selv

\ Metoden er ikke en del af ECMAScript (JavaScript) standard.

Nogle browsere tillader det heller ikke \ Der er et mellemrum efter tegnet.

Den sikreste måde at bryde lange strengene på (men det kan være lidt langsomt) er ved at bruge stringaddition:

Eksempel

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

Prøv det selv

Du kan ikke bruge backslash til at bryde linjer i kode

Eksempel

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

Prøv det selv

Strengene kan også være objekter

Normalt er JavaScript-strengene primitivværdier, som oprettes ved brug af literals:

var firstName = "Bill"

Men strengene kan også defineres gennem nøgleord new Defineret som objekt:

var firstName = new String("Bill")

Eksempel

var x = "Bill";
var y = new String("Bill");
// typeof x vil returnere string
// typeof y vil returnere object

Prøv det selv

Opret ikke strenge som objekter. Det vil forsinke udførelsen.

new nøgleord kan gøre koden kompleks. Det kan også føre til uventede resultater:

når du bruger == ligningsoperatorer, er ens strengene ens:

Eksempel

var x = "Bill";             
var y = new String("Bill");
// (x == y) er true, fordi x og y har ens værdi

Prøv det selv

når du bruger === operatorer, er ens strengene ikke ens, fordi === Operatorer kræver, at både type og værdi er ens.

Eksempel

var x = "Bill";             
var y = new String("Bill");
// (x === y) er false, fordi x og y har forskellige typer (streng og objekt)

Prøv det selv

Selv værre. Objekter kan ikke sammenlignes:

Eksempel

var x = new String("Bill");             
var y = new String("Bill");
// (x == y) er false, fordi x og y er forskellige objekter

Prøv det selv

Eksempel

var x = new String("Bill");             
var y = new String("Bill");
// (x === y) er false, fordi x og y er forskellige objekter

Prøv det selv

Bemærk forskellen mellem (x==y) og (x===y).

JavaScript-objekter kan ikke sammenlignes, sammenligning af to JavaScript vil altid returnere false.