一、最基础的东西
1.字符串的拼接
let stringName = "my name " + "is NiuJinJin";
stringName; // my name is NiuJinJin
复制代码
2.字符串的属性:length,获取字符串的长度
// 还是拿上面的例子说明
stringName.length; // 20,说明包含了空格
复制代码
正题:JS提供的方法
这里需要引申:后期博客:明白这些方法背后的原理
下面的例子,变量全部都在上面声明好了
这里的方法都不会改变原来的字符串
1.charAt(index);
// index是stringName的字符串索引;
// 返回字符串中该索引的字符
stringName.charAt(0); // m 第一个字符
stringName.charAt(stringName.length-1) // n 最后一个字符
复制代码
2.substring(startIndex,endIndex);
// 字符串截取
// startIndex是开始索引,说人话:“从哪儿开始截取!”
// endIndex是结束索引,“到哪儿结束”,但是不能包含该索引,
stringName.substring(1,7); // y name,从索引1号位开始截取,一直到4,但不能包含4(截取到索引6号位)
复制代码
3.slice(startIndex,endIndex);
// 字符串截取
// 用法和substring类似,不同点在于:substring传入负数就是默认值,
stringName.slice(1,7); // y name
stringName.slice(-9); // NiuJinJin,索引位置的确定,从字符串末尾开始倒数索引
复制代码
4.indexOf(stringParam,[startIndex]);
// 字符串查找(这里的字符我理解成单个的字符串,所以,字符和字符串全部被理解成字符串)
// 查找参数字符串首次在字符串中出现的位置,并将该索引返回
stringName.indexOf('n'); // 3
// 可选参数:startIndex,指定从startIndex这个索引之后开始查找
stringName.indexOf('n',4); // 16
复制代码
5.lastIndexOf(stringParam,[startIndex]);
// 字符串查找,字符串最后一次出现的位置,并将该索引返回
stringName.lastIndexOf('n'); // 19
// 同上,该方法也有第二个可选参数,指定从startIndex这个索引之前开始查找
stringName.lastIndexOf('n',18); // 16
复制代码
6.split(seperator);
// 字符串转数组方法:seperator将与字符串匹配,返回指定位置的子字符串
stringName.split(' '); //[ 'my', 'name', 'is', 'NiuJinJin' ]
复制代码
7.replace(str1,str2);
// 字符串替换,首先查找是否有str1子串,如果匹配不上,则返回原来字符串,否则将字符串中str2替换str1子串
复制代码
8.toUpperCase()、toLowerCase();
将字符串全部大写/小写并返回
复制代码
ES6的方法
1.字符串的解构赋值
// 字符串转换成了类似数组的对象
let [a,b,c,d,e] = "niujinjin";
a // n
b // i
c // u
d // j
e // i
let {length:length_} = "niujinjin";
length_ // 9
复制代码
2.字符串遍历方法 for…of
// 当然,传统的for循环也可以达到这个目的,但是for...of可以识别更多的码点。
for(let item of "niu~"){
console.log(item); // n i u ~
}
复制代码
3.at(index);
// 和charAt功能相同,但是at()方法识别的字符更多。
复制代码
4.includes(sonStr)、startsWith(sonStr)、endsWith(sonStr);
1.includes(sonStr) // 返回布尔值,判断字符串是否包含参数sonStr
stringName.includes("NiuJinJin"); // true
2.startsWith(sonStr) // 返回布尔值,判断参数是否在字符串的头部;
stringName.startsWith("NiuJinJin"); // false,它在尾部
3.endsWith(sonStr) // 返回布尔值,判断参数是否在字符串的尾部;
stringName.endsWith("NiuJinJin"); // true
复制代码
5.repeat(number);
// 返回一个新的字符串,这个字符串会被重复number次。
"NiuJinJin".repeat(2); // NiuJinJinNiuJinJin
"NiuJinJin".repeat(2.8); // NiuJinJinNiuJinJin,重复2次,说明是向下取整
"NiuJinJin".repeat(-2.8); // RangeError: Invalid count value
"NiuJinJin".repeat(Infinity); // RangeError: Invalid count value
"NiuJinJin".repeat(-0.9); // 取整为0
// 总结:
// 当参数是正数时(正整数和浮点数),则向下取整进行repeat
// 当参数是负数时,并且小于-1或者Infinity,会报错
// 当参数是负数,范围在0~1之间,则取整为0;
复制代码
6.padStart()、padEnd();
1.padStart(length,sonStr);
// 字符串填充,判断字符串是否达到length的长度,如果没有,则在字符串的头部开始填充子串sonStr,直到字符串长度达到length;
"NiuJinJin".padStart(15,"1"); // 111111NiuJinJin
"NiuJinJin".padStart(15,"abcdefghijk"); // abcdefNiuJinJin,后面的ghijk没有填充进去,因为长度到了。
2.padEnd(length,sonStr);
// 和 1 是一样的,不同的是,从字符串的尾部开始填充子串
复制代码
7.字符串模板
// 好处多多:可以当做普通字符串使用,也可以定义多行字符串(☆☆☆),或者在字符串中嵌入变量(☆☆☆)
`${stringName}`; // my name is NiuJinJin
// 即可以认为字符串模板允许字符串嵌套变量
复制代码
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END