三七互娱秋招web前端笔试题编程题(使用原生JS实现一个英雄类Hero, 可以按照以下方式调用正确输出)
使用原生JS实现一个英雄类Hero, 可以按照以下方式调用(考察点: JavaScript流程控制)
(1) Hero("37FEer")输出:
Hi!This is 37FEer!
(2) Hero("37FEer").kill(1).recover(30)输出:
Hi!This is 37FEer!
Kill 1 bug (注意:数量1个,所以bug是单数);
Recover 30 bloods;
(3) Hero("37FEer").sleep(10).kill(2)输出:
Hi!This is 37FEer!
// 等待10秒..
Kill 2 bugs (注意:数量2个,所以bugs是复数);
分析:这个感觉有点难,因为我自己只能同时实现其中某一个(第二个或者第三个),但是不能同时实现上述三种输出。
比如博主这里先提供实现第二种的代码(主要逻辑就是要明白链式调用,函数或方法每次执行后返回当前的对象):
function Hero(name){this.name = name;this.nameDesc = 'Hi! This is ' + this.name + '!';this.kill = function(killNum){this.killNum = killNum;this.bugDesc = 'bug;';if(this.killNum > 1){this.bugDesc = 'bugs;';}this.killNumDesc = 'Kill ' + this.killNum + ' ' + this.bugDesc;return this;};this.recover = function(recoverNum){this.recoverNum = recoverNum;this.recoverNumDesc = 'Recover ' + this.recoverNum + ' bloods;';return this.nameDesc + '\n' + this.killNumDesc + '\n' + this.recoverNumDesc;};this.sleep = function(t){setTimeout(function(){return this;},t*1000)}return this;
}console.log(Hero('37FEer').kill(2).recover(30))
输出如下图:
可惜很明显的是,只有在条件为Hero('37FEer').kill(2).recover(30)才能满足,而且里面的sleep方法不能用setTimeout!理由我就不再多说了。
关键在于不知道这道题输出的形式是什么?是就在函数里console.log()打印呢?还是调用整个函数之后,return的结果。
下面是在函数里打印console.log()输出的实现,下面是改进的地方:
function Hero(name){this.name = name;console.log('Hi! This is ' + this.name + '!');this.kill = function(killNum){this.killNum = killNum;this.bugDesc = killNum === 1 ? 'bug' : 'bugs';console.log(this.killNumDesc = 'Kill ' + this.killNum + ' ' + this.bugDesc);return this;};this.recover = function(recoverNum){this.recoverNum = recoverNum;console.log(this.recoverNumDesc = 'Recover ' + this.recoverNum + ' bloods;');return this;};this.sleep = function(t){//这里千万不能用setTimeoutvar wait = t*1000;var start = new Date().getTime();var end = start;while(end < start + wait){end = new Date().getTime();}return this;}return this;
}
console.log(Hero('37FEer'))
console.log(Hero('37FEer').kill(2).recover(30))
console.log(Hero('37FEer').sleep(1).kill(2))
如果是在函数里console.log()那么这道题就是这么实现了....
如果读者有更好更全的方法,欢迎评论交流~
三七互娱秋招web前端笔试题编程题(使用原生JS实现一个英雄类Hero, 可以按照以下方式调用正确输出)相关推荐
- 三七互娱-游戏运维岗笔试题(无答案)
(1)简述TCP/IP三次握手和四次挥手过程 (2)磁盘分区空间还充足,但用户无法写入了,简述可能的原因 (3)把列表[1,3,5,7,9]倒序并将元素变为字符类型,请写出多种方法 (4)使用gran ...
- 爱奇艺2019秋招Java方向笔试题(B)
爱奇艺2019秋招Java方向笔试题(B) 1. 已知一个由5个顶点8条边构成的有向图,以下说法正确的是( C ) A. 各顶点的度之和为8 B. 若以邻接表作为存储结构,邻接表中结点个数为16 C. ...
- 大疆秋招IBG后端笔试题 2023
大疆秋招IBG后端笔试题 2023 题型 编程 计算时间差(Leetcode359) 最小偏移量(Leetcode1657) 题型 单选:20道:(不可修改答案好像,我没找到返回上一题的界面) 多选: ...
- 也许你需要点实用的-Web前端笔试题
之前发的一篇博客里没有附上答案,现在有空整理了下发出来,希望能帮助到正在找工作的你,还是那句话:技术只有自己真正理解了才是自己的东西,共勉. Web前端笔试题 Html+css 1.对WEB标准以及w ...
- 互联网公司招聘--爱奇艺--互娱产品运营--2016年笔试题
互联网公司招聘–爱奇艺–互娱产品运营–2016年笔试题 互联网公司招聘–爱奇艺–互娱产品运营–2016年笔试题 互联网公司招聘–爱奇艺–互娱产品运营–2016年笔试题 试列举 3-5 个视频秀场平台 ...
- 数据分析真题日刷 | 京东2018秋招数据分析工程师笔试题
今日真题 京东2018秋招数据分析工程师笔试题(来源:牛客网) 题型 客观题:单选18道,不定项选择12道 主观题:编程2道 完成时间 120分钟 牛客网评估难度系数 3颗星 写到「数据分析真题日刷」 ...
- 秋招Android常见笔试题合集--Binrry(冰蕊)
阅文集团笔试题 单选题 数组初始化 给定如下代码:int x[4]={0};int y[4]={1};数组x和y的值为: {0,0,0,0},{1,0,0,0} 十进制30转换成十六进制数是: 1E ...
- 腾讯 2015秋招笔试题 编程题2:九宫格填数
腾讯 2015秋招笔试题 编程2:九宫格填数 题目 2: 有下图的题解,请用 C/C++ 代码来列出满足下图 0-100 内的所有答案. 配合加减乘除,使得九宫格横竖都等于4. 智力冲浪 数字推理 请 ...
- 网易互娱2020校招游戏研发笔试题
网易互娱游戏研发笔试题 第一题:判断一个数的二进制是否为回文串(AC) 方法一:存成数组之后比较 #include<iostream> #include<algorithm> ...
- 美团2023年春招在线前端笔试题回忆版
提示:题目不一定完全正确,只能说给大家参考会考察哪些知识点. 文章目录 前言 一.单选(计算机基础知识) 二.专项选择 三.编程题 1. 某地有一个火车站如下图所示,小红很好奇火车是怎么驶进驶出的,然 ...
最新文章
- DbVisualizer数据库连接工具默认查询结果只显示100条解决方法,dbvis如何展示更多行,如何显示全部数据
- 导出滴滴行程单_身穿统一的绿马甲!滴滴货运小哥上线首日即爆单
- 数值范围_如何理解PLC对数值运算的定义与处理方式?
- java c 基本类型_java 基本数据类型
- nginx An attempt was made to access a socket in a way forbidden by its access permissions
- 声音均衡器怎么调好听_汽车10段音效最佳设置,手把手教你调节车载音响均衡器...
- 有关Monkey命令的两个隐藏选项
- 中煤 php面试,中煤总部笔试面试经验
- 反向题在测试问卷信效度_[问卷的信度和效度分析]问卷信度和效度分析
- 把iPad上的视频推送到大麦盒子去
- 思科痛失瑞士电信2.5亿法郎合同
- 【定位问题】基于matlab chan算法、fang算法、taylor算法求解目标定位问题【含Matlab源码 2135期】
- Manifest.json文档说明
- 计算机辅助教学领域的先驱者,探索“三大构成”教学模式发展之路
- source 命令解释
- 使用R包networkD3绘制炫酷的动态关系网络
- git解决The authenticity of host ‘github.com (192.30.255.112)‘ can‘t be established问题
- 服务器 SaaS、PaaS、IaaS 区别
- SharedPreferences详解(存储、读取及代码)
- FreeMarker Thymeleaf - 前端模板引擎