前端面試修仙(二)

前端面試修仙(二)

寫在前面,比較重要的知識點,書上出錯的地方我纔會明確指出,主要目的是我怕也有人和我一樣倒黴買了這本書。
1.問題:利用js實現獲取5個0到99之間的隨機數?

var arr=[];
for(i=0;i<100;i++){
    arr.push(i);
}
function getNumber(arr){
    var _arr =[];
    var index;
    for(i=0;i<5;i++){
        var index =parseInt(Math.random()*100);
        _arr.push(arr[index]);
    }
    return _arr;
}
var b=getNumber(arr);
console.log(b);//我自己寫的,僅做參考

2.問題:用原生js寫一個 traverse 函數,輸出所有頁面寬度和高度大於 50 像素的節點?

這裏寫代碼片

3.問題:統計1到1000之間的自然數有多少個含有1?比如1到21,有1,10,11,12,13,14,15,16,17,18,19,21共11個數?(這個問題是我對前端面試江湖裏的61題改進的,他的題目是錯的,1到21他居然說只有5個含有1,這真的是蠢出天際)

這裏寫代碼片

4.問題:用js編寫一個0到7的隨機函數?

這裏寫代碼片

5.問題:寫js代碼,找到arr1中出現而arry2中沒有出現的數字?

這裏寫代碼片

6.問題:編寫js函數arrFilter過濾數組內的重複元素,要求根據傳入的參數的不同,實現不同的輸出方案,方案一,不改變原數組,返回一個新數組,方案二,改變原數組並返回。

這裏寫代碼片

7.問題:給arry數組增加換一個方法,maxMin,作用是去掉數組裏的最大值和最小值。並返回新的數組?(原書中的答案,答非所問)

這裏寫代碼片

8.數組方法pop(),push(),unshift(),shift()分別具備什麼功能?

  • pop(),從集合中把最後一個元素刪除,並返回這個元素的值。
  • push(),從集合中添加一個元素,並返回一個新的長度。
  • unshift(),在集合開頭添加一個元素,並返回新的數組。
  • shift(),把集合中的第一個元素刪除,並返回這個元素的值。

9.js中如何規避多人開發時函數重命名問題?

  • 使用單例模式,創建命名空間,根據不同的開發人員開發的功能加前綴
  • 立即執行函數,避免污染全局。

10.請分別描述js中,prototype、constructor、this、argument的含義

    -

11.這裏就擴展一下this的常用用法:1.純粹的函數調用,2.作爲對象的方法調用,3.作爲構造函數調用,4.apply調用。
12.問題:當點擊按鈕時,如何實現2個id的值互換?

這裏寫代碼片

13 . prenventDefault(),用來阻止dom元素的默認行爲。stopPropagation()阻止冒泡。
14.在form表單中在效果上來說,get和post都能夠獲取到服務器的數據,也都會向服務器發送數據。但是在語義上來說,get的確是爲了得到數據,隨get的參數應該是請求所需的參數,而不該是寫入數據庫的數據。post的返回值應該是存入數據的狀態,而不是一個新的頁面。雖然在使用的時候大家基本都會混淆兩者。get傳送的數據量較小,不能大於2KB的說法是來自於IE對URL長度的限制,HTTP規範中並沒有規定URL的長度上限。get和post的安全性差不多吧,除非蠢到在get參數中明文傳遞用戶名和密碼。要提高安全性,請選用https協議。
15.說說js中數組排序方法sort()的使用?
16.前端面試江湖,題187錯誤,題目:call和apply的區別?

  • 其實call和apply都可以改變this的執行環境,主要區別在於,call的參數傳遞從第二個開始,而apply的參數是類數組。

17.問題:請寫一個表格以及對應的 CSS,使表格奇數行爲白色背景,偶數行爲灰色背景,鼠標移上去時爲黃色背景。

這裏寫代碼片
這裏寫代碼片
這裏寫代碼片

18.問題:寫一個求和的函數 sum,達到下面的效果
// Should equal 15
sum(1, 2, 3, 4, 5);
// Should equal 0
sum(5, null, -5);
// Should equal 10
sum(‘1.0’, false, 1, true, 1, ‘A’, 1, ‘B’, 1, ‘C’, 1, ‘D’, 1, ‘E’, 1, ‘F’, 1, ‘G’, 1);
// Should equal 0.3, not 0.30000000000000004
sum(0.1, 0.2);

這裏寫代碼片

19.問題:在空白處填入適當的代碼使輸出結果成立:
function showMoney( ) {
1
};
var personA = new Object;
var personB = new Object;
personA.money= “100”;
personB.money= “150”;
personA.showMoney= showMoney;
personB.showMoney= showMoney;

20.問題:刪除給定數組中的第二項和第三項,並且在得到的新的數組中第二項後面添加一個新的值:
var arr1 = [‘a’,’b’,’c’,’d’,’e’];

這裏寫代碼片

21.使用for in循環數組中的元素會枚舉原型鏈上的所有屬性,過濾這些屬性的方式是用hasOwnProperty()
22.問題:請實現一個 fibonacci 函數,要求其參數和返回值如下所示:
/**
*@desc: fibonacci
*@param: count {Number}
*@return: result {Number} 第 count 個 fibonacci 值,計數從 0 開始
fibonacci 數列爲:[1, 1, 2, 3, 5, 8, 13, 21, 34 …]
則 getNthFibonacci(0)返回值爲 1
則 getNthFibonacci(4)返回值爲 5
*/
function getNthFibonacci(count) {
}

這裏寫代碼片

23.問題:輸出對象中值大於 2 的 key 的數組
var data = {a: 1, b: 2, c: 3, d: 4};
期待輸出:[“c”,”d”]

這裏寫代碼片
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章