day 08
复习
数组
数据的集合
创建方式 2种
字面量创建 []
new Array(3);
访问数组元素 下标 数组[下标]
添加元素
数组长度
关联数组(以字符串为下标), 索引数组
遍历:
for -in
for循环
数组中的api
转字符串 2个
toString()
join()
拼接多个数组
concat
截取数组中的元素
slice
删除,插入,替换
splice
翻转数组
reverse()
排序
sort()
sort(function(a,b){
return a-b;
})
在数组的末尾操作元素
push() 添加
pop() 删除
在数组的头部操作
unshift()添加
shift() 删除
作业:
使用数组遍历,将数组的元素反转
只用冒泡排序对数组中的数字从小到大排序.
对象和数组之间的关系
练习: 创建数组,包含若干个员工,(姓名,性别,年龄)
// 数组中的对象
var emp=[
{name:'tom',sex:'男',age:18},
{name:'kate',sex:'女',age:20}
];
console.log(emp);
练习: 创建对象(某个学员),学号,姓名,爱好
对象中的数组
var person={
id :1,
name:'赵日天',
love:['日天','日地','日空气']
}
console.log(person.love[0]);
// 数组中的数组
var s=[['1','2'],['2']];
console.log(s[0]);
总结:
对象中的属性可以是数组
数组中也可以存储多个对象
数组中也可以有数组---> 数组中的数组
二维数组
数组中的每个元素也是数组
var arr=[[],[],[]];
访问二维数组中的元素
arr[下标][下标];
字符串对象
字符串怎么是对象啊?
计算中包装对象 ---> 一共提供了3种包装对象
字符串String, 数值Number , 布尔型Boolean
将任意类型转为 字符串 String()
new String(true); 转为字符串,返回对象
String(true); 转为字符串,返回字符串
为什么要包装对象啊?
因为对象有一组属性和方法,
只有对象才有属性和方法
目的: 为了让原始数据类型可以像引用类型数据一样,具有属性和方法,
其本质是哪个还是原始数据类型.
// var str1='小然';
//把一个数据包装成对象
var str1=new String('小然');
var str2=new String(2);
//console.log(str1,typeof str1);
//console.log(str2,typeof str2);
//console.log(str1+'180斤');
//一般都是这样做, 直接new的不常用
var str3='你好';
var str4=String(true);
console.log(str4,typeof str4);// true string
// 将数组转成字符串
var str5=String([2,3,4]);
console.log(str5);
转义字符 \
转换字符本身的意义
\n 将字符n 转移成换行符
\' 将具有特殊意义的引号装成普通符号.
字符串的api
toUpperCase() //将英文字母转为大写
tolowerCase() //将英文字母转为小写
length 是个属性, 返回字符串的长度(数量)
charAt() 获取 下标对应的字符,等价于 字符串[下标]
indexOf('s') 获取某个字符的下标, 有返回下标,没有返回 -1
indexOf(str, start); 查找字符出现的下标,从指定下标开始.找不到返回 -1
lastIndexOf(str); 获取最后一次的出现的下标 ,找不到返回-1
slice(start,end) ;截取字符串,start开始的下标,end结束的下标,含头不含尾
如果end为空,则截取到最后, 如果为负数,表示倒数
substr(start,count);截取字符串,start开始的下标,count是截取的数量,如果
count为空,截取到最后,start为负数表示倒数
substring(start,end) ; 截取字符串, start 开始的下标,end结束的下标,
如果end为空截取到最后,如果为负数,自动转成 0
如果 start 大于end ,位置会自动交换.
对比slice() 和substring();
slice() 下标允许使用负数, substring() 下标为负数自动转成 0
slice() 中开始的下标要小于结束的下标,substring()的下标不分顺序
将字符串分隔成数组
之前数组可以转成字符串:
var arr=['西瓜','冰柜','啤酒'];
console.log(arr.join('-'));
var str='西瓜-冰柜-啤酒';
console.log(str.split('-'));
split(str) 将字符串按照指定的字符 str 分割成数组,和数组下的方法join()方法是相对的.
split('')可以拆分每个字符 如: "abcdefj"可以拆成每个字符就是一个元素,返回值是一个数组.
var str='aTos';
//转为大写
console.log(str.toUpperCase());
// 转为小写
console.log(str.toLowerCase());
//查看字符的长度
console.log(str.length);
// 字符串也是有下标的, 也就是说String是数组实现的
console.log(str[2]);
//练习, 计算javascript中a字符出现的次数
var s='javascript';
for (var i=0,num=0;i
匹配模式
作用: 用于查找替换字符串
(1)查找
str.match("字符串") 用于查找匹配的字符串,返回所有满足条件的字符串.
如何全匹配,
正则表达式的验证, /数据/ 中写上数据 可以达到全匹配的效果
str.match(/字符串/g)
g-global : 全局模式(贪婪模式), 可以找到全部相同的数据
i-ignore :忽略的意思
str.match(/数据/ig); 忽略大小写,全局去找
(2)查找字符串的下标
str.search(/wenhua/) 用于查找满足条件的字符串的下标,找不到返回-1
功能和indexOf()一致.
忽略大小写 i 忽略
str.search(/wehua/i) 找不到 返回-1; 只查找最先出现的下标
(3)查找并替换
repace(value1,value2):查找并替换,value1 是要查找的字符串,value2是要替换的字符串.
str.replace(/wenhua/ig,'文化老师');
找到所有的匹配的字符串,去替换成指定数据
数学对象 Math对象 都是Js的对象
回顾: new Object()/new Array()/new String() 创建对象/实例化对象
Math对象不需要new ,也就是不需要创建对象,可以直接使用
Math.PI 圆周率
Math.abs(数据); 取绝对值
parseInt() 取整
Math.floor(数据); 向下取整
Math.ceil(数据): 向下取整
Math.round(数据); 四舍五入
Math.max(一组数据); 取最大值
Math.min(一组数据); 取最小值
Math.pow(3,2); 3的2次幂
还可以这样 3**2; 也表示3的2次幂.
Math.random(); 取随机数 区间 0<=x<1 注: 产生的随机数是一个小数.
通常我们需要和取整方法 搭配使用.
作业:
将一句英文每个单词的首字母装成大写,其余小写
hoW aRe You ---> How Are You
随机取 a-z A-Z 0-9 之间的4个字符,把取到的结果放入一个新数组中,注: 不能重复