前端開發工程師 - 02.JavaScript程序設計 - 期末考試
期末考試客觀題
期末考試主觀題
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程序設計 - 期末考試