对象
什么是对象
对象(object):JavaScript里的一种数据类型
可以理解为是一种无序的数据集合
对象的特点: 无序的数据集合, 可以详细的描述某个事物
对象使用
-
对象声明语法
let 对象名 = { }
-
对象有属性和方法组成
属性:信息或叫特征(名词)。
方法:功能或叫行为(动词)。
let 对象名 = {
属性名:属性值,
方法名:函数
}
-
属性:
数据描述性的信息称为属性,一般是名词性的。
-
. 对象属性没有顺序
-
属性都是成对出现的,包括属性名和值,使用英文 : 分隔
-
多个属性之间使用英文 , 分隔
-
属性就是依附在对象上的变量(外面是变量,对象内是属性)
-
属性名可以使用 "" 或 '',一般情况下省略,除非名称遇到特殊符号如空格、中横线等
-
属性访问
声明对象,并添加了若干属性后,可以使用 . 或 [' '] 获得对象中属性对应的值,我称之为属性访问。
简单理解就是获得对象里面的属性值
<script>
Let person = {
name: '刘德华',
age: '18',
sex: '男'
}
// 1 属性访问 对象名.属性名
console.log(person.name)
// 2 属性访问 对象名['属性名']
console.log(person['name'])
</script>
两种方式有什么区别?
点后面的属性名一定不要加引号
[] 里面的属性名一定加引号
后期不同使用场景会用到不同的写法
-
对象中的方法
数据行为性的信息称为方法,一般是动词性的,其本质是函数
<script>
Let person = {
name: '刘德华',
// 方法名:function() {}
sayHi: function() {
document.write('hi~~')
}
}
</script>
-
方法是由方法名和函数两部分构成,它们之间使用 : 分隔
-
多个属性之间使用英文 , 分隔
-
方法是依附在对象中的函数
-
方法名可以使用 "" 或 '',一般情况下省略,除非名称遇到特殊符号如空格、中横线等
-
对象中的方法访问
声明对象,并添加了若干方法后,可以使用 . 调用对象中函数,我称之为方法调用。
<script>
let obj = {
name: '刘德华',
// 添加方法
// 方法名:function() {}
sayHi: function (str) {
document.write(str)
}
}
// 方法访问 对象方法可以传参
obj.sayHi('hi~~')
</script>
注意: 千万别忘了给方法名后面加小括号
操作对象
对象本质是无序的数据集合, 操作数据无非就是 增 删 改 查.
查: 查询对象(访问对象)
查询对象的属性: 对象名.属性名 或者 对象名[‘属性名’] 查询对象的方法: 对象名.方法名()
改:重新赋值
修改对象的属性: 对象名.属性名 = 属性值 修改对象的方法: 对象名.方法名 = function() {}
<script>
let obj = {
name: '刘德华',
sayHi: function (str) {
console.log(str)
}
}
// 修改对象的属性: 对象名.属性名 = 属性值
obj.name = '小刘'
console.log(obj)
// 修改对象的方法: 对象名.方法名 = function() {}
obj.sayHi = function () {
console.log('冰雨')
}
obj.sayHi()
</script>
增: 对象添加新的数据
添加对象的新属性: 对象名.新属性名 = 新属性值 或者 对象名['新属性名'] = 新属性值
添加对象的新方法: 对象名.方法名 = function() {}
<script>
let obj = {
name: '刘德华',
sayHi: function (str) {
document.write(str)
}
}
// 给对象添加新属性: 对象名.属性名 = 属性值
// 给对象添加新属性: 对象名['属性名'] = 属性值
obj.age = 18
obj['sex'] = '男'
console.log(obj)
// 给对象添加新方法: 对象名.方法名 = function() {}
obj.sing = function () {
console.log('冰雨')
}
obj.sing()
</script>
删: 删除对象中属性
delete 对象名.属性名
<script>
let obj = {
name: '刘德华',
age: 18,
sex: '男',
sayHi: function (str) {
console.log(str)
}
}
// 删除对象的属性: delete 对象名.属性名 或者 delete 对象名['属性名']
// 删除对象的方法: delete 对象名.方法名 (不要括号)
delete obj.name
delete obj['age']
delete obj.sayHi
console.log(obj)
</script>
遍历对象
遍历对象 对象没有像数组一样的length属性,所以无法确定长度 对象里面是无序的键值对, 没有规律. 不像数组里面有规律的下标
一般不用这种方式遍历数组、主要是用来遍历对象 一定记住: k 是获得对象的属性名, 对象名[k] 是获得 属性值
<script>
let obj = {
name: '刘德华',
age: 18,
sex: '男',
sayHi: function (str) {
console.log(str)
}
}
// 使用 for...in 语法来遍历对象 k 表示对象里面的属性名
// 访问对象的方法:1对象名.属性名 2对象名['属性名']
// 我们用的是 for...in 语法来遍历对象 访问对象的属性值 只能用 对象名['属性名']
for (let k in obj) {
console.log(k) //获得对象属性
console.log(obj[k]) //获得对象值
}
</script>
遍历对象的语句:for in
遍历对象中, for k in obj,获得对象属性是 k,获得对象值是 obj[k]
内置对象
内置对象是什么
JavaScript内部提供的对象,包含各种属性和方法给开发者调用
内置对象Math
Math对象是JavaScript提供的一个“数学高手”对象
提供了一系列做数学运算的方法
方法有: random:生成0-1之间的随机数(包含0不包括1) ceil:向上取整 floor:向下取整 max:找最大数 min:找最小数 pow:幂运算 abs:绝对值
生成任意范围随机数
<script>
function getRandom(min, max) {
min = Math.ceil(min);
max = Math.floor(max);
return Math.floor(Math.random() * (max - min + 1)) + min; //含最大值,含最小值
}
</script>