面试时遇到了那些你处理哪些业务场景使用xxx就一脸懵,想不起来啊
不知道大家有没有这种感觉,背古诗上半句能接下半句,但是下半句去接上半句就有点难了
更何况有些是特性,而非业务
anyway,开个目录记录下来,之后一点点在这里补充吧
js
闭包
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| // 将变量保存进函数,待执行 function makeSizer(size) { return function() { console.log(size) }; } var size1 = makeSizer(10); size1();
// 私有化变量 var Counter = function() { var privateCounter = 0; return { value: function() { return privateCounter; } } } var counter1 = Counter(); counter1.value()
|
Class
1 2 3 4 5 6 7 8 9 10 11 12
| export function aa(){} export class checkList { constructor() {} checkCodeNum(codeNum, maxLen = 6) { if (codeNum == '' || codeNum.length != maxLen) { return false; } else { return true; } } }
|
vue
指令
1 2 3 4 5 6 7 8 9 10
| <p class="workType" v-getBaTitle="item.position"></p> directives: { getBaTitle: { bind: function(el, binding) { // 通过binding.value获取绑定的值,并写入节点内 el.innerHTML = binding.value.split("-")[1] || "xxx"; }, }, },
|
数组
遍历时删除,置顶合并数组
1 2 3 4 5 6 7 8 9 10 11 12 13
| baList(state) { if (state.list.length == 0) return []; let needTopItemArr = []; for (let i = 0; i < state.list.length; i++) { if (state.list[i].serviceStar) { needTopItemArr.push(state.list[i]); state.list.splice(i, 1); i--; } } return needTopItemArr.concat(state.list) }
|
css
当有需求改动ui框架样式是,scoped 中的样式不生效,用 /deep/ 解决
但是 ios 移动端还不支持,只能这部分重写的内容不要放在 scoped 中