一、数组ES5新增的方法
ES5新增数组的方法:
1.forEach()
作用:遍历数组类似for循环
返回值:无
语法:arr.forEach(function(item,index,arr){})
item: 每一个元素
index:每一个元素对应的下标
arr:数组本身,可选,可删除
// forEach: 遍历数组:没有返回值 var arr = [12, 4, 21, 56]; arr.forEach(function (item, index) { // console.log(item,index); console.log(arr[index]); //可以 })
2.map()
作用:遍历数组
返回值:新数组,给原数组的元素进行一些处理(变为原来的两倍)一下,
语法:arr.map(function(item,index,arr){returnitem*3})
item: 每一个元素
index:每一个元素对应的下标
arr:数组本身,可选,可删除
// map:遍历数组 返回一个映射后的数组 var arr = [12, 4, 21, 5]; var res = arr.map(function (item, index) { return item * 2; }) console.log(res);
3.filter()
作用:过滤数组中满足某个条件的元素
返回值:过滤后的元素
语法:arr.filter(function(item,index,arr){returnitem>10})
item: 每一个元素
index:每一个元素对应的下标
arr:数组本身,可选,可删除
// filter(): 底层其实也在遍历,以数组返回过滤后的元素 var arr = [12, 4, 21, 5]; var res = arr.filter(function(item,index){ return item>10; }) console.log(res);
4.some() ||
作用:检测数组中是否含有满足条件的元素,
返回值:布尔类型,有一个满足条件就返回true
都不满足条件的返回false
语法:arr.some(function(item,index,arr){returnitem>10})
// some(): 检测数组中是否含满足条件的元素,有一个就返回true var arr = [12, 4, 21, 5]; var flag = arr.some(function(item,index){ return item>20; }) console.log(flag);
5.every() &&
作用:检测数组中是否每一个元素都满足条件的元素,
返回值:布尔类型,全部都满足条件就返回true
有一个不满足条件的返回false
语法:arr.every(function(item,index,arr){return item>10})
// every(): 检测数组中元素是否全部满足条件满足条件的元素,全部满足就返回true,有一个不满足就是false var arr = [12, 4, 21, 5]; var flag = arr.every(function(item,index){ return item>20; //--->结果false // return item>2; //---->结果true }) console.log(flag);//false
二、基本数据类型和引用数据类型
基本数据类型.
1.基本数据类型的变量存储的是值
2.基本数据类型的值存储在栈内存
3. 变量和变量存储的值互不影响
引用数据类型
1. 引用数据类行的变量存储的地址值
2. 引用数据类型的值存储在堆内存
3. 如果两个变量引用相同的地址值,指向堆内存的具体实体
三、字符串的定义和创建
1、var str=‘亲’;
基本类型(两者本质其实一样),定义一个字符串变量str,内容为‘亲’
2、var str = new String(“hello”); 引用类型,定义一个字符串变量str,内容为hello,
注意此刻str为object(对象)类型,用new产生的变量都是引用类型的变量,也叫对象。
var s1 = "string";
var s2 = new String("string");
console.log(typeof(s1)); //输出的是 string
console.log(typeof(s2)); //输出的 object
四、字符串的长度&遍历字符串&字符的特点
字符串长度:str.length
var str= 'abcdggs'; console.log(str.length);//字符串的长度
遍历字符串:for循环和for in循环
// 遍历字符串 for(var i =0;i<=str.length-1;i++){ console.log(str[i]); }
字符串特点:ECMAScript 中的字符串是不可变的,也就是说,字符串一旦创建,它们的值就不能改变。要改变 某个变量保存的字符串,首先要销毁原来的字符串,然后再用另一个包含新值的字符串填充该变量。
- var lang = "Java";
- lang = lang +"script"
五、字符串常见API和属性
// 都不会改变原来的字符串
var str = 'sdfghjkl';
1.charAt()
含义:查找下标对应的字符
语法:str.charAt(索引)
返回值:下标对应的字符
var str = 'abcdefg' console.log(str.charAt(2));//根据下标找元素 console.log(str[2]);//根据下标找元素
2.charCodeAt(): ASCII表:
含义:查找下标对应的字符的ASCII表中的码值
语法:str.charCodeAt(索引)
返回值:下标对应的字符对应的码值
3.concat()
含义:拼接字符串(+)
语法:str.concat(str)
返回值:新的字符串
var str = 'ab&cdn'; var newarr = str.split('&'); console.log(newarr);//['ab','cdn']
4.indexOf()
含义:查找字符首次出现的下标位置
语法:str.indexOf('a')
返回值:下标位置 找不到-1
var str = 'abcdcefgh' console.log(str.indexOf('c')); //2
5.toLowerCase()/toUpperCase()
含义:toLowerCase()转小写
toUpperCase()转大写
语法:str.toLowerCase()
语法:str.toUpperCase()
返回值:转换后的结果
6.split():
含义:将字符串转为数组
语法:str.split('分割符')
返回值:分割后的数组
var str = 'a-b-c-d-e';// var newstr = str.split('-');//分割后变成数组 console.log(newstr);// ['a', 'b', 'c', 'd', 'e']
// 下面三个截取字符串
7.substr()
语法:str.substr(开始下标,截取长度)
含义:截取字符串
返回值:截取出来的字符串
8.slice()
语法:str.slice(开始下标,结束下标)
含义:截取字符串
返回值:截取出来的字符串(包左不包右)
9.substring() 不标准写法
语法:str.substring(开始下标,结束下标)
含义:截取字符串
返回值:截取出来的字符串(包左不包右)
10.replace() 替换
语法: str.replace(substr,newstr)
含义: 将str中首次出现的substr替换成newstr(后面讲正则的时候会让说到替换全部时)
var str = '张三你是sb,不好意思不想跟你说话'; // var str1 = str.replace('sb',"*");//产生了一个替换后的字符串,存储到str1变量中 str = str.replace('sb', "*");//产生了一个替换后的字符串,存储到str1变量中 console.log(str);
六、ASCII码表
计算机存储数据都是以二进制的形式存储的,二进制转为十进制,所以每个字符和十进制数有了一一对应的关系。
就是一个标准,把每个字符与一个0-255的数字对应起来,这样就可以把字符变为数字,而后变为二进制码了。
var str1 = "b";
document.write(str1.charCodeAt());
13--->回车
32--->space
48--->字符0
65--->A
97--->a
输入一个字符串,统计字符串中有多少个大写字母,小写字母,数字,空格,其他字符
var str = "12a45bcAAB+#$%^";
var count1 = 0;
var count2 = 0;
var count3 = 0;
var count4 = 0;
for(vari=0; i<str.length; i++){
if(str.charAt(i) >= 'A' && str.charAt(i)<='Z'){
count1++;
}elseif(str.charAt(i) >= 'a' && str.charAt(i)<='z'){
count2++;
}elseif(str.charAt(i) >= '0' && str.charAt(i)<='9'){
count3++;
}else{
count4++;
}
}
console.log(count1,count2,count3,count4);