苹胖学习记录(三)4.5

  • jqueryweui
    用ajax写success属性为function去操作dom添加豆瓣前20电影
  • 。还给它加了个上拖刷新和下拉刷新的拓展组件。详细文档
  • 源码分析
  1. 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(' ');
  1. 要让(3).add(5).multiply(2) =16成立
    Number.prototype.add=function(num){return this+num;}
    Number.prototype.multiply=function(num){return this*num;}
  2. 数组排序
    数组的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
}));

  1. 给定一串单词,返回最短单词的长度
    排序后取第一个:

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
  1. 1px
    1px已经是最小的单位了,要比它还小的话,推荐使用先放大再用transform: scale()缩小的方法来实现

width: 200%;
height: 200%;
box-sizing: border-box;
transform: scale(0.5);
transform-origin: 0 0;

  • git
  1. git rebase
    git 以快照的形式保存,而我们平时checkout -b branch1一个分支出来,当我们的主分支发生改变时,直接回到主分支merge branch1合并分支,接着log --oneline --graph查看日志会发现提交记录也有两个分支,不整洁,所以我们在合并分支前要做一下处理。
    我们在小分支里rebase master(rebase主分支),再回到主分支merge branch1合并分支就可以了,这样小分支就可以跟在改变后的主分支后面,提交记录就会整洁。
  2. git cherry-pick
    git reflog是能看到所有操作的日志,包括reset操作,在git reset --hard一个结点后再git cherry-pick一个结点,可以保留现结点的文件内容的基础上添加cherry-pick那个结点的文件。
  • 猫眼电影(使用接口)
    用了flexible、jquery练习。
    用盒子border画退出键,选择器选定标签再改数据,prepend()方法是在标签最前面插入内容。
    添加想看功能,并带有提示(添加定时器,1.5秒后提示不可见)
    添加了简介显示限制行数和收放(添加和移除样式类名),以及上图标的变化(加过渡)
  • 算法
  1. 动态规则(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;
}

你可能感兴趣的:(苹胖学习记录(三)4.5)