期末考试客观题

期末考试主观题

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. 简单说一说对JavaScript原型链的理解

    每一个JavaScript对象都和另一个对象相关联,相关联的这个对象就是我们所说的“原型”.每一个对象都会从原型继承属性和方法.有一个特殊的对象没有原型,就是Object,还有一种通过Object.c ...

  2. HDU 2036 改革春风吹满地 (求多边形面积)

    传送门: 改革春风吹满地 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Tota ...

  3. 安全清理Xcode 缓存垃圾

    安全清理Xcode缓存垃圾方法: 经验证,Xcode缓存垃圾存储在~/Library/Developer/Xcode/DerivedData/路径下,缓存和Xcode的版本有关(如同一台Mac安装2个 ...

  4. 霍金:AI或许能根除疾病和贫穷,但也可能摧毁人类 | GMIC 2017

    在我的一生中,我见证了社会深刻的变化.其中最深刻的,同时也是对人类影响与日俱增的变化,是人工智能的崛起.简单来说,我认为强大的人工智能的崛起,要么是人类历史上最好的事,要么是最糟的.我不得不说,是好是 ...

  5. SQL SERVER 对权限的授予GRANT、拒绝DENY、收回REVOKE

    -----对用户member授权,允许其具有对数据表person的更新和删除的操作权限:GRANT UPDATE,DELETE ON personTO member WITH GRANT OPTION ...

  6. iOS universallinks唤醒app

    从iOS9之后,苹果就推出了这个功能,用来唤醒外部app.这个功能在那些电商app上使用尤其广泛,当你打开对应的h5网页后,上面跳出一个是否跳转app的按钮. 现在iOS11已经基本覆盖,iOS12也 ...

  7. JsonCpp在vs中使用

    Jsoncpp是c++生成和解析Json数据的跨平台开源库.下面简介如何在vs中使用. 1.官网下载.https://sourceforge.net/projects/jsoncpp/解压文件得到js ...

  8. 03.安装jdk8作为系统环境

    博客为日常工作学习积累总结: 1.安装JDK8 创建安装目录:mkdir /application/java8 解压-安装包自行下载:tar -zxf jdk-8u202-linux-x64.tar. ...

  9. Vue中异步组件(结合webpack,转载)

    转载,原文出处:https://www.jianshu.com/p/40a364b5e964 1.什么是异步组件? 异步组件就是定义的时候什么都不做,只在组件需要渲染(组件第一次显示)的时候进行加载渲 ...

  10. Java三种代理模式

    本文转自:https://mp.weixin.qq.com/s/nBmbNP2mR7ei-lDsuOxjWg 代理模式 代理(Proxy)是一种设计模式,提供了对目标对象另外的访问方式;即通过代理对象 ...