最新的Web开发教程
 

JavaScript字符串


JavaScript的字符串被用于存储和操作的文本。


JavaScript的字符串

一个JavaScript字符串只存储一个系列一样的人物"John Doe"

一个字符串可以是引号内的任何文本。 您可以使用单或双引号:

var carname = "Volvo XC60";
var carname = 'Volvo XC60';
试一试»

您可以使用引号的字符串里面,只要它们不匹配周围的字符串引号:

var answer = "It's alright";
var answer = "He is called 'Johnny'";
var answer = 'He is called "Johnny"';
试一试»

字符串长度

字符串的长度在内置在属性长度是发现:

var txt = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
var sln = txt.length;
试一试»

特殊字符

因为字符串必须引号内写的,JavaScript的会误解这个字符串:

var y = "We are the so-called "Vikings" from the north."

字符串将被切碎以"We are the so-called "

避免这个问题的解决方案,是使用\转义字符

反斜杠转义字符变成特殊字符转换成字符串中的字符:

var x = 'It\'s alright';
var y = "We are the so-called \"Vikings\" from the north."
试一试»

转义字符(\)也可以用来在一个串中插入其他特殊字符。

这是指可以加入的文本串与反斜线符号特殊字符列表:

输出
\' 单引号
\" 双引号
\\ 反斜线
\n 新队
\r 回车
\t 标签
\b 退格
\f

打破龙行代码

为了获得最佳的可读性,程序员往往喜欢以避免代码行数超过80个字符。

如果一个JavaScript语句不适合在一行,打破它是运营商后最好的地方:

document.getElementById("demo").innerHTML =
"Hello Dolly.";
试一试»

您也可以分手的文本字符串用一个反斜杠的代码行:

document.getElementById("demo").innerHTML = "Hello \
Dolly!";
试一试»

所述\方法不是ECMAScript (JavaScript)标准。
有些浏览器不允许在后面的空间\字符。

最安全的(但慢一点)的方式,打破了长字符串是用另外的字符串:

document.getElementById("demo").innerHTML = "Hello" +
"Dolly!";
试一试»

你不能打破一个反斜杠代码行:

document.getElementById("demo").innerHTML = \
"Hello Dolly!";
试一试»

字符串可以是对象

通常情况下,JavaScript的字符串是基本值,从字面创建: var firstName = "John"

但串也可以定义为与关键字新对象: var firstName = new String("John")

var x = "John";
var y = new String("John");

// typeof x will return string
// typeof y will return object
试一试»

不要创建字符串作为对象。 它会减慢执行速度。
new关键字代码复杂化。 这可能会产生一些意想不到的结果:

当使用==等于运算符,等于字符串看起来平等的:

var x = "John";             
var y = new String("John");

// (x == y) is true because x and y have equal values
试一试»

当使用===等于运算符,等于字符串不相等的,因为===运营商期望在这两个类型和值相等。

var x = "John";             
var y = new String("John");

// (x === y) is false because x and y have different types (string and object)
试一试»

或者更糟。 对象不能比拟的:

var x = new String("John");             
var y = new String("John");

// (x == y) is false because x and y are different objects
// (x == x) is true because both are the same object
试一试»

JavaScript对象所不能比拟的。

自测练习用!

练习1» 练习2» 练习3» 练习4»