众码者,终将遇此行:
typeof null // "object"
而其应,常立时而至:
“止…何故?”
盖因null非物也。
乃表意之无值。
然则,何故JavaScript视之为物?
调查始矣
昔九十年代,JavaScript之引擎,制以速与存效。
值藏于微渺之卅二位内存容器中。
为速辨所储之值为何,引擎乃用隐秘二进制之标记,名曰标签类型。
视之若内证之标。
类此之物:
| 类型 | 概念标签 |
|---|---|
| 对象 | 000 |
| 整数 | 001 |
| 字符串 | 010 |
| 布尔值 | 011 |
(简略概念表征)
重大谬误
对象内隐关联零基类型模式。
然null 适有困厄。
其内蕴之象,几尽为虛。
00000000000000000000000000000000
故当 JavaScript 检其值之類…
不意与物標相合。
引擎遂解讀如次:
“虛無一物”
为:
“物”
倏忽之间…
null乃误识之。
何故不修此虫?
谬误流布四海。
及开发者觉其弊,天下之网与用,已皆恃此行矣。
更之则破巨量既有之码。
故此虫乃为永存。
开发者之变通
勿书之
typeof value === "object"
士人习得安查之法。
value !== null && typeof value === "object"
是故此额外之条件,遂阻之。null免于滑落。
结案
何以致此虫之奇,非独其谬也。
实乃JavaScript之初年,一细枝末节之实也…
犹存于今之应用,历数十载而不衰。
一误之小。
一脉宏业。
一甚奇诡之案发现场。
監視錄影
全案可于抖音查之。
观其证也
君尝遇何等诡异之JavaScript行径?












