日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

html测试大题代码,Html5+js测试题(示例代码)

發布時間:2025/4/17 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 html测试大题代码,Html5+js测试题(示例代码) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Html5+js測試題

==============================================

1.談談你對js閉包的理解:

閉包是一個比較抽象的概念,尤其是對js新手來說.書上的解釋實在是比較晦澀,對我來說也是一樣.

但是他也是js能力提升中無法繞過的一環,幾乎每次面試必問的問題,因為在回答的時候.你的答案的深度,對術語的理解以及js內部解釋器的運作方式的描述,都是可以看出你js實際水平的.即使你沒答對,也能讓考官對你的水平有個評估.那么我先來說說我對js中的閉包的理解.

閉包是很多語言都具備的特性,在js中,閉包主要涉及到js的幾個其他的特性:作用域鏈,垃圾(內存)回收機制,函數嵌套,等等.

在理解閉包以前.最好能先理解一下作用域鏈的含義,簡單來說,作用域鏈就是函數在定義的時候創建的,用于尋找使用到的變量的值的一個索引,而他內部的規則是,把函數自身的本地變量放在最前面,把自身的父級函數中的變量放在其次,把再高一級函數中的變量放在更后面,以此類推直至全局對象為止.當函數中需要查詢一個變量的值的時候,js解釋器會去作用域鏈去查找,從最前面的本地變量中先找,如果沒有找到對應的變量,則到下一級的鏈上找,一旦找到了變量,則不再繼續.如果找到最后也沒找到需要的變量,則解釋器返回undefined.

了解了作用域鏈,我們再來看看js的內存回收機制,一般來說,一個函數在執行開始的時候,會給其中定義的變量劃分內存空間保存,以備后面的語句所用,等到函數執行完畢返回了,這些變量就被認為是無用的了.對應的內存空間也就被回收了.下次再執行此函數的時候,所有的變量又回到最初的狀態,重新賦值使用.但是如果這個函數內部又嵌套了另一個函數,而這個函數是有可能在外部被調用到的.并且這個內部函數又使用了外部函數的某些變量的話.這種內存回收機制就會出現問題.如果在外部函數返回后,又直接調用了內部函數,那么內部函數就無法讀取到他所需要的外部函數中變量的值了.所以js解釋器在遇到函數定義的時候,會自動把函數和他可能使用的變量(包括本地變量和父級和祖先級函數的變量(自由變量))一起保存起來.也就是構建一個閉包,這些變量將不會被內存回收器所回收,只有當內部的函數不可能被調用以后(例如被刪除了,或者沒有了指針),才會銷毀這個閉包,而沒有任何一個閉包引用的變量才會被下一次內存回收啟動時所回收.

也就是說,有了閉包,嵌套的函數結構才可以運作,這也是符合我們的預期的.然后,閉包還有一些特性,卻往往讓程序員覺得很難理解.

看看下面一段代碼.

var result=[];

function foo(){

var i= 0;

for (;i<3;i=i+1){

result[i]=function(){

alert(i)

}

}

};

foo();

result[0](); // 3

result[1](); // 3

result[2](); // 3

這段代碼中,程序員希望foo函數中的變量i被內部循環的函數使用,并且能分別獲得他們的索引,而實際上,只能獲得該變量最后保留的值,也就是說.閉包中所記錄的自由變量,只是對這個變量的一個引用,而非變量的值,當這個變量被改變了,閉包里獲取到的變量值,也會被改變.

解決的方法之一,是讓內部函數在循環創建的時候立即執行,并且捕捉當前的索引值,然后記錄在自己的一個本地變量里.然后利用返回函數的方法,重寫內部函數,讓下一次調用的時候,返回本地變量的值,改進后的代碼:

var result=[];

function foo(){

var i= 0;

for (;i<3;i=i+1){

result[i]=(function(j){

return function(){

alert(j);

};

})(i);

}

};

foo();

result[0](); // 0

result[1](); // 1

result[2](); // 2

在這里我再解釋一下.這里用到了另外2個技術,立即調用的匿名函數和返回函數.也是初學者比較難以理解的部分.

-----------------------------------------------------------

2.談談你對Cookie的理解和優缺點:

3.html5瀏覽器本地存儲有哪些?

4.web storage和cookie的區別?

5.cookie 和session 的區別:

6.display:none和visibility:hidden的區別?

7.position:absolute和float屬性的異同

8.介紹一下box-sizing屬性?

9.CSS選擇符有哪些?哪些屬性可以繼承?優先級算法如何計算?CSS3新增偽類有那些?

10.position的值, relative和absolute分別是相對于誰進行定位的?

11.CSS3有哪些新特性?

12.XML和JSON的區別?

13.說說你對語義化標簽的理解?

14.網頁設計常見兼容性問題有哪些,如何解決?

15.解釋下浮動和它的工作原理?清除浮動的技巧

16.浮動元素引起的問題和解決辦法?

17.DOM操作——怎樣添加、移除、移動、復制、創建和查找節點

18.html5有哪些新特性、移除了那些元素?如何處理HTML5新標簽的瀏覽器兼容問題?如何區分 HTML 和 HTML5?

19.iframe的優缺點?

20.如何實現瀏覽器內多個標簽頁之間的通信?

21.請說出三種減少頁面加載時間的方法

22.documen.write和 innerHTML的區別

23.sql注入原理

24.XSS原理及防范

25.XSS與CSRF有什么區別嗎?

26.CSRF的防御

27.Flash、Ajax各自的優缺點,在使用中如何取舍?

28.GET和POST的區別,何時使用POST?

29.HTTP狀態碼

30.談談網頁性能優化問題

總結

以上是生活随笔為你收集整理的html测试大题代码,Html5+js测试题(示例代码)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。