你可能知道,在 JavaScript'' + null = "null"
和 '' + undefined = "undefined"
中(在大多数浏览器中我都可以测试: Firefox,Chrome 和 IE)。我想知道这个奇怪现象的起源(布兰登 · 艾希的脑子里到底在想些什么? !)以及在 ECMA 的未来版本中是否有任何改变它的目标。实际上,使用 'sthg' + (var || '')
连接字符串和变量,并使用第三方框架(如 下划线或其他框架)来使用锤子敲打果冻指甲,这种做法令人非常沮丧。
编辑:
为了满足 StackOverflow 要求的标准,并澄清我的问题,它有三个方面:
String
串联中,JS 将 null
或 undefined
转换为它们的字符串值,这种古怪现象背后的历史是什么?String
与潜在的 null
或 undefined
对象连接起来而不会陷入这个问题(在字符串的中间得到一些 "null"
的 "undefined"
) ,最好的方法是什么?根据 最漂亮的的主观标准,我的意思是: 简短、干净和有效。不用说,'' + (obj ? obj : '')
不是真的很漂亮..。