一.字符串
字符串:可以看成有多个字符组成的数组------但js中没有字符
特性:不可变性----字符串的值并不能改变
拥有数组的一一些特性:可有下标,可有长度,可循环,可当成数组,
--但并不能通过赋值的方法改变其中的某个字符的值
var str=new String('hello world');------空格也算一个空的字符
var str="hello world";
String方法
求字符:charAt(index) String.formCharCode()
求编码:charCodeAt(index)
连接字符:str.concat(str1);------str与str1连接
求索引:str.indexOf(" i ")---返回首次第一次出现的某字符的索引 str.lastIndexOf(...)---从后往前查找
截取字符:splice(start,end)---从start索引到end索引截取字符串,但并不包括结束索引
str.slice(0,2);--截取“0”位置和“2”位置的字符,但不包括末尾位置所代表的的字符
substring(start,end)----从start索引到end索引截取字符串,但并不包括结束索引
substr(start,number-截取数量)-----截取字符串,substr(0,2);--从索引“0”开始,截取两个字符
--splite(str);--可将字符串拆分为一个数组,需要一个字符串作为参数,根据字符串去拆分数组
------其中参数str 必须在数组中存在,才能拆分成数组
( --var str="abc,def,hij"
--var result=str.splite(" d")
--resule="abc,ef,hij";----此时字符串长度length==2;
--resule[0]=="abc";
--result[1]=="ef,hij"
)
转化为大写:toUpperCase(...);
转化为小写:toLowerCase(...);
二.数组
数组的方法:
--push()---数组末尾添加元素
--pop()--数组末尾删除元素,返回删除元素
--unshift()--数组开头添加元素
--shift()--数组开头删除元素,返回删除元素
--forEach()--数组的遍历---参数:回调函数,创建但并不调用
--arr.forEach(function(value(正在遍历的元素),index(正在遍历元素的索引),obj(正在遍历的数组)){
...
})
--slice(start,end);--截取数组中特定的元素,且不包括结束时的索引 代表的元素
--slice(0,2),--截取索引为“0”到索引为“2”的元素,不包括索引为“2”的元素
--索引为负数,则从后往前截取元素,----(-1倒数 第一的元素)
--splice(start(添加/删除的位置),number-数量,要追加的元素);--添加或删除数组中指定的元素,且将删除元素返回!!!
--参数:开始的位置索引,删除的数量,要追加的元素
--arr.splice(1,2,"一")----将从数组arr中索引位置为”1“的地方开始,删除两个元素,且添加一个元素”一“
concat(),--连接两个或多个数组,且将新数组返回
--arr.concat(arr1);--连接arr与arr1
join("..");--将数组转换为字符串,且返回字符串
--arr=["1","2"];
--var arr1=arr.join();
--var str=arr1="1","2";
reverse();--可以反转数组;--数组前面和后面颠倒
--arr=["一","二",“三”];
--arr.reverse();
--arr=["三","二","一"]
sort();--可对数组中所有的元素进行排序,默认会按照Unicode编码排序
--可以自定义排序规则;在sort函数中添加一个回调函数
三.经典案例
//输出一个字符串中各个字符的出现的次数
var str="abcoefoxyozzopp";
var obj={};//声明一个对象存储结果
for(var i=0;i<str.length;i++){
var key=str[i];
if (obj[key]) {//存在
obj[key]++;
} else {
//如果对象中没有这个属性,那就把这个字符添加到对象中去,并且给这个属性赋值=1
obj[key] = 1;//a:1 b:1
}
}
console.log(obj);
for(var key in obj){
console.log(key+"出现"+obj[key]+"次");
}