J18 String中常用的内置方法

181 阅读4分钟

1.String中常用的内置方法

在JS中用单引号、双引号、反引号包起来的都是字符串:每一个字符串都是由零到多个字符组成的,和数组类似,每一个字符也都有自己的索引

  • 获取string原型的方法:console.log(String.prototype);
//str.length存储了一共有多少个字符,也就是字符串的长度

//1.基于索引获取指定位置的字符
let str = "welcome to zhufeng peixun!";
console.log(str[0]);//=>'w'


//=>2.遍历字符串中的每一个字符
for (let i = 0; i < str.length; i++) {
	console.log(str[i]);
}

2.记忆方式:

  • 1)方法的意义和作用
  • 2)参数
  • 3)返回值

字符串中无需记忆原始字符串是否改变,因为它是基本类型值,每一个操作都是直接操作值,对原始字符串不会产生任何影响(数组之所以要记住是否改变,是因为数组是对象类型,操作的是堆内存,方法的执行很可能把原始堆内存中的信息改变了,所以需要记忆原始数组是否改变)

3.String中常用的内置方法

1.获取字符串的长度

let str="zhangsan shizai 2020 yangfanqihang"
console.log(str.length);//=>34

2.charAt:获取字符长度为32的位置的字符

let str="zhangsan shizai 2020 yangfanqihang";
console.log(str.charAt(32));//=>n
console.log(str.charAt(-2));//=>""
而
console.log(str[-1]);//undefined

3.charCodeAt:获取

let str="zhangsan shizai 2020 yangfanqihang";
console.log(str.charCodeAt(32));//=>n的十进制是110

4.string.fromCharCode:基础上面charCodeAt获取的十进制转换为十进制的具体字符

console.log(String.fromCharCode(110));//=>n的十进制是103

5.subStr[n,m]:从n开始截取到m字符 m是从索引n开始数,第三位字符到6位字符截取出来

let str="zhangsan shizai 2020 yangfanqihang";
console.log(str.substr(3,6));//=>ngsan
//(从索引第三个开始算起,从n找6的字符返回)

6.subString[n,m]:从n开始截取到m字符

let str="zhangsan shizai 2020 yangfanqihang";
console.log(str.substring(3,6));//=>ngs
//(从索引第0个开始算起,一直找到第6个,不包含第六个)
console.log(str.substring(3));//=>ngsan shizai 2020 yangfanqihang    
//第二个参数不写截取到末尾

7.slice[n,m]:从n开始截取到m字符,支持负数作为索引(负数就是倒着按照索引找) 而subString不支持

let str="zhangsan shizai 2020 yangfanqihang";

console.log(str.slice(-6,-2));//=>qiha
//(倒数从1找到6位,在找到后面位不作为返回值,剩下的四位作为返回值)

console.log(str.slice(0));//=>"zhangsan shizai 2020 yangfanqihang"  
//字符串克隆

8.获取某个位置的字符串,和数组类似,也有自己的默认索引从零开始

let str="zhufeng peixun 2020 yangfanqihang"
console.log(str[2],str[4],str[0]);//=>u e z

9.indexOf(""):获取当前字符在字符串中第一次出现位置的索引,如果字符串中不包含这个字符,返回结果是-1

let str="zhangsan shizai 2020 yangfanqihang";
console.log(str.indexOf("g"));//=>4
console.log(str.indexOf("3"));//=>-1

if(str.indexOf("3")>-1){
//=>条件不成立,什么事都不做str中不包含3
}

if(str.indexOf("z")>-1){
//=>条件不成立,什么事都不做 str中不包含3
}

10.lastIndexOf(""):获取当前字符在字符串中最后一次出现位置的索引,如果字符串中不包含这个字符,返回结果是-1

let str="zhangsan shizai 2020 yangfanqihang";
console.log(str.lastIndexOf("g"));//=>33

11.includes(" "):验证是否包含某个字符

let str="zhangsan shizai 2020 yangfanqihang";
console.log(str.includes("g"));//=>true
console.log(str.includes("3"));//=>false

12.toLowerLCase():大写转换小写/toUpperCase():小写转换大写

let str="ZHANGSAN shizai 2020 yangfanqihang";
console.log(str.toLowerCase());//=>zhangsan shizai 2020 yangfanqihang
console.log(str.toUpperCase());//=>ZHANGSAN SHIZAI 2020 YANGFANQIHANG

13.replace();替换当前的字符串

let str="ZHANGSAN shizai 2020 yangfanqihang";
str = str.replace("shizai", "是在");
str = str.replace("ZHANGSAN", "张三");
console.log(str);//=>张三 是在 2020 yangfanqihang

14.split("")和数组中的join方法对应,它是把字符串,按照指定的分隔符号,拆分成数组中的每一项,返回结果是一个数组

let str="ZHANGSAN shizai 2020 yangfanqihang";

console.log(str.split(" "));//=> ["ZHANGSAN", "shizai", "2020", "yangfanqihang"]

cur = ["ZHANGSAN", "shizai", "2020", "yangfanqihang"];

console.log(cur[0].split(" "), cur[1].split(" "),cur[2].split(" "),cur[3].split(" "));
//=>["ZHANGSAN"] ["shizai"] ["2020"] ["yangfanqihang"]

console.log(str.split(""))//=>["Z", "H", "A", "N", "G", "S", "A","N", " ",
// "s", "h", "i", "z", "a", "i", " ", "2", "0", "2", "0", " ", "y", "a", 
//"n", "g", "f", "a", "n", "q", "i", "h", "a", "n", "g"]