嘿伙计们我想知道这两种单引号和'
之间有什么区别我尝试使用`然后工作
执行以下命令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);
});
答案 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