三年经验前端社招——Shopee

大家好,我是若川。最近组织了源码共读活动《1个月,200+人,一起读了4周源码》,已经有超50+人提交了笔记,群里已经有超1200人,感兴趣的可以点此链接扫码加我微信 ruochuan12

本文经作者@lxcan 授权转载,未经授权请勿直接转载。
原文标题:《三年经验前端社招——Shopee》
原文链接:https://zhuanlan.zhihu.com/p/405752877
文末点击阅读原文直达

前言

本人毕业学校是双非二本,非计算机科班出身,大学时自学的前端相关技能。截止2021年8月,有3年前端开发经验,技术栈为 vue 全家桶,求职意向城市是深圳。想着找一个更大的平台寻求发展(技术沉淀、涨薪),所以出来接受社会的毒打了。。。

本文的目的是记录自己的面试经历,各位路过的兄dei也可以参考一下,也让自己有个回顾和反思。路漫漫其修远兮,吾将上下而求索

下面的题目,都会标明每一题的性质,部分题目也会给出一些参考思路和参考回答,希望各位大佬不吝赐教~

  • 描述:对概念、过程的描述,纯理论性问答题为主

  • 举例:说出应用场景,或者是自己团队实践的情况

  • 伪代码:写代码,但不需要跑起来,甚至可以随便写伪代码,主要目的是描述思路

  • 编程:真正的写代码,需要跑起来,有测试用例,要看到效果

HR面的话,是一些日常、项目回顾(少说技术细节)、职业规划、你的优势和缺点、为什么跑路、为什么选择这边、目前薪资和职级、期望薪资,HR面基本离不开这些问题。

一面

1、编程题,改造 Person 使其在非new调用时抛出错误【编程】

function Person(name) {this.name = name
}
Person("Hello")
new Person("Hello")

参考答案:

function Person(name) {if (!(this instanceof Person)) {throw Error('error msg')}this.name = name
}

2、实现 instanceof 方法【编程】

参考答案:

function myIntanceOf (left, right) {left = left.__proto__var prototype = right.prototypewhile (true) {if (left ==null ) return falseif (left === prototype) return trueleft = left.__proto__}
}
function Foo () {}
var f = new Foo()
console.log(myInstanceof(f, Foo)); // true
console.log(myInstanceof(f, Object)); // true
console.log(myInstanceof([1,2], Array)); // true
console.log(myInstanceof({ a: 1 }, Array)); // false

3、结合第1题,Person 是什么类型的对象?是否有 __proto__ 属性?【描述】

Person 是函数对象,有 __proto__ 属性,Person 的隐式原型等于它的构造函数的显式原型
Person.__proto__ === Function.prototype

4、说下 prototype 和 __proto__ 的区别【描述】

5条原型规则:

  1. 所有的引用类型(数组、对象、函数),都具有对象特性,即可自由扩展属性(除了"null")以外

  2. 所有的引用类型(数组、对象、函数),都有一个__proto__ (隐式原型)属性,属性值是一个普通的对象

  3. 所有的函数,都有一个 prototype (显式原型)属性,属性值也是一个普通的对象

  4. 所有的引用类型(数组、对象、函数),__proto__ 属性值指向它的构造函数的 prototype 属性值

  5. 当试图得到一个对象(引用类型)的某个属性时,如果这个对象本身没有这个属性,那么会去它的 __proto__(即它的构造函数的 prototype)中寻找

5、实现 Student 方法,Student 继承 Person ,也有自己的属性和方法【编程】

参考答案:

function Student(grade, name) {Person.call(this)this.grade = gradethis.name = name
}
Student.prototype = Object.create(Person.prototype)
Student.prototype.Constructor = Student
Student.prototype.getGrade = function () {return this.grade
}

6、完成一个 sum 函数,实现如下功能【编程】

/*
* 编写函数sum
* sum(1)(2).count() // 3
* sum(1)(2)(3).count() // 6
*/

参考答案:

function sum () {let args = [...arguments]let add = function () {args.push(...arguments)return add}add.count = function () {return args.reduce((acc, cur) => acc + cur)}return add
}
console.log(sum(1)(2).count()); // 3
console.log(sum(1)(2)(3).count()); // 6

其他版本,调用方式形如:sum(1)(2)() // 3

function curry (fn) {let args = []return function f (...newArgs) {if (newArgs.length) {args = [...args, ...newArgs]return f} else {let res = fn(...args)args = []return res}}
}
function count (...args) {return args.reduce((a,c) => a+c)
}
let sum = curry(count)
sum(1)(2)() // 3
sum(1)(2)(3)() // 6

7、完成如下 findPath 函数,输入一个对象和对象上的一个节点或子节点的值(值唯一,值类型为字符串),输出该值对应在该对象的key的路径【编程】

const obj = {a: {a_1: {a_1_1: 'abc',a_1_2: 'efg'}},b: {b_1: 'xyz',b_2: '111'},c: '000'
}
const result = findPath(obj, 'xyz') // ['b', 'b_1']

参考答案:

function flatObj (obj, key = '', res = {}) {for (let [k, v] of Object.entries(obj)) {if (Object.prototype.toString.call(v) === '[object Object]') {let temp = key + k + '.'flatObj(v, temp, res)} else {let temp = key + kres[temp] = v}}return res
}function findPath(obj, value) {let o = flatObj(obj)// k == 'a.a_1.a_1_1'for (let [k, v] in Object.entries(o)) {if (v === value) {return k.split('.')}}return []
}

最后

Shopee 深圳虾皮信息科技有限公司,是东南亚领航电商平台。听说公司里面都是腾讯、阿里、字节的大佬居多,技术前沿,福利好,各方面都不错。一面是视频面试,是在虾皮自有的平台上视频面+写编程题,自我感觉基本都写出来了,可能不是最优解吧,没跑测试用例,一面之后没后续了,不管怎样,菜是原罪,继续加油吧~
往期回顾:

  • 三年经验前端社招——朴朴科技

  • 三年经验前端社招——腾讯微保

  • 三年经验前端社招——丰巢科技

  • 三年经验前端社招——众安保险

  • 三年经验前端社招——有赞

  • 三年经验前端社招——慧择网

天生我材必有用,千金散尽还复来

最近组建了一个湖南人的前端交流群,如果你是湖南人可以加我微信 ruochuan12 私信 湖南 拉你进群。


推荐阅读

1个月,200+人,一起读了4周源码
我读源码的经历

老姚浅谈:怎么学JavaScript?

我在阿里招前端,该怎么帮你(可进面试群)

63f630ee2d05809dca8ee42db91c6a99.gif

················· 若川简介 ·················

你好,我是若川,毕业于江西高校。现在是一名前端开发“工程师”。写有《学习源码整体架构系列
从2014年起,每年都会写一篇年度总结,已经写了7篇,点击查看年度总结。
同时,最近组织了源码共读活动

7f8eb31c4f0872b8bba0b6f739d69425.png

识别方二维码加我微信、拉你进源码共读

今日话题

略。欢迎分享、收藏、点赞、在看我的公众号文章~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/275391.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

简易拨号器iCall

iCall是由哥开发的一款android平台的电话拨号小工具&#xff0c;简单不能再简单的Android手机拨号程序。 代码不过几行&#xff1a; <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/…

苹果手机隐私分析数据是什么_苹果公司以用户为中心的隐私保护方法能教给我们什么?

苹果手机隐私分析数据是什么重点 (Top highlight)Moving beyond the rollercoaster of excitement and controversy Apple has been in for the last week, there was one thing in the WWDC keynote that stood out for me. One thing I really appreciated seeing. There is …

为什么 Vue2 this 能够直接获取到 data 和 methods ? 源码揭秘!

1. 前言大家好&#xff0c;我是若川。最近组织了源码共读活动《1个月&#xff0c;200人&#xff0c;一起读了4周源码》&#xff0c;已经有超50人提交了笔记&#xff0c;群里已经有超1200人&#xff0c;感兴趣的可以点此链接扫码加我微信 ruochuan12之前写的《学习源码整体架构系…

钮扣电池电压电量_纽扣厂

钮扣电池电压电量S. is a designer and works at the button factory. Despite its scary look, S. goes there every day, and he loves his routine, never missing a day!S.是一位设计师&#xff0c;在按钮工厂工作。 尽管看上去很恐怖&#xff0c;S。每天都去那里&#xff…

18秋学期《计算机网络》在线作业,18秋北交《计算机应用基础及计算机网络与应用》在线作业一-2辅导资料.docx...

18秋北交《计算机应用基础及计算机网络与应用》在线作业一-2辅导资料.docx18 秋北交计算机应用基础及计算机网络与应用在线作业一-21、B 2、D 3、B 4、A 5、B 一、单选题共 10 题&#xff0c;40 分1、决定局域网特性的主要技术 要素包括( )、传输介质与介 质访问控制方法。A 所…

三年经验前端社招——慧择网

大家好&#xff0c;我是若川。最近组织了源码共读活动《1个月&#xff0c;200人&#xff0c;一起读了4周源码》&#xff0c;已经有超50人提交了笔记&#xff0c;群里已经有超1200人&#xff0c;感兴趣的可以点此链接扫码加我微信 ruochuan12本文经作者lxcan 授权转载&#xff0…

港口遭遇小MM

港口&#xff0c;遭遇小MM 刚开始&#xff0c;丫头看见我拍她&#xff0c;对我毫不客气地说&#xff1a;“侵犯肖像权&#xff0c;除非立刻买两份冰淇淋来&#xff01;”后来&#xff0c;她就一直跟在我屁股后面&#xff0c;求我给她拍。轮到我说话了&#xff1a;“拍一张&…

印发 指南 通知_通知设计的综合指南

印发 指南 通知重点 (Top highlight)Peripheral messages in digital products, collectively known as notifications, should never harm the user experience. Instead, they must contribute to an experience that helps people accomplish a goal. Addressing notificati…

三年经验前端社招——众安保险

大家好&#xff0c;我是若川。最近组织了源码共读活动《1个月&#xff0c;200人&#xff0c;一起读了4周源码》&#xff0c;已经有超50人提交了笔记&#xff0c;群里已经有超1200人&#xff0c;感兴趣的可以点此链接扫码加我微信 ruochuan12本文经作者lxcan 授权转载&#xff0…

现代人的压力和焦虑_设计师如何建立减少焦虑和压力的体验

现代人的压力和焦虑From my Brooklyn apartment in New York City, I watch Gov. Andrew Cuomo share the daily Covid-19 death toll with the nation. I watch his broadcast every day, around 11 a.m. I dubbed Cuomo America’s #crisisdaddy and have posted so many Ins…

我是如何零基础入门前端开发的(2021 版)

大家好&#xff0c;我是若川。最近组织了源码共读活动《1个月&#xff0c;200人&#xff0c;一起读了4周源码》&#xff0c;已经有超50人提交了笔记&#xff0c;群里已经有超1200人&#xff0c;感兴趣的可以点此链接扫码加我微信 ruochuan12大家好&#xff0c;我是山山而川&…

去贵阳参观大数据到哪参观_您必须参观的四个世界

去贵阳参观大数据到哪参观Video games have always aimed to create a world separate from our own, with experiences gamers couldn’t get anywhere else. As technology has raced forward with time, these worlds have become more realistic, more believable, and at …

1年工作经验8月份大厂面试全记录

大家好&#xff0c;我是若川。最近组织了源码共读活动《1个月&#xff0c;200人&#xff0c;一起读了4周源码》&#xff0c;已经有超50人提交了笔记&#xff0c;群里已经有超1200人&#xff0c;感兴趣的可以点此链接扫码加我微信 ruochuan12本文来自读者AaronKwong 投稿。他参与…

axure ui设计_了解针对UI / UX设计人员的Axure RP 9

axure ui设计Axure is a powerful prototyping software with a lot of history. It has been around for many years and is available for Windows and Mac. Axure gained a lot of functionality over time, and today you can look at Axure as all in one tool. You can b…

杭州 3~5年 前端面经,高频面试题总结

大家好&#xff0c;我是若川。假期归来&#xff0c;国庆期间没有更文&#xff0c;不用想每天发什么文章&#xff0c;不用担心阅读量&#xff0c;其实感觉挺好。最近组织了源码共读活动《1个月&#xff0c;200人&#xff0c;一起读了4周源码》&#xff0c;已经有超100人提交了笔…

职称以考代评学院考计算机吗,软考与职称的关系,软考是以考代评,不用另外再去评审...

Hokfung(cnitpm.com) 15:16:45软考与职称关系&#xff1a;通过了软考,我们所获得的只是一种资格,是否聘任相应的职称,完全取决于各单位的实际情况&#xff0c;国家有关部门并没有直接的规定。事实上,通过评审方法(也就是常说的"评职称”) 得到的也只是一个资格,单位既可以…

figma下载_我关于Figma文件封面的故事

figma下载It was 8:40 AM in the morning. I woke up from the bed as my subconscious memory reminded me of the team meeting at 9 AM to discuss what I am working on.早上8:40。 我从床上醒来&#xff0c;因为我的潜意识使我想起了上午9点的团队会议&#xff0c;讨论我的…

2011年上半年网页游戏开测数据报告发布

网页游戏上半年统计数据显示&#xff0c;2011年上半年&#xff0c;网页游戏开测信息总数为304款&#xff0c;排除重复开测信息&#xff0c;在2011年1月1日至6月30日这段期间&#xff0c;共收录开测&#xff08;含首次开测或更名的&#xff09;的数据为129条。 新公布的产品&…

vue-cli 将被 create-vue 替代?初始化基于 vite 的 vue3 项目为何如此简单?

大家好&#xff0c;我是若川。最近组织了源码共读活动《1个月&#xff0c;200人&#xff0c;一起读了4周源码》&#xff0c;已经有超50人提交了笔记&#xff0c;群里已经有超1500人&#xff0c;感兴趣的可以点此链接扫码加我微信 ruochuan12create-vue公开了&#xff0c;可以使…

lynda ux_如何进入UX领域

lynda uxI often get asked “What is the right path I should take to get into UX?” and more often than not, I do not have a direct answer. I usually ask a lot of questions about their background, before assessing their current skills with the things they …