一.对象介绍
1.对象是什么:对象是一种复杂数据类型。
2.对象作用:以键值对方式存储多个数据。
3.对象和数组异同点
相同点:都是复杂数据类型,都可以存储多个数据
不同点:存储方式不同。
数组:有序存储
对象:无序存储(键值对)
<script>
// 1.使用基本使用数据类型
let name = '班长'
let age = 18
let sex = '男'
// 好处:阅读性高
// 弊端:冗余
// 2.使用复杂数据类型-数组
let arr =['班长',18,'男']
console.log(arr);
// 好处:一个变量存储多个数据
// 弊端:阅读性不高
// 3.使用对象
let obj ={ name:'班长',age:38, sex:'男'}
</script>
二.对象语法
<!-- 1.声明对象
let 对象名 = {
属性名:属性值,
属性名:属性值,
2.取值语法
对象名.属性名 -->
<script>
let obj = {
name:'班长',
age:18,
gfs:['小花','小美','小丽'],
sayHi:function(){
console.log(111);
},
}
console.log(obj);
console.log(obj.name);
console.log(obj.age);
console.log(obj.gfs);
console.log(obj.gfs[2]);
console.log(obj.sayHi);
console.log(obj.sayHi());
// 细节:对象中的属性值是什么数据类型,取出来的时候就可以使用这个类型的所有语法。
//如:对象中的属性值是 数组,则可以:对象名.属性名[下标]
//如:对象中的属性值是 函数,则可以:对象名.属性名()
</script>
三.对象操作(增删改查)
<script>
let obj = {
name:'班长',
age:18,
sex:'男',
}
// 1.查询语法(属性名存在,获取属性值;属性名不存在,获取underfined)
// a.点语法 对象名.属性名
// b.[]语法 对象名['属性名']
// a.点语法 对象名.属性名
console.log(obj.name ); //班长
console.log(obj.age );//18
console.log(obj.sex );//男
console.log(obj.country); //undefined
// b.[]语法对象名['属性名']
console.log(obj['sex'] );//男
// 2.修改属性
// a.对象名.属性名 = 值
// b.对象名['属性名'] = 值
obj.name ='李四';
obj['age'] = 20;
console.log(obj);//{name:'李四',age:20,sex:'男'}
// 3.新增属性
// a.如果对已经存在的属性赋值,则是修改
// b.如果对不存在的属性赋值,则是新增
obj.hobby ='学习'
console.log(obj); //{name: '李四',age:20,sex:"男',hobby:'学习'}
// 4.删除对象属性
// delete 对象名.属性名
delete obj.age
console.log(obj);//{name:'李四',sex:'男',hobby:'学习"}
</script>
四.对象遍历
1.遍历数组:for循环
for(let i = 0; i < arr.length; i++){ arr[i] }
2.对象遍历:特殊的for-in循环(专门用于遍历对象)
for(let key in 对象名){ 对象名[key] }
<script>
let obj = {
name:'班长',
age:18,
sex:'男',
hoddy:'学习'
}
for( let key in obj ){
console.log( key );//'name' 'age' 'sex' 'hoddy'
console.log( obj[key] );//'班长' '18' '男' '学习'
}
</script>
五.Math对象
1.内置对象:属于object对象,由js作者提前写好的对象,里面存储了一些属性和方法,直接拿来使用即可
说人话:相当于手机内置应用,如短信、电话。一买来就自带,直接使用。
2.Math: 数学对象
Date:日期对象
Function:函数对象
RegExp:正则表达式
Array:数组对象
String:string对象
Boolean:boolean对象
Number: number对象
<script>
// 1.圆周率
console.log(Math.PI); //3.141592653589793
console.log(Math.PI);
// 2.绝对值
console.log(Math.abs(-2)); //2
console.log(Math.abs(-999));//999
// 3.找最大值/最小值
console.log(Math.max(10,20,30,40,50)); //50
console.log(Math.min(10,20,30,40.50)); //10
// 4.幂运算:Math.pow(x,y)求x的y次方
console.log(Math.pow(2,3));//8
// 5.随机数 0-1随机小数
console.log(Math.random()*100);
//6.向上取值/向下取值:Math.celi() Math.floor()
// 向上取值,无论是正数还是负数,都取最大的值。
// 向下取值,无论是正数还是负数,都取最小的值。
console.log(Math.ceil(1.2));//2
console.log(Math.ceil(-1.2));//-1
console.log(Math.floor(1.8));//1
console.log(Math.floor(-1.8));//-2
// 7.四舍五入:Math.round()
console.log(Math.round(1.5));//2
console.log(Math.round(-1.5));//-1
console.log(Math.round(-1.51));//-2
</script>