1. 程式人生 > 其它 >記錄一次 位元組跳動外包 前端面試的 旁聽

記錄一次 位元組跳動外包 前端面試的 旁聽

這個面試官問的題目比較開放,首先是自我介紹(一定要注意禮儀哦,工作年限,技術棧,最近寫的專案,注意重點)

1.首先問了在專案中的難點,遇到的坑

(看你的思維邏輯,自學能力,會不會利用資源去找解決方案)

2.通過你的簡歷問一些基礎的問題 像vue3的 hooks、組合式Api ......

以上的問題問得差不多就進入了線上筆試環節

3.不確定引數個數求和(ES6語法)(面試官就喜歡問新技術)

                        sum(...arr){ 
				let result = arr.reduce((t,c)=>{ 
					return t+=c
				}) 
			},  
        
                       sum(1,3,5,8)

4.第二個筆記題是寫sleep 延時執行

              sleep(time){
				 return new Promise(res=>{
					 setTimeout(()=>{
						 res('22222222222')
					 },time)
				 })  
			},
              
        
              外層有async               console.log(1111111111) await this.sleep(2000).then(res=>{ console.log(res) }) console.log(3333333333)

5.五次執行有成功返回成功,五次失敗返回失敗

                  test(){
				return new Promise((resolve,reject)=>{					
					let errorTime = 0
					let randomNum = 0 
					let resultBool = false
					const logic = () =>{
						console.log('***********')
						return new Promise((res)=>{
							randomNum = Math.floor(Math.random()*5)	
							if(randomNum < 4){
								errorTime++
								res(false)
							}else{								 
								resultBool = true
								resolve(errorTime)
							}
						})
					} 					
					while(!resultBool && errorTime < 5){
						logic().then(innerRes=>{
							resultBool = innerRes
						})	 
					}
					if(!resultBool && errorTime === 5){
						reject(`5次失敗-----${randomNum}`)
					}
				})			 
			},              

              this.test().then((res)=>{
                console.log(`第${res+1}次是成功`,'@@@@@@@@@')
              }).catch(err=>{
                console.log(err,'#########')
              })