1、當a等於什麼的時候,以下條件成立
/*
let a = ???;
if(a == 1 && a == 2 && a == 3)
*/
let a =
}if(a == 1 && a == 2 && a == 3)
//或者
let b =
}console.log(b == 1 && b == 2 && b == 3);
2、實現深拷貝的方法(兩種以上)
let a = [1,2,3,4,5,6,7,8,9,10];
//第一種,使用assign
let b = object.assign(,a);
b.push(11);
console.log(a);
console.log(b);
//第二種,使用迴圈
let b = ;
a.map(item => b.push(item));
b.push(11);
console.log(a);
console.log(b);
//第三種,使用json.parse與json.stringify
let b = json.parse(json.stringify(a));
b.push(11);
console.log(a);
console.log(b);
3、如何避免介面被盜刷
/* 1 、 驗證碼(最簡單有效的防護),採用點觸驗證,滑動驗證或第三方驗證碼服務,普通驗證碼很容易被破解
2 、 頻率,限制同裝置,同ip等傳送次數,單點時間範圍可請求時長
3 、 歸屬地,檢測ip所在地是否與手機號歸屬地匹配;ip所在地是否是為常在地
4 、 可疑使用者,對於可疑使用者要求其主動發簡訊(或其他主動行為)來驗證身份
5 、 黑名單,對於黑名單使用者,限制其操作,api介面直接返回success,1可以避免浪費資源,2混淆黑戶判斷
6 、 簽名,api介面啟用簽名策略,簽名可以保障請求url的完整安全,簽名匹配再繼續下一步操作
7 、 token,對於重要的api介面,生成token值,做驗證
8 、 https,啟用https,https 需要秘鑰交換,可以在一定程度上鑑別是否偽造ip
9 、 **混淆,發布前端**混淆過的包
10 、 風控,大量肉雞來襲時只能受著,同樣攻擊者也會暴露意圖,分析意圖提取演算法,分析判斷是否為惡意 如果是則斷掉;異常賬號及時鎖定;或從產品角度做出調整,及時止損。
11 、 資料安全,資料安全方面做策略,攻擊者得不到有效資料,提高攻擊者成本
12 、 惡意ip庫,過濾惡意ip */
4、請寫出下列**的輸出順序
async function a()
async function b()
console.log("func start");
settimeout(() => , 0);
a();
new promise((resolve,rejece)=>);
1、func start
2、a start
3、b start
4、promise start
5、a end
6、settimeout end
5、輸入框輸入時,如何防抖,並且實現中文輸入
6、將'abc'轉成'abc'
let a = 'abc';
let b = '';
for(let i = 0;i < a.length;i++)else
}console.log(b);
7、實現乙個sleep等待函式
function sleep(time), time);
});}async function func()
func();
//僅僅使用settimeout也是可以,自行拓展
8、prototype與__proto__的區別
9、去除下面陣列的重複元素(至少兩種方法)
let a = [1,1,2,2,3,3,4,5,6,7,5,1];
let b = ;
for(let i = 0;i < a.length;i++)
}console.log(b);
//或者使用es6
let c = new set(a);
console.log(array.from(c));
//或者使用includes
let d = ;
for(let i = 0;i < a.length;i++)
}console.log(d);
10、使下面的陣列變為一維陣列
let a = [[1,2,3],[[4,5,6]],[7,[8,[9]]]];
//期望[1,2,3,4,5,6,7,8,9]
let b = a.join(",").split(",");
console.log(b);
//或者
let c = a.tostring().split(",");
console.log(c);
//或者
let d = ;
function e(arr)else
}}e(a);
console.log(d);
11、跨域問題的產生原因及解決方法
原因:
1、協議不同
2、網域名稱不同
3、埠不同
解決方法
1、vue專案下,可以設定**解決
2、使用jsonp解決,但是只支援get請求
3、後端設定請求頭,支援通過對應請求
4、使用cors,
12、為什麼v-for不能和v-if一起連用
1、優先順序問題
2、vue中是優先處理v-for然後才會執行v-if
3、這就會造成效能浪費,得不償失
13、any與unknown的區別
let a:any = "10";
let b:string = "agwenbi";
b = a;//不會報錯
let aa:unknown = "10";
let bb:string = "agwenbi";
//bb = aa;報錯
//any可以影響其它變數的型別,而unknown不行
前端基礎面試題整理(不斷更新)
div css的布局比較table布局有什麼優點?改版得時候更方便,只需要改css檔案 頁面載入速度很快 結構化清晰 頁面顯示簡潔 表現與結構相分離 易於優化對搜尋引擎更友好,排名更容易靠前 為什麼利用多個網域名稱來儲存 資源會更有效?cdn快取更方便 突破瀏覽器併發執行 節約主網域名稱的連線數,優...
web前端面試題記錄
1.vue全家桶定義 2.路由怎麼定義使用的 路由的導航前衛有哪幾種 3.http請求get 與post的不同,post請求的引數放到 請求頭的訊息體中 4.vuex有哪個部分組成 action與mutataions有什麼不同 action是怎麼改變state中的值 commit 5.元件中怎麼傳值...
web前端面試題記錄
筆者近期在找工作,偶遇到一家,廣州9 14k的web前端面試,面試過程中是由面試官手寫題目,要求現場回答,特此記錄,簡歷上寫的是熟悉vue和小程式,出的題目基本上和vue相關的較多,乘著還有點記憶,趕緊記錄下來 題設1 你知道怎麼在小程式上內嵌網頁嗎,現在有乙個需求,現在小程式頁面上有乙個內嵌網頁,...