如果你正在準備台灣樂天或趨勢科技的前端工程師面試,這篇文章將分享我的作業內容、面試題目參考,以及一些核心的前端知識點,幫助你更有信心地應對挑戰。
台灣樂天的作業相對單純,主要分為:
無限滾動的關鍵在於 Intersection Observer API,這是一個高效的方式來監測 DOM 元素是否進入視窗範圍,進而觸發加載更多內容的行為。
IntersectionObserver
來監聽特定的觸發元素(如列表的最後一個項目)。js
複製編輯const observer = new IntersectionObserver((entries) => {
if (entries[0].isIntersecting) {
loadMoreData(); // 加載更多數據
}
}, { threshold: 1.0 });
observer.observe(document.querySelector('#loadMoreTrigger'));
👉 推薦閱讀:認識 Intersection Observer API:實作 Lazy Loading 和 Infinite Scroll
趨勢科技的作業是 實作一個 Date Picker,功能包括:
input field
結合這裡提供一個簡單的 DatePicker
組件範例:
jsx
複製編輯import React, { useState } from "react";
const DatePicker = () => {
const [date, setDate] = useState("");
return (
<input
type="date"
value={date}
onChange={(e) => setDate(e.target.value)}
/>
);
};
export default DatePicker;
👉 推薦閱讀
除了作業,面試中也可能會被問到一些基礎知識,以下是幾個重要的概念及參考資料。
<!DOCTYPE html>
有什麼作用?<!DOCTYPE html>
告訴瀏覽器這個是 HTML5 文檔,避免 Quirks Mode(怪異模式),確保標準模式渲染。
👉 推薦閱讀:HTML 第一行 DOCTYPE「文件類型」對 CSS 是必要的
最佳做法:
<head>
內,確保樣式在頁面載入時可用。<script>
) 應該放在 </body>
前,以避免阻塞 HTML 解析,提高性能。👉 推薦閱讀:JavaScript <script>
應該放在哪裡?
👉 推薦閱讀
CSS 權重決定了樣式的應用優先級,基本規則如下:
pgsql
複製編輯inline style > ID 選擇器 > Class/屬性/偽類選擇器 > HTML 標籤 > *
👉 推薦閱讀:CSS 權重 (CSS Specificity)
let
vs const
變數類型可變更作用域
var
✅ 可以重新賦值
函式作用域
let
✅ 可以重新賦值
塊級作用域
const
❌ 不能重新賦值
塊級作用域
👉 推薦閱讀:JavaScript: var, let, const 差異
泛型允許我們在函數或類別中使用 靈活的類型,例如:
ts
複製編輯function identity<T>(arg: T): T {
return arg;
}
console.log(identity<number>(123)); // 123
console.log(identity<string>("Hello")); // "Hello"
👉 推薦閱讀
map()
方法Array.prototype.myMap
是 map()
方法的自訂實作:
js
複製編輯Array.prototype.myMap = function(callback) {
let newArray = [];
for (let i = 0; i < this.length; i++) {
newArray.push(callback(this[i], i, this));
}
return newArray;
};
這篇文章分享了台灣樂天和趨勢科技的前端面試經驗,包含作業內容與常見的面試題。如果你正在準備前端面試,這些資訊應該能幫助你更有信心地應戰!🚀
如果你覺得這篇文章有幫助,請分享給你的朋友,或者在留言區討論你的面試經驗!🎯
👉 更多前端面試攻略,歡迎訂閱我的部落格! 💡