字符串用于存储和处理文本。
一、字符串长度
可以使用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"