1.聊在开头
在正式开始之前,首先需要明白下面的一些问题:
- string是属于基本数据类型,本身没有属性和方法
- 我们可以在str后面调用属性或者方法,其实最主要的是基本包装类型的功劳。
- 基本包装类型共有三种String、Boolean、Number。
当我们使用
let str="123;str.XX()
的时候,这个过程发生了下面的事情:
- 创建String类型的一个实例;
- 在实例上调用指定的方法;
- 销毁这个实例
也就是说这个包装只有失去了使用的价值,就会立即销毁。
这也引申出了下面的一个问题:
为什么在基本类型上面无法定义属性和方法?
每当读取这三种基本类型值时,后台会创建对应的包装类型实例,这个实例会调用指定方法, 调用完会被销毁。这种短暂的生命周期决定了我们不能为基本类型添加自定义的属性和方法。
2.正式说说
首先,定义一个基本类型的字符串。
注意:在使用str.XXX()方法的时候,由于都会生成一个String的类型,所以并不会改变str本身的值,所以str的值始终都是哈哈哈你 好吗?
.
let str=" 哈哈哈你 好吗? ";
console.log('str的数据类型是',typeof str);
- 创建一个锚点标签
let str1=str.anchor("123456")
console.log(str1);
- 创建一个标签,用来加大字号,str是元素之间的文本,已废弃
let str2=str.big();
console.log(str2);
- 创建一个标签,用来闪烁文本,因不符合无障碍标准,已废弃
let str3=str.blink();
console.log(str3);
- charAt()用来查找字符串中对应位置的索引元素,下标从0开始
let str4=str.charAt(3);
console.log(str4);
- charCodeAt()将对应位置的索引元素转化为charCodeAt() , 方法返回 0 到 65535 之间的整数,表示给定索引处的 UTF-16 代码单元
let str5=str.charCodeAt(0);
console.log(str5);
- codePointAt()表示的是 0 到 1114111的 Unicode 编码单元
let str6=str.codePointAt(0);
console.log(str6);
- concat()连接多个字符串的作用,可以支持多个参数选项
let str7=str.concat('123','456');
- endsWith()是用来判断字符串是否以“XX”结尾,第二个参数可以指定搜索的结束位置。
let str8=str.endsWith('哈',4);
console.log(str8);
- fixed()让字符串以固定的间距进行显示,返回标签
let str9=str.fixed();
console.log(str9);
- fontcolor()定义字体显示的颜色,返回的是标签,带有color属性
let str10=str.fontcolor('red');
console.log(str10);
- fontsize()定义字体显示的大小,返回的是标签,带有size属性
let str11=str.fontsize(20);
console.log(str11);
- includes用来判断一个字符串中是否包含子串,区分大小写,返回true false
// 第一个参数:要搜索的子串
// 第二个参数:从哪个索引开始进行检索,默认是从0开始
let str12=str.includes("哈您",1);
console.log(str12);
- indexOf()用来查找子字符串第一次出现的位置,可以指定检索的位置。
let str13=str.indexOf("哈")
console.log(str13);
- lastIndexOf()用来查找子字符串最后一次出现的位置,可以指定检索的位置。
let str14=str.lastIndexOf("哈");
console.log(str14);
- localeCompare用来比较字符串的前后顺序
let str15=str.localeCompare("123");
console.log(str15);
- match()支持正则表达式,参数必须是一个正则表达式对象RegExp, 返回值为一个数组,是匹配到的字符串
let str16=str.match(/哈/g);
console.log(str16);
- matchAll()支持正则表达式,返回值为一个数组,
let str17=str.matchAll("哈");
console.log(str17);
- normalize正常化,返回一个节点
let str18=str.normalize();
console.log(str18);
- padEnd()字符串补全方法,在字符串的末尾进行补全
let str19=str.padEnd(12,0);
console.log(str19);
- padStart()在字符串的前面进行字符串的补全
let str20=str.padStart(12,0);
console.log(str20);
- repeat相当于字符串的复制,参数指定的是指定赋值的份数。
let str21=str.repeat(3);
console.log(str21);
- replace主要用来做字符串的替换工作,所做的工作包括两部分:
(1)使用正则表达式查找满足模式的字符串
(2)使用新的值代替旧的值
let str22=str.replace(/哈/g,'嘻');
console.log(str22);
- search()通过正则表达式来进行子串的查找
let str24=str.search(/哈/g);
console.log(str24);
- slice()主要做的是字符串的按照索引进行切片的工作,其中不包括尾索引处的元素。
let str25=str.slice(3,4)
console.log(str25);
- split会按照分隔符对原字符串进行切分,得到一个新的数组
let str26=str.split("");
console.log(str26);
- startsWith()是找这个字符串是不是以特定的元素开头的–》false true
let str27=str.startsWith("哈");
console.log(str27);
- sub()返回一个标签元素,表示下标,sup则是上标
let str28=str.sup();
console.log(str28);
- substr(),从0开始截取子串,截取3个长度。
let str29=str.substr(1,3);
console.log(str29);
-
substring(),截取[1,3)区间内的子串,不包括尾下标的元素,
// 与slice有什么区别呢?
let str30=str.substring(1,3);
console.log(str30); -
toLowerCase()全部转化为小写进行表示
let str31=str.toLowerCase()
console.log(str31);
- trim()删除字符串中首尾包含的空格字符。
let str32=str.trim();
console.log(str32);
- trim()删除字符串中首尾包含的空格字符。
let str33=str.trimEnd();
console.log(str33);
3.写在最后
字符串的这些方法很多都已经废弃,比如像sub() sup() big()
,这些都会返回一个HTML标签元素,这些方法已经被逐渐废除了,最好不要使用了。
注意:不管是什么操作,都不会改变原有的字符串。