不卡一区二区三区四区_乱中年女人伦av一区二区_美洲天堂一区二卡三卡四卡视频 _国产一区在线精品_91精品国产品国语在线不卡_99在线精品视频_99这里都是精品_国产99久久精品_99re成人在线_亚洲二区在线视频_久久先锋资源网_国产69精品久久久久毛片_亚洲一区二区三区视频在线_91小视频免费观看_欧美制服丝袜第一页_欧美日韩视频在线一区二区

您現在所在的位置:首頁 >學員就業 > 就業寶典 > 前端經典面試題之JavaScript篇

前端經典面試題之JavaScript篇

來源:奇酷教育 發表于:

1 JavaScript基礎數據類型JavaScript數據類型包括原始類型和引用類型,原始類型有五個:Number(數值) String(字符串) Boolean(布爾

1 JavaScript基礎數據類型

JavaScript數據類型包括原始類型和引用類型,原始類型有五個:

Number(數值) String(字符串) Boolean(布爾) Null(空) Undefined(未定義)

引用類型有一個:

Object(對象)

通過typeof(x)可以返回一個變量x的數據類型“number”、“string”、“boolean”、“undefined”、”object”,這里要注意一點:typeof運算符對于null類型返回的是object。

^ 《JavaScript高級程序設計》: 
這實際上是JavaScript最初實現中的一個錯誤,后來被ECMAScript沿用了?,F在null被認為是對象的占位符,從而解釋了這一矛盾。但是從技術上來說,它仍然是原始值。

2 談一談JavaScript作用域鏈

當執行一段JavaScript代碼(全局代碼或函數)時,JavaScript引擎會創建為其創建一個作用域又稱為執行上下文(Execution Context),在頁面加載后會首先創建一個全局的作用域,然后每執行一個函數,會建立一個對應的作用域,從而形成了一條作用域鏈。每個作用域都有一條 對應的作用域鏈,鏈頭是全局作用域,鏈尾是當前函數作用域。

作用域鏈的作用是用于解析標識符,當函數被創建時(不是執行),會將this、arguments、命名參數和該函數中的所有局部變量添加到該當前作用域 中,當JavaScript需要查找變量X的時候(這個過程稱為變量解析),它首先會從作用域鏈中的鏈尾也就是當前作用域進行查找是否有X屬性,如果沒有 找到就順著作用域鏈繼續查找,直到查找到鏈頭,也就是全局作用域鏈,仍未找到該變量的話,就認為這段代碼的作用域鏈上不存在x變量,并拋出一個引用錯誤 (ReferenceError)的異常。

3 如何理解JavaScript原型鏈

JavaScript中的每個對象都有一個prototype屬性,我們稱之為原型,而原型的值也是一個對象,因此它也有自己的原型,這樣就串聯起來了一條原型鏈,原型鏈的鏈頭是object,它的prototype比較特殊,值為null。

原型鏈的作用是用于對象繼承,函數A的原型屬性(prototype property)是一個對象,當這個函數被用作構造函數來創建實例時,該函數的原型屬性將被作為原型賦值給所有對象實例,比如我們新建一個數組,數組的方法便從數組的原型上繼承而來。

當訪問對象的一個屬性時, 首先查找對象本身, 找到則返回; 若未找到, 則繼續查找其原型對象的屬性(如果還找不到實際上還會沿著原型鏈向上查找, 直至到根). 只要沒有被覆蓋的話, 對象原型的屬性就能在所有的實例中找到,若整個原型鏈未找到則返回undefined;

4 JavaScript變量聲明提前

《JavaScript權威指南》中是這樣解釋的:JavaScript變量在聲明之前已經可用,JavaScript的這個特性被非正式的稱為聲明提前(hoisting),即JavaScript函數中聲明的所有變量(但不涉及賦值)都被“提前”至函數的頂部。

從一個例子來看:

var scope = "global";

function myFunc(){

   console.log(scope);

   var scope = "local";

}

控制臺打印出來的不是“global”而是“undefined”,這是因為在myFunc這個函數的作用域中,局部變量scope聲明被提前至函數頂部,而此時,scope僅聲明,未賦值,因此輸出undefined。實際上,上面的代碼和下面的效果是一樣的:

var scope = "global";

function myFunc(){

   var scope;

   console.log(scope);

   scope = "local";

}

5 如何理解和應用JavaScript閉包

關于閉包具體的定義文獻中給的概念很抽象,我認為閉包是一種使函數能夠都去其它函數的局部變量的語法機制。

舉個例子:

function outFunc(){

   var name = "Vicfeel";

   function inFunc(){

       console.log(name);

   }

   return inFunc;

}

inFunc(); //控制臺顯示"Vicfeel"

這這個例子我們可以看出,在函數inFunc中依然可以訪問outFunc的局部變量name。

閉包應用舉例,模擬類的私有屬性,利用閉包的性質,局部變量只有在sayAge方法中才可以訪問,而name在外部也訪問,從而實現了類的私有屬性。

function User(){

   this.name = "Vicfeel";  //共有屬性

   var age = 23;    //私有屬性

   this.sayAge:function(){

       console.log("my age is " + age);

   }

}

var user = new User();

console.log(user.name); //"Vicfeel"

console.log(user.age);  //"undefined"

user.sayAge();   //"my age is 23"


6 new構建對象的本質

function User(){

   this.name = "Vicfeel";

   this.age = 23;

}

 

var user = new User();

通過new操作符,實際上在構造函數User中完成了如下操作:

創建一個新的對象,這個對象的類型是object; 
設置這個新的對象的內部、可訪問性和prototype屬性為構造函數(指prototype.construtor所指向的構造函數)中設置的; 
執行構造函數; 
返回新創建的對象。

function User(){

   //this = {};  

   //this.constructor = User;

   this.name = "Vicfeel";

   this.age = 23;

   //return this;

}

 

var user = new User();

如果構造函數默認返回的新創建的this對象,如果手動return 一個變量的話,如果該變量是原始類型則無效,如果是對象,則返回該對象。

7 JavaScript代理

當我們需要對很多元素添加事件的時候,可以通過將事件添加到它們的父節點而將事件委托給父節點來觸發處理函數。

比如我們需要向一個ul中動態添加很多個li,需要遍歷li逐個添加點擊事件

<ul id='list'></ul>

var count = 100;

var ulList = document.getElementById("list");

//動態構建節點

for(var i = count;i--;){

   var liDom = document.createElement('li');

   ulList.appendChild(liDom);

}

//綁定點擊事件

var liNode = ulList.getElementByTagName("li");

for(var i=0, l = liNodes.length; i < l; i++){

   liNode[i].onClick = function(){

       //li點擊事件

   }

}

眾 所周知,DOM操作是十分消耗性能的。所以重復的事件綁定簡直是性能殺手。而事件代理的核心思想,就是通過盡量少的綁定,去監聽盡量多的事件。如何做呢? 答案是利用事件冒泡機制,對其父節點ul進行事件綁定(Event Bubble),然后通過event.target來判斷是哪個節點觸發的事件,從而減少很多EventHandler的綁定。

var count = 100;

var ulList = document.getElementById("list");

//動態構建節點

for(var i = count;i--;){

   var liDom = document.createElement('li');

   ulList.appendChild(liDom);

}

//綁定點擊事件

var liNode = ulList.getElementByTagName("li");

liNode.onClick = function(e){

   if(e.target && e.target.nodeName.toUpperCase == "LI") {

       // li點擊事件

   }

}

不卡一区二区三区四区_乱中年女人伦av一区二区_美洲天堂一区二卡三卡四卡视频 _国产一区在线精品_91精品国产品国语在线不卡_99在线精品视频_99这里都是精品_国产99久久精品_99re成人在线_亚洲二区在线视频_久久先锋资源网_国产69精品久久久久毛片_亚洲一区二区三区视频在线_91小视频免费观看_欧美制服丝袜第一页_欧美日韩视频在线一区二区
欧美最大成人综合网| 成人免费视频一区二区| 中文字幕精品综合| 国产欧美日产一区| 久久久99久久| 国产女主播视频一区二区| 国产日韩一级二级三级| 国产精品蜜臀在线观看| 亚洲精品视频在线观看网站| 亚洲天堂av一区| 亚洲国产精品综合小说图片区| 亚洲成人综合视频| 另类中文字幕网| 成人精品免费网站| 国产精品一级久久久| 日韩免费av电影| 在线视频你懂得一区| 日韩午夜在线观看| 中文字幕av一区二区三区| 一区二区三区四区激情| 久久精品国产一区二区三区免费看 | 亚洲精品菠萝久久久久久久| 亚洲成人黄色影院| 国产成人亚洲综合a∨婷婷图片 | 中文字幕日韩av资源站| 天堂在线一区二区| 风流少妇一区二区| 蜜桃av久久久亚洲精品| 欧美日韩在线三区| 国产精品素人一区二区| 亚洲午夜免费福利视频| 国产二区国产一区在线观看| 国产伦精品一区二区三| 欧美亚洲愉拍一区二区| 亚洲国产精品二十页| 免费成人在线观看| 成人做爰66片免费看网站| 色琪琪一区二区三区亚洲区| 久久视频一区二区| 日韩中文字幕麻豆| av资源一区二区| 欧美在线制服丝袜| 中文字幕在线观看一区| 极品瑜伽女神91| 欧美12av| 久久伊人中文字幕| 日本美女视频一区二区| 国产精品久久亚洲7777| 欧美日韩国产小视频| 亚洲三级在线观看| 成人高清在线视频| 自拍偷拍一区二区三区| 国产精品天干天干在线综合| 国产一区二三区好的| 日本不卡免费新一二三区| 精品国产一区二区精华| 蜜乳av一区二区三区| 久久人人爽爽人人爽人人片av| 欧美一区二区三区四区五区 | 天天综合色天天| 高清不卡日本v二区在线| 欧美无人高清视频在线观看| 亚洲人成网站在线| av成人免费在线观看| 欧美亚男人的天堂| 亚洲一区在线观看网站| 国产精品免费看一区二区三区| 91精品国产一区二区人妖| 日韩高清电影一区| 日产精品高清视频免费| 国产精品伦理在线| 99在线精品视频| 91麻豆精品国产91久久久久 | 欧美亚洲尤物久久| 亚洲自拍偷拍综合| 粉嫩av免费一区二区三区| 欧美刺激午夜性久久久久久久| 人妖欧美一区二区| 尤物国产精品| 亚洲国产wwwccc36天堂| 久久精品人成| 国产精品久久久久久久浪潮网站 | 99爱精品视频| 91精品国产乱码久久蜜臀| 日产国产欧美视频一区精品| 麻豆久久久av免费| 国产精品乱码一区二三区小蝌蚪| 成人av影视在线观看| 555夜色666亚洲国产免| 久久不见久久见免费视频1| 色av综合在线| 久久精品国产久精国产| 在线日韩一区二区| 免费看黄色91| 欧美亚洲一区二区三区四区| 日本不卡1234视频| 欧美三日本三级三级在线播放| 久久精品国产**网站演员| 欧美中文字幕亚洲一区二区va在线| 视频一区中文字幕| 在线中文字幕不卡| 韩国成人精品a∨在线观看| 欧美三级电影在线看| 精品一区二区三区不卡| 欧美一区二区三区四区视频| 高清视频一区二区| 欧美电影免费观看高清完整版| 国产电影精品久久禁18| 久久这里只有精品视频网| 97se在线视频| 一区视频在线播放| 日日夜夜精品网站| 美国av一区二区| 91麻豆精品国产综合久久久久久| 国产剧情在线观看一区二区| 精品国产麻豆免费人成网站| 99三级在线| 一区二区三区欧美激情| 一区二区av| 国产精品99久久久久久久vr | 欧美激情在线免费观看| 蜜桃av久久久亚洲精品| 偷拍自拍另类欧美| 欧美人狂配大交3d怪物一区| 成人av免费网站| 中文字幕一区二区三| 亚洲在线观看一区| 国产精品自产自拍| 国产欧美综合在线观看第十页 | 色综合久久中文字幕| 狠狠狠色丁香婷婷综合激情| 亚洲精品一区二区三区精华液| 成人午夜影院在线观看| 亚洲国产人成综合网站| 欧美放荡的少妇| 国语精品免费视频| 热久久一区二区| 日韩视频在线一区二区| 黄色国产精品一区二区三区| 日韩有码一区二区三区| 精品精品欲导航| 日本一区二区精品视频| 国产乱码精品一区二区三区五月婷| 久久精品视频免费| 色综合天天综合网天天看片| 成人美女视频在线观看18| 亚洲黄一区二区三区| 91精品国产91久久综合桃花 | 日本在线不卡视频一二三区| 欧美剧情电影在线观看完整版免费励志电影 | 懂色av一区二区夜夜嗨| 国产精品素人一区二区| 欧美性受xxxx黑人xyx性爽| 91手机在线视频| 日韩精品亚洲一区| 精品国产91乱码一区二区三区 | 亚洲国产成人av好男人在线观看| 欧美高清性hdvideosex| 国产亚洲情侣一区二区无| 免费看欧美女人艹b| 欧美国产欧美综合| 欧美三级视频在线播放| 久久婷婷人人澡人人喊人人爽| 国产一二精品视频| 亚洲一区二区三区小说| 精品国产髙清在线看国产毛片| 日本日本精品二区免费| 91原创在线视频| 精品一区二区三区免费播放| 亚洲精品视频在线看| 久久蜜臀中文字幕| 欧美精品久久久久久久久老牛影院| 欧美激情专区| 91在线观看网站| 国产激情一区二区三区四区 | 高清国产午夜精品久久久久久| 亚洲美腿欧美偷拍| 精品国产一区二区三区不卡| 日本久久一区二区三区| 欧美不卡三区| 丁香五月网久久综合| 国产乱码精品一区二区三区忘忧草| 亚洲高清视频在线| 亚洲欧洲日本在线| 国产亚洲精品免费| 欧美肥胖老妇做爰| 色94色欧美sute亚洲13| 欧美日韩精品免费看 | 一区二区日本伦理| 国产伦精品一区二区三区四区视频| 国产一区二三区| 琪琪一区二区三区| 亚洲一区二区免费视频| 欧美高清在线一区二区| 欧美v亚洲v综合ⅴ国产v| 欧美日韩免费观看一区二区三区| 亚洲成人自拍视频| 日韩电影在线播放| 日本精品一区二区三区不卡无字幕| 国产欧美一区二区三区另类精品|