字符串
概念:字符串就是一串字符,由单(双)引号括起来.因为在对应的js里面字符串属于一个值类型
(值类型是常量 常量是不能变)。字符串是不能改变的。
字符串的定义
var str = 'hello'; //定义了一个字符串,内容为hello
2. 引用类型
var str = new String("hello"); //定义一个字符串变量 //此刻的str为引用类型,在栈开辟一个空间,指向又在堆开的一个空间,再指向堆内的常量区
3. String方法
var str = String('hello');
4.es6新增 字符串模板 ``
var a = 'jack'; var str = `hello ${a}`; //可解析${} 以变量解析 `` console.log(str); //hello jack
new String() 和 String() 的区别
- 当String() 与元素符new 一起使用,String() 是作为构造函数使用的,它返回的是一个新创建的String对象
- 当不使用new运算符调用String时,它只是转换原始的字符串,并返回转换后的值
1.concat()
var str = "hello,"; console.log(str.concat("world!")); //hello,world! console.log(str); //hello,
2.indexOf( n )
查找n在字符串第一次出现的位置,没有找到则返回-1
var str = "abc ccd hello yule"; console.log(str.indexOf('c')); //在str里查找字符'c',第一个c的下标为2,返回2 console.log(str.indexOf('c',3)); //在str从下标3开始找字符'c',下标3后的第一个字符'c'的下标为4,返回4 console.log(str.indexOf('c',6)); //在str从下标6开始找字符'c',下标6后的没有字符'c',返回-1
3.lastIndexOf(n)
查找n在字符串最后一次出现的位置,没有找到则返回-1
//自定义的indexOf()与 lastIndexOf() //从前面往后查找 function indexOf(str1,index) { if(!index) index = 0; for(var i = index; i < str.length-str1.length;i++) { var s = ''; for(var j = 0; j <str1.length; j++) { s+=str[i+j]; } if(s == str1) return i; } return -1; } //从后面往前开始查找 function last(str1,index) { if(!index && index != 0) index = str.length-1; for(var i = index; i >= str1.length;i--) { var s = ''; for(var j = str1.length-1; j >= 0; j--) { s+=str[i-j]; } if(s == str1) return i-str1.length+1; } return -1; }
4.replace( 换下内容,换上内容)
替换字符 并且只会换下第一个要换下的内容 支持正则
var str = "nihao,nihao,小喻"; console.log(str.replace("nihao","你好")); //你好,nihao,小喻 console.log(str); //nihao,nihao,小喻
5.split() 切割字符串
//根据字符串内存在的字符,将字符串分割,然后返回一个保存了分割后的字符串的数组 支持正则
var str = "qw-ei-12-34"; console.log(str.split('-')); //['qw', 'ei', '12', '34'] 默认不分割 console.log(str); //qw-ei-12-34
6.substr (开始截取的字符下标,截取的长度),
substring(开始截取的字符下标,结束截取的字符下标(不截取))
slice( 开始截取的字符下标,结束截取的字符下标(不截取))
var str = "你好,奇七怪乖~"; console.log(str.substr(1, 5)); //好,奇七怪 console.log(str.substring(1, 5)); //好,奇七 console.log(str.slice(1, 5)); //好,奇七 console.log(str); //你好,奇七怪乖~
7.charAt( n )函数 获取下标为n的字符
var str ="123456"; console.log(str.charAt(3)); //4
8.charCodeAt( n )函数
获取下标为n的字符的编码(ASCII码)
var str = "a12d33"; console.log(str.charCodeAt(0)); //97
9.String.fromCharCode( n1,n1 )
将n1,n2对照ASCII码转为字符 静态方法(通过构造方法名直接调用 static修饰)
var str = String.fromCharCode(97,49); console.log(str); //a1
10.search() 正则匹配(返回第一次出现的位置)
var str = "acbcdefgcd"; //g表示进行全局匹配,i表示匹配的时候忽略大小写1 var res = str.search(/cd/gi); console.log(res); //3 第一个cd从下标3开始出现
11.match() 匹配 返回数组
var str = "abcacc"; // 默认只找第一个匹配的 加入数组 var arr = str.match('a'); console.log(arr);
总结
- string 的方法返回的都是一个新的字符串
- string 的length属性是只读的,不能赋值,读取对应的字符串的长度
- 字符串可以通过下标进行访问
- 字符串方法:charAt() charCodeAt()
- 搜索:indexOf() lastIndexOf() search()
- 支持正则的方法:search() replace() split() match()
- 截取的方法:substring() substr()
- 转大写和小写:toUpperCase() toLowerCase()
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗