String是基本数据类型,同时也是基本包装类型。从常规上讲基本类型不该该有方法,为了让咱们实现更直观的操做,在调用基本包装类型的方法时,后台会自动完成一系列的处理:
(1)建立String类型的一个实例
(2)在实例上调用指定的方法
(3)销毁这个实例javascript
var s1 = "abc"
s2 = s1.substring(2)
复制代码
至关于执行了如下代码:java
var s1 = new String('abc')
var s2 = s1.substring(2)
s1 = null
复制代码
主要的区别就是对象的生存期,使用 new 操做符建立的引用类型的实例,在执行流离开当前做用域以前都一直保存在内存中。而自动建立的基本包装类型的对象,只存在于一行代码的执行瞬间,而后被当即销毁,因此咱们不能在代码运行的时候给基本类型之添加属性和方法正则表达式
var str1 = '123';
console.log(typeof str1) //string
var str2 = new String('aaa')
console.log(typeof str2) //object
var str3 = new Object('111')
console.log(typeof str3) //object
console.log(str3 instanceof String) //true
console.log(str3 instanceof Object) //true
复制代码
var str="hello world";
str.charAt(1) //e 返回给定位置的字符
str.charcodeAt(1) //101 返回给定位置字符的字符编码
str[1] //e ie8+
cancat() //能够接受任意多个参数拼接成新的字符串,但不会改变原字符串
slice() //截取字符串,接受一或两个参数(开始位置和结束位置),接受负值时会将负值与字符串长度相加
substring() //截取字符串,接受一或两个参数(开始位置和结束位置,会将较小的参数做为起始位置),接受负值时会将负的参数转换为零
substr() //截取字符串,接受一或两个参数(开始位置和截取的字符个数),接受负值时会将第一个负的参数加上字符串长度,将第二个负的参数转换为0
indexOf() //可接受两个参数,要查找的子字符串和查找起点(可选),找到返回位置,找不到返回-1
lastIndexOf() //从数组的末尾开始查找
trim() //删除前置和后缀的空格 返回的是字符串的副本,原始字符串不变
toLowerCase() //转小写
toUpperCase() //转大写
toLocaleLowerCase() //转小写,针对地区的方法
toLocaleUpperCase() //转大写,针对地区的方法
match() //接收一个参数,正则表达式或者RegExp对象
search() //接受一个正则,返回字符串中第一个匹配项的索引,没有返回-1
replace() //替换字符串。接受两个参数,第一个是一个字符串或者RegExp对象,
//第二个参数是一个字符串或者函数。若是第一个参数是一个字符串,
//那么只会替换第一个子字符串,要想替换全部惟一的方法就是提供一个
//正则表达式,指定全局g标志
//replace()方法的第二个参数也能够是一个函数
function(match,...,pos,originalText){
match //模式的匹配项
... //正则表达式定义了多个捕获组的状况下,是第二,三...匹配项
pos //模式的匹配项在字符串中的位置
originalText //原始字符串
}
split() //分割字符串,并返回一个数组。第一个参数接受一个分隔符(能够是字符串或者RegExp对象),
//可选的第二个参数用于指定返回数组的大小
localeCompare() //比较两个字符串,若是字符串在字母表中应该排在字符串参数以前,返回一个负数。相等返回0,以后返回正数
String.fromCharcode() //构造函数自己的静态方法,接收一个或多个字符编码,转换成字符串,与charCodeAt相反
复制代码