JS微专业作业答案

function type(obj) {
    return Object.prototype.toString.call(obj).slice(8, -1).toLowerCase()
}

实现type函数用于识别标准类型和内置对象类型,语法如下:

var t = type(obj);

使用举例如下:

  1. var t = type(1) // t==="number"
  2. var t = type(new Number(1)) // t==="number"
  3. var t = type("abc") // t==="string"
  4. var t = type(new String("abc")) // t==="string"
  5. var t = type(true) // t==="boolean"
  6. var t = type(undefined) // t==="undefined"
  7. var t = type(null) // t==="null"
  8. var t = type({}) // t==="object"
  9. var t = type([]) // t==="array"
  10. var t = type(new Date) // t==="date"
  11. var t = type(/\d/) // t==="regexp"
  12. var t = type(function(){}) // t==="function"

ES5中定义的Object.create(proto)方法,会创建并返回一个新的对象,这个新的对象以传入的proto对象为原型。

语法如下:

Object.create(proto)  (注:第二个参数忽略)

proto —— 作为新创建对象的原型对象

使用示例如下:

var a = Object.create({x: 1, y: 2});

    Object.create = Object.create || function(obj) {

    var F = function() {};
    F.prototype = obj;
    return new F();
}

Object.create在某些浏览器没有支持,请给出Object.create的兼容实现。

Function.prototype.bind = function(obj) {
    var aa = this,
        args = arguments;
    return function() {
        aa.apply(obj, Array.prototype.slice.call(args, 1))
    }
}
function fibonacci(n) {
    if (n == 0) {
        return 0;
    } else if (n == 1) {
        return 1;
    } else {
        return (arguments.callee(n - 1) + arguments.callee(n - 2));
    }
}
function search(arr,dst){
    var type = Object.prototype.toString.call(arr).slice(8,-1);
    if(type != ‘Array‘){
        throw TypeError(‘Object prototype may only be an Array‘)
    }
    var len = arr.length;
    if( !len){
        return -1;
    }

    var l = 0;
    var h = len - 1;
    while(l <= h){
        var m = Math.floor( (h+l)/2 );
        if( arr[m] == dst ){
            return m;
        }else if( dst < arr[m] ){ //左半部分
            h = m - 1;
        }else{ //右半部分
            l = m + 1;
        }

    }
}
var arr = [1,2,4,6,7,9,19,20,30,40,45,47];
alert( search(arr,45) )
时间: 2024-11-12 03:41:17

JS微专业作业答案的相关文章

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前端开发实践>的大作业题目 Photoshop切图 工具.面板.视图 测量.取色 切图 保存 修改.维护 图片优化与合并 Photoshop切图的单元测试(作业) 开发.调试工具 开发调试工具 HTML HTML简介 标签 实体字符 HTML的单元测试(作业) HTML的单元作业(作业) CSS CSS简介 选择器 文本 盒模型 背景 布局 变形 动画 CSS的单元测试 CSS的单元作业 JavaScript程序设计 课程学习指南 <web前端开发实践&g

Node.js 面试问题及答案(2017 版)

阅读原文 两年前,我们发布了我们的第一篇关于 Node.js 面试的文章 Node.js 面试常见问题和答案,近两年,JavaScript 和 Node.js 生态系统有了很多更新和发展,因此,是该更新这些面试问题和答案的时候了. 免责声明(重要) 仅仅通过面试问题去评价一个面试者,从来都不是一个好的选择.但是这些问题可以让你大体了解面试者在 Node.js 开发上的经验. 当然,这些问题并不能全面反映一个人的思维方式和开发习惯. 我相信,开发中遇到的问题,更能反映面试者的知识水平 - 所以,我

网易微专业大数据工程师

本微专业由国际知名教育集团Wiley开发,面向全球化需求,并由Boolan博览网结合国内应用进行扩充.助你系统掌握大数据必备技能和核心技术,包括工具选择,存储.编程.处理和管理数据架构等.全网独家大数据双语课程.英文内容,中文字幕,原版内容,保证质量.Wiley权威教育资源,顶尖国外公司高管.国内一线工程师协同开发,Boolan博览网学习服务支持.强强联手,打造最有特色的大数据课程. 课程安排1.大数据基础必修 做为一名大数据工程师,不仅仅要了解核心技术,还需要了解技术架构是如何和商业环境.业务

网易 微专业

目前买了以下的网易微专业课程,需要的可留言. iOS开发工程师 测试工程师 新媒体视频导演 前端开发 web安全 交互设计师 产品经理 独立音乐制作人 产品运营 安卓 UI设计师 java开发工程师 python web IT项目管理 C++开发工程师

今日头条上看到的js面试题和答案

用js判断字符中每个字符出现的次数, 答案是var info = arr.split('').reduce((a,b)=>(console.log(a,b),a[b]++ || (a[b]=1),a),{}); 这里面运用到了es5,6的reduce和箭头函数,琢磨半天才明白,把箭头函数简化成普通函数可以写成这样 var info = arr.split('').reduce(function(a,b){ if(a[b]){ a[b]++ ; }else{ a[b]=1; } return a;

前端面试题 | JS部分(附带答案)

目前在找工作,所以各方收集了一堆面试题.其实刷面试题的过程也能更新自己对知识的认识,所以也提醒自己多看多理解.如果对下面题目有更深理解,会实时更新.遇到新题目,也会不定时更新.希望能帮助到部分朋友- 一.各种函数方法定义及区别 1. typeof运算符和instanceof运算符以及isPrototypeOf()方法的区别 typeof是一个运算符,用于检测数据的类型,比如基本数据类型null.undefined.string.number.boolean,以及引用数据类型object.func

springcloud vue.js 微服务分布式 前后分离 集成代码生成器 shiro权限 activiti工作流

1.代码生成器: [正反双向](单表.主表.明细表.树形表,快速开发利器)freemaker模版技术 ,0个代码不用写,生成完整的一个模块,带页面.建表sql脚本.处理类.service等完整模块2.多数据源:(支持同时连接无数个数据库,可以不同的模块连接不同数的据库)支持N个数据源3.阿里数据库连接池druid,安全权限框架 shiro(菜单权限和按钮权限), 缓存框架 ehcache4.代码编辑器,在线模版编辑,仿开发工具编辑器5.调用摄像头拍照 自定义裁剪编辑头像,头像图片色度调节6.we

springcloud vue.js 微服务 分布式 activiti工作流 前后分离 shiro权限 集成代码生成器

1.代码生成器: [正反双向](单表.主表.明细表.树形表,快速开发利器)freemaker模版技术 ,0个代码不用写,生成完整的一个模块,带页面.建表sql脚本.处理类.service等完整模块2.多数据源:(支持同时连接无数个数据库,可以不同的模块连接不同数的据库)支持N个数据源3.阿里数据库连接池druid,安全权限框架 shiro(菜单权限和按钮权限), 缓存框架 ehcache4.代码编辑器,在线模版编辑,仿开发工具编辑器5.调用摄像头拍照 自定义裁剪编辑头像,头像图片色度调节6.we