W3school
mdn
一.数组
reverse() 翻转数组元素
sort() 对数组进行排序,默认是按照Unicode码排序
sort(function(a,b)){
return a-b;//按照数字从小到大
//return b-a;//按照数字从大到小
}
concat() 拼接多个数组
如何学API
(1)作用
(2)参数
(3)返回值
数组API还需要查看原数组是否发生变化
slice(start,end)截取数组元素,start开始的下标,end结束的下标,end为空截取到最后,下标为负数表示倒数,不包含结束的这一项;返回截取到的元素
练习:创建数组包含a~h,分别截取bcd,f,将截取这两个数组拼接成一个新的数组
var arr=['a','b','c','d','e','f','g','h'];
var arr1=arr.slice(1,4);
var arr2=arr.slice(5,6);
console.log(arr1);
console.log(arr2);
console.log(arr1.concat(arr2));
splice(start,count,v1,v2..)删除数组元素,start开始的下标,count删除的数量,count为空删除到最后,下标为负数表示倒数,v1,v2...表示删除后补充的元素,返回删除的元素;原数组会发生变化
练习:创建数组,包含a~h,每个字母是一个元素,删除cd,替换f为m,在下标为1的位置插入z
var arr=['a','b','c','d','e','f','g','h'];
arr.splice(2,2);
arr.splice(-3,1,'m');
arr.splice(1,0,'z')
console.log(arr);
push() 在数组的末尾添加若干个元素,返回数组长度,原数组会发生变化
pop() 删除数组末尾的一个元素,返回删除的元素,原数组会发生变化
unshift() 在数组的开头添加若干个元素,返回数组长度,原数组会发生变化
shift() 删除数组开头的一个元素,返回删除的元素,原数组会发生变化
indexOf() 检测数组是否含有某个元素,找到的返回下标,找不到返回-1
练习:声明变量保存任意两个福字,判断数组中是否含有'敬业福',如果没有则该福字添加到数组.
var arr=['爱国福','友善福'];
//判断是否含有敬业福
//如果没有
if(arr.indexOf('敬业福')===-1){
arr.push('敬业福');
}
console.log(arr);
二.二维数组
对数据进行二次分类
[ [元素1,元素2..],[ ],[ ] ]
访问
数组 [ 下标 ] [ 下标 ]
三、字符串对象
包装对象:
目的是为了让原始类型的数据一样具有属性和方法,JS一共有三种包装对象,分别是字符串对象/数值对象/布尔对象
new String() 将字符串包装为对象
String() 是一个函数,将任意数据强制转为字符串
1.转义字符--\
\ ' 将具有特殊意义的引号转为普通引号
\n 将普通的字符n转义为换行符
\t 将普通的字符t转移为制表符(tab键,产生多个连续空格)
练习:打印输出以下结果
C:\Users\web
2.API
var str='涛哥playing';
//查看字符串的长度
console.log(str.length);
//字符串在调用属性和方法的时候,会自动包装为对象,然后再调用属性和方法
console.log(new String(str).length);
length 获取字符串的长度
charAt() 获取下标对应的字符,可以使用数组的写法 字符串[下标]
练习:遍历字符串javascript,统计出字符a出现的次数
var str='javascript';
for(var i=0,count=0;i<str.length;i++){
//console.log(str.charAt(i),str[i]);
//判断每个字符是否为a
if(str[i]==='a'){
count++;
}
}
console.log(count);
//查看字符串中是否含有某个字符(串)
var str='javascript';
console.log(str.indexOf('a'));
console.log(str.lastIndexOf('a'));
indexOf() 查看字符串中是否含有某个字符串,返回的是满足条件的第1个,找不到返回-1
lastindexOf() 查看字符串中是否含有某个字符串,返回的是满足条件的最后1个,找不到返回-1
练习:声明变量保存用户输入的邮箱,如果邮箱中不含有@字符,打印'非法的邮箱'
var users='4565698798qq.com';
if(users.indexOf('@')===-1){
console.log('非法的邮箱');
}
var str='javaScript';
//英文字母转大写
console.log(str.toUpperCase());
//英文字母转小写
console.log(str.toLowerCase());
toUpperCase() 英文字母转大写
toLowerCase() 英文字母转小写
所有的字符串API都不会对原来的字符串产生影响,都是会生成一组新的字符串
slice(start,end) 截取字符串,start开始的下标,end结束的下标,end为空截取到最后,下标为负数表示倒数,不包含end这一项,返回截取的字符串
练习:声明变量保存用户输入的邮箱,分别截取出邮箱的用户名和域名 tao123@163.com
var email='tao123@163.com';
//查找@的下标
var n=email.indexOf('@');
//console.log(n);
//截取用户名
var user=email.slice(0,n);
//截取域名
var domain=email.slice(n+1);
console.log(user,domain);
split() 将字符串转为数组
练习:翻转字符串javascript
var str='javascript';
//将字符串转为数组,每个字符是一个元素
//按照空字符串切割
var arr=str.split('');
//翻转数组
//转为字符串
console.log(arr.reverse().join(''));
var str='hOW aRE yOU';
//将字符串转为数组
var arr=str.split(' ');