alert`1`

为什么这个Payload中可以用反引号代替括号。


ES2015规范的先前版本中被称为模板字符串

允许嵌入表达式的字符串字面量。可以使用多行字符串和字符串插值功能。

模板字符串的诞生极大的方便了字符串的拼接,可以认为是一种字符串拼接方法。

模板字符串使用反引号来代替普通字符串中的单引号和双引号。

模板字符串使用 ${expression}作为占位符。

如果一个模板字符串由一个函数名开头,则该字符串被称为带标签的模板字符串,函数会在模板字符串处理后被调用。

模板字符串的一些用途


普通字符串

`string text`

多行字符串

`string text line 1
 string text line 2`

在输出多行字符串时,空白字符会被保留,原样输出。

字符串插值

`string text ${expression} string text`
`你好,我是 ${233 + 1}!` // => 你好,我是 234!
demo = 'TEag1e';
`你好,我是 ${demo} !` // => 你好,我是 TEag1e !

带标签的模板字符串

tag `string text ${expression} string text`

该标签通常是一个函数,它会在模板字符串处理结束后被调用。

需要注意的是,标签函数的第一个参数是一个包含字符串的数组。标签的第二个参数是第一个表达式的值,第三个参数是第二个表达式的值。

function tag(string, exp){}
tag`Hello ${expression} World `

上面这种情况,string参数是一个数组,数组第一个元素是 Hello ,第二个元素是World,exp参数则是 expression的结果。

String.raw()

String.raw方法用来充当模板字符串的处理函数,返回模板字符串最终的处理结果的原生形式。

demo = 123;
String.raw`你好,结果是:\n${demo + 123}`;
// => 你好,结果是:\n246

`你好,结果是:\n${demo + 123}`;
// => 你好结果是:
// 236

相关文档

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/template_strings


本文由 TEag1e 创作,采用 知识共享署名 3.0,可自由转载、引用,但需署名作者且注明文章出处。

还不快抢沙发

添加新评论

icon_redface.gificon_idea.gificon_cool.gif2016kuk.gificon_mrgreen.gif2016shuai.gif2016tp.gif2016db.gif2016ch.gificon_razz.gif2016zj.gificon_sad.gificon_cry.gif2016zhh.gificon_question.gif2016jk.gif2016bs.gificon_lol.gif2016qiao.gificon_surprised.gif2016fendou.gif2016ll.gificon_mrgreen.pngicon_neutral.pngicon_twisted.pngicon_arrow.pngicon_eek.pngicon_smile.pngicon_confused.pngicon_cool.pngicon_evil.pngicon_biggrin.pngicon_idea.pngicon_redface.pngicon_razz.pngicon_rolleyes.pngicon_wink.pngicon_cry.pngicon_surprised.pngicon_lol.pngicon_mad.pngicon_sad.pngicon_exclaim.pngicon_question.pngicon_rolleyes.gif2016gz.gif2016kun.gif2016zhem.gif2016am.gif2016kel.gificon_twisted.gif2016lh.gificon_neutral.gif2016ka.gif2016tx.gificon_evil.gif2016bb.gif2016yun.gif2016qq.gif2016baojin.gificon_confused.gif2016kk.gif2016zk.gif2016kb.gificon_mad.gif2016yhh.gificon_exclaim.gif2016xia.gif2016gg.gif2016qd.gificon_smile.gif2016lengh.gificon_biggrin.gif2016bz.gif2016wq.gificon_eek.gificon_arrow.gificon_wink.gif2016tuu.gif