我遇到了一些看起来像这样的代码:
var str="I like blue";
str.replace(/blue/,"red");
这里发生了什么?字符串文字何时不需要用引号括起来?与
相比,这种方法有什么好处str.replace("blue","red");
答案 0 :(得分:1)
在Javascript中,/
个字符中包含的文字不是字符串,是RegExp (regular expression)
因此/blue/
相当于new RegExp("blue")
答案 1 :(得分:1)
何时不需要将字符串文字括在引号中?
StringLiteral ::
" DoubleStringCharacters_opt "
' SingleStringCharacters_opt '
(注意:ES6中的template literals也不是字符串文字。)
与[...]
相比,这种方法有什么好处
您的示例中没有,但如果您要替换所有出现的字符串,则必须使用带有全局修饰符的regular expression:How to replace all occurrences of a string in JavaScript?