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

  1. 云栖社区>
  2. 博客>
  3. 正文

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

异步社区 2017-05-02 13:21:00 浏览1084
展开阅读全文

本节书摘来自异步社区《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则完全不同:它使用一个变量对象追踪变量的生存期。原始值被直接保存在变量对象内,而引用值则作为一个指针保存在变量对象内,该指针指向实际对象在内存中的存储位置。虽然看上去原始值和引用值一样,但是它们还是有区别的,本章稍后会介绍。

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

网友评论

登录后评论
0/500
评论
异步社区
+ 关注