对象
对象是什么?
对象是一种数据类型,无序数据的集合
特点:
无序数据的集合.可以详细的描述某个事物
对象的使用
对象声明语法
let 对象名 = {}
列如
//声明一个person的对象
let person = {}
属性
数据描述性的信息称为属性,如人的姓名,身高,年龄,性别等,一般是名词性的.
let person = {
uname: `andy`,
age: `18`,
sex: `男`
}
属性都是成对出现的,包括属性名和值,她们之间使用英文的:分隔
多个属性之间使用英文的,分隔
属性就是依附在对象上的变量(外面是变量,对象内是属性)
属性名可以使用""或'',一般情况下省略,除非名称遇到特殊符号如空格,中横线等.
属性的访问
声明对象,并添加若干属性后,可以使用,或[]获得对象中属性的值,我称之为属性访问.
简单来讲就是获得对象里面的属性值.
<script>
let goods = {
name:'小米手机',
price:1999,
size:'大'
}
//访问某一个属性
console.log(goods.name);
console.log(goods["name"]);
document.write(`商品的名称是:${goods.name},商品的价格是${goods.price},商品的型号是${goods.size}`)
document.write(`商品的名称是:${goods["name"]},商品的价格是${goods["price"]},商品的型号是${goods["size"]}`)
</script>
对象使用
掌握对象语法,用它保存多个数据
对象中的方法
数据行为性的信息称为方法,如跑步、唱歌等,一般是动词性的,其本质是函数。
let person = {
name : `andy`,
sayHi : function() {
document.write(`hi~~~`)
}
}
- 方法是由方法名和函数两部分构成,它们之间使用 : 分隔
- 多个属性之间使用英文 , 分隔
- 方法是依附在对象中的函数
- 方法名可以使用 "" 或 '',一般情况下省略,除非名称遇到特殊符号如空格、中横线等
方法的访问
let person = {
name : `andy`,
sayHi : function() {
document.write(`hi~~~`)
}
}
//对象名,方法名()
person. sayHi9()
注意:千万别忘了给方法名后面加小括号
<script>
let person = {
name:'andy',
sayHi: function (msg) {
document.write(msg)
return'来自person的问候'
}
}
person.sayHi('大家好<br>')
person.sayHi('你好<br>')
let result = person.sayHi('hello123')
console.log('========');
console.log(result);
</script>
操作对象
增加和改动
也可以动态的添加属性,动态添加与直接定义是一样的,只是语法上更加灵活.
<script>
let person = {}
//新加一个属性
person.username='普通人'
console.log(person.username);
let person1 = {
username : '程序员'
}
//修改一个属性
person1.username='普通人'
console.log(person1.username);
//增加属性和修改属性是同样的写法
//该属性对象中没有,表示新增
//该属性对象中有,表示修改
//新增方法
let person2 = {}
//新增方法.匿名函数.固定写法
person2.sayHi = function () {
document.write('这个是我们新增的sayHi方法')
}
person2.sayHi()//调用方法
</script>
删除
<script>
let person = {
usename:"海贼王"
}
delete person.usename//删除对象中的属性
console.log(person.usename);//undefined
</script>
对象打印的情况(细节)
<script>
let username = 'color'
let person = {
username: '海贼王',
color: 'yellow',
}
console.log(person.username);//固定用户海贼王
console.log(person["username"]);//海贼王
console.log(person[username]);//括号里没有冒号表示一个变量黄色
console.log(person['color']);//黄色
console.log(person[color]);//报错,color是一个变量,没有这个变量
console.log(person.safgaf );//undefined
</script>
遍历对象for in
对象没有像数组一样的length属性,所以无法确定长度
对象里面是无序的健值对,没有规律,不像数组里面有规律的下标
<script>
let obj = {
uname:'andy',
age:18,
sex:'男'
}
for (let key in obj) {
console.log(key);//key属性名
console.log(key,obj[key]);//obj[key]属性名,属性值
}
</script>
一般不用这种方式遍历数组.主要是用来遍历对象
一定记住:key是获的对象的属性名,对象名[key]是获得属性值
内置对象Math
常用
随机数 Math.random()返回0~1 包含0不包含1
向上取整Math.ceil()天花板函数
向下取整Math.floor()地板函数
四舍五入Math.round()
幂运算Math.pow(数值,指数)例Math.pow(2,3)2的立方
绝对值Math.abs()
数据类型
基本数据类型也叫值类型,存储在栈
引用数据类型,复杂类型,存储在堆里
区别
swithch-case
类似if没有if好用
<script>
//还是if更好用,这个不能写大于小于号,比较局限
let num = +prompt('请输入数字')
switch (num) {//(判断谁)
case 1: //如果是1
console.log('大喵')//执行
break; //结束
case 2: //如果是2
console.log('二面' );//执行
break //结束
case 3: //如果3
console.log('三');//执行
break //结束
default: //都不是
console.log('结束');//执行
break; //结束
}
</script>
do while
类似while,但是不管条件是否成立都会执行一次do中的代码
<script>
// 就算while里面的条件不成立,do里面也会运行一次再结束
let num = 0
do {
num++
console.log(num);
} while (false);
</script>