Javascript字符串.replace(),结果不明确

Javascript字符串.replace(),结果不明确,javascript,string,str-replace,Javascript,String,Str Replace,看到我的代码了吗 <html> <body> <script type="text/javascript"> var str="Visit Microsoft!"; document.write( str = str.replace("",'ss')); </script> </body> </html> 为什么会发生这种情况?这是正确的,因为每个字符串都以空字符串开头。有关更多信息,请参阅下面的帖子: 用字符串替

看到我的代码了吗

<html>
<body>

<script type="text/javascript">

var str="Visit Microsoft!";

document.write( str = str.replace("",'ss'));

</script>
</body>
</html>

为什么会发生这种情况?

这是正确的,因为每个字符串都以空字符串开头。有关更多信息,请参阅下面的帖子:


用字符串替换
将只替换该字符串的第一个匹配项。您传递了一个空字符串,它位于字符串的开头(
“something”)。indexOf(“”
返回
0
)。为什么字符串开头有空字符串?因为
“访问Microsoft!”===”+“访问Microsoft!”
在字符串的开头和第一个字符之间没有任何内容。字符之间的任何内容也是如此。空字符串可以在任何字符之间找到(您可以执行与Alex相同的操作,例如
“foo”+“+”bar”==“foobar”
)。为了进一步说明,如果您替换
str
中的所有空/零长度字符串:
str.replace(new RegExp(“,“g”),“-”
→ <代码>“-V-i-s-i-t--M-i-c-r-o-s-o-f-t-!-”
 ssVisit Microsoft!