- jqueryweui
用ajax写success属性为function去操作dom添加豆瓣前20电影<li></li>。还给它加了个上拖刷新和下拉刷新的拓展组件。详细文档 - 源码分析
- WEUI源码
stylus引用和文件模块化,fn.styl 功能串文件(base主 + widget系)
- codewars
1.有一段字符
1.如果字符超过140字,返回false
2.如果是空字符串,返回false
3.以#开始
4.每个单词都大写
- 将单词字符串,变成单词数组 split(' ')
- 数组里每个元素都是单词,首字母要大写
map 遍历每个元素,使用箭头函数- 每个单词 charAt(0) 第一个字符 toUpperCase()
- 除第一个字符后,其余的呢,slice(1)
return (str.length > 140 || str=='') ? false : '#'+str.split(' ').map(ele=>ele.charAt(0).toUpperCase()+ele.slice(1)).join(' ');
- 要让(3).add(5).multiply(2) =16成立
Number.prototype.add=function(num){return this+num;}
Number.prototype.multiply=function(num){return this*num;} - 数组排序
数组的sort()方法是按英文字母排序,可以sort(function(a,b){return a - b;})让它支持数字大小排序
具体应用:
const people = [
{age:46,name:'yjr'},
{age:11,name:'yqq'},
{age:55,name:'yjt'},
{age:4,name:'yyy'},
{age:43,name:'yzz'},
{age:1,name:'yss'},
]
console.log(people.sort(function(a,b){
return a.age - b.age
}));
- 给定一串单词,返回最短单词的长度
排序后取第一个:
str.split(' ').map(arr=>arr.length).sort((a,b)=>{return a - b})[0]
Math.min()的两种用法:
Math.min.apply(null,str.split(' ').map(arr=>arr.length))
Math.min(...str.split(' ').map(arr=>arr.length)
- css
- 1px
1px已经是最小的单位了,要比它还小的话,推荐使用先放大再用transform: scale()缩小的方法来实现
width: 200%;
height: 200%;
box-sizing: border-box;
transform: scale(0.5);
transform-origin: 0 0;
- git
- git rebase
git 以快照的形式保存,而我们平时checkout -b branch1一个分支出来,当我们的主分支发生改变时,直接回到主分支merge branch1合并分支,接着log --oneline --graph查看日志会发现提交记录也有两个分支,不整洁,所以我们在合并分支前要做一下处理。
我们在小分支里rebase master(rebase主分支),再回到主分支merge branch1合并分支就可以了,这样小分支就可以跟在改变后的主分支后面,提交记录就会整洁。 - git cherry-pick
git reflog是能看到所有操作的日志,包括reset操作,在git reset --hard一个结点后再git cherry-pick一个结点,可以保留现结点的文件内容的基础上添加cherry-pick那个结点的文件。
- 猫眼电影(使用接口)
用了flexible、jquery练习。
用盒子border画退出键,选择器选定标签再改数据,prepend()方法是在标签最前面插入内容。
添加想看功能,并带有提示(添加定时器,1.5秒后提示不可见)
添加了简介显示限制行数和收放(添加和移除样式类名),以及上图标的变化(加过渡) - 算法
- 动态规则(Dynamic Programing)
三个术语:
最优子结构
边界
状态转移公式
例如:
楼梯台阶有12阶,一步只能走1阶或走2阶,请问有多少走法?
最优子结构
f(12)->f(11) f(10)
f(11)->f(10) f(9)
边界 1=1 2=2 3=3
状态转移公式 f(12) = f(11) + f(10)
所以用代码实现方式:
function lou(n){
if(n <= 0){
return 0;
}
if(n===1){
return 1;
}
else if(n===2){
return 2;
}
else
return lou(n-1) + lou(n-2);
}
但是递归调用有性能问题,转换成变量计算能优化很多
function lou(n) {
if (n <= 0) {
return 0;
}
if (n===1) {
return 1;
}
if (n===2) {
return 2;
}
var a=1,b=2,temp=0;
for(var i = 3; i <= n; i++){
temp = a+b;
a=b;
b=temp;
}
return temp;
}