三年經驗前端社招——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.pswp.cn/news/275391.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/275391.shtml
英文地址,請注明出處:http://en.pswp.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;就是生個…