“和”有什么区别?

时间:2017-11-13 07:54:38

标签: javascript ecmascript-6

嘿伙计们我想知道这两种单引号和'

之间有什么区别

我尝试使用`然后工作

执行以下命令
axios.get(`https://api.github.com/users/${this.state.userName}`)
      .then(resp => {
        console.log(resp);
      });

但是当我尝试使用''运行相同的命令时它不起作用

axios.get('https://api.github.com/users/${this.state.userName}')
          .then(resp => {
            console.log(resp);
          });

4 个答案:

答案 0 :(得分:5)

第一个在 ES6 中添加了 template literals - 它首先评估给定的嵌入式表达式,得到结果和用结果替换表达式。在${}中,您给出表达式(变量,函数调用,...),并创建一个字符串,用结果替换${expression}部分。

此代码部分



var str = 'text';
var template = `Some ${str}`; // `str` is a expression which returns the value

console.log(template);




相当于字符串的连接。



var str = 'text';
var template = 'Some ' + str; // Just concatenate the strings

console.log(template);




模板文字还允许您创建多行字符串



const multiLine = `This is a multi-
line text`;

console.log(multiLine);




答案 1 :(得分:3)

反引号(`)用于在ES6中定义JavaScript中的Template Literals字符串。这些用于使用内联变量以及声明多行字符串,以前在没有连接(+)的情况下是不可能的。

例如:

var name = 'John';
var string1 = 'My name is ' + name;   //ES5
var string2 = `My name is ${name}`;   //ES6

也可用于声明多行字符串:

var longString = `this is a
                  really
                  long
                  multiline
                  string`;

编辑关于我的多行示例,模板文字保留了空格。所以这个例子不会像你想象的那样被存储起来。此链接http://2ality.com/2016/05/template-literal-whitespace.html在此方面很有用。

答案 2 :(得分:1)

第一个``是​​模板文字或后面的标记,其中第二个''是单引号

模板文字可以用于多行,可以使用"插值"在$

中插入变量的内容

使用引号'',这将需要字符串连接。

在您的情况下,它用作插值



console.log(`Hello I am 


template literal `)

console.log("Hello I am" +

  " quotes")




答案 3 :(得分:-1)

它不适用于'文字作品,所以你可能得到你文字输入的内容,另一方面其他类型的引号让你开发自定义的spresion