面试一:MF
时间:2019-1-2

试题一

// [mf: stringify-query-string]
// 类型: x z
// 时长: 15 分钟
// 姓名:
// 日期: // 实现下面的 stringify 函数, 用于将键值对数据序列化为 query string. // 提示:
// 运行代码快捷键: Ctrl + S function stringify(data) {
var str = '';
//str = JSON.stringify(data);
str = JSON.stringify(data);
//str = encodeURIComponent(str);
//str = JSON.toString(data)
return str;
} // 参考用例: const query = stringify({
id: '123',
subject: 'hello, world!'
}); console.log('输出结果:');
console.log(query); // 输出结果参考 // 输出结果:
// id=123&subject=hello%2C%20world!

附:

function stringify(data){
var str = '';
var keys = [];
// if(typedof(data) == 'object'){
// keys = data.keys();
// }
for(var item in data) {
if (data.hasOwnProperty(item))
keys.push(item);
} for(i=0;i<keys.length;i++){
str += "&" + keys[i] +"=" + escape(data[keys[i]]);
}
str = str.substring(1);
return str;
} q = stringify({
id: '123',
subject: 'hello, world!'
}); console.log('输出结果:');
console.log(q);

试题二:

// [mf: string-template]
// 类型: xz
// 时长: 15 分钟
// 姓名:
// 日期: // 实现下面的 format 函数, 用于替换字符串模板中对应的占位符. // 提示:
// 运行代码快捷键: Ctrl + S function format(template, data) {
//思路:正则匹配 + 提取
var str = template;
var keys = [];
var values = [];
for(var i in data){
if(data.hasOwnProperty(i)){
keys.push(i);
values.push(data[i]);
}
}
for(var item=0;item<keys.length;item++){
str = str.replace(new RegExp("{" + keys[item]+"}","g"),values[item]);
}
return str;
} // 参考用例: const output = format('{name}今年{age}岁了.', {
name: '狮子大哥',
age: 18,
}); console.log('输出结果:');
console.log(output); // 输出结果参考 // 输出结果:
// 狮子大哥今年18岁了.

试题三

// [mf: async-task-queue]
// 类型: xz
// 时长: 30 分钟
// 姓名:
// 日期: // 修改下面的 start 函数, 使 execute 对应的 id 按顺序打印. // 提示:
// 运行代码快捷键: Ctrl + S var queue = [];
var flag = false; //是否执行完 function exe() {
if (queue.length > 0) {
execute(queue.shift(id)).then(() => {
exe();
}).catch(console.error);
}
} function start(id) {
queue.push(id);
if (!flag) {
exe();
flag = true;
}
} // 测试代码 (请勿更改): console.log('输出结果:'); for (let i = 0; i < 5; i++) {
start(i);
} function sleep(duration) {
return new Promise(resolve => setTimeout(resolve, duration));
} function execute(id) {
let duration = Math.floor(Math.random() * 500); return sleep(duration).then(() => {
console.log('id', id);
});
} // 输出结果参考 // 输出结果:
// id 0
// id 1
// id 2
// id 3
// id 4

  

  

参考文献

《JavaScript高级程序设计》

面试经验合集-Web前端<一>的更多相关文章

  1. 面试经验合集-Java后端<一>

    面试一:CDKHXJSYJS   时间:2018-12-29 周六 地点:航天科技大厦32楼   一 技术题目 <回忆版> 1.上下转型 2.Java异常:分类.处理.设计 3.二叉排序树 ...

  2. Java开发面试常见问题合集

    次面试事故 面试官:你看过哪些源码?我:都挺熟悉的面试官:对hashMap了解程度怎么样?面试官:那你能讲讲 HashMap的实现原理吗?面试官:HashMap什么时候会进行 rehash?面试官:结 ...

  3. Java高阶面试问题合集

    下面总结一下在Java面试中常用的一些问题,不具体解答,我只附上一些精彩的博文链接. Spring IOC AOP 底层原理 JAVA的反射机制和动态代理 Java反射机制和动态代理 多线程 Spri ...

  4. 2020大厂web前端面试常见问题总结

    本篇收录了一些面试中经常会遇到的经典面试题以及自己面试过程中遇到的一些问题.通过对本篇知识的整理以及经验的总结,希望能帮到更多的前端面试者. 1.web前端项目的结构是怎样的?文件有哪些命名规范? 项 ...

  5. Web 前端从入门菜鸟到实践老司机所需要的资料与指南合集

    http://web.jobbole.com/89188/ 2016 – 对于未来五年内Web发展的7个预测 2015 – 我的前端之路:从命令式到响应式,以及组件化与工程化的变革 怎么成为一名优秀的 ...

  6. web前端-面试经验总结

    这几次面试主要是冲着百度去的 面试1的主要问题: 笔试: 1.解释css盒子模型 2.常用选择器,以及优先级 3.B如何继承A 4.写一个闭包实例,有什么优点缺点 5.html5的心特性有哪些 6. ...

  7. web前端学习(二)html学习笔记部分(11)-- 没有标号记录的知识合集

    这一部分内容相对比较简单,就不按规矩排序了.(主要是网站上也没有这一部分内容的排序) 1.  html5的 非主体结构元素 学习笔记(1)里面记录过. 2.  html5表单提交和PHP环境搭建 1. ...

  8. web前端技术合集

    视频课程包含: 微服务精品课程包含:Ajax和Jquery基础入门视频.ajax教程.css视频教程.JQuery视频教程.MUI快速混合APP开发-视频.vuejs教程.极客学院HTML5全套教程. ...

  9. 【干货分享】前端面试知识点锦集04(Others篇)——附答案

    四.Others部分 技术类 1.http状态码有哪些?分别代表是什么意思? (1).成功2×× 成功处理了请求的状态码.200 服务器已成功处理了请求并提供了请求的网页.204 服务器成功处理了请求 ...

随机推荐

  1. Docker平台的基本使用方法

    1.运行一个 container并加载镜像centos,运行起来这个实例后,在实例中执行 /bin/bash命令 docker常用参数: run  运行 -i  以交互模式运行容器,通常与 -t 同时 ...

  2. Core官方DI解析(3)-ServiceCallSite.md

    上一篇说过在整个DI框架中IServiceProviderEngine是核心,但是如果直接看IServiceProviderEngine派生类其实看不出也没什么东西,因为这个类型其实都是调用的其它对象 ...

  3. Django子应用里的通用类混合视图处理

    # 子应用的views.py此文件用于编写Web应用视图,处理复杂的业务逻辑 #导入方法视图模板 from django.shortcuts import render #导包 from django ...

  4. VS2019 更新MSDN并创建快捷方式

    本文主要记录了 VS2019 中帮助查看器(Help Viewer)相关的内容,如何安装.如何启动.如何复用已有的文档.如何创建快捷方式等内容,通过本文将会对该工具有一个全面的了解. 安装 Help ...

  5. pytorch识别CIFAR10:训练ResNet-34(自定义transform,动态调整学习率,准确率提升到94.33%)

    版权声明:本文为博主原创文章,欢迎转载,并请注明出处.联系方式:460356155@qq.com 前面通过数据增强,ResNet-34残差网络识别CIFAR10,准确率达到了92.6. 这里对训练过程 ...

  6. MySQL大小写敏感

    MySQL大小写敏感说明 - TonyWu - 博客园https://www.cnblogs.com/wzmenjoy/p/4244545.html

  7. Consecutive Sum LightOJ - 1269(区间异或和)

    Consecutive Sum 又来水一发blog... 本来是昨天补codechef的题,最后一道题是可持久化字典树,然后去黄学长博客看了看 觉得字典树写法有点不太一样,就想着用黄学长的板子写码几道 ...

  8. P2447 [SDOI2010]外星千足虫 (高斯消元)

    题目 P2447 [SDOI2010]外星千足虫 解析 sol写到自闭,用文字描述描述了半个小时没描述出来,果然还是要好好学语文 用高斯消元求解异或方程组. 因为 \(奇数\bigoplus奇数=偶数 ...

  9. Python_002_Python语言基础

    ♥2.1  Python的程序概述 Python程序可以分解为模块.语句.表达式.对象 ♥2.2  Python对象和引用 2.2.1  Python对象概述 对象:标识(identity).类型(t ...

  10. Linux keepalived工作原理

    keepalived简介与工作原理 Keepalived的作用是检测服务器的状态,如果有一台web服务器宕机,或工作出现故障,Keepalived将检测到,并将有故障的服务器从系统中剔除,同时使用其他 ...