ECMAScript陋解(1.0)

原创 2013年12月06日 11:19:41

越简单的东西,越提现本质。只有简单,才可以幻化出无穷的可能。ECMAScript作为JavaScript的语言核心,便是如此。

任何程序操纵的都是数据,而我们,则是通过变量这个中转来体现对数据的绝对控制,因为数据永远只是抽象。因此我们描述事物的时候总需要借助一个名称或者代词来指代那个事物,在ECMAScript中那就是变量的职责了。

变量所指代的东西就是数据,ECMAScript中简单来说,有两类数据形式,值和引用。值通常表示很直接的数据,而且就是数据本身;引用则绕了个弯,并不是数据的本体,而只是一些数据的引用。展开来说,值形式的直接数据有number,string,boolean,如果一个变量指代它们,那么该变量所指代的就是它们本身。引用形式只有object,它其实是值数据的一个集合体,一个团体,好像是它内部拥有一些特殊的变量,变量直接属于哪个object,所以引用也可以说是对象。

一句话,变量可以是值或者引用,引用或说对象是一些直属变量的集合。当然,这是理性情况,理想总是美好的,简洁的,但事实总会有些出入。

ECMAScript中还有一些特殊的玩意儿,undefined,null ,function。简单说undefined是一个没有值的值,null是一个不是对象的对象。也就是说undefined存在的意义就是说明某个变量它指代的应该是值,只是还没有被真正赋予,同样null指代的是一个对象或说引用,只是没有被赋予。function更特殊一点,它在ECMAScript里头是一个对象,只是它有着普通对象所不具备的一些特殊功能。function拥有一个不能直接看见的constructor,就是一段代码,一段操作,没错,它就是操作本身(严格说是操作的命令,操作本身肯定是硬件的事了),它不属于数据(或说它是特殊的数据,不是拿来被操纵的数据,虽然也可以被操纵),它就如同超自然的存在可以去操纵任何数据。而我们写下的每一行代码,也可以认为都是constructor的内容(对计算机内部的数据来说我们确实是超自然的存在啊,哈)。打个不恰当的比喻,如果变量是人,值是个人,对象是团队,而constructor里头的东西就是自然之力,简单说就是神吧,而function这个特殊的团体,就是神的代言团队(所以编写代码的人就是众神之神了)。所以constructor就扮演了催生万物和控制万物的角色。在ECMAScript中,值是没法独立存在的,必须依靠一个对象,也就是说只有团体才能催生个人,个人不能突然出现。而对象的催生要么依靠其他对象(严格来说,这不是催生),要么就只剩下万能的constructor了。所以每个对象都会有一个印记,代表了催生该对象的constructor。于是原本简单和谐的理想,出现了我们这样想要操纵世界的众神之神,变得异常复杂,但也变得充满生机,由于爆发出来的世界过于庞大,渐渐也出现了等级制度。


javascript的创世神话敬请期待。


DzzOffice1.0 Beta2 全新安装图文教程及界面简单了解

本文说明:本文档用于帮助您全新安装完整的 DzzOffice Beta版软件。DzzOffice 是一款开源的云存储与应用管理工具,主要用于企业管理阿里云、亚马逊等云存储等空间,把空间可视化分配给成员...
  • nabi123
  • nabi123
  • 2014年01月04日 16:37
  • 988

ECMAScript Edition 4 Draft

  • 2013年10月14日 22:36
  • 1.33MB
  • 下载

ECMAScript 6 入门教程

  • 2017年04月27日 08:49
  • 580KB
  • 下载

ECMAScript 6(2)let和块级作用域

前注:参考自阮一峰的博客,根据自己学习过程添加了自己的经验和理解而写let解释:1. 简单来说,就是类似var,但使用该方法声明的变量,只在当前作用域生效; 几个特点:1、let和var相比,不存在变...

es6教程,ECMAScript6入门

  • 2017年03月19日 16:34
  • 26.34MB
  • 下载

ECMAScript 6 学习系列课程 (ES6 Set和Map数据结构)

学过Java的同学,一定用过List和Map的数据结构,不过JavaScript在最新版本中,也提供了Set和Map的数据结构,的确是广大开发者的福音。ES6提供了新的数据结构Set。它类似于数组,但...

ECMAScript 6入门 (第2版)

  • 2017年04月02日 10:31
  • 1.97MB
  • 下载

深度解析ECMAScript 6

  • 2016年07月27日 14:29
  • 4.49MB
  • 下载

用ECMAScript 写的轮播图 有缺陷

1 2 3 4 5 1 《 >> 1 2 3 4 5 1 var cc = document.getElementById("banner"); ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ECMAScript陋解(1.0)
举报原因:
原因补充:

(最多只允许输入30个字)