对象
可以理解为一种无序的数据集合
比如 描述学生信息
- 静态特征(姓名,年龄,性别,身高…) ——> 使用数字, 字符串, 数组, 布尔类型等表示
- 动态行为 (唱歌,跳舞,打篮球)——> 使用函数表示
语法
声明语法
对象由属性和方法组成
代码语言:javascript复制 let 对象名 = {
属性名:属性值,
方法名:函数
}
1. 属性:
信息或叫特征(名词) 例如:
代码语言:javascript复制let person = {
uname: 'Tricia',
age: 18,
gender: '女'
}
- 属性都是成对出现的,包括属性名和值,它们之间使用英文 : 分隔
- 多个属性之间使用英文 , 分隔
- 属性就是依附在对象上的变量(外面是变量,对象内是属性)
- 属性名可以使用 “” 或 ‘’,一般情况下省略,除非名称遇到特殊符号如空格、中横线等
属性访问 可以使用.或者[]获得对象 例如: 1.
代码语言:javascript复制let person = {
uname: 'Tricia',
age: 18,
gender: '女'
}
console.log(person.uname)
console.log(person.age)
console.log(person.gender)
let person = {
uname: 'Tricia',
age: 18,
gender: '女'
}
console.log(person['uname'])
console.log(person['age'])
console.log(person['gender'])
2. 方法:
功能或叫行为(动词) 例如:
代码语言:javascript复制let person = {
name: 'Tricia'
sayHi: function() {
document.write('Hi~~~~~')
}
}
- 方法是由方法名和函数两部分构成,它们之间使用 : 分隔
- 多个属性之间使用英文 , 分隔
- 方法是依附在对象中的函数
- 方法名可以使用 “” 或 ‘’,一般情况下省略,除非名称遇到特殊符号如空格、中横线等
方法访问: 对象名.方法名() 注意:一定不要忘记()
代码语言:javascript复制person.sayHi()
操作对象
操作数据就是增 删 改 查
1. 对象添加新的数据
添加属性
对象名.新属性名 = 新值
代码语言:javascript复制let goods = {
name: '小米10 青春版',
num: 1000011026024,
weight: '0.55kg',
address: '中国大陆'
}
goods.price = 1099
添加方法
对象名.方法名 = function() { 方法 }
代码语言:javascript复制let goods = {
name: '小米10 青春版',
num: 1000011026024,
weight: '0.55kg',
address: '中国大陆'
}
goods.useMethod = function() {
alert('欢迎使用')
}
2. 删除对象中的属性
delete 对象名.属性名
3. 修改对象中的值
对象.属性 = 值 对象.方法 = function() {}
4. 查询对象
对象.属性 (或者 对象[‘属性’]) 对象.方法()
遍历对象
对象和数组区别
- 对象没有像数组一样的length属性,无法确定长度
- 对象里面是无序的键值对,没有规律,不像数组里面有规律的下标
如何遍历?
语法:
for in
- 一般不用这种方式遍历数组、主要是用来遍历对象
- 一定记住: k 是获得对象的属性名, 对象名[k] 是获得 属性值
let obj = {
uname : 'Tricia',
age : 18,
gender : '女'
}
for (let k in obj) {
// k 是获得对象的属性名
console.log(k) // 打印属性名
console.log(obj[k]) // 打印属性值
// 对象名[k] 是获得属性值
}
内置对象
JavaScript内部提供的对象,包含各种属性和方法给开发者调用
Math
提供了一系列数学运算方法。
方法有
random:生成0-1的随机数
- 生成0-10的随机数
Math.floor(Math.random() * (10 1))
2. 生成5-10的随机数
Math.floor(Math.random() * (5 1)) 5
3. 生成N-M之间的随机数
Math.floor(Math.random() * (M - N 1)) N
ceil:向上取整
代码语言:javascript复制console.log(Math.ceil(0.95));
// expected output: 1
console.log(Math.ceil(4));
// expected output: 4
console.log(Math.ceil(7.004));
// expected output: 8
console.log(Math.ceil(-7.004));
// expected output: -7
floor:向下取整
代码语言:javascript复制Math.floor( 45.95);
// 45
Math.floor( 45.05);
// 45
Math.floor( 4 );
// 4
Math.floor(-45.05);
// -46
Math.floor(-45.95);
// -46
max:找最大数
Math.max(value1[,value2, ...])
console.log(Math.max(1, 3, 2));
// expected output: 3
console.log(Math.max(-1, -3, -2));
// expected output: -1
const array1 = [1, 3, 2];
console.log(Math.max(...array1));
// expected output: 3
min:找最小数
Math.min([value1[,value2, ...]])
abs:绝对值
代码语言:javascript复制Math.abs('-1'); // 1
Math.abs(-2); // 2
Math.abs(null); // 0
Math.abs("string"); // NaN
Math.abs(); // NaN