一.基本包装类型
为了方便操作基本数据类型,JavaScript还提供了三个特俗引用类型:String,Number和Boolean。
基本包装类型就是把简单数据类型包装成复杂数据类型,这样基本数据类型就有了属性和方法。
按道理基本数据类型是没有属性和方法的,而对象才有属性和方法,但上面代码却可以执行,这是因为js 会把基本数据类型包装为复杂数据类型,其执行过程如下∶
二.字符串的不可变性
指的是里面的值不可变,虽然看上去可以改变内容,但其实地址变了,内存中新开辟了一个内存空间
当重新给str赋值的时候,常量"abc'不会被修改,依然在内存中
重新给字符串赋值,会重新在内存中开辟空间,这个特点就是字符串的不可变
由于字符串的不可变,在大量拼接字符串的时候会有效率问题
三.根据字符返回位置
字符串所以的方法,都不会修改字符串本身(字符串是不可变的),操作完成会返回一个新的字符串。
四.求某个字符出现的位置及次数
例子:查找字符串"abcoefoxyozzopp"中所有o出现的位置以及次数
核心算法:先查找第一个o出现的位置
然后只要indexof返回的结果不是-1就继续往后查找
因为indexOf只能查找到第一个,所以后面的查找,一定是当前索引加1,从而继续查找
代码如下:
根据位置返回字符
1.charAt(index)根据位置返回字符
遍历所有字符
2.charCodeAt(index)
返回相应的索引号的字符的ASCII值
目的: 判断用户按下了哪个键
3.str[index] H5 新增的
五.统计次数出现的最多的字符
核心算法:利用charAt()遍历这个字符串
把每个字符都存储给对象,如果对象没有该属性,就为1,如果存在了就+1
遍历对象,得到最大值和该字符
代码如下:
六.字符串操作方法
1.concat('字符串1','字符串2'...)
2.substr('截取的起始位置','截取几个字符');
3.替换字符 replace ('被替换的字符','替换为的字符')
4.字符串转换为数组split('分隔符')