美文网首页
String与String对象

String与String对象

作者: 飘飘流浪者 | 来源:发表于2017-11-22 23:57 被阅读0次

    字符串就是零个或多个排在一起的字符,放在单引号或双引号之中。

    "abc"
    'abc'

    单引号字符串的内部,可以使用双引号。双引号字符串的内部,可以使用单引号。

    "It's a long journey"
    'key = "value"'

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

    var longString = "Long \
    long \
    long \
    string";
    

    加了反斜杠以后,原来写在一行的字符串,可以分成多行书写。但是输出的时候还是单行,效果与写在同一行完全一样。注意,反斜杠的后面必须是换行符,而不能有其他字符(比如空格),否则会报错。

    转义:

    如果要在单引号字符串的内部,使用单引号(或者在双引号字符串的内部,使用双引号),就必须在内部的单引号(或者双引号)前面加上反斜杠,用来转义。

    'Did she say \'Hello\'?'
    // "Did she say 'Hello'?"
    

    需要用反斜杠转义的特殊字符,主要有下面这些:

    \0 null(\u0000)
    \b 后退键(\u0008)
    \f 换页符(\u000C)
    \n 换行符(\u000A)
    \r 回车键(\u000D)
    \t 制表符(\u0009)
    \v 垂直制表符(\u000B)
    \' 单引号(\u0027)
    \" 双引号(\u0022)
    \ 反斜杠(\u005C)
    

    任何字符串的长度都可以通过访问其 length 属性获得,例如:

    var myStr = 'the quick brown fox jumps over the lazy dog';
    console.log(myStr.length)  //43
    

    转换为字符串:

    toString方法:
    数值、布尔值、对象和字符串值都有toString()方法。但null和undefined值没有这种方法。故在不知道要转型的值是不是null或undefined的情况下,可用转型函数String(),这个函数可以将任何类型的值转换为字符串。

    alert(10.toString()); //"10"
    alert(10.toString(2));  //"1010" //2进制
    alert(10.toString(8)); //"12"  //8进制
    String(null);  //"null"
    var a;
    String(a);  // "undefined"
    String(true)  //"true"
    

    String对象:

    三种基本构造函数之一,用String构造函数来创建。

    var stringObject = new String("hello world")
    typeof stringObject   //"object"
    

    1.charAt()用于访问字符串中特定字符的方法:

    var stringValue = "hello world"
    alert(stringValue.charAt(1));  //"e"
    

    此方法完全可以用数组下标替代。
    'abc'[1] // "b"

    2.String.fromCharCode()是一个静态方法。该方法的参数是一系列Unicode码点,返回对应的字符串。与之相对的是charCodeAt()方法,返回给定位置字符的Unicode码点。

    String.fromCharCode(104, 101, 108, 108, 111);  // "hello"
    'abc'.charCodeAt(1)   // 98
    

    3.concat()方法用于将一个或多个字符串拼接起来,返回一个新字符串。

    var myString = "hello";
    console.log(myString.concat(" world"))   //"hello world"
    console.log(myString.concat(" world","!"));   //"hello world!"
    

    4.slice(),substr(),substring()三个方法是基于子字符串创建新字符串的方法。slice()和substr()的第一个参数是子字符串的开始位置,第二个参数是子字符串的结束位置(不含该位置)。而substring()的第二个参数是反回的字符个数。

    var myString = "hello world";
    console.log(myString.slice(3));  //"lo world"
    console.log(myString.substring(3));  //"lo world"
    console.log(myString.sustr(3));  //"lo world"
    console.log(myString.slice(3,7));  //"lo w"
    console.log(myString.substring(3,7));  //"lo w"
    console.log(myString.substr(3,7));  //"lo worl"
    

    如果传递参数为负值时,三个方法的行为则不尽相同。slice()方法将两个负参数都与字符串的长度相加;substring()将两个负参数都转换为0;而substr()将第一个负参数与字符串长度相加,将第二个负参数转换为0。

    var myString = "hello world";
    console.log(myString.slice(-3));  //"rld"
    console.log(myString.substring(-3));  //"rld"
    console.log(myString.substr(-3));  //"hello world"
    console.log(myString.slice(3,-4));  //"lo w"
    console.log(myString.substring(3,-4));  //"hel"
    console.log(myString.substr(3,-4));  //""空字符串
    

    5.indexOf()与lastIndexOf()

    这两个方法用于确定一个字符串在另一个字符串中的位置,都返回一个整数,表示匹配开始的位置。如果返回-1,就表示不匹配。两者的区别在于,indexOf从字符串头部开始匹配,lastIndexOf从尾部开始匹配。它们还可以接受第二个参数,对于indexOf方法,第二个参数表示从该位置开始向后匹配;对于lastIndexOf,第二个参数表示从该位置起向前匹配。

    var myString = "hello world";
    console.log(myString.indexOf("o"));  //"4"
    console.log(myString.lastIndexOf("o"));  //"7"
    console.log(myString.indexOf("o",6));  //"7"
    console.log(myString.lastIndexOf("o",6));  //"4"
    

    6.trim()方法用于去除字符串两端的空格,返回一个新字符串,该方法去除的不仅是空格,还包括制表符(\t、\v)、换行符(\n)和回车符(\r)。

    '  hello world  '.trim()   // "hello world"
    '\r\nabc \t'.trim()   // 'abc'
    

    7.toLowerCase()方法用于将一个字符串全部转为小写,toUpperCase()则是全部转为大写。它们都返回一个新字符串,不改变原字符串。这个方法也可以将布尔值或数组转为大写字符串,但是需要通过call方法使用。

    var myString = "Hello World";
    console.log(myString.toLowerCase());  //"hello world"
    console.log(myString.toUpperCase());  //"HELLO WORLD"
    console.log(myString.toUpperCase.call(true));  //"TRUE"
    console.log(myString.toLowerCase.call(['A','B','c']));  //"a,b,c"
    

    8.split()方法按照指定规则分割字符串,返回一个由分割出来的子字符串组成的数组。

    split方法还可以接受第二个参数,限定返回数组的最大成员数。

    'a|b|c'.split('|')   // ["a", "b", "c"]
    'a|b|c'.split('|', 2) // ["a", "b"]
    

    相关文章

      网友评论

          本文标题:String与String对象

          本文链接:https://www.haomeiwen.com/subject/wdkgvxtx.html