ES6中字符串的扩展
最近不知道那个公司的那个面试官问起了这样一个面试题,
请说出20个字符串的方法,少一个就算错,
然后各大公司纷纷模仿了起来。
然后我就很恐慌,已经离开学校那么久了,那些字符串的方法,数组的方法早就忘完了,
没办法,只能从新记啊!
整理的字符串比较常用和凑数量的方法,代码如下:
/*
字符串方法:
charAt:返回指定索引位置的字符
charCodeAt:返回指定索引位置字符的 Unicode 值
formCharCode:将 Unicode 转换为字符串
* slice:提取字符串的片断,并在新的字符串中返回·被提取的部分
* substring:提取字符串中两个指定的索引号之间的字符(包头不包尾)
* substr:包头也包尾
* search:搜索字符串中的字符串首次出现位置,返回的是字符串所对应的索引
* match:搜索字符串中指定的字符串的值;返回字符串
* replace:用一些字符替换另一些字符
* split:把字符串分割为子字符串数组
* indexOf:返回字符串中检索指定字符第一次出现的位置
lastIndexOf:返回字符串中检索指定字符最后一次出现的位置
includes: 有这个需要搜索的内容返回true没有返回false
toLowerCase:变成小写
toUpperCase:变成大写
trim:移除字符串首尾空白
trimLeft:移除首字符串空白
trimRight:移除尾字符串空白
padStart:在开始位置填充
padEnd:在尾部位置开始填充
concat:连接两个或多个字符串,返回连接后的字符串
small将数据用一个small标签包起来
anchor将数据用一个b标签包起来
bold将数据用一个a标签包起来
strike将数据用一个strike标签包起来
big将数据用一个big标签包起来
repeat
方法返回一个新字符串,表示将原字符串重复n次
startsWith
判断字符串是否以某个字符串开头,是的话,返回true,否则返回false
endsWitch
判断字符串是否以某个字符串结尾,是的话,返回true,否则返回false
*/
一些不常见也不常用的字符串方法的使用:
let
srt
=
"
abc
"
console.
log(
srt.
padStart(
9))
//
abc
console.
log(
srt.
padStart(
9,
'
s
'))
//
ssssssabc
console.
log(
srt.
includes(
'
dafasddasdada
'));
//
false
console.
log(
srt.
small());
//
<small>abc</small>
console.
log(
srt.
bold());
//
<b>abc</b>
console.
log(
srt.
anchor(
'
llll
'));
//
<a name="llll">abc</a>
console.
log(
srt.
strike());
//
<strike>abc</strike>
console.
log(
srt.
big());
//
<big>abc</big>
和一个突发奇想的小demo
let
templateStr
=
"
本人今天心情{{xinqing}},买了一个{{xuegao}},花了{{money}}块钱。
";
let
data
= {
xinqing:
"
很不错
",
xuegao:
"
可爱多
",
money:
3
};
let
content
=
templateStr.
replace(
/
\{\{(
\w
+
)\}\}
/
g,
function (
match,
$1) {
return
data[
$1];
})
console.
log(
content);
//
本人今天心情很不错,买了一个可爱多,花了3块钱。
在ES6中有那些新增的字符串模板呢和之前的相比又有那些优点呢?
/*
ES6新增的字符串模板
把字符串放在一对反引号里面 ``
优点:
1.随便折行
2.直接在字符串里面放变量、
${变量}
双引号的缺点:
1.不能折行
2.添加数据需要大量的拼接
*/
老规矩,直接上代码:
let
x
=
100;
let
srt2
=
`
dafagaggagagasdgasdg
${
x
}
afdfafaasdfasdfasdfasdfasd
sdfasdfsadfasdfasdf
`;
console.
log(
srt2);
// dafagaggagagasdgasdg100
afdfafaasdfasdfasdfasdfasd
sdfasdfsadfasdfasdf
let
srt3
=
"
asdfasnfsadfasf
"
+
"
sdfgasfa
"
+
x
+
"
sdafasdfasf
"
+
"
fadfsafasfasf
";
console.
log(
srt3);
//asdfasnfsadfasfsdfgasfa100sdafasdfasffadfsafasfasf
嗯,``号是不是比双引号方便多了。
关于ES6的字符串的扩展我能分享给大家大概就是这么多了,
如果上述代码有错误和不足,请评论或私信,我好及时改正。