三年经验前端社招——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 …

中外计算机百科知识,计算机百科知识.doc

计算机百科知识计算机百科知识1.微机热启动时,需要按下的组合键是( D )A、CtrlDel B、AltDel C、CtrlAlt D、CtrlAltDel2.显示器和打印机都是&#xff1a;( D )A、显示设备B、输入设备C、存储设备D、输出设备3.HOME键的作用是( B ) A、将光标移到当前行的右端 B、将光标移到当前…

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

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

java包的命名规则技巧

java包的概念和.net名称空间非常类似。.net的名称空间通常以程序的项目名称和功能模块或层次结构命名。 java包也是如此。唯一不同的是java程序最外层包的名称通常以com开始。起初我不知道为什么这么命名。后来发现&#xff0c;原来java包命名其实就是网站域名去掉www的倒写然后…

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

钮扣电池电压电量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…

什么是云计算?云计算学习基础

云计算&#xff08;cloudcomputing&#xff09;是基于互联网的相关服务的增加、使用和交付模式&#xff0c;通常涉及通过互联网来提供动态易扩展且经常是虚拟化的资源。 美国国家标准与技术研究院&#xff08;NIST&#xff09;定义&#xff1a;云计算是一种按使用量付费的模式&…

港口遭遇小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…

电大免考英语计算机,关于电大本科课程中英语免修免考的条件

关于免考的规定&#xff1a;(一) 已具有国民教育系列本科以上学历(含本科)&#xff0c;可免考全部统考科目&#xff1b;(二) 除计算机类专业学生外&#xff0c;获得全国计算机等级考试一级B或以上级别证书者可免考“计算机应用基础”&#xff1b;(三) 除英语专业学生外&#xf…

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

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

当文字成为雨滴:HTML、CSS、JS创作炫酷的“文字雨“动画!

简介 在本篇技术文章中&#xff0c;将介绍如何使用HTML、CSS和JavaScript创建一个独特而引人注目的"文字(字母&数字)"雨&#x1f327;️动画效果。通过该动画&#xff0c;展现出的是一系列随机字符将从云朵中下落像是将文字变成雨滴从天而降&#xff0c;营造出与…

《梦断代码》阅读笔记01

这几天阅读了老师推荐的《梦断代码》前几章&#xff0c;通过本书简介可以知道本书大概主要讲的是做软件过程中的困难。 第一章软件时间&#xff0c;主要讲的是从事软件制作行业的艰辛&#xff0c;需要没日没夜的加班工作&#xff0c;书中有这样一句话让我记忆深刻&#xff1a;“…

关于html:form/html:form特性

<html:form>第一遍执行的时候他就会根据action属性中指定的Action到struts-config.xml文件中找到该Action&#xff0c;并把该Action绑定ActionForm实例化&#xff0c;如果<html:form>的子标签中(也就是文本框等一些元素)有值&#xff0c;则把这些值填充到对应的Act…

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

现代人的压力和焦虑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…

揭秘京东区块链开源项目——JD Chain

导言 近日&#xff0c;京东区块链底层引擎JD Chain正式对外开源并同步上线开源社区&#xff0c;旨在为企业级用户和开发者提供开源服务&#xff0c;帮助他们提高研发效率&#xff0c;加速技术创新。3月30日&#xff0c;国家互联网信息办公室公布了第一批区块链信息服务名称及备…

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

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

学计算机学体育生闺女,古力:生个女儿一定学围棋 生个儿子就去踢足球

成都商报记者 张龑 摄影报道核心提示7夺围棋世界冠军的古力结婚了&#xff0c;这意味着他有了更多的责任。婚后的古力做到了以家为重———“现在下完棋就回家&#xff0c;酒基本上不喝了&#xff0c;连唱歌这些娱乐都基本上取消了。”古力对未来还有个愿望&#xff0c;就是生个…