提问人:Josh Nabours 提问时间:12/19/2015 最后编辑:CommunityJosh Nabours 更新时间:12/19/2015 访问量:2631
单引号 (') 和双引号 (“) 在 jQuery 中是否像在 PHP 中一样工作?
Do the single quote (') and double quote (") work in jQuery like they do in PHP?
问:
单引号 (') 或双引号 (“) 是否具有解析字符串并将变量替换为值的函数?我记得在 PHP 中,解析引擎将解析字符串并自动切换出任何带有其值的变量(我不记得哪个实际上在我的头顶上有这种效果),因此您不必使用串联进行键入
算子。到目前为止,我在 http://www.tutorialspoint.com/jquery/jquery-basics.htm 上阅读了所有内容,但还没有找到任何关于它的信息。另外,除非我错过了,否则帖子 When to use double quote or single quote in JavaScript?没有直接涵盖这些信息。"somestring" + aVariable
答:
1赞
Niet the Dark Absol
12/19/2015
#1
不,JavaScript 中没有变量插值这样的东西(因此 jQuery)
这是一件非常好的事情!虽然 PHP 在一开始就标识了所有变量,但 JavaScript 没有。因此,即使是一个简单的字符串,如果你有一个叫做 ...$
"Hello world!"
world
你可能对模板系统感兴趣,其中有很多选择 - 快速的谷歌搜索会出现结果,但这里有一些带有示例和东西的列表。
评论
0赞
Josh Nabours
12/19/2015
真。我从来没有想过这种影响。
0赞
Alnitak
12/19/2015
这正是 JS 模板字符串显式用于标记要插值的位的原因。${}
2赞
Alnitak
12/19/2015
#2
单引号和双引号在 JavaScript 中是相同的,并且不插值变量。根据我的经验,在 JS 中坚持使用单引号是一种很好的做法,允许您在这些字符串中使用双引号(无需转义)来表示 HTML 属性之类的东西。
然而,ES2015 引入了使用反引号的“模板字符串”,这有点像 PHP 的字符串,因为它们可以插值到字符串中,并且更强大,因为它们实际上可以插值任何表达式,而不仅仅是普通变量:
let bar = 'bar';
let foo = `${bar}`;
let FOO = `${bar.toUpperCase()}`;
评论
1赞
Spencer Wieczorek
12/19/2015
我不认为我会认为这是“好的做法”,因为在某些情况下,其他语言中的单引号仅适用于字符。更重要的是,它只是更容易打字。
0赞
Alnitak
12/19/2015
不过,@SpencerWieczorek保持一致是件好事,而且我只是在谈论 JS,而不是其他语言。
0赞
Spencer Wieczorek
12/19/2015
我的观点是,你可以对 HTML 属性使用单引号,你采用哪种方式并不重要。
1赞
Niet the Dark Absol
12/19/2015
opinion = 'I\'m not too sure I agree with Alnitak\'s preference for strings\' contents being in single quotes...';
0赞
Alnitak
12/19/2015
@NiettheDarkAbsol无论您采用哪种方式,这都是错误的,但是大多数时候在我的 JS 代码中,我输出的是 HTML 标签(我偏爱双引号属性)而不是人类可读的字符串。
评论