每日前端签到(第128天)
2019-12-25 本文已影响0人
拿着号码牌徘徊
第128天(2018-12-10)
- [html] HTML5的服务器(server-sent event)发送事件有什么应用场景?
- [css] 你有了解css计数器(序列数字字符自动递增)吗?如何通过css的content属性实现呢?
- [js] 用js实现小写金额转大写的方法
- [软技能] 你知道什么是微格式(microformat)吗?说说你的理解,它有什么运用场景?
题目一:
两种服务端推送技术的简单对比:
SSE WebSocket
服务器到浏览器的单向通信 两端之间的双向实时通信
不兼容IE 兼容性更好
协议实现断线重连与消息追踪 不在协议范围内, 需要手动处理
实现简单, 复用HTTP 独立于Http, 实现较复杂
回到问题, 在客户端请求不影响服务端推送数据或客户端请求以及客户端请求不密集的情况下可以考虑使用SSE代替WebSocket.
具体的应用场景有:
邮箱: 实时获取新邮件
后台性能监控: 实时更新监控数据
天气预报: 实时更新天气信息
题目二:
counter-reset:设置计数器 counter-reset: count 0 /* 计数器从1开始 */
counter-increment: 递增数值 counter-increment: count 2 /* 用于count 每次递增2 */
eg.
<ul>
<li>Item</li>
<li>Item</li>
<ul>
<li>Item</li>
<li>Item</li>
</ul>
</ul>
ul {
counter-reset: count;
}
li::before {
counter-increment: count;
content: counters(count, '-')'.';
}
1.Item
2.Item
2-1.Item
2-2.Item
题目三:
var price = "3452,132.567";
console.log(changePrice(price))
function changePrice(price) {
var decimal = price.split(".");
var nums = decimal[0].split(",")
var resAry = [];
var str = ''
resAry.push(strChange(decimal[1], 0));
for (var j = nums.length - 1, n = 0, k = 0; j >= 0; j-- , k += 3, n++) {
resAry.unshift(strChange(nums[j], k + 3));
}
for (var i = 0; i < resAry.length; i++) {
str += resAry[i]
}
return str
}
function strChange(ary, j) {
var decimalAry = ['厘', '分', '角', '元', '拾', '佰', '仟', '万', '拾', '佰', '仟', '亿']
var numAry = ['零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖']
var str = []
var str2 = ''
if (j == 0) {
for (var m = 0; m < ary.length; m++) {
str2 += numAry[ary[m]] + decimalAry[2 - j++]
}
} else {
for (var i = ary.length - 1, n = 0; i >= 0; i-- , n++) {
var item = ary[i]
str.unshift(numAry[item] + decimalAry[j++])
}
for (var m = 0; m < str.length; m++) {
str2 += str[m]
}
}
return str2
}
题目四:
microformats官方定义
Designed for humans first and machines second, microformats are a set of simple, open data formats built upon existing and widely adopted standards.
应用场景:
- 手机通信录使用vCard, 这是一种电子名片的微格. 导出文件格式为vcf
- 使用hCard定义的一系列语义化属性作为dom的class进行添加, 增强语义化, 有利于SEO