先介绍下es6里的模板字面量,用反引号包裹,下面是个例子:

let founder = '硬汉';
console.log(`硬汉工作室创始人是${founder}`); // 硬汉工作室创始人是硬汉

模板字面量其实类似于php双引号里的{$var},而js里是${var},比之前的+字符串好点,可以跨行

length属性

返回字符串的长度,没啥好说的,如:let len = 'nciaer'.length; // 返回6

trim()方法

去掉字符串两边的空格以及换行符,如:

' 硬汉  '.trim(); // 返回 硬汉

toUpperCase()方法

把所有字符变成大写,如:

'nciaer'.toUpperCase(); // NCIAER

toLowerCase()方法

吧所有字符变成小写

charAt(pos)方法

返回指定位置pos处的字符,pos从0开始,如果pos超限,比如-1,或者100,那么返回空字符串,如:

'硬汉'.charAt(1); // 返回 汉
'硬汉'.charAt(9); // 返回空字符串

charCodeAt(pos)方法

返回指定位置pos处的unicode编码,比如指定位置字符是a则返回97,指定位置是则返回30828

indexOf(subStr[, pos])方法

判断字符串是否包含某个字符串subStr,如果有则返回位置,没有返回-1,pos参数是查找的起始位置,如:

'硬汉工作室'.indexOf('硬汉'); // 返回0,代表字符串开头的位置
‘硬汉工作室’.indexOf('硬汉', 1); // 返回-1,因为从位置1开始找是找不到硬汉字符串的

这个方法还有个姐妹方法是lastIndexOf(subStr, pos),顾名思义就是返回最后一次出现subStr的位置。但是第二个参数我始终不太明白,有空再测试下

includes(subStr[, pos])方法,ES6

这个方法跟indexOf差不多,都是判断字符串是否存在subStr,但是这个方法返回true/false,其它好像没区别。

slice(start[, end])方法

返回指定位置的字符串子串,包括start索引的字符,但是不包括end位置的字符,如果省略end,那么就是start到结尾的字符串,如:

'硬汉工作室'.slice(0, 2); // 硬汉
'硬汉工作室'.slice(2); // 工作室

与slice类似的方法还有substring方法,参数也一样,但是似乎不同的是对end值得处理,比如负数情况下,具体以后再说。

substr(index[, length])方法

获取子串,与slice不同的是,第二个参数是获取的长度,如果不传,则直接获取到末尾,如:

'nciaer'.substr(1, 2); // ci
'nciaer'.substr(1); // ciaer

split(separator, [num])方法

分隔字符串函数,用指定的分隔符分隔字符串,然后返回一个数组,第二个参数是限制最多返回的数量,如:

let msg = 'nciaer';
msg.split(''); // 空字符串作为分隔符,['n', 'c', 'i', 'a', 'e', 'r']
msg.split('', 2); // 空字符串作为分隔符,第二个参数为2,那么最多返回2个,['n', 'c']
let family = 'mickey,apple,nciaer';
family.split(','); // ['mickey', 'apple', 'nciaer']

startsWith(str)方法,endsWith(str)方法,es6

判断是否以字符串str开头,判断是否以字符串str结尾,如果是则返回true。如:

'硬汉工作室'.startsWith('硬汉');// true
'硬汉工作室'.endsWith('工作室')// true

replace(str1, str2)方法

把字符串str1替换成str2,但是仅替换第一个,如果需要全部替换,则需要正则,如:

'硬汉工作室创始人是硬汉'.replace('硬汉', 'nciaer'); // nciaer工作室创始人是硬汉,只替换了第一个硬汉
'硬汉工作室创始人是硬汉'.replace(/硬汉/g, 'nciaer'); // nciaer工作室创始人是nciaer,全部替换了,第一个参数是/硬汉/g

string

评论