美文网首页
记一次今日头条视频技术面试

记一次今日头条视频技术面试

作者: 马建阳 | 来源:发表于2018-02-23 18:18 被阅读666次

1.题目:
继承

let b = Object.create(a)
b._proto_ === a
create(a)

解答:

Object.create = function (a){
     function Person(){
    } 
    Person.protype=a//a赋值给Person.protype,相当于a替换了Person.protype
    let b = new Person()
    return b
} 

2.题目:

<ul id="target">
    <li id="1"><div>Hello<div></id>
    <li id="2"></id>
    <li id="3"></id>
    <li id="4"></id>
    .....
</ul>

解答:

let $ul = document.getElementById("target")
$ul.addEventListener('click',function(e){
    var element = e.target
    while(element.tagName !== 'LI'){
        if (element.id === 'targt'){
            element = null //没有找到li
            break
        }
        element  = element.parentNode(这一句重要)
    }
    console.log(element)
})

3.假设某个楼梯有n级,小明要爬上楼梯,小明爬楼梯的时候可能一次走1步,也可能一次走2步,请写一个function,计算小明走完n级台阶一共有多少种走法。

比如 n = 3,则f(n) =3
走法分别是
1 1 1
2 1
1 2

f(3) = f(2) + f(1)
f(4) = f(3) + f(2)
解法:
法一:递归(不好),复杂度太大,不写前面的N<?条件会栈溢出

function step(n){
    if(n<=0){
        return 0
    }
    if(n===1){
        return 1
    }
    if(n===2){
        return 2
    }
    if(n>=3){
        return (step(n-1)+step(n-2))
        }
    }
}

法二:迭代

function step(n){
    if(n<=0){
        return 0
    }
    if(n===1){
        return 1
    }
    if(n===2){
        return 2
    }
    var one=1
    var two=2
    var result
    while(n>=3){
        result = one + two
        one = two
        two = result
        n = n-1
      }
return result
}
class Tab extend Component {
shouldUpdateComponent() {
}
}

shouldUpdateComponent什么意思
组件判断是否重新渲染时调用
5.jsonp不安全你用什么方案解决
cookie和session解决
6.说一下cookie和session

相关文章

网友评论

      本文标题:记一次今日头条视频技术面试

      本文链接:https://www.haomeiwen.com/subject/rzlgaxtx.html