成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

前端面試題及答案 - JS篇

Shimmer / 511人閱讀

摘要:中使用操作符具體做了哪些事情創(chuàng)建了一個空對象空對象的屬性指向構(gòu)造函數(shù)的屬性執(zhí)行構(gòu)造函數(shù),將的指向前端面試題及答案瀏覽器篇前端面試題及答案篇前端面試題及答案篇前端面試題及答案性能優(yōu)化篇

這篇文章并不是最全的前端面試題(沒有最全,只有更全),只是針對自己面試過程中遇到的一些難題、容易忽略的題做一個簡單的筆記,方便后面有面試需要的小伙伴們借鑒,后續(xù)內(nèi)容會不定時更新,有錯誤之處希望大家不吝指出。

1、JS延遲加載的方式有哪些?

defer和async

動態(tài)創(chuàng)建DOM方式(創(chuàng)建script,插入到DOM中,加載完畢后callBack)

按需異步載入js

2、前端跨域解決方案詳情

3、如何實現(xiàn)淺拷貝和深拷貝

淺拷貝:

直接通過=賦值

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之間區(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)建了一個空對象obj;

let obj = {};

空對象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)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/110239.html

相關(guān)文章

  • 前端開發(fā)面試題鏈接

    摘要:手冊網(wǎng)超級有用的前端基礎(chǔ)技術(shù)面試問題收集前端面試題目及答案匯總史上最全前端面試題含答案常見前端面試題及答案經(jīng)典面試題及答案精選總結(jié)前端面試過程中最容易出現(xiàn)的問題前端面試題整理騰訊前端面試經(jīng)驗前端基礎(chǔ)面試題部分最新前端面試題攻略前端面試前端入 手冊網(wǎng):http://www.shouce.ren/post/index 超級有用的前端基礎(chǔ)技術(shù)面試問題收集:http://www.codec...

    h9911 評論0 收藏0
  • 前端開發(fā)面試題鏈接

    摘要:手冊網(wǎng)超級有用的前端基礎(chǔ)技術(shù)面試問題收集前端面試題目及答案匯總史上最全前端面試題含答案常見前端面試題及答案經(jīng)典面試題及答案精選總結(jié)前端面試過程中最容易出現(xiàn)的問題前端面試題整理騰訊前端面試經(jīng)驗前端基礎(chǔ)面試題部分最新前端面試題攻略前端面試前端入 手冊網(wǎng):http://www.shouce.ren/post/index 超級有用的前端基礎(chǔ)技術(shù)面試問題收集:http://www.codec...

    snifes 評論0 收藏0
  • 前端周報:前端面試題及答案總結(jié);JavaScript參數(shù)傳遞的深入理解

    摘要:前端面試題及答案總結(jié)掘金技術(shù)征文金三銀四,金九銀十,用來形容求職最好的幾個月。因為的存在,至少在被標(biāo)準(zhǔn)化的那一刻起,就支持異步編程了。然而異步編程真正發(fā)展壯大,的流行功不可沒。 showImg(https://segmentfault.com/img/bVVQOH?w=640&h=319); 1、2017前端面試題及答案總結(jié) |掘金技術(shù)征文 金三銀四,金九銀十,用來形容求職最好的幾個月...

    ermaoL 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<