用 javascript 来回答宇宙外面是什么

目录

宇宙外面是什么呢? 估计这个问题要困扰很多人, 让我们用一段 javascript 代码来回答一下.

一, 从一段代码说起

var 地球 = {
	名字 : "地球",
	女友 : "月亮",
	外面 : {
		名字 : "太阳系",
		老大 : "太阳",
		老二 : {
			名字 : "木星",
			二奶 : "木卫二(Europa)", // eclipse 3.3版本代号(欧罗巴)
			小三 : "木卫三(Ganymede)"// eclipse 3.4版本代号(盖尼米德)
		},
		外面 : {
			名字 : "银河系",
			外面 : {
				名字 : "宇宙",
				年龄 : 13700000000
			}
		}
	}
};
var 宇宙 = 地球.外面.外面.外面;
alert("宇宙的年龄是: " + 宇宙.年龄 + ", " + "宇宙的外面是: " + 宇宙.外面);
// alert("宇宙的外面在哪: " + 宇宙.外面.位置);

怎么运行呢? 很简单, 拷贝出来, 以谷歌浏览器 Chrome 为例, 按 F12, 出来开发人员工具, 选择最右端的 Console, 粘贴, 回车!答案即可揭晓:

看到了吗? 华丽丽的一个 undefined(未定义)

undefined

二, 自然语言由于过于灵活而失去严谨与精确

其实看了代码我们就已经明白是这样的结果了, 在这里我想说什么呢? 我们的日常语言其实是很不严谨, 很不精确的, 当层次很多时甚至引发了矛盾我们却还浑然不知, 以下图为例

地球-太阳系-银河系-宇宙

我想这就是很多人的宇宙观, 里面的一层层都有着明确的边界, 但到了宇宙这一层面, 则是一种开放式的定义, 是没有边界的. 但当这种层次很多时, 我们常常忘记了我们前面预设的一些前提.

比方说, 你不会去问一个女生说: "你的JJ有多长之类的"

请原谅一时没有想到更好的例子~

因为这很明显是一个有问题问题, 如果问题本身就有问题, 又怎么能去正确地回答呢?

古语云: 皮之不存, 毛将附焉!

当皮都没有的时候, 你问皮上的毛是什么颜色, 显然无法回答, 所以这位女生最好的回答大概只能是纠正你说: "木有小JJ!"当然了, 我们肯定不会去问这类问题, 因为矛盾太明显了.

但有时候矛盾很隐藏得比较深, 比如这个宇宙外面是什么的问题, 我们常常先认定了宇宙是开放的, 是没有边界的, 而我们说里面, 外面则又暗示了它有个明确的边界.

毕竟只有有明确的边界我们才能去说"里面"和"外面", 所以这里面是有矛盾的, 除非我们先把宇宙是否有边界的这一前提讨论清楚, 不然讨论后一个问题就没有意义.

三, 编程语言则相对严谨精确得多

在 javascript 中, 你要是没有定义, 就相当于前提都没达成, undefined 既不是, 也不是,

当然了, 在编程中这个常常可以当成 false, 但如果使用严格等于去判断, 即三个等号 ===, 那么它跟 false 是不等的.

既没有说它是什么, 也没有说它不是什么. undefined 就是 undefined, 就是未定义. 连外面都还没定义, 你却试图问宇宙外面是什么, 自然就是 undefined 了. 如果你试图跳过它去进一步追问 "宇宙.外面.位置":

can not read property of undefined

那么运行时 javascript 就会给你报错了. 当然你写的时候是很自由的, javascript 没有编译的概念, 你写错了不运行它也不知道, 不过现在的 IDE 也很强大了, 以我使用的 eclipse 为例, 当你敲入 "宇宙." 之时, 提示就已经出来了

eclipse 属性提示

我们可以看到, 除了核心 javascript 中的几个属性和方法之外, 就是我们定义的"名字"与"年龄"两个属性了. 根本就没有所谓的"外面", 当然也更谈不上"外面.位置"了!