javaScript知识点(对象和random函数)

121 阅读5分钟

01-对象的声明

对象也是一种数据类型,我们可以认为对象也是一个Object类型的变量

      // let 变量名 = {}
      // let student = new Object()
      let student = {}   // 语法糖
      console.log(student)
  • 属性名称(键-key):属性值(值-value),
  • 属性名称:属性值:key是字符串,可以省略引号
  • 值:如果是字符串就需要添加引号,其它不用
      // 特征==属性: 姓名  年龄  性别 学科
      // 行为==方法==功能: 写代码 调bug
      let student = {

        gender: '男',
        subject: '前端',
        name: '李东',
        age: 18,
        // 方法的添加
        // 方法名称:匿名函数
        corder: function() {
          console.log('我会写代码')
        },
        debug: function() {
          console.log('我会调bug')
        }
      }

      console.log(student)
      // age: 18
      // corder: ƒ ()
      // debug: ƒ ()
      // gender: "男"
      // name: "李东"
      // subject: "前端"

02-对象的属性值的获取.点语法

    1. 对象.属性名称 : 属性名称是一个字符串值,不用加引号,如果属性名称存在,就返回对应的值,如果不存在就返回undefined
  • 2.对象['属性名称']:功能和 对象.属性 一样
  • 3.对象[变量]:变量不能加引号,否则就成为字符串,有一个前提:变量必须先定义好
      let student = {
        // 属性名称(键-key):属性值(值-value),
        // 属性名称:属性值
        gender: '男',
        subject: '前端',
        name: '李东',
        age: 18,

        // 方法的添加
        // 方法名称:匿名函数
        corder: function() {
          console.log('我会写代码')
        },
        debug: function() {
          console.log('我会调bug')
        }
      }
      // 获取对象的属性值的语法是点语法:对象.属性名称
      console.log('学员的姓名是:', student.name)       // 学员的姓名是: 李东
      console.log('学员的学科是:', student.subject)   // 学员的学科是 前端

      // 调用对象的方法 的语法是点语法:对象.方法属性名称()
      student.corder()    //我会写代码
      student.debug()    //我会调bug

03-对象的属性值的获取-[ ]方式

      let student = {
        // 属性名称(键-key):属性值(值-value),
        // 属性名称:属性值
        name: '李东',
        age: 18,

        // 方法的添加
        corder: function() {
          console.log('我会写代码')
        }
      }
      // 获取对象的属性值的语法:[]语法:对象['属性名称'] === 对象.属性名称
      // console.log('学员的姓名是:', student['name'])
      // // student['corder']:获取到一个方法
      student['corder']() // === student.corder()

      let propName = prompt('请输入你想获取的属性名称')

04-对象的属性值的获取-[ ]第二种方式

     let student = {
        // 属性名称(键-key):属性值(值-value),
        // 属性名称:属性值
        name: '李东',
        age: 18,

        // 方法的添加
        corder: function() {
          console.log('我会写代码')
        }
      }
      // 获取对象的属性值的语法:[]语法:对象['属性名称'] === 对象.属性名称
      // console.log('学员的姓名是:', student['name'])
      // // student['corder']:获取到一个方法
      // student['corder']()

      let propName = prompt('请输入你想获取的属性名称')
      // console.log(propName)

      // 点语法和['属性名称']都是获取对象的指定名称的属性值
      // 获取一个对象不存在的属性值,返回undefined(返回一个数组不存在的索引位置返回undefined)
      console.log('你想要的属性值是:', student.propName)
      console.log('你想要的属性值是:', student['propName'])


      // 对象[属性名称变量] 》》 先解析变量,根据变量的值获取属性值

      // 如果属性名称是一个变量,那么[变量]是唯一的机会
      console.log('你想要的属性值是:', student[propName])

05-对象的行为--方法

      // let say = function (){}

      let student = {
        name: 'jack', // 对象的属性 = 值
        // 方法:自我介绍
        say: function() {
          console.log(456)
        } // 对象的方法属性 = 值-函数
      }

      student.say()    //456
      // console.log(window)

      student['say']()   //456

06-对象操作--修改和新增

      let student = {
        name: 'jack',
        say: function() {
          console.log(456)
        }
      }
      console.log(student)

      // 1。如果对象的属性值存在,重新赋值就是修改
      student.name = 'rose'
      console.log(student)
      // 2.如果属性值不存在,就是新增属性且赋值
      student.age = 20
      console.log(student)

      student['gender'] = '男'
      console.log(student)

      let prop = 'name'
      student[prop] = '广州黑马程序员'
      console.log(student)

      student.code = function() {
        console.log('我写代码')
      }
      console.log(student)

07-对象操作-属性删除

    <script>
      let student = {
        name: 'jack',
        say: function() {
          console.log(456)
        }
      }
      console.log(student)
      // 删除对象的成员: delete 对象.属性
      // 如果成员不存在,则也不报错
      delete student.say
      delete student.name
      delete student.age
      console.log(student)   //
    </script>

08-对象的使用-案例

      // 获取一串字符串中每个字符出现的次数:{a:2,b:4,c:6,d:1}
      let str = 'aasdfasdfasfasdfasdfasdfdfhjgh'
      // 结果
      let obj = {}
      // 遍历字符串-字符串的本质是字符数组
      for (let i = 0; i < str.length; i++) {
        // console.log(str[i]) // a  >> {a:2}
        let key = str[i]
        // 如果对象中有当前遍历到的字符所对应的成员,则 将值 + 1
        // 获取一个对象不存在的属性值,返回undefined
        //obj[key] !=undefined
        if (obj[key]) {
          obj[key] += 1
        }
        // 如果对象没有当前遍历到的字符所对应的成员,那么 添加一个新的成员,且值为1
        else{
          obj[key] = 1
        }
      }

      console.log(obj)

09-对象的遍历

      let student = {
        gender: '男',
        subject: '前端',
        name: '李东',
        age: 18,
        debug: function() {
          console.log('我会调bug')
        }
      }
      // 遍历对象使用for ... in:因为对象没有索引,所以不能使用for索引的方式进行遍历
      // for(let key in 对象){}
      for (let key in student) {
        console.log(key, student[key])
      }

10-Math对象的基本使用

      // ceil:向上取整:获取比这个数大的  所有整数 中的最小值
      // 经典应用场景:获取总页数
      // 11条  》 每页10条  》 几页? Math.ceil(11 / 10)
       let num = 1.1
      console.log(Math.ceil(num));      

      // floor:向下取整:  获取双这个数  小的  所有整数中的  最大值
       let num = 1.9
       console.log(Math.floor(num))

      // max:求一组数据 中的最大值
       console.log(Math.max(1, 234, 325, 4, 645, 6747, 568))       //6747
      // ...:展开运算符,可以将数组的所有成员一个一个展开
       console.log(Math.max(...[1, 234, 325, 4, 645, 6747, 568]))   //6747

      // min:获取一组数据中的最小值
       console.log(Math.min(1, 234, 325, 4, 645, 6747, 568))     //1

      // pow(数据,n次幂)
       console.log(Math.pow(2, 10))

      // abs:绝对值:负值成为正数
      console.log(Math.abs(-100))    //100

11-random函数生成随机数

      // Math.randomI()只能生成0-1之间的随机数,理论上包含0但是不包含1
      // console.log(Math.random())

      // 生成0-10 的随机数
      // console.log(Math.floor(Math.random() * 11))
      // 需要 0 - n的随机数: parseInt(Math.random() * (n+1))
      // console.log(parseInt(Math.random() * 11))

      let arr = ['张三', '李四', '王五', '易波']
      // 生成一个 0 到  长度-1  的随机数
      let index = parseInt(Math.random() * arr.length)
      document.write(arr[index])

12-生成指定范围的随机数

      // Math.randomI()只能生成0-1之间的随机数,理论上包含0但是不包含1
      // 生成5 - 10
      // 先生成0-5  + 5
       let num = parseInt(Math.random() * (5 + 1)) + 5
       console.log(num)
        
       // let arr =(0,1,2,3,4,5,67,8,9,a,b,c,d,e,f)
       // 生成N - M
       let num = parseInt(Math.random() * (N + 1)) + (M - N)
       et num = parseInt(Math.random() * (M - N + 1)) + N