期末考试客观题

期末考试主观题

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

05-12 01:11