两个 js 语句是否总是返回相同的结果?s.replace(/\t/g, '|') vs s.split('\t').join('|')



第一个:

var s = input_string.replace(/t/g, '|');

第二:

var s = input_string.split('t').join('|');

他们有没有可能得到不同的结果?

假设input_string是一个纯字符串,并且内建方法String.prototype.replaceString.prototype.splitArray.prototype.join都没有被篡改,那么在这种情况下,.replace.join将始终产生相同的输出。

如果你考虑到这些方法已经被修补的可能性,那么所有的赌注都会被取消

String.prototype.replace = () => '';
console.log('foo'.replace(/t/g, '|'));

最新更新