js方面

1判斷數(shù)組的方法:

? ? ? ? 1.arr instanceof Array

? ? ? ? 2.arr.constructor == Array

? ? ? ? ? ? ? ? ? ?????????3.Object.prototype.toString.call(ob????????????????j) === '[object Array]'

????????4.Array.isArray(arr)

2.Object.create()

? ??????方法創(chuàng)建一個新對象,使用現(xiàn)有的對象來提供新創(chuàng)建的對象的proto。

3. let const var 區(qū)別

? ? ? ? let作用域是塊級作用域、不存在變量提升、不能重復(fù)定義、存在暫時性死區(qū)

? ? ? ? const的聲明的變量不允許改變

4.基本類型: String Number Boolean Null Undefined? 棧內(nèi)存保存簡單數(shù)據(jù)段

? ? 引用類型: 對象、數(shù)組、函數(shù)、正則? ?保存在堆內(nèi)存的??

5. call\apply\bind實現(xiàn)

? ? Function.prototype.newCall = function(context, ...arr) {

? ? ? ? ? ? if (typeof context === 'object') {

? ? ? ? ? ? ? ? ? ? context = context || window;

? ? ? ? ? ? } else {

? ? ? ? ? ? ? ? ? ? context = Object.create(null)

? ? ? ? ? ? }

? ? ? ? ? ? let fn =Symbol();

? ? ? ? ? ? context[fn] = this;

? ? ? ? ? ? context[fn] (...arr);

? ? ? ? ? ? delete context[fn];

? ? ? ? }

Function.prototype.newBind = function (context, ...innerArgs) {

? ? var me = this;

? ? return function (...finnalArgs) {

? ? ? ? return me.call(context, ...innerArgs, ...finnalArgs)

? ? }???

}

?6.? 介紹事件循環(huán)

? ??????(macro)task 主要包含:script( 整體代碼)、setTimeout、setInterval、I/O、UI 交互事件、setImmediate(Node.js 環(huán)境)

microtask主要包含:Promise、MutaionObserver、process.nextTick(Node.js 環(huán)境)

7.定時器不準(zhǔn)原因: eventloop循環(huán)機制中,異步事件set interval到時回把回調(diào)函數(shù)放入消息隊列,主線程的任務(wù)執(zhí)行完畢后,依次執(zhí)行消息隊列的任務(wù),由于消息隊列中存在大量任務(wù),其他任務(wù)執(zhí)行時間就會造成定時器回調(diào)函數(shù)的延遲,如果不處理會一直疊加延遲

? ? ? ? 使用web Work

? ? ? ? ? ? ? ? let work = new Work()

8.原型介紹

? ? ? ? 原型就是一個屬性,這個屬性是構(gòu)造函數(shù)的屬性,后面所有的對象都會繼承原型的屬性與方法.

9.繼承方法:?

? ? 1.原型鏈繼承:

? ? ? ? ? ? Cat.prototype = new Animal();

? ? 2.構(gòu)造繼承:

? ? ? ? ? ? function? Cat() { Animal.call(this);}

? ? 3.實例繼承

? ? ? ? ? ? function Cat() { var instance = new Animal(); return instance }

? ? 4.拷貝繼承????????

? ? 5.組合繼承

? ? ? ? ?function Cat() {? Animal.call(this)? }

? ? ? ? ?Cat.prototype = new Animal();

? ? ? ? ?Cat.prototype.constructor = Cat;

? ? 6.es6的extends繼承

? ? ? ? ? ? class Chinese extends Person {

? ? ? ? ? ? ? ? ? ? constructor() {
? ? ? ? ? ? ? ? ? ? ? ? ? ? super()

? ? ? ? ? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? }

? ? ? ? 7.閉包的介紹和它的作用:

? ? ? ? ? ? ? ? 閉包就是能夠讀取其他函數(shù)內(nèi)部變量的函數(shù).

? ? ? ? ? ? ? ? ? ? ?可以讀取函數(shù)內(nèi)部的變量;讓這些變量的值始終保存在內(nèi)存中

? ? ? ? 8.new的實現(xiàn)過程

? ? ? ? ? ? ? ? 1.創(chuàng)建了一個空對象,將它的引用賦給this,繼承函數(shù)的原型;

? ? ? ? ? ? ? ? 2.通過this將屬性和方法添加至這個對象

? ? ? ? ? ? ? ? 3.最后返回this指向新對象,也就是實例

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1.1 函數(shù)聲明 //ES5 function getSum(){} function (){}//匿名函數(shù) //...
    i_木木木木木閱讀 310評論 0 0
  • 單例模式 適用場景:可能會在場景中使用到對象,但只有一個實例,加載時并不主動創(chuàng)建,需要時才創(chuàng)建 最常見的單例模式,...
    Obeing閱讀 2,321評論 1 10
  • 第一章 錯誤處理: 錯誤: 程序運行過程中,導(dǎo)致程序無法正常執(zhí)行的現(xiàn)象(即bug) 現(xiàn)象: 程序一旦出錯,默認(rèn)會報...
    fastwe閱讀 1,261評論 0 1
  • 繼承 一、混入式繼承 二、原型繼承 利用原型中的成員可以被和其相關(guān)的對象共享這一特性,可以實現(xiàn)繼承,這種實現(xiàn)繼承的...
    magic_pill閱讀 1,139評論 0 3
  • 拖了這么久,今天終于看到快下檔了的《比得兔》,但真的想說:“兔兔,雖然你們毛茸茸的很可愛,但是做兔子太zuo一樣會...
    幽靈zyy閱讀 450評論 0 0

友情鏈接更多精彩內(nèi)容