在Javascript中,为什么在引号之前加上加号?

在Javascript中,为什么在引号之前加上加号?,javascript,string,Javascript,String,我偶然发现了一些我不能完全理解的东西。假设有一个产品对象: let product = { img: "../image.jpg" } 现在,如果我想访问url中的product.img,我可以执行以下操作: const getProductImage = product => ({ backgroundImage: 'url(' + product.img +')' }); 我的问题是:这是怎么回事 ' + product.img + ' 编辑:好的,这个问题从错误的前提开

我偶然发现了一些我不能完全理解的东西。假设有一个产品对象:

let product = {
  img: "../image.jpg"
}
现在,如果我想访问url中的product.img,我可以执行以下操作:

const getProductImage = product => ({
  backgroundImage: 'url(' + product.img +')'
});
我的问题是:这是怎么回事

' + product.img + '

编辑:好的,这个问题从错误的前提开始,见下面的答案

有两组引号:

'url('

不是


有两组引号:

'url('

不是


您的代码只是将字符串添加到一起,因此结果是新字符串被连接:

'url(' + product.img +')'. 
例如,如果
product.img
包含指向图像的url,如:
'http:example.com/image1.png'
,则
背景图像将包含:

'url(http:example.com/image1.png)';

您的代码只是将字符串添加到一起,因此结果是新字符串被连接:

'url(' + product.img +')'. 
例如,如果
product.img
包含指向图像的url,如:
'http:example.com/image1.png'
,则
背景图像将包含:

'url(http:example.com/image1.png)';

因为这就是如何将变量中的字符串转换为单个字符串的方法。 它可以改写如下:

let first = 'url('
let last = ')'
let final_string = first + product.img + last
或者在模板文本中(在可能的情况下,哪个更好)


因为这就是如何将变量中的字符串转换为单个字符串的方法。 它可以改写如下:

let first = 'url('
let last = ')'
let final_string = first + product.img + last
或者在模板文本中(在可能的情况下,哪个更好)