前端开发工程师 - 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

时间: 2024-11-12 15:48:47

前端开发工程师 - 02.JavaScript程序设计 - 期末考试的相关文章

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

第1章--基础篇 JS介绍 html 网页的内容:css 网页的样式:javascript 网页的行为 i.e. hello world <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <script type="text/javascrip

2019微专业初级前端开发工程师教程

目录:┣━━1前端入门┃ ┣━━第1章 前端技术发展概述┃ ┃ ┗━━1前端技术发展概述.mp4┃ ┣━━第2章 微专业课程体系概述┃ ┃ ┗━━2微专业课程体系概述.mp4┃ ┣━━第3章 前端入门案例┃ ┃ ┗━━3前端入门案例.mp4┃ ┣━━第4章 前端开发工具┃ ┃ ┣━━4.1前端开发工具概述.mp4┃ ┃ ┣━━4.2WebStorm.mp4┃ ┃ ┣━━4.2WebStorm参考资料.doc┃ ┃ ┣━━4.3Sublime Text 参考资料.doc┃ ┃ ┣━━4.3Subl

麦子学院-Web前端开发工程师系列培训教程

HTML+CSS基础入门1.课程介绍2.html的语法3.html的基本结构4.html的文档设置标记上(格式标记)5.html的文档设置标记下(文本标记)6.html图像标记img7.html超链接的使用8.html表格相关的标记9.html表格实战<简单的网页布局>10.html框架详解与框架布局实战11.HTML表单设计(上)12.HTML表单设计(下)13.使用CSS样式的方式14.定义CSS样式(CSS选择器)15.CSS常用属性(颜色属性)16.css常用属性(字体相关属性)17.

怎么才能成为优秀的前端开发工程师?

怎样才能成为优秀的前端开发工程师 很多刚入门的前端攻城师会有一个疑问:如何才能成为一名优秀的前端工程师呢?其实这个问题说大也大,说小也小,展开了说可以写一本书.当然我相信大部分人并不希望去读一本厚厚的书,大道至简,下面总结的几条方法或许能成为走向优秀前端的进阶之路. 1. 多写.很多问题都是积累得来的.写了,遇到了,才能去真正理解解决方案,才会随着自己的不断成长而有进步.别人问我为什么知道那么多 CSS 兼容解决方案,为什么一看就出的时候,我只能告诉他,我写了 20 几个 Wordpress 主

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

Web前端开发工程师养成计划(入门篇) 最原始的忠告:这个世界上有想法的人很多,但是有想法又能实现它的人太少! 首先要感谢伟大的Web2.0概念.产品概念.用户体验概念.jQuery插件,是它们在中国日渐成熟才解放了一直以来姥姥不疼舅舅不爱的前端开发工程师们. 有没有发现从09年下半年到现在全中国的互联网公司都在招聘前端开发工程师?如果你注意到了,那么恭喜你,你已经拥有那么一点点预测互联网职场动向的能力. 可能令你感到遗憾的是你从没从事过前端开发工作,不过没关系,只要你肯努力,一切都是可以学会的

怎样才能成为优秀的前端开发工程师

很多刚入门的前端攻城师会有一个疑问:如何才能成为一名优秀的前端工程师呢?其实这个问题说大也大,说小也小,展开了说可以写一本书.当然我相信大部分人并不希望去读一本厚厚的书,大道至简,下面总结的几条方法或许能成为走向优秀前端的进阶之路. 1. 多写.很多问题都是积累得来的.写了,遇到了,才能去真正理解解决方案,才会随着自己的不断成长而有进步.别人问我为什么知道那么多 CSS 兼容解决方案,为什么一看就出的时候,我只能告诉他,我写了 20 几个 Wordpress 主题. 2. 看书.看 Blog 或

怎样才能成为优秀的前端开发工程师?

很多刚入门的前端攻城师会有一个疑问:如何才能成为一名优秀的前端工程师呢?其实这个问题说大也大,说小也小,展开了说可以写一本书.当然我相信大部分人并不希望去读一本厚厚的书,大道至简,下面总结的几条方法或许能成为走向优秀前端的进阶之路. 1. 多写.很多问题都是积累得来的.写了,遇到了,才能去真正理解解决方案,才会随着自己的不断成长而有进步.别人问我为什么知道那么多 CSS 兼容解决方案,为什么一看就出的时候,我只能告诉他,我写了 20 几个 Wordpress 主题. 2. 看书.看 Blog 或

腾讯web前端开发工程师笔试题及答案

1. 如何实现事件委托? 首先要知道什么是事件委托. 考虑一个列表,在li的数量非常少的时候,为每一个li添加事件侦听当然不会存在太多性能方面的问题,但是当列表非常的长,长到上百上千甚至上万的时候(当然只是一个解释,实际工作中很少遇到这么多li的情况),为每个li添加事件侦听就会对页面性能产生很大的影响. 就像下面这段代码: <!DOCTYPE HTML><html><head><meta charset="utf-8" /><ti

我也想成为一名出色的web前端开发工程师

随着互联网的发展,正式的前端工程师角色被行业认可,到了2010年,互联网开始全面进入移动时代,前端工程师的地位越来越重要,前端领域的技术发展也越来越快,各种新的思想.设计模式.工具和平台都快速发展,对前端工程师的技能要求也越来越高. 何为前端工程师?前端工程师,也叫Web前端开发工程师.他是随着web发展,细分出来的行业.它要求前端开发工程师不仅要掌握基本的Web前端开发技术,网站性能优化.SEO和服务器端的基础知识,而且要学会运用各种工具进行辅助开发以及理论层面的知识,包括代码的可维护性.组件