一、題目
1、如何準確判斷乙個變數是陣列型別?
var array=;
console.log(array instanceof array);//true 判斷引用型別的具體型別要用instanceof
console.log(typeof array);//object
2、寫乙個原型鏈繼承的的例子
//封裝乙個dom查詢例項
function elem(id)
elem.prototype.html=function(val)else
}elem.prototype.on=function(type,fn)
var dev=new elem('dev1');
console.log(dev.html('hello world!
'));
dev.on('click',function())
3、描述new乙個物件的過程
(1)建立乙個新物件
(2)this指向這個新物件
(3)執行**,即對this進行賦值
(4)返回this
//建立建構函式
function foo(name,age);
this.name=name;
// return this;
}foo.prototype.alertname=function()
//建立示例
var f=new foo('zahngshan');
f.printname=function();
//測試
f.printname();
f.alertname();
4、zepto(或其他框架)原始碼中如何使用原型鏈
(1)閱讀原始碼是高效提高技能的方式
(2)但不能『埋頭苦鑽』有技巧在其中
(3)慕課網搜尋『zepto設計和原始碼分析』
二、知識點
1、建構函式
建構函式有個特點,函式名首字母大寫,建構函式就類似於乙個模板,可以new出來多個例項
2、建構函式-擴充套件
(1)var a={}其實是var a=new object()的語法糖
(2)var a=其實是var a=new array()的語法糖
(3)function foo(){}其實是var foo=new function(...)
(4)使用instanceof判斷乙個函式是否是乙個變數的建構函式
3、原型規則和示例
(1)所有的引用型別(陣列,物件,函式),都具有物件特徵,即自由擴充套件屬性(除了null以外),如下**所示,都可以自由擴充套件屬性a
var obj = {};
obj.a = 100;
var arr = ;
arr.a = 100;
function fn() ;
var f1=new fn();
fn.a = 100;
(2)所有的引用型別(陣列,物件,函式),都有乙個__proto__屬性,屬性值是乙個普通的物件,如下**所示:
var obj = {};
obj.a = 100;
var arr = ;
arr.a = 100;
function fn() ;
var f1=new fn();
fn.a = 100;
console.log(obj.__proto__);
console.log(arr.__proto__);
console.log(fn.__proto__);
(3)所有的函式,都有乙個prototype屬性,屬性值也是乙個普通的物件
function fn() ;
var f1=new fn();
fn.a = 100;
console.log(fn.__proto__);
console.log(fn.prototype);
(4)所有的引用型別(陣列,物件,函式),__proto__屬性值指向他的建構函式的「prototype」屬性值
var obj = {};
obj.a = 100;
var arr = ;
arr.a = 100;
function fn() ;
var f1=new fn();
fn.a = 100;
console.log(obj.__proto__);
console.log(arr.__proto__);
console.log(fn.__proto__);
console.log(fn.prototype);
console.log(obj.__proto__ === object.prototype);//true
console.log(fn.__proto__ === fn.prototype);//true
(5)當試圖得到乙個物件的某個屬性時,如果這個物件本身沒有這個屬性,那麼會去它的__proto__(即它的建構函式的prototype)中尋找,即console.log(obj.__proto__ === object.prototype);
4、原型鏈
5、迴圈物件自身屬性
var item;
for(item in f)
}
5、instanceof
用於判斷引用型別屬於哪個建構函式的方法
javascript 回顧(一些面試題)
輸入url到得到html的詳細過程,載入乙個資源的過程?瀏覽器根據dns伺服器得到網域名稱的ip位址 像這個ip的機器傳送http請求 伺服器收到 並返回http請求 瀏覽器得到資料 瀏覽器渲染頁面的過程?根據html結構生成dom tree 根據css生成cssom 講dom和cssom整合成re...
5個面試題
面試者1 1 寫乙個int型的stack類 2 兩個有序鍊錶merge成乙個鍊錶 3 判斷兩個字串是否相等。abc,bac,return true 面試者2 每輪一道,第一輪英文自我介紹加演算法,第二輪時間比較短就演算法,第三輪是專案介紹加演算法 面試者3 寫乙個函式,逆序乙個陣列 寫乙個函式,將整...
javascript閉包經典面試題
首先第一行,先看 var a fun 0 把0傳入 fun n,o 中,那麼 n 0,o undifine,而 fun n,o return 了 所以a就等於 所以a.fun 1 function 1 fun 1,0 所以會輸出0,同樣a.fun 2 function 2 fun 2,0 輸出0,以...