/**
* 回答方式: 直接保存或者复制本js文件, 然后在原处作答. 注意不要改动函数结构
* 在原本的函数体里返回正确答案
* 本卷直接用代码判卷, 没有人工干预. 格式改动会导致试卷无效
*/
module.exports = {
// 选择题, 单项选择, 每题4分
// 直接返回正确答案字符串, 如 `return 'A';`
// 实现题, 每题10分
qn0: () => {
// 只是样例! 不用改动
//
// A. 选我, 选我就得分
//
// B. 别选我
//
// C. 别选我
//
// D. 别选我
return 'A';
},
qn1: () => {
// 以下表达式中能去除所有空格的是:
//
// A. str = str.replace(/^\s*|\s*$/g,"");
//
// B. str = str.replace(/\s*/g,"");
//
// C. str = str.replace(/(\s*$)/g, "");
//
// D. str = str.replace( /^\s*/, “”);
return null;
},
qn2: () => {
// 以下哪个权重最大:
//
// A. 标签选择器(如 div、p)
//
// B. ID选择器(如 #content )
//
// C. 内联样式
//
// D. 类选择器(如 .content)
return null;
},
qn3: () => {
// 关于HTML自定义标签, 错误的是:
//
// A. 已知的HTML自定义标签才能应用CSS, 以及用JS操作. 未知的HTML标签会成为HTMLUnknownElement的实例
//
// B. HTML自定义标签可以应用CSS
//
// C. HTML自定义标签可以用JS操作
//
// D. <greeting></greeting> 这段HTML代码是合法的, 可以被正常展示
return null;
},
qn4: () => {
// 以下哪个元素, 不符合在默认情况下, 设置margin上下距离和宽高无效, 但是其他样式有效:
//
// A. strong
//
// B. input
//
// C. sub
//
// D. code
//
// E. p
//
// F. a
//
// G. span
//
// H. button
//
// I. label
return null;
},
qn5: () => {
// 以下代码片段, 选择它的打印输出 (省略换行)
//
// ```js
// console.log(0.25 + 0.25 === 0.5);
// console.log(0.1 + 0.2 === 0.3);
// ```
//
// A. true false
//
// B. false false
//
// C. true true
//
// D. false true
return null;
},
qn6: () => {
// 关于git, 以下命令中只涉及本地仓库的为:
//
// A. git push
//
// B. git reset --hard ORIG_HEAD
//
// C. git fetch --all
//
// D. git branch -l -a
return null;
},
qn7: () => {
// 以下代码片段, 选择它的打印输出 (省略换行)
// ```js
// const a = [];
// for (var i=0; i<10; i++) {
// a.push(function() {
// return console.log(i);
// });
// }
// a[0]();
// a[1]();
// ```
//
// A. undefined undefined
//
// B. 不打印
//
// C. 0 1
//
// D. 10 10
return null;
},
qn8: () => {
// 以下哪个不是服务器端渲染SSR的问题:
//
// A. 搜索引擎不执行JS
//
// B. 性能开销大
//
// C. 缓存机制复杂
//
// D. 框架支持不完善
return null;
},
qn9: () => {
// CSS中, flex是哪三个flex关键字的简写 (可以查文档):
//
// A. flex-direction, flex-grow, flex-shrink
//
// B. flex-grow, flex-shrink, flex-basis
//
// C. flex-direction, flex-wrap, flex-flow
//
// D. flex-direction, flex-basis, flex-flow
return null;
},
qn10: () => {
// 以下代码片段, 选择它的打印输出 (省略换行)
//
// ```js
// function fn2(){
// for(var i=0;i<4;i++){
// var timer=setInterval(function(i,timer){
// console.log(i);
// clearInterval(timer)
// },10,i,timer);
// }
// }
// fn2();
// ```
//
// A. 打印为空
//
// B. 0 1 2 3 随机顺序出现, 总个数一致
//
// C. 0 1 2 3 3 3 3 重复
//
// D. 0 1 2 3 0 1 2 3 四个数重复
return null;
},
qn11: () => {
// 以下方法中, 返回值类型和其他最不同的:
//
// A. Array.reduce
//
// B. Array.splice
//
// C. Array.map
//
// D. Array.forEach
return null;
},
qn12: () => {
// 以下代码片段, 选择它的打印输出 (省略换行)
// ```js
// var m = true;
// setTimeout(
// function() {
// m = false;
// }, 3000);
// );
// while(m) {}
// console.log('DONE');
// ```
//
// A. DONE (立即打印)
//
// B. 不打印
//
// C. 代码抛错
//
// D. DONE (约3秒后打印, 不精确)
return null;
},
qn13: () => {
// 关于HTTPS / SSL / TLS, 以下错误的是:
//
// A. 最常用的非对称加密算法RSA, 是基于大素数分解质因数实现的
//
// B. 后续的HTTPS通讯, 客户端和服务器端的通讯会使用非对称加密
//
// C. 当客户端收到服务器端发送的证书, 证书充当公钥. 为了验证证书有效性, 用客户端已经安装的CA证书检查
//
// D. 公司内网需要监控解密HTTPS时, 可以在客户端安装公司自己的CA证书
return null;
},
qn14: () => {
// 关于Linux命令, 错误的是:
//
// A. grep -C 3 "关键词" 命令可以找到包含"关键词"的行, 以及展示上面3行和下面3行
//
// B. ls -l命令可以列出文件, 但不包含隐藏文件
//
// C. man <some_command> 可以查看命令的手册, man代表manual
//
// D. cat out.txt | vim 这个命令用管道可以把out.txt中的文本导到vim中编辑
return null;
},
qn15: () => {
// 关于let和var, 以下正确的是:
//
// A. let是块级作用域, var是函数级作用域, let和var变量定义都会提升 (hoist)
//
// B. let是函数级作用域, var是块级作用域, let变量定义会提升 (hoist), var不会
//
// C. let是块级作用域, var是函数级作用域, var变量定义会提升 (hoist), let不会
//
// D. let是函数级作用域, var是块级作用域, let和var变量定义都会提升 (hoist)
return null;
},
qn16: () => {
// 以下哪个场景*不适合*使用WebSocket:
//
// A. 交易页面, 用户用RESTful API下单, WebSocket告知用户订单成交
//
// B. 用户在线聊天, 发送聊天内容和接收聊天内容都用WebSocket传输
//
// C. 去中心化游戏应用, 两人对战用WebSocket通知对手位置, 对战结束后胜负结果上链
//
// D. 身份审核, 提交文件后1-2个工作日审核完毕, WebSocket通知用户审核完毕
return null;
},
qn17: () => {
// 前端在 foobar.com, 向 api.foobar.com 发送请求, 以下哪个请求不需要OPTIONS preflight (以Chrome为准):
//
// A. 一个HEAD请求, 有Authorization头
//
// B. 一个PUT请求, 没有头
//
// C. 一个GET请求, 有Content-Type头, 值为application/json
//
// D. 一个POST请求, 有User-Agent和Connection头
return null;
},
qn18: () => {
// 以下关于Redux, 错误的是:
//
// A. 使用Redux时需要先引入React依赖
//
// B. Redux store可以从js文件export并在任意位置使用
//
// C. Redux用于应用的状态管理
//
// D. Reducer中不能做异步操作
return null;
},
qn19: () => {
// 以下代码片段, 选择它的打印输出 (省略换行)
//
// ```js
// function fn1(){
// for(var i=0;i<4;i++){
// var timer=setTimeout(function(i){
// console.log(i);
// clearTimeout(timer)
// },10,i);
// }
// }
// fn1();
// ```
//
// A. 3 2 1 0
//
// B. 0 1 2 3
//
// C. 0 1 2
//
// D. 打印为空
return null;
},
qn20: () => {
// 以下哪个HTTP状态码非错误状态:
//
// A. 500
//
// B. 303
//
// C. 404
//
// D. 400
return null;
},
/**
* 统计数组中每个字符串出现次数
* @param string[] strs: 字符串数组, 例如 ['aa', 'ab', 'ab', 'cc', 'cba']
* @return {[key: string]: number} 出现次数对象, 例如 { aa: 1, ab: 2, cc: 1, cba: 1 }
*/
frequencyMap: strs => {
//TODO your code goes here...
return null;
},
/**
* 请处理给定字符串:
* - 去掉无用字符和乱码, 只保留大小写英文字母, 单引号, 和空格
* - 把一个或多个连续无用字符和乱码换成一个空格. 注意多个乱码只替换成一个空格
* @param str: 字符串, 例 "I'm我我我driving是to乱乱Beijing码after breakfast88"
* @return str: 例 "I'm driving to Beijing after breakfast "
*/
decode: str => {
//TODO your code goes here...
return null;
},
/**
* 会议室, 输入是一个数组, 所有会议的开始和结束时间. 输出一共需要多少个会议室
* @param meetings: 二维数组, 例 [[10, 20], [20, 30]],
* @return int: 需要的会议室的个数, 例 1
* 另一个测试用例: [[10,20], [19,30]] => 2
*/
minRequiredMeetingsRooms: meetings => {
//TODO your code goes here...
return null;
},
/**
* 部门安排所有组合
* @param departments: dict, key是部门名, value是每个部门对应所有员工ID数组
* 例 {'frontend': [1, 2], 'backend': [3, 4], 'devops': [5]}
* @param required_department: dict, 该任务需要参与的部门和需要的人数
* 例 {'frontend': 2, 'backend': 1}
* @return 所有可能的员工组合, 例 [[1, 2, 3], [1, 2, 4]]. 按员工ID升序排序
*/
staffCombinations: (department_staff_dict, required_staff) => {
//TODO your code goes here...
return null;
},
/**
* 大整数相加. 正常相加会溢出的两个整数, 以字符串方式相加
* @param num1 加数, 字符串, 例 '123456789123456789'
* @param num2 加数, 字符串, 例 '987654321987654321'
* @return 和, 例 '1111111111111111110'
*/
addStrings: (num1, num2) => {
//TODO your code goes here...
return null;
},
}