什么是Underscore


本文作者: jsweibo

本文链接: https://jsweibo.github.io/2019/09/30/%E4%BB%80%E4%B9%88%E6%98%AFUnderscore/

摘要

本文主要讲述了:

  1. 什么是 Underscore
  2. 规格
  3. 示例

正文

什么是 Underscore

Underscore 是一个开源的 JavaScript 的实用程序库。

Underscore 的初始版本由 Jeremy Ashkenas 于 2009 年 10 月 28 日发布。

规格

UMD

示例

示例:版本号

1
2
const _ = require('underscore');
console.log(_.VERSION);

示例:小脚本标签

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
const _ = require('underscore');
const templteString = [
'<% if (username) {%>',
'<div>hello, <%= username%></div>',
'<% } else { %>',
'<div>hello, guest</div>',
'<% } %>',
];
const template = _.template(templteString.join(''));
console.log(
template({
username: 'jsweibo',
})
);
console.log(
template({
username: '',
})
);

输出:

1
2
<div>hello, jsweibo</div>
<div>hello, guest</div>

示例:不转义就输出

1
2
3
4
5
6
7
const _ = require('underscore');
const template = _.template('<div><%= str %></div>');
console.log(
template({
str: '<script>alert(new Date());</script>',
})
);

输出:

1
<div><script>alert(new Date());</script></div>

示例:转义后再输出

1
2
3
4
5
6
7
const _ = require('underscore');
const template = _.template('<div><%- str %></div>');
console.log(
template({
str: '<script>alert(new Date());</script>',
})
);

输出:

1
<div><script>alert(new Date());</script></div>

参考资料

本文作者: jsweibo

本文链接: https://jsweibo.github.io/2019/09/30/%E4%BB%80%E4%B9%88%E6%98%AFUnderscore/


本文对你有帮助?请支持我


支付宝
微信