学习JavaScript的第五天!!!

148 阅读3分钟

Javascript第五天:对象

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

对象使用:

  • 对象声明语法:

        <script>
            // 声明了一个obj的对象
            let obj = {
    
            }
        </script>
    
  • 对象有属性和方法组成操作对象:

    • 属性:信息或叫特征(名词)

    • 方法:功能或叫行为(动词)

          <script>
              
              let 对象名 = {
                  属性名:属性值,
                  方法名:函数
              }
          </script>
      
  • 属性:

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

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

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

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

      <script>
         let person={
             uname:'小明',
             age:18,
             sex:'男'
         }
      </script>
      
  • 属性访问:

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

          <script>
             let person={
                 uname:'小明',
                 age:18,
                 sex:'男'
             }
          //    第一种方法:直接对象名加属性名中间用.隔开
             console.log(person.uname)
          //    第二种方法:用对象名加中括号里面用引号包裹属性名
             console.log(person['age'])
          </script>
      
  • 对象中的方法:

    1. 方法是由方法名和函数两部分构成,它们之间使用 : 分隔

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

    3. 方法是依附在对象中的函数

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

          <script>
             let person={
                 uname:'小明',
                 age:18,
                 sex:'男',
                 sayHi:function () {
                     document.write('hi');
                 }
             }
      
          </script>
      
  • 对象中的方法访问:

    注意: 千万别忘了给方法名后面加小括号

        <script>
           let person={
               uname:'小明',
               age:18,
               sex:'男',
               sayHi:function () {
                   document.write('hi');
               }
           }
        //    对象名.方法名()
           person.sayHi()
        </script>
    

操作对象:

  • 查询对象

    1.对象.属性 或者 对象[‘属性’] 2.对象.方法()

  • 重新赋值

    1.对象.属性 = 值 2.对象.方法 = function() {}

  • 对象添加新的数据

    1.对象名.新属性名 = 新值

        <script>
         let person={
         }
         person.dance='跳舞'
         person.sing='唱歌'
         console.log(person);
        </script>
    
  • 删除对象中属

    1.delete 对象名.属性名

遍历对象:

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

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

    <script>
        let person = {
        }
        person.dance = '跳舞'
        person.sing = '唱歌'

        for (let k in person) {
            // 查看属性
            console.log(k);
            // 查看属性值
            console.log(person[k]);
        }
    </script>

内置对象:

  • random:生成0-1之间的随机数(包含0不包括1)
  • ceil:向上取整
  • floor:向下取整
  • max:找最大数
  • min:找最小数
  • pow:幂运算
  • abs:绝对值
    <script>
        // 如何生成0-10的随机数呢?
        let numb1 = Math.round(Math.random() * 10)
        console.log(numb1)

        // 如何生成5-10的随机数
        let numb2 = Math.round(Math.random() * 5 + 5)
        console.log(numb2);

        // 如何生成N-M之间的随机数
        let numb3 = Math.round(Math.random() * (M - N) + N)
        console.log(numb3);
    </script>

函数调用表达式

    <script>
        // 函数随机数表达式
        function getNumb(min, max) {
            return Math.round(Math.random() * (max - min) + min)
        }
        // 0-10随机数
        console.log(getNumb(0, 10));
    </script>

拓展-术语解释:

  • 关键字:在JavaScript中有特殊意义的词汇

    • let、var、function、if、else、switch、case、break

  • 保留字:在目前的JavaScript中没意义,但未来可能会具有特殊意义的词汇

    • int、short、long、char

  • 标识(标识符):变量名、函数名的另一种叫法

  • 表达式:能产生值的代码,一般配合运算符出现

    • 10 + 3、age >= 18

  • 语句:一句代码也称之为一条语句,一般按用途还会分类:输出语句、声明语句、分支语句

拓展- 基本数据类型和引用数据类型:

简单类型又叫做基本数据类型或者值类型,复杂类型又叫做引用类型。

  • 值类型:简单数据类型/基本数据类型,在存储时变量中存储的是值本身,因此叫做值类型 string ,number,boolean,undefined,null

  • 引用类型:复杂数据类型,在存储时变量中存储的仅仅是地址(引用),因此叫做引用数据类型 通过 new 关键字创建的对象(系统对象、自定义对象),如 Object、Array、Date等

堆栈空间分配区别:

  1、栈(操作系统):由操作系统自动分配释放存放函数的参数值、局部变量的值等。其操作方式类似于数据结构中的栈; 简单数据类型存放到栈里面   2、堆(操作系统):存储复杂类型(对象),一般由程序员分配释放,若程序员不释放,由垃圾回收机制回收。 引用数据类型存放到堆里面

简单类型的内存分配:

  • 值类型(简单数据类型): string ,number,boolean,undefined,null
  • 值类型变量的数据直接存放在变量(栈空间)中

复杂类型的内存分配:

  • 引用类型(复杂数据类型):通过 new 关键字创建的对象(系统对象、自定义对象),如 Object、Array、Date等
  • 引用类型变量(栈空间)里存放的是地址,真正的对象实例存放在堆空间中