5.22字符串学习
* 15.字符串对象
* 16.内置对象
* 17.String API
字符串对象
字符串:由多个字符组成的只读数组
只读:所有API都不能直接修改原字符串,必须返回新字符串
数组:凡是数组中不直接修改原数组的API,字符串都能用!
比如:
- 都可用下标访问每个字符:str[i]
- .length属性获得字符个数
- 获取子字符串: str.slice(starti,endi+1)
var str = 'Hello';
console.log(str[2]); //l
console.log(str.length); //5
console.log(str.slice(0,3)); //hel
内置对象
包装类型:专门封装原始类型的值,提供对值进行操作的方法
为什么使用:原始类型的值不带任何操作方法,必须通过包装类型提供对原始类型操作的方法
何时使用:在试图对原始类型的值调用方法时,js会自动创建对应的包装类型对象,封装原始类型的值。
*/
String API
所有API都无法修改原字符串,都会返回新字符串
- 大小写转换:
var newStr=str.toLowerCase(); //全部转小写
var newStr=str.toUpperCase(); //全部转大写
var newStr = 'Hello';
var rs = newStr.toLowerCase();
console.log(rs); //hello
console.log(newStr); //Hello
rs = newStr.toUpperCase();
console.log(rs); //HELLO
console.log(newStr); //Hello
2.获取指定位置的字符或unicode:
var char=str[i]
str.charAt(i);
var unicode=str.charCodeAt(i);
var str = 'Hello';
var rs = str[1];
console.log(rs);
rs = str.charAt(1);
console.log(rs);
console.log(newStr.charCodeAt(1)); //101
3.查找关键字的位置:2个API , 返回的都是关键字的位置下标
找下一个匹配的关键字位置:var i=str.indexOf("kword",starti)
如果省略starti,从0开始
找前一个匹配的关键子位置:
var i=str.lastIndexOf("kword",starti);
如果省略starti,从最后一位开始
starti:开始查找的位置
如果没找到,都返回-1
var str = '今天晨跑很爽,明天继续晨跑';
var i = str.indexOf('晨跑',5);
console.log(i); //11
var j = str.lastIndexOf('晨跑');
console.log(j); //11
var k = str.lastIndexOf('夜跑');
console.log(k); //-1
4.获取子字符串:3种:
var sub=str.slice(starti,endi+1); //支持负数
str.substring(starti,endi+1); //不支持负数参数
str.substr(starti,n);
var str = '01234567';
var rs = str.slice(-7,-2);
console.log(rs); //12345
rs = str.substring(0,4);
console.log(rs); //0123
rs = str.substr(0,4);
console.log(rs); //0123
5.切割字符串:
var arr=str.split("分割符");
切割后的数组中不包含分隔符的
var str = '123=456=789';
var arr = str.split('=');
console.log(arr);
console.log(arr[0]);