1.以下遞迴函式存在棧溢位的風險,請問如何優化?
function factorial(n)
解答:
function factorial(n)
2.請實現乙個計算最大公約數的函式:function greatestcommondivisor(a,b)
greatestcommondivisor(8, 12) //4
greatestcommondivisor(8, 16) //8
greatestcommondivisor(8, 17) //1
解答:
function greatestcommondivisor(a,b)
return a;
}
3.陣列去重(如果陣列中有nan)array.prototype.uniq = function ()
return fibonacci(n - 1) + fibonacci(n - 2);
}
5.根據包名,在指定空間中建立物件
輸入描述:
namespace(}, 'a.b.c.d')輸出描述:
}}}}
function namespace(onamespace, spackage) ;
}parent = parent[property];
}return onamespace;
}
6.封裝函式 f,使 f 的 this 指向指定的物件function bindthis(f, otarget)
}
7.dom 節點查詢
查詢兩個節點的最近的乙個共同父節點,可以包括節點自身
輸入描述:
onode1 和 onode2 在同一文件中,且不會為相同的節點
function commonparentnode(onode1, onode2) else if(onode2.contains(onode1))else
}
8.關係型陣列轉換成樹形結構物件
關係型陣列:
var obj = [,,
,]
期望結果:
o = }}}
實現原始碼:
function treeobj(obj)
o.child.push(item);
o.child = o.child;
}});
}});
return obj.filter(item => item.parent === null)[0]
}
或者:
function treeobj(obj) : cur));
}
9.js如何判斷一組數字是否連續// 當出現連續數字的時候以『-』輸出
[1, 2, 3, 4, 6, 8, 9, 10]
期望結果:
["1-4", 6, "8-10"]
實現**:
判斷是否連續:
var arrange = function(arr)).concat(infinity).reduce(function(source, dest)
return dest;
});return result;
};
格式化實現:
var formatarr = function(arr) else
}return newarr;
}
10.建立子類child,使用原型和建構函式的方式繼承父類people的方法,並呼叫say函式說出姓名和年齡。
父類:
function people(name,age);
}
原型繼承:
function child(name, age)
child.prototype = new people();
var child = new child('rainy', 20);
child.say()
建構函式繼承:
function child(name, age)
var child = new child('rainy', 20);
child.say()
組合繼承:
function child(name, age)
child.prototype = people.prototype;
var child = new child('rainy', 20);
child.say()
組合繼承優化:
刷前端面經筆記(十二)
1.以下遞迴函式存在棧溢位的風險,請問如何優化?function factorial n 解答 function factorial n 2.請實現乙個計算最大公約數的函式 function greatestcommondivisor a,b greatestcommondivisor 8,12 4...
刷前端面經筆記(十二)
1.以下遞迴函式存在棧溢位的風險,請問如何優化?function factorial n 解答 function factorial n 2.請實現乙個計算最大公約數的函式 function greatestcommondivisor a,b greatestcommondivisor 8,12 4...
刷前端面經筆記(一)
1.css的盒子模型 包含元素內容content 內邊距padding 邊框border 外邊距margin box sizing border box content box inherit 1 content box 總寬度 margin border padding width,即為標準模型 ...