zoukankan      html  css  js  c++  java
  • JavaScript程序开发(十)—js语法之数据类型

      在前面的几篇博客中学习到了ECMAScript-262的几种基本数据类型,接下来要学习的就是复杂的数据类型Object、Array、Date、RegExp、Function、基本包装类型和内置对象7种类型,复杂数据类型又称为引用类型。在ECMAScript中,引用类型是一种数据结构,用于将数据和功能组织在一起。在其他如Java、C#等面向对象的语言中它被称为类(class)。但因为ECMAScript不具备传统的面向对象语言所支持的类和接口等基本结构,因此,在ECMAScript中将其称为类不是很合适。

    Object类型

    在ECMAScript中,Object是其他一切类型的基类,好比Java中的java.lang.Object。仅仅创建Object类型的实例是没有什么意义的,但关键是理解上面那句话的思想,即Object是js中的基类。Object的每个实例都具有下列的属性和方法:

    constructor构造函数—保存用于创建当前对象的函数。如下面的代码实例,对象obj的constructor值是function Object()

    <script type="text/javascript">
        var obj = new Object();
        var cons = obj.constructor;
        document.write(cons);  //function Object()
    </script>

    hasOwnProperty(propertyName)—用于检测给定的属性是否在当前对象实例中(而不是在对象实例的原型中)。其中,作为参数名称的propertyName必须是以字符串形式指定。

    <script type="text/javascript">
        var obj = new Object();
        var flag = obj.hasOwnProperty("name");
        var cons = obj.constructor;
        document.write(cons);  //function Object()
    </script>

    isPrototypeOf(object)—用于检测传入的对象是否是另一个对象的原型。关于原型的知识将在后续博客中介绍。

    propertyIsEnumerable(propertyName)—用于检测给定的属性能否使用for-in语句来枚举。与hasOwnProperty()方法一样,作为参数的属性名需以字符串形式指定。

    toString()—返回对象的字符串表示;

    valueOf()—返回对象的字符串、数值或布尔值表示。

    创建Object类型实例的方式有两种:

    1. new操作符;
      function test(){
              var person = new Object();
              person.name = "Hello World!";
              person.age = 23;
          }

      在使用new操作创建新对象时,如果不给构造函数传递参数,那么可以省略后面的那一对圆括号,但是不推荐,如下代码实例所示:

          function test(){
              var person = new Object();
              var obj = new Object;
              person.name = "Hello World!";
              person.age = 23;
          }
    2. 对象字面量表示法。
          var person = {
              name : "Hello World!",
              age : 12
          }

      在上面代码可以看出来,不同的属性之间用逗号隔开,但是最后一个属性后面没有逗号。如果在最后一个属性后面也加了逗号,会在IE和Opera中导致错误。在对象字面量中,属性名也可以是字符串,如

          var obj = {
              "name":"hello world",
              "age":12
          }

      使用对象字面量语法时,如果大括号留空,则可以定义只包含默认方法和属性的对象,起作用和使用new操作符创建对象而不添加属性和方法相同,如下代码

      var person = {} // 等同于var person = new Object();

       在通过对象字面量定义对象时,实际上不会调用Object的构造函数,firefox除外。

      一般来说,访问对象属性都是使用点(.)表示法,在很多的编程语言中都使用这个方法,但在ECMAScript中有另一种表示方法,就是使用方括号,但是在使用方括号时,要将要访问的属性以字符串的形式放在方括号中。如下代码实例所示:

        document.write(person.name);
        document.write(person.age);
        document.write(person["name"]);
        document.write(person["age"]);
  • 相关阅读:
    网络性能测试工具iperf详细使用图文教程zz
    linux时间和定时器zz
    sleep
    linux调度器的配置参数zz
    zz升级Mininet自带的OpenvSwitch & 编译OpenvSwitch
    minnet sample
    电信新势力,TIP/CORD能颠覆电信设备商吗?
    【TS】534- TypeScript 可辨识联合
    【拓展】一张图看懂字节跳动8年创业史,太励志了吧
    【CSS】533- CSS 渲染原理以及优化策略
  • 原文地址:https://www.cnblogs.com/yansj1997/p/2524932.html
Copyright © 2011-2022 走看看