for(var key in 对象){
//key 代表对象中的每个属性名
//对象[key] 属性名对应的属性值
console.log(key,对象[key]);//不能用person.key
}
练习:创建对象,保存一个学生的若干成绩(每个成绩是一个属性),遍历所有的成绩,计算出总成绩
//存在false 不存在true
console.log( 对象.属性名 === undefined );
//存在true 不存在false
console.log( 对象.hasOwnProperty('属性名') );
//存在true 不存在false
console.log( '属性名' in 对象 );
练习:创建商品对象,包含商品的编号,名称,价格;判断是否存在产地,如果不存在则添加该属性;判断是否存在价格,如果存在则将价格在原来的基础上加1000,最后打印该对象
var person = {
name:'东哥',
age:44,
sex:'男',
//方法,是一个匿名函数
play:function(){
console.log(this.name + '穿着泳衣玩单杠');
}
};
// var play = function(){ };
// play();
//调用对象中的方法
person.play();
练习:创建一个圆对象,包含有圆的半径和圆周率属性,计算圆的周长和面积两个方法,最后调用两个方法
//1.原始类型数据的存储
var a = 1;
//把a中的值赋值给了b
var b = a;
a = 2;
console.log(b);
//2.引用类型数据的存储
var ran = {
color:'红色',
size:'xx1'
}
//把对象赋值给另一个对象,把对象的地址赋给了另一个变量,此时两个变量指向同一个对象
var dong = ran;
//修改dong属性值,此时ran的属性也发生了变化
dong.color = '绿色';
console.log(ran);
//null 空,类型是对象object
//null表示对象,不指向任何的堆内存
//如果堆内存中的对象不被任何的地址指向,则该数据就会被销毁
由多个元素组成的数据集合,每个元素就是一个数据,与其他语言不同,ECMAScirpt中的数组每一项都可以保存任何类型的数据。并且ECMAScript数组的大小是可以动态调整的。
var student = ['蔡徐坤','鸡你太美'];
练习:创建数组,包含有一组笔记本数据
练习:创建数组,包含有一组城市名称
数组[下标]
,下标从0开始,如果不存在的元素返回undefined练习:创建数组,包含有多个爱好,修改其中的一个爱好,单独添加一个新的爱好,打印数组。
new Array(元素1,元素2,元素3...)
new Array(5)
//初始化元素个数为5,需要单独添加每个元素,也可以添加5个以上元素练习:创建数组,保存多个用户名
练习:创建数组,初始化数组元素个数为5,添加篮球场上5个位置
数组.length
,可以在数组的末尾添加新的元素: 数组[数组.length]=值
练习:创建一个空数组,使用数组长度往数组中添加若干个课程名称
for-in
既可以遍历关联数组,也可以遍历索引数组for(var key in 数组){
//key 每个元素下标
//数组[key] 每个下标对应的元素
}
使用for/while等,只能表里索引数组(遍历数组推荐这种写法)
for (var i = 0;i < 数组.length;i++) {
i 代表下标
数组[i] 代表下标对应的元素
}
练习:创建数组,包含多个姓名,要求把所有姓名为然哥的改为东哥
练习:创建数组,包含多个数字,获取这组数字的最大值
toString()
将数组转为字符串join(str)
将数组转为字符串,默认是按照逗号分隔元素,也可以按照指定的字符str作为分隔符concat(array1,array2)
用于拼接多个数组,array1,array2是需要拼接的数组