黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

專注Java教育14年 全國(guó)咨詢/投訴熱線:400-8080-105
動(dòng)力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁(yè) 常見問(wèn)題 全新的JavaScript面試題及答案

全新的JavaScript面試題及答案

更新時(shí)間:2019-09-12 14:10:13 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽8646次

今天動(dòng)力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)小編為大家分享“全新JavaScript面試題及答案”,希望通過(guò)此文,能夠幫助到即將要面試java程序員的學(xué)員,下面就隨小編一起看看全新JavaScript面試題及答案。

timg (11).jpg

1.介紹JavaScript的基本數(shù)據(jù)類型

Number、String 、Boolean 、Null、Undefined

Object 是 JavaScript 中所有對(duì)象的父對(duì)象

數(shù)據(jù)封裝類對(duì)象:Object、Array、Boolean、Number 和 String

其他對(duì)象:Function、Arguments、Math、Date、RegExp、Error

新類型:Symbol 

2 .說(shuō)說(shuō)寫JavaScript的基本規(guī)范?

  • 不要在同一行聲明多個(gè)變量
  • 使用 ===或!==來(lái)比較true/false或者數(shù)值
  • switch必須帶有default分支
  • 函數(shù)應(yīng)該有返回值
  • for if else 必須使用大括號(hào)
  • 語(yǔ)句結(jié)束加分號(hào)
  • 命名要有意義,使用駝峰命名法

3.jQuery的使用建議

  • 盡量減少對(duì)dom元素的訪問(wèn)和操作
  • 盡量避免給dom元素綁定多個(gè)相同類型的事件處理函數(shù),可以將多個(gè)相同類型事件處理函數(shù)合并到一個(gè)處理函數(shù),通過(guò)數(shù)據(jù)狀態(tài)來(lái)處理分支
  • 盡量避免使用toggle事件

4 .Ajax使用

全稱 : Asynchronous Javascript And XML

所謂異步,就是向服務(wù)器發(fā)送請(qǐng)求的時(shí)候,我們不必等待結(jié)果,而是可以同時(shí)做其他的事情,等到有了結(jié)果它自己會(huì)根據(jù)設(shè)定進(jìn)行后續(xù)操作,與此同時(shí),頁(yè)面是不會(huì)發(fā)生整頁(yè)刷新的,提高了用戶體驗(yàn)。

創(chuàng)建Ajax的過(guò)程:

1)創(chuàng)建XMLHttpRequest對(duì)象(異步調(diào)用對(duì)象)

var xhr = new XMLHttpRequest();

2) 創(chuàng)建新的Http請(qǐng)求(方法、URL、是否異步)

xhr.open(‘get’,’example.php’,false);

3) 設(shè)置響應(yīng)HTTP請(qǐng)求狀態(tài)變化的函數(shù)。

onreadystatechange事件中readyState屬性等于4。響應(yīng)的HTTP狀態(tài)為200(OK)或者304(Not Modified)。

4) 發(fā)送http請(qǐng)求

xhr.send(data);

5) 獲取異步調(diào)用返回的數(shù)據(jù)

注意:

  • 頁(yè)面初次加載時(shí),盡量在web服務(wù)器一次性輸出所有相關(guān)的數(shù)據(jù),只在頁(yè)面加載完成之后,用戶進(jìn)行操作時(shí)采用ajax進(jìn)行交互。
  • 同步ajax在IE上會(huì)產(chǎn)生頁(yè)面假死的問(wèn)題。所以建議采用異步ajax。
  • 盡量減少ajax請(qǐng)求次數(shù)
  • ajax安全問(wèn)題,對(duì)于敏感數(shù)據(jù)在服務(wù)器端處理,避免在客戶端處理過(guò)濾。對(duì)于關(guān)鍵業(yè)務(wù)邏輯代碼也必須放在服務(wù)器端處理。

5 .JavaScript有幾種類型的值?你能畫一下他們的內(nèi)存圖嗎?

基本數(shù)據(jù)類型存儲(chǔ)在棧中,引用數(shù)據(jù)類型(對(duì)象)存儲(chǔ)在堆中,指針?lè)旁跅V小?/p>

兩種類型的區(qū)別是:存儲(chǔ)位置不同;原始數(shù)據(jù)類型直接存儲(chǔ)在棧中的簡(jiǎn)單數(shù)據(jù)段,占據(jù)空間小、大小固定,屬于被頻繁使用數(shù)據(jù),所以放入棧中存儲(chǔ);引用數(shù)據(jù)類型存儲(chǔ)在堆中的對(duì)象,占據(jù)空間大、大小不固定,如果存儲(chǔ)在棧中,將會(huì)影響程序運(yùn)行的性能

引用數(shù)據(jù)類型在棧中存儲(chǔ)了指針,該指針指向堆中該實(shí)體的起始地址。當(dāng)解釋器尋找引用值時(shí),會(huì)首先檢索其在棧中的地址,取得地址后從堆中獲得實(shí)體。

6 .棧和堆的區(qū)別?

棧(stack):由編譯器自動(dòng)分配釋放,存放函數(shù)的參數(shù)值,局部變量等;

堆(heap):一般由程序員分配釋放,若程序員不釋放,程序結(jié)束時(shí)可能由操作系統(tǒng)釋放。

7.Javascript作用鏈域

作用域鏈的原理和原型鏈很類似,如果這個(gè)變量在自己的作用域中沒有,那么它會(huì)尋找父級(jí)的,直到最頂層。

注意:JS沒有塊級(jí)作用域,若要形成塊級(jí)作用域,可通過(guò)(function(){})();立即執(zhí)行的形式實(shí)現(xiàn)。

8.談?wù)則his的理解

  • this總是指向函數(shù)的直接調(diào)用者(而非間接調(diào)用者)
  • 如果有new關(guān)鍵字,this指向new出來(lái)的那個(gè)對(duì)象
  • 在事件中,this指向目標(biāo)元素,特殊的是IE的attachEvent中的this總是指向全局對(duì)象window。

9.eval是做什么的?

它的功能是把對(duì)應(yīng)的字符串解析成JS代碼并運(yùn)行;應(yīng)該避免使用eval,不安全,非常耗性能(2次,一次解析成js語(yǔ)句,一次執(zhí)行)。

10.什么是window對(duì)象? 什么是document對(duì)象?

window對(duì)象代表瀏覽器中打開的一個(gè)窗口。document對(duì)象代表整個(gè)html文檔。實(shí)際上,document對(duì)象是window對(duì)象的一個(gè)屬性。

11. null,undefined的區(qū)別?

null表示一個(gè)對(duì)象被定義了,但存放了空指針,轉(zhuǎn)換為數(shù)值時(shí)為0。

undefined表示聲明的變量未初始化,轉(zhuǎn)換為數(shù)值時(shí)為NAN。

typeof(null) -- object;

typeof(undefined) -- undefined 

12. ["1", "2", "3"].map(parseInt) 答案是多少?

[1,NaN,NaN]

解析:

Array.prototype.map()

array.map(callback[, thisArg])

callback函數(shù)的執(zhí)行規(guī)則

參數(shù):自動(dòng)傳入三個(gè)參數(shù)

currentValue(當(dāng)前被傳遞的元素);

index(當(dāng)前被傳遞的元素的索引);

array(調(diào)用map方法的數(shù)組)

parseInt方法接收兩個(gè)參數(shù)

第三個(gè)參數(shù)["1", "2", "3"]將被忽略。parseInt方法將會(huì)通過(guò)以下方式被調(diào)用

parseInt("1", 0)

parseInt("2", 1)

parseInt("3", 2)

parseInt的第二個(gè)參數(shù)radix為0時(shí),ECMAScript5將string作為十進(jìn)制數(shù)字的字符串解析;

parseInt的第二個(gè)參數(shù)radix為1時(shí),解析結(jié)果為NaN;

parseInt的第二個(gè)參數(shù)radix在2—36之間時(shí),如果string參數(shù)的第一個(gè)字符(除空白以外),不屬于radix指定進(jìn)制下的字符,解析結(jié)果為NaN。

parseInt("3", 2)執(zhí)行時(shí),由于"3"不屬于二進(jìn)制字符,解析結(jié)果為NaN。

13 .關(guān)于事件,IE與火狐的事件機(jī)制有什么區(qū)別? 如何阻止冒泡?

IE為事件冒泡,F(xiàn)irefox同時(shí)支持事件捕獲和事件冒泡。但并非所有瀏覽器都支持事件捕獲。jQuery中使用event.stopPropagation()方法可阻止冒泡;(舊IE的方法 ev.cancelBubble = true;)

14. 什么是閉包(closure),為什么要用它?

閉包指的是一個(gè)函數(shù)可以訪問(wèn)另一個(gè)函數(shù)作用域中變量。常見的構(gòu)造方法,是在一個(gè)函數(shù)內(nèi)部定義另外一個(gè)函數(shù)。內(nèi)部函數(shù)可以引用外層的變量;外層變量不會(huì)被垃圾回收機(jī)制回收。

注意,閉包的原理是作用域鏈,所以閉包訪問(wèn)的上級(jí)作用域中的變量是個(gè)對(duì)象,其值為其運(yùn)算結(jié)束后的最后一個(gè)值。

優(yōu)點(diǎn):避免全局變量污染。缺點(diǎn):容易造成內(nèi)存泄漏。

例子:

function makeFunc() {
var name = "Mozilla";
function displayName() {
console.log(name);
}
return displayName;
}
var myFunc = makeFunc();
myFunc(); //輸出Mozilla

myFunc 變成一個(gè) 閉包。閉包是一種特殊的對(duì)象。它由兩部分構(gòu)成:函數(shù),以及創(chuàng)建該函數(shù)的環(huán)境。環(huán)境由閉包創(chuàng)建時(shí)在作用域中的任何局部變量組成。在我們的例子中,myFunc 是一個(gè)閉包,由 displayName 函數(shù)和閉包創(chuàng)建時(shí)存在的 "Mozilla" 字符串形成。

15. javascript 代碼中的"use strict";是什么意思 ? 使用它區(qū)別是什么?

除了正常模式運(yùn)行外,ECMAscript添加了第二種運(yùn)行模式:“嚴(yán)格模式”。

作用:

  • 消除js不合理,不嚴(yán)謹(jǐn)?shù)胤剑瑴p少怪異行為
  • 消除代碼運(yùn)行的不安全之處,
  • 提高編譯器的效率,增加運(yùn)行速度
  • 為未來(lái)的js新版本做鋪墊。

16. 如何判斷一個(gè)對(duì)象是否屬于某個(gè)類?

使用instanceof 即if(a instanceof Person){alert('yes');}

17. new操作符具體干了什么呢?

  • 創(chuàng)建一個(gè)空對(duì)象,并且 this 變量引用該對(duì)象,同時(shí)還繼承了該函數(shù)的原型。
  • 屬性和方法被加入到 this 引用的對(duì)象中。
  • 新創(chuàng)建的對(duì)象由 this 所引用,并且最后隱式的返回 this 。

18.Javascript中,執(zhí)行時(shí)對(duì)象查找時(shí),永遠(yuǎn)不會(huì)去查找原型的函數(shù)?

Object.hasOwnProperty(proName):是用來(lái)判斷一個(gè)對(duì)象是否有你給出名稱的屬性。不過(guò)需要注意的是,此方法無(wú)法檢查該對(duì)象的原型鏈中是否具有該屬性,該屬性必須是對(duì)象本身的一個(gè)成員。

19.對(duì)JSON的了解?

全稱:JavaScript Object Notation

JSON中對(duì)象通過(guò)“{}”來(lái)標(biāo)識(shí),一個(gè)“{}”代表一個(gè)對(duì)象,如{“AreaId”:”123”},對(duì)象的值是鍵值對(duì)的形式(key:value)。JSON是JS的一個(gè)嚴(yán)格的子集,一種輕量級(jí)的數(shù)據(jù)交換格式,類似于xml。數(shù)據(jù)格式簡(jiǎn)單,易于讀寫,占用帶寬小。

兩個(gè)函數(shù):

JSON.parse(str)

解析JSON字符串 把JSON字符串變成JavaScript值或?qū)ο?/p>

JSON.stringify(obj)

將一個(gè)JavaScript值(對(duì)象或者數(shù)組)轉(zhuǎn)換為一個(gè) JSON字符串

eval('('+json+')')

用eval方法注意加括號(hào) 而且這種方式更容易被攻擊

20. JS延遲加載的方式有哪些?

JS的延遲加載有助與提高頁(yè)面的加載速度。

defer和async、動(dòng)態(tài)創(chuàng)建DOM方式(用得最多)、按需異步載入JS

defer:延遲腳本。立即下載,但延遲執(zhí)行(延遲到整個(gè)頁(yè)面都解析完畢后再運(yùn)行),按照腳本出現(xiàn)的先后順序執(zhí)行。

async:異步腳本。下載完立即執(zhí)行,但不保證按照腳本出現(xiàn)的先后順序執(zhí)行。

21.同步和異步的區(qū)別?

同步的概念在操作系統(tǒng)中:不同進(jìn)程協(xié)同完成某項(xiàng)工作而先后次序調(diào)整(通過(guò)阻塞、喚醒等方式),同步強(qiáng)調(diào)的是順序性,誰(shuí)先誰(shuí)后。異步不存在順序性。

同步:瀏覽器訪問(wèn)服務(wù)器,用戶看到頁(yè)面刷新,重新發(fā)請(qǐng)求,等請(qǐng)求完,頁(yè)面刷新,新內(nèi)容出現(xiàn),用戶看到新內(nèi)容之后進(jìn)行下一步操作。

異步:瀏覽器訪問(wèn)服務(wù)器請(qǐng)求,用戶正常操作,瀏覽器在后端進(jìn)行請(qǐng)求。等請(qǐng)求完,頁(yè)面不刷新,新內(nèi)容也會(huì)出現(xiàn),用戶看到新內(nèi)容。

22.頁(yè)面編碼和被請(qǐng)求的資源編碼如果不一致如何處理?

若請(qǐng)求的資源編碼,如外引js文件編碼與頁(yè)面編碼不同。可根據(jù)外引資源編碼方式定義為 charset="utf-8"或"gbk"。

比如:http://www.yyy.com/a.html 中嵌入了一個(gè)http://www.xxx.com/test.js

a.html 的編碼是gbk或gb2312的。 而引入的js編碼為utf-8的 ,那就需要在引入的時(shí)候

23.模塊化開發(fā)怎么做?

模塊化開發(fā)指的是在解決某一個(gè)復(fù)雜問(wèn)題或者一系列問(wèn)題時(shí),依照一種分類的思維把問(wèn)題進(jìn)行系統(tǒng)性的分解。模塊化是一種將復(fù)雜系統(tǒng)分解為代碼結(jié)構(gòu)更合理,可維護(hù)性更高的可管理的模塊方式。對(duì)于軟件行業(yè):系統(tǒng)被分解為一組高內(nèi)聚,低耦合的模塊。

  • 定義封裝的模塊
  • 定義新模塊對(duì)其他模塊的依賴
  • 可對(duì)其他模塊的引入支持。在JavaScript中出現(xiàn)了一些非傳統(tǒng)模塊開發(fā)方式的規(guī)范。 CommonJS的模塊規(guī)范,AMD(Asynchronous Module Definition),CMD(Common Module Definition)等。AMD是異步模塊定義,所有的模塊將被異步加載,模塊加載不影響后邊語(yǔ)句運(yùn)行。

24. AMD(Modules/Asynchronous-Definition)、CMD(Common Module Definition)規(guī)范區(qū)別?

AMD 是 RequireJS 在推廣過(guò)程中對(duì)模塊定義的規(guī)范化產(chǎn)出。CMD 是 SeaJS 在推廣過(guò)程中對(duì)模塊定義的規(guī)范化產(chǎn)出。

區(qū)別:

  • 對(duì)于依賴的模塊,AMD 是提前執(zhí)行,CMD 是延遲執(zhí)行。不過(guò) RequireJS 從 2.0 開始,也改成可以延遲執(zhí)行(根據(jù)寫法不同,處理方式不同)。
  • CMD 推崇依賴就近,AMD 推崇依賴前置。
  • AMD 的 API 默認(rèn)是一個(gè)當(dāng)多個(gè)用,CMD 的 API 嚴(yán)格區(qū)分,推崇職責(zé)單一。
// CMD
define(function(require, exports, module) {
var a = require('./a')
a.doSomething()
// 此處略去 100 行
var b = require('./b') // 依賴可以就近書寫
b.doSomething()
})
// AMD 默認(rèn)推薦
define(['./a', './b'], function(a, b) { // 依賴必須一開始就寫好
a.doSomething();
// 此處略去 100 行
b.doSomething();
})

25. requireJS的核心原理是什么?(如何動(dòng)態(tài)加載的?如何避免多次加載的?如何緩存的?)

核心是js的加載模塊,通過(guò)正則匹配模塊以及模塊的依賴關(guān)系,保證文件加載的先后順序,根據(jù)文件的路徑對(duì)加載過(guò)的文件做了緩存。

26. call和apply

call()方法和apply()方法的作用相同,動(dòng)態(tài)改變某個(gè)類的某個(gè)方法的運(yùn)行環(huán)境。他們的區(qū)別在于接收參數(shù)的方式不同。在使用call()方法時(shí),傳遞給函數(shù)的參數(shù)必須逐個(gè)列舉出來(lái)。使用apply()時(shí),傳遞給函數(shù)的是參數(shù)數(shù)組。

27.回流與重繪

當(dāng)渲染樹中的一部分(或全部)因?yàn)樵氐囊?guī)模尺寸,布局,隱藏等改變而需要重新構(gòu)建。這就稱為回流(reflow)。每個(gè)頁(yè)面至少需要一次回流,就是在頁(yè)面第一次加載的時(shí)候。在回流的時(shí)候,瀏覽器會(huì)使渲染樹中受到影響的部分失效,并重新構(gòu)造這部分渲染樹。完成回流后,瀏覽器會(huì)重新繪制受影響的部分到屏幕中,該過(guò)程成為重繪

28.DOM操作

1)創(chuàng)建新節(jié)點(diǎn)

  • createDocumentFragment() //創(chuàng)建一個(gè)DOM片段
  • createElement() //創(chuàng)建一個(gè)具體的元素
  • createTextNode() //創(chuàng)建一個(gè)文本節(jié)點(diǎn)

2)添加、移除、替換、插入

appendChild()

removeChild()

replaceChild()

insertBefore() //在已有的子節(jié)點(diǎn)前插入一個(gè)新的子節(jié)點(diǎn)

3)查找

  • getElementsByTagName() //通過(guò)標(biāo)簽名稱
  • getElementsByName() //通過(guò)元素的Name屬性的值(IE容錯(cuò)能力較強(qiáng),會(huì)得到一個(gè)數(shù)組,其中包括id等于name值的)
  • getElementById() //通過(guò)元素Id,唯一性

29.數(shù)組對(duì)象有哪些原生方法,列舉一下

pop、push、shift、unshift、splice、reverse、sort、concat、join、slice、toString、indexOf、lastIndexOf、reduce、reduceRight

forEach、map、filter、every、some

30.那些操作會(huì)造成內(nèi)存泄漏

全局變量、閉包、DOM清空或刪除時(shí),事件未清除、子元素存在引用

31.什么是Cookie 隔離?(或者:請(qǐng)求資源的時(shí)候不要帶cookie怎么做)

通過(guò)使用多個(gè)非主要域名來(lái)請(qǐng)求靜態(tài)文件,如果靜態(tài)文件都放在主域名下,那靜態(tài)文件請(qǐng)求的時(shí)候帶有的cookie的數(shù)據(jù)提交給server是非常浪費(fèi)的,還不如隔離開。因?yàn)閏ookie有域的限制,因此不能跨域提交請(qǐng)求,故使用非主要域名的時(shí)候,請(qǐng)求頭中就不會(huì)帶有cookie數(shù)據(jù),這樣可以降低請(qǐng)求頭的大小,降低請(qǐng)求時(shí)間,從而達(dá)到降低整體請(qǐng)求延時(shí)的目的。同時(shí)這種方式不會(huì)將cookie傳入server,也減少了server對(duì)cookie的處理分析環(huán)節(jié),提高了server的http請(qǐng)求的解析速度。

32.響應(yīng)事件

onclick鼠標(biāo)點(diǎn)擊某個(gè)對(duì)象;onfocus獲取焦點(diǎn);onblur失去焦點(diǎn);onmousedown鼠標(biāo)被按下

33.flash和js通過(guò)什么類如何交互?

Flash提供了ExternalInterface接口與JavaScript通信,ExternalInterface有兩個(gè)方法,call和addCallback,call的作用是讓Flash調(diào)用js里的方法,addCallback是用來(lái)注冊(cè)flash函數(shù)讓js調(diào)用。

34.Flash與Ajax各自的優(yōu)缺點(diǎn)?

Flash:適合處理多媒體、矢量圖形、訪問(wèn)機(jī)器。但對(duì)css、處理文本不足,不容易被搜索。

Ajax:對(duì)css、文本支持很好,但對(duì)多媒體、矢量圖形、訪問(wèn)機(jī)器不足。

35.有效的javascript變量定義規(guī)則

第一個(gè)字符必須是一個(gè)字母、下劃線(_)或一個(gè)美元符號(hào)($);其他字符可以是字母、下劃線、美元符號(hào)或數(shù)字。

36.XML與JSON的區(qū)別?

  • 數(shù)據(jù)體積方面。JSON相對(duì)于XML來(lái)講,數(shù)據(jù)的體積小,傳遞的速度更快些。
  • 數(shù)據(jù)交互方面。JSON與JavaScript的交互更加方便,更容易解析處理,更好的數(shù)據(jù)交互。
  • 數(shù)據(jù)描述方面。JSON對(duì)數(shù)據(jù)的描述性比XML較差。
  • 傳輸速度方面。JSON的速度要遠(yuǎn)遠(yuǎn)快于XML。

37.HTML與XML的區(qū)別?

  • XML用來(lái)傳輸和存儲(chǔ)數(shù)據(jù),HTML用來(lái)顯示數(shù)據(jù);
  • XML使用的標(biāo)簽不用預(yù)先定義
  • XML標(biāo)簽必須成對(duì)出現(xiàn)
  • XML對(duì)大小寫敏感
  • XML中空格不會(huì)被刪減
  • XML中所有特殊符號(hào)必須用編碼表示
  • XML中的圖片必須有文字說(shuō)明

38. 漸進(jìn)增強(qiáng)與優(yōu)雅降級(jí)

漸進(jìn)增強(qiáng):針對(duì)低版本瀏覽器進(jìn)行構(gòu)建頁(yè)面,保證最基本的功能,然后再針對(duì)高級(jí)瀏覽器進(jìn)行效果、交互等改進(jìn),達(dá)到更好的用戶體驗(yàn)。

優(yōu)雅降級(jí):一開始就構(gòu)建完整的功能,然后再針對(duì)低版本瀏覽器進(jìn)行兼容。

39. Web Worker和Web Socket?

web socket:在一個(gè)單獨(dú)的持久連接上提供全雙工、雙向的通信。使用自定義的協(xié)議(ws://、wss://),同源策略對(duì)web socket不適用。

web worker:運(yùn)行在后臺(tái)的JavaScript,不影響頁(yè)面的性能。

創(chuàng)建worker:var worker = new Worker(url);

向worker發(fā)送數(shù)據(jù):worker.postMessage(data);

接收worker返回的數(shù)據(jù):worker.onmessage

終止一個(gè)worker的執(zhí)行:worker.terminate();

40.JS垃圾回收機(jī)制?

1) 標(biāo)記清除:

這個(gè)算法把“對(duì)象是否不再需要”簡(jiǎn)化定義為“對(duì)象是否可以獲得”。

這個(gè)算法假定設(shè)置一個(gè)叫做根(root)的對(duì)象(在Javascript里,根是全局對(duì)象)。定期的,垃圾回收器將從根開始,找所有從根開始引用的對(duì)象,然后找這些對(duì)象引用的對(duì)象。從根開始,垃圾回收器將找到所有可以獲得的對(duì)象和所有不能獲得的對(duì)象。

2) 引用計(jì)數(shù):

這是最簡(jiǎn)單的垃圾收集算法。此算法把“對(duì)象是否不再需要”簡(jiǎn)化定義為“對(duì)象有沒有其他對(duì)象引用到它”。如果沒有引用指向該對(duì)象(零引用),對(duì)象將被垃圾回收機(jī)制回收。

該算法有個(gè)限制:無(wú)法處理循環(huán)引用。兩個(gè)對(duì)象被創(chuàng)建,并互相引用,形成了一個(gè)循環(huán)。它們被調(diào)用之后不會(huì)離開函數(shù)作用域,所以它們已經(jīng)沒有用了,可以被回收了。然而,引用計(jì)數(shù)算法考慮到它們互相都有至少一次引用,所以它們不會(huì)被回收。

41. web應(yīng)用從服務(wù)器主動(dòng)推送data到客戶端的方式?

JavaScript數(shù)據(jù)推送:commet(基于http長(zhǎng)連接的服務(wù)器推送技術(shù))。

基于web socket的推送:SSE(server-send Event)

42. 如何刪除一個(gè)cookie?

1) 將cookie的失效時(shí)間設(shè)置為過(guò)去的時(shí)間(expires)

document.cookie = ‘user=’+ encodeURIComponent(‘name’) + ';

expires=’+ new Date(0);

2) 將系統(tǒng)時(shí)間設(shè)置為當(dāng)前時(shí)間往前一點(diǎn)時(shí)間

var data = new Date();

date.setDate(date.getDate()-1);

43. attribute與property的區(qū)別?

attribute是dom元素在文檔中作為html標(biāo)簽擁有的屬性

property是dom元素在js中作為對(duì)象擁有的屬性。

所以,對(duì)于html的標(biāo)準(zhǔn)屬性來(lái)說(shuō),attribute和property是同步的,是會(huì)自動(dòng)更新的。但對(duì)于自定義屬性,他們不同步。

44.Ajax請(qǐng)求的頁(yè)面歷史記錄狀態(tài)問(wèn)題?

1)通過(guò)location.hash記錄狀態(tài),讓瀏覽器記錄Ajax請(qǐng)求時(shí)頁(yè)面狀態(tài)的變化。

2)通過(guò)HTML5的history.pushstate,來(lái)實(shí)現(xiàn)瀏覽器地址欄的無(wú)刷新改變。

timg (2).jpg

以上就是動(dòng)力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)小編分享的“最新最全的JavaScript面試題及答案”的內(nèi)容,希望對(duì)大家有幫助,更多java面試題請(qǐng)繼續(xù)關(guān)注動(dòng)力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)官網(wǎng),每天會(huì)有精彩內(nèi)容分享與你。

提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)

免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 久久天天躁狠狠躁夜夜2020一 | 激情性爽三级成人 | 亚洲日产国码 | 97夜夜澡人人爽人人喊中国片 | 日比免费视频 | 中文字幕免费观看 | 91欧美| 欧美人视频在线观看视频 | 五月婷婷狠狠干 | 久久99精品久久久久久欧洲站 | 中文国产成人精品久久96 | 激情开心婷婷 | 你懂得在线播放 | 毛片在线免费观看网站 | 亚洲国产高清在线 | 欧美日韩成人在线观看 | 在线播放性xxx欧美 在线播放你懂的 | 2020国产大片天天看 | 99在线在线视频免费视频观看 | 免费成年人在线观看视频 | 国产日韩精品在线 | 狠狠干人人干 | 日本一区二区不卡久久入口 | 日韩中文字幕免费观看 | 中文字幕一区二区三 | 日韩伦理影视 | 日韩手机在线观看 | 456亚洲人成高清在线 | 五月激情六月丁香 | 国产一级a毛片高清 | 国产又色又爽又黄的视频在线观看 | 精品一区二区三区影院在线午夜 | 狠狠干狠| 最近免费的中文字幕一 | 久久黄色网址 | 亚洲成人黄色网址 | 国产欧美亚洲三区久在线观看 | 午夜a一级毛片一.成 | 成人免费xxx色视频 成人免费xxxxx在线视频 | 日本久久久久久久中文字幕 | 中文字幕第315页 |