11-对象

110 阅读3分钟

什么是对象

  • 对象(object):JavaScript里的一种数据类型

  • 可以理解为是一种无序的数据集合

  • 用来描述某个事物,例如描述一个人

    • 人有姓名、年龄、性别等信息、还有吃饭睡觉打代码等功能
    • 如果用多个变量保存则比较散,用对象比较统一
  • 比如描述 班主任 信息:

    • 静态特征 (姓名, 年龄, 身高, 性别, 爱好) => 可以使用数字, 字符串, 数组, 布尔类型等表示
    • 动态行为 (点名, 唱, 跳, rap) => 使用函数表示

使用对象

  • 对象声明语法

    • let 对象名 = {}
      
  • 对象有属性和方法组成

    • 属性:信息或叫特征(名词)。 比如 手机尺寸、颜色、重量等…

    • 方法:功能或叫行为(动词)。 比如 手机打电话、发短信、玩游戏

    • let 对象名 = {
      	属性名:属性值,
      	方法名:函数
      }
      
    •  let dx = {
                  uname:'张三',
                  age:18,
                  sex:'男'
              }
      
    • 数据描述性的信息称为属性,如人的姓名、身高、年龄、性别等,一般是名词性的。

    • 属性都是成 对出现的,包括属性名和值,它们之间使用英文 : 分隔

       多个属性之间使用英文 , 分隔

       属性就是依附在对象上的变量(外面是变量,对象内是属性)

       属性名可以使用 "" 或 '',一般情况下省略,除非名称遇到特殊符号如空格、中横线等

  • 属性访问

    • 声明对象,并添加了若干属性后,可以使用 . 或 [] 获得对象中属性对应的值,我称之为属性访问。

      简单理解就是获得对象里面的属性值。

      image-20221103173449194

  • 对象中的方法

    • 数据行为性的信息称为方法,如跑步、唱歌等,一般是动词性的,其本质是函数。
    • 方法是由方法名和函数两部分构成,它们之间使用: 分隔
    • 多个属性之间使用英文, 分隔
    • 方法是依附在对象中的函数
    • 方法名可以使用"" 或'',一般情况下省略,除非名称遇到特殊符号如空格、中横线等

    image-20221103174449826

  • 对象中的方法访问

    • 声明对象,并添加了若干方法后,可以使用. 调用对象中函数,我称之为方法调用。
    • 注意:千万别忘了给方法名后面加小括号
    • image-20221103174838836

操作对象

对象本质是无序的数据集合, 操作数据无非就是 增 删 改 查 语法:

image-20221103184654645

新增属性

会去对象里面找是否有 这个属性,如果有则更新值修改

会去对象里面找是否有 这个属性,如果没有则新增这个属性

遍历对象

对象没有像数组一样的length属性,所以无法确定长度

对象里面是无序的键值对,没有规律。不像数组里面有规律的下标

let obj = {
	uname:'zhangsan'
	age:18,
	sex:'男'
}
for (let k in obj) {
	console.log(k) //打印属性名
	console.log(obj[k]) 打印属性值
}
for (let k in 对象) { }    //k是变量可以是任意名称
for (let k in obj) {
	console.log(k) //打印出来的是属性名 
}

内置对象

JavaScript Math 参考手册

Math对象是JavaScript提供的一个“数学高手”对象

提供了一系列做数学运算的方法

方法有:

  • random:生成0-1之间的随机数(包含0不包括1)

  • ceil:向上取整

  • floor:向下取整

  • max:找最大数

  • min:找最小数

  • pow:幂运算

  • abs:绝对值

console.log(Math.random())
console.log(Math.ceil(1.5))  //向上取整,返回整数

随机数生成

封装函数生成1~99随机数

function aaa (min,max) {
        return Math.floor(Math.random() * (max - min + 1)) + min       
    }
	let xxx = aaa(1,99)
	console.log(xxx)

随机点名

function aaa (min,max) {
        return Math.floor(Math.random() * (max - min + 1)) + min       
    }
    let arr = ['赵云','黄忠','关羽']
    let xxx = aaa(0, arr.length -1 )
    document.write(arr[xxx])

随机点名改进不重复

    function aaa (min,max) {
        return Math.floor(Math.random() * (max - min + 1)) + min       
    }
    let arr = ['赵云','黄忠','关羽']
    let xxx = aaa(0, arr.length -1 )
    // arr.splice(从哪开始删除,删除几个)
    arr.splice(xxx,1)
    console.log(arr)

猜数字游戏

<script>
        // 随机数
        function getRandom(min, max) {
            return Math.floor(Math.random() * (max - min + 1)) + min
        }
        // 生成 1~10 之间的随机数
        let random = getRandom(1, 10)
        // console.log(random)
        // 3. 用户输入 不断的弹框直到输入正确为止
        while (true) {
            let num = +prompt('请您输入一个数字:')
            // 如果输入的大于随机数就提示猜大了
            if (random < num) {
                alert('私密马赛,你猜大了')
            } else if (random > num) {
                alert('比亚乃, 你猜小了')
            } else {
                alert(' 萨卡迪卡,正确')
                break   // break 退出循环  return 退出函数
            }
            // 如果输入的小于随机数就提示猜小了
            // 如果输入的正好就提示正确
        }
    </script>