前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >怀英漫谈8 - JS的字符串和数

怀英漫谈8 - JS的字符串和数

作者头像
用户1335799
发布2018-07-26 16:28:56
5770
发布2018-07-26 16:28:56
举报

你好,这周想和你聊聊JS中的基本语法的另一个部分——字符串和数组的使用。这次我们先聊聊字符串和它的方法。

字符串是什么

字符串这个词你我都知道,如果猛然问被问起什么叫字符串,你我可能都不能立马反映过来。当然,这个原理你我其实都知道,只是我们平时更注重于用,忽略了定义而已。在JS中,所谓的字符串就是由单引号'',或者双引号""包裹的字符序列,比如var name='张三疯',亦或是var name="李小龙"。

字符串常用方法

我记得当初一开始接触到字符串的相关方法的时候,我是一脸的蒙圈,总感觉方法比较多,看着都累。后来遇到一些需求,写了些许的代码之后,才逐渐感到这些方法有他们存在的价值。把他们归归类,差不多是五个方面,查询、替换、截取、大小写转换、拼接。这其中用的比较多的要属于拼接方法。之所以说是拼接,是因为拼接时用的最多的不是方法str.concat(str1, str2, ...); 而是'+'号。

其它三个方法中,查询的方法我个人比较喜欢用str.indexOf(searchValue[,index]);因为这个方法既可以搜索单个字符,也可以搜索一个字符串,通用型比较高。在实际的开发中,一般会把这个indexOf这个方法封装成一个查询方法,用于查找字符串内是否有我们需要的字符。有时候还会更进一步,去查询这个字符是否是以某个字符为开头,或者以某个字符结尾的。字符串的搜索还有一种比indexOf更万能的方法,且其原理是通过正则表达式去匹配,在JS中有两个方法可以达到这个效果,一个是str.search(regexp); 还有一个是 str.match(regexp); 。search方法返回的是坐标,而match方法返回的是一个数组。因为我对正则表达式不是很熟悉,所以这两种方法用的比较少。

JS字串的替换方法只有一个str.replace(regexp|substr, newSubstr|function); 不过它很强大,尤其是和正则配合使用之后。在不使用正则之前,替换方法只能替换符合标注的第一个字符串,当使用了正则表达式并指定全局标志(g)之后,就可以替换所有符合要求的自字符串了。

JS字串中截取功能的实现方法还是挺多的,substring(beginIndex[,endIndex]), slice(beginSlice[,endSlice]), str.substr(beginIndex[,length]), str.split(separator)。这其中,对我而言,substring()用的比较多,它与substr()的区别在于第二个参数,前者的第二个参数代表了截取的位置,后者的第二个参数代表了截取的长度。slice()我用的不多,它与substring()的区别在于substring()的参数不能为负数,而slice()的是可以的,负数代表它从末尾开始的反向截取。

你可能会好奇,我为什么要把split()也算进来,它不因该单独成为一个分类么。我是这么考虑的,从中文意思上来说,将一个字符串通过其中的分隔符转换为数组,这也是截取功能的一种,只是它截取后的子类(数组的各个元素)能拼合成数组的完整的字符串而已。这个方法在一开始用ajax做数据传输的时候用的比较多,前后端约定好数组每一个位置的元素内容之后,前端就用split来切分数据了。这两年再开发的时候,更多的是用Json。它的优势是可以轻易地实现对象和字符串之间的互转。也就变相的理解为可以传递对象,使得数据开发时候的语义更加明确,便于开发,所以split用的也就越发地少了。

对了,最后一个方面是大小写替换,这个语义上清晰明了,就是两个方法,str.toLowerCase()和str.toUpperCase()。这两个方法我用的也不是很多。所以就不多说了。

今天咱们聊了字符串和它的5个方面的方法,希望能对你有所帮助,祝春祺。

清单

  1. 在JS中,所谓的字符串就是由单引号'',或者双引号""包裹的字符序列
  2. 字符串的常用方法可分为查询、替换、截取、大小写转换、拼接这五个方面。
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-03-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 怀英的自我修炼 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档