数据类型-字符串 Srting

定义

字符串是由0个或者多个字符构成的,必须被包在双引号或者单引号里

以下两种声明均可
var s1 = 'string';
var s2 = "string";

注意:引号是成对出现的

规则

  • 引号使用

若字符串内有引号,则最好让外部的引号与字符串内的引号不同

var s = "I'm string";

若希望内部的引号与外部的引号相同,则需要在内部的引号前使用转义符\对这个字符进行转义(escaping)

var s = 'I\'m string';
  • 单行和多行

字符串只能写在一行内,如果分为多行,则会报错

var s = 'a
            b
            c'    //Uncaught SyntaxError: Invalid or unexpected token

连接运算符“+”可以连接多个单行字符串,将长字符串拆成多行书写,输出的时候也是单行

var s = 'Long'
         + 'long'
         + 'long'
         + 'string';
s    //Longlonglongstring

如果长字符串必须分成多行,可以在每一行的尾部使用反斜杠“\”

var s = 'Long \
            long \
            long \
            string';
s    //Long            long            long            string

注意:反斜杠""后必须是换行符,而不能有其他字符(比如空格),否则会报错

字符串与数组

  • 相似

字符串可以被视为字符数组,因此可以使用数组的方括号运算符[],用来返回某个位置的字符(位置编号从0开始)

var s = 'string';
st[0];    //s
s[2];    //r
s[5];    //g

如果方括号中的数字超过字符串的长度,或者方括号中根本不是数字,则返回undefined

var s = 'string';
s[6];    //undefined
s[-1];   //undefined
s['1'];  //undefined
  • 不同

    字符串中的单个字符利用数组方法无法修改
var s = 'string';
delete s[0];
s;    //string
s[1] = 'a';    
s;    //string 
s[5] = '!';
s;    //string
//上面代码中,字符串内部的单个字符无法改变和增删,这些操作会默默地失败

字符串无法直接使用数组的方法,必须通过call方法间接使用

var s = 'string';
s.join(' ');    //TypeError: s.join is not a function
Array.prototype.join.call(s,' ');    //"s t r i n g"
//上面代码中,如果直接对字符串使用数组的join方法,会报错不存在该方法
//但是可以通过call方法,间接对字符串使用join方法

字符串是只读的,那些会改变原数组的方法,比如push()、sort()、reverse()、splice()都对字符串无效,只有将字符串显式转为数组后才能使用

你可能感兴趣的:(数据类型-字符串 Srting)