1.js作用域
作用域:變數的合法使用範圍2. 閉包全域性作用域:在全域性可以使用
函式作用域:只能在函式塊中使用
塊級作用域(es6新增):let,const定義的變數有塊級作用域{}內部使用
自由變數:
1.乙個變數在當前作用域沒有定義,但是被使用了
2.向上級作用域,一層一層一次尋找,知到找到為止
3.如果到全域性作用域都沒找到,則報錯:*** is not define
閉包:作用域應用的特殊情況,有兩種表現:1.函式作為返回值
2.函式作為引數
閉包:所有自由變數的查詢,是在函式定義的地方,向上級作用域查詢
不是在函式執行的地方查詢
3. this有幾種賦值情況?
this在各個場景中取什麼樣的值,是在函式執行的時候確定的,不是在定義的時候。this 的應用場景4. 手寫bind?1. 作為普通函式被呼叫,直接返回window
3. 作為物件方法被呼叫, 指向例項物件
4. class 方法中呼叫this,this 指向例項物件
5. 箭頭函式 上級作用域this的值
6. settimeout 中的function是本身觸發的執行(window.settimeout),不是zhangsan這個物件觸發的,所以settimeout中的this指向不是zhangsan這個物件,而是 window。
如果settimeou中的是箭頭函式,那是當前物件
箭頭函式this 永遠取它上級作用域的this,箭頭函式不會改變this的值
重點:this 在各個場景中取什麼樣的值,是在函式執行的時候確定的,不是在函式定義時確定的。適用於以上五種場景
bind分析:1. 首先 bind 返回乙個函式,函式執行的時候要返回乙個結果
2.this 通過陣列取出第一項把 this 拿出來,原因是 要把bind() 中的第一項取出來作為 this並從引數陣列中踢出去,只留下剩餘的引數
3.this 是誰?誰執行返回的是誰
5. 原型鏈和原型?
js本身是基於原型繼承的語言題目-知識點-解答
知識點:class和繼承、型別判斷instanceof、原型和原型鏈
原型關係:每個class 都有顯式原型 prototype \n
每個例項都有隱式原型 __prototype \n
例項的 __proto__ 指向對應class 的 prototype
6. 手動封裝jquery
7. js同步和非同步的區別是什麼?
怎麼理解同步和非同步?
js是單執行緒,乙個時間段內只能幹一件事情,在執行時,就容易阻塞,使用非同步就是解決單執行緒阻塞的問題。
aler是同步,會阻塞後面的**執行
如何理解js單執行緒?
8. promise載入
js基礎及相關面試題
js基本資料型別 string,object,number,undefined,boolean,function js陣列及其常用的方法 var arr new array arr i 1 新增資料 pop 刪除陣列的方法並返回刪除陣列的值 var arr new array 1,2,3 var d...
基礎面試題
答 物件導向的特徵主要有以下幾個方面 1.抽象 抽象就是忽略乙個主題中與當前目標無關的那些方面,以便更充分地注意與當前目標有關的方面。抽象並不打算了解全部問題,而只是選擇其中一部分,暫時不用部分細節。抽象包括兩個方面,一是過程抽象 二是資料抽象。2.繼承 繼承是一種聯結類的層次模型,並且允許和鼓勵類...
基礎面試題
公有方法。整個程式都可以訪問 私有方法。只有這個類可以訪問 受保護級別。這個包中的類及子類都可訪問 無修飾符時只向同乙個包中的類訪問 許可權限制 private default protected public 被public修飾的變數 public string s 被private修飾的變數 p...