1.題目:
繼承
let b = Object.create(a)
b._proto_ === a
create(a)
解答:
Object.create = function (a){
function Person(){
}
Person.protype=a//a賦值給Person.protype,相當(dāng)于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.假設(shè)某個(gè)樓梯有n級(jí)西采,小明要爬上樓梯越庇,小明爬樓梯的時(shí)候可能一次走1步,也可能一次走2步猜丹,請(qǐng)寫一個(gè)function,計(jì)算小明走完n級(jí)臺(tái)階一共有多少種走法硅卢。
比如 n = 3射窒,則f(n) =3
走法分別是
1 1 1
2 1
1 2
f(3) = f(2) + f(1)
f(4) = f(3) + f(2)
解法:
法一:遞歸(不好),復(fù)雜度太大将塑,不寫前面的N<?條件會(huì)棧溢出
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什么意思
組件判斷是否重新渲染時(shí)調(diào)用
5.jsonp不安全你用什么方案解決
cookie和session解決
6.說一下cookie和session