摘要:中使用操作符具體做了哪些事情創(chuàng)建了一個(gè)空對(duì)象空對(duì)象的屬性指向構(gòu)造函數(shù)的屬性執(zhí)行構(gòu)造函數(shù),將的指向前端面試題及答案瀏覽器篇前端面試題及答案篇前端面試題及答案篇前端面試題及答案性能優(yōu)化篇
這篇文章并不是最全的前端面試題(沒有最全,只有更全),只是針對(duì)自己面試過(guò)程中遇到的一些難題、容易忽略的題做一個(gè)簡(jiǎn)單的筆記,方便后面有面試需要的小伙伴們借鑒,后續(xù)內(nèi)容會(huì)不定時(shí)更新,有錯(cuò)誤之處希望大家不吝指出。
1、JS延遲加載的方式有哪些?
defer和async
動(dòng)態(tài)創(chuàng)建DOM方式(創(chuàng)建script,插入到DOM中,加載完畢后callBack)
按需異步載入js
2、前端跨域解決方案詳情
3、如何實(shí)現(xiàn)淺拷貝和深拷貝
淺拷貝:
直接通過(guò)=賦值
let data = {n: 1}; let cloneData = data; cloneData.n = 2; console.log(data.n) // 2
如果obj對(duì)象有多個(gè)層級(jí),可以通過(guò)Object.assign()
let data = {name: {firstName: "lsh"}}; let cloneData = Object.assign({}, data); cloneData.name.firstName = "lx"; console.log(data.name.firstName) // lx
深拷貝
簡(jiǎn)單的通過(guò)JSON.parse(JSON.stringify(data))
通過(guò)lodash.js
let cloneData = lodash.cloneDeep(data);
如果obj對(duì)象只有一級(jí),可以用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; }
通過(guò)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}
通過(guò)$.extend()方法
let data = {t: 1}; let cloneData = $.extend(true, {}, data, {t: 2}); cloneData.t = 3; console.log(data.t) // 1
4、AMD、CMD、CommonJS之間區(qū)別
CommonJS:同步加載。必須等clock.js加載完成后才能調(diào)用start();
const clock = reqiure("clock"); clock.start();
AMD(require.js):異步加載模塊 => 依賴前置,提前執(zhí)行。先定義依賴,加載完成后在回調(diào)函數(shù)中執(zhí)行。
require(["clock", "lodash"], function(clock, lodash)) { clock.start(); lodash.uniq(); }
CMD(sea.js):異步加載模塊 => 依賴就近,延遲執(zhí)行。
define(function(reqiure, exports, module) { var clock = require("clock"); clock.start(); var lodash = require("lodash"); lodash.uniq([]); })
5、js中使用new操作符具體做了哪些事情?
let obj = new Base();
創(chuàng)建了一個(gè)空對(duì)象obj;
let obj = {};
空對(duì)象obj的__proto__屬性指向構(gòu)造函數(shù)Base的prototype屬性;
obj.__proto__ = Base.prototype;
執(zhí)行構(gòu)造函數(shù),將Base的this指向obj;
Base.call(obj);
前端面試題及答案 - 瀏覽器篇
前端面試題及答案 - HTML篇
前端面試題及答案 - CSS篇
前端面試題及答案 - 性能優(yōu)化篇
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/110239.html
摘要:手冊(cè)網(wǎng)超級(jí)有用的前端基礎(chǔ)技術(shù)面試問(wèn)題收集前端面試題目及答案匯總史上最全前端面試題含答案常見前端面試題及答案經(jīng)典面試題及答案精選總結(jié)前端面試過(guò)程中最容易出現(xiàn)的問(wèn)題前端面試題整理騰訊前端面試經(jīng)驗(yàn)前端基礎(chǔ)面試題部分最新前端面試題攻略前端面試前端入 手冊(cè)網(wǎng):http://www.shouce.ren/post/index 超級(jí)有用的前端基礎(chǔ)技術(shù)面試問(wèn)題收集:http://www.codec...
摘要:手冊(cè)網(wǎng)超級(jí)有用的前端基礎(chǔ)技術(shù)面試問(wèn)題收集前端面試題目及答案匯總史上最全前端面試題含答案常見前端面試題及答案經(jīng)典面試題及答案精選總結(jié)前端面試過(guò)程中最容易出現(xiàn)的問(wèn)題前端面試題整理騰訊前端面試經(jīng)驗(yàn)前端基礎(chǔ)面試題部分最新前端面試題攻略前端面試前端入 手冊(cè)網(wǎng):http://www.shouce.ren/post/index 超級(jí)有用的前端基礎(chǔ)技術(shù)面試問(wèn)題收集:http://www.codec...
摘要:前端面試題及答案總結(jié)掘金技術(shù)征文金三銀四,金九銀十,用來(lái)形容求職最好的幾個(gè)月。因?yàn)榈拇嬖冢辽僭诒粯?biāo)準(zhǔn)化的那一刻起,就支持異步編程了。然而異步編程真正發(fā)展壯大,的流行功不可沒。 showImg(https://segmentfault.com/img/bVVQOH?w=640&h=319); 1、2017前端面試題及答案總結(jié) |掘金技術(shù)征文 金三銀四,金九銀十,用來(lái)形容求職最好的幾個(gè)月...
閱讀 1434·2021-11-22 15:24
閱讀 2528·2021-10-11 11:06
閱讀 2336·2021-10-09 09:45
閱讀 2535·2021-09-09 09:33
閱讀 641·2019-08-30 15:53
閱讀 1447·2019-08-30 12:48
閱讀 682·2019-08-29 13:47
閱讀 508·2019-08-26 18:27