在Javascript中使用新字符串()时进行字符串比较

在Javascript中使用新字符串()时进行字符串比较,javascript,google-apps-script,Javascript,Google Apps Script,有时我需要确保变量是字符串。我过去常常使用操作符newstring(value)来实现这一点 然而,当我这样做的时候,这种比较是不起作用的。例如: var dude = new String("dude"); var dude2 = new String("dude"); console.log(dude == dude2); //will print 'false' 使用“new string()”时如何进行字符串比较 我在谷歌应用程序脚本中使用JS,你可以这样做: dude.toStrin

有时我需要确保变量是字符串。我过去常常使用操作符newstring(value)来实现这一点

然而,当我这样做的时候,这种比较是不起作用的。例如:

var dude = new String("dude");
var dude2 = new String("dude");
console.log(dude == dude2); //will print 'false'
使用“new string()”时如何进行字符串比较

我在谷歌应用程序脚本中使用JS,你可以这样做:

dude.toString() == dude2.toString()

这就是为什么“dude”和“dude2”不相等的原因:

var dude = new String("dude");
var dude2 = new String("dude");

console.log(typeof dude)    //object
console.log(typeof dude2)   //object
您可以这样做:

 var dude = String('dude');
 var dude2 = String('dude');
 dude === dude2  //true

这是一个很好的解决办法。但是,当我们使用新字符串(值)来定义两个变量时,为什么不能比较它们呢?