1.对象
(1)检测属性是否存在
对象.属性名 === undefined true -> 不存在 false -> 存在
对象.hasOwnProperty('属性名') true -> 存在 false -> 不存在
'属性名' in 对象 true -> 存在 false -> 不存在
练习:创建一个商品对象,包含商品的编号、标题、价格属性;如果颜色属性不存在,则添加该属性;如果价格属性存在,则打八折,最后打印对象。
(2)对象中的方法
方法对应的是一个函数
var person = { name: '涛哥', play: function(){ this 指代调用方法的对象 } }; person.play() //调用方法,play中this指向person |
练习:创建一个圆的对象,包含属性有半径和圆周率,添加计算周长和计算面积的两个方法,最后调用者两个方法
练习:创建一个计算器对象,包含计算任意两个数字相加,计算任意两个数字相减的方法;调用两个方法。
2.数据的存储
(1)原始类型存储
直接存储在栈内存中
(2)引用类型存储
将数据存储在堆内存中,同时会自动生成一个地址,然后把这个地址保存到栈内存(变量)中
引用类型数据占用内存空间比较大,如果要销毁,没有任何的地址所指向,就会自动销毁。直接赋值为null即可销毁
3.数组
就是一组数据的集合,每个数据称为元素
(1)数组字面量
[ 元素1, 元素2, ... ]
练习:创建数组,包含有一组商品的名称
创建数组,包含有一组成绩
(2)元素的访问
数组[下标]
下标从0开始的整数,如果下标不存在返回undefined
练习:创建数组,保存一组汽车的品牌名称,修改其中的元素,在末尾添加若干元素,打印数组。
(3)数组的长度
数组.length 获取数组元素的个数
数组[ 数组.length ] = 值; 可以在数组的末尾添加元素
练习:创建一个空数组,使用数组的长度属性不断添加元素。
(4)内置构造函数
new Array(元素1,元素2...)
new Array(3) 创建数组,初始化数组长度为3,可以添加更多个元素
练习:创建数组,包含有多个国家
创建数组,初始化长度为5,添加篮球场上的5个位置。
大前锋 小前锋 中锋 控球后卫 得分后卫
(5)数组的分类
索引数组:以0及以上整数作为下标 >=0
关联数组:以字符串作为下标,需要单独的添加元素
(6)数组的遍历
for-in for(var k in 数组){ k 代表下标 数组[k] 下标对应的元素 } |
循环 for(var i = 0;i < 数组.length; i++){ i 代表下标 数组[i] 下标对应的元素 } |
练习:创建数组,包含有一组成绩,将所有成绩在60分以下加10分;打印数组
练习:创建数组,包含所有学生的成绩,遍历数组,计算出总分和平均分。
(7)API
API:应用程序编程接口,JS下指提供好的函数或者方法
toString() 将数组转为字符串
join( str ) 将数组转为字符串,可以设置字符串之间的分割符
课后任务
(1)复习今天内容,整理思维导图
(2)练习
创建数组,遍历数组,翻转数组中的元素;
['a','b','c','d'] -> ['d','c','b','a']
创建数组包含一组数字,遍历数组,将数字进行从小到大排序(冒泡排序)
[78,6,45,23] [6,23,45,78]
(3)预习js第8天,字符串对象