1. 程式人生 > >前端開發工程師 - 02.JavaScript程序設計 - 期末考試

前端開發工程師 - 02.JavaScript程序設計 - 期末考試

|| pat ray 日期 get att pattern nbsp prot

期末考試客觀題

期末考試主觀題

https://www.15yan.com/story/aY0HWAQ7oNU/

1(8分)

函數myType用於根據輸入參數返回相應的類型信息。

語法如下:

var str = myType (param);

使用範例如下:

myType (1); 返回值: "number"

myType (false); 返回值: "boolean"

myType ({}); 返回值: "object"

myType ([]); 返回值:" Array"

myType (function(){}); 返回值:"function"

myType (new Date()); 返回值: "Date"

請寫出函數myType的實現代碼。

function myType(param) {
    var type = Object.prototype.toString.call(param).slice(8, -1);
 
    if(typeof(param) !== "object" || type === "Object") {
        type = type.toLowerCase();
    }
    return type;
}

2(10分)

函數search用於在一個已排序的數字數組中查找指定數字。

語法如下:

var index = search(arr, dst);

使用範例如下:

var arr = [1, 2, 4, 6, 7, 9, 19,20, 30, 40, 45, 47];

search(arr, 45); 返回值: 10

請寫出函數search的實現代碼 請給出函數,要求不能使用Array的原型方法,且算法時間復雜度低於O(n)。

function search(arr, dst) {
    for (var i = 0; i < arr.length; i++) {
        if (dst == arr[i]) {
            return i;
        }
    }
}

Mark rubric中要求使用二分法--時間復雜度需要< O(n). TAT沒有認真看題目。

3(12分)

函數formatDate用於將日期對象轉換成指定格式的字符串,語法如下:

var str = formatDate(date, pattern);

其中pattern的全格式為"yyyy-MM-dd HH:mm:ss"

使用範例如下:

var date = new Date(2001, 8, 11, 8, 26, 8);

formatDate(date, "yyyy"); 返回值: "2001"

formatDate(date, "yyyy-MM-dd"); 返回值: "2001-09-11"

formatDate(date, "yyyy-MM-dd HH"); 返回值: "2001-09-11 08"

formatDate(date, "yyyy-MM-dd HH:mm:ss"); 返回值: "2001-09-11 08:26:08"

請寫出函數formatDate的實現代碼。

function formatDate(date, pattern) {
    // get the date info
    var dateArray = [date.getFullYear(),
        date.getMonth()+1,
        date.getDate(),
        date.getHours(),
        date.getMinutes(),
        date.getSeconds()
    ];
 
    for (var i = 1; i < dateArray.length; i++) {
        // formatted
        if (dateArray[i] < 10) {
            dateArray[i] = "0" + dateArray[i];
        } else {
            dateArray[i] = dateArray[i].toString();
        }
    }
 
    var ret = "";
    switch(pattern){
        case "yyyy":
            ret = dateArray[0];
            break;
        case "yyyy-MM-dd":
            ret = dateArray[0]+‘-‘+dateArray[1]+‘-‘+dateArray[2];
            break;
        case "yyyy-MM-dd HH":
            ret = dateArray[0]+‘-‘+dateArray[1]+‘-‘+dateArray[2] + " " +dateArray[3];
            break;
        case "yyyy-MM-dd HH:mm:ss":
            ret = dateArray[0]+‘-‘+dateArray[1]+‘-‘+dateArray[2] + " " +dateArray[3] +‘:‘+dateArray[4]+‘:‘+dateArray[5];
            break;
    }
    return ret;
     
}

JavaScript練習收集:http://www.jianshu.com/p/c0b69c6c1486

前端開發工程師 - 02.JavaScript程序設計 - 期末考試