返回介绍

第一部分 类型和语法

第二部分 异步和性能

第1章 类型

发布于 2023-05-24 16:38:21 字数 861 浏览 0 评论 0 收藏 0

大多数开发者认为,像 JavaScript 这样的动态语言是没有类型 (type)的。让我们来看看 ES5.1 规范(http://www.ecma-international.org/ecma-262/5.1/ )对此是如何界定的:

本规范中的运算法则所操纵的值均有相应的类型。本节中定义了所有可能出现的类型。ECMAScript 类型又进一步细分为语言类型和规范类型。

ECMAScript 语言中所有的值都有一个对应的语言类型。ECMAScript 语言类型包括 Undefined、Null、Boolean、String、Number 和 Object。

喜欢强类型(又称静态类型)语言的人也许会认为“类型”一词用在这里不妥。“类型”在强类型语言中的涵义要广很多。

也有人认为,JavaScript 中的“类型”应该称为“标签”(tag)或者“子类型”(subtype)。

本书中,我们这样来定义“类型”(与规范类似):对语言引擎和开发人员来说,类型 是值的内部特征,它定义了值的行为,以使其区别于其他值。

换句话说,如果语言引擎和开发人员对 42 (数字)和 "42" (字符串)采取不同的处理方式,那就说明它们是不同的类型 ,一个是 number ,一个是 string 。通常我们对数字 42 进行数学运算,而对字符串 "42" 进行字符串操作,比如输出到页面。它们是不同的类型。

上述定义并非完美,不过对于本书已经足够,也和 JavaScript 语言对自身的描述一致。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文