String字符串
【包装类】
基本数据类型:number string boolean null undefined
引用数据类型:object
在JS中提供了三个包装类,通过这三个包装类可以将基本数据类型转换为对象:
- String(). 比如var str=new String(‘hello’);
- Number(). 比如var str=new Number(‘hello’);
- Boolean(). 比如var str=new Boolean(‘hello’);
但是注意,在实际应用中不会使用基本数据类型的对象,在做一些比较时可能会带来不可预期的结果。
包装类的主要应用在于:
- 由于方法和属性只能添加给对象,不能添加给基本数据类型;
- 因此当我们对一些基本数据类型去调用属性和方法时,浏览器会临时使用包装类将其转换为对象,然后再调用对象的属性和方法;
- 调用完成后,会再将其转换为基本数据类型
在JS底层,字符串是以字符数组的形式保存的。
- String的属性
以下为常用属性:
属性 | 含义 |
---|---|
constructor | 对创建该对象的函数的引用 |
length | 字符串的长度 |
prototype | 允许向原型对象添加属性和方法 |
- String的方法
以下介绍string常用的方法:
Note: String所有的方法都不会改变原数组对象。
方法 | 语法 | 作用 | 返回值 |
---|---|---|---|
charAt() | string.charAt(索引值); | 返回在指定位置的字符 | 字符串 |
fromCharCode() | string.fromCharCode(unicode编码); | 返回指定字符编码的字符 | 字符串 |
concat() | string.concat(字符串); | 拼接2个或多个字符串,类似+ | 字符串 |
indexOf() | string.indexOf(字符串); | 检索一个字符串中是否含有指定内容;可指定第二个参数指定开始查找的索引位置 | 第一次出现时的索引或-1(未找到) |
lastIndexOf() | string.lastIndexOf(字符串); | 与indexOf()类似,只是从后往前找 | 第一次出现时的索引或-1(未找到) |
search() | string.search(字符串); | 与indexOf()类似,不过它可以接收一个正则表达式作为参数,比如var b=a.search(/e | h/); |
slice() | string.slice(索引1,索引2); | 从字符串中截取指定的内容,负值代表从后开始计算 索引1(包括) 索引2(不包括) | 截取到的字符串 |
substring() | string.substring(索引1,索引2); | 与slice()类似 ,但不能接收负值,且索引2<索引1时会自动交换 | 截取到的字符串 |
split() | string.split(字符串或正则表达式); | 将一个字符串拆分为一个数组返回;需要一个字符串或正则表达式作为参数,会根据该字符串去拆分,参数会被删除;可以传递一个空串’’;正则表达式不指定全局匹配也会全部拆分 | 新的数组 |
toLowerCase() | string.toLowerCase(); | 将一个字符串转换为小写并返回 | 字符串 |
toUpperCase() | string.toUpperCase(); | 将一个字符串转换为大写并返回 | 字符串 |
match() | string.match(字符串或正则表达式); | 根据正则表达式,将符合条件的内容提取出来并返回;默认情况下只会返回第一个符合要求的内容;可以设置为全局匹配模式g返回全部符合的内容 | 将匹配到的内容封装到一个新的数组中并返回 |
replace() | string.replace(字符串或正则表达式,字符串2); | 将字符串汇总指定内容替换为新的内容(字符串2);默认情况下只会替换第一个符合要求的内容;可以设置为正则全局匹配模式g替换全部符合的内容 | 替换完成的字符串 |