2018年出現頻率較高的前端面試題及答案——js篇,有備無患哦

  • 在函數中:this
    通常是一個隱含的參數。
  • 在函數外(頂級作用域中):在瀏覽器中this 指的是全局對象;在Node.js中指的是模塊(module)的導出(exports)。
  • 傳遞到eval()中的字符串:如果eval()是被直接調用的,this 指的是當前對象;如果eval()是被間接調用的,this 就是指全局對象。
  • 介紹一下 JavaScript 原型,原型鏈,它們有何特點?
  • 每個對象都會在其內部初始化一個屬性,就是prototype(原型),當我們訪問一個對象的屬性時,如果這個對象內部不存在這個屬性,那麼他就會去prototype裡找這個屬性,這個prototype又會有自己的prototype,於是就這樣一直找下去,也就是我們平時所說的原型鏈的概念。
  • 關係:instance.constructor.prototype = instance.__proto__
  • 特點:JavaScript對象是通過引用來傳遞的,我們創建的每個新對象實體中並沒有一份屬於自己的原型副本,當我們修改原型時,與之相關的對象也會繼承這一改變。
  • 當我們需要一個屬性時,JavaScript引擎會先看當前對象中是否有這個屬性,如果沒有的話,就會查找它的prototype對象是否有這個屬性,如此遞推下去,一致檢索到Object內建對象。
  • function Func(){}
  • Func.prototype.name = "Xiaosong";
  • Func.prototype.getInfo = function() {
  • return this.name;
  • }
  • var person = new Func();
  • console.log(person.getInfo());//"Xiaosong"
  • console.log(Func.prototype);//Func { name = "Xiaosong", getInfo = function() }
2018年出現頻率較高的前端面試題及答案——js篇,有備無患哦

(未完待續)


分享到:


相關文章: