在javascript中指示不带引号的字符串

在javascript中指示不带引号的字符串,javascript,string,Javascript,String,我遇到了一段类似这样的代码: var str="I like blue"; str.replace(/blue/,"red"); 这里发生了什么?何时不需要将字符串文字括在引号中?与传统方法相比,这种方法的好处是什么 str.replace("blue","red"); 在Javascript中,包含在/字符中的文字不是字符串,而是字符串 所以/blue/相当于newregexp(“blue”) 何时不需要将字符串文字括在引号中 : (注意:ES6中也不是字符串文字。) 与[…]相比,这种

我遇到了一段类似这样的代码:

var str="I like blue";
str.replace(/blue/,"red");
这里发生了什么?何时不需要将字符串文字括在引号中?与传统方法相比,这种方法的好处是什么

str.replace("blue","red"); 

在Javascript中,包含在
/
字符中的文字不是字符串,而是字符串

所以
/blue/
相当于
newregexp(“blue”)

何时不需要将字符串文字括在引号中

:

(注意:ES6中也不是字符串文字。)

与[…]相比,这种方法的好处是什么


示例中没有,但如果要替换字符串的所有引用,则必须使用全局修饰符:

(当它是正则表达式时)。
String.replace
可以将正则表达式作为第一个参数。表达式
/blue/
是一个字符串。
/blue/
不是字符串文字,而是正则表达式文字
.replace
可以搜索字符串或正则表达式。“何时不需要将字符串文字括在引号中?”从不。“与“示例中没有,但请参阅replace可以用正则表达式做更多的事情,您可以替换模式,也可以进行全局替换”相比,这种方法有什么好处,例如
“abcbabcba”。replace(/b/g,“”)/=“a_c_a_c_a”
StringLiteral ::
    " DoubleStringCharacters_opt "
    ' SingleStringCharacters_opt '