当前位置:网站首页>js基础知识整理之 —— 字符串
js基础知识整理之 —— 字符串
2022-08-02 22:49:00 【猴小七儿】
JS任何事物都可以看成对象
字符串 String这种数据类型
单引双引号包起来的都属于字符串(String)
String类 这是我们面向对象概念;无论基本数据还是引用数据都属于object的类;
字符串属于String这个大类,在String类的protoType的这个属性上,存在着一个对象(protoType值是一个对象 ),在这个对象上存在一些属性,属性对应的值是一些函数方法,这些方法都是公有的,属于这个类的对象都能调用;
1、charAt 根据索引查找字符串var str="abcdefghigklmnopqrstuvwxyz"
字符串也可以通过索引访问具体位置的字符console.log(str.charAt(0));//--->a
将查找到的字符串作为方法的返回值返回
2、charCodeAt 也是根据索引查找的指定位置的字符
但是他返回的是当前字符unicode编码ASCII编码值;
3、substr(n,m) 查找字符串,从索引n开始,查找m个
会将找到的字符返回,字符串格式;
substr()
不填参数的时候,返回的是整个字符串,相当于复制;substr(0)
只填一个参数的时候,从当前索引位置,一直找到末尾,将找到的字符返回;console.log(str.substr(-3,3));//--->xyz
如果索引传一个负数,就是索引从末尾开始依次向左进行(就是从倒数第一个开始)
4、subString(a,b) 查找我们字符串,从索引a处,到索引b处之前
查找到的结果不包含b处字符;返回值也是查找的结果;
str.substring(0,str.length-1) "abcdefghigklmnopqrstuvwxy"
str.substring(0,str.length) "abcdefghigklmnopqrstuvwxyz"
console.log(str.substring(1)); "bcdefghigklmnopqrstuvwxyz"
不支持传负数
5、slice(n,m) 从索引n到索引m处之前, 不包含m
因为不包含m 所以 如果我想找z 要找到z的后一项 也就是str.length 就能打印出整个字符串
它跟subString的用法一样,区别是,slice可以支持负数索引;
负数索引是从-1开始的,我们查找的顺序,是从左到右;
-25是b -26是a
要保证m值比n值大 str.slice(5,4)----> " "
否则会返回一个空字符串abcdefghigklmnopqrstuvwxyz--->str.slice(-5,-2)--->"vwx"
查找顺序从左到右;找到-5 再查两个
str.slice(2,-5)
一正一负的情况,我们可以把负数转化成整数索引(负数索引+str的length)都转化成正数时候也要求后一个参数m比前一个n大;
6、replace字符串的替换
str.replace(字符串原有字符,替换的新字符)
str.replace("a","木")
console.log(str.replace("a", "木").replace("a", "木").replace("a", "木").replace("a", "木"));
//--->木b木cde木fg木higklmnopqrstuvwxyz
// 通过链式写法,重复调用replace替换
replace配合我们正则匹配使用
console.log(str.replace(/a/g, "正则"));
//-->正则b正则cde正则fg正则higklmnopqrstuvwxyz
// g是全局匹配 i区分大小写
7、indexOf lastIndexOf 找到字符出现位置索引
证明是否包含,返回的是找到的第一个索引
console.log(str.lastIndexOf("a"));//--->9
8、split() 字符串拆分成数组
split("@")以指定的字符为分隔点,将字符串分隔成数组
var str="abcd";
console.log(str.split());//---> ["abcd"]
console.log(str.split(""));//---> ["a", "b", "c", "d"]
传一个空字符串的时候,我们会将字符串中每一个字符都拆分成数组的一项;
var str="a#b#c#d";
console.log(str.split("#"));//---> ["a", "b", "c", "d"]
边栏推荐
- DownMusic总结记录
- Swift中的类型相关内容
- Broadcast platform, the use of the node generated captcha image, and validate
- APT level comprehensive free kill with Shell
- Rasa 3.x 学习系列- Rasa - Issues 4792 socket debug logs clog up debug feed学习笔记
- Jmeter secondary development to realize rsa encryption
- VMware workstation program starts slowly
- Mock工具之Moco使用教程
- centos7安装mysql5.7步骤(图解版)
- 创建型模式 - 单例模式Singleton
猜你喜欢
Directing a non-relational database introduction and deployment
MySQL 与InnoDB 下的锁做朋友 (四)行锁/记录锁
AcWing 2983. 玩具
程序员如何优雅地解决线上问题?
Towards a General Purpose CNN for Long Range Dependencies in ND
【C语言】带头双向循环链表(list)详解(定义、增、删、查、改)
The CTF command execution subject their thinking
PHP实现登录失败三次需要输入验证码需求
VS保存后Unity不刷新
CKAN教程之将 Snowflake 连接到 CKAN 以发布到开放数据门户
随机推荐
R语言自学 1 - 向量
严格反馈非线性系统基于事件触发的自抗扰预设有限时间跟踪控制
Task 4 Machine Learning Library Scikit-learn
IDEA 重复代码的黄色波浪线取消设置
APT级全面免杀拿Shell
Mysql查看慢查询日志
图像识别从零写出dnf脚本关键要点
【UE5 骨骼动画】全形体IK导致Two Bone IK只能斜着移动,不能平移
I have been in the software testing industry for nearly 20 years, let me talk to you about today's software testing
测试人生 | 阿里实习 90 天:从实习生的视角谈谈个人成长
FastCorrect:语音识别快速纠错模型丨RTC Dev Meetup
openssl源码下载
vscode 自定义快捷键——设置eslint
最近公共祖先(LCA)学习笔记 | P3379 【模板】最近公共祖先(LCA)题解
APT level comprehensive free kill with Shell
最新真实软件测试面试题分享,收藏了还怕进入不了大厂?
Matplotlib drawing core principles explain (more detailed)
Token、Redis实现单点登录
非关系型数据库MongoDB简介和部署
ssm整合(三)Controller 和 视图层编写