JavaScript streng
- Forrige side JS-hændelser
- Næste side JS-strengmetoder
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\";
Du kan bruge enten enkelt- eller dobbeltanførselstegn:
Eksempel
var carname = \"Porsche 911\"; var carname = 'Porsche 911';
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\"';
Strenglængde
Indbygget egenskab length
Kan returnere strengensLængde:
Eksempel
var txt = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; var sln = txt.length;
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)\".";
sekvens \'
Indsæt anførselstegn i strengene:
Eksempel
var x = 'It\'s good to see you again';
sekvens \\\
Indsæt backslash i strengene:
Eksempel
var x = "Tegnet \"\\\" kaldes backslash.";
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.";
Du kan ogsåI strengeneLinjeskift, kun med en backslash:
Eksempel
document.getElementById("demo").innerHTML = "Hello \ Kitty!";
\
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!";
Du kan ikke bruge backslash til at bryde linjer i kode
Eksempel
document.getElementById("demo").innerHTML = \ "Hello Kitty!";
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
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
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)
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
Eksempel
var x = new String("Bill"); var y = new String("Bill"); // (x === y) er false, fordi x og y er forskellige objekter
Bemærk forskellen mellem (x==y) og (x===y).
JavaScript-objekter kan ikke sammenlignes, sammenligning af to JavaScript vil altid returnere false
.
- Forrige side JS-hændelser
- Næste side JS-strengmetoder