PageSourceSearch

https://www.frontendinterviewhandbook.com/zh-CN/assets/js/435c314a.f6e56f24.js

js frontendinterviewhandbook.com collected 2026-10-04 00:00:46 UTC 14,492 bytes, 1 lines download raw bytes

1"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[7985],{1611(e,n,t){t.r(n),t.d(n,{assets:()=>a,contentTitle:()=>o,default:()=>h,frontMatter:()=>s,metadata:()=>d,toc:()=>c});var i=t(9214),r=t(9547);const s={title:"ByteDance/TikTok Front End Interview Questions",sidebar_label:"ByteDance/TikTok interview questions",description:"Master TikTok frontend engineer interviews with real coding questions, UI components, algorithms & insider tips from successful candidates."},o=void 0,d={id:"companies/bytedance-tiktok-front-end-interview-questions",title:"ByteDance/TikTok Front End Interview Questions",description:"Master TikTok frontend engineer interviews with real coding questions, UI components, algorithms & insider tips from successful candidates.",source:"@site/contents/companies/bytedance-tiktok-front-end-interview-questions.md",sourceDirName:"companies",slug:"/companies/bytedance-tiktok-front-end-interview-questions",permalink:"/zh-CN/companies/bytedance-tiktok-front-end-interview-questions",draft:!1,unlisted:!1,editUrl:"https://github.com/yangshun/front-end-interview-handbook/edit/main/website/contents/companies/bytedance-tiktok-front-end-interview-questions.md",tags:[],version:"current",lastUpdatedBy:"Yangshun",lastUpdatedAt:1786609512,formattedLastUpdatedAt:"2026\u5e748\u670813\u65e5",frontMatter:{title:"ByteDance/TikTok Front End Interview Questions",sidebar_label:"ByteDance/TikTok interview questions",description:"Master TikTok frontend engineer interviews with real coding questions, UI components, algorithms & insider tips from successful candidates."},sidebar:"root",previous:{title:"OpenAI interview questions",permalink:"/zh-CN/companies/openai-front-end-interview-questions"},next:{title:"Uber interview questions",permalink:"/zh-CN/companies/uber-front-end-interview-questions"}},a={},c=[{value:"JavaScript coding questions",id:"javascript-coding-questions",level:2},{value:"User interface coding questions",id:"user-interface-coding-questions",level:2},{value:"System design questions",id:"system-design-questions",level:2},{value:"Quiz questions",id:"quiz-questions",level:2},{value:"Algorithm",id:"algorithm",level:2},{value:"Insider tips from the GreatFrontEnd community",id:"insider-tips-from-the-greatfrontend-community",level:2}];function l(e){const n={a:"a",admonition:"admonition",blockquote:"blockquote",code:"code",em:"em",h2:"h2",li:"li",ol:"ol",p:"p",strong:"strong",ul:"ul",...(0,r.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.admonition,{title:"Latest version on GreatFrontEnd",type:"info",children:(0,i.jsxs)(n.p,{children:["Find the latest version of this page on ",(0,i.jsx)(n.a,{href:"https://www.greatfrontend.com/interviews/company/bytedance/questions-guides?utm_source=frontendinterviewhandbook&utm_medium=referral&gnrs=frontendinterviewhandbook",children:"GreatFrontEnd's ByteDance Front End Interview Guide"}),"."]})}),"\n",(0,i.jsx)(n.p,{children:"ByteDance/TikTok's front end interview is quite balanced in terms of interview format."}),"\n",(0,i.jsx)(n.h2,{id:"javascript-coding-questions",children:"JavaScript coding questions"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Implement ",(0,i.jsx)(n.code,{children:"Promise.all"}),".","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"https://www.greatfrontend.com/questions/javascript/promise-all?utm_source=frontendinterviewhandbook&utm_medium=referral&gnrs=frontendinterviewhandbook",children:"Practice question"})," (Free)"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["Implement a function which extends ",(0,i.jsx)(n.code,{children:"Array.prototype"}),".","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://www.greatfrontend.com/questions?utm_source=frontendinterviewhandbook&utm_medium=referral&gnrs=frontendinterviewhandbook",children:"Practice questions"})}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["Implement a polyfill of ",(0,i.jsx)(n.code,{children:"Function.prototype.bind"})," \u2014 handle the ",(0,i.jsx)(n.code,{children:"new"})," keyword correctly.","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"https://www.greatfrontend.com/questions/javascript/function-bind?utm_source=frontendinterviewhandbook&utm_medium=referral&gnrs=frontendinterviewhandbook",children:"Practice question"})," (Paid)"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:['Implement Map Async Limit (the "solution 4" variant \u2014 async-iterator-based, not just Promise.all chunking).',"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"https://www.greatfrontend.com/questions/javascript/map-async-limit?utm_source=frontendinterviewhandbook&utm_medium=referral&gnrs=frontendinterviewhandbook",children:"Practice question"})," (Free)"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["Implement a ",(0,i.jsx)(n.code,{children:"compose"})," middleware function so that async middlewares like Koa-style ",(0,i.jsx)(n.code,{children:"f1"}),", ",(0,i.jsx)(n.code,{children:"f2"}),", ",(0,i.jsx)(n.code,{children:"f3"})," (each calling ",(0,i.jsx)(n.code,{children:"next()"}),") execute in the correct nested order.","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"https://www.greatfrontend.com/questions/javascript/compose?utm_source=frontendinterviewhandbook&utm_medium=referral&gnrs=frontendinterviewhandbook",children:"Practice question"})," (Paid)"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["React-like VDOM but instead of creating DOM nodes, output an HTML string given an input object with ",(0,i.jsx)(n.code,{children:"type"})," and ",(0,i.jsx)(n.code,{children:"attributes"}),"."]}),"\n",(0,i.jsx)(n.li,{children:"JavaScript quiz: given a list of Promises with console statements, determine the order they will print."}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"user-interface-coding-questions",children:"User interface coding questions"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Implement a dropdown component.","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"https://www.greatfrontend.com/questions/system-design/dropdown-menu?utm_source=frontendinterviewhandbook&utm_medium=referral&gnrs=frontendinterviewhandbook",children:"Read answer"})," (Paid)"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["Implement a transfer list component (move items between two lists with select-and-shift). Note: TikTok interviews on Lark, which doesn't render React \u2014 you code in a Node.js env without being able to test live UI, so write clean markup and explain as you go.","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"https://www.greatfrontend.com/questions/user-interface/transfer-list?utm_source=frontendinterviewhandbook&utm_medium=referral&gnrs=frontendinterviewhandbook",children:"Practice question"})," (Free)"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"system-design-questions",children:"System design questions"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Project deep-dive design round (~50 minutes): walk through one of your past projects, draw a flowchart of the workflow, and discuss potential improvements. Be ready to explain why you want to join TikTok."}),"\n"]}
1),"\n",(0,i.jsx)(n.h2,{id:"quiz-questions",children:"Quiz questions"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Difference between ",(0,i.jsx)(n.code,{children:"localStorage"})," and cookies.","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"https://www.greatfrontend.com/questions/quiz/describe-the-difference-between-a-cookie-sessionstorage-and-localstorage?utm_source=frontendinterviewhandbook&utm_medium=referral&gnrs=frontendinterviewhandbook",children:"Read answer"})," (Free)"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"algorithm",children:"Algorithm"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Merge two sorted integer arrays, remove duplicates."}),"\n",(0,i.jsx)(n.li,{children:"You have an image on a page, write css and js so that when mouse is over the image, it rotates 180 deg with 1 sec animation."}),"\n",(0,i.jsxs)(n.li,{children:["Given a list of points, find out if any four of them form a square. Return 'true' if possible, else 'false'.","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Examples: ",(0,i.jsx)(n.code,{children:"[[0, 0], [2, 0], [1, 1], [0, -1], [-1, -1], [0, 2], [0, 1], [1,0]]"})," -> ",(0,i.jsx)(n.code,{children:"true"})]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.li,{children:"Check for balanced brackets in a string."}),"\n",(0,i.jsx)(n.li,{children:"Given two nodes, return the section of the tree between these two nodes."}),"\n",(0,i.jsx)(n.li,{children:"Find the islands in a grid of land and sea."}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsxs)(n.em,{children:["Source: ",(0,i.jsx)(n.a,{href:"https://www.glassdoor.sg/Interview/ByteDance-Front-End-Developer-Interview-Questions-EI_IE1624196.0,9_KO10,29.htm",children:"Glassdoor ByteDance Front End Developer Interview Questions"})]})}),"\n",(0,i.jsx)(n.h2,{id:"insider-tips-from-the-greatfrontend-community",children:"Insider tips from the GreatFrontEnd community"}),"\n",(0,i.jsxs)(n.p,{children:["These tips were shared by ",(0,i.jsx)(n.a,{href:"https://www.greatfrontend.com/?utm_source=frontendinterviewhandbook&utm_medium=referral&gnrs=frontendinterviewhandbook",children:"GreatFrontEnd"})," users who have completed interviews with ByteDance/TikTok."]}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"8th May 2026"}),":"]}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsx)(n.p,{children:"Just wrapped my 4th round with a technical manager at TikTok: more projects/resume grilling, heavy on trivia, UI coding, slightly behavioral but more so testing your engineering thinking than collaboration. The TM's general advice was that for new grads, big project experience isn't strictly expected \u2014 they're evaluating thought process. Basically know every tech you put on your resume inside and out, and be able to talk about coding with AI."}),"\n",(0,i.jsx)(n.p,{children:"Also: being able to speak Chinese for the non-technical parts of the interview definitely helped with rapport, even if you do the technical portion in English."}),"\n"]}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"16th Apr 2026"}),":"]}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsx)(n.p,{children:"TikTok loop for me was projects/resume grill, basic system design + trivia, and an algorithms question. No behavioral round in the early loop. They're pushing AI in almost every aspect of the product, so expect questions around it."}),"\n"]}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"17th Nov 2024"}),":"]}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsx)(n.p,{children:"cant say too much because of NDA but this is how it went for TikTok entry level FE"}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsx)(n.li,{children:"leetcodes, javascript fundamentals (covered in GFE 1 month study plan)"}),"\n",(0,i.jsx)(n.li,{children:"UI component + follow up"}),"\n",(0,i.jsx)(n.li,{children:"system design based on past project + javascript coding and now awaiting 4th round w recruiter"}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:"feedback for each round was fairly quick, received update the next morning"}),"\n"]}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"12th Nov 2024"}),":"]}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsx)(n.p,{children:"i do bytedance/tiktok round 2 recently, unfortunately get rejected. the coding questions is quite overwhelming for me. after experience & quiz questions, the interviewer directly give me 3 questions (all for ~30 mins), and i can choose the order."}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsx)(n.li,{children:"similar to Map Async Limit but has to be solution 4"}),"\n",(0,i.jsx)(n.li,{children:"some compose middleware question (can't find anything similar)"}),"\n",(0,i.jsx)(n.li,{children:"implement bind, but i can't handle the new keyword"}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"21st Oct 2024"}),":"]}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsx)(n.p,{children:"just finish my third rounds interview with TikTok. it's a de
1sign round with 50 mins deep dive on my pervious project and potential improvement. have to draw a flowchart to demo the workflow. overall it's really conversation heavy. and also asked why you want to join TikTok. don't think I am going to pass this round but Good Luck to whoever interview later! \ud83d\ude4f"}),"\n"]}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"8th Aug 2024"}),":"]}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsx)(n.p,{children:"Had my first round tiktok frontend engineer interview. Not sure on the level but I told them I have 3 YOE so maybe 2-1? Strange interview tbh. There was a huge language barrier and it was difficult to build rapport with the interviewer (my interview was at night so I had someone overseas). Very difficult to read. First 20 minutes was talking about past projects/experiences/challenges, then a React coding question, then a JS quiz question, and then an untagged tiktok LC med... I asked some good questions about the company imo but the interviewer could barely answer it. I tried my best but it was not a collaborative interview at all and more of a test so it was challenging for me. I think it was a lot for an hour and we ended up going over time"}),"\n"]}),"\n",(0,i.jsxs)(n.p,{children:["For more insider tips, visit ",(0,i.jsx)(n.a,{href:"https://www.greatfrontend.com/?utm_source=frontendinterviewhandbook&utm_medium=referral&gnrs=frontendinterviewhandbook",children:"GreatFrontEnd"}),"!"]})]})}function h(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(l,{...e})}):l(e)}},9547(e,n,t){t.d(n,{R:()=>o,x:()=>d});var i=t(8318);const r={},s=i.createContext(r);function o(e){const n=i.useContext(s);return i.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:o(e.components),i.createElement(s.Provider,{value:n},e.children)}}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.