`
weigang.gao
  • 浏览: 491061 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

引用类型(4)

 
阅读更多

     1.引用类型的值(对象)是引用类型的一个实例。在ECMAScript中,引用类型是一种数据结构,用于将数据和功能组合在一起。它也常被称为类,但这种称呼并不妥当。尽管ECMAScript从技术上讲是一门面相对象的语言,但它不具备传统的面相对象语言所支持的类和接口等基本结构。引用类型有时候也被称为对象定义,因为它们描述的是一类对象所具有的属性和方法。

       注意:虽然引用类型与类看起来相似,但它们并不是相同的概念。

 

       2.对象是某个特定引用类型的实例。新对象是使用new操作符后跟一个构造函数来创建的。构造函数本身就是一个函数,只不过该函数是出于创建新对象的目的而定义的。请看下面这行代码:

          var person = new Object();

       这行代码创建了Object引用类型的一个新实例,然后把该实例保存在了变量person中。使用的构造函数是Object,它只为新对象定义了默认的属性和方法。ECMAScript提供了很多原生引用类型(例如Object),以便开发人员用以实现常见的计算任务。 

  

3.创建Object实例的方式有两种

a.使用new操作符后跟Object构造函数 

var person = new Object();
person.name = “gaoweigang”;
person.age = 27;

        b.使用对象字面量表示法。对象字面量是对象定义的一种简写形式,目的在于简化创建包含大量属性的对象的过程。下面这个例子就使用了对象字面量语法定义了与前面那个例子中相同的person对象 

var person = {
    name : “gaoweigang”,
    age : 29
} ;

        在这个例子中,左边的花括号({)表示对象字面量的开始,因为它出现在了表达式上下文(expression context)中。ECMAScript中的表达式上下文指的是能够返回一个值(表达式)。赋值操作符表示后面是一个值,所以左花括号在这里表示一个表达式的开始。同样的花括号,如果出现在一个语句上下文(statement context)中,例如跟在if语句条件的后面,则表示一个语句块的开始

 

4. 区别:

情景1: var person = new Object();

情景2:var person = {};//使用对象字面量定义对象时,实际上不会调用Object构造函数

 

5.最好的做法是对那些必须值使用命名参数,而使用对象字面量来封装多个可选参数

 

6.访问对象属性的方式有2种

 a. 使用点表示法

   alert(person.name);//点表示法访问对象属性

 

 b.使用方括号表示法来访问对象的属性

   如何通过变量来访问来访问对象的属性

var propertyName = “name”;
alert(person[propertyName]);//在Javascript中可以使用方括号表示法来访问对象属性

    如果属性名中包含会导致语法错误的字符,或者属性名使用的是关键字或保留字,也可以使用方括号表示法,eg:

   person[“first  name”] = “gaoweigang”;//由于属性中有空格,因此不能使用点表示法来访问对象属性

由于“first name”中包含一个空格,所以不能使用点表示法来访问它。然而,属性名中是可以包含非字母非数字的,这时候就可以使用方括号表示法来访问它们。

 

Array类型

1.除了Object之外,Array类型恐怕是ECMAScript中最常用的类型了。而且,ECMAScript中的数组与其它多数语言中的数组有着相当大的区别。虽然ECMAScript数组与其他语言中的数组都是数据的有序列表,但与其他语言不同的是,ECMAScript素组的每一项可以保存任何类型的数据。

 

2.创建数组的基本方式有两种。

a. 使用Array构造函数

   var colors = new Array();

   在使用Array构造函数时也可以省略new操作符,如下面的例子所示,省略new操作符的结果相同:

   var colors = Array(3);//创建一个包含3项的数组

 

 b. 创建数组的第二种基本方式是使用数组字面量表示法。数组字面量由一对包含数组项的方括号表示,多个数组项之间以逗号隔开,如下所示:

   var colors = [“red”,”green”];

注意:与对象一样,在使用数组字面量表示法时,也不会调用Array构造函数。数组的length属性很有特点——它不是只读的。因此,通过设置这个属性,可以从数组的末尾移除项或向数组中添加新项

 

单体内置在对象

1.Global对象

ECMA-262对内置对象的定义是:“由ECMAScript实现提供的,不依赖于宿主环境对象,这些对象在ECMAScript程序执行之前就已经存在了。”意思就是说,开发人员不必显示地实例化内置对象,因为它们已经实例化了。前面我们已经介绍了大多数内置对象,例如ObjectArrayStringECMA-262还定义了两个单体内置对象:GlobalMath

2.Math对象

ECMAScript还为保存数学公式和信息提供了一个公共位置,即Math对象。与我们在JavaScript直接编码的计算功能的计算功能相比,Math对象提供的计算功能执行起来要快得多。

 

 

Global对象与window对象的区别?

Global对象是ECMAScript描述的顶层对象,Window对象是BOM的顶层对象,

实际上,没有什么Global对象,一些人意淫出来的而已。提出的目的是为了解决JavaScript在非浏览器环境下的一些逻辑上的问题。在浏览器上,Global对象就是指window

 

分享到:
评论

相关推荐

    C#中引用类型和值类型的区别

    在C#编程语言中,类型系统是其核心组成部分,它主要分为两大类:引用类型和值类型。这两种类型的差异在程序设计与优化中扮演着关键角色,了解它们的区别对于提高代码质量和性能至关重要。 ### 引用类型 引用类型在...

    C#引用类型的赋值 类的赋值

    ### C#中引用类型的赋值详解 在C#编程语言中,变量分为两种类型:值类型和引用类型。本文将重点介绍引用类型的赋值特点及其背后的实现机制。 #### 一、引用类型的定义与特点 在C#中,除了基本类型(如`int`、`...

    Java中的基本类型和引用类型变量的区别

    Java 中的基本类型和引用类型变量的区别 Java 中的基本类型和引用类型变量是两个不同的概念,它们在内存分配、变量赋值和函数传递等方面有着本质的区别。 基本类型是 Java 中的八种基本类型,包括 byte、short、...

    值类型与引用类型(.html)

    在C#编程语言中,值类型和引用类型是两种基本的数据类型,它们在内存管理和数据存储方式上有着显著的区别,这对于理解和优化代码性能至关重要。本文将深入探讨这两种类型的特性和应用场景。 1. 值类型(Value Types...

    引用类型传值方法

    在编程领域,我们经常需要处理各种数据类型,其中包括值类型(value types)和引用类型(reference types)。值类型如整型、浮点型、布尔型等,它们在赋值或作为参数传递时会进行副本复制,而引用类型则有所不同。本...

    C#基础知识 值类型、引用类型

    本文将深入探讨C#中的核心概念:值类型和引用类型。这两种类型在内存管理和数据处理上有着显著的区别,理解它们对于编写高效且无错的代码至关重要。 值类型(Value Types)包括基本类型如整型(int)、浮点型...

    引用类型与值类型的运算

    在探讨“引用类型与值类型的运算”这一主题时,我们需要深入了解JavaScript中两种基本的数据类型——值类型和引用类型,并理解它们之间如何进行运算。本文将根据提供的内容进行深入解析。 ### 引用类型与值类型的...

    c# 值类型 引用类型 内存分析

    c# 值类型 引用类型 内存分析 图解 ,从根本上理解值类型和引用类型变量的本质区别。

    值类型与引用类型

    这是一个值类型与引用类型的小测试!分清什么事值类型与引用类型!

    训练师脚本:《使用C#中的枚举、结构、值类型和引用类型

    ### 使用C#中的枚举、结构、值类型和引用类型 #### 枚举(Enum) **定义**: 枚举是一种特殊的类,它定义了一组固定的命名常量,通常用于表示一系列预定义的值。 **语法**: ```csharp [访问修饰符] enum 枚举名 { ...

    C#值类型与引用类型区别

    在C#编程语言中,值类型和引用类型是两种基本的数据类型,它们在内存管理和操作方式上有着显著的差异。了解这些差异对于编写高效、安全的代码至关重要,尤其是在处理大量数据或复杂对象时。 首先,让我们来探讨值...

    理解C# String类型:特殊的引用类型

    C# String 类型:特殊的引用类型 C# String 类型是一个特殊的引用类型,它的实例是只读的。这意味着 String 类型的变量在被赋值时,实际上是重新创建了一个字符串,而不是修改原来的字符串。这点与其他引用类型不同...

    C#中引用类型和值类型

    C#中的引用类型和值类型 C# 中的类型系统可以分为两大类:引用类型(reference type)和值类型(value type)。了解这两种类型的差异是非常重要的,因为它们在内存中的存储方式、赋值方式和使用场景都有所不同。 ...

    Java中的引用类型详解:强引用、软引用、弱引用与虚引用

    这些引用类型提供了灵活的内存管理策略,允许开发者根据应用需求选择适当的引用类型。 深入理解Java中的引用类型对于有效地管理内存和提高应用程序的性能至关重要。根据具体的场景,选择适当的引用类型是优化程序的...

    C#引用类型和值类型的区别

    在C#编程语言中,值类型和引用类型是两种主要的数据类型,它们在内存管理和行为上有显著的区别。值类型直接存储其实际值,比如整数、浮点数、布尔值,以及自定义的结构体(struct)和枚举类型。变量在栈中分配内存,...

    winform 值类型引用类型赋值源码

    本文将深入探讨“值类型”与“引用类型”在WinForm中的赋值机制,通过源码分析来理解这两者的差异。 首先,我们要明白值类型与引用类型的基本概念: 1. 值类型:值类型包括基本数据类型(如int、double、bool)...

    拓胜技术专家教你如何深入理解Java四种引用类型

    Java中的四种引用类型是Java内存管理的重要组成部分,它们分别是强引用(StrongReference)、软引用(SoftReference)、弱引用(WeakReference)和虚引用(PhantomReference)。每种引用类型具有不同的特点和用途,...

    C#中的值类型和引用类型

    4. 值类型具有固定大小,因此它们的访问速度通常比引用类型快,但分配大块内存时效率较低。 5. 零初始化:未赋值的值类型变量会自动初始化为类型的默认值,如整型为0,布尔型为false。 引用类型(Reference Types)...

    浅析Java引用类型和方法参数传递

    ### 浅析Java引用类型和方法参数传递 #### 一、引言 在Java编程语言中,理解数据类型的处理方式对于编写高效、可维护的代码至关重要。本文将深入探讨Java中的引用类型及其如何影响方法参数的传递机制。通过具体实例...

Global site tag (gtag.js) - Google Analytics