前端

* __proto__和prototype

每個(gè)對(duì)象都有__proto__焦蘑,但只有函數(shù)有prototype。當(dāng)你創(chuàng)建函數(shù)時(shí),JS會(huì)為這個(gè)函數(shù)自動(dòng)添加prototype屬性您机,函數(shù)的prototype中是一個(gè)構(gòu)造函數(shù)constructor,constructor指向函數(shù)的申明

function test() {}

var t = test;

則t.prototype中有constructor構(gòu)造方法年局,且constructor = function test()

對(duì)象的__proto__指向自己構(gòu)造函數(shù)的prototype际看。obj.__proto__.__proto__...的原型鏈由此產(chǎn)生,包括我們的操作符instanceof正是通過探測(cè)obj.__proto__.__proto__... === Constructor.prototype來(lái)驗(yàn)證obj是否是Constructor的實(shí)例矢否。

參考:從__proto__和prototype來(lái)深入理解JS對(duì)象和原型鏈

* typeof運(yùn)算符和instanceof運(yùn)算符以及isPrototypeOf()方法的區(qū)別

* call()和apply()的區(qū)別

apply()的妙用:

Array.prototype.push(arr1, arr2):數(shù)組arr1和arr2合并

Math.max.apply(null,array):找出數(shù)組array中的最大值

參考:apply()與call()的區(qū)別

* 描述以下變量的區(qū)別:null仲闽,undefined或undeclared

* ==和===有什么區(qū)別?

規(guī)定:

1僵朗、null ==??undefined 為true

2赖欣、==操作符任意一邊有NaN,則返回false

3验庙、!=操作符任意一邊有NaN顶吮,則返回true

比較時(shí)類型轉(zhuǎn)換的先后順序圖示:

類型轉(zhuǎn)換順序

參考:前端碎碎念 之 為什么[] == ![] ?

JS布爾值(Boolean)轉(zhuǎn)換規(guī)則

* 什么是事件冒泡闸餐?什么是事件捕獲玛瘸?

* 如何從瀏覽器的URL中獲取查詢字符串參數(shù)序矩?

function?getUrlParam(name){

? ??var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)');

????var result = window.location.search.substr(1).match(reg);

????return result ? decodeURIComponent(result[2]) : null;

}

* 請(qǐng)解釋一下JavaScript的同源策略

瀏覽器同源策略(SOP)的同源是指兩個(gè) URL 的協(xié)議/主機(jī)名/端口一致掉奄。例如蒂萎,https://www.taobao.com/pages/...草则,它的協(xié)議是?https屁桑,主機(jī)名是?www.taobao.com庙洼,端口是?443陨界。

同源策略作為瀏覽器的安全基石巡揍,其「同源」判斷是比較嚴(yán)格的,相對(duì)而言菌瘪,Cookie中的「同站」判斷就比較寬松:只要兩個(gè) URL 的 eTLD+1 相同即可腮敌,不需要考慮協(xié)議和端口阱当。其中,eTLD 表示有效頂級(jí)域名糜工,注冊(cè)于 Mozilla 維護(hù)的公共后綴列表(Public Suffix List)中弊添,例如,.com捌木、.co.uk油坝、.github.io 等。eTLD+1 則表示刨裆,有效頂級(jí)域名+二級(jí)域名澈圈,例如 taobao.com 等。

舉幾個(gè)例子帆啃,www.taobao.com 和?www.baidu.com?是跨站瞬女,www.a.taobao.com 和?www.b.taobao.com?是同站,a.github.io 和 b.github.io 是跨站(注意是跨站)努潘。

參考:瀏覽器系列之 Cookie 和 SameSite 屬性

* 通過new創(chuàng)建一個(gè)對(duì)象的時(shí)候诽偷,構(gòu)造函數(shù)內(nèi)部有哪些改變?

新建了一個(gè)對(duì)象A慈俯,將對(duì)象A的__propo__指向了構(gòu)造函數(shù)的prototype渤刃,并且將構(gòu)造函數(shù)的this指向了對(duì)象A

// 第一版代碼

function objectFactory() {

????var obj = new Object(),

????Constructor = [].shift.call(arguments); //取出第一個(gè)參數(shù),就是我們要傳入的構(gòu)造函數(shù)贴膘。此外因?yàn)?shift 會(huì)修改原數(shù)組,所以 arguments 會(huì)被去除第一個(gè)參數(shù)

????obj.__proto__ = Constructor.prototype; //將 obj 的原型指向構(gòu)造函數(shù)略号,這樣 obj 就可以訪問到構(gòu)造函數(shù)原型中的屬性

????Constructor.apply(obj, arguments);?//使用 apply刑峡,改變構(gòu)造函數(shù) this 的指向到新建的對(duì)象,這樣 obj 就可以訪問到構(gòu)造函數(shù)中的屬性

????return obj;

};

參考:JavaScript深入之new的模擬實(shí)現(xiàn)

* 請(qǐng)解釋JSONP的工作原理玄柠,以及它為什么不是真正的AJAX突梦。

* 繼承

function object(o) {

????function F() {}

????F.prototype = o;

????return new F();

}

function prototype(child, parent) {

????var prototype = object(parent.prototype); //將父類的原型賦值給一個(gè)空構(gòu)造函數(shù)的原型,并返回構(gòu)造函數(shù)創(chuàng)建的對(duì)象

????prototype.constructor = child; //將空對(duì)象的構(gòu)造函數(shù)指向子類

????child.prototype = prototype; //子類的原型指向空對(duì)象

}

JavaScript深入之繼承的多種方式和優(yōu)缺點(diǎn)

* 簡(jiǎn)述javascript中this的指向

簡(jiǎn)單總結(jié)就是羽利,如果對(duì)應(yīng)的Reference是對(duì)象宫患,this就是指向這個(gè)對(duì)象,否則this都是指向undefined

1.計(jì)算 MemberExpression(簡(jiǎn)單理解就是()左邊部分)的結(jié)果賦值給 ref

2.判斷 ref 是不是一個(gè) Reference 類型:

????2.1 如果 ref 是 Reference(包括undefined, an Object, a Boolean, a String, a Number, or an environment record)这弧,并且 IsPropertyReference(ref) 是 true(也就是base value是對(duì)象娃闲,base value就是指屬性所在的對(duì)象或者就是 EnvironmentRecord), 那么 this 的值為 GetBase(ref) (也就是base value的值)

????2.2 如果 ref 是 Reference,并且 base value 值是 Environment Record, 那么this的值為 ImplicitThisValue(ref)(規(guī)范規(guī)定匾浪,該函數(shù)始終返回 undefined)

????2.3 如果 ref 不是 Reference皇帮,那么 this 的值為 undefined

參考:JavaScript深入之從ECMAScript規(guī)范解讀this

*?a.x?=?a?=?{x:?2};

var?a?=?{n:?1};

var?b?=?a;

a.x?=?a?=?{x:?2};

console.log(a.x)? // 2

console.log(b.x) // { x: 2 }

參考:Javascript 面試題連等賦值 a.x = a = {n: 2}?

* let、const蛋辈、var 區(qū)別:

function retA() {

????var arr = [];

????for(var i = 0; i < 10; i++) {

????????arr[i] = function() {

????????????console.log(i);

????????}

????}

????return arr;

}

var testArr = retA();

for(var j = 0; j < testArr.length; j++) {

????testArr[j]();

}

參考:let深入理解---let存在變量提升嗎属拾?

MDN中l(wèi)et介紹?(與通過 ?var?聲明的有初始化值?undefined的變量不同,通過?let?聲明的變量直到它們的定義被執(zhí)行時(shí)才初始化)

JavaScript深入之變量對(duì)象?(通過活動(dòng)變量AO理解變量的幾個(gè)階段:「創(chuàng)建create、初始化initialize 和賦值assign」)

MDN中的var?(聲明和未聲明變量之間的差異)

* Promise相關(guān)面試題

const first = () => (new Promise((resolve,reject)=>{

? ? console.log(3);

? ? let p = new Promise((resolve, reject)=>{

? ? ? ? console.log(7);

? ? ? ? setTimeout(()=>{

? ? ? ? ? console.log(5);

? ? ? ? ? resolve(6);

? ? ? ? },0)

? ? ? ? resolve(1);

? ? });

? ? resolve(2);

? ? p.then((arg)=>{

? ? ? ? console.log(arg);

? ? });

}));

first().then((arg)=>{

? ? console.log(arg);

});

console.log(4);

參考:深入理解Promise運(yùn)行原理?(手動(dòng)實(shí)現(xiàn)Promise)

這一次渐白,徹底弄懂 JavaScript 執(zhí)行機(jī)制?(setTimeout尊浓、setInterval、Promise纯衍、宏任務(wù)栋齿、微任務(wù))

一個(gè)Promise面試題

Promise 必知必會(huì)(十道題)

*?請(qǐng)?jiān)斒瞿銓?duì)vue生命周期的理解,包括每個(gè)階段數(shù)據(jù)對(duì)象和DOM的特點(diǎn)

created之前不能訪問data托酸,method等屬性褒颈、方法,mounted之前不能操作DOM節(jié)點(diǎn)励堡,update是有雙向綁定的數(shù)據(jù)變化時(shí)調(diào)用


參考:vue 生命周期深入?(父子組件的生命周期)

如何解釋vue的生命周期才能令面試官滿意谷丸?

vue生命周期解析?(手動(dòng)實(shí)現(xiàn)生命周期方法)

* Vue原理深入理解

參考:【前端發(fā)動(dòng)機(jī)】深入 Vue 響應(yīng)式原理,從源碼分析

30 道 Vue 面試題应结,內(nèi)含詳細(xì)講解(涵蓋入門到精通刨疼,自測(cè) Vue 掌握程度)

深入剖析:Vue核心之虛擬DOM?(key的作用)

剖析Vue實(shí)現(xiàn)原理 - 如何實(shí)現(xiàn)雙向綁定mvvm(簡(jiǎn)化版)

*?Javascript中普通 for 循環(huán)和 forEach 的性能哪個(gè)好?為什么鹅龄?

參考:JavaScript 數(shù)組遍歷方法的對(duì)比

* Vuex工作原理

參考:vuex工作原理詳解

* Vue-Router原理

URL的井號(hào)

理解vue-router中(router-link router-view $router $route)實(shí)現(xiàn)原理(手動(dòng)實(shí)現(xiàn))

*?隱式類型轉(zhuǎn)換

JavaScript 加號(hào)運(yùn)算符詳解

* flex布局

Flex 布局教程:語(yǔ)法篇

*?Generator

* webpack基礎(chǔ)

Webpack進(jìn)階視頻

[webpack] devtool里的7種SourceMap模式是什么鬼揩慕?

webpack4 - splitChunks & runtimeChunk

JavaScript Source Map 詳解

webpack之optimization.runtimeChunk作用

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市扮休,隨后出現(xiàn)的幾起案子迎卤,更是在濱河造成了極大的恐慌,老刑警劉巖玷坠,帶你破解...
    沈念sama閱讀 218,546評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蜗搔,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡八堡,警方通過查閱死者的電腦和手機(jī)樟凄,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,224評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)兄渺,“玉大人缝龄,你說我怎么就攤上這事」业” “怎么了叔壤?”我有些...
    開封第一講書人閱讀 164,911評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)凳兵。 經(jīng)常有香客問我百新,道長(zhǎng),這世上最難降的妖魔是什么庐扫? 我笑而不...
    開封第一講書人閱讀 58,737評(píng)論 1 294
  • 正文 為了忘掉前任饭望,我火速辦了婚禮仗哨,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘铅辞。我一直安慰自己厌漂,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,753評(píng)論 6 392
  • 文/花漫 我一把揭開白布斟珊。 她就那樣靜靜地躺著苇倡,像睡著了一般。 火紅的嫁衣襯著肌膚如雪囤踩。 梳的紋絲不亂的頭發(fā)上旨椒,一...
    開封第一講書人閱讀 51,598評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音堵漱,去河邊找鬼综慎。 笑死,一個(gè)胖子當(dāng)著我的面吹牛勤庐,可吹牛的內(nèi)容都是我干的示惊。 我是一名探鬼主播,決...
    沈念sama閱讀 40,338評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼愉镰,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼米罚!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起丈探,我...
    開封第一講書人閱讀 39,249評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤录择,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后碗降,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體糊肠,經(jīng)...
    沈念sama閱讀 45,696評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,888評(píng)論 3 336
  • 正文 我和宋清朗相戀三年遗锣,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片嗤形。...
    茶點(diǎn)故事閱讀 40,013評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡精偿,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出赋兵,到底是詐尸還是另有隱情笔咽,我是刑警寧澤,帶...
    沈念sama閱讀 35,731評(píng)論 5 346
  • 正文 年R本政府宣布霹期,位于F島的核電站叶组,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏历造。R本人自食惡果不足惜甩十,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,348評(píng)論 3 330
  • 文/蒙蒙 一船庇、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧侣监,春花似錦鸭轮、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,929評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至姓蜂,卻和暖如春按厘,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背钱慢。 一陣腳步聲響...
    開封第一講書人閱讀 33,048評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工逮京, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人滩字。 一個(gè)月前我還...
    沈念sama閱讀 48,203評(píng)論 3 370
  • 正文 我出身青樓造虏,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親麦箍。 傳聞我的和親對(duì)象是個(gè)殘疾皇子漓藕,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,960評(píng)論 2 355