JavaScript通过字符串类型累表示文本。

JavaScript字符串的索引从0开始:第一个字符的位置是0,第二个字符的位置是1,以此类推。

空字符串的长度为0,JavaScript中并没有表示单个字符的"字符型"。

在JavaScript程序中的字符串直接量,是由单引号或双引号括起来的字符序列。由单引号定界的字符串中可以包含双引号,由双引号定界的字符串中也可以包含单引号。:

""                       //空字符串,它包含0个字符
'testing'                //由单引号定界的字符串
"3.14"                   //由双引号定界的字符串
'name = "myform"'        //由单引号定界的字符串,包含双引号
"user = 'psw'"           //由双引号定界的字符串,包含单引号

在JavaScript 3中,字符串直接量必须写在一行中。

而在JavaScript 5中,字符串直接量可以拆分成数行,每行必须以反斜线(\)结束。

反斜线和行结束符都不算是字符串直接量的内容。

如果希望在字符串直接量中另起一行,可以使用转义字符\n:

"two\nlines"                       //这里定义了一个显示为两行的字符串
"one\                              //用三行代码定义了显示为一行的字符串,只在JavaScript 5中有用
 long\
 line"

需要注意的是,当使用单引号来定界字符串时,需要格外小心英文中的缩写和所有格写法,比如can't和O'Reilly's。因为撇号和单引号是同一个字符,所以必须使用反斜线(\)来转义所有的撇号

在JavaScript字符串中,反斜线(\)有着特殊的用途,反斜线符号后加一个字符,就不在表示他们的字面意思了,比如,\n就是一个转义字符,它表示的是一个换行符

另一个例子是刚才提到的转义字符\',表示单引号(或撇号)。当需要在一个单引号定界的字符串内使用撇号的时候,它就显得非常有用。

JavaScript中的转义字符以及它们所表示的含义:

\o                 //NUL字符
\b                 //退格符
\t                 //水平制表符
\n                 //换行符
\v                 //垂直制表符
\f                 //换页符
\r                 //回车符
\"                 //双引号
\'                 //撇号或单引号
\\                 //反斜线

JavaScript的内置功能之一就是字符串连接。

如果将加号(+)运算符用于数字,表示两数相加。

但将它作用域字符串,则表示字符串连接,将第二个字符串拼接在第一个字符串之后:

msg = "hello, " + "world";            //生成字符串"hello, world"

要确定一个字符串的长度—其所包含的16位值的个数—可以使用字符串的length属性:如s.length

除了length属性,字符串还提供许多的可以调用的方法:

var s = "hello, world"           //定义一个字符串
s.charAt(0)                      //=> "h": 第一个字符
s.charAt(s.length - 1)           //=> "d": 最后一个字符
s.substring(1,4)                 //=> "ell": 第2~4个字符
s.slice(1,4)                     //=> "ell": 同上
s.slice(-3)                      //=> "rld": 最后三个字符
s.indexOf("l")                   //=> 2: 字符l首次出现的位置
s.lastIndexOf("l")               //=> 10: 字符l最后一次出现的位置
s.indexOf("l",3)                 //=> 3: 在位置3及之后首次出现字符l的位置
s.split(", ")                    //=> ["hello", "world"] 分割成子串
s.replace("h", "H")              //=> "Hello, world": 全文字符替换
s.toUpperCase()                  //=> "HELLO, WORLD"

在JavaScript中字符串是固定不变的。

类似replace()和toUpperCase()的方法都返回新的字符串,原字符串本身并没有发生改变。

在JavaScript 5中,字符串可以当做只读数组,除了使用charAt()方法,也可以使用方括号来访问字符串中的单个字符:

s = "hello, world";
s[0]                   //=> "h"
s[s.length - 1]        //=> "d"
05-11 07:07