期末考试客观题

期末考试主观题

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程序设计 - 期末考试的更多相关文章

  1. 前端开发工程师 - 02.JavaScript程序设计 - 第2章.进阶篇

    第2章--进阶篇 类型进阶 类型: Undefined Null Boolean String Number Object 原始类型(值类型):undefined, null, true, " ...

  2. 前端开发工程师 - 02.JavaScript程序设计 - 第1章.基础篇

    第1章--基础篇 JS介绍 html 网页的内容:css 网页的样式:javascript 网页的行为 i.e. hello world <!DOCTYPE html> <html& ...

  3. Web前端开发工程师养成计划【转载】

    Web前端开发工程师养成计划(入门篇) 最原始的忠告:这个世界上有想法的人很多,但是有想法又能实现它的人太少! 首先要感谢伟大的Web2.0概念.产品概念.用户体验概念.jQuery插件,是它们在中国 ...

  4. Web前端开发工程师基本要求

    一位好的Web前端开发工程师在知识体系上既要有广度,又要有深度,所以很多大公司即使出高薪也很难招聘到理想的前端开发工程师.现在说的重点不在于讲解技术,而是更侧重于对技巧的讲解.技术非黑即白,只有对和错 ...

  5. 从就业面分析web前端开发工程师就业前景(2011.6)

    案例一 公司名称:法国电信北京研发中心 工作地点:北京 联系方式:hao.luan@orange-ftgroup.com 栾先生 岗位名称:web 前端开发工程师 岗位要求: 1. 计算机或相关专业本 ...

  6. 工具武装的前端开发工程师 Mac 软件清单

    Awesome Mac  这个仓库主要是收集非常好用的Mac应用程序.软件以及工具,主要面向开发者和设计师.有这个想法是因为我最近发了一篇较为火爆的涨粉儿微信公众号文章<工具武装的前端开发工程 ...

  7. Web前端开发工程师面试题

    Web前端开发工程师面试题1.说说css的优先级?2.在移动端中,常常使用tap作为点击事件,好处是?会带来什么问题?3.原生JS的window,onload与Jquery的$(document).r ...

  8. 上海洋码头(www.ymatou.com)急招技术人才(职位:互联网软件开发工程师,.NET网站架构师,Web前端开发工程师,高级测试工程师,产品经理)

    对公司招聘职位有兴趣的童鞋可以把简历发送到zhangzhiqiang@ymatou.com,我们HR会快速给你答复. 互联网软件开发工程师 岗位职责: 1.参与洋码头各个平台(www.ymatou.c ...

  9. web前端开发工程师

    web前端开发工程师 百科名片 Web前端开发工程师是一个很新的职业,在国内乃至国际上真正开始受到重视的时间不超过5年.Web前端开发是从网页制作演变而来的,名称上有很明显的时代特征.在互联网的演化进 ...

随机推荐

  1. python-正则基础

    正则表达式,说的简单些,就是一个匹配的功能,在python中,只要引用 re 模块,就能进行正则匹配操作 一.math匹配 先来看一个简单的例子 import re re.match(pattern, ...

  2. 【题解】洛谷P1541 [NOIP2010TG] 乌龟棋(类似背包的DP)

    题目来源:洛谷P1541 思路 类似背包的题 总之就是四种卡牌取的先后顺序不同导致的最终ans不同 所以我们用一个四维数组每一维分别表示第几种取了几张的最大分数 然后就是简单DP解决 代码 #incl ...

  3. 【数据结构】浅谈倍增求LCA

    思路 运用树上倍增法可以高效率地求出两点x,y的公共祖先LCA 我们设f[x][k]表示x的2k辈祖先 f[x][0]为x的父节点 因为从x向根节点走2k 可以看成从x走2k-1步 再走2k-1步 所 ...

  4. LeetCode27.移除元素 JavaScript

    给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成 ...

  5. Codeforces Round #483 (Div. 2)C题

    C. Finite or not? time limit per test 1 second memory limit per test 256 megabytes input standard in ...

  6. 让 shell(bash) 命令行显示当前 git 的分支名称

    早上测试脚本的时候,偶然在这篇文章<Git – setting up a remote repository and doing an initial push>看到一个关于 git 的好 ...

  7. vue-知乎日志

    1.项目API来源 2.项目地址 3.截图                                                       4.功能 首页 轮播图 动态消息 下拉刷新 动态 ...

  8. Android 微信页面刷新问题

    今天测试妹纸提了个bug,Android手机用微信打开测试页面,刷新功能无效.因为开发时懒,只验证了Ios手机无异常,没有注意打安卓这个问题. 我是直接用的window.location.reload ...

  9. array of TVarRec 动态数组使用

    FDQuery.AppendRecord()里是一个array of TVarRec.我们一般都是直接用[Var1,Var2,...].这样手工输入,但如果增加的元素我们预先不知道,就要声明一个arr ...

  10. django的Request-7

    目录 1. 从url中获取截取 2. QueryDict (1). QueryDict.get(key, [default]) (2). QueryDict.getlist(key, [default ...