我在JS方面相当生疏,最近遇到了一个我不明白的问题所以我希望有人可以向我解释这个问题。
var aList = {a:"aaa", b:"bbb", c:"ccc", d:null}
var aString = "a";
var anotherString = "d";
如果我以下列方式替换aString:
aString.replace(aString, aList[aString]);
我按预期得到“aaa”。但是,如果我这样做
anotherString.replace(anotherString, aList[anotherString]);
如我所料,它会导致“null”而不是null。为什么是这样?
编辑:注意到我实际上忘记了对象中的空值。对不起大家。我早早地责备它:)
答案 0 :(得分:1)
如我所料,它会导致“null”而不是null。这是为什么?
因为要用新的子字符串替换字符串的子字符串。必须将null
转换为字符串才能执行此操作。将null
转换为字符串会使其"null"
(您可以通过测试"" + null
来看到这一点。)