07 JS CORE String字符串、内置对象、包装类型
正课:
1. ***String
什么是:
***内置对象:
***包装类型:
字符串API:
1. 什么是: 多个字符组成的只读字符数组(本质上为数组)
vs 数组:
相同:1、都能用下标i访问每个元素/字符
2、都有length属性记录元素/字符个数
3、都支持slice()选取子数组/子字符串
4、都能用for循环便利每个元素/字符
不同: 1、数组可随意修改原数组,但字符串是只读字符数组,数组中凡是直接修改原数组的API,字符串都不能用!
2、类型不同:数组是Array,字符串是String,两者API不通用!;
2. 内置对象: ES标准中规定的,浏览器厂商已经实现的现成的对象和API
11个: Number String Boolean ------------包装类型
Array Date RegExp Math
Error
Function Object
Global(全局 浏览器中被替换为window)
3. 包装类型对象:
什么是: 专门封装基础类型的值,并提供操作基础类型值的API的对象
为什么: 基础类型的值,本身不包含任何API功能
何时: 只要试图对基础类型的值调用API时,都会自动创建对应类型的包装类型对象来封装基础类型的值。
调用后: 包装类型对象,自动释放!
比如: var n=345.678;
n.toFixed(2)=>345.678.toFixed(2)
=>new Number(345.678).toFixed(2)
4. String的API:
***所有字符串API都无权修改原字符串,只能返回新字符串!
大小写转换: 将字符串中所有英文字母转为统一的大小写
何时: 只要不区分大小写时,都要先转为一致的大小写,再判断。 比如: 用户名,邮箱地址,验证码
如何: str.toUpperCase() //都转大写
str.toLowerCase() //都转小写
获得指定位置的字符: str[i]
var char=str.charAt(i);
获得指定字符的unicode号:
var unicode=str.charCodeAt(i); //省略i,默认是0
将unicode号反向转回文字
var char=String.fromCharCode(unicode);
选取子字符串: str.slice(starti,endi+1)
str.substring(starti,endi+1) 不支持负数参数
str.substr(starti,n): 选取starti开始的n个元素