字符串用于存储和处理文本。

一、字符串长度

可以使用length属性来计算字符串长度

var str = 'abcdefg'
console.log(str.length)//7

二、字符串中的特殊字符

可以使用单引号或者双引号来使用字符串,当字符串中出现特殊字符(斜杠、引号等)的时候,我们需要转义字符来进行转义。

var str = "we are the so called 'BigBang' "
//转义
var str = "we are the so called \'BigBang\' "

三、字符串可以是对象

var x= 'Bob'
var y= new String('Bob')
typeof x //String
typeof y //Object

四、字符串容易混淆的几个方法

1.slice()用于从字符串中截取字符串,不改变原字符串。该方法有两个参数,分别是表示截取的开始位置和结束位置,如果第二个参数不写,表示从开始位置截取到最后;如果有负数,则表示位置是从后向前数;如果开始位置大于结束位置,则返回一个空字符串。

具体实例如下:

"javascript".slice(0,4) //java     注意:截取的字符串不包括结束位置的字符
"javascript".slice(4)   //script   注意:第二个参数不写则表示截取到结束
"javascript".slice(-3)  //ipt      注意:参数是一个负值表示开始位置是从后向前数一直截取到结束
"javascript".slice(-6,-1)  //scrip 注意:参数是一个负值表示位置是从后向前数
"javascript".slice(0,-6)  //java   注意:开始位置是0表示第一个,结束位置是从后向前第6个
"javascript".slice(2,2)  //''      注意:第一个参数大于第二个参数返回一个空字符串

2.substr()用于截取字符串,第一个参数表示截取的开始位置,第二个参数表示要截取的长度。如果不写第二个参数,则表示从开始位置截取到结束;如果第一个参数是负数,表示从后向前开始数;如果第二个参数是负数,就会把它转为0,所以返回空字符串。

"javascript".slice(0,4) // java
"javascript".slice(0) // javascript
"javascript".slice(-3) // ipt
"javascript".slice(-5,2) // cr
"javascript".slice(-5,-2) // ''

3.substring()用于截取字符串,跟slice()方法类似,但是有一些奇怪的规则,因此不推荐使用,建议优先使用slice()方法。substring()方法的第一个参数是要截取的字符串的起始位置,第二个是结束位置。如果只有一个参数,则代表截取到结束位置;如果第一个参数大于第二个参数,则会自动交换这两个参数的位置;如果参数中有负值,则会把负数转为0。

"javascript".substring(0)  //javascript
"javascript".substring(0,4)  //java
"javascript".substring(5,1)  //avasc  注意:这会交换两个参数的位置,实际是"javascript".substring(1,5)
"javascript".substring(-3)  //javascript //会把负数转为0
"javascript".substring(4,-3)  //javascript //交换位置后,会把负数转为0 java

4.split()方法用于将字符串切割为数组,根据给定的规则进行切割。有两个参数,第一个是根据什么规则切割,第二个参数是要返回的数组的个数。

'a|b|c'.split('|')  //['a','b','c']
'a|b|c'.split('')   //['a','|','b','|','c'] 如果规则是空字符串,则返回字符串中的每一个字符
'a|b|c'.split()     //如果省略该参数,则返回的是原字符串 ['a|b|c']
'|b|c'.split('|')   //['','b','c']
'|b|c'.split('|') // ["", "b", "c"]
'a|b|'.split('|') // ["a", "b", ""]
'a|b|c'.split('|', 0) // []
'a|b|c'.split('|', 1) // ["a"]
'a|b|c'.split('|', 2) // ["a", "b"]
'a|b|c'.split('|', 3) // ["a", "b", "c"]
'a|b|c'.split('|', 4) // ["a", "b", "c"]

五、字符串的其他方法

1.charAt() 返回指定位置的字符,参数是从0开始的。

var s = 'abcdef'
s.charAt(1) //'b'
// 相当于
s[1]        // 'b'
s.charAt(-1)  // ''
s.charAt(6)  // ''
//如果参数是是负数或者大于字符串的最大长度,则返回空字符串。

2.charCodeAt方法返回给定位置字符的Unicode码点(十进制表示

3.concat()方法用于拼接字符串,该方法可以接受多个参数。

var s1 = 'abc';
var s2 = 'def';

s1.concat(s2) // "abcdef"
s1 // "abc"
'a'.concat('b', 'c') // "abc"

//面代码中,concat方法将参数先转成字符串再连接,所以返回的是一个三个字符的字符串。作为对比,加号运算符在两个运算数都是数值时,不会转换类型,所以返回的是一个两个字符的字符串。
var one = 1;
var two = 2;
var three = '3';

''.concat(one, two, three) // "123"
one + two + three // "33"

4.trim()方法用于去除字符串两端的空格,返回一个新字符串,不改变原数组。

比如:

" hello world ".trim()  // ""

5.toLowerCase()将字符串大写转为小写、toUpperCase()小写转为大写。

6.match()方法用于确定字符串是否匹配某个数组,如果匹配则返回第一个匹配的字符串,如果没有则返回null

'cat, bat, sat, fat'.match('at') // ["at"]

7.search()用于查找是否存在某个子串,如果有则返回匹配的第一个位置,如果没有则返回-1

'cat, bat, sat, fat'.match('at') // 1

8.replace()用于替换匹配的字符串

'aaa'.replace('a', 'b') // "baa"