字符串
概述:
串也是数据结构,保存同样的内容。
在js中,字符串属于一个值类型(值类型是常量,常量不能变)
字符串是不可变的
字符串的增删改查不能针对与本身,而是返回一个新的字符串。
声明字符串:
1.值类型赋值
var str =‘hello world’
2.以new关键词声明(引用了对应的值的地址)
var str =new String ("abc");
es6新增
var a ='jack'
var str =`hello string${a}` //反引号 以变量来解析${}
console.log(str); //hello stringjack
new String()和String()区别:
newstring
new String是构建一个String对象(引用数据类型,有地址指向)
String单纯的将对应传入的参数转为string类型(值类型)
字符串的属性:
length:返回字符串的长度(包含空格及换行)
var str ="a b"
console.log(str,length) //3
通过下标来获取对应的字符串
var str ="abc"
console.log(str[0])//a
字符串的方法:(返回新字符串)
通过下标找字符串:(char字符)
charAt(下标)
varstr=“abc”
str.charAt(0) //a
charCodeAt(下标):返回字符的ASCII码
varstr=“abc”
str.charCodeAt(0) //97 效率更高,机器中本来就以ASCII码存储字符
通过字符串找下标
找不到返回-1 找到返回对应的下标值,类型为number
indeOf
varstr=“abc”
console.log(str,indexOf('a')) //0
console.log(str,indexOf('d')) //-1
//两个参数,(查询的字符串,开始查找的下标)默认返回从开始,第一个找到的字符串
console.log(str.indexOf('ab')) //0
console.log(str.indexOf( 'd')) //-1
console.log(str.indexOf( 'b',2)) //-1
var str = 'abbbccde'
console.log(str.indexOf( 'b",2)) //2
//从下标2开始找,找到第一个出现b的位置,在查找时将下标为2当做第一个
lastIndexOf()
console.log(str.lastIndexOf( 'b")) //3
console.log(str.lastIndexOf( 'b",0)) //-1 从0的位置往前找
console.log(str.lastIndexOf( 'b",4)) //3
默认情况下,对应的后面的下标可以省略
自定义函数实现以上方法:
<script>
var searchStr = "abcdefabcde"
function indexOf(str,index){
if(!index){
index=0;
}
var len=str.length;
for(var i=index;i<searchStr.length-len;i++){
var s=''
for(j=0;j<len;j++){
s+=searchStr[i+j];
}
if(s==str){
return i;
}
}
return -1;
}
console.log(indexOf("bc",4));
function lastIndexOf(str,index){
if(!index||index!=0){
index = searchStr.length-1; //默认为最后一个
}
var len = str.length;
for(var i=index;i>=len;i--){
var s='';
for(var j=0;j<len;j++){
s+=searchStr[i-j];
}
if(s==str){
return i;
}
}
return -1
}
console.log(lastIndexOf("bc",4));
</script>
search() :同indexof一样,但支持正则表达式
var str=‘abc’
console.log(str.search(/ab/)) //正则表达式
console.log(str.search(/ab/,0)) 从0的位置开始查找,匹配正则
静态方法
(通过构造方法名直接调用的叫静态方法,由对应的static修饰)
fromCharCode :将对应的ASCII码转为字符串
var str = String.fromCharCode(97)
console.log(str)
concat :将多个字符串连接成一个字符串返回
var str=“hello”.concat("world")
console.log(str) //hello world
注:将多个数组连接成一个数组返回
支持正则的方法(4个)
search查找(找到返回下标,没找到返回-1)
replace 替换(将找到的字符串替换成一个新的字符串)
var str=“abca”
var str1 =str.replace("a","hello") //将第一个a替换成hello
console.log(str1)//hellobbca
substring substr 截取:
var str=“adcdef”
//substring[开始的下标,结束的下标)
console.log(str.substring(1)); //bcdef
console.log(str.substring(1,3)) //bc ;截取不包含最后一个下标
console.log(str.substr(1))bcdef ;默认截取到最后
console.log(str.substr(1,3))//bcd 从下标1开始,截取三个
split 分割 返回数组
var str= “1,2,3”
console.log(str.split()) //"1,2,3" 默认不分割,直接填入数组
console.log(str.split(",")); //["1","2","3"]
match 返回一个数组(匹配的内容)
var arr =str.match("a") //默认只找第一个匹配的,加入数组
str.match("a")
console.log(arr);
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律