Jade模板引擎中用于分配变量的“!=”和“=”有什么不同

What's the different between "!=" and "=" in Jade template engine when used for assigning a variable

我刚开始学习 NodeJS(和 JS,很抱歉,如果这是一个愚蠢的问题)。

今天我在 ExpressJS 文档中阅读了一个关于如何使用 Jade 模板引擎的示例。这是几行:

html
  head
    title!= title
body
  h1!= message

虽然我也看到一些人在使用title=title被省略)。

在传统的编程语言中,这两者是完全不同的。不过这里两个都用好像没问题,输出是一样的

我也试过:

meta(charset='utf-8')

meta(charset!='utf-8')

它们没有任何区别,至少从我所看到的。我在 google 和 Jade 官方文档中都找不到任何东西。

谁能告诉我两者之间的内部差异(如果有的话),谢谢!

逃跑。来自某人的 template syntax docs

鉴于:

{ "name": "Hello <em>World</em>" }

逃脱:

li= name
<li>Hello &lt;em&gt;World&lt;/em&gt;</li>

原始(例如,"surprise!"):

li!= name
<li>Hello <em>World</em></li>

还有内联转义,http://jade-lang.com/reference/interpolation/

缓冲代码

缓冲代码以=开始,输出模板中JavaScript表达式的计算结果。为了安全,先HTML转义:

玉:

p = 'This code is <escaped>!'

已编译html:

<p>This code is &lt;escaped&gt;!</p>

未转义缓冲代码

未转义的缓冲代码以 != 开头,并输出模板中 JavaScript 表达式的计算结果。这不会进行任何转义,因此对用户输入不安全:

玉:

p!= 'This code is' + ' <strong>not</strong> escaped!'

已编译html:

<p>This code is <strong>not</strong> escaped!</p>

来源:http://jade-lang.com/reference/code/