基础篇之我是String

65 阅读4分钟

*****1、String的概念:

什么是字符串:多个字符组成的【只读】字符【数组】
和数组有相同点:
	1、字符串中的个数:str.length
	2、获取字符串中的某个字符:str[i]
	3、遍历字符串
	4、所有数组不修改原数组的API,字符串也可以使用(concat、slice)

和数组也有很多不同的地方
	所有数组的直接修改原数组的API,字符串都不可以使用,比如排序只有数组可以使用,但是
	字符串也有很多很多属于自己的API,等待我们明天学习

***引用/对象类型:11个
	*String Number Boolean -> 包装类型
	*Array *Function Date(日期) Math(数学) *RegExp(正则:验证)
	Error(错误)
	*Object(面向对象)
	Global(全局对象) - 只不过在浏览器端被window对象给代替了,自然保存着全局变量和全局函数,只不过window可以省略不写,有一天我们回去学习node.js这个后端语言,而在node.js中全局对象就叫做global
 
 ***包装类型:专门用于将原始类型的值封装为一个引用类型的对象的
	为什么:原始类型的值原本是没有任何属性和方法,意味着原始类型本身是不支持.去做任何操作的但是前辈们发现字符串经常会被我们程序员所操作,为了方便我们程序员所以将这个三人提供了包装类型(提供了属性和方法)
	何时使用:只要你试图使用原始类型的变量调用属性或方法的时候,自动包装
	何时释放:方法调用完毕后,自动释放包装类型,有变成了一个原始类型的值
	为什么nullundefined不能使用. - 因为前辈们没有给他们提供包装类型

2、*****StringAPI:

只有字符串可以使用的函数,不需要我创建,直接使用

1、转义字符:\

作用:
	1、将字符串中和程序冲突的字符转为原文
		"\""	'\''
	2、包含特殊功能的符号:
		换行:\n
		制表符:\t	->	大空格,跟你敲tab键效果是一样的
	3、*输出unicode编码的字符:
		汉字的第一个字:\u4e00 - ascii码:19968
		汉字的最后一个字:\u9fa5 - ascii码:40869

2、*大小写转换:将字符串中的每个英文字符统一的转为大写 或 小写

何时:只要程序不区分大小写,就要【先统一】的转为大写 或 小写,再比较(做验证码)
如何:
	var 大写=str.toUpperCase();
	var 小写=str.toLowerCase();

3、获取字符串中的指定位置的字符:

str.charAt(i)	===	str[i];

4、*获取字符串中的指定位置的字符的ascii码

var ascii=str.charCodeAt(i);
 *通过ascii码转回原文:
var 字=String.fromCharCode(ascii码);

5、***检索字符串:检查索引 - 检查下标,获取关键字的下标:

var i=str.indexOf("关键字",starti);
	从starti位置开始,查找右侧第一个关键字的第一个字符的位置
	starti可以省略,默认从0位置开始查找的
	返回值:找到了,返回的第一个关键字的第一个字符的下标位置
		*没找到,返回-1,其实我们根本不关心下标为多少,我们只关心下标为不为-1
	作用:***判断有没有!
	强调:数组也能使用此方法,数组这个方法其实是后期才添加上的,原本此方法只有字符串可用
        
鄙视题:默认只能获取第一个关键字的下标,如何才能获取到所有的关键字的下标呢?
			var str="no zuo no die no can no bibi";
			var index=-1;
			while((index=str.indexOf("no",index+1))!=-1){
				console.log("找到了关键字,下标为:"+index);
			}

6、拼接字符串:

var newStr=str.concat(新字符串,...)	还不如+运算

7、*截取字符串:3个

*var subStr=str/arr.slice(starti,endi+1);//用法和数组完全一致
.substring(starti,endi+1);//用法和slice几乎一致,但是不支持负数参数
*.substr(starti,n);//n代表的是截取的个数,不必考虑含头不含尾

8、*替换字符串:

本身这个方法非常的强大,但是由于我们暂时不会使用正则,所以我们只能替换固定的关键字,暂时比较挫
		var newStr=str.replace("固定关键字"/RegExp,"新内容");

9、*****切割/分割/分隔字符串:

作用:将字符串切割为数组:str<==>arr
var arr=str.split("自定义切割符")
	特殊:
	1、切割后,切割符就不在了
	2、如果你的切割符写的是"",切散每一个字符

10、去掉空白字符:

str.trim()/str.trimStart()/str.trimEnd() - 垃圾
11、根据我提供的字符串,将每个数据都取出来即可