摘要:中使用操作符具體做了哪些事情創建了一個空對象空對象的屬性指向構造函數的屬性執行構造函數,將的指向前端面試題及答案瀏覽器篇前端面試題及答案篇前端面試題及答案篇前端面試題及答案性能優化篇
這篇文章并不是最全的前端面試題(沒有最全,只有更全),只是針對自己面試過程中遇到的一些難題、容易忽略的題做一個簡單的筆記,方便后面有面試需要的小伙伴們借鑒,后續內容會不定時更新,有錯誤之處希望大家不吝指出。
1、JS延遲加載的方式有哪些?
defer和async
動態創建DOM方式(創建script,插入到DOM中,加載完畢后callBack)
按需異步載入js
2、前端跨域解決方案詳情
3、如何實現淺拷貝和深拷貝
淺拷貝:
直接通過=賦值
let data = {n: 1}; let cloneData = data; cloneData.n = 2; console.log(data.n) // 2
如果obj對象有多個層級,可以通過Object.assign()
let data = {name: {firstName: "lsh"}}; let cloneData = Object.assign({}, data); cloneData.name.firstName = "lx"; console.log(data.name.firstName) // lx
深拷貝
簡單的通過JSON.parse(JSON.stringify(data))
通過lodash.js
let cloneData = lodash.cloneDeep(data);
如果obj對象只有一級,可以用Object.assign();
let data = {name: "lsh"}; let cloneData = Object.assign({}, data); cloneData.name = "lx"; console.log(data.name); // lsh
遞歸
function cloneDeep(data) { if (!data || typeof data != "object") { return data; } let obj = data.constructor === Array ? [] : {}; for (let i in data) { obj[i] = typeof data[i] === "object" ? cloneDeep(data[i]) : data[i] } return obj; }
通過Object.create()方法
let data = {n: 1}; let cloneData = Object.create(data); console.log(cloneData); // {} console.log(cloneData.n); // 1 console.log(cloneData.__proto__); // {n: 1}
通過$.extend()方法
let data = {t: 1}; let cloneData = $.extend(true, {}, data, {t: 2}); cloneData.t = 3; console.log(data.t) // 1
4、AMD、CMD、CommonJS之間區別
CommonJS:同步加載。必須等clock.js加載完成后才能調用start();
const clock = reqiure("clock"); clock.start();
AMD(require.js):異步加載模塊 => 依賴前置,提前執行。先定義依賴,加載完成后在回調函數中執行。
require(["clock", "lodash"], function(clock, lodash)) { clock.start(); lodash.uniq(); }
CMD(sea.js):異步加載模塊 => 依賴就近,延遲執行。
define(function(reqiure, exports, module) { var clock = require("clock"); clock.start(); var lodash = require("lodash"); lodash.uniq([]); })
5、js中使用new操作符具體做了哪些事情?
let obj = new Base();
創建了一個空對象obj;
let obj = {};
空對象obj的__proto__屬性指向構造函數Base的prototype屬性;
obj.__proto__ = Base.prototype;
執行構造函數,將Base的this指向obj;
Base.call(obj);
前端面試題及答案 - 瀏覽器篇
前端面試題及答案 - HTML篇
前端面試題及答案 - CSS篇
前端面試題及答案 - 性能優化篇
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/110239.html
摘要:前端面試題及答案總結掘金技術征文金三銀四,金九銀十,用來形容求職最好的幾個月。因為的存在,至少在被標準化的那一刻起,就支持異步編程了。然而異步編程真正發展壯大,的流行功不可沒。 showImg(https://segmentfault.com/img/bVVQOH?w=640&h=319); 1、2017前端面試題及答案總結 |掘金技術征文 金三銀四,金九銀十,用來形容求職最好的幾個月...
閱讀 1428·2021-11-22 15:24
閱讀 2519·2021-10-11 11:06
閱讀 2323·2021-10-09 09:45
閱讀 2525·2021-09-09 09:33
閱讀 634·2019-08-30 15:53
閱讀 1439·2019-08-30 12:48
閱讀 656·2019-08-29 13:47
閱讀 500·2019-08-26 18:27