作家
登录

JavaScript中“基本类型”之争小结

作者: 来源:www.28hudong.com 2013-03-30 00:15:15 阅读 我要评论

前端面试中常被问到的问题之一就是“JavaScript的基本类型有几种?”。 有的回答“数字、字符串、布尔”,有的可能会再加上“Null、Undefined”。而有人可能认为“object”也是基本类型。到底是什么样呢? 所谓“基本类型(primitive types)”的概念ECMAScript(V3,V5)中压根就没有,它只是将类型分为6种。 ECMAScript只提到类型,用types表示,在V3,V5整个文档搜关键字“primitive”也没见“primitive type”,“primitive value”倒是有,如true/false/0-9等。这说明规范压根就没有所谓的“基本类型”、“原始类型”一说(primitive types)。如果非要说有那么object明显也是,即有6种基本类型。 一些书籍却经常使用这个概念,如《JavaScript高级程序设计》第一版、第二版,第三版。 第一版提到有5种原始类型,即Undefined、Null、Boolean、Number、String 第二版和第三版又搞出了个simple data type,翻译为简单数据类型(也称为基本数据类型),称对象为复杂数据类型。 另一本经典书《JavaScript权威指南(第6版)》第3章也提到了primitive types 先分为基本类型(primitive types)和对象类型,基本类型又分为数字,字符串,布尔,及两个特殊null,undefined。 5年前JavaScript方面的书籍还很少,这两本书就是其中之二,影响也很大,可谓经典。因此受此影响的JSer不乏少数。我想书作者把语言类型分为基本类型(元类型)和对象类型(复杂类型)也是符合学习逻辑的,复杂类型由简单类型组合而成。另外也是受到其它语言如Java的影响,它们也是把类型分为基本类型(8种)和对象类型。 但ECMAScript中没有所谓的primitive types,就好比它没有类(class)的概念一样(具有其它语言能力的人仍然喜欢在JavaScript使用名词“类”)。它里面提到的就是类型,可以把它理解成基本类型,但也应该是6种。这里的基本类型也不是Java中的基本类型,因为它包含了复杂数据类型-对象。 不是所有的书都认为JavaScript中基本类型只有5种(不包括对象),《JavaScript语言精髓与编程实践》认为是6种,如下 它没有将null归为其中,却增加了function类型。 噢,千奇百怪的答案都有,下次再有人问这个问题如何作答呢?

  推荐阅读

  禁止你的左键复制实用技巧

复制代码 代码如下:<SCRIPT LANGUAGE=javascript> function click() { alert('禁止你的左键复制!') } function click1() { if (event.button==2) { alert('禁止右键点击~!') }} function CtrlKeyDown(){ if (eve>>>详细阅读


本文标题:JavaScript中“基本类型”之争小结

地址:http://www.17bianji.com/kaifa2/JS/22645.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)