金山WPS2017前端校招笔试题解析
版权申诉
86 浏览量
更新于2024-09-09
收藏 193KB PDF 举报
"金山WPS2017前端校招笔试题目分享,包含JavaScript基础知识及算法问题"
金山WPS在2017年的校园招聘中为前端岗位设计了一套笔试题,这份试卷主要考察应聘者的JavaScript基础以及对于编程逻辑的理解。以下是其中几道题目及其解析:
1. 这道题目涉及JavaScript变量提升和函数声明提升的概念。首先,`console.log(a)`在任何赋值操作之前,输出`undefined`。然后,函数声明`function setA(){...}`会被提升到顶部,因此`setA()`会执行这个函数体内的代码,将`a`赋值为3。但在`setA()`调用之前,`vara = 1`的赋值操作已完成,所以`console.log(a)`输出1。最后,调用`setA()`改变`a`的值为2,`console.log(a)`输出2。
2. 这个题目考察的是异步执行和闭包的知识。使用`for`循环遍历从0到9,每次递增1,将当前的`i`值传入一个立即执行的匿名函数,并在该函数内部设置`setTimeout`。由于`setTimeout`是异步执行的,当`for`循环结束后,`i`的值为9,所有`setTimeout`回调中的`j`都将是9,但它们会在不同的1秒间隔内依次输出。通过闭包保存每个`i`的值,确保正确输出。
3. 对于第三题,由于题目描述缺失,无法提供具体解答,但根据描述,这应该是一个相对简单的JavaScript问题。
4. 这道题目涉及到对象属性的引用和`toString`方法。在JavaScript中,当试图将一个对象作为键时,它会被转化为字符串`"[object Object]"`。所以,`a[b]`和`a[c]`实际上都是`a["[object Object]"]`,因此`a[b]`的输出是`456`,因为最后对`a[c]`进行了赋值。
5. 去重问题可以通过多种方式解决,例如使用ES6的`Set`数据结构,或者创建一个空对象来存储已出现过的元素,从而避免数组中的重复项。这是一种常见的面试题,目的是检查开发者对于数据结构的理解和利用。
6. 最后一题是字符串匹配和算法问题。要求找出一个字符串`s1`在经过打乱顺序并添加一个字符后形成的`s2`中新增的那个字符。可以采用滑动窗口或双指针等算法,比较两个字符串的差异,找到唯一多出的字符。这个问题的关键在于如何有效地遍历字符串并进行比较,以达到接近O(n)的时间复杂度。
这些题目展示了WPS对于前端开发人员期望的基本技能,包括JavaScript的核心概念、异步处理、对象和数组操作,以及字符串处理和算法能力。对于准备前端面试的人来说,这些都是非常有价值的练习。
2021-08-30 上传
2023-07-31 上传
2022-02-19 上传
2023-11-15 上传
2021-10-10 上传
2021-11-04 上传
2022-11-19 上传
java李杨勇
- 粉丝: 37w+
- 资源: 3180
最新资源
- ReactMsgBoard:基于React+NodeJs+MongoDB的简易留言板
- psl-er-product
- AIPipeline-2019.9.12.18.55.27-py3-none-any.whl.zip
- groupe5
- 导入:基于sinatra的基于django的迷你框架。 与Django完全兼容
- PopupMaker-Extension-Boilerplate:Popup Maker 扩展开发的基础,旨在为构建扩展提供标准化指南
- WAS:是各种技能的集合
- 空中数据采集与分析-项目开发
- [008]RS232串口通信基本知识与实例.zip上位机开发VC串口学习资料源码下载
- AIJIdevtools-0.5.2-py3-none-any.whl.zip
- 多模式VC++窗体源代码(可以精简显示、隐藏菜单栏等)
- AtherysRogue:基于A'therys宇宙的无赖游戏
- grid-based_framework
- microservices-integrate-system:用于显示部署应用程序过程的系统
- jest-test:开玩笑
- bookclub:虚拟读书会会议应用程序(实验性)