JavaScript 对象;Math常用方法
简介
对象是一种数据类型,可以详细的描述描述某个事物
属性都是成 对出现的,包括属性名和值,它们之间使用英文 : 分隔
多个属性之间使用英文 , 分隔
属性就是依附在对象上的变量(外面是变量,对象内是属性)
属性名可以使用 "" 或 '',一般情况下省略,除非名称遇到特殊符号如空格、中横线等
//声明对象语法 let 对象名={}
let goods = {
//属性名 信息或叫特征(名词) :属性值
name: '保时捷',
num: '1',
weight: '2t',
address: '德国',
'shou jia': '一百万',
//方法名:功能或叫行为(动词) 方法名:函数
soup: function () {
console.log('1000匹');
}
}
//打印调用对象方法
console.log(goods);
console.log(goods.name);
console.log(goods['address']);
goods.soup(); //可直接选中调用对象中的函数
console.log(goods['shou jia']);
// []的方式进行属性访问 对象名['属性名'] 对象名[变量] []里面如果不加''会被当成变量
操作对象;增 删 改 查
<script>
let person = {
name: '李狗蛋',
age: 18
}
// 查:直接对象.属性即可
console.log(person.name);
console.log(person['age']);
// 增: 对象.属性 = 值 如果对象中没有设置的属性则会新增一个属性
person.sex = '男'
console.log(person);
// 增: 对象.方法 = 匿名函数 也可以动态为对象添加方法,语法更加灵活
person.sayHi = function () {
console.log('大家好~请多多关照');
}
console.log(person);
person.sayHi()
// 改: 对象.属性 = 值 如果对象中有对应的属性则会更新属性值
person.name = '张翠花'
console.log(person);
// 删: delete 对象.属性
delete person.name
console.log(person);
</script>
遍历对象
<script>
let person = {
name: '李狗蛋',
age: 18,
sex: '男'
}
// 利用 for in 遍历对象 key 代表属性名
for (let key in person) {
console.log(key);
// 在遍历对象的时候不能用 对象名.key的这种方式获取对象中的属性值
console.log(person.key); // 当前遍历的属性名
console.log(person[key]);// 当前遍历的属性值
}
</script>
数组练习
<script>
// 数组 里面可以放任何的数据类型
let arr = ['123', 999, [1, 2, 3, 4], true, null, undefined, { a: 1 }]
console.log(arr[2][3]); //打印4
console.log(arr[6].a); //打印1
console.log(arr[6]['a']); //打印1
// 数组对象
let students = [
{ name: '李狗蛋', age: 18, gender: '男', hometown: '广东省' },
{ name: '张翠花', age: 19, gender: '女', hometown: '四川省' },
{ name: '赵铁柱', age: 17, gender: '男', hometown: '广西省' },
{ name: '钱多多', age: 18, gender: '女', hometown: '湖南省' }
]
console.log(students[2].name); //打印为数组索引第二项的对象名
</script>
内置对象Math 常用方法
// Math.random() 求从0 - 1 的随机数(包括0 不包括1)
console.log(Math.random() * 3); // 0 - 1 的随机数 * 3
// Math.ceil() 向上取整
console.log(Math.ceil(1.1)); //得出为2
console.log(Math.ceil(2.7)); //得出为3
console.log(Math.ceil(3.3)); //得出为4
// Math.floor() 向下取整
console.log(Math.floor(1.1)); //得出为1
console.log(Math.floor(2.7)); //得出为2
console.log(Math.floor(3.3)); //得出为3
// Math.max() 求最大值
console.log(Math.max(22, 33, 44, 1, 99)); //得出为99
// Math.min() 求最小值
console.log(Math.min(22, 33, 44, 1, 99)); //得出为1
封装随机数函数点名案例
<script>
// 封装随机数函数
function getRandom(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min
}
// 声明一个数组
let arr = ['赵云', '黄忠', '关羽', '张飞', '马超', '刘备', '曹操']
// 生成1个随机数 作为数组的索引号并 输出索引对应元素
let num = getRandom(0, arr.length - 1)
document.write(arr[num])
// 不允许重复出现之后删除这个 人的名字
// arr.splice(从哪里开始删, 删几个)
arr.splice(random, 1)
console.log(arr)
</script>
猜数字游戏案例
//求最大到最小值随机数公式
function getRandom(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min
}
<script>
// 随机数
function getRandom(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min
}
// 声明一个当前游戏的数字答案
let res = getRandom(1, 100)
// 声明变量条件让while开始循环 如果是错的 就继续执行循环
let isWrong = true
while (isWrong) {
let num = +prompt('请您输入数字')//此时用户输入的数字为true
// 判断 分支-> num > res ->您输入的数字太大了 num < res ->您输入的数字太小了
// num === res 您猜对了可真聪明,跳出循环break; isWrong = false
if (num > res) {
alert('您输入的数字太大了,再来一次吧')
} else if (num < res) {
alert('您输入的数字太小了,再来一次吧')
} else if (num === res) {
alert('您猜对了可真聪明')
// 退出循环
break
// isWrong = false
}
}
</script>