1.检测属性是否存在 01.js
(1)hasOwnProperty('属性名') //true->存在 false->不存在
(2)'属性名' in 对象 // true->存在 false->不存在
(3)对象.属性名===undefined //true->不存在 false->存在
2.数据在内存中的存储方式
原始数据类型存储在栈内存中,存储的就是数据的值
引用类型存储在堆内存中,存储的是对象的地址
3.数组创建
数组也是一种数据类型,是数据的集合,可以存储其他任何的数据类型。
(1)数组直接量
var arr=[元素1,元素2...] |
(2)内置构造函数
var arr=new Array(元素1,元素2,元素3...) var arr=new Array(3); //创建数组长度是3,每一个数组元素的值是空 |
练习:
1.创建数组,保存5个国家的名称
2.创建数组,保存3个人的信息(姓名,性别,年龄)-->3个对象
4.数组的访问 04.js
数组名[下标] 下标从0开始
往数组中添加新的元素 arr[arr.length]=新的元素
arr.length 获取数组中元素的个数
练习:信息录入,使用循环弹出提示框,每次输入一个姓名,把输入的姓名放入到数组中;并打印结果;直到输入quit,不再弹出提示框。
5.undefined哪些地方出现过
①声明了变量,未赋值
②如果实参的数量小于形参,未赋值的形参结果也是undefined
③如果访问对象中不存在的属性,结果也是undefined.
④创建数组,未初始化数据,数组元素也是undefined
6.数组遍历
使用for循环遍历数组的下标
练习:创建一个数组,包含5个车名,单独添加两个车名,遍历数据
数组的分类:
数组分为索引数组和关联数组
索引数组:下标以数字的形式;
关联数组:下标以字符串的形式
关联数组只能使用for-in来遍历
索引数组既能使用for循环,也能使用for-in来遍历
练习:创建数组,保存学生的成绩,使用遍历数组来获取总分以及平均分是多少。
var arr=[80,79,68,96];
练习:求数组中的最大值 var arr=[5,10,105,32,79]
①假设第一个数就是最大值 var max=arr[0]
练习:使用函数,传递一个参数,格式是数组,返回数组中的最小值
练习:查找一个数组中指定元素的位置的下标。
7.数组中的方法
Js中提供的数组方法称为 数组API
to.String() 将数组转为字符串
join([参数]) 返回字符串,参数表示元素之间的分割符,默认是逗号
concat(参数1,[参数2]...) 拼接多个数组
slice(start,end) 截取数组元素,start表示开始,end表示结束(不包含end本身) start~end-1
如果end为空,表示截取到最后
splice(start,count,value...)删除数组元素;start表示开始,count表示删除数量,如果count为空,表示删除到最后
reverse() 翻转数组元素
sort([参数]) 对数组元素进行排序,默认是按Unicode码从小到大排列。
数字的大小排序 sort(function(a,b){ //return a-b; 从小到大 //return b-a; 从大到小 }) |
push(参数) 在数组的最后添加元素,原数组会发生变化
pop() 删除数组最后一个元素
unshift(参数) 在数组的最前边添加元素
shift() 删除数组的第一个元素
以上四个操作后,原数组会发生变化
课后任务:
1.复习今天内容,整理出思维导图
2.声明一个数组,包含4本书的对象(title,author,publish,page)
遍历数组,以及对象,每个对象占一行