我有follwing jQuery的:传递null作为JavaScript中的替代()行为怪异的参数?
$("#textArea").keyup(function(){
var textAreaValue = $("textArea");
if(!textArea.value.indexOf("some string")){
textArea.value = textArea.value.replace("some string",null);
alert("It was there!");
}
});
是正常的
element.value.replace("some string",null);
与"null"
作为一个字符串替换"some string"
?如果正常,你可以解释为什么?我用
element.value.replace("some string","")
进行了测试,效果很好,那么null
和""
之间的区别是什么?
使用FireFox 3.6.3,在此先感谢。
当期望字符串时传递'null'并不总是有这个结果,它通常不是所希望的结果。 – 2010-06-16 04:17:57
@tehMick - 按照[ECMAScript 5th ed。](http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-262.pdf)的规定,String.prototype.replace的行为表明应将null'replaceValue'替换为字符串'“null”'。其他情况可能会出乎意料,但对于String.prototype.replace,这是非常期待的。 – Anurag 2010-06-16 06:55:35
Good call - “否则,让newstring表示将replaceValue转换为String的结果。”这可能适用于第五版。和这个特殊的函数,但是再一次,除非你打代码高尔夫,为什么要传递'null'而不是''null''?它只是为了混淆你的代码的未来读者,因为一个天真的解释是你用* nothing而不是null来替换match。 – 2010-06-16 14:42:30