1. 程式人生 > 其它 >前端常見小公司面試題

前端常見小公司面試題

技術標籤:微信小程式前端小程式

js

昨天剛一個上海的公司給我打電話面試,問了我一堆基礎的東西,例如:position、響應式佈局,div盒子,js,jquery,bootstrap等等讓我講一講這些怎麼理解的…
absolute : 將物件從文件流中拖出,使用left,right,top,bottom等屬性進行絕對定位。而其層疊通過css z-index屬性定義。此時物件不具有邊距,但仍有補白和邊框
relative : 物件不可層疊,但將依據left,right,top,bottom等屬性在正常文件流中偏移位置
相對定位就是,在相對於他原來的位置上開始移動,但是原來的位置還是在那裡,他還是佔據著位置,雖然他已經不在剛開始的位置上了,相當於,佔著茅坑不拉shi

當時問了我,兩個div,怎麼讓一個小的div位於大div的垂直居中的位置
絕對定位是在瀏覽器的左上角開始移動,他是不會佔據剛開始的位置
在這裡插入圖片描述
大概就是這個樣子,實現的方法有很多,但是基本上都要需要先給大div設定一個相對定位,下面都是id是container的div是大盒子,small是小盒子哦。下面我就不說了。

  1. 第一種
#container {
				position: relative;
			}
#small {
				/* 絕對定位 */
				position: absolute;
				   /*第一種方法
					 top: 50%;
				     left: 50%;
					 margin-left: -50px;
margin-top: -50px; */ /* 需要達到子元素高度寬度一半的負值,缺點就是需要知道子元素的高度和寬度 */ }

2.第二種
還是一樣的給父元素設定相對定位,給子元素設定上下左右為0,再通過margin控制居中

#container {
				position: relative;
			}
#small {
position: absolute;
	top: 0;
    left: 0;
	right: 0;
	bottom: 0;
    margin: auto;
    
			  }
  1. 第三種
    通過css3給的屬性transform設定平移50%來達到效果
#container {
				position: relative;
			}
#small {
position: absolute;
	 /* 這是第三種
			 top: 50%;
			 left: 50%;
			 平移50%
			 transform: translate(-50%, -50%); */
    
			  }
  1. 第四種
    只需要給父元素設定display為彈性佈局,通過彈性佈局的屬性來改變位置,這一種是很簡單,當然還有其他的方式,這只是我懂得幾種。
#container {
				
				/* 第四種方式,只需要設定這三個,其他的都不需要設定
					display: flex;
				    justify-content: center;
				    align-items: center; */
				
			}

關於this的指向問題

大家可以自行百度
這是我知道的可以解決指向問題的(all/apply/bind解決this指向問題)
箭頭函式的this指向都是window,這一個就很容易了

vue的生命週期和資料雙向繫結

生命週期可以看官網哦,很清楚。
雙向繫結v-model,在通過vue的雙向繫結給這個input框繫結一個變數
記得在data裡面宣告這個變數

微信小程式

  1. 關於微信小程式的生命週期?
  • onLaunch: 初始化小程式時觸發,全域性只觸發一次
  • onShow: 小程式初始化完成或使用者從後臺切換到前臺顯示時觸發
  • onHide: 使用者從前臺切換到後臺隱藏時觸發
  • onError: 小程式發生指令碼錯誤,或者 api 呼叫失敗時,會觸發 onError 並帶上錯誤資訊
    後臺: 點選左上角關閉,或者按了裝置 Home 鍵離開微信,並沒有直接銷燬,而是進入後臺
    前臺:再次進入微信或再次開啟小程式,相當於從後臺進入前臺。
  1. 微信小程式的this.setdata()跟vue的雙向繫結一樣
  2. 移動端元件:微信小程式官網的元件也是很豐富的,可以直接使用,我推薦這個vant可以進去看看 vant官網