只有对象、复杂数据类型才有属性和方法。
1.将简单数据类型(string,number,boolean,null,undefined)包装为复杂数据类型
var temp = new String('haha');str = temp;//临时变量赋值给strtemp = null;//销毁临时变量 */
注意:字符串不可变,给字符串重新赋值或者拼接时,会开辟新空间,让指针指向不同的空间,而原本的空间和里面的内容不变
2.根据字符返回位置indexOf
var str = '改革春风吹,春天来了';console.log(str.indexOf('春'));//从前面开始的第一个匹配的下标console.log(str.indexOf('春', 3));//从索引3开始往后查找匹配console.log(str.lastIndexOf('春'));//从后往前匹配
例子1:案例1:查找字符串'abcoefoxyozzopp'中o出现的位置以及次数。
indexOf如果查不到目标就会返回-1,查到o之后不断改变新的索引+1,count用来计数
var str = 'abcoefoxyozzopp';var index = str.indexOf('o');var count = 0;while (index !== -1) {console.log(index);count++;index = str.indexOf('o', index + 1);}console.log('o出现次数:' + count);
类似的将数组中的red出现的位置和次数查找出来:
var arr = ['red', 'blue', 'green', 'pink', 'red'];var count = 0;var index = arr.indexOf('red');while (index !== -1) {console.log(index);count++;index = arr.indexOf('red', index + 1);}console.log('red出现次数:' + count);
3.根据位置返回字符charAt,有下列4种用法包括charCodeAt
var str = 'andy';console.log(str.charAt(3));//y//遍历字符串for (var i = 0; i < str.length; i++) {console.log(str.charAt(i));}//charCodeAt(index) 返回相应索引的字符ASCII码,判断用户按下了哪个键console.log(str.charCodeAt(0));//97// 3.H5新增特性console.log(str[0]);
判断对象是否有该属性,对象['属性名']
例子2:统计字符串'abcoefoxyozzopp'中出现次数最多的字符,并统计其数
方法:chaAt()遍历,将每个字符都存储给对象,对象有该属性为1,如果存在了+1
var str = 'abcoefoxyozzopp';var o = {};for (var i = 0; i < str.length; i++) {var chars = str.charAt(i);if (o[chars]) {//这里是对象访问,对象['属性名'],不过chars对应的是对象变量,所以不加引号o[chars]++;}else {o[chars] = 1;}}console.log(o);//遍历对象var max = 0;//存放出现最多的次数var ch = '';//存放出现次数最多的字符for (var k in o) {if (o[k] > max) {max = o[k];ch = k;}}console.log('出现最多的是' + ch + ' 共' + max + '次');
4.字符串操作方法
var str = 'haha';console.log(str.concat('pink'));//该方法等效于+// str.substr(start, length);//从start位置开始,取length个数//pptstr1 = 'andya';//replaceconsole.log(str.replace('a', 'b'));//用b替换a,只会替换第一个
如果想要替换所有的,用while循环,str.indexOf('o') !== -1,就进行替换。
spilt分隔符,根据分隔符划分为数组var str2 = 'red,pink,blue';console.log(str2.split(','));var str2 = 'red&pink&blue';console.log(str2.split('&'));
例子3:
var str = 'abaasdffggghhjjkkgfddsssss3444343';//1、 字符串的长度console.log(str.length);//2、 取出指定位置的字符,如:0,3,5,9等console.log(str.charAt(0));//不存在返回-1console.log(str.charAt(3));//3、查找指定字符是否在以上字符串中存在,如:i,c ,b等console.log(str.indexOf('i'));console.log(str.indexOf('j'));//4、 替换指定的字符,如:g替换为22,ss替换为b等操作方法console.log(str.replace('g', '22'));console.log(str.replace('ss', 'b'));//5、 截取指定开始位置到结束位置的字符串,如:取得1-5的字符串console.log(str.substr(1, 5));//从1开始取5个长度//6、 找出以上字符串中出现次数最多的字符和出现的次数var count = 0;var o = {};for (var i = 0; i < str.length; i++) {var chars = str.charAt(i);if (o[chars]) {//对象中有o[chars]++;}else {o[chars] = 1;}}console.log(o);var max = 0;var ch = '';for (var k in o) {if (o[k] > max) {max = o[k];ch = k;//k是存放字符的变量}}console.log('出现最多的是:' + ch + '共:' + max + '次'); */