这张图片的幽默之处在于用编程语言中的三种常见状态来类比纸巾架的现实情况。
最左边的纸巾架上有一卷纸,下面标着数字0。在编程中,数字0经常被当作一个“假值”或者一个有效但表示什么都没有的值,有时候也代表“没有”。但这张图里明明有纸,却标成了0,这是一种反差。
中间的纸巾架上没有纸,只剩一个空架子,下面标着null。在编程中,null通常表示“空值”或者“什么都没有”,这对应了一个存在但里面没有东西的对象。所以空纸巾架等于null,这个比喻非常贴切。
最右边干脆连纸巾架都没有,只有一面白墙,下面标着undefined。在编程中,undefined表示“未定义”,也就是这个变量或对象根本不存在,没有赋予任何值。对应到现实里,就是连架子都不存在,自然就是undefined。
为什么程序员秒懂?因为这三个词对程序员来说有非常精确、容易区分的含义。0是一个具体的数字,null是一个明确表示“空”的值,而undefined是“尚未定义”的状态。把生活中“有纸”、“没纸”、“连架子都没有”这三种状态强行对应到这三个编程术语上,既形象又荒诞。尤其是左边有纸却被标成0,打破了一般人对0就是没有的直觉,让熟悉编程的人会心一笑。整个图片把日常琐事用技术黑话重新包装,产生了一种跨界错位的喜剧效果。