四、数据都是一堆符号

javascript编入集

在JavaScript中

  1. 使用 0-9 这些数字表示 number
  2. 使用 “ ” 或者 ' ' 引号括起来的表示 string
  3. 使用 true或者false 标识 boolean
  4. function 都是object
  5. Object 也是 Function
  6. {} 是 object

我想,前面三点都是非常简单的,数字就是数字,字符就是字符,真假就是真假,在说话,书写,编写任何代码都适用。后面三点,这是在js中独有的味道。

在面向对象的语言中,很多采用的是单根结构[1]。所以说万事万物皆为对象。但是,js虽然是一种面向对象的编程语言,但是却不是简单的单根结构,问题就在Function和Object的特殊性上。

虽然说过,数字使用L或者D作为末尾标识,确定精度[2]范围,但是在js中使用的是 IEEE 754规范,使用双精度标识,所以不需要区分,所有内容都是双精度的,无论是整型还是浮点数。
所以:

var a = 1L;
var b = 2D;

都是错误的,末尾不需要额外的标识位。
但是:

var c = 0x1;

这个是必需的,因为这代表的是进制转换。
不过有一点,无论是何种进制,在js中都会转为十进制,所以当你取值时发现不对,不需要紧张,这只是表示方式不同而已,定下的内容是不会变的。
不过在js中数学运算可能会出点精度不对的问题

0.1+0.2 !=0.3

你可能会惊讶,为什么呢。这时候就要去参考一下规范是为什么了吧。


  1. 即所有对象都是Object的子对象,跟一棵树一样,从根出发

  2. 观测值对比真值的精确程度

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,798评论 19 139
  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 13,901评论 6 13
  • 最近很多人包括我自己都在对我说:“最近好迷茫”。 你第一次告诉我你很迷茫,我说,去看。看这个世界,看不同的生活,看...
    大梦卯时生阅读 2,976评论 1 5
  • 文/卜白 唇形科的香草众多,但被河南人一直惦记的莫过于荆芥了。悉数唇形科中西方风行的香草,也许没有比荆芥的清爽更能...
    卜白阅读 9,193评论 5 4
  • 每年回家都要面对这些老大难的问题,父母总想着以过来人的身份把他们认为好的生活加在我们的身上,我们的无奈也只能通过这...
    七公保阅读 2,372评论 2 9