【JavaScript】对象
JS Day 5 对象
对象
定义
对象(object):一种数据类型,无序的数据集合
对象特点:可以详细的描述某个事物
使用
声明语法
let 对象名={}
let person={}
对象由属性和方法组成
属性:信息/特征,为名词
方法:功能/行为,为动词
let 对象名={
属性名:属性值,
方法名:函数
}
属性
属性:数据描述性的信息
成对出现,包括属性名和值,二者之间用英文冒号:分隔
多个属性之间用英文逗号,分隔
属性是依附在对象上的变量(外面是变量,对象内是属性),对象属性没有顺序
属性访问
属性访问:获取对象里面的属性值
声明对象并添加若干属性后,可以使用 . 或 [] 获取对象中属性对应的值
let person={
name:'morley',
age:21,
sex='Female'
}
//way 1
console.log(person.name)
console.log(person.age)
//way 2
console.log(person['name'])
console.log(person['age'])
点后面的属性名一定不加引号
[]里面的属性名一定加引号
对象中的方法
方法:数据行为性的信息,本质是函数
let person={
name:'morley',
hello:function(){
document.write('hello js')
}
}
方法由方法名和函数构成,二者之间用 : 分隔
多个属性之间用 , 分隔
方法是依附在对象中的函数
对象中的方法访问
方法调用:声明对象并添加若干方法后,可以使用 . 调用对象中的函数
语法:对象.方法(),可以传参
let person={
name:'morley',
hello:function(){
document.write('hello')
}
}
person.hello()
操作
操作数据——增删改查
无论是属性或方法,同一个对象中出现名称一样的,后者会覆盖前者
增加属性
可以动态添加对象属性
let person={
name:'morley',
age:21,
}
person.hobby='football'
person['sex']='Male'
console.log(person)
新增对象中的方法
可以动态添加对象方法
person.move=function(){
document.write('move a little bit')
}
遍历
let obj={
name:'xxx',
age:20,
sex='MALE'
}
for(let k in obj){
console.log(k)
//打印属性名
console.log(obj[k])
//打印属性值
}
内置
内置对象
JS内部提供的对象,包括各种属性和方法
eg.
document.write()
console.log()
Math对象
提供一系列做数学运算的方法
1:random,生成[0,1)之间的随机数
2:cell,向上取整
3:floor,向下取整
4:max,找最大数
5:min,找最小数
6:pow,幂运算
7:abs,绝对值
生成任意范围的随机数
生成N~M之间的随机数
Math.floor(Math.random()*(M-N+1))+N
堆栈空间分配区别
栈
由操作系统自动分配释放存放函数的参数值、局部变量值等,其操作方式类似于数据结构中的栈
简单数据类型存放到栈内
堆
存储复杂类型(对象),一般由程序员分配释放,若程序员不释放,则由垃圾回收机制回收
引用数据类型存放到堆内
Day 5 EXAMPLE
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
.box {
width: 300px;
height: 300px;
background-color: pink;
margin: 100px auto;
}
</style>
</head>
<body>
<script>
// 简单数据类型存储的是值
let num1 = 10
let num2 = num1
num2 = 20
console.log(num1)
// 对象 引用数据类型 栈里面存储的是地址
let obj1 = {
age: 18
}
let obj2 = obj1
obj2.age = 20
// console.log(obj1, obj2)
console.log(obj1) // 20
</script>
</body>
</html>