【问题标题】:what is the difference between ` ` and ' '? [duplicate]` ` 和 ' ' 和有什么不一样? [复制]
【发布时间】:2018-04-25 20:18:51
【问题描述】:

大家好,我想知道这两种单引号`和'有什么区别

我尝试用`执行下面的命令然后它工作了

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);
          });

【问题讨论】:

标签: javascript ecmascript-6


【解决方案1】:

从 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`;

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

【讨论】:

    【解决方案2】:

    第一个称为 template literals 添加在 ES6 - 它首先评估给定的嵌入表达式,获取结果并替换表达式与结果。在${} 中,您提供表达式(变量、函数调用...),它会创建一个字符串,用结果替换${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);

    【讨论】:

      【解决方案3】:

      第一个 `` 是模板文字或反引号,其中第二个 '' 是单引号

      模板文字可以用于多行,并且可以使用“插值”将变量的内容沿$插入

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

      在你的情况下,它被用作插值

      console.log(`Hello I am 
      
      
      template literal `)
      
      console.log("Hello I am" +
      
        " quotes")

      【讨论】:

        【解决方案4】:

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

        【讨论】:

          猜你喜欢
          • 2022-01-15
          • 1970-01-01
          • 2014-07-24
          • 2014-02-26
          • 1970-01-01
          • 2023-03-22
          • 2014-09-13
          • 2012-05-27
          • 1970-01-01
          相关资源
          最近更新 更多