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
***包装类型:专门用于将原始类型的值封装为一个引用类型的对象的
为什么:原始类型的值原本是没有任何属性和方法,意味着原始类型本身是不支持.去做任何操作的
但是前辈们发现字符串经常会被我们程序员所操作,为了方便我们程序员所以将这个三人提供了包装类型(提供了属性和方法)
何时使用:只要你试图使用原始类型的变量调用属性或方法的时候,自动包装
何时释放:方法调用完毕后,自动释放包装类型,有变成了一个原始类型的值
为什么null和undefined不能使用. - 因为前辈们没有给他们提供包装类型
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、根据我提供的字符串,将每个数据都取出来即可