String

基本包装类型

装箱操作: 把基本数据类型转换为对应的引用类型的操作

拆箱操作: 把引用类型转换为基本数据类型的操作,主要是valueOf()方法和toString()方法

有三种包装类型:

String,字符串转为String对象

Number,数值转为Number类型

Boolean,转为Boolean类型

在了解字符串方法之前,知道基本包装类型

var str="andy";
console.log(str.length);//4


// new  构造函数,创建一个对象 
 var num =new Number(3); // Object
 var str =new String('sdsd'); //Object
 var boo =new Boolean(false);// Object
 
 // 拆箱
var a = 10;
var o_a = new Number(a);
var b = o_a.valueOf();//这就是拆箱的过程。10
复制代码

复杂数据类型才有属性方法

但是这个简单数据类型为什么有length属性?

基本包装类型:就是把简单(基本)数据类型 包装成为 复杂(引用)数据类型
基本数据类型就有了属性和方法
上部分的代码,在后台有以下步骤

  1. 把简单数据类型 包装成为 复杂数据类型

var temp=new String("andy")

  1. 把变量temp赋值给str

str=temp

  1. 销毁临时变量

temp=null

在实际应用中,不会使用基本数据类型的对象,如果使用的话,在做一些比较的时候会带来不可预料的结果

字符串的不可变性

var str="andy"
str="red"
console.log(str);//red
复制代码

虽然str中的值改变了,但其实是在内存中新开辟了一块空间,将str指向了新开辟的空间,占据了内存中的资源,导致运行变慢

因为字符的不可变性,所以不要大量的拼接字符串

字符串对象方法

因为字符串的不可变性,所有的方法操作完成都会返回一个新的字符串

根据字符返回位置

  1. indexOf('要查找的字符',[起始的位置]) 找不到返回-1
var str='改革春风吹满地,春天来了';
str.indexOf('春');// 2
str.indexOf('春',3);// 从索引号是3 的位置开始 往后查找

// 当有多个相同参数时,只找第一个
复制代码

2 .lastindexOf() 从最后的位置开始查找,找不到返回-1

根据位置返回字符

  1. charAt(index)
// 返回指定位置的字符(index为字符串的索引)
var str='andy';
str.charAt(3);// y

//遍历所有的字符
for(var i=0;i<str.length;i++){
       console.log(str.charAt(i));// a n  d y 
}
复制代码
  1. charCodeAt(index)
// 获取指定位置的字符ASCII码值(index为字符串的索引)
// 目的:判断用户按下了哪个键
var str='andy';
charCodeAt(0);// 97
复制代码
  1. str[index]
// 获取指定位置的字符
// h5新增 有兼容问题
var str='andy';
str[0];// a

复制代码

字符串拼接

concat(字符串1,字符串2....)

等效于+ ,+更加常用

var str='andy';
str.concat('aaa'); // andyaaa
// 拼接一个或多个字符串
复制代码

字符串截取

  1. substr(start,length)
var str='改革春风吹满地,春天来了';
str.substr(2,2);// 春风
// start是索引,length是个数
复制代码
  1. slice(start,end)
  2. substring(start,end)
var str='改革春风吹满地,春天来了';
console.log(str.slice(2,6));     // 春风吹满
console.log(str.substring(2,6)); // 春风吹满
复制代码

start和end都是索引,前闭后开,[start,end),end取不到

end不写,截取到结束

替换字符

replace('被替换的字符','替换为的字符') 只替换找到的第一个字符


var str='andyan'
str.replace('a','b');// bndy

复制代码

字符串转为数组

split('分隔符')

// 根据分隔符分隔为数组
var str=`a=1&b=2`;
str.split('&');  // [a=1,b=2]


// 字符串中没有分隔符,就是原字符串转为数组
var atr='dsfg=dgd';
console.log(atr.split()); // ["dsfg=dgd"]

复制代码

转换大小写

toLowerCase() 转小写

toUpperCase() 转大写

var str='dafSdsSSSRR';
console.log(str.toUpperCase());//DAFSDSSSSRR
console.log(str.toLowerCase());//dafsdssssrr
复制代码

长度

str.length 获取字符串的长度

去除两边的空白

str.trim()

 var str = "     Runoob     ";
 str.trim();//Runoob
复制代码
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享