字符串的API

142 阅读5分钟

1、*****String的概念: 什么是字符串:多个字符组成的【只读】字符【数组】(只读:今天我们要学习的所有的字符串的API都不会修改原字符串,只会返回一个新字符串) 和数组有相同点: 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
	作用:***判断有没有!
	强调:数组也能使用此方法,数组这个方法其实是后期才添加上的,原本此方法只有字符串可用,比如老IE的数组就没有此方法
	鄙视题:默认只能获取第一个关键字的下标,如何才能获取到所有的关键字的下标呢?
		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() - 垃圾

周末作业: 0、抄笔记+写博客+熟记熟背每天的API 1、淡入淡出轮播(封装版和未封装版) 2、试试转义字符 3、模拟验证码,下午我们把他变成随机验证码 4、悄悄话:你写悄悄话,发到群里,其他人来解析,但是要告诉别人怎么解析 5、随机验证码 + 放在页面上 6、根据身份证号判断性别 7、解析一个邮箱地址,分别获得其中的用户名和服务器域名(不准使用切割) 8、计算一个字符串中:英文、中文、数字、其他字符,分别有几个? 9、根据身份证号输出:xxxx年xx月xx日 10、将一句英文中的每个单词的首字母转为大写 11、根据我提供的字符串,将每个数据都取出来即可