《JavaScript面向对象精要》——第1章 原始类型和引用类型1.1 什么是类型

    xiaoxiao2024-04-19  5

    本节书摘来自异步社区《JavaScript面向对象精要》一书中的第1章,第1.1节,作者:【美】Nicholas C. Zakas 译者: 胡世杰 更多章节内容可以访问云栖社区“异步社区”公众号查看。

    第1章 原始类型和引用类型

    大多数开发者在使用Java或C#等基于类的语言的过程中学会了面向对象编程。由于JavaScript没有对类的正式支持,这些开发者在学习JavaScript时往往会迷失方向。JavaScript不需要在开头就定义好各种类,你可以在写代码的过程中根据需要创建数据结构。由于JavaScript缺少类,也就缺少用于对类进行分组的包。在Java中,包和类的名字不仅定义了对象的类型,也在工程中列出文件和目录的层次结构,JavaScript编程就好像从一块空白石板开始:你可以在上面组织任何你想要的东西。些开发者选择模仿其他语言的结构,也有一些人则利用JavaScript的灵活性来创建一些全新的东西。对没有掌握JavaScript的人来说,这种选择的自由令人崩溃,然而一旦你熟悉了它,你会发现JavaScript是一种无比灵活的语言,可以很轻松地适应你的编程习惯。

    为了便于开发者从传统的面向对象语言过渡,JavaScript把对象作为语言的中心。几乎所有JavaScript的数据要么是一个对象要么从对象中获取。其实就连函数在JavaScript中也被视为对象,这使得它们成为JavaScript的一等公民。

    使用和理解对象是理解整个JavaScript的关键。你可以在任何时候创建对象,在任何时候给对象添加、删除属性。JavaScript对象是如此灵活,可以创造出其他语言不具有的独特而有趣的模式。

    本章致力于鉴别和使用两种JavaScript基本数据类型:原始类型和引用类型。虽然两者都通过对象进行访问,但是理解它们行为之间的区别是非常重要的。

    1.1 什么是类型

    JavaScript虽然没有类的概念,但依然存在两种类型:原始类型和引用类型。原始类型保存为简单数据值。引用类型则保存为对象,其本质是指向内存位置的引用。

    为了让开发者能够把原始类型和引用类型按相同方式处理,JavaScript花费了很大努力来保证语言的一致性。

    其他编程语言用栈储存原始类型,用堆储存引用类型,JavaScript则完全不同:它使用一个变量对象追踪变量的生存期。原始值被直接保存在变量对象内,而引用值则作为一个指针保存在变量对象内,该指针指向实际对象在内存中的存储位置。虽然看上去原始值和引用值一样,但是它们还是有区别的,本章稍后会介绍。

    当然,原始类型和引用类型还有其他区别。

    相关资源:敏捷开发V1.0.pptx
    最新回复(0)