标签: 对象

  • 对象

    • 一种数据类型
    • 可以理解为一堆数据的集合
    • 用来表示某个事物

    属性方法组成

    语法

    属性

    let 对象名 = {
      属性名:值,
      属性名:值,
      属性名:值
    }
    
    //例
    let person = {
      uname:'andy',
      age:18,
      sex:'男'
    }
    

    对象的属性没有顺序,属性和值之间用冒号: 属性之间用,

    方法

    本质是函数

    let person = {
      name: "andy",
      sayHi: function () {
        document.write("hi~~")
      },    //注意加逗号
    }
    
    • 方法是由方法名函数两部分构成,它们之间使用 : 分隔
    • 多个属性之间使用英文,分隔
    • 方法是依附在对象中的函数
    • 方法名可以使用 “” 或 ”,一般情况下省略,除非名称遇到特殊符号如空格、中横线等

    对象使用

    属性访问

    //两种方式(根据场景使用)
    let person = {
    		name:'andy',
    		age:18,
    		sex:'男'
    }
    
    // 对象名.属性名
    console.log(person.name)
    console.log(person.age)
    
    // 对象名['属性名']
    console.log(person['name'])
    console.log(person['age'])
    

    方法访问

    let person = {
      name: "andy",
      sayHi: function () {
        document.write("hi~~")
      },    //注意加逗号
    }
    
    //调用 注意需要加小括号
    person.sayHi()
    

    操作对象

    增加/修改

    如果对象没有该属性,则增加该属性,如果有,则修改属性值

    动态添加与直接定义是一样的,只是语法上更灵活

    let obj = {
      name: 'andy'
    }
    
    //增加属性
    //对象名.新增属性名 = 属性值
     obj.hobby = '拍照'
     obj['sex'] = '男'
    
    //新增对象中的方法
    //对象名.新增方法名 = 方法
    obj.move = function(){
    		document.write('12')
    }
    

    注:无论是属性或是方法,同一个对象中出现名称一样的,后面的会覆盖前面的

    删除对象中的属性(了解)

    //delete 对象名.属性名
      delete obj.age
    

    遍历对象

    • 对象没有像数组一样的length属性,所以无法确定长度
    • 对象里面是无序的键值对, 没有规律. 不像数组里面有规律的下标
    //for(let k 对象名){}
    for(let k in obj){
      console.log(k)   //属性名
    }
    
    //得到属性值 k是变量不要加引号!
    console.log(obj[k])
    // k存的是字符串 === '属性名'
    //——————————————————
    
    //console.log(obj.k) 错误!! 找的是obj里面的k属性
    

    内置对象

    例如:

    document.write()
    console.log()	
    

    Math

    方法Math.*() 
    random生成0-1之间的随机数(包含0不包括1)
    ceil向上取整
    floor向下取整
    round就近取整
    max找最大数
    min找最小数
    pow幂运算
    abs绝对值
    console.log(Math.PI)  //  圆周率    π  
    console.log(Math.random())  //  随机数  随机抽奖  随机点名
    // 返回的是小数  但是能得到 0  得不到 1
    // 向上取整  返回的整数
    console.log(Math.ceil(1.1))  // ceil  2
    console.log(Math.ceil(1.5))  // ceil  2
    console.log(Math.ceil(1.9))  // ceil  2
    // 向下取整  返回的整数  floor  
    console.log(Math.floor(1.1))  // floor  1
    console.log(Math.floor(1.5))  // floor  1
    console.log(Math.floor(1.9))  // floor  1
    console.log('-------------------------------')
    // round 就近取整( .5往大取整)  返回的整数   
    console.log(Math.round(1.1))  // round  1
    console.log(Math.round(1.5))  // round  2
    console.log(Math.round(1.9))  // round  2
    console.log('-------------------------------')
    console.log(Math.round(-1.1))  // round  -1
    console.log(Math.round(-1.5))  // round  -1
    console.log(Math.round(-1.9))  // round  -2
    // 最大值和最小值
    console.log(Math.max(1, 5, 9, 45))
    console.log(Math.min(1, 5, 9, 45))
    

    生成任意范围的随机数

    //生成N-M之间的随机数
    Math.floor(Math.random() * (M - N + 1)) + N