文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
第1章 类型
大多数开发者认为,像 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论