国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

前端面試題及答案 - JS篇

Shimmer / 499人閱讀

摘要:中使用操作符具體做了哪些事情創建了一個空對象空對象的屬性指向構造函數的屬性執行構造函數,將的指向前端面試題及答案瀏覽器篇前端面試題及答案篇前端面試題及答案篇前端面試題及答案性能優化篇

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

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

相關文章

  • 前端開發面試題鏈接

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

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

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

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

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

    ermaoL 評論0 收藏0

發表評論

0條評論

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