对象
object
是一种数据类型 有点类似于c++的对象
声明
let obj = {
数据成员: 属性值,
函数名: 函数体
}
let obj = {
uname: ‘我的名字’,
sex: ‘沃尔玛购物袋’,
add: function (x,y){
return x + y
},
chu: function (a,b){
return x/y
}
}
数据成员 与 函数名 都可以加引号,这样就可以用特殊符号进行命名,但是调用就只能用 对象名[‘名字’] 进行调用
调用
obj.数据成员
或者
obj[‘数据成员’] 记得加引号
如果调用的数据成员没有声明,会自动加到对象里面,函数成员也是一样
实在是松散的语言啊
遍历对象
使用 for in 语句
如果使用 for (let i in 数组) 那么i是从0开始的递增数字,也就是数组的下标,但是是字符串 所以不推荐in 数组
for (let i in 对象)
这里的 i 就是遍历对象里面的所以数据成员名,并且是字符串
所以调用时需要用 对象[i]
内置对象
Math
- 数据成员
Math.PT 就是兀的值
- 成员函数
random() 生成[0,1)的随机数
生成0~10的随机数 Math.floor(Math.random()*11) 因为随机数取不到1所以要乘11
随机抽取数组的一个元素 arr[Math.floor(Math.random()*arr.length)] 因为随机数取不到1所以最右边取不到
ceil() 向上取整
floor() 向下取整
round() 四舍五入取整
max(1,2,3,4) 可以写一堆数 找最大
min(1,2,3,4) 可以写一堆数 找最小
pow() 幂运算
sqrt() 开根
abs() 绝对值
对象的存储方式
在js中,数组,对象在栈中存储的都是地址,类似于c语言
js中是可以对数组与对象进行直接赋值的,但是传递的是地址,所以这种赋值类似于c++中的引用
如
let obj1={
name:10
}
let obj2=obj1
obj2.name=20
console.log(obj1.name)//此时打印的数值是20,因为obj1与obj2中存储的地址是一样的,它们指向的是同一块堆区