JavaScript-strenge er til lagring og manipulation af tekst.
En JavaScript-streng er nul eller flere tegn skrevet inden for anførselstegn.
let text = "John Doe";Prøv det selv →
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Strings</h1>
<p id="demo"></p>
<script>
let text = "John Doe"; // String written inside quotes
document.getElementById("demo").innerHTML = text;
</script>
</body>
</html>
Du kan bruge enkelte eller dobbelte anførselstegn:
let carName1 = "Volvo XC60";
// Double quotes
let carName2 = 'Volvo XC60'; // Single quotes Prøv det selv →
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Strings</h1>
<p>Strings are written inside quotes. You can use single or double quotes:</p>
<p id="demo"></p>
<script>
let carName1 = "Volvo XC60"; // Double quotes
let carName2 = 'Volvo XC60'; // Single quotes
document.getElementById("demo").innerHTML =
carName1 + " " + carName2;
</script>
</body>
</html>
Du kan bruge anførselstegn inde i en streng, så længe de ikke matcher anførselstegnene omkring strengen:
let answer1 = "It's alright";
let answer2 = "He is called 'Johnny'";
let answer3 = 'He is called "Johnny"';Prøv det selv →
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Strings</h1>
<p>You can use quotes inside a string, as long as they don't match the quotes surrounding the string.</p>
<p id="demo"></p>
<script>
let answer1 = "It's alright";
let answer2 = "He is called 'Johnny'";
let answer3 = 'He is called "Johnny"';
document.getElementById("demo").innerHTML =
answer1 + "<br>" + answer2 + "<br>" + answer3;
</script>
</body>
</html>
For at finde længden af en streng skal du bruge den indbyggede længde egenskab:
let text = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
let length = text.length;Prøv det selv →
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Strings</h1>
<h2>The length Property</h2>
<p>The length of the string is:</p>
<p id="demo"></p>
<script>
let text = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
document.getElementById("demo").innerHTML = text.length;
</script>
</body>
</html>
Fordi strenge skal skrives inden for anførselstegn, vil JavaScript misforstå denne streng:
let text = "We are the so-called "Vikings" from the north.";Snoren vil blive hugget til "Vi er de såkaldte".
Løsningen til at undgå dette problem er at bruge escape-tegnet for backslash.
Omvendt skråstreg (\) escape-tegnet gør specialtegn til strengtegn:
| Code | Result | Description |
|---|---|---|
| \' | ' | Single quote |
| \" | " | Double quote |
| \\ | \ | Backslash |
Sekvensen \" indsætter et dobbelt anførselstegn i en streng:
let text = "We are the so-called \"Vikings\" from the north.";Prøv det selv →
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Strings</h1>
<p>The escape sequence \" inserts a double quote in a string.</p>
<p id="demo"></p>
<script>
let text = "We are the so-called \"Vikings\" from the north.";
document.getElementById("demo").innerHTML = text;
</script>
</body>
</html>
Sekvensen \' indsætter et enkelt anførselstegn i en streng:
let text= 'It\'s alright.';Prøv det selv →
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Strings</h1>
<p>The escape sequence \' inserts a single quote in a string.</p>
<p id="demo"></p>
<script>
let text = 'It\'s alright.';
document.getElementById("demo").innerHTML = text;
</script>
</body>
</html>
Sekvensen \\ indsætter en omvendt skråstreg i en streng:
let text = "The character \\ is called backslash.";Prøv det selv →
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Strings</h1>
<p>The escape sequence \\ inserts a backslash in a string.</p>
<p id="demo"></p>
<script>
let text = "The character \\ is called backslash.";
document.getElementById("demo").innerHTML = text;
</script>
</body>
</html>
Seks andre escape-sekvenser er gyldige i JavaScript:
Backspace
Form feed
Ny linje
Vognretur
Vandret tabulator
Lodret tabulator
De 6 escape-karakterer ovenfor blev oprindeligt designet til at kontrollere skrivemaskiner, fjernskrivere og faxmaskiner. De giver ingen mening i HTML.
For den bedste læsbarhed vil programmører ofte gerne undgå kodelinjer længere end 80 tegn.
Hvis en JavaScript-erklæring ikke passer på én linje, er det bedste sted at bryde det er efter en operatør:
document.getElementById("demo").innerHTML =
"Hello Dolly!";Prøv det selv →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Statements</h2>
<p>
The best place to break a code line is after an operator or a comma.
</p>
<p id="demo"></p>
<script>
document.getElementById("demo").innerHTML =
"Hello Dolly!";
</script>
</body>
</html>
Du kan også opdele en kodelinje inden for en tekststreng med en enkelt omvendt skråstreg:
document.getElementById("demo").innerHTML =
"Hello \
Dolly!";Prøv det selv →
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Strings</h1>
<p>
You can break a code line within a text string with a backslash.
</p>
<p id="demo"></p>
<script>
document.getElementById("demo").innerHTML = "Hello \
Dolly!";
</script>
</body>
</html>
Metoden \ er ikke den foretrukne metode. Det har muligvis ikke universel understøttelse.
Nogle browsere har Tillad ikke mellemrum bag tegnet \.
En mere sikker måde at bryde en streng op på er at bruge streng tilføjelse:
document.getElementById("demo").innerHTML = "Hello " +
"Dolly!";Prøv det selv →
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Strings</h1>
<p>The safest way to break a code line in a string is using string addition.</p>
<p id="demo"></p>
<script>
document.getElementById("demo").innerHTML = "Hello " +
"Dolly!";
</script>
</body>
</html>
Du kan ikke bryde en kodelinje op med en omvendt skråstreg:
document.getElementById("demo").innerHTML = \
"Hello Dolly!";Prøv det selv →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Statements</h2>
<p id="demo">You cannot break a code line with a \ backslash.</p>
<script>
document.getElementById("demo").innerHTML = \
"Hello Dolly.";
</script>
</body>
</html>
Normalt er JavaScript-strenge primitive værdier, skabt ud fra bogstaver:
let x = "John";Men strenge kan også defineres som objekter med søgeordet new:
let y = new String("John");let x = "John";
let y = new String("John");Prøv det selv →
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Strings</h1>
<p id="demo"></p>
<script>
// x is a string
let x = "John";
// y is an object
let y = new String("John");
document.getElementById("demo").innerHTML =
typeof x + "<br>" + typeof y;
</script>
</body>
</html>
Opret ikke Strings-objekter.
nye søgeordet komplicerer koden og sænker udførelseshastigheden.
Strengobjekter kan give uventede resultater:
Når du bruger == operatoren, er x og y lige:
let x = "John";
let y = new String("John");Prøv det selv →
<!DOCTYPE html>
<html>
<body>
<h2>Never Create Strings as Objects</h2>
<p>Strings and objects cannot be safely compared.</p>
<p id="demo"></p>
<script>
let x = "John"; // x is a string
let y = new String("John"); // y is an object
document.getElementById("demo").innerHTML = (x==y);
</script>
</body>
</html>
Når du bruger === operatoren, er x og y ikke ens:
let x = "John";
let y = new String("John");Prøv det selv →
<!DOCTYPE html>
<html>
<body>
<h2>Never Create Strings as Objects</h2>
<p>Strings and objects cannot be safely compared.</p>
<p id="demo"></p>
<script>
let x = "John"; // x is a string
let y = new String("John"); // y is an object
document.getElementById("demo").innerHTML = (x===y);
</script>
</body>
</html>
Bemærk forskellen mellem (x==y) og (x===y).
(x == y) sand eller falsk?
let x = new String("John");
let y = new String("John");Prøv det selv →
<!DOCTYPE html>
<html>
<body>
<h2>Never Create Strings as Objects</h2>
<p>JavaScript objects cannot be compared.</p>
<p id="demo"></p>
<script>
let x = new String("John"); // x is an object
let y = new String("John"); // y is an object
document.getElementById("demo").innerHTML = (x==y);
</script>
</body>
</html>
(x === y) sand eller falsk?
let x = new String("John");
let y = new String("John");Prøv det selv →
<!DOCTYPE html>
<html>
<body>
<h2>Never Create Strings as Objects</h2>
<p>JavaScript objects cannot be compared.</p>
<p id="demo"></p>
<script>
let x = new String("John"); // x is an object
let y = new String("John"); // y is an object
document.getElementById("demo").innerHTML = (x===y);
</script>
</body>
</html>
Sammenligning af to JavaScript-objekter returnerer altid falsk.
For en komplet strengreference, gå til vores:
Komplet JavaScript-strengreference.
Referencen indeholder beskrivelser og eksempler på alle strengegenskaber og metoder.