前言
1.基本包装类型
为了方便操作基本数据类型,JavaScript 还提供了三个特殊的引用类型:String
、Number
和 Boolean
基本包装类型就是把简单数据类型包装成为复杂数据类型,这样基本数据类型就有了属性和方法
我们看看下面代码有什么问题?
< script>
var str = 'zhangsan'
console. log ( str. length) ;
</ script>
按道理基本数据类型是没有属性和方法的,而对象才有属性和方法,但上面代码却可以执行,这是因为 js 会把基本数据类型包装为复杂数据类型,其执行过程如下 :
< script>
var temp = new String ( 'zhangsan' ) ;
str = temp;
temp = null ;
</ script>
2.字符串的不可变
指的是里面的值不可变,虽然看上去可以改变内容,但其实是地址变了,内存中新开辟了一个内存空间。
< script>
var str = 'zhangsan'
str = 'zs'
var str = ''
for ( var i = 0 ; i < 1000 ; i++ ) {
str += i;
}
</ script>
3.根据字符返回位置
字符串所有的方法,都不会修改字符串本身(字符串是不可变的),操作完成会返回一个新的字符串
方法名 说明 indexOf
(‘要查找的字符’,开始的位置)返回指定内容在元字符串中的位置,如果找不到就返回-1,开始的位置是index索引号 lastIndexOf()
从后往前找,只找第一个匹配的
< script>
var str = "asdfghja"
console. log ( str. indexOf ( 'a' ) ) ;
console. log ( str. indexOf ( 'a' , 1 ) ) ;
console. log ( str. lastIndexOf ( 'a' ) ) ;
</ script>
4.根据位置返回字符
方法名 说明 使用 charAt(index)
返回指定位置的字符(index字符串的索引号) str.charAt(0) charCodeAt(index)
获取指定位置处字符的ASCII码(index索引号) str.charCodeAt(0) str[index]
获取指定位置处字符 HTML,IE8+支持和charAt()等效
< script>
var str = "asdfghja"
console. log ( str. charAt ( 1 ) ) ;
console. log ( str. charCodeAt ( 1 ) ) ;
console. log ( str[ 1 ] ) ;
</ script>
5.字符串操作方法
方法名 说明 concat(str1,str2,str3…)
concat()
方法用于连接两个或对各字符串。拼接字符串substr(start,length)
从 start 位置开始(索引号), length 取的个数 slice(start,end)
从 start 位置开始,截取到 end 位置 ,end 取不到 (两个都是索引号) substring(start,end)
从 start 位置开始,截取到 end 位置 ,end 取不到 (基本和 slice 相同,但是不接受负)
< script>
var str1 = "abcabc"
var str2 = "asdasd"
var str3 = str1. concat ( str2)
console. log ( str3) ;
var str4 = str1. substr ( 0 , 3 )
console. log ( str4) ;
var str5 = str1. slice ( 0 , 3 )
console. log ( str5) ;
</ script>
6.replace()
replace()
方法用于在字符串中用一些字符替换另一些字符
< script>
var str = "abcdefgaa"
console. log ( str) ;
var strNew = str. replace ( 'a' , 'x' )
console. log ( strNew) ;
while ( str. indexOf ( 'a' ) != - 1 ) {
str = str. replace ( 'a' , 'x' )
}
console. log ( str) ;
</ script>
7.split()
split()
方法用于切分字符串,它可以将字符串切分为数组。在切分完毕之后,返回的是一个新数组
< script>
var str1 = "abcd"
console. log ( str1. split ( '' ) )
var str2 = "a.b.c.d"
console. log ( str2. split ( '.' ) )
</ script>