Javascript 在帕格插值中,什么';使用缓冲代码和使用{..}之间的真正区别是什么?
如插值公式中所述:Javascript 在帕格插值中,什么';使用缓冲代码和使用{..}之间的真正区别是什么?,javascript,node.js,pug,Javascript,Node.js,Pug,如插值公式中所述: -var title=“关于狗:人类最好的朋友”; -var author=“enlore”; -var theGreat=“逃跑!”; h1=标题 p由#{author}写的充满爱的作品 p这将是安全的:#{theGreat} title遵循评估本地模板的基本模式,但是{和}之间的代码被评估、转义,结果缓冲到正在渲染的模板的输出中 这可以是任何有效的Javascript表达式,因此您可以做任何感觉良好的事情 但是,h1=title中的缓冲代码仍然是“经过计算、转义、缓冲的
-var title=“关于狗:人类最好的朋友”;
-var author=“enlore”;
-var theGreat=“逃跑!”;
h1=标题
p由#{author}写的充满爱的作品
p这将是安全的:#{theGreat}
title
遵循评估本地模板的基本模式,但是{
和}
之间的代码被评估、转义,结果缓冲到正在渲染的模板的输出中
这可以是任何有效的Javascript表达式,因此您可以做任何感觉良好的事情
但是,h1=title
中的缓冲代码仍然是“经过计算、转义、缓冲的…”,并且如上所述“支持全部JavaScript表达式”
那么有什么区别呢?我想不出来。来自:
缓冲代码以=
开头。它计算JavaScript表达式并输出结果。为了安全起见,缓冲代码首先被HTML转义
发件人:
对{
和}
之间的代码进行求值、转义,并将结果缓冲到正在呈现的模板的输出中
这可以是任何有效的Javascript表达式,因此您可以做任何感觉良好的事情
因此,他们都:
- 如果整行是JavaScript表达式,则使用缓冲代码
- 如果一行中只有一部分是JavaScript表达式,则使用字符串插值
// Normal JS variables
- const name = 'John'
- const greeting = `Hello ${name}!`
// Buffered code
p= greeting // 1
p= 'Hello ' + name + '!' // 2
p= `Hello ${name}!` // 3
// Interpolation
p Hello #{name}! // 4
p #{greeting} // 5
p #{'Hello ' + name + '!'} // 6
p #{`Hello ${name}!`} // 7
// Output in all cases:
<p>Hello John!</p>
//普通JS变量
-const name='John'
-const greeting=`Hello${name}`
//缓冲代码
p=问候语//1
p='Hello'+name+'!'//2.
p=`Hello${name}!`//3.
//插值
p你好#{name}!/4.
欢迎//5
p{'Hello'+name+!'}//6
p{`Hello${name}!`}//7
//所有情况下的输出:
你好,约翰
请注意,数字3和7使用。不要与帕格的字符串插值(数字4-7)混淆
我认为:
- 数字1、3和4是最好的选择
- 数字2是可以的,但是使用模板文字会更好(数字3)
- 数字5–7是有效的,但可能有点不必要–这些行在
和{
中只包含JS表达式,因此为了清晰起见,您最好使用缓冲代码。(但你可能更喜欢它们,这很好。这是个人喜好的问题。)}
// Normal JS variables
- const name = 'John'
- const greeting = `Hello ${name}!`
// Buffered code
p= greeting // 1
p= 'Hello ' + name + '!' // 2
p= `Hello ${name}!` // 3
// Interpolation
p Hello #{name}! // 4
p #{greeting} // 5
p #{'Hello ' + name + '!'} // 6
p #{`Hello ${name}!`} // 7
// Output in all cases:
<p>Hello John!</p>