String类型知识点总结

来源:互联网 发布:mlb帽子淘宝正品店铺 编辑:程序博客网 时间:2024/05/13 10:13

一.基本包装类型

我们都知道js中的字符串是一种基本类型值,从逻辑上讲,基本类型值不是对象,不应当有属性和方法,但是在日常应用中,我们仍然可以方便的调用字符串的各种属性和方法,这是为什么呢?

其实,为了便于我们操作基本类型值,ECMAScript还提供了三个特殊的引用类型:String Boolean,Number,这三个特殊的引用类型与其他引用类型相似,但也有自己的特殊之处。我们来看下面这个例子:

var s1="hello";s1.slice(0);//"hello"var s2=new String("hello");typeof(s1);// stringtypeof(s2);//object

实际上,当我们调用一些方法时,基本类型值就在后台被临时转换为一个对象并且表现的犹如一个对象。从而让我们能够调用一些方法来操作这些数据。比如上例中,我们在第二行访问s1时,后台就会自动完成以下处理。

  1. 创建String类型的一个实例;var s1 = new String()
  2. 在实例上调用指定的方法;var s2 = s1.slice(0)
  3. 销毁这个实例;s1=null

这也是基本包装类型和引用类型最大的区别:对象的生存期。基本包装类型对象的生存期只存在于一行代码的执行瞬间。

当然,我们也可以显示的调用基本包装类型创建对象,就像上例中的s2,但我们不建议这么做,因为这样会让人们分不清自己是在操作基本类型值还是引用类型值。

2.String类型

1.字符字面量

String数据类型包含一些特殊的字符字面量,也叫转义序列,用来表示一些特殊用途的字符。

比如:\n换行 \t 制表 \r回车

2.字符串的特点

字符串是不可变的,也就是说,字符串一旦创建,他们的值就不能改变,要改变某个变量的保存的字符串,首先要销毁原来的字符串,然后在用另一个包含新值的字符串填充该变量。

3.转换为字符串

要把一个值转换为一个字符串,有两种方法。

第一种是使用toString()方法,我们都知道,这个方法是Object对象的原型中的方法,所以,除了null和undefined,所有的值都有这个方法。
多数情况下,调用这个方法不用传递参数,但是,在调用数值的toString()方法时,可以传递一个参数:输出数值的基数。通过传递基数,可以输出二进制,十六进制的等任意有效进制格式的字符串值。

第二种是调用转型函数String(),这个函数可以将任意类型的值转换为字符串,包括null和undefined。

3.String类型常用方法

需要提前提醒的是:所有字符串的值都是不可变的,所有字符串方法都不会改变原字符串的值。

1.字符方法——charAt()和charCodeAt()

用途:用于访问字符串中特定字符
参数:基于0的字符位置。
返回值:特定位置的字符或字符编码。

2.字符串拼接——concat()

用途:用于将一个或多个字符串拼接起来。

参数:任意多个要拼接的字符串。

返回值:拼接后的新字符串。

注意:因为使用“+”也能实现字符串的拼接,而且更为方便,所以我们一般不使用concat()拼接字符串。

3.基于子字符串创建新字符串——slice(),substr(),substring()

用途:获取被操作字符串的子字符串。

参数:一个或两个。第一个参数指定子字符串的开始位置,第二个参数表示子字符串在那里结束。如果未指定第二个参数,则将字符串长度作为结束位置。在substr()中,第二个参数表示返回的字符个数。

返回值:新的子字符串。

注意:当传入的参数为负数时:
slice():会将两个负数都与字符串的长度相加。
substr();会将第一个负数与长度相加,第二个负数换成0.
substring();会将所有负数都换成0

4.字符串位置方法——index()和lastIndexOf()

用途:返回给定字符串位置

参数:一个或两个。第一个参数为待查找子字符串(必选),第二个为开始查找位置(可选)。

返回值:位置下标。如果没找到,则返回-1.

5.trim()方法——删除前置及后缀的所以空格。

6.分割字符串——splite

用途:用于把一个字符串分割成字符串数组。

参数:一个或两个。第一个:字符串或正则表达式,从该参数指定的地方分割 (必须),第二个:可选。该参数可指定返回的数组的最大长度。如果设置了该参数,返回的子串不会多于这个参数指定的数组。如果没有设置该参数,整个字符串都会被分割,不考虑它的长度。

返回值:字符串数组

7.字符串的模式匹配方法——match(),search(),replace(),split()

match()——找到一个或多个正则表达式的匹配。返回值:存放匹配结果的数组。该数组的内容依赖于 regexp 是否具有全局标志 g。
search——用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串。返回值第一个与 regexp 相匹配的子串的起始位置。如果没有找到任何匹配的子串,则返回 -1。
replace()——用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。返回值一个新的字符串,是用 replacement 替换了 regexp 的第一次匹配或所有匹配之后得到的。

0 0